From f4c05057fb284287997775f373c33f73228a02c3 Mon Sep 17 00:00:00 2001
From: Cloud Zhang <941187371@qq.com>
Date: 星期四, 16 五月 2024 18:04:34 +0800
Subject: [PATCH] 工具保养项目

---
 src/views/tigerprojects/mes/smt/tool/smt_tool/smt_tool.data.ts             |    2 
 src/api/tigerapi/mes/smt/smtmtproject.ts                                   |  190 ++++++++++++
 src/views/tigerprojects/mes/smt/tool/smt_mt_project/index.vue              |  190 ++++++++++++
 src/views/tigerprojects/mes/smt/tool/smt_mt_project/smt_mt_project.data.ts |  433 ++++++++++++++++++++++++++++
 src/views/tigerprojects/mes/smt/tool/smt_mt_project/ProjectDrawer.vue      |   74 ++++
 5 files changed, 888 insertions(+), 1 deletions(-)

diff --git a/src/api/tigerapi/mes/smt/smtmtproject.ts b/src/api/tigerapi/mes/smt/smtmtproject.ts
new file mode 100644
index 0000000..878561a
--- /dev/null
+++ b/src/api/tigerapi/mes/smt/smtmtproject.ts
@@ -0,0 +1,190 @@
+import { buildUUID } from '../../../../utils/uuid';
+//import { ApiAction, ApiActionPage } from '../../model/baseModel';
+import { genAction, Api } from '../../system';
+import { useUserStore } from '/@/store/modules/user';
+import { defHttp } from '/@/utils/http/axios';
+import { isNullOrEmpty } from '/@/utils/is';
+import { formatToDateTime } from '/@/utils/dateUtil';
+
+/*
+ * 鑾峰彇宸ュ叿淇濆吇椤圭洰
+ */
+
+export const getListByPage = async (params: any) => {
+  let order = ''
+  if (params.order != undefined) {
+    order = params.order == 'descend' ? (params.field + ' desc') : params.field
+  }
+  let sqlcmd = '1=1';
+  if (params?.FEEDER_CODE != undefined && params?.FEEDER_CODE != '') {
+    sqlcmd += " And FEEDER_CODE like '%" + params?.FEEDER_CODE + "%'";
+  }
+
+  let option = {
+    UserId: useUserStore().getUserInfo.userId as string,
+    ByOrg: true,
+    OrgCode: useUserStore().getUserInfo.orgCode as string
+  }
+  if (!isNullOrEmpty(params.page)) {
+    const usParams = genAction('SMT_MT_PROJECT', {
+      QueryAble_T: '',
+      where: sqlcmd,
+      order: order,
+      page: {
+        pageAble_T: 'string',
+        draw: 1,
+        pageIndex: params.page,
+        pageSize: params.pageSize,
+      }
+    });
+    return getListByPageAsync(usParams);
+  } else {
+    const usParams = genAction('SMT_MT_PROJECT', {
+      QueryAble_T: '',
+      where: sqlcmd
+    });
+    return getListByPageAsync(usParams);
+  }
+  // const rParams = genActionPage('BIZ_ERP_PROD_IN', sqlcmd, params.page, params.pageSize,option);
+  // return getFinishedwarehouseListByPageAsync(rParams);
+};
+async function getListByPageAsync(params: any) {
+  const data = await defHttp.post(
+    { url: Api.QueryUrl, params },
+    {
+      isTransformResponse: false,
+    },
+  );
+  let model = {}
+  if (isNullOrEmpty(data.Data.page)) {
+    model = {
+      items: data.Data.Items,
+    };
+  } else {
+    model = {
+      items: data.Data.page.data,
+      total: data.Data.page.totals,
+    };
+  }
+  return model;
+}
+//鏂板椋炶揪淇℃伅
+export const Save = async (params: Recordable, isUpdate: boolean, isbaofei: boolean) => {
+  const item: any = {
+    ID: params.ID,
+    CREATE_TIME: params?.CREATE_TIME,
+    CREATE_USER: params?.CREATE_USER,
+    UPDATE_TIME: params?.UPDATE_TIME,
+    UPDATE_USER: params?.UPDATE_USER,
+    GHOST_ROW: params?.GHOST_ROW,
+    AUTH_ORG: params?.AUTH_ORG,
+    AUTH_PROD: params?.AUTH_PROD,
+    AUTH_WH: params?.AUTH_WH,
+    PROJ_CODE: params?.PROJ_CODE,
+    PROJ_NAME: params?.PROJ_NAME,
+    TOOL_TYPE: params?.TOOL_TYPE,
+    ITEM01: params?.ITEM01,
+    ITEM02: params?.ITEM02,
+    ITEM03: params?.ITEM03,
+    ITEM04: params?.ITEM04,
+    ITEM05: params?.ITEM05,
+    ITEM06: params?.ITEM06,
+    ITEM07: params?.ITEM07,
+    ITEM08: params?.ITEM08,
+    ITEM09: params?.ITEM09,
+    ITEM10: params?.ITEM10,
+    ITEM11: params?.ITEM11,
+    ITEM12: params?.ITEM12,
+    ITEM13: params?.ITEM13,
+    ITEM14: params?.ITEM14,
+    ITEM15: params?.ITEM15,
+    ITEM16: params?.ITEM16,
+    ITEM17: params?.ITEM17,
+    ITEM18: params?.ITEM18,
+    ITEM19: params?.ITEM19,
+    ITEM20: params?.ITEM20,
+    
+    REMARK: params?.REMARK,
+  };
+  let data;
+
+  if (isUpdate) {
+    if (isbaofei) {
+      item.STATUS = 5;
+    }
+    const time = new Date();
+    item.UPDATE_TIME = formatToDateTime(time);
+    item.UPDATE_USER = useUserStore().getUserInfo.userId as string;
+    // regionitem.ORG_CODE = useUserStore().getUserInfo.orgCode as string;
+    // regionitem.AUTH_ORG = useUserStore().getUserInfo.orgCode as string;
+    data = await defHttp.post(
+      { url: Api.UpdateEntity, params: genAction('SMT_MT_PROJECT', item) },
+      {
+        errorMessageMode: 'none',
+        isTransformResponse: false,
+      },
+    );
+  } else {
+    // const usParams = genAction(
+    //   'SMT_SOLDER',
+    //   "REGION_CODE='" + params.REGION_CODE + "'AND AUTH_ORG='" + regionitem.ORG_CODE + "'",
+    // );
+    //var check = await isExist(usParams);
+    //console.log('check',check)
+    //if (!check.Data) {
+    item.ID = buildUUID(); //鐢熸垚GUID
+    item.UPDATE_TIME = formatToDateTime(new Date());
+    item.CREATE_USER = useUserStore().getUserInfo.userId as string;
+    item.UPDATE_USER = useUserStore().getUserInfo.userId as string;
+    // regionitem.ORG_CODE = useUserStore().getUserInfo.orgCode as string;
+    // regionitem.AUTH_ORG = useUserStore().getUserInfo.orgCode as string;
+    data = await defHttp.post(
+      { url: Api.AddEntity, params: genAction('SMT_MT_PROJECT', item) },
+      {
+        errorMessageMode: 'none',
+        isTransformResponse: false,
+      },
+    );
+    //} else {
+    // return check.Message;
+    //return '閲嶅浜�';
+    //}
+  }
+  return data;
+};
+//鍒犻櫎
+export const Delete = async (Tool_Id: string) => {
+  const usParams = genAction('SMT_MT_PROJECT', `ID='${Tool_Id}'`)
+  return await defHttp.post(
+    { url: Api.DeleteWhere, params: usParams },
+    {
+      errorMessageMode: 'none',
+      isTransformResponse: false
+    }
+  )
+}
+//涓嬫媺鍒楄〃
+// STATUSs 鍗曟嵁鐘舵��
+export const optionsListApi = async (params: Recordable) => {
+  const usParams = genAction('V_SMT_TOOL+ALARM_TYPEs', '');
+  return await defHttp.post(
+    { url: Api.urlQueryEnum, params: usParams },
+    {
+      errorMessageMode: 'none',
+      isTransformResponse: false,
+      // apiUrl: globSetting.taskApiUrl
+    },
+  );
+};
+//绫诲瀷
+export const optionsListApiType = async (params: Recordable) => {
+  const usParams = genAction('V_SMT_TOOL+TYPEs', '');
+  return await defHttp.post(
+    { url: Api.urlQueryEnum, params: usParams },
+    {
+      errorMessageMode: 'none',
+      isTransformResponse: false,
+      // apiUrl: globSetting.taskApiUrl
+    },
+  );
+};
\ No newline at end of file
diff --git a/src/views/tigerprojects/mes/smt/tool/smt_mt_project/ProjectDrawer.vue b/src/views/tigerprojects/mes/smt/tool/smt_mt_project/ProjectDrawer.vue
new file mode 100644
index 0000000..8c0240d
--- /dev/null
+++ b/src/views/tigerprojects/mes/smt/tool/smt_mt_project/ProjectDrawer.vue
@@ -0,0 +1,74 @@
+<template>
+  <BasicDrawer
+    v-bind="$attrs"
+    @register="registerDrawer"
+    showFooter
+    :title="getTitle"
+    width="800px"
+    @ok="handleSubmit"
+  >
+    <BasicForm @register="registerForm" />
+  </BasicDrawer>
+</template>
+<script lang="ts">
+  import { defineComponent, ref, computed, unref } from 'vue';
+  import { BasicForm, useForm } from '/@/components/Form/index';
+  import { formSchema } from './smt_mt_project.data';
+  import { BasicDrawer, useDrawerInner } from '/@/components/Drawer';
+
+  import { Save } from '/@/api/tigerapi/mes/smt/smtmtproject';
+
+  export default defineComponent({
+    name: 'ToolDrawer',
+    components: { BasicDrawer, BasicForm },
+    emits: ['success', 'register'],
+    setup(_, { emit }) {
+      const isUpdate = ref(true);
+      const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner((data) => {
+        resetFields();
+        setDrawerProps({ confirmLoading: false });
+        isUpdate.value = !!data?.isUpdate;
+        if (unref(isUpdate)) {
+          setFieldsValue({
+            ...data.record,
+          });
+        }
+      });
+      const [registerForm, { resetFields, setFieldsValue, validate }] = useForm({
+        labelWidth: 120,
+        schemas: formSchema,
+        actionColOptions: {
+          span: 24,
+        },
+        showActionButtonGroup: false,
+      });
+
+      const getTitle = computed(() => (!unref(isUpdate) ? '鏂板宸ュ叿淇濆吇椤圭洰' : '缂栬緫宸ュ叿淇濆吇椤圭洰'));
+
+      async function handleSubmit() {
+        try {
+          const values = await validate();
+          setDrawerProps({ confirmLoading: true });
+          // TODO custom api
+          //淇濆瓨鐗╂枡
+          const apiAction = Save(values, unref(isUpdate),false);
+          apiAction.then((action) => {
+            if (action.IsSuccessed) {
+              closeDrawer();
+              emit('success');
+            }
+          });
+        } finally {
+          setDrawerProps({ confirmLoading: false });
+        }
+      }
+
+      return {
+        registerDrawer,
+        registerForm,
+        getTitle,
+        handleSubmit,
+      };
+    },
+  });
+</script>
diff --git a/src/views/tigerprojects/mes/smt/tool/smt_mt_project/index.vue b/src/views/tigerprojects/mes/smt/tool/smt_mt_project/index.vue
new file mode 100644
index 0000000..ae2ebd4
--- /dev/null
+++ b/src/views/tigerprojects/mes/smt/tool/smt_mt_project/index.vue
@@ -0,0 +1,190 @@
+<template>
+  <div>
+    <BasicTable @register="registerTable">
+      <template #toolbar>
+        <a-button color="primary" @click="handleAdd"> 娣诲姞 </a-button>
+        <a-button ghost color="primary" @click="aoaToExcel"> 瀵煎嚭 </a-button>
+      </template>
+      <template #action="{ record }">
+        <TableAction :actions="[
+      {
+        icon: 'clarity:note-edit-line',
+        tooltip: '淇敼',
+        onClick: handleEdit.bind(null, record),
+      },
+      {
+        icon: 'ant-design:delete-outlined',
+        tooltip: '鍒犻櫎',
+        popConfirm: {
+          title: '鏄惁纭鍒犻櫎?',
+          placement: 'left',
+          confirm: handleDelete.bind(null, record),
+        },
+      },
+    ]" />
+      </template>
+    </BasicTable>
+    <Loading :loading="compState.loading" :tip="compState.tip" />
+    <!-- <WmsItemDrawer @register="registerDrawer" @success="handleSuccess" /> -->
+    <ProjectDrawer @register="registerDrawer" @success="handleSuccess" />
+  </div>
+</template>
+<script lang="ts" setup>
+import { reactive, unref } from 'vue';
+import { aoaToSheetXlsx } from '/@/components/Excel';
+import { BasicTable, useTable, TableAction } from '/@/components/Table';
+import ProjectDrawer from './ProjectDrawer.vue';
+import { useDrawer } from '/@/components/Drawer';
+import { columns, searchFormSchema } from './smt_mt_project.data';
+import { getListByPage, Save, Delete } from '/@/api/tigerapi/mes/smt/smtmtproject';
+import { useGo } from '/@/hooks/web/usePage';
+import { Loading } from '/@/components/Loading';
+import { useMessage } from '/@/hooks/web/useMessage';
+import { useI18n } from '/@/hooks/web/useI18n';
+
+const { t } = useI18n();
+const { createMessage } = useMessage();
+const [registerDrawer, { openDrawer }] = useDrawer();
+const go = useGo();
+const compState = reactive({
+  absolute: false,
+  loading: false,
+  tip: '鍔犺浇涓�...',
+});
+const [registerTable, { getForm, getPaginationRef, reload }] = useTable({
+  title: '宸ュ叿淇濆吇椤圭洰',
+  api: getListByPage,
+  columns,
+  formConfig: {
+    labelWidth: 120,
+    schemas: searchFormSchema,
+  },
+  actionColumn: {
+    width: 120,
+    title: '鎿嶄綔',
+    dataIndex: 'action',
+    slots: { customRender: 'action' },
+    fixed: 'right', //undefined,
+  },
+  ellipsis: true,
+  useSearchForm: true,
+  showTableSetting: false,
+  bordered: true,
+  showIndexColumn: false,
+});
+let arr: any[] = [];
+//瀵煎嚭
+function aoaToExcel() {
+  const totals = getPaginationRef().total
+  if (totals < 30000) {
+    arr = [];
+    compState.loading = true;
+    const col = getForm().getFieldsValue()
+    getListByPage(col).then((res) => {
+      res.items.forEach(element => {
+        var TYPE = ''
+        switch (element.TOOL_TYPE) {
+          case 0:
+            TYPE = '閽㈢綉';
+            break;
+          case 1:
+            TYPE = '鍒垁';
+            break;
+          default:
+            break;
+        }
+        arr.push({
+          '淇濆吇椤圭洰缂栫爜': element.PROJ_CODE,
+          '淇濆吇椤圭洰鍚嶇О': element.PROJ_NAME,
+          '绫诲瀷': TYPE,
+          '淇濆吇椤�1': element.ITEM01,
+          '淇濆吇椤�2': element.ITEM02,
+          '淇濆吇椤�3': element.ITEM03,
+          '淇濆吇椤�4': element.ITEM04,
+          '淇濆吇椤�5': element.ITEM05,
+          '淇濆吇椤�6': element.ITEM06,
+          '淇濆吇椤�7': element.ITEM07,
+          '淇濆吇椤�8': element.ITEM08,
+          '淇濆吇椤�9': element.ITEM09,
+          '淇濆吇椤�10': element.ITEM10,
+          '淇濆吇椤�11': element.ITEM11,
+          '淇濆吇椤�12': element.ITEM12,
+          '淇濆吇椤�13': element.ITEM13,
+          '淇濆吇椤�14': element.ITEM14,
+          '淇濆吇椤�15': element.ITEM15,
+          '淇濆吇椤�16': element.ITEM16,
+          '淇濆吇椤�17': element.ITEM17,
+          '淇濆吇椤�18': element.ITEM18,
+          '淇濆吇椤�19': element.ITEM19,
+          '淇濆吇椤�20': element.ITEM20,
+          '澶囨敞': element.REMARK,
+          '鍒涘缓浜�': element.CREATE_USER,
+          '鍒涘缓鏃堕棿': element.CREATE_TIME,
+        });
+      });
+      const arrHeader = columns.map((column) => column.title);
+      const arrData = arr.map((item) => {
+        return Object.keys(item).map((key) => item[key]);
+      });
+      // 淇濊瘉data椤哄簭涓巋eader涓�鑷�
+      if (arr.length < 30000) {
+        aoaToSheetXlsx({
+          data: arrData,
+          header: arrHeader,
+          filename: '宸ュ叿淇濆吇椤圭洰.xlsx',
+        });
+      } else {
+        createMessage.error(t('瀵煎嚭鏁版嵁涓嶈兘瓒呰繃涓変竾鏉★紝濡傞渶瑕佹洿澶氱殑璇疯仈绯荤鐞嗗憳'));
+      }
+
+      compState.loading = false;
+
+    })
+
+  } else {
+    createMessage.error(t('瀵煎嚭鏁版嵁涓嶈兘瓒呰繃涓変竾鏉★紝濡傞渶瑕佹洿澶氱殑璇疯仈绯荤鐞嗗憳'));
+  }
+
+
+}
+//娣诲姞
+function handleAdd() {
+  openDrawer(true, {
+    isUpdate: false,
+  });
+}
+//缂栬緫
+function handleEdit(record: any) {
+  openDrawer(true, {
+    isUpdate: true,
+    record
+  });
+}
+function handleSuccess() {
+  reload();
+}
+//鎶ュ簾
+function handleBao(record: any) {
+  const apiAction = Save(record, unref(true), true);
+  apiAction.then((action) => {
+    if (action.IsSuccessed) {
+      createMessage.success(t('宸叉姤搴�'));
+      reload();
+    } else {
+      createMessage.success(t('鎶ュ簾鎿嶄綔澶辫触'));
+    }
+  });
+}
+//鍒犻櫎
+function handleDelete(record: any) {
+  const apiAction = Delete(record.ID);
+  apiAction.then((action) => {
+    if (action.IsSuccessed) {
+      createMessage.success(t('宸插垹闄�'));
+      reload();
+    } else {
+      createMessage.success(t('鍒犻櫎鎿嶄綔澶辫触'));
+    }
+  });
+}
+</script>
diff --git a/src/views/tigerprojects/mes/smt/tool/smt_mt_project/smt_mt_project.data.ts b/src/views/tigerprojects/mes/smt/tool/smt_mt_project/smt_mt_project.data.ts
new file mode 100644
index 0000000..dcc78e6
--- /dev/null
+++ b/src/views/tigerprojects/mes/smt/tool/smt_mt_project/smt_mt_project.data.ts
@@ -0,0 +1,433 @@
+import { BasicColumn } from '/@/components/Table';
+import { FormSchema } from '/@/components/Table';
+import { optionsListApi,optionsListApiType } from '/@/api/tigerapi/mes/smt/smtmtproject';
+import { h,unref } from 'vue';
+import { Tag ,Tooltip} from 'ant-design-vue';
+import{ useLocale } from '/@/locales/useLocale';
+
+const { getLocale }=useLocale();
+
+export const columns: BasicColumn[] = [
+  {
+    title: '淇濆吇椤圭洰缂栫爜',
+    dataIndex: 'PROJ_CODE',
+    width:200,
+    sorter: true,
+    resizable:true
+  },
+  {
+    title: '淇濆吇椤圭洰鍚嶇О',
+    dataIndex: 'PROJ_NAME',
+    width: 100,
+    sorter: true,
+    resizable:true
+  },
+  {
+    title: '绫诲瀷',
+    dataIndex: 'TOOL_TYPE',
+    width: 100,
+    sorter: true,
+    resizable: true,
+    customRender: ({ record }) => {
+      const status = record.TOOL_TYPE;
+      var text = '';
+      var color = '';
+      switch (status) {
+        case 0:
+          text = '閽㈢綉';
+          color = 'green';
+          break;
+        case 1:
+          text = '鍒垁';
+          color = 'blue';
+          break;
+        default:
+          break;
+      }
+      return h(Tooltip, { title: 'xxxxxx' }, () => h(Tag, { color: color }, () => text));
+    },
+  },
+  {
+    title: '淇濆吇椤�1',
+    dataIndex: 'ITEM01',
+    width:100,
+    sorter: true,
+    resizable:true
+  }
+  ,
+  {
+    title: '淇濆吇椤�1',
+    dataIndex: 'ITEM01',
+    width:100,
+    sorter: true,
+    resizable:true
+  }
+  ,
+  {
+    title: '淇濆吇椤�2',
+    dataIndex: 'ITEM02',
+    width:100,
+    sorter: true,
+    resizable:true
+  }
+  ,
+  {
+    title: '淇濆吇椤�3',
+    dataIndex: 'ITEM03',
+    width:100,
+    sorter: true,
+    resizable:true
+  }
+  ,
+  {
+    title: '淇濆吇椤�4',
+    dataIndex: 'ITEM04',
+    width:100,
+    sorter: true,
+    resizable:true
+  }
+  ,
+  {
+    title: '淇濆吇椤�5',
+    dataIndex: 'ITEM05',
+    width:100,
+    sorter: true,
+    resizable:true
+  }
+  ,
+  {
+    title: '淇濆吇椤�6',
+    dataIndex: 'ITEM06',
+    width:100,
+    sorter: true,
+    resizable:true
+  }
+  ,
+  {
+    title: '淇濆吇椤�7',
+    dataIndex: 'ITEM07',
+    width:100,
+    sorter: true,
+    resizable:true
+  }
+  ,
+  {
+    title: '淇濆吇椤�8',
+    dataIndex: 'ITEM08',
+    width:100,
+    sorter: true,
+    resizable:true
+  }
+  ,
+  {
+    title: '淇濆吇椤�9',
+    dataIndex: 'ITEM09',
+    width:100,
+    sorter: true,
+    resizable:true
+  }
+  ,
+  {
+    title: '淇濆吇椤�10',
+    dataIndex: 'ITEM10',
+    width:100,
+    sorter: true,
+    resizable:true
+  }
+  ,
+  {
+    title: '淇濆吇椤�11',
+    dataIndex: 'ITEM11',
+    width:100,
+    sorter: true,
+    resizable:true
+  }
+  ,
+  {
+    title: '淇濆吇椤�12',
+    dataIndex: 'ITEM12',
+    width:100,
+    sorter: true,
+    resizable:true
+  }
+  ,
+  {
+    title: '淇濆吇椤�13',
+    dataIndex: 'ITEM13',
+    width:100,
+    sorter: true,
+    resizable:true
+  }
+  ,
+  {
+    title: '淇濆吇椤�14',
+    dataIndex: 'ITEM14',
+    width:100,
+    sorter: true,
+    resizable:true
+  }
+  ,
+  {
+    title: '淇濆吇椤�15',
+    dataIndex: 'ITEM15',
+    width:100,
+    sorter: true,
+    resizable:true
+  }
+  ,
+  {
+    title: '淇濆吇椤�16',
+    dataIndex: 'ITEM16',
+    width:100,
+    sorter: true,
+    resizable:true
+  }
+  ,
+  {
+    title: '淇濆吇椤�17',
+    dataIndex: 'ITEM17',
+    width:100,
+    sorter: true,
+    resizable:true
+  }
+  ,
+  {
+    title: '淇濆吇椤�18',
+    dataIndex: 'ITEM18',
+    width:100,
+    sorter: true,
+    resizable:true
+  }
+  ,
+  {
+    title: '淇濆吇椤�19',
+    dataIndex: 'ITEM19',
+    width:100,
+    sorter: true,
+    resizable:true
+  }
+  ,
+  {
+    title: '淇濆吇椤�20',
+    dataIndex: 'ITEM20',
+    width:100,
+    sorter: true,
+    resizable:true
+  }
+  ,
+  {
+    title: '澶囨敞',
+    dataIndex: 'REMARK',
+    width:100,
+    sorter: true,
+    resizable:true
+  }
+  ,
+  {
+    title: '鍒涘缓浜�',
+    dataIndex: 'CREATE_USER',
+    width:100,
+    sorter: true,
+    resizable:true
+  },
+  {
+    title: '鍒涘缓鏃堕棿',
+    dataIndex: 'CREATE_TIME',
+    width:100,
+    sorter: true,
+    resizable:true
+  }
+];
+
+export const searchFormSchema: FormSchema[] = [
+  {
+    field: 'PROJ_CODE',
+    label: '淇濆吇椤圭洰缂栫爜',
+    component: 'Input',
+    colProps: { span: 8 },
+  }
+];
+
+//鏂板缁勪欢export const
+export const formSchema: FormSchema[] = [
+  {
+    label: '淇濆吇椤圭洰缂栫爜',
+    field: 'PROJ_CODE',
+    required: true,
+    colProps: { span: 8 },
+    component: 'Input',
+  },
+  {
+    field: 'ID',
+    label: 'ID',
+    component: 'Input',
+    show: false,
+  },
+  {
+    label: '淇濆吇椤圭洰鍚嶇О',
+    field: 'PROJ_NAME',
+    required: true,
+    colProps: { span: 8 },
+    component: 'Input',
+  },
+  {
+    label: '绫诲瀷',
+    field: 'TOOL_TYPE',
+    required: true,
+    component: 'ApiSelect',
+    colProps: { span: 8 },
+    componentProps: {
+      api: optionsListApiType,
+      resultField: 'Data',
+      labelField: unref(getLocale)=='zh_CN'?'Desc':'Name',
+      valueField: 'Value',
+    },
+  },
+  {
+    label: '淇濆吇椤�1',
+    field: 'ITEM01',
+    required: true,
+    colProps: { span: 8 },
+    component: 'Input',
+  },
+  {
+    label: '淇濆吇椤�2',
+    field: 'ITEM02',
+    required: true,
+    colProps: { span: 8 },
+    component: 'Input',
+  },
+  {
+    label: '淇濆吇椤�3',
+    field: 'ITEM03',
+    required: true,
+    colProps: { span: 8 },
+    component: 'Input',
+  },
+  {
+    label: '淇濆吇椤�4',
+    field: 'ITEM04',
+    required: true,
+    colProps: { span: 8 },
+    component: 'Input',
+  },
+  {
+    label: '淇濆吇椤�5',
+    field: 'ITEM05',
+    required: true,
+    colProps: { span: 8 },
+    component: 'Input',
+  },
+  {
+    label: '淇濆吇椤�6',
+    field: 'ITEM06',
+    required: true,
+    colProps: { span: 8 },
+    component: 'Input',
+  },
+  {
+    label: '淇濆吇椤�7',
+    field: 'ITEM07',
+    required: true,
+    colProps: { span: 8 },
+    component: 'Input',
+  },
+  {
+    label: '淇濆吇椤�8',
+    field: 'ITEM08',
+    required: true,
+    colProps: { span: 8 },
+    component: 'Input',
+  },
+  {
+    label: '淇濆吇椤�9',
+    field: 'ITEM09',
+    required: true,
+    colProps: { span: 8 },
+    component: 'Input',
+  },
+  {
+    label: '淇濆吇椤�10',
+    field: 'ITEM10',
+    required: true,
+    colProps: { span: 8 },
+    component: 'Input',
+  },
+  {
+    label: '淇濆吇椤�11',
+    field: 'ITEM11',
+    required: true,
+    colProps: { span: 8 },
+    component: 'Input',
+  },
+  {
+    label: '淇濆吇椤�12',
+    field: 'ITEM12',
+    required: true,
+    colProps: { span: 8 },
+    component: 'Input',
+  },
+  {
+    label: '淇濆吇椤�13',
+    field: 'ITEM13',
+    required: true,
+    colProps: { span: 8 },
+    component: 'Input',
+  },
+  {
+    label: '淇濆吇椤�14',
+    field: 'ITEM14',
+    required: true,
+    colProps: { span: 8 },
+    component: 'Input',
+  },
+  {
+    label: '淇濆吇椤�15',
+    field: 'ITEM15',
+    required: true,
+    colProps: { span: 8 },
+    component: 'Input',
+  },
+  {
+    label: '淇濆吇椤�16',
+    field: 'ITEM16',
+    required: true,
+    colProps: { span: 8 },
+    component: 'Input',
+  },
+  {
+    label: '淇濆吇椤�17',
+    field: 'ITEM17',
+    required: true,
+    colProps: { span: 8 },
+    component: 'Input',
+  },
+  {
+    label: '淇濆吇椤�18',
+    field: 'ITEM18',
+    required: true,
+    colProps: { span: 8 },
+    component: 'Input',
+  },
+  {
+    label: '淇濆吇椤�19',
+    field: 'ITEM19',
+    required: true,
+    colProps: { span: 8 },
+    component: 'Input',
+  },
+  {
+    label: '淇濆吇椤�20',
+    field: 'ITEM20',
+    required: true,
+    colProps: { span: 8 },
+    component: 'Input',
+  },
+  {
+    label: '澶囨敞',
+    field: 'REMARK',
+    required: true,
+    colProps: { span: 8 },
+    component: 'Input',
+  }
+];
diff --git a/src/views/tigerprojects/mes/smt/tool/smt_tool/smt_tool.data.ts b/src/views/tigerprojects/mes/smt/tool/smt_tool/smt_tool.data.ts
index ccc70d5..8fbe410 100644
--- a/src/views/tigerprojects/mes/smt/tool/smt_tool/smt_tool.data.ts
+++ b/src/views/tigerprojects/mes/smt/tool/smt_tool/smt_tool.data.ts
@@ -281,5 +281,5 @@
     required: true,
     component: 'Input',
     colProps: { span: 8 },
-  },
+  }
 ];

--
Gitblit v1.9.3