From 54bd2e89b8689e9aa8ab6edcda003da46065cb19 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期日, 04 八月 2024 18:44:55 +0800
Subject: [PATCH] 工单工艺路线编辑

---
 src/views/tigerprojects/mes/eng/route/index.vue | 1156 +++++++++++++++++++++++++++++++--------------------------
 1 files changed, 621 insertions(+), 535 deletions(-)

diff --git a/src/views/tigerprojects/mes/eng/route/index.vue b/src/views/tigerprojects/mes/eng/route/index.vue
index e35e055..c7e85c1 100644
--- a/src/views/tigerprojects/mes/eng/route/index.vue
+++ b/src/views/tigerprojects/mes/eng/route/index.vue
@@ -2,15 +2,34 @@
   <PageWrapper title="宸ヨ壓娴佺▼鍥�" content="鏍规嵁鐢熶骇宸ヨ壓璁捐宸ヨ壓娴佺▼" contentFullHeight fixedHeight>
     <Layout class="h-full">
       <LayoutContent :style="{ overflow: 'initial' }">
-        <FlowChart :data="routeData" @save-data="handleSave" @add-lf="handleAddlf" @select-node="handleSelect"
-          @click-blank="clickBlank" @init="init" />
+        <FlowChart
+          :data="routeData"
+          @save-data="handleSave"
+          @add-lf="handleAddlf"
+          @select-node="handleSelect"
+          @click-blank="clickBlank"
+          @init="init"
+        />
       </LayoutContent>
-      <LayoutSider :class="`right`" collapsible :reverseArrow="true" collapsedWidth="0" width="400"
-        style="background: #fafafa; border-left: 1px solid #d9d9d9; padding: 10px"
-        :zeroWidthTriggerStyle="{ 'margin-top': '-70px', 'background-color': 'gray' }">
-        <PropsPanel ref="propsPanel" :activeKey="routeConfig.activeKey" :IsOperation="IsOperation" :title="title"
-          :posttitle="posttitle" :colSlots="colSlots" :crudColSlots="crudColSlots" :entityName="entityName" @change-name="changeName"
-          @change-node-name="changeNodeName">
+      <LayoutSider
+        :class="`right`"
+        collapsible
+        :reverseArrow="true"
+        collapsedWidth="0"
+        width="400"
+        style="padding: 10px; border-left: 1px solid #d9d9d9; background: #fafafa"
+        :zeroWidthTriggerStyle="{ 'margin-top': '-70px', 'background-color': 'gray' }"
+      >
+        <PropsPanel
+          ref="propsPanel"
+          :activeKey="routeConfig.activeKey"
+          :IsOperation="IsOperation"
+          :title="title"
+          :posttitle="posttitle"
+          :entityName="entityName"
+          @change-name="changeName"
+          @change-node-name="changeNodeName"
+        >
           <!-- <template v-for="item of formConfig.schemas" #[`${item.component}Props`]="data">
             <slot
               :name="`${item.component}Props`"
@@ -25,447 +44,537 @@
   </PageWrapper>
 </template>
 
-<script lang="ts" setup name="Route_View">
-import { FlowChart } from '/@/components/FlowChart';
-import { PageWrapper } from '/@/components/Page';
-import { SaveRouteData, getRouteData } from '/@/api/tigerapi/mes/router';
-import { useModal } from '/@/components/Modal';
-import RouteModal from './RouteModal.vue';
-import { onMounted, ref, unref, Ref, provide, reactive, nextTick, watch } from 'vue';
-import { Layout, LayoutContent, LayoutSider } from 'ant-design-vue';
-import {
-  RouteData,
-  node,
-  edge,
-  MES_ROUTE_NODE,
-  MES_ROUTE_EDGE,
-  MES_ROUTE_NODE_ACT,
-  MES_ROUTE,
-  nodeText,
-} from '/@/api/tigerapi/model/router';
-import { useUserStore } from '/@/store/modules/user';
-import RouteDrawer from './RouteDrawer.vue';
-import { useDrawer } from '/@/components/Drawer';
-import PropsPanel from './components/PropsPanel.vue';
-import { IRouteConfig } from './typings/v-form-component';
-import { useMessage } from '/@/hooks/web/useMessage';
-import { useI18n } from '/@/hooks/web/useI18n';
-import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is';
-import { useRoute } from 'vue-router';
-import { useTabs } from '/@/hooks/web/useTabs';
-import LogicFlow from '@logicflow/core';
-import { getEntity } from '/@/api/tigerapi/system';
+<script lang="ts" setup>
+  import { FlowChart } from '/@/components/FlowChart';
+  import { PageWrapper } from '/@/components/Page';
+  import {
+    SaveRouteData,
+    SaveWoRouteData,
+    getRouteData,
+    getWoRouteData,
+  } from '/@/api/tigerapi/mes/router';
+  import { useModal } from '/@/components/Modal';
+  import RouteModal from './RouteModal.vue';
+  import { onMounted, ref, unref, Ref, provide, reactive, nextTick, watch } from 'vue';
+  import { Layout, LayoutContent, LayoutSider } from 'ant-design-vue';
+  import {
+    RouteData,
+    node,
+    edge,
+    MES_ROUTE_NODE,
+    MES_ROUTE_EDGE,
+    MES_ROUTE_NODE_ACT,
+    MES_ROUTE,
+    nodeText,
+  } from '/@/api/tigerapi/model/router';
+  import { useUserStore } from '/@/store/modules/user';
+  import RouteDrawer from './RouteDrawer.vue';
+  import { useDrawer } from '/@/components/Drawer';
+  import PropsPanel from './components/PropsPanel.vue';
+  import { IRouteConfig } from './typings/v-form-component';
+  import { useMessage } from '/@/hooks/web/useMessage';
+  import { useI18n } from '/@/hooks/web/useI18n';
+  import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is';
+  import { useRoute } from 'vue-router';
+  import { useTabs } from '/@/hooks/web/useTabs';
+  import LogicFlow from '@logicflow/core';
 
