From e23fdf87e6c3bc6d42198b9309617195f2efd6c0 Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期六, 06 七月 2024 23:40:08 +0800 Subject: [PATCH] 高级表单优化 --- src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_DTL.ts | 154 ++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 109 insertions(+), 45 deletions(-) diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_DTL.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_DTL.ts index d26dd9d..768dc26 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_DTL.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_DTL.ts @@ -4,18 +4,15 @@ * @version: * @Date: 2024-06-19 20:34:27 * @LastEditors: Ben Lin - * @LastEditTime: 2024-07-02 19:59:52 + * @LastEditTime: 2024-07-06 23:15:08 */ -import { Ref } from 'vue'; +import { Ref, ref } from 'vue'; import { DeleteEntity, 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 { useDrawer } from '/@/components/Drawer'; -import { EditOperation, Search } from '../data'; +import { EditOperation, Search, custDel } from '../data'; function _default(): any[] { const ActionColumn: BasicColumn = { @@ -26,6 +23,8 @@ fixed: undefined, }; + let _data = ref<any>({}); + let record = {}; /** * @description: 涓�浜涜嚜瀹氫箟鏂规硶 * @return {*} @@ -47,7 +46,7 @@ ActionItem: (params: Recordable<any>, data, ...args): ActionItem[] => { /* 閲嶅啓鍒犻櫎鏂规硶 */ if (!isNullOrUnDef(data[1])) { - data[1].popConfirm.confirm = custDel.bind(null, args, params); + data[1].popConfirm.confirm = Del.bind(null, args, params); } return data; }, @@ -65,6 +64,7 @@ return { ...item, PKG_CODE: d.PKG_CODE, + PKG_NAME: d.PKG_NAME, PKG_LEVEL: d.PKG_LEVEL, PKG_QTY: d.PKG_QTY, LABEL_CODE: d.LABEL_CODE, @@ -72,7 +72,7 @@ }; return item; }); - EditOperation(data,d, u, item, _data); + EditOperation(data, d, u, item, _data); }, /** * @description: 楂樼骇琛ㄥ崟鍜岃鎯呴〉闈㈣繑鍥炰富椤甸潰鐨剈rl @@ -99,10 +99,12 @@ * @description: 楂樼骇琛ㄥ崟澧炲垹鏀硅〃鍗曞瓧娈� * @return {*} */ - GetCrudForm: (type: string) => { + GetCrudForm: (type: string, ...args) => { + _data = args[0]; + record = args[1]; return crudForms[type]; }, - OthersValues: (val: string, id: string) => { + KeyFieldValues: (val: string, id: string) => { return { PKG_RULE_ID: id }; }, /** @@ -215,7 +217,7 @@ submitFunc: () => Search('BAS_PKG_DTL', data, args[0]), //鑷畾涔夋煡璇㈡彁浜ゆ寜閽殑鏂规硶锛岃Е鍙戞煡璇㈡彁浜や簨浠� }, useSearchForm: true, - showTableSetting: true, + showTableSetting: false, bordered: true, canResize: true, showIndexColumn: false, @@ -270,21 +272,32 @@ * @param {*} params * @return {*} */ - function custDel(args: Fn[], params: {}) { + 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((x) => x['ID'] != params['record']['ID']) //杩囨护鎺夊垹闄ゆ帀鐨勮褰� + .map((item) => { + //濡傛灉搴忓彿澶т簬鍒犻櫎鎺夌殑璁板綍鐨勫簭鍙风殑锛屽垯搴忓彿鍑�1 + item['PKG_LEVEL'] = + item['PKG_LEVEL'] > params['record']['PKG_LEVEL'] + ? item['PKG_LEVEL'] - 1 + : item['PKG_LEVEL']; + return item; + }); + 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(); } }); } @@ -308,8 +321,22 @@ { title: '鍖呰/杞藉叿缂栫爜', dataIndex: 'PKG_CODE', - // ifShow: false, + ifShow: false, width: 180, + }, + { + title: '鍖呰/杞藉叿鍚嶇О', + dataIndex: 'PKG_NAME', + ifShow: false, + width: 180, + }, + { + title: '鍖呰/杞藉叿', + dataIndex: 'PKG_FULL', + width: 180, + customRender: ({ record }) => { + return `${record.PKG_CODE} - ${record.PKG_NAME}`; + }, }, { title: '鍖呰灞傜骇', @@ -342,31 +369,6 @@ const crudForms = { BAS_PKG_DTL: [ { - field: 'PKG_CODE', - label: '鍖呰/杞藉叿缂栫爜', - component: 'ApiSelect', - required: true, - colProps: { - span: 24, - }, - componentProps: { - api: getEntity, - params: { entityName: 'BAS_PKG_TYPE', sqlcmd: ' 1=1 ' }, - resultField: 'Data.Items', - labelField: 'PKG_NAME', - valueField: 'PKG_CODE', - }, - }, - { - label: '鍖呰灞傜骇', - field: 'PKG_LEVEL', - component: 'Input', - required: true, - colProps: { - span: 24, - }, - }, - { label: '鍖呰瑙勫垯ID', field: 'PKG_RULE_ID', component: 'Input', @@ -378,6 +380,59 @@ }, }, { + label: '鍖呰灞傜骇', + field: 'PKG_LEVEL', + component: 'Input', + required: true, + colProps: { + span: 24, + }, + componentProps: ({ formModel }) => { + formModel.PKG_LEVEL = + _data['BAS_PKG_DTL'].reduce((max, item) => { + return max < Number(item.PKG_LEVEL) ? Number(item.PKG_LEVEL) : max; + }, 0) + 1; + return { + onChange: (e) => {}, + }; + }, + dynamicDisabled: ({ values }) => { + return true; + }, + }, + { + field: 'PKG_CODE', + label: '鍖呰/杞藉叿缂栫爜', + component: 'ApiSelect', + required: true, + colProps: { + span: 24, + }, + componentProps: ({ formModel }) => { + let sqlcmd = ' 1=1 '; + if (!isNullOrEmpty(record) && record['PKG_LEVEL'] == 1) { + sqlcmd += ` And IS_MIN_PKG = 'Y'`; + } else { + if (formModel.PKG_LEVEL == 1) { + sqlcmd += ` And IS_MIN_PKG = 'Y'`; + } else { + sqlcmd += ` And IS_MIN_PKG != 'Y'`; + } + } + return { + api: getEntity, + params: { entityName: 'BAS_PKG_TYPE', sqlcmd: sqlcmd }, + resultField: 'Data.Items', + labelField: 'PKG_NAME', + valueField: 'PKG_CODE', + onChange: (e, v) => { + console.log('ApiSelect====>:', e, v); + formModel.PKG_NAME = isNullOrUnDef(v) ? formModel.PKG_NAME : v.label; + }, + }; + }, + }, + { label: '鍖呰鏁伴噺', field: 'PKG_QTY', component: 'Input', @@ -386,6 +441,15 @@ }, }, { + label: '鍖呰鍚嶇О', + field: 'PKG_NAME', + component: 'Input', + colProps: { + span: 24, + }, + show: false, + }, + { label: '澶囨敞', field: 'REMARK', component: 'Input', -- Gitblit v1.9.3