@@ -94,7 +94,7 @@ export function listAllEquipmentRecipe(data) { | |||
// 保存某个工艺下的所有节点 | |||
export function addProcessFlows(data) { | |||
return request({ | |||
url: 'process/process-flow-equipment/add', | |||
url: '/api/process/process-flow-equipment/add', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -2,14 +2,14 @@ | |||
* @Author: zwq | |||
* @Date: 2020-12-29 16:00:14 | |||
* @LastEditors: zwq | |||
* @LastEditTime: 2021-07-06 11:10:22 | |||
* @LastEditTime: 2022-03-03 13:46:55 | |||
* @Description: | |||
*/ | |||
import request from '@/utils/request' | |||
export function EquipmentScrapGradeList(data) { // 获取废片等级列表 | |||
return request({ | |||
url: '/basic/equipment-scraps-grade/pageForEquipmentGrade', | |||
url: '/api/wms/equipment-scraps-grade/pageForEquipmentGrade', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -17,7 +17,7 @@ export function EquipmentScrapGradeList(data) { // 获取废片等级列表 | |||
export function EquipmentScrapGradeDetail(id) { // 获取废片等级单条数据 | |||
return request({ | |||
url: '/basic/equipment-scraps-grade/get', | |||
url: '/api/wms/equipment-scraps-grade/get', | |||
method: 'post', | |||
data: { id } | |||
}) | |||
@@ -25,7 +25,7 @@ export function EquipmentScrapGradeDetail(id) { // 获取废片等级单条数 | |||
export function EquipmentScrapGradeUpdate(data) { // 更新废片等级单条数据 | |||
return request({ | |||
url: '/basic/equipment-scraps-grade/update', | |||
url: '/api/wms/equipment-scraps-grade/update', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -33,7 +33,7 @@ export function EquipmentScrapGradeUpdate(data) { // 更新废片等级单条数 | |||
export function EquipmentScrapGradeAdd(data) { // 新增废片等级单条数据 | |||
return request({ | |||
url: '/basic/equipment-scraps-grade/add', | |||
url: '/api/wms/equipment-scraps-grade/add', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -41,7 +41,7 @@ export function EquipmentScrapGradeAdd(data) { // 新增废片等级单条数据 | |||
export function EquipmentScrapGradeDelete(id) { // 删除废片等级单条数据 | |||
return request({ | |||
url: '/basic/equipment-scraps-grade/delete', | |||
url: '/api/wms/equipment-scraps-grade/delete', | |||
method: 'post', | |||
data: { id } | |||
}) | |||
@@ -1,8 +1,8 @@ | |||
/* | |||
* @Author: zwq | |||
* @Date: 2020-12-29 16:00:14 | |||
* @LastEditors: gtz | |||
* @LastEditTime: 2021-04-17 16:04:51 | |||
* @LastEditors: zwq | |||
* @LastEditTime: 2022-03-03 15:10:05 | |||
* @Description: | |||
*/ | |||
import request from '@/utils/request' | |||
@@ -56,7 +56,7 @@ export function staffDelete(id) { // 删除员工单条数据 | |||
export function workerList(data) { // 添加组员列表 | |||
return request({ | |||
url: '/basic/team-det/workerList', | |||
url: '/api/wms/team-det/workerList', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -64,7 +64,7 @@ export function workerList(data) { // 添加组员列表 | |||
export function getRoleList() { | |||
return request({ | |||
url: '/basic/platform-dict/selectPlatformDictDataListByPage', | |||
url: '/api/wms/platform-dict/selectPlatformDictDataListByPage', | |||
method: 'post', | |||
data: { | |||
dictTypeId: '1383318968677273601', | |||
@@ -2,14 +2,14 @@ | |||
* @Author: zwq | |||
* @Date: 2020-12-29 16:00:14 | |||
* @LastEditors: zwq | |||
* @LastEditTime: 2021-03-10 14:25:18 | |||
* @LastEditTime: 2022-03-03 13:46:40 | |||
* @Description: | |||
*/ | |||
import request from '@/utils/request' | |||
export function scrapInfoList(data) { // 获取报废信息列表 | |||
return request({ | |||
url: '/basic/scrap-information/page', | |||
url: '/api/wms/scrap-information/page', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -20,7 +20,7 @@ export function scrapInfoDetail(id) { // 获取报废信息单条数据 | |||
'id': id | |||
} | |||
return request({ | |||
url: '/basic/scrap-information/get', | |||
url: '/api/wms/scrap-information/get', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -28,7 +28,7 @@ export function scrapInfoDetail(id) { // 获取报废信息单条数据 | |||
export function scrapInfoUpdate(data) { // 更新报废信息单条数据 | |||
return request({ | |||
url: '/basic/scrap-information/update', | |||
url: '/api/wms/scrap-information/update', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -36,7 +36,7 @@ export function scrapInfoUpdate(data) { // 更新报废信息单条数据 | |||
export function scrapInfoAdd(data) { // 新增报废信息单条数据 | |||
return request({ | |||
url: '/basic/scrap-information/add', | |||
url: '/api/wms/scrap-information/add', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -44,14 +44,14 @@ export function scrapInfoAdd(data) { // 新增报废信息单条数据 | |||
export function scrapInfoCode() { // 获取报废信息code | |||
return request({ | |||
url: '/basic/scrap-information/get-code', | |||
url: '/api/wms/scrap-information/get-code', | |||
method: 'post' | |||
}) | |||
} | |||
export function scrapInfoDelete(id) { // 删除报废信息单条数据 | |||
return request({ | |||
url: '/basic/scrap-information/delete', | |||
url: '/api/wms/scrap-information/delete', | |||
method: 'post', | |||
data: { id } | |||
}) | |||
@@ -2,14 +2,14 @@ | |||
* @Author: zwq | |||
* @Date: 2020-12-29 16:00:14 | |||
* @LastEditors: zwq | |||
* @LastEditTime: 2021-03-10 14:25:59 | |||
* @LastEditTime: 2022-03-03 13:46:46 | |||
* @Description: | |||
*/ | |||
import request from '@/utils/request' | |||
export function scrapTypeList(data) { // 获取报废类型列表 | |||
return request({ | |||
url: '/basic/scrap-type-information/page', | |||
url: '/api/wms/scrap-type-information/page', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -20,7 +20,7 @@ export function scrapTypeDetail(id) { // 获取报废类型单条数据 | |||
'id': id | |||
} | |||
return request({ | |||
url: '/basic/scrap-type-information/get', | |||
url: '/api/wms/scrap-type-information/get', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -28,7 +28,7 @@ export function scrapTypeDetail(id) { // 获取报废类型单条数据 | |||
export function scrapTypeUpdate(data) { // 更新报废类型单条数据 | |||
return request({ | |||
url: '/basic/scrap-type-information/update', | |||
url: '/api/wms/scrap-type-information/update', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -36,7 +36,7 @@ export function scrapTypeUpdate(data) { // 更新报废类型单条数据 | |||
export function scrapTypeAdd(data) { // 新增报废类型单条数据 | |||
return request({ | |||
url: '/basic/scrap-type-information/add', | |||
url: '/api/wms/scrap-type-information/add', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -44,14 +44,14 @@ export function scrapTypeAdd(data) { // 新增报废类型单条数据 | |||
export function scrapTypeCode() { // 获取报废类型code | |||
return request({ | |||
url: '/basic/scrap-type-information/get-code', | |||
url: '/api/wms/scrap-type-information/get-code', | |||
method: 'post' | |||
}) | |||
} | |||
export function scrapTypeDelete(id) { // 删除报废类型单条数据 | |||
return request({ | |||
url: '/basic/scrap-type-information/delete', | |||
url: '/api/wms/scrap-type-information/delete', | |||
method: 'post', | |||
data: { id } | |||
}) | |||
@@ -2,14 +2,14 @@ | |||
* @Author: zwq | |||
* @Date: 2020-12-29 16:00:14 | |||
* @LastEditors: zwq | |||
* @LastEditTime: 2021-01-13 16:11:45 | |||
* @LastEditTime: 2022-03-03 16:10:54 | |||
* @Description: | |||
*/ | |||
import request from '@/utils/request' | |||
export function StateConfigList(data) { // 获取状态列表 | |||
return request({ | |||
url: '/basic/configure-display/page', | |||
url: '/api/wms/configure-display/page', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -1,15 +1,15 @@ | |||
/* | |||
* @Author: zwq | |||
* @Date: 2020-12-29 16:00:14 | |||
* @LastEditors: Please set LastEditors | |||
* @LastEditTime: 2021-05-19 15:57:56 | |||
* @LastEditors: zwq | |||
* @LastEditTime: 2022-03-03 15:10:16 | |||
* @Description: | |||
*/ | |||
import request from '@/utils/request' | |||
export function dataDictionaryDataList(data) { // 获取字典类型列表 | |||
return request({ | |||
url: '/basic/platform-dict/selectPlatformDictDataListByPage', | |||
url: '/api/wms/platform-dict/selectPlatformDictDataListByPage', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -17,7 +17,7 @@ export function dataDictionaryDataList(data) { // 获取字典类型列表 | |||
export function dataDictionaryDataDetail(id) { // 获取字典类型单条数据 | |||
return request({ | |||
url: '/basic/platform-dict/selectPlatformDictDataById', | |||
url: '/api/wms/platform-dict/selectPlatformDictDataById', | |||
method: 'post', | |||
data: { id } | |||
}) | |||
@@ -25,7 +25,7 @@ export function dataDictionaryDataDetail(id) { // 获取字典类型单条数据 | |||
export function dataDictionaryDataUpdate(data) { // 更新字典类型单条数据 | |||
return request({ | |||
url: '/basic/platform-dict/updatePlatformDictData', | |||
url: '/api/wms/platform-dict/updatePlatformDictData', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -33,7 +33,7 @@ export function dataDictionaryDataUpdate(data) { // 更新字典类型单条数 | |||
export function dataDictionaryDataAdd(data) { // 新增字典类型单条数据 | |||
return request({ | |||
url: '/basic/platform-dict/savePlatformDictData', | |||
url: '/api/wms/platform-dict/savePlatformDictData', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -41,7 +41,7 @@ export function dataDictionaryDataAdd(data) { // 新增字典类型单条数据 | |||
export function dataDictionaryDataDelete(id) { // 删除字典类型单条数据 | |||
return request({ | |||
url: '/basic/platform-dict/deletePlatformDictData', | |||
url: '/api/wms/platform-dict/deletePlatformDictData', | |||
method: 'post', | |||
data: { id } | |||
}) | |||
@@ -2,14 +2,14 @@ | |||
* @Author: zwq | |||
* @Date: 2020-12-29 16:00:14 | |||
* @LastEditors: zwq | |||
* @LastEditTime: 2021-04-16 12:51:29 | |||
* @LastEditTime: 2022-03-03 15:29:30 | |||
* @Description: | |||
*/ | |||
import request from '@/utils/request' | |||
export function dataDictionaryTypeList(data) { // 获取字典类型列表 | |||
return request({ | |||
url: '/basic/platform-dict/selectPlatformDictTypeListByPage', | |||
url: '/api/wms/platform-dict/selectPlatformDictTypeListByPage', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -17,7 +17,7 @@ export function dataDictionaryTypeList(data) { // 获取字典类型列表 | |||
export function dataDictionaryTypeDetail(id) { // 获取字典类型单条数据 | |||
return request({ | |||
url: '/basic/platform-dict/selectDictTypeById', | |||
url: '/api/wms/platform-dict/selectDictTypeById', | |||
method: 'post', | |||
data: { id } | |||
}) | |||
@@ -25,7 +25,7 @@ export function dataDictionaryTypeDetail(id) { // 获取字典类型单条数据 | |||
export function dataDictionaryTypeUpdate(data) { // 更新字典类型单条数据 | |||
return request({ | |||
url: '/basic/platform-dict/updatePlatformDictType', | |||
url: '/api/wms/platform-dict/updatePlatformDictType', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -33,7 +33,7 @@ export function dataDictionaryTypeUpdate(data) { // 更新字典类型单条数 | |||
export function dataDictionaryTypeAdd(data) { // 新增字典类型单条数据 | |||
return request({ | |||
url: '/basic/platform-dict/savePlatformDictType', | |||
url: '/api/wms/platform-dict/savePlatformDictType', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -41,7 +41,7 @@ export function dataDictionaryTypeAdd(data) { // 新增字典类型单条数据 | |||
export function dataDictionaryTypeDelete(id) { // 删除字典类型单条数据 | |||
return request({ | |||
url: '/basic/platform-dict/deletePlatformDictType', | |||
url: '/api/wms/platform-dict/deletePlatformDictType', | |||
method: 'post', | |||
data: { id } | |||
}) | |||
@@ -1,7 +1,7 @@ | |||
/* | |||
* @Date: 2021-01-15 17:42:07 | |||
* @LastEditors: Please set LastEditors | |||
* @LastEditTime: 2021-07-12 10:31:01 | |||
* @LastEditors: zwq | |||
* @LastEditTime: 2022-03-03 13:52:50 | |||
* @FilePath: \basic-admin\src\api\equipment\maintain.js | |||
* @Description: 保养计划 & 保养记录 接口定义 | |||
*/ | |||
@@ -109,7 +109,7 @@ export function getMaintainLog(data) { | |||
// 获取设备列表 | |||
export function getEqList(data) { | |||
return request({ | |||
url: '/basic/equipment/page', | |||
url: '/api/wms/equipment/page', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -1,15 +1,22 @@ | |||
/* | |||
* @Author: zwq | |||
* @Date: 2021-09-18 16:09:07 | |||
* @LastEditors: zwq | |||
* @LastEditTime: 2022-03-03 09:52:41 | |||
* @Description: | |||
*/ | |||
import request from '@/utils/request' | |||
export function list(data) { | |||
return request({ | |||
url: 'material/material-date/materialList', | |||
url: 'api/process/process-flow-equipment/equipmentList', | |||
method: 'post', | |||
data | |||
}) | |||
} | |||
export function listEquipment(data) { | |||
return request({ | |||
url: 'material/equipment-material-replace/equipmentList', | |||
url: 'api/process/process-flow-equipment/equipmentList', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -1,15 +1,15 @@ | |||
/* | |||
* @Author: zwq | |||
* @Date: 2020-12-29 16:00:14 | |||
* @LastEditors: Please set LastEditors | |||
* @LastEditTime: 2021-07-20 10:30:39 | |||
* @LastEditors: zwq | |||
* @LastEditTime: 2022-03-03 13:57:00 | |||
* @Description: | |||
*/ | |||
import request from '@/utils/request' | |||
export function workOrderList(data) { // 获取工单列表 | |||
return request({ | |||
url: '/order/work-order/page', | |||
url: '/api/order/work-order/page', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -20,7 +20,7 @@ export function workOrderDetail(id) { // 获取工单单条数据 | |||
'id': id | |||
} | |||
return request({ | |||
url: '/order/work-order/get', | |||
url: '/api/order/work-order/get', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -28,7 +28,7 @@ export function workOrderDetail(id) { // 获取工单单条数据 | |||
export function workOrderUpdate(data) { // 更新工单单条数据 | |||
return request({ | |||
url: '/order/work-order/update', | |||
url: '/api/order/work-order/update', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -36,7 +36,7 @@ export function workOrderUpdate(data) { // 更新工单单条数据 | |||
export function workOrderAdd(data) { // 新增工单单条数据 | |||
return request({ | |||
url: '/order/work-order/add', | |||
url: '/api/order/work-order/add', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -44,14 +44,14 @@ export function workOrderAdd(data) { // 新增工单单条数据 | |||
export function workOrderCode() { // 获取工单code | |||
return request({ | |||
url: '/order/work-order/get-code', | |||
url: '/api/order/work-order/get-code', | |||
method: 'post' | |||
}) | |||
} | |||
export function workOrderDelete(id) { // 删除工单单条数据 | |||
return request({ | |||
url: '/order/work-order/delete', | |||
url: '/api/order/work-order/delete', | |||
method: 'post', | |||
data: { id } | |||
}) | |||
@@ -59,7 +59,7 @@ export function workOrderDelete(id) { // 删除工单单条数据 | |||
export function workOrderIssueList(data) { // 获取工单下发列表 | |||
return request({ | |||
url: '/order/wo-sync/page', | |||
url: '/api/order/wo-sync/page', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -67,7 +67,7 @@ export function workOrderIssueList(data) { // 获取工单下发列表 | |||
export function packagingBoxList(data) { // 获取包装基板列表 | |||
return request({ | |||
url: '/order/wo-packaging-box-substrate/page', | |||
url: '/api/order/wo-packaging-box-substrate/page', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -75,7 +75,7 @@ export function packagingBoxList(data) { // 获取包装基板列表 | |||
export function packagingList(data) { // 获取包装标签列表 | |||
return request({ | |||
url: '/order/wo-packaging-box/page', | |||
url: '/api/order/wo-packaging-box/page', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -86,7 +86,7 @@ export function packagingDetail(id) { // 获取包装标签详情 | |||
'id': id | |||
} | |||
return request({ | |||
url: '/order/wo-packaging-box/get', | |||
url: '/api/order/wo-packaging-box/get', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -94,7 +94,7 @@ export function packagingDetail(id) { // 获取包装标签详情 | |||
export function syncAdd(data) { // 新增下发工单单条数据 | |||
return request({ | |||
url: '/order/wo-sync/add', | |||
url: '/api/order/wo-sync/add', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -102,7 +102,7 @@ export function syncAdd(data) { // 新增下发工单单条数据 | |||
export function packagingInventoryList(data) { // 获取包装清单列表 | |||
return request({ | |||
url: '/order/wo-packaging-box/page-for-inventory', | |||
url: '/api/order/wo-packaging-box/page-for-inventory', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -110,7 +110,7 @@ export function packagingInventoryList(data) { // 获取包装清单列表 | |||
export function updateForStatus(data) { // 激活 | |||
return request({ | |||
url: '/order/work-order/updateForStatus', | |||
url: '/api/order/work-order/updateForStatus', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -1,7 +1,7 @@ | |||
/* | |||
* @Date: 2021-03-15 10:27:40 | |||
* @LastEditors: Please set LastEditors | |||
* @LastEditTime: 2021-07-09 14:35:26 | |||
* @LastEditors: zwq | |||
* @LastEditTime: 2022-03-03 15:40:29 | |||
* @FilePath: \basic-admin\src\api\quality-manage\scrap.js | |||
* @Description: | |||
*/ | |||
@@ -9,7 +9,7 @@ import request from '@/utils/request' | |||
export function getScrapList(data) { | |||
return request({ | |||
url: '/quality/scrap/page', | |||
url: '/api/wms/scrap/page', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -17,7 +17,7 @@ export function getScrapList(data) { | |||
export function delScrapInfo(data) { | |||
return request({ | |||
url: '/quality/scrap/delete', | |||
url: '/api/wms/scrap/delete', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -25,7 +25,7 @@ export function delScrapInfo(data) { | |||
export function editScrapInfo(data) { | |||
return request({ | |||
url: '/quality/scrap/update', | |||
url: '/api/wms/scrap/update', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -33,14 +33,14 @@ export function editScrapInfo(data) { | |||
export function addScrapInfo(data) { | |||
return request({ | |||
url: '/quality/scrap/create', | |||
url: '/api/wms/scrap/create', | |||
method: 'post', | |||
data | |||
}) | |||
} | |||
export function getScrapInfo(data) { | |||
return request({ | |||
url: '/quality/scrap/findById', | |||
url: '/api/wms/scrap/findById', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -49,7 +49,7 @@ export function getScrapInfo(data) { | |||
// 废品报废 原因 | |||
export function getscrapReason(data) { | |||
return request({ | |||
url: '/basic/scrap-information/get', | |||
url: '/api/wms/scrap-information/get', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -58,7 +58,7 @@ export function getscrapReason(data) { | |||
// 根据设备id查询肺片等级 | |||
export function getScrap(id) { | |||
return request({ | |||
url: '/basic/equipment-scraps-grade/getScrapsGradeByEquipmentId', | |||
url: '/api/wms/equipment-scraps-grade/getScrapsGradeByEquipmentId', | |||
method: 'post', | |||
data: { id } | |||
}) | |||
@@ -1,7 +1,7 @@ | |||
/* | |||
* @Date: 2021-03-15 10:27:40 | |||
* @LastEditors: Please set LastEditors | |||
* @LastEditTime: 2021-07-09 14:35:26 | |||
* @LastEditors: zwq | |||
* @LastEditTime: 2022-03-03 15:40:35 | |||
* @FilePath: \basic-admin\src\api\quality-manage\scrap.js | |||
* @Description: | |||
*/ | |||
@@ -9,7 +9,7 @@ import request from '@/utils/request' | |||
export function getList(data) { | |||
return request({ | |||
url: '/quality/scrap/findReportByEquipmentId', | |||
url: '/api/wms/scrap/findReportByEquipmentId', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -18,7 +18,7 @@ export function getList(data) { | |||
// 废品报废 原因 | |||
export function getscrapReason(data) { | |||
return request({ | |||
url: '/basic/scrap-information/get', | |||
url: '/api/wms/scrap-information/get', | |||
method: 'post', | |||
data | |||
}) | |||
@@ -280,6 +280,10 @@ export default { | |||
equipment: { | |||
zh: '设备管理', | |||
en: 'Equipment Manager', | |||
EquipmentUtilizationRate: { | |||
zh: '设备稼动率', | |||
en: 'EQ OEE' | |||
}, | |||
EquipmentVisualization: { | |||
zh: '设备可视化', | |||
en: 'Equipment Visualization', | |||
@@ -972,6 +976,18 @@ export default { | |||
zh: '质量检测计划', | |||
en: 'Quality Detect Plan' | |||
}, | |||
scrapManagement: { | |||
zh: '废片管理', | |||
en: 'Scrap management', | |||
gradeInfo: { | |||
zh: '等级信息', | |||
en: 'Grade Info' | |||
}, | |||
scrapInfo: { | |||
zh: '废片信息', | |||
en: 'Scrap Info' | |||
} | |||
}, | |||
knowledge: { | |||
zh: '维护保养知识库', | |||
en: 'Maintain the knowledge base' | |||
@@ -1,7 +1,7 @@ | |||
/* | |||
* @Date: 2021-03-05 10:04:30 | |||
* @LastEditors: Please set LastEditors | |||
* @LastEditTime: 2021-07-23 09:13:56 | |||
* @LastEditors: DY | |||
* @LastEditTime: 2022-03-03 16:31:23 | |||
* @FilePath: \basic-admin\src\lang\i18n\en\module\equipmentManager.js | |||
* @Description: | |||
*/ | |||
@@ -19,6 +19,68 @@ export default { | |||
Water: 'Water', | |||
Gas: 'Gas' | |||
}, | |||
monitoringInfo: { | |||
allCycles: 'Total cycle Times', | |||
badTimes: 'Failure Times', | |||
time: 'Time', | |||
MCBF: 'MCBF', | |||
previousStatus: 'State Before', | |||
runTime: 'UpTime (hours)', | |||
produceTime: 'Production time (hours)', | |||
productiveCount: 'Actual Capacity', | |||
timeRate: 'Time Start Rate', | |||
performanceRate: 'Performance Start Rate', | |||
oee: 'OEE', | |||
E10StartTime: 'E10 StartTime', | |||
E10endTime: 'E10 EndTime', | |||
laterE10Status: 'Changed E10 State', | |||
duration: 'Duration', | |||
goodsNumbers: 'OK Quantity', | |||
noOkNumbers: 'NOK Quantity', | |||
onceOkCount: 'OK Quantity Of Fist Process ', | |||
reworkOkCount: 'OK Quantity Of Rework ', | |||
GetTimePeriod: 'Time Period', | |||
ProductionTimePeriod: 'Production Time Period', | |||
MaintenanceTimes: 'Maintenance Times', | |||
RunningTime: 'Running Time', | |||
E10status: 'E10 State', | |||
number: 'Quantity Produced Of Current day', | |||
yieId: 'Daily yield', | |||
bom: 'Daily Consumption Of Materials,', | |||
controlState: 'Control State', | |||
equipmentName: 'EQ Name', | |||
e10Code: 'E10 State', | |||
materialName: 'MaterialName', | |||
port: 'Loading Port', | |||
productCount: 'Product Quantity', | |||
spec: 'Spec', | |||
materialNo: 'MaterialNo', | |||
upTime: 'Loading Time', | |||
upCount: 'Loading Amount', | |||
useCount: 'Used Amount', | |||
unit: 'Unit', | |||
eventName: 'EventName', | |||
paramName: 'ParamName', | |||
paramValue: 'ParamValue', | |||
standardFormat: 'StandardFormat', | |||
paramFormat: 'ParamFormat', | |||
receiveTime: 'ReceivedTime', | |||
recipe: 'EQ Recipe', | |||
controlStatus: 'Control State', | |||
traceDataState: 'Trace Data OpenState', | |||
controlStateUpdateTime: 'Control State UpdateTime', | |||
e10UpdateTime: 'E10 Update Time', | |||
StateFlg: 'StateFlag', | |||
EnableSpooling: 'EnableSpooling', | |||
maxspooltransmit: 'MaxSpoolTransmit', | |||
spoolingstate: 'SpoolingState', | |||
spoolingcountactual: 'SpoolingCountActual', | |||
SpoolingCountTotal: 'SpoolingCountTotal', | |||
F1F3Succ: 'F1F3 Request Success', | |||
F2F13Succ: 'F2F13 Request Success', | |||
baseChart: 'Processed Substrates Quantity', | |||
monitorChart: 'EQ Running Time' | |||
}, | |||
sparepart: { | |||
'sparepart': 'Sparepart', | |||
'code': 'Sparepart number', | |||
@@ -1,7 +1,7 @@ | |||
/* | |||
* @Date: 2021-03-05 10:04:37 | |||
* @LastEditors: Please set LastEditors | |||
* @LastEditTime: 2021-07-23 09:13:20 | |||
* @LastEditors: DY | |||
* @LastEditTime: 2022-03-03 16:31:16 | |||
* @FilePath: \basic-admin\src\lang\i18n\zh\module\equipmentManager.js | |||
* @Description: | |||
*/ | |||
@@ -19,6 +19,68 @@ export default { | |||
'Water': '水', | |||
'Gas': '气' | |||
}, | |||
monitoringInfo: { | |||
allCycles: '总循环次数', | |||
badTimes: '故障次数', | |||
time: '时间', | |||
MCBF: 'MCBF', | |||
previousStatus: '转换前状态', | |||
runTime: '开机时长(时)', | |||
produceTime: '生产时长(时)', | |||
productiveCount: '实际产能', | |||
timeRate: '时间开动率', | |||
performanceRate: '性能开动率', | |||
oee: '综合效率OEE', | |||
E10StartTime: 'E10开始时间', | |||
E10endTime: 'E10结束时间', | |||
laterE10Status: '变化后E10状态', | |||
duration: '持续时间', | |||
goodsNumbers: '良品数量', | |||
noOkNumbers: '不良品数量', | |||
onceOkCount: '一次加工良品数量', | |||
reworkOkCount: '重工良品数量', | |||
GetTimePeriod: '获取时间段', | |||
ProductionTimePeriod: '生产时间段', | |||
MaintenanceTimes: '维护次数', | |||
RunningTime: '运行时长', | |||
E10status: 'E10状态', | |||
number: '当日生产的数量', | |||
yieId: '当日良率', | |||
bom: '当日消耗物料', | |||
controlState: '控制状态', | |||
equipmentName: '设备名称', | |||
e10Code: 'E10状态名称', | |||
port: '上料位置', | |||
recipe: '设备配方', | |||
materialName: '物料名称', | |||
productCount: '加工数量', | |||
spec: '物料规格', | |||
materialNo: '物料批次号', | |||
upTime: '上料时间', | |||
upCount: '上料数量', | |||
useCount: '使用数量', | |||
unit: '单位', | |||
eventName: '事件名称', | |||
paramName: '参数名称', | |||
receiveTime: '获取参数时间', | |||
paramValue: '获取参数值', | |||
standardFormat: '标准参数模式', | |||
paramFormat: '获取参数格式', | |||
controlStatus: '设备控制状态', | |||
traceDataState: 'Trace Data 开启状态', | |||
controlStateUpdateTime: '控制状态更新时间', | |||
e10UpdateTime: 'E10更新时间', | |||
StateFlg: 'StateFlg', | |||
EnableSpooling: 'EnableSpooling', | |||
maxspooltransmit: 'maxspooltransmit', | |||
spoolingstate: 'spoolingstate', | |||
spoolingcountactual: 'spoolingcountactual', | |||
SpoolingCountTotal: 'SpoolingCountTotal', | |||
F1F3Succ: 'F1F3请求成功', | |||
F2F13Succ: 'F2F13请求成功', | |||
baseChart: '设备加工基板数量', | |||
monitorChart: '设备运行时长' | |||
}, | |||
sparepart: { | |||
'sparepart': '备品备件', | |||
'code': '备件编号', | |||
@@ -208,6 +208,24 @@ export const constantRoutes = [ | |||
meta: { title: routerTitle.basicData.materials.materialType?.[language] || routerTitle.basicData.materials.materialType.en, icon: 'form', affix: true, required: true, requireToken: true } | |||
} | |||
] | |||
}, | |||
{ | |||
path: '/dataDictionary', | |||
component: () => import('@/views/basicData/index'), | |||
name: 'dataDictionary', | |||
meta: { title: routerTitle.basicData.dataDictionaryType.dataDictionary?.[language] || routerTitle.basicData.dataDictionaryType.dataDictionary.en, icon: 'form', affix: true, required: true, requireToken: true }, | |||
children: [{ | |||
path: 'dataDictionary', | |||
component: () => import('@/views/basicData/dataDictionary'), | |||
name: 'dataDictionary', | |||
meta: { title: routerTitle.basicData.dataDictionaryType?.[language] || routerTitle.basicData.dataDictionaryType.en, icon: 'form', affix: true, required: true, requireToken: true } | |||
}, { | |||
path: 'dataDictionaryData', | |||
component: () => import('@/views/basicData/components/dataDictionaryData'), | |||
hidden: true, | |||
name: 'dataDictionaryData', | |||
meta: { title: routerTitle.basicData.dataDictionaryType.dataDictionary?.[language] || routerTitle.basicData.dataDictionaryType.dataDictionary.en, icon: 'form', affix: true, required: true, requireToken: true } | |||
}] | |||
} | |||
] | |||
}, | |||
@@ -361,104 +379,131 @@ export const constantRoutes = [ | |||
component: Layout, | |||
redirect: '/quality', | |||
name: 'qualityManage', | |||
hidden: true, | |||
meta: { title: routerTitle.quality?.[language] || routerTitle.quality.en, icon: 'form', iconPart: 'qualityManage', affix: true, required: true, requireToken: true }, | |||
children: [ | |||
{ | |||
path: 'scrap', | |||
component: () => import('@/views/QualityManager/scrap'), | |||
name: 'scrapManage', | |||
meta: { title: routerTitle.quality.scrap?.[language] || routerTitle.quality.scrap.en, icon: 'form', iconPart: 'formwhite', affix: true, required: true, requireToken: true, unuse: true } | |||
}, | |||
{ | |||
path: 'scrapcategorystatistics', | |||
component: () => import('@/views/QualityManager/scrap/scrapCategoryStatistics'), | |||
name: 'scrapCategoryStatistics', | |||
meta: { title: routerTitle.quality.scrapcategorystatistics?.[language] || routerTitle.quality.scrapcategorystatistics.en, icon: 'form', iconPart: 'formwhite', affix: true, required: true, requireToken: true, unuse: true } | |||
}, | |||
{ | |||
path: 'plan', | |||
component: () => import('@/views/QualityManager/plan'), | |||
component: () => import('@/views/QualityManager/QCPplan'), | |||
name: 'PlanManage', | |||
meta: { title: routerTitle.quality.plan?.[language] || routerTitle.quality.plan.en, icon: 'form', affix: true } | |||
}, { | |||
path: 'planparam', | |||
component: () => import('@/views/QualityManager/plan/subpage/detail'), | |||
name: 'PlanParamManage', | |||
hidden: true, | |||
meta: { title: routerTitle.quality.planform?.[language] || routerTitle.quality.planform.en, icon: 'form', affix: true } | |||
}, { | |||
path: 'issue', | |||
component: () => import('@/views/QualityManager/plan/issuedplan'), | |||
name: 'PlanIssuedManage', | |||
meta: { title: routerTitle.quality.issuedplan?.[language] || routerTitle.quality.issuedplan.en, icon: 'form', affix: true } | |||
}, | |||
{ | |||
path: '/offlineDetec', | |||
component: () => import('@/views/basicData/index'), | |||
name: 'offlineDetec', | |||
meta: { title: routerTitle.quality.offlineDetec?.[language] || routerTitle.quality.offlineDetec.en, icon: 'form', affix: true, required: true, requireToken: true }, | |||
meta: { title: routerTitle.quality.scrapManagement?.[language] || routerTitle.quality.scrapManagement.en, icon: 'form', affix: true, required: true, requireToken: true }, | |||
children: [ | |||
{ | |||
path: 'detecParam', | |||
component: () => | |||
import('@/views/QualityManager/offlineDetec/detecParam'), | |||
name: 'detecParam', | |||
hidden: true, | |||
meta: { title: routerTitle.quality.offlineDetec.detecParam?.[language] || routerTitle.quality.offlineDetec.detecParam.detecParam.en, icon: 'form', affix: true, required: true, requireToken: true } | |||
path: 'ScrapInfo', | |||
component: () => import('@/views/basicData/Scrap/ScrapInfo'), | |||
name: 'ScrapInfo', | |||
meta: { title: routerTitle.basicData.scrap.scrapInfo?.[language] || routerTitle.basicData.scrap.scrapInfo.en, icon: 'form', affix: true, required: true, requireToken: true } | |||
}, | |||
{ | |||
path: 'detecParamAdd', | |||
component: () => | |||
import('@/views/QualityManager/offlineDetec/components/detecParam-add'), | |||
name: 'detecParamAdd', | |||
hidden: true, | |||
meta: { title: routerTitle.quality.offlineDetec.detecParam?.[language] || routerTitle.quality.offlineDetec.detecParam.detecParam.en, icon: 'form', affix: true, required: true, requireToken: true } | |||
path: 'ScrapType', | |||
component: () => import('@/views/basicData/Scrap/ScrapType'), | |||
name: 'ScrapType', | |||
meta: { title: routerTitle.basicData.scrap.scrapType?.[language] || routerTitle.basicData.scrap.scrapType.en, icon: 'form', affix: true, required: true, requireToken: true } | |||
}, | |||
{ | |||
path: 'equipmentDetectParam', | |||
component: () => | |||
import('@/views/basicData/Equipment/equipmentDetectParam'), | |||
name: 'equipmentDetectParam', | |||
hidden: true, | |||
meta: { title: routerTitle.basicData.equipment.equipmentDetectInfo.equipmentDetectParam?.[language] || routerTitle.basicData.equipment.equipmentDetectInfo.equipmentDetectParam.en, icon: 'form', affix: true, required: true, requireToken: true } | |||
path: 'EquipmentScrapGrade', | |||
component: () => import('@/views/basicData/EquipmentScrapGrade'), | |||
name: 'EquipmentScrapGrade', | |||
meta: { title: routerTitle.basicData.EquipmentScrapGrade?.[language] || routerTitle.basicData.EquipmentScrapGrade.en, icon: 'form', affix: true, required: true, requireToken: true } | |||
}, | |||
{ | |||
path: 'equipmentDetectParamAdd', | |||
component: () => | |||
import('@/views/basicData/Equipment/components/equipmentDetectParam-add'), | |||
name: 'equipmentDetectParamAdd', | |||
meta: { title: routerTitle.basicData.equipment.equipmentDetectInfo.equipmentDetectParam?.[language] || routerTitle.basicData.equipment.equipmentDetectInfo.equipmentDetectParam.en, icon: 'form', affix: true, required: true, requireToken: true } | |||
}, | |||
{ | |||
path: 'detecRegistration', | |||
component: () => | |||
import('@/views/QualityManager/offlineDetec/detecRegistration'), | |||
name: 'detecRegistration', | |||
meta: { title: routerTitle.quality.offlineDetec.detecRegistration?.[language] || routerTitle.quality.offlineDetec.detecRegistration.en, icon: 'form', affix: true, required: true, requireToken: true } | |||
path: 'scrap', | |||
component: () => import('@/views/QualityManager/scrap'), | |||
name: 'scrapManage', | |||
meta: { title: routerTitle.quality.scrap?.[language] || routerTitle.quality.scrap.en, icon: 'form', iconPart: 'formwhite', affix: true, required: true, requireToken: true, unuse: true } | |||
} | |||
] | |||
}, | |||
{ | |||
path: '/spc', | |||
component: () => import('@/views/spc/index'), | |||
name: 'spcManage', | |||
meta: { title: routerTitle.spc?.[language] || routerTitle.spc.en, icon: 'form', iconPart: 'formwhite', affix: true, required: true, requireToken: true, openUrl: 'http://58.210.206.230:8000/thirdLogin?username=ZJCadmin&password=123456' } | |||
}, | |||
{ | |||
path: 'knowledge', | |||
component: () => import('@/views/QualityManager/base/knowledge'), | |||
name: 'knowledge', | |||
meta: { title: routerTitle.quality.knowledge?.[language] || routerTitle.quality.knowledge.en, icon: 'form', iconPart: 'formwhite', affix: true } | |||
} | |||
] | |||
}, | |||
{ | |||
path: '/form', | |||
component: Layout, | |||
redirect: '/form', | |||
name: 'formManage', | |||
meta: { title: routerTitle.form?.[language] || routerTitle.form.en, icon: 'form', iconPart: 'formManage', affix: true, required: true, requireToken: true, unuse: false }, | |||
children: [{ | |||
path: 'report', | |||
component: () => import('@/views/report-manage/ReportSortChoise'), | |||
name: 'Report', | |||
meta: { title: routerTitle.form.report?.[language] || routerTitle.form.report.en, icon: 'form', affix: true, required: true, requireToken: true } | |||
}, | |||
{ | |||
path: 'report-sort-list', | |||
component: () => import('@/views/report-manage/Report'), | |||
name: 'ReportSortList', | |||
hidden: true, | |||
meta: { title: routerTitle.form.reportSortList?.[language] || routerTitle.form.reportSortList.en, icon: 'form', affix: true, required: true, requireToken: true } | |||
}, | |||
{ | |||
path: 'report-view', | |||
component: () => import('@/views/report-manage/ReportView'), | |||
name: 'ReportDesign', | |||
meta: { title: routerTitle.form.reportView?.[language] || routerTitle.form.reportView.en, icon: 'form', affix: true, required: true, requireToken: true }, | |||
hidden: true | |||
}, | |||
{ | |||
path: 'report-design', | |||
component: () => import('@/views/report-manage/ReportDesign'), | |||
name: 'ReportDesign', | |||
meta: { title: routerTitle.form.reportDesign?.[language] || routerTitle.form.reportDesign.en, icon: 'form', affix: true, required: true, requireToken: true } | |||
}, | |||
{ | |||
path: 'report-sort', | |||
component: () => import('@/views/report-manage/ReportSort/index'), | |||
name: 'ReportSort', | |||
meta: { title: routerTitle.form.reportSort?.[language] || routerTitle.form.reportSort.en, icon: 'form', affix: true, required: true, requireToken: true } | |||
}] | |||
}, | |||
{ | |||
path: '/equipment', | |||
component: Layout, | |||
redirect: '/equipment', | |||
name: 'equipmentManage', | |||
meta: { title: routerTitle.equipment?.[language] || routerTitle.equipment.en, icon: 'form', iconPart: 'equipmentManage', affix: true, required: true, requireToken: true, unuse: false }, | |||
children: [{ | |||
path: 'equipmentUtilizationRate', | |||
component: () => import('@/views/basicData/index'), | |||
name: 'EquipmentUtilizationRate', | |||
meta: { title: routerTitle.equipment.EquipmentUtilizationRate?.[language] || routerTitle.equipment.EquipmentUtilizationRate.en, icon: 'form', affix: true, required: true, requireToken: true }, | |||
children: [ | |||
{ | |||
path: 'e10', | |||
component: () => import('@/views/EquipmentManager/equipmentUtilizationRate/E10'), | |||
name: 'E10', | |||
meta: { title: 'E10' } | |||
}, | |||
{ | |||
path: 'oee', | |||
component: () => import('@/views/EquipmentManager/equipmentUtilizationRate/OEE'), | |||
name: 'OEE', | |||
meta: { title: 'OEE' } | |||
}, | |||
{ | |||
path: 'mttr', | |||
component: () => import('@/views/EquipmentManager/equipmentUtilizationRate/MTTR'), | |||
name: 'MTTR', | |||
meta: { title: 'MTTR' } | |||
}, | |||
{ | |||
path: 'mcbf', | |||
component: () => import('@/views/EquipmentManager/equipmentUtilizationRate/MCBF'), | |||
name: 'MCBF', | |||
meta: { title: 'MCBF' } | |||
} | |||
] | |||
}] | |||
}, | |||
{ | |||
path: '/basic', | |||
component: Layout, | |||
redirect: '/user/manager', | |||
name: 'ArticleManager', | |||
hidden: true, | |||
meta: { title: routerTitle.basic?.[language] || routerTitle.basic.en, icon: 'form', iconPart: 'ArticleManager', affix: true, required: true, requireToken: true }, | |||
children: [ | |||
{ | |||
@@ -0,0 +1,152 @@ | |||
<!-- | |||
* @Author: DY | |||
* @Date: 2021-12-16 15:41:11 | |||
* @LastEditors: DY | |||
* @LastEditTime: 2022-03-03 15:26:05 | |||
* @Description: E10 | |||
--> | |||
<template> | |||
<div class="app-container"> | |||
<el-form | |||
:model="formData" | |||
:inline="true" | |||
size="medium" | |||
label-width="80px" | |||
> | |||
<el-form-item> | |||
<el-button type="primary" @click="toE10()">E10</el-button> | |||
</el-form-item> | |||
<el-form-item> | |||
<el-button @click="toOEE()">OEE</el-button> | |||
</el-form-item> | |||
<el-form-item> | |||
<el-button @click="toMTTR()">MTTR</el-button> | |||
</el-form-item> | |||
<el-form-item> | |||
<el-button @click="toMCBF()">MCBF</el-button> | |||
</el-form-item> | |||
<!-- <el-form-item :label="$t('module.equipmentManager.recipe.equipmentId')" prop="equipmentName"> | |||
<el-select v-model="formData.equipmentName" :placeholder="$t('module.equipmentManager.recipe.EQselect')" filterable clearable> | |||
<el-option | |||
v-for="(item, index) in eqList" | |||
:key="index" | |||
:label="item.name" | |||
:value="item.name" | |||
/> | |||
</el-select> | |||
</el-form-item> --> | |||
<el-form-item :label="$t('module.equipmentManager.equipmentVisualization.timeSlot')" label-width="100px" prop="time"> | |||
<el-date-picker | |||
v-model="formData.timeSlot" | |||
type="datetimerange" | |||
:start-placeholder="$t('module.orderManage.order.StartTime')" | |||
:end-placeholder="$t('module.orderManage.order.StartTime')" | |||
:range-separator="$t('module.orderManage.order.To')" | |||
clearable | |||
/> | |||
</el-form-item> | |||
<el-form-item> | |||
<el-button type="primary" @click="getList()"> {{ 'btn.search' | i18nFilter }} </el-button> | |||
</el-form-item> | |||
<!-- <el-form-item> | |||
<el-button type="primary" @click="getList()"> {{ 'btn.exportBtn' | i18nFilter }} </el-button> | |||
</el-form-item> --> | |||
</el-form> | |||
<e10Chart v-if="e10Visible" ref="e10Chart" :time1="startTime" :time2="endTime" :name="formData.equipmentName" @equipmentName="seeDetail" /> | |||
<e10-detail-chart v-if="e10Detail" ref="e10DetailChart" :time1="startTime" :time2="endTime" :equipment-name="equipmentName" /> | |||
</div> | |||
</template> | |||
<script> | |||
import e10Chart from './components/e10-chart' | |||
import e10DetailChart from './components/e10Detail-chart' | |||
// import { equipmentList } from '@/api/basicData/Equipment/equipmentInfo' | |||
export default { | |||
name: 'E10', | |||
components: { e10Chart, e10DetailChart }, | |||
data() { | |||
return { | |||
list: [], | |||
startTime: '', | |||
endTime: '', | |||
formData: { | |||
timeSlot: [], | |||
equipmentName: undefined, | |||
current: 1, | |||
size: 10 | |||
}, | |||
e10Visible: false, | |||
e10Detail: false, | |||
equipmentName: '', | |||
eqList: [] | |||
} | |||
}, | |||
created() { | |||
// this.getEqList() | |||
this.getList() | |||
}, | |||
methods: { | |||
async getEqList() { | |||
const res = await equipmentList({ | |||
current: 1, | |||
size: 999 | |||
}) | |||
if (res.code === 0) { | |||
this.eqList = res.data | |||
} | |||
}, | |||
toE10() { | |||
this.$router.push({ | |||
name: 'E10' | |||
}) | |||
}, | |||
toOEE() { | |||
this.$router.push({ | |||
name: 'OEE' | |||
}) | |||
}, | |||
toMTTR() { | |||
this.$router.push({ | |||
name: 'MTTR' | |||
}) | |||
}, | |||
toMCBF() { | |||
this.$router.push({ | |||
name: 'MCBF' | |||
}) | |||
}, | |||
seeDetail(name) { | |||
this.equipmentName = name | |||
this.e10Visible = false | |||
this.e10Detail = true | |||
setTimeout(() => { | |||
this.$refs.e10DetailChart.getList() | |||
}, 60) | |||
}, | |||
getList() { | |||
if (this.formData.timeSlot.length !== 0) { | |||
this.startTime = this.formData.timeSlot[0] | |||
this.endTime = this.formData.timeSlot[1] | |||
this.$nextTick(() => { | |||
this.e10Visible = true | |||
setTimeout(() => { | |||
this.$refs.e10Chart.getList() | |||
}, 60) | |||
}) | |||
} | |||
} | |||
} | |||
} | |||
</script> | |||
<style scoped> | |||
.edit-input { | |||
padding-right: 100px; | |||
} | |||
.cancel-btn { | |||
position: absolute; | |||
right: 15px; | |||
top: 10px; | |||
} | |||
</style> |
@@ -0,0 +1,151 @@ | |||
<!-- | |||
* @Author: DY | |||
* @Date: 2021-12-16 15:41:11 | |||
* @LastEditors: DY | |||
* @LastEditTime: 2022-03-03 15:26:28 | |||
* @Description: MCBF | |||
--> | |||
<template> | |||
<div class="app-container"> | |||
<el-form | |||
:model="formData" | |||
:inline="true" | |||
size="medium" | |||
label-width="80px" | |||
> | |||
<el-form-item> | |||
<el-button @click="toE10()">E10</el-button> | |||
</el-form-item> | |||
<el-form-item> | |||
<el-button @click="toOEE()">OEE</el-button> | |||
</el-form-item> | |||
<el-form-item> | |||
<el-button @click="toMTTR()">MTTR</el-button> | |||
</el-form-item> | |||
<el-form-item> | |||
<el-button type="primary" @click="toMCBF()">MCBF</el-button> | |||
</el-form-item> | |||
<!-- <el-form-item :label="$t('module.equipmentManager.recipe.equipmentId')" prop="equipmentName"> | |||
<el-select v-model="formData.equipmentName" :placeholder="$t('module.equipmentManager.recipe.EQselect')" filterable clearable> | |||
<el-option | |||
v-for="(item, index) in eqList" | |||
:key="index" | |||
:label="item.name" | |||
:value="item.name" | |||
/> | |||
</el-select> | |||
</el-form-item> --> | |||
<el-form-item :label="$t('module.equipmentManager.equipmentVisualization.timeSlot')" label-width="100px" prop="time"> | |||
<el-date-picker | |||
v-model="formData.timeSlot" | |||
type="datetimerange" | |||
:start-placeholder="$t('module.orderManage.order.StartTime')" | |||
:end-placeholder="$t('module.orderManage.order.StartTime')" | |||
:range-separator="$t('module.orderManage.order.To')" | |||
clearable | |||
/> | |||
</el-form-item> | |||
<el-form-item> | |||
<el-button type="primary" @click="getList()"> {{ 'btn.search' | i18nFilter }} </el-button> | |||
</el-form-item> | |||
<!-- <el-form-item> | |||
<el-button type="primary" @click="getList()"> {{ 'btn.exportBtn' | i18nFilter }} </el-button> | |||
</el-form-item> --> | |||
</el-form> | |||
<mcbfChart v-if="mcbfVisible" ref="mcbfChart" :time1="startTime" :time2="endTime" @equipmentName="seeDetail" /> | |||
<mcbf-detail-chart v-if="mcbfDetail" ref="mcbfDetailChart" :time1="startTime" :time2="endTime" :equipment-name="equipmentName" /> | |||
</div> | |||
</template> | |||
<script> | |||
import mcbfChart from './components/mcbf-chart' | |||
import mcbfDetailChart from './components/mcbfDetail-chart' | |||
// import { equipmentList } from '@/api/basicData/Equipment/equipmentInfo' | |||
export default { | |||
name: 'MCBF', | |||
components: { mcbfChart, mcbfDetailChart }, | |||
data() { | |||
return { | |||
list: [], | |||
startTime: '', | |||
endTime: '', | |||
formData: { | |||
timeSlot: [], | |||
current: 1, | |||
size: 10 | |||
}, | |||
mcbfVisible: false, | |||
mcbfDetail: false, | |||
equipmentName: '', | |||
eqList: [] | |||
} | |||
}, | |||
created() { | |||
// this.getEqList() | |||
this.getList() | |||
}, | |||
methods: { | |||
async getEqList() { | |||
const res = await equipmentList({ | |||
current: 1, | |||
size: 999 | |||
}) | |||
if (res.code === 0) { | |||
this.eqList = res.data | |||
} | |||
}, | |||
toE10() { | |||
this.$router.push({ | |||
name: 'E10' | |||
}) | |||
}, | |||
toOEE() { | |||
this.$router.push({ | |||
name: 'OEE' | |||
}) | |||
}, | |||
toMTTR() { | |||
this.$router.push({ | |||
name: 'MTTR' | |||
}) | |||
}, | |||
toMCBF() { | |||
this.$router.push({ | |||
name: 'MCBF' | |||
}) | |||
}, | |||
seeDetail(name) { | |||
this.equipmentName = name | |||
this.mcbfVisible = false | |||
this.mcbfDetail = true | |||
setTimeout(() => { | |||
this.$refs.mcbfDetailChart.getList() | |||
}, 60) | |||
}, | |||
getList() { | |||
if (this.formData.timeSlot.length !== 0) { | |||
this.startTime = this.formData.timeSlot[0] | |||
this.endTime = this.formData.timeSlot[1] | |||
this.$nextTick(() => { | |||
this.mcbfVisible = true | |||
setTimeout(() => { | |||
this.$refs.mcbfChart.getList() | |||
}, 60) | |||
}) | |||
} | |||
} | |||
} | |||
} | |||
</script> | |||
<style scoped> | |||
.edit-input { | |||
padding-right: 100px; | |||
} | |||
.cancel-btn { | |||
position: absolute; | |||
right: 15px; | |||
top: 10px; | |||
} | |||
</style> |
@@ -0,0 +1,151 @@ | |||
<!-- | |||
* @Author: DY | |||
* @Date: 2021-12-16 15:41:11 | |||
* @LastEditors: DY | |||
* @LastEditTime: 2022-03-03 15:26:44 | |||
* @Description: MTTR | |||
--> | |||
<template> | |||
<div class="app-container"> | |||
<el-form | |||
:model="formData" | |||
:inline="true" | |||
size="medium" | |||
label-width="80px" | |||
> | |||
<el-form-item> | |||
<el-button @click="toE10()">E10</el-button> | |||
</el-form-item> | |||
<el-form-item> | |||
<el-button @click="toOEE()">OEE</el-button> | |||
</el-form-item> | |||
<el-form-item> | |||
<el-button type="primary" @click="toMTTR()">MTTR</el-button> | |||
</el-form-item> | |||
<el-form-item> | |||
<el-button @click="toMCBF()">MCBF</el-button> | |||
</el-form-item> | |||
<!-- <el-form-item :label="$t('module.equipmentManager.recipe.equipmentId')" prop="equipmentName"> | |||
<el-select v-model="formData.equipmentName" :placeholder="$t('module.equipmentManager.recipe.EQselect')" filterable clearable> | |||
<el-option | |||
v-for="(item, index) in eqList" | |||
:key="index" | |||
:label="item.name" | |||
:value="item.name" | |||
/> | |||
</el-select> | |||
</el-form-item> --> | |||
<el-form-item :label="$t('module.equipmentManager.equipmentVisualization.timeSlot')" label-width="100px" prop="time"> | |||
<el-date-picker | |||
v-model="formData.timeSlot" | |||
type="datetimerange" | |||
:start-placeholder="$t('module.orderManage.order.StartTime')" | |||
:end-placeholder="$t('module.orderManage.order.StartTime')" | |||
:range-separator="$t('module.orderManage.order.To')" | |||
clearable | |||
/> | |||
</el-form-item> | |||
<el-form-item> | |||
<el-button type="primary" @click="getList()"> {{ 'btn.search' | i18nFilter }} </el-button> | |||
</el-form-item> | |||
<!-- <el-form-item> | |||
<el-button type="primary" @click="getList()"> {{ 'btn.exportBtn' | i18nFilter }} </el-button> | |||
</el-form-item> --> | |||
</el-form> | |||
<mttrChart v-if="mttrVisible" ref="mttrChart" :time1="startTime" :time2="endTime" @equipmentName="seeDetail" /> | |||
<mttr-detail-chart v-if="mttrDetail" ref="mttrDetailChart" :time1="startTime" :time2="endTime" :equipment-name="equipmentName" /> | |||
</div> | |||
</template> | |||
<script> | |||
import mttrChart from './components/mttr-chart' | |||
import mttrDetailChart from './components/mttrDetail-chart' | |||
// import { equipmentList } from '@/api/basicData/Equipment/equipmentInfo' | |||
export default { | |||
name: 'MTTR', | |||
components: { mttrChart, mttrDetailChart }, | |||
data() { | |||
return { | |||
list: [], | |||
startTime: '', | |||
endTime: '', | |||
formData: { | |||
timeSlot: [], | |||
current: 1, | |||
size: 10 | |||
}, | |||
mttrVisible: false, | |||
mttrDetail: false, | |||
equipmentName: '', | |||
eqList: [] | |||
} | |||
}, | |||
created() { | |||
// this.getEqList() | |||
this.getList() | |||
}, | |||
methods: { | |||
async getEqList() { | |||
const res = await equipmentList({ | |||
current: 1, | |||
size: 999 | |||
}) | |||
if (res.code === 0) { | |||
this.eqList = res.data | |||
} | |||
}, | |||
toE10() { | |||
this.$router.push({ | |||
name: 'E10' | |||
}) | |||
}, | |||
toOEE() { | |||
this.$router.push({ | |||
name: 'OEE' | |||
}) | |||
}, | |||
toMTTR() { | |||
this.$router.push({ | |||
name: 'MTTR' | |||
}) | |||
}, | |||
toMCBF() { | |||
this.$router.push({ | |||
name: 'MCBF' | |||
}) | |||
}, | |||
seeDetail(name) { | |||
this.equipmentName = name | |||
this.mttrVisible = false | |||
this.mttrDetail = true | |||
setTimeout(() => { | |||
this.$refs.mttrDetailChart.getList() | |||
}, 60) | |||
}, | |||
getList() { | |||
if (this.formData.timeSlot.length !== 0) { | |||
this.startTime = this.formData.timeSlot[0] | |||
this.endTime = this.formData.timeSlot[1] | |||
this.$nextTick(() => { | |||
this.mttrVisible = true | |||
setTimeout(() => { | |||
this.$refs.mttrChart.getList() | |||
}, 60) | |||
}) | |||
} | |||
} | |||
} | |||
} | |||
</script> | |||
<style scoped> | |||
.edit-input { | |||
padding-right: 100px; | |||
} | |||
.cancel-btn { | |||
position: absolute; | |||
right: 15px; | |||
top: 10px; | |||
} | |||
</style> |
@@ -0,0 +1,151 @@ | |||
<!-- | |||
* @Author: DY | |||
* @Date: 2021-12-16 15:41:11 | |||
* @LastEditors: DY | |||
* @LastEditTime: 2022-03-03 15:26:56 | |||
* @Description: OEE | |||
--> | |||
<template> | |||
<div class="app-container"> | |||
<el-form | |||
:model="formData" | |||
:inline="true" | |||
size="medium" | |||
label-width="80px" | |||
> | |||
<el-form-item> | |||
<el-button @click="toE10()">E10</el-button> | |||
</el-form-item> | |||
<el-form-item> | |||
<el-button type="primary" @click="toOEE()">OEE</el-button> | |||
</el-form-item> | |||
<el-form-item> | |||
<el-button @click="toMTTR()">MTTR</el-button> | |||
</el-form-item> | |||
<el-form-item> | |||
<el-button @click="toMCBF()">MCBF</el-button> | |||
</el-form-item> | |||
<!-- <el-form-item :label="$t('module.equipmentManager.recipe.equipmentId')" prop="equipmentName"> | |||
<el-select v-model="formData.equipmentName" :placeholder="$t('module.equipmentManager.recipe.EQselect')" filterable clearable> | |||
<el-option | |||
v-for="(item, index) in eqList" | |||
:key="index" | |||
:label="item.name" | |||
:value="item.name" | |||
/> | |||
</el-select> | |||
</el-form-item> --> | |||
<el-form-item :label="$t('module.equipmentManager.equipmentVisualization.timeSlot')" label-width="100px" prop="time"> | |||
<el-date-picker | |||
v-model="formData.timeSlot" | |||
type="datetimerange" | |||
:start-placeholder="$t('module.orderManage.order.StartTime')" | |||
:end-placeholder="$t('module.orderManage.order.StartTime')" | |||
:range-separator="$t('module.orderManage.order.To')" | |||
clearable | |||
/> | |||
</el-form-item> | |||
<el-form-item> | |||
<el-button type="primary" @click="getList()"> {{ 'btn.search' | i18nFilter }} </el-button> | |||
</el-form-item> | |||
<!-- <el-form-item> | |||
<el-button type="primary" @click="getList()"> {{ 'btn.exportBtn' | i18nFilter }} </el-button> | |||
</el-form-item> --> | |||
</el-form> | |||
<oeeChart v-if="oeeVisible" ref="oeeChart" :time1="startTime" :time2="endTime" @equipmentName="seeDetail" /> | |||
<oee-detail-chart v-if="oeeDetail" ref="oeeDetailChart" :time1="startTime" :time2="endTime" :equipment-name="equipmentName" /> | |||
</div> | |||
</template> | |||
<script> | |||
import oeeChart from './components/oee-chart' | |||
import oeeDetailChart from './components/oeeDetail-chart' | |||
// import { equipmentList } from '@/api/basicData/Equipment/equipmentInfo' | |||
export default { | |||
name: 'OEE', | |||
components: { oeeChart, oeeDetailChart }, | |||
data() { | |||
return { | |||
list: [], | |||
startTime: '', | |||
endTime: '', | |||
formData: { | |||
timeSlot: [], | |||
current: 1, | |||
size: 10 | |||
}, | |||
oeeVisible: false, | |||
oeeDetail: false, | |||
equipmentName: '', | |||
eqList: [] | |||
} | |||
}, | |||
created() { | |||
// this.getEqList() | |||
this.getList() | |||
}, | |||
methods: { | |||
async getEqList() { | |||
const res = await equipmentList({ | |||
current: 1, | |||
size: 999 | |||
}) | |||
if (res.code === 0) { | |||
this.eqList = res.data | |||
} | |||
}, | |||
toE10() { | |||
this.$router.push({ | |||
name: 'E10' | |||
}) | |||
}, | |||
toOEE() { | |||
this.$router.push({ | |||
name: 'OEE' | |||
}) | |||
}, | |||
toMTTR() { | |||
this.$router.push({ | |||
name: 'MTTR' | |||
}) | |||
}, | |||
toMCBF() { | |||
this.$router.push({ | |||
name: 'MCBF' | |||
}) | |||
}, | |||
seeDetail(name) { | |||
this.equipmentName = name | |||
this.oeeVisible = false | |||
this.oeeDetail = true | |||
setTimeout(() => { | |||
this.$refs.oeeDetailChart.getList() | |||
}, 60) | |||
}, | |||
getList() { | |||
if (this.formData.timeSlot.length !== 0) { | |||
this.startTime = this.formData.timeSlot[0] | |||
this.endTime = this.formData.timeSlot[1] | |||
this.$nextTick(() => { | |||
this.oeeVisible = true | |||
setTimeout(() => { | |||
this.$refs.oeeChart.getList() | |||
}, 60) | |||
}) | |||
} | |||
} | |||
} | |||
} | |||
</script> | |||
<style scoped> | |||
.edit-input { | |||
padding-right: 100px; | |||
} | |||
.cancel-btn { | |||
position: absolute; | |||
right: 15px; | |||
top: 10px; | |||
} | |||
</style> |
@@ -0,0 +1,134 @@ | |||
<!-- | |||
* @Author: zwq | |||
* @Date: 2020-12-29 15:41:11 | |||
* @LastEditors: DY | |||
* @LastEditTime: 2022-03-03 16:22:24 | |||
* @Description: E10详情表格 | |||
--> | |||
<template> | |||
<div> | |||
<base-table | |||
:page="listQuery.current" | |||
:limit="listQuery.size" | |||
:table-config="tableProps" | |||
:table-data="list" | |||
:is-loading="listLoading" | |||
/> | |||
<pagination :total="total" :page.sync="listQuery.current" :limit.sync="listQuery.size" @pagination="init" /> | |||
</div> | |||
</template> | |||
<script> | |||
import i18n from '@/lang' | |||
import BaseTable from '@/components/BaseTable' | |||
import Pagination from '@/components/Pagination' | |||
import { timeFormatter } from '@/filters' | |||
// import { getE10StackDetail } from '@/api/equipment/infoPandect' | |||
/** | |||
* 表格表头配置项 TypeScript接口注释 | |||
* tableConfig<ConfigItem> = [] | |||
* | |||
* Interface ConfigItem = { | |||
* prop: string, | |||
* label: string, | |||
* width: string, | |||
* align: string, | |||
* subcomponent: function, | |||
* filter: function | |||
* } | |||
* | |||
* | |||
*/ | |||
const tableProps = [ | |||
{ | |||
prop: 'equipmentName', | |||
label: i18n.t('module.equipmentManager.maintainplan.equipmentId'), | |||
align: 'center' | |||
}, { | |||
prop: 'status', | |||
label: i18n.t('module.equipmentManager.monitoringInfo.E10status'), | |||
align: 'center' | |||
}, { | |||
prop: 'previousStatus', | |||
label: i18n.t('module.equipmentManager.monitoringInfo.laterE10Status'), | |||
align: 'center' | |||
}, { | |||
prop: 'endTime', | |||
label: i18n.t('module.equipmentManager.monitoringInfo.E10endTime'), | |||
filter: timeFormatter, | |||
align: 'center' | |||
}, { | |||
prop: 'durationTime', | |||
label: i18n.t('module.equipmentManager.monitoringInfo.duration'), | |||
align: 'center' | |||
} | |||
] | |||
export default { | |||
name: '', | |||
components: { BaseTable, Pagination }, | |||
props: { | |||
time1: { | |||
type: Date, | |||
default: () => { | |||
return '' | |||
} | |||
}, | |||
time2: { | |||
type: Date, | |||
default: () => { | |||
return '' | |||
} | |||
}, | |||
equipmentName: { | |||
type: String, | |||
default: () => { | |||
return '' | |||
} | |||
} | |||
}, | |||
data() { | |||
return { | |||
total: 0, | |||
tableProps, | |||
list: [], | |||
listLoading: false, | |||
listQuery: { | |||
current: 1, | |||
size: 10 | |||
} | |||
} | |||
}, | |||
mounted() { | |||
// this.init() | |||
}, | |||
methods: { | |||
init() { | |||
this.listQuery.startTime = this.time1 | |||
this.listQuery.endTime = this.time2 | |||
this.listQuery.equipmentName = this.equipmentName | |||
getE10StackDetail(this.listQuery).then(res => { | |||
if (res.data !== []) { | |||
this.list = res.data.detail.records | |||
this.total = res.data.detail.total | |||
this.list.forEach(item => { | |||
item.equipmentName = this.equipmentName | |||
}) | |||
} | |||
}) | |||
} | |||
} | |||
} | |||
</script> | |||
<style scoped> | |||
.edit-input { | |||
padding-right: 100px; | |||
} | |||
.cancel-btn { | |||
position: absolute; | |||
right: 15px; | |||
top: 10px; | |||
} | |||
</style> |
@@ -0,0 +1,94 @@ | |||
<!-- | |||
* @Author: zwq | |||
* @Date: 2020-12-29 15:41:11 | |||
* @LastEditors: DY | |||
* @LastEditTime: 2022-03-03 16:47:23 | |||
* @Description: MCBF详情表格 | |||
--> | |||
<template> | |||
<div> | |||
<base-table | |||
:table-config="tableProps" | |||
:table-data="list" | |||
:is-loading="listLoading" | |||
/> | |||
</div> | |||
</template> | |||
<script> | |||
import i18n from '@/lang' | |||
import BaseTable from '@/components/BaseTable' | |||
/** | |||
* 表格表头配置项 TypeScript接口注释 | |||
* tableConfig<ConfigItem> = [] | |||
* | |||
* Interface ConfigItem = { | |||
* prop: string, | |||
* label: string, | |||
* width: string, | |||
* align: string, | |||
* subcomponent: function, | |||
* filter: function | |||
* } | |||
* | |||
* | |||
*/ | |||
const tableProps = [ | |||
{ | |||
prop: 'tmc', | |||
label: i18n.t('module.equipmentManager.monitoringInfo.allCycles'), | |||
align: 'center' | |||
}, { | |||
prop: 'emc', | |||
label: i18n.t('module.equipmentManager.monitoringInfo.badTimes'), | |||
align: 'center' | |||
}, { | |||
prop: 'time', | |||
label: i18n.t('module.equipmentManager.monitoringInfo.time'), | |||
align: 'center' | |||
}, { | |||
prop: 'mtbf', | |||
label: i18n.t('module.equipmentManager.monitoringInfo.MCBF'), | |||
align: 'center' | |||
} | |||
] | |||
export default { | |||
name: '', | |||
components: { BaseTable }, | |||
props: { | |||
tableData: { | |||
type: Array, | |||
default: () => { [] } | |||
} | |||
}, | |||
data() { | |||
return { | |||
total: 0, | |||
tableProps, | |||
list: [], | |||
listLoading: false | |||
} | |||
}, | |||
mounted() { | |||
// this.init() | |||
}, | |||
methods: { | |||
init() { | |||
this.list = this.tableData | |||
} | |||
} | |||
} | |||
</script> | |||
<style scoped> | |||
.edit-input { | |||
padding-right: 100px; | |||
} | |||
.cancel-btn { | |||
position: absolute; | |||
right: 15px; | |||
top: 10px; | |||
} | |||
</style> |
@@ -0,0 +1,132 @@ | |||
<!-- | |||
* @Author: zwq | |||
* @Date: 2020-12-29 15:41:11 | |||
* @LastEditors: DY | |||
* @LastEditTime: 2022-03-03 16:46:06 | |||
* @Description: Mttr详情表格 | |||
--> | |||
<template> | |||
<div> | |||
<base-table | |||
:page="listQuery.current" | |||
:limit="listQuery.size" | |||
:table-config="tableProps" | |||
:table-data="list" | |||
:is-loading="listLoading" | |||
/> | |||
<pagination :total="total" :page.sync="listQuery.current" :limit.sync="listQuery.size" @pagination="init" /> | |||
</div> | |||
</template> | |||
<script> | |||
import i18n from '@/lang' | |||
import BaseTable from '@/components/BaseTable' | |||
import Pagination from '@/components/Pagination' | |||
import { timeFormatter } from '@/filters' | |||
// import { getMttrDetail } from '@/api/equipment/infoPandect' | |||
/** | |||
* 表格表头配置项 TypeScript接口注释 | |||
* tableConfig<ConfigItem> = [] | |||
* | |||
* Interface ConfigItem = { | |||
* prop: string, | |||
* label: string, | |||
* width: string, | |||
* align: string, | |||
* subcomponent: function, | |||
* filter: function | |||
* } | |||
* | |||
* | |||
*/ | |||
const tableProps = [ | |||
{ | |||
prop: 'previousStatus', | |||
label: i18n.t('module.equipmentManager.monitoringInfo.previousStatus'), | |||
align: 'center' | |||
}, { | |||
prop: 'status', | |||
label: i18n.t('module.art.status'), | |||
align: 'center' | |||
}, { | |||
prop: 'startTime', | |||
label: i18n.t('module.equipmentManager.equipmentParams.startTime'), | |||
filter: timeFormatter, | |||
align: 'center' | |||
}, { | |||
prop: 'endTime', | |||
label: i18n.t('module.equipmentManager.equipmentParams.endTime'), | |||
filter: timeFormatter, | |||
align: 'center' | |||
}, { | |||
prop: 'durationTime', | |||
label: i18n.t('module.equipmentManager.monitoringInfo.duration'), | |||
align: 'center' | |||
} | |||
] | |||
export default { | |||
name: '', | |||
components: { BaseTable, Pagination }, | |||
props: { | |||
time1: { | |||
type: Date, | |||
default: () => { | |||
return '' | |||
} | |||
}, | |||
time2: { | |||
type: Date, | |||
default: () => { | |||
return '' | |||
} | |||
}, | |||
equipmentName: { | |||
type: String, | |||
default: () => { | |||
return '' | |||
} | |||
} | |||
}, | |||
data() { | |||
return { | |||
total: 0, | |||
tableProps, | |||
list: [], | |||
listLoading: false, | |||
listQuery: { | |||
current: 1, | |||
size: 10 | |||
} | |||
} | |||
}, | |||
mounted() { | |||
// this.init() | |||
}, | |||
methods: { | |||
init() { | |||
this.listQuery.startTime = this.time1 | |||
this.listQuery.endTime = this.time2 | |||
this.listQuery.equipmentName = this.equipmentName | |||
getMttrDetail(this.listQuery).then(res => { | |||
if (res.data !== []) { | |||
this.list = res.data.detail.records | |||
this.total = res.data.detail.total | |||
} | |||
}) | |||
} | |||
} | |||
} | |||
</script> | |||
<style scoped> | |||
.edit-input { | |||
padding-right: 100px; | |||
} | |||
.cancel-btn { | |||
position: absolute; | |||
right: 15px; | |||
top: 10px; | |||
} | |||
</style> |
@@ -0,0 +1,100 @@ | |||
<!-- | |||
* @Author: zwq | |||
* @Date: 2020-12-29 15:41:11 | |||
* @LastEditors: DY | |||
* @LastEditTime: 2022-03-03 16:38:52 | |||
* @Description: OEE详情表格 | |||
--> | |||
<template> | |||
<div> | |||
<base-table | |||
:table-config="tableProps" | |||
:table-data="list" | |||
:is-loading="listLoading" | |||
/> | |||
</div> | |||
</template> | |||
<script> | |||
import i18n from '@/lang' | |||
import BaseTable from '@/components/BaseTable' | |||
const tableProps = [ | |||
{ | |||
prop: 'equipmentName', | |||
label: i18n.t('module.equipmentManager.maintainplan.equipmentId'), | |||
align: 'center' | |||
}, { | |||
prop: 'runTime', | |||
label: i18n.t('module.equipmentManager.monitoringInfo.runTime'), | |||
align: 'center' | |||
}, { | |||
prop: 'productiveTime', | |||
label: i18n.t('module.equipmentManager.monitoringInfo.produceTime'), | |||
align: 'center' | |||
}, { | |||
prop: 'productiveCount', | |||
label: i18n.t('module.equipmentManager.monitoringInfo.productiveCount'), | |||
align: 'center' | |||
}, { | |||
prop: 'timeRate', | |||
label: i18n.t('module.equipmentManager.monitoringInfo.timeRate'), | |||
align: 'center' | |||
}, { | |||
prop: 'performanceRate', | |||
label: i18n.t('module.equipmentManager.monitoringInfo.performanceRate'), | |||
align: 'center' | |||
}, { | |||
prop: 'oee', | |||
label: i18n.t('module.equipmentManager.monitoringInfo.oee'), | |||
align: 'center' | |||
} | |||
] | |||
export default { | |||
name: '', | |||
components: { BaseTable }, | |||
props: { | |||
tableData: { | |||
type: Array, | |||
default: () => { [] } | |||
}, | |||
equipmentName: { | |||
type: String, | |||
default: () => { '' } | |||
} | |||
}, | |||
data() { | |||
return { | |||
total: 0, | |||
tableProps, | |||
list: [], | |||
listLoading: false | |||
} | |||
}, | |||
mounted() { | |||
// this.init() | |||
}, | |||
methods: { | |||
init() { | |||
this.list = this.tableData | |||
if (this.list !== []) { | |||
this.list.forEach(item => { | |||
item.equipmentName = this.equipmentName | |||
}) | |||
} | |||
} | |||
} | |||
} | |||
</script> | |||
<style scoped> | |||
.edit-input { | |||
padding-right: 100px; | |||
} | |||
.cancel-btn { | |||
position: absolute; | |||
right: 15px; | |||
top: 10px; | |||
} | |||
</style> |
@@ -0,0 +1,212 @@ | |||
<!-- | |||
* @Author: DY | |||
* @Date: 2021-12-13 16:39:34 | |||
* @LastEditors: DY | |||
* @LastEditTime: 2022-03-03 15:43:32 | |||
* @Description: E10折线柱状图 | |||
--> | |||
<template> | |||
<div> | |||
<div id="monitorChart" :style="{width: '1000px', height: '800px'}" style="margin-left:10%" /> | |||
</div> | |||
</template> | |||
<script> | |||
import echarts from 'echarts' | |||
// import { getE10Stack } from '@/api/equipment/infoPandect' | |||
export default { | |||
props: { | |||
time1: { | |||
type: Date, | |||
default: () => { | |||
return '' | |||
} | |||
}, | |||
time2: { | |||
type: Date, | |||
default: () => { | |||
return '' | |||
} | |||
}, | |||
name: { | |||
type: String, | |||
default: () => { | |||
return '' | |||
} | |||
} | |||
}, | |||
data() { | |||
return { | |||
chart: null, | |||
list: [], | |||
xDataList: [], | |||
engineeringList: [], | |||
nonscheduledDownList: [], | |||
productiveList: [], | |||
rampUpDownList: [], | |||
scheduledDownList: [], | |||
standByList: [], | |||
unscheduledDownList: [] | |||
} | |||
}, | |||
mounted() {}, | |||
beforeDestroy() { | |||
if (!this.chart) { | |||
return | |||
} | |||
this.chart.dispose() | |||
this.chart = null | |||
}, | |||
methods: { | |||
removeData() { | |||
this.xDataList = ['ACOT1', 'ACOT2'] | |||
this.engineeringList = [20, 30] | |||
this.nonscheduledDownList = [20, 20] | |||
this.productiveList = [10, 2] | |||
this.rampUpDownList = [30, 3] | |||
this.scheduledDownList = [8, 15] | |||
this.standByList = [2, 12] | |||
this.unscheduledDownList = [10, 18] | |||
}, | |||
getList() { | |||
this.removeData() | |||
this.init() | |||
}, | |||
init() { | |||
this.chart = echarts.init(document.getElementById('monitorChart')) | |||
const that = this | |||
that.chart.on('click', function(params) { | |||
that.$emit('equipmentName', params.name) | |||
}) | |||
this.chart.setOption({ | |||
tooltip: { | |||
trigger: 'axis', | |||
axisPointer: { | |||
type: 'cross', | |||
crossStyle: { | |||
color: '#999' | |||
} | |||
} | |||
}, | |||
toolbox: { | |||
feature: { | |||
saveAsImage: { show: true } | |||
} | |||
}, | |||
grid: { | |||
left: '3%', | |||
right: '4%', | |||
bottom: '3%', | |||
containLabel: true | |||
}, | |||
xAxis: { | |||
type: 'category', | |||
axisLabel: { | |||
interval: 0, | |||
rotate: -30 | |||
}, | |||
max: 10, | |||
data: this.xDataList | |||
}, | |||
yAxis: { | |||
type: 'value', | |||
min: 0, | |||
max: 100, | |||
axisLabel: { | |||
formatter: '{value}%' | |||
} | |||
}, | |||
series: [ | |||
{ | |||
name: 'engineering', | |||
type: 'bar', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
barWidth: 40, | |||
data: this.engineeringList | |||
}, | |||
{ | |||
name: 'nonscheduledDown', | |||
type: 'bar', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
data: this.nonscheduledDownList | |||
}, | |||
{ | |||
name: 'productive', | |||
type: 'bar', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
data: this.productiveList | |||
}, | |||
{ | |||
name: 'rampUpDown', | |||
type: 'bar', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
data: this.rampUpDownList | |||
}, | |||
{ | |||
name: 'scheduledDown', | |||
type: 'bar', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
data: this.scheduledDownList | |||
}, | |||
{ | |||
name: 'standBy', | |||
type: 'bar', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
data: this.standByList | |||
}, | |||
{ | |||
name: 'unscheduledDown', | |||
type: 'bar', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
data: this.unscheduledDownList | |||
} | |||
] | |||
}) | |||
} | |||
} | |||
} | |||
</script> |
@@ -0,0 +1,253 @@ | |||
<!-- | |||
* @Author: DY | |||
* @Date: 2021-12-13 16:39:34 | |||
* @LastEditors: DY | |||
* @LastEditTime: 2022-03-03 16:26:34 | |||
* @Description: E10详情堆积图 | |||
--> | |||
<template> | |||
<div> | |||
<div> | |||
<el-button-group> | |||
<el-button @click="byYear">年</el-button> | |||
<el-button @click="byQuarterly">季度</el-button> | |||
<el-button @click="byMonth">月</el-button> | |||
<el-button @click="byWeek">周</el-button> | |||
<el-button @click="byDay">天</el-button> | |||
</el-button-group> | |||
</div> | |||
<div id="monitorChart" :style="{width: '700px', height: '550px'}" style="margin-left:10%" /> | |||
<e10-table v-if="tableVisible" :time1="startTime" :time2="endTime" :equipment-name="name" /> | |||
</div> | |||
</template> | |||
<script> | |||
import echarts from 'echarts' | |||
// import { getE10StackDetail } from '@/api/equipment/infoPandect' | |||
import E10Table from './E10Table' | |||
export default { | |||
components: { E10Table }, | |||
props: { | |||
time1: { | |||
type: Date, | |||
default: () => { | |||
return '' | |||
} | |||
}, | |||
time2: { | |||
type: Date, | |||
default: () => { | |||
return '' | |||
} | |||
}, | |||
equipmentName: { | |||
type: String, | |||
default: () => { | |||
return '' | |||
} | |||
} | |||
}, | |||
data() { | |||
return { | |||
chart: null, | |||
tableVisible: false, | |||
equipmentDetail: [], | |||
list: [], | |||
xDataList: [], | |||
engineeringList: [], | |||
nonscheduledDownList: [], | |||
productiveList: [], | |||
rampUpDownList: [], | |||
scheduledDownList: [], | |||
standByList: [], | |||
unscheduledDownList: [], | |||
startTime: '', | |||
endTime: '', | |||
name: '' | |||
} | |||
}, | |||
mounted() { | |||
this.startTime = this.time1 | |||
this.endTime = this.time2 | |||
this.name = this.equipmentName | |||
}, | |||
beforeDestroy() { | |||
if (!this.chart) { | |||
return | |||
} | |||
this.chart.dispose() | |||
this.chart = null | |||
}, | |||
methods: { | |||
getDataList(params) { | |||
console.log(params) | |||
}, | |||
byYear() { | |||
this.removeData() | |||
this.setChart(this.list.年) | |||
}, | |||
byQuarterly() { | |||
this.removeData() | |||
this.setChart(this.list.季度) | |||
}, | |||
byMonth() { | |||
this.removeData() | |||
this.setChart(this.list.月) | |||
}, | |||
byWeek() { | |||
this.removeData() | |||
this.setChart(this.list.周) | |||
}, | |||
byDay() { | |||
this.removeData() | |||
this.setChart(this.list.天) | |||
}, | |||
setChart(list) { | |||
this.init() | |||
}, | |||
removeData() { | |||
// this.xDataList = [this.name] | |||
this.engineeringList = [20] | |||
this.nonscheduledDownList = [20] | |||
this.productiveList = [10] | |||
this.rampUpDownList = [30] | |||
this.scheduledDownList = [8] | |||
this.standByList = [2] | |||
this.unscheduledDownList = [10] | |||
}, | |||
getList() { | |||
this.xDataList = [this.name] | |||
this.tableVisible = true | |||
}, | |||
init() { | |||
this.chart = echarts.init(document.getElementById('monitorChart')) | |||
this.chart.on('click', function(params) { | |||
console.log('113d', params.name) | |||
}) | |||
this.chart.setOption({ | |||
tooltip: { | |||
trigger: 'axis', | |||
axisPointer: { | |||
type: 'cross', | |||
crossStyle: { | |||
color: '#999' | |||
} | |||
} | |||
}, | |||
toolbox: { | |||
feature: { | |||
saveAsImage: { show: true } | |||
} | |||
}, | |||
grid: { | |||
left: '3%', | |||
right: '4%', | |||
bottom: '3%', | |||
containLabel: true | |||
}, | |||
xAxis: { | |||
type: 'category', | |||
max: 10, | |||
axisLabel: { | |||
interval: 0, | |||
rotate: -30 | |||
}, | |||
data: this.xDataList | |||
}, | |||
yAxis: { | |||
type: 'value' | |||
}, | |||
series: [ | |||
{ | |||
name: 'engineering', | |||
type: 'bar', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
data: this.engineeringList | |||
}, | |||
{ | |||
name: 'nonscheduledDown', | |||
type: 'bar', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
data: this.nonscheduledDownList | |||
}, | |||
{ | |||
name: 'productive', | |||
type: 'bar', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
data: this.productiveList | |||
}, | |||
{ | |||
name: 'rampUpDown', | |||
type: 'bar', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
data: this.rampUpDownList | |||
}, | |||
{ | |||
name: 'scheduledDown', | |||
type: 'bar', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
data: this.scheduledDownList | |||
}, | |||
{ | |||
name: 'standBy', | |||
type: 'bar', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
data: this.standByList | |||
}, | |||
{ | |||
name: 'unscheduledDown', | |||
type: 'bar', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
data: this.unscheduledDownList | |||
} | |||
] | |||
}) | |||
} | |||
} | |||
} | |||
</script> |
@@ -0,0 +1,137 @@ | |||
<!-- | |||
* @Author: DY | |||
* @Date: 2021-12-13 16:39:34 | |||
* @LastEditors: DY | |||
* @LastEditTime: 2022-03-03 16:48:01 | |||
* @Description: Mcbf折线柱状图 | |||
--> | |||
<template> | |||
<div> | |||
<div id="monitorChart" :style="{width: '1000px', height: '800px'}" style="margin-left:10%" /> | |||
</div> | |||
</template> | |||
<script> | |||
import echarts from 'echarts' | |||
// import { getAllMtbf } from '@/api/equipment/infoPandect' | |||
export default { | |||
props: { | |||
time1: { | |||
type: Date, | |||
default: () => { | |||
return '' | |||
} | |||
}, | |||
time2: { | |||
type: Date, | |||
default: () => { | |||
return '' | |||
} | |||
} | |||
}, | |||
data() { | |||
return { | |||
chart: null, | |||
list: [], | |||
xDataList: [], | |||
yDataList: [] | |||
} | |||
}, | |||
mounted() {}, | |||
beforeDestroy() { | |||
if (!this.chart) { | |||
return | |||
} | |||
this.chart.dispose() | |||
this.chart = null | |||
}, | |||
methods: { | |||
removeData() { | |||
this.xDataList = ['ACOT1', 'ACOT2', 'ACOT-a', 'ACOT-b'] | |||
this.yDataList = [22, 40, 66, 44] | |||
}, | |||
getList() { | |||
this.removeData() | |||
this.init() | |||
}, | |||
init() { | |||
this.chart = echarts.init(document.getElementById('monitorChart')) | |||
const that = this | |||
that.chart.on('click', function(params) { | |||
that.$emit('equipmentName', params.name) | |||
}) | |||
this.chart.setOption({ | |||
tooltip: { | |||
trigger: 'axis', | |||
axisPointer: { | |||
type: 'cross', | |||
crossStyle: { | |||
color: '#999' | |||
} | |||
} | |||
}, | |||
toolbox: { | |||
feature: { | |||
saveAsImage: { show: true } | |||
} | |||
}, | |||
grid: { | |||
left: '3%', | |||
right: '4%', | |||
bottom: '3%', | |||
containLabel: true | |||
}, | |||
xAxis: { | |||
type: 'category', | |||
axisLabel: { | |||
interval: 0, | |||
rotate: -30 | |||
}, | |||
max: 10, | |||
data: this.xDataList | |||
}, | |||
yAxis: [{ | |||
type: 'value', | |||
min: 0, | |||
max: 100, | |||
axisLabel: { | |||
formatter: '{value}次' | |||
} | |||
}, | |||
{ | |||
type: 'value', | |||
min: 0, | |||
max: 100, | |||
axisLabel: { | |||
formatter: '{value}次' | |||
} | |||
} | |||
], | |||
series: [ | |||
{ | |||
name: '稼动率值', | |||
type: 'bar', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
barWidth: 40, | |||
data: this.yDataList | |||
}, | |||
{ | |||
name: '稼动率值', | |||
type: 'line', | |||
yAxisIndex: 1, | |||
data: this.yDataList | |||
} | |||
] | |||
}) | |||
} | |||
} | |||
} | |||
</script> |
@@ -0,0 +1,185 @@ | |||
<!-- | |||
* @Author: DY | |||
* @Date: 2021-12-13 16:39:34 | |||
* @LastEditors: DY | |||
* @LastEditTime: 2022-03-03 16:48:53 | |||
* @Description: MCBF详情堆积图 | |||
--> | |||
<template> | |||
<div> | |||
<div> | |||
<el-button-group> | |||
<el-button @click="byYear">年</el-button> | |||
<el-button @click="byQuarterly">季度</el-button> | |||
<el-button @click="byMonth">月</el-button> | |||
<el-button @click="byWeek">周</el-button> | |||
<el-button @click="byDay">天</el-button> | |||
</el-button-group> | |||
</div> | |||
<div id="monitorChart" :style="{width: '700px', height: '550px'}" style="margin-left:10%" /> | |||
<mcbf-table v-if="tableVisible" ref="tableRef" :table-data="tableData" /> | |||
</div> | |||
</template> | |||
<script> | |||
import echarts from 'echarts' | |||
// import { getMcbfDetail } from '@/api/equipment/infoPandect' | |||
import McbfTable from './McbfTable' | |||
export default { | |||
components: { McbfTable }, | |||
props: { | |||
time1: { | |||
type: Date, | |||
default: () => { | |||
return '' | |||
} | |||
}, | |||
time2: { | |||
type: Date, | |||
default: () => { | |||
return '' | |||
} | |||
}, | |||
equipmentName: { | |||
type: String, | |||
default: () => { | |||
return '' | |||
} | |||
} | |||
}, | |||
data() { | |||
return { | |||
chart: null, | |||
tableVisible: false, | |||
tableData: [], | |||
equipmentDetail: [], | |||
list: [], | |||
xDataList: [], | |||
yDataList: [], | |||
startTime: '', | |||
endTime: '', | |||
name: '' | |||
} | |||
}, | |||
mounted() { | |||
this.startTime = this.time1 | |||
this.endTime = this.time2 | |||
this.name = this.equipmentName | |||
}, | |||
beforeDestroy() { | |||
if (!this.chart) { | |||
return | |||
} | |||
this.chart.dispose() | |||
this.chart = null | |||
}, | |||
methods: { | |||
getDataList(params) { | |||
console.log(params) | |||
}, | |||
byYear() { | |||
this.removeData() | |||
this.setChart(this.list.年) | |||
this.tableData = this.list.年 | |||
setTimeout(() => { | |||
this.$refs.tableRef.init() | |||
}, 60) | |||
}, | |||
byQuarterly() { | |||
this.removeData() | |||
this.setChart(this.list.季度) | |||
this.tableData = this.list.季度 | |||
setTimeout(() => { | |||
this.$refs.tableRef.init() | |||
}, 60) | |||
}, | |||
byMonth() { | |||
this.removeData() | |||
this.setChart(this.list.月) | |||
this.tableData = this.list.月 | |||
setTimeout(() => { | |||
this.$refs.tableRef.init() | |||
}, 60) | |||
}, | |||
byWeek() { | |||
this.removeData() | |||
this.setChart(this.list.周) | |||
this.tableData = this.list.周 | |||
setTimeout(() => { | |||
this.$refs.tableRef.init() | |||
}, 60) | |||
}, | |||
byDay() { | |||
this.removeData() | |||
this.setChart(this.list.天) | |||
this.tableData = this.list.天 | |||
setTimeout(() => { | |||
this.$refs.tableRef.init() | |||
}, 60) | |||
}, | |||
setChart(list) { | |||
this.init() | |||
}, | |||
removeData() { | |||
this.xDataList = [this.name] | |||
this.yDataList = [11, 33, 20, 53, 24] | |||
}, | |||
getList() { | |||
this.tableVisible = true | |||
}, | |||
init() { | |||
this.chart = echarts.init(document.getElementById('monitorChart')) | |||
this.chart.setOption({ | |||
tooltip: { | |||
trigger: 'axis', | |||
axisPointer: { | |||
type: 'cross', | |||
crossStyle: { | |||
color: '#999' | |||
} | |||
} | |||
}, | |||
toolbox: { | |||
feature: { | |||
saveAsImage: { show: true } | |||
} | |||
}, | |||
grid: { | |||
left: '3%', | |||
right: '4%', | |||
bottom: '3%', | |||
containLabel: true | |||
}, | |||
xAxis: { | |||
type: 'category', | |||
max: 10, | |||
axisLabel: { | |||
interval: 0, | |||
rotate: -30 | |||
}, | |||
data: this.xDataList | |||
}, | |||
yAxis: { | |||
type: 'value' | |||
}, | |||
series: [ | |||
{ | |||
name: '稼动率值', | |||
type: 'line', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
data: this.yDataList | |||
} | |||
] | |||
}) | |||
} | |||
} | |||
} | |||
</script> |
@@ -0,0 +1,133 @@ | |||
<!-- | |||
* @Author: DY | |||
* @Date: 2021-12-13 16:39:34 | |||
* @LastEditors: DY | |||
* @LastEditTime: 2022-03-03 16:41:38 | |||
* @Description: MTTR折线柱状图 | |||
--> | |||
<template> | |||
<div> | |||
<div id="monitorChart" :style="{width: '1000px', height: '800px'}" style="margin-left:10%" /> | |||
</div> | |||
</template> | |||
<script> | |||
import echarts from 'echarts' | |||
// import { getMttr } from '@/api/equipment/infoPandect' | |||
export default { | |||
props: { | |||
time1: { | |||
type: Date, | |||
default: () => { | |||
return '' | |||
} | |||
}, | |||
time2: { | |||
type: Date, | |||
default: () => { | |||
return '' | |||
} | |||
} | |||
}, | |||
data() { | |||
return { | |||
chart: null, | |||
list: [], | |||
xDataList: [], | |||
yDataList: [] | |||
} | |||
}, | |||
mounted() {}, | |||
beforeDestroy() { | |||
if (!this.chart) { | |||
return | |||
} | |||
this.chart.dispose() | |||
this.chart = null | |||
}, | |||
methods: { | |||
removeData() { | |||
this.xDataList = ['ACOT1', 'ACOT2', 'ACOT-a', 'ACOT-b'] | |||
this.yDataList = [22, 40, 66, 44] | |||
}, | |||
getList() { | |||
this.removeData() | |||
this.init() | |||
}, | |||
init() { | |||
this.chart = echarts.init(document.getElementById('monitorChart')) | |||
const that = this | |||
that.chart.on('click', function(params) { | |||
that.$emit('equipmentName', params.name) | |||
}) | |||
this.chart.setOption({ | |||
tooltip: { | |||
trigger: 'axis', | |||
axisPointer: { | |||
type: 'cross', | |||
crossStyle: { | |||
color: '#999' | |||
} | |||
} | |||
}, | |||
toolbox: { | |||
feature: { | |||
saveAsImage: { show: true } | |||
} | |||
}, | |||
grid: { | |||
left: '3%', | |||
right: '4%', | |||
bottom: '3%', | |||
containLabel: true | |||
}, | |||
xAxis: { | |||
type: 'category', | |||
axisLabel: { | |||
interval: 0, | |||
rotate: -30 | |||
}, | |||
max: 10, | |||
data: this.xDataList | |||
}, | |||
yAxis: [{ | |||
type: 'value', | |||
axisLabel: { | |||
formatter: '{value}小时' | |||
} | |||
}, | |||
{ | |||
type: 'value', | |||
axisLabel: { | |||
formatter: '{value}小时' | |||
} | |||
} | |||
], | |||
series: [ | |||
{ | |||
name: '稼动率值', | |||
type: 'bar', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
barWidth: 40, | |||
data: this.yDataList | |||
}, | |||
{ | |||
name: '稼动率值', | |||
type: 'line', | |||
yAxisIndex: 1, | |||
data: this.yDataList | |||
} | |||
] | |||
}) | |||
} | |||
} | |||
} | |||
</script> |
@@ -0,0 +1,165 @@ | |||
<!-- | |||
* @Author: DY | |||
* @Date: 2021-12-13 16:39:34 | |||
* @LastEditors: DY | |||
* @LastEditTime: 2022-03-03 16:43:34 | |||
* @Description: MTTR详情堆积图 | |||
--> | |||
<template> | |||
<div> | |||
<div> | |||
<el-button-group> | |||
<el-button @click="byYear">年</el-button> | |||
<el-button @click="byQuarterly">季度</el-button> | |||
<el-button @click="byMonth">月</el-button> | |||
<el-button @click="byWeek">周</el-button> | |||
<el-button @click="byDay">天</el-button> | |||
</el-button-group> | |||
</div> | |||
<div id="monitorChart" :style="{width: '700px', height: '550px'}" style="margin-left:10%" /> | |||
<mttr-table v-if="tableVisible" :time1="startTime" :time2="endTime" :equipment-name="name" /> | |||
</div> | |||
</template> | |||
<script> | |||
import echarts from 'echarts' | |||
// import { getMttrDetail } from '@/api/equipment/infoPandect' | |||
import MttrTable from './MttrTable' | |||
export default { | |||
components: { MttrTable }, | |||
props: { | |||
time1: { | |||
type: Date, | |||
default: () => { | |||
return '' | |||
} | |||
}, | |||
time2: { | |||
type: Date, | |||
default: () => { | |||
return '' | |||
} | |||
}, | |||
equipmentName: { | |||
type: String, | |||
default: () => { | |||
return '' | |||
} | |||
} | |||
}, | |||
data() { | |||
return { | |||
chart: null, | |||
tableVisible: false, | |||
equipmentDetail: [], | |||
list: [], | |||
xDataList: [], | |||
yDataList: [], | |||
startTime: '', | |||
endTime: '', | |||
name: '' | |||
} | |||
}, | |||
mounted() { | |||
this.startTime = this.time1 | |||
this.endTime = this.time2 | |||
this.name = this.equipmentName | |||
this.removeData() | |||
}, | |||
beforeDestroy() { | |||
if (!this.chart) { | |||
return | |||
} | |||
this.chart.dispose() | |||
this.chart = null | |||
}, | |||
methods: { | |||
getDataList(params) { | |||
console.log(params) | |||
}, | |||
byYear() { | |||
this.removeData() | |||
this.setChart(this.list.年) | |||
}, | |||
byQuarterly() { | |||
this.removeData() | |||
this.setChart(this.list.季度) | |||
}, | |||
byMonth() { | |||
this.removeData() | |||
this.setChart(this.list.月) | |||
}, | |||
byWeek() { | |||
this.removeData() | |||
this.setChart(this.list.周) | |||
}, | |||
byDay() { | |||
this.removeData() | |||
this.setChart(this.list.天) | |||
}, | |||
setChart(list) { | |||
this.init() | |||
}, | |||
removeData() { | |||
this.xDataList = [this.name] | |||
this.yDataList = [30, 40, 30, 33, 44] | |||
}, | |||
getList() { | |||
this.tableVisible = true | |||
}, | |||
init() { | |||
this.chart = echarts.init(document.getElementById('monitorChart')) | |||
this.chart.setOption({ | |||
tooltip: { | |||
trigger: 'axis', | |||
axisPointer: { | |||
type: 'cross', | |||
crossStyle: { | |||
color: '#999' | |||
} | |||
} | |||
}, | |||
toolbox: { | |||
feature: { | |||
saveAsImage: { show: true } | |||
} | |||
}, | |||
grid: { | |||
left: '3%', | |||
right: '4%', | |||
bottom: '3%', | |||
containLabel: true | |||
}, | |||
xAxis: { | |||
type: 'category', | |||
max: 10, | |||
axisLabel: { | |||
interval: 0, | |||
rotate: -30 | |||
}, | |||
data: this.xDataList | |||
}, | |||
yAxis: { | |||
type: 'value' | |||
}, | |||
series: [ | |||
{ | |||
name: '稼动率值', | |||
type: 'line', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
data: this.yDataList | |||
} | |||
] | |||
}) | |||
} | |||
} | |||
} | |||
</script> |
@@ -0,0 +1,137 @@ | |||
<!-- | |||
* @Author: DY | |||
* @Date: 2021-12-13 16:39:34 | |||
* @LastEditors: DY | |||
* @LastEditTime: 2022-03-03 16:34:30 | |||
* @Description: OEE折线柱状图 | |||
--> | |||
<template> | |||
<div> | |||
<div id="monitorChart" :style="{width: '1000px', height: '800px'}" style="margin-left:10%" /> | |||
</div> | |||
</template> | |||
<script> | |||
import echarts from 'echarts' | |||
// import { getOEE } from '@/api/equipment/infoPandect' | |||
export default { | |||
props: { | |||
time1: { | |||
type: Date, | |||
default: () => { | |||
return '' | |||
} | |||
}, | |||
time2: { | |||
type: Date, | |||
default: () => { | |||
return '' | |||
} | |||
} | |||
}, | |||
data() { | |||
return { | |||
chart: null, | |||
list: [], | |||
xDataList: [], | |||
oeeList: [] | |||
} | |||
}, | |||
mounted() {}, | |||
beforeDestroy() { | |||
if (!this.chart) { | |||
return | |||
} | |||
this.chart.dispose() | |||
this.chart = null | |||
}, | |||
methods: { | |||
removeData() { | |||
this.xDataList = ['ACOT1', 'ACOT2', 'ACOT-a', 'ACOT-b'] | |||
this.oeeList = [20, 30, 80, 44] | |||
}, | |||
getList() { | |||
this.removeData() | |||
this.init() | |||
}, | |||
init() { | |||
this.chart = echarts.init(document.getElementById('monitorChart')) | |||
const that = this | |||
that.chart.on('click', function(params) { | |||
that.$emit('equipmentName', params.name) | |||
}) | |||
this.chart.setOption({ | |||
tooltip: { | |||
trigger: 'axis', | |||
axisPointer: { | |||
type: 'cross', | |||
crossStyle: { | |||
color: '#999' | |||
} | |||
} | |||
}, | |||
toolbox: { | |||
feature: { | |||
saveAsImage: { show: true } | |||
} | |||
}, | |||
grid: { | |||
left: '3%', | |||
right: '4%', | |||
bottom: '3%', | |||
containLabel: true | |||
}, | |||
xAxis: { | |||
type: 'category', | |||
axisLabel: { | |||
interval: 0, | |||
rotate: -30 | |||
}, | |||
max: 10, | |||
data: this.xDataList | |||
}, | |||
yAxis: [{ | |||
type: 'value', | |||
min: 0, | |||
max: 100, | |||
axisLabel: { | |||
formatter: '{value}%' | |||
} | |||
}, | |||
{ | |||
type: 'value', | |||
min: 0, | |||
max: 100, | |||
axisLabel: { | |||
formatter: '{value}%' | |||
} | |||
} | |||
], | |||
series: [ | |||
{ | |||
name: 'oee', | |||
type: 'bar', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
barWidth: 40, | |||
data: this.oeeList | |||
}, | |||
{ | |||
name: 'oee', | |||
type: 'line', | |||
yAxisIndex: 1, | |||
data: this.oeeList | |||
} | |||
] | |||
}) | |||
} | |||
} | |||
} | |||
</script> |
@@ -0,0 +1,258 @@ | |||
<!-- | |||
* @Author: DY | |||
* @Date: 2021-12-13 16:39:34 | |||
* @LastEditors: DY | |||
* @LastEditTime: 2022-03-03 16:37:49 | |||
* @Description:OEE详情堆积图 | |||
--> | |||
<template> | |||
<div> | |||
<div> | |||
<el-button-group> | |||
<el-button @click="byYear">年</el-button> | |||
<el-button @click="byQuarterly">季度</el-button> | |||
<el-button @click="byMonth">月</el-button> | |||
<el-button @click="byWeek">周</el-button> | |||
<el-button @click="byDay">天</el-button> | |||
</el-button-group> | |||
</div> | |||
<div id="monitorChart" :style="{width: '700px', height: '550px'}" style="margin-left:10%" /> | |||
<oee-table v-if="tableVisible" ref="tableRef" :table-data="tableData" :equipment-name="name" /> | |||
</div> | |||
</template> | |||
<script> | |||
import echarts from 'echarts' | |||
// import { getOEEDetail } from '@/api/equipment/infoPandect' | |||
import OeeTable from './OeeTable' | |||
export default { | |||
components: { OeeTable }, | |||
props: { | |||
time1: { | |||
type: Date, | |||
default: () => { | |||
return '' | |||
} | |||
}, | |||
time2: { | |||
type: Date, | |||
default: () => { | |||
return '' | |||
} | |||
}, | |||
equipmentName: { | |||
type: String, | |||
default: () => { | |||
return '' | |||
} | |||
} | |||
}, | |||
data() { | |||
return { | |||
chart: null, | |||
tableVisible: false, | |||
equipmentDetail: [], | |||
tableData: [], | |||
list: [], | |||
xDataList: [], | |||
oeeList: [], | |||
startTime: '', | |||
endTime: '', | |||
name: '' | |||
} | |||
}, | |||
mounted() { | |||
this.startTime = this.time1 | |||
this.endTime = this.time2 | |||
this.name = this.equipmentName | |||
this.removeData() | |||
}, | |||
beforeDestroy() { | |||
if (!this.chart) { | |||
return | |||
} | |||
this.chart.dispose() | |||
this.chart = null | |||
}, | |||
methods: { | |||
getDataList(params) { | |||
console.log(params) | |||
}, | |||
async byYear() { | |||
this.removeData() | |||
this.setChart(this.list.年) | |||
this.tableData = this.list.年 | |||
setTimeout(() => { | |||
this.$refs.tableRef.init() | |||
}, 60) | |||
}, | |||
byQuarterly() { | |||
this.removeData() | |||
this.setChart(this.list.季度) | |||
this.tableData = this.list.季度 | |||
setTimeout(() => { | |||
this.$refs.tableRef.init() | |||
}, 60) | |||
}, | |||
byMonth() { | |||
this.removeData() | |||
this.setChart(this.list.月) | |||
this.tableData = this.list.月 | |||
setTimeout(() => { | |||
this.$refs.tableRef.init() | |||
}, 60) | |||
}, | |||
byWeek() { | |||
this.removeData() | |||
this.setChart(this.list.周) | |||
this.tableData = this.list.周 | |||
setTimeout(() => { | |||
this.$refs.tableRef.init() | |||
}, 60) | |||
}, | |||
byDay() { | |||
this.removeData() | |||
this.setChart(this.list.天) | |||
this.tableData = this.list.天 | |||
setTimeout(() => { | |||
this.$refs.tableRef.init() | |||
}, 60) | |||
}, | |||
setChart(list) { | |||
this.init() | |||
}, | |||
removeData() { | |||
this.xDataList = [this.name] | |||
this.oeeList = [30, 40, 30, 33, 44] | |||
}, | |||
getList() { | |||
this.tableVisible = true | |||
}, | |||
init() { | |||
this.chart = echarts.init(document.getElementById('monitorChart')) | |||
this.chart.setOption({ | |||
tooltip: { | |||
trigger: 'axis', | |||
axisPointer: { | |||
type: 'cross', | |||
crossStyle: { | |||
color: '#999' | |||
} | |||
} | |||
}, | |||
toolbox: { | |||
feature: { | |||
saveAsImage: { show: true } | |||
} | |||
}, | |||
grid: { | |||
left: '3%', | |||
right: '4%', | |||
bottom: '3%', | |||
containLabel: true | |||
}, | |||
xAxis: { | |||
type: 'category', | |||
max: 10, | |||
axisLabel: { | |||
interval: 0, | |||
rotate: -30 | |||
}, | |||
data: this.xDataList | |||
}, | |||
yAxis: { | |||
type: 'value' | |||
}, | |||
series: [ | |||
{ | |||
name: 'oee', | |||
type: 'bar', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
data: this.oeeList | |||
}, | |||
{ | |||
name: 'performanceRate', | |||
type: 'bar', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
data: this.performanceRateList | |||
}, | |||
{ | |||
name: 'productiveCount', | |||
type: 'bar', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
data: this.productiveCountList | |||
}, | |||
{ | |||
name: 'productiveTime', | |||
type: 'bar', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
data: this.productiveTimeList | |||
}, | |||
{ | |||
name: 'runTime', | |||
type: 'bar', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
data: this.runTimeList | |||
}, | |||
{ | |||
name: 'time', | |||
type: 'bar', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
data: this.timeList | |||
}, | |||
{ | |||
name: 'timeRate', | |||
type: 'bar', | |||
stack: 'total', | |||
label: { | |||
show: true | |||
}, | |||
emphasis: { | |||
focus: 'series' | |||
}, | |||
data: this.timeRateList | |||
} | |||
] | |||
}) | |||
} | |||
} | |||
} | |||
</script> |
@@ -0,0 +1,178 @@ | |||
<!-- | |||
* @Author: zwq | |||
* @Date: 2020-12-29 15:41:11 | |||
* @LastEditors: zwq | |||
* @LastEditTime: 2022-03-03 14:28:58 | |||
* @Description: | |||
--> | |||
<template> | |||
<div class="app-container"> | |||
<head-form | |||
:placeholder-name="placeholderName" | |||
:key-name="keyName" | |||
:show-add="showAdd" | |||
@getDataList="getList" | |||
@add="addNew" | |||
/> | |||
<base-table | |||
:page="listQuery.current" | |||
:limit="listQuery.size" | |||
:table-config="tableProps" | |||
:table-data="list" | |||
:is-loading="listLoading" | |||
> | |||
<method-btn | |||
slot="handleBtn" | |||
:width="trueWidth" | |||
:method-list="tableBtn" | |||
@clickBtn="handleClick" | |||
/> | |||
</base-table> | |||
<pagination | |||
v-show="total > 0" | |||
:total="total" | |||
:page.sync="listQuery.current" | |||
:limit.sync="listQuery.size" | |||
@pagination="getList()" | |||
/> | |||
</div> | |||
</template> | |||
<script> | |||
import i18n from '@/lang' | |||
import { StateConfigList, StateConfigDelete } from '@/api/basicData/StateConfig' | |||
import HeadForm from '@/components/basicData/HeadForm' | |||
import BaseTable from '@/components/BaseTable' | |||
import Pagination from '@/components/Pagination' // Secondary package based on el-pagination | |||
import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn' | |||
import { timeFormatter } from '@/filters' | |||
import basicData from '@/filters/basicData' | |||
/** | |||
* 表格表头配置项 TypeScript接口注释 | |||
* tableConfig<ConfigItem> = [] | |||
* | |||
* Interface ConfigItem = { | |||
* prop: string, | |||
* label: string, | |||
* width: string, | |||
* align: string, | |||
* subcomponent: function, | |||
* filter: function | |||
* } | |||
* | |||
* | |||
*/ | |||
const tableBtn = [ | |||
{ | |||
type: 'edit', | |||
btnName: 'btn.edit' | |||
} | |||
// { | |||
// type: 'delete', | |||
// btnName: 'btn.delete' | |||
// } | |||
] | |||
const tableProps = [ | |||
{ | |||
prop: 'createTime', | |||
label: i18n.t('module.basicData.factory.createTime'), | |||
filter: timeFormatter, | |||
align: 'center' | |||
}, | |||
{ | |||
prop: 'status', | |||
label: i18n.t('module.basicData.StateConfig.status'), | |||
align: 'center' | |||
}, | |||
{ | |||
prop: 'twinkle', | |||
label: i18n.t('module.basicData.StateConfig.Twinkle'), | |||
filter: basicData('onDuty'), | |||
align: 'center' | |||
}, | |||
{ | |||
prop: 'colour', | |||
label: i18n.t('module.basicData.StateConfig.DisplayColor'), | |||
align: 'center' | |||
}, | |||
{ | |||
prop: 'description', | |||
label: i18n.t('module.basicData.visual.Remarks'), | |||
align: 'center' | |||
} | |||
] | |||
export default { | |||
name: 'QCPplan', | |||
components: { Pagination, BaseTable, MethodBtn, HeadForm }, | |||
data() { | |||
return { | |||
keyName: i18n.t('module.basicData.visual.keyword'), | |||
placeholderName: this.$t('module.basicData.StateConfig.status'), | |||
addOrUpdateVisible: false, | |||
tableBtn, | |||
trueWidth: 150, | |||
tableProps, | |||
list: [], | |||
total: 0, | |||
showAdd: false, | |||
listLoading: true, | |||
listQuery: { | |||
current: 1, | |||
size: 10 | |||
} | |||
} | |||
}, | |||
created() { | |||
this.getList() | |||
}, | |||
methods: { | |||
handleClick(raw) { | |||
console.log(raw) | |||
if (raw.type === 'delete') { | |||
this.$confirm(`${this.$t('module.basicData.visual.TipsBefore')}[${raw.data.status}]?`, this.$t('module.basicData.visual.Tips'), { | |||
confirmButtonText: this.$t('module.basicData.visual.confirmButtonText'), | |||
cancelButtonText: this.$t('module.basicData.visual.cancelButtonText'), | |||
type: 'warning' | |||
}).then(() => { | |||
StateConfigDelete(raw.data.id).then(response => { | |||
this.$message({ | |||
message: this.$t('module.basicData.visual.success'), | |||
type: 'success', | |||
duration: 1500, | |||
onClose: () => { | |||
this.getList() | |||
} | |||
}) | |||
}) | |||
}).catch(() => {}) | |||
} | |||
}, | |||
getList(key) { | |||
this.listLoading = true | |||
this.listQuery.status = key | |||
StateConfigList(this.listQuery).then(response => { | |||
if (response.data.records) { | |||
this.list = response.data.records | |||
} else { | |||
this.list.splice(0, this.list.length) | |||
} | |||
this.total = response.data.total | |||
this.listLoading = false | |||
}) | |||
} | |||
} | |||
} | |||
</script> | |||
<style scoped> | |||
.edit-input { | |||
padding-right: 100px; | |||
} | |||
.cancel-btn { | |||
position: absolute; | |||
right: 15px; | |||
top: 10px; | |||
} | |||
</style> |
@@ -13,11 +13,11 @@ | |||
{{ i.equipmentId ? equipmentObj[i.equipmentId] : $t('module.art.eqName') }} | |||
</el-button> | |||
</el-col> | |||
<el-col :span="4" class="process-table-main-item-item"> | |||
<!-- <el-col :span="4" class="process-table-main-item-item"> | |||
<el-button v-if="!processPortObj[item.workSequenceId]" disabled> | |||
{{ i.equipmentRecipeId ? equipmentRecipeObj[i.equipmentRecipeId] : $t('module.art.recipeName') }} | |||
</el-button> | |||
</el-col> | |||
</el-col> --> | |||
<!-- <el-col :span="4" class="process-table-main-item-item"> | |||
<el-button v-if="!processPortObj[item.workSequenceId]" disabled> | |||
{{ i.nodeType ? nodeTypesObj[i.nodeType] : $t('module.art.artType') }} | |||
@@ -36,7 +36,7 @@ | |||
</template> | |||
<script> | |||
import { | |||
listAllEquipmentRecipe, | |||
// listAllEquipmentRecipe, | |||
listProcessFlowNode, | |||
listProcess | |||
} from '@/api/art-manage/art.js' | |||
@@ -57,7 +57,7 @@ export default { | |||
processObj: {}, | |||
processPortObj: {}, | |||
equipmentRecipeList: [], | |||
equipmentRecipeObj: [], | |||
// equipmentRecipeObj: [], | |||
equipmentList: [], | |||
equipmentObj: {}, | |||
showAddList: [], | |||
@@ -102,12 +102,12 @@ export default { | |||
console.log(this.processList) | |||
console.log(this.processObj) | |||
// 获取配方列表 | |||
const allRecipeRes = await listAllEquipmentRecipe() | |||
this.equipmentRecipeList = allRecipeRes.data | |||
allRecipeRes.data.map(item => { | |||
this.equipmentRecipeObj[item.id] = item.name | |||
}) | |||
console.log(this.equipmentRecipeList) | |||
// const allRecipeRes = await listAllEquipmentRecipe() | |||
// this.equipmentRecipeList = allRecipeRes.data | |||
// allRecipeRes.data.map(item => { | |||
// this.equipmentRecipeObj[item.id] = item.name | |||
// }) | |||
// console.log(this.equipmentRecipeList) | |||
// 获取设备列表 | |||
const allEquipmentRes = await listEquipment() | |||
this.equipmentList = allEquipmentRes.data | |||
@@ -19,11 +19,11 @@ | |||
{{ i.equipmentId ? equipmentObj[i.equipmentId] : $t('module.art.eqName') }} | |||
</el-button> | |||
</el-col> | |||
<el-col :span="4" class="process-table-main-item-item"> | |||
<!-- <el-col :span="4" class="process-table-main-item-item"> | |||
<el-button v-if="!processPortObj[item.workSequenceId]" icon="el-icon-edit" @click="choiceRecipe(index, idx, i.equipmentRecipeId)"> | |||
{{ i.equipmentRecipeId ? equipmentRecipeObj[i.equipmentRecipeId] : $t('module.art.recipeName') }} | |||
</el-button> | |||
</el-col> | |||
</el-col> --> | |||
<!-- <el-col :span="4" class="process-table-main-item-item"> | |||
<el-button v-if="!processPortObj[item.workSequenceId]" icon="el-icon-edit" @click="choiceArtType(index, idx, i.nodeType)"> | |||
{{ i.nodeType ? nodeTypesObj[i.nodeType] : $t('module.art.artType') }} | |||
@@ -55,7 +55,7 @@ import processTableSelect from './process-table-select.vue' | |||
import processTableAdd from './process-table-add.vue' | |||
import vuedraggable from 'vuedraggable' | |||
import { | |||
listAllEquipmentRecipe, | |||
// listAllEquipmentRecipe, | |||
addProcessFlows, | |||
listProcessFlowNode, | |||
listProcess | |||
@@ -82,7 +82,7 @@ export default { | |||
processObj: {}, | |||
processPortObj: {}, | |||
equipmentRecipeList: [], | |||
equipmentRecipeObj: [], | |||
// equipmentRecipeObj: [], | |||
equipmentList: [], | |||
equipmentObj: {}, | |||
showAddList: [], | |||
@@ -131,12 +131,12 @@ export default { | |||
console.log(this.processList) | |||
console.log(this.processObj) | |||
// 获取配方列表 | |||
const allRecipeRes = await listAllEquipmentRecipe() | |||
this.equipmentRecipeList = allRecipeRes.data | |||
allRecipeRes.data.map(item => { | |||
this.equipmentRecipeObj[item.id] = item.name | |||
}) | |||
console.log(this.equipmentRecipeList) | |||
// const allRecipeRes = await listAllEquipmentRecipe() | |||
// this.equipmentRecipeList = allRecipeRes.data | |||
// allRecipeRes.data.map(item => { | |||
// this.equipmentRecipeObj[item.id] = item.name | |||
// }) | |||
// console.log(this.equipmentRecipeList) | |||
// 获取设备列表 | |||
const allEquipmentRes = await listEquipment() | |||
this.equipmentList = allEquipmentRes.data | |||
@@ -197,8 +197,8 @@ export default { | |||
nodeType: '', | |||
processFlowId: this.processFlowId, | |||
workSequenceId: this.dataList[index].workSequenceId, | |||
description: this.dataList[index].processFlowEquipmentParams[0]?.description ? this.dataList[index].processFlowEquipmentParams[0].description : '', | |||
remark: this.dataList[index].processFlowEquipmentParams[0]?.remark ? this.dataList[index].processFlowEquipmentParams[0].remark : '' | |||
description: this.dataList[index].processFlowEquipmentParams[0].description ? this.dataList[index].processFlowEquipmentParams[0].description : '', | |||
remark: this.dataList[index].processFlowEquipmentParams[0].remark ? this.dataList[index].processFlowEquipmentParams[0].remark : '' | |||
}) | |||
e.stopPropagation() | |||
}, | |||
@@ -232,16 +232,16 @@ export default { | |||
this.$refs.processtableselect.init('equipmentId', first, sec, id, this.processObj[processId].equipments) | |||
}, | |||
// 选择配方 | |||
choiceRecipe(first, sec, id) { | |||
if (this.dataList[first].processFlowEquipmentParams[sec]?.equipmentId) { | |||
this.$refs.processtableselect.init('equipmentRecipeId', first, sec, id, this.equipmentRecipeList.filter(f => f.equipmentId === this.dataList[first].processFlowEquipmentParams[sec].equipmentId)) | |||
} else { | |||
this.$message.error(this.$t('module.art.choiceEqError')) | |||
} | |||
}, | |||
// choiceRecipe(first, sec, id) { | |||
// if (this.dataList[first].processFlowEquipmentParams[sec]?.equipmentId) { | |||
// this.$refs.processtableselect.init('equipmentRecipeId', first, sec, id, this.equipmentRecipeList.filter(f => f.equipmentId === this.dataList[first].processFlowEquipmentParams[sec].equipmentId)) | |||
// } else { | |||
// this.$message.error(this.$t('module.art.choiceEqError')) | |||
// } | |||
// }, | |||
// 选择工艺类型 | |||
choiceArtType(first, sec, id) { | |||
if (this.dataList[first].processFlowEquipmentParams[sec]?.equipmentId) { | |||
if (this.dataList[first].processFlowEquipmentParams[sec].equipmentId) { | |||
this.$refs.processtableselect.init('nodeType', first, sec, id, this.nodeTypes) | |||
} else { | |||
this.$message.error(this.$t('module.art.choiceEqError')) | |||
@@ -307,13 +307,14 @@ export default { | |||
hasNull = true | |||
} | |||
}) | |||
} else { | |||
item.processFlowEquipmentParams.map(i => { | |||
if (!i.equipmentId || !i.equipmentRecipeId) { | |||
hasNull = true | |||
} | |||
}) | |||
} | |||
// else { | |||
// item.processFlowEquipmentParams.map(i => { | |||
// if (!i.equipmentId || !i.equipmentRecipeId) { | |||
// hasNull = true | |||
// } | |||
// }) | |||
// } | |||
}) | |||
// console.log(JSON.stringify(vm.dataList)) | |||
// if (vm.dataList.length === 0) { | |||