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