Ben Lin
2024-08-01 efcc2e97beb8c3b05f422fe7efafa059447473de
src/views/tigerprojects/mes/eng/route/components/FormItemProps.vue
@@ -4,7 +4,7 @@
 * @version: 
 * @Date: 2024-06-18 15:09:48
 * @LastEditors: Ben Lin
 * @LastEditTime: 2024-07-23 21:00:06
 * @LastEditTime: 2024-08-01 11:18:39
-->
<!--
 * @Description: 表单项属性,控件属性面板
@@ -13,20 +13,47 @@
  <div class="properties-content">
    <Form class="properties-body" label-align="left" layout="vertical">
      <FormItem label="工艺路线编码" name="工艺路线编码">
        <Input :style="{ width: '100%' }" v-model:value="mesRoute.ROT_CODE" :min="0" :step="1" :readonly="true" />
        <Input
          :style="{ width: '100%' }"
          v-model:value="mesRoute.ROT_CODE"
          :min="0"
          :step="1"
          :readonly="true"
        />
      </FormItem>
      <FormItem label="节点名称" name="节点名称">
        <Input :style="{ width: '100%' }" v-model:value="routeConfig.currentItem.NODE_NAME" :min="0" :step="1" />
        <Input
          :style="{ width: '100%' }"
          v-model:value="routeConfig.currentItem.NODE_NAME"
          :min="0"
          :step="1"
        />
      </FormItem>
      <FormItem label="工段" name="工段">
        <Input :style="{ width: '100%' }" v-model:value="routeConfig.currentItem.SEGMENT" :min="0" :step="1" />
        <Input
          :style="{ width: '100%' }"
          v-model:value="routeConfig.currentItem.SEGMENT"
          :min="0"
          :step="1"
        />
      </FormItem>
      <FormItem label="工序编码" name="工序编码">
        <Input :style="{ width: '100%' }" v-model:value="routeConfig.currentItem.GPH_TYPE" :min="0" :step="1" />
        <Input
          :style="{ width: '100%' }"
          v-model:value="routeConfig.currentItem.GPH_TYPE"
          :min="0"
          :step="1"
        />
      </FormItem>
      <FormItem label="是否启用" name="是否启用">
        <Select ref="select" v-model:value="routeConfig.currentItem.IS_ACTIVE" style="width: 120px"
          :options="options1" />
        <Switch v-model:checked="routeConfig.isActive" />
      </FormItem>
      <FormItem label="是否允许跳站" name="是否允许跳站">
        <Switch v-model:checked="routeConfig.canSkip" />
      </FormItem>
      <FormItem label="是否允许不良品进站(Y/N)" name="是否允许不良品进站(Y/N)">
        <Switch v-model:checked="routeConfig.allowDftIn" />
      </FormItem>
      <!-- <FormItem label="是否计算直通率" name="是否计算直通率">
        <Switch v-model:checked="routeConfig.isCalcFpy" />
@@ -44,57 +71,65 @@
  </div>
</template>
<script lang="ts" setup>
import { Select, Switch, Input, Form, FormItem } from 'ant-design-vue';
import { useRouteDesignState } from '../hooks/useRouteDesignState';
import { SelectTypes } from 'ant-design-vue/es/select';
import { ref, watch } from 'vue';
import { isNullOrUnDef } from '/@/utils/is';
  import { Select, Switch, Input, Form, FormItem } from 'ant-design-vue';
  import { useRouteDesignState } from '../hooks/useRouteDesignState';
  import { SelectTypes } from 'ant-design-vue/es/select';
  import { ref, watch } from 'vue';
  import { isNullOrUnDef } from '/@/utils/is';
