| | |
| | | */ |
| | | |
| | | 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 { woCustFn, woformSchema } from '/@/views/components/bizMesWo'; |
| | | import { useModal } from '/@/components/Modal'; |
| | | import { |
| | | goDetail, |
| | | labelActionItem, |
| | | labelGetSelectSuccess, |
| | | labelOpenSelectItem, |
| | | } from './detail/basLabelVar'; |
| | | 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'; |
| | | |
| | | const { t } = useI18n(); |
| | | |
| | | /** |
| | | * @description: 低代码页面获取操作字段结构Json,如增加按钮及方法 |
| | | * 攻略: |
| | |
| | | * @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) { |
| | | let data = [] as ActionItem[]; |
| | | return data; |
| | | } |
| | | |
| | |
| | | break; |
| | | } |
| | | 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: 获取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 = `/MaterialInfo`; |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | return url; |
| | | } |
| | | |
| | | /** |
| | | * @description: 获取标题信息 |
| | | * @param {string} type |
| | | * @return {*} |
| | |
| | | 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; |
| | | } |
| | | |
| | | /** |
| | | * @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; |
| | | } |