| | |
| | | * @LastEditTime: 2024-06-14 09:08:11 |
| | | */ |
| | | |
| | | import { |
| | | dftGrpOpenSelectItem, |
| | | dftGrpGetSelectSuccess, |
| | | dftGrpactionColumn, |
| | | baseSchema, |
| | | searchSchema, |
| | | defectBaseColumn, |
| | | crudSchema, |
| | | dftEditeOperation, |
| | | } from './normal/basDefectGrp'; |
| | | import { |
| | | onChangeFns, |
| | | rsGrpGetSelectSuccess, |
| | | rsGrpOpenSelectItem, |
| | | rsnBaseSchema, |
| | | rsnCrudSchema, |
| | | rsnSearchSchema, |
| | | rsnBaseColumn, |
| | | rsnEditeOperation, |
| | | } from './normal/basReasonGrp'; |
| | | import { DeleteEntity, convertToTree, getEntity } from '/@/api/tigerapi/system'; |
| | | import { ActionItem, BasicColumn, FormSchema } 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 { |
| | | labelGetSelectSuccess, |
| | | labelOpenSelectItem, |
| | | } from './detail/basLabelVar'; |
| | | import { buildUUID } from '/@/utils/uuid'; |
| | | import { Ref, h } from 'vue'; |
| | | import { |
| | | pkgBaseColumn, |
| | | pkgBaseSchema, |
| | | pkgCrudSchema, |
| | | pkgEditeOperation, |
| | | pkgSearchSchema, |
| | | } from './basPkgrule'; |
| | | import { GetRoutePTree } from '/@/api/tigerapi/mes/router'; |
| | | |
| | | 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. 在菜单管理新建一个高级页面。 |
| | |
| | | */ |
| | | export function GetActionsData(params: {}, ...args) { |
| | | let data = [] as ActionItem[]; |
| | | return data; |
| | | } |
| | | |
| | | /** |
| | | * @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; |
| | | } |
| | | return data; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | /** |
| | | * @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; |
| | | } |
| | | return _formSchema; |
| | | } |
| | | |
| | | /** |
| | | * @description: 获取表格列 |
| | | * @param {string} entityName |
| | | * @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; |
| | | } |
| | | return data; |
| | | } |
| | | |
| | | /** |
| | | * @description: 获取goback的url |
| | | * @param {string} type |
| | | * @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 = `/V_BAS_PROD/LC/${encodeURI(JSON.stringify({ ID: 'V_BAS_PROD', colSlots: [], crudColSlots: [] }))}`; |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | return url; |
| | | } |
| | | |
| | | /** |
| | |
| | | break; |
| | | } |
| | | return title; |
| | | } |
| | | |
| | | /** |
| | | * @description: 获取需要新增时就默认的值,一般是主表信息 |
| | | * @param {string} type |
| | | * @param {string} val |
| | | * @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; |
| | | } |
| | | return Values; |
| | | } |
| | | |
| | | /** |
| | | * @description: 获取树形数据 |
| | | * @param {string} type |
| | | * @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; |
| | | } |
| | | return data; |
| | | } |