const { routeConfig, mesRoute } = useRouteDesignState();
const emit = defineEmits(['changeNodeName']);
const options1 = ref<SelectTypes['options']>([
  {
    value: 'Y',
    label: '启用',
  },
  {
    value: 'N',
    label: '不启用',
  },
]);
  const { routeConfig, mesRoute } = useRouteDesignState();
  const emit = defineEmits(['changeNodeName']);
  const options1 = ref<SelectTypes['options']>([
    {
      value: 'Y',
      label: '启用',
    },
    {
      value: 'N',
      label: '不启用',
    },
  ]);
watch(
  [
    () => routeConfig.isCalcFpy,
    () => routeConfig.canSkip,
    () => routeConfig.isInput,
    () => routeConfig.isOutput,
    () => routeConfig.currentItem,
  ],
  (newVal, oldVal) => {
    routeConfig.routeData.nodes.forEach((r) => {
      if (r.ID == routeConfig.currentItem.ID) {
        if (oldVal[0] != newVal[0] && !isNullOrUnDef(oldVal[0])) {
          r.IS_CALC_FPY = newVal[0] ? 'Y' : 'N';
  watch(
    [
      () => routeConfig['isCalcFpy'],
      () => routeConfig['canSkip'],
      () => routeConfig['isInput'],
      () => routeConfig['isOutput'],
      () => routeConfig['allowDftIn'],
      () => routeConfig['isActive'],
      () => routeConfig['currentItem'],
    ],
    (newVal, oldVal) => {
      routeConfig['routeData'].nodes.forEach((r) => {
        if (r.ID == routeConfig['currentItem'].ID) {
          if (oldVal[0] != newVal[0] && !isNullOrUnDef(oldVal[0])) {
            r.IS_CALC_FPY = newVal[0] ? 'Y' : 'N';
          }
          if (oldVal[1] != newVal[1] && !isNullOrUnDef(oldVal[1])) {
            r.CAN_SKIP = newVal[1] ? 'Y' : 'N';
          }
          if (oldVal[2] != newVal[2] && !isNullOrUnDef(oldVal[2])) {
            r.IS_INPUT = newVal[2] ? 'Y' : 'N';
          }
          if (oldVal[3] != newVal[3] && !isNullOrUnDef(oldVal[3])) {
            r.IS_OUTPUT = newVal[3] ? 'Y' : 'N';
          }
          if (oldVal[4] != newVal[4] && !isNullOrUnDef(oldVal[4])) {
            r.ALLOW_DFT_IN = newVal[4] ? 'Y' : 'N';
          }
          if (oldVal[5] != newVal[5] && !isNullOrUnDef(oldVal[5])) {
            r.IS_ACTIVE = newVal[5] ? 'Y' : 'N';
          }
          // r.IS_ACTIVE = newVal[4].IS_ACTIVE;
          r.SEGMENT = newVal[6].SEGMENT;
          if (r.NODE_NAME != newVal[6].NODE_NAME) {
            r.NODE_NAME = newVal[6].NODE_NAME;
            emit('changeNodeName', { id: r.ID, val: r.NODE_NAME });
          }
        }
        if (oldVal[1] != newVal[1] && !isNullOrUnDef(oldVal[1])) {
          r.CAN_SKIP = newVal[1] ? 'Y' : 'N';
        }
        if (oldVal[2] != newVal[2] && !isNullOrUnDef(oldVal[2])) {
          r.IS_INPUT = newVal[2] ? 'Y' : 'N';
        }
        if (oldVal[3] != newVal[3] && !isNullOrUnDef(oldVal[3])) {
          r.IS_OUTPUT = newVal[3] ? 'Y' : 'N';
        }
        r.IS_ACTIVE = newVal[4].IS_ACTIVE;
        r.SEGMENT = newVal[4].SEGMENT;
        if (r.NODE_NAME != newVal[4].NODE_NAME) {
          r.NODE_NAME = newVal[4].NODE_NAME;
          emit('changeNodeName', { id: r.ID, val: r.NODE_NAME });
        }
      }
    });
  },
  { deep: true, immediate: true },
);
      });
    },
    { deep: true, immediate: true },
  );
</script>