| | |
| | | * a base page that does not have permission requirements |
| | | * all roles can be accessed |
| | | */ |
| | | // 公用模块 |
| | | export const commonRoutes = [ |
| | | /* |
| | | * 看板部分路由 |
| | |
| | | } |
| | | // { path: '*', redirect: '/404', hidden: true } |
| | | ] |
| | | export const asyncRoutes = [ |
| | | // 上云模块 |
| | | export const asyncRoutesCloud = [ |
| | | // 1.系统管理(基础设置类) |
| | | { |
| | | path: '/systemSetting', |
| | |
| | | // } |
| | | |
| | | ] |
| | | // 未上云模块 |
| | | export const asyncRoutes = [ |
| | | // { |
| | | // path: '/gtt', |
| | | // component: Layout, |
| | | // redirect: '/gtt/back', |
| | | // name: '基础设置', |
| | | // code: '1001', |
| | | // meta: { code: '1001', title: '基础设置', icon: 'tree' }, |
| | | // alwaysShow: true, // 当children只有一个时,也显示父菜单 |
| | | // children: [{ |
| | | // path: 'back', |
| | | // name: 'YYQDCancel', |
| | | // code: '1011', |
| | | // component: () => import('@/views/gantt_back/gantt_back'), |
| | | // meta: { code: '1011', title: '用户清单', icon: '', keepAlive: true } |
| | | // }, { |
| | | // path: 'zdpc2', |
| | | // name: 'YYQDCancel', |
| | | // code: '1012', |
| | | // component: () => import('@/views/gantt_back/zdpc2'), |
| | | // meta: { code: '1012', title: '自动排程2', icon: '', keepAlive: true } |
| | | // }] |
| | | // }, |
| | | { |
| | | path: '/basicSettings', |
| | | component: Layout, |
| | | redirect: '/basicSettings/organizationList', |
| | | name: '基础设置', |
| | | code: '1001', |
| | | meta: { code: '1001', title: '基础设置', icon: 'tree2' }, |
| | | alwaysShow: true, // 当children只有一个时,也显示父菜单 |
| | | children: [ |
| | | { |
| | | path: 'organizationList', |
| | | name: 'organizationListCancel', |
| | | code: '1010', |
| | | component: () => import('@/views/basicSettings/organizationList'), |
| | | meta: { code: '1010', title: '组织架构', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'userList', |
| | | name: 'userListCancel', |
| | | code: '1011', |
| | | component: () => import('@/views/basicSettings/userList'), |
| | | meta: { code: '1011', title: '用户清单', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'roleList', |
| | | name: 'roleListCancel', |
| | | code: '1012', |
| | | component: () => import('@/views/basicSettings/roleList'), |
| | | meta: { code: '1012', title: '角色清单', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'contactUnitList', |
| | | name: 'contactUnitListCancel', |
| | | code: '1013', |
| | | component: () => import('@/views/basicSettings/contactUnitList'), |
| | | meta: { code: '1013', title: '往来单位', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'installationLampSetting', |
| | | name: 'installationLampSettingCancel', |
| | | code: '1014', |
| | | component: () => import('@/views/basicSettings/installationLampSetting'), |
| | | meta: { code: '1014', title: '安灯设置', icon: '', keepAlive: true } |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: '/deviceManager', |
| | | component: Layout, |
| | | redirect: '/deviceManager/deviceType', |
| | | name: '设备管理', |
| | | code: '1002', |
| | | meta: { code: '1002', title: '设备管理', icon: 'example' }, |
| | | alwaysShow: true, |
| | | children: [ |
| | | { |
| | | path: 'deviceType', |
| | | name: 'deviceTypeCancel', |
| | | code: '1020', |
| | | component: () => import('@/views/deviceManager/deviceType'), |
| | | meta: { code: '1020', title: '设备类型', icon: '', keepAlive: true } |
| | | }, |
| | | { |
| | | path: 'deviceGroup', |
| | | name: 'deviceGroupCancel', |
| | | code: '1021', |
| | | component: () => import('@/views/deviceManager/deviceGroup'), |
| | | meta: { code: '1021', title: '设备组', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'deviceList', |
| | | name: 'deviceListCancel', |
| | | code: '1022', |
| | | component: () => import('@/views/deviceManager/deviceList'), |
| | | meta: { code: '1022', title: '设备清单', icon: '', keepAlive: true } |
| | | }, |
| | | { |
| | | path: 'checkStandard', |
| | | name: 'checkStandardCancel', |
| | | code: '1023', |
| | | component: () => import('@/views/deviceManager/checkStandard'), |
| | | meta: { code: '1023', title: '点检标准', icon: '', keepAlive: true } |
| | | }, |
| | | { |
| | | path: 'checkPosition', |
| | | name: 'checkPositionCancel', |
| | | code: '1024', |
| | | component: () => import('@/views/deviceManager/checkPosition'), |
| | | meta: { code: '1024', title: '点检部位', icon: '', keepAlive: true } |
| | | }, |
| | | { |
| | | path: 'maintainStandard', |
| | | name: 'maintainStandardCancel', |
| | | code: '1025', |
| | | component: () => import('@/views/deviceManager/maintainStandard'), |
| | | meta: { code: '1025', title: '保养标准', icon: '', keepAlive: true } |
| | | }, |
| | | { |
| | | path: 'maintainPosition', |
| | | name: 'maintainPositionCancel', |
| | | code: '1026', |
| | | component: () => import('@/views/deviceManager/maintainPosition'), |
| | | meta: { code: '1026', title: '保养部位', icon: '', keepAlive: true } |
| | | }, |
| | | { |
| | | path: 'checkRecord', |
| | | name: 'checkRecordCancel', |
| | | code: '1027', |
| | | component: () => import('@/views/deviceManager/checkRecord'), |
| | | meta: { code: '1027', title: '点检记录', icon: '', keepAlive: true } |
| | | }, |
| | | { |
| | | path: 'maintainRecord', |
| | | name: 'maintainRecordCancel', |
| | | code: '1028', |
| | | component: () => import('@/views/deviceManager/maintainRecord'), |
| | | meta: { code: '1028', title: '保养记录', icon: '', keepAlive: true } |
| | | }, |
| | | { |
| | | path: 'repairRecord', |
| | | code: '1029', |
| | | name: 'repairRecordCancel', |
| | | component: () => import('@/views/deviceManager/repairRecord'), |
| | | meta: { code: '1029', title: '维修记录', icon: '', keepAlive: true } |
| | | }, |
| | | { |
| | | path: 'repairRequestRecord', |
| | | name: 'repairRequestRecordCancel', |
| | | code: '1019', |
| | | component: () => import('@/views/deviceManager/repairRequestRecord'), |
| | | meta: { code: '1019', title: '设备申请维修记录', icon: '', keepAlive: true } |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: '/gzgl', |
| | | component: Layout, |
| | | redirect: '/gzgl/gzlx', |
| | | name: '工装管理', |
| | | code: '1003', |
| | | meta: { code: '1003', title: '工装管理', icon: 'component' }, |
| | | alwaysShow: true, |
| | | children: [ |
| | | { |
| | | path: 'gzlx', |
| | | name: 'GZLXCancel', |
| | | code: '1030', |
| | | component: () => import('@/views/gzgl/gzlx'), |
| | | meta: { code: '1030', title: '工装类型', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'sjxj', |
| | | name: 'SJXJCancel', |
| | | code: '1039', |
| | | component: () => import('@/views/gzgl/sjxj'), |
| | | meta: { code: '1039', title: '上机下机', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'ckrk', |
| | | name: 'CKRKCancel', |
| | | code: '1040', |
| | | component: () => import('@/views/gzgl/ckrk'), |
| | | meta: { code: '1040', title: '出库入库', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'gzqd', |
| | | name: 'GZQDCancel', |
| | | code: '1031', |
| | | component: () => import('@/views/gzgl/gzqd'), |
| | | meta: { code: '1031', title: '工装清单', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'djbz', |
| | | name: 'DJBZCancel', |
| | | code: '1032', |
| | | component: () => import('@/views/gzgl/djbz'), |
| | | meta: { code: '1032', title: '点检标准', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'djbw', |
| | | name: 'DJBWCancel', |
| | | code: '1033', |
| | | component: () => import('@/views/gzgl/djbw'), |
| | | meta: { code: '1033', title: '点检部位', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'bybz', |
| | | name: 'BYBZCancel', |
| | | code: '1034', |
| | | component: () => import('@/views/gzgl/bybz'), |
| | | meta: { code: '1034', title: '保养标准', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'bybw', |
| | | name: 'BYBWCancel', |
| | | code: '1035', |
| | | component: () => import('@/views/gzgl/bybw'), |
| | | meta: { code: '1035', title: '保养部位', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'djjl', |
| | | name: 'DJJLCancel', |
| | | code: '1036', |
| | | component: () => import('@/views/gzgl/djjl'), |
| | | meta: { code: '1036', title: '点检记录', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'byjl', |
| | | name: 'BYJLCancel', |
| | | code: '1037', |
| | | component: () => import('@/views/gzgl/byjl'), |
| | | meta: { code: '1037', title: '保养记录', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'gzwx', |
| | | name: 'GZWXCancel', |
| | | code: '1038', |
| | | component: () => import('@/views/gzgl/gzwx'), |
| | | meta: { code: '1038', title: '工装维修', icon: '', keepAlive: true } |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: '/materialManager', |
| | | component: Layout, |
| | | redirect: '/materialManager/storehouseDefine', |
| | | name: '物料管理', |
| | | code: '1004', |
| | | meta: { code: '1004', title: '物料管理', icon: 'table' }, |
| | | alwaysShow: true, |
| | | children: [ |
| | | { |
| | | path: 'storehouseDefine', |
| | | name: 'storehouseDefineCancel', |
| | | code: '1050', |
| | | component: () => import('@/views/materialManager/storehouseDefine'), |
| | | meta: { code: '1050', title: '仓库定义', icon: '', keepAlive: true } |
| | | }, |
| | | { |
| | | path: 'locationDefine', |
| | | name: 'locationDefineCancel', |
| | | code: '1051', |
| | | component: () => import('@/views/materialManager/locationDefine'), |
| | | meta: { code: '1051', title: '库位定义', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'containerType', |
| | | name: 'containerTypeCancel', |
| | | code: '1052', |
| | | component: () => import('@/views/materialManager/containerType'), |
| | | meta: { code: '1052', title: '容器类型', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'containerList', |
| | | name: 'containerListCancel', |
| | | code: '1053', |
| | | component: () => import('@/views/materialManager/containerList'), |
| | | meta: { code: '1053', title: '容器清单', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'inOutboundRecord', |
| | | name: 'inOutboundRecordCancel', |
| | | code: '1054', |
| | | component: () => import('@/views/materialManager/inOutboundRecord'), |
| | | meta: { code: '1054', title: '出入库记录', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'inventoryQuery', |
| | | name: 'inventoryQueryCancel', |
| | | code: '1055', |
| | | component: () => import('@/views/materialManager/inventoryQuery'), |
| | | meta: { code: '1055', title: '库存查询', icon: '', keepAlive: true } |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: '/makeModel', |
| | | component: Layout, |
| | | redirect: '/makeModel/InventoryList', |
| | | name: '制造模型', |
| | | code: '1005', |
| | | meta: { code: '1005', title: '制造模型', icon: 'icu' }, |
| | | alwaysShow: true, |
| | | children: [ |
| | | { |
| | | path: 'materialType', |
| | | name: 'materialTypeCancel', |
| | | code: '1060', |
| | | component: () => import('@/views/makeModel/materialType'), |
| | | meta: { code: '1060', title: '物料类型', icon: '', keepAlive: true } |
| | | }, |
| | | { |
| | | path: 'InventoryList', |
| | | name: 'InventoryListCancel', |
| | | code: '1061', |
| | | component: () => import('@/views/makeModel/InventoryList'), |
| | | meta: { code: '1061', title: '存货档案', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'materialList', |
| | | name: 'materialListCancel', |
| | | code: '1062', |
| | | component: () => import('@/views/makeModel/materialList'), |
| | | meta: { code: '1062', title: '物料清单', icon: '', keepAlive: true } |
| | | }, |
| | | { |
| | | path: 'processRoute', |
| | | name: 'processRouteCancel', |
| | | code: '1063', |
| | | component: () => import('@/views/makeModel/processRoute'), |
| | | meta: { code: '1063', title: '工艺路线', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'processDefine', |
| | | name: 'processDefineCancel', |
| | | code: '1064', |
| | | component: () => import('@/views/makeModel/processDefine'), |
| | | meta: { code: '1064', title: '工序定义', icon: '', keepAlive: true } |
| | | }, |
| | | { |
| | | path: 'meterPrice', |
| | | name: 'meterPriceCancel', |
| | | code: '1065', |
| | | component: () => import('@/views/makeModel/meterPrice'), |
| | | meta: { code: '1065', title: '节拍工价', icon: '', keepAlive: true } |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: '/produceManager', |
| | | component: Layout, |
| | | redirect: '/produceManager/produceOrder', |
| | | name: '生产管理', |
| | | code: '1006', |
| | | meta: { code: '1006', title: '生产管理', icon: 'production' }, |
| | | alwaysShow: true, |
| | | children: [ |
| | | { |
| | | path: 'produceOrder', |
| | | name: 'produceOrderCancel', |
| | | code: '1070', |
| | | component: () => import('@/views/produceManager/produceOrder'), |
| | | meta: { code: '1070', title: 'ERP生产订单', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'workOrder', |
| | | name: 'workOrderCancel', |
| | | code: '1071', |
| | | component: () => import('@/views/produceManager/workOrder'), |
| | | meta: { code: '1071', title: 'MES工单', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'workOrderDispatch', |
| | | name: 'workOrderDispatchCancel', |
| | | code: '1072', |
| | | component: () => import('@/views/produceManager/workOrderDispatch'), |
| | | meta: { code: '1072', title: '工单派工', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'produceStartOrder', |
| | | name: 'produceStartOrderCancel', |
| | | code: '1073', |
| | | component: () => import('@/views/produceManager/produceStartOrder'), |
| | | meta: { code: '1073', title: '生产开报工', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'workOrderBatchClose', |
| | | name: 'workOrderBatchCloseCancel', |
| | | code: '1074', |
| | | component: () => import('@/views/produceManager/workOrderBatchClose'), |
| | | meta: { code: '1074', title: 'MES工单批量关闭', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'capacityPlanning', |
| | | name: 'capacityPlanningCancel', |
| | | code: '1075', |
| | | component: () => import('@/views/produceManager/capacityPlanning'), |
| | | meta: { code: '1075', title: '产能规划', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'AutoScheduling', |
| | | name: 'AutoSchedulingCancel', |
| | | code: '1076', |
| | | component: () => import('@/views/produceManager/AutoScheduling'), |
| | | meta: { code: '1076', title: '自动排程', icon: '', keepAlive: true } |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: '/qualityManager', |
| | | component: Layout, |
| | | redirect: '/qualityManager/defectDefine', |
| | | name: '质量管理', |
| | | code: '1007', |
| | | meta: { code: '1007', title: '质量管理', icon: 'quality' }, |
| | | alwaysShow: true, |
| | | children: [ |
| | | { |
| | | path: 'qualityStandard', |
| | | name: 'qualityStandardCancel', |
| | | code: '1080', |
| | | component: () => import('@/views/qualityManager/qualityStandard'), |
| | | meta: { code: '1080', title: '质检标准', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'defectDefine', |
| | | name: 'defectDefineCancel', |
| | | code: '1081', |
| | | component: () => import('@/views/qualityManager/defectDefine'), |
| | | meta: { code: '1081', title: '缺陷定义', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'processCheck', |
| | | name: 'processCheckCancel', |
| | | code: '1082', |
| | | component: () => import('@/views/qualityManager/processCheck'), |
| | | meta: { code: '1082', title: '工序检验', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'logisticsCheck', |
| | | name: 'logisticsCheckCancel', |
| | | code: '1083', |
| | | component: () => import('@/views/qualityManager/logisticsCheck'), |
| | | meta: { code: '1083', title: '物流检验', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'defectStatistics', |
| | | name: 'defectStatisticsCancel', |
| | | code: '1084', |
| | | component: () => import('@/views/qualityManager/defectStatistics'), |
| | | meta: { code: '1084', title: '缺陷统计', icon: '', keepAlive: true } |
| | | }, |
| | | { |
| | | path: 'processCheckStandard', |
| | | name: 'processCheckStandardCancel', |
| | | code: '1085', |
| | | component: () => import('@/views/qualityManager/processCheckStandard'), |
| | | meta: { code: '1085', title: '工序检验标准', icon: '', keepAlive: true } |
| | | }, |
| | | { |
| | | path: 'processCheckItem', |
| | | name: 'processCheckItemCancel', |
| | | code: '1086', |
| | | component: () => import('@/views/qualityManager/processCheckItem'), |
| | | meta: { code: '1086', title: '工序检验项目', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'processCheckRecord', |
| | | name: 'processCheckRecordCancel', |
| | | code: '1087', |
| | | component: () => import('@/views/qualityManager/processCheckRecord'), |
| | | meta: { code: '1087', title: '工序检验记录', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'qualityPlaning', |
| | | name: 'ZJFACancel', |
| | | code: '1088', |
| | | component: () => import('@/views/qualityManager/qualityPlaning'), |
| | | meta: { code: '1088', title: '质检方案', icon: '', keepAlive: true } |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: '/reportManager', |
| | | component: Layout, |
| | | redirect: '/reportManager/groupSalaryList', |
| | | name: '报表管理', |
| | | code: '1008', |
| | | meta: { code: '1008', title: '报表管理', icon: 'bbgl' }, |
| | | alwaysShow: true, |
| | | children: [ |
| | | { |
| | | path: 'groupSalaryList', |
| | | name: 'groupSalaryListCancel', |
| | | code: '1090', |
| | | component: () => import('@/views/reportManager/groupSalaryList'), |
| | | meta: { code: '1090', title: '班组工资统计', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'personSalaryList', |
| | | name: 'personSalaryListCancel', |
| | | code: '1091', |
| | | component: () => import('@/views/reportManager/personSalaryList'), |
| | | meta: { code: '1091', title: '人员工资', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'subcontractingOperation', |
| | | name: 'subcontractingOperationCancel', |
| | | code: '1092', |
| | | component: () => import('@/views/reportManager/subcontractingOperation'), |
| | | meta: { code: '1092', title: '委外工序', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'defectDetailList', |
| | | name: 'defectDetailListCancel', |
| | | code: '1093', |
| | | component: () => import('@/views/reportManager/defectDetailList'), |
| | | meta: { code: '1093', title: '不良明细', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'abnormalQualityList', |
| | | name: 'abnormalQualityListCancel', |
| | | code: '1094', |
| | | component: () => import('@/views/reportManager/abnormalQualityList'), |
| | | meta: { code: '1094', title: '品质异常', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'repairDetailList', |
| | | name: 'repairDetailListCancel', |
| | | code: '1095', |
| | | component: () => import('@/views/reportManager/repairDetailList'), |
| | | meta: { code: '1095', title: '维修明细', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'installationLampList', |
| | | name: 'installationLampListCancel', |
| | | code: '1096', |
| | | component: () => import('@/views/reportManager/installationLampList'), |
| | | meta: { code: '1096', title: '安灯报表', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'logisticsCheck', |
| | | name: 'logisticsCheckCancel', |
| | | code: '1097', |
| | | component: () => import('@/views/reportManager/logisticsCheck'), |
| | | meta: { code: '1097', title: '物流检验报表', icon: '', keepAlive: true } |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: '/systemSettings', |
| | | component: Layout, |
| | | redirect: '/systemSettings/bmgz', |
| | | name: '系统设置', |
| | | code: '1009', |
| | | meta: { code: '1009', title: '系统设置', icon: 'xtsz' }, |
| | | alwaysShow: true, |
| | | children: [ |
| | | { |
| | | path: 'codingRules', |
| | | name: 'codingRulesCancel', |
| | | code: '1101', |
| | | component: () => import('@/views/systemSettings/codingRules'), |
| | | meta: { code: '1101', title: '编码规则', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'passwordEdit', |
| | | name: 'passwordEditCancel', |
| | | code: '1102', |
| | | component: () => import('@/views/systemSettings/passwordEdit'), |
| | | meta: { code: '1102', title: '密码修改', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'systemLog', |
| | | name: 'systemLogCancel', |
| | | code: '1103', |
| | | component: () => import('@/views/systemSettings/systemLog'), |
| | | meta: { code: '1103', title: '系统日志', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'sopUpload', |
| | | name: 'sopUploadCancel', |
| | | code: '1104', |
| | | component: () => import('@/views/systemSettings/sopUpload'), |
| | | meta: { code: '1104', title: 'SOP上传', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'shopNotice', |
| | | name: 'shopNoticeCancel', |
| | | code: '1105', |
| | | component: () => import('@/views/systemSettings/shopNotice'), |
| | | meta: { code: '1105', title: '车间公告', icon: '', keepAlive: true } |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: '/purchasesManager', |
| | | component: Layout, |
| | | redirect: '/purchasesManager/purchasesList', |
| | | name: '采购管理', |
| | | code: '1000', |
| | | meta: { code: '1000', title: '采购管理', icon: 'cggl' }, |
| | | alwaysShow: true, |
| | | children: [ |
| | | { |
| | | path: 'purchasesList', |
| | | name: 'CGDDCancel', |
| | | code: '1201', |
| | | component: () => import('@/views/purchasesManager/purchasesList'), |
| | | meta: { code: '1201', title: '采购订单', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'arrivalNoticeList', |
| | | name: 'arrivalNoticeListCancel', |
| | | code: '1202', |
| | | component: () => import('@/views/purchasesManager/arrivalNoticeList'), |
| | | meta: { code: '1202', title: '采购收货单', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'salesStatisticsList', |
| | | name: 'salesStatisticsCancel', |
| | | code: '1203', |
| | | component: () => import('@/views/purchasesManager/salesStatisticsList'), |
| | | meta: { code: '1203', title: '销售订单', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'goodsStatisticsList', |
| | | name: 'goodsStatisticsListCancel', |
| | | code: '1204', |
| | | component: () => import('@/views/purchasesManager/goodsStatisticsList'), |
| | | meta: { code: '1204', title: '销货单', icon: '', keepAlive: true } |
| | | }, { |
| | | path: 'InventoryLedgerList', |
| | | name: 'InventoryLedgerListCancel', |
| | | code: '1205', |
| | | component: () => import('@/views/purchasesManager/InventoryLedgerList'), |
| | | meta: { code: '1205', title: '库存台账', icon: '', keepAlive: true } |
| | | } |
| | | ] |
| | | } |
| | | ] |
| | | |
| | | const createRouter = () => new Router({ |
| | | // mode: 'history', // require service support |
| | |
| | | import { asyncRoutes, commonRoutes } from '@/router' |
| | | import { asyncRoutes, asyncRoutesCloud, commonRoutes } from '@/router' |
| | | import Layout from '@/layout' |
| | | import { getCookie } from '@/utils/auth' |
| | | |
| | |
| | | let newRoutes |
| | | if (getCookie('cloud')) { |
| | | const arr = menu.map(i => i.code) |
| | | newRoutes = asyncRoutes.filter(i => { |
| | | newRoutes = asyncRoutesCloud.filter(i => { |
| | | if (arr.includes(i.code)) { |
| | | return i |
| | | } |
| | |
| | | <el-form-item label="检验类型" style=" display: flex;"> |
| | | <!-- <el-input v-model="form.checktypecode" placeholder="请输入" style="width: 200px" />--> |
| | | |
| | | <el-select v-model="form.style" style="width: 200px" placeholder="请选择"> |
| | | <el-select v-model="form.checktypecode" style="width: 200px" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in checktypeArr" |
| | | :key="item.code" |
| | |
| | | fixed |
| | | label="序号" |
| | | /> |
| | | <!-- <el-table-column--> |
| | | <!-- prop="check_type"--> |
| | | <!-- label="检验类型"--> |
| | | <!-- width="160"--> |
| | | <!-- sortable="custom"--> |
| | | <!-- >--> |
| | | <!-- <template slot-scope="{row}">--> |
| | | <!-- <div>{{ checktypeArr.find(i=>i.code===row.check_type).name }}</div>--> |
| | | <!-- </template>--> |
| | | <!-- </el-table-column> --> |
| | | <el-table-column |
| | | prop="wo_code" |
| | | prop="check_typename" |
| | | label="检验类型" |
| | | width="160" |
| | | width="110" |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="sampmethod" |
| | | label="抽样方式" |
| | | width="110" |
| | | sortable="custom" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.sampmethod==='FIXED'">固时抽检</div> |
| | | <div v-if="row.sampmethod==='SCARE'">比例抽检</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="partcode" |
| | | label="物料编码" |
| | | width="160" |
| | | width="110" |
| | | show-tooltip-when-overflow |
| | | sortable="custom" |
| | | /> |
| | |
| | | /> |
| | | <el-table-column |
| | | prop="partspec" |
| | | label="产品规格" |
| | | label="规格型号" |
| | | width="120" |
| | | show-tooltip-when-overflow |
| | | sortable="custom" |
| | |
| | | width="110" |
| | | show-tooltip-when-overflow |
| | | sortable="custom" |
| | | /> |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.hbatchno">{{ row.hbatchno }}</div> |
| | | <div v-else>/</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="hbarcode" |
| | | label="条码编号" |
| | | width="110" |
| | | width="160" |
| | | show-tooltip-when-overflow |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="customer_name" |
| | | label="往来单位" |
| | | width="160" |
| | | min-width="160" |
| | | show-tooltip-when-overflow |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="plan_qty" |
| | | label="任务数量" |
| | | width="110" |
| | | show-tooltip-when-overflow |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="repair_qty" |
| | | label="维修数量" |
| | | width="110" |
| | | show-tooltip-when-overflow |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="bad_qty" |
| | | label="报废数量" |
| | | width="110" |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="defect_code" |
| | | label="缺陷代码" |
| | | width="110" |
| | | show-tooltip-when-overflow |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="defect_name" |
| | | label="批次条码" |
| | | width="110" |
| | | show-tooltip-when-overflow |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="lm_user" |
| | | label="检验人员" |
| | | prop="username" |
| | | label="质检人员" |
| | | width="110" |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="lm_date" |
| | | label="检验时间" |
| | | label="质检时间" |
| | | width="160" |
| | | sortable="custom" |
| | | /> |
| | | <el-table-column |
| | | prop="check_result" |
| | | label="检验结果" |
| | | width="110" |
| | | sortable="custom" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.check_result==='OK'" style="display: flex;align-items: center"> |
| | | <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" /> |
| | | 合格 |
| | | </div> |
| | | <div v-if="row.check_result==='NG'" style="display: flex;align-items: center"> |
| | | <i class="el-icon-error" style="color: red;margin-right: 2px" /> |
| | | 不合格 |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="检验明细" |
| | | width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div class="operationClass"> |
| | | <el-tooltip class="item" effect="dark" content="查看" placement="top"> |
| | | <i |
| | | class="el-icon-view" |
| | | :style="{color:$store.state.settings.theme}" |
| | | style="margin-right:15px;cursor: pointer;" |
| | | @click="edit('edit',row)" |
| | | /> |
| | | </el-tooltip> |
| | | <!-- <el-tooltip class="item" effect="dark" content="编辑" placement="top">--> |
| | | <!-- <i class="el-icon-edit-outline" @click="edit('edit',row)" />--> |
| | | <!-- </el-tooltip>--> |
| | | <!-- <el-tooltip v-del-tab-index class="item" effect="dark" content="删除" placement="top">--> |
| | | <!-- <i class="el-icon-delete" @click="del(row)" />--> |
| | | <!-- </el-tooltip>--> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | </el-table> |
| | | </div> |
| | |
| | | |
| | | <el-dialog |
| | | v-el-drag-dialog |
| | | :title="operation==='add'?'新增':'人员明细'" |
| | | :title="operation==='add'?'新增':'检验明细'" |
| | | :visible.sync="dialogVisible" |
| | | width="800px" |
| | | :close-on-click-modal="false" |
| | |
| | | @closed="handleClose" |
| | | @close="handleClose" |
| | | > |
| | | <div style="height: 300px;width: 100%;background-color: aliceblue;padding:20px"> |
| | | <el-tag |
| | | v-for="tag in tagArr" |
| | | :key="tag.name" |
| | | type="success" |
| | | style="margin-right: 15px;min-width: 80px;text-align: center" |
| | | |
| | | <el-table |
| | | ref="tableDataRef2" |
| | | class="tableFixed" |
| | | :data="dialogTableData" |
| | | height="500" |
| | | style="height:500px" |
| | | border |
| | | :row-class-name="tableRowClassName" |
| | | highlight-current-row |
| | | :header-cell-style="this.$headerCellStyle" |
| | | :cell-style="this.$cellStyle" |
| | | > |
| | | <el-table-column |
| | | type="index" |
| | | width="50" |
| | | fixed |
| | | label="序号" |
| | | /> |
| | | |
| | | <el-table-column |
| | | prop="stepcheckitem_code" |
| | | width="150" |
| | | label="检验项目" |
| | | > |
| | | {{ tag }} |
| | | </el-tag> |
| | | </div> |
| | | <template slot-scope="{row}"> |
| | | <el-select |
| | | v-if="row.isVisible===1" |
| | | v-model="row.stepcheckitem_code" |
| | | filterable |
| | | placeholder="请选择" |
| | | style="width: 100%;" |
| | | > |
| | | <!-- @change="val=>tableChange(val,row)"--> |
| | | <el-option |
| | | v-for="item in CheckItemSelectArr" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | /> |
| | | </el-select> |
| | | <div v-else>{{ |
| | | CheckItemSelectAllArr.find(i => i.code === row.stepcheckitem_code).name |
| | | }} |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | prop="stepcheckitem_desc" |
| | | label="标准要求" |
| | | show-tooltip-when-overflow |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <el-input |
| | | v-if="row.isVisible===1" |
| | | v-model="row.stepcheckitem_desc" |
| | | placeholder="请输入" |
| | | /> |
| | | <div v-else>{{ row.stepcheckitem_desc ? row.stepcheckitem_desc : '/' }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <!-- 这里写for循环遍历语句--> |
| | | |
| | | <el-table-column |
| | | v-if="operation!=='check'" |
| | | label="操作" |
| | | width="120" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div class="operationClass"> |
| | | <el-button v-if="row.isVisible===1" v-waves type="text" @click="saveZjlbRow(row)">确认</el-button> |
| | | <el-button v-if="row.isVisible===1&&isCancel" v-waves type="text" @click="cancelZjlbRow(row)">取消 |
| | | </el-button> |
| | | <el-button v-if="row.isVisible!==1" v-waves type="text" @click="editZjlbRow(row)">编辑</el-button> |
| | | <el-button v-if="row.isVisible!==1" v-waves type="text" @click="delZjlbRow(row)">删除</el-button> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <div class="footerButton"> |
| | | <el-button v-waves @click="dialogVisible=false">返 回</el-button> |
| | |
| | | </span> |
| | | </el-dialog> |
| | | |
| | | <!--导入组件--> |
| | | <import-picker |
| | | ref="importPickerFunc" |
| | | class="importPickerClass" |
| | | :shows.sync="shows" |
| | | :title="title_value" |
| | | :colos="colos" |
| | | :code="code" |
| | | /> |
| | | |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import Pagination from '@/components/Pagination' |
| | | import { getCookie } from '@/utils/auth' |
| | | |
| | | import ImportPicker from '@/components/ImportPicker' |
| | | import { handleDatetime, validateCode } from '@/utils/global' |
| | | import { handleDatetime } from '@/utils/global' |
| | | import { |
| | | GroupSalaryReportSearchUser, MaintenanceDetailsReportExcelSearch, LogisticsCheckSearch |
| | | MaintenanceDetailsReportExcelSearch, LogisticsCheckSearch |
| | | } from '@/api/reportManager' |
| | | import elDragDialog from '@/directive/el-drag-dialog' |
| | | import waves from '@/directive/waves' |
| | | import { MesOrderStepReportSelectUserGroup } from '@/api/produceManager' |
| | | import { PurchSupplierSelect } from '@/api/basicInfo' |
| | | |
| | | export default { |
| | | name: 'Zzjg', |
| | |
| | | total: 10, |
| | | tableData: [], |
| | | dialogVisible: false, |
| | | tagArr: [], // |
| | | dialogForm: { |
| | | OrgType: '', |
| | | OrgCode: '', |
| | | OrgName: '', |
| | | SupUnit: ''// 上级单位 |
| | | }, |
| | | |
| | | operation: '', |
| | | dialogFormRules: { |
| | | OrgType: [ |
| | | { required: true, message: '请输入选择类型', trigger: ['blur', 'change'] } |
| | | ], |
| | | OrgCode: [ |
| | | { required: true, validator: validateCode, trigger: ['blur', 'change'] } |
| | | ], |
| | | OrgName: [ |
| | | { required: true, message: '请输入名称', trigger: ['blur', 'change'] } |
| | | ] |
| | | |
| | | }, |
| | | |
| | | title_value: '数据导入 / 点检部位', |
| | | code: '4', |
| | | shows: false |
| | | dialogTableData: [] |
| | | |
| | | } |
| | | }, |
| | | watch: { |
| | | shows() { |
| | | if (!this.shows) { |
| | | this.getLogisticsCheckSearch() |
| | | } |
| | | } |
| | | }, |
| | | |
| | | created() { |
| | | this.handleRequest() |
| | | }, |
| | |
| | | search() { |
| | | this.getLogisticsCheckSearch() |
| | | }, |
| | | // 导入按钮 |
| | | upload() { |
| | | this.shows = true |
| | | this.$refs.importPickerFunc.newDataFunc() |
| | | }, |
| | | colos() { |
| | | this.shows = false |
| | | }, |
| | | |
| | | // 重置 |
| | | reset() { |
| | | this.form.checktypecode = '' |
| | |
| | | }, |
| | | |
| | | // 新增按钮 |
| | | add(operation) { |
| | | this.operation = operation |
| | | this.dialogVisible = true |
| | | }, |
| | | // add(operation) { |
| | | // this.operation = operation |
| | | // this.dialogVisible = true |
| | | // }, |
| | | // 修改按钮 |
| | | async edit(operation, row) { |
| | | this.operation = operation |
| | | this.dialogVisible = true |
| | | |
| | | const res = await GroupSalaryReportSearchUser({ id: row.id }) |
| | | this.tagArr = res.data.map(r => r.checkuser) |
| | | // this.tagArr = ['楼李俊', '张三', '李四'] |
| | | // this.$nextTick(() => { |
| | | // this.dialogForm.OrgCode = row.org_code |
| | | // this.dialogForm.OrgName = row.org_name |
| | | // this.dialogForm.SupUnit = row.parent_id |
| | | // }) |
| | | }, |
| | | // 删除按钮 |
| | | async del(row) { |
| | | // this.$confirm('是否确认删除?', '提示', { |
| | | // confirmButtonText: '确定', |
| | | // cancelButtonText: '取消', |
| | | // type: 'warning' |
| | | // }).then(() => { |
| | | // DeleteOrganization({ orgid: row.code }).then(res => { |
| | | // if (res.code === '200') { |
| | | // this.$message.success('删除成功!') |
| | | // if (this.form.page > 1 && this.tableData.length === 1) { |
| | | // this.form.page-- |
| | | // } |
| | | // this.getLogisticsCheckSearch() |
| | | // } |
| | | // }) |
| | | // }).catch(() => { |
| | | // this.$message.info('已取消删除') |
| | | // }) |
| | | }, |
| | | // 对话框关闭事件 |
| | | handleClose() { |
| | | this.dialogForm.OrgType = '' |
| | | this.dialogForm.OrgCode = '' |
| | | this.dialogForm.OrgName = '' |
| | | this.dialogForm.SupUnit = '' |
| | | this.$refs.dialogForm.clearValidate() |
| | | |
| | | }, |
| | | // 对话框取消 |
| | | dialogVisibleCancel() { |
| | | this.dialogVisible = false |
| | | }, |
| | | // 对话框确认 |
| | | dialogVisibleConfirm() { |
| | | this.$refs.dialogForm.validate(valid => { |
| | | if (valid) { |
| | | const data = { |
| | | OrganCode: this.dialogForm.OrgCode, |
| | | OrganName: this.dialogForm.OrgName, |
| | | OperType: this.operation === 'add' ? 'Add' : 'Update', |
| | | Operator: getCookie('admin') |
| | | } |
| | | // AddUpdateOrganization(data).then(res => { |
| | | // if (res.code === '200') { |
| | | // this.$message.success(this.operation === 'add' ? '添加成功!' : '修改成功!') |
| | | // this.dialogVisible = false |
| | | // this.getLogisticsCheckSearch() |
| | | // } else { |
| | | // this.$message.error(this.operation === 'add' ? '添加失败!' : '修改失败!') |
| | | // } |
| | | // }) |
| | | } |
| | | }) |
| | | }, |
| | | // 获取页面高度 |
| | | getHeight() { |
| | |
| | | justify-content: center; |
| | | } |
| | | |
| | | .tableFixed{ |
| | | ::v-deep .el-table__fixed-right{ |
| | | .tableFixed { |
| | | ::v-deep .el-table__fixed-right { |
| | | height: 100% !important; |
| | | } |
| | | ::v-deep .el-table__fixed{ |
| | | |
| | | ::v-deep .el-table__fixed { |
| | | height: 100% !important; |
| | | } |
| | | } |