From eed29804d3973801f8eac3ad9bead1e608f05b6a Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期六, 20 七月 2024 22:31:56 +0800
Subject: [PATCH] 工单及自定义弹出窗口更新

---
 src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts |  302 +++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 224 insertions(+), 78 deletions(-)

diff --git a/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts b/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts
index 900d7f2..93073b2 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts
@@ -4,42 +4,23 @@
  * @version:
  * @Date: 2024-06-19 20:34:27
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-07-02 03:40:15
+ * @LastEditTime: 2024-07-04 23:53:48
  */
 
 import { Ref, h, ref, unref } from 'vue';
-import { DeleteEntity, GetEnum, getEntity } from '/@/api/tigerapi/system';
-import { ActionItem, BasicColumn, useTable } from '/@/components/Table';
+import { AddAfterDelete, DeleteEntity, GetEnum, getEntity } from '/@/api/tigerapi/system';
+import { ActionItem, BasicColumn, FormSchema, useTable } from '/@/components/Table';
 import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is';
-import { buildUUID } from '/@/utils/uuid';
-import { useUserStore } from '/@/store/modules/user';
-import { formatToDateTime } from '/@/utils/dateUtil';
 import { Tag } from 'ant-design-vue';
 import { useLocale } from '/@/locales/useLocale';
 import { useDrawer } from '/@/components/Drawer';
+import { EditOperation, Search } from '../data';
+import { convertTimeToDate, dateUtil, formatTime, intToTime, tsToHHmm } from '/@/utils/dateUtil';
+import { buildUUID } from '/@/utils/uuid';
 
 const { getLocale } = useLocale();
 function _default() {
-  let _data = ref([
-    {
-      SFT_CODE: '1',
-      SFT_NAME: '1',
-      SFTS_CODE: '1',
-      SFT_BEGIN: 1,
-      SFT_END: 1,
-      IS_ACROSS_DAY: 'N',
-      REMARK: '1',
-      AUTH_ORG: '1',
-      AUTH_PROD: '1',
-      AUTH_WH: '1',
-      GHOST_ROW: false,
-      CREATE_TIME: '2024-07-01 12:34:29',
-      CREATE_USER: '1',
-      UPDATE_TIME: '2024-07-01 12:34:29',
-      UPDATE_USER: '1',
-      ID: '6632a14fec8c470c9216f5c7354baa22',
-    },
-  ] as Recordable<any>[]);
+  let _data = ref<any>({});
   const ActionColumn: BasicColumn = {
     width: 80,
     title: '鎿嶄綔',
@@ -203,12 +184,14 @@
           title: '鍒楄〃淇℃伅',
           dataSource: data.value['MES_SHIFT'],
           columns: baseColumns['MES_SHIFT'],
+          maxHeight: 160,
           formConfig: {
             labelWidth: 140,
             schemas: searchForms['MES_SHIFT'],
+            submitFunc: () => Search('MES_SHIFT', data, args[0]), //鑷畾涔夋煡璇㈡彁浜ゆ寜閽殑鏂规硶锛岃Е鍙戞煡璇㈡彁浜や簨浠�
           },
           useSearchForm: true,
-          showTableSetting: true,
+          showTableSetting: false,
           bordered: true,
           canResize: true,
           showIndexColumn: false,
@@ -224,14 +207,16 @@
           title: '鍒楄〃淇℃伅',
           dataSource: data.value['MES_SHIFT_PRD'],
           columns: baseColumns['MES_SHIFT_PRD'],
+          maxHeight: 550,
           formConfig: {
             labelWidth: 140,
             schemas: searchForms['MES_SHIFT_PRD'],
+            submitFunc: () => Search('MES_SHIFT_PRD', data, args[0]), //鑷畾涔夋煡璇㈡彁浜ゆ寜閽殑鏂规硶锛岃Е鍙戞煡璇㈡彁浜や簨浠�
           },
-          useSearchForm: true,
-          showTableSetting: true,
+          useSearchForm: false,
+          showTableSetting: false,
           bordered: true,
-          canResize: true,
+          canResize: false,
           showIndexColumn: false,
           actionColumn: {
             width: 130,
@@ -243,47 +228,73 @@
         }),
       };
     },
