产品新增3d模型展示
This commit is contained in:
62
web_widget_model_viewer/static/src/js/3d_viewer.js
Normal file
62
web_widget_model_viewer/static/src/js/3d_viewer.js
Normal file
@@ -0,0 +1,62 @@
|
||||
/** @odoo-module **/
|
||||
|
||||
import { registry } from "@web/core/registry";
|
||||
import { _lt } from "@web/core/l10n/translation";
|
||||
import { standardFieldProps } from "@web/views/fields/standard_field_props";
|
||||
import { useInputField } from "@web/views/fields/input_field_hook";
|
||||
import { FileUploader } from "@web/views/fields/file_handler";
|
||||
import { session } from "@web/session";
|
||||
import { useService } from "@web/core/utils/hooks";
|
||||
import { isBinarySize } from "@web/core/utils/binary";
|
||||
import { download } from "@web/core/network/download";
|
||||
import utils from 'web.utils';
|
||||
|
||||
import core from 'web.core';
|
||||
import rpc from 'web.rpc';
|
||||
|
||||
var QWeb = core.qweb;
|
||||
|
||||
import { Component, onWillUpdateProps, useState, useRef, useEffect } from "@odoo/owl";
|
||||
|
||||
export class StepViewer extends Component {
|
||||
setup() {
|
||||
this.props.url = this.formatUrl();
|
||||
}
|
||||
|
||||
formatUrl(){
|
||||
var url = '';
|
||||
if (this.props.value) {
|
||||
if (utils.is_bin_size(this.props.value)) {
|
||||
var url_props = {
|
||||
base_url: session['web.base.url'],
|
||||
model: this.props.record.resModel,
|
||||
id: JSON.stringify(this.props.record.data['id']),
|
||||
field: this.props.name}
|
||||
url = url_props['base_url']+'/web/content/'+url_props['model']+'/'+url_props['id']+'/'+url_props['field']+'?download=true'
|
||||
|
||||
} else {
|
||||
url = "data:model/gltf-binary;base64," + this.props.value;
|
||||
}
|
||||
}
|
||||
return url
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
StepViewer.template = "web_widget_model_viewer.BinaryField3d";
|
||||
|
||||
StepViewer.displayName = _lt("3D File");
|
||||
StepViewer.supportedTypes = ["binary"];
|
||||
|
||||
StepViewer.props = {
|
||||
...standardFieldProps,
|
||||
url: { type: String, optional: true },
|
||||
};
|
||||
|
||||
StepViewer.extractProps = ({ attrs }) => {
|
||||
return {
|
||||
url: attrs.options.url,
|
||||
};
|
||||
};
|
||||
|
||||
registry.category("fields").add("Viewer3D", StepViewer);
|
||||
Reference in New Issue
Block a user