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