From cc88111d61a350a4d24cf339b526d4357f934ddf Mon Sep 17 00:00:00 2001 From: Ben Lin <maobin001@msn.com> Date: 星期二, 30 七月 2024 00:31:12 +0800 Subject: [PATCH] 标签模板维护变量更新 --- src/api/tigerapi/mes/mesApi.ts | 4 src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO_BATCH.ts | 2 src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT_GRP.ts | 6 src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_VAR.ts | 510 +++++++++++++++++------ src/api/tigerapi/model/basModel.ts | 3 src/views/tigerprojects/system/lowcode/entityts/QMS_INS_ITEM.ts | 2 src/api/tigerapi/mes/label.ts | 34 + src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts | 2 src/views/tigerprojects/system/lowcode/high/edit/index.vue | 103 ++++ src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_PV.ts | 2 src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts | 2 src/views/tigerprojects/system/lowcode/high/baseForm.vue | 120 +++++ src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_TEMP.ts | 91 ++- src/views/tigerprojects/system/lowcode/entityts/BAS_REASON.ts | 2 src/views/tigerprojects/system/lowcode/entityts/QMS_INS_STD.ts | 2 src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT.ts | 2 src/api/tigerapi/model/systemModel.ts | 2 src/views/tigerprojects/system/lowcode/entityts/V_BAS_PROD.ts | 4 src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT_SYS.ts | 4 src/api/tigerapi/model/mesModel.ts | 62 ++ src/views/tigerprojects/system/lowcode/high/edit/editdtl.vue | 134 ++++-- src/views/tigerprojects/system/lowcode/entityts/BAS_REASON_GRP.ts | 6 src/views/tigerprojects/system/lowcode/detail/detail.vue | 7 src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_RULE.ts | 2 src/api/tigerapi/system.ts | 4 src/views/tigerprojects/system/lowcode/entityts/BAS_CUSTOMER.ts | 112 +++++ src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_DTL.ts | 2 27 files changed, 939 insertions(+), 287 deletions(-) diff --git a/src/api/tigerapi/mes/label.ts b/src/api/tigerapi/mes/label.ts new file mode 100644 index 0000000..f754109 --- /dev/null +++ b/src/api/tigerapi/mes/label.ts @@ -0,0 +1,34 @@ +import { BasLabelTempInput } from '../model/mesModel'; +import { genAction, Api, genActionPage } from '../system'; +import { defHttp } from '/@/utils/http/axios'; +import { mesApi } from './mesApi'; + +/** + * @description: 淇濆瓨鏍囩妯℃澘鏂规硶 + * @param {BasLabelTempInput} params + * @return {*} + */ +export const SaveLabelTemplate = async (params: BasLabelTempInput) => { + const data = await defHttp.post( + { url: mesApi.SaveLabelTemplate, params: genAction('', params) }, + { + errorMessageMode: 'none', + isTransformResponse: false, + }, + ); + return data; +}; + +/* + * 鍒犻櫎鏍囩妯℃澘 + */ +export const DeleteLabelTemplate = async (params: string) => { + const usParams = genAction('', params); + return await defHttp.post( + { url: mesApi.DeleteLabelTemplate, params: usParams }, + { + errorMessageMode: 'none', + isTransformResponse: false, + }, + ); +}; diff --git a/src/api/tigerapi/mes/mesApi.ts b/src/api/tigerapi/mes/mesApi.ts index 895e075..80d8944 100644 --- a/src/api/tigerapi/mes/mesApi.ts +++ b/src/api/tigerapi/mes/mesApi.ts @@ -4,7 +4,7 @@ * @version: * @Date: 2024-04-27 15:54:50 * @LastEditors: Ben Lin - * @LastEditTime: 2024-07-23 21:59:18 + * @LastEditTime: 2024-07-29 21:17:12 */ export enum mesApi { GetRoute = '/MES/GetRoute', @@ -27,4 +27,6 @@ DeleteWoRoute = '/MES/DeleteWoRoute', DeleteProdRoute = '/MES/DeleteProdRoute', UpdateWoStatus = '/MES/UpdateWoStatus', + SaveLabelTemplate = '/MES/SaveLabelTemplate', + DeleteLabelTemplate = '/MES/DeleteLabelTemplate', } diff --git a/src/api/tigerapi/model/basModel.ts b/src/api/tigerapi/model/basModel.ts index 19e4325..1d726be 100644 --- a/src/api/tigerapi/model/basModel.ts +++ b/src/api/tigerapi/model/basModel.ts @@ -123,7 +123,7 @@ * @return {*} */ export interface EntityCustFunctionType { - CreateAction: (fnName: string) => {}; + CreateAction: (type: string) => {}; ActionItem: (params: Recordable<any>, data, ...args) => ActionItem[]; EditOperation: (data: Ref<any[]>, d, u, item: string | undefined) => void; OpenSelectItem: (openItemModal: Fn, ...args) => void; @@ -155,4 +155,5 @@ CustInitData: (data: Ref<any[]>, keyFieldValues: Ref<{}>, type: string) => void | any; GetCustData: () => {}; GetRightMenuList: (node: EventDataNode, ...args) => ContextMenuItem[]; + GetNewRow: (type: string) => {}; } diff --git a/src/api/tigerapi/model/mesModel.ts b/src/api/tigerapi/model/mesModel.ts index f43a0a0..697e949 100644 --- a/src/api/tigerapi/model/mesModel.ts +++ b/src/api/tigerapi/model/mesModel.ts @@ -315,3 +315,65 @@ Status: number; RouteStatus: number; } + +export interface BAS_LABEL_VAR_WO { + ID: string; + CREATE_TIME: Date; + CREATE_USER: string; + UPDATE_TIME: Date; + UPDATE_USER: string; + GHOST_ROW: boolean; + AUTH_ORG: string; + AUTH_PROD: string; + AUTH_WH: string; + LABEL_ID: string; + VAR_NAME: string; + VAR_VALUE: string; + REMARK: string; + LABEL_VIEW_PATH: string; + WORK_ORDER: string; + CUST_CODE: string; + PROD_CODE: string; +} + +export interface BAS_LABEL_TEMP { + ID: string; + CREATE_TIME: Date; + CREATE_USER: string; + UPDATE_TIME: Date; + UPDATE_USER: string; + GHOST_ROW: boolean; + AUTH_ORG: string; + AUTH_PROD: string; + AUTH_WH: string; + LABEL_CODE: string; + LABEL_NAME: string; + TEMP_TYPE: number; + TEMP_PATH: string; + CUST_CODE: string; + PROD_CODE: string; + REMARK: string; +} + +export interface BAS_LABEL_VAR { + ID: string; + CREATE_TIME: Date; + CREATE_USER: string; + UPDATE_TIME: Date; + UPDATE_USER: string; + GHOST_ROW: boolean; + AUTH_ORG: string; + AUTH_PROD: string; + AUTH_WH: string; + LABEL_ID: string; + VAR_NAME: string; + VAR_TYPE: number; + VAR_VALUE: string; + REMARK: string; +} + +export interface BasLabelTempInput { + Label: BAS_LABEL_TEMP; + LabelVars: BAS_LABEL_VAR[]; + LabelVarWos: BAS_LABEL_VAR_WO[]; +} diff --git a/src/api/tigerapi/model/systemModel.ts b/src/api/tigerapi/model/systemModel.ts index 709ebab..a53e8a9 100644 --- a/src/api/tigerapi/model/systemModel.ts +++ b/src/api/tigerapi/model/systemModel.ts @@ -1,3 +1,4 @@ +import { Ref } from 'vue'; import { BasicPageParams, BasicFetchResult } from '/@/api/model/baseModel'; export type AD_INFO = { @@ -347,6 +348,7 @@ values: {}; //Modal妗嗗唴琛ㄥ崟鏁版嵁 initFnName: string; //鍒濆鍖栨柟娉曞悕 FnName: string; //鑷畾涔夋柟娉曞悕 + data: Ref<any[]>; //鏁版嵁锛岃繖閲屼竴鑸槸琛ㄦ牸鏁版嵁 } export type pParams = { diff --git a/src/api/tigerapi/system.ts b/src/api/tigerapi/system.ts index 1afc595..d3ad65c 100644 --- a/src/api/tigerapi/system.ts +++ b/src/api/tigerapi/system.ts @@ -779,6 +779,10 @@ export async function SaveEntity<T>(params: T, isUpdate: boolean, entityName: string, ...args) { let data; + /* 閽堝妯℃澘鍦板潃鍋氭浛鎹紝鐗规畩澶勭悊 */ + if(params['TEMP_PATH']){ + params['TEMP_PATH'] = params['TEMP_PATH'].toString().replace('/','//'); + } if (isUpdate) { data = await defHttp.post( { url: Api.UpdateEntity, params: genAction(entityName, params) }, diff --git a/src/views/tigerprojects/system/lowcode/detail/detail.vue b/src/views/tigerprojects/system/lowcode/detail/detail.vue index 14ba342..dfffafd 100644 --- a/src/views/tigerprojects/system/lowcode/detail/detail.vue +++ b/src/views/tigerprojects/system/lowcode/detail/detail.vue @@ -226,16 +226,17 @@ }); } else { const [{ CreateAction }] = custImport.value['default'](); - const result = CreateAction(fnName); + const result = CreateAction(props.entityName); switch (result.action) { case 'go': + sessionStorage.removeItem(`${result.params.Name}_update_params`); // 灏嗗璞¤浆鎹负JSON瀛楃涓插苟淇濆瓨鍒皊essionStorage sessionStorage.setItem( - `${result.params.Name}_params`, + `${result.params.Name}_update_params`, encodeURI(JSON.stringify(result.params)), ); go( - `/${result.url}/${encodeURI(JSON.stringify({ sName: result.params.Name, Name: result.params.Name }))}`, + `/${result.url}/${encodeURI(JSON.stringify({ sName: `${result.params.Name}_update`, Name: result.params.Name }))}`, ); break; case 'drawer': diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_CUSTOMER.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_CUSTOMER.ts new file mode 100644 index 0000000..da7dd1e --- /dev/null +++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_CUSTOMER.ts @@ -0,0 +1,112 @@ +/* + * @Description: 瀹㈡埛鐩稿叧 + * @Author: Ben Lin + * @version: + * @Date: 2024-06-19 20:34:27 + * @LastEditors: Ben Lin + * @LastEditTime: 2024-07-29 16:53:24 + */ + +import { ActionItem, BasicColumn } from '/@/components/Table'; +import { useI18n } from '/@/hooks/web/useI18n'; + +const { t } = useI18n(); + +function _default() { + const ActionColumn: BasicColumn = { + width: 80, + title: '鎿嶄綔', + dataIndex: 'action', + slots: { customRender: 'action' }, + fixed: undefined, + }; + + /** + * @description: 涓�浜涜嚜瀹氫箟鏂规硶 + * @return {*} + */ + const methods = { + /** + * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓� + * @return {*} + */ + CreateAction: (type: string) => { + return { + action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) + }; + }, + /** + * @description: 鎿嶄綔瀛楁鑷畾涔夋寜閽� + * @return {*} + */ + ActionItem: (params: Recordable<any>, data, ...args): ActionItem[] => { + return data; + }, + /** + * @description: 閫夋嫨杩囩▼鍙橀噺寮瑰嚭閫夋嫨妗嗘垚鍔熻繑鍥炶祴鍊兼柟娉� + * @param {*} d + * @param {*} u + * @return {*} + */ + GetSelectSuccess: (d, u) => { + return { + CUST_CODE: d.values['val'], + }; + }, + /** + * @description: 鎵撳紑瀹㈡埛寮瑰嚭閫夋嫨妗� + * @param {Fn} openItemModal + * @param {array} args + * @return {*} + */ + OpenSelectItem: (openItemModal: Fn, ...args) => { + openItemModal(true, { + title: '瀹㈡埛鍒楄〃', + schemas: [ + { + field: 'CUST_CODE', + component: 'Input', + label: '瀹㈡埛缂栫爜', + colProps: { + span: 12, + }, + }, + { + field: 'CUST_NAME_CN', + component: 'Input', + label: '瀹㈡埛鍚嶇О', + colProps: { + span: 12, + }, + }, + ], + ItemColumns: [ + { + title: t('瀹㈡埛缂栫爜'), + dataIndex: 'CUST_CODE', + resizable: true, + sorter: true, + width: 200, + }, + { + title: t('瀹㈡埛鍚嶇О'), + dataIndex: 'CUST_NAME_CN', + resizable: true, + sorter: true, + width: 180, + }, + ], + tableName: 'BAS_CUSTOMER', + rowKey: 'CUST_CODE', + searchInfo: { TABLE_NAME: 'BAS_CUSTOMER' }, + }); + }, + GetUseForm: () => { + return {}; + }, + }; + + return [methods, ActionColumn]; +} + +export default _default; diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT.ts index b1f73b3..b38697d 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT.ts @@ -38,7 +38,7 @@ * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓� * @return {*} */ - CreateAction: (fnName: string) => { + CreateAction: (type: string) => { return { action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) }; diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT_GRP.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT_GRP.ts index ea24486..e49286b 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT_GRP.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_DEFECT_GRP.ts @@ -4,7 +4,7 @@ * @version: * @Date: 2024-06-19 20:34:27 * @LastEditors: Ben Lin - * @LastEditTime: 2024-07-20 21:26:24 + * @LastEditTime: 2024-07-28 12:46:53 */ import { ActionItem, BasicColumn } from '/@/components/Table'; @@ -30,9 +30,9 @@ * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓� * @return {*} */ - CreateAction: (fnName: string) => { + CreateAction: (type: string) => { return { - action: 'go', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) + action: 'go', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) | edit(濡傛灉鏄〃鏍煎彲缂栬緫椤甸潰灏辨槸鑷畾涔夋柟娉�) url: 'BAS_DEFECT/High', params: { CODE: '0', diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_PV.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_PV.ts index 2c18319..aa75575 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_PV.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_PV.ts @@ -30,7 +30,7 @@ * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓� * @return {*} */ - CreateAction: (fnName: string) => { + CreateAction: (type: string) => { return { action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) }; diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_TEMP.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_TEMP.ts index 4ef3a4c..b880b06 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_TEMP.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_TEMP.ts @@ -4,7 +4,7 @@ * @version: * @Date: 2024-06-19 20:34:27 * @LastEditors: Ben Lin - * @LastEditTime: 2024-07-27 13:20:29 + * @LastEditTime: 2024-07-29 23:38:12 */ import { CustModalParams } from '/@/api/tigerapi/model/systemModel'; @@ -30,9 +30,9 @@ * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓� * @return {*} */ - CreateAction: (fnName: string) => { + CreateAction: (type: string) => { return { - action: 'go', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) + action: 'go', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) | edit(濡傛灉鏄〃鏍煎彲缂栬緫椤甸潰灏辨槸鑷畾涔夋柟娉�) url: 'BAS_LABEL_VAR/High', params: { CODE: '0', @@ -40,17 +40,28 @@ Name: 'BAS_LABEL_VAR', //瀹炰綋鍚� Title: '鏂板妯℃澘', //鏍囬 pCode: 'LABEL_CODE', //涓讳俊鎭叧閿瓧娈礐ODE - IsID: false, //鏄惁甯﹁繃鍘讳晶杈规鐨勬槸ID锛宖alse灏辨槸CODE锛宼rue鏄疘D + IsID: true, //鏄惁甯﹁繃鍘讳晶杈规鐨勬槸ID锛宖alse灏辨槸CODE锛宼rue鏄疘D + colSlots: ['BAS_LABEL_VAR1add', 'BAS_LABEL_VAR2add'], drawers: [ - { name: 'BAS_LABEL_VAR', code: 'LABEL_ID', type: 'one', keyName: 'BAS_LABEL_VAR', order: 'VAR_NAME' }, - // { - // name: 'MES_SHIFT_PRD', - // code: 'SFT_CODE', - // type: 'all', - // keyName: 'MES_SHIFT', - // order: 'SFT_CODE, SEQ', - // }, - ], //drawers鏄彸杈瑰脊鍑哄鏀逛晶妗嗙殑鍚嶅瓧鍒楄〃 + { + name: 'BAS_LABEL_VAR', //瀹炰綋鍚� + code: 'LABEL_ID', //浼犻�掕繃鍘婚珮绾ц〃鍗曢〉闈㈢殑鍏抽敭瀛楁鍚� + type: 'one', //one-琛ㄧず闇�瑕乧ode鐨勪竴涓�硷紝榛樿鏄繖涓� + keyName: 'BAS_LABEL_VAR', //鍏抽敭琛ㄥ悕锛堝疄浣撳悕锛� + order: 'VAR_NAME', //鎺掑簭 + showTbButton: false, //鏄惁鏄剧ず宸ュ叿鏍忔寜閽� + FnName: '', //鑷畾涔夋柟娉曞悕 + }, + { + name: 'BAS_LABEL_VAR_WO', //瀹炰綋鍚� + code: 'LABEL_ID', //浼犻�掕繃鍘婚珮绾ц〃鍗曢〉闈㈢殑鍏抽敭瀛楁鍚� + type: 'one', //all-琛ㄧず闇�瑕乧ode鐨勬墍鏈夌殑鍊� + keyName: 'BAS_LABEL_VAR_WO', //鍏抽敭琛ㄥ悕锛堝疄浣撳悕锛� + order: '', + showTbButton: true, //鏄惁鏄剧ず宸ュ叿鏍忔寜閽� + FnName: 'AddRow', //鑷畾涔夋柟娉曞悕 + }, + ], //drawers鏄彸杈瑰脊鍑哄鏀逛晶妗嗙殑鍚嶅瓧鍒楄〃锛屽強鎸夐挳鐨勬墽琛屾柟娉� }, }; }, @@ -80,7 +91,7 @@ const webSocketStore = useWebSocketStore(); if (webSocketStore.GetSocketState == 1) { webSocketStore.sendMessage( - `wsSubStrings ${param.values['ID']}_#_${param.values['TEMP_PATH']}` + `wsSubStrings ${param.values['ID']}_#_${param.values['TEMP_PATH']}`, ); } }, @@ -94,21 +105,6 @@ * @return {*} */ function goDetail(go: Fn, params: Recordable) { - // const id = { - // ID: params['record'].ID, - // CODE: params['record']['LABEL_CODE'], - // Name: 'BAS_LABEL_VAR', - // firstTabName: '鏍囩妯℃澘鍙橀噺', - // secondTabName: '', //'鏍囩杩囩▼鍙橀噺', - // firstTitle: '妯℃澘鍙橀噺', - // secondTitle: '', //'杩囩▼鍙橀噺', - // pageTitle: '鏍囩妯℃澘鍙橀噺', //璇︽儏椤甸潰鏍囬 - // contentStr: '杩欓噷鏄爣绛炬ā鏉垮彉閲忕鐞嗛〉闈紝鍙互绠$悊鏍囩鐨勬ā鏉垮彉閲忔垨鑰呮墦鍗拌繃绋嬩腑鐨勫彉閲�', - // detailName: `妯℃澘[${params['record'].LABEL_NAME}]`, - // keyFieldValues: { LABEL_ID: params['record'].ID }, - // colSlots: ['BAS_LABEL_PV1add'], - // SessionName: 'BAS_LABEL_VAR_update', - // }; const id = { CODE: params['record']['LABEL_CODE'], ID: params['record']['ID'], @@ -117,21 +113,40 @@ Title: `缂栬緫妯℃澘${params['record']['LABEL_CODE']}鐨勫彉閲廯, pCode: 'LABEL_CODE', IsID: true, + colSlots: ['BAS_LABEL_VAR1add', 'BAS_LABEL_VAR2add'], drawers: [ - { name: 'BAS_LABEL_VAR', code: 'LABEL_ID', type: 'one', keyName: 'BAS_LABEL_VAR', order: 'VAR_NAME' }, - // { - // name: 'MES_SHIFT_PRD', - // code: 'SFT_CODE', - // type: 'all', - // keyName: 'MES_SHIFT', - // order: 'SFT_CODE, SEQ', - // }, + { + name: 'BAS_LABEL_VAR', + code: 'LABEL_ID', + type: 'one', + keyName: 'BAS_LABEL_VAR', + order: 'VAR_NAME', + showTbButton: false, + FnName: '', + }, + { + name: 'BAS_LABEL_VAR_WO', + code: 'LABEL_ID', + type: 'one', + keyName: 'BAS_LABEL_VAR_WO', + order: '', + showTbButton: true, + FnName: 'AddRow', + }, ], //drawers鏄彸杈瑰脊鍑哄鏀逛晶妗嗙殑鍚嶅瓧鍒楄〃 }; + // const webSocketStore = useWebSocketStore(); + // if (webSocketStore.GetSocketState == 1) { + // webSocketStore.sendMessage( + // `wsSubStrings 1d441e20c43a469286319de9b0df5d7b_#_http://localhost:8800/files/10浣嶅敮涓�ID.btw`, + // ); + // } // 灏嗗璞¤浆鎹负JSON瀛楃涓插苟淇濆瓨鍒皊essionStorage sessionStorage.removeItem(`${id.SessionName}_params`); sessionStorage.setItem(`${id.SessionName}_params`, encodeURI(JSON.stringify(id))); - go(`/BAS_LABEL_VAR/High/${encodeURI(JSON.stringify({ sName: id.SessionName, Name: id.Name }))}`); + go( + `/BAS_LABEL_VAR/High/${encodeURI(JSON.stringify({ sName: id.SessionName, Name: id.Name }))}`, + ); } return [methods, ActionColumn]; 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 c3d087d..3622424 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_VAR.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_LABEL_VAR.ts @@ -4,7 +4,7 @@ * @version: * @Date: 2024-06-19 20:34:27 * @LastEditors: Ben Lin - * @LastEditTime: 2024-07-27 13:22:30 + * @LastEditTime: 2024-07-29 23:10:18 */ import { Tag, Tooltip } from 'ant-design-vue'; @@ -15,8 +15,13 @@ import { useLocale } from '/@/locales/useLocale'; import { useDrawer } from '/@/components/Drawer'; import { formatTime } from '/@/utils/dateUtil'; -import { Search } from '../data'; +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 { useUserStore } from '/@/store/modules/user'; const { getLocale } = useLocale(); @@ -40,16 +45,29 @@ * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓猴紝蹇呴渶瑕佹湁鐨勬柟娉� * @return {*} */ - CreateAction: (fnName: string) => { - return { - action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) - }; + CreateAction: (type: string) => { + let action = {} as any; + switch (type) { + case 'BAS_LABEL_VAR': + case 'BAS_LABEL_VAR_WO': + action = { + action: 'edit', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) | edit(濡傛灉鏄〃鏍煎彲缂栬緫椤甸潰灏辨槸鑷畾涔夋柟娉�) + }; + break; + } + return action; }, /** - * @description: 浜у搧缁戝畾宸ヨ壓璺嚎鎿嶄綔瀛楁鑷畾涔夋寜閽紝蹇呴渶瑕佹湁鐨勬柟娉� + * @description: 鎿嶄綔瀛楁鑷畾涔夋寜閽紝蹇呴渶瑕佹湁鐨勬柟娉� * @return {*} */ ActionItem: (params: Recordable<any>, data, ...args): ActionItem[] => { + data.map((x) => { + if (x.name == 'Delete') { + x.popConfirm.confirm = custDel.bind(null, args, params); + x.tooltip = '鍒犻櫎'; + } + }); return data; }, /** @@ -70,6 +88,7 @@ label: '鏍囩妯℃澘缂栫爜', component: 'Input', required: true, + isexist: 'Y', colProps: { span: 8, }, @@ -111,11 +130,49 @@ }, }, { + field: 'PROD_CODE', + label: '浜у搧缂栫爜', + component: 'Input', + isexist: 'N', + show: true, + required: true, + colProps: { + span: 7, + }, + }, + { + field: 'BAS_LABEL_VAR1PSelect_0', //鎸変綆浠g爜閰嶇疆鐨勮鍒欙紝瀹炰綋鍚�+搴忓彿+PSelect_0锛屽簭鍙风敤鏉ュ尯鍒嗗涓殑鏃跺�欙紝PSelect_0杩欐槸涓浐瀹氬悗缂� + label: '1', + defaultValue: 'BAS_LABEL_VAR', + component: 'Input', + colProps: { span: 1 }, + colSlot: 'BAS_LABEL_VAR1add', //鎸変綆浠g爜閰嶇疆鐨勮鍒欙紝瀹炰綋鍚�+搴忓彿+add锛屽簭鍙风敤鏉ュ尯鍒嗗涓殑鏃跺�欙紝add杩欐槸涓浐瀹氬悗缂� + }, + { + field: 'CUST_CODE', + label: '瀹㈡埛缂栫爜', + component: 'Input', + isexist: 'N', + show: true, + // required: true, + colProps: { + span: 7, + }, + }, + { + field: 'BAS_LABEL_VAR2PSelect_0', //鎸変綆浠g爜閰嶇疆鐨勮鍒欙紝瀹炰綋鍚�+搴忓彿+PSelect_0锛屽簭鍙风敤鏉ュ尯鍒嗗涓殑鏃跺�欙紝PSelect_0杩欐槸涓浐瀹氬悗缂� + label: '1', + defaultValue: 'BAS_CUSTOMER', + component: 'Input', + colProps: { span: 1 }, + colSlot: 'BAS_LABEL_VAR2add', //鎸変綆浠g爜閰嶇疆鐨勮鍒欙紝瀹炰綋鍚�+搴忓彿+add锛屽簭鍙风敤鏉ュ尯鍒嗗涓殑鏃跺�欙紝add杩欐槸涓浐瀹氬悗缂� + }, + { label: '澶囨敞', field: 'REMARK', component: 'Input', colProps: { - span: 16, + span: 24, }, }, { @@ -129,8 +186,26 @@ }, ]; }, - GetBaseColumns: () => { - return []; + /** + * @description: 寮瑰嚭閫夋嫨妗嗘垚鍔熻繑鍥炶祴鍊兼柟娉� + * @param {*} d + * @param {*} u + * @return {*} + */ + GetSelectSuccess: (d, u) => { + return { + PROD_CODE: d.values['val'], + }; + }, + /** + * @description: 鑾峰彇妯℃�佹搴旂敤鍒楄〃 + * @return {*} + */ + GetUseModals: () => { + return { + BAS_LABEL_VAR1add: useModal(), + BAS_LABEL_VAR2add: useModal(), + }; }, GetSearchForm: () => { return [ @@ -223,6 +298,27 @@ }, ]; }, + /** + * @description: 鑾峰彇鏂板琛岀殑鏁版嵁 + * @param {string} type + * @return {*} + */ + GetNewRow: (type: string) => { + let values = {}; + switch (type) { + case 'BAS_LABEL_VAR_WO': + values = { + ID: buildUUID(), + LABEL_ID: '', + VAR_NAME: '', + VAR_TYPE: '', + VAR_VALUE: '', + REMARK: '', + }; + break; + } + return values; + }, KeyFieldValues: (val: string, id: string) => { return { LABEL_ID: id }; }, @@ -240,7 +336,7 @@ pageContent: '杩欓噷鍙互娣诲姞鍜屼慨鏀规ā鏉垮拰妯℃澘鍙橀噺鍙婂伐鍗曟ā鏉垮彉閲忋��', tableTitle: { BAS_LABEL_VAR: '妯℃澘鍙橀噺绠$悊', - MES_SHIFT_PRD: '鏃舵绠$悊', + BAS_LABEL_VAR_WO: '宸ュ崟妯℃澘鍙橀噺绠$悊', }, }; }, @@ -268,7 +364,7 @@ { BAS_LABEL_VAR: useDrawer(), }, - // { MES_SHIFT_PRD: useDrawer() }, + { BAS_LABEL_VAR_WO: useDrawer() }, ]; } /** * @description: 鑾峰彇琛ㄦ牸use鍒楄〃 @@ -282,8 +378,8 @@ BAS_LABEL_VAR: useTable({ title: '鍒楄〃淇℃伅', dataSource: data.value['BAS_LABEL_VAR'], - columns: baseColumns['BAS_LABEL_VAR'], - maxHeight: 560, + columns: GetBaseColumns('BAS_LABEL_VAR', args[0]), + maxHeight: 520, formConfig: { labelWidth: 140, schemas: searchForms['BAS_LABEL_VAR'], @@ -294,6 +390,32 @@ bordered: true, canResize: true, showIndexColumn: false, + // rowSelection: { + // type: 'radio', //'checkbox' + // }, + // 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, + formConfig: { + labelWidth: 140, + schemas: searchForms['BAS_LABEL_VAR_WO'], + submitFunc: () => Search('BAS_LABEL_VAR_WO', data, args[0]), //鑷畾涔夋煡璇㈡彁浜ゆ寜閽殑鏂规硶锛岃Е鍙戞煡璇㈡彁浜や簨浠� + }, + useSearchForm: false, + showTableSetting: false, + bordered: true, + canResize: false, + showIndexColumn: false, actionColumn: { width: 130, title: '鎿嶄綔', @@ -302,29 +424,6 @@ fixed: 'right', }, //鑷畾涔夋搷浣滃垪 }), - // MES_SHIFT_PRD: useTable({ - // 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: false, - // showTableSetting: false, - // bordered: true, - // canResize: false, - // showIndexColumn: false, - // actionColumn: { - // width: 130, - // title: '鎿嶄綔', - // dataIndex: 'action', - // slots: { customRender: 'action' }, - // fixed: 'right', - // }, //鑷畾涔夋搷浣滃垪 - // }), }; }, /** @@ -332,10 +431,34 @@ * @return {*} */ SubmitAll: (data: Ref<any[]>, keyFieldValues: Ref<{}>, ...args) => { - const drawers = [ - { name: 'BAS_LABEL_VAR', code: 'LABEL_ID', type: 'one', keyName: 'BAS_LABEL_VAR', order: 'VAR_NAME' }, - // { name: 'MES_SHIFT_PRD', code: 'SFT_CODE', type: 'all', keyName: 'MES_SHIFT', order: '' }, - ]; + const cancel = args[0]; + const drawers = args[1]; + const label = args[2]['BaseForm']; + // const input: BasLabelTempInput ={ + // Label: undefined, + // LabelVar: undefined, + // LabelVarWo: undefined + // }; + const input: BasLabelTempInput = { + Label: { + ID: buildUUID(), + CREATE_USER: useUserStore().getUserInfo.userId as string, + UPDATE_USER: useUserStore().getUserInfo.userId as string, + GHOST_ROW: false, + AUTH_ORG: useUserStore().getUserInfo.orgCode, + AUTH_PROD: useUserStore().getUserInfo.prodCode, + AUTH_WH: '', + LABEL_CODE: label.LABEL_CODE, + LABEL_NAME: label.LABEL_NAME, + TEMP_TYPE: label.TEMP_TYPE, + TEMP_PATH: label.TEMP_PATH[0], + CUST_CODE: label.CUST_CODE, + PROD_CODE: label.PROD_CODE, + REMARK: '' + } as unknown as BAS_LABEL_TEMP, + 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']]}'`; /* type: all-琛ㄧず闇�瑕乧ode鐨勬墍鏈夌殑鍊� */ @@ -344,32 +467,87 @@ } 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](); - } - }); + 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']]; + } }); + SaveLabelTemplate(input).then((action) => { + if (action.IsSuccessed) { + cancel(); + } + }); + }, + /** + * @description: 鑷畾涔夋柟娉� + * @param {string} type + * @param {array} args + * @return {*} + */ + CustFunc: (param: CustModalParams) => { + switch (param.cType) { + case 'BAS_LABEL_VAR': + case 'BAS_LABEL_VAR_WO': + return getFns[param.FnName](param) as Promise<any>; + // break; + default: + return new Promise((resolve, reject) => { + try { + (e) => {}; + resolve(true); + } catch { + reject(false); + } finally { + // args[0][0]({ confirmLoading: false }); + } + }); + // break; + } }, }; /* 浠ヤ笅鏄唴閮ㄦ柟娉曪紝涓峞xport */ /** - * @description: 琛ㄦ牸鍩烘湰瀛楁 + * @description: 鑷畾涔夋柟娉� * @return {*} */ - const baseColumns = { - BAS_LABEL_VAR: [ + const getFns: Record<string, FunctionType> = { + /** + * @description: 鏂板琛屾柟娉� + * @param {*} e + * @param {array} args + * @return {*} + */ + AddRow: (param: CustModalParams) => { + return new Promise((resolve, reject) => { + try { + console.log('AddRow'); + EditOperation( + param.data, + { ...param.values, ...param.others }, + { isUpdate: false }, + param.cType, + {}, + ); + } catch { + reject(false); + } + }); + }, + }; + + let columns: BasicColumn[] = []; + /** + * @description: 鑾峰彇琛ㄦ牸瀛楁Json + * @param {string} type + * @return {*} + */ + function GetBaseColumns(type: string, emit) { + columns = [ { dataIndex: 'LABEL_ID', title: '鏍囩妯℃澘ID', @@ -388,10 +566,62 @@ { dataIndex: 'VAR_TYPE', title: '鍙橀噺绫诲瀷', + edit: true, + editRule: true, ifShow: true, sorter: true, resizable: true, - customRender: ({ record }) => { + editComponent: 'ApiSelect', + editComponentProps: (column) => { + return { + api: GetEnum, + params: { name: 'BAS_LABEL_VAR+VAR_TYPEs' }, + resultField: 'Data', + labelField: unref(getLocale) == 'zh_CN' ? 'Desc' : 'Name', + valueField: 'Value', + onChange: (e, v) => { + if (e == 1) { + emit('opencust', { + data: column.record, + name: 'BAS_LABEL_VAR', + modalSchema: { + title: '杩囩▼鍙橀噺鍒楄〃', + schemas: [ + { + field: 'VAR_CODE', + component: 'Input', + label: '杩囩▼鍙橀噺缂栫爜', + colProps: { + span: 12, + }, + }, + ], + ItemColumns: [ + { + title: t('杩囩▼鍙橀噺缂栫爜'), + dataIndex: 'VAR_CODE', + resizable: true, + sorter: true, + width: 200, + }, + { + title: t('杩囩▼鍙橀噺鍚嶇О'), + dataIndex: 'VAR_NAME', + resizable: true, + sorter: true, + width: 180, + }, + ], + tableName: 'BAS_LABEL_PV', + rowKey: 'VAR_CODE', + searchInfo: { TABLE_NAME: 'BAS_LABEL_PV' }, + }, + }); + } + }, + }; + }, + editRender: ({ record }) => { let color = ''; let text = ''; switch (record.VAR_TYPE) { @@ -415,105 +645,97 @@ return h(Tooltip, { title: text }, () => h(Tag, { color: color }, () => text)); }, }, + ]; + switch (type) { + case 'BAS_LABEL_VAR': + columns = [ + ...columns, + ...[ + { + dataIndex: 'VAR_VALUE', + title: '鍙橀噺鍊�', + edit: true, + // editable: true, + editRule: true, + ifShow: (column) => true, + sorter: true, + resizable: true, + }, + { + dataIndex: 'REMARK', + title: '澶囨敞', + ifShow: true, + sorter: true, + resizable: true, + }, + ], + ] as BasicColumn[]; + break; + } + return columns; + } + + /** + * @description: 琛ㄦ牸鍩烘湰瀛楁 + * @return {*} + */ + const baseColumns = { + BAS_LABEL_VAR: [], + BAS_LABEL_VAR_WO: [ + { + dataIndex: 'LABEL_ID', + title: '鏍囩妯℃澘ID', + ifShow: false, + sorter: true, + resizable: true, + }, + { + title: '宸ュ崟鍙�', + dataIndex: 'WORK_ORDER', + edit: true, + editRule: true, + editable: true, + ifShow: true, + }, + { + dataIndex: 'VAR_NAME', + title: '鍙橀噺鍚嶇О', + edit: true, + editRule: true, + editable: true, + ifShow: true, + sorter: true, + resizable: true, + customRender: () => {}, + }, { dataIndex: 'VAR_VALUE', title: '鍙橀噺鍊�', + edit: true, + editRule: true, + editable: true, ifShow: true, sorter: true, resizable: true, }, { - dataIndex: 'REMARK', - title: '澶囨敞', - ifShow: true, - sorter: true, - resizable: true, - }, - ], - MES_SHIFT_PRD: [ - { - title: '鏃舵缂栫爜', - dataIndex: 'PRD_CODE', - // ifShow: false, - width: 180, - }, - { - title: '鏃舵鍚嶇О', - dataIndex: 'PRD_NAME', - }, - { - title: '鐝缂栫爜', - dataIndex: 'SFT_CODE', - }, - { - 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: '鏄惁璺ㄥぉ', - dataIndex: 'IS_ACROSS', - customRender: ({ record }) => { - const type = record.IS_ACROSS; - var text = ''; - var color = 'green'; - switch (type) { - case 'Y': - text = '鏄�'; - break; - case 'N': - color = 'blue'; - text = '鍚�'; - break; - } - return h(Tag, { color: color }, () => text); - }, - }, - { - title: '鏄惁浼戞伅鏃舵', - dataIndex: 'IS_REST', - customRender: ({ record }) => { - const type = record.IS_REST; - var text = ''; - var color = 'green'; - switch (type) { - case 'Y': - text = '鏄�'; - break; - case 'N': - color = 'blue'; - text = '鍚�'; - break; - } - return h(Tag, { color: color }, () => text); - }, - }, - { - title: '鏃舵鎺掑簭', - dataIndex: 'SEQ', + title: '鏍囩妯℃澘棰勮鍦板潃', + dataIndex: 'LABEL_VIEW_PATH', + ifShow: false, }, { title: '澶囨敞', dataIndex: 'REMARK', }, - { - title: '鏇存柊鏃堕棿', - dataIndex: 'UPDATE_TIME', - }, - { - title: '鏇存柊浜�', - dataIndex: 'UPDATE_USER', - }, - ], + // { + // title: '鏇存柊鏃堕棿', + // dataIndex: 'UPDATE_TIME', + // }, + // { + // title: '鏇存柊浜�', + // dataIndex: 'UPDATE_USER', + // }, + ] as BasicColumn[], }; /** 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 457ad5e..eb6da34 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_DTL.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_DTL.ts @@ -34,7 +34,7 @@ * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓� * @return {*} */ - CreateAction: (fnName: string) => { + CreateAction: (type: string) => { return { action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) }; diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_RULE.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_RULE.ts index a02f8aa..5bfd5e4 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_RULE.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_PKG_RULE.ts @@ -29,7 +29,7 @@ * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓� * @return {*} */ - CreateAction: (fnName: string) => { + CreateAction: (type: string) => { return { action: 'go', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) url: 'BAS_PKG_DTL/High', diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON.ts index b560106..aeaf0d0 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON.ts @@ -35,7 +35,7 @@ * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓� * @return {*} */ - CreateAction: (fnName: string) => { + CreateAction: (type: string) => { return { action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) }; diff --git a/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON_GRP.ts b/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON_GRP.ts index 0e64210..7520e65 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON_GRP.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/BAS_REASON_GRP.ts @@ -4,7 +4,7 @@ * @version: * @Date: 2024-06-19 20:34:27 * @LastEditors: Ben Lin - * @LastEditTime: 2024-07-04 09:26:04 + * @LastEditTime: 2024-07-28 17:28:46 */ import { ActionItem, BasicColumn } from '/@/components/Table'; @@ -32,9 +32,9 @@ * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓� * @return {*} */ - CreateAction: (fnName: string) => { + CreateAction: (type: string) => { return { - action: 'go', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) + action: 'go', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) | edit(濡傛灉鏄〃鏍煎彲缂栬緫椤甸潰灏辨槸鑷畾涔夋柟娉�) url: 'BAS_REASON/High', params: { CODE: '0', diff --git a/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts b/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts index 3dabce7..dda5d59 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO.ts @@ -43,7 +43,7 @@ * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓� * @return {*} */ - CreateAction: (fnName: string) => { + CreateAction: (type: string) => { return { action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) }; diff --git a/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO_BATCH.ts b/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO_BATCH.ts index e4768bb..8801d77 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO_BATCH.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/BIZ_MES_WO_BATCH.ts @@ -40,7 +40,7 @@ * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓猴紝蹇呴渶瑕佹湁鐨勬柟娉� * @return {*} */ - CreateAction: (fnName: string) => { + CreateAction: (type: string) => { return { action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) }; diff --git a/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts b/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts index 93073b2..9e92d60 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT.ts @@ -38,7 +38,7 @@ * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓� * @return {*} */ - CreateAction: (fnName: string) => { + CreateAction: (type: string) => { return { action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) }; diff --git a/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT_SYS.ts b/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT_SYS.ts index 06d636e..6f351bd 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT_SYS.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/MES_SHIFT_SYS.ts @@ -30,9 +30,9 @@ * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓� * @return {*} */ - CreateAction: (fnName: string) => { + CreateAction: (type: string) => { return { - action: 'go', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) + action: 'go', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) | edit(濡傛灉鏄〃鏍煎彲缂栬緫椤甸潰灏辨槸鑷畾涔夋柟娉�) url: 'MES_SHIFT/High', params: { CODE: '0', diff --git a/src/views/tigerprojects/system/lowcode/entityts/QMS_INS_ITEM.ts b/src/views/tigerprojects/system/lowcode/entityts/QMS_INS_ITEM.ts index 0d2d1bb..903354d 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/QMS_INS_ITEM.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/QMS_INS_ITEM.ts @@ -60,7 +60,7 @@ * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓� * @return {*} */ - CreateAction: (fnName: string) => { + CreateAction: (type: string) => { return { action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) }; diff --git a/src/views/tigerprojects/system/lowcode/entityts/QMS_INS_STD.ts b/src/views/tigerprojects/system/lowcode/entityts/QMS_INS_STD.ts index c659f15..dbb1a31 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/QMS_INS_STD.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/QMS_INS_STD.ts @@ -31,7 +31,7 @@ * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓� * @return {*} */ - CreateAction: (fnName: string) => { + CreateAction: (type: string) => { return { action: 'go', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) url: 'QMS_INS_ITEM/High', diff --git a/src/views/tigerprojects/system/lowcode/entityts/V_BAS_PROD.ts b/src/views/tigerprojects/system/lowcode/entityts/V_BAS_PROD.ts index ff02c43..75e7265 100644 --- a/src/views/tigerprojects/system/lowcode/entityts/V_BAS_PROD.ts +++ b/src/views/tigerprojects/system/lowcode/entityts/V_BAS_PROD.ts @@ -27,9 +27,9 @@ * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓� * @return {*} */ - CreateAction: (fnName: string) => { + CreateAction: (type: string) => { return { - action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) + action: 'drawer', //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) | edit(濡傛灉鏄〃鏍煎彲缂栬緫椤甸潰灏辨槸鑷畾涔夋柟娉�) }; }, /** diff --git a/src/views/tigerprojects/system/lowcode/high/baseForm.vue b/src/views/tigerprojects/system/lowcode/high/baseForm.vue index fd9dbdc..970ce45 100644 --- a/src/views/tigerprojects/system/lowcode/high/baseForm.vue +++ b/src/views/tigerprojects/system/lowcode/high/baseForm.vue @@ -4,7 +4,7 @@ * @version: * @Date: 2024-06-23 17:21:29 * @LastEditors: Ben Lin - * @LastEditTime: 2024-07-27 13:17:08 + * @LastEditTime: 2024-07-29 16:25:07 --> <template> <a-card @@ -13,15 +13,30 @@ v-for="(item, index) in _baseCards" :key="item.name" > - <BasicForm @register="useFormData[item.name][0]" /> + <BasicForm @register="useFormData[item.name][0]"> + <template #[l]="{ field }" v-for="l in colSlots" :key="l"> + <a-button + v-if="field" + class="mt-1 ml-1" + size="small" + @click="handleSelectItem(l)" + preIcon="search|svg" + /> + <GeneralModal @register="useModals[l]" @success="(d, u) => handleItemSuccess(d, u, l)" /> + </template> + </BasicForm> </a-card> </template> <script lang="ts" setup> import { Ref, inject, nextTick, onMounted, ref, watch } from 'vue'; import { BasicForm, useForm } from '/@/components/Form/index'; + import GeneralModal from '/@/views/components/GeneralModal.vue'; import { Card } from 'ant-design-vue'; import { getEntity } from '/@/api/tigerapi/system'; import { isNullOrEmpty } from '/@/utils/is'; + import { useI18n } from '/@/hooks/web/useI18n'; + + const { t } = useI18n(); const props = defineProps({ entityName: { type: String }, }); @@ -29,19 +44,14 @@ const objParams = inject('objParams') as Ref<any>; const useFormData = inject('useFormData') as Ref<{}>; const baseCards = inject('baseCards') as Ref<any>; - const custImport = ref<any[]>( - await import(`../entityts/${props.entityName}.ts`), - ); - const [ - { - GetBaseForm, - GetBaseCards, - }, - ] = custImport.value['default'](); + const custImport = ref<any[]>(await import(`../entityts/${props.entityName}.ts`)); + const [{ GetBaseForm, GetBaseCards, GetUseModals }] = custImport.value['default'](); const formSchemas = ref({ BaseForm: GetBaseForm(), - }); - + }); + const colSlots = ref<any[]>(objParams.value['colSlots']); + const useModals = ref<any>(GetUseModals()); + //寮瑰嚭妗嗘垨楂樼骇椤甸潰澶氳〃鍗曠粨鏋� useFormData.value = { BaseForm: useForm({ @@ -61,15 +71,95 @@ getEntity({ sqlcmd: ` ID = '${objParams.value['ID']}'`, entityName: _baseCards.value[0]['entityName'], - order: '' + order: '', }).then((res) => { if (!isNullOrEmpty(res.Data.Items)) { useFormData.value[_baseCards.value[0]['name']][1].setFieldsValue(res.Data.Items[0]); - }else{ + } else { useFormData.value[_baseCards.value[0]['name']][1].setFieldsValue({ ID: objParams.value['ID'], }); } }); }); + + + /** + * @description: 寮瑰嚭閫夋嫨妗嗛�夋嫨鎴愬姛鍚庝簨浠� + * @param {*} d + * @param {*} u + * @param {*} item 椤甸潰涓婂惊鐜娊灞夊垪琛ㄤ紶鍏ョ殑瀹炰綋鍚嶅瓧锛屼綔涓哄悇琛ㄦ牸鐩稿叧鏂规硶鐨刱ey锛屼粠鑰岃皟鐢ㄥ悇琛ㄦ牸鐩稿叧鐨勬柟娉曪紝濡傦細useFormData.value[_baseCards.value[0]['name']][1].getForm() + * @return {*} + */ + function handleItemSuccess(d, u, item) { + /* 鍔ㄦ�乮mport瀹炰綋鍚�.ts鐨勮嚜瀹氫箟鏂规硶 */ + try { + import( + `../entityts/${useFormData.value[_baseCards.value[0]['name']][1].getFieldsValue()[`${item.replace(/form-/, '').replace(/add/, '')}PSelect_0`]}.ts` + ) + .then((m) => { + const [{ GetSelectSuccess }] = m.default(); + useFormData.value[_baseCards.value[0]['name']][1].setFieldsValue(GetSelectSuccess(d, u)); + }) + .catch(() => { + useFormData.value[_baseCards.value[0]['name']][1].setFieldsValue({ + ITEM_CODE: d.values['val'], + }); + }); + } catch (e) {} + } + + /** + * @description: 寮瑰嚭閫夋嫨妗� + * @param {*} item + * @return {*} + */ + function handleSelectItem(item) { + /* 鍔ㄦ�乮mport瀹炰綋鍚�.ts鐨勮嚜瀹氫箟鏂规硶 */ + const name = useFormData.value[_baseCards.value[0]['name']][1].getFieldsValue()[`${item.replace(/form-/, '').replace(/add/, '')}PSelect_0`]; + const openModal = useModals.value[item][1].openModal; + try { + import( + `../entityts/${name}.ts` + ) + .then((m) => { + const [{ OpenSelectItem }] = m.default(); + OpenSelectItem(openModal); + }) + .catch(() => { + openModal(true, { + title: '鐗╂枡鍒楄〃', + schemas: [ + { + field: 'ITEM_CODE', + component: 'Input', + label: '鐗╂枡缂栫爜', + colProps: { + span: 12, + }, + }, + ], + ItemColumns: [ + { + title: t('鐗╂枡缂栫爜'), + dataIndex: 'ITEM_CODE', + resizable: true, + sorter: true, + width: 200, + }, + { + title: t('鐗╂枡鍚嶇О'), + dataIndex: 'ITEM_NAME', + resizable: true, + sorter: true, + width: 180, + }, + ], + tableName: 'BAS_ITEM', + rowKey: 'ITEM_CODE', + searchInfo: { TABLE_NAME: 'BAS_ITEM' }, + }); + }); + } catch (e) {} + } </script> diff --git a/src/views/tigerprojects/system/lowcode/high/edit/editdtl.vue b/src/views/tigerprojects/system/lowcode/high/edit/editdtl.vue index c3b5fd0..1109204 100644 --- a/src/views/tigerprojects/system/lowcode/high/edit/editdtl.vue +++ b/src/views/tigerprojects/system/lowcode/high/edit/editdtl.vue @@ -8,8 +8,15 @@ > <BasicTable @register="useTables[item.name]"> <template #toolbar> - <a-button type="primary" @click="handleCreate(index, item)" preIcon="add_02|svg"> - 鏂板 + <a-button + v-if="item.showTbButton" + type="primary" + v-for="d in buttons.filter((m) => m['BUTTON_TYPE'] == 0)" + @click="handleCreate(index, item, d)" + :preIcon="d['ICON_URL']" + :key="d" + > + {{ d['FUNC_NAME'] }} </a-button> </template> <template #action="{ record }"> @@ -49,10 +56,14 @@ import { useI18n } from '/@/hooks/web/useI18n'; import { Card } from 'ant-design-vue'; import { EntityCustFunctionType } from '/@/api/tigerapi/model/basModel'; + import { useRouter } from 'vue-router'; + import { getRoleButtons } from '/@/api/sys/menu'; + import { GenerateActionButton } from '../../data'; + import { CustModalParams } from '/@/api/tigerapi/model/systemModel'; const { t } = useI18n(); const ACard = Card; - const emit = defineEmits(['search']); + const emit = defineEmits(['search', 'opencust', 'gettables']); const props = defineProps({ colSlots: { type: Array as PropType<any[]> }, useTableData: { type: Object as PropType<{}>, default: { table: [] } }, @@ -67,6 +78,7 @@ const keyFieldValues = inject('keyFieldValues') as Ref<Recordable[]>; const go = useGo(); + const { currentRoute } = useRouter(); const [registerItemAdd, { openModal: openItemModal }] = useModal(); const cType = ref(''); const dtlSlots = ref([] as any[]); @@ -82,6 +94,7 @@ GetUseTables(data: Ref<Recordable[]>, ...args) {}, GetUseDrawers() {}, CustInitData(data: Ref<any[]>, keyFieldValues: Ref<{}>, type: string) {}, + GetNewRow(type: string) {}, } as EntityCustFunctionType, ]); /* 鍔ㄦ�乮mport瀹炰綋鍚�.ts鐨勮嚜瀹氫箟鏂规硶 */ @@ -98,10 +111,14 @@ GetUseTables, GetUseDrawers, CustInitData, + CreateAction, + CustFunc, + GetNewRow, }, ] = isNullOrUnDef(custImport.value['default']) ? EntityCustFunction.value : custImport.value['default'](); + const buttons = ref<[]>(await getRoleButtons(currentRoute.value.meta.menuCode as string)); keyFieldValues.value = KeyFieldValues(objParams.value['CODE'], objParams.value['ID']); //鑾峰彇涓�浜涘叾浠栨湁闇�瑕佹彁渚涚殑鍊硷紝杩欓噷鏄富椤甸潰璺宠浆杩囨潵鏃跺甫鐨勫叧閿瓧娈靛�� const drawers = ref<any[]>(objParams.value['drawers']); //鏄彸渚ц竟妗嗗垪琛紝閲岄潰鐨刵ame琛ㄧず鏄摢涓�涓疄浣擄紝涔熷氨鏄珮绾ц〃鍗曚腑琛ㄦ牸鐨勫悕瀛楋紝寰堝鏂规硶闇�瑕佷互杩欎釜鍚嶅瓧涓簁ey const useTables = GetUseTables(data, emit); //楂樼骇琛ㄥ崟涓悇涓〃鏍�(Table)鐨剈seTable鏂规硶瀹炵幇鍒楄〃 @@ -161,6 +178,7 @@ dataSource: data.value[drawers.value[i].name], }); useTables[drawers.value[i].name][1].reload(); + emit('gettables', useTables); } } }); @@ -186,21 +204,12 @@ name: item.name, //drawers鍒楄〃閲岄潰鐨刵ame锛岃〃绀烘槸鍝竴涓疄浣擄紝涔熷氨鏄珮绾ц〃鍗曚腑琛ㄦ牸鐨勫悕瀛� keyName: item.keyName, }; - const actionItem = [ - { - icon: 'clarity:note-edit-line', - onClick: editRecord.bind(null, useDrawers[index][item.name][1].openDrawer, params), - }, - { - icon: 'ant-design:delete-outlined', - color: 'error', - popConfirm: { - title: '鏄惁纭鍒犻櫎?', - placement: 'left', - confirm: deleteRecord.bind(null, useTables[item.name][1].reload, params), - }, - }, - ]; + const actionItem = GenerateActionButton( + params, + buttons, + useDrawers[index][item.name][1].openDrawer, + useTables[item.name][1].reload(), + ); if (isNullOrUnDef(custImport.value)) { return actionItem; } @@ -214,32 +223,6 @@ useModal, go, ); - } - - /** - * @description: 鍏敤缂栬緫鏂规硶 - * @param {Fn} fn - * @param {*} params - * @return {*} - */ - function editRecord(fn: Fn, params: {}) { - fn(true, params); - } - - /** - * @description: 鍏敤鍒犻櫎鏂规硶 - * @param {Fn} fn - * @param {*} params - * @return {*} - */ - function deleteRecord(fn: Fn, params: {}) { - console.log(params['record']); - //鍒犻櫎 - DeleteEntity(params['record'], params['entityName']).then((action) => { - if (action.IsSuccessed) { - fn(); - } - }); } /** @@ -257,18 +240,19 @@ } /** - * @description: 鏂板鎸夐挳鏂规硶 + * @description: 鎵撳紑鎶藉眽鏂规硶 * @param {*} index * @param {*} item * @return {*} */ - function handleCreate(index, item) { + function CreateopenDrawer(index, item) { validate().then((res) => { const Keys = Object.getOwnPropertyNames(useFormData.value); for (const i in Keys) { keyFieldValues.value[item['code']] = objParams.value['IsID'] ? res[Keys[i]]['ID'] : res[Keys[i]][item['code']]; + console.log(i); } useDrawers[index][item['name']][1].openDrawer(true, { isUpdate: false, @@ -285,6 +269,64 @@ } /** + * @description: 鏂板鎸夐挳鏂规硶 + * @param {*} index + * @param {*} item + * @return {*} + */ + function handleCreate(index, item, d) { + const _cruds = GetCrudForm(); + let isExistSql = ''; + for (const i in _cruds) { + if (_cruds[i].isexist == 'Y') { + isExistSql = _cruds[i].field; + } + } + + if (isNullOrUnDef(custImport.value['default'])) { + CreateopenDrawer(index, item); + } else { + const result = CreateAction(item.name); + /* 鏍规嵁涓婚〉闈㈣烦杞紶杩囨潵鐨勫弬鏁扮‘瀹氭柊澧炴寜閽殑鎵ц鏂规硶 */ + switch (result.action) { + case 'go': + sessionStorage.removeItem(`${result.params.Name}_update_params`); + // 灏嗗璞¤浆鎹负JSON瀛楃涓插苟淇濆瓨鍒皊essionStorage + sessionStorage.setItem( + `${result.params.Name}_update_params`, + encodeURI(JSON.stringify(result.params)), + ); + go( + `/${result.url}/${encodeURI(JSON.stringify({ sName: `${result.params.Name}_update`, Name: result.params.Name }))}`, + ); + break; + case 'drawer': + CreateopenDrawer(index, item); + break; + case 'edit': + const params: CustModalParams = { + mValues: {}, + others: keyFieldValues.value, + cType: item.name, + values: GetNewRow(item.name), + initFnName: '', + FnName: item.FnName, + data: data, + }; + CustFunc(params); + useTables[item.name][1].setProps({ + dataSource: [], + }); + useTables[item.name][1].setProps({ + dataSource: data.value[item.name], + }); + useTables[item.name][1].reload(); + break; + } + } + } + + /** * @description: 鏂板缂栬緫杩斿洖鎴愬姛鏂规硶 * @param {*} d * @param {*} u diff --git a/src/views/tigerprojects/system/lowcode/high/edit/index.vue b/src/views/tigerprojects/system/lowcode/high/edit/index.vue index 9160eda..457bbb8 100644 --- a/src/views/tigerprojects/system/lowcode/high/edit/index.vue +++ b/src/views/tigerprojects/system/lowcode/high/edit/index.vue @@ -4,7 +4,7 @@ * @version: * @Date: 2024-06-18 15:09:48 * @LastEditors: Ben Lin - * @LastEditTime: 2024-07-27 12:59:25 + * @LastEditTime: 2024-07-29 21:26:39 --> <template> <PageWrapper @@ -18,7 +18,12 @@ </Suspense> <!-- <a-card :title="titleInfo['baseTableTitle']" :bordered="false" class="!mt-5"> --> <Suspense> - <Editdtl :entityName="entityName" @search="dtlFormSearch" /> + <Editdtl + :entityName="entityName" + @search="dtlFormSearch" + @gettables="GetTablesData" + @opencust="OpenCust" + /> </Suspense> <!-- </a-card> --> <a-card @@ -64,6 +69,7 @@ </template> </CustModal> </Suspense> + <GeneralModal @register="register" @success="handleCustSuccess" /> </PageWrapper> </template> <script lang="ts" setup> @@ -135,7 +141,8 @@ provide<Ref<any>>('baseCards', baseCards); provide<Ref<any>>('useTables', useTables); - const [registerCust, { openModal: openCustomModal, closeModal }] = useModal(); + const [registerCust] = useModal(); + const [register, { openModal, closeModal }] = useModal(); const { setTitle } = useTabs(); setTitle(objParams.value.Title); //璁剧疆鏍囩椤垫爣棰� @@ -160,32 +167,84 @@ }); /** + * @description: 鑾峰彇useTable + * @param {*} d + * @return {*} + */ + function GetTablesData(d) { + useTableData.value = d; + } + + const currTableName = ref(''); + const currRecordId = ref(''); + /** + * @description: 鎵撳紑寮规 + * @param {*} d + * @return {*} + */ + function OpenCust(d) { + console.log(d.name); + currTableName.value = d.name; + currRecordId.value = d.data.ID; + data.value[d.name].map((x) => { + if (x.ID == currRecordId.value && x.VAR_TYPE != d.data.VAR_TYPE) { + x.VAR_TYPE = d.data.VAR_TYPE; + } + }); + openModal(true, d.modalSchema); + } + + /** + * @description: + * @param {*} d + * @param {*} u + * @return {*} + */ + function handleCustSuccess(d, u) { + const _data = data.value[currTableName.value].map((x) => { + if (x.ID == currRecordId.value) { + x.VAR_VALUE = d.values.val; + } + return x; + }); + data.value[currTableName.value] = []; + useTables.value[currTableName.value][1].setProps({ + dataSource: [], + }); + data.value[currTableName.value] = _data; + useTables.value[currTableName.value][1].setProps({ + dataSource: data.value[currTableName.value], + }); + useTables.value[currTableName.value][1].reload(); + } + + /** * @description: 寮傛鍏ㄩ儴鎻愪氦鏂规硶 * @return {*} */ async function submitAll() { try { const validates = await validate(); - const Keys = Object.getOwnPropertyNames(useFormData.value); - 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'], - `${objParams.value['IsExist']}='${validates[Keys[i]][objParams.value['IsExist']]}'`, - true, - ), - ); - } - await Promise.all(p); if ( !custImport.value['default']()[0].SubmitAll && !isFunction(custImport.value['default']()[0].SubmitAll) ) { /* 榛樿鎻愪氦 */ + const Keys = Object.getOwnPropertyNames(useFormData.value); + 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'], + `${objParams.value['IsExist']}='${validates[Keys[i]][objParams.value['IsExist']]}'`, + true, + ), + ); + } + await Promise.all(p); objParams.value['drawers'].forEach((d) => { let where = `${d['code']} = '${keyFieldValues.value[d['code']]}'`; /* type: all-琛ㄧず闇�瑕乧ode鐨勬墍鏈夌殑鍊� */ @@ -206,7 +265,13 @@ }); } else { /* 濡傛灉鑷畾涔夋彁浜ゆ柟娉曞瓨鍦ㄥ氨鐢ㄨ嚜瀹氫箟鎻愪氦 */ - custImport.value['default']()[0].SubmitAll(data, keyFieldValues, cancel); + custImport.value['default']()[0].SubmitAll( + data, + keyFieldValues, + cancel, + objParams.value['drawers'], + validates, + ); } } catch (error) {} } -- Gitblit v1.9.3