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/data.ts | 491 +++++++++++++++++++----------------------------------- 1 files changed, 175 insertions(+), 316 deletions(-) diff --git a/src/views/tigerprojects/system/lowcode/data.ts b/src/views/tigerprojects/system/lowcode/data.ts index 57bd4b3..4544abf 100644 --- a/src/views/tigerprojects/system/lowcode/data.ts +++ b/src/views/tigerprojects/system/lowcode/data.ts @@ -1,117 +1,44 @@ /* - * __----~~~~~~~~~~~------___ - * . . ~~//====...... __--~ ~~ - * -. \_|// |||\\ ~~~~~~::::... /~ - * ___-==_ _-~o~ \/ ||| \\ _/~~- - * __---~~~.==~||\=_ -_--~/_-~|- |\\ \\ _/~ - * _-~~ .=~ | \\-_ '-~7 /- / || \ / - * .~ .~ | \\ -_ / /- / || \ / - * / ____ / | \\ ~-_/ /|- _/ .|| \ / - * |~~ ~~|--~~~~--_ \ ~==-/ | \~--===~~ .\ - * ' ~-| /| |-~\~~ __--~~ - * |-~~-_/ | | ~\_ _-~ /\ - * / \ \__ \/~ \__ - * _--~ _/ | .-~~____--~-/ ~~==. - * ((->/~ '.|||' -_| ~~-/ , . _|| - * -_ ~\ ~~---l__i__i__i--~~_/ - * _-~-__ ~) \--______________--~~ - * //.-~~~-~_--~- |-------~~~~~~~~ - * //.-~~~--\ - * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * - * 绁炲吔淇濅綉 姘告棤BUG - */ - - -/* * @Description: 閫氱敤浣庝唬鐮佸憟鐜伴〉闈富鏁版嵁 * @Author: Ben Lin - * @version: + * @version: * @Date: 2024-06-02 17:52:35 * @LastEditors: Ben Lin - * @LastEditTime: 2024-06-14 09:08:11 + * @LastEditTime: 2024-07-20 02:17:35 */ -import { - DftGrpRelease, - dftGrpOpenSelectItem, - dftGrpGetSelectSuccess, - dftGrpactionColumn, - baseSchema, - DftGrpEdit, - searchSchema, - defectBaseColumn, - crudSchema, - DftGrpDel, -} from './normal/basDefectGrp'; -import { onChangeFns, rsGrpGetSelectSuccess, rsGrpOpenSelectItem } from './normal/basReasonGrp'; -import { DeleteEntity } from '/@/api/tigerapi/system'; -import { ActionItem, BasicColumn, FormSchema } from '/@/components/Table'; +import { ActionItem, FormSchema, PopConfirm } from '/@/components/Table'; import { useI18n } from '/@/hooks/web/useI18n'; import { isNullOrEmpty } from '/@/utils/is'; import { woCustFn, woformSchema } from '/@/views/components/bizMesWo'; import { useModal } from '/@/components/Modal'; -import { goDetail, labelActionItem, labelGetSelectSuccess, labelOpenSelectItem } from './detail/basLabelVar'; +import { Ref, unref } from 'vue'; +import { getRouteData } from '/@/api/tigerapi/mes/router'; import { buildUUID } from '/@/utils/uuid'; -import { Tag } from 'ant-design-vue'; -import { Ref, h } from 'vue'; +import { useUserStore } from '/@/store/modules/user'; +import { formatToDateTime } from '/@/utils/dateUtil'; +import { DeleteEntity } from '/@/api/tigerapi/system'; const { t } = useI18n(); - /** * @description: 浣庝唬鐮侀〉闈㈣幏鍙栨搷浣滃瓧娈电粨鏋凧son锛屽澧炲姞鎸夐挳鍙婃柟娉� + * 鏀荤暐: + * 1. 鍙︽柊寤洪┘宄板疄浣撳悕.ts鐨勬枃浠讹紝濡傦細BAS_REASON.ts銆備互渚垮尯鍒笉鍚岄〉闈㈢殑鏂规硶 + * 2. 鏇挎崲涓婚〉闈㈢紪杈戞寜閽柟娉曞彉涓鸿烦杞埌楂樼骇椤甸潰锛屾柟娉曚腑浼犲叆 { CODE: 涓昏〃璁板綍鐨勫叧閿瓧娈靛�硷紝涓�鑸槸XXX_CODE鐨勫��, ID: 褰撳墠璁板綍鐨処D, Name: 'BAS_DEFECT'锛堣烦杞繃鍘婚渶瑕佹柊澧炵紪杈戠殑瀹炰綋鍚嶏級, Title: `缂栬緫涓嶈壇浠g爜缁勶細${params['record']['DFTG_CODE']}`锛堝畾涔塼ab椤电鐨勬爣棰橈級, pCode: 'DFTG_CODE'锛堜富琛ㄧ殑鍏抽敭瀛楁浠g爜锛� } + * 鏇挎崲涓婚〉闈㈡柊澧炴寜閽柟娉曞悓涓� + * 3. 鍦ㄨ彍鍗曠鐞嗘柊寤轰竴涓珮绾ч〉闈€�� + * 4. 閰嶇疆楂樼骇椤甸潰锛屽畾涔夎〃鍗曞垪 getFormSchema + * 5. 鍒濆鍖栬〃鏍� GetBasicColumnAndInit + * 6. 璁剧疆杩斿洖 getHomeUrl + * 7. 璁剧疆鏍囬 getTitle + * 8. 璁剧疆鏂板鏃跺氨榛樿鐨勫�� getKeyFieldValues + * 9. 鏇挎崲鍒犻櫎鏂规硶 GetActionsData * @param {*} params * @param {array} args * @return {*} */ -export function GetActionsData(params: {}, ...args: Fn[]) { - let data = [ - { - icon: 'clarity:note-edit-line', - onClick: editRecord.bind(null, args[0], params), - }, - { - icon: 'ant-design:delete-outlined', - color: 'error', - popConfirm: { - title: '鏄惁纭鍒犻櫎?', - placement: 'left', - confirm: deleteRecord.bind(null, args[1], params), - }, - }, - ] as ActionItem[]; - switch (params['entityName']) { - /* 涓嶈壇浠g爜缁� */ - case 'BAS_DEFECT_GRP': - data[0].onClick = DftGrpEdit.bind(null, args, params); - break; - case 'BAS_DEFECT': - data[1].popConfirm.confirm = DftGrpDel.bind(null, args, params); - break; - /* 鏍囩妯℃澘 */ - case 'BAS_LABEL_TEMP': - const _data = labelActionItem; - _data[0].onClick = goDetail.bind(null, args[5], params['record']) - data = [...data, ..._data]; - break; - } - return data; -} - -/** - * @description: 鑾峰彇鏂板鎸夐挳鐨勮涓� - * @param {string} type - * @return {*} - */ -export function getCreateAction(type: string) { - let data = { action: 'drawer', url: '', params: {} }; //drawer(鎵撳紑宸︿晶鎶藉眽妗�) | go(璺宠浆鍒版柊鐨勯〉闈�) - switch (type) { - case 'BAS_DEFECT_GRP': - data.action = 'go'; - data.url = 'BAS_DEFECT/High'; - data.params = { CODE: '0', ID: buildUUID(), Name: 'BAS_DEFECT', Title: '鏂板涓嶈壇浠g爜缁�', pCode: 'DFTG_CODE' }; - break; - } +export function GetActionsData(params: {}, ...args) { + let data = [] as ActionItem[]; return data; } @@ -131,146 +58,6 @@ } /** - * @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(); - } - }); -} - -/** - * @description: 鑾峰彇鎿嶄綔鍒楁牱寮忔柟娉� - * @param {string} entityName - * @return {*} - */ -export function GetActionColumn(entityName: string) { - let data: BasicColumn = {}; - switch (entityName) { - case 'BAS_DEFECT_GRP': - data = dftGrpactionColumn; - break; - case 'BAS_LABEL_TEMP': - data = { - width: 120, - title: '鎿嶄綔', - dataIndex: 'action', - slots: { customRender: 'action' }, - fixed: 'right', - }; - break; - default: - data = { - width: 80, - title: '鎿嶄綔', - dataIndex: 'action', - slots: { customRender: 'action' }, - fixed: undefined, - }; - break; - } - return data; -} - -/** - * @description: 鎵撳紑寮瑰嚭閫夋嫨妗嗛�夋嫨鎴愬姛鍚庤繑鍥炴柟娉� - * @param {*} d - * @param {*} u - * @param {string} entityName - * @return {*} - */ -export function GetSelectSuccess(d, u, entityName: string) { - let data = {}; - switch (entityName) { - case 'BAS_DEFECT_GRP': - data = dftGrpGetSelectSuccess(d, u); - break; - case 'BAS_REASON_GRP': - data = rsGrpGetSelectSuccess(d, u); - break; - case 'BAS_LABEL_PV': - data = labelGetSelectSuccess(d, u); - break; - default: - data = { - ITEM_CODE: d.values['val'], - }; - break; - } - return data; -} - -/** - * @description: 鎵撳紑寮瑰嚭閫夋嫨妗� - * @param {Fn} openItemModal - * @param {string} entityName - * @return {*} - */ -export function OpenSelectItem(openItemModal: Fn, entityName: string) { - switch (entityName) { - case 'BAS_DEFECT_GRP': - dftGrpOpenSelectItem(openItemModal); - break; - case 'BAS_REASON_GRP': - rsGrpOpenSelectItem(openItemModal); - break; - case 'BAS_LABEL_PV': - labelOpenSelectItem(openItemModal); - break; - default: - openItemModal(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', - }); - break; - } -} - -/** * @description: Select 鑷畾涔塷nChange鏂规硶 * @param {any} e * @param {string} fnName @@ -281,14 +68,14 @@ if (!isNullOrEmpty(fnName)) { switch (entityName) { case 'BAS_REASON': - onChangeFns[fnName](e); + // onChangeFns[fnName](e); break; default: break; - (e) => { }; + (e) => {}; } } else { - (e) => { }; + (e) => {}; } } @@ -339,6 +126,7 @@ ], tableName: 'BAS_ITEM', rowKey: 'ITEM_CODE', + searchInfo: { TABLE_NAME: 'BAS_ITEM' }, }); break; } @@ -355,15 +143,6 @@ case 'BIZ_MES_WO': _formSchema = woformSchema; break; - case 'BaseForm': - _formSchema = baseSchema; - break; - case 'BAS_DEFECT_Search': - _formSchema = searchSchema; - break; - case 'BAS_DEFECT_Crud': - _formSchema = crudSchema; - break; default: break; } @@ -371,95 +150,175 @@ } /** - * @description: 鑾峰彇琛ㄦ牸鍒� - * @param {string} entityName + * @description: 宸ヨ壓璺嚎鍒濆鍖� + * @param {*} lf * @return {*} */ -export function GetBasicColumnAndInit(entityName: string, ...args) { - let data: BasicColumn[] = []; - switch (entityName) { - case 'BAS_DEFECT': - data = defectBaseColumn; - args[0].value[entityName] = getFormSchema(entityName); - args[0].value['BaseForm'] = getFormSchema('BaseForm'); - args[1].value = { - BaseForm: args[4]({ - labelWidth: 120, - schemas: args[0].value['BaseForm'], - actionColOptions: { - span: 24, - }, - showActionButtonGroup: false, - }), - }; - args[2].value = [ - { name: 'BaseForm', slots: [], preIcons: {}, title: '涓嶈壇浠g爜缁勪俊鎭�', entityName: 'BAS_DEFECT_GRP' }, - // { - // name: 'prodinfo', - // slots: ['addRot', 'setRot'], - // preIcons: { addRot: 'search|svg', setRot: 'config|svg' }, - // title: '浜у搧淇℃伅', - // }, - // { name: 'rotinfo', slots: ['add'], preIcons: { add: 'search|svg' }, title: '宸ヨ壓淇℃伅' }, - ]; - break; - default: - break; +export async function initRoute(lf, rotId, routeData, currlf) { + currlf.value = unref(lf); + //閫氳繃宸ヨ壓璺嚎ID鑾峰彇鍥惧舰鏁版嵁锛屽苟娓叉煋 + var _data = await getRouteData(rotId); + console.log('缁勪欢宸叉寕杞�', _data); + if (_data.Data != null) { + _data.Data.nodes.forEach((n) => { + n.node.properties = JSON.parse(n.node.properties); + n['node']['text']['value'] = n.NODE_NAME; + routeData.value.nodes.push(n['node']); + }); + console.log('111', routeData.value); + _data.Data.edges.forEach((e) => { + e.edge.properties = JSON.parse(e.edge.properties); + routeData.value.edges.push(e.edge); + }); + _data.Data.acts.forEach((act) => { + act.node.properties = JSON.parse(act.node.properties); + routeData.value.nodes.push(act.node); + }); + unref(lf).render(routeData.value); + // lf.graphModel.translateCenter(); + // lf.graphModel.fitView(); } - return data; +} + +/* 楂樼骇琛ㄥ崟鍏敤鏂规硶 *********************************Start */ + +/** + * @description: 鏌ヨ鑷畾涔夋柟娉曪紝褰撳湪楂樼骇琛ㄥ崟涓殑琛ㄦ牸涓煡璇㈡椂瑙﹀彂浜嬩欢锛屽苟鎶妠 type: type, data: data }浼犲埌鐖剁粍浠� + * @param {string} type 琛ㄦ牸鐨勫悕瀛楋紝濂界‘瀹氭槸鍝釜琛ㄦ牸瑕佹煡璇� + * @param {Ref} data 姝よ〃鏍肩殑鍘熸暟鎹� + * @param {*} emit dtl缁勪欢鐨勪簨浠讹紝瑙﹀彂涓�涓�'search'浜嬩欢 + * @return {*} + */ +export async function Search(type: string, data: Ref<any>, emit) { + emit('search', { type: type, data: data }); } /** - * @description: 鑾峰彇goback鐨剈rl - * @param {string} type + * @description: 楂樼骇琛ㄥ崟鏂板缂栬緫鏂规硶 + * @param {Ref} data + * @param {*} d + * @param {*} u + * @param {*} item + * @param {*} updates * @return {*} */ -export function getHomeUrl(type: string) { - let url = ''; - switch (type) { - case 'BAS_DEFECT': - const param = { ID: 'BAS_DEFECT_GRP', colSlots: [], crudColSlots: [] }; - url = `/BAS_DEFECT_GRP/LC/${encodeURI(JSON.stringify(param))}`; - break; - default: - break; +export function EditOperation(data: Ref<any[]>, d, u, item, updates) { + if (u.isUpdate) { + //鏇存柊 + data.value[item] = updates; + } 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; + }); + } + _data2.push(d); + data.value[item] = _data2; } - return url; } /** - * @description: 鑾峰彇鏍囬淇℃伅 - * @param {string} type + * @description: 鑷畾涔夊垹闄ゆ柟娉� + * @param {Fn} args + * @param {*} params * @return {*} */ -export function getTitle(type: string) { - let title = {}; - switch (type) { - case 'BAS_DEFECT': - title = { pageTitle: '涓嶈壇浠g爜缁勭鐞�', pageContent: '杩欓噷鍙互娣诲姞鍜屼慨鏀逛笉鑹唬鐮佺粍鍜屼笉鑹唬鐮併��', baseTableTitle: '涓嶈壇浠g爜绠$悊' }; - break; - default: - break; +export function custDel(args: Fn[], params: {}) { + const name = params['name']; + const useTables = args[1]; + if (!isNullOrEmpty(params['data'])) { + var _data = params['data'].value[name].filter((item) => item['ID'] != params['record']['ID']); + params['data'].value[name] = _data; + useTables[name][1].setProps({ + dataSource: [], + }); + useTables[name][1].setProps({ + dataSource: params['data'].value[name], + }); + useTables[name][1].reload(); + } else { + DeleteEntity(params['record'], params['entityName']).then((action) => { + if (action.IsSuccessed) { + useTables[name][1].reload(); + } + }); } - return title; +} + +/* 楂樼骇琛ㄥ崟鍏敤鏂规硶 *********************************End */ + +/** + * @description: 鑾峰彇鏉冮檺鎸夐挳鍒楄〃 + * @param {*} params + * @return {*} + */ +export function GenerateActionButton(params: any, buttons: Ref<[]>, openDrawer: Fn, reload: Fn) { + let actionItem = [] as ActionItem[]; + buttons.value.map((x) => { + if (x['BUTTON_TYPE'] == 1) { + let url = ''; + let color = undefined as 'success' | 'error' | 'warning' | undefined; + let _click = null as any; + let _popConfirm = undefined as PopConfirm | undefined; + let _tooltip = ''; + if (x['DO_METHOD'] == 'Edit') { + url = 'clarity:note-edit-line'; + _tooltip = '缂栬緫'; + _click = editRecord.bind(null, openDrawer, params); + } else { + _click = () => {}; + if (x['DO_METHOD'] == 'Delete') { + url = 'ant-design:delete-outlined'; + color = 'error'; + _tooltip = '鍒犻櫎'; + _popConfirm = { + title: '鏄惁纭鍒犻櫎?', + placement: 'left', + confirm: deleteRecord.bind(null, reload, params), + }; + } + } + actionItem.push({ + icon: isNullOrEmpty(x['ICON_URL']) ? url : x['ICON_URL'], + tooltip: _tooltip, + onClick: _click, + color: color, + popConfirm: _popConfirm, + name: x['DO_METHOD'], + }); + } + }); + return actionItem; } /** - * @description: 鑾峰彇闇�瑕佹柊澧炴椂灏遍粯璁ょ殑鍊硷紝涓�鑸槸涓昏〃淇℃伅 - * @param {string} type - * @param {string} val + * @description: 鍏敤缂栬緫鏂规硶 + * @param {Fn} fn + * @param {*} params * @return {*} */ -export function getOthersValues(type: string, val: string) { - let Values = {}; - switch (type) { - case 'BAS_DEFECT': - Values = { DFTG_CODE: val }; - break; - default: - break; - } - return Values; +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(); + } + }); +} -- Gitblit v1.9.3