From f4b7cfb7f1477d2860d08a69ef48728412c00fd2 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期三, 01 五月 2024 00:25:52 +0800 Subject: [PATCH] mes工艺路线更新 --- src/components/FlowChart/src/FlowChart.vue | 217 ++++++++++++++---------------------------------------- 1 files changed, 57 insertions(+), 160 deletions(-) diff --git a/src/components/FlowChart/src/FlowChart.vue b/src/components/FlowChart/src/FlowChart.vue index 134da94..8b4f524 100644 --- a/src/components/FlowChart/src/FlowChart.vue +++ b/src/components/FlowChart/src/FlowChart.vue @@ -1,25 +1,14 @@ <template> <div class="h-full" :class="prefixCls"> - <FlowChartToolbar :prefixCls="prefixCls" v-if="toolbar" @view-data="handlePreview" + <FlowChartToolbar + :prefixCls="prefixCls" + v-if="toolbar" + @view-data="handlePreview" @save-data="handleSave" - @add-data="handleAdd"/> - <a-layout style="min-height: 100vh"> - <a-layout-content> - <div ref="lfElRef" class="h-full"></div> - </a-layout-content> - <a-layout-sider - width="450" - style="background: #fafafa; border-left: 1px solid #d9d9d9; padding: 20px" - ><BasicForm - autoFocusFirstItem - :labelWidth="80" - :schemas="schemas" - :actionColOptions="{ span: 24 }" - :submitButtonOptions="{ text: '纭畾' }" - @submit="handleSubmit" - @reset="handleReset" - /></a-layout-sider> - </a-layout> + @add-data="handleAdd" + @addlf="handleAddlf" + /> + <div ref="lfElRef" class="h-full"></div> <BasicModal @register="register" title="娴佺▼鏁版嵁" width="50%"> <JsonPreview :data="graphData" /> </BasicModal> @@ -41,135 +30,18 @@ import { configDefaultDndPanel } from './config'; import '@logicflow/core/dist/style/index.css'; import '@logicflow/extension/lib/style/index.css'; - import { BasicForm, FormSchema } from '/@/components/Form/index'; - import { getOperAllList } from '/@/api/tigerapi/mes/oper'; import { useGlobSetting } from '/@/hooks/setting'; import customEdge from './customEdge'; + import { useMessage } from '/@/hooks/web/useMessage'; + import { useI18n } from '/@/hooks/web/useI18n'; + import actionRect from './actionRect'; - const isRuter = (type: string) => type === '0'; - const isOper = (type: string) => type === '1'; - const schemas: FormSchema[] = [ - // { - // field: 'divider-basic', - // component: 'Divider', - // label: '灞炴�ч〉', - // }, - { - field: 'func_type', - label: '灞炴�ч〉', - component: 'RadioButtonGroup', - defaultValue: '0', - componentProps: { - options: [ - { label: '宸ヨ壓娴佺▼', value: '0' }, - { label: '宸ュ簭', value: '1' }, - ], - }, - colProps: { lg: 24, md: 24 }, - }, - { - field: 'OPER_CODE', - component: 'ApiSelect', - label: '閫夋嫨宸ュ簭', - componentProps: { - api: getOperAllList, - // params: { - // id: 1, - // }, - resultField: 'items', - labelField: 'OPER_NAME', - valueField: 'OPER_CODE', - // not request untill to select - immediate: false, - onChange: (e) => { - console.log('selected:', e); - }, - // atfer request callback - onOptionsChange: (options) => { - console.log('get options', options.length, options); - }, - }, - ifShow: ({ values }) => isOper(values.func_type), - }, - { - field: 'field2', - component: 'Input', - label: '宸ュ簭绫诲瀷', - // componentProps:{}, - // can func - componentProps: ({ schema, formModel }) => { - console.log('form:', schema); - console.log('formModel:', formModel); - return { - placeholder: '娴嬭瘯', - onChange: (e: any) => { - console.log(e); - }, - }; - }, - renderComponentContent: () => { - return { - prefix: () => '宸ュ簭', - suffix: () => '绫诲瀷', - }; - }, - }, - { - field: 'field3', - component: 'Select', - label: '宸ュ簭琛屼负', - componentProps: { - options: [ - { - label: '瀛樺偍杩囩▼', - value: '1', - key: '1', - }, - { - label: '鏉$爜瑙勫垯', - value: '2', - key: '2', - }, - { - label: '琛屼负涓�', - value: '3', - key: '3', - }, - { - label: '琛屼负浜�', - value: '4', - key: '4', - }, - { - label: '琛屼负涓�', - value: '5', - key: '5', - }, - ], - }, - }, - { - field: 'field4', - component: 'Switch', - label: '鏄惁璁$畻鐩撮�氱巼', - colProps: { - span: 16, - }, - labelWidth: 200, - }, - { - field: 'field5', - component: 'Switch', - label: '鏄惁鍙烦绔�', - colProps: { - span: 16, - }, - labelWidth: 200, - }, - ]; + const { notification } = useMessage(); + const { t } = useI18n(); + export default defineComponent({ name: 'FlowChart', - components: { BasicModal, FlowChartToolbar, JsonPreview, BasicForm }, + components: { BasicModal, FlowChartToolbar, JsonPreview }, props: { flowOptions: { type: Object as PropType<Definition>, @@ -189,7 +61,8 @@ type: Array, }, }, - setup(props) { + emits: ['view-data', 'save-data', 'add-lf', 'select-node', 'click-blank'], + setup(props, { emit }) { const globSetting = useGlobSetting(); const lfElRef = ref(null); const graphData = ref({}); @@ -273,6 +146,7 @@ }); const lf = unref(lfInstance)!; // lf?.setDefaultEdgeType('line'); + lf.register(actionRect); onRender(); lf?.setPatternItems(props.patternItems || configDefaultDndPanel(lf)); } @@ -287,18 +161,34 @@ // const lFData = toLogicFlowData(props.data); lf.render(props.data); - if (globSetting.apiUrl == 'http://localhost:9528/api') { - lf.on('anchor:drop', (data) => { - const nodeData = data.nodeModel.getData(); - if (nodeData.properties.isReturn === true) { - data.nodeModel.graphModel.edges.forEach((element) => { - if (element.sourceNodeId === data.nodeModel.id) { - lf.changeEdgeType(element.id, 'custom-edge'); - } - }); - } - }); - } + lf.on('anchor:drop', (data) => { + const nodeData = data.nodeModel.getData(); + if (nodeData.properties.isReturn === true) { + console.log(11, nodeData.properties.isReturn); + data.nodeModel.graphModel.edges.forEach((element) => { + if (element.sourceNodeId === data.nodeModel.id) { + lf.changeEdgeType(element.id, 'custom-edge'); + } + }); + } + }); + lf.on('node:click,edge:click', (data) => { + if (data.isSelected) { + console.log(data.data.text.value, data.isSelected); + // notification.success({ + // message: t('鐐瑰嚮浜嗚妭鐐�'), + // description: `${data.data.text.value}: ${data.isSelected}`, + // duration: 3, + // }); + emit('select-node', data); + } else { + console.log(data.data.type); + } + }); + + lf.on('blank:mousedown', (e) => { + emit('click-blank'); + }); } function handlePreview() { @@ -311,11 +201,12 @@ } function handleSave() { - console.log('handleSave'); + // console.log('handleSave'); const lf = unref(lfInstance); if (!lf) { return; } + emit('save-data', lf); } function handleAdd() { @@ -328,6 +219,14 @@ lf.render({}); } + function handleAddlf() { + const lf = unref(lfInstance); + if (!lf) { + return; + } + emit('add-lf', lf); + } + onMounted(init); return { @@ -336,11 +235,9 @@ lfElRef, handlePreview, graphData, - schemas, - handleReset: () => {}, - handleSubmit: (_values: any) => {}, handleSave, handleAdd, + handleAddlf, }; }, }); -- Gitblit v1.9.3