-const [registerDrawer, { openDrawer }] = useDrawer();
-const [registerModal, { openModal }] = useModal();
-const { t } = useI18n();
-const route = useRoute();
-const { setTitle } = useTabs();
-const { notification, createErrorModal } = useMessage();
-const routeConfig = reactive({
-  // 琛ㄥ崟閰嶇疆
-  schemas: [],
-  layout: 'horizontal',
-  labelLayout: 'flex',
-  labelWidth: 100,
-  labelCol: {},
-  wrapperCol: {},
-  currentItem: {} as MES_ROUTE_NODE,
-  currentAct: {} as MES_ROUTE_NODE_ACT,
-  routeData: {} as RouteData,
-  activeKey: 1,
-} as IRouteConfig);
-const currRoute = ref({} as MES_ROUTE);
-const routeData = ref({
-  nodes: [],
-  edges: [],
-});
-provide<Ref<IRouteConfig>>('routeConfig', routeConfig);
-provide<Ref<MES_ROUTE>>('mesRoute', currRoute);
-const selectnode = ref({} as node);
-const currRotId = ref(route.params?.id);
-const colSlots = ref<any>([]);
-const crudColSlots = ref<any>([]);
-const entityName = ref<any>('MES_POSITION');
-const props = defineProps({
-  rotId: { type: String, default: '' },
-});
-const IsOperation = ref(false);
-const title = ref('');
-const posttitle = ref('');
-watch(
-  () => props.rotId,
-  (v) => {
-    if (v !== currRotId.value) {
-      currRotId.value = v;
-      if (!isNullOrUnDef(unref(currlf))) {
-        unref(currlf).render({});
-        routeData.value = {
-          nodes: [],
-          edges: [],
-        };
-        init(currlf);
-      }
-    }
-  },
-  { deep: true },
-);
-
-const currlf = ref(null) as Ref<LogicFlow | null>;
-console.log(currRotId.value);
-
-onMounted(() => { });
-/**
- * @description: 宸ヨ壓璺嚎鍒濆鍖�
- * @param {*} lf
- * @return {*}
- */
-async function init(lf) {
-  currlf.value = unref(lf);
-  //閫氳繃宸ヨ壓璺嚎ID鑾峰彇鍥惧舰鏁版嵁锛屽苟娓叉煋
-  var _data = await getRouteData(currRotId.value);
-  console.log('缁勪欢宸叉寕杞�', _data);
-  //宸ヨ壓璺嚎鍏ㄤ俊鎭紝鍖呮嫭Node銆丒dge鍜孉ct
-  routeConfig.routeData = _data.Data;
-  if (_data.Data != null) {
-    //宸ヨ壓璺嚎涓讳俊鎭�
-    currRoute.value = _data.Data.route;
-    if (!isNullOrEmpty(currRotId.value) && isNullOrEmpty(props.rotId)) {
-      setTitle('璁捐锛氬伐鑹鸿矾绾�-' + currRoute.value.ROT_CODE);
-    }
-    _data.Data.nodes.forEach((n) => {
-      n.node.properties = JSON.parse(n.node.properties);
-      n['node']['text']['value'] = n.NODE_NAME;
-      routeData.value.nodes.push(n['node']);
-    });
-    console.log('111', routeData.value);
-    _data.Data.edges.forEach((e) => {
-      e.edge.properties = JSON.parse(e.edge.properties);
-      routeData.value.edges.push(e.edge);
-    });
-    _data.Data.acts.forEach((act) => {
-      act.node.properties = JSON.parse(act.node.properties);
-      routeData.value.nodes.push(act.node);
-    });
-    console.log('init', unref(lf).getGraphData(), JSON.parse(JSON.stringify(routeData.value)));
-    unref(lf).render(routeData.value);
-  }
-}
-
-const GetRotData = (lf) => {
-  var currRotData: RouteData = {
-    route: {
-      ID: currRoute.value.ID,
-      CREATE_TIME: new Date(),
-      CREATE_USER: useUserStore().getUserInfo.userId as string,
-      UPDATE_TIME: new Date(),
-      UPDATE_USER: useUserStore().getUserInfo.userId as string,
-      GHOST_ROW: false,
-      ROT_CODE: currRoute.value.ROT_CODE,
-      ROT_NAME: currRoute.value.ROT_NAME,
-      ROT_TYPE: currRoute.value.ROT_TYPE,
-      ROT_VER: currRoute.value.ROT_VER,
-      IS_ACTIVE: currRoute.value.IS_ACTIVE,
-      REMARK: currRoute.value.REMARK,
-      AUTH_ORG: '',
-      AUTH_PROD: '',
-      AUTH_WH: '',
-    },
+  defineOptions({ name: 'Route_View' });
+  const { refreshPage } = useTabs();
+  const [registerDrawer, { openDrawer }] = useDrawer();
+  const [registerModal, { openModal }] = useModal();
+  const { t } = useI18n();
+  const route = useRoute();
+  const { setTitle } = useTabs();
+  const { notification, createErrorModal } = useMessage();
+  const routeConfig = reactive<IRouteConfig>({
+    // 琛ㄥ崟閰嶇疆
+    schemas: [],
+    layout: 'horizontal',
+    labelLayout: 'flex',
+    labelWidth: 100,
+    labelCol: {},
+    wrapperCol: {},
+    currentItem: {} as MES_ROUTE_NODE,
+    currentAct: {} as MES_ROUTE_NODE_ACT,
+    routeData: {} as RouteData,
+    activeKey: 1,
+    isWorkOrder: false,
+  });
+  const currRoute = ref({} as MES_ROUTE);
+  const routeData = ref({
     nodes: [],
     edges: [],
-    acts: [],
-  };
-  var _nodes = unref(lf).getGraphData().nodes as node[];
-  var _edges = unref(lf).getGraphData().edges as edge[];
-  var _num = 1;
-  const diffnodes = routeConfig.routeData.nodes.filter((itemA) => _nodes.some((itemB) => itemB.id === itemA.ID));
-  const diffacts = routeConfig.routeData.acts.filter((itemA) => _nodes.some((itemB) => itemB.id === itemA.ID),);
-  _nodes.forEach((n) => {
-    if (n.properties.operType && n.properties.operType == 'Action') {
-      var _diffacts = diffacts.length > 0 ? diffacts : routeConfig.routeData.acts;
-      _diffacts.forEach((a) => {
-        if (a.ID == n.id) {
-          var act: MES_ROUTE_NODE_ACT = {
-            ID: n.id,
-            CREATE_TIME: routeConfig.routeData.route.CREATE_TIME,
-            CREATE_USER: useUserStore().getUserInfo.userId as string,
-            UPDATE_TIME: routeConfig.routeData.route.UPDATE_TIME,
-            UPDATE_USER: useUserStore().getUserInfo.userId as string,
-            GHOST_ROW: false,
-            ROT_ID: routeConfig.routeData.route.ID,
-            GPH_TYPE: n.type,
-            GPH_X: n.x,
-            GPH_Y: n.y,
-            GPH_PROP: JSON.stringify(n.properties),
-            GPH_TEXT: n.text.value,
-            REMARK: a.REMARK,
-            AUTH_ORG: '',
-            AUTH_PROD: '',
-            AUTH_WH: '',
-            OPTION_1: '',
-            OPTION_2: '',
-            OPTION_3: '',
-            OPTION_4: '',
-            OPTION_5: '',
-            ACT_NAME: isNullOrEmpty(a.ACT_NAME) ? `${n.text.value}_${_num}` : a.ACT_NAME,
-            ACT_CODE: a.ACT_CODE,
-            NEED_SETUP: a.NEED_SETUP,
-            NODE_ID: a.NODE_ID,
-            ACT_TYPE: a.ACT_TYPE,
-            // DO_TYPE: a.DO_TYPE,
-            // DO_METHOD: a.DO_METHOD,
-            // DO_IF_PASS: a.DO_IF_PASS,
-            // DO_IF_FAIL: a.DO_IF_FAIL,
-            node: {} as node,
-            IS_ACTIVE: a.IS_ACTIVE,
-          };
-          var pnode = [n];
-          while (pnode[0].properties.operType == 'Action') {
-            pnode = unref(lf).getNodeIncomingNode(pnode[0].id);
-            if (pnode[0].properties.operType != 'Action') {
-              act.NODE_ID = pnode[0].id;
-              break;
-            }
-          }
-          currRotData.acts.push(act);
-        }
-      });
-      routeConfig.routeData.acts = _diffacts;
-    } else {
-      var _diffnodes = diffnodes.length > 0 ? diffnodes : routeConfig.routeData.nodes;
-      _diffnodes.forEach((nd) => {
-        if (nd.ID == n.id) {
-          var node: MES_ROUTE_NODE = {
-            ID: n.id,
-            CREATE_TIME: currRotData.route.CREATE_TIME,
-            CREATE_USER: useUserStore().getUserInfo.userId as string,
-            UPDATE_TIME: currRotData.route.UPDATE_TIME,
-            UPDATE_USER: useUserStore().getUserInfo.userId as string,
-            GHOST_ROW: false,
-            NODE_NAME: isNullOrEmpty(nd.NODE_NAME) ? `${n.text.value}_${_num}` : nd.NODE_NAME,
-            ROT_ID: currRotData.route.ID,
-            SEGMENT: nd.SEGMENT,
-            OPER_CODE: isNullOrEmpty(nd.OPER_CODE) ? n.type : nd.OPER_CODE,
-            GPH_TYPE: n.type,
-            GPH_X: n.x,
-            GPH_Y: n.y,
-            GPH_PROP: JSON.stringify(n.properties),
-            GPH_TEXT: n.text.value,
-            IS_ACTIVE: nd.IS_ACTIVE,
-            IS_CALC_FPY: nd.IS_CALC_FPY,
-            CAN_SKIP: nd.CAN_SKIP,
-            REMARK: nd.REMARK,
-            AUTH_ORG: '',
-            AUTH_PROD: '',
-            AUTH_WH: '',
-            IS_FIRST_NODE: 'N',
-            IS_INPUT: nd.IS_INPUT,
-            IS_OUTPUT: nd.IS_OUTPUT,
-            OPTION_1: '',
-            OPTION_2: '',
-            OPTION_3: '',
-            OPTION_4: '',
-            OPTION_5: '',
-            node: {} as node,
-          };
-          nd.GPH_TYPE = n.type;
-          nd.GPH_PROP = JSON.stringify(n.properties);
-          nd.GPH_TEXT = n.text.value;
-          nd.GPH_X = n.x;
-          nd.GPH_Y = n.y;
-          if (unref(lf).getNodeIncomingNode(n.id).length == 0) {
-            node.IS_FIRST_NODE = 'Y';
-            nd.IS_FIRST_NODE = 'Y';
-          }
-          currRotData.nodes.push(node);
-        }
-      });
-      routeConfig.routeData.nodes = _diffnodes;
-    }
-    _num++;
   });
-  routeConfig.routeData.edges = [];
-  _edges.forEach((e) => {
-    var edge: MES_ROUTE_EDGE = {
-      ID: e.id,
-      CREATE_TIME: routeConfig.routeData.route.CREATE_TIME,
-      CREATE_USER: useUserStore().getUserInfo.userId as string,
-      UPDATE_TIME: routeConfig.routeData.route.UPDATE_TIME,
-      UPDATE_USER: useUserStore().getUserInfo.userId as string,
-      GHOST_ROW: false,
-      EDGE_NAME: `${routeConfig.routeData.route.ROT_CODE}_${e.id}`,
-      ROT_ID: routeConfig.routeData.route.ID,
-      SRC_NODE: e.sourceNodeId,
-      TGT_NODE: e.targetNodeId,
-      GPH_TYPE: e.type,
-      GPH_SRC_X: e.startPoint.x,
-      GPH_SRC_Y: e.startPoint.y,
-      GPH_TGT_X: e.endPoint.x,
-      GPH_TGT_Y: e.endPoint.y,
-      GPH_PROP: JSON.stringify(e.properties),
-      GPH_POTS: JSON.stringify(e.pointsList),
-      REMARK: '',
-      AUTH_ORG: '',
-      AUTH_PROD: '',
-      AUTH_WH: '',
-      EDGE_TYPE: 0,
-      OPTION_1: '',
-      OPTION_2: '',
-      OPTION_3: '',
-      OPTION_4: '',
-      OPTION_5: '',
-      edge: {} as edge,
-    };
-    routeConfig.routeData.edges.push(edge);
-    currRotData.edges.push(edge);
+  provide<Ref<IRouteConfig>>('routeConfig', routeConfig as unknown as Ref<IRouteConfig>);
+  provide<Ref<MES_ROUTE>>('mesRoute', currRoute);
+  const selectnode = ref({} as node);
+  const currRotId = ref(route.params?.id);
+  const colSlots = ref<any>([]);
+  const crudColSlots = ref<any>([]);
+  const entityName = ref<any>('MES_POSITION');
+  const props = defineProps({
+    rotId: { type: String, default: '' },
+    rotType: { type: String, default: 'Route' },
   });
-  return currRotData;
-};
+  const IsOperation = ref(false);
+  const title = ref('');
+  const posttitle = ref('');
+  let _num = 1;
+  let _numEdge = 1;
+  watch(
+    () => props.rotId,
+    (v) => {
+      if (!isNullOrEmpty(v) && v !== currRotId.value) {
+        currRotId.value = v;
+        if (!isNullOrUnDef(unref(currlf))) {
+          unref(currlf).render({});
+          routeData.value = {
+            nodes: [],
+            edges: [],
+          };
+          init(currlf);
+        }
+      }
+    },
+    { deep: true },
+  );
 
-/*
- *淇濆瓨宸ヨ壓璺嚎浜嬩欢
- */
-async function handleSave(lf) {
-  console.log('handleSave', unref(lf).getGraphData().nodes[0]);
-  if (isNullOrEmpty(currRoute.value.ROT_CODE)) {
-    createErrorModal({
-      title: t('鏈�夋嫨'),
-      content: t('鏈�夋嫨宸ヨ壓璺嚎鎴栬�呮柊澧炲伐鑹鸿矾绾�'),
-      getContainer: () => document.body,
-    });
-  } else {
-    var hasError = false;
-    unref(lf)
-      .getGraphData()
-      .nodes.forEach((n) => {
-        if (
-          unref(lf).getNodeIncomingEdge(n.id).length == 0 &&
-          unref(lf).getNodeOutgoingEdge(n.id).length == 0
-        ) {
-          hasError = true;
-        }
+  const currlf = ref(null) as Ref<LogicFlow | null>;
+  console.log(currRotId.value);
+
+  onMounted(() => {});
+  /**
+   * @description: 宸ヨ壓璺嚎鍒濆鍖�
+   * @param {*} lf
+   * @return {*}
+   */
+  async function init(lf) {
+    currlf.value = unref(lf);
+    //閫氳繃宸ヨ壓璺嚎ID鑾峰彇鍥惧舰鏁版嵁锛屽苟娓叉煋
+    routeConfig.isWorkOrder = props.rotType == 'Wo';
+    var _data =
+      props.rotType == 'Route'
+        ? await getRouteData(currRotId.value)
+        : await getWoRouteData(currRotId.value);
+    console.log('缁勪欢宸叉寕杞�', _data);
+    //宸ヨ壓璺嚎鍏ㄤ俊鎭紝鍖呮嫭Node銆丒dge鍜孉ct
+    routeConfig.routeData = _data.Data;
+    if (_data.Data != null) {
+      //宸ヨ壓璺嚎涓讳俊鎭�
+      currRoute.value = _data.Data.route;
+      if (!isNullOrEmpty(currRotId.value) && isNullOrEmpty(props.rotId)) {
+        setTitle('璁捐锛氬伐鑹鸿矾绾�-' + currRoute.value.ROT_CODE);
+      }
+      _data.Data.nodes.forEach((n) => {
+        n.node.properties = JSON.parse(n.node.properties);
+        n['node']['text']['value'] = n.NODE_NAME;
+        routeData.value.nodes.push(n['node']);
       });
-    if (hasError) {
+      console.log('111', routeData.value);
+      _data.Data.edges.forEach((e) => {
+        e.edge.properties = JSON.parse(e.edge.properties);
+        routeData.value.edges.push(e.edge);
+      });
+      _data.Data.acts.forEach((act) => {
+        act.node.properties = JSON.parse(act.node.properties);
+        routeData.value.nodes.push(act.node);
+      });
+      console.log('init', unref(lf).getGraphData(), JSON.parse(JSON.stringify(routeData.value)));
+      unref(lf).render(routeData.value);
+    }
+  }
+
+  /**
+   * @description: 鑾峰彇宸ヨ壓璺嚎鍥炬暟鎹�
+   * @param {*} lf
+   * @return {*}
+   */
+  const GetRotData = (lf) => {
+    var currRotData: RouteData = {
+      route: {
+        ID: currRoute.value.ID,
+        CREATE_TIME: new Date(),
+        CREATE_USER: useUserStore().getUserInfo.userId as string,
+        UPDATE_TIME: new Date(),
+        UPDATE_USER: useUserStore().getUserInfo.userId as string,
+        GHOST_ROW: false,
+        ROT_CODE: currRoute.value.ROT_CODE,
+        ROT_NAME: currRoute.value.ROT_NAME,
+        ROT_TYPE: currRoute.value.ROT_TYPE,
+        ROT_VER: currRoute.value.ROT_VER,
+        IS_ACTIVE: currRoute.value.IS_ACTIVE,
+        REMARK: currRoute.value.REMARK,
+        AUTH_ORG: useUserStore().getUserInfo.orgCode,
+        AUTH_PROD: '',
+        AUTH_WH: '',
+        WORK_ORDER: currRoute.value.WORK_ORDER,
+        PROD_CODE: currRoute.value.PROD_CODE,
+        CUST_CODE: currRoute.value.CUST_CODE,
+      },
+      nodes: [],
+      edges: [],
+      acts: [],
+    };
+    var _nodes = unref(lf).getGraphData().nodes as node[];
+    var _edges = unref(lf).getGraphData().edges as edge[];
+    const diffnodes = routeConfig.routeData.nodes.filter((itemA) =>
+      _nodes.some((itemB) => itemB.id === itemA.ID),
+    );
+    const diffacts = routeConfig.routeData.acts.filter((itemA) =>
+      _nodes.some((itemB) => itemB.id === itemA.ID),
+    );
+    _nodes.forEach((n) => {
+      if (n.properties.operType && n.properties.operType == 'Action') {
+        var _diffacts = diffacts.length > 0 ? diffacts : routeConfig.routeData.acts;
+        _diffacts.forEach((a) => {
+          if (a.ID == n.id) {
+            var act: MES_ROUTE_NODE_ACT = {
+              ID: n.id,
+              CREATE_TIME: routeConfig.routeData.route.CREATE_TIME,
+              CREATE_USER: useUserStore().getUserInfo.userId as string,
+              UPDATE_TIME: routeConfig.routeData.route.UPDATE_TIME,
+              UPDATE_USER: useUserStore().getUserInfo.userId as string,
+              GHOST_ROW: false,
+              ROT_ID: routeConfig.routeData.route.ID,
+              GPH_TYPE: n.type,
+              GPH_X: n.x,
+              GPH_Y: n.y,
+              GPH_PROP: JSON.stringify(n.properties),
+              GPH_TEXT: n.text.value,
+              REMARK: a.REMARK,
+              AUTH_ORG: useUserStore().getUserInfo.orgCode,
+              AUTH_PROD: '',
+              AUTH_WH: '',
+              OPTION_1: '',
+              OPTION_2: '',
+              OPTION_3: '',
+              OPTION_4: '',
+              OPTION_5: '',
+              ACT_NAME: isNullOrEmpty(a.ACT_NAME) ? `${n.text.value}_${_num}` : a.ACT_NAME,
+              ACT_CODE: a.ACT_CODE,
+              NEED_SETUP: a.NEED_SETUP,
+              NEED_RESET: a.NEED_RESET,
+              NODE_ID: a.NODE_ID,
+              ACT_TYPE: a.ACT_TYPE,
+              // DO_TYPE: a.DO_TYPE,
+              // DO_METHOD: a.DO_METHOD,
+              // DO_IF_PASS: a.DO_IF_PASS,
+              // DO_IF_FAIL: a.DO_IF_FAIL,
+              node: {} as node,
+              IS_ACTIVE: a.IS_ACTIVE,
+              WORK_ORDER: a.WORK_ORDER,
+              PROD_CODE: a.PROD_CODE,
+              CUST_CODE: a.CUST_CODE,
+            };
+            var pnode = [n];
+            while (pnode[0].properties.operType == 'Action') {
+              pnode = unref(lf).getNodeIncomingNode(pnode[0].id);
+              if (pnode[0].properties.operType != 'Action') {
+                act.NODE_ID = pnode[0].id;
+                break;
+              }
+            }
+            currRotData.acts.push(act);
+          }
+        });
+        routeConfig.routeData.acts = _diffacts;
+      } else {
+        var _diffnodes = diffnodes.length > 0 ? diffnodes : routeConfig.routeData.nodes;
+        _diffnodes.forEach((nd) => {
+          if (nd.ID == n.id) {
+            var node: MES_ROUTE_NODE = {
+              ID: n.id,
+              CREATE_TIME: currRotData.route.CREATE_TIME,
+              CREATE_USER: useUserStore().getUserInfo.userId as string,
+              UPDATE_TIME: currRotData.route.UPDATE_TIME,
+              UPDATE_USER: useUserStore().getUserInfo.userId as string,
+              GHOST_ROW: false,
+              NODE_NAME: isNullOrEmpty(nd.NODE_NAME) ? `${n.text.value}_${_num}` : nd.NODE_NAME,
+              ROT_ID: currRotData.route.ID,
+              SEGMENT: nd.SEGMENT,
+              OPER_CODE: isNullOrEmpty(nd.OPER_CODE) ? n.type : nd.OPER_CODE,
+              GPH_TYPE: n.type,
+              GPH_X: n.x,
+              GPH_Y: n.y,
+              GPH_PROP: JSON.stringify(n.properties),
+              GPH_TEXT: n.text.value,
+              IS_ACTIVE: nd.IS_ACTIVE,
+              IS_CALC_FPY: nd.IS_CALC_FPY,
+              ALLOW_DFT_IN: nd.ALLOW_DFT_IN,
+              CAN_SKIP: nd.CAN_SKIP,
+              REMARK: nd.REMARK,
+              AUTH_ORG: useUserStore().getUserInfo.orgCode,
+              AUTH_PROD: '',
+              AUTH_WH: '',
+              IS_FIRST_NODE: 'N',
+              IS_INPUT: nd.IS_INPUT,
+              IS_OUTPUT: nd.IS_OUTPUT,
+              OPTION_1: '',
+              OPTION_2: '',
+              OPTION_3: '',
+              OPTION_4: '',
+              OPTION_5: '',
+              node: {} as node,
+              WORK_ORDER: nd.WORK_ORDER,
+              PROD_CODE: nd.PROD_CODE,
+              CUST_CODE: nd.CUST_CODE,
+            };
+            nd.GPH_TYPE = n.type;
+            nd.GPH_PROP = JSON.stringify(n.properties);
+            nd.GPH_TEXT = n.text.value;
+            nd.GPH_X = n.x;
+            nd.GPH_Y = n.y;
+            if (unref(lf).getNodeIncomingNode(n.id).length == 0) {
+              node.IS_FIRST_NODE = 'Y';
+              nd.IS_FIRST_NODE = 'Y';
+            }
+            currRotData.nodes.push(node);
+          }
+        });
+        routeConfig.routeData.nodes = _diffnodes;
+      }
+      _num++;
+    });
+    routeConfig.routeData.edges = [];
+    _edges.forEach((e) => {
+      var edge: MES_ROUTE_EDGE = {
+        ID: e.id,
+        CREATE_TIME: routeConfig.routeData.route.CREATE_TIME,
+        CREATE_USER: useUserStore().getUserInfo.userId as string,
+        UPDATE_TIME: routeConfig.routeData.route.UPDATE_TIME,
+        UPDATE_USER: useUserStore().getUserInfo.userId as string,
+        GHOST_ROW: false,
+        EDGE_NAME: `${routeConfig.routeData.route.ROT_CODE}_${e.id}`,
+        ROT_ID: routeConfig.routeData.route.ID,
+        SRC_NODE: e.sourceNodeId,
+        TGT_NODE: e.targetNodeId,
+        GPH_TYPE: e.type,
+        GPH_SRC_X: e.startPoint.x,
+        GPH_SRC_Y: e.startPoint.y,
+        GPH_TGT_X: e.endPoint.x,
+        GPH_TGT_Y: e.endPoint.y,
+        GPH_PROP: JSON.stringify(e.properties),
+        GPH_POTS: JSON.stringify(e.pointsList),
+        REMARK: '',
+        AUTH_ORG: useUserStore().getUserInfo.orgCode,
+        AUTH_PROD: '',
+        AUTH_WH: '',
+        EDGE_TYPE: 0,
+        OPTION_1: '',
+        OPTION_2: '',
+        OPTION_3: '',
+        OPTION_4: '',
+        OPTION_5: '',
+        edge: {} as edge,
+        WORK_ORDER: routeConfig.routeData.route.WORK_ORDER,
+        PROD_CODE: routeConfig.routeData.route.PROD_CODE,
+        CUST_CODE: routeConfig.routeData.route.CUST_CODE,
+      };
+      routeConfig.routeData.edges.push(edge);
+      currRotData.edges.push(edge);
+      _numEdge++;
+    });
+    return currRotData;
+  };
+
+  /*
+   *淇濆瓨宸ヨ壓璺嚎浜嬩欢
+   */
+  async function handleSave(lf) {
+    console.log('handleSave', unref(lf).getGraphData().nodes[0]);
+    if (
+      isNullOrEmpty(currRoute.value.ROT_CODE) ||
+      (props.rotType == 'Wo' && isNullOrEmpty(currRoute.value.WORK_ORDER))
+    ) {
       createErrorModal({
-        title: t('璀﹀憡'),
-        content: t('鏈夎妭鐐规湭杩炵嚎锛岃閲嶆柊璁捐宸ヨ壓璺嚎鍐嶄繚瀛樻暟鎹紒'),
+        title: t('鏈�夋嫨'),
+        content: t('鏈�夋嫨宸ヨ壓璺嚎鎴栬�呮柊澧炲伐鑹鸿矾绾�'),
         getContainer: () => document.body,
       });
     } else {
-      var action = await SaveRouteData(GetRotData(lf));
-      if (action.IsSuccessed) {
-        notification['success']({
-          message: '鎿嶄綔鎴愬姛',
-          description: `淇濆瓨宸ヨ壓璺嚎锛�${currRoute.value.ROT_CODE} 鎴愬姛`,
+      var hasError = false;
+      unref(lf)
+        .getGraphData()
+        .nodes.forEach((n) => {
+          if (
+            unref(lf).getNodeIncomingEdge(n.id).length == 0 &&
+            unref(lf).getNodeOutgoingEdge(n.id).length == 0
+          ) {
+            hasError = true;
+          }
         });
+      if (hasError) {
+        createErrorModal({
+          title: t('璀﹀憡'),
+          content: t('鏈夎妭鐐规湭杩炵嚎锛岃閲嶆柊璁捐宸ヨ壓璺嚎鍐嶄繚瀛樻暟鎹紒'),
+          getContainer: () => document.body,
+        });
+      } else {
+        var action =
+          props.rotType == 'Wo'
+            ? await SaveWoRouteData(GetRotData(lf))
+            : await SaveRouteData(GetRotData(lf));
+        if (action.IsSuccessed) {
+          await refreshPage();
+        }
       }
     }
   }
-}
 
-/*
- *鏂板宸ヨ壓璺嚎寮瑰嚭妯℃�佺獥鍙d簨浠�
- */
-async function handleAddlf(lf) {
-  // openDrawer(true, {
-  //   isUpdate: false,
-  //   lf: lf,
-  // });
-  openModal(true, {
-    isUpdate: false,
-    lf: lf,
-  });
-}
-
-/*
- *鐐瑰嚮鑺傜偣閫変腑浜嬩欢
- */
-function handleSelect(data, lf) {
-  lf.graphModel.clearSelectElements();
-  lf.graphModel.getNodeModelById(data.data.id).setSelected(true);
-  selectnode.value = data.data;
-  if (isNullOrUnDef(routeConfig.routeData)) {
-    //鍏堝垵濮嬪寲routeData
-    routeConfig.routeData = {};
-    routeConfig.routeData.route = currRoute.value;
-    routeConfig.routeData.nodes = [];
-    routeConfig.routeData.edges = [];
-    routeConfig.routeData.acts = [];
-    //鍐嶈繑鍥炲叿浣撴暟鎹�
-    routeConfig.routeData = GetRotData(lf);
+  /*
+   *鏂板宸ヨ壓璺嚎寮瑰嚭妯℃�佺獥鍙d簨浠�
+   */
+  async function handleAddlf(lf) {
+    // openDrawer(true, {
+    //   isUpdate: false,
+    //   lf: lf,
+    // });
+    openModal(true, {
+      isUpdate: false,
+      lf: lf,
+    });
   }
 
-  var _node = routeConfig.routeData.nodes.filter((x) => x.ID == selectnode.value.id)[0];
-  if (isNullOrUnDef(_node)) {
-    _node = {
-      ID: selectnode.value.id,
-      CREATE_TIME: currRoute.value.CREATE_TIME,
-      CREATE_USER: useUserStore().getUserInfo.userId as string,
-      UPDATE_TIME: currRoute.value.UPDATE_TIME,
-      UPDATE_USER: useUserStore().getUserInfo.userId as string,
-      GHOST_ROW: false,
-      NODE_NAME: `${selectnode.value.text.value}_0`,
-      ROT_ID: currRoute.value.ID,
-      SEGMENT: '',
-      OPER_CODE: selectnode.value.type,
-      GPH_TYPE: selectnode.value.type,
-      GPH_X: selectnode.value.x,
-      GPH_Y: selectnode.value.y,
-      GPH_PROP: '',
-      GPH_TEXT: selectnode.value.text.value,
-      IS_ACTIVE: 'Y',
-      IS_CALC_FPY: 'N',
-      CAN_SKIP: 'N',
-      REMARK: '',
-      AUTH_ORG: '',
-      AUTH_PROD: '',
-      AUTH_WH: '',
-      IS_FIRST_NODE: '',
-      IS_INPUT: '',
-      IS_OUTPUT: '',
-      OPTION_1: '',
-      OPTION_2: '',
-      OPTION_3: '',
-      OPTION_4: '',
-      OPTION_5: '',
-      node: {} as node,
-    };
-    routeConfig.routeData.nodes.push(_node);
-  }
-  //鏄涓�
-  if (selectnode.value.properties['operType'] && selectnode.value.properties['operType'] == 'Action') {
-    var _act = routeConfig.routeData.acts.filter((x) => x.ID == selectnode.value.id)[0];
-    routeConfig.activeKey = 2;
-    IsOperation.value = false;
-    title.value = '琛屼负';
-    posttitle.value = '';
-    if (isNullOrUnDef(_act)) {
-      _act = {
+  /*
+   *鐐瑰嚮鑺傜偣閫変腑浜嬩欢
+   */
+  function handleSelect(data, lf) {
+    lf.graphModel.clearSelectElements();
+    lf.graphModel.getNodeModelById(data.data.id).setSelected(true);
+    selectnode.value = data.data;
+    if (isNullOrUnDef(routeConfig.routeData)) {
+      //鍏堝垵濮嬪寲routeData
+      routeConfig.routeData = {};
+      routeConfig.routeData.route = currRoute.value;
+      routeConfig.routeData.nodes = [];
+      routeConfig.routeData.edges = [];
+      routeConfig.routeData.acts = [];
+      //鍐嶈繑鍥炲叿浣撴暟鎹�
+      routeConfig.routeData = GetRotData(lf);
+    }
+
+    var _node = routeConfig.routeData.nodes.filter((x) => x.ID == selectnode.value.id)[0];
+    if (isNullOrUnDef(_node)) {
+      _node = {
         ID: selectnode.value.id,
         CREATE_TIME: currRoute.value.CREATE_TIME,
         CREATE_USER: useUserStore().getUserInfo.userId as string,
         UPDATE_TIME: currRoute.value.UPDATE_TIME,
         UPDATE_USER: useUserStore().getUserInfo.userId as string,
         GHOST_ROW: false,
-        AUTH_ORG: '',
+        NODE_NAME: `${selectnode.value.text.value}_${_num}`,
+        ROT_ID: currRoute.value.ID,
+        SEGMENT: '',
+        OPER_CODE: selectnode.value.type,
+        GPH_TYPE: selectnode.value.type,
+        GPH_X: selectnode.value.x,
+        GPH_Y: selectnode.value.y,
+        GPH_PROP: '',
+        GPH_TEXT: selectnode.value.text.value,
+        IS_ACTIVE: 'Y',
+        IS_CALC_FPY: 'N',
+        CAN_SKIP: 'N',
+        REMARK: '',
+        AUTH_ORG: useUserStore().getUserInfo.orgCode,
         AUTH_PROD: '',
         AUTH_WH: '',
-        ACT_NAME: `${selectnode.value.text.value}_0`,
-        ACT_CODE: '',
+        IS_FIRST_NODE: '',
+        ALLOW_DFT_IN: '',
+        IS_INPUT: '',
+        IS_OUTPUT: '',
+        OPTION_1: '',
+        OPTION_2: '',
+        OPTION_3: '',
+        OPTION_4: '',
+        OPTION_5: '',
+        node: {} as node,
+        WORK_ORDER: currRoute.value.WORK_ORDER,
+        PROD_CODE: currRoute.value.PROD_CODE,
+        CUST_CODE: currRoute.value.CUST_CODE,
+      };
+      routeConfig.routeData.nodes.push(_node);
+      _num++;
+    }
+    //鏄涓�
+    if (
+      selectnode.value.properties['operType'] &&
+      selectnode.value.properties['operType'] == 'Action'
+    ) {
+      var _act = routeConfig.routeData.acts.filter((x) => x.ID == selectnode.value.id)[0];
+      routeConfig.activeKey = 2;
+      IsOperation.value = false;
+      title.value = '琛屼负';
+      posttitle.value = '';
+      if (isNullOrUnDef(_act)) {
+        _act = {
+          ID: selectnode.value.id,
+          CREATE_TIME: currRoute.value.CREATE_TIME,
+          CREATE_USER: useUserStore().getUserInfo.userId as string,
+          UPDATE_TIME: currRoute.value.UPDATE_TIME,
+          UPDATE_USER: useUserStore().getUserInfo.userId as string,
+          GHOST_ROW: false,
+          AUTH_ORG: useUserStore().getUserInfo.orgCode,
+          AUTH_PROD: '',
+          AUTH_WH: '',
+          ACT_NAME: `${selectnode.value.text.value}_${_numEdge}`,
+          ACT_CODE: '',
+          ROT_ID: currRoute.value.ID,
+          NODE_ID: '',
+          ACT_TYPE: 0,
+          GPH_TYPE: selectnode.value.type,
+          GPH_X: selectnode.value.x,
+          GPH_Y: selectnode.value.y,
+          GPH_PROP: JSON.stringify(selectnode.value.properties),
+          GPH_TEXT: selectnode.value.text.value,
+          NEED_SETUP: 'Y',
+          NEED_RESET: 'N',
+          // DO_TYPE: 0,
+          // DO_METHOD: '',
+          // DO_IF_PASS: '',
+          // DO_IF_FAIL: '',
+          IS_ACTIVE: '',
+          OPTION_1: '',
+          OPTION_2: '',
+          OPTION_3: '',
+          OPTION_4: '',
+          OPTION_5: '',
+          REMARK: '',
+          node: {} as node,
+          WORK_ORDER: currRoute.value.WORK_ORDER,
+          PROD_CODE: currRoute.value.PROD_CODE,
+          CUST_CODE: currRoute.value.CUST_CODE,
+        };
+        routeConfig.routeData.acts.push(_act);
+        _numEdge++;
+      }
+      routeConfig.currentAct = {
+        ID: selectnode.value.id,
+        CREATE_TIME: currRoute.value.CREATE_TIME,
+        CREATE_USER: useUserStore().getUserInfo.userId as string,
+        UPDATE_TIME: currRoute.value.UPDATE_TIME,
+        UPDATE_USER: useUserStore().getUserInfo.userId as string,
+        GHOST_ROW: false,
+        AUTH_ORG: _act.AUTH_ORG,
+        AUTH_PROD: _act.AUTH_PROD,
+        AUTH_WH: _act.AUTH_WH,
+        ACT_NAME: _act.ACT_NAME,
+        ACT_CODE: _act.ACT_CODE,
         ROT_ID: currRoute.value.ID,
-        NODE_ID: '',
-        ACT_TYPE: 0,
+        NODE_ID: _act.NODE_ID,
+        ACT_TYPE: _act.ACT_TYPE,
         GPH_TYPE: selectnode.value.type,
         GPH_X: selectnode.value.x,
         GPH_Y: selectnode.value.y,
         GPH_PROP: JSON.stringify(selectnode.value.properties),
         GPH_TEXT: selectnode.value.text.value,
-        NEED_SETUP: 0,
-        // DO_TYPE: 0,
-        // DO_METHOD: '',
-        // DO_IF_PASS: '',
-        // DO_IF_FAIL: '',
-        IS_ACTIVE: '',
+        NEED_SETUP: _act.NEED_SETUP,
+        NEED_RESET: _act.NEED_RESET,
+        // DO_TYPE: _act.DO_TYPE,
+        // DO_METHOD: _act.DO_METHOD,
+        // DO_IF_PASS: _act.DO_IF_PASS,
+        // DO_IF_FAIL: _act.DO_IF_FAIL,
+        IS_ACTIVE: _act.IS_ACTIVE,
         OPTION_1: '',
         OPTION_2: '',
         OPTION_3: '',
@@ -473,134 +582,111 @@
         OPTION_5: '',
         REMARK: '',
         node: {} as node,
-      }
-      routeConfig.routeData.acts.push(_act);
+        WORK_ORDER: currRoute.value.WORK_ORDER,
+        PROD_CODE: currRoute.value.PROD_CODE,
+        CUST_CODE: currRoute.value.CUST_CODE,
+      };
+      const actModel = lf.getNodeModelById(selectnode.value.id);
+      actModel.updateText(routeConfig.currentAct?.ACT_NAME);
+    } else {
+      //鏄伐搴�
+      IsOperation.value = false;
+      routeConfig.currentItem = {
+        ID: selectnode.value.id,
+        CREATE_TIME: currRoute.value.CREATE_TIME,
+        CREATE_USER: useUserStore().getUserInfo.userId as string,
+        UPDATE_TIME: currRoute.value.UPDATE_TIME,
+        UPDATE_USER: useUserStore().getUserInfo.userId as string,
+        GHOST_ROW: false,
+        AUTH_ORG: _node.AUTH_ORG,
+        AUTH_PROD: _node.AUTH_PROD,
+        AUTH_WH: _node.AUTH_WH,
+        NODE_NAME: _node.NODE_NAME ?? '',
+        ROT_ID: currRoute.value.ID,
+        SEGMENT: _node.SEGMENT,
+        OPER_CODE: _node.OPER_CODE,
+        GPH_TYPE: selectnode.value.type,
+        GPH_X: selectnode.value.x,
+        GPH_Y: selectnode.value.y,
+        GPH_PROP: '',
+        GPH_TEXT: selectnode.value.text.value,
+        IS_ACTIVE: _node.IS_ACTIVE,
+        IS_CALC_FPY: _node.IS_CALC_FPY,
+        CAN_SKIP: _node.CAN_SKIP,
+        IS_INPUT: _node.IS_INPUT,
+        ALLOW_DFT_IN: _node.ALLOW_DFT_IN,
+        IS_OUTPUT: _node.IS_OUTPUT,
+        REMARK: _node.REMARK,
+        WORK_ORDER: currRoute.value.WORK_ORDER,
+        PROD_CODE: currRoute.value.PROD_CODE,
+        CUST_CODE: currRoute.value.CUST_CODE,
+        node: {} as node,
+      };
+      const nodeModel = lf.getNodeModelById(selectnode.value.id);
+      nodeModel.updateText(_node.NODE_NAME);
+      routeConfig.isCalcFpy = _node.IS_CALC_FPY == 'Y';
+      routeConfig.canSkip = _node.CAN_SKIP == 'Y';
+      routeConfig.isActive = _node.IS_ACTIVE == 'Y';
+      routeConfig.allowDftIn = _node.ALLOW_DFT_IN == 'Y';
+      routeConfig.isInput = _node.IS_INPUT == 'Y';
+      routeConfig.isOutput = _node.IS_OUTPUT == 'Y';
+      setTimeout(() => {
+        console.log(routeConfig.currentItem);
+        routeConfig.activeKey = 2;
+        IsOperation.value = true;
+        title.value = '宸ュ簭';
+        posttitle.value = '宀椾綅';
+      }, 100);
     }
-    routeConfig.currentAct = {
-      ID: selectnode.value.id,
-      CREATE_TIME: currRoute.value.CREATE_TIME,
-      CREATE_USER: useUserStore().getUserInfo.userId as string,
-      UPDATE_TIME: currRoute.value.UPDATE_TIME,
-      UPDATE_USER: useUserStore().getUserInfo.userId as string,
-      GHOST_ROW: false,
-      AUTH_ORG: '',
-      AUTH_PROD: '',
-      AUTH_WH: '',
-      ACT_NAME: _act.ACT_NAME,
-      ACT_CODE: _act.ACT_CODE,
-      ROT_ID: currRoute.value.ID,
-      NODE_ID: _act.NODE_ID,
-      ACT_TYPE: _act.ACT_TYPE,
-      GPH_TYPE: selectnode.value.type,
-      GPH_X: selectnode.value.x,
-      GPH_Y: selectnode.value.y,
-      GPH_PROP: JSON.stringify(selectnode.value.properties),
-      GPH_TEXT: selectnode.value.text.value,
-      NEED_SETUP: _act.NEED_SETUP,
-      // DO_TYPE: _act.DO_TYPE,
-      // DO_METHOD: _act.DO_METHOD,
-      // DO_IF_PASS: _act.DO_IF_PASS,
-      // DO_IF_FAIL: _act.DO_IF_FAIL,
-      IS_ACTIVE: _act.IS_ACTIVE,
-      OPTION_1: '',
-      OPTION_2: '',
-      OPTION_3: '',
-      OPTION_4: '',
-      OPTION_5: '',
-      REMARK: '',
-      node: {} as node,
-    };
-    const actModel = lf.getNodeModelById(selectnode.value.id);
-    actModel.updateText(routeConfig.currentAct?.ACT_NAME);
-  } else {
-    //鏄伐搴�
-    IsOperation.value = false;
-    routeConfig.currentItem = {
-      ID: selectnode.value.id,
-      CREATE_TIME: currRoute.value.CREATE_TIME,
-      CREATE_USER: useUserStore().getUserInfo.userId as string,
-      UPDATE_TIME: currRoute.value.UPDATE_TIME,
-      UPDATE_USER: useUserStore().getUserInfo.userId as string,
-      GHOST_ROW: false,
-      NODE_NAME: _node.NODE_NAME ?? '',
-      ROT_ID: currRoute.value.ID,
-      SEGMENT: _node.SEGMENT,
-      OPER_CODE: _node.OPER_CODE,
-      GPH_TYPE: selectnode.value.type,
-      GPH_X: selectnode.value.x,
-      GPH_Y: selectnode.value.y,
-      GPH_PROP: '',
-      GPH_TEXT: selectnode.value.text.value,
-      IS_ACTIVE: _node.IS_ACTIVE,
-      IS_CALC_FPY: _node.IS_CALC_FPY,
-      CAN_SKIP: _node.CAN_SKIP,
-      IS_INPUT: _node.IS_INPUT,
-      IS_OUTPUT: _node.IS_OUTPUT,
-      REMARK: _node.REMARK,
-    };
-    const nodeModel = lf.getNodeModelById(selectnode.value.id);
-    nodeModel.updateText(_node.NODE_NAME);
-    routeConfig.isCalcFpy = _node.IS_CALC_FPY == 'Y';
-    routeConfig.canSkip = _node.CAN_SKIP == 'Y';
-    routeConfig.isInput = _node.IS_INPUT == 'Y';
-    routeConfig.isOutput = _node.IS_OUTPUT == 'Y';
-    setTimeout(() => {
-      console.log(routeConfig.currentItem);
-      routeConfig.activeKey = 2;
-      IsOperation.value = true;
-      title.value = '宸ュ簭';
-      posttitle.value = '宀椾綅';
-    }, 100);
   }
-}
 
-function handleSuccess(lfInstance) {
-  unref(lfInstance).render({});
-}
+  function handleSuccess(lfInstance) {
+    unref(lfInstance).render({});
+  }
 
-/*
- *鐐瑰嚮鐢诲竷浜嬩欢
- */
-function clickBlank() {
-  routeConfig.activeKey = 1;
-  title.value = '';
-  posttitle.value = '';
-}
+  /*
+   *鐐瑰嚮鐢诲竷浜嬩欢
+   */
+  function clickBlank() {
+    routeConfig.activeKey = 1;
+    title.value = '';
+    posttitle.value = '';
+  }
 
-/*
- *鏂板宸ヨ壓璺嚎鎴愬姛鍚庝簨浠�
- */
-async function modalSuccess(lfInstance, route) {
-  unref(lfInstance).render({});
-  currRoute.value = route;
-  currRotId.value = currRoute.value.ID;
-  setTitle('璁捐锛氬伐鑹鸿矾绾�-' + currRoute.value.ROT_CODE);
-  //鍏堝垵濮嬪寲routeData
-  routeConfig.routeData = {};
-  routeConfig.routeData.route = currRoute.value;
-  routeConfig.routeData.nodes = [];
-  routeConfig.routeData.edges = [];
-  routeConfig.routeData.acts = [];
-  //鍐嶈繑鍥炲叿浣撴暟鎹�
-  routeConfig.routeData = GetRotData(unref(lfInstance));
-}
+  /*
+   *鏂板宸ヨ壓璺嚎鎴愬姛鍚庝簨浠�
+   */
+  async function modalSuccess(lfInstance, route) {
+    unref(lfInstance).render({});
+    currRoute.value = route;
+    currRotId.value = currRoute.value.ID;
+    setTitle('璁捐锛氬伐鑹鸿矾绾�-' + currRoute.value.ROT_CODE);
+    //鍏堝垵濮嬪寲routeData
+    routeConfig.routeData = {};
+    routeConfig.routeData.route = currRoute.value;
+    routeConfig.routeData.nodes = [];
+    routeConfig.routeData.edges = [];
+    routeConfig.routeData.acts = [];
+    //鍐嶈繑鍥炲叿浣撴暟鎹�
+    routeConfig.routeData = GetRotData(unref(lfInstance));
+  }
 
-/**
- * @description: 鍚嶇О鏀瑰彉鍥炶皟鏂规硶锛岃繑鍥炲悗鏇存柊鑺傜偣鏂囨湰
- * @param {*} e
- * @return {*}
- */
-function changeName(e) {
+  /**
+   * @description: 鍚嶇О鏀瑰彉鍥炶皟鏂规硶锛岃繑鍥炲悗鏇存柊鑺傜偣鏂囨湰
+   * @param {*} e
+   * @return {*}
+   */
+  function changeName(e) {
     console.log(e.val);
     const nodeModel = unref(currlf)?.getNodeModelById(e.id);
     nodeModel?.updateText(e.val);
   }
-/**
- * @description: 鍚嶇О鏀瑰彉鍥炶皟鏂规硶锛岃繑鍥炲悗鏇存柊鑺傜偣鏂囨湰
- * @param {*} e
- * @return {*}
- */
-function changeNodeName(e) {
+  /**
+   * @description: 鍚嶇О鏀瑰彉鍥炶皟鏂规硶锛岃繑鍥炲悗鏇存柊鑺傜偣鏂囨湰
+   * @param {*} e
+   * @return {*}
+   */
+  function changeNodeName(e) {
     console.log(e.val);
     const nodeModel = unref(currlf)?.getNodeModelById(e.id);
     nodeModel?.updateText(e.val);

--
Gitblit v1.9.3