From 6cc2d85787171281c269f4a6c3290b4a0762bcb6 Mon Sep 17 00:00:00 2001 From: YangYuGang <1378265336@qq.com> Date: 星期三, 05 三月 2025 16:21:43 +0800 Subject: [PATCH] 生产工具 --- src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_VAR.ts | 408 ++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 354 insertions(+), 54 deletions(-) diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_VAR.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_VAR.ts index 3622424..5169b8a 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_VAR.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_VAR.ts @@ -4,29 +4,34 @@ * @version: * @Date: 2024-06-19 20:34:27 * @LastEditors: Ben Lin - * @LastEditTime: 2024-07-29 23:10:18 + * @LastEditTime: 2024-10-22 11:40:44 */ import { Tag, Tooltip } from 'ant-design-vue'; import { ActionItem, BasicColumn, FormSchema, useTable } from '/@/components/Table'; import { useI18n } from '/@/hooks/web/useI18n'; -import { h, Ref, unref } from 'vue'; +import { h, ref, Ref, unref } from 'vue'; import { AddAfterDelete, getEntity, GetEnum } from '/@/api/tigerapi/system'; import { useLocale } from '/@/locales/useLocale'; import { useDrawer } from '/@/components/Drawer'; -import { formatTime } from '/@/utils/dateUtil'; import { custDel, EditOperation, Search } from '../data'; import { buildUUID } from '/@/utils/uuid'; import { CustModalParams, FunctionType } from '/@/api/tigerapi/model/systemModel'; import { useModal } from '/@/components/Modal'; import { SaveLabelTemplate } from '/@/api/tigerapi/mes/label'; -import { BAS_LABEL_TEMP, BAS_LABEL_VAR, BAS_LABEL_VAR_WO, BasLabelTempInput } from '/@/api/tigerapi/model/mesModel'; +import { + BAS_LABEL_TEMP, + BAS_LABEL_VAR, + BAS_LABEL_VAR_WO, + BasLabelTempInput, +} from '/@/api/tigerapi/model/mesModel'; import { useUserStore } from '/@/store/modules/user'; +import { cloneDeep } from 'lodash-es'; const { getLocale } = useLocale(); const { t } = useI18n(); - +let newRow = {}; function _default() { const ActionColumn: BasicColumn = { width: 80, @@ -74,14 +79,14 @@ * @description: 楂樼骇琛ㄥ崟鍜岃鎯呴〉闈㈣繑鍥炰富椤甸潰鐨剈rl * @return {*} */ - GetHomeUrl: () => { - return `/BAS_LABEL_TEMP/LC/${encodeURI(JSON.stringify({ ID: 'BAS_LABEL_TEMP', colSlots: [], crudColSlots: [] }))}`; + GetHomeUrl: (params: {}) => { + return `/BAS_LABEL_TEMP/LC/${encodeURI(JSON.stringify({ ID: 'BAS_LABEL_TEMP', colSlots: params['colSlots'], crudColSlots: [] }))}`; }, /** * @description: 鑾峰彇涓讳俊鎭� * @return {*} */ - GetBaseForm: () => { + GetBaseForm: (type, ...args) => { return [ { field: 'LABEL_CODE', @@ -92,6 +97,7 @@ colProps: { span: 8, }, + dynamicDisabled: true, }, { label: '鏍囩妯℃澘鍚嶇О', @@ -118,24 +124,50 @@ valueField: 'Value', }, }, - { - field: 'TEMP_PATH', - label: '鏍囩妯℃澘鐩稿璺緞', - component: 'Upload', - isexist: 'N', - show: true, - required: true, - colProps: { - span: 8, - }, - }, + // { + // field: 'TEMP_PATH', + // label: '鏍囩妯℃澘鐩稿璺緞', + // component: 'Upload', + // isexist: 'N', + // show: true, + // required: true, + // colProps: { + // span: 8, + // }, + // componentProps: ({ formModel }) => { + // return { + // resultField: 'data3.url', + // multiple: false, + // uploadParams: { entityName: type }, + // api: (file, progress) => { + // console.log(formModel); + // return new Promise((resolve) => { + // uploadApi(file, progress).then((uploadApiResponse) => { + // const webSocketStore = useWebSocketStore(); + // if (webSocketStore.GetSocketState == 1) { + // webSocketStore.sendMessage( + // `wsSubStrings ${formModel['ID']}_#_${uploadApiResponse.data.url}`, + // ); + // } + // resolve({ + // code: 200, + // data3: { + // url: uploadApiResponse.data.url, + // }, + // }); + // }); + // }); + // }, + // }; + // }, + // }, { field: 'PROD_CODE', label: '浜у搧缂栫爜', component: 'Input', isexist: 'N', show: true, - required: true, + // required: true, colProps: { span: 7, }, @@ -172,7 +204,16 @@ field: 'REMARK', component: 'Input', colProps: { - span: 24, + span: 8, + }, + }, + { + label: '鏍囩妯℃澘鐩稿璺緞', + field: 'TEMP_PATH', + required: true, + component: 'Input', + colProps: { + span: 16, }, }, { @@ -306,15 +347,17 @@ GetNewRow: (type: string) => { let values = {}; switch (type) { - case 'BAS_LABEL_VAR_WO': + case 'BAS_LABEL_VAR': values = { - ID: buildUUID(), - LABEL_ID: '', VAR_NAME: '', VAR_TYPE: '', VAR_VALUE: '', + BARCODE_RULE: '', REMARK: '', }; + break; + case 'BAS_LABEL_VAR_WO': + values = newRow; break; } return values; @@ -347,7 +390,7 @@ GetBaseCards: (type: string) => { return [ { - name: 'BaseForm', + name: 'BaseForm', //绗竴涓崱鐗囧悕绉板繀闇�鏄疊aseForm slots: [], preIcons: {}, title: '妯℃澘淇℃伅', @@ -364,21 +407,22 @@ { BAS_LABEL_VAR: useDrawer(), }, - { BAS_LABEL_VAR_WO: useDrawer() }, + // { BAS_LABEL_VAR_WO: useDrawer() }, ]; - } /** + }, + /** * @description: 鑾峰彇琛ㄦ牸use鍒楄〃 * @param {string} type * @param {array} args * @return {*} - */, + */ GetUseTables: (data: Ref<{}>, ...args) => { // _data = data; return { BAS_LABEL_VAR: useTable({ title: '鍒楄〃淇℃伅', dataSource: data.value['BAS_LABEL_VAR'], - columns: GetBaseColumns('BAS_LABEL_VAR', args[0]), + columns: GetBaseColumns('BAS_LABEL_VAR', args[0], data), maxHeight: 520, formConfig: { labelWidth: 140, @@ -393,19 +437,19 @@ // rowSelection: { // type: 'radio', //'checkbox' // }, - // actionColumn: { - // width: 130, - // title: '鎿嶄綔', - // dataIndex: 'action', - // slots: { customRender: 'action' }, - // fixed: 'right', - // }, //鑷畾涔夋搷浣滃垪 + actionColumn: { + width: 130, + title: '鎿嶄綔', + dataIndex: 'action', + slots: { customRender: 'action' }, + fixed: 'right', + }, //鑷畾涔夋搷浣滃垪 }), BAS_LABEL_VAR_WO: useTable({ title: '鍒楄〃淇℃伅', dataSource: data.value['BAS_LABEL_VAR_WO'], - columns: baseColumns['BAS_LABEL_VAR_WO'], - maxHeight: 550, + columns: GetBaseColumns('BAS_LABEL_VAR_WO', args[0], data), + scroll: { y: 500 }, formConfig: { labelWidth: 140, schemas: searchForms['BAS_LABEL_VAR_WO'], @@ -425,6 +469,62 @@ }, //鑷畾涔夋搷浣滃垪 }), }; + }, + /** + * @description: 鑷畾涔夊垵濮嬪寲鏂规硶 + * @param {Ref} data + * @param {Ref} keyFieldValues + * @param {string} type + * @param {any} useTables + * @return {*} + */ + CustInitData: (data: Ref<any[]>, keyFieldValues: Ref<{}>, type: string, useTables: any) => { + if (type == 'BAS_LABEL_VAR_WO') { + if (data.value['BAS_LABEL_VAR_WO'].length > 0) { + /* 鍒濆鍖栨暟鎹紝琛岃浆鍒� */ + let varwos: any[] = []; + const map = new Map<string, any>(); + data.value['BAS_LABEL_VAR_WO'].map((curr) => { + if (!map.has(curr.WORK_ORDER)) { + const newObj = {}; + newObj['WORK_ORDER'] = curr.WORK_ORDER; + map.set(curr.WORK_ORDER, newObj); + } + const acc = map.get(curr.WORK_ORDER); + Object.keys(curr).forEach((key) => { + if (key != 'VAR_NAME' && key != 'VAR_VALUE') { + acc[key] = curr[key]; + } else if (key == 'VAR_NAME') { + acc[`DEFAULT_VALUE_${curr.VAR_NAME}`] = curr.DEFAULT_VALUE; + acc[`VAR_N_${curr.VAR_NAME}`] = curr.VAR_VALUE; + } + }); + // varwos.push(acc); + }); + map.forEach((x) => { + varwos.push(x); + }); + data.value['BAS_LABEL_VAR_WO'] = varwos; + } + useTables[type][1].setProps({ + dataSource: data.value['BAS_LABEL_VAR_WO'], + columns: GetBaseColumns('BAS_LABEL_VAR_WO', null, data), + scroll: { y: 500 }, + useSearchForm: false, + showTableSetting: false, + bordered: true, + canResize: true, + showIndexColumn: false, + actionColumn: { + width: 130, + title: '鎿嶄綔', + dataIndex: 'action', + slots: { customRender: 'action' }, + fixed: 'right', + }, + }); + useTables[type][1].reload(); + } }, /** * @description: 鎻愪氦鎵�鏈� @@ -451,13 +551,13 @@ LABEL_CODE: label.LABEL_CODE, LABEL_NAME: label.LABEL_NAME, TEMP_TYPE: label.TEMP_TYPE, - TEMP_PATH: label.TEMP_PATH[0], + TEMP_PATH: label.TEMP_PATH, CUST_CODE: label.CUST_CODE, PROD_CODE: label.PROD_CODE, - REMARK: '' + REMARK: '', } as unknown as BAS_LABEL_TEMP, - LabelVars: {} as unknown as BAS_LABEL_VAR[], - LabelVarWos: {} as unknown as BAS_LABEL_VAR_WO[], + LabelVars: [] as unknown as BAS_LABEL_VAR[], + LabelVarWos: [] as unknown as BAS_LABEL_VAR_WO[], }; drawers.forEach((d) => { let where = `${d['code']} = '${keyFieldValues.value[d['code']]}'`; @@ -468,11 +568,45 @@ data.value[d['name']].map((item) => { item.ID = buildUUID(); }); - if(d.name == 'BAS_LABEL_VAR'){ - input.LabelVars = data.value[d['name']]; + if (d.name == 'BAS_LABEL_VAR') { + input.LabelVars = data.value[d['name']]; } - if(d.name == 'BAS_LABEL_VAR_WO'){ - input.LabelVarWos = data.value[d['name']]; + if (d.name == 'BAS_LABEL_VAR_WO') { + let varwos: any[] = []; + data.value[d['name']].map((curr) => { + const vKeys: any[] = []; + Object.keys(curr).forEach((key) => { + if (key.startsWith('VAR_N_')) { + vKeys.push(key); + } + // if (key.startsWith('VAR_N_')) { + // acc['VAR_NAME'] = key.replace('VAR_N_', ''); + // acc['VAR_VALUE'] = curr[key]; + // } else if (key.startsWith('DEFAULT_VALUE_')) { + // acc['DEFAULT_VALUE'] = curr[key]; acc[key] = curr[key]; + // } + }); + vKeys.forEach((k) => { + let acc = {}; + Object.keys(curr).forEach((key) => { + if (key == k) { + acc['VAR_NAME'] = key.replace('VAR_N_', ''); + acc['VAR_VALUE'] = curr[key]; + } else if (key == `DEFAULT_VALUE_${k.replace('VAR_N_', '')}`) { + acc['DEFAULT_VALUE'] = curr[key]; + } else if ( + !key.startsWith('VAR_N_') && + !key.startsWith('DEFAULT_VALUE_') && + key != 'DEFAULT_VALUE' + ) { + acc[key] = curr[key]; + } + }); + acc['ID'] = buildUUID(); + varwos.push(acc); + }); + }); + input.LabelVarWos = varwos; } }); SaveLabelTemplate(input).then((action) => { @@ -507,6 +641,60 @@ // break; } }, + /** + * @description: 缂栬緫鍗曞厓鏍煎畬鎴愬悗鑷畾涔夋柟娉� + * @param {Recordable} param1 + * @param {*} type + * @param {any} useTables + * @return {*} + */ + CustEditEnd: ({ record, index, key, value }: Recordable, type, ...args) => { + console.log(key, value); + const useTables = args[0]; + const data = args[1]; + let varWodata: any[] = []; + if ( + (record['VAR_TYPE'] == 1 && record['VAR_VALUE'] != 'PV-WorkOrder-Plan') || + record['VAR_TYPE'] != 1 + ) { + data.value['BAS_LABEL_VAR_WO'].forEach((x) => { + let acc: any = {}; + Object.keys(x).map((key) => { + if (key != `VAR_N_${record['VAR_NAME']}`) { + acc[key] = x[key]; + } + }); + varWodata.push(acc); + }); + data.value['BAS_LABEL_VAR_WO'] = varWodata; + } else { + varWodata = data.value['BAS_LABEL_VAR_WO']; + } + switch (type) { + case 'BAS_LABEL_VAR': + useTables['BAS_LABEL_VAR_WO'][1].setProps({ + dataSource: varWodata, + columns: GetBaseColumns('BAS_LABEL_VAR_WO', null, data), + scroll: { y: 500 }, + useSearchForm: false, + showTableSetting: false, + bordered: true, + canResize: true, + showIndexColumn: false, + actionColumn: { + width: 130, + title: '鎿嶄綔', + dataIndex: 'action', + slots: { customRender: 'action' }, + fixed: 'right', + }, + }); + useTables['BAS_LABEL_VAR_WO'][1].reload(); + break; + default: + break; + } + }, }; /* 浠ヤ笅鏄唴閮ㄦ柟娉曪紝涓峞xport */ @@ -538,6 +726,27 @@ } }); }, + /** + * @desc 淇濆瓨鏂规硶 + */ + SaveRow: (param: CustModalParams) => { + return new Promise((resolve, reject) => { + try { + param.data.value[param.cType] = param.data.value[param.cType].map((d) => { + if (d.ID == param.values['ID']) { + d.VAR_NAME = param.values['VAR_NAME']; + d.VAR_TYPE = param.values['VAR_TYPE']; + d.VAR_VALUE = param.values['VAR_VALUE']; + d.BARCODE_RULE = param.values['BARCODE_RULE']; + d.REMARK = param.values['REMARK']; + } + return d; + }); + } catch { + reject(false); + } + }); + }, }; let columns: BasicColumn[] = []; @@ -546,7 +755,7 @@ * @param {string} type * @return {*} */ - function GetBaseColumns(type: string, emit) { + function GetBaseColumns(type: string, emit, data: Ref<{}>) { columns = [ { dataIndex: 'LABEL_ID', @@ -560,13 +769,14 @@ title: '鍙橀噺鍚嶇О', ifShow: true, sorter: true, + editRow: true, resizable: true, customRender: () => {}, }, { dataIndex: 'VAR_TYPE', title: '鍙橀噺绫诲瀷', - edit: true, + editRow: true, editRule: true, ifShow: true, sorter: true, @@ -580,7 +790,11 @@ labelField: unref(getLocale) == 'zh_CN' ? 'Desc' : 'Name', valueField: 'Value', onChange: (e, v) => { - if (e == 1) { + if (e == 1 || e == 4) { + const where = + e == 1 + ? { TABLE_NAME: 'BAS_LABEL_PV', VAR_TYPE: 0 } + : { TABLE_NAME: 'BAS_LABEL_PV', VAR_TYPE: 1 }; emit('opencust', { data: column.record, name: 'BAS_LABEL_VAR', @@ -614,7 +828,7 @@ ], tableName: 'BAS_LABEL_PV', rowKey: 'VAR_CODE', - searchInfo: { TABLE_NAME: 'BAS_LABEL_PV' }, + searchInfo: where, }, }); } @@ -641,6 +855,10 @@ text = '鑷畾涔夊彉閲�'; color = '#bfbfbf'; break; + case 4: + text = '鏉$爜鐢熸垚'; + color = '#b442df'; + break; } return h(Tooltip, { title: text }, () => h(Tag, { color: color }, () => text)); }, @@ -654,7 +872,7 @@ { dataIndex: 'VAR_VALUE', title: '鍙橀噺鍊�', - edit: true, + editRow: true, // editable: true, editRule: true, ifShow: (column) => true, @@ -662,14 +880,96 @@ resizable: true, }, { + dataIndex: 'BARCODE_RULE', + title: '鏉$爜鐢熸垚瑙勫垯', + ifShow: true, + editRow: true, + editRule: true, + sorter: true, + resizable: true, + editComponent: 'ApiSelect', + editComponentProps: (column) => { + return { + api: getEntity, + params: { entityName: 'BAS_CODE_RULE', sqlcmd: ' 1=1 ' }, + resultField: 'Data.Items', + labelField: 'RULE_NAME', + valueField: 'RULE_CODE', + }; + }, + }, + { dataIndex: 'REMARK', title: '澶囨敞', ifShow: true, + editRow: true, sorter: true, resizable: true, }, ], ] as BasicColumn[]; + break; + case 'BAS_LABEL_VAR_WO': + const _columns = [ + { + dataIndex: 'LABEL_ID', + title: '鏍囩妯℃澘ID', + ifShow: false, + sorter: true, + resizable: true, + }, + { + title: '宸ュ崟鍙�', + dataIndex: 'WORK_ORDER', + width: 280, + edit: true, + editRule: true, + // editable: true, + ifShow: true, + }, + ] as BasicColumn[]; + newRow = { + ID: buildUUID(), + LABEL_ID: + data.value['BAS_LABEL_VAR'].length > 0 ? data.value['BAS_LABEL_VAR'][0].LABEL_ID : '', + WORK_ORDER: '', + }; + data.value['BAS_LABEL_VAR'].map((x) => { + if (x.VAR_TYPE == 1 && x.VAR_VALUE == 'PV-WorkOrder-Plan') { + newRow[`${x.VAR_NAME}_DEFAULT_VALUE`] = ''; + newRow[x.VAR_NAME] = ''; + _columns.push( + { + title: `锛堝彉閲忥級${x.VAR_NAME}榛樿鍊糮, + dataIndex: `DEFAULT_VALUE_${x.VAR_NAME}`, + width: 280, + // edit: true, + // editRule: true, + resizable: true, + ifShow: true, + }, + { + title: `锛堝彉閲忥級${x.VAR_NAME}`, + dataIndex: `VAR_N_${x.VAR_NAME}`, + width: 280, + edit: true, + editRule: true, + resizable: true, + ifShow: true, + }, + ); + } + }); + _columns.push({ + title: `澶囨敞`, + dataIndex: 'REMARK', + width: 280, + edit: true, + editRule: true, + resizable: true, + ifShow: true, + }); + columns = _columns; break; } return columns; @@ -694,7 +994,7 @@ dataIndex: 'WORK_ORDER', edit: true, editRule: true, - editable: true, + // editable: true, ifShow: true, }, { @@ -702,7 +1002,7 @@ title: '鍙橀噺鍚嶇О', edit: true, editRule: true, - editable: true, + // editable: true, ifShow: true, sorter: true, resizable: true, @@ -713,7 +1013,7 @@ title: '鍙橀噺鍊�', edit: true, editRule: true, - editable: true, + // editable: true, ifShow: true, sorter: true, resizable: true, -- Gitblit v1.9.3