diff --git a/.env.dev b/.env.dev
index da3e54d3..d331d5a0 100644
--- a/.env.dev
+++ b/.env.dev
@@ -1,7 +1,7 @@
###
# @Author: Do not edit
# @Date: 2023-08-29 09:40:39
- # @LastEditTime: 2023-11-07 09:23:07
+ # @LastEditTime: 2023-11-11 20:50:30
# @LastEditors: DY
# @Description:
###
@@ -13,15 +13,14 @@ VUE_APP_TITLE = MES系统
# 芋道管理系统/开发环境
# VUE_APP_BASE_API = 'http://100.64.0.26:48082'
-VUE_APP_BASE_API = 'http://192.168.0.33:48082'
+# VUE_APP_BASE_API = 'http://192.168.0.33:48082'
# VUE_APP_BASE_API = 'http://192.168.4.173:48080'
# VUE_APP_BASE_API = 'http://192.168.2.173:48080'
# VUE_APP_BASE_API = 'http://192.168.1.49:48080'
# VUE_APP_BASE_API = 'http://192.168.1.8:48080'
+VUE_APP_BASE_API = 'http://192.168.0.33:48082'
# VUE_APP_BASE_API = 'http://192.168.1.56:48080'
-# VUE_APP_BASE_API = 'http://192.168.1.188:48080'
-# VUE_APP_BASE_API = 'http://192.168.2.159:48080'
-
+# VUE_APP_BASE_API = 'http://192.168.4.159:48080'
# 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true
@@ -36,3 +35,4 @@ VUE_APP_DOC_ENABLE = true
# 百度统计
# VUE_APP_BAIDU_CODE = fadc1bd5db1a1d6f581df60a1807f8ab
+
diff --git a/.env.front b/.env.front
index 34f878c2..743152e3 100644
--- a/.env.front
+++ b/.env.front
@@ -1,3 +1,4 @@
+
# 开发环境配置
ENV = 'development'
diff --git a/.env.production b/.env.production
new file mode 100644
index 00000000..a64ca0bb
--- /dev/null
+++ b/.env.production
@@ -0,0 +1,12 @@
+###
+ # @Author: zhp
+ # @Date: 2023-10-30 14:18:30
+ # @LastEditTime: 2023-11-02 16:16:09
+ # @LastEditors: zhp
+ # @Description:
+###
+# just a flag
+ENV = 'production'
+
+# base api
+# VUE_APP_BASE_API = '/api'
diff --git a/.env.stage b/.env.stage
index 3602a9b9..b25d7a96 100644
--- a/.env.stage
+++ b/.env.stage
@@ -23,3 +23,4 @@ VUE_APP_DOC_ENABLE = false
# 百度统计
VUE_APP_BAIDU_CODE = fadc1bd5db1a1d6f581df60a1807f8ab
+
diff --git a/public/static/videos/login.webm b/public/static/videos/login.webm
new file mode 100644
index 00000000..4ac1bdd2
Binary files /dev/null and b/public/static/videos/login.webm differ
diff --git a/src/api/base/qualityScrapDet.js b/src/api/base/qualityScrapDet.js
new file mode 100644
index 00000000..1cf724ac
--- /dev/null
+++ b/src/api/base/qualityScrapDet.js
@@ -0,0 +1,69 @@
+/*
+ * @Author: zhp
+ * @Date: 2023-11-06 15:38:12
+ * @LastEditTime: 2023-11-06 15:39:39
+ * @LastEditors: zhp
+ * @Description:
+ */
+import request from '@/utils/request'
+
+// 创建质量检测类型基础
+export function createQualityScrapDet(data) {
+ return request({
+ url: '/base/quality-scrap-det/create',
+ method: 'post',
+ data: data
+ })
+}
+
+// 更新质量检测类型基础
+export function updateQualityScrapDet(data) {
+ return request({
+ url: '/base/quality-scrap-det/update',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除质量检测类型基础
+export function deleteQualityScrapDet(id) {
+ return request({
+ url: '/base/quality-scrap-det/delete?id=' + id,
+ method: 'delete'
+ })
+}
+
+// 获得质量检测类型基础
+export function getQualityScrapDet(id) {
+ return request({
+ url: '/base/quality-scrap-det/get?id=' + id,
+ method: 'get'
+ })
+}
+
+// 获得质量检测类型基础分页
+export function getQualityScrapDetPage(query) {
+ return request({
+ url: '/base/quality-scrap-det/page',
+ method: 'get',
+ params: query
+ })
+}
+
+// 导出质量检测类型基础 Excel
+export function exportQualityScrapTypeExcel(query) {
+ return request({
+ url: '/base/quality-scrap-type/export-excel',
+ method: 'get',
+ params: query,
+ responseType: 'blob'
+ })
+}
+
+export function getCode(query) {
+ return request({
+ url: '/base/quality-scrap-det/getCode',
+ method: 'get',
+ params: query
+ })
+}
diff --git a/src/api/base/qualityScrapLog.js b/src/api/base/qualityScrapLog.js
new file mode 100644
index 00000000..f0bdaa69
--- /dev/null
+++ b/src/api/base/qualityScrapLog.js
@@ -0,0 +1,100 @@
+/*
+ * @Author: zhp
+ * @Date: 2023-11-07 15:02:37
+ * @LastEditTime: 2023-11-07 18:32:07
+ * @LastEditors: zhp
+ * @Description:
+ */
+import request from '@/utils/request'
+
+// 创建质量检测类型基础
+export function createQualityScrapLog(data) {
+ return request({
+ url: '/base/quality-scrap-log/create',
+ method: 'post',
+ data: data
+ })
+}
+
+// 更新质量检测类型基础
+export function updateQualityScrapLog(data) {
+ return request({
+ url: '/base/quality-scrap-log/update',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除质量检测类型基础
+export function deleteQualityScrapLog(id) {
+ return request({
+ url: '/base/quality-scrap-log/delete?id=' + id,
+ method: 'delete'
+ })
+}
+
+// 获得质量检测类型基础
+export function getQualityScrapLog(id) {
+ return request({
+ url: '/base/quality-scrap-log/get?id=' + id,
+ method: 'get'
+ })
+}
+
+// 获得质量检测类型基础分页
+export function getQualityScrapLogPage(query) {
+ return request({
+ url: '/base/quality-scrap-log/page',
+ method: 'get',
+ params: query
+ })
+}
+
+// 导出质量检测类型基础 Excel
+export function exportQualityScrapTypeExcel(query) {
+ return request({
+ url: '/base/quality-scrap-type/export-excel',
+ method: 'get',
+ params: query,
+ responseType: 'blob'
+ })
+}
+
+export function getCode(query) {
+ return request({
+ url: '/base/quality-scrap-log/getCode',
+ method: 'get',
+ params: query
+ })
+}
+export function getWorkOrderList(query) {
+ return request({
+ url: '/base/core-work-order/listbyfilter',
+ method: 'get',
+ params: query,
+ })
+}
+
+export function getTeamList(query) {
+ return request({
+ url: '/base/group-team/listAll',
+ method: 'get',
+ params: query,
+ })
+}
+
+export function getLineList(query) {
+ return request({
+ url: '/base/core-production-line/listAll',
+ method: 'get',
+ params: query,
+ })
+}
+
+export function getDetList(query) {
+ return request({
+ url: '/base/quality-scrap-det/listAll',
+ method: 'get',
+ params: query,
+ })
+}
diff --git a/src/api/base/qualityScrapType.js b/src/api/base/qualityScrapType.js
new file mode 100644
index 00000000..de7190ff
--- /dev/null
+++ b/src/api/base/qualityScrapType.js
@@ -0,0 +1,76 @@
+/*
+ * @Author: zhp
+ * @Date: 2023-11-04 18:27:11
+ * @LastEditTime: 2023-11-06 15:55:24
+ * @LastEditors: zhp
+ * @Description:
+ */
+import request from '@/utils/request'
+
+// 创建质量检测类型基础
+export function createQualityScrapType(data) {
+ return request({
+ url: '/base/quality-scrap-type/create',
+ method: 'post',
+ data: data
+ })
+}
+
+// 更新质量检测类型基础
+export function updateQualityScrapType(data) {
+ return request({
+ url: '/base/quality-scrap-type/update',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除质量检测类型基础
+export function deleteQualityScrapType(id) {
+ return request({
+ url: '/base/quality-scrap-type/delete?id=' + id,
+ method: 'delete'
+ })
+}
+
+// 获得质量检测类型基础
+export function getQualityScrapType(id) {
+ return request({
+ url: '/base/quality-scrap-type/get?id=' + id,
+ method: 'get'
+ })
+}
+
+// 获得质量检测类型基础分页
+export function getQualityScrapTypePage(query) {
+ return request({
+ url: '/base/quality-scrap-type/page',
+ method: 'get',
+ params: query
+ })
+}
+
+// 导出质量检测类型基础 Excel
+export function exportQualityScrapTypeExcel(query) {
+ return request({
+ url: '/base/quality-scrap-type/export-excel',
+ method: 'get',
+ params: query,
+ responseType: 'blob'
+ })
+}
+
+export function getCode(query) {
+ return request({
+ url: '/base/quality-scrap-type/getCode',
+ method: 'get',
+ params: query
+ })
+}
+export function getList(query) {
+ return request({
+ url: 'base/quality-scrap-type/listAll',
+ method: 'get',
+ params: query
+ })
+}
diff --git a/src/api/core/analysis/index.js b/src/api/core/analysis/index.js
index 394bbdcf..e5f374e9 100644
--- a/src/api/core/analysis/index.js
+++ b/src/api/core/analysis/index.js
@@ -1,7 +1,7 @@
/*
* @Author: zhp
* @Date: 2023-09-12 14:07:04
- * @LastEditTime: 2023-11-07 14:17:38
+ * @LastEditTime: 2023-11-10 10:23:43
* @LastEditors: DY
* @Description:
*/
@@ -15,9 +15,10 @@ export function getYieldAnalysisPageData(query) {
})
}
+// 产线平衡分析
export function getCT(data) {
return request({
- url: '/analysis/production-analysis/getCT',
+ url: '/analysis/equipment-analysis/getCT',
method: 'post',
data: data
})
diff --git a/src/api/equipment/analysis/statistics.js b/src/api/equipment/analysis/statistics.js
new file mode 100644
index 00000000..ebd60e17
--- /dev/null
+++ b/src/api/equipment/analysis/statistics.js
@@ -0,0 +1,27 @@
+/*
+ * @Author: Do not edit
+ * @Date: 2023-11-10 09:27:39
+ * @LastEditTime: 2023-11-10 09:30:00
+ * @LastEditors: DY
+ * @Description:
+ */
+import request from '@/utils/request'
+
+// 获得设备统计分析
+export function getEqAnalysis(query) {
+ return request({
+ url: '/analysis/equipment-analysis/statistics',
+ method: 'get',
+ params: query
+ })
+}
+
+// 导出设备统计分析
+export function exportEqAnalysisExcel(query) {
+ return request({
+ url: '/analysis/equipment-analysis/export-excel',
+ method: 'get',
+ params: query,
+ responseType: 'blob'
+ })
+}
\ No newline at end of file
diff --git a/src/api/equipment/base/alarm/records.js b/src/api/equipment/base/alarm/records.js
new file mode 100644
index 00000000..8a4104ca
--- /dev/null
+++ b/src/api/equipment/base/alarm/records.js
@@ -0,0 +1,60 @@
+/*
+ * @Author: Do not edit
+ * @Date: 2023-11-08 15:56:52
+ * @LastEditTime: 2023-11-09 17:42:27
+ * @LastEditors: DY
+ * @Description:
+ */
+import request from '@/utils/request'
+
+// 创建设备报警处理
+export function createAlarmHand(data) {
+ return request({
+ url: '/base/equipment-alarm-hand/create',
+ method: 'post',
+ data: data
+ })
+}
+
+// 更新设备报警处理
+export function updateAlarmHand(data) {
+ return request({
+ url: '/base/equipment-alarm-hand/update',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除设备报警处理
+export function deleteAlarmHand(id) {
+ return request({
+ url: '/base/equipment-alarm-hand/delete?id=' + id,
+ method: 'delete'
+ })
+}
+
+//获得设备报警处理
+export function getAlarmHand(id) {
+ return request({
+ url: '/base/equipment-alarm-hand/get?id=' + id,
+ method: 'get'
+ })
+}
+
+// 获得设备报警处理分页
+export function getAlarmHandPage(query) {
+ return request({
+ url: '/base/equipment-alarm-hand/page',
+ method: 'get',
+ params: query
+ })
+}
+
+
+//获得设备报警记录
+export function getAlarmLog(id) {
+ return request({
+ url: '/base/equipment-alarm-log/get?id=' + id,
+ method: 'get'
+ })
+}
diff --git a/src/api/equipment/base/inspection/record.js b/src/api/equipment/base/inspection/record.js
new file mode 100644
index 00000000..5c0e2cb2
--- /dev/null
+++ b/src/api/equipment/base/inspection/record.js
@@ -0,0 +1,62 @@
+/*
+ * @Author: Do not edit
+ * @Date: 2023-11-08 15:56:52
+ * @LastEditTime: 2023-11-11 19:52:54
+ * @LastEditors: DY
+ * @Description:
+ */
+import request from '@/utils/request'
+
+// 根据设备获得所有巡检内容列表
+export function getcheckAllList(query) {
+ return request({
+ url: '/base/equipment-check/listAll',
+ method: 'get',
+ params: query
+ })
+}
+
+// 创建设备巡检计划记录
+export function createCheckLog(data) {
+ return request({
+ url: '/base/equipment-check-log/create',
+ method: 'post',
+ data: data
+ })
+}
+
+// 更新设备巡检计划记录
+export function updateCheckLog(data) {
+ return request({
+ url: '/base/equipment-check-log/update',
+ method: 'put',
+ data: data
+ })
+}
+
+// 获得设备巡检计划记录
+export function getEqCheckLog(id) {
+ return request({
+ url: '/base/equipment-check-log/get?id=' + id,
+ method: 'get'
+ })
+}
+
+// 导出设备巡检计划记录
+export function exportCheckLogExcel(query) {
+ return request({
+ url: '/base/equipment-check-log/export-excel',
+ method: 'get',
+ params: query,
+ responseType: 'blob'
+ })
+}
+
+// 根据设备获得所有巡检配置列表
+export function getcheckConfigByEqList(query) {
+ return request({
+ url: '/base/equipment-check-config/list',
+ method: 'get',
+ params: query
+ })
+}
diff --git a/src/api/equipment/base/inspection/settings.js b/src/api/equipment/base/inspection/settings.js
new file mode 100644
index 00000000..8d2ad8c9
--- /dev/null
+++ b/src/api/equipment/base/inspection/settings.js
@@ -0,0 +1,68 @@
+/*
+ * @Author: Do not edit
+ * @Date: 2023-11-08 15:56:52
+ * @LastEditTime: 2023-11-10 09:04:50
+ * @LastEditors: DY
+ * @Description:
+ */
+import request from '@/utils/request'
+
+// 获得设备巡检设置
+export function getEqCheck(id) {
+ return request({
+ url: '/base/equipment-check-config/get?id=' + id,
+ method: 'get'
+ })
+}
+
+// 创建巡检项目
+export function createCheckDet(data) {
+ return request({
+ url: '/base/equipment-check-config-det/create',
+ method: 'post',
+ data: data
+ })
+}
+
+// 更新巡检项目
+export function updateCheckDet(data) {
+ return request({
+ url: '/base/equipment-check-config-det/update',
+ method: 'put',
+ data: data
+ })
+}
+
+// 删除巡检项目
+export function deleteCheckDet(id) {
+ return request({
+ url: '/base/equipment-check-config-det/delete?id=' + id,
+ method: 'delete'
+ })
+}
+
+//巡检项目
+export function getCheckDet(id) {
+ return request({
+ url: '/base/equipment-check-config-det/get?id=' + id,
+ method: 'get'
+ })
+}
+
+// 获得巡检项目分页
+export function getCheckDetPage(query) {
+ return request({
+ url: '/base/equipment-check-config-det/page',
+ method: 'get',
+ params: query
+ })
+}
+
+// 获得x巡检所有列表
+export function getcheckList(query) {
+ return request({
+ url: '/base/equipment-check/list',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/src/api/equipment/base/repair.js b/src/api/equipment/base/repair.js
new file mode 100644
index 00000000..a93e4a9f
--- /dev/null
+++ b/src/api/equipment/base/repair.js
@@ -0,0 +1,25 @@
+/*
+ * @Author: Do not edit
+ * @Date: 2023-11-10 16:09:33
+ * @LastEditTime: 2023-11-10 16:50:08
+ * @LastEditors: DY
+ * @Description:
+ */
+import request from '@/utils/request'
+
+//获得设备维修
+export function getEqRepair(id) {
+ return request({
+ url: '/base/equipment-repair-log/get?id=' + id,
+ method: 'get'
+ })
+}
+
+// 更新设备维修记录
+export function updateEqRepair(data) {
+ return request({
+ url: '/base/equipment-repair-log/update',
+ method: 'put',
+ data: data
+ })
+}
\ No newline at end of file
diff --git a/src/api/equipment/base/spare-parts/config.js b/src/api/equipment/base/spare-parts/config.js
new file mode 100644
index 00000000..b2201cad
--- /dev/null
+++ b/src/api/equipment/base/spare-parts/config.js
@@ -0,0 +1,51 @@
+/*
+ * @Author: Do not edit
+ * @Date: 2023-11-11 16:18:57
+ * @LastEditTime: 2023-11-11 17:28:54
+ * @LastEditors: DY
+ * @Description:
+ */
+import request from '@/utils/request'
+
+//获得备品备件配置
+export function getSparePartConfig(id) {
+ return request({
+ url: '/base/equipment-spare-part-config/get?id=' + id,
+ method: 'get'
+ })
+}
+
+// 创建设备备品备件配置--抽屉
+export function createConfigDet(data) {
+ return request({
+ url: '/base/equipment-spare-part-config-det/create',
+ method: 'post',
+ data: data
+ })
+}
+
+// 删除设备备品备件配置--抽屉
+export function deleteConfigDet(id) {
+ return request({
+ url: '/base/equipment-spare-part-config-det/delete?id=' + id,
+ method: 'delete'
+ })
+}
+
+// 获得抽屉表格分页
+export function getConfigDetPage(query) {
+ return request({
+ url: '/base/equipment-spare-part-config-det/page',
+ method: 'get',
+ params: query
+ })
+}
+
+// 获得备品备件列表
+export function getSparePartList(query) {
+ return request({
+ url: '/base/equipment-spare-part/list',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/src/api/equipment/base/spare-parts/monitor.js b/src/api/equipment/base/spare-parts/monitor.js
new file mode 100644
index 00000000..af4f2a42
--- /dev/null
+++ b/src/api/equipment/base/spare-parts/monitor.js
@@ -0,0 +1,45 @@
+/*
+ * @Author: Do not edit
+ * @Date: 2023-11-11 16:18:57
+ * @LastEditTime: 2023-11-11 18:44:51
+ * @LastEditors: DY
+ * @Description:
+ */
+import request from '@/utils/request'
+
+// 获得抽屉表格分页
+export function getConfigDetMonitorPage(query) {
+ return request({
+ url: '/base/equipment-spare-part-config-det/monitor',
+ method: 'get',
+ params: query
+ })
+}
+
+// 创建设备备品备件更换log
+export function createSparePartLog(data) {
+ return request({
+ url: '/base/equipment-spare-part-log/create',
+ method: 'post',
+ data: data
+ })
+}
+
+// 获得设备备品备件更换log分页
+export function getSparePartLogPage(query) {
+ return request({
+ url: '/base/equipment-spare-part-log/page',
+ method: 'get',
+ params: query
+ })
+}
+
+// 导出设备备品备件更换log
+export function exportSparePartLogExcel(query) {
+ return request({
+ url: '/base/equipment-spare-part-log/export-excel',
+ method: 'get',
+ params: query,
+ responseType: 'blob'
+ })
+}
diff --git a/src/api/extend/processEquMaterialBom.js b/src/api/extend/processEquMaterialBom.js
new file mode 100644
index 00000000..5be7bfb0
--- /dev/null
+++ b/src/api/extend/processEquMaterialBom.js
@@ -0,0 +1,106 @@
+/*
+ * @Author: zhp
+ * @Date: 2023-11-07 19:47:48
+ * @LastEditTime: 2023-11-08 16:59:32
+ * @LastEditors: zhp
+ * @Description:
+ */
+import request from '@/utils/request'
+
+// 获得能耗统计查询分页
+export function processEquMaterialBomPage(data) {
+ return request({
+ url: '/extend/process-equ-material-bom/page',
+ method: 'get',
+ data: data
+ })
+}
+
+export function updateProcessEquMaterialBom(data) {
+ return request({
+ url: '/extend/process-equ-material-bom/update',
+ method: 'put',
+ data: data
+ })
+}
+
+export function createProcessEquMaterialBom(data) {
+ return request({
+ url: '/extend/process-equ-material-bom/create',
+ method: 'post',
+ data: data
+ })
+}
+
+
+export function getProcessEquMaterialBom(data) {
+ return request({
+ url: '/extend/process-equ-material-bom/get',
+ method: 'get',
+ params: data
+ })
+}
+
+export function deleteProcessEquMaterialBom(id) {
+ return request({
+ url: '/extend/process-equ-material-bom/delete?id=' + id,
+ method: 'delete',
+ // data: data
+ })
+}
+
+export function getEquipmentList(data) {
+ return request({
+ url: '/base/core-equipment/listAll',
+ method: 'get',
+ data: data
+ })
+}
+
+export function deleteProcessEquMaterialBomDet(id) {
+ return request({
+ url: '/extend/process-equ-material-bom-det/delete?id=' + id,
+ method: 'delete',
+ // data: data
+ })
+}
+
+export function processEquMaterialBomDetPage(data) {
+ return request({
+ url: '/extend/process-equ-material-bom-det/page',
+ method: 'get',
+ params: data
+ })
+}
+
+export function updateProcessEquMaterialBomDet(data) {
+ return request({
+ url: '/extend/process-equ-material-bom-det/update',
+ method: 'put',
+ data: data
+ })
+}
+
+export function createProcessEquMaterialBomDet(data) {
+ return request({
+ url: '/extend/process-equ-material-bom-det/create',
+ method: 'post',
+ data: data
+ })
+}
+
+export function getProcessEquMaterialBomDet(data) {
+ return request({
+ url: '/extend/process-equ-material-bom-det/get',
+ method: 'get',
+ params: data
+ })
+}
+
+export function getMaterialList(data) {
+ return request({
+ url: '/base/material/listbyfilter',
+ method: 'get',
+ data: data
+ })
+}
diff --git a/src/api/extend/processEquValueBom.js b/src/api/extend/processEquValueBom.js
new file mode 100644
index 00000000..8048c56b
--- /dev/null
+++ b/src/api/extend/processEquValueBom.js
@@ -0,0 +1,106 @@
+/*
+ * @Author: zhp
+ * @Date: 2023-11-09 09:37:14
+ * @LastEditTime: 2023-11-09 14:20:02
+ * @LastEditors: zhp
+ * @Description:
+ */
+import request from '@/utils/request'
+
+// 获得能耗统计查询分页
+export function processEquValueBomPage(data) {
+ return request({
+ url: '/extend/process-equ-value-bom/page',
+ method: 'get',
+ data: data
+ })
+}
+
+export function updateProcessEquValueBom(data) {
+ return request({
+ url: '/extend/process-equ-value-bom/update',
+ method: 'put',
+ data: data
+ })
+}
+
+export function createProcessEquValueBom(data) {
+ return request({
+ url: '/extend/process-equ-value-bom/create',
+ method: 'post',
+ data: data
+ })
+}
+
+
+export function getProcessEquValueBom(data) {
+ return request({
+ url: '/extend/process-equ-value-bom/get',
+ method: 'get',
+ params: data
+ })
+}
+
+export function deleteProcessEquValueBom(id) {
+ return request({
+ url: '/extend/process-equ-value-bom/delete?id=' + id,
+ method: 'delete',
+ // data: data
+ })
+}
+
+export function getEquipmentList(data) {
+ return request({
+ url: '/base/core-equipment/listAll',
+ method: 'get',
+ data: data
+ })
+}
+
+export function deleteProcessEquValueBomDet(id) {
+ return request({
+ url: '/extend/process-equ-value-bom-det/delete?id=' + id,
+ method: 'delete',
+ // data: data
+ })
+}
+
+export function processEquValueBomDetPage(data) {
+ return request({
+ url: '/extend/process-equ-value-bom-det/page',
+ method: 'get',
+ params: data
+ })
+}
+
+export function updateProcessEquValueBomDet(data) {
+ return request({
+ url: '/extend/process-equ-value-bom-det/update',
+ method: 'put',
+ data: data
+ })
+}
+
+export function createProcessEquValueBomDet(data) {
+ return request({
+ url: '/extend/process-equ-value-bom-det/create',
+ method: 'post',
+ data: data
+ })
+}
+
+export function getProcessEquValueBomDet(data) {
+ return request({
+ url: '/extend/process-equ-value-bom-det/get',
+ method: 'get',
+ params: data
+ })
+}
+
+export function getValueList(data) {
+ return request({
+ url: '/extend/process-equ-value-bom-det/getEnableValuesByEquId',
+ method: 'get',
+ params: data
+ })
+}
diff --git a/src/api/monitoring/qualityInspectionRecord.js b/src/api/monitoring/qualityInspectionRecord.js
index 81454cc5..acd532c8 100644
--- a/src/api/monitoring/qualityInspectionRecord.js
+++ b/src/api/monitoring/qualityInspectionRecord.js
@@ -1,9 +1,16 @@
+/*
+ * @Author: zhp
+ * @Date: 2023-10-17 09:26:38
+ * @LastEditTime: 2023-11-02 17:00:17
+ * @LastEditors: zhp
+ * @Description:
+ */
import request from '@/utils/request'
// 创建质量检查信息记录表
export function createQualityInspectionRecord(data) {
return request({
- url: '/monitoring/quality-inspection-record/create',
+ url: '/base/quality-inspection-record/create',
method: 'post',
data: data
})
@@ -12,7 +19,7 @@ export function createQualityInspectionRecord(data) {
// 更新质量检查信息记录表
export function updateQualityInspectionRecord(data) {
return request({
- url: '/monitoring/quality-inspection-record/update',
+ url: '/base/quality-inspection-record/update',
method: 'put',
data: data
})
@@ -21,7 +28,7 @@ export function updateQualityInspectionRecord(data) {
// 删除质量检查信息记录表
export function deleteQualityInspectionRecord(id) {
return request({
- url: '/monitoring/quality-inspection-record/delete?id=' + id,
+ url: '/base/quality-inspection-record/delete?id=' + id,
method: 'delete'
})
}
@@ -29,7 +36,7 @@ export function deleteQualityInspectionRecord(id) {
// 获得质量检查信息记录表
export function getQualityInspectionRecord(id) {
return request({
- url: '/monitoring/quality-inspection-record/get?id=' + id,
+ url: '/base/quality-inspection-record/get?id=' + id,
method: 'get'
})
}
@@ -37,7 +44,7 @@ export function getQualityInspectionRecord(id) {
// 获得质量检查信息记录表分页
export function getQualityInspectionRecordPage(query) {
return request({
- url: '/monitoring/quality-inspection-record/page',
+ url: '/base/quality-inspection-record/page',
method: 'get',
params: query
})
@@ -46,7 +53,7 @@ export function getQualityInspectionRecordPage(query) {
// 导出质量检查信息记录表 Excel
export function exportQualityInspectionRecordExcel(query) {
return request({
- url: '/monitoring/quality-inspection-record/export-excel',
+ url: '/base/quality-inspection-record/export-excel',
method: 'get',
params: query,
responseType: 'blob'
diff --git a/src/api/monitoring/statisticalData.js b/src/api/monitoring/statisticalData.js
new file mode 100644
index 00000000..4f19d699
--- /dev/null
+++ b/src/api/monitoring/statisticalData.js
@@ -0,0 +1,40 @@
+/*
+ * @Author: zhp
+ * @Date: 2023-11-07 14:10:18
+ * @LastEditTime: 2023-11-07 16:29:55
+ * @LastEditors: zhp
+ * @Description:
+ */
+import request from '@/utils/request'
+
+// 获得质量检查信息记录表分页
+export function getStatisticalDataPage(query) {
+ return request({
+ url: '/base/statistical-data/getStatisticData',
+ method: 'get',
+ data: query
+ })
+}
+
+export function getWorkOrderList(query) {
+ return request({
+ url: '/base/core-work-order/listbyfilter',
+ method: 'get',
+ params: query,
+ })
+}
+export function getProductList(query) {
+ return request({
+ url: '/base/core-product/listAll',
+ method: 'get',
+ params: query,
+ })
+}
+
+export function getInspectionData(query) {
+ return request({
+ url: '/base/statistical-data/getInspectionData',
+ method: 'get',
+ params: query,
+ })
+}
diff --git a/src/api/quality/deviceParameters.js b/src/api/quality/deviceParameters.js
new file mode 100644
index 00000000..ae1c87fb
--- /dev/null
+++ b/src/api/quality/deviceParameters.js
@@ -0,0 +1,35 @@
+/*
+ * @Author: zhp
+ * @Date: 2023-10-18 09:33:57
+ * @LastEditTime: 2023-11-03 09:31:17
+ * @LastEditors: zhp
+ * @Description:
+ */
+import request from '@/utils/request'
+
+
+// 获得物料信息追溯page
+export function getTreeData(query) {
+ return request({
+ url: '/base/core-factory/getTreeByWorkOrder',
+ method: 'get',
+ params: query
+ })
+}
+
+export function getWorkOrderList(query) {
+ return request({
+ url: '/base/core-work-order/listbyfilter',
+ method: 'get',
+ params: query,
+ })
+}
+// 导出物料信息
+export function exportEnergyPlcExcel(query) {
+ return request({
+ url: '/base/material-use-log/materialTraceExport',
+ method: 'get',
+ params: query,
+ responseType: 'blob'
+ })
+}
diff --git a/src/api/quality/materialTraceability.js b/src/api/quality/materialTraceability.js
new file mode 100644
index 00000000..d8eea07f
--- /dev/null
+++ b/src/api/quality/materialTraceability.js
@@ -0,0 +1,35 @@
+/*
+ * @Author: zhp
+ * @Date: 2023-10-18 09:33:57
+ * @LastEditTime: 2023-10-31 10:28:51
+ * @LastEditors: zhp
+ * @Description:
+ */
+import request from '@/utils/request'
+
+
+// 获得物料信息追溯page
+export function getMaterialUseLogPage(query) {
+ return request({
+ url: '/base/material-use-log/materialTrace',
+ method: 'get',
+ params: query
+ })
+}
+
+export function getWorkOrderList(query) {
+ return request({
+ url: '/base/core-work-order/listbyfilter',
+ method: 'get',
+ params: query,
+ })
+}
+// 导出物料信息
+export function exportEnergyPlcExcel(query) {
+ return request({
+ url: '/base/material-use-log/materialTraceExport',
+ method: 'get',
+ params: query,
+ responseType: 'blob'
+ })
+}
diff --git a/src/api/quality/processTraceability.js b/src/api/quality/processTraceability.js
new file mode 100644
index 00000000..d2152584
--- /dev/null
+++ b/src/api/quality/processTraceability.js
@@ -0,0 +1,35 @@
+/*
+ * @Author: zhp
+ * @Date: 2023-10-31 15:05:06
+ * @LastEditTime: 2023-11-03 09:05:50
+ * @LastEditors: zhp
+ * @Description:
+ */
+import request from '@/utils/request'
+
+
+// 获得工艺信息追溯page
+export function getProcessTraceabilityPage(query) {
+ return request({
+ url: '/extend/process-retrospect/get',
+ method: 'post',
+ data: query
+ })
+}
+
+export function getWorkOrderList(query) {
+ return request({
+ url: '/base/core-work-order/listbyfilter',
+ method: 'get',
+ params: query,
+ })
+}
+// 导出物料信息
+// export function exportEnergyPlcExcel(query) {
+// return request({
+// url: '/base/material-use-log/materialTraceExport',
+// method: 'get',
+// params: query,
+// responseType: 'blob'
+// })
+// }
diff --git a/src/api/quality/processTraceabilityDetail.js b/src/api/quality/processTraceabilityDetail.js
new file mode 100644
index 00000000..55da6791
--- /dev/null
+++ b/src/api/quality/processTraceabilityDetail.js
@@ -0,0 +1,43 @@
+/*
+ * @Author: zhp
+ * @Date: 2023-10-18 09:33:57
+ * @LastEditTime: 2023-11-09 15:33:20
+ * @LastEditors: zhp
+ * @Description:
+ */
+import request from '@/utils/request'
+
+
+// 获得物料信息追溯page
+export function getDetMaterial(query) {
+ return request({
+ url: '/extend/process-retrospect/getDetMaterial',
+ method: 'post',
+ data: query
+ })
+}
+
+export function getDetValue(query) {
+ return request({
+ url: '/extend/process-retrospect/getDetValue',
+ method: 'post',
+ data: query
+ })
+}
+
+// export function getWorkOrderList(query) {
+// return request({
+// url: '/base/core-work-order/listbyfilter',
+// method: 'get',
+// params: query,
+// })
+// }
+// // 导出物料信息
+// export function exportEnergyPlcExcel(query) {
+// return request({
+// url: '/base/material-use-log/materialTraceExport',
+// method: 'get',
+// params: query,
+// responseType: 'blob'
+// })
+// }
diff --git a/src/api/quality/rawMaterialTraceability.js b/src/api/quality/rawMaterialTraceability.js
new file mode 100644
index 00000000..aba01790
--- /dev/null
+++ b/src/api/quality/rawMaterialTraceability.js
@@ -0,0 +1,35 @@
+/*
+ * @Author: zhp
+ * @Date: 2023-10-31 10:55:20
+ * @LastEditTime: 2023-10-31 15:05:30
+ * @LastEditors: zhp
+ * @Description:
+ */
+import request from '@/utils/request'
+
+
+// 获得原料信息追溯page
+export function getRawMaterialPage(query) {
+ return request({
+ url: '/base/core-work-order-material/page',
+ method: 'get',
+ params: query
+ })
+}
+
+export function getWorkOrderList(query) {
+ return request({
+ url: '/base/core-work-order/listbyfilter',
+ method: 'get',
+ params: query,
+ })
+}
+// 导出物料信息
+export function exportEnergyPlcExcel(query) {
+ return request({
+ url: '/base/material-use-log/materialTraceExport',
+ method: 'get',
+ params: query,
+ responseType: 'blob'
+ })
+}
diff --git a/src/assets/icons/svg/exitbtn.svg b/src/assets/icons/svg/exitbtn.svg
new file mode 100644
index 00000000..8b8b0eff
--- /dev/null
+++ b/src/assets/icons/svg/exitbtn.svg
@@ -0,0 +1,12 @@
+
+
+ exit
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/assets/icons/svg/helpbtn.svg b/src/assets/icons/svg/helpbtn.svg
new file mode 100644
index 00000000..5960b5b3
--- /dev/null
+++ b/src/assets/icons/svg/helpbtn.svg
@@ -0,0 +1,20 @@
+
+
+ 编组 17
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/assets/images/login-bg.png b/src/assets/images/login-bg.png
new file mode 100644
index 00000000..0156badd
Binary files /dev/null and b/src/assets/images/login-bg.png differ
diff --git a/src/assets/logo/cnbm.png b/src/assets/logo/cnbm.png
new file mode 100644
index 00000000..ed7d3fdf
Binary files /dev/null and b/src/assets/logo/cnbm.png differ
diff --git a/src/assets/styles/login.scss b/src/assets/styles/login.scss
index 7efb2546..db9f3a47 100644
--- a/src/assets/styles/login.scss
+++ b/src/assets/styles/login.scss
@@ -1,10 +1,13 @@
/* ===== PC DESIGN ===== */
-$W: 1000;
+$W: 1080;
$H: 1920;
-$picW: 438;
-$picH: 560;
-$formW: 320;
+// $picW: 438;
+// $picH: 560;
+$picW: 1080;
+$picH: 1118;
+$formW: 420;
$tabW: $formW / 2;
+// $rowH: 56;
$rowH: 56;
$buttonH: 50;
@@ -15,6 +18,7 @@ $containerBgImage: '../assets/images/bg.png';
$logoWidth: 417px;
$logoHeight: 64px;
$logoImage: '../assets/logo/login-logo.png';
+$cnbmLogo: '../assets/logo/cnbm.png';
// container-content
$contentWidth: round($W / $H * 100) * 1vw;
$contentHeight: round($picH / $W * 100) / 100 * $contentWidth;
@@ -22,7 +26,8 @@ $contentBgColor: #ffffff;
// container-content-pic
$picWidth: round($picW / $H * 100) * 1vw;
$picHeight: inherit;
-$picImage: '../assets/images/pic.png';
+// $picImage: '../assets/images/pic.png';
+$picImage: '../assets/images/login-bg.png';
// container-content-field
$fieldWidth: $contentWidth - $picWidth;
$fieldHeight: inherit;
@@ -34,231 +39,309 @@ $buttonHeight: $buttonH * 1px;
// - - - - - 页面基础设置
.container {
- .login-code {
- width: 33%;
- height: 38px;
- float: right;
- img {
- cursor: pointer;
- width:100%;max-width:100px; height:auto;
- vertical-align: middle;
- }
- }
- // 元素
- width: inherit;
- height: inherit;
- min-width: 1080px;
- min-height: 620px;
- background-color: $containerBgColor;
- background-image: url($containerBgImage);
- background-size: cover;
- // 定位
- position: relative;
- display: flex;
- justify-content: center;
- align-items: center;
- // 文字
- font-size: 14px;
- font-family: Microsoft YaHei;
- font-weight: 400;
- .logo {
- // 元素
- width: $logoWidth;
- height: $logoHeight;
- // background-image: url($logoImage);
- // background-size: contain;
- // 定位
- position: absolute;
- top: 50px;
- left: 50%;
- margin-left: -$logoWidth/2;
- }
- .content {
- // 元素
- width: $contentWidth;
- height: $contentHeight;
- background-color: #ffffff;
- box-shadow: 0px 16px 40px rgba(0, 0, 0, 0.07);
- border-radius: 20px;
- // 定位
- position: relative;
- .pic {
- // 元素
- width: $picWidth;
- height: $picHeight;
- background-image: url($picImage);
- background-repeat: no-repeat;
- background-size: cover;
- border-radius: 20px 0 0 20px;
- // 定位
- position: absolute;
- top: 0;
- left: 0;
- }
- .field {
- width: $fieldWidth;
- height: $fieldHeight;
- // 定位
- position: absolute;
- top: 0;
- left: $picWidth;
- display:flex;
- justify-content: center;
- align-items: center;
- .pc-title{ width: 100%; clear: both;}
- .mobile-title,
- .mobile-switch {
- display: none;
- }
- .form {
- box-sizing: border-box;
- width: $formWidth;
- // - - - tab
- :deep(.el-tabs__content) {
- padding: 20px 0 0;
- }
- :deep(.el-tabs__item) {
- // 元素
- width: $tabWidth;
- height: $rowHeight;
- padding: 0;
- // 文字
- line-height: $rowHeight;
- color: #666666;
- }
- :deep(.el-tabs__item.is-active) {
- font-weight: bold;
- color: #2F53EB;
- }
- :deep(.el-tabs__active-bar) {
- height: 3px;
- border-radius: 2px;
- }
- // - - - input
- :deep(.el-input__inner) {
- // 元素
- width: 100%;
- height: $rowHeight;
- background: #f5f5f5;
- border: 0;
- border-radius: 28px;
- // 文字
- text-align: center;
- line-height: 19px;
- color: #262626;
- }
- .code:deep(.el-input__inner) {
- padding: 0 24px;
- // 文字
- text-align: left;
- }
- :deep(.el-input__inner::-webkit-input-placeholder) { /* WebKit browsers */
- font-weight: 400;
- color: #8C8C8C;
- }
- :deep(.el-input__inner:-moz-placeholder) { /* Mozilla Firefox 4 to 18 */
- font-weight: 400;
- color: #8C8C8C;
- }
- :deep(.el-input__inner::-moz-placeholder) { /* Mozilla Firefox 19+ */
- font-weight: 400;
- color: #8C8C8C;
- opacity:1;
- }
- :deep(.el-input__inner:-ms-input-placeholder) { /* Internet Explorer 10+ */
- font-weight: 400;
- color: #8C8C8C !important;
- }
- :deep(.el-form-item) {
- position: relative;
- .button-code {
- // 元素
- height: $rowHeight;
- box-sizing: border-box;
- // 定位
- position: absolute;
- top: 0;
- right: 20px;
- z-index: 1;
- // 文字
- line-height: 20px;
- font-size: 14px;
- font-family: PingFang SC;
- font-weight: 400;
- color: #2F53EB;
- span {
- padding-left: 15px;
- border-left: 2px solid #D9D9D9;
- }
- }
- }
- :deep(.el-form-item__error) {
- padding-left: 24px;
- }
- .button {
- width: 100%;
- height: $buttonHeight;
- background: rgba(24, 144, 255, 0.2);
- border: 0;
- border-radius: 24px;
- margin-bottom: 20px;
- // 文字
- line-height: 26px;
- font-size: 20px;
- color: #FFFFFF;
- }
- .button-active {
- background: #2F53EB;
- box-shadow: 0px 2px 8px rgba(0, 80, 184, 0.2);
- }
- }
- }
- }
- .footer {
- // 元素
- height: 16px;
- line-height: 16px;
- font-size: 12px;
- color: #8c8c8c;
- // 定位
- position: absolute;
- bottom: 30px;
- a,
- a:hover,
- a:active {
- color: inherit;
- text-decoration: none;
- }
- }
+ .login-code {
+ width: 33%;
+ height: 38px;
+ float: right;
+ img {
+ cursor: pointer;
+ width: 100%;
+ max-width: 100px;
+ height: auto;
+ vertical-align: middle;
+ }
+ }
+ // 元素
+ width: inherit;
+ height: inherit;
+ min-width: 1080px;
+ min-height: 620px;
+ background-color: $containerBgColor;
+ // background-image: url($containerBgImage);
+ background-size: cover;
+ // 定位
+ position: relative;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ // 文字
+ font-size: 14px;
+ font-family: Microsoft YaHei;
+ font-weight: 400;
+ .logo {
+ // 元素
+ width: $logoWidth;
+ height: $logoHeight;
+ // background-image: url($logoImage);
+ // background-size: contain;
+ // 定位
+ position: absolute;
+ top: 50px;
+ left: 50%;
+ margin-left: -$logoWidth/2;
+ }
+ .content {
+ // 元素
+ // width: $contentWidth;
+ // height: $contentHeight;
+ width: 100%;
+ height: 100%;
+ background-color: #ffffff;
+ // box-shadow: 0px 16px 40px rgba(0, 0, 0, 0.07);
+ // border-radius: 20px;
+ // 定位
+ position: relative;
+ display: flex;
+
+ .pic {
+ // 元素
+ width: $picWidth;
+ height: $picHeight;
+ background-image: url($picImage);
+ background-repeat: no-repeat;
+ background-size: 100% 100%;
+ background-position: 0 0;
+ position: relative;
+ &::after {
+ content: '';
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ // background: #f003;
+ display: inline-block;
+ }
+ }
+ .field {
+ // background: #ccc3;
+ position: relative;
+ padding-top: 196px;
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ // justify-content: center;
+ align-items: center;
+ .pc-title {
+ width: 100%;
+ text-align: center;
+ clear: both;
+ position: relative;
+ top: -36px;
+
+ // h3.title {
+ // position: relative;
+
+ // &::before {
+ // content: '';
+ // background: url($cnbmLogo) 100% / 100% no-repeat;
+ // height: 48px;
+ // width: 48px;
+ // position: absolute;
+ // left: 0px;
+ // top: 4px;
+ // display: inline-block;
+ // }
+ // }
+ }
+ .mobile-title,
+ .mobile-switch {
+ display: none;
+ }
+ .form {
+ margin-top: 32px;
+ box-sizing: border-box;
+ // width: $formWidth;
+ width: 100%;
+ // - - - tab
+ :deep(.el-tabs__nav) {
+ // background: #f0f3;
+ }
+ :deep(.el-tabs__content) {
+ padding: 20px 0 0;
+ }
+ :deep(.el-tabs__item) {
+ user-select: none;
+ // 元素
+ width: $tabWidth;
+ height: $rowHeight;
+ padding: 0;
+ // 文字
+ line-height: $rowHeight;
+ color: #666666;
+ font-size: 18px;
+ font-weight: 400;
+ text-align: center;
+ }
+ :deep(.el-tabs__item.is-active) {
+ font-weight: 500;
+ color: #2f53eb;
+ }
+ :deep(.el-tabs__active-bar) {
+ height: 3px;
+ border-radius: 2px;
+ }
+ // - - - input
+ :deep(.el-input__inner) {
+ // 元素
+ width: 100%;
+ height: $rowHeight;
+ background: #f5f5f5;
+ border: 0;
+ border-radius: 28px;
+ // 文字
+ text-align: center;
+ line-height: 19px;
+ color: #262626;
+ }
+ .code:deep(.el-input__inner) {
+ padding: 0 24px;
+ // 文字
+ text-align: left;
+ }
+ :deep(.el-input__inner::-webkit-input-placeholder) {
+ /* WebKit browsers */
+ font-weight: 400;
+ color: #8c8c8c;
+ }
+ :deep(.el-input__inner:-moz-placeholder) {
+ /* Mozilla Firefox 4 to 18 */
+ font-weight: 400;
+ color: #8c8c8c;
+ }
+ :deep(.el-input__inner::-moz-placeholder) {
+ /* Mozilla Firefox 19+ */
+ font-weight: 400;
+ color: #8c8c8c;
+ opacity: 1;
+ }
+ :deep(.el-input__inner:-ms-input-placeholder) {
+ /* Internet Explorer 10+ */
+ font-weight: 400;
+ color: #8c8c8c !important;
+ }
+ :deep(.el-form-item) {
+ position: relative;
+ .button-code {
+ // 元素
+ height: $rowHeight;
+ box-sizing: border-box;
+ // 定位
+ position: absolute;
+ top: 0;
+ right: 20px;
+ z-index: 1;
+ // 文字
+ line-height: 20px;
+ font-size: 14px;
+ font-family: PingFang SC;
+ font-weight: 400;
+ color: #2f53eb;
+ span {
+ padding-left: 15px;
+ border-left: 2px solid #d9d9d9;
+ }
+ }
+ }
+ :deep(.el-form-item__error) {
+ padding-left: 24px;
+ }
+ .button {
+ width: 100%;
+ height: $buttonHeight;
+ background: rgba(24, 144, 255, 0.2);
+ border: 0;
+ border-radius: 24px;
+ margin-bottom: 20px;
+ // 文字
+ line-height: 26px;
+ font-size: 20px;
+ color: #ffffff;
+ }
+ .button-active {
+ background: #2f53eb;
+ box-shadow: 0px 2px 8px rgba(0, 80, 184, 0.2);
+ }
+ }
+ }
+ }
+
+ .login-form {
+ * {
+ user-select: none;
+ }
+ // - - - input
+ :deep(.el-input__inner) {
+ // 元素
+ width: 420px;
+ height: 66px;
+ color: #262626;
+ font-size: 18px;
+ }
+ :deep(.el-checkbox__label) {
+ font-size: 18px;
+ line-height: 14px;
+ }
+ }
+
+ .footer {
+ user-select: none;
+ // 元素
+ height: 16px;
+ line-height: 16px;
+ font-size: 12px;
+ color: #8c8c8c;
+ // 定位
+ position: absolute;
+ bottom: 30px;
+ a,
+ a:hover,
+ a:active {
+ color: inherit;
+ text-decoration: none;
+ }
+ }
}
// - - - - - PC 最小尺寸设置
@media screen and (min-width: 599px) and (max-width: 1366px) {
- .container {
- .content {
- width: 710px;
- height: 397px;
- .pic {
- width: 314px;
- }
- .field {
- width: calc(710px - 314px);
- left: 314px;
- .form {
- width: 320px;
- :deep(.el-input__inner) {
- width: 320px;
- height: 56px;
- }
- .button {
- height: 50px;
- }
- }
- }
- }
- }
-}
+ .container {
+ min-width: 599px;
+ .content {
+ // width: 710px;
+ // height: 397px;
+ width: 100%;
+ height: 100%;
+ .pic {
+ // width: 314px;
+ display: none;
+ }
+ .field {
+ // width: calc(710px - 314px);
+ // left: 314px;
+ // justify-content: center;
+ width: 100%;
+ .pc-title {
+ h3 {
+ font-size: 2.4rem !important;
+ }
+ }
+
+ .form {
+ // width: 320px;
+ :deep(.el-input__inner) {
+ width: 320px;
+ height: 56px;
+ }
+ .button {
+ height: 50px;
+ }
+ }
+ }
+ }
+ }
+}
/* ===== MOBILE DESIGN ===== */
$mobileW: 375;
@@ -273,115 +356,142 @@ $mobileButtonH: 48;
$mobileContainerBgImage: '../assets/images/bg-mobile.png';
// container-content
$mobileContentWidth: round($mobileContentW / $mobileW * 100) * 1vw;
-$mobileContentHeight: round($mobileContentH / $mobileW * 100) / 100 * $mobileContentWidth;
+$mobileContentHeight: round($mobileContentH / $mobileW * 100) / 100 *
+ $mobileContentWidth;
// container-content-field-form
-$mobileFormWidth: round($mobileFormW / $mobileW *100) * 1vw;
+$mobileFormWidth: round($mobileFormW / $mobileW * 100) * 1vw;
$mobileRowHeight: $mobileRowH * 1px;
$mobileButtonHeight: $mobileButtonH * 1px;
$iconBgImage: '../assets/images/icon.png';
// - - - - - 移动端设置
@media screen and (max-width: 599px) {
- .container {
- // 元素
- background-image: url($mobileContainerBgImage);
- min-width: 280px;
- min-height: 568px;
- // 文字
- font-size: 17px;
- font-family: PingFang SC;
- font-weight: bold;
- .logo {
- display: none;
- }
+ .container {
+ // 元素
+ background-image: url($mobileContainerBgImage);
+ min-width: 280px;
+ min-height: 568px;
+ // 文字
+ font-size: 14px;
+ font-family: PingFang SC;
+ font-weight: bold;
+ .logo {
+ display: none;
+ }
- .content {
- // 元素
- width: $mobileContentWidth;
- height: $mobileContentHeight;
- min-width: 250px;
- min-height: 340px;
- // 定位
- display: flex;
- justify-content: center;
- align-items: center;
- .pic {
- display: none;
- }
- .field {
- // 元素
- width: inherit;
- min-height: inherit;
- // 定位
- left: 0;
- display: flex;
- flex-direction: column;
- .mobile-title {
- // 元素
- margin: 0 0 20px;
- display: block;
- }
- .form {
- width: $mobileFormWidth;
- // - - - tab
- :deep(.el-tabs__header) {
- display: none;
- }
- :deep(.el-tabs__content) {
- padding: 0;
- }
- // - - - input
- :deep(.el-input__inner) {
- height: $mobileRowHeight;
- line-height: 24px;
- // 文字
- text-align: center;
- color: #262626;
- }
- :deep(.el-form-item) {
- .button-code {
- // 元素
- height: $mobileRowHeight;
- }
- }
- .button {
- height: $mobileButtonHeight;
- line-height: 24px;
- color: #FFFFFF;
- }
- }
- .mobile-switch {
- display: block;
- line-height: 20px;
- font-size: 14px;
- font-weight: 400;
- color: #595959;
- margin: 0;
- .icon {
- width: 14px;
- height: 14px;
- display: inline-block;
- background-image: url($iconBgImage);
- background-size: cover;
- }
- }
- .mobile-switch:hover {
- cursor: pointer;
- }
- }
- }
- .footer {
- // 元素
- font-size: 12px;
- font-family: PingFang SC;
- font-weight: 400;
- line-height: 17px;
- color: #333333;
- opacity: 0.6;
- // 定位
- position: absolute;
- bottom: 20px;
- }
- }
+ .pc-title {
+ display: none;
+ }
+ .content {
+ // 元素
+ width: $mobileContentWidth;
+ height: $mobileContentHeight;
+ min-width: 250px;
+ min-height: 340px;
+ // 定位
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ .pic {
+ display: none;
+ }
+ .field {
+ padding: 0;
+ // 元素
+ width: inherit;
+ min-height: inherit;
+ // 定位
+ left: 0;
+ display: flex;
+ flex-direction: column;
+
+ .mobile-title {
+ // 元素
+ margin: 0;
+ display: block;
+ }
+
+ .form {
+ margin: 0;
+ width: $mobileFormWidth;
+ // - - - tab
+ :deep(.el-tabs__header) {
+ display: none;
+ }
+ :deep(.el-tabs__content) {
+ padding: 0;
+ }
+ // - - - input
+ :deep(.el-input__inner) {
+ height: $mobileRowHeight;
+ line-height: 24px;
+ // 文字
+ text-align: center;
+ color: #262626;
+ }
+ :deep(.el-form-item) {
+ .button-code {
+ // 元素
+ height: $mobileRowHeight;
+ }
+ }
+ .button {
+ height: $mobileButtonHeight;
+ line-height: 24px;
+ color: #ffffff;
+ }
+ }
+
+ .login-form {
+ :deep(.el-input__inner) {
+ height: $mobileRowHeight;
+ line-height: 24px;
+ // 文字
+ text-align: center;
+ color: #262626;
+ }
+
+ :deep(#button-form-item) {
+ margin: 0 !important;
+ button {
+ // 元素
+ height: $mobileRowHeight;
+ }
+ }
+ }
+ .mobile-switch {
+ display: block;
+ line-height: 20px;
+ font-size: 14px;
+ font-weight: 400;
+ color: #595959;
+ margin: 0;
+ .icon {
+ width: 14px;
+ height: 14px;
+ display: inline-block;
+ background-image: url($iconBgImage);
+ background-size: cover;
+ }
+ }
+ .mobile-switch:hover {
+ cursor: pointer;
+ }
+ }
+ }
+
+ .footer {
+ // 元素
+ font-size: 12px;
+ font-family: PingFang SC;
+ font-weight: 400;
+ line-height: 17px;
+ color: #333333;
+ opacity: 0.6;
+ // 定位
+ // position: absolute;
+ bottom: -32px;
+ }
+ }
}
diff --git a/src/components/DialogForm/index.vue b/src/components/DialogForm/index.vue
index f0c324ea..4449dab1 100644
--- a/src/components/DialogForm/index.vue
+++ b/src/components/DialogForm/index.vue
@@ -66,7 +66,10 @@
:key="col.key"
:disabled="disabled"
:is="col.subcomponent"
- :inlineStyle="col.style">
+ v-model="form[col.prop]"
+ :inlineStyle="col.style"
+ @on-change="$emit('update', form)"
+ v-bind="col.bind">
-
选取文件
+
选取文件
请上传
@@ -66,6 +66,11 @@ export default {
isShowTip: {
type: Boolean,
default: true
+ },
+ // 是否禁用
+ disabled: {
+ type: Boolean,
+ default: false
}
},
data() {
@@ -179,6 +184,7 @@ export default {
},
// 获取文件名称
getFileName(name) {
+ console.log('你好', name)
if (name.lastIndexOf("/") > -1) {
return name.slice(name.lastIndexOf("/") + 1);
} else {
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index 655a9ab5..c23172b9 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -5,8 +5,12 @@
-
-
-
-
{{timeZone}} {{topTime}}
-
{{topDate}}
-
-
-
-
-
-
-
{{userName}}
-
角色名11111111111111
-
-
+
+
\ No newline at end of file
diff --git a/src/views/core/analysis/balanceAnalysis/index.vue b/src/views/core/analysis/balanceAnalysis/index.vue
index d9f2ecee..7adceb4a 100644
--- a/src/views/core/analysis/balanceAnalysis/index.vue
+++ b/src/views/core/analysis/balanceAnalysis/index.vue
@@ -4,7 +4,7 @@
-
+
@@ -10,7 +10,7 @@
{{ item.name }}
-
+
@@ -48,6 +48,7 @@ export default {
}
},
mounted() {
+ // this.initChart()
},
methods: {
changeChart(index) {
@@ -81,7 +82,8 @@ export default {
console.log('看一下数据', this.dataArray)
this.xDatas = xData
this.chart = echarts.init(this.$refs.chartDiv, 'macarons')
- this.setOptions(xData, yData[0], lineName)
+ // this.chart = echarts.init(document.getElementById('chart'), 'macarons')
+ // this.setOptions(xData, yData[0], lineName)
},
setOptions(xData, dataList, lineName) {
// let seriesData = []
diff --git a/src/views/core/analysis/yieldAnalysis/index.vue b/src/views/core/analysis/yieldAnalysis/index.vue
index e6ef87e5..61db4752 100644
--- a/src/views/core/analysis/yieldAnalysis/index.vue
+++ b/src/views/core/analysis/yieldAnalysis/index.vue
@@ -21,6 +21,7 @@ import { parseTime } from '../../mixins/code-filter';
import { getYieldAnalysisPageData } from '@/api/core/analysis/index';
// import { getProductionLinePage } from '@/api/core/base/productionLine';
import lineChart from '../LineChart'
+import moment from 'moment';
// import { getWorkshopSectionPage } from '@/api/core/base/workshopSection';
// const tableProps = [
@@ -62,6 +63,9 @@ export default {
recordTime: []
},
dateLabelList: [],
+ tempTtime: '',
+ day: 0,
+ xData: [],
formConfig: [
// {
// type: 'select',
@@ -109,111 +113,77 @@ export default {
// });
// });
// },
- getData() {
- // this.listQuery.lineIds = ['1672847052717821953']
- // this.listQuery.productId = val.productId;
- // this.listQuery.time = '1694486098000';
- this.urlOptions.getDataListURL(this.listQuery).then(res => {
- let arr = [
- {
- prop: 'lineName',
- label: '产线',
- fixed: 'left'
- },
- {
- prop: 'sum',
- label: '合计',
- fixed: 'left'
- },
- {
- prop: res.data ? res.data.nameData[0].name : undefined,
- label: res.data ? res.data.nameData[0].name : undefined,
- align: 'center',
- children:[
-
- ]
- }
- ]
- // console.log(res.data.nameData.slice(1))
- let xData = []
- let yAllData = []
- let lineName = []
- if (res.data) {
- let tempDateList = []
- res.data.nameData.forEach(date => {
- tempDateList.push(date.name)
- })
- this.dateLabelList = Array.from(new Set(tempDateList))
-
- this.dateLabelList.forEach(item => {
- if (item.indexOf('年') === -1) {
- // 构造表头
- const props = {
- 'prop': item,
- 'label': item
- }
- arr[2].children.push(props)
-
- // 构造echarts横坐标
- xData.push(item)
- }
- })
- // res.data.nameData.slice(1).forEach(item => {
- // const props = {
- // 'prop': item.name,
- // 'label': item.name,
- // 'align': 'center'
- // }
- // arr[2].children.push(props)
- // })
- let tableDataArr =[]
- res.data.data.forEach(item => {
- let obj = {}
- obj.lineName= item.lineName,
- obj.sum= item.sum,
- item.data.forEach((ele, index) => {
- // console.log(ele)
- ele.children.forEach((e) => {
- console.log(e.dynamicName)
- obj['' + e.dynamicName + ''] = e.dynamicValue
- console.log(obj['' + e.dynamicName + '']);
- })
- })
- tableDataArr.push(obj)
- });
- this.tableData = tableDataArr
- this.tableProps = arr
-
- // let tempList = []
- // res.data.nameData.slice(1).forEach(item => {
- // tempList.push(item.name)
- // // arr[2].children.push(props)
- // })
- // xData = Array.from(new Set(tempList))
-
- res.data.data.forEach(item => {
- let yData = []
- lineName.push(item.lineName)
- // let obj = {}
- // obj.lineName = item.lineName,
- // obj.sum = item.sum,
- item.data.forEach((ele, index) => {
- // console.log(ele)
- ele.children.forEach((e) => {
- // let yData = []
- yData.push(e.dynamicValue)
- })
- })
- yAllData.push(yData)
- });
- console.log(lineName)
- } else {
- this.tableProps = arr
- this.tableData = []
- xData = []
- yAllData = []
- lineName = []
+ // 设置表头和横坐标
+ setHeader() {
+ const month = this.tempTtime.getMonth() + 1
+ let arr = [
+ {
+ prop: 'proName',
+ label: '产品名称',
+ fixed: 'left'
+ },
+ {
+ prop: 'specifications',
+ label: '产品规格',
+ fixed: 'left'
+ },
+ {
+ prop: 'sum',
+ label: '合计',
+ fixed: 'left'
+ },
+ {
+ label: this.tempTtime.getFullYear() + '年' + month + '月',
+ align: 'center',
+ children: []
}
+ ]
+ for (let d = 1; d <= this.day; d ++) {
+ arr[3].children.push({
+ prop: 'value' + d, label: month + '-' + d
+ })
+ // 横坐标
+ this.xData.push(month + '-' + d)
+ }
+ this.tableProps = arr
+ },
+ getData() {
+ this.urlOptions.getDataListURL(this.listQuery).then(res => {
+ //构造数据
+ if (res.data) {
+ this.setHeader()
+ res.data.forEach(item => {
+ console.log('111', item.recordTime, moment(item.recordTime).format('DD'))
+ this.tableData.push({
+ proName: item.proName,
+ specifications: item.specifications
+ })
+ })
+ }
+ console.log('饿', this.tableData)
+ // res.data.data.forEach(item => {
+ // let yData = []
+ // lineName.push(item.lineName)
+ // // let obj = {}
+ // // obj.lineName = item.lineName,
+ // // obj.sum = item.sum,
+ // item.data.forEach((ele, index) => {
+ // // console.log(ele)
+ // ele.children.forEach((e) => {
+ // // let yData = []
+ // yData.push(e.dynamicValue)
+ // })
+ // })
+ // yAllData.push(yData)
+ // });
+ // console.log(lineName)
+ // } else {
+ // this.tableProps = arr
+ // this.tableData = []
+ // xData = []
+ // yAllData = []
+ // lineName = []
+ // }
// res.data.data[0].data[0].children.forEach((item, index) => {
// // console.log(item)
// yData.push(item.dynamicValue)
@@ -221,7 +191,7 @@ export default {
// // obj['' + item.dynamicName + ''] = item.dynamicValue
// })
// console.log(this.yData)
- this.$refs.lineChart.initChart(xData, yAllData, lineName)
+ // this.$refs.lineChart.initChart(this.xData, yAllData, lineName)
// this.total = response.data.total;
// this.dataListLoading = false;
});
@@ -231,23 +201,21 @@ export default {
case 'search':
// this.listQuery.recordTime = val.time ? new Date(val.time).getTime() : undefined
if (val.time) {
- const tempTtime = new Date(val.time)
- let day = 0
- switch (tempTtime.getMonth() + 1) {
+ this.tempTtime = new Date(val.time)
+ switch (this.tempTtime.getMonth() + 1) {
case 1, 3, 5, 7, 8, 10, 12:
- day = 31;
+ this.day = 31;
break;
case 2:
- day = 28;
+ this.day = 28;
break;
case 4, 6, 9, 11:
- day = 30;
+ this.day = 30;
break;
}
- console.log(parseTime(new Date(tempTtime.getFullYear(), 11, 31, 23, 59, 59)))
this.listQuery.recordTime = [
val.time,
- parseTime(new Date(tempTtime.getFullYear(), tempTtime.getMonth(), day, 23, 59, 59))
+ parseTime(new Date(this.tempTtime.getFullYear(), this.tempTtime.getMonth(), this.day, 23, 59, 59))
]
this.getData()
} else {
diff --git a/src/views/core/mixins/basic-add.js b/src/views/core/mixins/basic-add.js
index 0b9acd23..5b0754dd 100644
--- a/src/views/core/mixins/basic-add.js
+++ b/src/views/core/mixins/basic-add.js
@@ -1,8 +1,8 @@
/*
* @Author: zwq
* @Date: 2022-08-24 11:19:43
- * @LastEditors: zwq
- * @LastEditTime: 2023-08-03 14:21:04
+ * @LastEditors: zhp
+ * @LastEditTime: 2023-11-06 15:59:53
* @Description:
*/
export default {
@@ -80,7 +80,7 @@ export default {
if (this.dataForm.id) {
this.urlOptions.updateURL(this.dataForm).then(response => {
this.$modal.msgSuccess("修改成功");
- this.visible = false;
+ this.visible = false;
this.$emit("refreshDataList");
});
return;
diff --git a/src/views/core/monitoring/auto/index.vue b/src/views/core/monitoring/auto/index.vue
index 3f07f50f..6f4e6d5b 100644
--- a/src/views/core/monitoring/auto/index.vue
+++ b/src/views/core/monitoring/auto/index.vue
@@ -1,7 +1,7 @@
@@ -175,7 +175,7 @@ export default {
label: '统计开始时间',
dateType: 'datetimerange',
format: 'yyyy-MM-dd HH:mm:ss',
- valueFormat: "yyyy-MM-ddTHH:mm:ss",
+ valueFormat: "yyyy-MM-dd HH:mm:ss",
rangeSeparator: '-',
startPlaceholder: '开始时间',
endPlaceholder: '结束时间',
diff --git a/src/views/core/monitoring/data24/index.vue b/src/views/core/monitoring/data24/index.vue
index 17db36cb..31eb4d0a 100644
--- a/src/views/core/monitoring/data24/index.vue
+++ b/src/views/core/monitoring/data24/index.vue
@@ -25,6 +25,7 @@
diff --git a/src/views/equipment/analysis/Visualization/SmallTitle.vue b/src/views/equipment/analysis/Visualization/SmallTitle.vue
new file mode 100644
index 00000000..93b4a18f
--- /dev/null
+++ b/src/views/equipment/analysis/Visualization/SmallTitle.vue
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/equipment/analysis/Visualization/index.vue b/src/views/equipment/analysis/Visualization/index.vue
new file mode 100644
index 00000000..9cf0205c
--- /dev/null
+++ b/src/views/equipment/analysis/Visualization/index.vue
@@ -0,0 +1,514 @@
+
+
+
+
+
+
+ 设备运行状态
+
+
+
+
各设备加工数量
+
+
+
+ 工作时长
+
+
+
+ 停机时长
+
+
+
+ 故障时长
+
+
+
+ 速度开动率
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/equipment/analysis/efficiency/index.vue b/src/views/equipment/analysis/efficiency/index.vue
index 66a1e009..9e3e9611 100644
--- a/src/views/equipment/analysis/efficiency/index.vue
+++ b/src/views/equipment/analysis/efficiency/index.vue
@@ -1,4 +1,4 @@
-
-
-
+ -->
@@ -132,7 +138,7 @@ export default {
width: 128,
prop: 'workRate',
label: '百分比[%]',
- filter: (val) => (val != null ? +val.toFixed(3) : '-'),
+ filter: (val) => (val != null ? +Number(val).toFixed(3) : '-'),
},
],
},
@@ -161,7 +167,7 @@ export default {
width: 128,
prop: 'timeEfficiency',
label: '时间开动率',
- filter: (val) => (val != null ? +val.toFixed(3) : '-'),
+ filter: (val) => (val != null ? +Number(val).toFixed(3) : '-'),
},
],
},
@@ -182,19 +188,19 @@ export default {
width: 128,
prop: 'peEfficiency',
label: '速度开动率',
- filter: (val) => (val != null ? +val.toFixed(3) : '-'),
+ filter: (val) => (val != null ? +Number(val).toFixed(3) : '-'),
},
],
},
{
prop: 'oee',
label: 'OEE',
- filter: (val) => (val != null ? +val.toFixed(3) : '-'),
+ filter: (val) => (val != null ? +Number(val).toFixed(3) : '-'),
},
{
prop: 'teep',
label: 'TEEP',
- filter: (val) => (val != null ? +val.toFixed(3) : '-'),
+ filter: (val) => (val != null ? +Number(val).toFixed(3) : '-'),
},
// {
// _action: 'view-trend',
@@ -332,7 +338,7 @@ export default {
/** 准备工厂数据 */
async getFactory() {
const { code, data } = await this.$axios({
- url: '/base/factory/listAll',
+ url: '/base/core-factory/listAll',
method: 'get',
});
if (code == 0) {
@@ -348,7 +354,7 @@ export default {
/** 准备产线数据 */
async getLine() {
const { code, data } = await this.$axios({
- url: '/base/production-line/listAll',
+ url: '/base/core-production-line/listAll',
method: 'get',
});
if (code == 0) {
diff --git a/src/views/equipment/analysis/exception/index.vue b/src/views/equipment/analysis/exception/index.vue
index c3d38562..7d926392 100644
--- a/src/views/equipment/analysis/exception/index.vue
+++ b/src/views/equipment/analysis/exception/index.vue
@@ -75,7 +75,7 @@ export default {
},
],
tableProps: [
- { prop: 'lineName', label: '产线' },
+ { prop: 'lineName', label: '产线名称' },
{ prop: 'sectionName', label: '工段' },
{ prop: 'equipmentName', label: '设备' },
{
@@ -136,7 +136,7 @@ export default {
methods: {
async fillLineOptions() {
const { data } = await this.$axios({
- url: '/base/production-line/listAll',
+ url: '/base/core-production-line/listAll',
method: 'get',
});
const cfg = this.searchBarFormConfig.find(
diff --git a/src/views/equipment/analysis/quality/index.vue b/src/views/equipment/analysis/quality/index.vue
index 8b023489..785f7dc1 100644
--- a/src/views/equipment/analysis/quality/index.vue
+++ b/src/views/equipment/analysis/quality/index.vue
@@ -262,7 +262,7 @@ export default {
async fillLineOptions() {
const { data } = await this.$axios({
- url: '/base/production-line/listAll',
+ url: '/base/core-production-line/listAll',
method: 'get',
});
const cfg = this.searchBarFormConfig.find(
@@ -280,7 +280,7 @@ export default {
async fillProductOptions() {
const { data } = await this.$axios({
- url: '/base/product/listAll',
+ url: '/base/core-product/listAll',
method: 'get',
});
const cfg = this.searchBarFormConfig.find(
diff --git a/src/views/equipment/base/alarm/Record/SmallTitle.vue b/src/views/equipment/base/alarm/Record/SmallTitle.vue
new file mode 100644
index 00000000..93b4a18f
--- /dev/null
+++ b/src/views/equipment/base/alarm/Record/SmallTitle.vue
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/equipment/base/alarm/Record/add-or-updata.vue b/src/views/equipment/base/alarm/Record/add-or-updata.vue
new file mode 100644
index 00000000..77a5123b
--- /dev/null
+++ b/src/views/equipment/base/alarm/Record/add-or-updata.vue
@@ -0,0 +1,195 @@
+
+
+
+
+ 系统自带
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 处理方式
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/equipment/base/alarm/Record/index.vue b/src/views/equipment/base/alarm/Record/index.vue
new file mode 100644
index 00000000..82e066d7
--- /dev/null
+++ b/src/views/equipment/base/alarm/Record/index.vue
@@ -0,0 +1,350 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/equipment/base/inspection/Record/addRecord.vue b/src/views/equipment/base/inspection/Record/addRecord.vue
new file mode 100644
index 00000000..72776630
--- /dev/null
+++ b/src/views/equipment/base/inspection/Record/addRecord.vue
@@ -0,0 +1,393 @@
+
+
+
+
+
+ {{ isdetail ? '查看详情' : '新增' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+
+ 编辑
+
+ 确定
+
+
+
+
+
+
+
+
+
diff --git a/src/views/equipment/base/inspection/Record/attr-add.vue b/src/views/equipment/base/inspection/Record/attr-add.vue
new file mode 100644
index 00000000..bef3ae04
--- /dev/null
+++ b/src/views/equipment/base/inspection/Record/attr-add.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+ {{ !dataForm.id ? '新增' : '编辑' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
+
+
diff --git a/src/views/equipment/base/inspection/Record/index.vue b/src/views/equipment/base/inspection/Record/index.vue
index ffdc7d24..8e1940d5 100644
--- a/src/views/equipment/base/inspection/Record/index.vue
+++ b/src/views/equipment/base/inspection/Record/index.vue
@@ -45,24 +45,32 @@
:has-files="true"
:rows="rows" />
+
+
+
+
diff --git a/src/views/equipment/base/inspection/Settings/add-or-updata.vue b/src/views/equipment/base/inspection/Settings/add-or-updata.vue
new file mode 100644
index 00000000..9866674b
--- /dev/null
+++ b/src/views/equipment/base/inspection/Settings/add-or-updata.vue
@@ -0,0 +1,317 @@
+
+
+
+
+ {{ isdetail ? '详情' : '添加巡检' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 巡检项目
+
+
+
+
+
+
+ 添加
+
+
+
+
+
+
+
+
+
+ 关闭
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/equipment/base/inspection/Settings/attr-add.vue b/src/views/equipment/base/inspection/Settings/attr-add.vue
new file mode 100644
index 00000000..d80cdb5b
--- /dev/null
+++ b/src/views/equipment/base/inspection/Settings/attr-add.vue
@@ -0,0 +1,145 @@
+
+
+
+
+
+ {{ !dataForm.id ? '新增' : '编辑' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
+
+
diff --git a/src/views/equipment/base/inspection/Settings/index.vue b/src/views/equipment/base/inspection/Settings/index.vue
index bfa00abf..f1abafb2 100644
--- a/src/views/equipment/base/inspection/Settings/index.vue
+++ b/src/views/equipment/base/inspection/Settings/index.vue
@@ -17,7 +17,7 @@
v-if="tableBtn.length"
slot="handleBtn"
label="操作"
- :width="120"
+ :width="180"
:method-list="tableBtn"
@clickBtn="handleTableBtnClick" />
@@ -45,35 +45,49 @@
:has-files="false"
:rows="rows" />
+
+
-
diff --git a/src/views/equipment/base/repair/index.vue b/src/views/equipment/base/repair/index.vue
index b5ff9f62..e49669ba 100644
--- a/src/views/equipment/base/repair/index.vue
+++ b/src/views/equipment/base/repair/index.vue
@@ -17,7 +17,7 @@
v-if="tableBtn.length"
slot="handleBtn"
label="操作"
- :width="120"
+ :width="180"
:method-list="tableBtn"
@clickBtn="handleTableBtnClick" />
@@ -45,21 +45,27 @@
:has-files="true"
:rows="rows" />
+
diff --git a/src/views/equipment/base/spareParts/Config/addSparts.vue b/src/views/equipment/base/spareParts/Config/addSparts.vue
new file mode 100644
index 00000000..a12c061f
--- /dev/null
+++ b/src/views/equipment/base/spareParts/Config/addSparts.vue
@@ -0,0 +1,315 @@
+
+
+
+
+
+ {{ disabled ? '查看备件' : '添加备件' }}
+
+
+
+
+
+ {{ dataForm.name }}
+
+
+
+
+ {{ dataForm.equipmentName }}
+
+
+
+
+
+
+ {{ dataForm.responsible }}
+
+
+
+
+
+
+
+
+
+
+
+
+ 添加
+
+
+
+
+
+
+
+
+
+ 关闭
+
+ 编辑
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/equipment/base/spareParts/Config/attr-add.vue b/src/views/equipment/base/spareParts/Config/attr-add.vue
new file mode 100644
index 00000000..bef3ae04
--- /dev/null
+++ b/src/views/equipment/base/spareParts/Config/attr-add.vue
@@ -0,0 +1,148 @@
+
+
+
+
+
+ {{ !dataForm.id ? '新增' : '编辑' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
+
+
diff --git a/src/views/equipment/base/spareParts/Config/index.vue b/src/views/equipment/base/spareParts/Config/index.vue
index 3701ef0c..571d252e 100644
--- a/src/views/equipment/base/spareParts/Config/index.vue
+++ b/src/views/equipment/base/spareParts/Config/index.vue
@@ -17,7 +17,7 @@
v-if="tableBtn.length"
slot="handleBtn"
label="操作"
- :width="120"
+ :width="250"
:method-list="tableBtn"
@clickBtn="handleTableBtnClick" />
@@ -46,6 +46,10 @@
:has-files="false"
:rows="rows" />
+
@@ -53,15 +57,18 @@
import moment from 'moment';
import basicPageMixin from '@/mixins/lb/basicPageMixin';
import { publicFormatter } from '@/utils/dict';
+import Editor from '@/components/Editor';
+import addSparts from './addSparts.vue';
const timeFilter = (val) => moment(val).format('yyyy-MM-DD HH:mm:ss');
export default {
name: 'EquipmentSparePartsConfig',
- components: {},
+ components: { addSparts },
mixins: [basicPageMixin],
data() {
return {
+ addOrUpdateVisible: false,
searchBarKeys: ['name', 'equipmentId', 'equipmentIdList'],
tableBtn: [
// this.$auth.hasPermi('equipment:spare-parts-config:update')
@@ -76,6 +83,18 @@ export default {
btnName: '修改',
}
: undefined,
+ this.$auth.hasPermi('equipment:spare-parts-config:queryParts')
+ ? {
+ type: 'queryParts',
+ btnName: '查看备件',
+ }
+ : undefined,
+ this.$auth.hasPermi('equipment:spare-parts-config:addParts')
+ ? {
+ type: 'addParts',
+ btnName: '添加备件',
+ }
+ : undefined,
this.$auth.hasPermi('equipment:spare-parts-config:delete')
? {
type: 'delete',
@@ -162,18 +181,23 @@ export default {
select: true, // TODO: or INPUT instead of SELECT
label: '负责人',
prop: 'responsible',
- url: '/base/core-equipment/listAll', // TODO: 班组
+ url: '/base/core-worker/listAll', // TODO: 班组
+ valueKey: 'name',
bind: {
filterable: true,
clearable: true,
+ multiple: true
},
},
],
[
{
- input: true,
label: '描述',
prop: 'description', // TODO: 富文本
+ subcomponent: Editor,
+ bind: {
+ 'min-height': 192
+ }
},
],
],
@@ -258,6 +282,7 @@ export default {
const id = row.id;
this.info({ id }).then((response) => {
this.form = response.data;
+ this.form.responsible = this.form.responsible.split(',')
this.open = true;
this.title = '修改备品备件配置';
});
@@ -268,6 +293,7 @@ export default {
if (!valid) {
return;
}
+ this.form.responsible = this.form.responsible.join(',')
// 修改的提交
if (this.form.id != null) {
this.put(this.form).then((response) => {
@@ -300,12 +326,15 @@ export default {
.catch(() => {});
},
handleDetail({ id }) {
- this.reset();
- this.mode = 'detail';
- this.info({ id }).then((response) => {
- this.form = response.data;
- this.open = true;
- this.title = '修改备品备件配置';
+ this.addOrUpdateVisible = true
+ this.$nextTick(() => {
+ this.$refs.addOrUpdate.init(id, true);
+ });
+ },
+ handlAddParts({ id }) {
+ this.addOrUpdateVisible = true
+ this.$nextTick(() => {
+ this.$refs.addOrUpdate.init(id);
});
},
/** 导出按钮操作 */
@@ -326,6 +355,23 @@ export default {
})
.catch(() => {});
},
+ // 处理表格按钮
+ handleTableBtnClick({ data, type }) {
+ switch (type) {
+ case 'edit':
+ this.handleUpdate(data);
+ break;
+ case 'delete':
+ this.handleDelete(data);
+ break;
+ case 'queryParts':
+ this.handleDetail(data);
+ break;
+ case 'addParts':
+ this.handlAddParts(data);
+ break;
+ }
+ },
},
};
diff --git a/src/views/equipment/base/spareParts/List/index.vue b/src/views/equipment/base/spareParts/List/index.vue
index 39a8204d..f4b02b42 100644
--- a/src/views/equipment/base/spareParts/List/index.vue
+++ b/src/views/equipment/base/spareParts/List/index.vue
@@ -148,7 +148,7 @@ export default {
select: true,
label: '供应商',
prop: 'supplierId',
- url: '/base/core-supplier/listAll', // TODO: 课上关系
+ url: '/base/core-supplier/listAll', // TODO: 供应商
bind: {
filterable: true,
clearable: true,
@@ -161,12 +161,13 @@ export default {
select: true,
label: '物料类型',
prop: 'type',
- url: '/base/core-equipment/listAll', // TODO: 物料
+ options: this.getDictDatas('material_type'),
+ // url: '/base/core-equipment/listAll', // TODO: 物料
bind: {
filterable: true,
clearable: true,
},
- rules: [{ required: true, message: '不能为空', trigger: 'blur' }],
+ rules: [{ required: true, message: '物料类型不能为空', trigger: 'blur' }],
},
{
input: true,
diff --git a/src/views/equipment/base/spareParts/Monitor/addSparts.vue b/src/views/equipment/base/spareParts/Monitor/addSparts.vue
new file mode 100644
index 00000000..eb3fd801
--- /dev/null
+++ b/src/views/equipment/base/spareParts/Monitor/addSparts.vue
@@ -0,0 +1,431 @@
+
+
+
+
+
+ {{ !isLog ? '操作页面' : '更换记录' }}
+
+
+
+
+
+ {{ dataForm.name }}
+
+
+ {{ dataForm.lineName }}
+
+
+
+
+ {{ dataForm.equipmentName }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 关闭
+
+
+
+
+
+
+
+
+
diff --git a/src/views/equipment/base/spareParts/Monitor/attr-add.vue b/src/views/equipment/base/spareParts/Monitor/attr-add.vue
new file mode 100644
index 00000000..ba092618
--- /dev/null
+++ b/src/views/equipment/base/spareParts/Monitor/attr-add.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+ {{ !dataForm.id ? '新增' : '编辑' }}
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
+
+
diff --git a/src/views/equipment/base/spareParts/Monitor/index.vue b/src/views/equipment/base/spareParts/Monitor/index.vue
index 4d046bc4..1f07fa39 100644
--- a/src/views/equipment/base/spareParts/Monitor/index.vue
+++ b/src/views/equipment/base/spareParts/Monitor/index.vue
@@ -31,7 +31,7 @@
@pagination="getList" />
-
-
+ -->
+
+
diff --git a/src/views/equipment/timing-diagram/output/index.vue b/src/views/equipment/timing-diagram/output/index.vue
index ccf74e5f..0fb10646 100644
--- a/src/views/equipment/timing-diagram/output/index.vue
+++ b/src/views/equipment/timing-diagram/output/index.vue
@@ -432,7 +432,7 @@ export default {
/** 准备产线数据 */
async initProductline() {
const { code, data } = await this.$axios({
- url: '/base/production-line/listAll',
+ url: '/base/core-production-line/listAll',
method: 'get',
});
if (code == 0) {
@@ -448,7 +448,7 @@ export default {
/** 准备工段数据 */
async initWorksection() {
const { code, data } = await this.$axios({
- url: '/base/workshop-section/listAll',
+ url: '/base/core-workshop-section/listAll',
method: 'get',
});
if (code == 0) {
@@ -464,7 +464,7 @@ export default {
/** 根据产线获取工段 */
async getWorksectionById(lineId) {
const { code, data } = await this.$axios({
- url: '/base/workshop-section/listByParentId',
+ url: '/base/core-workshop-section/listByParentId',
method: 'get',
params: {
id: lineId,
diff --git a/src/views/equipment/timing-diagram/status/index.vue b/src/views/equipment/timing-diagram/status/index.vue
index 283e07f4..7a12766d 100644
--- a/src/views/equipment/timing-diagram/status/index.vue
+++ b/src/views/equipment/timing-diagram/status/index.vue
@@ -239,7 +239,7 @@ export default {
/** 准备产线数据 */
async initProductline() {
const { code, data } = await this.$axios({
- url: '/base/production-line/listAll',
+ url: '/base/core-production-line/listAll',
method: 'get',
});
if (code == 0) {
@@ -255,7 +255,7 @@ export default {
/** 准备工段数据 */
async initWorksection() {
const { code, data } = await this.$axios({
- url: '/base/workshop-section/listAll',
+ url: '/base/core-workshop-section/listAll',
method: 'get',
});
if (code == 0) {
@@ -276,7 +276,7 @@ export default {
switch (param) {
case 'lineId':
this.$axios({
- url: '/base/workshop-section/listByParentId',
+ url: '/base/core-workshop-section/listByParentId',
method: 'get',
params: {
id: value,
diff --git a/src/views/extend/processEquMaterialBom/SmallTitle.vue b/src/views/extend/processEquMaterialBom/SmallTitle.vue
new file mode 100644
index 00000000..2090ecc2
--- /dev/null
+++ b/src/views/extend/processEquMaterialBom/SmallTitle.vue
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/extend/processEquMaterialBom/add-or-updata.vue b/src/views/extend/processEquMaterialBom/add-or-updata.vue
new file mode 100644
index 00000000..0ffca575
--- /dev/null
+++ b/src/views/extend/processEquMaterialBom/add-or-updata.vue
@@ -0,0 +1,379 @@
+
+
+
+
+ {{ isdetail ? '详情' : !dataForm.id ? '新增' : '编辑' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+
+ 编辑
+
+ 确定
+
+
+
+
+ 设备物料明细
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+ 关闭
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/extend/processEquMaterialBom/attr-add.vue b/src/views/extend/processEquMaterialBom/attr-add.vue
new file mode 100644
index 00000000..e743d014
--- /dev/null
+++ b/src/views/extend/processEquMaterialBom/attr-add.vue
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+ {{ !dataForm.id ? '新增' : '编辑' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
+
+
diff --git a/src/views/extend/processEquMaterialBom/index.vue b/src/views/extend/processEquMaterialBom/index.vue
new file mode 100644
index 00000000..d235e6db
--- /dev/null
+++ b/src/views/extend/processEquMaterialBom/index.vue
@@ -0,0 +1,203 @@
+
+
+
+
+
diff --git a/src/views/extend/processEquMaterialBom/statusBtn.vue b/src/views/extend/processEquMaterialBom/statusBtn.vue
new file mode 100644
index 00000000..5273887f
--- /dev/null
+++ b/src/views/extend/processEquMaterialBom/statusBtn.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
diff --git a/src/views/extend/processEquValueBom/SmallTitle.vue b/src/views/extend/processEquValueBom/SmallTitle.vue
new file mode 100644
index 00000000..2090ecc2
--- /dev/null
+++ b/src/views/extend/processEquValueBom/SmallTitle.vue
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/extend/processEquValueBom/add-or-updata.vue b/src/views/extend/processEquValueBom/add-or-updata.vue
new file mode 100644
index 00000000..1e68acb5
--- /dev/null
+++ b/src/views/extend/processEquValueBom/add-or-updata.vue
@@ -0,0 +1,391 @@
+
+
+
+
+ {{ isdetail ? '详情' : !dataForm.id ? '新增' : '编辑' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+
+ 编辑
+
+ 确定
+
+
+
+
+ 设备物料明细
+
+
+
+
+
+ 新增
+
+
+
+
+
+
+
+
+
+ 关闭
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/extend/processEquValueBom/attr-add.vue b/src/views/extend/processEquValueBom/attr-add.vue
new file mode 100644
index 00000000..a8af677b
--- /dev/null
+++ b/src/views/extend/processEquValueBom/attr-add.vue
@@ -0,0 +1,189 @@
+
+
+
+
+
+
+ {{ !dataForm.id ? '新增' : '编辑' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+ 确定
+
+
+
+
+
+
+
diff --git a/src/views/extend/processEquValueBom/index.vue b/src/views/extend/processEquValueBom/index.vue
new file mode 100644
index 00000000..9ea4bf71
--- /dev/null
+++ b/src/views/extend/processEquValueBom/index.vue
@@ -0,0 +1,203 @@
+
+
+
+
+
diff --git a/src/views/extend/processEquValueBom/statusBtn.vue b/src/views/extend/processEquValueBom/statusBtn.vue
new file mode 100644
index 00000000..658cb3f7
--- /dev/null
+++ b/src/views/extend/processEquValueBom/statusBtn.vue
@@ -0,0 +1,67 @@
+
+
+
+
+
+
diff --git a/src/views/extend/processFlowView/components/ProcessDetail.vue b/src/views/extend/processFlowView/components/ProcessDetail.vue
index 5cb65004..ed9a8689 100644
--- a/src/views/extend/processFlowView/components/ProcessDetail.vue
+++ b/src/views/extend/processFlowView/components/ProcessDetail.vue
@@ -1,8 +1,8 @@
-
@@ -40,7 +40,7 @@ import ProcessNode, { createProcessNode, CACHE_NAME, getSectionFrom } from './Pr
import DialogForm from '@/components/DialogForm';
// import { IdToName } from '@/utils'
-Graph.registerNode('process-node', ProcessNode);
+Graph.registerNode('process-node', ProcessNode,true);
export default {
name: 'ProcessGraph',
@@ -350,7 +350,7 @@ export default {
.then((form) => {
const { name, sectionId, remark } = form;
getSectionFrom(sectionId).then(sectionName => {
- // 修改当前node的信息
+ // 修改当前node的信息
this.currentNode.setAttrs({
detName: { text: name },
sectionId: { text: sectionId },
diff --git a/src/views/extend/processFlowView/index.vue b/src/views/extend/processFlowView/index.vue
index 88b09919..4632eec7 100644
--- a/src/views/extend/processFlowView/index.vue
+++ b/src/views/extend/processFlowView/index.vue
@@ -1,8 +1,8 @@
-
diff --git a/src/views/extend/processTraceability/index.vue b/src/views/extend/processTraceability/index.vue
new file mode 100644
index 00000000..446ce93f
--- /dev/null
+++ b/src/views/extend/processTraceability/index.vue
@@ -0,0 +1,267 @@
+
+
+
+
+
+
diff --git a/src/views/extend/processTraceabilityDetail/components/ProcessBomList.vue b/src/views/extend/processTraceabilityDetail/components/ProcessBomList.vue
new file mode 100644
index 00000000..2e2eb1eb
--- /dev/null
+++ b/src/views/extend/processTraceabilityDetail/components/ProcessBomList.vue
@@ -0,0 +1,302 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 设备名称:{{ name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/extend/processTraceabilityDetail/components/ProcessDetail.vue b/src/views/extend/processTraceabilityDetail/components/ProcessDetail.vue
new file mode 100644
index 00000000..431afddc
--- /dev/null
+++ b/src/views/extend/processTraceabilityDetail/components/ProcessDetail.vue
@@ -0,0 +1,488 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/extend/processTraceabilityDetail/components/ProcessInfo.vue b/src/views/extend/processTraceabilityDetail/components/ProcessInfo.vue
new file mode 100644
index 00000000..e2c7240c
--- /dev/null
+++ b/src/views/extend/processTraceabilityDetail/components/ProcessInfo.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/extend/processTraceabilityDetail/components/ProcessNode.js b/src/views/extend/processTraceabilityDetail/components/ProcessNode.js
new file mode 100644
index 00000000..948aaf24
--- /dev/null
+++ b/src/views/extend/processTraceabilityDetail/components/ProcessNode.js
@@ -0,0 +1,170 @@
+import { Node, ObjectExt, Shape } from '@antv/x6';
+import { IdToName } from '@/utils'
+import cache from '@/utils/cache'
+import axios from '@/utils/request'
+import { v4 } from 'uuid'
+
+Shape.Edge.config({
+ attrs: {
+ line: {
+ stroke: '#ccc',
+ strokeWidth: 1,
+ targetMarker: {
+ name: 'block',
+ width: 1,
+ height: 1
+ },
+ },
+ }
+})
+
+
+export default class ProcessNode extends Node { }
+ProcessNode.config({
+ width: 200,
+ height: 100,
+ markup: [
+ {
+ tagName: 'rect',
+ selector: 'container',
+ attrs: {
+ x: 0,
+ y: 0,
+ width: 200,
+ height: 100,
+ fill: 'transparent',
+ stroke: '#ccc'
+ },
+ },
+ {
+ tagName: 'rect',
+ attrs: {
+ x: 0,
+ y: 0,
+ width: 200,
+ height: 50,
+ fill: '#ffffff',
+ },
+ },
+ {
+ tagName: 'rect',
+ attrs: {
+ x: 0,
+ y: 50,
+ width: 200,
+ height: 50,
+ fill: '#f8f8f8',
+ },
+ },
+ {
+ tagName: 'text',
+ selector: 'detName',
+ attrs: {
+ x: 20,
+ y: 30,
+ },
+ },
+ {
+ tagName: 'text',
+ selector: 'sectionName',
+ attrs: {
+ x: 115,
+ y: 30,
+ },
+ },
+ {
+ tagName: 'text',
+ selector: 'detDesc',
+ attrs: {
+ x: 26,
+ y: 80,
+ fill: '#777',
+ fontSize: 14,
+ fill: '#1a90fc',
+ },
+ },
+ ],
+ attrs: {
+ line: {
+ fill: 'red'
+ }
+ },
+ ports: {
+ groups: {
+ in: {
+ position: 'left',
+ attrs: {
+ circle: {
+ r: 2,
+ magnet: true,
+ stroke: '#0b58ff',
+ strokeWidth: 1,
+ fill: '#0b58ff'
+ }
+ }
+ },
+ out: {
+ position: 'right',
+ attrs: {
+ circle: {
+ r: 2,
+ magnet: true,
+ stroke: '#0b58ff',
+ strokeWidth: 1,
+ fill: '#0b58ff'
+ }
+ }
+ }
+ }
+ },
+ propHooks(metadata) {
+ const { detId, detName, detDesc, sectionName, processId, sectionId, ...others } = metadata;
+ // debugger;
+ if (detName) ObjectExt.setByPath(others, 'attrs/detName/text', detName);
+ if (detDesc) ObjectExt.setByPath(others, 'attrs/detDesc/text', detDesc);
+ if (sectionName) ObjectExt.setByPath(others, 'attrs/sectionName/text', sectionName);
+ if (detId) ObjectExt.setByPath(others, 'attrs/detId/text', detId);
+ if (processId) ObjectExt.setByPath(others, 'attrs/processId/text', processId);
+ if (sectionId) ObjectExt.setByPath(others, 'attrs/sectionId/text', sectionId);
+ return others;
+ }
+});
+
+export const CACHE_NAME = 'ProcessDetail::section';
+
+export async function getSectionFrom(sectionId) {
+ const sectionList = await cache.getList(
+ CACHE_NAME,
+ async () => {
+ const { code, data } = await axios(
+ '/base/core-production-line/listAll'
+ );
+ if (code == 0) {
+ return data;
+ }
+ }
+ );
+ return IdToName(sectionId, sectionList);
+}
+
+export async function createProcessNode({ flowId, id, name, sectionId, remark }) {
+ const sectionName = await getSectionFrom(sectionId);
+ return {
+ shape: 'process-node',
+ x: 0,
+ y: 0,
+ detName: name, // 工序名称
+ sectionName, // 工段
+ sectionId,
+ detDesc: remark, // 工序说明
+ processId: flowId, // 工艺ID
+ detId: id, // 工序ID
+ tools: [],
+ ports: [
+ { id: v4(), group: 'in' },
+ { id: v4(), group: 'out' },
+ ]
+ };
+}
+
+export async function createEdge(src, dest) { }
\ No newline at end of file
diff --git a/src/views/extend/processTraceabilityDetail/components/SmallTitle.vue b/src/views/extend/processTraceabilityDetail/components/SmallTitle.vue
new file mode 100644
index 00000000..5d34b55b
--- /dev/null
+++ b/src/views/extend/processTraceabilityDetail/components/SmallTitle.vue
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/extend/processTraceabilityDetail/components/statusBtn.vue b/src/views/extend/processTraceabilityDetail/components/statusBtn.vue
new file mode 100644
index 00000000..e1b7e319
--- /dev/null
+++ b/src/views/extend/processTraceabilityDetail/components/statusBtn.vue
@@ -0,0 +1,63 @@
+
+
+
+ {{ injectData.minValueSet + '-' + injectData.maxValueSet + "/" + injectData / defaultValueSet }}
+
+
+
+
diff --git a/src/views/extend/processTraceabilityDetail/index.vue b/src/views/extend/processTraceabilityDetail/index.vue
new file mode 100644
index 00000000..34fb96a4
--- /dev/null
+++ b/src/views/extend/processTraceabilityDetail/index.vue
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/views/login.vue b/src/views/login.vue
index 401be7aa..ae2ff139 100644
--- a/src/views/login.vue
+++ b/src/views/login.vue
@@ -1,81 +1,238 @@
-
-
-
-
-
-
-
-
-
-
- 芋道后台管理系统
-
+
+
+
+
+
+
+
+
+ Wel
+ come
+
+
+
+ 产线生产监控系统
+
+
+
+
+
+
+
+
+ 中建材智能自动化研究院有限公司
+
+
+
+
+ 中建材智能自动化研究院有限公司
+
+
+ 产线生产监控系统
+
+
-
-
+
+
+
-
-
+
+
+
+
-
-
-
+
+
+
+ :deep(.el-input__prefix) {
+ top: 22%;
+ }
+}
+
diff --git a/src/views/monitoring/equipmentProcessAmount/index.vue b/src/views/monitoring/equipmentProcessAmount/index.vue
index 2294bff4..14575368 100644
--- a/src/views/monitoring/equipmentProcessAmount/index.vue
+++ b/src/views/monitoring/equipmentProcessAmount/index.vue
@@ -1,4 +1,4 @@
-
-
+
各订单环形图
@@ -36,7 +51,7 @@
style="width: 182px; height: 180px;"
>
-
+ -->
diff --git a/src/views/quality/base/qualityInspectionBoxBtn/dialogForm.vue b/src/views/quality/base/basicData/qualityInspectionBoxBtn/dialogForm.vue
similarity index 56%
rename from src/views/quality/base/qualityInspectionBoxBtn/dialogForm.vue
rename to src/views/quality/base/basicData/qualityInspectionBoxBtn/dialogForm.vue
index 92a1c646..f3d76f03 100644
--- a/src/views/quality/base/qualityInspectionBoxBtn/dialogForm.vue
+++ b/src/views/quality/base/basicData/qualityInspectionBoxBtn/dialogForm.vue
@@ -1,4 +1,4 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
-
-
-
-
+
-
-
-
-
-
+
+
+
+
+
-
-
+
-
-
-
+
+
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/src/views/quality/base/qualityScrapDet/index.vue b/src/views/quality/base/qualityScrapDet/index.vue
new file mode 100644
index 00000000..82467b0e
--- /dev/null
+++ b/src/views/quality/base/qualityScrapDet/index.vue
@@ -0,0 +1,169 @@
+
+
+
+
+
diff --git a/src/views/quality/base/qualityScrapLog/SmallTitle.vue b/src/views/quality/base/qualityScrapLog/SmallTitle.vue
new file mode 100644
index 00000000..ac529869
--- /dev/null
+++ b/src/views/quality/base/qualityScrapLog/SmallTitle.vue
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/quality/base/qualityScrapLog/add-or-updata.vue b/src/views/quality/base/qualityScrapLog/add-or-updata.vue
new file mode 100644
index 00000000..a46f3101
--- /dev/null
+++ b/src/views/quality/base/qualityScrapLog/add-or-updata.vue
@@ -0,0 +1,209 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/quality/base/qualityScrapLog/detail-or-updata.vue b/src/views/quality/base/qualityScrapLog/detail-or-updata.vue
new file mode 100644
index 00000000..a689f27f
--- /dev/null
+++ b/src/views/quality/base/qualityScrapLog/detail-or-updata.vue
@@ -0,0 +1,222 @@
+
+
+
+
+ {{ '详情' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/quality/base/qualityScrapLog/index.vue b/src/views/quality/base/qualityScrapLog/index.vue
new file mode 100644
index 00000000..5237cb8d
--- /dev/null
+++ b/src/views/quality/base/qualityScrapLog/index.vue
@@ -0,0 +1,213 @@
+
+
+
+
+
diff --git a/src/views/quality/base/qualityScrapType/add-or-updata.vue b/src/views/quality/base/qualityScrapType/add-or-updata.vue
new file mode 100644
index 00000000..9979724b
--- /dev/null
+++ b/src/views/quality/base/qualityScrapType/add-or-updata.vue
@@ -0,0 +1,86 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/quality/base/qualityScrapType/index.vue b/src/views/quality/base/qualityScrapType/index.vue
new file mode 100644
index 00000000..156ab946
--- /dev/null
+++ b/src/views/quality/base/qualityScrapType/index.vue
@@ -0,0 +1,169 @@
+
+
+
+
+
diff --git a/src/views/quality/monitoring/currentData/dialogForm.vue b/src/views/quality/monitoring/currentData/dialogForm.vue
new file mode 100644
index 00000000..9ef8b17c
--- /dev/null
+++ b/src/views/quality/monitoring/currentData/dialogForm.vue
@@ -0,0 +1,270 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/quality/monitoring/currentData/index.vue b/src/views/quality/monitoring/currentData/index.vue
new file mode 100644
index 00000000..c6231efc
--- /dev/null
+++ b/src/views/quality/monitoring/currentData/index.vue
@@ -0,0 +1,460 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/quality/monitoring/deviceParameters/components/pieChart.vue b/src/views/quality/monitoring/deviceParameters/components/pieChart.vue
new file mode 100644
index 00000000..249e5b3b
--- /dev/null
+++ b/src/views/quality/monitoring/deviceParameters/components/pieChart.vue
@@ -0,0 +1,279 @@
+
+
+
+
+
+
+
+
+
{{ textData.workTime }}
+
工作时长
+
+
+
+
{{ textData.stopTime }}
+
停机时长
+
+
+
+
{{ textData.downTime }}
+
故障时长
+
+
+
+
{{ textData.peEfficiency }}
+
速度开动率
+
+
+
+
+
+
+
+
diff --git a/src/views/quality/monitoring/deviceParameters/index.vue b/src/views/quality/monitoring/deviceParameters/index.vue
new file mode 100644
index 00000000..0c30de48
--- /dev/null
+++ b/src/views/quality/monitoring/deviceParameters/index.vue
@@ -0,0 +1,714 @@
+
+
+
+
+
+
+ {{ currentFactory?.label || '点我选择工厂' }}
+
+
+
+
+ {{ fc.label }}
+
+
+
+
+
+ - 无 -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
handleEmitFun(table, val)">
+
+ getListFor(table, { page, limit, current })
+ " />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/quality/monitoring/deviceParameters/utils/local-data-manager.js b/src/views/quality/monitoring/deviceParameters/utils/local-data-manager.js
new file mode 100644
index 00000000..5d8c76fd
--- /dev/null
+++ b/src/views/quality/monitoring/deviceParameters/utils/local-data-manager.js
@@ -0,0 +1,36 @@
+export default class LocalDataManager {
+ constructor(dataList, pageNo, pageSize) {
+ this._dataListStore = dataList;
+ this._pageNo = pageNo;
+ this._pageSize = pageSize;
+ }
+
+ set pageNo(pageNo) {
+ console.log('set pageNo', pageNo);
+ this._pageNo = pageNo;
+ }
+
+ set pageSize(pageSize) {
+ console.log('set pageSize', pageSize);
+ this._pageSize = pageSize;
+ }
+
+ get dataList() {
+ const firstLine = this._dataListStore[0];
+ const realDataList = this._dataListStore.slice(1);
+ return [
+ firstLine,
+ ...realDataList.slice((this._pageNo - 1) * this._pageSize, this._pageNo * this._pageSize)
+ ]
+ }
+
+ get total() {
+ return this._dataListStore.length;
+ }
+
+ deleteData(id) {
+ const idx = this._dataListStore.findIndex(item => item.id == id);
+ this._dataListStore.splice(idx, 1);
+ // send http request
+ }
+}
\ No newline at end of file
diff --git a/src/views/quality/monitoring/equipmentTraceability/components/pieChart.vue b/src/views/quality/monitoring/equipmentTraceability/components/pieChart.vue
new file mode 100644
index 00000000..249e5b3b
--- /dev/null
+++ b/src/views/quality/monitoring/equipmentTraceability/components/pieChart.vue
@@ -0,0 +1,279 @@
+
+
+
+
+
+
+
+
+
{{ textData.workTime }}
+
工作时长
+
+
+
+
{{ textData.stopTime }}
+
停机时长
+
+
+
+
{{ textData.downTime }}
+
故障时长
+
+
+
+
{{ textData.peEfficiency }}
+
速度开动率
+
+
+
+
+
+
+
+
diff --git a/src/views/quality/monitoring/equipmentTraceability/index.vue b/src/views/quality/monitoring/equipmentTraceability/index.vue
new file mode 100644
index 00000000..c88a7f60
--- /dev/null
+++ b/src/views/quality/monitoring/equipmentTraceability/index.vue
@@ -0,0 +1,576 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
各设备加工数量
+
+
+
+ 工作时长
+
+
+
+ 停机时长
+
+
+
+ 故障时长
+
+
+
+ 速度开动率
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/quality/monitoring/materielDateFrom/index.vue b/src/views/quality/monitoring/materielDateFrom/index.vue
new file mode 100644
index 00000000..80d77963
--- /dev/null
+++ b/src/views/quality/monitoring/materielDateFrom/index.vue
@@ -0,0 +1,248 @@
+
+
+
+
+
+
diff --git a/src/views/quality/monitoring/mixins/basic-add.js b/src/views/quality/monitoring/mixins/basic-add.js
new file mode 100644
index 00000000..0b9acd23
--- /dev/null
+++ b/src/views/quality/monitoring/mixins/basic-add.js
@@ -0,0 +1,100 @@
+/*
+ * @Author: zwq
+ * @Date: 2022-08-24 11:19:43
+ * @LastEditors: zwq
+ * @LastEditTime: 2023-08-03 14:21:04
+ * @Description:
+ */
+export default {
+ data() {
+ /* eslint-disable */
+ return {
+ urlOptions: {
+ createURL: '',
+ updateURL: '',
+ infoURL: '',
+ codeURL: '',
+ getOption: false,
+ isGetCode: false,
+ optionArrUrl: [],
+ optionArr: {}
+ },
+ visible: false,
+ setData: false
+ }
+ },
+ created() {
+ },
+ activated() {
+ },
+ methods: {
+ init(id) {
+ this.dataForm.id = id || "";
+ this.visible = true;
+ if (this.urlOptions.getOption) {
+ this.getArr()
+ }
+ this.$nextTick(() => {
+ this.$refs["dataForm"].resetFields();
+ if (this.dataForm.id) {
+ this.urlOptions.infoURL(id).then(response => {
+ this.dataForm = response.data;
+ if (this.setData) {
+ this.setDataForm()
+ }
+ });
+ } else {
+ if (this.urlOptions.isGetCode) {
+ this.getCode()
+ }
+ }
+ });
+ },
+ getCode() {
+ this.urlOptions.codeURL()
+ .then(({ data: res }) => {
+ this.dataForm.code = res;
+ })
+ .catch(() => {});
+ },
+ getArr() {
+ const params = {
+ pageSize: 100,
+ pageNo: 1,
+ }
+ this.urlOptions.optionArrUrl.forEach((item, index) => {
+ item(params).then(({ data: res }) => {
+ this.$set(this.urlOptions.optionArr, `arr${index}`, res.list)
+ })
+ .catch(() => {
+ });
+ });
+ },
+ // 表单提交
+ dataFormSubmit() {
+ this.$refs["dataForm"].validate((valid) => {
+ if (!valid) {
+ return false;
+ }
+ // 修改的提交
+ if (this.dataForm.id) {
+ this.urlOptions.updateURL(this.dataForm).then(response => {
+ this.$modal.msgSuccess("修改成功");
+ this.visible = false;
+ this.$emit("refreshDataList");
+ });
+ return;
+ }
+ // 添加的提交
+ this.urlOptions.createURL(this.dataForm).then(response => {
+ this.$modal.msgSuccess("新增成功");
+ this.visible = false;
+ this.$emit("refreshDataList");
+ });
+ });
+ },
+ formClear() {
+ this.$refs.dataForm.resetFields()
+ }
+ }
+}
diff --git a/src/views/quality/monitoring/mixins/basic-page.js b/src/views/quality/monitoring/mixins/basic-page.js
new file mode 100644
index 00000000..8723be82
--- /dev/null
+++ b/src/views/quality/monitoring/mixins/basic-page.js
@@ -0,0 +1,168 @@
+/*
+ * @Author: zwq
+ * @Date: 2022-08-24 11:19:43
+ * @LastEditors: DY
+ * @LastEditTime: 2023-09-21 16:02:07
+ * @Description:
+ */
+export default {
+ data() {
+ /* eslint-disable */
+ return {
+ urlOptions: {
+ getDataListURL: '',
+ deleteURL: '',
+ statusUrl: '',
+ exportURL: ''
+ },
+ tableData: [],
+ listQuery: {
+ pageSize: 10,
+ pageNo: 1,
+ total: 1,
+ },
+ exportLoading: false,
+ dataListLoading: false,
+ addOrEditTitle: '',
+ addOrUpdateVisible: false,
+ }
+ },
+ created() {
+ },
+ mounted() {
+ this.getDataList()
+ },
+ methods: {
+ // 获取数据列表
+ getDataList() {
+ this.dataListLoading = true;
+ this.urlOptions.getDataListURL(this.listQuery).then(response => {
+ this.tableData = response.data.list;
+ this.listQuery.total = response.data.total;
+ this.dataListLoading = false;
+ });
+ },
+ // 每页数
+ sizeChangeHandle(val) {
+ this.listQuery.pageSize = val;
+ this.listQuery.pageNo = 1;
+ this.getDataList();
+ },
+ // 当前页
+ currentChangeHandle(val) {
+ this.listQuery.pageNo = val;
+ this.getDataList();
+ },
+ // 新增 / 修改
+ addOrUpdateHandle(id) {
+ this.addOrUpdateVisible = true;
+ this.$nextTick(() => {
+ this.$refs.addOrUpdate.init(id);
+ });
+ },
+ cancel(id) {
+ this.$refs["popover-" + id].showPopper = false;
+ },
+ //改变状态
+ changeStatus(id) {
+ this.$http
+ .post(this.urlOptions.statusUrl, { id })
+ .then(({ data: res }) => {
+ if (res.code !== 0) {
+ return this.$message.error(res.msg);
+ }
+ this.$refs["popover-" + id].showPopper = false;
+ this.$message({
+ message: this.$t("prompt.success"),
+ type: "success",
+ duration: 500,
+ onClose: () => {
+ this.getDataList();
+ },
+ });
+ })
+ .catch(() => { });
+ },
+ //tableBtn点击
+ handleClick(val) {
+ if (val.type === "edit") {
+ this.addOrUpdateVisible = true;
+ this.addOrEditTitle = "编辑";
+ this.$nextTick(() => {
+ this.$refs.addOrUpdate.init(val.data.id);
+ });
+ } else if (val.type === "delete") {
+ this.deleteHandle(val.data.id, val.data.name, val.data._pageIndex)
+ } else if (val.type === "change") {
+ this.changeStatus(val.data.id)
+ } else {
+ this.otherMethods(val)
+ }
+ },
+ // 删除
+ deleteHandle(id, name, index) {
+ this.$confirm(`确定对${name ? '[名称=' + name + ']' : '[序号=' + index + ']'}进行删除操作?`, "提示", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning",
+ })
+ .then(() => {
+ this.urlOptions.deleteURL(id).then(({ data }) => {
+ this.$message({
+ message: "操作成功",
+ type: "success",
+ duration: 1500,
+ onClose: () => {
+ this.getDataList();
+ },
+ });
+ });
+ })
+ .catch(() => { });
+ },
+ //search-bar点击
+ buttonClick(val) {
+ switch (val.btnName) {
+ case "search":
+ this.listQuery.xm1 = val.xm1;
+ this.listQuery.xm2 = val.xm2;
+ this.listQuery.pageNo = 1;
+ this.getDataList();
+ break;
+ case "add":
+ this.addOrEditTitle = '新增'
+ this.addOrUpdateVisible = true;
+ this.addOrUpdateHandle()
+ break;
+ default:
+ console.log(val)
+ }
+ },
+ handleCancel() {
+ this.$refs.addOrUpdate.formClear()
+ this.addOrUpdateVisible = false
+ this.addOrEditTitle = ''
+ },
+ handleConfirm() {
+ this.$refs.addOrUpdate.dataFormSubmit()
+ },
+ successSubmit() {
+ this.handleCancel()
+ this.getDataList()
+ },
+ /** 导出按钮操作 */
+ handleExport() {
+ // 处理查询参数
+ let params = { ...this.queryParams };
+ params.pageNo = undefined;
+ params.pageSize = undefined;
+ this.$modal.confirm('是否确认导出所有数据项?').then(() => {
+ this.exportLoading = true;
+ return this.urlOptions.exportURL(params);
+ }).then(response => {
+ this.$download.excel(response, '工厂.xls');
+ this.exportLoading = false;
+ }).catch(() => { });
+ }
+ }
+}
diff --git a/src/views/quality/monitoring/mixins/code-filter.js b/src/views/quality/monitoring/mixins/code-filter.js
new file mode 100644
index 00000000..30c5f12e
--- /dev/null
+++ b/src/views/quality/monitoring/mixins/code-filter.js
@@ -0,0 +1,69 @@
+
+/*
+ * @Date: 2020-12-29 16:49:28
+ * @LastEditors: DY
+ * @LastEditTime: 2023-09-12 11:13:34
+ * @FilePath: \basic-admin\src\filters\basicData\index.js
+ * @Description:
+ */
+
+const table = {
+ lineStatus: {
+ 1: '生产中',
+ 2: '停止',
+ 3: '未知',
+ },
+ reportType: {
+ 1: '日',
+ 2: '周',
+ 3: '月'
+ }
+}
+
+// 日期格式化
+export function parseTime(time, pattern) {
+ if (arguments.length === 0 || !time) {
+ return null
+ }
+ const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'
+ let date
+ if (typeof time === 'object') {
+ date = time
+ } else {
+ if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
+ time = parseInt(time)
+ } else if (typeof time === 'string') {
+ time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.\d{3}/gm),'');
+ }
+ if ((typeof time === 'number') && (time.toString().length === 10)) {
+ time = time * 1000
+ }
+ date = new Date(time)
+ }
+ const formatObj = {
+ y: date.getFullYear(),
+ m: date.getMonth() + 1,
+ d: date.getDate(),
+ h: date.getHours(),
+ i: date.getMinutes(),
+ s: date.getSeconds(),
+ a: date.getDay()
+ }
+ const time_str = format.replace(/{([ymdhisa])+}/g, (result, key) => {
+ let value = formatObj[key]
+ // Note: getDay() returns 0 on Sunday
+ if (key === 'a') {
+ return ['日', '一', '二', '三', '四', '五', '六'][value]
+ }
+ if (result.length > 0 && value < 10) {
+ value = '0' + value
+ }
+ return value || 0
+ })
+ return time_str
+}
+export default function (dictTable) {
+ return function (val) {
+ return table?.[dictTable]?.[val]
+ }
+}
diff --git a/src/views/quality/monitoring/processTraceability/index.vue b/src/views/quality/monitoring/processTraceability/index.vue
new file mode 100644
index 00000000..cf55d630
--- /dev/null
+++ b/src/views/quality/monitoring/processTraceability/index.vue
@@ -0,0 +1,270 @@
+
+
+
+
+
+
diff --git a/src/views/quality/monitoring/processTraceabilityDetail/components/ProcessBomList.vue b/src/views/quality/monitoring/processTraceabilityDetail/components/ProcessBomList.vue
new file mode 100644
index 00000000..2e2eb1eb
--- /dev/null
+++ b/src/views/quality/monitoring/processTraceabilityDetail/components/ProcessBomList.vue
@@ -0,0 +1,302 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 设备名称:{{ name }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/quality/monitoring/processTraceabilityDetail/components/ProcessDetail.vue b/src/views/quality/monitoring/processTraceabilityDetail/components/ProcessDetail.vue
new file mode 100644
index 00000000..431afddc
--- /dev/null
+++ b/src/views/quality/monitoring/processTraceabilityDetail/components/ProcessDetail.vue
@@ -0,0 +1,488 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/quality/monitoring/processTraceabilityDetail/components/ProcessInfo.vue b/src/views/quality/monitoring/processTraceabilityDetail/components/ProcessInfo.vue
new file mode 100644
index 00000000..e2c7240c
--- /dev/null
+++ b/src/views/quality/monitoring/processTraceabilityDetail/components/ProcessInfo.vue
@@ -0,0 +1,126 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/quality/monitoring/processTraceabilityDetail/components/ProcessNode.js b/src/views/quality/monitoring/processTraceabilityDetail/components/ProcessNode.js
new file mode 100644
index 00000000..948aaf24
--- /dev/null
+++ b/src/views/quality/monitoring/processTraceabilityDetail/components/ProcessNode.js
@@ -0,0 +1,170 @@
+import { Node, ObjectExt, Shape } from '@antv/x6';
+import { IdToName } from '@/utils'
+import cache from '@/utils/cache'
+import axios from '@/utils/request'
+import { v4 } from 'uuid'
+
+Shape.Edge.config({
+ attrs: {
+ line: {
+ stroke: '#ccc',
+ strokeWidth: 1,
+ targetMarker: {
+ name: 'block',
+ width: 1,
+ height: 1
+ },
+ },
+ }
+})
+
+
+export default class ProcessNode extends Node { }
+ProcessNode.config({
+ width: 200,
+ height: 100,
+ markup: [
+ {
+ tagName: 'rect',
+ selector: 'container',
+ attrs: {
+ x: 0,
+ y: 0,
+ width: 200,
+ height: 100,
+ fill: 'transparent',
+ stroke: '#ccc'
+ },
+ },
+ {
+ tagName: 'rect',
+ attrs: {
+ x: 0,
+ y: 0,
+ width: 200,
+ height: 50,
+ fill: '#ffffff',
+ },
+ },
+ {
+ tagName: 'rect',
+ attrs: {
+ x: 0,
+ y: 50,
+ width: 200,
+ height: 50,
+ fill: '#f8f8f8',
+ },
+ },
+ {
+ tagName: 'text',
+ selector: 'detName',
+ attrs: {
+ x: 20,
+ y: 30,
+ },
+ },
+ {
+ tagName: 'text',
+ selector: 'sectionName',
+ attrs: {
+ x: 115,
+ y: 30,
+ },
+ },
+ {
+ tagName: 'text',
+ selector: 'detDesc',
+ attrs: {
+ x: 26,
+ y: 80,
+ fill: '#777',
+ fontSize: 14,
+ fill: '#1a90fc',
+ },
+ },
+ ],
+ attrs: {
+ line: {
+ fill: 'red'
+ }
+ },
+ ports: {
+ groups: {
+ in: {
+ position: 'left',
+ attrs: {
+ circle: {
+ r: 2,
+ magnet: true,
+ stroke: '#0b58ff',
+ strokeWidth: 1,
+ fill: '#0b58ff'
+ }
+ }
+ },
+ out: {
+ position: 'right',
+ attrs: {
+ circle: {
+ r: 2,
+ magnet: true,
+ stroke: '#0b58ff',
+ strokeWidth: 1,
+ fill: '#0b58ff'
+ }
+ }
+ }
+ }
+ },
+ propHooks(metadata) {
+ const { detId, detName, detDesc, sectionName, processId, sectionId, ...others } = metadata;
+ // debugger;
+ if (detName) ObjectExt.setByPath(others, 'attrs/detName/text', detName);
+ if (detDesc) ObjectExt.setByPath(others, 'attrs/detDesc/text', detDesc);
+ if (sectionName) ObjectExt.setByPath(others, 'attrs/sectionName/text', sectionName);
+ if (detId) ObjectExt.setByPath(others, 'attrs/detId/text', detId);
+ if (processId) ObjectExt.setByPath(others, 'attrs/processId/text', processId);
+ if (sectionId) ObjectExt.setByPath(others, 'attrs/sectionId/text', sectionId);
+ return others;
+ }
+});
+
+export const CACHE_NAME = 'ProcessDetail::section';
+
+export async function getSectionFrom(sectionId) {
+ const sectionList = await cache.getList(
+ CACHE_NAME,
+ async () => {
+ const { code, data } = await axios(
+ '/base/core-production-line/listAll'
+ );
+ if (code == 0) {
+ return data;
+ }
+ }
+ );
+ return IdToName(sectionId, sectionList);
+}
+
+export async function createProcessNode({ flowId, id, name, sectionId, remark }) {
+ const sectionName = await getSectionFrom(sectionId);
+ return {
+ shape: 'process-node',
+ x: 0,
+ y: 0,
+ detName: name, // 工序名称
+ sectionName, // 工段
+ sectionId,
+ detDesc: remark, // 工序说明
+ processId: flowId, // 工艺ID
+ detId: id, // 工序ID
+ tools: [],
+ ports: [
+ { id: v4(), group: 'in' },
+ { id: v4(), group: 'out' },
+ ]
+ };
+}
+
+export async function createEdge(src, dest) { }
\ No newline at end of file
diff --git a/src/views/quality/monitoring/processTraceabilityDetail/components/SmallTitle.vue b/src/views/quality/monitoring/processTraceabilityDetail/components/SmallTitle.vue
new file mode 100644
index 00000000..5d34b55b
--- /dev/null
+++ b/src/views/quality/monitoring/processTraceabilityDetail/components/SmallTitle.vue
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/quality/monitoring/processTraceabilityDetail/components/statusBtn.vue b/src/views/quality/monitoring/processTraceabilityDetail/components/statusBtn.vue
new file mode 100644
index 00000000..e1b7e319
--- /dev/null
+++ b/src/views/quality/monitoring/processTraceabilityDetail/components/statusBtn.vue
@@ -0,0 +1,63 @@
+
+
+
+ {{ injectData.minValueSet + '-' + injectData.maxValueSet + "/" + injectData / defaultValueSet }}
+
+
+
+
diff --git a/src/views/quality/monitoring/processTraceabilityDetail/index.vue b/src/views/quality/monitoring/processTraceabilityDetail/index.vue
new file mode 100644
index 00000000..34fb96a4
--- /dev/null
+++ b/src/views/quality/monitoring/processTraceabilityDetail/index.vue
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
diff --git a/src/views/quality/monitoring/qualityInspectionRecord/dialogForm.vue b/src/views/quality/monitoring/qualityInspectionRecord/dialogForm.vue
index 1d660f8a..9ef8b17c 100644
--- a/src/views/quality/monitoring/qualityInspectionRecord/dialogForm.vue
+++ b/src/views/quality/monitoring/qualityInspectionRecord/dialogForm.vue
@@ -1,4 +1,4 @@
-
@@ -68,7 +68,7 @@ export default {
methods: {
async getList() {
const response = await this.$axios({
- url: '/monitoring/record-in-one-day/get',
+ url: '/analysis/record-in-one-day/get',
method: 'get',
});
const {
diff --git a/src/views/quality/monitoring/qualityStatistics/index.vue b/src/views/quality/monitoring/qualityStatistics/index.vue
index ec436dbb..40e96b6c 100644
--- a/src/views/quality/monitoring/qualityStatistics/index.vue
+++ b/src/views/quality/monitoring/qualityStatistics/index.vue
@@ -1,4 +1,4 @@
-
+
+
+
+
+
diff --git a/src/views/quality/monitoring/statisticalData/dialogForm.vue b/src/views/quality/monitoring/statisticalData/dialogForm.vue
new file mode 100644
index 00000000..9ef8b17c
--- /dev/null
+++ b/src/views/quality/monitoring/statisticalData/dialogForm.vue
@@ -0,0 +1,270 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/quality/monitoring/statisticalData/index.vue b/src/views/quality/monitoring/statisticalData/index.vue
new file mode 100644
index 00000000..a17c8621
--- /dev/null
+++ b/src/views/quality/monitoring/statisticalData/index.vue
@@ -0,0 +1,436 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/report/jmreport/index.vue b/src/views/report/jmreport/index.vue
index 3b968108..9039ebf0 100644
--- a/src/views/report/jmreport/index.vue
+++ b/src/views/report/jmreport/index.vue
@@ -1,3 +1,10 @@
+
diff --git a/src/views/warehouse/end-material/warehouseLocationMonitoring/index.vue b/src/views/warehouse/end-material/warehouseLocationMonitoring/index.vue
index 195e434b..128302c5 100644
--- a/src/views/warehouse/end-material/warehouseLocationMonitoring/index.vue
+++ b/src/views/warehouse/end-material/warehouseLocationMonitoring/index.vue
@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-08-21 14:26:23
* @LastEditors: zwq
- * @LastEditTime: 2023-11-06 11:25:34
+ * @LastEditTime: 2023-11-14 09:40:33
* @Description:
-->
@@ -11,11 +11,35 @@
:formConfigs="formConfig"
ref="searchBarForm"
@headBtnClick="buttonClick" />
-
- 缓存
- 活动
- 其它
-
+
+
+
+ |
+ 停用
+ 启用
+
@@ -26,11 +50,14 @@
v-for="a in wareData.one.slice((i - 1) * 10, i * 10)"
:key="a.id + a.code"
:title="a.name"
- style="background: #fff8e8; float: left">
+ :style="{
+ background: bgColor[a.enabled],
+ float: 'left',
+ }">
{{ a.name }}
@@ -41,11 +68,14 @@
v-for="b in wareData.two.slice((i - 1) * 10, i * 10)"
:key="b.id + b.code"
:title="b.name"
- style="background: #fff8e8; float: left">
+ :style="{
+ background: bgColor[b.enabled],
+ float: 'left',
+ }">
{{ b.name }}
@@ -61,11 +91,14 @@
v-for="c in wareData.there.slice((i - 1) * 10, i * 10)"
:key="c.id + c.code"
:title="c.name"
- style="background: #fff8e8; float: left">
+ :style="{
+ background: bgColor[c.enabled],
+ float: 'left',
+ }">
{{ c.name }}
@@ -76,11 +109,14 @@
v-for="d in wareData.four.slice((i - 1) * 10, i * 10)"
:key="d.id + d.code"
:title="d.name"
- style="background: #fff8e8; float: left">
+ :style="{
+ background: bgColor[d.enabled],
+ float: 'left',
+ }">
{{ d.name }}
@@ -106,7 +142,14 @@ export default {
four: [],
},
total: 0,
- bgColor: ['#7362F3', '#16DC09', '#FFA08F'],
+ bgColor: ['#D7DBE5', '#D8E5FF'],
+ dotColor: ['#16DC09', '#FFD781', '#7362F3', '#FFA08F'],
+ cassetteStatusList: [
+ { id: '1', name: '可用', color: '#16DC09' },
+ { id: '2', name: '占用-待入库', color: '#FFD781' },
+ { id: '3', name: '占用-有货', color: '#7362F3' },
+ { id: '4', name: '占用-待出库', color: '#FFA08F' },
+ ],
formConfig: [
{
type: 'button',
@@ -130,26 +173,26 @@ export default {
there: [],
four: [],
}),
- getWarehouseList().then((response) => {
- response.data.forEach((item) => {
- if (item.storageType === 2) {
- listByWarehouse(item.id).then((response) => {
- response.data.forEach((a, b) => {
- if (b % 4 === 0) {
- this.wareData.one.push(a);
- } else if (b % 4 === 1) {
- this.wareData.two.push(a);
- } else if (b % 4 === 2) {
- this.wareData.there.push(a);
- } else if (b % 4 === 3) {
- this.wareData.four.push(a);
+ getWarehouseList().then((response) => {
+ response.data.forEach((item) => {
+ if (item.storageType === 2) {
+ listByWarehouse(item.id).then((response) => {
+ response.data.forEach((a, b) => {
+ if (b % 4 === 0) {
+ this.wareData.one.push(a);
+ } else if (b % 4 === 1) {
+ this.wareData.two.push(a);
+ } else if (b % 4 === 2) {
+ this.wareData.there.push(a);
+ } else if (b % 4 === 3) {
+ this.wareData.four.push(a);
+ }
+ });
+ this.total = Math.ceil(response.data.length / 40);
+ });
}
});
- this.total = Math.ceil(response.data.length / 40);
- });
- }
- });
- });
+ });
},
buttonClick(val) {
switch (val.btnName) {
@@ -225,4 +268,25 @@ export default {
top: 22px;
right: 120px;
}
+.dashboard-legend {
+ margin: 5px 5px 10px 5px;
+ .dashboard-legend-cassette {
+ display: inline-block;
+ margin-right: 24px;
+ .dashboard-legend-cassette-cricle {
+ display: inline-block;
+ width: 12px;
+ height: 12px;
+ border-radius: 6px;
+ }
+ }
+ .dashboard-legend-port {
+ display: inline-block;
+ height: 24px;
+ line-height: 24px;
+ border-radius: 4px;
+ padding: 0 16px;
+ margin-left: 24px;
+ }
+}
diff --git a/src/views/warehouse/out-material/warehouseLocationMonitoring/index.vue b/src/views/warehouse/out-material/warehouseLocationMonitoring/index.vue
index 10cd7599..f13edc50 100644
--- a/src/views/warehouse/out-material/warehouseLocationMonitoring/index.vue
+++ b/src/views/warehouse/out-material/warehouseLocationMonitoring/index.vue
@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-08-21 14:26:23
* @LastEditors: zwq
- * @LastEditTime: 2023-11-06 11:32:23
+ * @LastEditTime: 2023-11-14 09:40:21
* @Description:
-->
@@ -11,11 +11,35 @@
:formConfigs="formConfig"
ref="searchBarForm"
@headBtnClick="buttonClick" />
-
- 缓存
- 活动
- 其它
-
+
+
+
+ |
+ 停用
+ 启用
+
@@ -26,11 +50,14 @@
v-for="a in wareData.one.slice((i - 1) * 10, i * 10)"
:key="a.id + a.code"
:title="a.name"
- style="background: #fff8e8; float: left">
+ :style="{
+ background: bgColor[a.enabled],
+ float: 'left',
+ }">
{{ a.name }}
@@ -41,11 +68,14 @@
v-for="b in wareData.two.slice((i - 1) * 10, i * 10)"
:key="b.id + b.code"
:title="b.name"
- style="background: #fff8e8; float: left">
+ :style="{
+ background: bgColor[b.enabled],
+ float: 'left',
+ }">
{{ b.name }}
@@ -61,11 +91,14 @@
v-for="c in wareData.there.slice((i - 1) * 10, i * 10)"
:key="c.id + c.code"
:title="c.name"
- style="background: #fff8e8; float: left">
+ :style="{
+ background: bgColor[c.enabled],
+ float: 'left',
+ }">
{{ c.name }}
@@ -76,11 +109,14 @@
v-for="d in wareData.four.slice((i - 1) * 10, i * 10)"
:key="d.id + d.code"
:title="d.name"
- style="background: #fff8e8; float: left">
+ :style="{
+ background: bgColor[d.enabled],
+ float: 'left',
+ }">
{{ d.name }}
@@ -106,7 +142,14 @@ export default {
four: [],
},
total: 0,
- bgColor: ['#7362F3', '#16DC09', '#FFA08F'],
+ bgColor: ['#D7DBE5', '#D8E5FF'],
+ dotColor: ['#16DC09', '#FFD781', '#7362F3', '#FFA08F'],
+ cassetteStatusList: [
+ { id: '1', name: '可用', color: '#16DC09' },
+ { id: '2', name: '占用-待入库', color: '#FFD781' },
+ { id: '3', name: '占用-有货', color: '#7362F3' },
+ { id: '4', name: '占用-待出库', color: '#FFA08F' },
+ ],
formConfig: [
{
type: 'button',
@@ -130,26 +173,26 @@ export default {
there: [],
four: [],
}),
- getWarehouseList().then((response) => {
- response.data.forEach((item) => {
- if (item.storageType === 5) {
- listByWarehouse(item.id).then((response) => {
- response.data.forEach((a, b) => {
- if (b % 4 === 0) {
- this.wareData.one.push(a);
- } else if (b % 4 === 1) {
- this.wareData.two.push(a);
- } else if (b % 4 === 2) {
- this.wareData.there.push(a);
- } else if (b % 4 === 3) {
- this.wareData.four.push(a);
+ getWarehouseList().then((response) => {
+ response.data.forEach((item) => {
+ if (item.storageType === 5) {
+ listByWarehouse(item.id).then((response) => {
+ response.data.forEach((a, b) => {
+ if (b % 4 === 0) {
+ this.wareData.one.push(a);
+ } else if (b % 4 === 1) {
+ this.wareData.two.push(a);
+ } else if (b % 4 === 2) {
+ this.wareData.there.push(a);
+ } else if (b % 4 === 3) {
+ this.wareData.four.push(a);
+ }
+ });
+ this.total = Math.ceil(response.data.length / 40);
+ });
}
});
- this.total = Math.ceil(response.data.length / 40);
- });
- }
- });
- });
+ });
},
buttonClick(val) {
switch (val.btnName) {
@@ -225,4 +268,25 @@ export default {
top: 22px;
right: 120px;
}
+.dashboard-legend {
+ margin: 5px 5px 10px 5px;
+ .dashboard-legend-cassette {
+ display: inline-block;
+ margin-right: 24px;
+ .dashboard-legend-cassette-cricle {
+ display: inline-block;
+ width: 12px;
+ height: 12px;
+ border-radius: 6px;
+ }
+ }
+ .dashboard-legend-port {
+ display: inline-block;
+ height: 24px;
+ line-height: 24px;
+ border-radius: 4px;
+ padding: 0 16px;
+ margin-left: 24px;
+ }
+}
diff --git a/src/views/warehouse/package-material/warehouseLocationMonitoring/index.vue b/src/views/warehouse/package-material/warehouseLocationMonitoring/index.vue
index 3fee5853..b67104ff 100644
--- a/src/views/warehouse/package-material/warehouseLocationMonitoring/index.vue
+++ b/src/views/warehouse/package-material/warehouseLocationMonitoring/index.vue
@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-08-21 14:26:23
* @LastEditors: zwq
- * @LastEditTime: 2023-11-06 11:31:52
+ * @LastEditTime: 2023-11-14 09:40:08
* @Description:
-->
@@ -11,11 +11,35 @@
:formConfigs="formConfig"
ref="searchBarForm"
@headBtnClick="buttonClick" />
-
- 缓存
- 活动
- 其它
-
+
+
+
+ |
+ 停用
+ 启用
+
@@ -26,11 +50,14 @@
v-for="a in wareData.one.slice((i - 1) * 10, i * 10)"
:key="a.id + a.code"
:title="a.name"
- style="background: #fff8e8; float: left">
+ :style="{
+ background: bgColor[a.enabled],
+ float: 'left',
+ }">
{{ a.name }}
@@ -41,11 +68,14 @@
v-for="b in wareData.two.slice((i - 1) * 10, i * 10)"
:key="b.id + b.code"
:title="b.name"
- style="background: #fff8e8; float: left">
+ :style="{
+ background: bgColor[b.enabled],
+ float: 'left',
+ }">
{{ b.name }}
@@ -61,11 +91,14 @@
v-for="c in wareData.there.slice((i - 1) * 10, i * 10)"
:key="c.id + c.code"
:title="c.name"
- style="background: #fff8e8; float: left">
+ :style="{
+ background: bgColor[c.enabled],
+ float: 'left',
+ }">
{{ c.name }}
@@ -76,11 +109,14 @@
v-for="d in wareData.four.slice((i - 1) * 10, i * 10)"
:key="d.id + d.code"
:title="d.name"
- style="background: #fff8e8; float: left">
+ :style="{
+ background: bgColor[d.enabled],
+ float: 'left',
+ }">
{{ d.name }}
@@ -106,7 +142,14 @@ export default {
four: [],
},
total: 0,
- bgColor: ['#7362F3', '#16DC09', '#FFA08F'],
+ bgColor: ['#D7DBE5', '#D8E5FF'],
+ dotColor: ['#16DC09', '#FFD781', '#7362F3', '#FFA08F'],
+ cassetteStatusList: [
+ { id: '1', name: '可用', color: '#16DC09' },
+ { id: '2', name: '占用-待入库', color: '#FFD781' },
+ { id: '3', name: '占用-有货', color: '#7362F3' },
+ { id: '4', name: '占用-待出库', color: '#FFA08F' },
+ ],
formConfig: [
{
type: 'button',
@@ -130,26 +173,26 @@ export default {
there: [],
four: [],
}),
- getWarehouseList().then((response) => {
- response.data.forEach((item) => {
- if (item.storageType === 3) {
- listByWarehouse(item.id).then((response) => {
- response.data.forEach((a, b) => {
- if (b % 4 === 0) {
- this.wareData.one.push(a);
- } else if (b % 4 === 1) {
- this.wareData.two.push(a);
- } else if (b % 4 === 2) {
- this.wareData.there.push(a);
- } else if (b % 4 === 3) {
- this.wareData.four.push(a);
+ getWarehouseList().then((response) => {
+ response.data.forEach((item) => {
+ if (item.storageType === 3) {
+ listByWarehouse(item.id).then((response) => {
+ response.data.forEach((a, b) => {
+ if (b % 4 === 0) {
+ this.wareData.one.push(a);
+ } else if (b % 4 === 1) {
+ this.wareData.two.push(a);
+ } else if (b % 4 === 2) {
+ this.wareData.there.push(a);
+ } else if (b % 4 === 3) {
+ this.wareData.four.push(a);
+ }
+ });
+ this.total = Math.ceil(response.data.length / 40);
+ });
}
});
- this.total = Math.ceil(response.data.length / 40);
- });
- }
- });
- });
+ });
},
buttonClick(val) {
switch (val.btnName) {
@@ -225,4 +268,25 @@ export default {
top: 22px;
right: 120px;
}
+.dashboard-legend {
+ margin: 5px 5px 10px 5px;
+ .dashboard-legend-cassette {
+ display: inline-block;
+ margin-right: 24px;
+ .dashboard-legend-cassette-cricle {
+ display: inline-block;
+ width: 12px;
+ height: 12px;
+ border-radius: 6px;
+ }
+ }
+ .dashboard-legend-port {
+ display: inline-block;
+ height: 24px;
+ line-height: 24px;
+ border-radius: 4px;
+ padding: 0 16px;
+ margin-left: 24px;
+ }
+}
diff --git a/src/views/warehouse/part-material/warehouseLocationMonitoring/index.vue b/src/views/warehouse/part-material/warehouseLocationMonitoring/index.vue
index 4f42e88b..d81021db 100644
--- a/src/views/warehouse/part-material/warehouseLocationMonitoring/index.vue
+++ b/src/views/warehouse/part-material/warehouseLocationMonitoring/index.vue
@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-08-21 14:26:23
* @LastEditors: zwq
- * @LastEditTime: 2023-11-06 11:31:14
+ * @LastEditTime: 2023-11-14 09:39:54
* @Description:
-->
@@ -11,11 +11,35 @@
:formConfigs="formConfig"
ref="searchBarForm"
@headBtnClick="buttonClick" />
-
- 缓存
- 活动
- 其它
-
+
+
+
+ |
+ 停用
+ 启用
+
@@ -26,11 +50,14 @@
v-for="a in wareData.one.slice((i - 1) * 10, i * 10)"
:key="a.id + a.code"
:title="a.name"
- style="background: #fff8e8; float: left">
+ :style="{
+ background: bgColor[a.enabled],
+ float: 'left',
+ }">
{{ a.name }}
@@ -41,11 +68,14 @@
v-for="b in wareData.two.slice((i - 1) * 10, i * 10)"
:key="b.id + b.code"
:title="b.name"
- style="background: #fff8e8; float: left">
+ :style="{
+ background: bgColor[b.enabled],
+ float: 'left',
+ }">
{{ b.name }}
@@ -61,11 +91,14 @@
v-for="c in wareData.there.slice((i - 1) * 10, i * 10)"
:key="c.id + c.code"
:title="c.name"
- style="background: #fff8e8; float: left">
+ :style="{
+ background: bgColor[c.enabled],
+ float: 'left',
+ }">
{{ c.name }}
@@ -76,11 +109,14 @@
v-for="d in wareData.four.slice((i - 1) * 10, i * 10)"
:key="d.id + d.code"
:title="d.name"
- style="background: #fff8e8; float: left">
+ :style="{
+ background: bgColor[d.enabled],
+ float: 'left',
+ }">
{{ d.name }}
@@ -106,7 +142,14 @@ export default {
four: [],
},
total: 0,
- bgColor: ['#7362F3', '#16DC09', '#FFA08F'],
+ bgColor: ['#D7DBE5', '#D8E5FF'],
+ dotColor: ['#16DC09', '#FFD781', '#7362F3', '#FFA08F'],
+ cassetteStatusList: [
+ { id: '1', name: '可用', color: '#16DC09' },
+ { id: '2', name: '占用-待入库', color: '#FFD781' },
+ { id: '3', name: '占用-有货', color: '#7362F3' },
+ { id: '4', name: '占用-待出库', color: '#FFA08F' },
+ ],
formConfig: [
{
type: 'button',
@@ -130,26 +173,26 @@ export default {
there: [],
four: [],
}),
- getWarehouseList().then((response) => {
- response.data.forEach((item) => {
- if (item.storageType === 4) {
- listByWarehouse(item.id).then((response) => {
- response.data.forEach((a, b) => {
- if (b % 4 === 0) {
- this.wareData.one.push(a);
- } else if (b % 4 === 1) {
- this.wareData.two.push(a);
- } else if (b % 4 === 2) {
- this.wareData.there.push(a);
- } else if (b % 4 === 3) {
- this.wareData.four.push(a);
+ getWarehouseList().then((response) => {
+ response.data.forEach((item) => {
+ if (item.storageType === 4) {
+ listByWarehouse(item.id).then((response) => {
+ response.data.forEach((a, b) => {
+ if (b % 4 === 0) {
+ this.wareData.one.push(a);
+ } else if (b % 4 === 1) {
+ this.wareData.two.push(a);
+ } else if (b % 4 === 2) {
+ this.wareData.there.push(a);
+ } else if (b % 4 === 3) {
+ this.wareData.four.push(a);
+ }
+ });
+ this.total = Math.ceil(response.data.length / 40);
+ });
}
});
- this.total = Math.ceil(response.data.length / 40);
- });
- }
- });
- });
+ });
},
buttonClick(val) {
switch (val.btnName) {
@@ -225,4 +268,25 @@ export default {
top: 22px;
right: 120px;
}
+.dashboard-legend {
+ margin: 5px 5px 10px 5px;
+ .dashboard-legend-cassette {
+ display: inline-block;
+ margin-right: 24px;
+ .dashboard-legend-cassette-cricle {
+ display: inline-block;
+ width: 12px;
+ height: 12px;
+ border-radius: 6px;
+ }
+ }
+ .dashboard-legend-port {
+ display: inline-block;
+ height: 24px;
+ line-height: 24px;
+ border-radius: 4px;
+ padding: 0 16px;
+ margin-left: 24px;
+ }
+}
diff --git a/src/views/warehouse/raw-material/warehouseLocationMonitoring/index.vue b/src/views/warehouse/raw-material/warehouseLocationMonitoring/index.vue
index a193cde1..ec11302f 100644
--- a/src/views/warehouse/raw-material/warehouseLocationMonitoring/index.vue
+++ b/src/views/warehouse/raw-material/warehouseLocationMonitoring/index.vue
@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2023-08-21 14:26:23
* @LastEditors: zwq
- * @LastEditTime: 2023-11-06 11:30:20
+ * @LastEditTime: 2023-11-14 09:39:02
* @Description:
-->
@@ -11,11 +11,35 @@
:formConfigs="formConfig"
ref="searchBarForm"
@headBtnClick="buttonClick" />
-
- 缓存
- 活动
- 其它
-
+
+
+
+ |
+ 停用
+ 启用
+
@@ -26,11 +50,14 @@
v-for="a in wareData.one.slice((i - 1) * 10, i * 10)"
:key="a.id + a.code"
:title="a.name"
- style="background: #fff8e8; float: left">
+ :style="{
+ background: bgColor[a.enabled],
+ float: 'left',
+ }">
{{ a.name }}
@@ -41,11 +68,14 @@
v-for="b in wareData.two.slice((i - 1) * 10, i * 10)"
:key="b.id + b.code"
:title="b.name"
- style="background: #fff8e8; float: left">
+ :style="{
+ background: bgColor[b.enabled],
+ float: 'left',
+ }">
{{ b.name }}
@@ -61,11 +91,14 @@
v-for="c in wareData.there.slice((i - 1) * 10, i * 10)"
:key="c.id + c.code"
:title="c.name"
- style="background: #fff8e8; float: left">
+ :style="{
+ background: bgColor[c.enabled],
+ float: 'left',
+ }">
{{ c.name }}
@@ -76,11 +109,14 @@
v-for="d in wareData.four.slice((i - 1) * 10, i * 10)"
:key="d.id + d.code"
:title="d.name"
- style="background: #fff8e8; float: left">
+ :style="{
+ background: bgColor[d.enabled],
+ float: 'left',
+ }">
{{ d.name }}
@@ -106,7 +142,14 @@ export default {
four: [],
},
total: 0,
- bgColor: ['#7362F3', '#16DC09', '#FFA08F'],
+ bgColor: ['#D7DBE5', '#D8E5FF'],
+ dotColor: ['#16DC09', '#FFD781', '#7362F3', '#FFA08F'],
+ cassetteStatusList: [
+ { id: '1', name: '可用', color: '#16DC09' },
+ { id: '2', name: '占用-待入库', color: '#FFD781' },
+ { id: '3', name: '占用-有货', color: '#7362F3' },
+ { id: '4', name: '占用-待出库', color: '#FFA08F' },
+ ],
formConfig: [
{
type: 'button',
@@ -130,26 +173,26 @@ export default {
there: [],
four: [],
}),
- getWarehouseList().then((response) => {
- response.data.forEach((item) => {
- if (item.storageType === 1) {
- listByWarehouse(item.id).then((response) => {
- response.data.forEach((a, b) => {
- if (b % 4 === 0) {
- this.wareData.one.push(a);
- } else if (b % 4 === 1) {
- this.wareData.two.push(a);
- } else if (b % 4 === 2) {
- this.wareData.there.push(a);
- } else if (b % 4 === 3) {
- this.wareData.four.push(a);
+ getWarehouseList().then((response) => {
+ response.data.forEach((item) => {
+ if (item.storageType === 1) {
+ listByWarehouse(item.id).then((response) => {
+ response.data.forEach((a, b) => {
+ if (b % 4 === 0) {
+ this.wareData.one.push(a);
+ } else if (b % 4 === 1) {
+ this.wareData.two.push(a);
+ } else if (b % 4 === 2) {
+ this.wareData.there.push(a);
+ } else if (b % 4 === 3) {
+ this.wareData.four.push(a);
+ }
+ });
+ this.total = Math.ceil(response.data.length / 40);
+ });
}
});
- this.total = Math.ceil(response.data.length / 40);
- });
- }
- });
- });
+ });
},
buttonClick(val) {
switch (val.btnName) {
@@ -225,4 +268,25 @@ export default {
top: 22px;
right: 120px;
}
+.dashboard-legend {
+ margin: 5px 5px 10px 5px;
+ .dashboard-legend-cassette {
+ display: inline-block;
+ margin-right: 24px;
+ .dashboard-legend-cassette-cricle {
+ display: inline-block;
+ width: 12px;
+ height: 12px;
+ border-radius: 6px;
+ }
+ }
+ .dashboard-legend-port {
+ display: inline-block;
+ height: 24px;
+ line-height: 24px;
+ border-radius: 4px;
+ padding: 0 16px;
+ margin-left: 24px;
+ }
+}