| | |
| | | /* |
| | | * __----~~~~~~~~~~~------___ |
| | | * . . ~~//====...... __--~ ~~ |
| | | * -. \_|// |||\\ ~~~~~~::::... /~ |
| | | * ___-==_ _-~o~ \/ ||| \\ _/~~- |
| | | * __---~~~.==~||\=_ -_--~/_-~|- |\\ \\ _/~ |
| | | * _-~~ .=~ | \\-_ '-~7 /- / || \ / |
| | | * .~ .~ | \\ -_ / /- / || \ / |
| | | * / ____ / | \\ ~-_/ /|- _/ .|| \ / |
| | | * |~~ ~~|--~~~~--_ \ ~==-/ | \~--===~~ .\ |
| | | * ' ~-| /| |-~\~~ __--~~ |
| | | * |-~~-_/ | | ~\_ _-~ /\ |
| | | * / \ \__ \/~ \__ |
| | | * _--~ _/ | .-~~____--~-/ ~~==. |
| | | * ((->/~ '.|||' -_| ~~-/ , . _|| |
| | | * -_ ~\ ~~---l__i__i__i--~~_/ |
| | | * _-~-__ ~) \--______________--~~ |
| | | * //.-~~~-~_--~- |-------~~~~~~~~ |
| | | * //.-~~~--\ |
| | | * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| | | * |
| | | * 神兽保佑 永无BUG |
| | | */ |
| | | |
| | | /* |
| | | * @Description: 通用低代码呈现页面主数据 |
| | | * @Author: Ben Lin |
| | | * @version: |
| | | * @Date: 2024-06-02 17:52:35 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-06-14 09:08:11 |
| | | * @LastEditTime: 2024-10-23 23:01:49 |
| | | */ |
| | | |
| | | import { |
| | | dftGrpOpenSelectItem, |
| | | dftGrpGetSelectSuccess, |
| | | dftGrpactionColumn, |
| | | baseSchema, |
| | | DftGrpEdit, |
| | | searchSchema, |
| | | defectBaseColumn, |
| | | crudSchema, |
| | | DftGrpDel, |
| | | dftEditeOperation, |
| | | } from './normal/basDefectGrp'; |
| | | import { |
| | | onChangeFns, |
| | | rsnGrpEdit, |
| | | rsGrpGetSelectSuccess, |
| | | rsGrpOpenSelectItem, |
| | | rsnBaseSchema, |
| | | rsnCrudSchema, |
| | | rsnSearchSchema, |
| | | rsnBaseColumn, |
| | | rsnGrpDel, |
| | | rsnEditeOperation, |
| | | } from './normal/basReasonGrp'; |
| | | import { DeleteEntity, convertToTree, getEntity } 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 { isNullOrEmpty, isNullOrUnDef } 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, getWoRouteData } from '/@/api/tigerapi/mes/router'; |
| | | import { buildUUID } from '/@/utils/uuid'; |
| | | import { Tag } from 'ant-design-vue'; |
| | | import { Ref, h } from 'vue'; |
| | | import { |
| | | pkgBaseColumn, |
| | | pkgBaseSchema, |
| | | pkgCrudSchema, |
| | | pkgEditeOperation, |
| | | pkgGrpEdit, |
| | | pkgSearchSchema, |
| | | } from './basPkgrule'; |
| | | import { GetRoutePTree } from '/@/api/tigerapi/mes/router'; |
| | | import { V_MES_ROUTE_PTREE } from '/@/api/tigerapi/model/router'; |
| | | import { prodRouteCreateIcon } from './composition/prodRoute'; |
| | | import { useUserStore } from '/@/store/modules/user'; |
| | | import { formatToDateTime } from '/@/utils/dateUtil'; |
| | | import { DeleteEntity, getEntity } from '/@/api/tigerapi/system'; |
| | | import { useGo } from '/@/hooks/web/usePage'; |
| | | import { useQueryStore } from '/@/store/modules/queryInpage'; |
| | | import { RouteRecordName } from 'vue-router'; |
| | | import { cloneDeep } from 'lodash-es'; |
| | | |
| | | const { t } = useI18n(); |
| | | |
| | | /** |
| | | * @description: 低代码页面获取操作字段结构Json,如增加按钮及方法 |
| | | * 攻略: |
| | | * 1. 另新建驼峰实体名.ts的文件,如:basDefectGrp.ts。以便区别不同页面的方法 |
| | | * 1. 另新建驼峰实体名.ts的文件,如:BAS_REASON.ts。以便区别不同页面的方法 |
| | | * 2. 替换主页面编辑按钮方法变为跳转到高级页面,方法中传入 { CODE: 主表记录的关键字段值,一般是XXX_CODE的值, ID: 当前记录的ID, Name: 'BAS_DEFECT'(跳转过去需要新增编辑的实体名), Title: `编辑不良代码组:${params['record']['DFTG_CODE']}`(定义tab页签的标题), pCode: 'DFTG_CODE'(主表的关键字段代码) } |
| | | * 替换主页面新增按钮方法同上 |
| | | * 3. 在菜单管理新建一个高级页面。 |
| | |
| | | * 5. 初始化表格 GetBasicColumnAndInit |
| | | * 6. 设置返回 getHomeUrl |
| | | * 7. 设置标题 getTitle |
| | | * 8. 设置新增时就默认的值 getOthersValues |
| | | * 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']) { |
| | | /* 不良代码组 */ |
| | | case 'BAS_DEFECT_GRP': |
| | | data[0].onClick = DftGrpEdit.bind(null, args, params); //替换主页面编辑按钮方法变为跳转到高级页面 |
| | | break; |
| | | /* 不良代原因组 */ |
| | | case 'BAS_REASON_GRP': |
| | | data[0].onClick = rsnGrpEdit.bind(null, args, params); //替换主页面编辑按钮方法变为跳转到高级页面 |
| | | break; |
| | | case 'BAS_DEFECT': |
| | | data[1].popConfirm.confirm = DftGrpDel.bind(null, args, params); |
| | | break; |
| | | case 'BAS_REASON': |
| | | data[1].popConfirm.confirm = rsnGrpDel.bind(null, args, params); |
| | | break; |
| | | /* 包装规则 */ |
| | | case 'BAS_PKG_RULE': |
| | | data[0].onClick = pkgGrpEdit.bind(null, args, params); //替换主页面编辑按钮方法变为跳转到高级页面 |
| | | break; |
| | | case 'BAS_PKG_DTL': |
| | | data[1].popConfirm.confirm = custDel.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 {Fn} args |
| | | * @param {*} params |
| | | * @return {*} |
| | | */ |
| | | export function custDel(args: Fn[], params: {}) { |
| | | if (!isNullOrEmpty(params['data'])) { |
| | | var _data = params['data'].value.filter((item) => item['ID'] != params['record']['ID']); |
| | | params['data'].value = _data; |
| | | args[6]({ |
| | | dataSource: [], |
| | | }); |
| | | args[6]({ |
| | | dataSource: params['data'], |
| | | }); |
| | | args[1](); |
| | | } else { |
| | | DeleteEntity(params['record'], params['entityName']).then((action) => { |
| | | if (action.IsSuccessed) { |
| | | args[1](); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * @description: 明细表中编辑方法 |
| | | * @return {*} |
| | | */ |
| | | export function EditOperation(type: string, data: Ref<any[]>, d, u) { |
| | | switch (type) { |
| | | case 'BAS_PKG_DTL': |
| | | return pkgEditeOperation(data, d, u); |
| | | break; |
| | | case 'BAS_REASON': |
| | | return rsnEditeOperation(data, d, u); |
| | | case 'BAS_DEFECT': |
| | | return dftEditeOperation(data, d, u); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * @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: '新增不良代码组', |
| | | pCode: 'DFTG_CODE', |
| | | IsID: false, |
| | | }; |
| | | break; |
| | | case 'BAS_REASON_GRP': |
| | | data.action = 'go'; |
| | | data.url = 'BAS_REASON/High'; |
| | | data.params = { |
| | | CODE: '0', |
| | | ID: buildUUID(), |
| | | Name: 'BAS_REASON', |
| | | Title: '新增不良原因组', |
| | | pCode: 'RSNG_CODE', |
| | | IsID: false, |
| | | }; |
| | | break; |
| | | case 'BAS_PKG_RULE': |
| | | data.action = 'go'; |
| | | data.url = 'BAS_PKG_DTL/High'; |
| | | data.params = { |
| | | CODE: '0', |
| | | ID: buildUUID(), |
| | | Name: 'BAS_PKG_DTL', |
| | | Title: '新增包装规则', |
| | | pCode: 'PKG_RULE_ID', |
| | | IsID: true, |
| | | }; |
| | | break; |
| | | } |
| | | export function GetActionsData(params: {}, ...args) { |
| | | const data = [] as ActionItem[]; |
| | | return data; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * @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', |
| | | searchInfo: { TABLE_NAME: 'BAS_ITEM' }, |
| | | }); |
| | | break; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * @description: Select 自定义onChange方法 |
| | | * @param {any} e |
| | | * @param {string} fnName |
| | |
| | | if (!isNullOrEmpty(fnName)) { |
| | | switch (entityName) { |
| | | case 'BAS_REASON': |
| | | onChangeFns[fnName](e); |
| | | // onChangeFns[fnName](e); |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | case 'BIZ_MES_WO': |
| | | _formSchema = woformSchema; |
| | | break; |
| | | case 'BAS_DEFECT_BaseForm': |
| | | _formSchema = baseSchema; |
| | | break; |
| | | case 'BAS_DEFECT_Search': |
| | | _formSchema = searchSchema; |
| | | break; |
| | | case 'BAS_DEFECT_Crud': |
| | | _formSchema = crudSchema; |
| | | break; |
| | | case 'BAS_REASON_BaseForm': |
| | | _formSchema = rsnBaseSchema; |
| | | break; |
| | | case 'BAS_REASON_Search': |
| | | _formSchema = rsnSearchSchema; |
| | | break; |
| | | case 'BAS_REASON_Crud': |
| | | _formSchema = rsnCrudSchema; |
| | | break; |
| | | case 'BAS_PKG_DTL_BaseForm': |
| | | _formSchema = pkgBaseSchema; |
| | | break; |
| | | case 'BAS_PKG_DTL_Search': |
| | | _formSchema = pkgSearchSchema; |
| | | break; |
| | | case 'BAS_PKG_DTL_Crud': |
| | | _formSchema = pkgCrudSchema; |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | |
| | | } |
| | | |
| | | /** |
| | | * @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('BAS_DEFECT_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: '不良代码组信息', |
| | | 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; |
| | | case 'BAS_REASON': |
| | | data = rsnBaseColumn; |
| | | args[0].value['BaseForm'] = getFormSchema('BAS_REASON_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: '不良原因组信息', |
| | | entityName: 'BAS_REASON_GRP', |
| | | }, |
| | | ]; |
| | | break; |
| | | case 'BAS_PKG_DTL': |
| | | data = pkgBaseColumn; |
| | | args[0].value['BaseForm'] = getFormSchema('BAS_PKG_DTL_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: '包装信息', |
| | | entityName: 'BAS_PKG_RULE', |
| | | }, |
| | | ]; |
| | | break; |
| | | default: |
| | | break; |
| | | export async function initRoute(lf, rotId, routeData, currlf, rotType) { |
| | | currlf.value = unref(lf); |
| | | //通过工艺路线ID获取图形数据,并渲染 |
| | | const _data = rotType == 'Wo' ? await getWoRouteData(rotId) : 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的url |
| | | * @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; |
| | | case 'BAS_REASON': |
| | | url = `/BAS_REASON_GRP/LC/${encodeURI(JSON.stringify({ ID: 'BAS_REASON_GRP', colSlots: [], crudColSlots: [] }))}`; |
| | | break; |
| | | case 'BAS_PKG_DTL': |
| | | url = `/BAS_PKG_RULE/LC/${encodeURI(JSON.stringify({ ID: 'BAS_PKG_RULE', colSlots: [], crudColSlots: [] }))}`; |
| | | break; |
| | | case 'BAS_LABEL_VAR': |
| | | url = `/BAS_LABEL_TEMP/LC/${encodeURI(JSON.stringify({ ID: 'BAS_LABEL_TEMP', colSlots: [], crudColSlots: [] }))}`; |
| | | break; |
| | | case 'ProdRouteBinding': |
| | | url = `/MaterialInfo`; |
| | | 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; |
| | | let _data2: any[] = cloneDeep(data.value[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: '不良代码组管理', |
| | | pageContent: '这里可以添加和修改不良代码组和不良代码。', |
| | | baseTableTitle: '不良代码管理', |
| | | export function custDel(args: Fn[], params: {}) { |
| | | const name = params['name']; |
| | | const useTables = args[1]; |
| | | if (!isNullOrEmpty(params['data'])) { |
| | | const _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(); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | |
| | | /* 高级表单公用方法 *********************************End */ |
| | | |
| | | /** |
| | | * @description: 获取权限按钮列表 |
| | | * @param {*} params |
| | | * @return {*} |
| | | */ |
| | | export function GenerateActionButton(params: any, buttons: Ref<[]>, openDrawer: Fn, reload: Fn) { |
| | | const 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 {Fn} fn |
| | | * @param {*} params |
| | | * @return {*} |
| | | */ |
| | | export 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: 跳转并根据传入的参数通过session传入 |
| | | * @param {string} path 跳转地址 |
| | | * @return {*} |
| | | */ |
| | | export function goByParams(path: string, params: {}, go) { |
| | | if (path.split('/').length > 2 && path.split('/')[2] == 'LC') { |
| | | getEntity({ |
| | | sqlcmd: `ASSEMBLY_NAME ='${path.split('/')[1]}'`, |
| | | entityName: 'SYS_LOW_CODE', |
| | | order: '', |
| | | }).then((data) => { |
| | | const searchForms = JSON.parse(data.Data.Items[0].SEARCH_FORM_JSON); |
| | | const colSlots = [] as string[]; |
| | | for (const i in searchForms) { |
| | | if (!isNullOrUnDef(searchForms[i]['colSlot'])) { |
| | | colSlots.push('form-' + searchForms[i]['colSlot']); |
| | | } |
| | | } |
| | | |
| | | const _cruds = JSON.parse(data.Data.Items[0].FORM_JSON); |
| | | const crudColSlots = [] as string[]; |
| | | for (const i in _cruds) { |
| | | if (!isNullOrUnDef(_cruds[i]['colSlot'])) { |
| | | crudColSlots.push(_cruds[i]['colSlot']); |
| | | } |
| | | } |
| | | const id = { |
| | | ID: path.split('/')[1], |
| | | colSlots: colSlots, |
| | | crudColSlots: crudColSlots, |
| | | sName: `${path.split('/')[1]}_update`, |
| | | }; |
| | | break; |
| | | case 'BAS_REASON': |
| | | title = { |
| | | pageTitle: '不良原因组管理', |
| | | pageContent: '这里可以添加和修改不良原因组和不良代码。', |
| | | baseTableTitle: '不良原因管理', |
| | | }; |
| | | break; |
| | | case 'BAS_PKG_DTL': |
| | | title = { |
| | | pageTitle: '包装规则管理', |
| | | pageContent: '这里可以添加和修改包装规则和包装信息。', |
| | | baseTableTitle: '包装信息管理', |
| | | }; |
| | | break; |
| | | default: |
| | | break; |
| | | // 将对象转换为JSON字符串并保存到sessionStorage |
| | | sessionStorage.removeItem(`${id.sName}_params`); |
| | | sessionStorage.setItem(`${id.sName}_params`, encodeURI(JSON.stringify({ params: params }))); |
| | | go(`/${path.split('/')[1]}/${path.split('/')[2]}/${encodeURI(JSON.stringify(id))}`); |
| | | }); |
| | | } else if ( |
| | | (path.split('/').length > 2 && path.split('/')[2] == 'High') || |
| | | path.split('/')[2] == 'CP' |
| | | ) { |
| | | const id = { sName: `${path.split('/')[1]}_update`, Name: path.split('/')[1], params: params }; |
| | | // 将对象转换为JSON字符串并保存到sessionStorage |
| | | sessionStorage.removeItem(`${id.sName}_params`); |
| | | sessionStorage.setItem(`${id.sName}_params`, encodeURI(JSON.stringify(id))); |
| | | go( |
| | | `/${path.split('/')[1]}/${path.split('/')[2]}/${encodeURI(JSON.stringify({ sName: id.sName, Name: id.Name }))}`, |
| | | ); |
| | | } else { |
| | | const id = { sName: `${path.split('/')[1]}_update`, params: params }; |
| | | // 将对象转换为JSON字符串并保存到sessionStorage |
| | | sessionStorage.removeItem(`${id.sName}_params`); |
| | | sessionStorage.setItem(`${id.sName}_params`, encodeURI(JSON.stringify(id))); |
| | | go(`${path}/${encodeURI(JSON.stringify({ sName: id.sName }))}`); |
| | | } |
| | | return title; |
| | | } |
| | | |
| | | /** |
| | | * @description: 获取需要新增时就默认的值,一般是主表信息 |
| | | * @param {string} type |
| | | * @param {string} val |
| | | * @description: 调用api前,参数整理 |
| | | * @param {*} t |
| | | * @return {*} |
| | | */ |
| | | export function getOthersValues(type: string, val: string, id: string) { |
| | | let Values = {}; |
| | | switch (type) { |
| | | case 'BAS_DEFECT': |
| | | Values = { DFTG_CODE: val }; |
| | | break; |
| | | case 'BAS_REASON': |
| | | Values = { RSNG_CODE: val }; |
| | | break; |
| | | case 'BAS_PKG_DTL': |
| | | Values = { PKG_RULE_ID: id }; |
| | | break; |
| | | default: |
| | | break; |
| | | export function SearchInfoFn(param: any, name: RouteRecordName | null | undefined, ByOrg: boolean) { |
| | | const useQuery = useQueryStore(); |
| | | if ( |
| | | !isNullOrUnDef(useQuery.getCurSearchInfo) && |
| | | useQuery.getCurSearchInfo.some((q) => q.name == name) |
| | | ) { |
| | | const curSearchInfo = useQuery.getCurSearchInfo.filter((q) => q.name == name); |
| | | const Keys = Object.getOwnPropertyNames(curSearchInfo[0].searchInfo); |
| | | for (const k in Keys) { |
| | | if (Keys[k] != 'page' && Keys[k] != 'pageSize') { |
| | | param[Keys[k]] = curSearchInfo[0].searchInfo[Keys[k]]; |
| | | } |
| | | } |
| | | useQuery.setCurSearchInfo({ name: name, searchInfo: param }); |
| | | } |
| | | return Values; |
| | | if (isNullOrEmpty(param.option) && ByOrg) { |
| | | param.option = { |
| | | //根据据点查询,必需带这个参数 |
| | | UserId: useUserStore().getUserInfo.userId, |
| | | ByOrg: true, |
| | | CurOrg: useUserStore().getUserInfo.orgCode, |
| | | }; |
| | | } |
| | | return param; |
| | | } |
| | | |
| | | /** |
| | | * @description: 获取树形数据 |
| | | * @param {string} type |
| | | * @description: 请求之后对返回值进行处理 |
| | | * @param {*} t |
| | | * @return {*} |
| | | */ |
| | | export async function fetchTreeData(type: string, itemCode: string) { |
| | | let data = { title: '', treeData: [] as any[], fieldNames: {} }; |
| | | switch (type) { |
| | | case 'ProdRouteBinding': |
| | | let prodTreeData = await GetRoutePTree(itemCode); |
| | | data.treeData = convertToTree(prodTreeData, 'pid', 'id', 'root'); |
| | | data.title = '工艺路线'; |
| | | data.fieldNames = { key: 'id', title: 'name' }; |
| | | break; |
| | | case 'BAS_PKG_DTL': |
| | | break; |
| | | default: |
| | | break; |
| | | export function afterFetchFn(t: any, name: RouteRecordName | null | undefined, f) { |
| | | const useQuery = useQueryStore(); |
| | | if ( |
| | | !isNullOrUnDef(useQuery.getCurSearchInfo) && |
| | | useQuery.getCurSearchInfo.some((q) => q.name == name) |
| | | ) { |
| | | const curSearchInfo = useQuery.getCurSearchInfo.filter((q) => q.name == name); |
| | | f.setFieldsValue(curSearchInfo[0].searchInfo); |
| | | } |
| | | return data; |
| | | } |
| | | |
| | | /** |
| | | * @description: 根据type获取图标 |
| | | * @param {Recordable} params |
| | | * @param {string} type |
| | | * @return {*} |
| | | */ |
| | | export function createIconByType(params: Recordable<any>, type: string) { |
| | | let icon = ''; |
| | | switch (type) { |
| | | case 'ProdRouteBinding': |
| | | icon = prodRouteCreateIcon(params); |
| | | break; |
| | | } |
| | | return icon; |
| | | } |