-    OthersValues: (val: string, id: string) => {
+    /**
+     * @description: 琛ㄦ牸鏌ヨ鍥炶皟锛岀埗缁勪欢涓�氳繃瀛愮粍浠惰Е鍙戠殑浜嬩欢鑾峰彇浼犲叆鐨勫�硷紝鍋氬叿浣撶殑鏌ヨ閫昏緫瀹炵幇
+     * @param {*} d
+     * @return {*}
+     */
+    FormSearch: (d) => {
+      let data = {} as any;
+      switch (d.type) {
+        case 'MES_SHIFT':
+          data = d.data.value[d.type].filter(
+            (item) =>
+              item.SFT_CODE.includes(d.values.SFT_CODE) || item.SFT_NAME == d.values.SFT_NAME,
+          );
+          if (isNullOrEmpty(d.values.SFT_CODE) && isNullOrEmpty(d.values.SFT_NAME)) {
+            data = d.data.value[d.type];
+          }
+          break;
+        case 'MES_SHIFT_PRD':
+          break;
+      }
+      return data;
+    },
+    KeyFieldValues: (val: string, id: string) => {
       return { SFTS_CODE: val };
-    } /**
+    },
+    /**
      * @description: 鑷畾涔夋槑缁嗚〃涓紪杈戣繑鍥炴柟娉�
      * @param {string} type
      * @param {*} d
      * @param {*} u
      * @return {*}
-     */,
-    EditOperation: (data: Ref<any[]>, d, u, item) => {
-      if (u.isUpdate) {
-        //鏇存柊
-        var _data = data.value.map((item) => {
-          if (item['ID'] == d.ID)
+     */
+    EditOperation: (data: Ref<any[]>, d, u, name) => {
+      //鏇存柊
+      var _data = data.value[name].map((item) => {
+        if (item['ID'] == d.ID) {
+          if (name == 'MES_SHIFT') {
+            // item.SFT_BEGIN = dateUtil(item.SFT_BEGIN);
+            // item.SFT_END = dateUtil(item.SFT_END);
             return {
               ...item,
               SFT_CODE: d.SFT_CODE,
               SFT_NAME: d.SFT_NAME,
-              SFT_BEGIN: d.SFT_BEGIN,
-              SFT_END: d.SFT_END,
+              SFT_BEGIN: dateUtil(d.SFT_BEGIN),
+              SFT_END: dateUtil(d.SFT_END),
               IS_ACROSS_DAY: d.IS_ACROSS_DAY,
               REMARK: d.REMARK,
             };
-          return item;
-        });
-        data.value = _data;
-      } else {
-        //鏂板
-        d.ID = buildUUID();
-        d.CREATE_USER = useUserStore().getUserInfo.userId as string;
-        d.UPDATE_TIME = formatToDateTime(new Date());
-        d.UPDATE_USER = useUserStore().getUserInfo.userId as string;
-        var _data2: any[] = [];
-        if (!isNullOrEmpty(data.value[item])) {
-          _data2 = data.value[item].map((item) => {
-            return item;
-          });
+          }
+          if (name == 'MES_SHIFT_PRD') {
+            return {
+              ...item,
+              PRD_CODE: d.PRD_CODE,
+              PRD_NAME: d.PRD_NAME,
+              SFT_CODE: d.SFT_CODE,
+              IS_ACROSS: d.IS_ACROSS,
+              IS_REST: d.IS_REST,
+              SEQ: d.SEQ,
+              PRD_BEGIN: dateUtil(d.PRD_BEGIN),
+              PRD_END: dateUtil(d.PRD_END),
+              REMARK: d.REMARK,
+            };
+          }
         }
-        _data2.push(d);
-        data.value[item] = _data2;
-      }
+        return item;
+      });
+      EditOperation(data, d, u, name, _data);
     },
     /**
      * @description: 鑾峰彇鏍囬淇℃伅
@@ -300,6 +311,60 @@
         },
       };
     },
+    /**
+     * @description: 鎻愪氦鎵�鏈�
+     * @return {*}
+     */
+    SubmitAll: (data: Ref<any[]>, keyFieldValues: Ref<{}>, ...args) => {
+      const drawers = [
+        { name: 'MES_SHIFT', code: 'SFTS_CODE', type: 'one', keyName: 'MES_SHIFT', order: '' },
+        { name: 'MES_SHIFT_PRD', code: 'SFT_CODE', type: 'all', keyName: 'MES_SHIFT', order: '' },
+      ];
+      drawers.forEach((d) => {
+        let where = `${d['code']} = '${keyFieldValues.value[d['code']]}'`;
+        /* type: all-琛ㄧず闇�瑕乧ode鐨勬墍鏈夌殑鍊� */
+        if (d['type'] == 'all' && data.value[d['keyName']].length > 0) {
+          where = `${d['code']} in (${data.value[d['keyName']].map((value) => `'${value[d['code']]}'`).join(',')})`;
+        }
+        data.value[d['name']].map((item) => {
+          item.ID = buildUUID();
+          if (d['name'] == 'MES_SHIFT') {
+            item.SFT_BEGIN = tsToHHmm(item.SFT_BEGIN);
+            item.SFT_END = tsToHHmm(item.SFT_END);
+          }
+          if (d['name'] == 'MES_SHIFT_PRD') {
+            item.PRD_BEGIN = tsToHHmm(item.PRD_BEGIN);
+            item.PRD_END = tsToHHmm(item.PRD_END);
+          }
+        });
+        AddAfterDelete(d['name'], data.value[d['name']], where).then((action) => {
+          if (action.IsSuccessed) {
+            args[0]();
+          }
+        });
+      });
+    },
+    /**
+     * @description: 鍒濆鍖栨暟鎹�
+     * @param {Ref} data
+     * @param {Ref} keyFieldValues
+     * @return {*}
+     */
+    CustInitData: (data: Ref<any[]>, keyFieldValues: Ref<{}>, type: string) => {
+      data.value[type].map((item) => {
+        if (type == 'MES_SHIFT') {
+          item.SFT_BEGIN = convertTimeToDate(intToTime(item.SFT_BEGIN));
+          item.SFT_END = convertTimeToDate(intToTime(item.SFT_END));
+        }
+        if (type == 'MES_SHIFT_PRD') {
+          item.PRD_BEGIN = convertTimeToDate(intToTime(item.PRD_BEGIN));
+          item.PRD_END = convertTimeToDate(intToTime(item.PRD_END));
+        }
+      });
+    },
+    GetUseForm: () => {
+      return {};
+    },
   };
 
   /* 浠ヤ笅鏄唴閮ㄦ柟娉曪紝涓峞xport */
@@ -311,20 +376,35 @@
    * @return {*}
    */
   function Del(args: Fn[], params: {}) {
+    const name = params['name'];
+    const useTables = args[1];
     if (!isNullOrEmpty(params['data'])) {
-      var _data = params['data'].value.filter((item) => item['ID'] != params['record']['ID']);
-      params['data'].value = _data;
-      args[6]({
+      var _data = params['data'].value[name].filter((item) => item['ID'] != params['record']['ID']);
+      if (name == 'MES_SHIFT') {
+        var _data2 = params['data'].value['MES_SHIFT_PRD'].filter(
+          (item) => item['SFT_CODE'] != params['record']['SFT_CODE'],
+        );
+        params['data'].value['MES_SHIFT_PRD'] = _data2;
+        useTables['MES_SHIFT_PRD'][1].setProps({
+          dataSource: [],
+        });
+        useTables['MES_SHIFT_PRD'][1].setProps({
+          dataSource: params['data'].value['MES_SHIFT_PRD'],
+        });
+        useTables['MES_SHIFT_PRD'][1].reload();
+      }
+      params['data'].value[name] = _data;
+      useTables[name][1].setProps({
         dataSource: [],
       });
-      args[6]({
-        dataSource: params['data'],
+      useTables[name][1].setProps({
+        dataSource: params['data'].value[name],
       });
-      args[1]();
+      useTables[name][1].reload();
     } else {
       DeleteEntity(params['record'], params['entityName']).then((action) => {
         if (action.IsSuccessed) {
-          args[1]();
+          useTables[name][1].reload();
         }
       });
     }
@@ -353,10 +433,16 @@
       {
         title: '鐝寮�濮嬫椂闂�',
         dataIndex: 'SFT_BEGIN',
+        customRender: ({ record }) => {
+          return formatTime(new Date(record.SFT_BEGIN));
+        },
       },
       {
         title: '鐝缁撴潫鏃堕棿',
         dataIndex: 'SFT_END',
+        customRender: ({ record }) => {
+          return formatTime(new Date(record.SFT_END));
+        },
       },
       {
         title: '鏄惁璺ㄥぉ',
@@ -408,10 +494,16 @@
       {
         title: '鏃舵寮�濮嬫椂闂�',
         dataIndex: 'PRD_BEGIN',
+        customRender: ({ record }) => {
+          return formatTime(new Date(record.PRD_BEGIN));
+        },
       },
       {
         title: '鏃舵缁撴潫鏃堕棿',
         dataIndex: 'PRD_END',
+        customRender: ({ record }) => {
+          return formatTime(new Date(record.PRD_END));
+        },
       },
       {
         title: '鏄惁璺ㄥぉ',
@@ -492,7 +584,7 @@
           span: 8,
         },
       },
-    ],
+    ] as FormSchema[],
     MES_SHIFT_PRD: [
       {
         field: 'PRD_CODE',
@@ -510,7 +602,7 @@
           span: 8,
         },
       },
-    ],
+    ] as FormSchema[],
   };
 
   const crudForms = {
@@ -537,6 +629,7 @@
         label: '鐝埗缂栫爜',
         field: 'SFTS_CODE',
         component: 'ApiSelect',
+        required: true,
         colProps: {
           span: 24,
         },
@@ -551,21 +644,55 @@
           return true;
         },
       },
+      // {
+      //   label: '鐝鏃堕棿鑼冨洿',
+      //   field: '[SFT_BEGIN, SFT_END]',
+      //   component: 'TimeRangePicker',
+      //   colProps: {
+      //     span: 24,
+      //   },
+      //   componentProps: ({ formModel }) => {
+      //     return {
+      //       format: 'HH:mm',
+      //       placeholder: ['寮�濮嬫椂闂�', '缁撴潫鏃堕棿'],
+      //       onChange: (e) => {
+      //         const timeRange: any = e;
+      //         console.log(e);
+      //         // if (timeRange) {
+      //         //   formModel.SFT_BEGIN = Number(`${tsToHHmm(timeRange[0].$d)}`);
+      //         //   formModel.SFT_END = Number(`${tsToHHmm(timeRange[1].$d)}`);
+      //         // }
+      //       },
+      //     };
+      //   },
+      // },
       {
         label: '鐝寮�濮嬫椂闂�',
         field: 'SFT_BEGIN',
-        component: 'Input',
+        component: 'TimePicker',
         colProps: {
-          span: 24,
+          span: 12,
         },
+        componentProps: ({ formModel }) => {
+          return {
+            format: 'HH:mm',
+          };
+        },
+        // show: false,
       },
       {
-        label: '鐝缁撴潫鏃堕棿',
+        label: '缁撴潫鏃堕棿',
         field: 'SFT_END',
-        component: 'Input',
+        component: 'TimePicker',
         colProps: {
-          span: 24,
+          span: 12,
         },
+        componentProps: ({ formModel }) => {
+          return {
+            format: 'HH:mm',
+          };
+        },
+        // show: false,
       },
       {
         label: '鏄惁璺ㄥぉ',
@@ -615,7 +742,7 @@
         },
         show: false,
       },
