diff --git a/.env.production b/.env.production index 35e3b19..8430cde 100644 --- a/.env.production +++ b/.env.production @@ -5,5 +5,4 @@ ENV = 'production' #VITE_API_URL = 'https://lyt-top.gitee.io/vue-next-admin-preview/' - VITE_API_URL = 'http://localhost:5000/' diff --git a/.gitignore b/.gitignore index ce8f84e..cc61463 100644 --- a/.gitignore +++ b/.gitignore @@ -22,11 +22,11 @@ pnpm-debug.log* *.sln *.sw? -.env -.env.development -.env.production +#.env +#.env.development +#.env.production -/src/pages/bi/ -/src/pages/sa/ -/src/pages/te/ -/src/router/saRoute.ts +#/src/pages/bi/ +#/src/pages/sa/ +#/src/pages/te/ +#/src/router/saRoute.ts diff --git a/package-lock.json b/package-lock.json index e31eed7..d672565 100644 --- a/package-lock.json +++ b/package-lock.json @@ -22,7 +22,7 @@ "echarts": "^5.3.2", "echarts-gl": "^2.0.9", "echarts-wordcloud": "^2.0.0", - "element-plus": "2.2.8", + "element-plus": "2.2.12", "file-saver": "2.0.5", "js-cookie": "^3.0.1", "jsplumb": "^2.15.6", @@ -2604,9 +2604,9 @@ "dev": true }, "node_modules/element-plus": { - "version": "2.2.8", - "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.2.8.tgz", - "integrity": "sha512-+cubFh1rgeGcc2LeBm7hv/1BKFJre/LIIdRntm9OLaIhysCxigjEwcxk9gbVT4KsbcjmoqZUr4/mwhIhQV6mvw==", + "version": "2.2.12", + "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.2.12.tgz", + "integrity": "sha512-g/hIHj3b+dND2R3YRvyvCJtJhQvR7lWvXqhJaoxaQmajjNWedoe4rttxG26fOSv9YCC2wN4iFDcJHs70YFNgrA==", "dependencies": { "@ctrl/tinycolor": "^3.4.1", "@element-plus/icons-vue": "^2.0.6", @@ -2622,7 +2622,7 @@ "lodash-es": "^4.17.21", "lodash-unified": "^1.0.2", "memoize-one": "^6.0.0", - "normalize-wheel-es": "^1.1.2" + "normalize-wheel-es": "^1.2.0" }, "peerDependencies": { "vue": "^3.2.0" @@ -4210,9 +4210,9 @@ } }, "node_modules/normalize-wheel-es": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.1.2.tgz", - "integrity": "sha512-scX83plWJXYH1J4+BhAuIHadROzxX0UBF3+HuZNY2Ks8BciE7tSTQ+5JhTsvzjaO0/EJdm4JBGrfObKxFf3Png==" + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", + "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==" }, "node_modules/nprogress": { "version": "0.2.0", @@ -7454,9 +7454,9 @@ "dev": true }, "element-plus": { - "version": "2.2.8", - "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.2.8.tgz", - "integrity": "sha512-+cubFh1rgeGcc2LeBm7hv/1BKFJre/LIIdRntm9OLaIhysCxigjEwcxk9gbVT4KsbcjmoqZUr4/mwhIhQV6mvw==", + "version": "2.2.12", + "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.2.12.tgz", + "integrity": "sha512-g/hIHj3b+dND2R3YRvyvCJtJhQvR7lWvXqhJaoxaQmajjNWedoe4rttxG26fOSv9YCC2wN4iFDcJHs70YFNgrA==", "requires": { "@ctrl/tinycolor": "^3.4.1", "@element-plus/icons-vue": "^2.0.6", @@ -7472,7 +7472,7 @@ "lodash-es": "^4.17.21", "lodash-unified": "^1.0.2", "memoize-one": "^6.0.0", - "normalize-wheel-es": "^1.1.2" + "normalize-wheel-es": "^1.2.0" }, "dependencies": { "@element-plus/icons-vue": { @@ -8625,9 +8625,9 @@ "dev": true }, "normalize-wheel-es": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/normalize-wheel-es/-/normalize-wheel-es-1.1.2.tgz", - "integrity": "sha512-scX83plWJXYH1J4+BhAuIHadROzxX0UBF3+HuZNY2Ks8BciE7tSTQ+5JhTsvzjaO0/EJdm4JBGrfObKxFf3Png==" + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", + "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==" }, "nprogress": { "version": "0.2.0", diff --git a/package.json b/package.json index 56c7161..1778c0c 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "echarts": "^5.3.2", "echarts-gl": "^2.0.9", "echarts-wordcloud": "^2.0.0", - "element-plus": "2.2.8", + "element-plus": "2.2.12", "file-saver": "2.0.5", "js-cookie": "^3.0.1", "jsplumb": "^2.15.6", diff --git a/src/bpmn/config/modules/Task.tsx b/src/bpmn/config/modules/Task.tsx index bb3bb2c..10bd9ff 100644 --- a/src/bpmn/config/modules/Task.tsx +++ b/src/bpmn/config/modules/Task.tsx @@ -28,7 +28,7 @@ const USER_OPTIONS = [ { label: '张三', value: 'z3' }, { label: '李四', value: 'l4' }, { label: '王五', value: 'w5' }, - { label: '赵六', value: 'zhao6' }, + { label: '赵六', value: 'z6' }, { label: '孙七', value: 's7' }, ]; diff --git a/src/comps/bpm/edit.vue b/src/comps/bpm/edit.vue index 7756134..6901f13 100644 --- a/src/comps/bpm/edit.vue +++ b/src/comps/bpm/edit.vue @@ -18,7 +18,7 @@ - + 上 传 diff --git a/src/comps/bpm/view.vue b/src/comps/bpm/view.vue index 4e82615..c33b449 100644 --- a/src/comps/bpm/view.vue +++ b/src/comps/bpm/view.vue @@ -56,7 +56,7 @@ - + 上 传 diff --git a/src/comps/bpmn/MyBpmn.vue b/src/comps/bpmn/MyBpmn.vue index 06ac06b..667b14c 100644 --- a/src/comps/bpmn/MyBpmn.vue +++ b/src/comps/bpmn/MyBpmn.vue @@ -14,7 +14,8 @@ import 'bpmn-js/dist/assets/bpmn-font/css/bpmn.css' import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-codes.css' import 'bpmn-js/dist/assets/bpmn-font/css/bpmn-embedded.css' import OrgModal from '/@/comps/sys/OrgModal.vue'; - +import customModule from './custom' +import CustomModeler from './customModeler' const orgModal = ref(); @@ -37,8 +38,16 @@ const { bpmnModeler } = toRefs(state); onMounted( () => { bpmnModeler.value=new BpmnModeler({ - container: canvasRef.value + container: canvasRef.value, + additionalModules: [ + customModule + ] }) + // bpmnModeler.value=new CustomModeler({ + // container: canvasRef.value, + // additionalModules: [ + // ] + // }) bpmnModeler.value.importXML(xmlStr, (err:any) => { if (err) { console.error(err) @@ -87,10 +96,10 @@ const addEventBusListener=()=> { // console.log(e) console.log(shape.businessObject.id); - shape.businessObject.name='李四'; - bpmnModeler.value.get('modeling').updateProperties(shape,{ - name: '我是修改后的Task名称' - }) + // shape.businessObject.name='李四'; + // bpmnModeler.value.get('modeling').updateProperties(shape,{ + // name: '我是修改后的Task名称' + // }) // this.getModeling().updateProperties(this.getShape(), { // [modelName]: multiple ? [newElement] : newElement, @@ -242,7 +251,7 @@ const xmlStr = '\n' + ' L6\n' + ' L8\n' + ' \n' + - ' \n' + + ' \n' + ' \n' + ' \n' + ' \n' + diff --git a/src/comps/bpmn/custom/CustomPalette.js b/src/comps/bpmn/custom/CustomPalette.js new file mode 100644 index 0000000..66ddb35 --- /dev/null +++ b/src/comps/bpmn/custom/CustomPalette.js @@ -0,0 +1,53 @@ +// CustomPalette.js +export default class CustomPalette { + constructor(bpmnFactory, create, elementFactory, palette, translate) { + this.bpmnFactory = bpmnFactory; + this.create = create; + this.elementFactory = elementFactory; + this.translate = translate; + + palette.registerProvider(this); + } + + getPaletteEntries(element) { + const { + bpmnFactory, + create, + elementFactory, + translate + } = this; + + function createTask() { + return function(event) { + const businessObject = bpmnFactory.create('bpmn:Task'); // 其实这个也可以不要 + const shape = elementFactory.createShape({ + type: 'bpmn:Task', + businessObject + }); + console.log(shape) // 只在拖动或者点击时触发 + create.start(event, shape); + } + } + + return { + 'create.lindaidai-task': { + group: 'model', + className: 'icon-custom lindaidai-task', + title: translate('创建一个类型为lindaidai-task的任务节点'), + action: { + dragstart: createTask(), + click: createTask() + } + } + } + } +} + +CustomPalette.$inject = [ + 'bpmnFactory', + 'create', + 'elementFactory', + 'palette', + 'translate' +] + diff --git a/src/comps/bpmn/custom/CustomRenderer.js b/src/comps/bpmn/custom/CustomRenderer.js new file mode 100644 index 0000000..69cff3b --- /dev/null +++ b/src/comps/bpmn/custom/CustomRenderer.js @@ -0,0 +1,104 @@ +import BaseRenderer from 'diagram-js/lib/draw/BaseRenderer'; + +import { + append as svgAppend, + attr as svgAttr, + create as svgCreate +} from 'tiny-svg'; +import { customElements, customConfig, hasLabelElements } from '../utils/util' +import { is } from 'bpmn-js/lib/util/ModelUtil'; + +const HIGH_PRIORITY = 1500 + +export default class CustomRenderer extends BaseRenderer { + constructor(eventBus, bpmnRenderer, modeling) { + super(eventBus, HIGH_PRIORITY); + + this.bpmnRenderer = bpmnRenderer; + this.modeling = modeling; + } + + canRender(element) { + // ignore labels + return !element.labelTarget; + } + + drawShape(parentNode, element) { + console.log(element) + const type = element.type // 获取到类型 + // if (customElements.includes(type)) { // or customConfig[type] + if (type === 'bpmn:Task') { // or customConfig[type] + const { url, attr } = customConfig[type] + // const customIcon = svgCreate('image', { + // ...attr, + // href: url + // }) + // let color = element.businessObject.color; + // console.log(element.businessObject.di); + // element.businessObject.di.set('bioc:stroke', "red") + // const shape = this.bpmnRenderer.drawShape(parentNode, element); + const myShape = svgCreate('rect',{ + "width":attr.width, + "height":attr.height, + "fill":"transparent", + "stroke":"red", + "stroke-width":"1", + }) + svgAppend(parentNode, myShape) + + const customDiv = svgCreate('text', { + "font-size": "14", + "fill": "#000" + }) + customDiv.innerHTML="Q1\n" + + " Q2\n" + + " Q3\n" + + " Q4\n" + + " $ 223\n" + + " $ 183\n" + + " $ 277\n" + + " $ 402"; + element['width'] = attr.width // 这里我是取了巧, 直接修改了元素的宽高 + element['height'] = attr.height + // let color = element.businessObject.color + // element.businessObject.di.set('bioc:stroke', color) + // svgAppend(parentNode, customIcon) + svgAppend(parentNode, customDiv) + // 判断是否有name属性来决定是否要渲染出label + // if (!hasLabelElements.includes(type) && element.businessObject.name) { + // const text = svgCreate('text', { + // x: attr.x, + // y: attr.y + attr.height + 20, + // "font-size": "14", + // "fill": "#000" + // }) + // text.innerHTML = element.businessObject.name + // svgAppend(parentNode, text) + // console.log(text) + // } + // this.modeling.resizeShape(element, { + // x: element.x, + // y: element.y, + // width: element['width'] / 2, + // height: element['height'] / 2 + // }) + // return customIcon + return myShape + } + // else if (true) { + // console.log('我是绿色的') + // // let color = element.businessObject.color + // // element.businessObject.di.set('bioc:stroke', color) + // const shape = this.bpmnRenderer.drawShape(parentNode, element) + // return shape + // } + const shape = this.bpmnRenderer.drawShape(parentNode, element) + return shape + } + + getShapePath(shape) { + return this.bpmnRenderer.getShapePath(shape); + } +} + +CustomRenderer.$inject = ['eventBus', 'bpmnRenderer', 'modeling']; diff --git a/src/comps/bpmn/custom/index.js b/src/comps/bpmn/custom/index.js new file mode 100644 index 0000000..20c0baa --- /dev/null +++ b/src/comps/bpmn/custom/index.js @@ -0,0 +1,9 @@ +import CustomPalette from './CustomPalette' +import CustomRenderer from './CustomRenderer' + +export default { + __init__: ['customPalette', 'customRenderer'], + customPalette: ['type', CustomPalette], + customRenderer: ['type', CustomRenderer] +} + diff --git a/src/comps/bpmn/customModeler/custom/CustomPalette.js b/src/comps/bpmn/customModeler/custom/CustomPalette.js new file mode 100644 index 0000000..bcc913f --- /dev/null +++ b/src/comps/bpmn/customModeler/custom/CustomPalette.js @@ -0,0 +1,91 @@ +/** + * A palette that allows you to create BPMN _and_ custom elements. + */ +export default function PaletteProvider(palette, create, elementFactory, globalConnect, bpmnFactory) { + this.create = create + this.elementFactory = elementFactory + this.globalConnect = globalConnect + this.bpmnFactory = bpmnFactory + + palette.registerProvider(this) +} + +PaletteProvider.$inject = [ + 'palette', + 'create', + 'elementFactory', + 'globalConnect', + 'bpmnFactory' +] + +PaletteProvider.prototype.getPaletteEntries = function(element) { + const { + create, + elementFactory, + bpmnFactory + } = this; + + function createTask() { + return function(event) { + const businessObject = bpmnFactory.create('bpmn:Task', { custom: 2 }); + // businessObject['custom'] = 1 // 这样不行 + const shape = elementFactory.createShape({ + type: 'bpmn:Task', + businessObject + }); + const label = elementFactory.createLabel(); + console.log(shape) // 只在拖动或者点击时触发 + console.log(label) // 只在拖动或者点击时触发 + create.start(event, shape); + // create.start(event, label); + } + } + + function createStratEvent() { + return function(event) { + const shape = elementFactory.createShape({ + type: 'bpmn:StartEvent' + }); + create.start(event, shape); + } + } + + function createGateway() { + return function(event) { + const shape = elementFactory.createShape({ + type: 'bpmn:ExclusiveGateway' + }); + create.start(event, shape); + } + } + + return { + 'create.start-event': { + group: 'event', + className: 'icon-custom icon-custom-start', + title: '创建开始节点', + action: { + dragstart: createStratEvent(), + click: createStratEvent() + } + }, + 'create.lindaidai-task': { + group: 'model', + className: 'icon-custom lindaidai-task', + title: '创建一个类型为lindaidai-task的任务节点', + action: { + dragstart: createTask(), + click: createTask() + } + }, + 'create.exclusive-gateway': { + group: 'gateway', + className: 'bpmn-icon-gateway-none', + title: '创建一个网关', + action: { + dragstart: createGateway(), + click: createGateway() + } + } + } +} diff --git a/src/comps/bpmn/customModeler/custom/CustomRenderer.js b/src/comps/bpmn/customModeler/custom/CustomRenderer.js new file mode 100644 index 0000000..05e2d51 --- /dev/null +++ b/src/comps/bpmn/customModeler/custom/CustomRenderer.js @@ -0,0 +1,100 @@ +/* eslint-disable no-unused-vars */ +import inherits from 'inherits' + +import BaseRenderer from 'diagram-js/lib/draw/BaseRenderer' +import { + isObject, + assign, + forEach +} from 'min-dash'; +import { + append as svgAppend, + create as svgCreate, + classes as svgClasses +} from 'tiny-svg' + +import { customElements, customConfig, hasLabelElements } from '../../utils/util' +/** + * A renderer that knows how to render custom elements. + */ +export default function CustomRenderer(eventBus, styles, textRenderer) { + BaseRenderer.call(this, eventBus, 2000) + + var computeStyle = styles.computeStyle + + function renderLabel(parentGfx, label, options) { + + options = assign({ + size: { + width: 100 + } + }, options); + + var text = textRenderer.createText(label || '', options); + + svgClasses(text).add('djs-label'); + + svgAppend(parentGfx, text); + + return text; + } + + this.drawCustomElements = function(parentNode, element) { + console.log(element) + const type = element.type // 获取到类型 + if (type !== 'label') { + if (customElements.includes(type)) { // or customConfig[type] + const { url, attr } = customConfig[type] + const customIcon = svgCreate('image', { + ...attr, + href: url + }) + element['width'] = attr.width // 这里我是取了巧, 直接修改了元素的宽高 + element['height'] = attr.height + svgAppend(parentNode, customIcon) + console.log(element.labels.length) + console.log(element.label) + // 判断是否有name属性来决定是否要渲染出label + // if (!hasLabelElements.includes(type) && element.businessObject.name) { + // const text = svgCreate('text', { + // x: attr.x, + // y: attr.y + attr.height + 20, + // "font-size": "14", + // "fill": "#000" + // }) + // text.innerHTML = element.businessObject.name + // svgAppend(parentNode, text) + // console.log(text) + // } + // renderLabel(parentNode, element.label) + return customIcon + } + const shape = this.bpmnRenderer.drawShape(parentNode, element) + return shape + } else { + element + } + } +} + +inherits(CustomRenderer, BaseRenderer) + +CustomRenderer.$inject = ['eventBus', 'styles', 'textRenderer'] + +CustomRenderer.prototype.canRender = function(element) { + // ignore labels + return true + // return !element.labelTarget; +} + +CustomRenderer.prototype.drawShape = function(p, element) { + console.log(element) + console.log(element.type) + if (customElements.includes(element.type)) { + return this.drawCustomElements(p, element) + } +} + +CustomRenderer.prototype.getShapePath = function(shape) { + console.log(shape) +} \ No newline at end of file diff --git a/src/comps/bpmn/customModeler/custom/index.js b/src/comps/bpmn/customModeler/custom/index.js new file mode 100644 index 0000000..0da2e47 --- /dev/null +++ b/src/comps/bpmn/customModeler/custom/index.js @@ -0,0 +1,9 @@ +import CustomPalette from './CustomPalette' +import CustomRenderer from './CustomRenderer' +// import CustomContextPadProvider from './CustomContextPadProvider' +export default { + __init__: ['paletteProvider', 'customRenderer', 'contextPadProvider'], + paletteProvider: ['type', CustomPalette], + customRenderer: ['type', CustomRenderer], + // contextPadProvider: ['type', CustomContextPadProvider] +} diff --git a/src/comps/bpmn/customModeler/index.js b/src/comps/bpmn/customModeler/index.js new file mode 100644 index 0000000..9758997 --- /dev/null +++ b/src/comps/bpmn/customModeler/index.js @@ -0,0 +1,19 @@ +import Modeler from 'bpmn-js/lib/Modeler' + +import inherits from 'inherits' + +import CustomModule from './custom' + +export default function CustomModeler(options) { + Modeler.call(this, options) + + this._customElements = [] +} + +inherits(CustomModeler, Modeler) + +CustomModeler.prototype._modules = [].concat( + CustomModeler.prototype._modules, [ + CustomModule + ] +) \ No newline at end of file diff --git a/src/comps/bpmn/utils/util.js b/src/comps/bpmn/utils/util.js new file mode 100644 index 0000000..7126b70 --- /dev/null +++ b/src/comps/bpmn/utils/util.js @@ -0,0 +1,16 @@ +const customElements = ['bpmn:Task', 'bpmn:StartEvent'] // 自定义元素的类型 +const customConfig = { // 自定义元素的配置 + 'bpmn:Task': { + // 'url': require('@assets/rules.png'), + // 'url': require('../../assets/rules.png'), + // 'url': 'https://hexo-blog-1256114407.cos.ap-shenzhen-fsi.myqcloud.com/rules.png', + 'attr': { x: 0, y: 0, width: 200, height: 300} + }, + 'bpmn:StartEvent': { + 'url': 'https://hexo-blog-1256114407.cos.ap-shenzhen-fsi.myqcloud.com/start.png', + 'attr': { x: 0, y: 0, width: 40, height: 40 } + } +} +const hasLabelElements = ['bpmn:StartEvent', 'bpmn:EndEvent'] // 一开始就有label标签的元素类型 + +export { customElements, customConfig, hasLabelElements } diff --git a/src/comps/gen/GenAtt.vue b/src/comps/gen/GenAtt.vue new file mode 100644 index 0000000..4cb5ac6 --- /dev/null +++ b/src/comps/gen/GenAtt.vue @@ -0,0 +1,98 @@ + + + + diff --git a/src/comps/gen/GenUpload.vue b/src/comps/gen/GenUpload.vue index 6b95c0e..24923da 100644 --- a/src/comps/gen/GenUpload.vue +++ b/src/comps/gen/GenUpload.vue @@ -15,7 +15,7 @@ @@ -50,8 +50,16 @@ const state = reactive({ const upload = ref() const dialogVisible = ref(false); -const openModal = async () => { - state.uploadUrl=`${import.meta.env.VITE_API_URL}sa/agent/main/imp` +const openModal = async (url:string) => { + if(url){ + if(url.startsWith("/")){ + state.uploadUrl=`${import.meta.env.VITE_API_URL}`+url.substring(1,url.length-1); + }else{ + state.uploadUrl=`${import.meta.env.VITE_API_URL}`+url; + } + }else{ + state.uploadUrl=`${import.meta.env.VITE_API_URL}gen/oss/upload` + } dialogVisible.value = true; }; @@ -62,10 +70,10 @@ onMounted(() => { }); const emits = defineEmits(['close']); -const handleConfirm = () => { - ElMessage.warning("演示模式不支持导入") - //upload.value!.submit(); - emits('close', { id: '333' }); +const handleConfirm =async () => { + // ElMessage.warning("演示模式不支持导入") + await upload.value!.submit(); + emits('close', { uptag: true }); dialogVisible.value = false; }; @@ -75,7 +83,6 @@ const clearAndcloseModal = () => { }; - diff --git a/src/pages/ass/oss/config/index.vue b/src/pages/ass/oss/config/index.vue new file mode 100644 index 0000000..3de2c8f --- /dev/null +++ b/src/pages/ass/oss/config/index.vue @@ -0,0 +1,81 @@ + + + + + diff --git a/src/pages/ass/oss/main/edit.vue b/src/pages/ass/oss/main/edit.vue new file mode 100644 index 0000000..74743d8 --- /dev/null +++ b/src/pages/ass/oss/main/edit.vue @@ -0,0 +1,92 @@ + + + + diff --git a/src/pages/ass/oss/main/index.vue b/src/pages/ass/oss/main/index.vue new file mode 100644 index 0000000..a53b0dc --- /dev/null +++ b/src/pages/ass/oss/main/index.vue @@ -0,0 +1,124 @@ + + + + + diff --git a/src/pages/bi/collect/conn/edit.vue b/src/pages/bi/collect/conn/edit.vue new file mode 100644 index 0000000..2cfc180 --- /dev/null +++ b/src/pages/bi/collect/conn/edit.vue @@ -0,0 +1,119 @@ + + + + diff --git a/src/pages/bi/collect/conn/index.vue b/src/pages/bi/collect/conn/index.vue new file mode 100644 index 0000000..b09c629 --- /dev/null +++ b/src/pages/bi/collect/conn/index.vue @@ -0,0 +1,112 @@ + + + + + diff --git a/src/pages/bi/collect/data/edit.vue b/src/pages/bi/collect/data/edit.vue new file mode 100644 index 0000000..43be86d --- /dev/null +++ b/src/pages/bi/collect/data/edit.vue @@ -0,0 +1,320 @@ + + + diff --git a/src/pages/bi/collect/data/index.vue b/src/pages/bi/collect/data/index.vue new file mode 100644 index 0000000..88f7f6c --- /dev/null +++ b/src/pages/bi/collect/data/index.vue @@ -0,0 +1,115 @@ + + + + diff --git a/src/pages/bi/collect/data/tree.vue b/src/pages/bi/collect/data/tree.vue new file mode 100644 index 0000000..e2efa97 --- /dev/null +++ b/src/pages/bi/collect/data/tree.vue @@ -0,0 +1,151 @@ + + + + diff --git a/src/pages/bi/global/mod/edit.vue b/src/pages/bi/global/mod/edit.vue new file mode 100644 index 0000000..98506d1 --- /dev/null +++ b/src/pages/bi/global/mod/edit.vue @@ -0,0 +1,127 @@ + + + diff --git a/src/pages/de/cust/main/index.vue b/src/pages/bi/global/mod/index.vue similarity index 96% rename from src/pages/de/cust/main/index.vue rename to src/pages/bi/global/mod/index.vue index 7216f4e..61ffbf4 100644 --- a/src/pages/de/cust/main/index.vue +++ b/src/pages/bi/global/mod/index.vue @@ -31,7 +31,7 @@ border stripe @selection-change='listSelect($event,state)'> - +