From bb8fba76d8c69f6957c606c2f3bb501af952b533 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期四, 04 七月 2024 23:11:17 +0800
Subject: [PATCH] 班制更新

---
 src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts |  237 ++++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 194 insertions(+), 43 deletions(-)

diff --git a/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts b/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts
index be4ec99..557b46b 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts
@@ -4,20 +4,19 @@
  * @version:
  * @Date: 2024-06-19 20:34:27
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-07-02 19:41:38
+ * @LastEditTime: 2024-07-04 23:06:52
  */
 
 import { Ref, h, ref, unref } from 'vue';
-import { DeleteEntity, GetEnum, getEntity } from '/@/api/tigerapi/system';
+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() {
@@ -192,7 +191,7 @@
             submitFunc: () => Search('MES_SHIFT', data, args[0]), //鑷畾涔夋煡璇㈡彁浜ゆ寜閽殑鏂规硶锛岃Е鍙戞煡璇㈡彁浜や簨浠�
           },
           useSearchForm: true,
-          showTableSetting: true,
+          showTableSetting: false,
           bordered: true,
           canResize: true,
           showIndexColumn: false,
@@ -215,7 +214,7 @@
             submitFunc: () => Search('MES_SHIFT_PRD', data, args[0]), //鑷畾涔夋煡璇㈡彁浜ゆ寜閽殑鏂规硶锛岃Е鍙戞煡璇㈡彁浜や簨浠�
           },
           useSearchForm: true,
-          showTableSetting: true,
+          showTableSetting: false,
           bordered: true,
           canResize: true,
           showIndexColumn: false,
@@ -251,31 +250,51 @@
       }
       return data;
     },
-    OthersValues: (val: string, id: string) => {
+    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) => {
-       //鏇存柊
-       var _data = data.value[item].map((item) => {
-        if (item['ID'] == d.ID)
-          return {
-            ...item,
-            SFT_CODE: d.SFT_CODE,
-            SFT_NAME: d.SFT_NAME,
-            SFT_BEGIN: d.SFT_BEGIN,
-            SFT_END: d.SFT_END,
-            IS_ACROSS_DAY: d.IS_ACROSS_DAY,
-            REMARK: d.REMARK,
-          };
+     */
+    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: dateUtil(d.SFT_BEGIN),
+              SFT_END: dateUtil(d.SFT_END),
+              IS_ACROSS_DAY: d.IS_ACROSS_DAY,
+              REMARK: d.REMARK,
+            };
+          }
+          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,
+            };
+          }
+        }
         return item;
       });
-      EditOperation(data,d, u, item, _data);
+      EditOperation(data, d, u, name, _data);
     },
     /**
      * @description: 鑾峰彇鏍囬淇℃伅
@@ -292,6 +311,57 @@
         },
       };
     },
+    /**
+     * @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));
+        }
+      });
+    },
   };
 
   /* 浠ヤ笅鏄唴閮ㄦ柟娉曪紝涓峞xport */
@@ -303,20 +373,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();
         }
       });
     }
@@ -345,10 +430,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: '鏄惁璺ㄥぉ',
@@ -400,10 +491,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: '鏄惁璺ㄥぉ',
@@ -529,6 +626,7 @@
         label: '鐝埗缂栫爜',
         field: 'SFTS_CODE',
         component: 'ApiSelect',
+        required: true,
         colProps: {
           span: 24,
         },
@@ -543,21 +641,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: '鏄惁璺ㄥぉ',
@@ -607,7 +739,7 @@
         },
         show: false,
       },
-    ],
+    ] as FormSchema[],
     MES_SHIFT_PRD: [
       {
         field: 'PRD_CODE',
@@ -631,11 +763,12 @@
         label: '鐝缂栫爜',
         field: 'SFT_CODE',
         component: 'Select',
+        required: true,
         colProps: {
           span: 24,
         },
         componentProps: () => {
-          const options = _data.value['MES_SHIFT'].map((entity) => ({
+          const options = _data['MES_SHIFT'].map((entity) => ({
             value: entity.SFT_CODE,
             label: entity.SFT_NAME,
           }));
@@ -650,15 +783,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,
         },
@@ -726,7 +877,7 @@
         },
         show: false,
       },
-    ],
+    ] as FormSchema[],
   };
 
   return [methods, ActionColumn];

--
Gitblit v1.9.3