-    ],
+    ] as FormSchema[],
     MES_SHIFT_PRD: [
       {
         field: 'PRD_CODE',
@@ -639,11 +766,12 @@
         label: '鐝缂栫爜',
         field: 'SFT_CODE',
         component: 'Select',
+        required: true,
         colProps: {
           span: 24,
         },
         componentProps: () => {
-          const options = _data.map((entity) => ({
+          const options = _data['MES_SHIFT'].map((entity) => ({
             value: entity.SFT_CODE,
             label: entity.SFT_NAME,
           }));
@@ -658,15 +786,33 @@
       {
         label: '鏃舵寮�濮嬫椂闂�',
         field: 'PRD_BEGIN',
-        component: 'Input',
+        component: 'TimePicker',
         colProps: {
-          span: 24,
+          span: 12,
+        },
+        componentProps: ({ formModel }) => {
+          return {
+            format: 'HH:mm',
+          };
         },
       },
       {
-        label: '鏃舵缁撴潫鏃堕棿',
+        label: '缁撴潫鏃堕棿',
         field: 'PRD_END',
-        component: 'Input',
+        component: 'TimePicker',
+        colProps: {
+          span: 12,
+        },
+        componentProps: ({ formModel }) => {
+          return {
+            format: 'HH:mm',
+          };
+        },
+      },
+      {
+        label: '鏃舵鎺掑簭',
+        field: 'SEQ',
+        component: 'InputNumber',
         colProps: {
           span: 24,
         },
@@ -734,7 +880,7 @@
         },
         show: false,
       },
-    ],
+    ] as FormSchema[],
   };
 
   return [methods, ActionColumn];

--
Gitblit v1.9.3