From 858b9bccead46cdefc99325b7c956d50a2964309 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期六, 08 三月 2025 10:20:28 +0800
Subject: [PATCH] 一些优化

---
 src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts |  235 ++++++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 203 insertions(+), 32 deletions(-)

diff --git a/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts b/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts
index b091908..7d49fae 100644
--- a/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts
+++ b/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts
@@ -4,17 +4,25 @@
  * @version:
  * @Date: 2024-06-19 20:34:27
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-07-04 10:22:39
+ * @LastEditTime: 2024-09-11 20:44:25
  */
 
 import { Ref, h, ref, unref } from 'vue';
-import { DeleteEntity, GetEnum, getEntity } from '/@/api/tigerapi/system';
+import {
+  AddAfterDelete,
+  DeleteEntity,
+  GetEnum,
+  SaveEntity,
+  getEntity,
+} from '/@/api/tigerapi/system';
 import { ActionItem, BasicColumn, FormSchema, useTable } from '/@/components/Table';
 import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is';
 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() {
@@ -36,7 +44,7 @@
      * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓�
      * @return {*}
      */
-    CreateAction: (fnName: string) => {
+    CreateAction: (type: string) => {
       return {
         action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�)
       };
@@ -182,7 +190,7 @@
           title: '鍒楄〃淇℃伅',
           dataSource: data.value['MES_SHIFT'],
           columns: baseColumns['MES_SHIFT'],
-          maxHeight: 230,
+          maxHeight: 160,
           formConfig: {
             labelWidth: 140,
             schemas: searchForms['MES_SHIFT'],
@@ -205,16 +213,16 @@
           title: '鍒楄〃淇℃伅',
           dataSource: data.value['MES_SHIFT_PRD'],
           columns: baseColumns['MES_SHIFT_PRD'],
-          maxHeight: 260,
+          maxHeight: 550,
           formConfig: {
             labelWidth: 140,
             schemas: searchForms['MES_SHIFT_PRD'],
             submitFunc: () => Search('MES_SHIFT_PRD', data, args[0]), //鑷畾涔夋煡璇㈡彁浜ゆ寜閽殑鏂规硶锛岃Е鍙戞煡璇㈡彁浜や簨浠�
           },
-          useSearchForm: true,
+          useSearchForm: false,
           showTableSetting: false,
           bordered: true,
-          canResize: true,
+          canResize: false,
           showIndexColumn: false,
           actionColumn: {
             width: 130,
@@ -257,22 +265,42 @@
      * @param {*} d
      * @param {*} u
      * @return {*}
-     */ EditOperation: (data: Ref<any[]>, d, u, item) => {
+     */
+    EditOperation: (data: Ref<any[]>, d, u, name) => {
       //鏇存柊
-      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,
-          };
+      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: 鑾峰彇鏍囬淇℃伅
@@ -288,6 +316,81 @@
           MES_SHIFT_PRD: '鏃舵绠$悊',
         },
       };
+    },
+    /**
+     * @description: 鎻愪氦鎵�鏈�
+     * @return {*}
+     */
+    SubmitAll: (data: Ref<any[]>, keyFieldValues: Ref<{}>, ...args) => {
+      const validates = args[1].validates;
+      const Keys = args[1].Keys;
+      const isAllUpdate = args[1].isAllUpdate;
+      const baseCards = args[1].baseCards;
+      const IsExist = args[1].IsExist;
+      /* 寰幆淇濆瓨楂樼骇琛ㄥ崟涓富琛ㄥ崟淇℃伅锛屽鏋滄湁澶氫釜鐨勮瘽锛屾墍浠ヨ寰幆 */
+      let i;
+      let p = [] as Promise<any>[];
+      for (i = 0; i < Keys.length; i++) {
+        p.push(
+          SaveEntity(
+            validates[Keys[i]],
+            unref(isAllUpdate),
+            baseCards.value[i]['entityName'],
+            `${IsExist}='${validates[Keys[i]][IsExist]}'`,
+            true,
+          ),
+        );
+      }
+      Promise.all(p).then(() => {
+        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 {};
     },
   };
 
@@ -305,7 +408,9 @@
     if (!isNullOrEmpty(params['data'])) {
       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']);
+        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: [],
@@ -355,10 +460,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: '鏄惁璺ㄥぉ',
@@ -410,10 +521,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: '鏄惁璺ㄥぉ',
@@ -539,6 +656,7 @@
         label: '鐝埗缂栫爜',
         field: 'SFTS_CODE',
         component: 'ApiSelect',
+        required: true,
         colProps: {
           span: 24,
         },
@@ -553,21 +671,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: '鏄惁璺ㄥぉ',
@@ -617,7 +769,7 @@
         },
         show: false,
       },
-    ],
+    ] as FormSchema[],
     MES_SHIFT_PRD: [
       {
         field: 'PRD_CODE',
@@ -641,6 +793,7 @@
         label: '鐝缂栫爜',
         field: 'SFT_CODE',
         component: 'Select',
+        required: true,
         colProps: {
           span: 24,
         },
@@ -660,15 +813,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,
         },
@@ -736,7 +907,7 @@
         },
         show: false,
       },
-    ],
+    ] as FormSchema[],
   };
 
   return [methods, ActionColumn];

--
Gitblit v1.9.3