| | |
| | | * @version: |
| | | * @Date: 2024-06-19 20:34:27 |
| | | * @LastEditors: Ben Lin |
| | | * @LastEditTime: 2024-07-24 00:05:00 |
| | | * @LastEditTime: 2024-07-24 20:03:25 |
| | | */ |
| | | |
| | | import { Ref, h, ref, render, unref } from 'vue'; |
| | | import { DeleteWoRoute, GetRoutePTree, GetWoPTree, RouteToCust, RouteToProd, SP_MES_PROD2WO, SP_MES_WO2CUST } from '/@/api/tigerapi/mes/router'; |
| | | import { |
| | | DeleteWoRoute, |
| | | GetRoutePTree, |
| | | GetWoPTree, |
| | | RouteToCust, |
| | | RouteToProd, |
| | | SP_MES_PROD2WO, |
| | | SP_MES_WO2CUST, |
| | | } from '/@/api/tigerapi/mes/router'; |
| | | import { GetEnum, SaveEntity, convertToTree, getEntity } from '/@/api/tigerapi/system'; |
| | | import { useLocale } from '/@/locales/useLocale'; |
| | | import { isNullOrEmpty, isNullOrUnDef } from '/@/utils/is'; |
| | |
| | | import { useUserStore } from '/@/store/modules/user'; |
| | | import { EventDataNode } from 'ant-design-vue/lib/tree'; |
| | | import { ContextMenuItem } from '/@/components/TigerTree'; |
| | | import { UpdateWoStatus } from '/@/api/tigerapi/mes/wo'; |
| | | |
| | | const { t } = useI18n(); |
| | | const { createErrorModal } = useMessage(); |
| | |
| | | */ |
| | | fetchTreeData: async (type: string, wo: string) => { |
| | | let data = { title: '', treeData: [] as any[], fieldNames: {} }; |
| | | let prodTreeData = await GetWoPTree({wo: wo}); |
| | | let prodTreeData = await GetWoPTree({ wo: wo }); |
| | | // let uniqueArr = prodTreeData.reduce((acc, current) => { |
| | | // if (!acc.some((x) => x.pid == current.pid && x.id == current.id && x.seq == current.seq && x.type == current.type)) { |
| | | // acc.push(current); |
| | |
| | | // return acc; |
| | | // }, [] as V_MES_ROUTE_PTREE[]); |
| | | data.treeData = convertToTree(prodTreeData, 'pid', 'tid', 'root'); |
| | | if(data.treeData.length == 0){ |
| | | if (data.treeData.length == 0) { |
| | | data.treeData.push({ |
| | | pid: 'root', |
| | | tid: '', |
| | |
| | | wo: wo, |
| | | prod: '', |
| | | name: wo, |
| | | type: 'WorkOrder' |
| | | type: 'WorkOrder', |
| | | }); |
| | | } |
| | | data.title = '工单工艺路线'; |
| | |
| | | }); |
| | | return; |
| | | } |
| | | let codes = d.values.id.split(','); |
| | | var i; |
| | | for (i = 0; i < codes.length; i++) { |
| | | if (d.which == 'addRoute') { |
| | | SP_MES_PROD2WO({ rotId: codes[i], wo: args[1]['CODE'] }); |
| | | /* 更新工单状态并生成工单的工艺路线 */ |
| | | UpdateWoStatus({ |
| | | UserId: useUserStore().getUserInfo.userId as string, |
| | | WorkOrder: args[1]['CODE'], |
| | | Status: -1, |
| | | RouteStatus: 1, |
| | | }).then((action) => { |
| | | if (action.IsSuccessed) { |
| | | SP_MES_PROD2WO({ rotId: d.values.id, wo: args[1]['CODE'] }).then((action) => { |
| | | if (action.IsSuccessed) { |
| | | args[2](); |
| | | } else { |
| | | UpdateWoStatus({ |
| | | UserId: useUserStore().getUserInfo.userId as string, |
| | | WorkOrder: args[1]['CODE'], |
| | | Status: -1, |
| | | RouteStatus: 0, |
| | | }); |
| | | createErrorModal({ |
| | | title: t('sys.api.errorTip'), |
| | | content: t(action.LocaleMsg), |
| | | }); |
| | | } |
| | | }); |
| | | } else { |
| | | createErrorModal({ |
| | | title: t('sys.api.errorTip'), |
| | | content: t(action.LocaleMsg), |
| | | }); |
| | | } |
| | | } |
| | | |
| | | args[2](); |
| | | }); |
| | | break; |
| | | case 'addCustomer': |
| | | if (isNullOrEmpty(args[1]['CODE'])) { |
| | |
| | | }); |
| | | return; |
| | | } |
| | | SP_MES_WO2CUST({ wo: args[1]['CODE']}); |
| | | SP_MES_WO2CUST({ wo: args[1]['CODE'] }); |
| | | |
| | | args[2](); |
| | | break; |
| | |
| | | }); |
| | | return; |
| | | } |
| | | SP_MES_WO2CUST({ wo: args[2][0]['wo']}); |
| | | SP_MES_WO2CUST({ wo: args[2][0]['wo'] }); |
| | | break; |
| | | case 'editRoute': |
| | | args[1](true, { rotId: args[2][0].id, slotName: '' }); |
| | | args[1](true, { rotId: args[2][0].code, slotName: '' }); |
| | | break; |
| | | } |
| | | }, |
| | |
| | | * @description: 获取右键菜单列表 |
| | | * @param {EventDataNode} node |
| | | * @return {*} |
| | | */ |
| | | */ |
| | | GetRightMenuList: (node: EventDataNode, ...args): ContextMenuItem[] => { |
| | | const emit = args[0]; |
| | | const menu = [ |
| | |
| | | label: '删除', |
| | | handler: () => { |
| | | console.log('点击了删除', node); |
| | | DeleteWoRoute({rotId:'',rotCode: node.code, wo: node.wo}).then((action) => { |
| | | if(action.IsSuccessed){ |
| | | emit('deletenode', node); |
| | | }else{ |
| | | createErrorModal({ |
| | | title: t('sys.api.errorTip'), |
| | | content: t(action.LocaleMsg), |
| | | }); |
| | | } |
| | | DeleteWoRoute({ rotId: '', rotCode: node.code, wo: node.wo }).then((action) => { |
| | | if (action.IsSuccessed) { |
| | | emit('deletenode', node); |
| | | } else { |
| | | createErrorModal({ |
| | | title: t('sys.api.errorTip'), |
| | | content: t(action.LocaleMsg), |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | icon: 'bx:bxs-folder-open', |
| | | }, |
| | | ]; |
| | | return node.type == 'Route'? menu: []; |
| | | return node.type == 'Route' ? menu : []; |
| | | }, |
| | | }; |
| | | |