From dc1879fd0713eed48b2c75af5f29a1085291d276 Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期二, 07 五月 2024 14:40:55 +0800
Subject: [PATCH] 1.文件替换
---
src/views/deviceManager/maintainPosition.vue | 526
src/assets/images/box02.png | 0
src/views/deviceManager/checkStandard.vue | 1349 +
vue.config.js | 2
src/views/mouldManager/mouldCheckStand.vue | 713
src/views/statistic/workOrderProcess.vue | 439
src/icons/svg/bbgl.svg | 4
src/views/basicSettings/processList.vue | 434
src/views/mouldManager/mouldMaintain.vue | 453
src/views/workOrder/produceOrderList.vue | 1122 +
src/api/ProductModel.js | 9
src/views/deviceManager/maintainRecord.vue | 616
src/views/qualityManager/processCheckRecord.vue | 732
src/icons/svg/example.svg | 2
src/icons/svg/xtsz.svg | 2
src/views/workOrder/workOrderSend.vue | 3414 ++++
src/views/statistic/defectDetailList.vue | 595
src/views/statistic/personSalaryList.vue | 880 +
src/icons/svg/mj.svg | 15
src/views/mouldManager/mouldMaintainStand.vue | 713
src/icons/svg/home.svg | 2
src/icons/svg/blcs.svg | 1
src/views/basicSettings/roleList.vue | 95
src/views/deviceManager/checkPosition.vue | 608
src/views/statistic/subcontractingOperation.vue | 644
src/views/basicSettings/groupList.vue | 1
src/views/basicSettings/storageList.vue | 888 +
src/permission.js | 2
src/icons/svg/quality.svg | 21
src/views/basicSettings/postList.vue | 1
src/views/workOrder/workOrderClose.vue | 3438 ++++
src/views/kanbanManager/cj.vue | 436
src/assets/images/background001.jpg | 0
src/router/index.js | 342
src/views/basicSettings/contactUnitList.vue | 56
src/views/qualityManager/defectDefine.vue | 356
src/utils/myEcharts.js | 1317 +
.env.development | 3
src/views/deviceManager/maintainStandard.vue | 1298 +
src/api/basicSettings.js | 90
src/views/statistic/groupSalaryList.vue | 897 +
src/views/systemSetting/encodingRules.vue | 13
.env.production | 3
src/icons/svg/table.svg | 25
src/views/kanbanManager/zhkb.vue | 906
src/views/produce/stepReport.vue | 1512 ++
src/icons/svg/component.svg | 2
src/components/VcronTab/components/Crontab.vue | 2
src/views/materialManager/inventoryList.vue | 66
src/views/mouldManager/mouldCheckRecord.vue | 488
src/styles/global.css | 9
src/api/kanbanManager.js | 111
src/views/mouldManager/mouldCheck.vue | 450
src/api/Excel.js | 58
src/views/systemSetting/dataImport.vue | 2308 +++
src/views/mouldManager/mouldOutInRecord.vue | 496
src/views/deviceManager/repairRecord.vue | 730
src/views/deviceManager/deviceList.vue | 773 +
src/views/materialManager/unitList.vue | 12
src/components/UploadExcel/index.vue | 162
src/api/ErpSyncMes.js | 30
src/api/DeviceManager.js | 290
src/icons/svg/tree2.svg | 4
src/api/QualityManagement.js | 171
src/views/qualityManager/qualityPlaning.vue | 1292 +
src/api/GeneralBasicData.js | 110
src/views/mouldManager/mouldList.vue | 982 +
src/api/ReportManager.js | 118
src/views/workOrder/workOrderList.vue | 3481 ++++
src/views/produce/reportVerify.vue | 525
src/api/WorkOrder.js | 258
src/icons/svg/zlgl.svg | 8
src/views/mouldManager/mouldRepairRecord.vue | 728
src/views/produce/reportCorrect.vue | 767 +
src/icons/svg/ckkc.svg | 1
src/views/basicSettings/personList.vue | 15
src/views/mouldManager/mouldUpDownRecord.vue | 500
src/api/MouldManager.js | 334
src/views/deviceManager/checkRecord.vue | 595
src/views/mouldManager/mouldMaintainRecord.vue | 492
src/views/qualityManager/processCheckItem.vue | 406
src/views/statistic/repairDetailList.vue | 614
src/views/basicSettings/powerDivider.vue | 159
src/api/GridReport.js | 10
src/views/qualityManager/processCheck.vue | 802 +
package.json | 5
src/views/basicSettings/organizationList.vue | 30
src/views/basicSettings/warehouseList.vue | 467
src/views/kanbanManager/kbCommon.css | 20
src/components/DragSelect/index.vue | 65
src/views/mouldManager/mouldCirculateRecord.vue | 476
91 files changed, 43,367 insertions(+), 1,030 deletions(-)
diff --git a/.env.development b/.env.development
index 62fdafb..6e3cf47 100644
--- a/.env.development
+++ b/.env.development
@@ -5,5 +5,6 @@
VUE_APP_BASE_API = '/api/'
# 鏂囦欢涓嬭浇鍦板潃 涓嬭浇鏁版嵁妯℃澘鍦板潃
-VUE_APP_BASE_API_FILE = 'http://121.196.36.24:8001'
+# 鏈湴鏈嶅姟鍣�
+VUE_APP_BASE_API_FILE = 'http://121.196.36.24:8019/'
diff --git a/.env.production b/.env.production
index 6b25792..ab5e16a 100644
--- a/.env.production
+++ b/.env.production
@@ -5,4 +5,5 @@
VUE_APP_BASE_API = '/api/'
# 鏂囦欢涓嬭浇鍦板潃 涓嬭浇鏁版嵁妯℃澘鍦板潃
-VUE_APP_BASE_API_FILE = 'http://121.196.36.24:8001'
+# 鏈湴鏈嶅姟鍣�
+VUE_APP_BASE_API_FILE = 'http://121.196.36.24:8019/'
diff --git a/package.json b/package.json
index 13f5c8b..e68cccf 100644
--- a/package.json
+++ b/package.json
@@ -27,12 +27,14 @@
"jsonwebtoken": "^9.0.1",
"lib-flexible": "^0.3.2",
"lib-flexible-computer": "^1.0.2",
+ "nanoid": "^4.0.2",
"normalize.css": "7.0.0",
"nprogress": "0.2.0",
"path-to-regexp": "2.4.0",
"postcss-px2rem": "^0.3.0",
"qrcode": "^1.5.0",
"qrcodejs2": "0.0.2",
+ "sortablejs": "^1.15.0",
"vcrontab": "^0.3.5",
"vue": "2.6.10",
"vue-count-to": "^1.0.13",
@@ -42,7 +44,8 @@
"vue-print-nb": "^1.7.5",
"vue-router": "3.0.6",
"vue-splitpane": "^1.0.6",
- "vuedraggable": "^2.24.3"
+ "vuedraggable": "^2.24.3",
+ "xlsx": "0.14.1"
},
"devDependencies": {
"@aspnet/signalr": "^1.0.27",
diff --git a/src/api/DeviceManager.js b/src/api/DeviceManager.js
new file mode 100644
index 0000000..bf3f061
--- /dev/null
+++ b/src/api/DeviceManager.js
@@ -0,0 +1,290 @@
+import request from '@/utils/request'
+
+// 璁惧绫诲瀷鏌ヨ
+export function DeviceTypeSearch(data) {
+ return request({
+ url: 'DeviceManager/DeviceTypeSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 璁惧绫诲瀷鏂板
+export function AddUpdateDeviceType(data, OperType) {
+ return request({
+ url: 'DeviceManager/AddUpdateDeviceType?OperType=' + OperType,
+ method: 'post',
+ data
+ })
+}
+
+// 璁惧绫诲瀷鍒犻櫎
+export function DeleteDeviceType(data) {
+ return request({
+ url: 'DeviceManager/DeleteDeviceType',
+ method: 'post',
+ params: data
+ })
+}
+// 璁惧鍒楄〃鏌ヨ
+export function DeviceMangerSearch(data) {
+ return request({
+ url: 'DeviceManager/DeviceMangerSearch',
+ method: 'get',
+ params: data
+ })
+}
+// 璁惧娓呭崟鏂板缂栬緫
+export function AddUpdateDeviceManger(data) {
+ return request({
+ url: 'DeviceManager/AddUpdateDeviceManger',
+ method: 'post',
+ data
+ })
+}
+// 璁惧淇℃伅鍒犻櫎
+export function DeleteDeviceManger(data) {
+ return request({
+ url: 'DeviceManager/DeleteDeviceManger',
+ method: 'post',
+ params: data
+ })
+}
+
+// 璁惧鐐规椤瑰垪琛ㄦ煡璇�
+export function DeviceCheckItemSearch(data) {
+ return request({
+ url: 'DeviceManager/DeviceCheckItemSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 璁惧鐐规椤规柊澧炵紪杈�
+export function AddUpdateDeviceCheckItem(data) {
+ return request({
+ url: 'DeviceManager/AddUpdateDeviceCheckItem',
+ method: 'post',
+ data
+ })
+}
+// 璁惧鐐规椤瑰垹闄�
+export function DeleteDeviceCheckItem(data) {
+ return request({
+ url: 'DeviceManager/DeleteDeviceCheckItem',
+ method: 'post',
+ params: data
+ })
+}
+// 璁惧淇濆吇椤瑰垪琛ㄦ煡璇�
+export function DeviceMaiItemSearch(data) {
+ return request({
+ url: 'DeviceManager/DeviceMaiItemSearch',
+ method: 'get',
+ params: data
+ })
+}
+// 璁惧淇濆吇椤规柊澧炵紪杈�
+export function AddUpdateDeviceMaiItem(data) {
+ return request({
+ url: 'DeviceManager/AddUpdateDeviceMaiItem',
+ method: 'post',
+ data
+ })
+}
+// 璁惧淇濆吇椤瑰垹闄�
+export function DeleteDeviceMaiItem(data) {
+ return request({
+ url: 'DeviceManager/DeleteDeviceMaiItem',
+ method: 'post',
+ params: data
+ })
+}
+// 璁惧鐐规鏍囧噯鍒楄〃鏌ヨ
+export function DeviceCheckStandArdSearch(data) {
+ return request({
+ url: 'DeviceManager/DeviceCheckStandArdSearch',
+ method: 'get',
+ params: data
+ })
+}
+// 璁惧鐐规鏍囧噯鏂板銆佺紪杈戣幏鍙栨楠岄」鐩笅鎷夊垪琛�
+export function DeviceCheckItemSelect() {
+ return request({
+ url: 'DeviceManager/DeviceCheckItemSelect',
+ method: 'get'
+ })
+}
+// 璁惧鐐规鏍囧噯缂栬緫/鏌ョ湅鑾峰彇鏁版嵁
+export function ViewDeviceCheckStanedSearch(data) {
+ return request({
+ url: 'DeviceManager/ViewDeviceCheckStanedSearch',
+ method: 'post',
+ params: data
+ })
+}
+// 璁惧鐐规鏍囧噯鏂板缂栬緫
+export function AddUpdateDeviceCheckStandArd(data, opertype) {
+ return request({
+ url: 'DeviceManager/AddUpdateDeviceCheckStandArd?opertype=' + opertype,
+ method: 'post',
+ data
+ })
+}
+// 璁惧鐐规鏍囧噯鍒犻櫎
+export function DeleteDeviceCheckStaned(data) {
+ return request({
+ url: 'DeviceManager/DeleteDeviceCheckStaned',
+ method: 'post',
+ params: data
+ })
+}
+// 璁惧鐐规鏍囧噯鍏宠仈宸ヤ綔绔欐煡璇�
+export function DeviceCheckStanedAssociationEqp(data) {
+ return request({
+ url: 'DeviceManager/DeviceCheckStanedAssociationEqp',
+ method: 'get',
+ params: data
+ })
+}
+// 璁惧鐐规鏍囧噯鍏宠仈宸ヤ綔绔欐彁浜�
+export function SaveDeviceCheckStanedAssociationEqp(data, checkstand_code) {
+ return request({
+ url: 'DeviceManager/SaveDeviceCheckStanedAssociationEqp?checkstand_code=' + checkstand_code,
+ method: 'post',
+ data
+ })
+}
+// 璁惧淇濆吇鏍囧噯鍒楄〃鏌ヨ
+export function DeviceRepairStandArdSearch(data) {
+ return request({
+ url: 'DeviceManager/DeviceRepairStandArdSearch',
+ method: 'get',
+ params: data
+ })
+}
+// 璁惧淇濆吇鏍囧噯鏂板銆佺紪杈戣幏鍙栦繚鍏婚」鐩笅鎷夊垪琛�
+export function DeviceRepairItemSelect() {
+ return request({
+ url: 'DeviceManager/DeviceRepairItemSelect',
+ method: 'get'
+ })
+}
+// 璁惧淇濆吇鏍囧噯缂栬緫/鏌ョ湅鑾峰彇鏁版嵁
+export function ViewDeviceRepairStanedSearch(data) {
+ return request({
+ url: 'DeviceManager/ViewDeviceRepairStanedSearch',
+ method: 'post',
+ params: data
+ })
+}
+// 璁惧淇濆吇鏍囧噯鏂板缂栬緫
+export function AddUpdateDeviceRepairStandArd(data, opertype) {
+ return request({
+ url: 'DeviceManager/AddUpdateDeviceRepairStandArd?opertype=' + opertype,
+ method: 'post',
+ data
+ })
+}
+// 璁惧淇濆吇鏍囧噯鍒犻櫎
+export function DeleteDeviceRepairStaned(data) {
+ return request({
+ url: 'DeviceManager/DeleteDeviceRepairStaned',
+ method: 'post',
+ params: data
+ })
+}
+// 璁惧淇濆吇鏍囧噯鍏宠仈宸ヤ綔绔欐煡璇�
+export function DeviceRepairStanedAssociationEqp(data) {
+ return request({
+ url: 'DeviceManager/DeviceRepairStanedAssociationEqp',
+ method: 'get',
+ params: data
+ })
+}
+// 璁惧淇濆吇鏍囧噯鍏宠仈宸ヤ綔绔欐彁浜�
+export function SaveDeviceRepairStanedAssociationEqp(data, repairstand_code) {
+ return request({
+ url: 'DeviceManager/SaveDeviceRepairStanedAssociationEqp?repairstand_code=' + repairstand_code,
+ method: 'post',
+ data
+ })
+}
+
+// 璁惧淇濆吇璁板綍鏄庣粏鏌ヨ
+export function DeviceCheckTakeSearch(data) {
+ return request({
+ url: 'DeviceManager/DeviceCheckTakeSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 璁惧鐐规璁板綍鏌ヨ
+export function DeviceCheckSubTakeSearch(data) {
+ return request({
+ url: 'DeviceManager/DeviceCheckSubTakeSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 璁惧鐐规璁板綍瀵煎嚭
+export function DeviceCheckTakeOutExcel(data) {
+ return request({
+ url: 'DeviceManager/DeviceCheckTakeOutExcel',
+ method: 'get',
+ params: data
+ })
+}
+
+// 璁惧淇濆吇璁板綍鏌ヨ
+export function DeviceRepairTakeSearch(data) {
+ return request({
+ url: 'DeviceManager/DeviceRepairTakeSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 璁惧淇濆吇璁板綍鏄庣粏鏌ヨ
+export function DeviceRepairSubTakeSearch(data) {
+ return request({
+ url: 'DeviceManager/DeviceRepairSubTakeSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 璁惧淇濆吇璁板綍瀵煎嚭
+export function DeviceRepairTakeOutExcel(data) {
+ return request({
+ url: 'DeviceManager/DeviceRepairTakeOutExcel',
+ method: 'get',
+ params: data
+ })
+}
+// 璁惧缁翠慨璁板綍鏌ヨ
+export function DeviceUpdateSearch(data) {
+ return request({
+ url: 'DeviceManager/DeviceUpdateSearch',
+ method: 'get',
+ params: data
+ })
+}
+// 璁惧缁翠慨璁板綍鏄庣粏鏌ヨ
+export function DeviceUpdateSubSearch(data) {
+ return request({
+ url: 'DeviceManager/DeviceUpdateSubSearch',
+ method: 'get',
+ params: data
+ })
+}
+// 璁惧缁翠慨璁板綍涓嬭浇
+export function DeviceUpdateOutExcel(data) {
+ return request({
+ url: 'DeviceManager/DeviceUpdateOutExcel',
+ method: 'get',
+ params: data
+ })
+}
diff --git a/src/api/ErpSyncMes.js b/src/api/ErpSyncMes.js
index fe87b32..bb54a83 100644
--- a/src/api/ErpSyncMes.js
+++ b/src/api/ErpSyncMes.js
@@ -10,9 +10,37 @@
// }
// 鐗╂枡绠$悊锛氳閲忓崟浣嶅悓姝�
-export function SaveSearchUnit(data) {
+export function SaveSearchUnit() {
return request({
url: 'ErpSyncMes/SaveSearchUnit',
method: 'post'
})
}
+// 鐢熶骇绠$悊锛欵RP鐢熶骇璁㈠崟鍚屾
+export function SeaveSearchErpOrder() {
+ return request({
+ url: 'ErpSyncMes/SeaveSearchErpOrder',
+ method: 'post'
+ })
+}
+// 鐗╂枡绠$悊锛氬瓨璐ф。妗堝悓姝�
+export function SaveSearchMateriel_Info() {
+ return request({
+ url: 'ErpSyncMes/SaveSearchMateriel_Info',
+ method: 'post'
+ })
+}
+// 鍩虹璁剧疆锛氫粨搴撳悓姝�
+export function SaveSearchWareHouse() {
+ return request({
+ url: 'ErpSyncMes/SaveSearchWareHouse',
+ method: 'post'
+ })
+}
+// 鍩虹璁剧疆锛氬線鏉ュ崟浣嶅悓姝�
+export function SeaveSearchPartner() {
+ return request({
+ url: 'ErpSyncMes/SeaveSearchPartner',
+ method: 'post'
+ })
+}
diff --git a/src/api/Excel.js b/src/api/Excel.js
index 53e6af9..5ea8c1a 100644
--- a/src/api/Excel.js
+++ b/src/api/Excel.js
@@ -1,6 +1,15 @@
import request from '@/utils/request'
-// Excel瀵煎叆妯℃澘涓嬭浇
+// 鏌ヨexcel妯℃澘
+export function ExcelModelData(data) {
+ return request({
+ url: 'ImportExcel/ExcelModelData',
+ method: 'get',
+ params: data
+ })
+}
+
+// 涓嬭浇excel妯℃澘
export function DownLoadExcel(data) {
return request({
url: 'ImportExcel/DownLoadExcel',
@@ -9,29 +18,38 @@
})
}
-// Excel瀵煎叆鏂囦欢涓婁紶銆佹ā鏉块獙璇併�佹暟鎹噺銆侀獙璇�
+// Excel瀵煎叆鏁版嵁鎻愪氦銆佹ā鏉块獙璇�
export function ExcelModelCheck(data) {
return request({
url: 'ImportExcel/ExcelModelCheck',
method: 'post',
- params: data
+ data
})
}
-// Excel瀵煎叆鏁版嵁楠岃瘉
-export function ExcelCheckData(data) {
- return request({
- url: 'ImportExcel/ExcelCheckData',
- method: 'post',
- params: data
- })
-}
-
-// Excel瀵煎叆鏁版嵁
-export function ExcelImportSubmit(data) {
- return request({
- url: 'ImportExcel/ExcelImportSubmit',
- method: 'POST',
- params: data
- })
-}
+// Excel瀵煎叆鏂囦欢涓婁紶銆佹ā鏉块獙璇併�佹暟鎹噺銆侀獙璇�
+// export function ExcelModelCheck(data) {
+// return request({
+// url: 'ImportExcel/ExcelModelCheck',
+// method: 'post',
+// params: data
+// })
+// }
+//
+// // Excel瀵煎叆鏁版嵁楠岃瘉
+// export function ExcelCheckData(data) {
+// return request({
+// url: 'ImportExcel/ExcelCheckData',
+// method: 'post',
+// params: data
+// })
+// }
+//
+// // Excel瀵煎叆鏁版嵁
+// export function ExcelImportSubmit(data) {
+// return request({
+// url: 'ImportExcel/ExcelImportSubmit',
+// method: 'POST',
+// params: data
+// })
+// }
diff --git a/src/api/GeneralBasicData.js b/src/api/GeneralBasicData.js
index 2a93441..1b58b28 100644
--- a/src/api/GeneralBasicData.js
+++ b/src/api/GeneralBasicData.js
@@ -8,6 +8,14 @@
params: data
})
}
+// 缁勭粐鏋舵瀯鍩虹璧勬枡(鏃犲叕鍙�)
+export function PrentOrganizationNoCompany(data) {
+ return request({
+ url: 'GeneralBasicData/PrentOrganizationNoCompany',
+ method: 'get',
+ params: data
+ })
+}
// 鎸夐挳鍩虹璧勬枡
export function ButtonData() {
@@ -24,6 +32,7 @@
method: 'get'
})
}
+
// 宀椾綅
export function PostPermissions() {
return request({
@@ -31,6 +40,7 @@
method: 'get'
})
}
+
// 瑙掕壊
export function RolePermissions() {
return request({
@@ -38,6 +48,7 @@
method: 'get'
})
}
+
// 鐝粍
export function GroupsPermissions() {
return request({
@@ -45,6 +56,7 @@
method: 'get'
})
}
+
// 鍗曚綅淇℃伅鏌ヨ
export function UnitSerch(data) {
return request({
@@ -53,3 +65,101 @@
params: data
})
}
+
+// 浠撳簱
+export function WareHouse(data) {
+ return request({
+ url: 'GeneralBasicData/WareHouse',
+ method: 'get',
+ params: data
+ })
+}
+
+// 宸ュ簭鍩虹璧勬枡
+export function StepData(data) {
+ return request({
+ url: 'GeneralBasicData/StepData',
+ method: 'get',
+ params: data
+ })
+}
+
+// 浜哄憳鍩虹璧勬枡
+export function PersonPermissions(data) {
+ return request({
+ url: 'GeneralBasicData/PersonPermissions',
+ method: 'get',
+ params: data
+ })
+}
+
+// 鐝粍鏌ユ壘浜哄憳鍩虹璧勬枡
+export function GroupsPersonPermissions(data) {
+ return request({
+ url: 'GeneralBasicData/GroupsPersonPermissions',
+ method: 'get',
+ params: data
+ })
+}
+
+// 缂洪櫡瀹氫箟鍩虹璧勬枡
+export function DefectPermissions(data) {
+ return request({
+ url: 'GeneralBasicData/DefectPermissions',
+ method: 'get',
+ params: data
+ })
+}
+
+// 璁惧鍩虹璧勬枡
+export function EqpPermissions(data) {
+ return request({
+ url: 'GeneralBasicData/EqpPermissions',
+ method: 'get',
+ params: data
+ })
+}
+
+// 寰�鏉ュ崟浣嶅熀纭�璧勬枡
+export function CustomerPermissions(data) {
+ return request({
+ url: 'GeneralBasicData/CustomerPermissions',
+ method: 'get',
+ params: data
+ })
+}
+
+// 瀛樿揣鏍戝瀷鍩虹璧勬枡
+export function InventoryTreePermissions(data) {
+ return request({
+ url: 'GeneralBasicData/InventoryTreePermissions',
+ method: 'get',
+ params: data
+ })
+}
+
+// 妯″叿妫�楠岄」鐩笅鎷夊垪琛�
+export function MouldCheckItemSelect(data) {
+ return request({
+ url: 'GeneralBasicData/MouldCheckItemSelect',
+ method: 'get',
+ params: data
+ })
+}
+
+// 妯″叿淇濆吇椤圭洰涓嬫媺鍒楄〃
+export function MouldRepairItemSelect(data) {
+ return request({
+ url: 'GeneralBasicData/MouldRepairItemSelect',
+ method: 'get',
+ params: data
+ })
+}
+// 浠撳簱鏌ユ壘浠撲綅淇℃伅
+export function WareHouseSelectLocation(data) {
+ return request({
+ url: 'GeneralBasicData/WareHouseSelectLocation',
+ method: 'get',
+ params: data
+ })
+}
diff --git a/src/api/GridReport.js b/src/api/GridReport.js
new file mode 100644
index 0000000..081b7bb
--- /dev/null
+++ b/src/api/GridReport.js
@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+
+// MES宸ュ崟鎵撳嵃
+export function MesOrderPrintSearch(data) {
+ return request({
+ url: 'GridReport/MesOrderPrintSearch',
+ method: 'post',
+ data
+ })
+}
diff --git a/src/api/MouldManager.js b/src/api/MouldManager.js
new file mode 100644
index 0000000..7ad0dd8
--- /dev/null
+++ b/src/api/MouldManager.js
@@ -0,0 +1,334 @@
+import request from '@/utils/request'
+
+// 妯″叿娓呭崟鍒楄〃鏌ヨ
+export function MouldMangerSearch(data) {
+ return request({
+ url: 'MouldManager/MouldMangerSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 妯″叿娓呭崟鏂板缂栬緫
+export function AddUpdateMouldManger(data) {
+ return request({
+ url: 'MouldManager/AddUpdateMouldManger',
+ method: 'post',
+ data
+ })
+}
+
+// 妯″叿娓呭崟鍒犻櫎
+export function DeleteMouldManger(data) {
+ return request({
+ url: 'MouldManager/DeleteMouldManger',
+ method: 'post',
+ params: data
+ })
+}
+
+// 妯″叿鐐规椤瑰垪琛ㄦ煡璇�
+export function MouldCheckItemSearch(data) {
+ return request({
+ url: 'MouldManager/MouldCheckItemSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 妯″叿鐐规椤规柊澧炵紪杈�
+export function AddUpdateMouldCheckItem(data) {
+ return request({
+ url: 'MouldManager/AddUpdateMouldCheckItem',
+ method: 'post',
+ data
+ })
+}
+
+// 妯″叿鐐规椤瑰垹闄�
+export function DeleteMouldCheckItem(data) {
+ return request({
+ url: 'MouldManager/DeleteMouldCheckItem',
+ method: 'post',
+ params: data
+ })
+}
+
+// 妯″叿鐐规鏍囧噯鍒楄〃鏌ヨ
+export function DeviceCheckStandArdSearch(data) {
+ return request({
+ url: 'MouldManager/DeviceCheckStandArdSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 妯″叿鐐规鏍囧噯缂栬緫/鏌ョ湅鑾峰彇鏁版嵁
+export function ViewMouldCheckStanedSearch(data) {
+ return request({
+ url: 'MouldManager/ViewMouldCheckStanedSearch',
+ method: 'post',
+ params: data
+ })
+}
+
+// 妯″叿鐐规鏍囧噯鏂板缂栬緫
+export function AddUpdateMouldCheckStandArd(data, opertype) {
+ return request({
+ url: 'MouldManager/AddUpdateMouldCheckStandArd?opertype=' + opertype,
+ method: 'post',
+ data
+ })
+}
+
+// 妯″叿鐐规鏍囧噯鍒犻櫎
+export function DeleteMouldCheckStaned(data) {
+ return request({
+ url: 'MouldManager/DeleteMouldCheckStaned',
+ method: 'post',
+ params: data
+ })
+}
+
+// 妯″叿鐐规鏍囧噯鍏宠仈妯″叿鏌ヨ
+export function CheckStanedAssociationMould(data) {
+ return request({
+ url: 'MouldManager/CheckStanedAssociationMould',
+ method: 'get',
+ params: data
+ })
+}
+
+// 妯″叿鐐规鏍囧噯鍏宠仈妯″叿鎻愪氦
+export function SaveCheckStanedAssociationMould(data, checkstand_code) {
+ return request({
+ url: 'MouldManager/SaveCheckStanedAssociationMould?checkstand_code=' + checkstand_code,
+ method: 'post',
+ data
+ })
+}
+
+// 妯″叿淇濆吇椤瑰垪琛ㄦ煡璇�
+export function MouldMaiItemSearch(data) {
+ return request({
+ url: 'MouldManager/MouldMaiItemSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 妯″叿淇濆吇椤规柊澧炵紪杈�
+export function AddUpdateMouldMaiItem(data) {
+ return request({
+ url: 'MouldManager/AddUpdateMouldMaiItem',
+ method: 'post',
+ data
+ })
+}
+
+// 妯″叿淇濆吇椤瑰垹闄�
+export function DeleteMouldMaiItem(data) {
+ return request({
+ url: 'MouldManager/DeleteMouldMaiItem',
+ method: 'post',
+ params: data
+ })
+}
+
+// 妯″叿淇濆吇鏍囧噯鍒楄〃鏌ヨ
+export function MouldRepairStandArdSearch(data) {
+ return request({
+ url: 'MouldManager/MouldRepairStandArdSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 妯″叿淇濆吇鏍囧噯缂栬緫/鏌ョ湅鑾峰彇鏁版嵁
+export function ViewMouldRepairStanedSearch(data) {
+ return request({
+ url: 'MouldManager/ViewMouldRepairStanedSearch',
+ method: 'post',
+ params: data
+ })
+}
+
+// 妯″叿淇濆吇鏍囧噯鏂板缂栬緫
+export function AddUpdateMouldRepairStandArd(data, opertype) {
+ return request({
+ url: 'MouldManager/AddUpdateMouldRepairStandArd?opertype=' + opertype,
+ method: 'post',
+ data
+ })
+}
+
+// 妯″叿淇濆吇鏍囧噯鍒犻櫎
+export function DeleteMouldRepairStaned(data) {
+ return request({
+ url: 'MouldManager/DeleteMouldRepairStaned',
+ method: 'post',
+ params: data
+ })
+}
+
+// 妯″叿淇濆吇鏍囧噯鍏宠仈妯″叿鏌ヨ
+export function RepairStanedAssociationMould(data) {
+ return request({
+ url: 'MouldManager/RepairStanedAssociationMould',
+ method: 'get',
+ params: data
+ })
+}
+
+// 妯″叿淇濆吇鏍囧噯鍏宠仈妯″叿鎻愪氦
+export function SaveRepairStanedAssociationMould(data, repairstand_code) {
+ return request({
+ url: 'MouldManager/SaveRepairStanedAssociationMould?repairstand_code=' + repairstand_code,
+ method: 'post',
+ data
+ })
+}
+
+// 妯″叿鐐规璁板綍鏌ヨ
+export function MouldCheckTakeSearch(data) {
+ return request({
+ url: 'MouldManager/MouldCheckTakeSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 妯″叿鐐规璁板綍鏄庣粏鏌ヨ
+export function MouldCheckSubTakeSearch(data) {
+ return request({
+ url: 'MouldManager/MouldCheckSubTakeSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 妯″叿鐐规璁板綍瀵煎嚭
+export function MouldCheckTakeOutExcel(data) {
+ return request({
+ url: 'MouldManager/MouldCheckTakeOutExcel',
+ method: 'get',
+ params: data
+ })
+}
+
+// 妯″叿淇濆吇璁板綍鏌ヨ
+export function MouldRepairTakeSearch(data) {
+ return request({
+ url: 'MouldManager/MouldRepairTakeSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 妯″叿淇濆吇璁板綍鏄庣粏鏌ヨ
+export function MouldRepairSubTakeSearch(data) {
+ return request({
+ url: 'MouldManager/MouldRepairSubTakeSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 妯″叿淇濆吇璁板綍瀵煎嚭
+export function MouldRepairTakeOutExcel(data) {
+ return request({
+ url: 'MouldManager/MouldRepairTakeOutExcel',
+ method: 'get',
+ params: data
+ })
+}
+
+// 妯″叿缁翠慨璁板綍鏌ヨ
+export function MouldUpdateSearch(data) {
+ return request({
+ url: 'MouldManager/MouldUpdateSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 妯″叿缁翠慨璁板綍鏄庣粏鏌ヨ
+export function MouldUpdateSubSearch(data) {
+ return request({
+ url: 'MouldManager/MouldUpdateSubSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 妯″叿缁翠慨璁板綍瀵煎嚭
+export function MouldUpdateOutExcel(data) {
+ return request({
+ url: 'MouldManager/MouldUpdateOutExcel',
+ method: 'get',
+ params: data
+ })
+}
+
+// 妯″叿涓婁笅鏈鸿褰曟煡璇�
+export function MouldUpDownMachinesSearch(data) {
+ return request({
+ url: 'MouldManager/MouldUpDownMachinesSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 妯″叿涓婁笅鏈鸿瀵煎嚭
+export function MouldUpDownMachinesOutExcel(data) {
+ return request({
+ url: 'MouldManager/MouldUpDownMachinesOutExcel',
+ method: 'get',
+ params: data
+ })
+}
+
+// 妯″叿鍊熻繕璁板綍鏌ヨ
+export function MouldCirculateMachinesSearch(data) {
+ return request({
+ url: 'MouldManager/MouldCirculateMachinesSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 妯″叿鍊熻繕璁板綍瀵煎嚭
+export function MouldCirculateMachinesOutExcel(data) {
+ return request({
+ url: 'MouldManager/MouldCirculateMachinesOutExcel',
+ method: 'get',
+ params: data
+ })
+}
+
+// 妯″叿鍑哄叆搴撹褰曟煡璇�
+export function MouldInOutMachinesSearch(data) {
+ return request({
+ url: 'MouldManager/MouldInOutMachinesSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 妯″叿鍑哄叆搴撹褰曞鍑�
+export function MouldInOutMachinesOutExcel(data) {
+ return request({
+ url: 'MouldManager/MouldInOutMachinesOutExcel',
+ method: 'get',
+ params: data
+ })
+}
+
+// 妯″叿鍑哄叆搴撹褰曟煡璇�
+export function MoldResumeSearch(data) {
+ return request({
+ url: 'MouldManager/MoldResumeSearch',
+ method: 'get',
+ params: data
+ })
+}
diff --git a/src/api/ProductModel.js b/src/api/ProductModel.js
index 3935f3b..124f76d 100644
--- a/src/api/ProductModel.js
+++ b/src/api/ProductModel.js
@@ -105,3 +105,12 @@
params: data
})
}
+
+// 宸ュ崟浜у搧淇℃伅涓嬫媺妗嗘煡璇�
+export function PartSelect(data) {
+ return request({
+ url: 'ProductModel/PartSelect',
+ method: 'get',
+ params: data
+ })
+}
diff --git a/src/api/QualityManagement.js b/src/api/QualityManagement.js
new file mode 100644
index 0000000..48d5970
--- /dev/null
+++ b/src/api/QualityManagement.js
@@ -0,0 +1,171 @@
+import request from '@/utils/request'
+
+// 璐ㄩ噺绠$悊,缂洪櫡瀹氫箟鏌ヨ鍒楄〃
+export function DedectSearch(data) {
+ return request({
+ url: 'QualityManagement/DedectSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 璐ㄩ噺绠$悊锛岀己闄峰畾涔夋柊澧炪�佺紪杈戞彁浜�
+export function AddUpdateDedect(data) {
+ return request({
+ url: 'QualityManagement/AddUpdateDedect',
+ method: 'post',
+ data
+ })
+}
+
+// 璐ㄩ噺绠$悊锛岀己闄峰畾涔夊垹闄�
+export function DeleteDedect(data) {
+ return request({
+ url: 'QualityManagement/DeleteDedect',
+ method: 'post',
+ params: data
+ })
+}
+
+// 宸ュ簭妫�楠岄」鐩垪琛ㄦ煡璇�
+export function StepCheckItemSearch(data) {
+ return request({
+ url: 'QualityManagement/StepCheckItemSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 宸ュ簭妫�楠岄」鐩柊澧炪�佺紪杈戞彁浜�
+export function AddUpdateStepCheckItem(data) {
+ return request({
+ url: 'QualityManagement/AddUpdateStepCheckItem',
+ method: 'post',
+ data
+ })
+}
+
+// 宸ュ簭妫�楠岄」鐩垹闄�
+export function DeleteStepCheckItem(data) {
+ return request({
+ url: 'QualityManagement/DeleteStepCheckItem',
+ method: 'post',
+ params: data
+ })
+}
+
+// 宸ュ簭妫�楠屾爣鍑嗗垹闄�
+export function DeleteStepCheckStaned(data) {
+ return request({
+ url: 'QualityManagement/DeleteStepCheckStaned',
+ method: 'post',
+ params: data
+ })
+}
+
+// 鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾壂鐮佽幏鍙栦换鍔′俊鎭�
+export function MesOrderStepCheckSearch(data) {
+ return request({
+ url: 'QualityManagement/MesOrderStepCheckSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠岃幏鍙栨楠屾爣鍑嗕笅鎷夋鏁版嵁
+export function MesOrderStepCheckSelect() {
+ return request({
+ url: 'QualityManagement/MesOrderStepCheckSelect',
+ method: 'get'
+ })
+}
+
+// 鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾牴鎹楠屾爣鍑嗚幏鍙栨楠岄」鐩垪琛�
+export function MesOrderStepCheckItemList(data) {
+ return request({
+ url: 'QualityManagement/MesOrderStepCheckItemList',
+ method: 'get',
+ params: data
+ })
+}
+
+// 鐢熶骇寮�鎶ュ伐,宸ュ簭妫�楠屾彁浜や繚瀛�
+export function SaveMesOrderStepCheckItem(data) {
+ return request({
+ url: 'QualityManagement/SaveMesOrderStepCheckItem',
+ method: 'post',
+ data
+ })
+}
+
+// 宸ュ簭妫�楠岃褰曞垪琛ㄦ煡璇�
+export function StepCheckTableSearch(data) {
+ return request({
+ url: 'QualityManagement/StepCheckTableSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 宸ュ簭妫�楠岃褰曞垪琛ㄦ煡璇�
+export function StepCheckTableSubSearch(data) {
+ return request({
+ url: 'QualityManagement/StepCheckTableSubSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 宸ュ簭妫�楠岃褰曞鍑�
+export function StepCheckTableOutExcel(data) {
+ return request({
+ url: 'QualityManagement/StepCheckTableOutExcel',
+ method: 'get',
+ params: data
+ })
+}
+
+// 璐ㄦ鏂规鍒楄〃鏌ヨ
+export function QualityInspectionSearch(data) {
+ return request({
+ url: 'QualityManagement/QualityInspectionSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 璐ㄦ鏂规鏌ョ湅缂栬緫
+export function QualityInspectionSeeEdit(data) {
+ return request({
+ url: 'QualityManagement/QualityInspectionSeeEdit',
+ method: 'get',
+ params: data
+ })
+}
+
+// 璐ㄦ鏂规鏂板/缂栬緫鎻愪氦
+export function QualityInspectionAddEditSave(data) {
+ return request({
+ url: 'QualityManagement/QualityInspectionAddEditSave',
+ method: 'post',
+ data
+ })
+}
+
+// 璐ㄦ鏂规鍒犻櫎
+export function QualityInspectionDelete(data) {
+ return request({
+ url: 'QualityManagement/QualityInspectionDelete',
+ method: 'post',
+ params: data
+ })
+}
+
+// 宸ュ簭妫�楠屾爣鍑嗘柊澧炪�佺紪杈戣幏鍙栨楠岄」鐩笅鎷夊垪琛�
+export function QualityStepCheckItemSelect() {
+ return request({
+ url: 'QualityManagement/QualityStepCheckItemSelect',
+ method: 'get'
+ })
+}
+
diff --git a/src/api/ReportManager.js b/src/api/ReportManager.js
new file mode 100644
index 0000000..404fe9d
--- /dev/null
+++ b/src/api/ReportManager.js
@@ -0,0 +1,118 @@
+import request from '@/utils/request'
+
+// 鐢熶骇杩涘害鎶ヨ〃
+export function ProductionScheduleReportSearch(data) {
+ return request({
+ url: 'ReportManager/ProductionScheduleReportSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 鐢熶骇杩涘害鎶ヨ〃瀵煎嚭
+export function ProductionScheduleReportExcelSearch(data) {
+ return request({
+ url: 'ReportManager/ProductionScheduleReportExcelSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 鐝粍宸ヨ祫鎶ヨ〃璁板綍鏌ヨ
+export function GroupSalaryReportSearch(data) {
+ return request({
+ url: 'ReportManager/GroupSalaryReportSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 鐝粍宸ヨ祫鎶ヨ〃璁板綍鏌ヨ
+export function GroupSalaryReportExcelSearch(data) {
+ return request({
+ url: 'ReportManager/GroupSalaryReportExcelSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 鐝粍宸ヨ祫鎶ヨ〃璁板綍鏌ョ湅鎶ュ伐浜哄憳
+export function GroupSalaryReportSearchUser(data) {
+ return request({
+ url: 'ReportManager/GroupSalaryReportSearchUser',
+ method: 'get',
+ params: data
+ })
+}
+
+// 浜哄憳宸ヨ祫鏄庣粏鎶ヨ〃
+export function PeopleSalaryReportSearch(data) {
+ return request({
+ url: 'ReportManager/PeopleSalaryReportSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 浜哄憳宸ヨ祫鏄庣粏鎶ヨ〃瀵煎嚭
+export function PeopleSalaryReportExcelSearch(data) {
+ return request({
+ url: 'ReportManager/PeopleSalaryReportExcelSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 濮斿鎶ヨ〃璁板綍鏌ヨ
+export function OutSourceReportSearch(data) {
+ return request({
+ url: 'ReportManager/OutSourceReportSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 濮斿鎶ヨ〃璁板綍瀵煎嚭
+export function OutSourceReportExcelSearch(data) {
+ return request({
+ url: 'ReportManager/OutSourceReportExcelSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 涓嶈壇鏄庣粏鎶ヨ〃
+export function DefectDetailsReportSearch(data) {
+ return request({
+ url: 'ReportManager/DefectDetailsReportSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 涓嶈壇鏄庣粏鎶ヨ〃瀵煎嚭
+export function DefectDetailsReportExcelSearch(data) {
+ return request({
+ url: 'ReportManager/DefectDetailsReportExcelSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 缁翠慨鏄庣粏鎶ヨ〃
+export function MaintenanceDetailsReportSearch(data) {
+ return request({
+ url: 'ReportManager/MaintenanceDetailsReportSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 缁翠慨鏄庣粏鎶ヨ〃瀵煎嚭
+export function MaintenanceDetailsReportExcelSearch(data) {
+ return request({
+ url: 'ReportManager/MaintenanceDetailsReportExcelSearch',
+ method: 'get',
+ params: data
+ })
+}
diff --git a/src/api/WorkOrder.js b/src/api/WorkOrder.js
new file mode 100644
index 0000000..36c1a99
--- /dev/null
+++ b/src/api/WorkOrder.js
@@ -0,0 +1,258 @@
+import request from '@/utils/request'
+
+// ERP璁㈠崟鏌ヨ
+export function ErpOrderSearch(data) {
+ return request({
+ url: 'WorkOrder/ErpOrderSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// ERP璁㈠崟涓嬭揪
+export function MarkSaveErpOrder(data) {
+ return request({
+ url: 'WorkOrder/MarkSaveErpOrder',
+ method: 'post',
+ data
+ })
+}
+
+export function MarkBatchSaveErpOrder(data) {
+ return request({
+ url: 'WorkOrder/MarkBatchSaveErpOrder',
+ method: 'post',
+ data
+ })
+}
+
+export function MesOrderNewStepContent(data) {
+ return request({
+ url: 'WorkOrder/MesOrderNewStepContent',
+ method: 'post',
+ params: data
+ })
+}
+
+// ERP璁㈠崟鍏抽棴
+export function ClosedErpOrder(data) {
+ return request({
+ url: 'WorkOrder/ClosedErpOrder',
+ method: 'post',
+ params: data
+ })
+}
+
+// ERP璁㈠崟鍒犻櫎
+export function DeleteErpOrder(data) {
+ return request({
+ url: 'WorkOrder/DeleteErpOrder',
+ method: 'post',
+ params: data
+ })
+}
+
+// MES宸ュ崟鏌ヨ
+export function MesOrderSearch(data) {
+ return request({
+ url: 'WorkOrder/MesOrderSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// MES鎶ュ簾琛ュ崟宸ュ崟鏌ヨ
+export function MesBadOrderSearch(data) {
+ return request({
+ url: 'WorkOrder/MesBadOrderSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// MES宸ュ崟鏂板銆佽幏鍙栧伐鍗曞彿
+export function AddMesOrderCodeSearch(data) {
+ return request({
+ url: 'WorkOrder/AddMesOrderCodeSearch',
+ method: 'post',
+ params: data
+ })
+}
+
+// MES宸ュ崟鍒犻櫎
+export function DeleteMesOrder(data) {
+ return request({
+ url: 'WorkOrder/DeleteMesOrder',
+ method: 'post',
+ params: data
+ })
+}
+
+// 淇敼鍓嶈幏鍙�
+export function UpdateMesOrderStepSearch(data) {
+ return request({
+ url: 'WorkOrder/UpdateMesOrderStepSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 宸ュ崟娲惧彂
+export function MesOrderDistribution(data) {
+ return request({
+ url: 'WorkOrder/MesOrderDistribution',
+ method: 'post',
+ data
+ })
+}
+
+// MES宸ュ崟鏂板銆佺紪杈戞彁浜�
+export function AddUpdateMesOrder(data, OperType) {
+ return request({
+ url: 'WorkOrder/AddUpdateMesOrder?OperType=' + OperType,
+ method: 'post',
+ data
+ })
+}
+
+// MES宸ュ崟鍏抽棴鍒楄〃鏌ヨ
+export function MesOrderClosedSearch(data) {
+ return request({
+ url: 'WorkOrder/MesOrderClosedSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// MES宸ュ崟鍏抽棴鎻愪氦
+export function MesOrderBitchClosedSeave(data) {
+ return request({
+ url: 'WorkOrder/MesOrderBitchClosedSeave',
+ method: 'post',
+ data
+ })
+}
+
+// 鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(鑷埗)
+export function MesOrderStepSearch(data) {
+ return request({
+ url: 'WorkOrder/MesOrderStepSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(澶栧崗)
+export function MesOrderWxStepSearch(data) {
+ return request({
+ url: 'WorkOrder/MesOrderWxStepSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(涓嶈壇)
+export function MesOrderNgStepSearch(data) {
+ return request({
+ url: 'WorkOrder/MesOrderNgStepSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(涓嶈壇鏄庣粏)
+export function MesOrderNgSubStepSearch(data) {
+ return request({
+ url: 'WorkOrder/MesOrderNgSubStepSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 鐢熶骇寮�鎶ュ伐锛氭姤宸�/澶栧崗(鍙戞枡/鏀舵枡)鏃舵潯浠跺垽鏂強鏁版嵁杩斿洖鎺ュ彛
+export function MesOrderStepStart(data) {
+ return request({
+ url: 'WorkOrder/MesOrderStepStart',
+ method: 'get',
+ params: data
+ })
+}
+
+// 鐢熶骇寮�鎶ュ伐,鎶ュ伐鎻愪氦
+export function SavaMesOrderStepReport(data) {
+ return request({
+ url: 'WorkOrder/SavaMesOrderStepReport',
+ method: 'post',
+ data
+ })
+}
+
+// 鐢熶骇寮�鎶ュ伐,鍙戞枡鎻愪氦
+export function SavaMesOrderStepOut(data) {
+ return request({
+ url: 'WorkOrder/SavaMesOrderStepOut',
+ method: 'post',
+ data
+ })
+}
+
+// 鐢熶骇寮�鎶ュ伐,鏀舵枡鎻愪氦
+export function SavaMesOrderStepIn(data) {
+ return request({
+ url: 'WorkOrder/SavaMesOrderStepIn',
+ method: 'post',
+ data
+ })
+}
+
+// 涓嶈壇澶勭悊,鎻愪氦
+export function EditOrderNgStepSeave(data) {
+ return request({
+ url: 'WorkOrder/EditOrderNgStepSeave',
+ method: 'post',
+ data
+ })
+}
+
+// 鐢熶骇鎵ц,鎶ュ伐璋冩暣鍒楄〃鏁版嵁鏌ヨ鎺ュ彛
+export function MesOrderStepVerifySearch(data) {
+ return request({
+ url: 'WorkOrder/MesOrderStepVerifySearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 鐢熶骇鎵ц,鎶ュ伐璋冩暣鑾峰彇閫夊畾鎶ュ伐璁板綍鐨勪笉鑹暟鎹�
+export function MesOrderStepModelSearch(data) {
+ return request({
+ url: 'WorkOrder/MesOrderStepModelSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 鐢熶骇鎵ц,鎶ュ伐璋冩暣鏁版嵁鎻愪氦
+export function MesOrderStepUpdateSeave(data) {
+ return request({
+ url: 'WorkOrder/MesOrderStepUpdateSeave',
+ method: 'post',
+ data
+ })
+}
+
+// 鐢熶骇鎵ц,鎶ュ伐瀹℃牳鍒楄〃鏁版嵁鏌ヨ鎺ュ彛
+export function MesOrderStepReportVerifySearch(data) {
+ return request({
+ url: 'WorkOrder/MesOrderStepReportVerifySearch',
+ method: 'get',
+ params: data
+ })
+}// 鐢熶骇鎵ц,鎶ュ伐瀹℃牳鍒楄〃鏁版嵁鏌ヨ鎺ュ彛
+export function MesOrderStepReportVerifySeave(data) {
+ return request({
+ url: 'WorkOrder/MesOrderStepReportVerifySeave',
+ method: 'post',
+ data
+ })
+}
diff --git a/src/api/basicSettings.js b/src/api/basicSettings.js
index 989ceaf..2fe6cf9 100644
--- a/src/api/basicSettings.js
+++ b/src/api/basicSettings.js
@@ -256,6 +256,96 @@
})
}
+// 浠撳簱淇℃伅鍒楄〃
+export function TSecStckData(data) {
+ return request({
+ url: 'BasicSetting/TSecStckData',
+ method: 'get',
+ params: data
+ })
+}
+
+// 浠撳簱鏂板/缂栬緫淇濆瓨
+export function TSecStckAddUpdate(data) {
+ return request({
+ url: 'BasicSetting/TSecStckAddUpdate',
+ method: 'post',
+ data
+ })
+}
+
+// 浠撳簱鍒犻櫎
+export function TSecStckDelete(data) {
+ return request({
+ url: 'BasicSetting/TSecStckDelete',
+ method: 'post',
+ params: data
+ })
+}
+
+// 璐т綅鏍戝瀷淇℃伅
+export function TSecLocaTree(data) {
+ return request({
+ url: 'BasicSetting/TSecLocaTree',
+ method: 'get',
+ params: data
+ })
+}
+
+// 璐т綅淇℃伅鍒楄〃
+export function TSecLocaData(data) {
+ return request({
+ url: 'BasicSetting/TSecLocaData',
+ method: 'get',
+ params: data
+ })
+}
+
+// 璐т綅淇℃伅鏂板/缂栬緫淇濆瓨
+export function TSecLocaAddUpdate(data) {
+ return request({
+ url: 'BasicSetting/TSecLocaAddUpdate',
+ method: 'post',
+ data
+ })
+}
+
+// 璐т綅淇℃伅鍒犻櫎
+export function TSecLocaDelete(data) {
+ return request({
+ url: 'BasicSetting/TSecLocaDelete',
+ method: 'post',
+ params: data
+ })
+}
+
+// 宸ュ簭鏌ヨ
+export function StepSearch(data) {
+ return request({
+ url: 'BasicSetting/StepSearch',
+ method: 'get',
+ params: data
+ })
+}
+
+// 宸ュ簭鏂板缂栬緫
+export function AddUpdateStep(data) {
+ return request({
+ url: 'BasicSetting/AddUpdateStep',
+ method: 'post',
+ data
+ })
+}
+
+// 宸ュ簭鍒犻櫎
+export function DeleteStep(data) {
+ return request({
+ url: 'BasicSetting/DeleteStep',
+ method: 'post',
+ params: data
+ })
+}
+
// 瀹夌伅绯荤粺/鑷畾涔夊畨鐏懠鍙被鍨嬫煡璇�
export function AnDengTypeSearch() {
return request({
diff --git a/src/api/kanbanManager.js b/src/api/kanbanManager.js
index f55828e..33786f3 100644
--- a/src/api/kanbanManager.js
+++ b/src/api/kanbanManager.js
@@ -1,124 +1,55 @@
import request from '@/utils/request'
-// 澶у矝杞﹂棿缁煎悎鐪嬫澘,鑾峰彇鐢熶骇杞﹂棿
-export function ShopSearch() {
+// 杞﹂棿鐪嬫澘,涓婄敓浜т俊鎭�
+export function WorkShopProduceTopData(data) {
return request({
- url: 'KanBanManagerent/ShopSearch',
- method: 'get'
- })
-}
-// 澶у矝杞﹂棿缁煎悎鐪嬫澘,宸︿笂浜х嚎鍔犲伐浠诲姟鎺ュ彛
-export function LineSearchTopLeftData(data) {
- return request({
- url: 'KanBanManagerent/LineSearchTopLeftData',
- method: 'post',
- params: data
- })
-}
-
-// 澶у矝杞﹂棿缁煎悎鐪嬫澘,鐢熶骇杞﹂棿鏌ユ壘浜х嚎鎺ュ彛
-export function ShopSearchLine(data) {
- return request({
- url: 'KanBanManagerent/ShopSearchLine',
+ url: 'KanBanManagerent/WorkShopProduceTopData',
method: 'get',
params: data
})
}
-// // 澶у矝杞﹂棿缁煎悎鐪嬫澘,宸︿笂浜х嚎鍔犲伐浠诲姟鎺ュ彛
-// export function LineSearchTopLeftData(data) {
-// return request({
-// url: 'KanBanManagerent/LineSearchTopLeftData',
-// method: 'post',
-// data
-// })
-// }
-
-// 澶у矝杞﹂棿缁煎悎鐪嬫澘,宸︿笅鍒楄〃鎺ュ彛
-export function LineSearchBottomLeftData(data) {
+// 杞﹂棿鐪嬫澘,涓嬪乏杩戜竴鍛ㄤ笉鑹秼鍔�
+export function WorkShopProduceBottomLeftData(data) {
return request({
- url: 'KanBanManagerent/LineSearchBottomLeftData',
+ url: 'KanBanManagerent/WorkShopProduceBottomLeftData',
method: 'get',
params: data
})
}
-// 澶у矝杞﹂棿缁煎悎鐪嬫澘,鍙充笂top鎺掕鎺ュ彛
-export function LineSearchTopRightData(data) {
+// 杞﹂棿鐪嬫澘,涓嬪彸杩戜竴鏈堜笉鑹粺璁�
+export function WorkShopProduceBottomRightData(data) {
return request({
- url: 'KanBanManagerent/LineSearchTopRightData',
+ url: 'KanBanManagerent/WorkShopProduceBottomRightData',
method: 'get',
params: data
})
}
-// 澶у矝杞﹂棿缁煎悎鐪嬫澘,鍙充笅top鎺掕鎺ュ彛
-export function LineSearchBottomRightData(data) {
+// 杞﹂棿缁煎悎鐪嬫澘,宸︿笂鐢熶骇璁㈠崟
+export function WorkShopCompreLeftTop(data) {
return request({
- url: 'KanBanManagerent/LineSearchBottomRightData',
+ url: 'KanBanManagerent/WorkShopCompreLeftTop',
method: 'get',
params: data
})
}
-// 閲囪喘璁㈠崟璺熻釜绠$悊鐪嬫澘,宸︿笂鏈湀閲囪喘璁㈠崟鏁般�佹湰鏈堥噰璐繘璐у崟鏁般�佹湰鏈堥噰璐叆搴撳崟鏁�
-export function PurchaseLeftTop() {
+// 杞﹂棿缁煎悎鐪嬫澘,鍙充笂閿�鍞鍗�
+export function WorkShopCompreRightTop(data) {
return request({
- url: 'KanBanManagerent/PurchaseLeftTop',
- method: 'get'
+ url: 'KanBanManagerent/WorkShopCompreRightTop',
+ method: 'get',
+ params: data
})
}
-// 閲囪喘璁㈠崟璺熻釜绠$悊鐪嬫澘,宸︿笅閲囪喘璁㈠崟璺熻釜鍒楄〃
-export function PurchaseLeftBottom() {
+// 杞﹂棿缁煎悎鐪嬫澘,鍙充笅搴撳瓨
+export function WorkShopCompreRightBottom(data) {
return request({
- url: 'KanBanManagerent/PurchaseLeftBottom',
- method: 'get'
- })
-}
-
-// 閲囪喘璁㈠崟璺熻釜绠$悊鐪嬫澘,鍙充晶Top
-export function PurchaseRight() {
- return request({
- url: 'KanBanManagerent/PurchaseRight',
- method: 'get'
- })
-}
-
-// 澶у矝浠撳簱鐪嬫澘,宸︿笂浜у搧寰呭叆搴撳垪琛�
-export function WareHouseTopLeftData() {
- return request({
- url: 'KanBanManagerent/WareHouseTopLeftData',
- method: 'get'
- })
-}
-
-// 澶у矝浠撳簱鐪嬫澘,宸︿笅浜у搧寰呭叆搴撳垪琛�
-export function WareHouseTopBottomData() {
- return request({
- url: 'KanBanManagerent/WareHouseTopBottomData',
- method: 'get'
- })
-}
-// 澶у矝浠撳簱鐪嬫澘,鍙充笂鎴愬搧搴撱�佸崐鎴愬搧搴搕op5搴撳瓨鎺掕
-export function WareHouseRightTopData() {
- return request({
- url: 'KanBanManagerent/WareHouseRightTopData',
- method: 'get'
- })
-}
-// 澶у矝浠撳簱鐪嬫澘,鍙充笅鍘熸枡搴撳簱top5搴撳瓨鎺掕
-export function WareHouseRightBottomData() {
- return request({
- url: 'KanBanManagerent/WareHouseRightBottomData',
- method: 'get'
- })
-}
-// 杞﹂棿鐪嬫澘鍏憡
-export function WkspReportNotice(data) {
- return request({
- url: 'KanBanManagerent/WkspReportNotice',
- method: 'post',
+ url: 'KanBanManagerent/WorkShopCompreRightBottom',
+ method: 'get',
params: data
})
}
diff --git a/src/assets/images/background001.jpg b/src/assets/images/background001.jpg
new file mode 100644
index 0000000..0b020d1
--- /dev/null
+++ b/src/assets/images/background001.jpg
Binary files differ
diff --git a/src/assets/images/box02.png b/src/assets/images/box02.png
new file mode 100644
index 0000000..c2ef325
--- /dev/null
+++ b/src/assets/images/box02.png
Binary files differ
diff --git a/src/components/DragSelect/index.vue b/src/components/DragSelect/index.vue
new file mode 100644
index 0000000..5454770
--- /dev/null
+++ b/src/components/DragSelect/index.vue
@@ -0,0 +1,65 @@
+<template>
+ <el-select ref="dragSelect" v-model="selectVal" v-bind="$attrs" class="drag-select" multiple filterable v-on="$listeners">
+ <slot />
+ </el-select>
+</template>
+
+<script>
+import Sortable from 'sortablejs'
+
+export default {
+ name: 'DragSelect',
+ props: {
+ value: {
+ type: Array,
+ required: true
+ }
+ },
+ computed: {
+ selectVal: {
+ get() {
+ return [...this.value]
+ },
+ set(val) {
+ this.$emit('input', [...val])
+ }
+ }
+ },
+ mounted() {
+ this.setSort()
+ },
+ methods: {
+ setSort() {
+ const el = this.$refs.dragSelect.$el.querySelectorAll('.el-select__tags > span')[0]
+ this.sortable = Sortable.create(el, {
+ ghostClass: 'sortable-ghost', // Class name for the drop placeholder,
+ setData: function(dataTransfer) {
+ dataTransfer.setData('Text', '')
+ // to avoid Firefox bug
+ // Detail see : https://github.com/RubaXa/Sortable/issues/1012
+ },
+ onEnd: evt => {
+ const targetRow = this.value.splice(evt.oldIndex, 1)[0]
+ this.value.splice(evt.newIndex, 0, targetRow)
+ }
+ })
+ }
+ }
+}
+</script>
+
+<style lang="scss" scoped>
+.drag-select {
+ ::v-deep {
+ .sortable-ghost {
+ opacity: .8;
+ color: #fff !important;
+ background: #42b983 !important;
+ }
+
+ .el-tag {
+ cursor: pointer;
+ }
+ }
+}
+</style>
diff --git a/src/components/UploadExcel/index.vue b/src/components/UploadExcel/index.vue
new file mode 100644
index 0000000..a9f2292
--- /dev/null
+++ b/src/components/UploadExcel/index.vue
@@ -0,0 +1,162 @@
+<template>
+ <div>
+ <input
+ ref="excel-upload-input"
+ class="excel-upload-input"
+ type="file"
+ accept=".xlsx, .xls"
+ @change="handleClick"
+ >
+ <el-button
+ :loading="loading"
+ style="margin-left:16px;"
+ :disabled="disabled"
+ type="primary"
+ icon="el-icon-upload2"
+ waves
+ @click="handleUpload"
+ >
+ 鏂囦欢涓婁紶
+ </el-button>
+ </div>
+</template>
+
+<script>
+import XLSX from 'xlsx'
+import waves from '@/directive/waves'
+
+export default {
+ directives: { waves },
+ props: {
+ disabled: Boolean,
+ beforeUpload: Function, // eslint-disable-line
+ onSuccess: Function// eslint-disable-line
+ },
+ data() {
+ return {
+ loading: false,
+ excelData: {
+ header: null,
+ results: null,
+ sheetName: null
+ }
+ }
+ },
+ methods: {
+ generateData({ header, results }) {
+ this.excelData.header = header // 鐢ㄥ仛el-table琛ㄥご
+ this.excelData.results = results // 鐢ㄥ仛el-table琛ㄤ綋
+ this.onSuccess && this.onSuccess(this.excelData)
+
+ // 鏁扮粍瀵硅薄鏇存崲閿悕
+ // const aaa = JSON.parse(JSON.stringify(results))
+ // const bb = aaa.map(({
+ // 搴忓彿, 濮撳悕
+ // }) => ({
+ // index: 搴忓彿,
+ // name: 濮撳悕
+ // }))
+ // console.log(bb, 321)
+ },
+ handleUpload() {
+ this.$refs['excel-upload-input'].click()
+ },
+ handleClick(e) {
+ const files = e.target.files
+ const rawFile = files[0] // only use files[0]
+ if (!rawFile) return
+ this.upload(rawFile)
+ },
+ upload(rawFile) {
+ this.$refs['excel-upload-input'].value = null // fix can't select the same excel
+ if (!this.beforeUpload) {
+ this.readerData(rawFile)
+ return
+ }
+ const before = this.beforeUpload(rawFile)
+ if (before) { // 鎵ц浜�
+ this.readerData(rawFile)
+ }
+ },
+ readerData(rawFile) {
+ this.loading = true
+ return new Promise((resolve, reject) => {
+ const reader = new FileReader()
+ reader.onload = e => {
+ const data = e.target.result
+ const workbook = XLSX.read(data, { type: 'array', cellDates: true })
+ let worksheet = []
+ const header = []
+ const results = []
+ workbook.SheetNames.forEach((item, index) => {
+ worksheet = workbook.Sheets[item]
+ header.push(this.getHeaderRow(worksheet))
+ results.push(XLSX.utils.sheet_to_json(worksheet, { defval: null, raw: false }))
+ })
+ this.excelData.sheetName = workbook.SheetNames
+ // console.log(header)
+ // console.log(results)
+ // const firstSheetName = workbook.SheetNames[0]
+ // const worksheet = workbook.Sheets[firstSheetName]
+ // const header = this.getHeaderRow(worksheet)
+ // const results = XLSX.utils.sheet_to_json(worksheet)
+ this.generateData({ header, results })
+ this.loading = false
+ resolve()
+ }
+ reader.readAsArrayBuffer(rawFile)
+ })
+ },
+ getHeaderRow(sheet) {
+ const headers = []
+ const range = XLSX.utils.decode_range(sheet['!ref'])
+ let C
+ const R = range.s.r
+ /* start in the first row */
+ for (C = range.s.c; C <= range.e.c; ++C) { /* walk every column in the range */
+ const cell = sheet[XLSX.utils.encode_cell({ c: C, r: R })]
+ /* find the cell in the first row */
+ let hdr = 'UNKNOWN ' + C // <-- replace with your desired default
+ if (cell && cell.t) hdr = XLSX.utils.format_cell(cell)
+ headers.push(hdr)
+ }
+ return headers
+ },
+ isExcel(file) {
+ return /\.(xlsx|xls|csv)$/.test(file.name)
+ }
+ }
+}
+</script>
+
+<style scoped>
+.excel-upload-input {
+ display: none;
+ z-index: -9999;
+}
+
+.drop {
+ border: 2px dashed #bbb;
+ width: 600px;
+ height: 160px;
+ line-height: 160px;
+ margin: 0 auto;
+ font-size: 24px;
+ border-radius: 5px;
+ text-align: center;
+ color: #bbb;
+ position: relative;
+}
+
+</style>
+
+<style>
+
+/*.has-gutter{*/
+/* color: #34bfa3 !important;*/
+/*}*/
+
+/*.is-leaf{*/
+/* background-color: #34bfa3 !important;*/
+/*}*/
+</style>
diff --git a/src/components/VcronTab/components/Crontab.vue b/src/components/VcronTab/components/Crontab.vue
index 8aedca6..05cb8c1 100644
--- a/src/components/VcronTab/components/Crontab.vue
+++ b/src/components/VcronTab/components/Crontab.vue
@@ -99,8 +99,8 @@
<CrontabResult :ex="contabValueString" />
<div class="pop_btn">
- <el-button size="small" type="warning" @click="clearCron">閲嶇疆</el-button>
<el-button size="small" type="primary" @click="submitFill">纭畾</el-button>
+ <el-button size="small" type="warning" @click="clearCron">閲嶇疆</el-button>
<el-button size="small" @click="hidePopup">鍙栨秷</el-button>
</div>
</div>
diff --git a/src/icons/svg/bbgl.svg b/src/icons/svg/bbgl.svg
index 24f4103..5ff15de 100644
--- a/src/icons/svg/bbgl.svg
+++ b/src/icons/svg/bbgl.svg
@@ -11,8 +11,8 @@
</defs>
<path
d="M500.92 308.92L386 404.71l-98-98-150.63 150.66 45.25 45.26L288 397.25l94 94 164.36-136.89L608 416V256H448zM640 64H128a64.19 64.19 0 0 0-64 64v768a64.19 64.19 0 0 0 64 64h444a289.06 289.06 0 0 1-82.6-64H128.11l-0.11-0.11V128.11l0.11-0.11h511.78l0.11 0.11v295a288.9 288.9 0 0 1 64-7.11V128a64.19 64.19 0 0 0-64-64zM446 576H160v64h263.15A285.9 285.9 0 0 1 446 576zM160 768h263.15a288.91 288.91 0 0 1-7.15-64H160z"
- p-id="2463" fill="#157b7e"></path>
+ p-id="2463" fill="#00A79D"></path>
<path
d="M704 448c-141.38 0-256 114.62-256 256s114.62 256 256 256 256-114.62 256-256-114.62-256-256-256z m181 285.63L843.15 742a13.77 13.77 0 0 0-10.23 8.84q-2.08 5.72-4.64 11.2a13.78 13.78 0 0 0 1 13.49L852.92 811a13.71 13.71 0 0 1-1.71 17.3l-22.89 22.89a13.71 13.71 0 0 1-17.3 1.71l-35.49-23.66a13.78 13.78 0 0 0-13.49-1q-5.47 2.56-11.2 4.64a13.77 13.77 0 0 0-8.84 10.27L733.63 885a13.71 13.71 0 0 1-13.45 11h-32.37a13.71 13.71 0 0 1-13.45-11L666 843.15a13.77 13.77 0 0 0-8.84-10.23q-5.72-2.08-11.2-4.64a13.78 13.78 0 0 0-13.49 1L597 852.92a13.71 13.71 0 0 1-17.3-1.71l-22.89-22.89a13.71 13.71 0 0 1-1.71-17.3l23.66-35.49a13.78 13.78 0 0 0 1-13.49q-2.56-5.47-4.64-11.2a13.77 13.77 0 0 0-10.27-8.84L523 733.63a13.71 13.71 0 0 1-11-13.45v-32.37a13.71 13.71 0 0 1 11-13.45l41.85-8.36a13.77 13.77 0 0 0 10.23-8.84q2.08-5.72 4.64-11.2a13.78 13.78 0 0 0-1-13.49L555.08 597a13.71 13.71 0 0 1 1.71-17.3l22.89-22.89a13.71 13.71 0 0 1 17.3-1.71l35.49 23.66a13.78 13.78 0 0 0 13.49 1q5.47-2.56 11.2-4.64a13.77 13.77 0 0 0 8.84-10.27l8.37-41.85a13.71 13.71 0 0 1 13.45-11h32.37a13.71 13.71 0 0 1 13.45 11l8.36 41.85a13.77 13.77 0 0 0 8.84 10.23q5.72 2.08 11.2 4.64a13.78 13.78 0 0 0 13.49-1L811 555.08a13.71 13.71 0 0 1 17.3 1.71l22.89 22.89a13.71 13.71 0 0 1 1.71 17.3l-23.66 35.49a13.78 13.78 0 0 0-1 13.49q2.56 5.47 4.64 11.2a13.77 13.77 0 0 0 10.27 8.84l41.85 8.37a13.71 13.71 0 0 1 11 13.45v32.37a13.71 13.71 0 0 1-11 13.44zM704 621.71a82.29 82.29 0 1 0 58.19 24.1 81.75 81.75 0 0 0-58.19-24.1z"
- p-id="2464" fill="#157b7e"></path>
+ p-id="2464" fill="#00A79D"></path>
</svg>
diff --git a/src/icons/svg/blcs.svg b/src/icons/svg/blcs.svg
new file mode 100644
index 0000000..b29e8d6
--- /dev/null
+++ b/src/icons/svg/blcs.svg
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1694480164779" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5197" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M517.2 878l-69.7-38.1-30.6-16.7-30.6 16.7-86.9 47.3-86.7-47.3-30.6-16.7-30.6 16.7-22.6 12.3V160c0-17.7 14.3-32 32-32h511.6c17.7 0 32 14.3 32 32v381c0 17.7 14.3 32 32 32s32-14.3 32-32V128c0-35.3-26.2-64-58.6-64H123.4C91 64 64.7 92.7 64.7 128v832L182 896l117.3 64 117.5-64 69.7 38.1c21.3 11.7 47.3-3.8 47.3-28.1 0-11.7-6.4-22.4-16.6-28z" p-id="5198" fill="#00ffff"></path><path d="M639.5 926.9c0 17.7 14.3 32 32 32s32-14.3 32-32V672.1c0-17.7-14.3-32-32-32s-32 14.3-32 32v254.8zM799.3 736.1c-17.7 0-32 14.3-32 32v158.8c0 17.7 14.3 32 32 32s32-14.3 32-32V768.1c0-17.7-14.4-32-32-32zM927.3 799.1c-17.7 0-32 14.3-32 32v95.8c0 17.7 14.3 32 32 32s32-14.3 32-32v-95.8c0-17.7-14.4-32-32-32z" p-id="5199" fill="#00ffff" data-spm-anchor-id="a313x.search_index.0.i3.d8a93a81BG5nd3" class="selected"></path><path d="M544.6 572h-256c-17.7 0-32 14.3-32 32s14.3 32 32 32h256c17.7 0 32-14.3 32-32s-14.3-32-32-32zM303.4 493.1c12.5 12.5 32.8 12.5 45.3 0l67.9-67.9 67.9 67.9c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-68-67.8 67.9-67.9c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-67.9 67.9-67.9-67.9c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l67.9 67.9-67.9 67.9c-12.3 12.5-12.3 32.7 0.1 45.2z" p-id="5200" fill="#00ffff"></path></svg>
\ No newline at end of file
diff --git a/src/icons/svg/ckkc.svg b/src/icons/svg/ckkc.svg
new file mode 100644
index 0000000..79d8410
--- /dev/null
+++ b/src/icons/svg/ckkc.svg
@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1694592951293" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7561" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M640 725.333333v-128h128v128h85.333333v128h-128v-128h-42.666666v128h-128v-128h85.333333z m213.333333-128h-85.333333v-51.2l-256-256-256 256V768h256v85.333333H170.666667v-298.666666H128l384-384 384 384h-42.666667v42.666666z" fill="#00ffff" p-id="7562"></path></svg>
\ No newline at end of file
diff --git a/src/icons/svg/component.svg b/src/icons/svg/component.svg
index 1975534..bd32f64 100644
--- a/src/icons/svg/component.svg
+++ b/src/icons/svg/component.svg
@@ -8,6 +8,6 @@
<rect id="鐭╁舰" x="0" y="0" width="20" height="20"></rect>
<path
d="M6.78926121,0.5 L3.19007351,0.5 C1.71249893,0.5 0.500187903,1.71240277 0.500187903,3.1710221 L0.500187903,6.7701364 C0.500187903,8.22879243 1.71249893,9.38432942 3.17111827,9.38432942 L9.38446229,9.38432942 L9.38446229,3.1710221 C9.38446229,1.71240277 8.22892528,0.5 6.78926121,0.5 L6.78926121,0.5 Z M8.07737495,8.07722373 L3.17111827,8.07722373 C2.45131375,8.07722373 1.82613875,7.48999596 1.82613875,6.7701364 L1.82613875,3.1710221 C1.82613875,2.45112585 2.45131375,1.82604258 3.17111827,1.82604258 L6.77032432,1.82604258 C7.49012883,1.82604258 8.07737495,2.43222561 8.07737495,3.1710221 L8.07737495,8.07722373 L8.07737495,8.07722373 Z M16.9048936,0.5 L13.3056876,0.5 C11.8470682,0.5 10.6346104,1.71240277 10.6346104,3.1710221 L10.6346104,9.38431107 L16.9048753,9.38431107 C18.3633111,9.38431107 19.4998928,8.22879243 19.4998928,6.77011804 L19.4998928,3.17100375 C19.4998928,1.71240277 18.344521,0.5 16.9048936,0.5 L16.9048936,0.5 Z M18.1741438,6.7701364 C18.1741438,7.48999596 17.6246614,8.07722373 16.8857182,8.07722373 L11.9228526,8.07722373 L11.9228526,3.1520852 C11.9228526,2.43222563 12.5668361,1.80710569 13.2867874,1.80710569 L16.8856998,1.80710569 C17.6058347,1.80710569 18.1741438,2.41328872 18.1741438,3.1520852 L18.1741438,6.7701364 L18.1741438,6.7701364 Z M0.500187903,13.2865077 L0.500187903,16.8857872 C0.500187903,18.3443148 1.71249893,19.4999802 3.17111827,19.4999802 L6.77032432,19.4999802 C8.22894365,19.4999802 9.36552537,18.3443148 9.36552537,16.8857872 L9.36552537,10.6157241 L3.17111827,10.6157241 C1.71249893,10.6157241 0.500187903,11.8279985 0.500187903,13.2865077 L0.500187903,13.2865077 Z M8.0773566,16.8858055 C8.0773566,17.6055733 7.50906571,18.1738642 6.77030595,18.1738642 L3.17111827,18.1738642 C2.45131375,18.1738642 1.82613875,17.6055733 1.82613875,16.8858055 L1.82613875,13.2865077 C1.82613875,12.5666482 2.45131375,11.9226647 3.17111827,11.9226647 L8.0773566,11.9226647 L8.0773566,16.8858055 L8.0773566,16.8858055 Z M16.9048936,10.6157241 L10.6157286,10.6157241 L10.6157286,16.8858055 C10.6157286,18.3443331 11.8280946,19.4999985 13.2868057,19.4999985 L16.8857182,19.4999985 C18.344521,19.4999985 19.4811027,18.3443331 19.4811027,16.8858055 L19.4811027,13.2865077 C19.4998928,11.8279985 18.344521,10.6157241 16.9048936,10.6157241 L16.9048936,10.6157241 Z M18.1741438,16.8858055 C18.1741438,17.6055733 17.6246614,18.1738642 16.8857182,18.1738642 L13.2867874,18.1738642 C12.5668361,18.1738642 11.9228526,17.6055733 11.9228526,16.8858055 L11.9228526,11.922683 L16.9048753,11.922683 C17.6246431,11.922683 18.1929339,12.547858 18.1929339,13.2865261 L18.1929339,16.8858055 L18.1741438,16.8858055 Z"
- id="褰㈢姸" fill="#157b7e" fill-rule="nonzero"></path>
+ id="褰㈢姸" fill="#00A79D" fill-rule="nonzero"></path>
</g>
</svg>
diff --git a/src/icons/svg/example.svg b/src/icons/svg/example.svg
index 7d0ac3c..37d3b97 100644
--- a/src/icons/svg/example.svg
+++ b/src/icons/svg/example.svg
@@ -8,6 +8,6 @@
<rect id="鐭╁舰" x="0" y="0" width="20" height="20"></rect>
<path
d="M18.5451858,3.22269871 L15.4641047,6.3205248 L13.6668074,4.51345958 L15.7850507,2.38370414 L16.7478885,1.41563349 C14.5012669,-0.00420346467 11.5485642,0.253948709 9.55869932,2.19009001 C8.14653716,3.60992697 7.63302365,5.61060632 7.95396959,7.41767154 L0.893158784,14.5168563 C0.37964527,15.0331607 0.37964527,15.8076172 0.893158784,16.3239215 L3.58910473,19.0345194 C4.10261824,19.5508237 4.87288851,19.5508237 5.38640203,19.0345194 L12.4472128,11.9353346 C14.2445101,12.3225628 16.234375,11.7417204 17.6465372,10.3218835 C19.7005912,8.45028023 19.957348,5.48153023 18.5451858,3.22269871 Z M16.8120777,9.54742697 C15.5282939,10.8381878 13.7309966,11.1608781 12.1262669,10.5800357 L4.61613176,18.1955248 L1.92018581,15.484927 L9.49451014,7.86943784 C8.91680743,6.25598675 9.30194257,4.44892154 10.5215372,3.15816067 C11.6127534,2.06101393 13.0891047,1.67378567 14.5012669,1.93193784 L12.832348,3.60992697 L11.9336993,4.51345958 L15.5924831,8.19212806 L18.2242399,5.54606827 C18.3526182,6.96590523 17.9032939,8.45028023 16.8120777,9.54742697 Z"
- id="褰㈢姸" fill="#157b7e" fill-rule="nonzero"></path>
+ id="褰㈢姸" fill="#00A79D" fill-rule="nonzero"></path>
</g>
</svg>
diff --git a/src/icons/svg/home.svg b/src/icons/svg/home.svg
index ddc0840..98523c5 100644
--- a/src/icons/svg/home.svg
+++ b/src/icons/svg/home.svg
@@ -8,6 +8,6 @@
<rect id="鐭╁舰" x="0" y="0" width="20" height="20"></rect>
<path
d="M15.4667218,18.9453146 C15.4288032,18.9453146 15.3983216,18.9442715 15.3764745,18.9431705 L3.82986779,18.9431705 C3.05639166,18.9431705 2.61116286,18.6173957 2.37387749,18.3441041 C1.85389337,17.7452309 1.89565591,16.9332761 1.91910628,16.7079863 L1.91910628,9.76308164 L3.15537002,9.76308164 L3.15537002,16.7926511 L3.1495364,16.8290243 C3.13483645,16.95267 3.13344566,17.3366071 3.30965187,17.5361865 C3.34693295,17.5784126 3.46037946,17.7069068 3.82988711,17.7069068 L15.4258092,17.7069068 L15.4402966,17.7084907 C15.4818853,17.7099588 15.871347,17.7168741 16.1163011,17.4852485 C16.2796038,17.3308315 16.3623948,17.0755044 16.3623948,16.7263371 L16.3623948,9.75775026 L17.5986586,9.75775026 L17.5986586,16.7263371 C17.5986586,17.6124099 17.2461882,18.1243003 16.9504894,18.3977078 C16.4186255,18.8895089 15.7448231,18.9453146 15.4667218,18.9453146 Z M2.53721884,10.3432177 L0.637448489,10.3432177 C0.380711281,10.3432177 0.150727593,10.184551 0.0595724588,9.94454198 C-0.0315633585,9.70453297 0.0351176168,9.43319239 0.227124828,9.26278116 L9.34880022,1.16737852 C9.58098601,0.961308808 9.9299794,0.95941578 10.1644059,1.16299365 L19.412837,9.19467076 C19.6051339,9.36168226 19.6753112,9.62954584 19.5896034,9.86938101 C19.5038955,10.1092162 19.2798613,10.2719394 19.025249,10.2792604 L16.9982014,10.3374421 C16.9921553,10.3376352 16.9861478,10.3377125 16.9801211,10.3377125 C16.6469673,10.3377125 16.3722077,10.0725146 16.3625687,9.73731327 C16.3527752,9.39606585 16.6214694,9.11149339 16.9627168,9.10169986 L17.4056662,9.08898953 L9.76354739,2.45220424 L2.26518286,9.10695398 L2.53721884,9.10695398 C2.87860148,9.10695398 3.1553507,9.38370321 3.1553507,9.72508585 C3.1553507,10.0664685 2.87860148,10.3432177 2.53721884,10.3432177 Z M7.68801511,18.3308916 C7.39996566,18.3308916 7.16646635,18.0973923 7.16646635,17.8093428 L7.16646635,13.4467612 C7.16646635,13.3527666 7.19030306,12.9657774 7.55320441,12.5969265 C7.99362337,12.1493025 8.7403653,11.9223322 9.77270347,11.9223322 C10.7894918,11.9223322 11.5281207,12.1524124 11.9680761,12.6061985 C12.3394381,12.9892084 12.3633714,13.3925009 12.3626528,13.4994763 L12.3626528,17.7925953 C12.3626528,18.0806447 12.129138,18.3141441 11.8410886,18.3141441 C11.5530391,18.3141441 11.3195398,18.0806447 11.3195398,17.7925953 L11.3195398,13.505619 C11.3160822,13.4830765 11.2942737,13.3877103 11.1646785,13.2826859 C11.018471,13.1641977 10.6431877,12.9654297 9.77268415,12.9654297 C8.76296575,12.9654297 8.4041402,13.2193467 8.29673978,13.3284856 C8.24400541,13.3820892 8.22186856,13.4276957 8.21257727,13.4564968 C8.21116715,13.4608431 8.21020132,13.464436 8.20954456,13.4671016 L8.20954456,17.8093428 C8.20956387,18.0973923 7.97606456,18.3308916 7.68801511,18.3308916 Z"
- id="褰㈢姸" fill="#157b7e" fill-rule="nonzero"></path>
+ id="褰㈢姸" fill="#00A79D" fill-rule="nonzero"></path>
</g>
</svg>
diff --git a/src/icons/svg/mj.svg b/src/icons/svg/mj.svg
new file mode 100644
index 0000000..3e8aa3f
--- /dev/null
+++ b/src/icons/svg/mj.svg
@@ -0,0 +1,15 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg t="1697088871240" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9354"
+ xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200">
+ <path
+ d="M510.084712 803.578485l-42.192666-23.653463v219.913284h77.35322v-214.159739l-35.160554 17.899918zM250.535893 365.669764l39.635534-21.735615L108.61511 239.731052 69.618859 306.855746l180.917034 104.203097v-45.389079zM786.894166 373.341158l0.639283 28.128443 164.295681-91.417441-38.356969-67.763977-179.638468 100.3674 53.060473 30.685575z"
+ fill="#00A79D" p-id="9355" data-spm-anchor-id="a313x.search_index.0.i12.ad893a81P9q8WY" class="selected"></path>
+ <path
+ d="M510.723994 294.07009L305.514214 396.355339v235.256072l198.816952 109.31736 214.799023-109.31736-3.196414-219.913285L510.723994 294.07009z"
+ fill="#00A79D" opacity=".28" p-id="9356" data-spm-anchor-id="a313x.search_index.0.i10.ad893a81P9q8WY"
+ class=""></path>
+ <path
+ d="M907.718616 208.406194L576.570123 17.260636a127.856561 127.856561 0 0 0-127.856561 0l-331.148492 191.784841A127.856561 127.856561 0 0 0 51.718941 319.641402v383.569683a127.856561 127.856561 0 0 0 63.92828 111.874491l331.148493 191.784841a127.856561 127.856561 0 0 0 127.856561 0l331.148493-191.784841a127.856561 127.856561 0 0 0 63.92828-111.874491V319.641402a127.856561 127.856561 0 0 0-62.010432-111.235208zM512.00256 944.859985a51.781907 51.781907 0 0 1-25.571312-7.032111l-331.148493-191.784841a51.781907 51.781907 0 0 1-25.571312-44.749796V319.641402a51.781907 51.781907 0 0 1 25.571312-44.749796l331.148493-191.784841a51.781907 51.781907 0 0 1 51.781907 0l331.148493 191.784841a51.781907 51.781907 0 0 1 25.571312 44.749796v383.569683a51.781907 51.781907 0 0 1-25.571312 44.749796l-331.148493 191.784842a51.781907 51.781907 0 0 1-26.210595 5.114262z"
+ fill="#00A79D" p-id="9357" data-spm-anchor-id="a313x.search_index.0.i11.ad893a81P9q8WY" class="selected"></path>
+</svg>
diff --git a/src/icons/svg/quality.svg b/src/icons/svg/quality.svg
index bdc740e..63ca87f 100644
--- a/src/icons/svg/quality.svg
+++ b/src/icons/svg/quality.svg
@@ -1,11 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
-<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <!-- Generator: Sketch 55.2 (78181) - https://sketchapp.com -->
- <title>璐ㄩ噺绠$悊澶囦唤</title>
- <desc>Created with Sketch.</desc>
- <g id="璐ㄩ噺绠$悊澶囦唤" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
- <rect id="鐭╁舰" x="0" y="0" width="20" height="20"></rect>
- <rect id="鐭╁舰" x="0" y="0" width="20" height="20"></rect>
- <path d="M1.87152539,1.85888424 L11.3130252,1.85888424 L11.3130252,7.27232022 L15.366151,7.27232022 L15.366151,8.65276028 L16.7172577,8.65276028 L16.7172577,5.93521422 L11.3130468,0.500122058 L1.8265604,0.500122058 C1.0916723,0.500122058 0.519059396,1.11183304 0.519059396,1.85888424 L0.519059396,18.1294631 C0.519059396,18.8764926 1.0916723,19.4882036 1.8265604,19.4882036 L8.61089811,19.4882036 L8.61089811,18.1294631 L1.87152539,18.1294631 L1.87152539,1.85888424 Z M12.6640887,3.21766814 L15.366151,5.93304425 L12.6579826,5.93265365 L12.6640887,3.21766814 Z M18.8916505,12.9413989 C17.75033,11.8440514 15.4229614,10.0022567 12.6561918,10.0022567 C9.89071679,10.0022567 7.56196728,11.8440297 6.42068992,12.9413989 C5.73197504,13.602216 5.73197504,14.5642232 6.42068992,15.2250403 C7.56196726,16.3224311 9.89071679,18.1642041 12.6561918,18.1642041 C15.4229614,18.1642041 17.75033,16.3224311 18.8916505,15.2250403 C19.5790276,14.5642232 19.5790276,13.602216 18.8916505,12.9413989 Z M17.9680347,14.2325018 C16.9705848,15.1905163 14.9545835,16.7987801 12.6561918,16.7987801 C10.3565055,16.7987801 8.3417556,15.1905379 7.34428415,14.2325018 C7.27830389,14.1687702 7.24926222,14.1117437 7.24926222,14.0825577 C7.24926222,14.0546738 7.27832546,13.9976473 7.34428415,13.9339591 C8.34173401,12.9745558 10.3565055,11.3676373 12.6561918,11.3676373 C14.9545835,11.3676373 16.9705848,12.9758578 17.9680347,13.932592 C18.0340365,13.9963019 18.0629919,14.0546521 18.0629919,14.082536 C18.0629919,14.111722 18.0340365,14.1701372 17.9680347,14.2325018 Z M12.6983734,12.7171555 C11.9608314,12.7171555 11.36319,13.3262191 11.36319,14.0759177 C11.36319,14.8256379 11.9608314,15.4346798 12.6983734,15.4346798 C13.4346424,15.4346798 14.0335784,14.8256379 14.0335784,14.0759177 C14.0335784,13.3262191 13.4346424,12.7171555 12.6983734,12.7171555 Z" id="褰㈢姸" fill="#157b7e" fill-rule="nonzero"></path>
- </g>
+<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!-- Generator: Sketch 55.2 (78181) - https://sketchapp.com -->
+ <title>璐ㄩ噺绠$悊澶囦唤</title>
+ <desc>Created with Sketch.</desc>
+ <g id="璐ㄩ噺绠$悊澶囦唤" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <rect id="鐭╁舰" x="0" y="0" width="20" height="20"></rect>
+ <rect id="鐭╁舰" x="0" y="0" width="20" height="20"></rect>
+ <path
+ d="M1.87152539,1.85888424 L11.3130252,1.85888424 L11.3130252,7.27232022 L15.366151,7.27232022 L15.366151,8.65276028 L16.7172577,8.65276028 L16.7172577,5.93521422 L11.3130468,0.500122058 L1.8265604,0.500122058 C1.0916723,0.500122058 0.519059396,1.11183304 0.519059396,1.85888424 L0.519059396,18.1294631 C0.519059396,18.8764926 1.0916723,19.4882036 1.8265604,19.4882036 L8.61089811,19.4882036 L8.61089811,18.1294631 L1.87152539,18.1294631 L1.87152539,1.85888424 Z M12.6640887,3.21766814 L15.366151,5.93304425 L12.6579826,5.93265365 L12.6640887,3.21766814 Z M18.8916505,12.9413989 C17.75033,11.8440514 15.4229614,10.0022567 12.6561918,10.0022567 C9.89071679,10.0022567 7.56196728,11.8440297 6.42068992,12.9413989 C5.73197504,13.602216 5.73197504,14.5642232 6.42068992,15.2250403 C7.56196726,16.3224311 9.89071679,18.1642041 12.6561918,18.1642041 C15.4229614,18.1642041 17.75033,16.3224311 18.8916505,15.2250403 C19.5790276,14.5642232 19.5790276,13.602216 18.8916505,12.9413989 Z M17.9680347,14.2325018 C16.9705848,15.1905163 14.9545835,16.7987801 12.6561918,16.7987801 C10.3565055,16.7987801 8.3417556,15.1905379 7.34428415,14.2325018 C7.27830389,14.1687702 7.24926222,14.1117437 7.24926222,14.0825577 C7.24926222,14.0546738 7.27832546,13.9976473 7.34428415,13.9339591 C8.34173401,12.9745558 10.3565055,11.3676373 12.6561918,11.3676373 C14.9545835,11.3676373 16.9705848,12.9758578 17.9680347,13.932592 C18.0340365,13.9963019 18.0629919,14.0546521 18.0629919,14.082536 C18.0629919,14.111722 18.0340365,14.1701372 17.9680347,14.2325018 Z M12.6983734,12.7171555 C11.9608314,12.7171555 11.36319,13.3262191 11.36319,14.0759177 C11.36319,14.8256379 11.9608314,15.4346798 12.6983734,15.4346798 C13.4346424,15.4346798 14.0335784,14.8256379 14.0335784,14.0759177 C14.0335784,13.3262191 13.4346424,12.7171555 12.6983734,12.7171555 Z"
+ id="褰㈢姸" fill="#00A79D" fill-rule="nonzero"></path>
+ </g>
</svg>
diff --git a/src/icons/svg/table.svg b/src/icons/svg/table.svg
index f6e25fa..ea11433 100644
--- a/src/icons/svg/table.svg
+++ b/src/icons/svg/table.svg
@@ -1,12 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
-<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
- <!-- Generator: Sketch 55.2 (78181) - https://sketchapp.com -->
- <title>鐗╂枡绠$悊澶囦唤</title>
- <desc>Created with Sketch.</desc>
- <g id="鐗╂枡绠$悊澶囦唤" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
- <rect id="鐭╁舰" x="0" y="0" width="20" height="20"></rect>
- <rect id="鐭╁舰" x="0" y="0" width="20" height="20"></rect>
- <path d="M6.42353753,9.80617618 L3.54412378,8.17911347 C3.31331205,8.04783984 3.02038813,8.11674647 2.87229833,8.33714011 C2.80615013,8.44215245 2.78660602,8.56992741 2.8183394,8.68991145 C2.85007034,8.80990314 2.93026695,8.91129751 3.03972388,8.96981279 L5.91905268,10.5976398 C6.1498361,10.7287719 6.44278834,10.6598936 6.59087815,10.4396132 C6.65709137,10.3345034 6.67667301,10.2066141 6.64494351,10.0865079 C6.613214,9.96640167 6.53302414,9.86486981 6.42353753,9.80617618 L6.42353753,9.80617618 Z" id="璺緞" fill="#157b7e" fill-rule="nonzero"></path>
- <path d="M18.8389321,7.57033447 C18.5678918,7.57033447 18.3490552,7.7769128 18.3490552,8.03204284 L18.3490552,13.7298622 L10.1153644,18.1101891 L10.1153644,10.0395075 C10.1153644,10.0040067 10.1015208,9.97280904 10.0943583,9.93951644 L18.5041942,5.44906349 C18.6603415,5.37127572 18.7571951,5.20998183 18.7524732,5.03559542 C18.7478807,4.86118297 18.6425305,4.70527255 18.4824238,4.63594263 L9.84497521,0.566488227 C9.70620155,0.501996187 9.54604743,0.501996187 9.40727377,0.566488227 L0.769825202,4.63594263 C0.567691545,4.72704432 0.465832045,4.95508166 0.532841901,5.1664161 C0.512394113,5.21487085 0.50132728,5.26676583 0.500228732,5.3193469 L0.500228732,14.0002514 C0.500228732,14.1625811 0.590141401,14.3118882 0.736447674,14.395148 L9.37386791,19.2951057 L9.37751992,19.2965495 C9.38326686,19.299522 9.39057084,19.299522 9.39566665,19.3030608 C9.45662395,19.3330285 9.52286178,19.3507637 9.59063787,19.3552645 C9.61308772,19.3567083 9.63485813,19.3531696 9.65730799,19.3516125 C9.71548887,19.348298 9.77264079,19.3348268 9.82617736,19.3118086 C9.83987942,19.3060616 9.85293034,19.3089493 9.86674564,19.3016453 L19.08036,14.4010082 C19.2316231,14.3239088 19.3276239,14.1692543 19.3296016,13.999487 L19.3296016,8.03204284 C19.3289505,7.77756392 19.1093212,7.57033447 18.8389321,7.57033447 Z M9.13688461,18.0834078 L1.47791583,13.73861 L1.47791583,5.83900592 L9.15789066,9.93951644 C9.14993553,9.97280904 9.13688461,10.0040067 9.13688461,10.0395075 L9.13688461,18.0834078 Z M17.222061,5.07364409 L9.62611033,9.1292549 L2.03083913,5.07364409 L9.62534596,1.49485922 L17.222061,5.07364409 Z" id="褰㈢姸" fill="#157b7e" fill-rule="nonzero"></path>
- </g>
+<svg width="20px" height="20px" viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink">
+ <!-- Generator: Sketch 55.2 (78181) - https://sketchapp.com -->
+ <title>鐗╂枡绠$悊澶囦唤</title>
+ <desc>Created with Sketch.</desc>
+ <g id="鐗╂枡绠$悊澶囦唤" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+ <rect id="鐭╁舰" x="0" y="0" width="20" height="20"></rect>
+ <rect id="鐭╁舰" x="0" y="0" width="20" height="20"></rect>
+ <path
+ d="M6.42353753,9.80617618 L3.54412378,8.17911347 C3.31331205,8.04783984 3.02038813,8.11674647 2.87229833,8.33714011 C2.80615013,8.44215245 2.78660602,8.56992741 2.8183394,8.68991145 C2.85007034,8.80990314 2.93026695,8.91129751 3.03972388,8.96981279 L5.91905268,10.5976398 C6.1498361,10.7287719 6.44278834,10.6598936 6.59087815,10.4396132 C6.65709137,10.3345034 6.67667301,10.2066141 6.64494351,10.0865079 C6.613214,9.96640167 6.53302414,9.86486981 6.42353753,9.80617618 L6.42353753,9.80617618 Z"
+ id="璺緞" fill="#00A79D" fill-rule="nonzero"></path>
+ <path
+ d="M18.8389321,7.57033447 C18.5678918,7.57033447 18.3490552,7.7769128 18.3490552,8.03204284 L18.3490552,13.7298622 L10.1153644,18.1101891 L10.1153644,10.0395075 C10.1153644,10.0040067 10.1015208,9.97280904 10.0943583,9.93951644 L18.5041942,5.44906349 C18.6603415,5.37127572 18.7571951,5.20998183 18.7524732,5.03559542 C18.7478807,4.86118297 18.6425305,4.70527255 18.4824238,4.63594263 L9.84497521,0.566488227 C9.70620155,0.501996187 9.54604743,0.501996187 9.40727377,0.566488227 L0.769825202,4.63594263 C0.567691545,4.72704432 0.465832045,4.95508166 0.532841901,5.1664161 C0.512394113,5.21487085 0.50132728,5.26676583 0.500228732,5.3193469 L0.500228732,14.0002514 C0.500228732,14.1625811 0.590141401,14.3118882 0.736447674,14.395148 L9.37386791,19.2951057 L9.37751992,19.2965495 C9.38326686,19.299522 9.39057084,19.299522 9.39566665,19.3030608 C9.45662395,19.3330285 9.52286178,19.3507637 9.59063787,19.3552645 C9.61308772,19.3567083 9.63485813,19.3531696 9.65730799,19.3516125 C9.71548887,19.348298 9.77264079,19.3348268 9.82617736,19.3118086 C9.83987942,19.3060616 9.85293034,19.3089493 9.86674564,19.3016453 L19.08036,14.4010082 C19.2316231,14.3239088 19.3276239,14.1692543 19.3296016,13.999487 L19.3296016,8.03204284 C19.3289505,7.77756392 19.1093212,7.57033447 18.8389321,7.57033447 Z M9.13688461,18.0834078 L1.47791583,13.73861 L1.47791583,5.83900592 L9.15789066,9.93951644 C9.14993553,9.97280904 9.13688461,10.0040067 9.13688461,10.0395075 L9.13688461,18.0834078 Z M17.222061,5.07364409 L9.62611033,9.1292549 L2.03083913,5.07364409 L9.62534596,1.49485922 L17.222061,5.07364409 Z"
+ id="褰㈢姸" fill="#00A79D" fill-rule="nonzero"></path>
+ </g>
</svg>
diff --git a/src/icons/svg/tree2.svg b/src/icons/svg/tree2.svg
index 6ee34cc..077160b 100644
--- a/src/icons/svg/tree2.svg
+++ b/src/icons/svg/tree2.svg
@@ -4,8 +4,8 @@
xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128">
<path
d="M545.784454 962.539206l-65.943898 0c-29.341259 0-54.624085-25.281803-54.624085-54.615898L425.216471 868.462574c0-9.623171-7.826246-20.911262-16.690124-23.680329l-1.566682-0.611937-55.725162-23.104207-0.880043-0.494257c-8.153704-4.41045-22.017456-2.376117-28.55229 4.187369l-28.17469 28.123524c-9.930163 9.977235-23.239284 15.494902-37.432541 15.494902-14.195304 0-27.507494-5.517667-37.487799-15.541975l-46.682205-46.630017c-20.60427-20.603247-20.6319-54.233182-0.069585-74.974575l28.15013-28.106128c6.637164-6.574742 8.676613-20.599154 4.253884-28.909423l-0.831948-1.768273-23.164582-56.128345-0.26913-0.682545c-2.803859-9.03477-14.279215-17.394159-23.611767-17.394159l-39.631626 0c-29.391401 0-52.861952-24.065092-52.861952-53.193503l0-65.943898c0-28.770254 22.998807-51.754734 52.919257-51.754734l39.575344 0c9.081843 0 20.803815-8.830109 23.666002-18.057261l0.567935-1.476631 23.163559-57.088206 0.505513-0.913812c4.40431-8.220219 2.319835-22.224164-4.2897-28.830629l-28.04166-28.087709c-9.964956-9.921977-15.486716-23.216771-15.502066-37.396725-0.01535-14.201443 5.492084-27.53717 15.507182-37.552268l46.6556-46.614667c9.94142-9.985422 23.248494-15.503089 37.432541-15.503089 0.001023 0 0 0 0.001023 0 14.184047 0 27.490098 5.51869 37.46938 15.540951l28.039613 28.05087c6.557346 6.525624 20.500916 8.596795 28.655643 4.231371l0.893346-0.478907 57.375755-23.64963c8.836249-2.731204 16.634866-14.037714 16.634866-23.719214l0-39.632649c0-28.967752 24.777313-52.095495 54.624085-52.095495L545.784454 64.076364c29.161157 0 52.370765 22.636556 52.370765 52.095495l0 39.632649c0 9.127891 8.709359 20.85498 17.767666 23.674189l1.51654 0.577145 56.639998 23.113417 0.923022 0.509606c8.202822 4.424776 22.184255 2.353604 28.788673-4.254907l28.163433-27.912723c9.895371-9.94142 23.179932-15.33936 37.352723-15.33936 0.019443 0 0.040932 0 0.060375 0 14.18814 0 27.508517 5.375427 37.516452 15.384385l46.709835 46.554292c10.004865 9.960863 15.524578 23.254633 15.524578 37.47552 0 14.18814-5.498224 27.506471-15.479553 37.532825l-28.16855 28.152177c-6.580882 6.610558-8.640798 20.771069-4.204765 29.107945l0.478907 0.896416 23.654746 57.956993c2.902096 9.255805 14.635325 18.114566 23.686469 18.114566l39.132252 0 0-0.573051c27.629267 0 52.188616 22.984481 52.188616 52.327786l0 65.998133c0 29.590945-22.985504 53.138244-51.746548 53.138244l-39.630602 0c-9.337669 0-20.84884 8.372691-23.686469 17.423835l-0.580215 1.51654-23.086811 56.240909-0.468674 0.860601c-4.419659 8.30413-2.393513 22.320355 4.169973 28.855188l28.135804 28.02017c10.031471 10.029424 15.539928 23.350824 15.537881 37.541011-0.004093 14.186094-5.514597 27.505447-15.518438 37.505195l-46.747697 46.682205c-9.920954 9.964956-23.219841 15.506159-37.406958 15.506159-0.019443 0-0.040932 0-0.060375 0-14.192234 0-27.514657-5.514597-37.518498-15.517415l-28.039613-28.095895c-6.490831-6.490831-20.807908-8.575306-28.887934-4.206812l-0.951675 0.514723-57.93755 23.680329c-9.087982 2.859118-17.823947 14.594393-17.823947 23.691585l0 39.460734C598.155219 937.76394 574.45954 962.539206 545.784454 962.539206zM421.86719 806.892287c25.192775 8.370645 44.282552 34.650171 44.282552 61.570287l0 39.460734c0 7.114025 6.569626 13.68365 13.691837 13.68365L545.784454 921.606958c6.496971 0 12.461823-6.043646 12.461823-13.68365L558.246277 868.462574c0-26.273387 19.516496-53.131081 44.901653-61.58052l53.859675-22.062482c23.62814-12.116969 56.342216-7.098675 75.118861 11.6749l28.009937 28.1532c2.432399 2.430352 5.678326 3.837398 9.179057 3.837398 0.00614 0 0.011256 0 0.01535 0 3.482311 0 6.726192-1.39886 9.135054-3.820002l46.780443-46.738487c2.436492-2.436492 3.783163-5.724375 3.78521-9.224082 0-3.495614-1.344624-6.774287-3.787256-9.216919l-28.106128-27.998681c-18.693758-18.609847-23.762193-51.349505-11.773138-75.036997l22.083971-53.603849c8.374738-25.167193 35.224246-44.51382 61.578474-44.51382l39.630602 0c7.745405 0 10.8143-7.086395 10.8143-13.229303l0-65.998133c0-6.862291-5.116531-12.07399-11.256368-12.302187l0 1.479701-39.132252 0c-26.236548 0-53.099359-20.149922-61.585637-45.735647l-22.083971-54.261834c-11.960403-23.654746-6.913457-56.502875 11.728112-75.228355l28.16855-28.192086c2.430352-2.441609 3.78828-5.764284 3.78828-9.295714 0-3.498684-1.334391-6.762007-3.759627-9.17394l-46.741557-46.577828c-2.462075-2.462075-5.736655-3.734044-9.234315-3.734044-0.004093 0-0.010233 0-0.013303 0-3.465938 0-6.700609 1.255597-9.105379 3.671623l-28.198226 28.037567c-18.703991 18.710131-51.417043 23.734564-75.000158 11.69025l-53.865815-22.072715c-25.403576-8.388041-44.934398-35.255968-44.934398-61.60508l0-39.632649c0-7.253194-5.517667-12.186554-12.461823-12.186554l-65.943898 0c-7.517207 0-13.691837 5.51869-13.691837 12.186554l0 39.632649c0 27.027563-19.107173 53.336766-44.325531 61.643965l-53.501518 21.99699c-23.834848 12.168134-55.857169 7.234775-74.878384-11.69639l-28.130687-28.115338c-2.441609-2.451842-5.690606-3.787256-9.152451-3.787256-3.462868-0.001023-6.704702 1.334391-9.117658 3.758604l-46.690392 46.64639c-2.438539 2.438539-3.784186 5.710049-3.781116 9.207709 0.004093 3.474125 1.339508 6.716982 3.762697 9.128915l28.068266 28.121478c18.698874 18.690688 23.782659 51.389414 11.808954 74.973552l-22.124903 54.813397c-8.413624 25.616424-35.281551 45.783743-61.603033 45.783743l-39.575344 0c-6.630001 0-13.010315 3.411703-13.010315 10.822486l0 65.943898c0 6.942109 5.753027 13.284561 12.95301 13.284561l39.631626 0c26.380834 0 53.195549 19.35072 61.524239 44.537356l22.182208 53.629431c12.027941 23.731494 6.918573 56.449663-11.863189 75.05644l-28.022217 27.949562c-5.021364 5.066389-5.048993 13.348006 0.010233 18.409279l46.713928 46.653553c2.452865 2.464121 5.695722 3.794419 9.168824 3.794419 3.472078 0 6.711865-1.336438 9.124821-3.759627l28.181853-28.122501c18.641569-18.730597 51.440579-23.752983 75.011414-11.642155L421.86719 806.892287z"
- fill="#157b7e" p-id="4801"></path>
+ fill="#00A79D" p-id="4801"></path>
<path
d="M513.734504 731.880873c-120.639614 0-218.786958-98.147344-218.786958-218.786958s98.147344-218.786958 218.786958-218.786958 218.786958 98.147344 218.786958 218.786958S634.375142 731.880873 513.734504 731.880873zM513.734504 334.324368c-98.573039 0-178.769546 80.195483-178.769546 178.769546s80.195483 178.769546 178.769546 178.769546 178.769546-80.195483 178.769546-178.769546S612.308567 334.324368 513.734504 334.324368z"
- fill="#157b7e" p-id="4802"></path>
+ fill="#00A79D" p-id="4802"></path>
</svg>
diff --git a/src/icons/svg/xtsz.svg b/src/icons/svg/xtsz.svg
index c80d11e..259dd9d 100644
--- a/src/icons/svg/xtsz.svg
+++ b/src/icons/svg/xtsz.svg
@@ -11,5 +11,5 @@
</defs>
<path
d="M892.928 614.4L972.8 533.504 900.096 460.8 819.2 540.672a200.704 200.704 0 0 0-51.2-21.504V409.6h-102.4v109.568a200.704 200.704 0 0 0-51.2 21.504L533.504 460.8 460.8 533.504 540.672 614.4a200.704 200.704 0 0 0-21.504 51.2H409.6v102.4h109.568a200.704 200.704 0 0 0 21.504 51.2L460.8 900.096 533.504 972.8 614.4 892.928a200.704 200.704 0 0 0 51.2 21.504V1024h102.4v-109.568a200.704 200.704 0 0 0 51.2-21.504L900.096 972.8 972.8 900.096 892.928 819.2a200.704 200.704 0 0 0 21.504-51.2H1024v-102.4h-109.568a200.704 200.704 0 0 0-21.504-51.2zM716.8 819.2a102.4 102.4 0 1 1 102.4-102.4 102.4 102.4 0 0 1-102.4 102.4zM0 0v716.8h204.8v102.4H102.4v102.4h204.8v-307.2H102.4v-102.4h307.2V409.6H102.4V102.4h819.2v256h102.4V0z"
- fill="#157b7e" p-id="2185"></path>
+ fill="#00A79D" p-id="2185"></path>
</svg>
diff --git a/src/icons/svg/zlgl.svg b/src/icons/svg/zlgl.svg
new file mode 100644
index 0000000..a742159
--- /dev/null
+++ b/src/icons/svg/zlgl.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg t="1697089291410" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
+ p-id="10715" xmlns:xlink="http://www.w3.org/1999/xlink" width="300" height="300">
+ <path
+ d="M512 134.4l289.6 133.6V472c0 96.8-31.2 193.6-88.8 272.8-52.8 73.6-124 126.4-200.8 150.4-77.6-24-148-76.8-200.8-150.4-57.6-79.2-88.8-176-88.8-272.8V268L512 134.4m0-71.2L158.4 226.4v244.8c0 226.4 151.2 437.6 353.6 489.6 203.2-51.2 353.6-263.2 353.6-489.6V226.4L512 63.2z m191.2 447.2c0-106.4-85.6-192-192-192s-192 85.6-192 192 85.6 192 192 192c24 0 46.4-4.8 68-12l58.4 58.4 45.6-45.6-47.2-47.2c40.8-35.2 67.2-87.2 67.2-145.6z m-192 128c-70.4 0-128-57.6-128-128s57.6-128 128-128 128 57.6 128 128c0 40.8-19.2 76.8-48.8 100l-43.2-43.2-45.6 45.6 24.8 24.8c-4.8 0-10.4 0.8-15.2 0.8z"
+ p-id="10716" fill="#00A79D"></path>
+</svg>
diff --git a/src/permission.js b/src/permission.js
index a0190b0..ad087ea 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -9,7 +9,7 @@
NProgress.configure({ showSpinner: false }) // NProgress Configuration
-const whiteList = ['/login', '/zhkb', '/ckgl', '/cgdd', '/back'] // no redirect whitelist
+const whiteList = ['/login', '/zhkb', '/cj'] // no redirect whitelist
router.beforeEach(async(to, from, next) => {
// start progress bar
diff --git a/src/router/index.js b/src/router/index.js
index 698f87b..b9690ec 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -18,7 +18,7 @@
* name:'router-name' the name is used by <keep-alive> (must set!!!)
* meta : {
roles: ['admin','editor'] control the page roles (you can set multiple roles)
- seq:0,title: 'seq:0,title' the name show in sidebar and breadcrumb (recommend set)
+ title: 'title' the name show in sidebar and breadcrumb (recommend set)
icon: 'svg-name'/'el-icon-x' the icon show in the sidebar
breadcrumb: false if set false, the item will hidden in breadcrumb(default is true)
activeMenu: '/example/list' if set path, the sidebar will highlight the path you set
@@ -40,8 +40,8 @@
component: () => import('@/views/kanbanManager/zhkb'),
hidden: true
}, {
- path: '/cgdd',
- component: () => import('@/views/kanbanManager/cgdd'),
+ path: '/cj',
+ component: () => import('@/views/kanbanManager/cj'),
hidden: true
}, {
path: '/ckgl',
@@ -79,7 +79,7 @@
path: 'index',
name: 'index',
component: () => import('@/views/systemHome/index'),
- meta: { seq: 0, title: '绯荤粺棣栭〉', icon: 'home', affix: true }
+ meta: { title: '绯荤粺棣栭〉', icon: 'home', affix: true }
}]
}
// { path: '*', redirect: '/404', hidden: true }
@@ -92,7 +92,7 @@
redirect: '/basicSettings/organizationList',
name: '鍩虹璁剧疆',
code: '01',
- meta: { code: '01', seq: 0, title: '鍩虹璁剧疆', icon: 'tree2' },
+ meta: { code: '01', title: '鍩虹璁剧疆', icon: 'tree2' },
alwaysShow: true, // 褰揷hildren鍙湁涓�涓椂锛屼篃鏄剧ず鐖惰彍鍗�
children: [
{
@@ -100,64 +100,40 @@
name: 'organizationListCancel',
code: '0101',
component: () => import('@/views/basicSettings/organizationList'),
- meta: { code: '0101', seq: 0, title: '缁勭粐鏋舵瀯', icon: '', keepAlive: true }
+ meta: { code: '0101', title: '缁勭粐鏋舵瀯', icon: '', keepAlive: true }
},
{
path: 'postList',
name: 'personListCancel',
code: '0102',
component: () => import('@/views/basicSettings/postList'),
- meta: { code: '0102', seq: 0, title: '宀椾綅绠$悊', icon: '', keepAlive: true }
+ meta: { code: '0102', title: '宀椾綅绠$悊', icon: '', keepAlive: true }
}, {
path: 'groupList',
name: 'groupListCancel',
code: '0103',
component: () => import('@/views/basicSettings/groupList'),
- meta: { code: '0103', seq: 0, title: '鐝粍绠$悊', icon: '', keepAlive: true }
+ meta: { code: '0103', title: '鐝粍绠$悊', icon: '', keepAlive: true }
},
{
path: 'personList',
name: 'personListCancel',
code: '0104',
component: () => import('@/views/basicSettings/personList'),
- meta: { code: '0104', seq: 0, title: '浜哄憳绠$悊', icon: '', keepAlive: true }
+ meta: { code: '0104', title: '浜哄憳绠$悊', icon: '', keepAlive: true }
}, {
path: 'roleList',
name: 'roleListCancel',
code: '0105',
component: () => import('@/views/basicSettings/roleList'),
- meta: { code: '0105', seq: 0, title: '瑙掕壊绠$悊', icon: '', keepAlive: true }
- }, {
- path: 'contactUnitList',
- name: 'contactUnitListCancel',
- code: '0106',
- component: () => import('@/views/basicSettings/contactUnitList'),
- meta: { code: '0106', seq: 0, title: '寰�鏉ュ崟浣�', icon: '', keepAlive: true }
- }, {
- path: 'warehouseList',
- name: 'warehouseListCancel',
- code: '0107',
- component: () => import('@/views/basicSettings/warehouseList'),
- meta: { code: '0107', seq: 0, title: '浠撳簱璁剧疆', icon: '', keepAlive: true }
- }, {
- path: 'storageList',
- name: 'storageListCancel',
- code: '0108',
- component: () => import('@/views/basicSettings/storageList'),
- meta: { code: '0108', seq: 0, title: '搴撲綅璁剧疆', icon: '', keepAlive: true }
- }, {
- path: 'installLampList',
- name: 'installLampListCancel',
- code: '0109',
- component: () => import('@/views/basicSettings/installLampList'),
- meta: { code: '0109', seq: 0, title: '瀹夌伅璁剧疆', icon: '', keepAlive: true }
+ meta: { code: '0105', title: '瑙掕壊绠$悊', icon: '', keepAlive: true }
},
{
path: 'powerDivider',
name: 'powerDividerCancel',
code: '0110',
component: () => import('@/views/basicSettings/powerDivider'),
- meta: { code: '0110', seq: 0, title: '鏉冮檺鍒嗛厤', icon: '', keepAlive: true }
+ meta: { code: '0110', title: '鏉冮檺鍒嗛厤', icon: '', keepAlive: true }
},
{
path: 'roleDivider',
@@ -165,15 +141,43 @@
code: '0111',
hidden: true,
component: () => import('@/views/basicSettings/roleDivider'),
- meta: { code: '0111', seq: 0, title: '瑙掕壊鍒嗛厤', icon: '', keepAlive: true }
- },
- {
+ meta: { code: '0111', title: '瑙掕壊鍒嗛厤', icon: '', keepAlive: true }
+ }, {
+ path: 'contactUnitList',
+ name: 'contactUnitListCancel',
+ code: '0106',
+ component: () => import('@/views/basicSettings/contactUnitList'),
+ meta: { code: '0106', title: '寰�鏉ュ崟浣�', icon: '', keepAlive: true }
+ }, {
+ path: 'warehouseList',
+ name: 'warehouseListCancel',
+ code: '0107',
+ component: () => import('@/views/basicSettings/warehouseList'),
+ meta: { code: '0107', title: '浠撳簱璁剧疆', icon: '', keepAlive: true }
+ }, {
+ path: 'storageList',
+ name: 'storageListCancel',
+ code: '0108',
+ component: () => import('@/views/basicSettings/storageList'),
+ meta: { code: '0108', title: '搴撲綅璁剧疆', icon: '', keepAlive: true }
+ }, {
+ path: 'installLampList',
+ name: 'installLampListCancel',
+ code: '0109',
+ component: () => import('@/views/basicSettings/installLampList'),
+ meta: { code: '0109', title: '瀹夌伅璁剧疆', icon: '', keepAlive: true }
+ }, {
+ path: 'processList',
+ name: 'processListCancel',
+ code: '0112',
+ component: () => import('@/views/basicSettings/processList'),
+ meta: { code: '0112', title: '宸ュ簭璁剧疆', icon: '', keepAlive: true }
+ }, {
path: 'cronTime',
name: 'cronTimeCancel',
code: '0113',
- hidden: true,
component: () => import('@/views/basicSettings/cronTime'),
- meta: { code: '0113', seq: 0, title: '瀹氭椂浠诲姟', icon: '', keepAlive: true }
+ meta: { code: '0113', title: '瀹氭椂浠诲姟', icon: '', keepAlive: true }
}
]
@@ -185,7 +189,7 @@
redirect: '/materialManager/unitList',
name: '鐗╂枡绠$悊',
code: '02',
- meta: { code: '02', seq: 0, title: '鐗╂枡绠$悊', icon: 'table' },
+ meta: { code: '02', title: '鐗╂枡绠$悊', icon: 'table' },
alwaysShow: true, // 褰揷hildren鍙湁涓�涓椂锛屼篃鏄剧ず鐖惰彍鍗�
children: [
{
@@ -193,20 +197,20 @@
name: 'unitListCancel',
code: '0201',
component: () => import('@/views/materialManager/unitList'),
- meta: { code: '0201', seq: 0, title: '璁¢噺鍗曚綅', icon: '', keepAlive: true }
+ meta: { code: '0201', title: '璁¢噺鍗曚綅', icon: '', keepAlive: true }
},
{
path: 'inventoryList',
name: 'inventoryListCancel',
code: '0202',
component: () => import('@/views/materialManager/inventoryList'),
- meta: { code: '0202', seq: 0, title: '瀛樿揣妗f', icon: '', keepAlive: true }
+ meta: { code: '0202', title: '瀛樿揣妗f', icon: '', keepAlive: true }
}, {
path: 'materialList',
name: 'materialListCancel',
code: '0203',
component: () => import('@/views/materialManager/materialList'),
- meta: { code: '0203', seq: 0, title: '鐗╂枡娓呭崟', icon: '', keepAlive: true }
+ meta: { code: '0203', title: '鐗╂枡娓呭崟', icon: '', keepAlive: true }
}
]
@@ -218,7 +222,7 @@
redirect: '/deviceManager/deviceType',
name: '璁惧绠$悊',
code: '03',
- meta: { code: '03', seq: 0, title: '璁惧绠$悊', icon: 'example' },
+ meta: { code: '03', title: '璁惧绠$悊', icon: 'example' },
alwaysShow: true,
children: [
{
@@ -226,56 +230,135 @@
name: 'deviceListCancel',
code: '0301',
component: () => import('@/views/deviceManager/deviceList'),
- meta: { code: '0301', seq: 0, title: '璁惧娓呭崟', icon: '', keepAlive: true }
+ meta: { code: '0301', title: '璁惧娓呭崟', icon: '', keepAlive: true }
},
{
path: 'checkStandard',
name: 'checkStandardCancel',
code: '0302',
component: () => import('@/views/deviceManager/checkStandard'),
- meta: { code: '0302', seq: 0, title: '鐐规鏍囧噯', icon: '', keepAlive: true }
+ meta: { code: '0302', title: '鐐规鏍囧噯', icon: '', keepAlive: true }
},
{
path: 'checkPosition',
name: 'checkPositionCancel',
code: '0303',
component: () => import('@/views/deviceManager/checkPosition'),
- meta: { code: '0303', seq: 0, title: '鐐规閮ㄤ綅', icon: '', keepAlive: true }
+ meta: { code: '0303', title: '鐐规閮ㄤ綅', icon: '', keepAlive: true }
},
{
path: 'maintainStandard',
name: 'maintainStandardCancel',
code: '0304',
component: () => import('@/views/deviceManager/maintainStandard'),
- meta: { code: '0304', seq: 0, title: '淇濆吇鏍囧噯', icon: '', keepAlive: true }
+ meta: { code: '0304', title: '淇濆吇鏍囧噯', icon: '', keepAlive: true }
},
{
path: 'maintainPosition',
name: 'maintainPositionCancel',
code: '0305',
component: () => import('@/views/deviceManager/maintainPosition'),
- meta: { code: '0305', seq: 0, title: '淇濆吇閮ㄤ綅', icon: '', keepAlive: true }
+ meta: { code: '0305', title: '淇濆吇閮ㄤ綅', icon: '', keepAlive: true }
},
{
path: 'checkRecord',
name: 'checkRecordCancel',
code: '0306',
component: () => import('@/views/deviceManager/checkRecord'),
- meta: { code: '0306', seq: 0, title: '鐐规璁板綍', icon: '', keepAlive: true }
+ meta: { code: '0306', title: '鐐规璁板綍', icon: '', keepAlive: true }
},
{
path: 'maintainRecord',
name: 'maintainRecordCancel',
code: '0307',
component: () => import('@/views/deviceManager/maintainRecord'),
- meta: { code: '0307', seq: 0, title: '淇濆吇璁板綍', icon: '', keepAlive: true }
+ meta: { code: '0307', title: '淇濆吇璁板綍', icon: '', keepAlive: true }
},
{
path: 'repairRecord',
code: '0308',
name: 'repairRecordCancel',
component: () => import('@/views/deviceManager/repairRecord'),
- meta: { code: '0308', seq: 0, title: '缁翠慨璁板綍', icon: '', keepAlive: true }
+ meta: { code: '0308', title: '缁翠慨璁板綍', icon: '', keepAlive: true }
+ }
+ ]
+ },
+
+ {
+ path: '/mouldManager',
+ component: Layout,
+ redirect: '/mouldManager/mouldList',
+ name: '妯″叿绠$悊',
+ code: '09',
+ meta: { code: '09', title: '妯″叿绠$悊', icon: 'mj' },
+ alwaysShow: true,
+ children: [
+ {
+ path: 'mouldList',
+ name: 'mouldListCancel',
+ code: '0901',
+ component: () => import('@/views/mouldManager/mouldList'),
+ meta: { code: '0901', title: '妯″叿娓呭崟', icon: '', keepAlive: true }
+ }, {
+ path: 'mouldCheckPos',
+ name: 'mouldCheckCancel',
+ code: '0902',
+ component: () => import('@/views/mouldManager/mouldCheck'),
+ meta: { code: '0902', title: '妯″叿鐐规椤�', icon: '', keepAlive: true }
+ }, {
+ path: 'mouldCheckStand',
+ name: 'mouldCheckStandCancel',
+ code: '0903',
+ component: () => import('@/views/mouldManager/mouldCheckStand'),
+ meta: { code: '0903', title: '妯″叿鐐规鏍囧噯', icon: '', keepAlive: true }
+ }, {
+ path: 'mouldMaintain',
+ name: 'mouldMaintainCancel',
+ code: '0904',
+ component: () => import('@/views/mouldManager/mouldMaintain'),
+ meta: { code: '0904', title: '妯″叿淇濆吇椤�', icon: '', keepAlive: true }
+ }, {
+ path: 'mouldMaintainStand',
+ name: 'mouldMaintainStandCancel',
+ code: '0905',
+ component: () => import('@/views/mouldManager/mouldMaintainStand'),
+ meta: { code: '0905', title: '妯″叿淇濆吇鏍囧噯', icon: '', keepAlive: true }
+ }, {
+ path: 'mouldCheckRecord',
+ name: 'mouldCheckRecordCancel',
+ code: '0906',
+ component: () => import('@/views/mouldManager/mouldCheckRecord'),
+ meta: { code: '0906', title: '妯″叿鐐规璁板綍', icon: '', keepAlive: true }
+ }, {
+ path: 'mouldMaintainRecord',
+ name: 'mouldMaintainRecordCancel',
+ code: '0907',
+ component: () => import('@/views/mouldManager/mouldMaintainRecord'),
+ meta: { code: '0907', title: '妯″叿淇濆吇璁板綍', icon: '', keepAlive: true }
+ }, {
+ path: 'mouldRepairRecord',
+ name: 'mouldRepairRecordCancel',
+ code: '0908',
+ component: () => import('@/views/mouldManager/mouldRepairRecord'),
+ meta: { code: '0908', title: '妯″叿缁翠慨璁板綍', icon: '', keepAlive: true }
+ }, {
+ path: 'mouldUpDownRecord',
+ name: 'mouldUpDownRecordCancel',
+ code: '0909',
+ component: () => import('@/views/mouldManager/mouldUpDownRecord'),
+ meta: { code: '0909', title: '妯″叿涓婁笅鏈鸿褰�', icon: '', keepAlive: true }
+ }, {
+ path: 'mouldOutInRecord',
+ name: 'mouldOutInRecordCancel',
+ code: '0910',
+ component: () => import('@/views/mouldManager/mouldOutInRecord'),
+ meta: { code: '0910', title: '妯″叿鍑哄叆搴撹褰�', icon: '', keepAlive: true }
+ }, {
+ path: 'mouldCirculateRecord',
+ name: 'mouldCirculateRecordCancel',
+ code: '0911',
+ component: () => import('@/views/mouldManager/mouldCirculateRecord'),
+ meta: { code: '0911', title: '妯″叿鍊熻繕璁板綍', icon: '', keepAlive: true }
}
]
},
@@ -286,7 +369,7 @@
redirect: '/qualityManager/defectDefine',
name: '璐ㄩ噺绠$悊',
code: '04',
- meta: { code: '04', seq: 0, title: '璐ㄩ噺绠$悊', icon: 'quality' },
+ meta: { code: '04', title: '璐ㄩ噺绠$悊', icon: 'zlgl' },
alwaysShow: true,
children: [
{
@@ -294,32 +377,32 @@
name: 'defectDefineCancel',
code: '0401',
component: () => import('@/views/qualityManager/defectDefine'),
- meta: { code: '0401', seq: 0, title: '缂洪櫡瀹氫箟', icon: '', keepAlive: true }
+ meta: { code: '0401', title: '缂洪櫡瀹氫箟', icon: '', keepAlive: true }
},
{
path: 'processCheckItem',
name: 'processCheckItemCancel',
code: '0402',
component: () => import('@/views/qualityManager/processCheckItem'),
- meta: { code: '0402', seq: 0, title: '妫�楠岄」璁剧疆', icon: '', keepAlive: true }
+ meta: { code: '0402', title: '妫�楠岄」璁剧疆', icon: '', keepAlive: true }
}, {
path: 'qualityPlaning',
name: 'qualityPlaningCancel',
code: '0403',
component: () => import('@/views/qualityManager/qualityPlaning'),
- meta: { code: '0403', seq: 0, title: '璐ㄦ鏂规', icon: '', keepAlive: true }
+ meta: { code: '0403', title: '璐ㄦ鏂规', icon: '', keepAlive: true }
}, {
path: 'processCheck',
name: 'processCheckCancel',
code: '0404',
component: () => import('@/views/qualityManager/processCheck'),
- meta: { code: '0404', seq: 0, title: '宸ュ簭妫�楠�', icon: '', keepAlive: true }
+ meta: { code: '0404', title: '宸ュ簭妫�楠�', icon: '', keepAlive: true }
}, {
path: 'processCheckRecord',
name: 'processCheckRecordCancel',
code: '0405',
component: () => import('@/views/qualityManager/processCheckRecord'),
- meta: { code: '0405', seq: 0, title: '宸ュ簭妫�楠�', icon: '', keepAlive: true }
+ meta: { code: '0405', title: '宸ュ簭妫�楠�', icon: '', keepAlive: true }
}
]
},
@@ -330,7 +413,7 @@
redirect: '/workOrder/workOrderList',
name: '宸ュ崟绠$悊',
code: '05',
- meta: { code: '05', seq: 0, title: '宸ュ崟绠$悊', icon: 'bbgl' },
+ meta: { code: '05', title: '宸ュ崟绠$悊', icon: 'bbgl' },
alwaysShow: true, // 褰揷hildren鍙湁涓�涓椂锛屼篃鏄剧ず鐖惰彍鍗�
children: [
{
@@ -338,27 +421,27 @@
name: 'produceOrderListCancel',
code: '0501',
component: () => import('@/views/workOrder/produceOrderList'),
- meta: { code: '0501', seq: 0, title: 'ERP璁㈠崟', icon: '', keepAlive: true }
+ meta: { code: '0501', title: 'ERP璁㈠崟', icon: '', keepAlive: true }
},
{
path: 'workOrderList',
- name: 'workOrderListCancel',
+ name: 'WorkOrderListCancel',
code: '0502',
component: () => import('@/views/workOrder/workOrderList'),
- meta: { code: '0502', seq: 0, title: 'MES宸ュ崟', icon: '', keepAlive: true }
+ meta: { code: '0502', title: 'MES宸ュ崟', icon: '', keepAlive: true }
},
{
path: 'workOrderSend',
name: 'workOrderSendCancel',
code: '0503',
component: () => import('@/views/workOrder/workOrderSend'),
- meta: { code: '0503', seq: 0, title: '宸ュ崟娲惧彂', icon: '', keepAlive: true }
+ meta: { code: '0503', title: '宸ュ崟娲惧彂', icon: '', keepAlive: true }
}, {
path: 'workOrderClose',
name: 'workOrderCloseCancel',
code: '0504',
component: () => import('@/views/workOrder/workOrderClose'),
- meta: { code: '0504', seq: 0, title: '宸ュ崟鍏抽棴', icon: '', keepAlive: true }
+ meta: { code: '0504', title: '宸ュ崟鍏抽棴', icon: '', keepAlive: true }
}
]
@@ -370,7 +453,7 @@
redirect: '/produce/stepReport',
name: '鐢熶骇鎵ц',
code: '06',
- meta: { code: '06', seq: 0, title: '鐢熶骇鎵ц', icon: 'component' },
+ meta: { code: '06', title: '鐢熶骇鎵ц', icon: 'component' },
alwaysShow: true, // 褰揷hildren鍙湁涓�涓椂锛屼篃鏄剧ず鐖惰彍鍗�
children: [
{
@@ -378,63 +461,95 @@
name: 'stepReportCancel',
code: '0601',
component: () => import('@/views/produce/stepReport'),
- meta: { code: '0601', seq: 0, title: '宸ュ簭鎶ュ伐', icon: '', keepAlive: true }
+ meta: { code: '0601', title: '宸ュ簭鎶ュ伐', icon: '', keepAlive: true }
},
{
path: 'reportCorrect',
name: 'reportCorrectCancel',
code: '0602',
component: () => import('@/views/produce/reportCorrect'),
- meta: { code: '0602', seq: 0, title: '鎶ュ伐璋冩暣', icon: '', keepAlive: true }
+ meta: { code: '0602', title: '鎶ュ伐璋冩暣', icon: '', keepAlive: true }
}, {
path: 'reportVerify',
name: 'reportVerifyCancel',
code: '0603',
component: () => import('@/views/produce/reportVerify'),
- meta: { code: '0603', seq: 0, title: '鎶ュ伐瀹℃牳', icon: '', keepAlive: true }
+ meta: { code: '0603', title: '鎶ュ伐瀹℃牳', icon: '', keepAlive: true }
}
]
},
- // {
- // path: '/statistic',
- // component: Layout,
- // redirect: '/statistic/reportList',
- // name: '缁熻鎶ヨ〃',
- // code: '1004',
- // meta: { code: '1004', seq:0,title: '缁熻鎶ヨ〃', icon: 'quality' },
- // alwaysShow: true, // 褰揷hildren鍙湁涓�涓椂锛屼篃鏄剧ず鐖惰彍鍗�
- // children: [
- // {
- // path: 'reportList',
- // name: 'reportListCancel',
- // code: '1040',
- // component: () => import('@/views/statistic/reportList'),
- // meta: { code: '1040', seq:0,title: '鎶ュ伐璁板綍', icon: '', keepAlive: true }
- // },
- // {
- // path: 'monthReport',
- // name: 'monthReportCancel',
- // code: '1041',
- // component: () => import('@/views/statistic/monthReport'),
- // meta: { code: '1041', seq:0,title: '鏈堝害缁熻', icon: '', keepAlive: true }
- // }, {
- // path: 'workOrderProcess',
- // name: 'workOrderProcessCancel',
- // code: '1042',
- // component: () => import('@/views/statistic/workOrderProcess'),
- // meta: { code: '1042', seq:0,title: '宸ュ崟杩涘害', icon: '', keepAlive: true }
- // }, {
- // path: 'inProcessList',
- // name: 'inProcessListCancel',
- // code: '1043',
- // component: () => import('@/views/statistic/inProcessList'),
- // meta: { code: '1043', seq:0,title: '鍦ㄥ埗鍒楄〃', icon: '', keepAlive: true }
- // }
- //
- // ]
- // },
+ {
+ path: '/statistic',
+ component: Layout,
+ redirect: '/statistic/reportList',
+ name: '缁熻鎶ヨ〃',
+ code: '07',
+ meta: { code: '0701', title: '缁熻鎶ヨ〃', icon: 'quality' },
+ alwaysShow: true, // 褰揷hildren鍙湁涓�涓椂锛屼篃鏄剧ず鐖惰彍鍗�
+ children: [
+ {
+ path: 'reportList',
+ name: 'reportListCancel',
+ code: '1040',
+ component: () => import('@/views/statistic/reportList'),
+ meta: { code: '1040', title: '鎶ュ伐璁板綍', icon: '', keepAlive: true }
+ },
+ {
+ path: 'monthReport',
+ name: 'monthReportCancel',
+ code: '1041',
+ component: () => import('@/views/statistic/monthReport'),
+ meta: { code: '1041', title: '鏈堝害缁熻', icon: '', keepAlive: true }
+ }, {
+ path: 'workOrderProcess',
+ name: 'workOrderProcessCancel',
+ code: '0701',
+ component: () => import('@/views/statistic/workOrderProcess'),
+ meta: { code: '0701', title: '鐢熶骇杩涘害', icon: '', keepAlive: true }
+ }, {
+ path: 'inProcessList',
+ name: 'inProcessListCancel',
+ code: '1043',
+ component: () => import('@/views/statistic/inProcessList'),
+ meta: { code: '1043', title: '鍦ㄥ埗鍒楄〃', icon: '', keepAlive: true }
+ },
+ {
+ path: 'groupSalaryList',
+ name: 'groupSalaryListCancel',
+ code: '0702',
+ component: () => import('@/views/statistic/groupSalaryList'),
+ meta: { code: '0702', title: '鐝粍宸ヨ祫缁熻鎶ヨ〃', icon: '', keepAlive: true }
+ },
+ {
+ path: 'personSalaryList',
+ name: 'personSalaryListCancel',
+ code: '0703',
+ component: () => import('@/views/statistic/personSalaryList'),
+ meta: { code: '0703', title: '浜哄憳宸ヨ祫缁熻鎶ヨ〃', icon: '', keepAlive: true }
+ }, {
+ path: 'subcontractingOperation',
+ name: 'subcontractingOperationCancel',
+ code: '0704',
+ component: () => import('@/views/statistic/subcontractingOperation'),
+ meta: { code: '0704', title: '濮斿宸ュ簭鏄庣粏鎶ヨ〃', icon: '', keepAlive: true }
+ }, {
+ path: 'defectDetailList',
+ name: 'defectDetailListCancel',
+ code: '0705',
+ component: () => import('@/views/statistic/defectDetailList'),
+ meta: { code: '0705', title: '涓嶈壇鏄庣粏鎶ヨ〃', icon: '', keepAlive: true }
+ }, {
+ path: 'repairDetailList',
+ name: 'repairDetailListCancel',
+ code: '0706',
+ component: () => import('@/views/statistic/repairDetailList'),
+ meta: { code: '0706', title: '缁翠慨鏄庣粏鎶ヨ〃', icon: '', keepAlive: true }
+ }
+
+ ]
+ },
{
path: '/systemSetting',
@@ -442,7 +557,7 @@
redirect: '/systemSetting/encodingRules',
name: '绯荤粺璁剧疆',
code: '08',
- meta: { code: '08', seq: 0, title: '绯荤粺璁剧疆', icon: 'xtsz' },
+ meta: { code: '08', title: '绯荤粺璁剧疆', icon: 'xtsz' },
alwaysShow: true, // 褰揷hildren鍙湁涓�涓椂锛屼篃鏄剧ず鐖惰彍鍗�
children: [
{
@@ -450,14 +565,21 @@
name: 'menuListCancel',
code: '0801',
component: () => import('@/views/systemSetting/menuList'),
- meta: { code: '0801', seq: 0, title: '鑿滃崟绠$悊', icon: '', keepAlive: true }
+ meta: { code: '0801', title: '鑿滃崟绠$悊', icon: '', keepAlive: true }
},
{
path: 'reportList',
name: 'reportListCancel',
code: '0802',
component: () => import('@/views/systemSetting/encodingRules'),
- meta: { code: '0802', seq: 0, title: '缂栫爜瑙勫垯', icon: '', keepAlive: true }
+ meta: { code: '0802', title: '缂栫爜瑙勫垯', icon: '', keepAlive: true }
+ },
+ {
+ path: 'dataImport',
+ name: 'DataImport',
+ code: '0803',
+ component: () => import('@/views/systemSetting/dataImport'),
+ meta: { code: '0803', title: '鏁版嵁瀵煎叆', icon: '', keepAlive: true }
}
]
}
diff --git a/src/styles/global.css b/src/styles/global.css
index 4a09c44..6f5c868 100644
--- a/src/styles/global.css
+++ b/src/styles/global.css
@@ -3,8 +3,8 @@
height: 100%;
margin: 0;
padding: 0;
- min-width: 1200px;
- overflow-y: hidden;
+ /*min-width: 1200px;*/ /*杩欒浠g爜鐩墠涓嶈兘鍔� 鍔犱簡宸ュ崟鎵撳嵃瀹藉害浼氬嚭闂*/
+ /*overflow-y: hidden;*/
/*overflow-x: hidden;*/
-moz-osx-font-smoothing: grayscale;
@@ -63,6 +63,11 @@
justify-content: flex-end;
}
+.el-button--text{
+ font-size: 14px !important;
+ cursor: pointer !important;
+}
+
/*澶撮儴鎸夐挳缁勬牱寮�*/
.bodyTopButtonGroup {
diff --git a/src/utils/myEcharts.js b/src/utils/myEcharts.js
index 8add81c..b659d64 100644
--- a/src/utils/myEcharts.js
+++ b/src/utils/myEcharts.js
@@ -131,21 +131,21 @@
var option = {
backgroundColor: 'transparent',
grid: {
- left: '2%',
+ left: '5%',
right: '5%',
bottom: '0%',
top: '2%',
containLabel: true
},
- tooltip: {
- trigger: 'axis',
- axisPointer: {
- type: 'none'
- },
- formatter: function(params) {
- return params[0].name + ' : ' + params[0].value
- }
- },
+ // tooltip: {
+ // trigger: 'axis',
+ // axisPointer: {
+ // type: 'none'
+ // },
+ // formatter: function(params) {
+ // return params[0].name + ' : ' + params[0].value
+ // }
+ // },
xAxis: {
show: true,
type: 'value',
@@ -169,7 +169,7 @@
type: 'category',
inverse: true,
axisLabel: {
- show: true,
+ show: false,
textStyle: {
color: '#000'
}
@@ -266,16 +266,16 @@
const option = {
backgroundColor: 'transparent',
- tooltip: {
- trigger: 'axis',
- axisPointer: {
- // type: 'shadow',
- label: {
- show: true,
- backgroundColor: '#000'
- }
- }
- },
+ // tooltip: {
+ // trigger: 'axis',
+ // axisPointer: {
+ // // type: 'shadow',
+ // label: {
+ // show: true,
+ // backgroundColor: '#000'
+ // }
+ // }
+ // },
grid: {
left: '2%',
right: '5%',
@@ -327,7 +327,8 @@
}
}
},
- series: [{
+ series: [
+ {
name: '鏃堕棿',
type: 'line',
smooth: false,
@@ -346,7 +347,8 @@
}
},
data: dataY
- }]
+ }
+ ]
}
return option
@@ -1853,3 +1855,1272 @@
}
return option
}
+
+export function all01(xData2, yData) {
+ // var xData2 = ['123', '21', '32', '23', '1233']
+ var data1 = yData.map(i => i.quantity)
+ var data2 = yData.map(i => i.plan_qty)
+ var barWidth = 30
+ const option = {
+ backgroundColor: 'transparent',
+ // tooltip: {
+ // trigger: 'item'
+ // },
+ grid: {
+ left: '2%',
+ top: '20%',
+ right: '2%',
+ bottom: '5%',
+ containLabel: true
+ },
+ title: {
+ text: '鍚勮溅闂村綋鏈堣鍗曟暟/鍏ュ簱鏁伴噺',
+ left: '50%',
+ top: '0%',
+ textAlign: 'center',
+ textStyle: {
+ color: 'rgba(0,255,255,0.8)',
+ fontSize: '20',
+ fontWeight: 'bolder'
+ }
+ },
+ xAxis: {
+ data: xData2,
+ type: 'category',
+ boundaryGap: true,
+ axisLabel: {
+ interval: 0,
+ formatter: '{value}',
+ fontSize: 16,
+ margin: 20,
+ textStyle: {
+ color: colorX
+ }
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#032c58'
+ }
+ },
+ splitLine: {
+ show: false,
+ lineStyle: {
+ color: '#032c58'
+ }
+ },
+ axisTick: {
+ show: false
+ }
+ },
+ yAxis: {
+ boundaryGap: false,
+ // splitNumber: 4,
+ type: 'value',
+ // max: 100,
+ axisLabel: {
+ textStyle: {
+ fontSize: 16,
+ color: colorX
+ }
+ },
+ nameTextStyle: {
+ color: '#fff',
+ fontSize: 16,
+ lineHeight: 40
+ },
+ splitLine: {
+ show: true,
+ lineStyle: {
+ color: '#032c58'
+ }
+ },
+ axisLine: {
+ show: true,
+ lineStyle: {
+ color: '#032c58'
+ }
+ },
+ axisTick: {
+ show: false
+ }
+ },
+ series: [
+ { // 涓婂崐鎴煴瀛�
+ name: '2019',
+ type: 'bar',
+ barWidth: barWidth,
+ barGap: '-100%',
+ z: 0,
+ itemStyle: {
+ color: '#163F7A',
+ opacity: 0.7
+ },
+ data: data2
+ },
+ { // 涓嬪崐鎴煴瀛�
+ name: '2020',
+ type: 'bar',
+ barWidth: barWidth,
+ barGap: '-100%',
+ itemStyle: { // lenged鏂囨湰
+ opacity: 0.7,
+ color: function(params) {
+ return new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+ offset: 0,
+ color: '#12B9DB' // 0% 澶勭殑棰滆壊
+ }, {
+ offset: 1,
+ color: '#6F8EF2' // 100% 澶勭殑棰滆壊
+ }], false)
+ }
+ },
+ data: data1
+ },
+ { // 鏇夸唬鏌辩姸鍥� 榛樿涓嶆樉绀洪鑹诧紝鏄渶涓嬫柟鏌卞浘锛堥偖浠惰惀閿�锛夌殑value鍊� - 20
+ type: 'bar',
+ barWidth: barWidth,
+ barGap: '-100%',
+ stack: '骞垮憡',
+ itemStyle: {
+ color: 'transparent'
+ },
+ label: {
+ normal: {
+ show: true,
+ position: 'left',
+ fontSize: 16,
+ color: colorX,
+ zIndex: 10
+ }
+ },
+ data: data1
+ },
+ { // 涓婂崐鎴煴瀛愰《閮ㄥ渾鐗�
+ 'name': '',
+ 'type': 'pictorialBar',
+ 'symbolSize': [barWidth, 15],
+ 'symbolOffset': [0, -10],
+ 'z': 12,
+ 'symbolPosition': 'end',
+ itemStyle: {
+ color: '#163F7A',
+ opacity: 1
+ },
+ label: {
+ show: true,
+ position: 'top',
+ fontSize: 16,
+ color: '#fff'
+ },
+ 'data': data2
+ },
+ { // 涓嬪崐鎴煴瀛愰《閮ㄥ渾鐗�
+ 'name': '',
+ 'type': 'pictorialBar',
+ 'symbolSize': [barWidth, 15],
+ 'symbolOffset': [0, -10],
+ 'z': 12,
+ itemStyle: {
+ opacity: 1,
+ color: function(params) {
+ return new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+ offset: 0,
+ color: '#12B9DB' // 0% 澶勭殑棰滆壊
+ }, {
+ offset: 1,
+ color: '#6F8EF2' // 100% 澶勭殑棰滆壊
+ }], false)
+ }
+ },
+ // label: {
+ // show: true,
+ // position: 'top',
+ // fontSize: 16,
+ // color: '#fff'
+ // // formatter:(item)=>{
+ // // console.log(item)
+ // // return 'ssss'
+ // // }
+ // },
+ 'symbolPosition': 'end',
+ 'data': data1
+ },
+ { // 涓嬪崐鎴煴瀛愬簳閮ㄥ渾鐗�
+ 'name': '',
+ 'type': 'pictorialBar',
+ 'symbolSize': [barWidth, 15],
+ 'symbolOffset': [0, 5],
+ 'z': 12,
+ itemStyle: {
+ opacity: 1,
+ color: function(params) {
+ return new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+ offset: 0,
+ color: '#12B9DB' // 0% 澶勭殑棰滆壊
+ }, {
+ offset: 1,
+ color: '#6F8EF2' // 100% 澶勭殑棰滆壊
+ }], false)
+ }
+ },
+ 'data': [1, 1, 1, 1, 1]
+ },
+ {
+ name: '绗竴鍦�',
+ type: 'pictorialBar',
+ symbolSize: [47, 16],
+ symbolOffset: [0, 11],
+ z: 11,
+ itemStyle: {
+ normal: {
+ color: 'transparent',
+ borderColor: '#00ffff',
+ borderWidth: 2
+ }
+ },
+ data: [1, 1, 1, 1, 1]
+ },
+ {
+ name: '绗簩鍦�',
+ type: 'pictorialBar',
+ symbolSize: [62, 22],
+ symbolOffset: [0, 17],
+ z: 10,
+ itemStyle: {
+ normal: {
+ color: 'transparent',
+ borderColor: '#00ffff',
+ borderWidth: 2
+ }
+ },
+ data: [1, 1, 1, 1, 1]
+ }
+ ]
+ }
+
+ return option
+}
+
+export function all02(data) {
+ return {
+ backgroundColor: 'transparent',
+ // tooltip: {},
+ title: {
+ text: '姣忔湀璁㈠崟鏁伴噺/鍑哄簱鏁伴噺',
+ left: '50%',
+ top: '0%',
+ textAlign: 'center',
+ textStyle: {
+ // color: '#fff',
+ color: '#00ffff',
+ fontSize: '20',
+ fontWeight: 'bolder'
+ }
+ },
+ grid: {
+ left: '4%',
+ right: '4%',
+ bottom: '4%',
+ top: '15%',
+ containLabel: true
+ },
+ // legend: {
+ // show: false,
+ // itemGap: 50,
+ // data: ['娉ㄥ唽鎬婚噺', '鏈�鏂版敞鍐岄噺'],
+ // textStyle: {
+ // color: '#f9f9f9',
+ // borderColor: '#fff'
+ // }
+ // },
+ xAxis: [{
+ type: 'category',
+ boundaryGap: true,
+ axisLabel: {
+ interval: 0,
+ formatter: '{value}',
+ fontSize: 16,
+ margin: 20,
+ textStyle: {
+ color: colorX
+ }
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#032c58'
+ }
+ },
+ splitLine: {
+ show: false,
+ lineStyle: {
+ color: '#032c58'
+ }
+ },
+ axisTick: {
+ show: false
+ },
+ data: data.map(i => i.Month)
+ }],
+ yAxis: [
+ {
+ // max: 800,
+ boundaryGap: false,
+ splitNumber: 4,
+ type: 'value',
+ axisLabel: {
+ textStyle: {
+ fontSize: 16,
+ color: colorX
+ }
+ },
+ // name: '鍗�',
+ // nameTextStyle: {
+ // color: colorY,
+ // fontSize: 14,
+ // lineHeight: 20
+ // },
+ splitLine: {
+ show: true,
+ lineStyle: {
+ color: '#032c58'
+ }
+ },
+ axisLine: {
+ show: true,
+ lineStyle: {
+ color: '#032c58'
+ }
+ },
+ axisTick: {
+ show: true
+ }
+ }
+ ],
+ series: [
+ {
+ name: '娉ㄥ唽鎬婚噺',
+ type: 'line',
+ // smooth: true, //鏄惁骞虫粦鏇茬嚎鏄剧ず
+ // symbol:'circle', // 榛樿鏄┖蹇冨渾锛堜腑闂存槸鐧借壊鐨勶級锛屾敼鎴愬疄蹇冨渾
+ showAllSymbol: true,
+ symbol: 'emptyCircle',
+ symbolSize: 6,
+ lineStyle: {
+ normal: {
+ color: '#28ffb3' // 绾挎潯棰滆壊
+ },
+ borderColor: '#f0f'
+ },
+ label: {
+ show: true,
+ position: 'top',
+ textStyle: {
+ fontSize: 16,
+ color: '#fff'
+ }
+ },
+ itemStyle: {
+ normal: {
+ color: '#28ffb3'
+
+ }
+ },
+ tooltip: {
+ show: false
+ },
+ areaStyle: { // 鍖哄煙濉厖鏍峰紡
+ normal: {
+ // 绾挎�ф笎鍙橈紝鍓�4涓弬鏁板垎鍒槸x0,y0,x2,y2(鑼冨洿0~1);鐩稿綋浜庡浘褰㈠寘鍥寸洅涓殑鐧惧垎姣斻�傚鏋滄渶鍚庝竴涓弬鏁版槸鈥榯rue鈥欙紝鍒欒鍥涗釜鍊兼槸缁濆鍍忕礌浣嶇疆銆�
+ color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+ offset: 0,
+ color: 'rgba(0,154,120,1)'
+ },
+ {
+ offset: 1,
+ color: 'rgba(0,0,0, 0)'
+ }
+ ], false),
+ shadowColor: 'rgba(53,142,215, 0.9)', // 闃村奖棰滆壊
+ shadowBlur: 20 // shadowBlur璁惧浘褰㈤槾褰辩殑妯$硦澶у皬銆傞厤鍚坰hadowColor,shadowOffsetX/Y, 璁剧疆鍥惧舰鐨勯槾褰辨晥鏋溿��
+ }
+ },
+ data: data.map(i => i.quantity)
+ },
+ {
+ name: '鏈�鏂版敞鍐岄噺',
+ type: 'line',
+ barWidth: 20,
+ tooltip: {
+ show: false
+ },
+ label: {
+ show: true,
+ position: 'top',
+ textStyle: {
+ fontSize: 16,
+ color: '#fff'
+ }
+ },
+ areaStyle: { // 鍖哄煙濉厖鏍峰紡
+ normal: {
+ // 绾挎�ф笎鍙橈紝鍓�4涓弬鏁板垎鍒槸x0,y0,x2,y2(鑼冨洿0~1);鐩稿綋浜庡浘褰㈠寘鍥寸洅涓殑鐧惧垎姣斻�傚鏋滄渶鍚庝竴涓弬鏁版槸鈥榯rue鈥欙紝鍒欒鍥涗釜鍊兼槸缁濆鍍忕礌浣嶇疆銆�
+ color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+ offset: 0,
+ color: 'rgba(0,154,120,1)'
+ },
+ {
+ offset: 1,
+ color: 'rgba(0,0,0, 0)'
+ }
+ ], false),
+ shadowColor: 'rgba(53,142,215, 0.9)', // 闃村奖棰滆壊
+ shadowBlur: 20 // shadowBlur璁惧浘褰㈤槾褰辩殑妯$硦澶у皬銆傞厤鍚坰hadowColor,shadowOffsetX/Y, 璁剧疆鍥惧舰鐨勯槾褰辨晥鏋溿��
+ }
+ },
+ // itemStyle: {
+ // normal: {
+ // // barBorderRadius: 5,
+ // // color: new echarts.graphic.LinearGradient(
+ // // 0, 0, 0, 1,
+ // // [{
+ // // offset: 0,
+ // // color: '#14c8d4'
+ // // },
+ // // {
+ // // offset: 1,
+ // // color: '#43eec6'
+ // // }
+ // // ]
+ // // )
+ // color: function(params) {
+ // var colorList = ['#0ec1ff', '#10cdff', '#12daff', '#15ebff', '#17f8ff', '#1cfffb', '#1dfff1']
+ // return colorList[params.dataIndex]
+ // }
+ // }
+ // },
+ data: data.map(i => i.ouquantity)
+ }
+ ]
+ }
+}
+
+export function cjzl03(xData, legendData, yData, show) { // 宸︿晶
+ return {
+ backgroundColor: 'transparent',
+ // tooltip: {},
+ title: {
+ show: show,
+ text: '鍚勮溅闂翠笉鑹秼鍔�',
+ left: '50%',
+ top: '3%',
+ textAlign: 'center',
+ textStyle: {
+ // color: '#fff',
+ color: '#00ffff',
+ fontSize: '20',
+ fontWeight: 'bolder'
+ }
+ },
+ grid: {
+ left: '2%',
+ right: '2%',
+ bottom: '15%',
+ top: '20%',
+ containLabel: true
+ },
+ legend: {
+ data: legendData,
+ textStyle: { fontSize: 16, color: '#fff' },
+ itemWidth: 25,
+ itemHeight: 10,
+ itemGap: 15,
+ bottom: '5%',
+ selectedMode: false
+ },
+ xAxis: [{
+ type: 'category',
+ boundaryGap: true,
+ axisLabel: {
+ interval: 0,
+ formatter: '{value}',
+ fontSize: 16,
+ margin: 20,
+ textStyle: {
+ color: colorX
+ }
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#032c58'
+ }
+ },
+ splitLine: {
+ show: false,
+ lineStyle: {
+ color: '#032c58'
+ }
+ },
+ axisTick: {
+ show: false
+ },
+ data: xData
+ }],
+ yAxis: [
+ {
+ // max: 800,
+ boundaryGap: false,
+ splitNumber: 4,
+ type: 'value',
+ axisLabel: {
+ textStyle: {
+ fontSize: 18,
+ color: colorX
+ }
+ },
+ // name: '鍗�',
+ // nameTextStyle: {
+ // color: colorY,
+ // fontSize: 14,
+ // lineHeight: 20
+ // },
+ splitLine: {
+ show: true,
+ lineStyle: {
+ color: '#032c58'
+ }
+ },
+ axisLine: {
+ show: true,
+ lineStyle: {
+ color: '#032c58'
+ }
+ },
+ axisTick: {
+ show: true
+ }
+ }
+ ],
+ series: [
+ {
+ name: legendData[0],
+ type: 'line',
+ // smooth: true, //鏄惁骞虫粦鏇茬嚎鏄剧ず
+ // symbol:'circle', // 榛樿鏄┖蹇冨渾锛堜腑闂存槸鐧借壊鐨勶級锛屾敼鎴愬疄蹇冨渾
+ showAllSymbol: true,
+ symbol: 'emptyCircle',
+ symbolSize: 6,
+ lineStyle: {
+ normal: {
+ color: '#00ffff' // 绾挎潯棰滆壊
+ },
+ borderColor: '#00ffff'
+ },
+ label: {
+ show: true,
+ position: 'top',
+ textStyle: {
+ fontSize: 16,
+ color: '#fff'
+ }
+ },
+ itemStyle: {
+ normal: {
+ color: '#00ffff'
+ }
+ },
+ tooltip: {
+ show: false
+ },
+ // areaStyle: { // 鍖哄煙濉厖鏍峰紡
+ // normal: {
+ // // 绾挎�ф笎鍙橈紝鍓�4涓弬鏁板垎鍒槸x0,y0,x2,y2(鑼冨洿0~1);鐩稿綋浜庡浘褰㈠寘鍥寸洅涓殑鐧惧垎姣斻�傚鏋滄渶鍚庝竴涓弬鏁版槸鈥榯rue鈥欙紝鍒欒鍥涗釜鍊兼槸缁濆鍍忕礌浣嶇疆銆�
+ // color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+ // offset: 0,
+ // color: 'rgba(0,154,120,1)'
+ // },
+ // {
+ // offset: 1,
+ // color: 'rgba(0,0,0, 0)'
+ // }
+ // ], false),
+ // shadowColor: 'rgba(53,142,215, 0.9)', // 闃村奖棰滆壊
+ // shadowBlur: 20 // shadowBlur璁惧浘褰㈤槾褰辩殑妯$硦澶у皬銆傞厤鍚坰hadowColor,shadowOffsetX/Y, 璁剧疆鍥惧舰鐨勯槾褰辨晥鏋溿��
+ // }
+ // },
+ data: yData[0]
+ },
+ {
+ name: legendData[1],
+ type: 'line',
+ // smooth: true, //鏄惁骞虫粦鏇茬嚎鏄剧ず
+ // symbol:'circle', // 榛樿鏄┖蹇冨渾锛堜腑闂存槸鐧借壊鐨勶級锛屾敼鎴愬疄蹇冨渾
+ showAllSymbol: true,
+ symbol: 'emptyCircle',
+ symbolSize: 6,
+ lineStyle: {
+ normal: {
+ color: '#ff3000' // 绾挎潯棰滆壊
+ },
+ borderColor: '#ff3000'
+ },
+ label: {
+ show: true,
+ position: 'top',
+ textStyle: {
+ fontSize: 16,
+ color: '#fff'
+ }
+ },
+ itemStyle: {
+ normal: {
+ color: '#ff3000'
+ }
+ },
+ tooltip: {
+ show: false
+ },
+ // areaStyle: { // 鍖哄煙濉厖鏍峰紡
+ // normal: {
+ // // 绾挎�ф笎鍙橈紝鍓�4涓弬鏁板垎鍒槸x0,y0,x2,y2(鑼冨洿0~1);鐩稿綋浜庡浘褰㈠寘鍥寸洅涓殑鐧惧垎姣斻�傚鏋滄渶鍚庝竴涓弬鏁版槸鈥榯rue鈥欙紝鍒欒鍥涗釜鍊兼槸缁濆鍍忕礌浣嶇疆銆�
+ // color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+ // offset: 0,
+ // color: 'rgba(0,154,120,1)'
+ // },
+ // {
+ // offset: 1,
+ // color: 'rgba(0,0,0, 0)'
+ // }
+ // ], false),
+ // shadowColor: 'rgba(53,142,215, 0.9)', // 闃村奖棰滆壊
+ // shadowBlur: 20 // shadowBlur璁惧浘褰㈤槾褰辩殑妯$硦澶у皬銆傞厤鍚坰hadowColor,shadowOffsetX/Y, 璁剧疆鍥惧舰鐨勯槾褰辨晥鏋溿��
+ // }
+ // },
+ data: yData[1]
+ },
+ {
+ name: legendData[2],
+ type: 'line',
+ // smooth: true, //鏄惁骞虫粦鏇茬嚎鏄剧ず
+ // symbol:'circle', // 榛樿鏄┖蹇冨渾锛堜腑闂存槸鐧借壊鐨勶級锛屾敼鎴愬疄蹇冨渾
+ showAllSymbol: true,
+ symbol: 'emptyCircle',
+ symbolSize: 6,
+ lineStyle: {
+ normal: {
+ color: '#ffa800' // 绾挎潯棰滆壊
+ },
+ borderColor: '#ffa800'
+ },
+ label: {
+ show: true,
+ position: 'top',
+ textStyle: {
+ fontSize: 16,
+ color: '#fff'
+ }
+ },
+ itemStyle: {
+ normal: {
+ color: '#ffa800'
+ }
+ },
+ tooltip: {
+ show: false
+ },
+ // areaStyle: { // 鍖哄煙濉厖鏍峰紡
+ // normal: {
+ // // 绾挎�ф笎鍙橈紝鍓�4涓弬鏁板垎鍒槸x0,y0,x2,y2(鑼冨洿0~1);鐩稿綋浜庡浘褰㈠寘鍥寸洅涓殑鐧惧垎姣斻�傚鏋滄渶鍚庝竴涓弬鏁版槸鈥榯rue鈥欙紝鍒欒鍥涗釜鍊兼槸缁濆鍍忕礌浣嶇疆銆�
+ // color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+ // offset: 0,
+ // color: 'rgba(0,154,120,1)'
+ // },
+ // {
+ // offset: 1,
+ // color: 'rgba(0,0,0, 0)'
+ // }
+ // ], false),
+ // shadowColor: 'rgba(53,142,215, 0.9)', // 闃村奖棰滆壊
+ // shadowBlur: 20 // shadowBlur璁惧浘褰㈤槾褰辩殑妯$硦澶у皬銆傞厤鍚坰hadowColor,shadowOffsetX/Y, 璁剧疆鍥惧舰鐨勯槾褰辨晥鏋溿��
+ // }
+ // },
+ data: yData[2]
+ },
+ {
+ name: legendData[3],
+ type: 'line',
+ // smooth: true, //鏄惁骞虫粦鏇茬嚎鏄剧ず
+ // symbol:'circle', // 榛樿鏄┖蹇冨渾锛堜腑闂存槸鐧借壊鐨勶級锛屾敼鎴愬疄蹇冨渾
+ showAllSymbol: true,
+ symbol: 'emptyCircle',
+ symbolSize: 6,
+ lineStyle: {
+ normal: {
+ color: '#ffee00' // 绾挎潯棰滆壊
+ },
+ borderColor: '#ffee00'
+ },
+ label: {
+ show: true,
+ position: 'top',
+ textStyle: {
+ fontSize: 16,
+ color: '#fff'
+ }
+ },
+ itemStyle: {
+ normal: {
+ color: '#ffee00'
+ }
+ },
+ tooltip: {
+ show: false
+ },
+ // areaStyle: { // 鍖哄煙濉厖鏍峰紡
+ // normal: {
+ // // 绾挎�ф笎鍙橈紝鍓�4涓弬鏁板垎鍒槸x0,y0,x2,y2(鑼冨洿0~1);鐩稿綋浜庡浘褰㈠寘鍥寸洅涓殑鐧惧垎姣斻�傚鏋滄渶鍚庝竴涓弬鏁版槸鈥榯rue鈥欙紝鍒欒鍥涗釜鍊兼槸缁濆鍍忕礌浣嶇疆銆�
+ // color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+ // offset: 0,
+ // color: 'rgba(0,154,120,1)'
+ // },
+ // {
+ // offset: 1,
+ // color: 'rgba(0,0,0, 0)'
+ // }
+ // ], false),
+ // shadowColor: 'rgba(53,142,215, 0.9)', // 闃村奖棰滆壊
+ // shadowBlur: 20 // shadowBlur璁惧浘褰㈤槾褰辩殑妯$硦澶у皬銆傞厤鍚坰hadowColor,shadowOffsetX/Y, 璁剧疆鍥惧舰鐨勯槾褰辨晥鏋溿��
+ // }
+ // },
+ data: yData[3]
+ },
+ {
+ name: legendData[4],
+ type: 'line',
+ // smooth: true, //鏄惁骞虫粦鏇茬嚎鏄剧ず
+ // symbol:'circle', // 榛樿鏄┖蹇冨渾锛堜腑闂存槸鐧借壊鐨勶級锛屾敼鎴愬疄蹇冨渾
+ showAllSymbol: true,
+ symbol: 'emptyCircle',
+ symbolSize: 6,
+ lineStyle: {
+ normal: {
+ color: '#ff5b00' // 绾挎潯棰滆壊
+ },
+ borderColor: '#ff5b00'
+ },
+ label: {
+ show: true,
+ position: 'top',
+ textStyle: {
+ fontSize: 16,
+ color: '#fff'
+ }
+ },
+ itemStyle: {
+ normal: {
+ color: '#ff5b00'
+ }
+ },
+ tooltip: {
+ show: false
+ },
+ // areaStyle: { // 鍖哄煙濉厖鏍峰紡
+ // normal: {
+ // // 绾挎�ф笎鍙橈紝鍓�4涓弬鏁板垎鍒槸x0,y0,x2,y2(鑼冨洿0~1);鐩稿綋浜庡浘褰㈠寘鍥寸洅涓殑鐧惧垎姣斻�傚鏋滄渶鍚庝竴涓弬鏁版槸鈥榯rue鈥欙紝鍒欒鍥涗釜鍊兼槸缁濆鍍忕礌浣嶇疆銆�
+ // color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+ // offset: 0,
+ // color: 'rgba(0,154,120,1)'
+ // },
+ // {
+ // offset: 1,
+ // color: 'rgba(0,0,0, 0)'
+ // }
+ // ], false),
+ // shadowColor: 'rgba(53,142,215, 0.9)', // 闃村奖棰滆壊
+ // shadowBlur: 20 // shadowBlur璁惧浘褰㈤槾褰辩殑妯$硦澶у皬銆傞厤鍚坰hadowColor,shadowOffsetX/Y, 璁剧疆鍥惧舰鐨勯槾褰辨晥鏋溿��
+ // }
+ // },
+ data: yData[4]
+ }
+ ]
+ }
+}
+
+export function cjzl03_2(xData, legendData, yData, show) { // 宸︿晶
+ return {
+ backgroundColor: 'transparent',
+ // tooltip: {},
+ // title: {
+ // show: show,
+ // text: '鍚勮溅闂翠笉鑹秼鍔�',
+ // left: '50%',
+ // top: '3%',
+ // textAlign: 'center',
+ // textStyle: {
+ // // color: '#fff',
+ // color: '#00ffff',
+ // fontSize: '20',
+ // fontWeight: 'bolder'
+ // }
+ // },
+ grid: {
+ left: '2%',
+ right: '2%',
+ bottom: '5%',
+ top: '20%',
+ containLabel: true
+ },
+ // legend: {
+ // data: legendData,
+ // textStyle: { fontSize: 16, color: '#fff' },
+ // itemWidth: 25,
+ // itemHeight: 10,
+ // itemGap: 15,
+ // bottom: '5%',
+ // selectedMode: false
+ // },
+ xAxis: [{
+ type: 'category',
+ boundaryGap: true,
+ axisLabel: {
+ interval: 0,
+ formatter: '{value}',
+ fontSize: 16,
+ margin: 20,
+ textStyle: {
+ color: colorX
+ }
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#032c58'
+ }
+ },
+ splitLine: {
+ show: false,
+ lineStyle: {
+ color: '#032c58'
+ }
+ },
+ axisTick: {
+ show: false
+ },
+ data: xData
+ }],
+ yAxis: [
+ {
+ // max: 800,
+ boundaryGap: false,
+ splitNumber: 4,
+ type: 'value',
+ axisLabel: {
+ textStyle: {
+ fontSize: 18,
+ color: colorX
+ }
+ },
+ // name: '鍗�',
+ // nameTextStyle: {
+ // color: colorY,
+ // fontSize: 14,
+ // lineHeight: 20
+ // },
+ splitLine: {
+ show: true,
+ lineStyle: {
+ color: '#032c58'
+ }
+ },
+ axisLine: {
+ show: true,
+ lineStyle: {
+ color: '#032c58'
+ }
+ },
+ axisTick: {
+ show: true
+ }
+ }
+ ],
+ series: [
+ {
+ name: legendData[0],
+ type: 'line',
+ // smooth: true, //鏄惁骞虫粦鏇茬嚎鏄剧ず
+ // symbol:'circle', // 榛樿鏄┖蹇冨渾锛堜腑闂存槸鐧借壊鐨勶級锛屾敼鎴愬疄蹇冨渾
+ showAllSymbol: true,
+ symbol: 'emptyCircle',
+ symbolSize: 6,
+ lineStyle: {
+ normal: {
+ color: '#00ffff' // 绾挎潯棰滆壊
+ },
+ borderColor: '#00ffff'
+ },
+ label: {
+ show: true,
+ position: 'top',
+ textStyle: {
+ fontSize: 16,
+ color: '#fff'
+ }
+ },
+ itemStyle: {
+ normal: {
+ color: '#00ffff'
+ }
+ },
+ tooltip: {
+ show: false
+ },
+ // areaStyle: { // 鍖哄煙濉厖鏍峰紡
+ // normal: {
+ // // 绾挎�ф笎鍙橈紝鍓�4涓弬鏁板垎鍒槸x0,y0,x2,y2(鑼冨洿0~1);鐩稿綋浜庡浘褰㈠寘鍥寸洅涓殑鐧惧垎姣斻�傚鏋滄渶鍚庝竴涓弬鏁版槸鈥榯rue鈥欙紝鍒欒鍥涗釜鍊兼槸缁濆鍍忕礌浣嶇疆銆�
+ // color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+ // offset: 0,
+ // color: 'rgba(0,154,120,1)'
+ // },
+ // {
+ // offset: 1,
+ // color: 'rgba(0,0,0, 0)'
+ // }
+ // ], false),
+ // shadowColor: 'rgba(53,142,215, 0.9)', // 闃村奖棰滆壊
+ // shadowBlur: 20 // shadowBlur璁惧浘褰㈤槾褰辩殑妯$硦澶у皬銆傞厤鍚坰hadowColor,shadowOffsetX/Y, 璁剧疆鍥惧舰鐨勯槾褰辨晥鏋溿��
+ // }
+ // },
+ data: yData[0]
+ },
+ {
+ name: legendData[1],
+ type: 'line',
+ // smooth: true, //鏄惁骞虫粦鏇茬嚎鏄剧ず
+ // symbol:'circle', // 榛樿鏄┖蹇冨渾锛堜腑闂存槸鐧借壊鐨勶級锛屾敼鎴愬疄蹇冨渾
+ showAllSymbol: true,
+ symbol: 'emptyCircle',
+ symbolSize: 6,
+ lineStyle: {
+ normal: {
+ color: '#ff3000' // 绾挎潯棰滆壊
+ },
+ borderColor: '#ff3000'
+ },
+ label: {
+ show: true,
+ position: 'top',
+ textStyle: {
+ fontSize: 16,
+ color: '#fff'
+ }
+ },
+ itemStyle: {
+ normal: {
+ color: '#ff3000'
+ }
+ },
+ tooltip: {
+ show: false
+ },
+ // areaStyle: { // 鍖哄煙濉厖鏍峰紡
+ // normal: {
+ // // 绾挎�ф笎鍙橈紝鍓�4涓弬鏁板垎鍒槸x0,y0,x2,y2(鑼冨洿0~1);鐩稿綋浜庡浘褰㈠寘鍥寸洅涓殑鐧惧垎姣斻�傚鏋滄渶鍚庝竴涓弬鏁版槸鈥榯rue鈥欙紝鍒欒鍥涗釜鍊兼槸缁濆鍍忕礌浣嶇疆銆�
+ // color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+ // offset: 0,
+ // color: 'rgba(0,154,120,1)'
+ // },
+ // {
+ // offset: 1,
+ // color: 'rgba(0,0,0, 0)'
+ // }
+ // ], false),
+ // shadowColor: 'rgba(53,142,215, 0.9)', // 闃村奖棰滆壊
+ // shadowBlur: 20 // shadowBlur璁惧浘褰㈤槾褰辩殑妯$硦澶у皬銆傞厤鍚坰hadowColor,shadowOffsetX/Y, 璁剧疆鍥惧舰鐨勯槾褰辨晥鏋溿��
+ // }
+ // },
+ data: yData[1]
+ },
+ {
+ name: legendData[2],
+ type: 'line',
+ // smooth: true, //鏄惁骞虫粦鏇茬嚎鏄剧ず
+ // symbol:'circle', // 榛樿鏄┖蹇冨渾锛堜腑闂存槸鐧借壊鐨勶級锛屾敼鎴愬疄蹇冨渾
+ showAllSymbol: true,
+ symbol: 'emptyCircle',
+ symbolSize: 6,
+ lineStyle: {
+ normal: {
+ color: '#ffa800' // 绾挎潯棰滆壊
+ },
+ borderColor: '#ffa800'
+ },
+ label: {
+ show: true,
+ position: 'top',
+ textStyle: {
+ fontSize: 16,
+ color: '#fff'
+ }
+ },
+ itemStyle: {
+ normal: {
+ color: '#ffa800'
+ }
+ },
+ tooltip: {
+ show: false
+ },
+ // areaStyle: { // 鍖哄煙濉厖鏍峰紡
+ // normal: {
+ // // 绾挎�ф笎鍙橈紝鍓�4涓弬鏁板垎鍒槸x0,y0,x2,y2(鑼冨洿0~1);鐩稿綋浜庡浘褰㈠寘鍥寸洅涓殑鐧惧垎姣斻�傚鏋滄渶鍚庝竴涓弬鏁版槸鈥榯rue鈥欙紝鍒欒鍥涗釜鍊兼槸缁濆鍍忕礌浣嶇疆銆�
+ // color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+ // offset: 0,
+ // color: 'rgba(0,154,120,1)'
+ // },
+ // {
+ // offset: 1,
+ // color: 'rgba(0,0,0, 0)'
+ // }
+ // ], false),
+ // shadowColor: 'rgba(53,142,215, 0.9)', // 闃村奖棰滆壊
+ // shadowBlur: 20 // shadowBlur璁惧浘褰㈤槾褰辩殑妯$硦澶у皬銆傞厤鍚坰hadowColor,shadowOffsetX/Y, 璁剧疆鍥惧舰鐨勯槾褰辨晥鏋溿��
+ // }
+ // },
+ data: yData[2]
+ },
+ {
+ name: legendData[3],
+ type: 'line',
+ // smooth: true, //鏄惁骞虫粦鏇茬嚎鏄剧ず
+ // symbol:'circle', // 榛樿鏄┖蹇冨渾锛堜腑闂存槸鐧借壊鐨勶級锛屾敼鎴愬疄蹇冨渾
+ showAllSymbol: true,
+ symbol: 'emptyCircle',
+ symbolSize: 6,
+ lineStyle: {
+ normal: {
+ color: '#ffee00' // 绾挎潯棰滆壊
+ },
+ borderColor: '#ffee00'
+ },
+ label: {
+ show: true,
+ position: 'top',
+ textStyle: {
+ fontSize: 16,
+ color: '#fff'
+ }
+ },
+ itemStyle: {
+ normal: {
+ color: '#ffee00'
+ }
+ },
+ tooltip: {
+ show: false
+ },
+ // areaStyle: { // 鍖哄煙濉厖鏍峰紡
+ // normal: {
+ // // 绾挎�ф笎鍙橈紝鍓�4涓弬鏁板垎鍒槸x0,y0,x2,y2(鑼冨洿0~1);鐩稿綋浜庡浘褰㈠寘鍥寸洅涓殑鐧惧垎姣斻�傚鏋滄渶鍚庝竴涓弬鏁版槸鈥榯rue鈥欙紝鍒欒鍥涗釜鍊兼槸缁濆鍍忕礌浣嶇疆銆�
+ // color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+ // offset: 0,
+ // color: 'rgba(0,154,120,1)'
+ // },
+ // {
+ // offset: 1,
+ // color: 'rgba(0,0,0, 0)'
+ // }
+ // ], false),
+ // shadowColor: 'rgba(53,142,215, 0.9)', // 闃村奖棰滆壊
+ // shadowBlur: 20 // shadowBlur璁惧浘褰㈤槾褰辩殑妯$硦澶у皬銆傞厤鍚坰hadowColor,shadowOffsetX/Y, 璁剧疆鍥惧舰鐨勯槾褰辨晥鏋溿��
+ // }
+ // },
+ data: yData[3]
+ },
+ {
+ name: legendData[4],
+ type: 'line',
+ // smooth: true, //鏄惁骞虫粦鏇茬嚎鏄剧ず
+ // symbol:'circle', // 榛樿鏄┖蹇冨渾锛堜腑闂存槸鐧借壊鐨勶級锛屾敼鎴愬疄蹇冨渾
+ showAllSymbol: true,
+ symbol: 'emptyCircle',
+ symbolSize: 6,
+ lineStyle: {
+ normal: {
+ color: '#ff5b00' // 绾挎潯棰滆壊
+ },
+ borderColor: '#ff5b00'
+ },
+ label: {
+ show: true,
+ position: 'top',
+ textStyle: {
+ fontSize: 16,
+ color: '#fff'
+ }
+ },
+ itemStyle: {
+ normal: {
+ color: '#ff5b00'
+ }
+ },
+ tooltip: {
+ show: false
+ },
+ // areaStyle: { // 鍖哄煙濉厖鏍峰紡
+ // normal: {
+ // // 绾挎�ф笎鍙橈紝鍓�4涓弬鏁板垎鍒槸x0,y0,x2,y2(鑼冨洿0~1);鐩稿綋浜庡浘褰㈠寘鍥寸洅涓殑鐧惧垎姣斻�傚鏋滄渶鍚庝竴涓弬鏁版槸鈥榯rue鈥欙紝鍒欒鍥涗釜鍊兼槸缁濆鍍忕礌浣嶇疆銆�
+ // color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+ // offset: 0,
+ // color: 'rgba(0,154,120,1)'
+ // },
+ // {
+ // offset: 1,
+ // color: 'rgba(0,0,0, 0)'
+ // }
+ // ], false),
+ // shadowColor: 'rgba(53,142,215, 0.9)', // 闃村奖棰滆壊
+ // shadowBlur: 20 // shadowBlur璁惧浘褰㈤槾褰辩殑妯$硦澶у皬銆傞厤鍚坰hadowColor,shadowOffsetX/Y, 璁剧疆鍥惧舰鐨勯槾褰辨晥鏋溿��
+ // }
+ // },
+ data: yData[4]
+ }
+ ]
+ }
+}
+
+export function cjzl04(xData, yData) {
+ const option = {
+ backgroundColor: 'transparent',
+ // tooltip: {
+ // trigger: 'axis',
+ // axisPointer: {
+ // type: 'shadow'
+ // }
+ // },
+ grid: {
+ left: '2%',
+ right: '2%',
+ bottom: '5%',
+ top: '20%',
+ containLabel: true
+ },
+ xAxis: [{
+ type: 'category',
+ data: xData,
+ boundaryGap: true,
+ axisLabel: {
+ interval: 0,
+ formatter: '{value}',
+ fontSize: 16,
+ margin: 20,
+ textStyle: {
+ color: colorX
+ }
+ },
+ axisLine: {
+ lineStyle: {
+ color: '#032c58'
+ }
+ },
+ splitLine: {
+ show: false,
+ lineStyle: {
+ color: '#032c58'
+ }
+ },
+ axisTick: {
+ show: false
+ }
+ }],
+ yAxis: [
+ {
+ // max: 800,
+ boundaryGap: false,
+ splitNumber: 4,
+ type: 'value',
+ axisLabel: {
+ textStyle: {
+ fontSize: 18,
+ color: colorX
+ }
+ },
+ // name: '鍗�',
+ // nameTextStyle: {
+ // color: colorY,
+ // fontSize: 14,
+ // lineHeight: 20
+ // },
+ splitLine: {
+ show: true,
+ lineStyle: {
+ color: '#032c58'
+ }
+ },
+ axisLine: {
+ show: true,
+ lineStyle: {
+ color: '#032c58'
+ }
+ },
+ axisTick: {
+ show: true
+ }
+ }
+ ],
+ series: [
+ {
+ type: 'bar',
+ data: yData,
+ barWidth: '20px',
+ itemStyle: {
+ normal: {
+ color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+ offset: 0,
+ color: 'rgba(0,244,255,1)' // 0% 澶勭殑棰滆壊
+ }, {
+ offset: 1,
+ color: 'rgba(0,77,167,1)' // 100% 澶勭殑棰滆壊
+ }], false),
+ barBorderRadius: [30, 30, 30, 30],
+ shadowColor: 'rgba(0,160,221,1)',
+ shadowBlur: 4
+ }
+ },
+ label: {
+ normal: {
+ show: true,
+ lineHeight: 30,
+ width: 80,
+ height: 30,
+ backgroundColor: 'rgba(0,160,221,0.1)',
+ borderRadius: 200,
+ position: ['-8', '-60'],
+ distance: 1,
+ formatter: [
+ ' {d|鈼弣',
+ ' {a|{c}} \n',
+ ' {b|}'
+ ].join(','),
+ rich: {
+ d: {
+ color: '#3CDDCF'
+ },
+ a: {
+ fontSize: 16,
+ color: '#3CDDCF',
+ align: 'center'
+ },
+ b: {
+ width: 1,
+ height: 30,
+ borderWidth: 1,
+ borderColor: '#3CDDCF',
+ align: 'left'
+ }
+ }
+ }
+ }
+ }
+ ]
+ }
+
+ return option
+}
diff --git a/src/views/basicSettings/contactUnitList.vue b/src/views/basicSettings/contactUnitList.vue
index 448a898..b62fa97 100644
--- a/src/views/basicSettings/contactUnitList.vue
+++ b/src/views/basicSettings/contactUnitList.vue
@@ -61,8 +61,13 @@
<div
style=" width:calc(100% - 300px);"
>
- <div class="bodyTopButtonGroup">
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
<el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+ <div style="display: flex">
+ <el-button v-waves type="success" icon="el-icon-download" @click="$router.push('./../systemSetting/dataImport?fileCode=5')">瀵煎叆</el-button>
+ <el-button v-waves icon="el-icon-refresh-right" @click="syncERP">鍚屾寰�鏉ュ崟浣�</el-button>
+
+ </div>
</div>
<div class="bodyTopFormGroup">
@@ -216,12 +221,12 @@
{{ row.addr?row.addr:'/' }}
</template>
</el-table-column>
- <el-table-column
- label="鏁版嵁鏉ユ簮"
- prop="data_sources"
- sortable="custom"
- width="110"
- />
+ <!-- <el-table-column-->
+ <!-- label="鏁版嵁鏉ユ簮"-->
+ <!-- prop="data_sources"-->
+ <!-- sortable="custom"-->
+ <!-- width="110"-->
+ <!-- />-->
<el-table-column
label="鍒涘缓浜哄憳"
prop="username"
@@ -418,6 +423,7 @@
TCunstomerClassTreeDelete,
TCunstomerData, TCunstomerDelete
} from '@/api/basicSettings'
+import { SeaveSearchPartner } from '@/api/ErpSyncMes'
export default {
name: 'RoleList',
@@ -519,12 +525,15 @@
i.idparent = i.idparent ? i.idparent : '-1'
})
this.treeLeftArr = res.data
+ this.treeLeftArr.forEach(e => {
+ e.name = e.code + ' ' + e.name
+ })
this.treeLeft = arrayToTree(this.treeLeft.concat(res.data), {
parentProperty: 'idparent',
customID: 'code',
childrenProperty: 'children'
})
-
+ console.log(JSON.stringify(this.treeLeft), 1)
this.$nextTick(() => {
this.$refs.treeLeftRef.setCurrentKey('-1')
this.getTCunstomerData(this.$refs.treeLeftRef.getCurrentNode())
@@ -660,7 +669,7 @@
treeEditClick(node, data, operation) {
this.dialogClassForm.data_sources = data.data_sources
this.dialogClassForm.customerclasscode = data.code
- this.dialogClassForm.customerclassname = data.name
+ this.dialogClassForm.customerclassname = data.name.split(' ')[1]
this.dialogClassForm.parentcode = data.idparent === '-1' ? '' : data.idparent
this.dialogClassForm.OperType = 'Update'
this.operation = operation
@@ -762,6 +771,35 @@
this.dialogForm.idUnitBySale = mainUnitCode
this.dialogForm.idunitbymanufacture = mainUnitCode
}
+ },
+ // 鍚屾ERP
+ syncERP() {
+ const loading = this.$loading({
+ lock: true,
+ text: '姝e湪鍚屾ERP锛岃绋嶇瓑...',
+ spinner: 'el-icon-loading',
+ customClass: 'osloading',
+ background: 'rgba(0, 0, 0, 0.7)'
+ })
+
+ SeaveSearchPartner().then(res => {
+ if (res.code === '200') {
+ setTimeout(() => {
+ this.getTCunstomerData(this.$refs.treeLeftRef.getCurrentNode())
+ this.getTCunstomerClassTree()
+ loading.close()
+ this.$notify.success('鍚屾鎴愬姛锛�')
+ }, 2000)
+ }
+ // else if (res.code === '300') {
+ // setTimeout(() => {
+ // loading.close()
+ // this.$message.error('鍚屾澶辫触锛�')
+ // }, 10000)
+ // }
+ }).catch(e => {
+ loading.close()
+ })
}
}
}
diff --git a/src/views/basicSettings/groupList.vue b/src/views/basicSettings/groupList.vue
index 89fc83d..a8e7617 100644
--- a/src/views/basicSettings/groupList.vue
+++ b/src/views/basicSettings/groupList.vue
@@ -3,6 +3,7 @@
<div class="body" :style="{height:mainHeight+'px'}">
<div class="bodyTopButtonGroup" style="justify-content: space-between">
<el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+ <el-button v-waves type="success" icon="el-icon-download" @click="$router.push('./../systemSetting/dataImport?fileCode=2')">瀵煎叆</el-button>
</div>
<div class="bodyTopFormGroup">
diff --git a/src/views/basicSettings/organizationList.vue b/src/views/basicSettings/organizationList.vue
index 76e2b73..d821c74 100644
--- a/src/views/basicSettings/organizationList.vue
+++ b/src/views/basicSettings/organizationList.vue
@@ -131,15 +131,15 @@
</el-table>
</div>
<!--鍒嗛〉-->
- <pagination
- :total="total"
- :page.sync="form.page"
- :limit.sync="form.rows"
- align="right"
- layout="total,prev, pager, next,sizes,jumper"
- popper-class="select_bottom"
- @pagination="getSTorgData"
- />
+ <!-- <pagination-->
+ <!-- :total="total"-->
+ <!-- :page.sync="form.page"-->
+ <!-- :limit.sync="form.rows"-->
+ <!-- align="right"-->
+ <!-- layout="total,prev, pager, next,sizes,jumper"-->
+ <!-- popper-class="select_bottom"-->
+ <!-- @pagination="getSTorgData"-->
+ <!-- />-->
</div>
<el-dialog
@@ -219,11 +219,11 @@
tableHeight: 0,
form: {
storg_code: '', // 缁勭粐鏋舵瀯缂栫爜
- storg_name: '', // 缁勭粐鏋舵瀯鍚嶇О
- prop: 'lm_date', // 鎺掑簭瀛楁
- order: 'desc', // 鎺掑簭瀛楁
- page: 1, // 绗嚑椤�
- rows: 20 // 姣忛〉澶氬皯鏉�
+ storg_name: '' // 缁勭粐鏋舵瀯鍚嶇О
+ // prop: 'lm_date', // 鎺掑簭瀛楁
+ // order: 'desc', // 鎺掑簭瀛楁
+ // page: 1, // 绗嚑椤�
+ // rows: 20 // 姣忛〉澶氬皯鏉�
},
total: 10,
tableData: [],
@@ -431,7 +431,7 @@
getHeight() {
this.$nextTick(() => {
this.mainHeight = window.innerHeight - 85
- this.tableHeight = this.mainHeight - 200
+ this.tableHeight = this.mainHeight - 137
this.$refs.tableDataRef.doLayout()
})
}
diff --git a/src/views/basicSettings/personList.vue b/src/views/basicSettings/personList.vue
index 4635050..4f93ad5 100644
--- a/src/views/basicSettings/personList.vue
+++ b/src/views/basicSettings/personList.vue
@@ -37,8 +37,9 @@
</div>
<div style="width: calc(100% - 300px)">
- <div class="bodyTopButtonGroup">
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
<el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+ <el-button v-waves type="success" icon="el-icon-download" @click="$router.push('./../systemSetting/dataImport?fileCode=3')">瀵煎叆</el-button>
</div>
<div class="bodyTopFormGroup">
@@ -127,15 +128,18 @@
prop="usercode"
label="鐢ㄦ埛缂栫爜"
sortable="custom"
+ show-overflow-tooltip
/>
<el-table-column
prop="username"
label="鐢ㄦ埛鍚嶇О"
sortable="custom"
+ show-overflow-tooltip
/>
<el-table-column
prop="storg_name"
label="鎵�灞炵粍缁�"
+ show-overflow-tooltip
sortable="custom"
>
<template slot-scope="{row}">
@@ -146,11 +150,12 @@
<el-table-column
prop="status"
label="鐘舵��"
+ show-overflow-tooltip
sortable="custom"
>
<template slot-scope="{row}">
- <el-tag v-if="row.status==='Y'" size="small" type="success">姝e父</el-tag>
- <el-tag v-if="row.status==='N'" size="small" type="danger">鍋滅敤</el-tag>
+ <el-tag v-if="row.status==='Y'" size="small" type="success">鍦ㄨ亴</el-tag>
+ <el-tag v-if="row.status==='N'" size="small" type="danger">绂昏亴</el-tag>
</template>
</el-table-column>
<el-table-column
@@ -300,8 +305,8 @@
<el-form-item required label="鐢ㄦ埛鐘舵��">
<el-radio-group v-model="dialogForm.status" style="width: 200px;">
- <el-radio label="Y">姝e父</el-radio>
- <el-radio label="N">鍋滅敤</el-radio>
+ <el-radio label="Y">鍦ㄨ亴</el-radio>
+ <el-radio label="N">绂昏亴</el-radio>
</el-radio-group>
</el-form-item>
diff --git a/src/views/basicSettings/postList.vue b/src/views/basicSettings/postList.vue
index fb8c498..4177e23 100644
--- a/src/views/basicSettings/postList.vue
+++ b/src/views/basicSettings/postList.vue
@@ -3,6 +3,7 @@
<div class="body" :style="{height:mainHeight+'px'}">
<div class="bodyTopButtonGroup" style="justify-content: space-between">
<el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+ <el-button v-waves type="success" icon="el-icon-download" @click="$router.push('./../systemSetting/dataImport?fileCode=1')">瀵煎叆</el-button>
</div>
<div class="bodyTopFormGroup">
diff --git a/src/views/basicSettings/powerDivider.vue b/src/views/basicSettings/powerDivider.vue
index 4a55af6..28a33d7 100644
--- a/src/views/basicSettings/powerDivider.vue
+++ b/src/views/basicSettings/powerDivider.vue
@@ -52,12 +52,12 @@
>淇� 瀛�
</el-button>
- <el-tabs v-model="activeName" type="border-card">
+ <el-tabs v-model="activeName" type="border-card" @tab-click="tabClick">
<el-tab-pane label="PC绔�" name="PC">
<div style="display: flex;">
<div
ref="scrollLeft"
- style="border-right: 1px solid rgba(0,0,0,0.2);width:260px;
+ style="border-right: 1px solid rgba(0,0,0,0.2);width:100%;
overflow-y: auto;overflow-x:hidden;"
:style="{height:(tableHeight-40)+'px'}"
@scroll="scrollLeftScroll()"
@@ -68,8 +68,8 @@
</div>
<el-tree
- ref="treeCenterRef"
- style="padding-top: 10px;width: 199px;"
+ ref="treeCenterPCRef"
+ style="padding-top: 10px;"
:data="treeCenter"
highlight-current
:props="defaultPropsCenter"
@@ -81,58 +81,87 @@
@node-click="getLeftTreeNode"
/>
</div>
+ <!-- <div-->
+ <!-- ref="scrollCenter"-->
+ <!-- style="width: calc(100% - 260px );padding-left: 10px;overflow-y: auto;"-->
+ <!-- :style="{height:(tableHeight-40)+'px'}"-->
+ <!-- @scroll="scrollCenterScroll()"-->
+ <!-- @mouseover="isScroll='center'"-->
+ <!-- >-->
+ <!-- <div style=" ">-->
+ <!-- <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" /> 鎸夐挳鏉冮檺-->
+ <!-- </div>-->
+
+ <!-- <el-checkbox-->
+ <!-- v-model="buttonIsChecked"-->
+ <!-- style="height: 26px;display:flex;align-items: center;margin-top:10px;width:200px"-->
+ <!-- @change=" handleCheckAllChange "-->
+ <!-- >鍏ㄩ��-->
+ <!-- </el-checkbox>-->
+
+ <!-- <div v-if="treeCenter.length>0">-->
+ <!-- <div v-for="(item,index) in treeCenter[0].children" :key="item.menucode">-->
+
+ <!-- <div-->
+ <!-- v-if="!item.buttoncodelist"-->
+ <!-- style="margin-left: 40px;height:26px;display: flex;"-->
+ <!-- />-->
+
+ <!-- <el-checkbox-group-->
+ <!-- v-for="it in item.children"-->
+ <!-- v-if="item.expanded"-->
+ <!-- :key="it.menucode"-->
+ <!-- v-model="it.buttonChecked"-->
+ <!-- style="margin-left: 40px;height:26px;display: flex;"-->
+ <!-- @change="val=>handleCheckedButtonChange(val,it.menucode,it.buttonChecked)"-->
+ <!-- >-->
+
+ <!-- <el-checkbox-->
+ <!-- v-for="i in it.buttoncodelist"-->
+ <!-- :key="i"-->
+ <!-- :label="i"-->
+ <!-- style="display:flex;align-items: center;"-->
+ <!-- />-->
+ <!-- </el-checkbox-group>-->
+
+ <!-- </div>-->
+
+ <!-- </div>-->
+
+ <!-- </div>-->
+ </div>
+ </el-tab-pane>
+ <el-tab-pane label="APP绔�" name="APP">
+ <div style="display: flex;">
<div
- ref="scrollCenter"
- style="width: calc(100% - 260px );padding-left: 10px;overflow-y: auto"
+ ref="scrollLeft"
+ style="border-right: 1px solid rgba(0,0,0,0.2);width:100%;
+ overflow-y: auto;overflow-x:hidden;"
:style="{height:(tableHeight-40)+'px'}"
- @scroll="scrollCenterScroll()"
- @mouseover="isScroll='center'"
+ @scroll="scrollLeftScroll()"
+ @mouseover="isScroll='left'"
>
<div style=" ">
- <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" /> 鎸夐挳鏉冮檺
+ <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" /> 鑿滃崟鏉冮檺
</div>
- <el-checkbox
- v-model="buttonIsChecked"
- style="height: 26px;display:flex;align-items: center;margin-top:10px;width:200px"
- @change=" handleCheckAllChange "
- >鍏ㄩ��
- </el-checkbox>
-
- <div v-if="treeCenter.length>0">
- <div v-for="(item,index) in treeCenter[0].children" :key="item.menucode">
-
- <div
- v-if="!item.buttoncodelist"
- style="margin-left: 40px;height:26px;display: flex;"
- />
-
- <el-checkbox-group
- v-for="it in item.children"
- v-if="item.expanded"
- :key="it.menucode"
- v-model="it.buttonChecked"
- style="margin-left: 40px;height:26px;display: flex;"
- @change="val=>handleCheckedButtonChange(val,it.menucode,it.buttonChecked)"
- >
-
- <el-checkbox
- v-for="i in it.buttoncodelist"
- :key="i"
- :label="i"
- style="display:flex;align-items: center;"
- />
- </el-checkbox-group>
-
- </div>
-
- </div>
-
+ <el-tree
+ ref="treeCenterAPPRef"
+ style="padding-top: 10px;"
+ :data="treeCenter"
+ highlight-current
+ :props="defaultPropsCenter"
+ show-checkbox
+ node-key="menucode"
+ :default-expand-all="true"
+ @check-change="handleTreeCenterCheckChange"
+ @check="handleTreeCenterCheck"
+ @node-click="getLeftTreeNode"
+ />
</div>
</div>
</el-tab-pane>
- <el-tab-pane label="APP绔�" name="APP">APP绔�</el-tab-pane>
- <el-tab-pane label="宸ユ帶绔�" name="宸ユ帶绔�">宸ユ帶绔�</el-tab-pane>
+ <!-- <el-tab-pane label="宸ユ帶绔�" name="宸ユ帶绔�">宸ユ帶绔�</el-tab-pane>-->
</el-tabs>
</div>
@@ -220,6 +249,11 @@
this.$notify.error('璇峰厛寤虹浉瀵瑰簲鐨勮鑹诧紒')
}
},
+ async tabClick() {
+ this.treeCenter = []
+ await this.getRolePermissionSearchRoleMenuButton(this.$refs.treeLeftRef.getCurrentKey())// 鐢ㄤ簬鏁版嵁鍥炴樉
+ await this.getRolePermissionSearchRoleMenu(this.$refs.treeLeftRef.getCurrentKey())// 鐢ㄤ簬娓叉煋椤甸潰
+ },
// 鑾峰彇鑿滃崟鏉冮檺瀵瑰簲鐨勬寜閽�
async getRolePermissionSearchRoleMenuButton(rolecode) {
@@ -264,7 +298,12 @@
handleData() {
this.menuCheckedCodeArr = this.allButtonData.map(i => i.menucode)
this.$nextTick(() => {
- this.$refs.treeCenterRef.setCheckedKeys(this.menuCheckedCodeArr)
+ if (this.activeName === 'PC') {
+ this.$refs.treeCenterPCRef.setCheckedKeys(this.menuCheckedCodeArr)
+ }
+ if (this.activeName === 'APP') {
+ this.$refs.treeCenterAPPRef.setCheckedKeys(this.menuCheckedCodeArr)
+ }
})
this.treeCenter[0].children.forEach(item => {
@@ -301,7 +340,13 @@
// 鍏ㄩ�夋敼鍙�
handleCheckAllChange(val) {
- const checkedKeys = this.$refs.treeCenterRef.getCheckedKeys()
+ let checkedKeys
+ if (this.activeName === 'PC') {
+ checkedKeys = this.$refs.treeCenterPCRef.getCheckedKeys()
+ }
+ if (this.activeName === 'APP') {
+ checkedKeys = this.$refs.treeCenterAPPRef.getCheckedKeys()
+ }
if (val) {
this.treeCenter[0].children.forEach(item => {
@@ -335,7 +380,12 @@
} else if (this.menuCheckedCodeArr.includes(code) && oldValue.length === 1 && newValue.length === 0) { // 鏄�
this.menuCheckedCodeArr = this.menuCheckedCodeArr.filter(i => i !== code)
}
- this.$refs.treeCenterRef.setCheckedKeys(this.menuCheckedCodeArr)
+ if (this.activeName === 'PC') {
+ this.$refs.treeCenterPCRef.setCheckedKeys(this.menuCheckedCodeArr)
+ }
+ if (this.activeName === 'APP') {
+ this.$refs.treeCenterAPPRef.setCheckedKeys(this.menuCheckedCodeArr)
+ }
}
// 杩欓噷鏄垽鏂叏閫塩heckbox 鏄惁閫変腑
@@ -420,7 +470,14 @@
async saveClick() {
const rolecode = this.$refs.treeLeftRef.getCurrentKey()
const datacode = this.treeLeft.find(i => i.code === rolecode).datarange !== 'CUSTOM' ? this.treeLeft.find(i => i.code === rolecode).datarange : this.treeLeft.find(i => i.code === rolecode).datapermissions
- const menuKeyArr = this.$refs.treeCenterRef.getCheckedKeys()
+ let menuKeyArr
+ if (this.activeName === 'PC') {
+ menuKeyArr = this.$refs.treeCenterPCRef.getCheckedKeys()
+ }
+ if (this.activeName === 'APP') {
+ menuKeyArr = this.$refs.treeCenterAPPRef.getCheckedKeys()
+ }
+
const arr = []
this.treeCenter[0].children.forEach(item => {
if (item.children && item.children.length) {
diff --git a/src/views/basicSettings/processList.vue b/src/views/basicSettings/processList.vue
new file mode 100644
index 0000000..cf3f122
--- /dev/null
+++ b/src/views/basicSettings/processList.vue
@@ -0,0 +1,434 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
+ <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+ <el-button v-waves type="success" icon="el-icon-download" @click="$router.push('./../systemSetting/dataImport?fileCode=15')">瀵煎叆</el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="宸ュ簭缂栫爜" style=" display: flex;">
+ <el-input v-model="form.stepcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="宸ュ簭鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.stepname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="宸ュ簭绫诲瀷" style=" display: flex;">
+ <el-select
+ v-model="form.steptypecode"
+ style="width:200px"
+ placeholder="璇烽�夋嫨"
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in steptypeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鐘舵��" style=" display: flex;">
+ <el-select
+ v-model="form.enable"
+ style="width:200px"
+ placeholder="璇烽�夋嫨"
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in enableArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="getStepSearch">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ style="height:5px"
+ >
+ <!-- <svg-icon-->
+ <!-- v-show="mouseHoverType==='mouseout'"-->
+ <!-- style="cursor: pointer"-->
+ <!-- :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"-->
+ <!-- @mouseenter="mouseHoverType=$event.type"-->
+ <!-- />-->
+ <!-- <svg-icon-->
+ <!-- v-show="mouseHoverType==='mouseenter'"-->
+ <!-- style="cursor: pointer"-->
+ <!-- :icon-class="!isExpandForm?'doubleDown':'doubleUp'"-->
+ <!-- @click="isExpandForm=!isExpandForm"-->
+ <!-- @mouseout="mouseHoverType=$event.type"-->
+ <!-- />-->
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="tableHeight+'px'"
+ border
+ row-class-name="custom-row"
+ :style="{width: 100+'%',height:tableHeight+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="stepcode"
+ label="宸ュ簭缂栫爜"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="stepname"
+ label="宸ュ簭鍚嶇О"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="flwtype"
+ label="宸ュ簭绫诲瀷"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ {{ row.flwtype==='Z'?'鑷埗':'澶栧崗' }}
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="enable"
+ label="鐘舵��"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <el-tag v-if="row.enable==='Y'" size="small" type="success">姝e父</el-tag>
+ <el-tag v-if="row.enable==='N'" size="small" type="danger">鍋滅敤</el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="descr"
+ label="鎻忚堪"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ {{ row.descr?row.descr:'/' }}
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="lm_user"
+ label="鍒涘缓浜哄憳"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="lm_date"
+ label="鍒涘缓鏃堕棿"
+ width="160"
+ sortable="custom"
+ />
+ <el-table-column
+ label="鎿嶄綔"
+ width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-tooltip class="item" effect="dark" content="缂栬緫" placement="top">
+ <i
+ v-if="row.leve!==0"
+ class="el-icon-edit-outline"
+ :style="{color:$store.state.settings.theme}"
+ @click="edit('edit',row)"
+ />
+ </el-tooltip>
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+ <i
+ v-if="row.leve!==0"
+ class="el-icon-delete"
+ :style="{color:$store.state.settings.theme}"
+ @click="del(row)"
+ />
+ </el-tooltip>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes,jumper"
+ popper-class="select_bottom"
+ @pagination="getStepSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'缂栬緫'"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
+ <el-form-item label="宸ュ簭缂栫爜" prop="stepcode">
+ <el-input v-model="dialogForm.stepcode" :disabled="operation!=='add'" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="宸ュ簭鍚嶇О" prop="stepname">
+ <el-input v-model="dialogForm.stepname" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="宸ュ簭绫诲瀷" required>
+ <el-select
+ v-model="dialogForm.steptypecode"
+ style="width:200px"
+ placeholder="璇烽�夋嫨"
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in steptypeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item required label="鐘舵��">
+ <el-radio-group v-model="dialogForm.enable">
+ <el-radio label="Y">姝e父</el-radio>
+ <el-radio label="N">鍋滅敤</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item label="鎻忚堪">
+ <el-input
+ v-model="dialogForm.description"
+ type="textarea"
+ style="width: 200px"
+ />
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="dialogVisibleConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import { AddUpdateStep, DeleteStep, StepSearch } from '@/api/basicSettings'
+import { validateCode } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+
+export default {
+ name: 'Zzjg',
+ components: {
+ Pagination
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ stepcode: '', //
+ stepname: '', //
+ enable: '', //
+ steptypecode: '', // 宸ュ簭绫诲瀷
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ total: 10,
+ tableData: [],
+ steptypeArr: [
+ { code: 'Z', name: '鑷埗' },
+ { code: 'W', name: '澶栧崗' }
+ ],
+ enableArr: [
+ { code: 'Y', name: '姝e父' },
+ { code: 'N', name: '鍋滅敤' }
+ ],
+ dialogVisible: false,
+ dialogForm: {
+ id: '',
+ stepcode: '', //
+ stepname: '', //
+ steptypecode: 'Z',
+ description: '', // 鎻忚堪
+ enable: 'Y'// 鐘舵��
+ },
+ operation: '',
+ dialogFormRules: {
+ stepcode: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ stepname: [
+ { required: true, message: '璇疯緭鍏ュ伐搴忓悕绉�', trigger: ['blur', 'change'] }
+ ]
+ }
+
+ }
+ },
+ created() {
+ this.getStepSearch()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ // 缁勭粐鏋舵瀯澶у垪琛ㄦ煡璇�
+ async getStepSearch() {
+ const res = await StepSearch(this.form)
+ this.tableData = res.data
+ this.total = res.count
+ },
+
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getStepSearch()
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.stepcode = ''
+ this.form.stepname = ''
+ this.form.enable = ''
+ this.form.steptypecode = ''
+ this.getStepSearch()
+ },
+ // 鏂板鎸夐挳
+ add(operation) {
+ this.operation = operation
+ this.dialogVisible = true
+ this.dialogForm.OperType = 'Add'
+ },
+ // 淇敼鎸夐挳
+ async edit(operation, row) {
+ this.operation = operation
+ this.dialogVisible = true
+ this.dialogForm.OperType = 'Update'
+
+ this.$nextTick(() => {
+ this.dialogForm.id = row.id
+ this.dialogForm.stepcode = row.stepcode
+ this.dialogForm.stepname = row.stepname
+ this.dialogForm.description = row.descr
+ this.dialogForm.enable = row.enable
+ this.dialogForm.steptypecode = row.flwtype
+ })
+ },
+ // 鍒犻櫎鎸夐挳
+ async del(row) {
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ DeleteStep({ stepcode: row.stepcode }).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('鍒犻櫎鎴愬姛!')
+ if (this.form.page > 1 && this.tableData.length === 1) {
+ this.form.page--
+ }
+ this.getStepSearch()
+ }
+ })
+ }).catch(() => {
+ this.$notify.info('宸插彇娑堝垹闄�')
+ })
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm.stepcode = ''
+ this.dialogForm.stepname = ''
+ this.dialogForm.id = ''
+ this.dialogForm.enable = 'Y'
+ this.dialogForm.description = ''
+ this.dialogForm.steptypecode = 'Z'
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ // console.log(JSON.parse(JSON.stringify(this.dialogForm)))
+ this.$store.state.app.buttonIsDisabled = true
+ AddUpdateStep(this.dialogForm).then(res => {
+ if (res.code === '200') {
+ this.$notify.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ this.dialogVisible = false
+ this.$store.state.app.buttonIsDisabled = false
+ this.getStepSearch()
+ } else {
+ this.$store.state.app.buttonIsDisabled = false
+ this.$notify.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ }
+ })
+ }
+ })
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 200
+ this.$refs.tableDataRef.doLayout()
+ })
+ }
+ }
+}
+</script>
diff --git a/src/views/basicSettings/roleList.vue b/src/views/basicSettings/roleList.vue
index 0d211da..c940480 100644
--- a/src/views/basicSettings/roleList.vue
+++ b/src/views/basicSettings/roleList.vue
@@ -3,6 +3,7 @@
<div class="body" :style="{height:mainHeight+'px'}">
<div class="bodyTopButtonGroup" style="justify-content: space-between">
<el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+ <el-button v-waves type="success" icon="el-icon-download" @click="$router.push('./../systemSetting/dataImport?fileCode=4')">瀵煎叆</el-button>
</div>
<div class="bodyTopFormGroup">
@@ -89,11 +90,11 @@
<el-tag v-if="row.status==='N'" size="small" type="danger">鍋滅敤</el-tag>
</template>
</el-table-column>
- <el-table-column
- prop="dataname"
- label="鏉冮檺鑼冨洿"
- sortable="custom"
- />
+ <!-- <el-table-column-->
+ <!-- prop="dataname"-->
+ <!-- label="鏉冮檺鑼冨洿"-->
+ <!-- sortable="custom"-->
+ <!-- />-->
<el-table-column
prop="description"
label="澶囨敞"
@@ -190,55 +191,55 @@
<el-input v-model="dialogForm.rolename" style="width: 200px" />
</el-form-item>
- <el-form-item required label="鏁版嵁鑼冨洿">
- <el-select
- v-model="dialogForm.datacode"
- style="width:200px"
- placeholder="璇烽�夋嫨"
- :popper-append-to-body="false"
- >
- <el-option
- v-for="item in datacodeArr"
- :key="item.datacode"
- :label="item.dataname"
- :value="item.datacode"
- />
- </el-select>
- </el-form-item>
+ <!-- <el-form-item required label="鏁版嵁鑼冨洿">-->
+ <!-- <el-select-->
+ <!-- v-model="dialogForm.datacode"-->
+ <!-- style="width:200px"-->
+ <!-- placeholder="璇烽�夋嫨"-->
+ <!-- :popper-append-to-body="false"-->
+ <!-- >-->
+ <!-- <el-option-->
+ <!-- v-for="item in datacodeArr"-->
+ <!-- :key="item.datacode"-->
+ <!-- :label="item.dataname"-->
+ <!-- :value="item.datacode"-->
+ <!-- />-->
+ <!-- </el-select>-->
+ <!-- </el-form-item>-->
<el-form-item required label="鐘舵��">
<el-radio-group v-model="dialogForm.status" style="width: 200px">
<el-radio label="Y">姝e父</el-radio>
<el-radio label="N">鍋滅敤</el-radio>
</el-radio-group>
</el-form-item>
- <el-form-item v-if="dialogForm.datacode==='CUSTOM'" label="鏁版嵁鏉冮檺" style="margin: 0">
- <el-checkbox-group v-model="checkboxGroupSelected" @change="checkboxGroupChange">
- <el-checkbox v-for="item in checkboxGroup" :key="item" :label="item">
- {{ item }}
- <el-tooltip class="item" effect="dark" content="鍕鹃�夌埗鑺傜偣鏄惁鍚屾椂閫変腑瀛愯妭鐐�" placement="top">
- <i v-if="item==='鐖跺瓙鑱斿姩'" class="el-icon-question" />
- </el-tooltip>
- </el-checkbox>
- </el-checkbox-group>
- </el-form-item>
- <el-card
- v-if="dialogForm.datacode==='CUSTOM'"
- class="box-card"
- shadow="never"
- style="margin-bottom: 30px;width: 78%;margin-left: 12%;"
- >
+ <!-- <el-form-item v-if="dialogForm.datacode==='CUSTOM'" label="鏁版嵁鏉冮檺" style="margin: 0">-->
+ <!-- <el-checkbox-group v-model="checkboxGroupSelected" @change="checkboxGroupChange">-->
+ <!-- <el-checkbox v-for="item in checkboxGroup" :key="item" :label="item">-->
+ <!-- {{ item }}-->
+ <!-- <el-tooltip class="item" effect="dark" content="鍕鹃�夌埗鑺傜偣鏄惁鍚屾椂閫変腑瀛愯妭鐐�" placement="top">-->
+ <!-- <i v-if="item==='鐖跺瓙鑱斿姩'" class="el-icon-question" />-->
+ <!-- </el-tooltip>-->
+ <!-- </el-checkbox>-->
+ <!-- </el-checkbox-group>-->
+ <!-- </el-form-item>-->
+ <!-- <el-card-->
+ <!-- v-if="dialogForm.datacode==='CUSTOM'"-->
+ <!-- class="box-card"-->
+ <!-- shadow="never"-->
+ <!-- style="margin-bottom: 30px;width: 78%;margin-left: 12%;"-->
+ <!-- >-->
- <el-tree
- ref="tree"
- :key="checkboxGroupSelected.toString()"
- :data="treeData"
- show-checkbox
- :check-strictly="!checkboxGroupSelected.includes('鐖跺瓙鑱斿姩')"
- :default-expand-all="checkboxGroupSelected.includes('灞曞紑/鎶樺彔')"
- node-key="torg_code"
- :props="defaultProps"
- />
- </el-card>
+ <!-- <el-tree-->
+ <!-- ref="tree"-->
+ <!-- :key="checkboxGroupSelected.toString()"-->
+ <!-- :data="treeData"-->
+ <!-- show-checkbox-->
+ <!-- :check-strictly="!checkboxGroupSelected.includes('鐖跺瓙鑱斿姩')"-->
+ <!-- :default-expand-all="checkboxGroupSelected.includes('灞曞紑/鎶樺彔')"-->
+ <!-- node-key="torg_code"-->
+ <!-- :props="defaultProps"-->
+ <!-- />-->
+ <!-- </el-card>-->
<el-form-item label="澶囨敞">
<el-input v-model="dialogForm.description" type="textarea" style="width:500px" />
diff --git a/src/views/basicSettings/storageList.vue b/src/views/basicSettings/storageList.vue
index 22d566a..b737779 100644
--- a/src/views/basicSettings/storageList.vue
+++ b/src/views/basicSettings/storageList.vue
@@ -1,11 +1,893 @@
-<template />
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+
+ <div style="display: flex">
+ <div style="width: 300px;margin: 10px 10px 0 0;background:#fff">
+
+ <div style="margin: 20px 10px 0 10px;display: flex;justify-content: space-between;">
+ <div style="display: flex;">
+ <div
+ style="width: 5px;height: 100%;border-radius: 5px;"
+ :style="{background:$store.state.settings.theme}"
+ />
+ <div style="margin-left: 8px;">浠撳簱</div>
+ </div>
+
+ <!-- <div style="margin-right:10px">-->
+ <!-- <el-tooltip v-del-tab-index class="item" effect="dark" content="鏂板" placement="top">-->
+ <!-- <i class="el-icon-plus" style="cursor: pointer;color: #999" @click="treeAddClick('add')" />-->
+ <!-- </el-tooltip>-->
+ <!-- </div>-->
+
+ </div>
+
+ <el-tree
+ ref="treeLeftRef"
+ style="padding: 10px;overflow: auto"
+ :style="{height:(tableHeight+222)+'px'}"
+ :data="treeLeft"
+ node-key="code"
+ highlight-current
+ :props="defaultPropsLeft"
+ :default-expand-all="true"
+ :expand-on-click-node="false"
+ @node-click="getTSecLocaData"
+ >
+ <!-- <span slot-scope="{ node, data }" class="custom-tree-node">-->
+ <!-- <span v-if="!data.isEdit">{{ data.name }}</span>-->
+ <!-- <span v-if="!data.isEdit">-->
+ <!-- <el-tooltip v-del-tab-index class="item" effect="dark" content="缂栬緫" placement="top">-->
+ <!-- <i-->
+ <!-- v-if="data.code!=='-1'"-->
+ <!-- class="el-icon-edit"-->
+ <!-- style="margin-right:10px;color: #999"-->
+ <!-- @click.stop="treeEditClick(node,data,'edit')"-->
+ <!-- />-->
+ <!-- </el-tooltip>-->
+ <!-- <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">-->
+ <!-- <i-->
+ <!-- v-if="data.code!=='-1'"-->
+ <!-- class="el-icon-delete"-->
+ <!-- style="margin-right: 4px;color: #999"-->
+ <!-- @click.stop="treeDeleteClick(node,data)"-->
+ <!-- />-->
+ <!-- </el-tooltip>-->
+ <!-- </span>-->
+ <!-- </span>-->
+ </el-tree>
+ </div>
+
+ <div
+ style=" width:calc(100% - 300px);"
+ >
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
+ <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+ <el-button
+ v-waves
+ type="success"
+ icon="el-icon-download"
+ @click="$router.push('./../systemSetting/dataImport?fileCode=7')"
+ >瀵煎叆
+ </el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="璐т綅缂栫爜" style=" display: flex;">
+ <el-input v-model="form.locacode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="璐т綅鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.locaname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <!-- <el-form-item label="瀛樿揣瑙勬牸" style=" display: flex;">-->
+ <!-- <el-input v-model="form.partspec" placeholder="璇疯緭鍏�" style="width: 200px" />-->
+ <!-- </el-form-item>-->
+ <!-- <el-form-item label="鐢ㄦ埛缂栫爜" style=" display: flex;">-->
+ <!-- <el-input v-model="form.usercode" placeholder="璇疯緭鍏�" style="width: 200px" />-->
+ <!-- </el-form-item>-->
+ <!-- <el-form-item v-show="isExpandForm" label="鐢ㄦ埛鍚嶇О" style=" display: flex;">-->
+ <!-- <el-input v-model="form.username" placeholder="璇疯緭鍏�" style="width: 200px" />-->
+ <!-- </el-form-item>-->
+ <!-- <el-form-item v-show="isExpandForm" label="鐢ㄦ埛缂栫爜" style=" display: flex;">-->
+ <!-- <el-input v-model="form.usercode" placeholder="璇疯緭鍏�" style="width: 200px" />-->
+ <!-- </el-form-item>-->
+ <!-- <el-form-item v-show="isExpandForm" label="鐢ㄦ埛鍚嶇О" style=" display: flex;">-->
+ <!-- <el-input v-model="form.username" placeholder="璇疯緭鍏�" style="width: 200px" />-->
+ <!-- </el-form-item>-->
+ <!-- <el-form-item v-show="isExpandForm" label="鐢ㄦ埛缂栫爜" style=" display: flex;">-->
+ <!-- <el-input v-model="form.usercode" placeholder="璇疯緭鍏�" style="width: 200px" />-->
+ <!-- </el-form-item>-->
+ <!-- <el-form-item v-show="isExpandForm" label="鐢ㄦ埛鍚嶇О" style=" display: flex;">-->
+ <!-- <el-input v-model="form.username" placeholder="璇疯緭鍏�" style="width: 200px" />-->
+ <!-- </el-form-item>-->
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button
+ v-waves
+ type="primary"
+ icon="el-icon-search"
+ @click="getTSecLocaData($refs.treeLeftRef.getCurrentNode())"
+ >鏌ヨ
+ </el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ style="height: 5px;"
+ >
+ <!-- <svg-icon-->
+ <!-- v-show="mouseHoverType==='mouseout'"-->
+ <!-- style="cursor: pointer"-->
+ <!-- :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"-->
+ <!-- @mouseenter="mouseHoverType=$event.type"-->
+ <!-- />-->
+ <!-- <svg-icon-->
+ <!-- v-show="mouseHoverType==='mouseenter'"-->
+ <!-- style="cursor: pointer"-->
+ <!-- :icon-class="!isExpandForm?'doubleDown':'doubleUp'"-->
+ <!-- @click="isExpandForm=!isExpandForm"-->
+ <!-- @mouseout="mouseHoverType=$event.type"-->
+ <!-- />-->
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+80)+'px'"
+ border
+ row-class-name="custom-row"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+80)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <!-- prop="RowNum"-->
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="code"
+ label="璐т綅缂栫爜"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="name"
+ label="璐т綅鍚嶇О"
+ show-overflow-tooltip
+ sortable="custom"
+ />
+
+ <el-table-column
+ prop="stckname"
+ label="瀵瑰簲浠撳簱"
+ sortable="custom"
+ />
+
+ <el-table-column
+ prop="status"
+ label="鐘舵��"
+ width="110"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <el-tag v-if="row.status==='0'" size="small" type="success">姝e父</el-tag>
+ <el-tag v-if="row.status==='1'" size="small" type="danger">鍋滅敤</el-tag>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ prop="description"
+ label="澶囨敞"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ {{ row.description ? row.description : '/' }}
+ </template>
+ </el-table-column>
+ <!-- <el-table-column-->
+ <!-- label="鏁版嵁鏉ユ簮"-->
+ <!-- prop="data_sources"-->
+ <!-- sortable="custom"-->
+ <!-- width="110"-->
+ <!-- />-->
+ <el-table-column
+ label="鍒涘缓浜哄憳"
+ prop="username"
+ sortable="custom"
+ width="110"
+ />
+ <el-table-column
+ label="鍒涘缓鏃堕棿"
+ prop="lm_date"
+ sortable="custom"
+ width="160"
+ />
+
+ <el-table-column
+ label="鎿嶄綔"
+ width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-tooltip class="item" effect="dark" content="缂栬緫" placement="top">
+ <i
+ class="el-icon-edit-outline"
+ :style="{color:$store.state.settings.theme}"
+ @click="edit('edit',row)"
+ />
+ </el-tooltip>
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+ <i
+ class="el-icon-delete"
+ :style="{color:$store.state.settings.theme}"
+ @click="del(row)"
+ />
+ </el-tooltip>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes,jumper"
+ popper-class="select_bottom"
+ @pagination="getTSecLocaData($refs.treeLeftRef.getCurrentNode())"
+ />
+
+ </div>
+ </div>
+ </div>
+
+ <!-- 寰�鏉ョ被鍒柊澧炰慨鏀�-->
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'缂栬緫'"
+ :visible.sync="dialogClassVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClassClose"
+ @close="handleClassClose"
+ >
+ <el-form ref="dialogClassForm" inline :rules="dialogClassFormRules" :model="dialogClassForm" label-width="80px">
+ <el-form-item label="鍒嗙被缂栫爜" prop="customerclasscode">
+ <el-input v-model="dialogClassForm.customerclasscode" :disabled="operation!=='add'" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鍒嗙被鍚嶇О" prop="customerclassname">
+ <el-input v-model="dialogClassForm.customerclassname" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="涓婄骇鍒嗙被">
+ <el-select
+ v-model="dialogClassForm.parentcode"
+ style="width:200px"
+ placeholder="璇烽�夋嫨"
+ :popper-append-to-body="false"
+ clearable
+ >
+ <el-option
+ v-for="item in treeLeftArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ </el-form>
+
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleClassCancel">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="dialogVisibleClassConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ <!-- 寰�鏉ュ崟浣嶆柊澧炰慨鏀�-->
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'缂栬緫'"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+
+ <el-form ref="dialogForm" class="" inline :rules="dialogFormRules" :model="dialogForm" label-width="110px">
+ <!-- <el-divider content-position="left">鍩烘湰淇℃伅</el-divider>-->
+ <el-form-item label="璐т綅缂栫爜" prop="locacode">
+ <el-input v-model="dialogForm.locacode" :disabled="operation!=='add'" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="璐т綅鍚嶇О" prop="locaname">
+ <el-input v-model="dialogForm.locaname" style="width: 200px" />
+ </el-form-item>
+
+ <el-form-item label="瀵瑰簲浠撳簱" prop="stckcode">
+ <el-select
+ v-model="dialogForm.stckcode"
+ style="width:200px"
+ placeholder="璇烽�夋嫨"
+ filterable
+ :popper-append-to-body="false"
+ :disabled="!isEdit&&operation==='edit'"
+ @change="stckcodeChange"
+ >
+ <el-option
+ v-for="item in stckcodeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+
+ <el-form-item label="涓婄骇璐т綅">
+ <el-select
+ v-model="dialogForm.parentlocacode"
+ style="width:200px"
+ placeholder="璇烽�夋嫨"
+ clearable
+ filterable
+ :disabled="dialogForm.stckcode===''"
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in parentlocacodeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+
+ <el-form-item required label="鐘舵��">
+ <el-radio-group v-model="dialogForm.status" style="width: 200px">
+ <el-radio label="0">姝e父</el-radio>
+ <el-radio label="1">鍋滅敤</el-radio>
+ </el-radio-group>
+ </el-form-item>
+
+ <el-form-item label="澶囨敞">
+ <el-input
+ v-model="dialogForm.description"
+ type="textarea"
+ :autosize="{ minRows: 2, maxRows: 4}"
+ style="width: 200px;"
+ />
+ </el-form-item>
+
+ </el-form>
+
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="dialogVisibleConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
<script>
+import waves from '@/directive/waves'
+import Pagination from '@/components/Pagination'
+import { validateCode } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import arrayToTree from 'array-to-tree'
+import {
+ TCunstomerAddUpdate,
+ TCunstomerClassTree,
+ TCunstomerClassTreeAddUpdate,
+ TCunstomerClassTreeDelete,
+ TCunstomerData, TCunstomerDelete, TSecLocaAddUpdate, TSecLocaData, TSecLocaDelete, TSecLocaTree
+} from '@/api/basicSettings'
+import { WareHouseSelectLocation } from '@/api/GeneralBasicData'
+
+const _ = require('lodash')
+
export default {
- name: 'StorageList'
+ name: 'RoleList',
+ directives: { waves, elDragDialog },
+ components: {
+ Pagination
+ },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ operation: '',
+
+ treeLeft: [
+ {
+ code: '-1',
+ name: '鍏ㄩ儴'
+ }
+ ], // 宸︿晶鏍�
+ treeLeftArr: [],
+ defaultPropsLeft: {
+ children: 'children',
+ label: 'name'
+ },
+
+ tableData: [],
+ form: {
+ stckcode: '',
+ locacode: '',
+ locaname: '',
+ partspec: '',
+ flag: '',
+ page: 1,
+ rows: 20,
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc' // 鎺掑簭瀛楁
+ },
+ total: 0,
+ dialogClassVisible: false,
+ dialogClassForm: {
+ data_sources: '', // 鏁版嵁鏉ユ簮:ERP/MES
+ customerclasscode: '', // 瀛樿揣鍒嗙被缂栫爜
+ customerclassname: '', // 瀛樿揣鍒嗙被鍚嶇О
+ parentcode: '', // 涓婄骇鍒嗙被缂栫爜
+ OperType: ''// OperType
+ },
+ classArr: [],
+ dialogClassFormRules: {
+ customerclasscode: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ customerclassname: [
+ { required: true, message: '璇疯緭寰�鏉ュ崟浣嶅悕绉�', trigger: ['blur', 'change'] }
+ ]
+ },
+
+ dialogVisible: false,
+ dialogForm: {
+ data_sources: 'MES', // 鏁版嵁鏉ユ簮锛汦RP/MES
+ locacode: '', //
+ locaname: '', //
+ stckcode: '', // 瀵瑰簲浠撳簱缂栫爜
+ parentlocacode: '', // 涓婄骇璐т綅缂栫爜
+ status: '0', // 浣跨敤鐘舵��: 姝e父(0)鍋滅敤(1)
+ description: '',
+ depth: '', // 灞傜骇
+
+ OperType: '' // 鎿嶄綔绫诲瀷
+ },
+ dialogFormRules: {
+ locacode: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ locaname: [
+ { required: true, message: '璇疯緭鍏ュ線鏉ュ崟浣嶅悕绉�', trigger: ['blur', 'change'] }
+ ],
+ stckcode: [
+ { required: true, message: '璇烽�夋嫨瀵瑰簲浠撳簱', trigger: ['blur', 'change'] }
+ ]
+ },
+ stckcodeArr: [],
+ parentlocacodeArr: [],
+
+ isEdit: true
+
+ }
+ },
+
+ created() {
+
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+
+ this.getTSecLocaTree()
+ },
+ methods: {
+ async getTSecLocaTree() {
+ const { data: res } = await TSecLocaTree()
+ res.forEach(e => {
+ e.name = e.code + ' ' + e.name
+ })
+ // 鑾峰彇浠撳簱
+ const ck = res.filter(i => i.depth === 0)// 灞傜骇涓�0鐨� 鏄粨搴�
+ const kw = res.filter(i => i.depth !== 0)// 鍙嶄箣 涓轰粨浣�
+ this.stckcodeArr = ck
+ const tree = arrayToTree(kw, {
+ parentProperty: 'idparent',
+ customID: 'code',
+ childrenProperty: 'children'
+ })
+ const group = _.groupBy(tree, i => i.warhouse)
+ const newArr = []
+ ck.forEach(j => {
+ if (Object.keys(group).includes(j.code)) {
+ newArr.push({
+ code: j.code,
+ name: j.name,
+ depth: 0,
+ idparent: '-1',
+ children: group[j.code]
+ })
+ } else {
+ newArr.push({
+ code: j.code,
+ name: j.name,
+ depth: 0,
+ idparent: '-1',
+ children: []
+ })
+ }
+ })
+ this.treeLeft = [
+ {
+ code: '-1',
+ name: '鍏ㄩ儴',
+ idparent: '',
+ children: newArr
+ }
+ ]// 宸︿晶鏍�
+ this.$nextTick(() => {
+ this.$refs.treeLeftRef.setCurrentKey('-1')
+ this.getTSecLocaData(this.$refs.treeLeftRef.getCurrentNode())
+ })
+
+ console.log(JSON.parse(JSON.stringify(this.treeLeft)))
+ },
+
+ async getTSecLocaData(node) {
+ let result = ''
+ if (node.code === '-1') {
+ result = node.children.map(i => i.code)
+ } else {
+ result = [node.code]
+ }
+ // const result = this.getChildrenCodeMethod(node, [])
+ // if (result.includes('-1')) {
+ // result.shift()
+ // }
+ this.form.stckcode = result.join(',')
+
+ if (this.$refs.treeLeftRef.getCurrentNode().idparent === '') {
+ this.form.flag = -1
+ } else {
+ this.form.flag = this.$refs.treeLeftRef.getCurrentNode().depth
+ }
+
+ const res = await TSecLocaData(this.form)
+
+ this.tableData = res.data
+ this.total = res.count
+ },
+
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 280
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getTSecLocaData(this.$refs.treeLeftRef.getCurrentNode())
+ },
+ // 鏂板鎸夐挳
+ add(operation) {
+ this.operation = operation
+ this.dialogVisible = true
+ this.dialogForm.OperType = 'Add'
+ },
+ // 淇敼鎸夐挳
+ async edit(operation, row) {
+ this.operation = operation
+ this.dialogVisible = true
+ this.dialogForm.OperType = 'Update'
+
+ const temp = this.$refs.treeLeftRef.getCurrentNode()
+
+ if (temp.idparent === '-1' || temp.idparent === '') {
+ this.isEdit = temp.depth !== 1
+ } else {
+ this.isEdit = false
+ }
+
+ // this.$nextTick(() => {
+ this.dialogForm.data_sources = row.data_sources
+ this.dialogForm.locacode = row.code
+ this.dialogForm.locaname = row.name
+ this.dialogForm.stckcode = row.stckcode
+
+ const { data: res } = await WareHouseSelectLocation({ warhousecode: row.stckcode })
+
+ this.parentlocacodeArr = res
+ // this.parentlocacodeArr = this.treeLeftArr.filter(i => i.idparent === this.dialogForm.stckcode)
+
+ this.dialogForm.parentlocacode = row.parentname ? row.parentcode : null
+ this.dialogForm.status = row.status
+ this.dialogForm.description = row.description
+ // })
+ },
+ del(row) {
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ TSecLocaDelete({ locacode: row.code, data_sources: row.data_sources }).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('鍒犻櫎鎴愬姛!')
+ this.getTSecLocaTree()
+ this.getTSecLocaData(this.$refs.treeLeftRef.getCurrentNode())
+ }
+ })
+ }).catch(() => {
+ this.$notify.info('宸插彇娑堝垹闄�')
+ })
+ },
+ reset() {
+ this.form.stckcode = ''
+ this.form.locacode = ''
+ this.form.locaname = ''
+ this.$refs.treeLeftRef.setCurrentKey('-1')
+ this.getTSecLocaData(this.$refs.treeLeftRef.getCurrentNode())
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm.data_sources = 'MES'
+ this.dialogForm.locacode = ''
+ this.dialogForm.locaname = ''
+ this.dialogForm.stckcode = ''
+ this.dialogForm.parentlocacode = ''
+ this.dialogForm.description = ''
+ this.dialogForm.status = '0'
+
+ if (this.$refs.treeLeftRef.getCurrentNode().idparent === '') {
+ this.form.flag = ''
+ } else {
+ this.form.flag = this.$refs.treeLeftRef.getCurrentNode().depth
+ }
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ // console.log(JSON.parse(JSON.stringify(this.dialogForm)), 2)
+
+ if (this.dialogForm.locacode === this.dialogForm.parentlocacode) {
+ return this.$message.error('涓婄骇璐т綅涓嶈兘鏄揣浣嶆湰韬紒')
+ }
+
+ if (this.dialogForm.parentlocacode === '') {
+ this.dialogForm.depth = 1
+ } else {
+ this.dialogForm.depth = parseFloat(this.parentlocacodeArr.find(i => i.code === this.dialogForm.parentlocacode).depth) + 1
+ }
+
+ this.$store.state.app.buttonIsDisabled = true
+ TSecLocaAddUpdate(this.dialogForm).then(res => {
+ if (res.code === '200') {
+ this.$notify.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ this.dialogVisible = false
+ this.$store.state.app.buttonIsDisabled = false
+ this.getTSecLocaTree()
+ } else {
+ this.$store.state.app.buttonIsDisabled = false
+ this.$notify.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ }
+ })
+ }
+ })
+ },
+
+ async stckcodeChange(val) {
+ const { data: res } = await WareHouseSelectLocation({ warhousecode: val })
+ this.parentlocacodeArr = res
+
+ this.dialogForm.parentlocacode = ''
+ // const res = this.recursiveLookupArray([], val)// 閫掑綊鏌ユ壘鏁扮粍
+ // this.parentlocacodeArr = res
+ },
+ recursiveLookupArray(newArr, val) {
+ const temp = this.treeLeftArr.filter(i => i.idparent === val)
+ if (temp.length > 0 && temp) {
+ temp.forEach(i => {
+ newArr.push(i)
+ this.recursiveLookupArray(newArr, i.code)
+ })
+ }
+ return newArr
+ },
+
+ // 閫掑綊鍙栧瓙闆嗙殑鎵�鏈塩ode
+ getChildrenCodeMethod(node, result) {
+ result.push(node.code)
+ if (node.children && node.children.length > 0) {
+ node.children.forEach(i => {
+ this.getChildrenCodeMethod(i, result)
+ })
+ }
+ return result
+ },
+
+ treeEditClick(node, data, operation) {
+ this.dialogClassForm.data_sources = data.data_sources
+ this.dialogClassForm.customerclasscode = data.code
+ this.dialogClassForm.customerclassname = data.name
+ this.dialogClassForm.parentcode = data.idparent === '-1' ? '' : data.idparent
+ this.dialogClassForm.OperType = 'Update'
+ this.operation = operation
+ this.dialogClassVisible = true
+ },
+ treeDeleteClick(node, data) {
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ const result = this.getChildrenCodeMethod(data, [])
+ TCunstomerClassTreeDelete({ customerclasscode: result.join(',') }).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('鍒犻櫎鎴愬姛!')
+ this.getTSecLocaTree()
+ }
+ })
+ }).catch(() => {
+ this.$notify.info('宸插彇娑堝垹闄�')
+ })
+ },
+ treeAddClick(operation) {
+ this.operation = operation
+ this.dialogClassVisible = true
+ this.dialogClassForm.OperType = 'Add'
+ this.dialogClassForm.data_sources = 'MES'
+ },
+
+ handleClassClose() {
+ this.dialogClassForm.data_sources = ''
+ this.dialogClassForm.customerclasscode = ''
+ this.dialogClassForm.customerclassname = ''
+ this.dialogClassForm.parentcode = ''
+ this.dialogClassForm.OperType = ''
+ this.$refs.dialogClassForm.clearValidate()
+ },
+ dialogVisibleClassCancel() {
+ this.dialogClassVisible = false
+ },
+ dialogVisibleClassConfirm() {
+ this.$refs.dialogClassForm.validate(valid => {
+ if (valid) {
+ TCunstomerClassTreeAddUpdate(this.dialogClassForm).then(res => {
+ if (res.code === '200') {
+ this.$notify.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ this.dialogClassVisible = false
+ this.$store.state.app.buttonIsDisabled = false
+ this.getTSecLocaTree()
+ } else {
+ this.$store.state.app.buttonIsDisabled = false
+ this.$notify.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ }
+ })
+ }
+ })
+ },
+ unittypcodeChange(val) {
+ console.log(val)
+
+ this.dialogForm.unitcode = ''
+ this.dialogForm.unitsubcode = ''
+ this.dialogForm.idSubUnitByReport = ''
+ this.dialogForm.idUnitByStock = ''
+ this.dialogForm.idUnitByPurchase = ''
+ this.dialogForm.idUnitBySale = ''
+ this.dialogForm.idunitbymanufacture = ''
+ // this.$refs.dialogForm.clearValidate()
+ // this.$forceUpdate()
+ },
+ unitcodeChange(val, type) {
+ console.log(val)
+
+ if (type === '1') {
+ // this.dialogForm.unitcode = val
+ this.dialogForm.unitsubcode = ''
+ this.dialogForm.idSubUnitByReport = ''
+
+ const unitname = this.unitcodeSingleArr.find(i => i.unitcode === val).unitname
+
+ this.dialogForm.idUnitByStock = unitname
+ this.dialogForm.idUnitByPurchase = unitname
+ this.dialogForm.idUnitBySale = unitname
+ this.dialogForm.idunitbymanufacture = unitname
+ }
+
+ if (type === '0') {
+ const t = this.unitcodeGroupArr.find(i => i.unitcode === val).children
+
+ this.idSubUnitByReportArr = t.filter(i => i.isMainUnit !== '1')
+ this.idUnitBvStockArr = t
+
+ const mainUnitCode = t.find(i => i.isMainUnit === '1').unitcode
+ this.dialogForm.unitsubcode = mainUnitCode
+ this.dialogForm.idSubUnitByReport = this.idSubUnitByReportArr[0].unitcode
+
+ this.dialogForm.idUnitByStock = mainUnitCode
+ this.dialogForm.idUnitByPurchase = mainUnitCode
+ this.dialogForm.idUnitBySale = mainUnitCode
+ this.dialogForm.idunitbymanufacture = mainUnitCode
+ }
+ }
+ }
}
</script>
-<style scoped>
+<style scoped lang="scss">
+.custom-tree-node {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ font-size: 14px;
+ padding-right: 8px;
+}
+//::v-deep .el-checkbox__label {
+// width: 55px;
+//}
+//
+.el-icon-plus:hover, .el-icon-edit:hover, .el-icon-delete:hover {
+ color: #000 !important;
+}
</style>
diff --git a/src/views/basicSettings/warehouseList.vue b/src/views/basicSettings/warehouseList.vue
index 404dcc0..c6cce70 100644
--- a/src/views/basicSettings/warehouseList.vue
+++ b/src/views/basicSettings/warehouseList.vue
@@ -1,11 +1,466 @@
-<template />
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
+ <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+
+ <div style="display:flex">
+ <el-button
+ v-waves
+ type="success"
+ icon="el-icon-download"
+ @click="$router.push('./../systemSetting/dataImport?fileCode=6')"
+ >瀵煎叆
+ </el-button>
+ <el-button v-waves icon="el-icon-refresh-right" @click="syncERP">鍚屾浠撳簱</el-button>
+ </div>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="浠撳簱缂栫爜" style="display: flex;">
+ <el-input v-model="form.code" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="浠撳簱鍚嶇О" style="display: flex;">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鐘舵��" style=" display: flex;">
+ <el-select
+ v-model="form.status"
+ style="width:200px"
+ placeholder="璇烽�夋嫨"
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in statusArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+
+ <el-form-item label="璐т綅绠$悊" style="display: flex;">
+
+ <el-select
+ v-model="form.ishasPosition"
+ style="width:200px"
+ placeholder="璇烽�夋嫨"
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in ishasPositionArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+
+ </el-form-item>
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="getTSecStckData">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ style="height:5px"
+ >
+ <!-- <svg-icon-->
+ <!-- v-show="mouseHoverType==='mouseout'"-->
+ <!-- style="cursor: pointer"-->
+ <!-- :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"-->
+ <!-- @mouseenter="mouseHoverType=$event.type"-->
+ <!-- />-->
+ <!-- <svg-icon-->
+ <!-- v-show="mouseHoverType==='mouseenter'"-->
+ <!-- style="cursor: pointer"-->
+ <!-- :icon-class="!isExpandForm?'doubleDown':'doubleUp'"-->
+ <!-- @click="isExpandForm=!isExpandForm"-->
+ <!-- @mouseout="mouseHoverType=$event.type"-->
+ <!-- />-->
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="tableHeight+'px'"
+ border
+ row-class-name="custom-row"
+ :style="{width: 100+'%',height:tableHeight+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="rowNum"
+ width="120"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="code"
+ label="浠撳簱缂栫爜"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="name"
+ label="浠撳簱鍚嶇О"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="ishasPosition"
+ label="鏄惁璐т綅绠$悊"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <el-tag v-if="row.ishasPosition==='1'" size="small" type="primary">鏄�</el-tag>
+ <el-tag v-if="row.ishasPosition==='0'" size="small" type="info">鍚�</el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="status"
+ label="鐘舵��"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <el-tag v-if="row.status==='0'" size="small" type="success">姝e父</el-tag>
+ <el-tag v-if="row.status==='1'" size="small" type="danger">鍋滅敤</el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="description"
+ label="澶囨敞"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ {{ row.description ? row.description : '/' }}
+ </template>
+ </el-table-column>
+ <!-- <el-table-column-->
+ <!-- prop="data_sources"-->
+ <!-- label="鏁版嵁鏉ユ簮"-->
+ <!-- sortable="custom"-->
+ <!-- />-->
+ <el-table-column
+ prop="username"
+ label="鍒涘缓浜哄憳"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="lm_date"
+ label="鍒涘缓鏃堕棿"
+ width="160"
+ sortable="custom"
+ />
+ <el-table-column
+ label="鎿嶄綔"
+ width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-tooltip class="item" effect="dark" content="缂栬緫" placement="top">
+ <i
+ class="el-icon-edit-outline"
+ :style="{color:$store.state.settings.theme}"
+ @click="edit('edit',row)"
+ />
+ </el-tooltip>
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+ <i
+ class="el-icon-delete"
+ :style="{color:$store.state.settings.theme}"
+ @click="del(row)"
+ />
+ </el-tooltip>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes,jumper"
+ popper-class="select_bottom"
+ @pagination="getTSecStckData"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'缂栬緫'"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
+ <el-form-item label="浠撳簱缂栫爜" prop="stckcode">
+ <el-input v-model="dialogForm.stckcode" :disabled="operation!=='add'" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="浠撳簱鍚嶇О" prop="stckname">
+ <el-input v-model="dialogForm.stckname" style="width: 200px" />
+ </el-form-item>
+ <el-form-item required label="璐т綅绠$悊">
+ <el-radio-group v-model="dialogForm.ishaspostion" style="width: 200px">
+ <el-radio label="1">鏄�</el-radio>
+ <el-radio label="0">鍚�</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item required label="鐘舵��">
+ <el-radio-group v-model="dialogForm.status" style="width: 200px">
+ <el-radio label="0">姝e父</el-radio>
+ <el-radio label="1">鍋滅敤</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item label="鎻忚堪">
+ <el-input v-model="dialogForm.description" type="textarea" style="width: 490px" />
+ </el-form-item>
+
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="dialogVisibleConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
<script>
+import Pagination from '@/components/Pagination'
+import { TSecStckAddUpdate, TSecStckData, TSecStckDelete } from '@/api/basicSettings'
+import { validateCode } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import { SaveSearchWareHouse } from '@/api/ErpSyncMes'
+
export default {
- name: 'WarehouseLIst'
+ name: 'Zzjg',
+ components: {
+ Pagination
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ code: '',
+ name: '',
+ status: '',
+ ishasPosition: '',
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ total: 10,
+ tableData: [],
+ statusArr: [
+ { code: '0', name: '姝e父' },
+ { code: '1', name: '鍋滅敤' }
+ ],
+ ishasPositionArr: [
+ { code: '0', name: '鍚�' },
+ { code: '1', name: '鏄�' }
+ ],
+ dialogVisible: false,
+ dialogForm: {
+ data_sources: 'MES',
+ stckcode: '', //
+ stckname: '', //
+ ishaspostion: '0', // 0鍚� 1 鏄�
+ description: '',
+ status: '0', // 0姝e父 1鍋滅敤
+ OperType: ''
+ },
+ operation: '',
+ dialogFormRules: {
+ stckcode: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ stckname: [
+ { required: true, message: '璇疯緭鍏ョ粍缁囧悕绉�', trigger: ['blur', 'change'] }
+ ]
+ }
+
+ }
+ },
+ created() {
+ this.getTSecStckData()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ // 缁勭粐鏋舵瀯澶у垪琛ㄦ煡璇�
+ async getTSecStckData() {
+ const res = await TSecStckData(this.form)
+ this.tableData = res.data
+ this.total = res.count
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getTSecStckData()
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.code = ''
+ this.form.name = ''
+ this.form.status = ''
+ this.form.ishasPosition = ''
+ this.getTSecStckData()
+ },
+ // 鏂板鎸夐挳
+ add(operation) {
+ this.operation = operation
+ this.dialogVisible = true
+ this.dialogForm.OperType = 'Add'
+ },
+ // 淇敼鎸夐挳
+ async edit(operation, row) {
+ this.operation = operation
+ this.dialogVisible = true
+ this.dialogForm.OperType = 'Update'
+ this.$nextTick(() => {
+ this.dialogForm.stckcode = row.code
+ this.dialogForm.stckname = row.name
+ this.dialogForm.status = row.status
+ this.dialogForm.description = row.description
+ this.dialogForm.ishaspostion = row.ishasPosition
+ this.dialogForm.data_sources = row.data_sources
+ })
+ },
+ // 鍒犻櫎鎸夐挳
+ async del(row) {
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ TSecStckDelete({ stckcode: row.code, data_sources: row.data_sources }).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('鍒犻櫎鎴愬姛!')
+ if (this.form.page > 1 && this.tableData.length === 1) {
+ this.form.page--
+ }
+ this.getTSecStckData()
+ }
+ })
+ }).catch(() => {
+ this.$notify.info('宸插彇娑堝垹闄�')
+ })
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm.data_sources = 'MES'
+ this.dialogForm.stckcode = ''
+ this.dialogForm.stckname = ''
+ this.dialogForm.ishaspostion = '0'
+ this.dialogForm.description = ''
+ this.dialogForm.status = '0'
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ this.$store.state.app.buttonIsDisabled = true
+ TSecStckAddUpdate(this.dialogForm).then(res => {
+ if (res.code === '200') {
+ this.$notify.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ this.dialogVisible = false
+ this.getTSecStckData()
+ this.$store.state.app.buttonIsDisabled = false
+ } else {
+ this.$store.state.app.buttonIsDisabled = false
+ this.$notify.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ }
+ })
+ }
+ })
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 200
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ // 鍚屾ERP
+ syncERP() {
+ const loading = this.$loading({
+ lock: true,
+ text: '姝e湪鍚屾ERP锛岃绋嶇瓑...',
+ spinner: 'el-icon-loading',
+ customClass: 'osloading',
+ background: 'rgba(0, 0, 0, 0.7)'
+ })
+
+ SaveSearchWareHouse().then(res => {
+ if (res.code === '200') {
+ setTimeout(() => {
+ this.getTSecStckData()
+ loading.close()
+ this.$notify.success('鍚屾鎴愬姛锛�')
+ }, 2000)
+ }
+ // else if (res.code === '300') {
+ // setTimeout(() => {
+ // loading.close()
+ // this.$message.error('鍚屾澶辫触锛�')
+ // }, 10000)
+ // }
+ }).catch(e => {
+ loading.close()
+ })
+ }
+ }
}
</script>
-
-<style scoped>
-
-</style>
diff --git a/src/views/deviceManager/checkPosition.vue b/src/views/deviceManager/checkPosition.vue
index e69de29..0a02f4a 100644
--- a/src/views/deviceManager/checkPosition.vue
+++ b/src/views/deviceManager/checkPosition.vue
@@ -0,0 +1,608 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
+ <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+ <el-button v-waves type="success" icon="el-icon-download" @click="$router.push('./../systemSetting/dataImport?fileCode=10')">瀵煎叆</el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="閮ㄤ綅缂栫爜" style=" display: flex;">
+ <el-input v-model="form.checkitemcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="閮ㄤ綅鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.checkitemname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鐐规瑕佹眰" style=" display: flex;">
+ <el-input v-model="form.checkdescr" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="閫変腑鎵爜" style=" display: flex;">
+ <el-select v-model="form.isqrcode" style="width: 200px" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in isqrcodeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鐐规鍛ㄦ湡" style=" display: flex;">
+ <el-select v-model="form.cycle" style="width: 200px" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in cycleArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <!-- <TableColumnSettings-->
+ <!-- :list1="tableColumnSettingsArray"-->
+ <!-- @tableColumnUpdate="tableColumnUpdate"-->
+ <!-- />-->
+ <el-table
+ ref="tableDataRef"
+ :key="tableTimeStampKey"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
+ border
+ class="tableFixed"
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+
+ <el-table-column
+ v-for="item in tableColumnSettingsArray"
+ v-if="item.show"
+ :key="item.id"
+ :sortable="item.sortable"
+ :prop="item.prop"
+ :min-width="item.minWidth"
+ :label="item.label"
+ :width="item.width"
+ show-tooltip-when-overflow
+ :fixed="item.fixed?(item.fixed==='left'?'left':'right'):false"
+ >
+ <template slot-scope="{row}">
+ <div v-if="!row[item.prop]">/</div>
+ <div v-else-if="item.prop==='cycle'">{{ cycleArr.find(i=>i.code===row[item.prop]).name }}</div>
+ <div v-else-if="item.prop==='isscan'">
+ <div v-if="row[item.prop]==='Y'">
+ <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />
+ 鏄�
+ </div>
+ <div v-if="row[item.prop]==='N'">
+ <i class="el-icon-info" style="margin-right: 2px" />
+ 鍚�
+ </div>
+ </div>
+ <div v-else>{{ row[item.prop] }}</div>
+ </template>
+ </el-table-column>
+
+ <!-- <el-table-column-->
+ <!-- type="selection"-->
+ <!-- width="50"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- prop="RowNum"-->
+ <!-- width="50"-->
+ <!-- fixed-->
+ <!-- label="搴忓彿"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- prop="code"-->
+ <!-- label="閮ㄤ綅缂栫爜"-->
+ <!-- sortable="custom"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- prop="name"-->
+ <!-- label="閮ㄤ綅鍚嶇О"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- sortable="custom"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- prop="description"-->
+ <!-- label="鐐规瑕佹眰"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- sortable="custom"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.description">{{ row.description }}</div>-->
+ <!-- <div v-else>/</div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ <!-- <el-table-column-->
+ <!-- prop="isscan"-->
+ <!-- label="閫夋嫨鎵爜"-->
+ <!-- sortable="custom"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.isscan==='Y'">-->
+ <!-- <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />-->
+ <!-- 鏄�-->
+ <!-- </div>-->
+ <!-- <div v-if="row.isscan==='N'">-->
+ <!-- <i class="el-icon-info" style="margin-right: 2px" />-->
+ <!-- 鍚�-->
+ <!-- </div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ <!-- <el-table-column-->
+ <!-- prop="cycle"-->
+ <!-- label="鐐规鍛ㄦ湡"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- sortable="custom"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.cycle==='Y'">骞�</div>-->
+ <!-- <div v-if="row.cycle==='S'">瀛�</div>-->
+ <!-- <div v-if="row.cycle==='M'">鏈�</div>-->
+ <!-- <div v-if="row.cycle==='W'">鍛�</div>-->
+ <!-- <div v-if="row.cycle==='D'">鏃�</div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ <!-- <el-table-column-->
+ <!-- prop="lm_user"-->
+ <!-- label="鍒涘缓浜哄憳"-->
+ <!-- sortable="custom"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- prop="lm_date"-->
+ <!-- label="鍒涘缓鏃堕棿"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- width="160"-->
+ <!-- sortable="custom"-->
+ <!-- />-->
+ <el-table-column
+ label="鎿嶄綔"
+ fixed="right"
+ width="120"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-tooltip class="item" effect="dark" content="缂栬緫" placement="top">
+ <i :style="{color:$store.state.settings.theme}" class="el-icon-edit-outline" @click="edit('edit',row)" />
+ </el-tooltip>
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+ <i :style="{color:$store.state.settings.theme}" class="el-icon-delete" @click="del(row)" />
+ </el-tooltip>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getDeviceCheckItemSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'缂栬緫'"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
+ <el-form-item label="閮ㄤ綅缂栫爜" prop="checkitemcode">
+ <el-input v-model="dialogForm.checkitemcode" :disabled="operation!=='add'" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="閮ㄤ綅鍚嶇О" prop="checkitemname">
+ <el-input v-model="dialogForm.checkitemname" style="width: 200px" />
+ </el-form-item>
+ <el-form-item prop="cycle" label="鐐规鍛ㄦ湡">
+ <el-select
+ v-model="dialogForm.cycle"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in cycleArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item prop="isqrcode" label="閫夋嫨鎵爜">
+ <el-select
+ v-model="dialogForm.isqrcode"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in isqrcodeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鐐规瑕佹眰" prop="checkitemdescr">
+ <el-input v-model="dialogForm.checkitemdescr" type="textarea" style="width: 200px" />
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="dialogVisibleConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import { AddUpdateDeviceCheckItem, DeleteDeviceCheckItem, DeviceCheckItemSearch } from '@/api/DeviceManager'
+import { validateCode } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import TableColumnSettings from '@/components/TableColumnSettings'
+
+export default {
+ name: 'Zzjg',
+ components: {
+ Pagination, TableColumnSettings
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ checkitemcode: '', // 閮ㄤ綅缂栫爜
+ checkitemname: '', // 閮ㄤ綅鍚嶇О
+ checkdescr: '', // 鐐规瑕佹眰
+ isqrcode: '', // 閫変腑鎵爜
+ cycle: '', // 鐐规鍛ㄦ湡
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ isqrcodeArr: [
+ { code: 'Y', name: '鏄�' },
+ { code: 'N', name: '鍚�' }
+ ],
+ cycleArr: [
+ { code: 'Y', name: '骞�' },
+ { code: 'S', name: '瀛�' },
+ { code: 'M', name: '鏈�' },
+ { code: 'W', name: '鍛�' },
+ { code: 'D', name: '鏃�' }
+ ],
+
+ total: 10,
+ tableData: [],
+ tableColumnSettingsArray: [
+ { minWidth: false, width: 55, prop: 'id', label: 'id', id: 1, show: false, fixed: false, sortable: false }, // 闅愯棌鍒� show: false闅愯棌锛宼rue鏄剧ず
+ { minWidth: false, width: 55, prop: 'rowNum', label: '搴忓彿', id: 2, show: true, fixed: 'left', sortable: false }, // custom
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'code',
+ label: '閮ㄤ綅缂栫爜',
+ id: 3,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'name',
+ label: '閮ㄤ綅鍚嶇О',
+ id: 4,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 330,
+ width: false,
+ prop: 'description',
+ label: '鐐规瑕佹眰',
+ id: 5,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'isscan',
+ label: '閫夋嫨鎵爜',
+ id: 6,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'cycle',
+ label: '鐐规鍛ㄦ湡',
+ id: 7,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'lm_user',
+ label: '鍒涘缓浜哄憳',
+ id: 8,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 160,
+ prop: 'lm_date',
+ label: '鍒涘缓鏃堕棿',
+ id: 9,
+ show: true,
+ fixed: false,
+ sortable: true
+ }
+ ],
+ tableTimeStampKey: new Date().getTime(), // 琛ㄦ牸key
+
+ dialogVisible: false,
+ dialogForm: {
+ id: '',
+ checkitemcode: '', // 璁惧鐐规閮ㄤ綅缂栫爜
+ checkitemname: '', // 璁惧鐐规閮ㄤ綅鍚嶇О
+ checkitemdescr: '', // 璁惧鐐规閮ㄤ綅瑕佹眰
+ cycle: 'D', // 璁惧鐐规閮ㄤ綅鍛ㄦ湡
+ isqrcode: 'N', // 鏄惁鎵爜
+ OperType: '' // 鎿嶄綔绫诲瀷
+ },
+ operation: '',
+ dialogFormRules: {
+ checkitemcode: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ checkitemname: [
+ { required: true, message: '璇疯緭鍏ラ儴浣嶅悕绉�', trigger: ['blur', 'change'] }
+ ],
+ cycle: [
+ { required: true, message: '', trigger: ['blur', 'change'] }
+ ],
+ isqrcode: [
+ { required: true, message: '', trigger: ['blur', 'change'] }
+ ]
+ },
+
+ title_value: '鏁版嵁瀵煎叆 / 鐐规閮ㄤ綅',
+ code: '10',
+ shows: false
+
+ }
+ },
+ watch: {
+ shows() {
+ if (!this.shows) {
+ this.getDeviceCheckItemSearch()
+ }
+ }
+ },
+ created() {
+ this.getDeviceCheckItemSearch()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ tableColumnUpdate(val, isCopyTrue) {
+ if (isCopyTrue) {
+ this.tableColumnSettingsArray = val
+ }
+ this.tableTimeStampKey = new Date().getTime()
+ this.$refs.tableDataRef.doLayout()
+ },
+ async getDeviceCheckItemSearch() {
+ const res = await DeviceCheckItemSearch(this.form)
+ this.tableData = res.data
+ this.total = res.count
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getDeviceCheckItemSearch()
+ },
+ // 鏌ヨ
+ search() {
+ this.getDeviceCheckItemSearch()
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.checkitemcode = ''
+ this.form.checkitemname = ''
+ this.form.checkdescr = ''
+ this.form.isqrcode = ''
+ this.form.cycle = ''
+ this.getDeviceCheckItemSearch()
+ },
+
+ // 鏂板鎸夐挳
+ add(operation) {
+ this.operation = operation
+ this.dialogVisible = true
+ },
+ // 淇敼鎸夐挳
+ edit(operation, row) {
+ this.operation = operation
+ this.dialogVisible = true
+
+ this.$nextTick(() => {
+ this.dialogForm.id = row.id
+ this.dialogForm.cycle = row.cycle
+ this.dialogForm.isqrcode = row.isscan
+ this.dialogForm.checkitemcode = row.code
+ this.dialogForm.checkitemname = row.name
+ this.dialogForm.checkitemdescr = row.description
+ })
+ },
+ // 鍒犻櫎鎸夐挳
+ async del(row) {
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ DeleteDeviceCheckItem({ checkitemcode: row.code }).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('鍒犻櫎鎴愬姛!')
+ if (this.form.page > 1 && this.tableData.length === 1) {
+ this.form.page--
+ }
+ this.getDeviceCheckItemSearch()
+ }
+ })
+ }).catch(() => {
+ this.$notify.info('宸插彇娑堝垹闄�')
+ })
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm.id = ''
+ this.dialogForm.checkitemcode = ''
+ this.dialogForm.checkitemname = ''
+ this.dialogForm.checkitemdescr = ''
+ this.dialogForm.cycle = 'D'
+ this.dialogForm.isqrcode = 'N'
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ this.$store.state.app.buttonIsDisabled = true
+ const data = {
+ id: this.dialogForm.id,
+ checkitemcode: this.dialogForm.checkitemcode,
+ checkitemname: this.dialogForm.checkitemname,
+ checkitemdescr: this.dialogForm.checkitemdescr,
+ cycle: this.dialogForm.cycle,
+ isqrcode: this.dialogForm.isqrcode,
+ OperType: this.operation === 'add' ? 'Add' : 'Update'
+ // Operator: getCookie('admin')
+ }
+ AddUpdateDeviceCheckItem(data).then(res => {
+ if (res.code === '200') {
+ this.dialogVisible = false
+ this.$notify.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ this.getDeviceCheckItemSearch()
+ this.$store.state.app.buttonIsDisabled = false
+ } else {
+ this.$notify.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ }
+ })
+ }
+ })
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 255
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ },
+ // 瀵煎叆鎸夐挳
+ upload() {
+ this.shows = true
+ this.$refs.importPickerFunc.newDataFunc()
+ },
+ colos() {
+ this.shows = false
+ }
+ }
+}
+</script>
diff --git a/src/views/deviceManager/checkRecord.vue b/src/views/deviceManager/checkRecord.vue
index e69de29..8f4b30c 100644
--- a/src/views/deviceManager/checkRecord.vue
+++ b/src/views/deviceManager/checkRecord.vue
@@ -0,0 +1,595 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup">
+ <!-- <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>-->
+ <!-- <el-button v-waves icon="el-icon-download" @click="upload">瀵煎叆</el-button>-->
+ <el-button v-waves type="primary" icon="el-icon-download" @click="download">瀵煎嚭</el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm" style="justify-content: flex-start">
+ <el-form-item label="鐢熶骇杞﹂棿" style=" display: flex;">
+ <el-select v-model="form.wkshopcode" style="width: 200px" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in wkshopSelectArr"
+ :key="item.torg_code"
+ :label="item.torg_name"
+ :value="item.torg_code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="璁惧缂栫爜" style=" display: flex;">
+ <el-input v-model="form.eqpcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="璁惧鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.eqpname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鏍囧噯鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.stanedname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鐐规浜哄憳" style=" display: flex;">
+ <el-input v-model="form.checkuser" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鐐规鏃堕棿" style=" display: flex;font-size:14px;align-items: center">
+ <el-date-picker
+ v-model="form.checkdate"
+ type="daterange"
+ :clearable="false"
+ class="timeMini"
+ range-separator="~"
+ start-placeholder="寮�濮嬫棩鏈�"
+ style="width: 200px;display: flex;line-height: 34px ;height: 34px;"
+ end-placeholder="缁撴潫鏃ユ湡"
+ size="mini"
+ />
+ </el-form-item>
+
+ </div>
+ <div class="bodySearchReset" :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}">
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <!-- <TableColumnSettings-->
+ <!-- :list1="tableColumnSettingsArray"-->
+ <!-- @tableColumnUpdate="tableColumnUpdate"-->
+ <!-- />-->
+ <el-table
+ ref="tableDataRef"
+ :key="tableTimeStampKey"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px'}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+
+ <el-table-column
+ v-for="item in tableColumnSettingsArray"
+ v-if="item.show"
+ :key="item.id"
+ :sortable="item.sortable"
+ :prop="item.prop"
+ :min-width="item.minWidth"
+ :label="item.label"
+ :width="item.width"
+ show-tooltip-when-overflow
+ :fixed="item.fixed?(item.fixed==='left'?'left':'right'):false"
+ >
+ <template slot-scope="{row}">
+ <div v-if="!row[item.prop]">/</div>
+
+ <div v-else-if="item.prop==='chk_result'">
+ <div v-if="row[item.prop]==='OK'" style="display: flex;align-items: center">
+ <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />
+ 姝e父
+ </div>
+ <div v-if="row[item.prop]==='NG'" style="display: flex;align-items: center">
+ <i class="el-icon-info" style="margin-right: 2px" />
+ 寮傚父
+ </div>
+ </div>
+ <div v-else>{{ row[item.prop] }}</div>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ label="鏄庣粏"
+ width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <!-- <div class="operationClass">-->
+ <!-- <el-tooltip class="item" effect="dark" content="缂栬緫" placement="top">-->
+ <!-- <i class="el-icon-edit-outline" @click="edit('edit',row)" />-->
+ <!-- </el-tooltip>-->
+ <!-- <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">-->
+ <!-- <i class="el-icon-delete" @click="del(row)" />-->
+ <!-- </el-tooltip>-->
+ <!-- </div>-->
+ <i
+ class="el-icon-tickets"
+ :style="{color:$store.state.settings.theme}"
+ style="cursor: pointer;margin-right: 15px"
+ @click="edit('edit',row)"
+ />
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getDeviceCheckTakeSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'鐐规鏄庣粏'"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+
+ <div class="elTableDiv" style="margin-top: 0">
+ <el-table
+ :data="tableDataDialog"
+ :height="500+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:500+'px'}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="seq"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="itemcode"
+ label="閮ㄤ綅缂栫爜"
+ />
+ <el-table-column
+ prop="itemname"
+ label="閮ㄤ綅鍚嶇О"
+ />
+ <el-table-column
+ prop="result"
+ label="鐐规缁撴灉"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.result==='OK'" style="display: flex;align-items: center">
+ <!-- <div style="margin-right: 5px;width:10px;height: 10px;border-radius: 50%;background-color: #42b983" />-->
+ <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />
+ 姝e父
+ </div>
+ <div v-if="row.result==='NG'" style="display: flex;align-items: center">
+ <!-- <div style="margin-right: 5px;width:10px;height: 10px;border-radius: 50%;background-color: red" />-->
+ <i class="el-icon-info" style="margin-right: 2px" />
+ 寮傚父
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="chk_value"
+ label="鏁板��"
+ />
+ <el-table-column
+ prop="remark"
+ label="澶囨敞"
+ show-tooltip-when-overflow
+ />
+ </el-table>
+ </div>
+
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisible = false">杩� 鍥�</el-button>
+ <!-- <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>-->
+ <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>-->
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import { AddUpdateOrganization, DeleteOrganization } from '@/api/basicSettings'
+import { getCookie } from '@/utils/auth'
+import { handleDatetime } from '@/utils/global'
+import { DeviceCheckSubTakeSearch, DeviceCheckTakeOutExcel, DeviceCheckTakeSearch } from '@/api/DeviceManager'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import TableColumnSettings from '@/components/TableColumnSettings'
+import { PrentOrganizationNoCompany } from '@/api/GeneralBasicData'
+
+export default {
+ name: 'Zzjg',
+ components: {
+ Pagination, TableColumnSettings
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ wkshopcode: '', // 杞﹂棿缂栫爜
+ eqpcode: '', // 璁惧缂栫爜
+ eqpname: '', // 璁惧鍚嶇О
+ stanedname: '', // 鏍囧噯鍚嶇О
+ checkuser: '', // 鐐规浜哄憳
+ checkdate: '', // 鐐规鏃堕棿
+ prop: 'chk_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ wkshopSelectArr: [],
+ total: 10,
+ tableData: [],
+ tableColumnSettingsArray: [
+ // { minWidth: false, width: 55, prop: 'id', label: 'id', id: 1, show: false, fixed: false, sortable: false }, // 闅愯棌鍒� show: false闅愯棌锛宼rue鏄剧ず
+ { minWidth: false, width: 55, prop: 'rowNum', label: '搴忓彿', id: 2, show: true, fixed: 'left', sortable: false }, // custom
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'djwo',
+ label: '鐐规鍗曞彿',
+ id: 3,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 130,
+ prop: 'org_code',
+ label: '鐢熶骇杞﹂棿缂栫爜',
+ id: 4,
+ show: false,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'org_name',
+ label: '鐢熶骇杞﹂棿',
+ id: 5,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'eqp_code',
+ label: '璁惧缂栫爜',
+ id: 6,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'eqp_name',
+ label: '璁惧鍚嶇О',
+ id: 7,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: false,
+ width: 130,
+ prop: 'stanedcode',
+ label: '鐐规鏍囧噯缂栫爜',
+ id: 8,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: 130,
+ width: false,
+ prop: 'stanedname',
+ label: '鐐规鏍囧噯鍚嶇О',
+ id: 9,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'chk_user',
+ label: '鐐规浜哄憳',
+ id: 10,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: false,
+ width: 110,
+ prop: 'chk_result',
+ label: '鐐规缁撴灉',
+ id: 11,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 160,
+ prop: 'chk_date',
+ label: '鐐规鏃堕棿',
+ id: 12,
+ show: true,
+ fixed: false,
+ sortable: true
+ }
+ ],
+ tableTimeStampKey: new Date().getTime(), // 琛ㄦ牸key
+ dialogVisible: false,
+ // dialogForm: {
+ // OrgType: '',
+ // OrgCode: '',
+ // OrgName: '',
+ // SupUnit: ''// 涓婄骇鍗曚綅
+ // },
+ operation: '',
+
+ tableDataDialog: [], // 鐐规鏄庣粏瀵硅瘽妗唗able
+
+ title_value: '鏁版嵁瀵煎叆 / 鐐规閮ㄤ綅',
+ code: '4',
+ shows: false
+
+ }
+ },
+
+ created() {
+ this.handleRequest()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ tableColumnUpdate(val, isCopyTrue) {
+ if (isCopyTrue) {
+ this.tableColumnSettingsArray = val
+ }
+ this.tableTimeStampKey = new Date().getTime()
+
+ this.$refs.tableDataRef.doLayout()
+ },
+ handleRequest() {
+ this.getDeviceCheckTakeSearch().then(res => {
+ if (res.code === '200') {
+ this.getShopSearch()
+ }
+ })
+ },
+ async getDeviceCheckTakeSearch() {
+ let tempDate = this.form.checkdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+
+ const data = {
+ wkshopcode: this.form.wkshopcode,
+ eqpcode: this.form.eqpcode,
+ eqpname: this.form.eqpname,
+ stanedname: this.form.stanedname,
+ checkuser: this.form.checkuser,
+ checkdate: tempDate,
+ prop: this.form.prop, // 鎺掑簭瀛楁
+ order: this.form.order, // 鎺掑簭瀛楁
+ page: this.form.page, // 绗嚑椤�
+ rows: this.form.rows // 姣忛〉澶氬皯鏉�
+ }
+
+ const res = await DeviceCheckTakeSearch(data)
+ this.tableData = res.data
+ this.total = res.count
+ return { code: res.code }
+ },
+ // 鑾峰彇鎵ц杞﹂棿涓嬫媺鏁扮粍
+ async getShopSearch() {
+ const { data: res } = await PrentOrganizationNoCompany()
+ this.wkshopSelectArr = res
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getDeviceCheckTakeSearch()
+ },
+ // 鏌ヨ
+ search() {
+ this.getDeviceCheckTakeSearch()
+ },
+ // 瀵煎叆鎸夐挳
+ upload() {
+ this.shows = true
+ this.$refs.importPickerFunc.newDataFunc()
+ },
+ colos() {
+ this.shows = false
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.wkshopcode = ''
+ this.form.eqpcode = ''
+ this.form.eqpname = ''
+ this.form.stanedname = ''
+ this.form.checkuser = ''
+ this.form.checkdate = ''
+ this.getDeviceCheckTakeSearch()
+ },
+
+ // 鏂板鎸夐挳
+ add(operation) {
+ this.operation = operation
+ this.dialogVisible = true
+ },
+ // 淇敼鎸夐挳
+ async edit(operation, row) {
+ this.operation = operation
+ this.dialogVisible = true
+
+ const res = await DeviceCheckSubTakeSearch({ djwo: row.djwo })
+
+ this.tableDataDialog = res.data
+ // this.$nextTick(() => {
+ // this.dialogForm.OrgCode = row.org_code
+ // this.dialogForm.OrgName = row.org_name
+ // this.dialogForm.SupUnit = row.parent_id
+ // })
+ },
+ // 鍒犻櫎鎸夐挳
+ async del(row) {
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ DeleteOrganization({ orgid: row.code }).then(res => {
+ if (res.code === '200') {
+ this.$message.success('鍒犻櫎鎴愬姛!')
+ if (this.form.page > 1 && this.tableData.length === 1) {
+ this.form.page--
+ }
+ this.getDeviceCheckTakeSearch()
+ }
+ })
+ }).catch(() => {
+ this.$message.info('宸插彇娑堝垹闄�')
+ })
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ // this.dialogForm.OrgType = ''
+ // this.dialogForm.OrgCode = ''
+ // this.dialogForm.OrgName = ''
+ // this.dialogForm.SupUnit = ''
+ // this.$refs.dialogForm.clearValidate()
+ this.tableDataDialog = []
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ const data = {
+ OrganCode: this.dialogForm.OrgCode,
+ OrganName: this.dialogForm.OrgName,
+ OperType: this.operation === 'add' ? 'Add' : 'Update',
+ Operator: getCookie('admin')
+ }
+ AddUpdateOrganization(data).then(res => {
+ if (res.code === '200') {
+ this.$message.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ this.dialogVisible = false
+ this.getDeviceCheckTakeSearch()
+ } else {
+ this.$message.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ }
+ })
+ }
+ })
+ },
+ async download() {
+ let tempDate = this.form.checkdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+ const data = {
+ wkshopcode: this.form.wkshopcode,
+ eqpcode: this.form.eqpcode,
+ eqpname: this.form.eqpname,
+ stanedname: this.form.stanedname,
+ checkuser: this.form.checkuser,
+ checkdate: tempDate
+ }
+ const { data: res } = await DeviceCheckTakeOutExcel(data)
+ window.location.href = res
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 255
+
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ }
+
+ }
+}
+</script>
+
diff --git a/src/views/deviceManager/checkStandard.vue b/src/views/deviceManager/checkStandard.vue
index e69de29..c062430 100644
--- a/src/views/deviceManager/checkStandard.vue
+++ b/src/views/deviceManager/checkStandard.vue
@@ -0,0 +1,1349 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
+ <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+ <el-button v-waves type="success" icon="el-icon-download" @click="$router.push('./../systemSetting/dataImport?fileCode=10_1')">瀵煎叆</el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="鏍囧噯缂栫爜" style=" display: flex;">
+ <el-input v-model="form.checkstandcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鏍囧噯鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.checkstandname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鐐规绠℃帶" style=" display: flex;">
+ <el-select v-model="form.checkcontr" style="width: 200px" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in checkcontrArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+
+ <div
+ class="bodyTopFormExpand"
+ />
+ </div>
+
+ <div class="elTableDiv">
+ <!-- <TableColumnSettings-->
+ <!-- :list1="tableColumnSettingsArray"-->
+ <!-- @tableColumnUpdate="tableColumnUpdate"-->
+ <!-- />-->
+ <el-table
+ ref="tableDataRef"
+ :key="tableTimeStampKey"
+ :data="tableData"
+ :height="tableHeight+'px'"
+ border
+ class="tableFixed"
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:tableHeight+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+
+ <el-table-column
+ v-for="item in tableColumnSettingsArray"
+ v-if="item.show"
+ :key="item.id"
+ :sortable="item.sortable"
+ :prop="item.prop"
+ :min-width="item.minWidth"
+ :label="item.label"
+ :width="item.width"
+ show-tooltip-when-overflow
+ :fixed="item.fixed?(item.fixed==='left'?'left':'right'):false"
+ >
+ <template slot-scope="{row}">
+ <div v-if="!row[item.prop]">/</div>
+ <div v-else-if="item.prop==='is_checkeqp'">
+ <i
+ v-if="row[item.prop]==='Y'"
+ :style="{color:$store.state.settings.theme}"
+ class="el-icon-share"
+ @click="checkeqpClick(row)"
+ />
+ <i
+ v-if="row[item.prop]==='N'"
+ class="el-icon-share"
+ style="color: rgb(180 ,181, 185)"
+ @click="checkeqpClick(row)"
+ />
+ </div>
+ <div v-else-if="item.prop==='iscontr'">
+ <div v-if="row[item.prop]==='Y'">
+ <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />
+ 鏄�
+ </div>
+ <div v-if="row[item.prop]==='N'">
+ <i class="el-icon-info" style="margin-right: 2px" />
+ 鍚�
+ </div>
+ </div>
+ <div v-else>{{ row[item.prop] }}</div>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ label="鎿嶄綔"
+ fixed="right"
+ width="120"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-tooltip class="item" effect="dark" content="缂栬緫" placement="top">
+ <i
+ :style="{color:$store.state.settings.theme}"
+ class="el-icon-edit-outline"
+ @click="edit('edit',row)"
+ />
+ </el-tooltip>
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+ <i :style="{color:$store.state.settings.theme}" class="el-icon-delete" @click="del(row)" />
+ </el-tooltip>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getDeviceCheckStandArdSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'缂栬緫'"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="8vh"
+ @closed="handleClose"
+ >
+ <!-- @close="handleClose"-->
+ <div>
+ <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" style="margin: -20px 10px 20px 0" />璁惧鐐规鏍囧噯淇℃伅锛�
+ </div>
+ <div style="margin: 0 30px;">
+ <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
+ <el-form-item label="鏍囧噯缂栫爜" prop="code">
+ <el-input v-model="dialogForm.code" :disabled="operation!=='add'" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鏍囧噯鍚嶇О" prop="name">
+ <el-input v-model="dialogForm.name" style="width: 200px" />
+ </el-form-item>
+ <el-form-item required label="鐐规绠℃帶">
+ <el-select
+ v-model="dialogForm.enable"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in checkcontrArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鏍囧噯鎻忚堪" prop="description">
+ <el-input v-model="dialogForm.description" type="textarea" style="width: 200px" />
+ </el-form-item>
+ </el-form>
+ </div>
+ <div>
+ <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" style="margin: -20px 10px 20px 0" />璁惧鍏宠仈鐐规椤逛俊鎭細
+ </div>
+ <div style="margin-bottom:10px">
+ <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="addRow">鏂板</el-button>
+ </div>
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataDialogRef"
+ :data="tableDataDialog"
+ :height="(tableHeight-300)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:(tableHeight-300)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ >
+ <el-table-column
+ type="index"
+ width="50"
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="checkitem_code"
+ label="鐐规閮ㄤ綅缂栫爜"
+ show-tooltip-when-overflow
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.isVisible===0">{{ row.checkitem_code }}</div>
+ <el-select
+ v-if="row.isVisible===1"
+ v-model="row.checkitem_code"
+ placeholder="璇烽�夋嫨"
+ @change="val=>selectChange(val,row)"
+ >
+ <el-option
+ v-for="item in checkItemSelectArr"
+ :key="item.name"
+ :label="item.code"
+ :value="item.name"
+ />
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="checkitem_name"
+ label="鐐规閮ㄤ綅鍚嶇О"
+ show-tooltip-when-overflow
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.isVisible===0">{{ row.checkitem_name }}</div>
+ <el-select
+ v-if="row.isVisible===1"
+ v-model="row.checkitem_code"
+ placeholder="璇烽�夋嫨"
+ @change="val=>selectChange(val,row)"
+ >
+ <el-option
+ v-for="item in checkItemSelectArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ prop="checkitem_descr"
+ label="鐐规瑕佹眰"
+ show-tooltip-when-overflow
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.isVisible===0">{{ row.checkitem_descr }}</div>
+ <el-input v-else v-model="row.checkitem_descr" />
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="isscan"
+ label="閫夋嫨鎵爜"
+ show-tooltip-when-overflow
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.isVisible===0">{{ row.isscan === 'Y' ? '鏄�' : '鍚�' }}</div>
+ <el-select
+ v-if="row.isVisible===1"
+ v-model="row.isscan"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in checkcontrArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="cycle"
+ label="鐐规鍛ㄦ湡"
+ show-tooltip-when-overflow
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.isVisible===0">{{ row.cycle === 'D' ? '鏃�' : '' }}</div>
+ <el-select
+ v-if="row.isVisible===1"
+ v-model="row.cycle"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in cycleArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鎿嶄綔"
+ width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-button v-if="row.isVisible===0" v-waves type="text" @click="editRow(row)">缂栬緫</el-button>
+ <el-button v-if="row.isVisible===0" v-waves type="text" @click="delRow(row)">鍒犻櫎</el-button>
+
+ <el-button v-if="row.isVisible===1" v-waves type="text" @click="saveRow(row)">纭</el-button>
+ <el-button v-if="row.isVisible===1" v-waves type="text" @click="cancelRow(row)">鍙栨秷</el-button>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="dialogVisibleConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ <!-- 鍏宠仈璁惧-->
+ <el-dialog
+ v-el-drag-dialog
+ title="鍏宠仈璁惧"
+ :visible.sync="dialogVisibleEqp"
+ width="800px"
+ top="10vh"
+ :close-on-click-modal="false"
+ class="dialogVisibleEqp"
+ @closed="handleCloseEqp"
+ @close="handleCloseEqp"
+ >
+ <!-- @opened="handleOpenedRoles"-->
+
+ <div>
+ <i class="el-icon-s-comment" :style="{color:$store.state.settings.theme}" /> 鏍囧噯鍚嶇О锛歿{ dialogFormEqp.name }}
+ </div>
+ <el-divider />
+ <div>
+ <div style="margin-bottom:20px">
+ <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" /> 璁惧鎵�灞炶溅闂撮泦鍚堬細
+ </div>
+ <div class="myCheckboxGroup">
+
+ <div
+ v-for="item in dialogFormEqp.eqpArr"
+ :key="item.code"
+ :style="{border:item.isSelected1?'1px solid '+$store.state.settings.theme:'1px solid #eee'}"
+ class="myCheckbox"
+ @click="myCheckboxClick(item)"
+ >
+ <!-- <input-->
+ <!-- class="myCheckboxInput"-->
+ <!-- type="checkbox"-->
+ <!-- :value="item.code"-->
+ <!-- :name="item.name"-->
+ <!-- :style="{color:item.isSelected2?'#42b983':'#fff'}"-->
+ <!-- @click="myCheckboxInputClick(item)"-->
+ <!-- >{{ item.name }}-->
+ <!-- 鐖跺瓙鐐瑰嚮浜嬩欢涓嶅奖鍝�-->
+ <!-- onClick="event.cancelBubble = true"-->
+
+ <el-checkbox
+ :key="item.code"
+ v-model="item.isSelected2"
+ class="myCheckboxInput"
+ :value="item.code"
+ :name="item.name"
+ :checked="item.isSelected2"
+ :label="item.name"
+ @change="myCheckboxInputClick(item)"
+ />
+ <div class="myCheckboxInputLabel">{{ item.name }}</div>
+
+ </div>
+ </div>
+ </div>
+ <el-divider />
+ <div>
+ <div style="margin-bottom:20px">
+ <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" /> 璁惧淇℃伅锛�
+ </div>
+ <el-tree
+ ref="epqTree"
+ :data="dialogFormEqp.eqpTree"
+ show-checkbox
+ node-key="code"
+ default-expand-all
+ style="height: 320px;overflow: auto"
+ :props="defaultPropsOfEqpTree"
+ @check="checkBoxClick"
+ />
+ <!-- @check-change="checkChange"-->
+
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="eqpDialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="eqpDialogVisibleConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import {
+ AddUpdateDeviceCheckStandArd, DeleteDeviceCheckStaned,
+ DeviceCheckItemSelect,
+ DeviceCheckStandArdSearch, DeviceCheckStanedAssociationEqp, SaveDeviceCheckStanedAssociationEqp,
+ ViewDeviceCheckStanedSearch
+} from '@/api/DeviceManager'
+import $ from 'jquery'
+import { validateCode } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import TableColumnSettings from '@/components/TableColumnSettings'
+
+export default {
+ name: 'Zzjg',
+ components: {
+ Pagination, TableColumnSettings
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ checkstandcode: '', // 鏍囧噯缂栫爜
+ checkstandname: '', // 鏍囧噯鍚嶇О
+ checkcontr: '', // 鐐规绠℃帶
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ checkcontrArr: [
+ { code: 'Y', name: '鏄�' },
+ { code: 'N', name: '鍚�' }
+ ],
+ cycleArr: [
+ { code: 'D', name: '鏃�' }
+ ],
+ total: 10,
+ tableData: [],
+ tableColumnSettingsArray: [
+ { minWidth: false, width: 55, prop: 'id', label: 'id', id: 1, show: false, fixed: false, sortable: false }, // 闅愯棌鍒� show: false闅愯棌锛宼rue鏄剧ず
+ { minWidth: false, width: 55, prop: 'rowNum', label: '搴忓彿', id: 2, show: true, fixed: 'left', sortable: false }, // custom
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'code',
+ label: '鏍囧噯缂栫爜',
+ id: 3,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'name',
+ label: '鏍囧噯鍚嶇О',
+ id: 4,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 330,
+ width: false,
+ prop: 'description',
+ label: '鏍囧噯鎻忚堪',
+ id: 5,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'iscontr',
+ label: '鐐规绠℃帶',
+ id: 6,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'is_checkeqp',
+ label: '鍏宠仈璁惧',
+ id: 7,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'lm_user',
+ label: '鍒涘缓浜哄憳',
+ id: 8,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 160,
+ prop: 'lm_date',
+ label: '鍒涘缓鏃堕棿',
+ id: 9,
+ show: true,
+ fixed: false,
+ sortable: true
+ }
+ ],
+ tableTimeStampKey: new Date().getTime(), // 琛ㄦ牸key
+
+ dialogVisible: false,
+ dialogForm: {
+ code: '',
+ name: '',
+ enable: 'Y',
+ description: ''
+ },
+ operation: '',
+ dialogFormRules: {
+
+ code: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ name: [
+ { required: true, message: '璇疯緭鍏ユ爣鍑嗗悕绉�', trigger: ['blur', 'change'] }
+ ],
+ enable: [
+ { required: true, message: '', trigger: ['blur', 'change'] }
+ ]
+ },
+ tableDataDialog: [], // 琛ㄦ牸鏁版嵁
+ // tableDataDialogSelected: [], // 宸查�塩ode
+ checkItemSelectArr: [],
+ checkItemIsCancel: true,
+ dialogVisibleEqp: false,
+
+ dialogFormEqp: {
+ name: '',
+ code: '',
+ eqpAll: [], // 杞﹂棿鍙婅澶囨墍鏈�
+ eqpArr: [], // 杞﹂棿闆嗗悎鎵�鏈�
+ eqpTree: [], // 璁惧鏍戝舰鎵�鏈�
+ eqpCodeSelectedArr: []// 璁惧鏍戝舰閫変腑
+ },
+ defaultPropsOfEqpTree: {
+ value: 'code',
+ label: 'name',
+ children: 'children'
+ },
+
+ title_value: '鏁版嵁瀵煎叆 / 鐐规閮ㄤ綅',
+ code: '22',
+ shows: false
+
+ }
+ },
+ watch: {
+ shows() {
+ if (!this.shows) {
+ this.getDeviceCheckStandArdSearch()
+ }
+ }
+ },
+ created() {
+ this.handleRequest()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ tableColumnUpdate(val, isCopyTrue) {
+ if (isCopyTrue) {
+ this.tableColumnSettingsArray = val
+ }
+ this.tableTimeStampKey = new Date().getTime()
+
+ this.$refs.tableDataRef.doLayout()
+ },
+ handleRequest() {
+ this.getDeviceCheckStandArdSearch().then(res => {
+ if (res.code === '200') {
+ this.getDeviceCheckItemSelect()
+ }
+ })
+ },
+ async getDeviceCheckStandArdSearch() {
+ const res = await DeviceCheckStandArdSearch(this.form)
+ this.tableData = res.data
+ this.total = res.count
+ return { code: res.code }
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getDeviceCheckStandArdSearch()
+ },
+ // 鏌ヨ
+ search() {
+ this.getDeviceCheckStandArdSearch()
+ },
+ // 瀵煎叆鎸夐挳
+ upload() {
+ this.shows = true
+ this.$refs.importPickerFunc.newDataFunc()
+ },
+ colos() {
+ this.shows = false
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.checkstandcode = ''
+ this.form.checkstandname = ''
+ this.form.checkcontr = ''
+ this.getDeviceCheckStandArdSearch()
+ },
+
+ async getDeviceCheckItemSelect() {
+ const { data: res } = await DeviceCheckItemSelect()
+ this.checkItemSelectArr = res
+ },
+
+ // 鏂板鎸夐挳
+ add(operation) {
+ this.operation = operation
+ this.dialogVisible = true
+ // this.getDeviceCheckItemSelect()
+ this.$nextTick(() => {
+ this.$refs.tableDataDialogRef.doLayout()
+ })
+ },
+ // 淇敼鎸夐挳
+ edit(operation, row) {
+ // this.getDeviceCheckItemSelect()
+ this.operation = operation
+ this.getViewDeviceCheckStanedSearch(row.code)
+ this.dialogVisible = true
+
+ this.$nextTick(() => {
+ this.$refs.tableDataDialogRef.doLayout()
+ })
+ // this.$nextTick(() => {
+ // this.dialogForm.code = row.code
+ // this.dialogForm.name = row.name
+ // this.dialogForm.enable = row.enable
+ // this.dialogForm.description = row.description
+ // })
+ },
+ // 淇敼鍓嶈姹傛帴鍙�
+ async getViewDeviceCheckStanedSearch(checkstand_code) {
+ const { data: res } = await ViewDeviceCheckStanedSearch({ checkstand_code })
+ this.tableDataDialog = res.Data
+
+ this.dialogForm.code = res.code
+ this.dialogForm.name = res.name
+ this.dialogForm.enable = res.enable
+ this.dialogForm.description = res.description
+
+ this.tableDataDialog.forEach(item => {
+ item.isVisible = 0
+ item.checkitem_code = item.code
+ item.checkitem_name = item.name
+ item.checkitem_descr = item.chkdesc
+ })
+
+ this.checkItemSelectArr = [...this.checkItemSelectArr].filter(x => [...this.tableDataDialog].every(y => y.checkitem_code !== x.code))
+ },
+ // 鍒犻櫎鎸夐挳
+ async del(row) {
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ DeleteDeviceCheckStaned({ checkstand_code: row.code }).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('鍒犻櫎鎴愬姛!')
+ if (this.form.page > 1 && this.tableData.length === 1) {
+ this.form.page--
+ }
+ this.getDeviceCheckStandArdSearch()
+ }
+ })
+ }).catch(() => {
+ this.$notify.info('宸插彇娑堝垹闄�')
+ })
+ },
+
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm.code = ''
+ this.dialogForm.name = ''
+ this.dialogForm.enable = 'Y'
+ this.dialogForm.description = ''
+ this.tableDataDialog = []
+ this.getDeviceCheckItemSelect()
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ if (this.tableDataDialog.length === 0) {
+ return this.$message.info('璁惧鍏宠仈鐐规椤逛俊鎭笉鑳戒负绌猴紒')
+ }
+
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ this.$store.state.app.buttonIsDisabled = true
+ // this.tableDataDialog.forEach((item, index) => { // 鍘绘帀姝e湪缂栬緫涓旀槸绌篶heckitem_code
+ // if (item.isVisible === 1 && item.checkitem_code === '') {
+ // this.tableDataDialog.splice(index, 1)
+ // }
+ // })
+
+ this.tableDataDialog.filter(item => item.checkitem_code !== '')
+
+ let Data = []
+ // 鏁扮粍涓璞$浉鍚岀殑鍘婚噸
+ Data = this.tableDataDialog.filter((currentValue, currentIndex, selfArr) => {
+ return selfArr.findIndex(item => item.checkitem_code === currentValue.checkitem_code) === currentIndex
+ })
+ Data.forEach((item, index) => {
+ item.checkitem_seq = index + 1
+ })
+
+ const data = {
+ 'code': this.dialogForm.code,
+ 'name': this.dialogForm.name,
+ 'enable': this.dialogForm.enable,
+ 'description': this.dialogForm.description,
+ 'Data': Data
+ }
+
+ AddUpdateDeviceCheckStandArd(data, this.operation === 'add' ? 'Add' : 'Update').then(res => {
+ if (res.code === '200') {
+ this.dialogVisible = false
+ this.$notify.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ this.getDeviceCheckStandArdSearch()
+ this.$store.state.app.buttonIsDisabled = false
+ } else {
+ this.$notify.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ }
+ })
+ }
+ })
+ },
+
+ selectChange(val, row) {
+ const res = this.checkItemSelectArr.find(item => {
+ return item.code === val || item.name === val
+ })
+ row.checkitem_descr = res.description
+ row.checkitem_code = res.code
+ row.checkitem_name = res.name
+ },
+ // 鏂板琛�
+ addRow() {
+ let flag = false
+ this.tableDataDialog.forEach(item => {
+ if (item.isVisible === 1) {
+ // return this.$message.info('璇峰厛纭鎴栧彇娑堜笂鏉¤褰曪紒')
+ flag = true
+ }
+ })
+ if (flag) {
+ return this.$message.info('璇峰厛纭鎴栧彇娑堜笂鏉¤褰曪紒')
+ }
+ this.tableDataDialog.push({
+ checkitem_code: '',
+ checkitem_name: '',
+ checkitem_descr: '',
+ isscan: 'Y',
+ cycle: 'D',
+ isVisible: 1
+ })
+
+ this.checkItemIsCancel = false
+ },
+ editRow(row) {
+ let flag = false
+ this.tableDataDialog.forEach((item, index) => {
+ if (item.isVisible === 1) {
+ flag = true
+ }
+ })
+ if (flag) {
+ return this.$message.info('璇峰厛纭鎴栧彇娑堝叾瀹冭锛�')
+ }
+
+ this.checkItemIsCancel = false
+ this.checkItemSelectArr.splice(0, 0, {
+ code: row.checkitem_code,
+ name: row.checkitem_name,
+ description: row.checkitem_descr
+ })
+
+ this.tableDataDialog.forEach((item, index) => {
+ if (item.checkitem_code === row.checkitem_code) {
+ this.tableDataDialog.splice(index, 1, {
+ checkitem_code: row.checkitem_code,
+ checkitem_name: row.checkitem_name,
+ checkitem_descr: row.checkitem_descr,
+ isscan: row.isscan,
+ cycle: row.cycle,
+ isVisible: 1
+ })
+ }
+ })
+ },
+ delRow(row) {
+ this.checkItemSelectArr.splice(0, 0, {
+ code: row.checkitem_code,
+ name: row.checkitem_name,
+ description: row.checkitem_descr
+ })
+ this.tableDataDialog.forEach((item, index) => {
+ if (item.checkitem_code === row.checkitem_code) {
+ this.tableDataDialog.splice(index, 1)
+ }
+ })
+ },
+ saveRow(row) {
+ if (row.checkitem_code === '' && row.checkitem_name === '') {
+ return this.$message.info('鐐规閮ㄤ綅涓嶈兘涓虹┖锛�')
+ }
+ row.isVisible = 0
+ this.checkItemSelectArr.forEach((item, index) => {
+ if (item.code === row.checkitem_code) {
+ this.checkItemSelectArr.splice(index, 1)
+ }
+ })
+ },
+ cancelRow(row) {
+ // this.checkItemSelectArr.forEach((item, index) => {
+ // if (item.code === row.checkitem_code) {
+ if (this.checkItemIsCancel) {
+ this.checkItemSelectArr.splice(0, 0, {
+ code: row.checkitem_code,
+ name: row.checkitem_name,
+ description: row.checkitem_descr
+ })
+ }
+ this.JYIsCancel = true
+ // }
+ // })
+
+ this.tableDataDialog.forEach((item, index) => {
+ if (item.checkitem_code === row.checkitem_code && item.isVisible === 1) {
+ row.isVisible = 0
+ this.tableDataDialog.splice(index, 1)
+ }
+ })
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 195
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ },
+ // 鍏宠仈璁惧
+ checkeqpClick(row) {
+ const loading = this.$loading({
+ lock: true,
+ text: '姝e湪鍔犺浇鏁版嵁锛岃绋嶇瓑...',
+ spinner: 'el-icon-loading',
+ customClass: 'osloading',
+ background: 'rgba(0, 0, 0, 0.7)'
+ })
+ this.dialogFormEqp.name = row.name
+ this.dialogFormEqp.code = row.code
+
+ DeviceCheckStanedAssociationEqp({ checkstand_code: row.code }).then(res => {
+ if (res.code === '200') {
+ setTimeout(() => {
+ loading.close()
+ this.dialogFormEqp.eqpAll = res.data.filter(item => item.children.length > 0)
+
+ if (this.dialogFormEqp.eqpAll.length > 0) {
+ this.dialogFormEqp.eqpAll.forEach((item, index) => {
+ this.dialogFormEqp.eqpArr.push({
+ code: item.code,
+ name: item.name,
+ type: item.type,
+ isSelected1: index === 0,
+ isSelected2: item.flag === 'Y'
+ })
+ if (item.flag === 'Y') {
+ this.$nextTick(() => {
+ $('input:checkbox').eq(index).prop('checked', true)// 鑷畾涔夊崟閫夋鍥炴樉
+ })
+ }
+ if (item.children && item.children.length > 0) {
+ item.children.forEach(it => {
+ if (it.flag === 'Y') {
+ this.dialogFormEqp.eqpCodeSelectedArr.push(it.code)
+ }
+ })
+ }
+ })
+ this.dialogFormEqp.eqpAll[0].name = '鍏ㄩ儴'
+ this.dialogFormEqp.eqpTree = [this.dialogFormEqp.eqpAll[0]]
+ }
+
+ this.dialogVisibleEqp = true
+
+ this.$nextTick(() => { // 鏍戝舰鍥炴樉
+ this.$refs.epqTree.setCheckedKeys(this.dialogFormEqp.eqpCodeSelectedArr)
+ })
+ }, 1000)
+ } else {
+ loading.close()
+ }
+ })
+ },
+ // 鍏宠仈璁惧瀵硅瘽妗嗗叧闂�
+ handleCloseEqp() {
+ this.$refs.epqTree.setCheckedKeys([])
+ this.dialogFormEqp.code = ''
+ this.dialogFormEqp.name = ''
+ this.dialogFormEqp.eqpAll = []
+ this.dialogFormEqp.eqpArr = []
+ this.dialogFormEqp.eqpTree = []
+ this.dialogFormEqp.eqpCodeSelectedArr = []
+ },
+ // 澶х洅瀛愮偣鍑�
+ myCheckboxClick(val) {
+ this.dialogFormEqp.eqpArr.forEach((item, index) => {
+ item.isSelected1 = item.code === val.code
+ if (item.code === val.code) {
+ this.dialogFormEqp.eqpAll[index].name = '鍏ㄩ儴'
+ this.dialogFormEqp.eqpTree = [this.dialogFormEqp.eqpAll[index]]
+ }
+ })
+ this.$nextTick(() => { // 鏍戝舰鍥炴樉
+ this.$refs.epqTree.setCheckedKeys(this.dialogFormEqp.eqpCodeSelectedArr)
+ })
+ },
+ // 灏忕洅瀛愮偣鍑�
+ myCheckboxInputClick(val) {
+ console.log(val)
+ val.isSelected2 = !!val.isSelected2
+ if (val.isSelected2) { // 浠庢病閫変腑鍒伴�変腑
+ console.log('浠庢病閫変腑鍒伴�変腑')
+ this.dialogFormEqp.eqpAll.forEach((item, index) => {
+ if (item.code === val.code) {
+ if (item.children && item.children.length > 0) {
+ item.children.forEach(it => {
+ this.dialogFormEqp.eqpCodeSelectedArr.push(it.code)
+ })
+ }
+ }
+ })
+ console.log(this.dialogFormEqp.eqpCodeSelectedArr, 1)
+ this.$nextTick(() => { // 鏍戝舰鍥炴樉
+ this.$refs.epqTree.setCheckedKeys(this.dialogFormEqp.eqpCodeSelectedArr)
+ })
+ } else { // 浠庨�変腑鍒版病閫変腑
+ console.log('浠庨�変腑鍒版病閫変腑')
+ const temp = []
+ this.dialogFormEqp.eqpAll.forEach((item, index) => {
+ if (item.code === val.code) {
+ if (item.children && item.children.length > 0) {
+ item.children.forEach(it => {
+ temp.push(it.code)
+ })
+ }
+ }
+ })
+ this.dialogFormEqp.eqpCodeSelectedArr = [...this.dialogFormEqp.eqpCodeSelectedArr].filter(x => [...temp].every(y => y !== x))
+ this.$nextTick(() => { // 鏍戝舰鍥炴樉
+ this.$refs.epqTree.setCheckedKeys(this.dialogFormEqp.eqpCodeSelectedArr)
+ })
+ }
+ console.log(this.dialogFormEqp.eqpCodeSelectedArr, 999)
+ },
+ // 鏍戝舰澶嶉�夋鐐瑰嚮浜嬩欢
+ checkBoxClick(obj, { checkedNodes, checkedKeys, halfCheckedNodes, halfCheckedKeys }) {
+ let checkedFatherCode = '' // 鎵惧埌 checkedFatherCode 鐖禼ode鍊�
+ console.log(obj, { checkedNodes, checkedKeys, halfCheckedNodes, halfCheckedKeys })
+ this.dialogFormEqp.eqpAll.forEach((item, index) => {
+ if (item.code === obj.code) {
+ checkedFatherCode = item.code
+ }
+ if (item.children && item.children.length > 0) {
+ item.children.forEach((it, ind) => {
+ if (it.code === obj.code) {
+ checkedFatherCode = item.code
+ }
+ })
+ }
+ })
+ console.log(checkedFatherCode, 1)
+
+ // 1.绗竴绉嶆儏鍐靛綋鏍戝舰 鍗婂彾 涓嶄负闆� 鍏ㄥ彾 涓嶄负闆�
+ if (halfCheckedKeys.length !== 0 && checkedKeys.length !== 0) {
+ console.log('// 1.绗竴绉嶆儏鍐靛綋鏍戝舰 鍗婂彾 涓嶄负闆� 鍏ㄥ彾 涓嶄负闆�')
+ this.dialogFormEqp.eqpArr.forEach((item, index) => {
+ if (item.code === checkedFatherCode) {
+ console.log(item.code, 777)
+ this.dialogFormEqp.eqpArr[index].isSelected2 = true
+ this.$nextTick(() => {
+ $('input:checkbox').eq(index).prop('checked', true)// 鑷畾涔夊崟閫夋鍥炴樉
+ })
+ }
+ })
+ this.dialogFormEqp.eqpCodeSelectedArr.forEach((item, index) => {
+ if (item === obj.code) {
+ this.dialogFormEqp.eqpCodeSelectedArr.splice(index, 1)
+ }
+ })
+ checkedKeys.forEach(item => {
+ this.dialogFormEqp.eqpCodeSelectedArr.push(item)
+ })
+ this.dialogFormEqp.eqpCodeSelectedArr = [...new Set(this.dialogFormEqp.eqpCodeSelectedArr)]
+ }
+ console.log(this.dialogFormEqp.eqpCodeSelectedArr, 666)
+ // 2.绗簩绉嶆儏鍐靛綋鏍戝舰 鍗婂彾 涓洪浂 鍏ㄥ彾 涓洪浂
+ if (halfCheckedKeys.length === 0 && checkedKeys.length === 0) {
+ console.log('// 2.绗簩绉嶆儏鍐靛綋鏍戝舰 鍗婂彾 涓洪浂 鍏ㄥ彾 涓洪浂')
+ const temp = []
+ this.dialogFormEqp.eqpArr.forEach((item, index) => {
+ if (item.code === checkedFatherCode) {
+ this.dialogFormEqp.eqpArr[index].isSelected2 = false
+ this.$nextTick(() => {
+ $('input:checkbox').eq(index).prop('checked', false)// 鑷畾涔夊崟閫夋鍥炴樉
+ })
+ }
+ })
+ this.dialogFormEqp.eqpAll.forEach((item, index) => {
+ if (item.code === checkedFatherCode) {
+ if (item.children && item.children.length > 0) {
+ item.children.forEach(it => {
+ temp.push(it.code)
+ })
+ }
+ }
+ })
+ this.dialogFormEqp.eqpCodeSelectedArr = [...this.dialogFormEqp.eqpCodeSelectedArr].filter(x => [...temp].every(y => y !== x))
+ }
+
+ // 3.绗笁绉嶇鎯呭喌褰撴爲褰� 鍗婂彾 涓洪浂 鍏ㄥ彾 涓嶄负闆�
+ if (halfCheckedKeys.length === 0 && checkedKeys.length !== 0) {
+ console.log('// 3.绗笁绉嶇鎯呭喌褰撴爲褰� 鍗婂彾 涓洪浂 鍏ㄥ彾 涓嶄负闆�')
+ this.dialogFormEqp.eqpArr.forEach((item, index) => {
+ if (item.code === checkedFatherCode) {
+ this.dialogFormEqp.eqpArr[index].isSelected2 = true
+ this.$nextTick(() => {
+ $('input:checkbox').eq(index).prop('checked', true)// 鑷畾涔夊崟閫夋鍥炴樉
+ })
+ }
+ })
+
+ this.dialogFormEqp.eqpAll.forEach((item, index) => {
+ if (item.code === checkedFatherCode) {
+ if (item.children && item.children.length > 0) {
+ item.children.forEach(it => {
+ this.dialogFormEqp.eqpCodeSelectedArr.push(it.code)
+ })
+ }
+ }
+ })
+ }
+ },
+ // 鍙栨秷浜嬩欢
+ eqpDialogVisibleCancel() {
+ this.dialogVisibleEqp = false
+ },
+ // 纭浜嬩欢
+ eqpDialogVisibleConfirm() {
+ // console.log(this.dialogFormEqp.eqpCodeSelectedArr, 888)
+ // this.dialogVisibleEqp = false
+ this.$store.state.app.buttonIsDisabled = true
+ const data = []
+ this.dialogFormEqp.eqpAll.forEach((item, index) => {
+ if (item.children && item.children.length > 0) {
+ item.children.forEach(it => {
+ if (this.dialogFormEqp.eqpCodeSelectedArr.includes(it.code)) {
+ data.push({
+ name: it.name,
+ code: it.code
+ })
+ }
+ })
+ }
+ })
+
+ SaveDeviceCheckStanedAssociationEqp(data, this.dialogFormEqp.code).then(res => {
+ if (res.code === '200') {
+ this.dialogVisibleEqp = false
+ this.$notify.success('鍏宠仈鎴愬姛锛�')
+ this.getDeviceCheckStandArdSearch()
+ this.$store.state.app.buttonIsDisabled = false
+ }
+ })
+ }
+ }
+}
+</script>
+<!--鍏叡椤甸潰鏍峰紡-->
+<style lang="scss" scoped>
+$main_color: #42b983;
+
+.dialogVisibleEqp {
+ .myCheckboxGroup {
+ display: flex;
+ flex-wrap: wrap;
+
+ .myCheckbox {
+ //border: 1px solid $main_color;
+ border: 1px solid #eee;
+ display: flex;
+ min-width: 100px;
+ padding: 10px;
+ margin: 10px 30px 0 0;
+ border-radius: 5px;
+ cursor: default;
+ position: relative;
+
+ .myCheckboxInput {
+ margin: 1px 5px 0 0;
+ cursor: pointer;
+ }
+
+ .myCheckboxInputLabel {
+ position: absolute;
+ left: 29px;
+ padding: 5px;
+ top: 6px;
+ color: transparent;
+
+ }
+
+ }
+
+ //.myCheckbox{
+ // border: 1px solid $main_color;
+ //}
+
+ input[type=checkbox] {
+ cursor: pointer;
+ position: relative;
+ width: 14px;
+ height: 14px;
+ font-size: 14px;
+ }
+
+ input[type=checkbox]::after {
+ position: absolute;
+ top: 0;
+ //color: rgb(130, 35, 35);
+ color: $main_color;
+ width: 14px;
+ height: 14px;
+ display: inline-block;
+ visibility: visible;
+ padding-left: 0px;
+ text-align: center;
+ content: ' ';
+ border-radius: 3px
+ }
+
+ input[type=checkbox]:checked::after {
+ //content: "鉁�";
+ content: "鈭�";
+ color: #fff;
+ font-size: 12px;
+ font-weight: bold;
+ background-color: $main_color;
+ }
+ }
+}
+
+::v-deep .el-button--text {
+ font-size: 14px;
+ cursor: pointer;
+}
+
+.el-icon-share, .el-icon-delete, .el-icon-edit-outline {
+ color: $main_color;
+ cursor: pointer;
+}
+
+.el-icon-edit-outline {
+ margin-right: 15px;
+}
+
+::v-deep .el-button--primary, .el-button--default, .el-button--info {
+ height: 34px;
+ display: flex;
+ align-items: center;
+ padding: 0 15px;
+}
+
+::v-deep .el-button--primary {
+ //background-color: $main_color !important;
+}
+
+::v-deep .el-button--default {
+ background-color: #f8f8fa;
+ border: none;
+}
+
+::v-deep .el-input__inner {
+ height: 34px;
+ line-height: 34px;
+ //color: #a7a7a7;
+}
+
+//::v-deep .el-dialog__body {
+// padding: 20px 100px !important;
+//}
+::v-deep .el-dialog__body {
+ padding: 20px 20px !important;
+}
+
+::v-deep .dialogVisibleRoles .el-dialog__body {
+ padding: 20px 20px !important;
+}
+
+::v-deep .importPickerClass .el-dialog__body {
+ padding: 20px 20px !important;
+}
+
+::v-deep .el-dialog__footer {
+ display: flex;
+ justify-content: flex-end;
+}
+
+::v-deep .el-table .caret-wrapper {
+ transform: scale(0.8);
+}
+
+::v-deep .cell {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
+
+::v-deep .el-table::before {
+ height: 0;
+}
+
+::v-deep .el-table__body-wrapper {
+ background-color: #f8f8fa;
+}
+
+::v-deep .el-table__body .el-table__row.hover-row td {
+ background-color: #eaecef;
+}
+
+::v-deep .el-form--inline .el-form-item__label {
+ color: #a7a7a7;
+}
+
+.body ::v-deep .el-divider {
+ border: 1px solid #eee;
+ width: 99%;
+ margin: 10px auto;
+}
+
+.body ::v-deep .el-form-item {
+ margin-bottom: 0;
+}
+
+.userDialogVisible ::v-deep .el-form-item {
+ margin-bottom: 0;
+}
+
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.tableFixed {
+ ::v-deep .el-table__fixed-right {
+ height: 100% !important;
+ }
+
+ ::v-deep .el-table__fixed {
+ height: 100% !important;
+ }
+}
+</style>
+<style>
+.osloading {
+ font-size: 26px !important;
+}
+
+.el-loading-text {
+ font-size: 26px !important;
+}
+
+.el-table .custom-row {
+ background: #f8f8fa;
+}
+</style>
diff --git a/src/views/deviceManager/deviceList.vue b/src/views/deviceManager/deviceList.vue
index e69de29..050451f 100644
--- a/src/views/deviceManager/deviceList.vue
+++ b/src/views/deviceManager/deviceList.vue
@@ -0,0 +1,773 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+
+ <div style="display: flex">
+ <div style="width: 300px;margin: 10px 10px 0 0;background:#fff">
+
+ <div style="margin: 20px 10px 0 10px;display: flex;justify-content: space-between;">
+ <div style="display: flex;">
+ <div
+ style="width: 5px;height: 100%;border-radius: 5px;"
+ :style="{background:$store.state.settings.theme}"
+ />
+ <div style="margin-left: 8px;">璁惧娓呭崟</div>
+ </div>
+
+ <div style="margin-right:10px">
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="鏂板" placement="top">
+ <i class="el-icon-plus" style="cursor: pointer;color: #999" @click="treeAddClick('add')" />
+ </el-tooltip>
+ </div>
+
+ </div>
+
+ <el-tree
+ ref="treeLeftRef"
+ style="padding: 10px;overflow: auto"
+ :style="{height:(tableHeight+222)+'px'}"
+ :data="treeLeft"
+ node-key="code"
+ highlight-current
+ :props="defaultPropsLeft"
+ :default-expand-all="true"
+ :expand-on-click-node="false"
+ @node-click="getDeviceMangerSearch"
+ >
+ <span slot-scope="{ node, data }" class="custom-tree-node">
+ <span v-if="!data.isEdit">{{ data.name }}</span>
+ <span v-if="!data.isEdit">
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="缂栬緫" placement="top">
+ <i
+ v-if="data.code!=='-1'"
+ class="el-icon-edit"
+ style="margin-right:10px;color: #999"
+ @click.stop="treeEditClick(node,data,'edit')"
+ />
+ </el-tooltip>
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+ <i
+ v-if="data.code!=='-1'"
+ class="el-icon-delete"
+ style="margin-right: 4px;color: #999"
+ @click.stop="treeDeleteClick(node,data)"
+ />
+ </el-tooltip>
+ </span>
+ </span>
+ </el-tree>
+ </div>
+
+ <div
+ style=" width:calc(100% - 300px);"
+ >
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
+ <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+ <el-button v-waves type="success" icon="el-icon-download" @click="$router.push('./../systemSetting/dataImport?fileCode=9')">瀵煎叆</el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="璁惧缂栫爜" style=" display: flex;">
+ <el-input v-model="form.devicecode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="璁惧鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.devicename" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <!-- <el-form-item label="浣跨敤鐘舵��" style=" display: flex;">-->
+ <!-- <el-select-->
+ <!-- v-model="form.status"-->
+ <!-- style="width: 100%;"-->
+ <!-- placeholder="璇烽�夋嫨"-->
+ <!-- >-->
+ <!-- <el-option-->
+ <!-- v-for="item in statusArr"-->
+ <!-- :key="item.code"-->
+ <!-- :label="item.name"-->
+ <!-- :value="item.code"-->
+ <!-- />-->
+ <!-- </el-select>-->
+ <!-- </el-form-item>-->
+ <el-form-item label="鎵�灞炵粍缁�" style=" display: flex;">
+ <el-cascader
+ ref="cascader"
+ v-model="form.storgcode"
+ :options="cascaderOptions"
+ filterable
+ :props="defaultProps"
+ :show-all-levels="false"
+ />
+ </el-form-item>
+ <!-- <el-form-item label="鐢ㄦ埛缂栫爜" style=" display: flex;">-->
+ <!-- <el-input v-model="form.usercode" placeholder="璇疯緭鍏�" style="width: 200px" />-->
+ <!-- </el-form-item>-->
+ <!-- <el-form-item v-show="isExpandForm" label="鐢ㄦ埛鍚嶇О" style=" display: flex;">-->
+ <!-- <el-input v-model="form.username" placeholder="璇疯緭鍏�" style="width: 200px" />-->
+ <!-- </el-form-item>-->
+ <!-- <el-form-item v-show="isExpandForm" label="鐢ㄦ埛缂栫爜" style=" display: flex;">-->
+ <!-- <el-input v-model="form.usercode" placeholder="璇疯緭鍏�" style="width: 200px" />-->
+ <!-- </el-form-item>-->
+ <!-- <el-form-item v-show="isExpandForm" label="鐢ㄦ埛鍚嶇О" style=" display: flex;">-->
+ <!-- <el-input v-model="form.username" placeholder="璇疯緭鍏�" style="width: 200px" />-->
+ <!-- </el-form-item>-->
+ <!-- <el-form-item v-show="isExpandForm" label="鐢ㄦ埛缂栫爜" style=" display: flex;">-->
+ <!-- <el-input v-model="form.usercode" placeholder="璇疯緭鍏�" style="width: 200px" />-->
+ <!-- </el-form-item>-->
+ <!-- <el-form-item v-show="isExpandForm" label="鐢ㄦ埛鍚嶇О" style=" display: flex;">-->
+ <!-- <el-input v-model="form.username" placeholder="璇疯緭鍏�" style="width: 200px" />-->
+ <!-- </el-form-item>-->
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="getDeviceMangerSearch($refs.treeLeftRef.getCurrentNode())">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ style="height: 5px;"
+ >
+ <!-- <svg-icon-->
+ <!-- v-show="mouseHoverType==='mouseout'"-->
+ <!-- style="cursor: pointer"-->
+ <!-- :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"-->
+ <!-- @mouseenter="mouseHoverType=$event.type"-->
+ <!-- />-->
+ <!-- <svg-icon-->
+ <!-- v-show="mouseHoverType==='mouseenter'"-->
+ <!-- style="cursor: pointer"-->
+ <!-- :icon-class="!isExpandForm?'doubleDown':'doubleUp'"-->
+ <!-- @click="isExpandForm=!isExpandForm"-->
+ <!-- @mouseout="mouseHoverType=$event.type"-->
+ <!-- />-->
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+80)+'px'"
+ border
+ row-class-name="custom-row"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+80)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <!-- prop="RowNum"-->
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="code"
+ label="璁惧缂栫爜"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="name"
+ label="璁惧鍚嶇О"
+
+ sortable="custom"
+ />
+ <el-table-column
+ prop="eqptype_name"
+ label="璁惧绫诲瀷"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="torg_name"
+ label="鎵�灞炵粍缁�"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="enable"
+ label="浣跨敤鐘舵��"
+ width="110"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <el-tag v-if="row.enable==='Y'" size="small" type="success">姝e父</el-tag>
+ <el-tag v-if="row.enable==='N'" size="small" type="danger">鍋滅敤</el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鍒涘缓浜哄憳"
+ prop="lm_user"
+ sortable="custom"
+ width="110"
+ />
+ <el-table-column
+ label="鍒涘缓鏃堕棿"
+ prop="lm_date"
+ sortable="custom"
+ width="160"
+ />
+
+ <el-table-column
+ label="鎿嶄綔"
+ width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-tooltip class="item" effect="dark" content="缂栬緫" placement="top">
+ <i
+ class="el-icon-edit-outline"
+ :style="{color:$store.state.settings.theme}"
+ @click="edit('edit',row)"
+ />
+ </el-tooltip>
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+ <i
+ class="el-icon-delete"
+ :style="{color:$store.state.settings.theme}"
+ @click="del(row)"
+ />
+ </el-tooltip>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes,jumper"
+ popper-class="select_bottom"
+ @pagination="getDeviceMangerSearch($refs.treeLeftRef.getCurrentNode())"
+ />
+
+ </div>
+ </div>
+ </div>
+
+ <!-- 璁惧绫诲埆鏂板淇敼-->
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'缂栬緫'"
+ :visible.sync="dialogClassVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClassClose"
+ @close="handleClassClose"
+ >
+ <el-form ref="dialogClassForm" inline :rules="dialogClassFormRules" :model="dialogClassForm" label-width="110px">
+ <el-form-item label="璁惧绫诲瀷缂栫爜" prop="code">
+ <el-input v-model="dialogClassForm.code" :disabled="operation!=='add'" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="璁惧绫诲瀷鍚嶇О" prop="name">
+ <el-input v-model="dialogClassForm.name" style="width: 200px" />
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleClassCancel">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="dialogVisibleClassConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ <!-- 璁惧娓呭崟鏂板淇敼-->
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'缂栬緫'"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <el-form ref="dialogForm" class="" inline :rules="dialogFormRules" :model="dialogForm" label-width="110px">
+ <el-form-item label="璁惧缂栫爜" prop="devicecode">
+ <el-input v-model="dialogForm.devicecode" :disabled="operation!=='add'" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="璁惧鍚嶇О" prop="devicename">
+ <el-input v-model="dialogForm.devicename" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="璁惧绫诲瀷" prop="devicetypecode">
+ <el-select
+ v-model="dialogForm.devicetypecode"
+ style="width:200px"
+ placeholder="璇烽�夋嫨"
+ filterable
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in treeLeftArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鎵�灞炵粍缁�" prop="storgcode">
+ <el-cascader
+ ref="dialogCascader"
+ v-model="dialogForm.storgcode"
+ :options="cascaderOptions"
+ filterable
+ style="width: 200px;"
+ :props="defaultProps"
+ :show-all-levels="false"
+ />
+ </el-form-item>
+ <el-form-item required label="鐘舵��">
+ <el-radio-group v-model="dialogForm.status">
+ <el-radio label="Y">姝e父</el-radio>
+ <el-radio label="N">鍋滅敤</el-radio>
+ </el-radio-group>
+ </el-form-item>
+
+ </el-form>
+
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="dialogVisibleConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
+
+<script>
+import waves from '@/directive/waves'
+import Pagination from '@/components/Pagination'
+import { validateCode } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import arrayToTree from 'array-to-tree'
+import { PrentOrganization } from '@/api/GeneralBasicData'
+import {
+ AddUpdateDeviceManger,
+ AddUpdateDeviceType, DeleteDeviceManger,
+ DeleteDeviceType,
+ DeviceMangerSearch,
+ DeviceTypeSearch
+} from '@/api/DeviceManager'
+
+export default {
+ name: 'RoleList',
+ directives: { waves, elDragDialog },
+ components: {
+ Pagination
+ },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ operation: '',
+
+ treeLeft: [
+ {
+ code: '-1',
+ name: '鍏ㄩ儴'
+ }
+ ], // 宸︿晶鏍�
+ treeLeftArr: [],
+ defaultPropsLeft: {
+ children: 'children',
+ label: 'name'
+ },
+
+ tableData: [],
+ form: {
+ devicetype: '',
+ devicecode: '',
+ devicename: '',
+ status: '',
+ storgcode: '',
+ page: 1,
+ rows: 20,
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc' // 鎺掑簭瀛楁
+ },
+ total: 0,
+
+ statusArr: [
+ { code: '0', name: '姝e父' },
+ { code: '1', name: '鍋滅敤' }
+ ],
+ defaultProps: {
+ checkStrictly: true,
+ expandTrigger: 'hover',
+ value: 'torg_code',
+ label: 'torg_name'
+ },
+ Options: [],
+ cascaderOptions: [],
+
+ dialogClassVisible: false,
+ dialogClassForm: {
+ code: '', // 璁惧绫诲瀷缂栫爜
+ name: '', // 璁惧鍚嶇О鍚嶇О
+ OperType: ''// OperType
+ },
+ dialogClassFormRules: {
+ code: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ name: [
+ { required: true, message: '璇疯緭璁惧绫诲瀷鍚嶇О', trigger: ['blur', 'change'] }
+ ]
+ },
+
+ dialogVisible: false,
+ dialogForm: {
+ devicecode: '', // 璁惧缂栫爜
+ devicename: '', // 璁惧鍚嶇О
+ devicetypecode: '', // 璁惧绫诲瀷缂栫爜
+ storgcode: [], // 缁勭粐缂栫爜
+ status: 'Y', // 浣跨敤鐘舵��: 姝e父(Y)鍋滅敤(N)
+ OperType: '' // 鎿嶄綔绫诲瀷
+ },
+ dialogFormRules: {
+ devicecode: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ devicename: [
+ { required: true, message: '璇疯緭鍏ヨ澶囧悕绉�', trigger: ['blur', 'change'] }
+ ],
+ devicetypecode: [
+ { required: true, message: '璇烽�夋嫨璁惧绫诲瀷', trigger: ['blur', 'change'] }
+ ],
+ storgcode: [
+ { required: true, message: '璇烽�夋嫨鎵�灞炵粍缁�', trigger: ['blur', 'change'] }
+ ]
+
+ }
+
+ }
+ },
+
+ created() {
+
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+
+ this.getDeviceTypeSearch()
+ this.getPrentOrganization()
+ },
+ methods: {
+ async getDeviceTypeSearch() {
+ const res = await DeviceTypeSearch()
+ res.data.forEach(i => {
+ i.idparent = i.idparent ? i.idparent : '-1'
+ })
+ this.treeLeftArr = res.data
+ this.treeLeftArr.forEach(e => {
+ e.name = e.code + ' ' + e.name
+ })
+ this.treeLeft = arrayToTree(this.treeLeft.concat(res.data), {
+ parentProperty: 'idparent',
+ customID: 'code',
+ childrenProperty: 'children'
+ })
+
+ this.$nextTick(() => {
+ this.$refs.treeLeftRef.setCurrentKey('-1')
+ this.getDeviceMangerSearch(this.$refs.treeLeftRef.getCurrentNode())
+ })
+ },
+ async getDeviceMangerSearch(node) {
+ this.form.storgcode = this.form.storgcode ? this.$refs.cascader.checkedValue[this.$refs.cascader.checkedValue.length - 1] : ''
+ this.form.devicetype = node.code !== '-1' ? node.code : ''
+ const res = await DeviceMangerSearch(this.form)
+
+ this.tableData = res.data
+ this.total = res.count
+ },
+ // 缁勭粐鏋舵瀯绾ц仈閫夋嫨鍣�
+ async getPrentOrganization() {
+ const { data: res } = await PrentOrganization()
+ this.Options = res
+ this.cascaderOptions = arrayToTree(res, {
+ parentProperty: 'parent_id',
+ customID: 'torg_code',
+ childrenProperty: 'children'
+ })
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 280
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getDeviceMangerSearch(this.$refs.treeLeftRef.getCurrentNode())
+ },
+ // 鏂板鎸夐挳
+ add(operation) {
+ this.operation = operation
+ this.dialogVisible = true
+ this.dialogForm.OperType = 'Add'
+ },
+ // 淇敼鎸夐挳
+ async edit(operation, row) {
+ this.operation = operation
+ this.dialogVisible = true
+ this.dialogForm.OperType = 'Update'
+
+ this.$nextTick(() => {
+ this.dialogForm.devicecode = row.code
+ this.dialogForm.devicename = row.name
+ this.dialogForm.status = row.enable
+ this.dialogForm.devicetypecode = row.eqptype_code
+ this.dialogForm.storgcode = this.findParent([], row.torg_code, this.cascaderOptions).reverse()
+ })
+ },
+ // parents:鐢ㄤ簬杩斿洖鐨勬暟缁勶紝childNode:瑕佹煡璇㈢殑鑺傜偣锛宼reeData锛歫son鏍戝舰鏁版嵁
+ findParent(parents, childNode, treeData) {
+ // console.log(parents, childNode, treeData, 2)
+ for (let i = 0; i < treeData.length; i++) {
+ // 鐖惰妭鐐规煡璇㈡潯浠�
+ if (treeData[i].torg_code === childNode) {
+ // 濡傛灉鎵惧埌缁撴灉,淇濆瓨褰撳墠鑺傜偣
+ parents.push(treeData[i].torg_code)
+ // 鐢ㄥ綋鍓嶈妭鐐瑰啀鍘诲師鏁版嵁鏌ユ壘褰撳墠鑺傜偣鐨勭埗鑺傜偣
+ this.findParent(parents, treeData[i].parent_id, this.cascaderOptions)
+ break
+ } else {
+ if (treeData[i].children instanceof Array) {
+ // 娌℃壘鍒帮紝閬嶅巻璇ヨ妭鐐圭殑瀛愯妭鐐�
+ this.findParent(parents, childNode, treeData[i].children)
+ }
+ }
+ }
+ return parents
+ },
+ del(row) {
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ DeleteDeviceManger({ devicecode: row.code }).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('鍒犻櫎鎴愬姛!')
+ this.getDeviceMangerSearch(this.$refs.treeLeftRef.getCurrentNode())
+ }
+ })
+ }).catch(() => {
+ this.$notify.info('宸插彇娑堝垹闄�')
+ })
+ },
+ reset() {
+ // this.form.storgcode = ''
+ this.form.devicecode = ''
+ this.form.devicename = ''
+ this.form.status = ''
+ this.form.devicetype = ''
+ this.$refs.cascader.checkedValue = []
+ this.$refs.treeLeftRef.setCurrentKey('-1')
+ this.getDeviceMangerSearch(this.$refs.treeLeftRef.getCurrentNode())
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm.devicecode = ''
+ this.dialogForm.devicename = ''
+ // this.dialogForm.storgcode = []
+ this.dialogForm.devicetypecode = ''
+ this.dialogForm.status = 'Y'
+ this.$refs.dialogCascader.checkedValue = ''
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ this.dialogForm.storgcode = this.$refs.dialogCascader.checkedValue[this.$refs.dialogCascader.checkedValue.length - 1]
+ this.$store.state.app.buttonIsDisabled = true
+ AddUpdateDeviceManger(this.dialogForm).then(res => {
+ if (res.code === '200') {
+ this.$notify.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ this.dialogVisible = false
+ this.$store.state.app.buttonIsDisabled = false
+ this.getDeviceMangerSearch(this.$refs.treeLeftRef.getCurrentNode())
+ } else {
+ this.$store.state.app.buttonIsDisabled = false
+ this.$notify.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ }
+ })
+ }
+ })
+ },
+ treeEditClick(node, data, operation) {
+ this.dialogClassForm.code = data.code
+ this.dialogClassForm.name = data.name.split(' ')[1]
+ this.dialogClassForm.OperType = 'Update'
+ this.operation = operation
+ this.dialogClassVisible = true
+ },
+ treeDeleteClick(node, data) {
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ DeleteDeviceType({ devicetypecode: data.code }).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('鍒犻櫎鎴愬姛!')
+ this.getDeviceTypeSearch()
+ }
+ })
+ }).catch(() => {
+ this.$notify.info('宸插彇娑堝垹闄�')
+ })
+ },
+ treeAddClick(operation) {
+ this.operation = operation
+ this.dialogClassVisible = true
+ this.dialogClassForm.OperType = 'Add'
+ },
+
+ handleClassClose() {
+ this.dialogClassForm.code = ''
+ this.dialogClassForm.name = ''
+ this.$refs.dialogClassForm.clearValidate()
+ },
+ dialogVisibleClassCancel() {
+ this.dialogClassVisible = false
+ },
+ dialogVisibleClassConfirm() {
+ this.$refs.dialogClassForm.validate(valid => {
+ if (valid) {
+ const data = [{
+ code: this.dialogClassForm.code,
+ name: this.dialogClassForm.name,
+ group: '',
+ description: ''
+ }]
+ AddUpdateDeviceType(data, this.dialogClassForm.OperType).then(res => {
+ if (res.code === '200') {
+ this.$notify.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ this.dialogClassVisible = false
+ this.$store.state.app.buttonIsDisabled = false
+ this.getDeviceTypeSearch()
+ } else {
+ this.$store.state.app.buttonIsDisabled = false
+ this.$notify.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ }
+ })
+ }
+ })
+ },
+ unittypcodeChange(val) {
+ console.log(val)
+
+ this.dialogForm.unitcode = ''
+ this.dialogForm.unitsubcode = ''
+ this.dialogForm.idSubUnitByReport = ''
+ this.dialogForm.idUnitByStock = ''
+ this.dialogForm.idUnitByPurchase = ''
+ this.dialogForm.idUnitBySale = ''
+ this.dialogForm.idunitbymanufacture = ''
+ // this.$refs.dialogForm.clearValidate()
+ // this.$forceUpdate()
+ },
+ unitcodeChange(val, type) {
+ console.log(val)
+
+ if (type === '1') {
+ // this.dialogForm.unitcode = val
+ this.dialogForm.unitsubcode = ''
+ this.dialogForm.idSubUnitByReport = ''
+
+ const unitname = this.unitcodeSingleArr.find(i => i.unitcode === val).unitname
+
+ this.dialogForm.idUnitByStock = unitname
+ this.dialogForm.idUnitByPurchase = unitname
+ this.dialogForm.idUnitBySale = unitname
+ this.dialogForm.idunitbymanufacture = unitname
+ }
+
+ if (type === '0') {
+ const t = this.unitcodeGroupArr.find(i => i.unitcode === val).children
+
+ this.idSubUnitByReportArr = t.filter(i => i.isMainUnit !== '1')
+ this.idUnitBvStockArr = t
+
+ const mainUnitCode = t.find(i => i.isMainUnit === '1').unitcode
+ this.dialogForm.unitsubcode = mainUnitCode
+ this.dialogForm.idSubUnitByReport = this.idSubUnitByReportArr[0].unitcode
+
+ this.dialogForm.idUnitByStock = mainUnitCode
+ this.dialogForm.idUnitByPurchase = mainUnitCode
+ this.dialogForm.idUnitBySale = mainUnitCode
+ this.dialogForm.idunitbymanufacture = mainUnitCode
+ }
+ }
+ }
+}
+</script>
+
+<style scoped lang="scss">
+.custom-tree-node {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ font-size: 14px;
+ padding-right: 8px;
+}
+
+//::v-deep .el-checkbox__label {
+// width: 55px;
+//}
+//
+.el-icon-plus:hover, .el-icon-edit:hover, .el-icon-delete:hover {
+ color: #000 !important;
+}
+</style>
diff --git a/src/views/deviceManager/maintainPosition.vue b/src/views/deviceManager/maintainPosition.vue
index e69de29..47c7028 100644
--- a/src/views/deviceManager/maintainPosition.vue
+++ b/src/views/deviceManager/maintainPosition.vue
@@ -0,0 +1,526 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
+ <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+ <el-button v-waves type="success" icon="el-icon-download" @click="$router.push('./../systemSetting/dataImport?fileCode=11')">瀵煎叆</el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="閮ㄤ綅缂栫爜" style=" display: flex;">
+ <el-input v-model="form.maiitemcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="閮ㄤ綅鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.maiitemname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="淇濆吇瑕佹眰" style=" display: flex;">
+ <el-input v-model="form.maidescr" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="閫変腑鎵爜" style=" display: flex;">
+ <el-select v-model="form.isqrcode" style="width: 200px" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in isqrcodeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+
+ </div>
+ <div class="bodySearchReset" :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}">
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ />
+ </div>
+
+ <div class="elTableDiv">
+ <!-- <TableColumnSettings-->
+ <!-- :list1="tableColumnSettingsArray"-->
+ <!-- @tableColumnUpdate="tableColumnUpdate"-->
+ <!-- />-->
+ <el-table
+ ref="tableDataRef"
+ :key="tableTimeStampKey"
+ :data="tableData"
+ :height="tableHeight+'px'"
+ border
+ class="tableFixed"
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:tableHeight+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <!-- <el-table-column-->
+ <!-- type="selection"-->
+ <!-- width="50"-->
+ <!-- />-->
+
+ <el-table-column
+ v-for="item in tableColumnSettingsArray"
+ v-if="item.show"
+ :key="item.id"
+ :sortable="item.sortable"
+ :prop="item.prop"
+ :min-width="item.minWidth"
+ :label="item.label"
+ :width="item.width"
+ show-tooltip-when-overflow
+ :fixed="item.fixed?(item.fixed==='left'?'left':'right'):false"
+ >
+ <template slot-scope="{row}">
+ <div v-if="!row[item.prop]">/</div>
+ <div v-else-if="item.prop==='cycle'">{{ cycleArr.find(i=>i.code===row[item.prop]).name }}</div>
+ <div v-else-if="item.prop==='isscan'">
+ <div v-if="row[item.prop]==='Y'">
+ <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />
+ 鏄�
+ </div>
+ <div v-if="row[item.prop]==='N'">
+ <i class="el-icon-info" style="margin-right: 2px" />
+ 鍚�
+ </div>
+ </div>
+ <div v-else>{{ row[item.prop] }}</div>
+ </template>
+ </el-table-column>
+
+ <!-- <el-table-column-->
+ <!-- prop="RowNum"-->
+ <!-- width="50"-->
+ <!-- fixed-->
+ <!-- label="搴忓彿"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- prop="code"-->
+ <!-- label="閮ㄤ綅缂栫爜"-->
+ <!-- sortable="custom"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- prop="name"-->
+ <!-- label="閮ㄤ綅鍚嶇О"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- sortable="custom"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- prop="description"-->
+ <!-- label="淇濆吇瑕佹眰"-->
+ <!-- sortable="custom"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.description">{{ row.description }}</div>-->
+ <!-- <div v-else>/</div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ <!-- <el-table-column-->
+ <!-- prop="isscan"-->
+ <!-- label="閫夋嫨鎵爜"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- sortable="custom"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.isscan==='Y'">-->
+ <!-- <!– <svg-icon icon-class="circleYes" style="margin-right: 2px" />–>-->
+ <!-- <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />-->
+ <!-- 鏄�-->
+ <!-- </div>-->
+ <!-- <div v-if="row.isscan==='N'">-->
+ <!-- <!– <svg-icon icon-class="circleNo" style="margin-right: 2px" />–>-->
+ <!-- <i class="el-icon-info" style="margin-right: 2px" />-->
+ <!-- 鍚�-->
+ <!-- </div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ <!-- <el-table-column-->
+ <!-- prop="lm_user"-->
+ <!-- label="鍒涘缓浜哄憳"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- sortable="custom"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- prop="lm_date"-->
+ <!-- label="鍒涘缓鏃堕棿"-->
+ <!-- width="160"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- sortable="custom"-->
+ <!-- />-->
+ <el-table-column
+ label="鎿嶄綔"
+ width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-tooltip class="item" effect="dark" content="缂栬緫" placement="top">
+ <i :style="{color:$store.state.settings.theme}" class="el-icon-edit-outline" @click="edit('edit',row)" />
+ </el-tooltip>
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+ <i :style="{color:$store.state.settings.theme}" class="el-icon-delete" @click="del(row)" />
+ </el-tooltip>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getDeviceMaiItemSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'缂栬緫'"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
+ <el-form-item label="閮ㄤ綅缂栫爜" prop="maiitemcode">
+ <el-input v-model="dialogForm.maiitemcode" :disabled="operation!=='add'" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="閮ㄤ綅鍚嶇О" prop="maiitemname">
+ <el-input v-model="dialogForm.maiitemname" style="width: 200px" />
+ </el-form-item>
+
+ <el-form-item required label="閫夋嫨鎵爜">
+ <el-select
+ v-model="dialogForm.isqrcode"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in isqrcodeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="淇濆吇瑕佹眰" prop="maiitemdescr">
+ <el-input v-model="dialogForm.maiitemdescr" type="textarea" style="width: 200px" />
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="dialogVisibleConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+
+import { AddUpdateDeviceMaiItem, DeleteDeviceMaiItem, DeviceMaiItemSearch } from '@/api/DeviceManager'
+import { validateCode } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import TableColumnSettings from '@/components/TableColumnSettings'
+
+export default {
+ name: 'Zzjg',
+ components: {
+ Pagination, TableColumnSettings
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ maiitemcode: '', // 閮ㄤ綅缂栫爜
+ maiitemname: '', // 閮ㄤ綅鍚嶇О
+ maidescr: '', // 淇濆吇瑕佹眰
+ isqrcode: '', // 閫変腑鎵爜
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ isqrcodeArr: [
+ { code: 'Y', name: '鏄�' },
+ { code: 'N', name: '鍚�' }
+ ],
+
+ total: 10,
+ tableData: [],
+ tableColumnSettingsArray: [
+ { minWidth: false, width: 55, prop: 'id', label: 'id', id: 1, show: false, fixed: false, sortable: false }, // 闅愯棌鍒� show: false闅愯棌锛宼rue鏄剧ず
+ { minWidth: false, width: 55, prop: 'rowNum', label: '搴忓彿', id: 2, show: true, fixed: 'left', sortable: false }, // custom
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'code',
+ label: '閮ㄤ綅缂栫爜',
+ id: 3,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'name',
+ label: '閮ㄤ綅鍚嶇О',
+ id: 4,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 330,
+ width: false,
+ prop: 'description',
+ label: '淇濆吇瑕佹眰',
+ id: 5,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'isscan',
+ label: '閫夋嫨鎵爜',
+ id: 6,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'lm_user',
+ label: '鍒涘缓浜哄憳',
+ id: 7,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 160,
+ prop: 'lm_date',
+ label: '鍒涘缓鏃堕棿',
+ id: 8,
+ show: true,
+ fixed: false,
+ sortable: true
+ }
+ ],
+ tableTimeStampKey: new Date().getTime(), // 琛ㄦ牸key
+ dialogVisible: false,
+ dialogForm: {
+ id: '',
+ maiitemcode: '',
+ maiitemname: '',
+ maiitemdescr: '',
+ isqrcode: 'N',
+ OperType: ''
+ },
+ operation: '',
+ dialogFormRules: {
+ maiitemcode: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ maiitemname: [
+ { required: true, message: '璇疯緭鍏ュ悕绉�', trigger: ['blur', 'change'] }
+ ]
+ },
+
+ title_value: '鏁版嵁瀵煎叆 / 淇濆吇閮ㄤ綅',
+ code: '11',
+ shows: false
+ }
+ },
+ watch: {
+ shows() {
+ if (!this.shows) {
+ this.getDeviceMaiItemSearch()
+ }
+ }
+ },
+ created() {
+ this.getDeviceMaiItemSearch()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ tableColumnUpdate(val, isCopyTrue) {
+ if (isCopyTrue) {
+ this.tableColumnSettingsArray = val
+ }
+ this.tableTimeStampKey = new Date().getTime()
+ this.$refs.tableDataRef.doLayout()
+ },
+ async getDeviceMaiItemSearch() {
+ const res = await DeviceMaiItemSearch(this.form)
+ this.tableData = res.data
+ this.total = res.count
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getDeviceMaiItemSearch()
+ },
+ // 鏌ヨ
+ search() {
+ this.getDeviceMaiItemSearch()
+ },
+ // 瀵煎叆鎸夐挳
+ upload() {
+ this.shows = true
+ this.$refs.importPickerFunc.newDataFunc()
+ },
+ colos() {
+ this.shows = false
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.maiitemcode = ''
+ this.form.maiitemname = ''
+ this.form.maidescr = ''
+ this.form.isqrcode = ''
+ this.getDeviceMaiItemSearch()
+ },
+
+ // 鏂板鎸夐挳
+ add(operation) {
+ this.operation = operation
+ this.dialogVisible = true
+ },
+ // 淇敼鎸夐挳
+ edit(operation, row) {
+ this.operation = operation
+ this.dialogVisible = true
+
+ this.$nextTick(() => {
+ this.dialogForm.id = row.id
+ this.dialogForm.maiitemcode = row.code
+ this.dialogForm.maiitemname = row.name
+ this.dialogForm.maiitemdescr = row.description
+ this.dialogForm.isqrcode = row.isscan
+ })
+ },
+ // 鍒犻櫎鎸夐挳
+ async del(row) {
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ DeleteDeviceMaiItem({ maiitemcode: row.code }).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('鍒犻櫎鎴愬姛!')
+ if (this.form.page > 1 && this.tableData.length === 1) {
+ this.form.page--
+ }
+ this.getDeviceMaiItemSearch()
+ }
+ })
+ }).catch(() => {
+ this.$notify.info('宸插彇娑堝垹闄�')
+ })
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm.id = ''
+ this.dialogForm.maiitemcode = ''
+ this.dialogForm.maiitemname = ''
+ this.dialogForm.maiitemdescr = ''
+ this.dialogForm.isqrcode = 'N'
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ this.$store.state.app.buttonIsDisabled = true
+ const data = {
+ id: this.dialogForm.id,
+ maiitemcode: this.dialogForm.maiitemcode,
+ maiitemname: this.dialogForm.maiitemname,
+ maiitemdescr: this.dialogForm.maiitemdescr,
+ isqrcode: this.dialogForm.isqrcode,
+ OperType: this.operation === 'add' ? 'Add' : 'Update'
+ }
+ AddUpdateDeviceMaiItem(data).then(res => {
+ if (res.code === '200') {
+ this.dialogVisible = false
+ this.$notify.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ this.getDeviceMaiItemSearch()
+ this.$store.state.app.buttonIsDisabled = false
+ } else {
+ this.$notify.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ }
+ })
+ }
+ })
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 195
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ }
+ }
+}
+</script>
+
diff --git a/src/views/deviceManager/maintainRecord.vue b/src/views/deviceManager/maintainRecord.vue
index e69de29..0d971ce 100644
--- a/src/views/deviceManager/maintainRecord.vue
+++ b/src/views/deviceManager/maintainRecord.vue
@@ -0,0 +1,616 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup">
+ <!-- <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>-->
+ <!-- <el-button v-waves icon="el-icon-download" @click="upload">瀵煎叆</el-button>-->
+ <el-button v-waves type="primary" icon="el-icon-download" @click="download">瀵煎嚭</el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm" style="justify-content: flex-start">
+ <el-form-item label="鐢熶骇杞﹂棿" style=" display: flex;">
+ <el-select v-model="form.wkshopcode" style="width: 200px" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in wkshopSelectArr"
+ :key="item.torg_code"
+ :label="item.torg_name"
+ :value="item.torg_code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="璁惧缂栫爜" style=" display: flex;">
+ <el-input v-model="form.eqpcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="璁惧鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.eqpname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鏍囧噯鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.stanedname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="淇濆吇浜哄憳" style=" display: flex;">
+ <el-input v-model="form.repairuser" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="淇濆吇鏃堕棿" style=" display: flex;font-size:14px;align-items: center">
+ <el-date-picker
+ v-model="form.repairdate"
+ type="daterange"
+ :clearable="false"
+ class="timeMini"
+ range-separator="~"
+ start-placeholder="寮�濮嬫棩鏈�"
+ style="width: 200px;display: flex;line-height: 34px ;height: 34px;"
+ end-placeholder="缁撴潫鏃ユ湡"
+ size="mini"
+ />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="淇濆吇缁撴灉" style=" display: flex;">
+ <el-select v-model="form.repairresult" style="width: 200px" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in repairresultArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ </div>
+ <div class="bodySearchReset" :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}">
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <!-- <TableColumnSettings-->
+ <!-- :list1="tableColumnSettingsArray"-->
+ <!-- @tableColumnUpdate="tableColumnUpdate"-->
+ <!-- />-->
+ <el-table
+ ref="tableDataRef"
+ :key="tableTimeStampKey"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px'}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+
+ <el-table-column
+ v-for="item in tableColumnSettingsArray"
+ v-if="item.show"
+ :key="item.id"
+ :sortable="item.sortable"
+ :prop="item.prop"
+ :min-width="item.minWidth"
+ :label="item.label"
+ :width="item.width"
+ show-tooltip-when-overflow
+ :fixed="item.fixed?(item.fixed==='left'?'left':'right'):false"
+ >
+ <template slot-scope="{row}">
+ <div v-if="!row[item.prop]">/</div>
+
+ <div v-else-if="item.prop==='maint_cyc'">{{ cycleArr.find(i=>i.code===row[item.prop]).name }}</div>
+ <div v-else-if="item.prop==='maint_result'">
+ <div v-if="row[item.prop]==='OK'" style="display: flex;align-items: center">
+ <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />
+ 姝e父
+ </div>
+ <div v-if="row[item.prop]==='NG'" style="display: flex;align-items: center">
+ <i class="el-icon-info" style="margin-right: 2px" />
+ 寮傚父
+ </div>
+ </div>
+ <div v-else>{{ row[item.prop] }}</div>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ label="鏄庣粏"
+ width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <i
+ class="el-icon-tickets"
+ :style="{color:$store.state.settings.theme}"
+ style="cursor: pointer;margin-right: 15px"
+ @click="edit('edit',row)"
+ />
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getDeviceRepairTakeSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'淇濆吇鏄庣粏'"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+
+ <div class="elTableDiv" style="margin-top: 0">
+ <el-table
+ :data="tableDataDialog"
+ :height="500+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:500+'px'}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="seq"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="itemcode"
+ label="閮ㄤ綅缂栫爜"
+ />
+ <el-table-column
+ prop="itemname"
+ label="閮ㄤ綅鍚嶇О"
+ />
+ <el-table-column
+ prop="result"
+ label="鐐规缁撴灉"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.result==='OK'" style="display: flex;align-items: center">
+ <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />
+ 姝e父</div>
+ <div v-if="row.result==='NG'" style="display: flex;align-items: center">
+ <i class="el-icon-info" style="margin-right: 2px" />
+ 寮傚父</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="maint_value"
+ label="鏁板��"
+ />
+ <el-table-column
+ prop="remark"
+ label="澶囨敞"
+ show-tooltip-when-overflow
+ />
+ </el-table>
+ </div>
+
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisible = false">杩� 鍥�</el-button>
+ <!-- <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>-->
+ <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>-->
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import { AddUpdateOrganization, DeleteOrganization } from '@/api/basicSettings'
+import { getCookie } from '@/utils/auth'
+import { handleDatetime } from '@/utils/global'
+import { DeviceRepairSubTakeSearch, DeviceRepairTakeOutExcel, DeviceRepairTakeSearch
+} from '@/api/DeviceManager'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import TableColumnSettings from '@/components/TableColumnSettings'
+import { PrentOrganizationNoCompany } from '@/api/GeneralBasicData'
+
+export default {
+ name: 'Zzjg',
+ components: {
+ Pagination, TableColumnSettings
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ wkshopcode: '', // 杞﹂棿缂栫爜
+ eqpcode: '', // 璁惧缂栫爜
+ eqpname: '', // 璁惧鍚嶇О
+ stanedname: '', // 鏍囧噯鍚嶇О
+ repairuser: '', // 鐐规浜哄憳
+ repairdate: '', // 鐐规鏃堕棿
+ repairresult: '', // 淇濆吇缁撴灉
+ prop: 'maint_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ wkshopSelectArr: [],
+ cycleArr: [
+ { code: 'Y', name: '骞�' },
+ { code: 'S', name: '瀛�' },
+ { code: 'M', name: '鏈�' },
+ { code: 'W', name: '鍛�' }
+ ],
+ repairresultArr: [
+ { code: 'OK', name: '鍚堟牸' },
+ { code: 'NG', name: '涓嶈壇' }
+ ],
+ total: 10,
+ tableData: [],
+ tableColumnSettingsArray: [
+ // { minWidth: false, width: 55, prop: 'id', label: 'id', id: 1, show: false, fixed: false, sortable: false }, // 闅愯棌鍒� show: false闅愯棌锛宼rue鏄剧ず
+ { minWidth: false, width: 55, prop: 'rowNum', label: '搴忓彿', id: 2, show: true, fixed: 'left', sortable: false }, // custom
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'bywo',
+ label: '淇濆吇鍗曞彿',
+ id: 3,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 130,
+ prop: 'org_code',
+ label: '鐢熶骇杞﹂棿缂栫爜',
+ id: 4,
+ show: false,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'org_name',
+ label: '鐢熶骇杞﹂棿',
+ id: 5,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'eqp_code',
+ label: '璁惧缂栫爜',
+ id: 6,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'eqp_name',
+ label: '璁惧鍚嶇О',
+ id: 7,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: false,
+ width: 130,
+ prop: 'stanedcode',
+ label: '淇濆吇鏍囧噯缂栫爜',
+ id: 8,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: 130,
+ width: false,
+ prop: 'stanedname',
+ label: '淇濆吇鏍囧噯鍚嶇О',
+ id: 9,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'maint_cyc',
+ label: '淇濆吇鍛ㄦ湡',
+ id: 10,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: false,
+ width: 110,
+ prop: 'maint_user',
+ label: '淇濆吇浜哄憳',
+ id: 10,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: false,
+ width: 110,
+ prop: 'maint_result',
+ label: '淇濆吇缁撴灉',
+ id: 11,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 160,
+ prop: 'maint_date',
+ label: '淇濆吇鏃堕棿',
+ id: 12,
+ show: true,
+ fixed: false,
+ sortable: true
+ }
+ ],
+ tableTimeStampKey: new Date().getTime(), // 琛ㄦ牸key
+ dialogVisible: false,
+ // dialogForm: {
+ // OrgType: '',
+ // OrgCode: '',
+ // OrgName: '',
+ // SupUnit: ''// 涓婄骇鍗曚綅
+ // },
+ operation: '',
+
+ tableDataDialog: [], // 鐐规鏄庣粏瀵硅瘽妗唗able
+
+ title_value: '鏁版嵁瀵煎叆 / 鐐规閮ㄤ綅',
+ code: '4',
+ shows: false
+
+ }
+ },
+
+ created() {
+ this.handleRequest()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ tableColumnUpdate(val, isCopyTrue) {
+ if (isCopyTrue) {
+ this.tableColumnSettingsArray = val
+ }
+ this.tableTimeStampKey = new Date().getTime()
+
+ this.$refs.tableDataRef.doLayout()
+ },
+ handleRequest() {
+ this.getDeviceRepairTakeSearch().then(res => {
+ if (res.code === '200') {
+ this.getShopSearch()
+ }
+ })
+ },
+ async getDeviceRepairTakeSearch() {
+ let tempDate = this.form.repairdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+
+ const data = {
+ wkshopcode: this.form.wkshopcode,
+ eqpcode: this.form.eqpcode,
+ eqpname: this.form.eqpname,
+ stanedname: this.form.stanedname,
+ repairuser: this.form.repairuser,
+ repairdate: tempDate,
+ repairresult: this.form.repairresult,
+ prop: this.form.prop, // 鎺掑簭瀛楁
+ order: this.form.order, // 鎺掑簭瀛楁
+ page: this.form.page, // 绗嚑椤�
+ rows: this.form.rows // 姣忛〉澶氬皯鏉�
+ }
+
+ const res = await DeviceRepairTakeSearch(data)
+ this.tableData = res.data
+ this.total = res.count
+ return { code: res.code }
+ },
+ // 鑾峰彇鎵ц杞﹂棿涓嬫媺鏁扮粍
+ async getShopSearch() {
+ const { data: res } = await PrentOrganizationNoCompany()
+ this.wkshopSelectArr = res
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getDeviceRepairTakeSearch()
+ },
+ // 鏌ヨ
+ search() {
+ this.getDeviceRepairTakeSearch()
+ },
+ // 瀵煎叆鎸夐挳
+ upload() {
+ this.shows = true
+ this.$refs.importPickerFunc.newDataFunc()
+ },
+ colos() {
+ this.shows = false
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.wkshopcode = ''
+ this.form.eqpcode = ''
+ this.form.eqpname = ''
+ this.form.stanedname = ''
+ this.form.repairuser = ''
+ this.form.repairdate = ''
+ this.form.repairresult = ''
+ this.getDeviceRepairTakeSearch()
+ },
+
+ // 鏂板鎸夐挳
+ add(operation) {
+ this.operation = operation
+ this.dialogVisible = true
+ },
+ // 淇敼鎸夐挳
+ async edit(operation, row) {
+ this.operation = operation
+ this.dialogVisible = true
+
+ const res = await DeviceRepairSubTakeSearch({ bywo: row.bywo })
+
+ this.tableDataDialog = res.data
+ // this.$nextTick(() => {
+ // this.dialogForm.OrgCode = row.org_code
+ // this.dialogForm.OrgName = row.org_name
+ // this.dialogForm.SupUnit = row.parent_id
+ // })
+ },
+ // 鍒犻櫎鎸夐挳
+ async del(row) {
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ DeleteOrganization({ orgid: row.code }).then(res => {
+ if (res.code === '200') {
+ this.$message.success('鍒犻櫎鎴愬姛!')
+ if (this.form.page > 1 && this.tableData.length === 1) {
+ this.form.page--
+ }
+ this.getDeviceRepairTakeSearch()
+ }
+ })
+ }).catch(() => {
+ this.$message.info('宸插彇娑堝垹闄�')
+ })
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ // this.dialogForm.OrgType = ''
+ // this.dialogForm.OrgCode = ''
+ // this.dialogForm.OrgName = ''
+ // this.dialogForm.SupUnit = ''
+ // this.$refs.dialogForm.clearValidate()
+ this.tableDataDialog = []
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ const data = {
+ OrganCode: this.dialogForm.OrgCode,
+ OrganName: this.dialogForm.OrgName,
+ OperType: this.operation === 'add' ? 'Add' : 'Update',
+ Operator: getCookie('admin')
+ }
+ AddUpdateOrganization(data).then(res => {
+ if (res.code === '200') {
+ this.$message.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ this.dialogVisible = false
+ this.getDeviceRepairTakeSearch()
+ } else {
+ this.$message.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ }
+ })
+ }
+ })
+ },
+ async download() {
+ let tempDate = this.form.repairdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+ const data = {
+ wkshopcode: this.form.wkshopcode,
+ eqpcode: this.form.eqpcode,
+ eqpname: this.form.eqpname,
+ stanedname: this.form.stanedname,
+ repairuser: this.form.repairuser,
+ repairdate: tempDate,
+ repairresult: this.form.repairresult
+ }
+ const { data: res } = await DeviceRepairTakeOutExcel(data)
+ window.location.href = res
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 255
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ }
+
+ }
+}
+</script>
+
diff --git a/src/views/deviceManager/maintainStandard.vue b/src/views/deviceManager/maintainStandard.vue
index e69de29..0ed75f6 100644
--- a/src/views/deviceManager/maintainStandard.vue
+++ b/src/views/deviceManager/maintainStandard.vue
@@ -0,0 +1,1298 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
+ <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+ <el-button v-waves type="success" icon="el-icon-download" @click="$router.push('./../systemSetting/dataImport?fileCode=11_1')">瀵煎叆</el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="鏍囧噯缂栫爜" style=" display: flex;">
+ <el-input v-model="form.repairstandcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鏍囧噯鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.repairstandname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鏍囧噯鎻忚堪" style=" display: flex;">
+ <el-input v-model="form.repairstanddescr" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ />
+ </div>
+
+ <div class="elTableDiv">
+ <!-- <TableColumnSettings-->
+ <!-- :list1="tableColumnSettingsArray"-->
+ <!-- @tableColumnUpdate="tableColumnUpdate"-->
+ <!-- />-->
+ <el-table
+ ref="tableDataRef"
+ :key="tableTimeStampKey"
+ :data="tableData"
+ :height="tableHeight+'px'"
+ border
+ class="tableFixed"
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:tableHeight+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+
+ <el-table-column
+ v-for="item in tableColumnSettingsArray"
+ v-if="item.show"
+ :key="item.id"
+ :sortable="item.sortable"
+ :prop="item.prop"
+ :min-width="item.minWidth"
+ :label="item.label"
+ :width="item.width"
+ show-tooltip-when-overflow
+ :fixed="item.fixed?(item.fixed==='left'?'left':'right'):false"
+ >
+ <template slot-scope="{row}">
+ <div v-if="!row[item.prop]">/</div>
+ <div v-else-if="item.prop==='main_cycle'">{{ cycleArr.find(i=>i.code===row[item.prop]).name }}</div>
+ <div v-else-if="item.prop==='is_repaireqp'">
+ <i
+ v-if="row[item.prop]==='Y'"
+ :style="{color:$store.state.settings.theme}"
+ class="el-icon-share"
+ @click="checkeqpClick(row)"
+ />
+ <i
+ v-if="row[item.prop]==='N'"
+ class="el-icon-share"
+ style="color: rgb(180 ,181, 185)"
+ @click="checkeqpClick(row)"
+ />
+ </div>
+ <div v-else>{{ row[item.prop] }}</div>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ label="鎿嶄綔"
+ fixed="right"
+ width="120"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-tooltip class="item" effect="dark" content="缂栬緫" placement="top">
+ <i :style="{color:$store.state.settings.theme}" class="el-icon-edit-outline" @click="edit('edit',row)" />
+ </el-tooltip>
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+ <i :style="{color:$store.state.settings.theme}" class="el-icon-delete" @click="del(row)" />
+ </el-tooltip>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getDeviceRepairStandArdSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'缂栬緫'"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="8vh"
+ @closed="handleClose"
+ >
+ <!-- @close="handleClose"-->
+ <div>
+ <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" style="margin: -20px 10px 20px 0" />璁惧淇濆吇鏍囧噯淇℃伅锛�
+ </div>
+ <div style="margin: 0 30px;">
+ <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
+ <el-form-item label="鏍囧噯缂栫爜" prop="code">
+ <el-input v-model="dialogForm.code" :disabled="operation!=='add'" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鏍囧噯鍚嶇О" prop="name">
+ <el-input v-model="dialogForm.name" style="width: 200px" />
+ </el-form-item>
+ <el-form-item required label="淇濆吇鍛ㄦ湡">
+ <el-select
+ v-model="dialogForm.repaircycle"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in cycleArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鏍囧噯鎻忚堪" prop="description">
+ <el-input v-model="dialogForm.description" type="textarea" style="width: 200px" />
+ </el-form-item>
+ </el-form>
+ </div>
+ <div>
+ <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" style="margin: -20px 10px 20px 0" />璁惧鍏宠仈淇濆吇椤逛俊鎭細
+ </div>
+ <div style="margin-bottom:10px">
+ <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="addRow">鏂板</el-button>
+ </div>
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataDialogRef"
+ :data="tableDataDialog"
+ :height="(tableHeight-300)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:(tableHeight-300)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ >
+ <el-table-column
+ type="index"
+ width="50"
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="repairitem_code"
+ show-tooltip-when-overflow
+ label="淇濆吇閮ㄤ綅缂栫爜"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.isVisible===0">{{ row.repairitem_code }}</div>
+ <el-select
+ v-if="row.isVisible===1"
+ v-model="row.repairitem_code"
+ placeholder="璇烽�夋嫨"
+ @change="val=>selectChange(val,row)"
+ >
+ <el-option
+ v-for="item in repairItemSelectArr"
+ :key="item.name"
+ :label="item.code"
+ :value="item.name"
+ />
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="repairitem_name"
+ label="淇濆吇閮ㄤ綅鍚嶇О"
+ show-tooltip-when-overflow
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.isVisible===0">{{ row.repairitem_name }}</div>
+ <el-select
+ v-if="row.isVisible===1"
+ v-model="row.repairitem_code"
+ placeholder="璇烽�夋嫨"
+ @change="val=>selectChange(val,row)"
+ >
+ <el-option
+ v-for="item in repairItemSelectArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ prop="repairitem_descr"
+ label="淇濆吇瑕佹眰"
+ show-tooltip-when-overflow
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.isVisible===0">{{ row.repairitem_descr }}</div>
+ <el-input v-else v-model="row.repairitem_descr" />
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="isscan"
+ label="閫夋嫨鎵爜"
+ show-tooltip-when-overflow
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.isVisible===0">{{ row.isscan === 'Y' ? '鏄�' : '鍚�' }}</div>
+ <el-select
+ v-if="row.isVisible===1"
+ v-model="row.isscan"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in checkcontrArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鎿嶄綔"
+ width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-button v-if="row.isVisible===0" v-waves type="text" @click="editRow(row)">缂栬緫</el-button>
+ <el-button v-if="row.isVisible===0" v-waves type="text" @click="delRow(row)">鍒犻櫎</el-button>
+
+ <el-button v-if="row.isVisible===1" v-waves type="text" @click="saveRow(row)">纭</el-button>
+ <el-button v-if="row.isVisible===1" v-waves type="text" @click="cancelRow(row)">鍙栨秷</el-button>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="dialogVisibleConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ <!-- 鍏宠仈璁惧-->
+ <el-dialog
+ v-el-drag-dialog
+ title="鍏宠仈璁惧"
+ :visible.sync="dialogVisibleEqp"
+ width="800px"
+ top="10vh"
+ :close-on-click-modal="false"
+ class="dialogVisibleEqp"
+ @closed="handleCloseEqp"
+ @close="handleCloseEqp"
+ >
+ <!-- @opened="handleOpenedRoles"-->
+
+ <div>
+ <i class="el-icon-s-comment" :style="{color:$store.state.settings.theme}" /> 鏍囧噯鍚嶇О锛歿{ dialogFormEqp.name }}
+ </div>
+ <el-divider />
+ <div>
+ <div style="margin-bottom:20px">
+ <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" /> 璁惧鎵�灞炶溅闂撮泦鍚堬細
+ </div>
+ <div class="myCheckboxGroup">
+
+ <div
+ v-for="item in dialogFormEqp.eqpArr"
+ :key="item.code"
+ :style="{border:item.isSelected1?'1px solid '+$store.state.settings.theme:'1px solid #eee'}"
+ class="myCheckbox"
+ @click="myCheckboxClick(item)"
+ >
+ <!-- <input-->
+ <!-- class="myCheckboxInput"-->
+ <!-- type="checkbox"-->
+ <!-- :value="item.code"-->
+ <!-- :name="item.name"-->
+ <!-- :style="{color:item.isSelected2?'#42b983':'#fff'}"-->
+ <!-- @click="myCheckboxInputClick(item)"-->
+ <!-- >{{ item.name }}-->
+ <!-- 鐖跺瓙鐐瑰嚮浜嬩欢涓嶅奖鍝�-->
+ <!-- onClick="event.cancelBubble = true"-->
+ <el-checkbox
+ :key="item.code"
+ v-model="item.isSelected2"
+ class="myCheckboxInput"
+ :value="item.code"
+ :name="item.name"
+ :label="item.name"
+ :checked="item.isSelected2"
+ @change="myCheckboxInputClick(item)"
+ />
+ <div class="myCheckboxInputLabel">{{ item.name }}</div>
+
+ </div>
+ </div>
+ </div>
+ <el-divider />
+ <div>
+ <div style="margin-bottom:20px">
+ <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" /> 璁惧淇℃伅锛�
+ </div>
+ <el-tree
+ ref="epqTree"
+ :data="dialogFormEqp.eqpTree"
+ show-checkbox
+ node-key="code"
+ default-expand-all
+ style="height: 320px;overflow: auto"
+ :props="defaultPropsOfEqpTree"
+ @check="checkBoxClick"
+ />
+ <!-- @check-change="checkChange"-->
+
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="eqpDialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="eqpDialogVisibleConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import {
+ AddUpdateDeviceRepairStandArd,
+ DeleteDeviceRepairStaned,
+ DeviceRepairItemSelect,
+ DeviceRepairStandArdSearch,
+ DeviceRepairStanedAssociationEqp,
+ SaveDeviceRepairStanedAssociationEqp,
+ ViewDeviceRepairStanedSearch
+} from '@/api/DeviceManager'
+import $ from 'jquery'
+import { validateCode } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import TableColumnSettings from '@/components/TableColumnSettings'
+
+export default {
+ name: 'Zzjg',
+ components: {
+ Pagination, TableColumnSettings
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ repairstandcode: '', // 鏍囧噯缂栫爜
+ repairstandname: '', // 鏍囧噯鍚嶇О
+ repairstanddescr: '', // 鐐规绠℃帶
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ checkcontrArr: [
+ { code: 'Y', name: '鏄�' },
+ { code: 'N', name: '鍚�' }
+ ],
+ cycleArr: [
+ { code: 'Y', name: '骞�' },
+ { code: 'S', name: '瀛�' },
+ { code: 'M', name: '鏈�' },
+ { code: 'W', name: '鍛�' }
+ ],
+ total: 10,
+ tableData: [],
+ tableColumnSettingsArray: [
+ { minWidth: false, width: 55, prop: 'id', label: 'id', id: 1, show: false, fixed: false, sortable: false }, // 闅愯棌鍒� show: false闅愯棌锛宼rue鏄剧ず
+ { minWidth: false, width: 55, prop: 'rowNum', label: '搴忓彿', id: 2, show: true, fixed: 'left', sortable: false }, // custom
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'code',
+ label: '鏍囧噯缂栫爜',
+ id: 3,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'name',
+ label: '鏍囧噯鍚嶇О',
+ id: 4,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 330,
+ width: false,
+ prop: 'description',
+ label: '鏍囧噯鎻忚堪',
+ id: 5,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'main_cycle',
+ label: '淇濆吇鍛ㄦ湡',
+ id: 6,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'is_repaireqp',
+ label: '鍏宠仈璁惧',
+ id: 7,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'lm_user',
+ label: '鍒涘缓浜哄憳',
+ id: 8,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 160,
+ prop: 'lm_date',
+ label: '鍒涘缓鏃堕棿',
+ id: 9,
+ show: true,
+ fixed: false,
+ sortable: true
+ }
+ ],
+ tableTimeStampKey: new Date().getTime(), // 琛ㄦ牸key
+
+ dialogVisible: false,
+ dialogForm: {
+ code: '',
+ name: '',
+ repaircycle: 'M',
+ description: ''
+ },
+ operation: '',
+ dialogFormRules: {
+
+ code: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ name: [
+ { required: true, message: '璇疯緭鍏ユ爣鍑嗗悕绉�', trigger: ['blur', 'change'] }
+ ],
+ enable: [
+ { required: true, message: '', trigger: ['blur', 'change'] }
+ ]
+ },
+ tableDataDialog: [], // 琛ㄦ牸鏁版嵁
+
+ repairItemSelectArr: [],
+ repairItemIsCancel: true,
+ dialogVisibleEqp: false,
+
+ dialogFormEqp: {
+ name: '',
+ code: '',
+ eqpAll: [], // 杞﹂棿鍙婅澶囨墍鏈�
+ eqpArr: [], // 杞﹂棿闆嗗悎鎵�鏈�
+ eqpTree: [], // 璁惧鏍戝舰鎵�鏈�
+ eqpCodeSelectedArr: []// 璁惧鏍戝舰閫変腑
+ },
+ defaultPropsOfEqpTree: {
+ value: 'code',
+ label: 'name',
+ children: 'children'
+ },
+
+ title_value: '鏁版嵁瀵煎叆 / 鐐规閮ㄤ綅',
+ code: '23',
+ shows: false
+
+ }
+ },
+ watch: {
+ shows() {
+ if (!this.shows) {
+ this.getDeviceRepairStandArdSearch()
+ }
+ }
+ },
+ created() {
+ this.handleRequest()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ tableColumnUpdate(val, isCopyTrue) {
+ if (isCopyTrue) {
+ this.tableColumnSettingsArray = val
+ }
+ this.tableTimeStampKey = new Date().getTime()
+
+ this.$refs.tableDataRef.doLayout()
+ },
+ handleRequest() {
+ this.getDeviceRepairStandArdSearch().then(res => {
+ if (res.code === '200') {
+ this.getDeviceRepairItemSelect()
+ }
+ })
+ },
+ async getDeviceRepairStandArdSearch() {
+ const res = await DeviceRepairStandArdSearch(this.form)
+ this.tableData = res.data
+ this.total = res.count
+ return { code: res.code }
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getDeviceRepairStandArdSearch()
+ },
+ // 鏌ヨ
+ search() {
+ this.getDeviceRepairStandArdSearch()
+ },
+ // 瀵煎叆鎸夐挳
+ upload() {
+ this.shows = true
+ this.$refs.importPickerFunc.newDataFunc()
+ },
+ colos() {
+ this.shows = false
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.repairstandcode = ''
+ this.form.repairstandname = ''
+ this.form.repairstanddescr = ''
+ this.getDeviceRepairStandArdSearch()
+ },
+
+ async getDeviceRepairItemSelect() {
+ const { data: res } = await DeviceRepairItemSelect()
+ this.repairItemSelectArr = res
+ },
+
+ // 鏂板鎸夐挳
+ add(operation) {
+ this.operation = operation
+ this.dialogVisible = true
+ this.$nextTick(() => {
+ this.$refs.tableDataDialogRef.doLayout()
+ })
+ },
+ // 淇敼鎸夐挳
+ edit(operation, row) {
+ this.operation = operation
+ this.getViewDeviceRepairStanedSearch(row.code)
+ this.dialogVisible = true
+
+ this.$nextTick(() => {
+ this.$refs.tableDataDialogRef.doLayout()
+ })
+ // this.$nextTick(() => {
+ // this.dialogForm.code = row.code
+ // this.dialogForm.name = row.name
+ // this.dialogForm.enable = row.enable
+ // this.dialogForm.description = row.description
+ // })
+ },
+ // 淇敼鍓嶈姹傛帴鍙�
+ async getViewDeviceRepairStanedSearch(repairstand_code) {
+ const { data: res } = await ViewDeviceRepairStanedSearch({ repairstand_code })
+ this.tableDataDialog = res.Data
+
+ this.dialogForm.code = res.code
+ this.dialogForm.name = res.name
+ this.dialogForm.enable = res.enable
+ this.dialogForm.description = res.description
+
+ this.tableDataDialog.forEach(item => {
+ item.isVisible = 0
+ item.repairitem_code = item.code
+ item.repairitem_name = item.name
+ item.repairitem_descr = item.chk_desc
+ })
+
+ this.repairItemSelectArr = [...this.repairItemSelectArr].filter(x => [...this.tableDataDialog].every(y => y.repairitem_code !== x.code))
+ },
+ // 鍒犻櫎鎸夐挳
+ async del(row) {
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ DeleteDeviceRepairStaned({ repairstand_code: row.code }).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('鍒犻櫎鎴愬姛!')
+ if (this.form.page > 1 && this.tableData.length === 1) {
+ this.form.page--
+ }
+ this.getDeviceRepairStandArdSearch()
+ }
+ })
+ }).catch(() => {
+ this.$notify.info('宸插彇娑堝垹闄�')
+ })
+ },
+
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm.code = ''
+ this.dialogForm.name = ''
+ this.dialogForm.enable = 'Y'
+ this.dialogForm.description = ''
+ this.tableDataDialog = []
+ this.getDeviceRepairItemSelect()
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ if (this.tableDataDialog.length === 0) {
+ return this.$message.info('璁惧鍏宠仈淇濆吇椤逛俊鎭笉鑳戒负绌猴紒')
+ }
+
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ this.$store.state.app.buttonIsDisabled = true
+ this.tableDataDialog.filter(item => item.repairitem_code !== '')
+
+ let Data = []
+ // 鏁扮粍涓璞$浉鍚岀殑鍘婚噸
+ Data = this.tableDataDialog.filter((currentValue, currentIndex, selfArr) => {
+ return selfArr.findIndex(item => item.repairitem_code === currentValue.repairitem_code) === currentIndex
+ })
+ Data.forEach((item, index) => {
+ item.repairitem_seq = index + 1
+ })
+
+ const data = {
+ 'code': this.dialogForm.code,
+ 'name': this.dialogForm.name,
+ 'repaircycle': this.dialogForm.repaircycle,
+ 'description': this.dialogForm.description,
+ 'Data': Data
+ }
+
+ AddUpdateDeviceRepairStandArd(data, this.operation === 'add' ? 'Add' : 'Update').then(res => {
+ if (res.code === '200') {
+ this.dialogVisible = false
+ this.$notify.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ this.getDeviceRepairStandArdSearch()
+ this.$store.state.app.buttonIsDisabled = false
+ } else {
+ this.$notify.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ }
+ })
+ }
+ })
+ },
+
+ selectChange(val, row) {
+ const res = this.repairItemSelectArr.find(item => {
+ return item.code === val || item.name === val
+ })
+ row.repairitem_descr = res.description
+ row.repairitem_code = res.code
+ row.repairitem_name = res.name
+ },
+ // 鏂板琛�
+ addRow() {
+ let flag = false
+ this.tableDataDialog.forEach(item => {
+ if (item.isVisible === 1) {
+ // return this.$message.info('璇峰厛纭鎴栧彇娑堜笂鏉¤褰曪紒')
+ flag = true
+ }
+ })
+ if (flag) {
+ return this.$message.info('璇峰厛纭鎴栧彇娑堜笂鏉¤褰曪紒')
+ }
+ this.tableDataDialog.push({
+ repairitem_code: '',
+ repairitem_name: '',
+ repairitem_descr: '',
+ isscan: 'Y',
+ isVisible: 1
+ })
+
+ this.repairItemIsCancel = false
+ },
+ editRow(row) {
+ let flag = false
+ this.tableDataDialog.forEach((item, index) => {
+ if (item.isVisible === 1) {
+ flag = true
+ }
+ })
+ if (flag) {
+ return this.$message.info('璇峰厛纭鎴栧彇娑堝叾瀹冭锛�')
+ }
+
+ this.repairItemIsCancel = false
+ this.repairItemSelectArr.splice(0, 0, {
+ code: row.repairitem_code,
+ name: row.repairitem_name,
+ description: row.repairitem_descr
+ })
+
+ this.tableDataDialog.forEach((item, index) => {
+ if (item.repairitem_code === row.repairitem_code) {
+ this.tableDataDialog.splice(index, 1, {
+ repairitem_code: row.repairitem_code,
+ repairitem_name: row.repairitem_name,
+ repairitem_descr: row.repairitem_descr,
+ isscan: row.isscan,
+ isVisible: 1
+ })
+ }
+ })
+ },
+ delRow(row) {
+ this.repairItemSelectArr.splice(0, 0, {
+ code: row.repairitem_code,
+ name: row.repairitem_name,
+ description: row.repairitem_descr
+ })
+ this.tableDataDialog.forEach((item, index) => {
+ if (item.repairitem_code === row.repairitem_code) {
+ this.tableDataDialog.splice(index, 1)
+ }
+ })
+ },
+ saveRow(row) {
+ if (row.repairitem_code === '' && row.repairitem_name === '') {
+ return this.$message.info('鐐规閮ㄤ綅涓嶈兘涓虹┖锛�')
+ }
+ row.isVisible = 0
+ this.repairItemSelectArr.forEach((item, index) => {
+ if (item.code === row.repairitem_code) {
+ this.repairItemSelectArr.splice(index, 1)
+ }
+ })
+ },
+ cancelRow(row) {
+ if (this.repairItemIsCancel) {
+ this.repairItemSelectArr.splice(0, 0, {
+ code: row.repairitem_code,
+ name: row.repairitem_name,
+ description: row.repairitem_descr
+ })
+ }
+ this.JYIsCancel = true
+
+ this.tableDataDialog.forEach((item, index) => {
+ if (item.repairitem_code === row.repairitem_code && item.isVisible === 1) {
+ row.isVisible = 0
+ this.tableDataDialog.splice(index, 1)
+ }
+ })
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 195
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ },
+ // 鍏宠仈璁惧
+ checkeqpClick(row) {
+ const loading = this.$loading({
+ lock: true,
+ text: '姝e湪鍔犺浇鏁版嵁锛岃绋嶇瓑...',
+ spinner: 'el-icon-loading',
+ customClass: 'osloading',
+ background: 'rgba(0, 0, 0, 0.7)'
+ })
+
+ this.dialogFormEqp.name = row.name
+ this.dialogFormEqp.code = row.code
+
+ DeviceRepairStanedAssociationEqp({ repairstand_code: row.code }).then(res => {
+ if (res.code === '200') {
+ setTimeout(() => {
+ loading.close()
+ this.dialogFormEqp.eqpAll = res.data.filter(item => item.children.length > 0)
+
+ if (this.dialogFormEqp.eqpAll.length > 0) {
+ this.dialogFormEqp.eqpAll.forEach((item, index) => {
+ this.dialogFormEqp.eqpArr.push({
+ code: item.code,
+ name: item.name,
+ type: item.type,
+ isSelected1: index === 0,
+ isSelected2: item.flag === 'Y'
+ })
+ if (item.flag === 'Y') {
+ this.$nextTick(() => {
+ $('input:checkbox').eq(index).prop('checked', true)// 鑷畾涔夊崟閫夋鍥炴樉
+ })
+ }
+ if (item.children && item.children.length > 0) {
+ item.children.forEach(it => {
+ if (it.flag === 'Y') {
+ this.dialogFormEqp.eqpCodeSelectedArr.push(it.code)
+ }
+ })
+ }
+ })
+ this.dialogFormEqp.eqpAll[0].name = '鍏ㄩ儴'
+ this.dialogFormEqp.eqpTree = [this.dialogFormEqp.eqpAll[0]]
+ }
+
+ this.dialogVisibleEqp = true
+
+ this.$nextTick(() => { // 鏍戝舰鍥炴樉
+ this.$refs.epqTree.setCheckedKeys(this.dialogFormEqp.eqpCodeSelectedArr)
+ })
+ }, 1000)
+ } else {
+ loading.close()
+ }
+ })
+ },
+ // 鍏宠仈璁惧瀵硅瘽妗嗗叧闂�
+ handleCloseEqp() {
+ this.$refs.epqTree.setCheckedKeys([])
+ this.dialogFormEqp.code = ''
+ this.dialogFormEqp.name = ''
+ this.dialogFormEqp.eqpAll = []
+ this.dialogFormEqp.eqpArr = []
+ this.dialogFormEqp.eqpTree = []
+ this.dialogFormEqp.eqpCodeSelectedArr = []
+ },
+ // 澶х洅瀛愮偣鍑�
+ myCheckboxClick(val) {
+ this.dialogFormEqp.eqpArr.forEach((item, index) => {
+ item.isSelected1 = item.code === val.code
+ if (item.code === val.code) {
+ this.dialogFormEqp.eqpAll[index].name = '鍏ㄩ儴'
+ this.dialogFormEqp.eqpTree = [this.dialogFormEqp.eqpAll[index]]
+ }
+ })
+ this.$nextTick(() => { // 鏍戝舰鍥炴樉
+ this.$refs.epqTree.setCheckedKeys(this.dialogFormEqp.eqpCodeSelectedArr)
+ })
+ },
+ // 灏忕洅瀛愮偣鍑�
+ myCheckboxInputClick(val) {
+ // console.log(val)
+ val.isSelected2 = !!val.isSelected2
+ if (val.isSelected2) { // 浠庢病閫変腑鍒伴�変腑
+ console.log('浠庢病閫変腑鍒伴�変腑')
+ this.dialogFormEqp.eqpAll.forEach((item, index) => {
+ if (item.code === val.code) {
+ if (item.children && item.children.length > 0) {
+ item.children.forEach(it => {
+ this.dialogFormEqp.eqpCodeSelectedArr.push(it.code)
+ })
+ }
+ }
+ })
+ console.log(this.dialogFormEqp.eqpCodeSelectedArr, 1)
+ this.$nextTick(() => { // 鏍戝舰鍥炴樉
+ this.$refs.epqTree.setCheckedKeys(this.dialogFormEqp.eqpCodeSelectedArr)
+ })
+ } else { // 浠庨�変腑鍒版病閫変腑
+ console.log('浠庨�変腑鍒版病閫変腑')
+ const temp = []
+ this.dialogFormEqp.eqpAll.forEach((item, index) => {
+ if (item.code === val.code) {
+ if (item.children && item.children.length > 0) {
+ item.children.forEach(it => {
+ temp.push(it.code)
+ })
+ }
+ }
+ })
+ this.dialogFormEqp.eqpCodeSelectedArr = [...this.dialogFormEqp.eqpCodeSelectedArr].filter(x => [...temp].every(y => y !== x))
+ this.$nextTick(() => { // 鏍戝舰鍥炴樉
+ this.$refs.epqTree.setCheckedKeys(this.dialogFormEqp.eqpCodeSelectedArr)
+ })
+ }
+ console.log(this.dialogFormEqp.eqpCodeSelectedArr, 999)
+ },
+ // 鏍戝舰澶嶉�夋鐐瑰嚮浜嬩欢
+ checkBoxClick(obj, { checkedNodes, checkedKeys, halfCheckedNodes, halfCheckedKeys }) {
+ let checkedFatherCode = '' // 鎵惧埌 checkedFatherCode 鐖禼ode鍊�
+ console.log(obj, { checkedNodes, checkedKeys, halfCheckedNodes, halfCheckedKeys })
+ this.dialogFormEqp.eqpAll.forEach((item, index) => {
+ if (item.code === obj.code) {
+ checkedFatherCode = item.code
+ }
+ if (item.children && item.children.length > 0) {
+ item.children.forEach((it, ind) => {
+ if (it.code === obj.code) {
+ checkedFatherCode = item.code
+ }
+ })
+ }
+ })
+ console.log(checkedFatherCode, 1)
+
+ // 1.绗竴绉嶆儏鍐靛綋鏍戝舰 鍗婂彾 涓嶄负闆� 鍏ㄥ彾 涓嶄负闆�
+ if (halfCheckedKeys.length !== 0 && checkedKeys.length !== 0) {
+ console.log('// 1.绗竴绉嶆儏鍐靛綋鏍戝舰 鍗婂彾 涓嶄负闆� 鍏ㄥ彾 涓嶄负闆�')
+ this.dialogFormEqp.eqpArr.forEach((item, index) => {
+ if (item.code === checkedFatherCode) {
+ console.log(item.code, 777)
+ this.dialogFormEqp.eqpArr[index].isSelected2 = true
+ this.$nextTick(() => {
+ $('input:checkbox').eq(index).prop('checked', true)// 鑷畾涔夊崟閫夋鍥炴樉
+ })
+ }
+ })
+ this.dialogFormEqp.eqpCodeSelectedArr.forEach((item, index) => {
+ if (item === obj.code) {
+ this.dialogFormEqp.eqpCodeSelectedArr.splice(index, 1)
+ }
+ })
+ checkedKeys.forEach(item => {
+ this.dialogFormEqp.eqpCodeSelectedArr.push(item)
+ })
+ this.dialogFormEqp.eqpCodeSelectedArr = [...new Set(this.dialogFormEqp.eqpCodeSelectedArr)]
+ }
+
+ // 2.绗簩绉嶆儏鍐靛綋鏍戝舰 鍗婂彾 涓洪浂 鍏ㄥ彾 涓洪浂
+ if (halfCheckedKeys.length === 0 && checkedKeys.length === 0) {
+ console.log('// 2.绗簩绉嶆儏鍐靛綋鏍戝舰 鍗婂彾 涓洪浂 鍏ㄥ彾 涓洪浂')
+ const temp = []
+ this.dialogFormEqp.eqpArr.forEach((item, index) => {
+ if (item.code === checkedFatherCode) {
+ this.dialogFormEqp.eqpArr[index].isSelected2 = false
+ this.$nextTick(() => {
+ $('input:checkbox').eq(index).prop('checked', false)// 鑷畾涔夊崟閫夋鍥炴樉
+ })
+ }
+ })
+ this.dialogFormEqp.eqpAll.forEach((item, index) => {
+ if (item.code === checkedFatherCode) {
+ if (item.children && item.children.length > 0) {
+ item.children.forEach(it => {
+ temp.push(it.code)
+ })
+ }
+ }
+ })
+ this.dialogFormEqp.eqpCodeSelectedArr = [...this.dialogFormEqp.eqpCodeSelectedArr].filter(x => [...temp].every(y => y !== x))
+ }
+
+ // 3.绗笁绉嶇鎯呭喌褰撴爲褰� 鍗婂彾 涓洪浂 鍏ㄥ彾 涓嶄负闆�
+ if (halfCheckedKeys.length === 0 && checkedKeys.length !== 0) {
+ console.log('// 3.绗笁绉嶇鎯呭喌褰撴爲褰� 鍗婂彾 涓洪浂 鍏ㄥ彾 涓嶄负闆�')
+ this.dialogFormEqp.eqpArr.forEach((item, index) => {
+ if (item.code === checkedFatherCode) {
+ this.dialogFormEqp.eqpArr[index].isSelected2 = true
+ this.$nextTick(() => {
+ $('input:checkbox').eq(index).prop('checked', true)// 鑷畾涔夊崟閫夋鍥炴樉
+ })
+ }
+ })
+
+ this.dialogFormEqp.eqpAll.forEach((item, index) => {
+ if (item.code === checkedFatherCode) {
+ if (item.children && item.children.length > 0) {
+ item.children.forEach(it => {
+ this.dialogFormEqp.eqpCodeSelectedArr.push(it.code)
+ })
+ }
+ }
+ })
+ }
+ },
+ // 鍙栨秷浜嬩欢
+ eqpDialogVisibleCancel() {
+ this.dialogVisibleEqp = false
+ },
+ // 纭浜嬩欢
+ eqpDialogVisibleConfirm() {
+ // console.log(this.dialogFormEqp.eqpCodeSelectedArr, 888)
+ // this.dialogVisibleEqp = false
+ this.$store.state.app.buttonIsDisabled = true
+ const data = []
+ this.dialogFormEqp.eqpAll.forEach((item, index) => {
+ if (item.children && item.children.length > 0) {
+ item.children.forEach(it => {
+ if (this.dialogFormEqp.eqpCodeSelectedArr.includes(it.code)) {
+ data.push({
+ name: it.name,
+ code: it.code
+ })
+ }
+ })
+ }
+ })
+
+ SaveDeviceRepairStanedAssociationEqp(data, this.dialogFormEqp.code).then(res => {
+ if (res.code === '200') {
+ this.dialogVisibleEqp = false
+ this.$notify.success('鍏宠仈鎴愬姛锛�')
+ this.getDeviceRepairStandArdSearch()
+ this.$store.state.app.buttonIsDisabled = false
+ }
+ })
+ }
+ }
+}
+</script>
+
+<!--鍏叡椤甸潰鏍峰紡-->
+<style lang="scss" scoped>
+$main_color: #42b983;
+
+.dialogVisibleEqp {
+ .myCheckboxGroup {
+ display: flex;
+ flex-wrap: wrap;
+
+ .myCheckbox {
+ //border: 1px solid $main_color;
+ border: 1px solid #eee;
+ display: flex;
+ min-width: 100px;
+ padding: 10px;
+ margin: 10px 30px 0 0;
+ border-radius: 5px;
+ cursor: default;
+ position: relative;
+
+ .myCheckboxInput {
+ margin: 1px 5px 0 0;
+ cursor: pointer;
+ }
+
+ .myCheckboxInputLabel {
+ position: absolute;
+ left: 29px;
+ padding: 5px;
+ top: 6px;
+ color: transparent;
+ }
+
+ }
+
+ //.myCheckbox{
+ // border: 1px solid $main_color;
+ //}
+
+ input[type=checkbox] {
+ cursor: pointer;
+ position: relative;
+ width: 14px;
+ height: 14px;
+ font-size: 14px;
+ }
+
+ input[type=checkbox]::after {
+ position: absolute;
+ top: 0;
+ //color: rgb(130, 35, 35);
+ color: $main_color;
+ width: 14px;
+ height: 14px;
+ display: inline-block;
+ visibility: visible;
+ padding-left: 0px;
+ text-align: center;
+ content: ' ';
+ border-radius: 3px
+ }
+
+ input[type=checkbox]:checked::after {
+ //content: "鉁�";
+ content: "鈭�";
+ color: #fff;
+ font-size: 12px;
+ font-weight: bold;
+ background-color: $main_color;
+ }
+ }
+}
+
+::v-deep .el-button--text {
+ font-size: 14px;
+ cursor: pointer;
+}
+
+.el-icon-share, .el-icon-delete, .el-icon-edit-outline {
+ color: $main_color;
+ cursor: pointer;
+}
+
+.el-icon-edit-outline {
+ margin-right: 15px;
+}
+
+::v-deep .el-button--primary, .el-button--default, .el-button--info {
+ height: 34px;
+ display: flex;
+ align-items: center;
+ padding: 0 15px;
+}
+
+::v-deep .el-button--primary {
+ //background-color: $main_color !important;
+}
+
+::v-deep .el-button--default {
+ background-color: #f8f8fa;
+ border: none;
+}
+
+::v-deep .el-input__inner {
+ height: 34px;
+ line-height: 34px;
+ //color: #a7a7a7;
+}
+
+//::v-deep .el-dialog__body {
+// padding: 20px 100px !important;
+//}
+::v-deep .el-dialog__body {
+ padding: 20px 20px !important;
+}
+
+::v-deep .dialogVisibleRoles .el-dialog__body {
+ padding: 20px 20px !important;
+}
+
+::v-deep .importPickerClass .el-dialog__body {
+ padding: 20px 20px !important;
+}
+
+::v-deep .el-dialog__footer {
+ display: flex;
+ justify-content: flex-end;
+}
+
+::v-deep .el-table .caret-wrapper {
+ transform: scale(0.8);
+}
+
+::v-deep .cell {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
+
+::v-deep .el-table::before {
+ height: 0;
+}
+
+::v-deep .el-table__body-wrapper {
+ background-color: #f8f8fa;
+}
+
+::v-deep .el-table__body .el-table__row.hover-row td {
+ background-color: #eaecef;
+}
+
+::v-deep .el-form--inline .el-form-item__label {
+ color: #a7a7a7;
+}
+
+.body ::v-deep .el-divider {
+ border: 1px solid #eee;
+ width: 99%;
+ margin: 10px auto;
+}
+
+.body ::v-deep .el-form-item {
+ margin-bottom: 0;
+}
+
+.userDialogVisible ::v-deep .el-form-item {
+ margin-bottom: 0;
+}
+
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.tableFixed {
+ ::v-deep .el-table__fixed-right {
+ height: 100% !important;
+ }
+
+ ::v-deep .el-table__fixed {
+ height: 100% !important;
+ }
+}
+
+</style>
+<style>
+.osloading{
+ font-size: 26px !important;
+}
+
+.el-loading-text{
+ font-size: 26px !important;
+}
+.el-table .custom-row {
+ background: #f8f8fa;
+}
+</style>
diff --git a/src/views/deviceManager/repairRecord.vue b/src/views/deviceManager/repairRecord.vue
index e69de29..7e6ba3a 100644
--- a/src/views/deviceManager/repairRecord.vue
+++ b/src/views/deviceManager/repairRecord.vue
@@ -0,0 +1,730 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
+ <el-button v-waves type="primary" icon="el-icon-download" @click="download">瀵煎嚭</el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="鐢熶骇杞﹂棿"style=" display: flex;">
+ <el-select v-model="form.wkshopcode" style="width: 200px" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in wkshopSelectArr"
+ :key="item.torg_code"
+ :label="item.torg_name"
+ :value="item.torg_code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="璁惧缂栫爜" style=" display: flex;">
+ <el-input v-model="form.eqpcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="璁惧鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.eqpname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鎶ヤ慨浜哄憳" style=" display: flex;">
+ <el-input v-model="form.reportuser" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="缁翠慨浜哄憳" style=" display: flex;">
+ <el-input v-model="form.repairuser" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="楠岃瘉浜哄憳" style=" display: flex;">
+ <el-input v-model="form.vrifcatuser" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鎶ヤ慨鏃堕棿" style=" display: flex;align-items: center">
+ <el-date-picker
+ v-model="form.reportdate"
+ type="daterange"
+ :clearable="false"
+ class="timeMini"
+ range-separator="~"
+ start-placeholder="寮�濮嬫棩鏈�"
+ style="width: 200px;display: flex;line-height: 34px ;height: 34px ;"
+ end-placeholder="缁撴潫鏃ユ湡"
+ size="mini"
+ />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="缁翠慨鏃堕棿" style=" display: flex;align-items: center">
+ <el-date-picker
+ v-model="form.repairdate"
+ type="daterange"
+ :clearable="false"
+ class="timeMini"
+ range-separator="~"
+ start-placeholder="寮�濮嬫棩鏈�"
+ style="width: 200px;display: flex;line-height: 34px ;height: 34px ;"
+ end-placeholder="缁撴潫鏃ユ湡"
+ size="mini"
+ />
+ </el-form-item>
+ <el-form-item
+ v-show="isExpandForm"
+ label="楠岃瘉鏃堕棿"
+ style=" display: flex;align-items: center"
+ >
+ <el-date-picker
+ v-model="form.vrifcatdate"
+ type="daterange"
+ :clearable="false"
+ class="timeMini"
+ range-separator="~"
+ start-placeholder="寮�濮嬫棩鏈�"
+ style="width: 200px;display: flex;line-height: 34px ;height: 34px ;"
+ end-placeholder="缁撴潫鏃ユ湡"
+ size="mini"
+ />
+ </el-form-item>
+ </div>
+ <div class="bodySearchReset" :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}">
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <!-- <TableColumnSettings-->
+ <!-- :list1="tableColumnSettingsArray"-->
+ <!-- @tableColumnUpdate="tableColumnUpdate"-->
+ <!-- />-->
+ <el-table
+ ref="tableDataRef"
+ :key="tableTimeStampKey"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+80)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+80)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ v-for="item in tableColumnSettingsArray"
+ v-if="item.show"
+ :key="item.id"
+ :sortable="item.sortable"
+ :prop="item.prop"
+ :min-width="item.minWidth"
+ :label="item.label"
+ :width="item.width"
+ show-tooltip-when-overflow
+ :fixed="item.fixed?(item.fixed==='left'?'left':'right'):false"
+ >
+ <template slot-scope="{row}">
+ <div v-if="!row[item.prop]">/</div>
+ <div v-else-if="item.prop==='verify_result'">
+ <div v-if="row[item.prop]==='閫氳繃'" style="display: flex;align-items: center">
+ <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />
+ 閫氳繃
+ </div>
+ <div v-if="row[item.prop]==='涓嶉�氳繃'" style="display: flex;align-items: center">
+ <i class="el-icon-info" style="margin-right: 2px" />
+ 涓嶉�氳繃
+ </div>
+ </div>
+ <div v-else>{{ row[item.prop] }}</div>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ label="鏄庣粏"
+ width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <i
+ class="el-icon-tickets"
+ :style="{color:$store.state.settings.theme}"
+ style="cursor: pointer;margin-right: 15px"
+ @click="edit('edit',row)"
+ />
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getDeviceUpdateSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ title="缁翠慨鏄庣粏"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="10vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <div style="font-size:16px;">
+ <div style="margin-bottom: 20px">
+ <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" /> 璁惧鎶ヤ慨淇℃伅锛�
+ </div>
+ <div style="display: flex;flex-direction: column;margin-left: 40px">
+ <div style="margin-bottom: 10px">鏁呴殰鏉ユ簮锛歿{ dialogData1.faultsource }}</div>
+ <div style="margin-bottom: 10px">鏁呴殰鎻忚堪锛歿{ dialogData1.faultdescr }}</div>
+ <div v-if="dialogData1.faultimage" style="display: flex;margin-bottom: 10px">鏁呴殰鍥剧墖锛�
+ <div v-for="item in dialogData1.faultimage">
+ <img
+ style="width: 100px;margin-right: 10px"
+ :src="baseUrl+item.img1url"
+ alt=""
+ @click="handlePictureCardPreview(baseUrl+item.img1url,'璁惧鎶ヤ慨/鏁呴殰鍥剧墖')"
+ >
+ </div>
+ </div>
+ </div>
+ <div style="margin-bottom: 20px">
+ <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" /> 璁惧缁翠慨淇℃伅锛�
+ </div>
+ <div style="display: flex;flex-direction: column;margin-left: 40px">
+ <div style="margin-bottom: 10px">鏁呴殰鎻忚堪锛歿{ dialogData2.faultdescr }}</div>
+ <div v-if="dialogData2.repairimage" style="display: flex;margin-bottom: 10px">鏁呴殰鍥剧墖锛�
+ <div v-for="item in dialogData2.repairimage" v-if="item.img1url!==''">
+ <img
+ style="width: 100px;margin-right: 10px"
+ :src="baseUrl+item.img1url"
+ alt=""
+ @click="handlePictureCardPreview(baseUrl+item.img1url,'璁惧缁翠慨/鏁呴殰鍥剧墖')"
+ >
+ </div>
+ </div>
+ <div style="margin-bottom: 10px">鍋滄満缁翠慨锛歿{ dialogData2.isstoprepair === 'N' ? '鍚�' : '鏄�' }}</div>
+ <div v-if="dialogData2.repaircontent" style="margin-bottom: 10px">缁翠慨鍐呭锛歿{ dialogData2.repaircontent }}</div>
+ <div v-if="dialogData2.repairpart" style="margin-bottom: 10px">鏇存崲澶囦欢锛歿{ dialogData2.repairpart }}</div>
+ <div v-if="dialogData2.repairimage" style="display: flex;margin-bottom: 10px">澶囦欢鍥剧墖锛�
+ <div v-for="item in dialogData2.repairimage" v-if="item.img2url!==''">
+ <img
+ style="width: 100px;margin-right: 10px"
+ :src="baseUrl+item.img2url"
+ alt=""
+ @click="handlePictureCardPreview(baseUrl+item.img2url,'璁惧缁翠慨/澶囦欢鍥剧墖')"
+ >
+ </div>
+ </div>
+ </div>
+ <div style="margin-bottom: 20px">
+ <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" /> 璁惧缁翠慨楠岃瘉淇℃伅锛�
+ </div>
+ <div style="display: flex;flex-direction: column;margin-left: 40px">
+ <div style="margin-bottom: 10px;display: flex;">楠岃瘉缁撴灉锛�
+
+ <i
+ v-if="isResult==='閫氳繃'"
+ class="el-icon-success"
+ :style="{color:$store.state.settings.theme}"
+ style="margin-right: 2px"
+ />
+ <i v-if="isResult==='涓嶉�氳繃'" class="el-icon-info" style="margin-right: 2px" />
+
+ {{ isResult }}
+ </div>
+
+ </div>
+ </div>
+ <!-- 鍥剧墖棰勮瀵硅瘽妗�-->
+ <el-dialog
+ title="鍥剧墖棰勮"
+ :visible.sync="pictureVisible"
+ width="800px"
+ append-to-body
+ @close="pictureHandleClose"
+ >
+ <div style="font-size: 16px;margin-bottom: 10px">
+ <i class="el-icon-s-comment" :style="{color:$store.state.settings.theme}" /> {{ pictureName }}
+ </div>
+
+ <img :key="new Date()" width="100%" :src="pictureUrl" alt="">
+
+ <el-tooltip class="item" effect="light" content="涓婁竴寮�" placement="top">
+ <div
+ v-if="pictureUrlAll.findIndex(item => item.url === pictureUrl)!==0"
+ style="position: absolute;top: 48%;left: 3.5%;"
+ ><i
+ :style="{color:$store.state.settings.theme}"
+ style="cursor: pointer;font-size: 20px"
+ class="el-icon-d-arrow-left"
+ @click="arrowLeftClick(pictureUrl,pictureName)"
+ /></div>
+ </el-tooltip>
+ <el-tooltip class="item" effect="light" content="涓嬩竴寮�" placement="top">
+ <div
+ v-if="pictureUrlAll.findIndex(item => item.url === pictureUrl)!==pictureUrlAll.length-1"
+ style="position: absolute;top: 48%;right: 3.5%;"
+ >
+ <i
+ :style="{color:$store.state.settings.theme}"
+ style="cursor: pointer;font-size: 20px"
+ class="el-icon-d-arrow-right"
+ @click="arrowRightClick(pictureUrl,pictureName)"
+ /></div>
+ </el-tooltip>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="pictureVisible=false">杩� 鍥�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">杩� 鍥�</el-button>
+ <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>-->
+ </div>
+ </span>
+ </el-dialog>
+
+ <!--瀵煎叆缁勪欢-->
+ <import-picker
+ ref="importPickerFunc"
+ class="importPickerClass"
+ :shows.sync="shows"
+ :title="title_value"
+ :colos="colos"
+ :code="code"
+ />
+
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import { handleDatetime } from '@/utils/global'
+import { DeviceUpdateOutExcel, DeviceUpdateSearch, DeviceUpdateSubSearch } from '@/api/DeviceManager'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import TableColumnSettings from '@/components/TableColumnSettings'
+import { PrentOrganizationNoCompany } from '@/api/GeneralBasicData'
+
+export default {
+ name: 'Zzjg',
+ components: {
+ Pagination, TableColumnSettings
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ wkshopcode: '', // 杞﹂棿缂栫爜
+ eqpcode: '', // 璁惧缂栫爜
+ eqpname: '', // 璁惧鍚嶇О
+ reportuser: '', // 鎶ヤ慨浜哄憳
+ repairuser: '', // 缁翠慨浜哄憳
+ vrifcatuser: '', // 楠岃瘉浜哄憳
+ reportdate: '', // 鎶ヤ慨鏃堕棿
+ repairdate: '', // 缁翠慨鏃堕棿
+ vrifcatdate: '', // 楠岃瘉鏃堕棿
+ prop: 'repair_code', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ wkshopSelectArr: [],
+ total: 10,
+ tableData: [],
+
+ tableColumnSettingsArray: [
+ // { minWidth: false, width: 55, prop: 'id', label: 'id', id: 1, show: false, fixed: false, sortable: false }, // 闅愯棌鍒� show: false闅愯棌锛宼rue鏄剧ず
+ { minWidth: false, width: 55, prop: 'rowNum', label: '搴忓彿', id: 2, show: true, fixed: 'left', sortable: false }, // custom
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'repair_code',
+ label: '缁翠慨鍗曞彿',
+ id: 3,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 130,
+ prop: 'wksp_code',
+ label: '鎵�灞炶溅闂寸紪鐮�',
+ id: 4,
+ show: false,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'wksp_name',
+ label: '鎵�灞炶溅闂�',
+ id: 5,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'eqp_code',
+ label: '璁惧缂栫爜',
+ id: 6,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'eqp_name',
+ label: '璁惧鍚嶇О',
+ id: 7,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: false,
+ width: 110,
+ prop: 'request_person',
+ label: '鎶ヤ慨浜�',
+ id: 8,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: false,
+ width: 160,
+ prop: 'request_date',
+ label: '淇濅慨鏃堕棿',
+ id: 9,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'repair_person',
+ label: '缁翠慨浜�',
+ id: 10,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: false,
+ width: 160,
+ prop: 'repair_date',
+ label: '缁翠慨瀹屾垚鏃堕棿',
+ id: 11,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: false,
+ width: 110,
+ prop: 'cycleDate',
+ label: '缁翠慨鏃堕暱',
+ id: 12,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: false,
+ width: 110,
+ prop: 'verify_person',
+ label: '楠岃瘉浜�',
+ id: 13,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 160,
+ prop: 'verify_date',
+ label: '楠岃瘉鏃堕棿',
+ id: 14,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'verify_result',
+ label: '楠岃瘉缁撴灉',
+ id: 15,
+ show: true,
+ fixed: false,
+ sortable: true
+ }
+ ],
+ tableTimeStampKey: new Date().getTime(), // 琛ㄦ牸key
+
+ dialogVisible: false,
+ dialogData1: {},
+ dialogData2: {},
+ isResult: '', // 楠岃瘉缁撴灉
+ operation: '',
+
+ baseUrl: '', // 鍥剧墖棰勮鍦板潃鍓嶇紑
+
+ pictureVisible: false, // 鍥剧墖棰勮瀵硅瘽妗�
+ pictureUrl: '', // 鍥剧墖棰勮Url
+ pictureName: '', // 鍥剧墖棰勮鍚嶇О
+ pictureUrlAll: [], // 鍥剧墖棰勮鍦板潃鐨勬墍鏈塙rl
+
+ title_value: '鏁版嵁瀵煎叆 / 鐐规閮ㄤ綅',
+ code: '4',
+ shows: false
+
+ }
+ },
+
+ created() {
+ this.handleRequest()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+
+ this.baseUrl = process.env.VUE_APP_BASE_API_FILE
+ },
+ methods: {
+ tableColumnUpdate(val, isCopyTrue) {
+ if (isCopyTrue) {
+ this.tableColumnSettingsArray = val
+ }
+ this.tableTimeStampKey = new Date().getTime()
+
+ this.$refs.tableDataRef.doLayout()
+ },
+ handleRequest() {
+ this.getDeviceUpdateSearch().then(res => {
+ if (res.code === '200') {
+ this.getShopSearch()
+ }
+ })
+ },
+ async getDeviceUpdateSearch() {
+ let reportdate = this.form.reportdate
+ if (reportdate.length > 0) {
+ reportdate = handleDatetime(reportdate[0]) + '~' + handleDatetime(reportdate[1])
+ }
+ let repairdate = this.form.repairdate
+ if (repairdate.length > 0) {
+ repairdate = handleDatetime(repairdate[0]) + '~' + handleDatetime(repairdate[1])
+ }
+ let vrifcatdate = this.form.vrifcatdate
+ if (vrifcatdate.length > 0) {
+ vrifcatdate = handleDatetime(vrifcatdate[0]) + '~' + handleDatetime(vrifcatdate[1])
+ }
+ const data = {
+ wkshopcode: this.form.wkshopcode, // 杞﹂棿缂栫爜
+ eqpcode: this.form.eqpcode, // 璁惧缂栫爜
+ eqpname: this.form.eqpname, // 璁惧鍚嶇О
+ reportuser: this.form.reportuser, // 鎶ヤ慨浜哄憳
+ repairuser: this.form.repairuser, // 缁翠慨浜哄憳
+ vrifcatuser: this.form.vrifcatuser, // 楠岃瘉浜哄憳
+ reportdate, // 鎶ヤ慨鏃堕棿
+ repairdate, // 缁翠慨鏃堕棿
+ vrifcatdate, // 楠岃瘉鏃堕棿
+ prop: 'repair_code', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ }
+
+ const res = await DeviceUpdateSearch(data)
+ this.tableData = res.data
+ this.total = res.count
+ return { code: res.code }
+ },
+ // 鑾峰彇鎵ц杞﹂棿涓嬫媺鏁扮粍
+ async getShopSearch() {
+ const { data: res } = await PrentOrganizationNoCompany()
+ this.wkshopSelectArr = res
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getDeviceUpdateSearch()
+ },
+ // 鏌ヨ
+ search() {
+ this.getDeviceUpdateSearch()
+ },
+ // 瀵煎叆鎸夐挳
+ upload() {
+ this.shows = true
+ this.$refs.importPickerFunc.newDataFunc()
+ },
+ colos() {
+ this.shows = false
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.wkshopcode = ''
+ this.form.eqpcode = ''
+ this.form.eqpname = ''
+ this.form.reportuser = ''
+ this.form.repairuser = ''
+ this.form.vrifcatuser = ''
+ this.form.reportdate = ''
+ this.form.repairdate = ''
+ this.form.vrifcatdate = ''
+ this.getDeviceUpdateSearch()
+ },
+ // 淇敼鎸夐挳
+ async edit(operation, row) {
+ this.operation = operation
+ this.dialogVisible = true
+
+ const { data: res } = await DeviceUpdateSubSearch({ repair_code: row.repair_code })
+ this.dialogData1 = res.data1
+ this.dialogData2 = res.data2
+ this.isResult = row.verify_result
+
+ // 璁惧鎶ヤ慨鍥剧墖闆嗗悎
+ if (this.dialogData1.faultimage) {
+ this.dialogData1.faultimage.forEach(item => {
+ this.pictureUrlAll.push(
+ { url: this.baseUrl + item.img1url, name: '璁惧鎶ヤ慨/鏁呴殰鍥剧墖' }
+ )
+ })
+ }
+ // 璁惧缁翠慨鍥剧墖闆嗗悎
+ if (this.dialogData2.repairimage) {
+ this.dialogData2.repairimage.forEach(item => {
+ this.pictureUrlAll.push(
+ {
+ url: item.img1url ? this.baseUrl + item.img1url : this.baseUrl + item.img2url,
+ name: item.img1url ? '璁惧缁翠慨/鏁呴殰鍥剧墖' : '璁惧缁翠慨/澶囦欢鍥剧墖'
+ }
+ )
+ })
+ }
+ },
+ handlePictureCardPreview(url, name) {
+ this.pictureVisible = true
+ this.pictureUrl = url
+ this.pictureName = name
+ },
+ arrowLeftClick(pictureUrl, pictureName) {
+ this.pictureUrlAll.forEach((item, index) => {
+ if (item.url === pictureUrl) {
+ this.pictureUrl = this.pictureUrlAll[index - 1].url
+ this.pictureName = this.pictureUrlAll[index - 1].name
+ }
+ })
+ },
+ arrowRightClick(pictureUrl, pictureName) {
+ this.pictureUrlAll.forEach((item, index) => {
+ if (item.url === pictureUrl) {
+ this.pictureUrl = this.pictureUrlAll[index + 1].url
+ this.pictureName = this.pictureUrlAll[index + 1].name
+ }
+ })
+ },
+ pictureHandleClose() {
+ this.pictureUrl = ''
+ this.pictureName = ''
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogData1 = {}
+ this.dialogData2 = {}
+ this.isResult = ''
+ this.pictureUrlAll = []
+ },
+ async download() {
+ let reportdate = this.form.reportdate
+ if (reportdate.length > 0) {
+ reportdate = handleDatetime(reportdate[0]) + '~' + handleDatetime(reportdate[1])
+ }
+ let repairdate = this.form.repairdate
+ if (repairdate.length > 0) {
+ repairdate = handleDatetime(repairdate[0]) + '~' + handleDatetime(repairdate[1])
+ }
+ let vrifcatdate = this.form.vrifcatdate
+ if (vrifcatdate.length > 0) {
+ vrifcatdate = handleDatetime(vrifcatdate[0]) + '~' + handleDatetime(vrifcatdate[1])
+ }
+ const data = {
+ wkshopcode: this.form.wkshopcode, // 杞﹂棿缂栫爜
+ eqpcode: this.form.eqpcode, // 璁惧缂栫爜
+ eqpname: this.form.eqpname, // 璁惧鍚嶇О
+ reportuser: this.form.reportuser, // 鎶ヤ慨浜哄憳
+ repairuser: this.form.repairuser, // 缁翠慨浜哄憳
+ vrifcatuser: this.form.vrifcatuser, // 楠岃瘉浜哄憳
+ reportdate, // 鎶ヤ慨鏃堕棿
+ repairdate, // 缁翠慨鏃堕棿
+ vrifcatdate // 楠岃瘉鏃堕棿
+ }
+ const { data: res } = await DeviceUpdateOutExcel(data)
+ window.location.href = res
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 295
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ }
+ }
+}
+</script>
+
diff --git a/src/views/kanbanManager/cj.vue b/src/views/kanbanManager/cj.vue
new file mode 100644
index 0000000..84972af
--- /dev/null
+++ b/src/views/kanbanManager/cj.vue
@@ -0,0 +1,436 @@
+<template>
+ <div>
+ <div class="kb_dashboard" style="display:flex;flex-direction: column;justify-content: space-between">
+
+ <div class="kb_backgroundCustom" />
+
+ <div class="kb_header">
+ <div class="kb_headTime" style="top: 35px;left: 20px">
+ <span>鍦f玻</span>
+ </div>
+
+ <div class="kb_headTime kb_header_text" style="top: 35px;left: 765px">
+ <span>{{ title }}鏁板瓧鍖栫湅鏉�</span>
+ </div>
+
+ <div class="kb_headTime" style="top: 35px;right: 25px">
+ <span>{{ headTime }}</span>
+ </div>
+ </div>
+ <div
+ style=" padding:5px 20px 20px 20px;z-index:2;height: 940px;flex-direction: column;justify-content: space-between;"
+ >
+ <!-- 涓婅竟-->
+ <div style="display: flex;justify-content: space-between">
+ <div style="width:100%">
+ <div class="smallTitle">
+ <svg-icon icon-class="cxjg" class="svg_class" />
+ 鐢熶骇淇℃伅
+ </div>
+ <div
+ class="lineContent horn"
+ style="height: 450px;display: flex;flex-direction: column;justify-content: space-between"
+ >
+ <el-table
+ ref="tableDataLeftCenterRef"
+ :data="tableDataCenterTop"
+ class="tableData tableDataCell"
+ style="width: 100%;"
+ :header-cell-style="headerCellStyle"
+ :cell-style="cellStyle"
+ height="500"
+ >
+
+ <el-table-column
+ prop="wo_code"
+ label="宸ュ崟鍙�"
+ width="220"
+ />
+ <el-table-column
+ prop="partcode"
+ label="浜у搧缂栫爜"
+ width="160"
+ />
+ <el-table-column
+ prop="partname"
+ label="浜у搧鍚嶇О"
+ width="160"
+ />
+ <el-table-column
+ prop="partspec"
+ label="浜у搧瑙勬牸"
+ width="160"
+ >
+ <template slot-scope="{row}">
+ {{ row.partspec ? row.partspec : '/' }}
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="plan_qty"
+ label="浠诲姟鏁伴噺"
+ width="120"
+ />
+ <el-table-column
+ prop="good_qty"
+ label="鍚堟牸鏁伴噺"
+ width="120"
+ />
+ <el-table-column
+ prop="ng_qty"
+ label="涓嶈壇鏁伴噺"
+ width="120"
+ />
+ <el-table-column
+ prop="laborbad_qty"
+ label="宸ュ簾鏁伴噺"
+ width="120"
+ />
+ <el-table-column
+ prop="materielbad_qty"
+ label="鏂欏簾鏁伴噺"
+ width="120"
+ />
+ <el-table-column
+ prop="seq"
+ label="宸ュ簭椤哄簭"
+ width="120"
+ />
+ <el-table-column
+ prop="step_code"
+ label="宸ュ簭缂栫爜"
+ width="120"
+ />
+ <el-table-column
+ prop="step_name"
+ label="宸ュ簭鍚嶇О"
+ width="120"
+ />
+ <el-table-column
+ prop="schedule"
+ label="瀹屾垚杩涘害(%)"
+ width="213"
+ />
+ </el-table>
+ </div>
+ </div>
+
+ </div>
+ <!-- 涓嬭竟-->
+ <div style="display: flex;justify-content: space-between;margin-top: 15px;">
+ <div style="width: 1000px;">
+ <div class="smallTitle">
+ <svg-icon icon-class="blcs" class="svg_class" />
+ 璐ㄩ噺涓嶈壇(杩戜竴鍛�)
+ </div>
+ <div class="lineContent horn" style="height: 380px;display: flex;justify-content: space-between">
+ <div id="cjzl03" class="flex_c_c" style="width: 100%;height:100%" />
+
+ </div>
+ </div>
+ <div style="width: 850px;">
+ <div class="smallTitle">
+ <svg-icon icon-class="ckkc" class="svg_class" />
+ 涓嶈壇缁熻(杩戜竴鏈�)
+ </div>
+ <div class="lineContent horn" style="height: 380px;display: flex;justify-content: space-between">
+ <div id="cjzl04" class="flex_c_c" style="width: 100%;height:100%" />
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+import './kbCommon.css'
+import { loadEcharts, cjzl04, cjzl03_2 } from '@/utils/myEcharts'
+import {
+ WorkShopProduceBottomLeftData,
+ WorkShopProduceBottomRightData,
+ WorkShopProduceTopData
+} from '@/api/kanbanManager'
+import { PrentOrganizationNoCompany } from '@/api/GeneralBasicData'
+
+export default {
+ name: 'Cjsc',
+ data() {
+ return {
+ headTime: '',
+ tableDataRightTop: [],
+ wkshopArr: [],
+ legendData: [],
+
+ LeftTopData01: [],
+ LeftTopData02: [],
+
+ RightTopData01: [],
+ RightTopData02: [],
+ cjzl03_xData: [],
+ cjzl03_yData: [],
+ RightBottom: [],
+
+ tableDataCenterTop: [],
+
+ wkshopcode: '',
+ title: ''
+
+ }
+ },
+ created() {
+ setInterval(this.getNowTime, 1000)
+
+ // 涓ゅ皬鏃剁湅鏉垮埛鏂颁竴娆�
+ setInterval(() => {
+ window.location.reload()
+ }, 1000 * 60 * 120)
+ },
+ mounted() {
+ this.getAllApi()
+ },
+ methods: {
+ async getWorkShopProduceTopData() {
+ WorkShopProduceTopData({ wkshopcode: this.wkshopcode.join(',') }).then(res => {
+ this.tableDataCenterTop = res.data
+
+ const divData = this.$refs.tableDataLeftCenterRef.bodyWrapper
+ const timer = setInterval(() => {
+ // 鍏冪礌鑷璺濈椤堕儴1鍍忕礌
+ divData.scrollTop += 1
+ if (divData.clientHeight + divData.scrollTop === divData.scrollHeight) {
+ divData.scrollTop = 0
+ WorkShopProduceTopData({ wkshopcode: this.wkshopcode.join(',') }).then(res => {
+ this.tableDataCenterTop = res.data
+
+ if (this.tableDataCenterTop.length > 11) {
+ clearInterval(timer)
+ this.getWorkShopProduceTopData()
+ }
+ })
+ }
+ }, this.tableDataCenterTop.length <= 11 ? 1000 * 15 : 200)
+ })
+ },
+
+ async getAllApi() {
+ const res = await PrentOrganizationNoCompany()
+ this.wkshopArr = res.data
+
+ if (window.location.hash.indexOf('?') !== -1) {
+ const code = window.location.hash.split('?')[1].split('=')[1]
+ this.title = this.wkshopArr.find(i => i.torg_code === code).torg_name
+ this.wkshopcode = [code]
+ }
+
+ this.wkshopcode.forEach(i => {
+ const aa = this.wkshopArr.find(j => j.torg_code === i).torg_name
+ this.legendData.push(aa)
+ })
+
+ const res4 = await WorkShopProduceBottomLeftData({ wkshopcode: this.wkshopcode.join(',') })
+ this.cjzl03_xData = res4.data[this.wkshopcode[0]].map(i => i.click_date)
+ for (const res4Key in res4.data) {
+ if (this.wkshopcode.includes(res4Key)) {
+ const bb = res4.data[res4Key].map(i => i.count)
+ this.cjzl03_yData.push(bb)
+ }
+ }
+ loadEcharts('cjzl03', cjzl03_2(this.cjzl03_xData, this.legendData, this.cjzl03_yData, true))
+ setInterval(() => {
+ WorkShopProduceBottomLeftData({ wkshopcode: this.wkshopcode.join(',') }).then(res4 => {
+ this.cjzl03_yData = []
+
+ this.cjzl03_xData = res4.data[this.wkshopcode[0]].map(i => i.click_date)
+ for (const res4Key in res4.data) {
+ if (this.wkshopcode.includes(res4Key)) {
+ const bb = res4.data[res4Key].map(i => i.count)
+ this.cjzl03_yData.push(bb)
+ }
+ }
+ loadEcharts('cjzl03', cjzl03_2(this.cjzl03_xData, this.legendData, this.cjzl03_yData, true))
+ })
+ }, 1000 * 50)
+
+ const res5 = await WorkShopProduceBottomRightData({ wkshopcode: this.wkshopcode.join(',') })
+ this.RightBottom = res5.data
+ if (this.RightBottom.length > 0) {
+ loadEcharts('cjzl04', cjzl04(this.RightBottom.map(i => i.name), this.RightBottom.map(i => i.cont)))
+ }
+
+ setInterval(() => {
+ WorkShopProduceBottomRightData({ wkshopcode: this.wkshopcode.join(',') }).then(res5 => {
+ this.RightBottom = res5.data
+ if (this.RightBottom.length > 0) {
+ loadEcharts('cjzl04', cjzl04(this.RightBottom.map(i => i.name), this.RightBottom.map(i => i.cont)))
+ }
+ })
+ }, 1000 * 60)
+
+ this.getWorkShopProduceTopData()
+ },
+
+ // 鑾峰彇褰撳墠鏃堕棿
+ getNowTime() {
+ const dt = new Date()
+ const wk = dt.getDay()
+ const y = dt.getFullYear()
+ const m = (dt.getMonth() + 1 + '').padStart(2, '0')
+ const d = (dt.getDate() + '').padStart(2, '0')
+
+ const hh = (dt.getHours() + '').padStart(2, '0')
+ const mm = (dt.getMinutes() + '').padStart(2, '0')
+ const ss = (dt.getSeconds() + '').padStart(2, '0')
+ const weeks = ['鏄熸湡鏃�', '鏄熸湡涓�', '鏄熸湡浜�', '鏄熸湡涓�', '鏄熸湡鍥�', '鏄熸湡浜�', '鏄熸湡鍏�']
+ const week = weeks[wk]
+
+ this.headTime = `${y}-${m}-${d} ${hh}:${mm}:${ss} ${week}`
+ },
+ headerCellStyle() {
+ return {
+ backgroundColor: 'transparent',
+ padding: '10px 0',
+ textAlign: 'center',
+ color: '#07acc2',
+ border: 'none',
+ fontSize: '18px'
+ }
+ },
+ cellStyle() {
+ return {
+ padding: '7px 0',
+ textAlign: 'center',
+ backgroundColor: 'transparent',
+ color: '#fff',
+ border: 'none',
+ fontSize: '18px'
+ }
+ }
+
+ }
+
+}
+</script>
+
+<style lang="scss" scoped>
+$main_color: #09d8f2;
+$color01: #00FFFF;
+.tableData {
+ background: transparent;
+}
+
+.el-table::before {
+ height: 0;
+}
+
+.el-table__empty-text {
+ color: $main_color;
+}
+
+.tableDataCell {
+ ::v-deep .cell {
+ padding: 0 2px;
+ }
+}
+
+::v-deep .el-table__body-wrapper::-webkit-scrollbar {
+ /* width: 0;瀹藉害涓�0鏆楄棌 */
+ width: 0;
+ background: transparent;
+}
+
+::v-deep .el-table__body-wrapper {
+ background: transparent;
+}
+
+::v-deep .el-table th,
+::v-deep .el-table tr,
+::v-deep .el-table td {
+ background-color: transparent;
+}
+
+.all_block01 {
+ width: 237px;
+ height: 180px;
+}
+
+.all_block02 {
+ width: 100%;
+ height: 49px;
+ background: rgba(9, 216, 242, 0.1);
+}
+
+.all_block03 {
+ width: 199px;
+ height: 180px;
+}
+
+.all_block04 {
+ width: 100%;
+ height: 49px;
+ background: rgba(9, 216, 242, 0.1);
+}
+
+.kb_center_block_children {
+ height: 180px;
+ //border: 1px solid $kbBorderColor;
+ width: 240px;
+ display: flex;
+ z-index: 2;
+ justify-content: space-around;
+ align-items: center;
+ flex-direction: column;
+ margin: 10px;
+ font-size: 22px;
+
+ .box02 {
+ background: url("../../assets/images/box02.png") no-repeat;
+ transform: scale(1.5);
+ width: 145px;
+ height: 84px;
+
+ }
+}
+
+.all_block05 {
+ position: absolute;
+ animation: upDown 3s ease-in-out infinite;
+ left: 60px;
+}
+
+.all_block06 {
+ position: absolute;
+ animation: upDown2 3s ease-in-out infinite;
+ left: 290px;
+}
+
+.all_block07 {
+ position: absolute;
+ animation: upDown 3s ease-in-out infinite;
+ left: 520px;
+}
+
+@keyframes upDown {
+ 0% {
+ top: 50px;
+ }
+ 50% {
+ top: 100px;
+ }
+ 100% {
+ top: 50px;
+ }
+}
+
+@keyframes upDown2 {
+ 0% {
+ top: 100px;
+ }
+ 50% {
+ top: 50px;
+ }
+ 100% {
+ top: 100px;
+ }
+}
+
+</style>
diff --git a/src/views/kanbanManager/kbCommon.css b/src/views/kanbanManager/kbCommon.css
index f7c4ad6..110e6ff 100644
--- a/src/views/kanbanManager/kbCommon.css
+++ b/src/views/kanbanManager/kbCommon.css
@@ -14,6 +14,13 @@
overflow: hidden;
}
+.kb_backgroundCustom {
+ position: absolute;
+ width: 1920px;
+ height: 1080px;
+ background: url('../../assets/images/background001.jpg') no-repeat;
+}
+
.kb_header {
/*background-color: #123;*/
height: 90px;
@@ -27,7 +34,7 @@
font-weight: bolder;
}
-.kb_title_text{
+.kb_title_text {
font-weight: bolder;
font-size: 24px;
}
@@ -60,7 +67,7 @@
.flex_c_c {
display: flex;
justify-content: center;
- align-content: center;
+ align-items: center;
}
.flex_c_s {
@@ -69,6 +76,7 @@
justify-content: space-evenly;
/*align-content: center;*/
}
+
.flex_c_b {
display: flex;
flex-direction: column;
@@ -99,6 +107,7 @@
.kb_mt10 {
margin-top: 10px;
}
+
/*鍏憡鏍峰紡*/
.MarqueeTipsContentClass {
color: #00ffff;
@@ -108,7 +117,7 @@
font-size: 32px;
z-index: 2;
position: absolute;
- top:80px;
+ top: 80px;
}
/*
@@ -124,7 +133,7 @@
/*scrollbar END*/
-.smallTitle{
+.smallTitle {
height: 35px;
display: flex;
color: #00ffff;
@@ -132,11 +141,10 @@
/*align-content: flex-start;*/
}
-.svg_class{
+.svg_class {
margin-right: 10px;
font-size: 28px;
}
-
.lineContent {
diff --git a/src/views/kanbanManager/zhkb.vue b/src/views/kanbanManager/zhkb.vue
index ff39bfe..4c34ef1 100644
--- a/src/views/kanbanManager/zhkb.vue
+++ b/src/views/kanbanManager/zhkb.vue
@@ -1,278 +1,126 @@
<template>
<div>
- <div class="kb_dashboard">
- <!-- 鏄熺┖鑳屾櫙-->
- <div ref="starsRef" class="stars">
- <div v-for="(item, index) in starsCount" :key="index" class="star" />
- </div>
+ <div class="kb_dashboard" style="display:flex;flex-direction: column;justify-content: space-between">
+
+ <div class="kb_backgroundCustom" />
<div class="kb_header">
- <div class="flex_c_c kb_header_text">
- <div id="topBarLeft" style="width:600px;height:100%" />
- 杞﹂棿缁煎悎鏁板瓧鍖栫湅鏉�
- <div id="topBarRight" style="width:600px;height:100%;transform:rotate(180deg);" />
+ <div class="kb_headTime" style="top: 35px;left: 20px">
+ <span>姘稿悍甯傚法绔嬮槻鎶ょ敤鍝佹湁闄愬叕鍙�</span>
</div>
- <div class="kb_headTime" style="left: 85px">
- <span>娴欐睙鏂板嚡杩暟瀛楃鎶�鑲′唤鏈夐檺鍏徃</span>
+ <div class="kb_headTime kb_header_text" style="top: 35px;left: 800px">
+ <span>杞﹂棿缁煎悎鏁板瓧鍖栫湅鏉�</span>
</div>
- <div class="kb_headTime">
+ <div class="kb_headTime" style="top: 35px;right: 25px">
<span>{{ headTime }}</span>
</div>
</div>
- <div style="display: flex;justify-content: space-between;padding:0 20px 20px 20px">
- <!-- 宸﹁竟-->
- <div style="width: 1400px ;height: 969px;" class="flex_c_b">
- <div>
+ <div
+ style=" padding:5px 20px 20px 20px;z-index:2;height: 940px;flex-direction: column;justify-content: space-between;"
+ >
+ <!-- 涓婅竟-->
+ <div style="display: flex;justify-content: space-between">
+ <div style="width: 1000px;">
<div class="smallTitle">
<svg-icon icon-class="cxjg" class="svg_class" />
- 浜х嚎鍔犲伐涓换鍔�
+ 鐢熶骇璁㈠崟(褰撴湀)
</div>
- <div class="lineContent horn">
- <div v-for="item in lineContent3" :key="item.workcode" class="kb_left_top_block">
- <div class="kb_block02 kb_pd10">
- <div>
- <div>閿�鍞鍗�:{{ item.saleordercode }}</div>
- <div class="kb_mt10">
- 鍔犲伐鍗曞彿:{{ item.workcode }}
+ <div
+ class="lineContent horn"
+ style="height: 450px;display: flex;flex-direction: column;justify-content: space-between"
+ >
+ <div style="height: 180px;padding: 10px;display: flex;justify-content: space-around">
+ <div v-for="i in LeftTopData01" :key="i.wkshp_code" class="flex_c_s">
+ <div class="all_block01 flex_c_s">
+ <div class="flex_c_c all_block02">{{ i.wkshp_name }}</div>
+ <div class="" style="display: flex;justify-content:space-between">
+ <div class="all_block02 flex_c_c" style="width: 49% ">浠诲姟鏁�</div>
+ <div class="all_block02 flex_c_c" style="width: 49% ">{{ i.plan_qty }}</div>
</div>
- <div class="kb_mt10">
- 浜у搧鍚嶇О:{{ item.partname }}
- </div>
- <div class="kb_mt10">
- 浠诲姟鏁伴噺:{{ parseFloat(item.qty) }}
+ <div class="" style="display: flex;justify-content:space-between">
+ <div class="all_block02 flex_c_c" style="width: 49% ">瀹屽伐鏁�</div>
+ <div class="all_block02 flex_c_c" style="width: 49% ">{{ i.good_qty }}</div>
</div>
</div>
</div>
- <div class="kb_block03 kb_pd10 ">
- <div v-if="item.children&&item.children.length>0" class="flex_s_c">
- <div
- v-for="(it,ind) in item.children"
- :key="ind"
- class="kb_block03_content flex_c_c"
- >
- <div>
- <div class="content01">{{ it.stepname }}</div>
- </div>
- <div class="content02Parent">
- <div class="content02">
- <div class="content02_1 ">浠诲姟</div>
- <div class="content02_2 borderTop ">{{ parseFloat(it.planqty) }}</div>
- </div>
- <div class="content02">
- <div class="content02_1 ">鍚堟牸</div>
- <div class="content02_2 borderTop ">{{ parseFloat(it.goodqty) }}</div>
- </div>
- <div class="content02" style="border-right: 0">
- <div class="content02_1 ">涓嶈壇</div>
- <div class="content02_2 borderTop ">{{ parseFloat(it.ngqty) }}</div>
- </div>
- </div>
- </div>
- </div>
- <div v-if="item.children&&item.children.length>0" class="kb_block03_02 flex_s_c">
- <div
- v-for="(it,ind) in item.children"
- :key="ind"
- class="kb_block03_02_content flex_c_c"
- >
- <div class="flex_c_c content01">
- <div
- v-if="it.status==='START'&&(parseFloat(it.ngqty)===0||it.ngqty==='')&&(parseFloat(it.goodqty)===0||it.goodqty==='')"
- class="circle"
- style="background-color: blue;"
- />
- <div
- v-else-if="it.status==='ALLO'&&(parseFloat(it.ngqty)===0||it.ngqty==='')&&(parseFloat(it.goodqty)===0||it.goodqty==='')"
- class="circle"
- style="background-color: rgb(255 255 255)"
- />
- <div
- v-else-if="parseFloat(it.ngqty)+parseFloat(it.goodqty)>=parseFloat(it.planqty)"
- class="circle"
- />
- <div v-else class="circleYellow" />
- </div>
- </div>
- </div>
- </div>
+ </div>
+ <div style="height: 280px;">
+ <div id="all01" class="flex_c_c" style="width: 100%;height:100%;" />
</div>
</div>
-
</div>
- <div>
+ <div style="width: 850px;">
<div class="smallTitle">
- <svg-icon icon-class="cxmc" class="svg_class" />
- 浜х嚎鍔犲伐浠诲姟
+ <svg-icon icon-class="cggz" class="svg_class" />
+ 閿�鍞鍗�(鏈�/瀛�)
</div>
- <div class="lineContent horn">
- <el-table
- ref="tableDataLeftBottomRef"
- :data="tableDataLeftBottom"
- class="tableData"
- style="width: 100%;"
- :header-cell-style="headerCellStyle"
- :cell-style="cellStyle"
- height="428"
- >
- <el-table-column
- prop="RowNum"
- label="搴忓彿"
- width="60"
- />
+ <div
+ class="lineContent horn"
+ style="height: 450px;display: flex;flex-direction: column;justify-content: space-between"
+ >
+ <div style="height: 180px;padding: 10px;display: flex;justify-content: space-between">
- <el-table-column
- prop="status"
- width="80"
- label="鐘舵��"
- >
- <template slot-scope="{row}">
- <div v-if="row.status==='ALLO'">宸叉淳鍙�</div>
- <div v-if="row.status==='START'">寮�宸�</div>
- <div v-if="row.status==='NEW'">鏂板伐鍗�</div>
- </template>
- </el-table-column>
- <el-table-column
- prop="lm_date"
- label="娲惧彂鏃堕棿"
- width="120"
- >
- <template slot-scope="{row}">
- <div>{{ row.lm_date.substring(0, 10) }}</div>
- </template>
- </el-table-column>
- <el-table-column
- prop="saleOrderCode"
- label="閿�鍞鍗曞彿"
- width="170"
- >
- <template slot-scope="{row}">
- <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div>
- <div v-else>/</div>
- </template>
- </el-table-column>
- <el-table-column
- prop="wo_code"
- label="鍔犲伐鍗曞彿"
- width="190"
- />
- <el-table-column
- prop="partname"
- label="浜у搧鍚嶇О"
- width="350"
- >
- <template slot-scope="{row}">
- <div v-if="row.partname" class="ellipsis">{{ row.partname }}</div>
- <div v-else>/</div>
- </template>
- </el-table-column>
- <el-table-column
- prop="plan_qty"
- label="浠诲姟鏁伴噺"
- width="105"
- />
- <el-table-column
- prop="good_qty"
- label="瀹屽伐鏁伴噺"
- width="105"
- />
- <el-table-column
- prop="ng_qty"
- label="涓嶈壇鏁伴噺"
- width="105"
- />
- <el-table-column
- label="瀹屾垚鐜�"
- width="105"
- >
- <template slot-scope="{row}">
- <div>{{ parseFloat((row.good_qty * 100 / row.plan_qty).toFixed(2)) }}%</div>
- </template>
- </el-table-column>
- <!-- <el-table-column-->
+ <div v-for="i in RightTopData01" :key="i.Quarter" class="flex_c_s">
+ <div class="all_block03 flex_c_s">
+ <div class="flex_c_c all_block04">{{ i.Quarter }}</div>
+ <div class="" style="display: flex;justify-content:space-between">
+ <div class="all_block04 flex_c_c" style="width: 49% ">浠诲姟鏁�</div>
+ <div class="all_block04 flex_c_c" style="width: 49% ">{{ i.quantity }}</div>
+ </div>
+ <div class="" style="display: flex;justify-content:space-between">
+ <div class="all_block04 flex_c_c" style="width: 49% ">鍑哄簱鏁�</div>
+ <div class="all_block04 flex_c_c" style="width: 49% ">{{ i.ouquantity }}</div>
+ </div>
+ </div>
+ </div>
- <!-- label="棰勮寮�濮�"-->
- <!-- width="140"-->
- <!-- >-->
- <!-- <template slot-scope="{row}">-->
- <!-- <div>{{ row.planstartdate.substring(0, 10) }}</div>-->
- <!-- </template>-->
- <!-- </el-table-column>-->
- <!-- <el-table-column-->
- <!-- prop=""-->
- <!-- label="棰勮缁撴潫"-->
- <!-- width="140"-->
- <!-- >-->
- <!-- <template slot-scope="{row}">-->
- <!-- <div>{{ row.planenddate.substring(0, 10) }}</div>-->
- <!-- </template>-->
- <!-- </el-table-column>-->
- </el-table>
+ </div>
+ <div style="height: 260px;">
+ <div id="all02" class="flex_c_c" style="width: 100%;height:100%;" />
+ </div>
</div>
-
</div>
</div>
- <!-- 鍙宠竟-->
- <div style="width: 450px;height: 969px;" class="flex_c_b">
- <div>
+ <!-- 涓嬭竟-->
+ <div style="display: flex;justify-content: space-between;margin-top: 15px;">
+ <div style="width: 1000px;">
<div class="smallTitle">
- <svg-icon icon-class="drwg" class="svg_class" />
- 褰撴棩瀹屽伐浜у搧鏁伴噺鎺掕
+ <svg-icon icon-class="blcs" class="svg_class" />
+ 璐ㄩ噺涓嶈壇(杩戜竴鍛�)
</div>
- <div class="lineContent horn">
- <el-table
- ref="tableDataRightTopRef"
- :data="tableDataRightTop"
- class="tableData"
- style="width: 100%;"
- :header-cell-style="headerCellStyle"
- :cell-style="cellStyle"
- height="428"
- >
- <el-table-column
- type="index"
- label="搴忓彿"
- width="60"
- />
- <el-table-column
- prop="linename"
- width="125"
- label="浜х嚎"
- />
- <el-table-column
- prop="partname"
- width="160"
- label="浜у搧"
- >
- <template slot-scope="{row}">
- <div v-if="row.partname" class="ellipsis">{{ row.partname }}</div>
- <div v-else>/</div>
- </template>
- </el-table-column>
- <el-table-column
- prop="good_qty"
- label="鏁伴噺"
- width="90"
- >
- <template slot-scope="{row}">
- <div>{{ parseFloat(row.good_qty) }}</div>
- </template>
- </el-table-column>
- </el-table>
- </div>
+ <div class="lineContent horn" style="height: 380px;display: flex;justify-content: space-between">
+ <div id="cjzl03" class="flex_c_c" style="width: 100%;height:100%" />
+ </div>
</div>
- <div>
+ <div style="width: 850px;">
<div class="smallTitle">
- <svg-icon icon-class="top5" class="svg_class" />
- 涓�鍛ㄤ笉鑹疶op5
+ <svg-icon icon-class="ckkc" class="svg_class" />
+ 浠撳簱搴撳瓨
</div>
- <div class="lineContent horn">
- <div id="bar01" class="flex_c_c" style="width: 100%;height:100%" />
- </div>
+ <div class="lineContent horn" style="height: 380px;display: flex;justify-content: space-between">
+ <div style="display: flex;justify-content: center;position: relative">
+ <div class="kb_center_block_children all_block05">
+ <div style="font-size: 24px;">{{ parseFloat(RightBottom.Y) }}</div>
+ <div class="box02" />
+ <div>鍘熸潗鏂�</div>
+ </div>
+ <div class="kb_center_block_children all_block06">
+ <div style="font-size: 24px;">{{ parseFloat(RightBottom.B) }}</div>
+ <div class="box02" />
+ <div>鍗婃垚鍝�</div>
+ </div>
+ <div class="kb_center_block_children all_block07">
+ <div style="font-size: 24px;">{{ parseFloat(RightBottom.C) }}</div>
+ <div class="box02" />
+ <div>浜ф垚鍝�</div>
+ </div>
+ </div>
+ </div>
</div>
</div>
</div>
@@ -282,228 +130,213 @@
<script>
import './kbCommon.css'
-import { bar02, kbTop, loadEcharts } from '@/utils/myEcharts'
+import { loadEcharts, all01, all02, cjzl03 } from '@/utils/myEcharts'
import {
- LineSearchBottomLeftData,
- LineSearchBottomRightData,
- LineSearchTopLeftData,
- LineSearchTopRightData,
- ShopSearch
+ WorkShopCompreLeftTop,
+ WorkShopCompreRightBottom,
+ WorkShopCompreRightTop,
+ WorkShopProduceBottomLeftData
} from '@/api/kanbanManager'
-import { parseTime } from '@/utils'
+import { PrentOrganizationNoCompany } from '@/api/GeneralBasicData'
export default {
name: 'Cjsc',
data() {
return {
- onLine: navigator.onLine, // 鐩戝惉缃戠粶鏄惁鍦ㄧ嚎
-
headTime: '',
tableDataRightTop: [],
- tableDataRightTopTemp: [],
- tableDataLeftBottom: [],
- tableDataLeftBottomTemp: [],
- lineContent3: [],
- ShopArr: [], // 杞﹂棿缂栫爜鏁扮粍
+ wkshopArr: [],
+ legendData: [],
- starsCount: 800, // 鏄熸槦鏁伴噺
- distance: 900 // 闂磋窛
+ LeftTopData01: [],
+ LeftTopData02: [],
+
+ RightTopData01: [],
+ RightTopData02: [],
+ cjzl03_xData: [],
+ cjzl03_yData: [],
+ RightBottom: {}
}
},
created() {
setInterval(this.getNowTime, 1000)
- // 涓ゅ皬鏃剁湅鏉垮埛鏂颁竴娆�
+ // // 涓ゅ皬鏃剁湅鏉垮埛鏂颁竴娆�
setInterval(() => {
window.location.reload()
- }, 1000 * 60 * 60 * 10)
+ }, 1000 * 60 * 120)
},
mounted() {
- // 鐩戝惉缃戠粶鏄惁鍦ㄧ嚎
- window.addEventListener('online', this.updateOnlineStatus)
- window.addEventListener('offline', this.updateOnlineStatus)
- this.updateOnlineStatus({ type: this.onLine ? 'online' : 'offline', isFirst: true })
-
- this.getTopBar()
-
- this.getShopSearch()
- this.setStarsRef()
- },
- beforeDestroy() {
- window.removeEventListener('online', this.updateOnlineStatus)
- window.removeEventListener('offline', this.updateOnlineStatus)
+ this.getAllApi()
},
methods: {
- // 鏇存柊缃戠粶鐘舵��
- updateOnlineStatus(e) {
- if (e.isFirst) {
- // console.log('x')
- } else {
- const loading = this.$loading({
- lock: true,
- text: '鏂綉浜嗭紝姝e湪鎷煎懡鑱旂綉涓紝璇锋鏌ョ綉缁滄槸鍚︽甯�...',
- spinner: 'el-icon-loading',
- customClass: 'osloading',
- background: 'rgba(0, 0, 0, 0.7)'
- })
- const { type } = e
- this.onLine = type === 'online'
- if (this.onLine) {
- loading.close()
- this.$message.success('缃戠粶杩炴帴鎴愬姛锛�')
- } else {
- this.$message.error('缃戠粶鎺夌嚎锛岃鍏虫敞缃戠粶鐘舵�侊紒')
+ async getAllApi() {
+ const res = await PrentOrganizationNoCompany()
+ this.wkshopArr = res.data
+
+ const temp = ['00401', '00402', '00501']
+
+ temp.forEach(i => {
+ const aa = this.wkshopArr.find(j => j.torg_code === i).torg_name
+ this.legendData.push(aa)
+ })
+
+ const res2 = await WorkShopCompreLeftTop({ wkshopcode: temp.join(',') })
+ for (const res2Key in res2.data.LeftTop) {
+ const data = {
+ good_qty: 0,
+ plan_qty: 0,
+ wkshp_code: '',
+ wkshp_name: ''
+ }
+ if (temp.includes(res2Key)) {
+ data.good_qty = res2.data.LeftTop[res2Key][0].good_qty
+ data.plan_qty = res2.data.LeftTop[res2Key][0].plan_qty
+ data.wkshp_code = res2.data.LeftTop[res2Key][0].wkshp_code
+ data.wkshp_name = this.wkshopArr.find(i => i.torg_code === data.wkshp_code).torg_name
+ this.LeftTopData01.push(data)
}
}
- },
- setStarsRef() {
- const starNodes = Array.from(this.$refs.starsRef.children)
- starNodes.forEach(item => {
- const speed = 0.2 + Math.random() * 1
- const thisDistance = this.distance + Math.random() * 300
- item.style.transformOrigin = `0 0 ${thisDistance}px`
- item.style.transform = `
- translate3d(0,0,-${thisDistance}px)
- rotateY(${Math.random() * 360}deg)
- rotateX(${Math.random() * -50}deg)
- scale(${speed},${speed})`
- })
- },
- // 鑾峰彇杞﹂棿缂栫爜
- async getShopSearch() {
- const res1 = await ShopSearch()
- if (res1.code === '200') {
- this.ShopArr = []
- res1.data.forEach(item => {
- this.ShopArr.push(item.org_code)
- })
-
- if (this.ShopArr.length > 0) {
- this.getShopSearchLine()
- this.getRightRightData()
- this.getLeftBottomData()
- this.getEcharts()
+ for (const res2Key in res2.data.LeftBottom) {
+ const data = {
+ quantity: 0,
+ wkshp_code: '',
+ wkshp_name: ''
+ }
+ if (temp.includes(res2Key)) {
+ data.quantity = res2.data.LeftBottom[res2Key][0].quantity
+ data.plan_qty = res2.data.LeftBottom[res2Key][0].plan_qty
+ data.wkshp_code = res2.data.LeftBottom[res2Key][0].wkshp_code
+ data.wkshp_name = this.wkshopArr.find(i => i.torg_code === data.wkshp_code).torg_name
+ this.LeftTopData02.push(data)
}
}
- if (this.ShopArr.length > 0) {
- setInterval(() => {
- this.ShopSearchTask = ShopSearch().then(res1 => {
- if (res1.code === '200') {
- this.ShopArr = []
- res1.data.forEach(item => {
- this.ShopArr.push(item.org_code)
- })
- }
- })
- }, 1000 * 60)
- }
- },
- // 浜х嚎鍔犲伐涓换鍔�
- getShopSearchLine() {
- let length, count
- LineSearchTopLeftData({ shopcode: this.ShopArr.join(',') }).then(res => {
- this.lineContent = res.data
- length = this.lineContent.length
- count = Math.ceil(length / 3) // 闇�瑕佽疆鎾殑缁勬暟 3涓负涓�缁�
- this.lineContent3 = this.lineContent.slice(0, 3)
- this.number1 = this.lineContent.length
- })
-
- let start = 0
- const timer = setInterval(() => {
- if (Math.floor(start / 3) === count && count !== 0) {
- start = 0
- LineSearchTopLeftData({ shopcode: this.ShopArr.join(',') }).then(res => {
- this.lineContent = res.data
- length = this.lineContent.length
- count = Math.ceil(length / 3) // 闇�瑕佽疆鎾殑缁勬暟 3涓负涓�缁�
- this.lineContent3 = this.lineContent.slice(0, 3)
-
- this.number1 = this.lineContent.length
- })
- } else if (count === 0) {
- clearInterval(timer)
- this.getShopSearchLine()
- }
- this.lineContent3 = this.lineContent.slice(start, start + 3)
- start = start + 3
- }, 1000 * 10)
- },
-
- // 鑾峰彇鍙充笂鏁版嵁 褰撴棩瀹屽伐浜у搧鏁伴噺鎺掕
- getRightRightData() {
- let startValue = 0 // 鍒濆鍊�
- const scale = 10// 鍒诲害
-
- LineSearchTopRightData({ shopcode: this.ShopArr.join(',') }).then(res => {
- this.tableDataRightTopTemp = res.data
-
- this.tableDataRightTop = this.tableDataRightTopTemp.slice(startValue, startValue + scale)
-
- const loop = Math.floor(this.tableDataRightTopTemp.length / scale)// 闇�瑕佸惊鐜殑娆℃暟
- let nowLoop = 0// 褰撳墠寰幆鐨勬鏁�
-
- const timer = setInterval(() => {
- startValue = startValue + scale
- this.tableDataRightTop = this.tableDataRightTopTemp.slice(startValue, startValue + scale)
- if (nowLoop === loop) {
- clearInterval(timer)
- this.getRightRightData()
- }
-
- nowLoop++
- }, 1000 * 10)
- })
- },
- // 浜х嚎鍔犲伐浠诲姟 宸︿笅鏁版嵁
- getLeftBottomData() {
- let startValue = 0 // 鍒濆鍊�
- const scale = 10// 鍒诲害
-
- LineSearchBottomLeftData({ shopcode: this.ShopArr.join(',') }).then(res => {
- this.tableDataLeftBottomTemp = res.data
- this.tableDataLeftBottom = this.tableDataLeftBottomTemp.slice(startValue, startValue + scale)
-
- const loop = Math.floor(this.tableDataLeftBottomTemp.length / scale)// 闇�瑕佸惊鐜殑娆℃暟
- let nowLoop = 0// 褰撳墠寰幆鐨勬鏁�
-
- const timer = setInterval(() => {
- startValue = startValue + scale
- this.tableDataLeftBottom = this.tableDataLeftBottomTemp.slice(startValue, startValue + scale)
- nowLoop++ // 鏀惧湪杩欓噷鍙互浜嗭紝灏辩瓑寰呴浂鐐瑰嚑绉�
- if (nowLoop === loop) {
- clearInterval(timer)
- this.getLeftBottomData()
- }
-
- // nowLoop++ //涔嬪墠鏀惧湪杩欓噷閫昏緫涓嶅锛岀浉宸簡涓�娆$殑寰幆锛岀浉褰撲簬澶氱瓑寰呬簡10绉�
- }, 1000 * 10)
- })
- },
-
- getEcharts() {
- let dataArr = [30, 20, 20, 18, 10]
- let titlenameArr = ['棰滆壊', '灏哄', '姘斿懗', '姣涘埡', '瑁傜棔']
- LineSearchBottomRightData({ shopcode: this.ShopArr.join(',') }).then(res => {
- dataArr = res.data.map(i => i.cont)
- titlenameArr = res.data.map(i => i.name)
- loadEcharts('bar01', bar02(dataArr, titlenameArr))
- })
+ loadEcharts('all01', all01(this.legendData, this.LeftTopData02))
setInterval(() => {
- LineSearchBottomRightData({ shopcode: this.ShopArr.join(',') }).then(res => {
- dataArr = res.data.map(i => i.cont)
- titlenameArr = res.data.map(i => i.name)
- loadEcharts('bar01', bar02(dataArr, titlenameArr))
+ WorkShopCompreLeftTop({ wkshopcode: temp.join(',') }).then(res2 => {
+ this.LeftTopData01 = []
+ this.LeftTopData02 = []
+ for (const res2Key in res2.data.LeftTop) {
+ const data = {
+ good_qty: 0,
+ plan_qty: 0,
+ wkshp_code: '',
+ wkshp_name: ''
+ }
+ if (temp.includes(res2Key)) {
+ data.good_qty = res2.data.LeftTop[res2Key][0].good_qty
+ data.plan_qty = res2.data.LeftTop[res2Key][0].plan_qty
+ data.wkshp_code = res2.data.LeftTop[res2Key][0].wkshp_code
+ data.wkshp_name = this.wkshopArr.find(i => i.torg_code === data.wkshp_code).torg_name
+ this.LeftTopData01.push(data)
+ }
+ }
+ for (const res2Key in res2.data.LeftBottom) {
+ const data = {
+ quantity: 0,
+ wkshp_code: '',
+ wkshp_name: ''
+ }
+ if (temp.includes(res2Key)) {
+ data.quantity = res2.data.LeftBottom[res2Key][0].quantity
+ data.plan_qty = res2.data.LeftBottom[res2Key][0].plan_qty
+ data.wkshp_code = res2.data.LeftBottom[res2Key][0].wkshp_code
+ data.wkshp_name = this.wkshopArr.find(i => i.torg_code === data.wkshp_code).torg_name
+ this.LeftTopData02.push(data)
+ }
+ }
+ loadEcharts('all01', all01(this.legendData, this.LeftTopData02))
})
- }, 1000 * 10)
+ }, 1000 * 30)
+
+ const res3 = await WorkShopCompreRightTop()
+ res3.data.RightTop.forEach(i => {
+ this.RightTopData01.push({
+ Quarter: i.Quarter,
+ quantity: i.quantity,
+ ouquantity: i.ouquantity
+ })
+ })
+ res3.data.RightBottom.forEach(i => {
+ this.RightTopData02.push({
+ Month: i.Month + '鏈�',
+ quantity: i.quantity,
+ ouquantity: i.ouquantity
+ })
+ })
+ loadEcharts('all02', all02(this.RightTopData02))
+ setInterval(() => {
+ WorkShopCompreRightTop().then(res3 => {
+ this.RightTopData01 = []
+ this.RightTopData02 = []
+ res3.data.RightTop.forEach(i => {
+ this.RightTopData01.push({
+ Quarter: i.Quarter,
+ quantity: i.quantity,
+ ouquantity: i.ouquantity
+ })
+ })
+ res3.data.RightBottom.forEach(i => {
+ this.RightTopData02.push({
+ Month: i.Month + '鏈�',
+ quantity: i.quantity,
+ ouquantity: i.ouquantity
+ })
+ })
+ loadEcharts('all02', all02(this.RightTopData02))
+ })
+ }, 1000 * 40)
+
+ const res4 = await WorkShopProduceBottomLeftData({ wkshopcode: temp.join(',') })
+ this.cjzl03_xData = res4.data[temp[0]].map(i => i.click_date)
+ for (const res4Key in res4.data) {
+ if (temp.includes(res4Key)) {
+ const bb = res4.data[res4Key].map(i => i.count)
+ this.cjzl03_yData.push(bb)
+ }
+ }
+ loadEcharts('cjzl03', cjzl03(this.cjzl03_xData, this.legendData, this.cjzl03_yData, true))
+ setInterval(() => {
+ WorkShopProduceBottomLeftData({ wkshopcode: temp.join(',') }).then(res4 => {
+ this.cjzl03_yData = []
+
+ this.cjzl03_xData = res4.data[temp[0]].map(i => i.click_date)
+ for (const res4Key in res4.data) {
+ if (temp.includes(res4Key)) {
+ const bb = res4.data[res4Key].map(i => i.count)
+ this.cjzl03_yData.push(bb)
+ }
+ }
+ loadEcharts('cjzl03', cjzl03(this.cjzl03_xData, this.legendData, this.cjzl03_yData, true))
+ })
+ }, 1000 * 50)
+
+ const res5 = await WorkShopCompreRightBottom()
+ this.RightBottom = res5.data
+
+ setInterval(() => {
+ WorkShopCompreRightBottom().then(res5 => {
+ this.RightBottom = res5.data
+ })
+ }, 1000 * 60)
},
- // 鑾峰彇topEcharts
- getTopBar() {
- loadEcharts('topBarLeft', kbTop())
- loadEcharts('topBarRight', kbTop())
+
+ // 鑾峰彇Echarts
+ getEcharts() {
+ // loadEcharts('cjzl01', cjzl01(this.cjzl01Data))
+
+ // loadEcharts('cjzl02_1', cjzl02(this.cjzl02_1Title, this.cjzl02_1Data))
+ // loadEcharts('cjzl02_2', cjzl02(this.cjzl02_2Title, this.cjzl02_2Data))
+ // loadEcharts('cjzl02_3', cjzl02(this.cjzl02_3Title, this.cjzl02_3Data))
+ // loadEcharts('cjzl02_4', cjzl02(this.cjzl02_4Title, this.cjzl02_4Data))
+ // loadEcharts('cjzl02_5', cjzl02(this.cjzl02_5Title, this.cjzl02_5Data))
+
+ // loadEcharts('cjzl04', cjzl04(this.legendData, this.cjzl04Data[0], this.cjzl04Data[1], this.cjzl04Data[2]))// 鍙充晶
+ // loadEcharts('cjzl03', cjzl03(this.cjzl03_xData, this.legendData, this.cjzl03_yData))// 宸︿晶
},
+
// 鑾峰彇褰撳墠鏃堕棿
getNowTime() {
const dt = new Date()
@@ -522,24 +355,25 @@
},
headerCellStyle() {
return {
- backgroundColor: '#000',
+ backgroundColor: 'transparent ',
padding: '10px 0',
textAlign: 'center',
color: '#07acc2',
border: 'none',
- fontSize: '18px'
+ fontSize: '20px'
}
},
cellStyle() {
return {
padding: '7px 0',
textAlign: 'center',
- backgroundColor: '#000',
- color: '#fff',
+ backgroundColor: 'transparent ',
+ color: '#c7e7ff',
border: 'none',
- fontSize: '18px'
+ fontSize: '20px'
}
}
+
}
}
@@ -548,9 +382,8 @@
<style lang="scss" scoped>
$main_color: #09d8f2;
$color01: #00FFFF;
-
.tableData {
- background: #000;
+ background: transparent;
}
.el-table::before {
@@ -561,139 +394,106 @@
color: $main_color;
}
-.kb_left_top_block {
+.tableDataCell {
+ ::v-deep .cell {
+ padding: 0 2px;
+ }
+}
+
+::v-deep .el-table__body-wrapper::-webkit-scrollbar {
+ /* width: 0;瀹藉害涓�0鏆楄棌 */
+ width: 0;
+ background: transparent;
+}
+
+::v-deep .el-table th,
+::v-deep .el-table tr,
+::v-deep .el-table td {
+ background-color: transparent;
+}
+
+.all_block01 {
+ width: 237px;
+ height: 180px;
+}
+
+.all_block02 {
width: 100%;
- height: 143px;
+ height: 49px;
+ background: rgba(9, 216, 242, 0.1);
+}
+
+.all_block03 {
+ width: 199px;
+ height: 180px;
+}
+
+.all_block04 {
+ width: 100%;
+ height: 49px;
+ background: rgba(9, 216, 242, 0.1);
+}
+
+.kb_center_block_children {
+ height: 180px;
+ //border: 1px solid $kbBorderColor;
+ width: 240px;
display: flex;
- font-size: 16px;
- border-bottom: 1px solid $main_color;
- justify-content: flex-start;
+ z-index: 2;
+ justify-content: space-around;
+ align-items: center;
+ flex-direction: column;
+ margin: 10px;
+ font-size: 22px;
- .kb_block02 {
- width: 304px;
- display: flex;
- align-items: center;
- border-right: 1px solid $main_color;
- }
+ .box02 {
+ background: url("../../assets/images/box02.png") no-repeat;
+ transform: scale(1.5);
+ width: 145px;
+ height: 84px;
- .kb_block03 {
- width: 1020px;
- font-size: 16px;
- display: flex;
- flex-direction: column;
- border-radius: 5px;
-
- .kb_block03_content {
- border: 1px solid $main_color;
- width: 180px;
- height: 80px;
- margin-right: 15px;
- display: flex;
- flex-direction: column;
-
- .content01 {
- height: 30px;
- width: 100%;
- border-bottom: 1px solid $main_color;
- display: flex;
- align-items: center;
- justify-content: center;
- }
-
- .content02Parent {
- display: flex;
-
- .content02 {
- width: 60px;
- border-right: 1px solid $main_color;
-
- .content02_1 {
- display: flex;
- align-items: center;
- justify-content: center;
- height: 25px;
- }
-
- .content02_2 {
- height: 25px;
- display: flex;
- align-items: center;
- justify-content: center;
- }
-
- .borderTop {
- border-top: 1px solid $main_color;
- }
- }
- }
-
- }
- }
-
- .kb_block03_02 {
- margin-top: 15px;
- display: flex;
-
- .kb_block03_02_content {
- width: 180px;
- margin-right: 15px;
-
- .content01 {
- .circle {
- width: 26px;
- height: 26px;
- background-color: #00ff8b;
- border-radius: 50%;
- }
- }
- }
}
}
-.kb_left_top_block:nth-child(3n) {
- border-bottom: none !important;
+.all_block05 {
+ position: absolute;
+ animation: upDown 3s ease-in-out infinite;
+ left: 60px;
}
-.circleYellow {
- width: 26px;
- height: 26px;
- background-color: rgb(255 255 0);
- border-radius: 50%;
+.all_block06 {
+ position: absolute;
+ animation: upDown2 3s ease-in-out infinite;
+ left: 290px;
}
-</style>
+.all_block07 {
+ position: absolute;
+ animation: upDown 3s ease-in-out infinite;
+ left: 520px;
+}
-<!--鏄熺┖-->
-<style lang="css" scoped>
-@keyframes rotate {
+@keyframes upDown {
0% {
- transform: perspective(400px) rotateZ(20deg) rotateX(-40deg) rotateY(0);
+ top: 50px;
+ }
+ 50% {
+ top: 100px;
}
100% {
- transform: perspective(400px) rotateZ(20deg) rotateX(-40deg) rotateY(-360deg);
+ top: 50px;
}
}
-.stars {
- transform: perspective(500px);
- transform-style: preserve-3d;
- position: absolute;
- perspective-origin: 50% 100%;
- left: 45%;
- animation: rotate 90s infinite linear;
- bottom: 0;
- z-index: 102;
-}
-
-.star {
- width: 2px;
- height: 2px;
- /*background: #f7f7b6;*/
- background: #8edffc;
- position: absolute;
- left: 0;
- top: 0;
- backface-visibility: hidden;
- z-index: 102;
+@keyframes upDown2 {
+ 0% {
+ top: 100px;
+ }
+ 50% {
+ top: 50px;
+ }
+ 100% {
+ top: 100px;
+ }
}
</style>
diff --git a/src/views/materialManager/inventoryList.vue b/src/views/materialManager/inventoryList.vue
index 7d4a5d4..30808b4 100644
--- a/src/views/materialManager/inventoryList.vue
+++ b/src/views/materialManager/inventoryList.vue
@@ -61,8 +61,12 @@
<div
style=" width:calc(100% - 300px);"
>
- <div class="bodyTopButtonGroup">
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
<el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+ <div style="display: flex">
+ <el-button v-waves type="success" icon="el-icon-download" @click="$router.push('./../systemSetting/dataImport?fileCode=8')">瀵煎叆</el-button>
+ <el-button v-waves icon="el-icon-refresh-right" @click="syncERP">鍚屾瀛樿揣妗f</el-button>
+ </div>
</div>
<div class="bodyTopFormGroup">
@@ -160,8 +164,9 @@
<el-table-column
prop="partname"
label="瀛樿揣鍚嶇О"
- width="110"
sortable="custom"
+ show-tooltip-when-overflow
+ min-width="200"
/>
<el-table-column
prop="partspec"
@@ -199,7 +204,6 @@
<el-tag v-if="row.status==='1'" size="small" type="danger">鍋滅敤</el-tag>
</template>
</el-table-column>
-
<el-table-column
label="瀛樿揣灞炴��"
sortable="custom"
@@ -213,12 +217,12 @@
{{ row.isMadeRequest === '1' ? '濮斿' : '' }}
</template>
</el-table-column>
- <el-table-column
- label="鏁版嵁鏉ユ簮"
- prop="data_sources"
- sortable="custom"
- width="110"
- />
+ <!-- <el-table-column-->
+ <!-- label="鏁版嵁鏉ユ簮"-->
+ <!-- prop="data_sources"-->
+ <!-- sortable="custom"-->
+ <!-- width="110"-->
+ <!-- />-->
<el-table-column
label="鍒涘缓浜哄憳"
prop="lm_user"
@@ -571,7 +575,8 @@
TMaterielData, TMaterielDelete
} from '@/api/ProductModel'
import arrayToTree from 'array-to-tree'
-import { UnitSerch } from '@/api/GeneralBasicData'
+import { UnitSerch, WareHouse } from '@/api/GeneralBasicData'
+import { SaveSearchMateriel_Info } from '@/api/ErpSyncMes'
export default {
name: 'RoleList',
@@ -697,13 +702,20 @@
const { data: res2 } = await UnitSerch({ tunittype: 'S' })
this.unitcodeSingleArr = res2
+
+ const { data: res3 } = await WareHouse()
+ this.idwarehouseArr = res3
},
+
async getTMaterielClassTree() {
const res = await TMaterielClassTree()
res.data.forEach(i => {
i.idparent = i.idparent ? i.idparent : '-1'
})
this.treeLeftArr = res.data
+ this.treeLeftArr.forEach(e => {
+ e.name = e.code + ' ' + e.name
+ })
this.treeLeft = arrayToTree(this.treeLeft.concat(res.data), {
parentProperty: 'idparent',
customID: 'code',
@@ -863,6 +875,9 @@
dialogVisibleConfirm() {
this.$refs.dialogForm.validate(valid => {
if (valid) {
+ if (!(this.dialogForm.isPurchase || this.dialogForm.isSale || this.dialogForm.isMadeSelf || this.dialogForm.isMaterial || this.dialogForm.isMadeRequest)) {
+ return this.$message.info('瀛樿揣灞炴�т笉鑳戒负绌猴紒')
+ }
this.dialogForm.isPurchase = this.dialogForm.isPurchase ? '1' : '0'
this.dialogForm.isSale = this.dialogForm.isSale ? '1' : '0'
this.dialogForm.isMadeSelf = this.dialogForm.isMadeSelf ? '1' : '0'
@@ -906,7 +921,7 @@
treeEditClick(node, data, operation) {
this.dialogClassForm.data_sources = data.data_sources
this.dialogClassForm.inventoryclasscode = data.code
- this.dialogClassForm.inventoryclassname = data.name
+ this.dialogClassForm.inventoryclassname = data.name.split(' ')[1]
this.dialogClassForm.parentcode = data.idparent === '-1' ? '' : data.idparent
this.dialogClassForm.OperType = 'Update'
this.operation = operation
@@ -1008,6 +1023,35 @@
this.dialogForm.idUnitBySale = mainUnitCode
this.dialogForm.idunitbymanufacture = mainUnitCode
}
+ },
+ // 鍚屾ERP
+ syncERP() {
+ const loading = this.$loading({
+ lock: true,
+ text: '姝e湪鍚屾ERP锛岃绋嶇瓑...',
+ spinner: 'el-icon-loading',
+ customClass: 'osloading',
+ background: 'rgba(0, 0, 0, 0.7)'
+ })
+
+ SaveSearchMateriel_Info().then(res => {
+ if (res.code === '200') {
+ setTimeout(() => {
+ this.getTMaterielData(this.$refs.treeLeftRef.getCurrentNode())
+ this.getTMaterielClassTree()
+ loading.close()
+ this.$notify.success('鍚屾鎴愬姛锛�')
+ }, 2000)
+ }
+ // else if (res.code === '300') {
+ // setTimeout(() => {
+ // loading.close()
+ // this.$message.error('鍚屾澶辫触锛�')
+ // }, 10000)
+ // }
+ }).catch(e => {
+ loading.close()
+ })
}
}
}
diff --git a/src/views/materialManager/unitList.vue b/src/views/materialManager/unitList.vue
index 0f7fe94..4c0b0a7 100644
--- a/src/views/materialManager/unitList.vue
+++ b/src/views/materialManager/unitList.vue
@@ -93,11 +93,11 @@
sortable="custom"
/>
- <el-table-column
- prop="data_sources"
- label="鏁版嵁鏉ユ簮"
- sortable="custom"
- />
+ <!-- <el-table-column-->
+ <!-- prop="data_sources"-->
+ <!-- label="鏁版嵁鏉ユ簮"-->
+ <!-- sortable="custom"-->
+ <!-- />-->
<el-table-column
prop="lm_user"
label="鍒涘缓浜哄憳"
@@ -143,7 +143,7 @@
align="right"
layout="total,prev, pager, next,sizes,jumper"
popper-class="select_bottom"
- @pagination="getTUnitGroup"
+ @pagination="getTUnitData"
/>
</div>
diff --git a/src/views/mouldManager/mouldCheck.vue b/src/views/mouldManager/mouldCheck.vue
new file mode 100644
index 0000000..3a38454
--- /dev/null
+++ b/src/views/mouldManager/mouldCheck.vue
@@ -0,0 +1,450 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
+ <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+ <el-button v-waves type="success" icon="el-icon-download" @click="$router.push('./../systemSetting/dataImport?fileCode=13')">瀵煎叆</el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="閮ㄤ綅缂栫爜" style=" display: flex;">
+ <el-input v-model="form.checkitemcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="閮ㄤ綅鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.checkitemname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鐐规鎻忚堪" style=" display: flex;">
+ <el-input v-model="form.checkdescr" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ style="height:5px"
+ >
+ <!-- <svg-icon-->
+ <!-- v-show="mouseHoverType==='mouseout'"-->
+ <!-- style="cursor: pointer"-->
+ <!-- :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"-->
+ <!-- @mouseenter="mouseHoverType=$event.type"-->
+ <!-- />-->
+ <!-- <svg-icon-->
+ <!-- v-show="mouseHoverType==='mouseenter'"-->
+ <!-- style="cursor: pointer"-->
+ <!-- :icon-class="!isExpandForm?'doubleDown':'doubleUp'"-->
+ <!-- @click="isExpandForm=!isExpandForm"-->
+ <!-- @mouseout="mouseHoverType=$event.type"-->
+ <!-- />-->
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <!-- <TableColumnSettings-->
+ <!-- :list1="tableColumnSettingsArray"-->
+ <!-- @tableColumnUpdate="tableColumnUpdate"-->
+ <!-- />-->
+ <el-table
+ ref="tableDataRef"
+ :key="tableTimeStampKey"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
+ border
+ class="tableFixed"
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+
+ <el-table-column
+ v-for="item in tableColumnSettingsArray"
+ v-if="item.show"
+ :key="item.id"
+ :sortable="item.sortable"
+ :prop="item.prop"
+ :min-width="item.minWidth"
+ :label="item.label"
+ :width="item.width"
+ show-tooltip-when-overflow
+ :fixed="item.fixed?(item.fixed==='left'?'left':'right'):false"
+ >
+ <template slot-scope="{row}">
+ <div v-if="!row[item.prop]">/</div>
+ <div v-else>{{ row[item.prop] }}</div>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ label="鎿嶄綔"
+ fixed="right"
+ width="120"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-tooltip class="item" effect="dark" content="缂栬緫" placement="top">
+ <i :style="{color:$store.state.settings.theme}" class="el-icon-edit-outline" @click="edit('edit',row)" />
+ </el-tooltip>
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+ <i :style="{color:$store.state.settings.theme}" class="el-icon-delete" @click="del(row)" />
+ </el-tooltip>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getMouldCheckItemSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'缂栬緫'"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
+ <el-form-item label="閮ㄤ綅缂栫爜" prop="checkitemcode">
+ <el-input v-model="dialogForm.checkitemcode" :disabled="operation!=='add'" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="閮ㄤ綅鍚嶇О" prop="checkitemname">
+ <el-input v-model="dialogForm.checkitemname" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鐐规鎻忚堪" prop="checkitemdescr">
+ <el-input v-model="dialogForm.checkitemdescr" type="textarea" style="width: 200px" />
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="dialogVisibleConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ <!--瀵煎叆缁勪欢-->
+ <import-picker
+ ref="importPickerFunc"
+ class="importPickerClass"
+ :shows.sync="shows"
+ :title="title_value"
+ :colos="colos"
+ :code="code"
+ />
+
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import ImportPicker from '@/components/ImportPicker'
+import { validateCode } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import TableColumnSettings from '@/components/TableColumnSettings'
+import { AddUpdateMouldCheckItem, DeleteMouldCheckItem, MouldCheckItemSearch } from '@/api/MouldManager'
+
+export default {
+ name: 'Zzjg',
+ components: {
+ Pagination, ImportPicker, TableColumnSettings
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ checkitemcode: '', // 閮ㄤ綅缂栫爜
+ checkitemname: '', // 閮ㄤ綅鍚嶇О
+ checkdescr: '', // 鐐规鎻忚堪
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+
+ total: 10,
+ tableData: [],
+ tableColumnSettingsArray: [
+ { minWidth: false, width: 55, prop: 'id', label: 'id', id: 1, show: false, fixed: false, sortable: false }, // 闅愯棌鍒� show: false闅愯棌锛宼rue鏄剧ず
+ { minWidth: false, width: 55, prop: 'rowNum', label: '搴忓彿', id: 2, show: true, fixed: 'left', sortable: false }, // custom
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'code',
+ label: '閮ㄤ綅缂栫爜',
+ id: 3,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'name',
+ label: '閮ㄤ綅鍚嶇О',
+ id: 4,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 330,
+ width: false,
+ prop: 'description',
+ label: '鐐规鎻忚堪',
+ id: 5,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ // {
+ // minWidth: false,
+ // width: 110,
+ // prop: 'isscan',
+ // label: '閫夋嫨鎵爜',
+ // id: 6,
+ // show: true,
+ // fixed: false,
+ // sortable: true
+ // },
+ // {
+ // minWidth: false,
+ // width: 110,
+ // prop: 'cycle',
+ // label: '鐐规鍛ㄦ湡',
+ // id: 7,
+ // show: true,
+ // fixed: false,
+ // sortable: true
+ // },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'lm_user',
+ label: '鍒涘缓浜哄憳',
+ id: 8,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 160,
+ prop: 'lm_date',
+ label: '鍒涘缓鏃堕棿',
+ id: 9,
+ show: true,
+ fixed: false,
+ sortable: true
+ }
+ ],
+ tableTimeStampKey: new Date().getTime(), // 琛ㄦ牸key
+
+ dialogVisible: false,
+ dialogForm: {
+ id: '',
+ checkitemcode: '', // 璁惧鐐规閮ㄤ綅缂栫爜
+ checkitemname: '', // 璁惧鐐规閮ㄤ綅鍚嶇О
+ checkitemdescr: '', // 璁惧鐐规閮ㄤ綅瑕佹眰
+ operType: '' // 鎿嶄綔绫诲瀷
+ },
+ operation: '',
+ dialogFormRules: {
+ checkitemcode: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ checkitemname: [
+ { required: true, message: '璇疯緭鍏ラ儴浣嶅悕绉�', trigger: ['blur', 'change'] }
+ ]
+ },
+
+ title_value: '鏁版嵁瀵煎叆 / 鐐规閮ㄤ綅',
+ code: '10',
+ shows: false
+
+ }
+ },
+
+ created() {
+ this.getMouldCheckItemSearch()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ tableColumnUpdate(val, isCopyTrue) {
+ if (isCopyTrue) {
+ this.tableColumnSettingsArray = val
+ }
+ this.tableTimeStampKey = new Date().getTime()
+ this.$refs.tableDataRef.doLayout()
+ },
+ async getMouldCheckItemSearch() {
+ const res = await MouldCheckItemSearch(this.form)
+ this.tableData = res.data
+ this.total = res.count
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getMouldCheckItemSearch()
+ },
+ // 鏌ヨ
+ search() {
+ this.getMouldCheckItemSearch()
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.checkitemcode = ''
+ this.form.checkitemname = ''
+ this.form.checkdescr = ''
+ this.getMouldCheckItemSearch()
+ },
+
+ // 鏂板鎸夐挳
+ add(operation) {
+ this.operation = operation
+ this.dialogVisible = true
+ },
+ // 淇敼鎸夐挳
+ edit(operation, row) {
+ this.operation = operation
+ this.dialogVisible = true
+
+ this.$nextTick(() => {
+ this.dialogForm.id = row.id
+ this.dialogForm.checkitemcode = row.code
+ this.dialogForm.checkitemname = row.name
+ this.dialogForm.checkitemdescr = row.description
+ })
+ },
+ // 鍒犻櫎鎸夐挳
+ async del(row) {
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ DeleteMouldCheckItem({ checkitemcode: row.code }).then(res => {
+ if (res.code === '200') {
+ this.$message.success('鍒犻櫎鎴愬姛!')
+ if (this.form.page > 1 && this.tableData.length === 1) {
+ this.form.page--
+ }
+ this.getMouldCheckItemSearch()
+ }
+ })
+ }).catch(() => {
+ this.$message.info('宸插彇娑堝垹闄�')
+ })
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm.id = ''
+ this.dialogForm.checkitemcode = ''
+ this.dialogForm.checkitemname = ''
+ this.dialogForm.checkitemdescr = ''
+ this.dialogForm.cycle = 'D'
+ this.dialogForm.isqrcode = 'N'
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ this.$store.state.app.buttonIsDisabled = true
+ const data = {
+ id: this.dialogForm.id,
+ checkitemcode: this.dialogForm.checkitemcode,
+ checkitemname: this.dialogForm.checkitemname,
+ checkitemdescr: this.dialogForm.checkitemdescr,
+ opertype: this.operation === 'add' ? 'Add' : 'Update'
+ }
+ AddUpdateMouldCheckItem(data).then(res => {
+ if (res.code === '200') {
+ this.dialogVisible = false
+ this.$notify.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ this.getMouldCheckItemSearch()
+ this.$store.state.app.buttonIsDisabled = false
+ } else {
+ this.$notify.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ }
+ })
+ }
+ })
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 240
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ },
+ // 瀵煎叆鎸夐挳
+ upload() {
+ this.shows = true
+ this.$refs.importPickerFunc.newDataFunc()
+ },
+ colos() {
+ this.shows = false
+ }
+ }
+}
+</script>
+
diff --git a/src/views/mouldManager/mouldCheckRecord.vue b/src/views/mouldManager/mouldCheckRecord.vue
new file mode 100644
index 0000000..97d5e4e
--- /dev/null
+++ b/src/views/mouldManager/mouldCheckRecord.vue
@@ -0,0 +1,488 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup">
+ <el-button v-waves type="primary" icon="el-icon-download" @click="download">瀵煎嚭</el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="妯″叿缂栫爜" style=" display: flex;">
+ <el-input v-model="form.mouldcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="妯″叿鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.mouldname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="瑙勬牸鍨嬪彿" style=" display: flex;">
+ <el-input v-model="form.mouldspec" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item label="鐐规鏍囧噯缂栫爜" style=" display: flex;">
+ <el-input v-model="form.stanedcode" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鐐规鏍囧噯鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.stanedname" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鐐规浜哄憳" style=" display: flex;">
+ <el-input v-model="form.checkuser" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item
+ v-show="isExpandForm"
+ style="display: flex;align-items: center"
+ label="鐐规鏃堕棿"
+ >
+ <el-date-picker
+ v-model="form.checkdate"
+ type="daterange"
+ range-separator="~"
+ class="timeMini"
+ size="mini"
+ style="width: 200px;display: flex;line-height: 34px;height: 34px;"
+ :clearable="false"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ />
+ <!-- font-size: 14px!important;-->
+ <!-- :picker-options="expireTimeOption"-->
+
+ </el-form-item>
+
+ <el-form-item v-show="isExpandForm" label="鐐规缁撴灉" style=" display: flex;">
+ <el-select v-model="form.checkrequest" style="width: 200px" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in checkrequestArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="djwo"
+ label="鐐规鍗曞彿"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="mould_code"
+ label="妯″叿缂栫爜"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="mould_name"
+ label="妯″叿鍚嶇О"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="mould_spec"
+ label="浜у搧瑙勬牸"
+ show-tooltip-when-overflow
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.mould_spec">{{ row.mould_spec }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="stanedcode"
+ label="鐐规鏍囧噯缂栫爜"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="stanedname"
+ label="鐐规鏍囧噯鍚嶇О"
+ sortable="custom"
+ />
+
+ <el-table-column
+ prop="chk_user"
+ label="鐐规浜哄憳"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="chk_result"
+ label="鐐规缁撴灉"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <el-tag v-if="row.chk_result==='OK'" size="small" type="success">鍚堟牸</el-tag>
+ <el-tag v-if="row.chk_result==='NG'" size="small" type="danger">寮傚父</el-tag>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ prop="chk_date"
+ label="鐐规鏃堕棿"
+ sortable="custom"
+ />
+
+ <el-table-column
+ label="鎿嶄綔"
+ width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+
+ <el-tooltip class="item" effect="dark" content="鏄庣粏" placement="top">
+ <i
+ class="el-icon-tickets"
+ :style="{color:$store.state.settings.theme}"
+ style="cursor: pointer;margin-right: 15px"
+ @click="edit(row)"
+ />
+ </el-tooltip>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getMouldCheckTakeSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ title="鏄庣粏"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <div class="elTableDiv" style="margin-top: 0">
+ <el-table
+ :data="tableDataDialog"
+ :height="500+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:500+'px'}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="seq"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="itemcode"
+ label="閮ㄤ綅缂栫爜"
+ />
+ <el-table-column
+ prop="itemname"
+ label="閮ㄤ綅鍚嶇О"
+ />
+ <el-table-column
+ prop="result"
+ label="鐐规缁撴灉"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.result==='OK'" style="display: flex;align-items: center">
+ <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />
+ 姝e父
+ </div>
+ <div v-if="row.result==='NG'" style="display: flex;align-items: center">
+ <i class="el-icon-info" style="margin-right: 2px" />
+ 寮傚父
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="chk_value"
+ label="鏁板��"
+ >
+ <template slot-scope="{row}">
+ {{ row.chk_value ? row.chk_value : '/' }}
+ </template>
+ </el-table-column>
+ <!-- <el-table-column-->
+ <!-- prop="remark"-->
+ <!-- label="澶囨敞"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- />-->
+ </el-table>
+ </div>
+
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>-->
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import { handleDatetime } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import { MouldCheckSubTakeSearch, MouldCheckTakeOutExcel, MouldCheckTakeSearch } from '@/api/MouldManager'
+
+export default {
+ name: 'Zzjg',
+ components: {
+ Pagination
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ mouldcode: '',
+ mouldname: '',
+ mouldspec: '',
+ stanedcode: '',
+ stanedname: '',
+ checkuser: '',
+ checkrequest: '',
+ checkdate: '',
+ prop: 'chk_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ checkrequestArr: [
+ { code: 'OK', name: '鍚堟牸' },
+ { code: 'NG', name: '寮傚父' }
+ ],
+ total: 10,
+ tableData: [],
+ dialogVisible: false,
+ tableDataDialog: []
+
+ }
+ },
+
+ created() {
+ this.getMouldCheckTakeSearch()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ async getMouldCheckTakeSearch() {
+ let tempDate = this.form.checkdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+
+ const data = {
+ mouldcode: this.form.mouldcode,
+ mouldname: this.form.mouldname,
+ mouldspec: this.form.mouldspec,
+ stanedcode: this.form.stanedcode,
+ stanedname: this.form.stanedname,
+ checkuser: this.form.checkuser,
+ checkrequest: this.form.checkrequest,
+ checkdate: tempDate,
+ prop: this.form.prop,
+ order: this.form.order,
+ page: this.form.page,
+ rows: this.form.rows
+
+ }
+ console.log(data, 1)
+ const res = await MouldCheckTakeSearch(data)
+ this.tableData = res.data
+ this.total = res.count
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getMouldCheckTakeSearch()
+ },
+ async download() {
+ let tempDate = this.form.checkdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+
+ const data = {
+ mouldcode: this.form.mouldcode,
+ mouldname: this.form.mouldname,
+ mouldspec: this.form.mouldspec,
+ stanedcode: this.form.stanedcode,
+ stanedname: this.form.stanedname,
+ checkuser: this.form.checkuser,
+ checkrequest: this.form.checkrequest,
+ checkdate: tempDate
+ }
+
+ const { data: res } = await MouldCheckTakeOutExcel(data)
+ window.location.href = res
+ },
+ // 鏌ヨ
+ search() {
+ this.getMouldCheckTakeSearch()
+ },
+
+ // 閲嶇疆
+ reset() {
+ this.form.mouldcode = ''
+ this.form.mouldname = ''
+ this.form.mouldspec = ''
+ this.form.stanedcode = ''
+ this.form.stanedname = ''
+ this.form.checkuser = ''
+ this.form.checkrequest = ''
+ this.form.checkdate = ''
+ this.getMouldCheckTakeSearch()
+ },
+
+ // 淇敼鎸夐挳
+ async edit(row) {
+ this.dialogVisible = true
+
+ const { data: res } = await MouldCheckSubTakeSearch({ id: row.id })
+ this.tableDataDialog = res
+
+ // this.$nextTick(() => {
+ // this.dialogForm.OrgCode = row.org_code
+ // this.dialogForm.OrgName = row.org_name
+ // this.dialogForm.SupUnit = row.parent_id
+ // })
+ },
+
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.tableDataDialog = []
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 255
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ }
+ }
+}
+</script>
+
+<style scoped lang="scss">
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+::v-deep .el-range__icon {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-separator {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-input {
+ font-size: 14px;
+}
+
+::v-deep .el-range-separator {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+::v-deep .el-progress-bar__innerText {
+ display: none !important;
+}
+</style>
+<style>
+
+.el-table .custom-row {
+ background: #f8f8fa;
+}
+</style>
diff --git a/src/views/mouldManager/mouldCheckStand.vue b/src/views/mouldManager/mouldCheckStand.vue
new file mode 100644
index 0000000..a560f00
--- /dev/null
+++ b/src/views/mouldManager/mouldCheckStand.vue
@@ -0,0 +1,713 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
+ <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+ <el-button v-waves type="success" icon="el-icon-download" @click="$router.push('./../systemSetting/dataImport?fileCode=13_1')">瀵煎叆</el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="鏍囧噯缂栫爜" style=" display: flex;">
+ <el-input v-model="form.checkstandcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鏍囧噯鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.checkstandname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鏍囧噯鎻忚堪" style=" display: flex;">
+ <el-input v-model="form.checkstandescr" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+
+ <div
+ class="bodyTopFormExpand"
+ style="height:5px"
+ />
+ </div>
+
+ <div class="elTableDiv">
+ <!-- <TableColumnSettings-->
+ <!-- :list1="tableColumnSettingsArray"-->
+ <!-- @tableColumnUpdate="tableColumnUpdate"-->
+ <!-- />-->
+ <el-table
+ ref="tableDataRef"
+ :key="tableTimeStampKey"
+ :data="tableData"
+ :height="tableHeight+'px'"
+ border
+ class="tableFixed"
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:tableHeight+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+
+ <el-table-column
+ v-for="item in tableColumnSettingsArray"
+ v-if="item.show"
+ :key="item.id"
+ :sortable="item.sortable"
+ :prop="item.prop"
+ :min-width="item.minWidth"
+ :label="item.label"
+ :width="item.width"
+ show-tooltip-when-overflow
+ :fixed="item.fixed?(item.fixed==='left'?'left':'right'):false"
+ >
+ <template slot-scope="{row}">
+ <div v-if="!row[item.prop]">/</div>
+ <div v-else-if="item.prop==='is_checkmould'">
+ <i
+ v-if="row[item.prop]==='Y'"
+ :style="{color:$store.state.settings.theme}"
+ class="el-icon-share"
+ style="cursor: pointer"
+ @click="connectClick(row)"
+ />
+ <i
+ v-if="row[item.prop]==='N'"
+ class="el-icon-share"
+ style="color: rgb(180 ,181, 185);cursor:pointer;"
+ @click="connectClick(row)"
+ />
+ </div>
+ <div v-else>{{ row[item.prop] }}</div>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ label="鎿嶄綔"
+ fixed="right"
+ width="120"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-tooltip class="item" effect="dark" content="缂栬緫" placement="top">
+ <i
+ :style="{color:$store.state.settings.theme}"
+ class="el-icon-edit-outline"
+ @click="edit('edit',row)"
+ />
+ </el-tooltip>
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+ <i :style="{color:$store.state.settings.theme}" class="el-icon-delete" @click="del(row)" />
+ </el-tooltip>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getDeviceCheckStandArdSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'缂栬緫'"
+ :visible.sync="dialogVisible"
+ width="1100px"
+ :close-on-click-modal="false"
+ top="8vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <div style="margin: 0 30px;">
+ <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
+ <el-divider content-position="left">妯″叿鐐规鏍囧噯淇℃伅</el-divider>
+
+ <el-form-item label="鏍囧噯缂栫爜" prop="code">
+ <el-input v-model="dialogForm.code" :disabled="operation!=='add'" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鏍囧噯鍚嶇О" prop="name">
+ <el-input v-model="dialogForm.name" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鏍囧噯鎻忚堪" prop="description">
+ <el-input v-model="dialogForm.description" type="textarea" style="width: 200px" />
+ </el-form-item>
+ </el-form>
+ </div>
+ <el-divider content-position="left">鎸囧畾鐐规椤逛俊鎭�</el-divider>
+ <div style="display: flex;align-items: center">
+ <!-- <div style="font-weight: bolder">鐐规椤归�夋嫨锛�</div>-->
+ <el-drag-select
+ v-model="checkSelectedValue"
+ style="width:940px;"
+ multiple
+ placeholder="璇烽�夋嫨鐩稿搴旀寚瀹氶」"
+ >
+ <el-option
+ v-for="item in checkSelectArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-drag-select>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataDialogRef"
+ :data="tableDataDialog"
+ :height="(tableHeight-300)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:(tableHeight-300)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ >
+ <el-table-column
+ type="index"
+ width="50"
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="code"
+ width="150"
+ label="鐐规閮ㄤ綅缂栫爜"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="name"
+ label="鐐规閮ㄤ綅鍚嶇О"
+ width="150"
+ show-tooltip-when-overflow
+ />
+
+ <el-table-column
+ prop="description"
+ label="鐐规瑕佹眰"
+ show-tooltip-when-overflow
+ >
+ <template slot-scope="{row}">
+ <el-input v-model="row.description" />
+ </template>
+ </el-table-column>
+
+ </el-table>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="dialogVisibleConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ <el-dialog
+ v-el-drag-dialog
+ title="鍏宠仈妯″叿"
+ :visible.sync="mouldDialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="8vh"
+ @closed="handleMouldClose"
+ @close="handleMouldClose"
+ >
+ <div>
+ <el-input
+ v-model="filterText"
+ placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�"
+ />
+ <el-tree
+ ref="tree"
+ class="filter-tree"
+ :data="tree"
+ :props="defaultProps"
+ show-checkbox
+ node-key="code"
+ style="margin-top:15px;height: 550px;overflow: auto"
+ default-expand-all
+ :filter-node-method="filterNode"
+ />
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="mouldDialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="mouldDialogVisibleConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import { validateCode } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import TableColumnSettings from '@/components/TableColumnSettings'
+import {
+ AddUpdateMouldCheckStandArd, CheckStanedAssociationMould,
+ DeleteMouldCheckStaned,
+ DeviceCheckStandArdSearch, SaveCheckStanedAssociationMould,
+ ViewMouldCheckStanedSearch
+} from '@/api/MouldManager'
+import ElDragSelect from '@/components/DragSelect'
+import { MouldCheckItemSelect } from '@/api/GeneralBasicData'
+import arrayToTree from 'array-to-tree'
+
+export default {
+ name: 'Zzjg',
+ components: {
+ Pagination, TableColumnSettings, ElDragSelect
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ checkstandcode: '', // 鏍囧噯缂栫爜
+ checkstandname: '', // 鏍囧噯鍚嶇О
+ checkstandescr: '', // 鐐规绠℃帶
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ checkcontrArr: [
+ { code: 'Y', name: '鏄�' },
+ { code: 'N', name: '鍚�' }
+ ],
+ cycleArr: [
+ { code: 'D', name: '鏃�' }
+ ],
+ total: 10,
+ tableData: [],
+ tableColumnSettingsArray: [
+ { minWidth: false, width: 55, prop: 'id', label: 'id', id: 1, show: false, fixed: false, sortable: false }, // 闅愯棌鍒� show: false闅愯棌锛宼rue鏄剧ず
+ { minWidth: false, width: 55, prop: 'rowNum', label: '搴忓彿', id: 2, show: true, fixed: 'left', sortable: false }, // custom
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'code',
+ label: '鏍囧噯缂栫爜',
+ id: 3,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'name',
+ label: '鏍囧噯鍚嶇О',
+ id: 4,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 330,
+ width: false,
+ prop: 'description',
+ label: '鏍囧噯鎻忚堪',
+ id: 5,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'is_checkmould',
+ label: '鍏宠仈妯″叿',
+ id: 6,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ // {
+ // minWidth: false,
+ // width: 110,
+ // prop: 'is_checkeqp',
+ // label: '鍏宠仈璁惧',
+ // id: 7,
+ // show: true,
+ // fixed: false,
+ // sortable: true
+ // },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'lm_user',
+ label: '鍒涘缓浜哄憳',
+ id: 8,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 160,
+ prop: 'lm_date',
+ label: '鍒涘缓鏃堕棿',
+ id: 9,
+ show: true,
+ fixed: false,
+ sortable: true
+ }
+ ],
+ tableTimeStampKey: new Date().getTime(), // 琛ㄦ牸key
+
+ dialogVisible: false,
+ dialogForm: {
+ code: '',
+ name: '',
+ description: ''
+ },
+ operation: '',
+ dialogFormRules: {
+ code: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ name: [
+ { required: true, message: '璇疯緭鍏ユ爣鍑嗗悕绉�', trigger: ['blur', 'change'] }
+ ]
+
+ },
+ tableDataDialog: [], // 琛ㄦ牸鏁版嵁
+
+ checkSelectedValue: [],
+ checkSelectArr: [],
+
+ mouldDialogVisible: false,
+ tree: [
+ {
+ code: '-1',
+ name: '鍏ㄩ儴'
+ }
+ ],
+ filterText: '',
+ defaultProps: {
+ children: 'children',
+ label: 'name'
+ },
+ checkstand_code: ''
+
+ }
+ },
+ watch: {
+ filterText(val) {
+ this.$refs.tree.filter(val)
+ },
+ 'checkSelectedValue': {
+ handler: function(val) {
+ const arr = JSON.parse(JSON.stringify(this.tableDataDialog))
+ const arrCheckcode = arr.map(i => i.code)
+ this.tableDataDialog = []
+ val.forEach(i => {
+ this.tableDataDialog.push(
+ {
+ code: i,
+ name: this.checkSelectArr.find(j => j.code === i).name,
+ description: arrCheckcode.includes(i) ? arr.find(j => j.code === i).description : this.checkSelectArr.find(j => j.code === i).description
+ }
+ )
+ })
+ }
+ }
+ },
+ created() {
+ this.handleRequest()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+
+ tableColumnUpdate(val, isCopyTrue) {
+ if (isCopyTrue) {
+ this.tableColumnSettingsArray = val
+ }
+ this.tableTimeStampKey = new Date().getTime()
+
+ this.$refs.tableDataRef.doLayout()
+ },
+ handleRequest() {
+ this.getDeviceCheckStandArdSearch().then(res => {
+ if (res.code === '200') {
+ this.getMouldCheckItemSelect()
+ }
+ })
+ },
+ async getDeviceCheckStandArdSearch() {
+ const res = await DeviceCheckStandArdSearch(this.form)
+ this.tableData = res.data
+ this.total = res.count
+ return { code: res.code }
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getDeviceCheckStandArdSearch()
+ },
+ // 鏌ヨ
+ search() {
+ this.getDeviceCheckStandArdSearch()
+ },
+ // 瀵煎叆鎸夐挳
+ upload() {
+ this.shows = true
+ this.$refs.importPickerFunc.newDataFunc()
+ },
+ colos() {
+ this.shows = false
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.checkstandcode = ''
+ this.form.checkstandname = ''
+ this.form.checkstandescr = ''
+ this.getDeviceCheckStandArdSearch()
+ },
+
+ async getMouldCheckItemSelect() {
+ const { data: res } = await MouldCheckItemSelect()
+ this.checkSelectArr = res
+ },
+
+ // 鏂板鎸夐挳
+ add(operation) {
+ this.operation = operation
+ this.dialogVisible = true
+ this.$nextTick(() => {
+ this.$refs.tableDataDialogRef.doLayout()
+ })
+ },
+ // 淇敼鎸夐挳
+ edit(operation, row) {
+ this.operation = operation
+ this.getViewDeviceCheckStanedSearch(row.code)
+ this.dialogVisible = true
+ this.$nextTick(() => {
+ this.$refs.tableDataDialogRef.doLayout()
+ })
+ },
+ // 淇敼鍓嶈姹傛帴鍙�
+ async getViewDeviceCheckStanedSearch(checkstand_code) {
+ const { data: res } = await ViewMouldCheckStanedSearch({ checkstand_code })
+ this.tableDataDialog = res.data
+ this.checkSelectedValue = res.data.map(i => i.code)
+
+ this.dialogForm.code = res.code
+ this.dialogForm.name = res.name
+ this.dialogForm.description = res.description
+
+ this.tableDataDialog.forEach(item => {
+ item.description = item.chkdesc
+ })
+ },
+ // 鍒犻櫎鎸夐挳
+ async del(row) {
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ DeleteMouldCheckStaned({ checkstand_code: row.code }).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('鍒犻櫎鎴愬姛!')
+ if (this.form.page > 1 && this.tableData.length === 1) {
+ this.form.page--
+ }
+ this.getDeviceCheckStandArdSearch()
+ }
+ })
+ }).catch(() => {
+ this.$notify.info('宸插彇娑堝垹闄�')
+ })
+ },
+
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm.code = ''
+ this.dialogForm.name = ''
+ this.dialogForm.description = ''
+ this.tableDataDialog = []
+ this.checkSelectedValue = []
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ if (this.tableDataDialog.length === 0) {
+ return this.$message.info('鐐规椤逛俊鎭笉鑳戒负绌猴紒')
+ }
+
+ const Data = []
+ this.tableDataDialog.forEach((i, index) => {
+ Data.push({
+ checkitem_seq: index + 1,
+ checkitem_code: i.code,
+ checkitem_name: i.name,
+ checkitem_descr: i.description,
+ cycle: '',
+ isscan: ''
+ })
+ })
+ const data = {
+ 'code': this.dialogForm.code,
+ 'name': this.dialogForm.name,
+ 'description': this.dialogForm.description,
+ 'Data': Data
+ }
+
+ this.$store.state.app.buttonIsDisabled = true
+ AddUpdateMouldCheckStandArd(data, this.operation === 'add' ? 'Add' : 'Update').then(res => {
+ if (res.code === '200') {
+ this.dialogVisible = false
+ this.$notify.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ this.getDeviceCheckStandArdSearch()
+ // this.getMouldCheckItemSelect()
+ this.$store.state.app.buttonIsDisabled = false
+ } else {
+ this.$notify.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ }
+ })
+ }
+ })
+ },
+
+ // 鍏宠仈妯″叿鐐瑰嚮
+ async connectClick(row) {
+ const { data: res } = await CheckStanedAssociationMould({ checkstand_code: row.code })
+ this.checkstand_code = row.code
+
+ const keySelected = []
+ res.forEach(i => {
+ i.parentid = '-1'
+ i.name = i.code + ' / ' + i.name
+
+ if (i.flag === 'Y') {
+ keySelected.push(i.code)
+ }
+ })
+ this.tree = arrayToTree(this.tree.concat(res), {
+ parentProperty: 'parentid',
+ customID: 'code',
+ childrenProperty: 'children'
+ })
+ this.mouldDialogVisible = true
+ this.$nextTick(() => {
+ this.$refs.tree.setCheckedKeys(keySelected)
+ })
+ },
+ filterNode(value, data) {
+ if (!value) return true
+ return data.name.indexOf(value) !== -1
+ },
+ handleMouldClose() {
+ this.tree = [
+ {
+ code: '-1',
+ name: '鍏ㄩ儴'
+ }
+ ]
+ },
+ mouldDialogVisibleCancel() {
+ this.mouldDialogVisible = false
+ },
+ mouldDialogVisibleConfirm() {
+ const treeKey = this.$refs.tree.getCheckedKeys()
+ const arr = []
+ this.tree[0].children.forEach(i => {
+ // i.flag = treeKey.includes(i.code) ? 'Y' : 'N'
+ if (treeKey.includes(i.code)) {
+ arr.push({
+ code: i.code,
+ name: i.name.split('/')[1].trim()
+ })
+ }
+ })
+
+ this.$store.state.app.buttonIsDisabled = true
+ SaveCheckStanedAssociationMould(arr, this.checkstand_code).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('缁戝畾鎴愬姛锛�')
+ this.mouldDialogVisible = false
+ this.getDeviceCheckStandArdSearch()
+ this.$store.state.app.buttonIsDisabled = false
+ } else {
+ this.$store.state.app.buttonIsDisabled = false
+ this.$notify.error('缁戝畾澶辫触锛�')
+ }
+ })
+ },
+
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 205
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ }
+
+ }
+}
+</script>
+<style scoped lang="scss">
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+</style>
diff --git a/src/views/mouldManager/mouldCirculateRecord.vue b/src/views/mouldManager/mouldCirculateRecord.vue
new file mode 100644
index 0000000..2fec019
--- /dev/null
+++ b/src/views/mouldManager/mouldCirculateRecord.vue
@@ -0,0 +1,476 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup">
+ <el-button v-waves type="primary" icon="el-icon-download" @click="download">瀵煎嚭</el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="妯″叿缂栫爜" style=" display: flex;">
+ <el-input v-model="form.mouldcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="妯″叿鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.mouldname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="瑙勬牸鍨嬪彿" style=" display: flex;">
+ <el-input v-model="form.mouldspec" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+
+ <el-form-item label="鎿嶄綔绫诲瀷" style=" display: flex;">
+ <el-select v-model="form.type" style="width: 200px" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in typeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+
+ <el-form-item v-show="isExpandForm" label="鎿嶄綔浜哄憳" style=" display: flex;">
+ <el-input v-model="form.operuser" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item
+ v-show="isExpandForm"
+ style="display: flex;align-items: center"
+ label="鎿嶄綔鏃堕棿"
+ >
+ <el-date-picker
+ v-model="form.operdate"
+ type="daterange"
+ range-separator="~"
+ class="timeMini"
+ size="mini"
+ style="width: 200px;display: flex;line-height: 34px;height: 34px;"
+ :clearable="false"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ />
+ <!-- font-size: 14px!important;-->
+ <!-- :picker-options="expireTimeOption"-->
+
+ </el-form-item>
+
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+
+ <el-table-column
+ prop="mould_code"
+ label="妯″叿缂栫爜"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="mould_name"
+ label="妯″叿鍚嶇О"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="mould_spec"
+ label="浜у搧瑙勬牸"
+ show-tooltip-when-overflow
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.mould_spec">{{ row.mould_spec }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="type"
+ label="鎿嶄綔绫诲瀷"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="description"
+ label="鍊熻繕鎻忚堪"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ {{ row.description?row.description:'/' }}
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ prop="lm_user"
+ label="鎿嶄綔浜�"
+ sortable="custom"
+ />
+
+ <el-table-column
+ prop="lm_date"
+ label="鎿嶄綔鏃堕棿"
+ sortable="custom"
+ />
+
+ <!-- <el-table-column-->
+ <!-- label="鎿嶄綔"-->
+ <!-- width="120"-->
+ <!-- fixed="right"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div class="operationClass">-->
+
+ <!-- <el-tooltip class="item" effect="dark" content="鏄庣粏" placement="top">-->
+ <!-- <i-->
+ <!-- class="el-icon-tickets"-->
+ <!-- :style="{color:$store.state.settings.theme}"-->
+ <!-- style="cursor: pointer;margin-right: 15px"-->
+ <!-- @click="edit(row)"-->
+ <!-- />-->
+ <!-- </el-tooltip>-->
+ <!-- </div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getMouldUpDownMachinesSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ title="鏄庣粏"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <div class="elTableDiv" style="margin-top: 0">
+ <el-table
+ :data="tableDataDialog"
+ :height="500+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:500+'px'}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="seq"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="itemcode"
+ label="閮ㄤ綅缂栫爜"
+ />
+ <el-table-column
+ prop="itemname"
+ label="閮ㄤ綅鍚嶇О"
+ />
+ <el-table-column
+ prop="result"
+ label="鐐规缁撴灉"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.result==='OK'" style="display: flex;align-items: center">
+ <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />
+ 姝e父
+ </div>
+ <div v-if="row.result==='NG'" style="display: flex;align-items: center">
+ <i class="el-icon-info" style="margin-right: 2px" />
+ 寮傚父
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="chk_value"
+ label="鏁板��"
+ >
+ <template slot-scope="{row}">
+ {{ row.chk_value ? row.chk_value : '/' }}
+ </template>
+ </el-table-column>
+ <!-- <el-table-column-->
+ <!-- prop="remark"-->
+ <!-- label="澶囨敞"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- />-->
+ </el-table>
+ </div>
+
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>-->
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import { handleDatetime } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import {
+ MouldCheckSubTakeSearch,
+ MouldCheckTakeOutExcel, MouldCirculateMachinesSearch,
+ MouldCirculateMachinesOutExcel,
+ MouldUpDownMachinesSearch
+} from '@/api/MouldManager'
+
+export default {
+ name: 'Zzjg',
+ components: {
+ Pagination
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ mouldcode: '',
+ mouldname: '',
+ mouldspec: '',
+
+ stanedname: '',
+ operuser: '',
+ type: '',
+ operdate: '',
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ typeArr: [
+ { code: 'UP', name: '涓婃満' },
+ { code: 'DOWN', name: '涓嬫満' }
+ ],
+ total: 10,
+ tableData: [],
+ dialogVisible: false,
+ tableDataDialog: []
+
+ }
+ },
+
+ created() {
+ this.getMouldUpDownMachinesSearch()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ async getMouldUpDownMachinesSearch() {
+ let tempDate = this.form.operdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+
+ const data = {
+ mouldcode: this.form.mouldcode,
+ mouldname: this.form.mouldname,
+ mouldspec: this.form.mouldspec,
+
+ operuser: this.form.operuser,
+ type: this.form.type,
+ operdate: tempDate,
+ prop: this.form.prop,
+ order: this.form.order,
+ page: this.form.page,
+ rows: this.form.rows
+
+ }
+ console.log(data, 1)
+ const res = await MouldCirculateMachinesSearch(data)
+ this.tableData = res.data
+ this.total = res.count
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getMouldUpDownMachinesSearch()
+ },
+ async download() {
+ let tempDate = this.form.operdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+
+ const data = {
+ mouldcode: this.form.mouldcode,
+ mouldname: this.form.mouldname,
+ mouldspec: this.form.mouldspec,
+
+ operuser: this.form.operuser,
+ type: this.form.type,
+ operdate: tempDate
+ }
+
+ const { data: res } = await MouldCirculateMachinesOutExcel(data)
+ window.location.href = res
+ },
+ // 鏌ヨ
+ search() {
+ this.getMouldUpDownMachinesSearch()
+ },
+
+ // 閲嶇疆
+ reset() {
+ this.form.mouldcode = ''
+ this.form.mouldname = ''
+ this.form.mouldspec = ''
+
+ this.form.operuser = ''
+ this.form.type = ''
+ this.form.operdate = ''
+ this.getMouldUpDownMachinesSearch()
+ },
+
+ // 淇敼鎸夐挳
+ async edit(row) {
+ this.dialogVisible = true
+
+ const { data: res } = await MouldCheckSubTakeSearch({ id: row.id })
+ this.tableDataDialog = res
+
+ // this.$nextTick(() => {
+ // this.dialogForm.OrgCode = row.org_code
+ // this.dialogForm.OrgName = row.org_name
+ // this.dialogForm.SupUnit = row.parent_id
+ // })
+ },
+
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.tableDataDialog = []
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 255
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ }
+ }
+}
+</script>
+
+<style scoped lang="scss">
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+::v-deep .el-range__icon {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-separator {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-input {
+ font-size: 14px;
+}
+
+::v-deep .el-range-separator {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+::v-deep .el-progress-bar__innerText {
+ display: none !important;
+}
+</style>
+<style>
+
+.el-table .custom-row {
+ background: #f8f8fa;
+}
+</style>
diff --git a/src/views/mouldManager/mouldList.vue b/src/views/mouldManager/mouldList.vue
new file mode 100644
index 0000000..862ffc5
--- /dev/null
+++ b/src/views/mouldManager/mouldList.vue
@@ -0,0 +1,982 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
+ <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+ <el-button
+ v-waves
+ type="success"
+ icon="el-icon-download"
+ @click="$router.push('./../systemSetting/dataImport?fileCode=12')"
+ >瀵煎叆
+ </el-button>
+ <!-- <el-button v-waves type="primary" icon="el-icon-download" @click="download">瀵煎嚭</el-button>-->
+
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="宸ュ崟鐘舵��" style=" display: flex;">
+ <el-select v-model="form.mouldstaus" style="width: 200px" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in mouldstausArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="浣跨敤鐘舵��" style=" display: flex;">
+ <el-select v-model="form.usestatus" style="width: 200px" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in onstateArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+
+ <el-form-item label="妯″叿缂栧彿" style=" display: flex;">
+ <el-input v-model="form.mouldcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="妯″叿鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.mouldname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="瑙勬牸鍨嬪彿" style=" display: flex;">
+ <el-input v-model="form.mouldspec" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+
+ <el-form-item v-show="isExpandForm" label="瑙勬牸鍨嬪彿" style=" display: flex;">
+ <el-input v-model="form.createuser" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+
+ <el-form-item v-show="isExpandForm" label="鍗曟嵁鏃ユ湡" style="display: flex;align-items: center">
+ <el-date-picker
+ v-model="form.createdate"
+ type="daterange"
+ range-separator="~"
+ class="timeMini"
+ size="mini"
+ style="width: 200px;display: flex;line-height: 34px;height: 34px;"
+ :clearable="false"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ />
+ </el-form-item>
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="status"
+ label="妯″叿鐘舵��"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <el-tag v-if="row.status==='Y'" size="small" type="success">姝e父</el-tag>
+ <el-tag v-if="row.status==='N'" size="small" type="danger">鏁呴殰</el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="usestatus"
+ label="浣跨敤鐘舵��"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ {{ row.usestatus?onstateArr.find(i => parseFloat(i.code) === parseFloat(row.usestatus)).name:'/' }}
+ <!-- {{ onstateArr.find(i => parseFloat(i.code) === parseFloat(row.usestatus)).name }}-->
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="code"
+ label="妯″叿缂栧彿"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="name"
+ label="妯″叿鍚嶇О"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="spec"
+ label="瑙勬牸鍨嬪彿"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ {{ row.spec ? row.spec : '/' }}
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="warehousename"
+ label="浠撳簱鍚嶇О"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ {{ row.warehousename ? row.warehousename : '/' }}
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="location_name"
+ label="搴撲綅鍚嶇О"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ {{ row.location_name ? row.location_name : '/' }}
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="is_part"
+ label="浜у搧鍏宠仈"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <!-- <el-tag v-if="row.is_part==='Y'" size="small" type="success">鏄�</el-tag>-->
+ <!-- <el-tag v-if="row.is_part==='N'" size="small" type="danger">鍚�</el-tag>-->
+ <i
+ v-if="row.is_part==='Y'"
+ :style="{color:$store.state.settings.theme}"
+ class="el-icon-share"
+ style="cursor: pointer"
+ @click="connectClick(row)"
+ />
+ <i
+ v-if="row.is_part==='N'"
+ class="el-icon-share"
+ style="color: rgb(180 ,181, 185);cursor:pointer;"
+ @click="connectClick(row)"
+ />
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="surp_life"
+ label="棰勮瀵垮懡(娆�)"
+ width="125"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="serlife"
+ label="浣跨敤瀵垮懡(娆�)"
+ width="125"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="resi_life"
+ label="鍓╀綑瀵垮懡(娆�)"
+ width="125"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="username"
+ label="鍒涘缓浜哄憳"
+ sortable="custom"
+ />
+
+ <el-table-column
+ prop="lm_date"
+ label="鍒涘缓鏃堕棿"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.lm_date">{{ row.lm_date.substring(0, 11) }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ label="鎿嶄綔"
+ width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-tooltip class="item" effect="dark" content="缂栬緫" placement="top">
+ <i
+ class="el-icon-edit-outline"
+ :style="{color:$store.state.settings.theme}"
+ @click="edit(row)"
+ />
+ </el-tooltip>
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+ <i class="el-icon-delete" :style="{color:$store.state.settings.theme}" @click="del(row)" />
+ </el-tooltip>
+ <el-tooltip class="item" effect="dark" content="灞ュ巻" placement="top">
+ <i class="el-icon-view" :style="{color:$store.state.settings.theme}" style="cursor: pointer" @click="view(row)" />
+ </el-tooltip>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getMouldMangerSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':(operation==='edit'?'缂栬緫':'浜у搧鍏宠仈')"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ :top="operation!=='connect'? '7vh':'15vh'"
+ class="dialogFormClass"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+
+ <el-form
+ v-if="operation!=='connect'"
+ ref="dialogForm"
+ class=""
+ inline
+ :rules="dialogFormRules"
+ :model="dialogForm"
+ label-width="110px"
+ >
+ <el-divider content-position="left">鍩烘湰淇℃伅</el-divider>
+ <el-form-item label="妯″叿缂栫爜" prop="mouldcode">
+ <el-input v-model="dialogForm.mouldcode" :disabled="operation!=='add'" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="妯″叿鍚嶇О" prop="mouldname">
+ <el-input v-model="dialogForm.mouldname" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="瑙勬牸鍨嬪彿">
+ <el-input v-model="dialogForm.mouldspec" style="width: 200px" />
+ </el-form-item>
+
+ <el-form-item required label="妯″叿鐘舵��">
+ <el-radio-group v-model="dialogForm.status">
+ <el-radio label="Y">姝e父</el-radio>
+ <el-radio label="N">鏁呴殰</el-radio>
+ </el-radio-group>
+ </el-form-item>
+
+ <el-form-item v-if="dialogForm.opertype==='Add'" prop="warehousecode" label="鎵�灞炰粨搴�">
+ <el-select
+ v-model="dialogForm.warehousecode"
+ style="width:200px"
+ placeholder="璇烽�夋嫨"
+ filterable
+ :popper-append-to-body="false"
+ @change="warehousecodeChange"
+ >
+ <el-option
+ v-for="item in wareHouseArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+
+ <el-form-item v-if="dialogForm.opertype==='Add'" prop="location_code" label="鎵�灞炲簱浣�">
+ <el-select
+ v-model="dialogForm.location_code"
+ style="width:200px"
+ :disabled="dialogForm.warehousecode===''"
+ placeholder="璇烽�夋嫨"
+ filterable
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in locationArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+
+ <el-form-item label="棰勮瀵垮懡(娆�)">
+ <el-input v-model="dialogForm.surplife" oninput="value=value.replace(/[^0-9]/g,'')" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鍓╀綑瀵垮懡(娆�)">
+ <el-input v-model="dialogForm.resilife" oninput="value=value.replace(/[^0-9]/g,'')" style="width: 200px" />
+ </el-form-item>
+
+ </el-form>
+ <el-divider v-if="operation!=='connect'" content-position="left">鍏宠仈浜у搧</el-divider>
+
+ <el-input
+ v-model="filterText"
+ placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�"
+ />
+ <div style="height: 300px;overflow:auto;margin-top: 25px;">
+ <el-tree
+ ref="tree"
+ class="filter-tree"
+ :data="Inventory"
+ :props="defaultProps"
+ show-checkbox
+ node-key="code"
+ default-expand-all
+ :filter-node-method="filterNode"
+ />
+
+ </div>
+
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="dialogVisibleConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ <el-dialog
+ v-el-drag-dialog
+ title="灞ュ巻鏌ョ湅"
+ :visible.sync="dialogVisibleResume"
+ width="1000px"
+ :close-on-click-modal="false"
+ top="7vh"
+ class="dialogFormClass"
+ @closed="handleCloseResume"
+ >
+ <div style="display: flex;justify-content: center;font-size: 18px;font-weight: bolder">妯″叿鍦ㄧ嚎淇℃伅鏌ヨ</div>
+ <el-descriptions class="margin-top" title=" " :column="3" size="size" border>
+ <!-- <template slot="extra">-->
+ <!-- <el-button type="primary" size="small">鎿嶄綔</el-button>-->
+ <!-- </template>-->
+ <el-descriptions-item>
+ <template slot="label">
+ <!-- <i class="el-icon-user" />-->
+ 妯″叿缂栫爜
+ </template>
+ {{ formResume.mouldcode }}
+ </el-descriptions-item>
+ <el-descriptions-item>
+ <template slot="label">
+ 妯″叿鍚嶇О
+ </template>
+ {{ formResume.mouldname }}
+ </el-descriptions-item>
+ <el-descriptions-item>
+ <template slot="label">
+ 瑙勬牸鍨嬪彿
+ </template>
+ {{ formResume.mouldspec||'/' }}
+ </el-descriptions-item>
+ <el-descriptions-item>
+ <template slot="label">
+ 妯″叿鐘舵��
+ </template>
+ <!-- {{ formResume.status ==='Y'?'姝e父':'寮傚父' }}-->
+ <el-tag v-if="formResume.status==='Y'" size="small" type="success">姝e父</el-tag>
+ <el-tag v-if="formResume.status==='N'" size="small" type="danger">鏁呴殰</el-tag>
+
+ </el-descriptions-item>
+ <el-descriptions-item>
+ <template slot="label">
+ 浣跨敤鐘舵��
+ </template>
+ <!-- {{ formResume.usestatus }}-->
+ {{ formResume.usestatus?onstateArr.find(i => parseFloat(i.code) === parseFloat(formResume.usestatus)).name:'/' }}
+ </el-descriptions-item>
+ <el-descriptions-item>
+ <template slot="label">
+ 棰勮瀵垮懡(娆�)
+ </template>
+ {{ formResume.surp_life }}
+ </el-descriptions-item>
+ <el-descriptions-item>
+ <template slot="label">
+ 鍓╀綑瀵垮懡(娆�)
+ </template>
+ {{ formResume.serlife }}
+ </el-descriptions-item>
+ <el-descriptions-item>
+ <template slot="label">
+ 鏌ョ湅浜哄憳
+ </template>
+ {{ formResume.username }}
+ </el-descriptions-item>
+ <el-descriptions-item>
+ <template slot="label">
+ 鏌ョ湅鏃堕棿
+ </template>
+ {{ formResume.lm_date }}
+ </el-descriptions-item>
+ </el-descriptions>
+
+ <div style="display: flex;justify-content: center;font-size: 18px;font-weight: bolder;margin: 20px 0">妯″叿娴佽浆璁板綍</div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataRef2"
+ class="tableFixed"
+ :data="tableResume"
+ height="370px"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:'370px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ >
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="opertype"
+ label="鎿嶄綔绫诲瀷"
+ />
+
+ <el-table-column
+ prop="operusername"
+ label="鎿嶄綔浜哄憳"
+ />
+
+ <el-table-column
+ prop="operdate"
+ label="鎿嶄綔鏃堕棿"
+ />
+ <el-table-column
+ prop="opertype"
+ label="缁撴灉/瀵硅薄"
+ />
+
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="totalResume"
+ :page.sync="formResume.page"
+ :limit.sync="formResume.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getMoldResumeSearch"
+ />
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleResume=false">杩� 鍥�</el-button>
+ <!-- <el-button-->
+ <!-- v-waves-->
+ <!-- type="primary"-->
+ <!-- :loading="$store.state.app.buttonIsDisabled"-->
+ <!-- :disabled="$store.state.app.buttonIsDisabled"-->
+ <!-- @click="dialogVisibleConfirm"-->
+ <!-- >纭� 瀹�</el-button>-->
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import { handleDatetime, handleDatetime2, validateCode } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import {
+ ProductionScheduleReportExcelSearch,
+ ProductionScheduleReportSearch
+} from '@/api/ReportManager'
+import { AddUpdateMouldManger, DeleteMouldManger, MoldResumeSearch, MouldMangerSearch } from '@/api/MouldManager'
+import { InventoryTreePermissions, WareHouse, WareHouseSelectLocation } from '@/api/GeneralBasicData'
+import arrayToTree from 'array-to-tree'
+import { TCunstomerDelete } from '@/api/basicSettings'
+
+export default {
+ name: 'Zzjg',
+ components: {
+ Pagination
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ mouldstaus: '', // 妯″叿鐘舵��
+ usestatus: '', // 浣跨敤鐘舵��
+ mouldcode: '', // 妯″叿缂栫爜
+ mouldname: '', // 妯″叿鍚嶇О
+ mouldspec: '', // 妯″叿瑙勬牸鍨嬪彿
+
+ createuser: '', // 鍒涘缓浜哄憳
+ createdate: '', // 鍗曟嵁鏃ユ湡
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+
+ mouldstausArr: [
+ { code: 'Y', name: '姝e父' },
+ { code: 'N', name: '鏁呴殰' }
+ ],
+ onstateArr: [
+ { code: 0, name: '鍦ㄥ簱' },
+ { code: 1, name: '鍑哄簱' },
+ { code: 2, name: '涓婃満' },
+ { code: 3, name: '涓嬫満' },
+ { code: 4, name: '寰呯淮淇�' },
+ { code: 5, name: '宸茬淮淇�' },
+ { code: 6, name: '宸查獙璇�' },
+ { code: 7, name: '澶栧��' },
+ { code: 8, name: '褰掕繕' }
+ ],
+
+ total: 10,
+ tableData: [],
+
+ operation: '',
+ dialogVisible: false,
+ dialogForm: {
+ mouldcode: '',
+ mouldname: '',
+ mouldspec: '',
+ warehousecode: '', // 浠撳簱缂栫爜
+ location_code: '', // 搴撲綅缂栫爜
+ surplife: '',
+ resilife: '',
+ status: 'Y',
+ mouldpart: '',
+ opertype: ''
+ },
+ dialogFormRules: {
+ mouldcode: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ mouldname: [
+ { required: true, message: '璇疯緭鍏ユā鍏峰悕绉�', trigger: ['blur', 'change'] }
+ ],
+ warehousecode: [
+ { required: true, message: '璇疯緭鍏ラ�夋嫨浠撳簱淇℃伅', trigger: ['blur', 'change'] }
+ ],
+ location_code: [
+ { required: true, message: '璇疯緭鍏ラ�夋嫨搴撲綅淇℃伅', trigger: ['blur', 'change'] }
+ ]
+ },
+ filterText: '',
+ defaultProps: {
+ children: 'children',
+ label: 'name'
+ },
+
+ Inventory: [
+ // { code: '-1',
+ // name: '鍏ㄩ儴'
+ // }
+ ],
+
+ wareHouseArr: [], // 浠撳簱鏁扮粍
+ locationArr: [], // 搴撲綅鏁扮粍
+
+ dialogVisibleResume: false,
+ formResume: {
+ mouldcode: '',
+ page: 1,
+ rows: 20
+ },
+ tableResume: [],
+ totalResume: 10
+
+ }
+ },
+ watch: {
+ filterText(val) {
+ this.$refs.tree.filter(val)
+ }
+ },
+ created() {
+ this.getMouldMangerSearch()
+
+ this.getInventoryTreePermissions()
+ this.getWareHouse()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ async getInventoryTreePermissions() {
+ const res = await InventoryTreePermissions()
+ res.data.forEach(i => {
+ i.name = i.code + ' ' + i.name
+ })
+
+ this.Inventory = arrayToTree(res.data, {
+ parentProperty: 'parentid',
+ customID: 'code',
+ childrenProperty: 'children'
+ })
+ },
+ async getWareHouse() {
+ const { data: res } = await WareHouse()
+ this.wareHouseArr = res
+ },
+ async getMouldMangerSearch() {
+ let tempDate = this.form.createdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+ const data = {
+ mouldstaus: this.form.mouldstaus,
+ mouldcode: this.form.mouldcode,
+ wkshopcode: this.form.wkshopcode,
+ mouldname: this.form.mouldname,
+ mouldspec: this.form.mouldspec,
+ partname: this.form.partname,
+ partspec: this.form.partspec,
+ createdate: tempDate,
+ prop: this.form.prop,
+ order: this.form.order,
+ page: this.form.page,
+ rows: this.form.rows
+ }
+
+ const res = await MouldMangerSearch(data)
+ this.tableData = res.data
+ this.total = res.count
+ },
+
+ // 瀵煎嚭
+ async download() {
+ let tempDate = this.form.createdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+ const data = {
+ mouldstaus: this.form.mouldstaus,
+ mouldcode: this.form.mouldcode,
+ wkshopcode: this.form.wkshopcode,
+ mouldname: this.form.mouldname,
+ mouldspec: this.form.mouldspec,
+ partname: this.form.partname,
+ partspec: this.form.partspec,
+ createdate: tempDate
+ }
+
+ const res = await ProductionScheduleReportExcelSearch(data)
+ // console.log(res)
+ window.location.href = res.data
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getMouldMangerSearch()
+ },
+ // 鏌ヨ
+ search() {
+ this.getMouldMangerSearch()
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.mouldstaus = ''
+ this.form.usestatus = ''
+ this.form.mouldcode = ''
+ this.form.mouldname = ''
+
+ this.form.mouldspec = ''
+ this.form.createuser = ''
+ this.form.createdate = ''
+ this.getMouldMangerSearch()
+ },
+ async warehousecodeChange(val) {
+ const { data: res } = await WareHouseSelectLocation({ warhousecode: val })
+ this.locationArr = res
+ },
+ add() {
+ this.operation = 'add'
+ this.dialogForm.opertype = 'Add'
+ this.dialogVisible = true
+ },
+ edit(row) {
+ this.operation = 'edit'
+ this.dialogVisible = true
+ this.dialogForm.opertype = 'Update'
+
+ this.$nextTick(() => {
+ this.dialogForm.mouldcode = row.code
+ this.dialogForm.mouldname = row.name
+ this.dialogForm.mouldspec = row.spec
+ this.dialogForm.warehousecode = row.warehousecode
+ this.dialogForm.location_code = row.location_code
+ this.dialogForm.surplife = row.surp_life
+ this.dialogForm.resilife = row.resi_life
+ this.dialogForm.status = row.status
+ this.dialogForm.mouldpart = row.partcode ? row.partcode.split(',') : []
+ this.$refs.tree.setCheckedKeys(this.dialogForm.mouldpart)
+ })
+ },
+ connectClick(row) {
+ this.operation = 'connect'
+ this.dialogVisible = true
+ this.dialogForm.opertype = 'Update'
+
+ this.$nextTick(() => {
+ this.dialogForm.mouldcode = row.code
+ this.dialogForm.mouldname = row.name
+ this.dialogForm.mouldspec = row.spec
+ // this.dialogForm.warehousecode = row.warehousecode
+ this.dialogForm.surplife = row.surp_life
+ this.dialogForm.resilife = row.resi_life
+ this.dialogForm.status = row.status
+ this.dialogForm.mouldpart = row.partcode ? row.partcode.split(',') : []
+ this.$refs.tree.setCheckedKeys(this.dialogForm.mouldpart)
+ })
+ },
+ del(row) {
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ DeleteMouldManger({ mouldcode: row.code }).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('鍒犻櫎鎴愬姛!')
+ this.getMouldMangerSearch()
+ }
+ })
+ }).catch(() => {
+ this.$notify.info('宸插彇娑堝垹闄�')
+ })
+ },
+
+ // 灞ュ巻
+ async view(row) {
+ this.formResume.mouldcode = row.code
+ this.formResume.mouldname = row.name
+ this.formResume.mouldspec = row.spec
+ this.formResume.username = localStorage.getItem('username')
+ this.formResume.surp_life = row.surp_life
+ this.formResume.serlife = row.serlife
+ this.formResume.lm_date = handleDatetime2(new Date())
+ this.formResume.status = row.status
+ this.formResume.usestatus = row.usestatus
+
+ await this.getMoldResumeSearch()
+ this.dialogVisibleResume = true
+ this.$nextTick(() => {
+ this.$refs.tableDataRef2.doLayout()
+ })
+ },
+ async getMoldResumeSearch() {
+ const data = {
+ mouldcode: this.formResume.mouldcode,
+ createdate: '',
+ page: this.formResume.page,
+ rows: this.formResume.rows,
+ prop: 'operdate',
+ order: 'desc'
+ }
+ const res = await MoldResumeSearch(data)
+
+ if (res.code === '200') {
+ this.tableResume = res.data
+ this.totalResume = res.count
+ }
+ },
+
+ handleCloseResume() {
+ this.tableResume = []
+ },
+
+ handleClose() {
+ this.dialogForm = {
+ mouldcode: '',
+ mouldname: '',
+ mouldspec: '',
+ warehousecode: '',
+ location_code: '',
+ surplife: '',
+ resilife: '',
+ status: 'Y',
+ mouldpart: '',
+ opertype: ''
+ }
+ if (this.operation !== 'connect') {
+ this.$refs.dialogForm.clearValidate()
+ }
+ },
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ dialogVisibleConfirm() {
+ if (this.operation !== 'connect') {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ const checkData = this.$refs.tree.getCheckedNodes()
+ this.dialogForm.mouldpart = []
+ checkData.forEach(item => {
+ if (!Object.keys(item).includes('children')) {
+ this.dialogForm.mouldpart.push(item.code)
+ }
+ })
+ // if (this.dialogForm.mouldpart.length === 0) {
+ // return this.$message.info('鍏宠仈浜у搧涓嶈兘涓虹┖锛�')
+ // }
+ this.$store.state.app.buttonIsDisabled = true
+ AddUpdateMouldManger(this.dialogForm).then(res => {
+ if (res.code === '200') {
+ this.$notify.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ this.$refs.tree.setCheckedKeys([])
+
+ this.dialogVisible = false
+ this.$store.state.app.buttonIsDisabled = false
+ this.getMouldMangerSearch()
+ } else {
+ this.$store.state.app.buttonIsDisabled = false
+ this.$notify.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ }
+ })
+ }
+ })
+ } else {
+ const checkData = this.$refs.tree.getCheckedNodes()
+ this.dialogForm.mouldpart = []
+ checkData.forEach(item => {
+ if (!Object.keys(item).includes('children')) {
+ this.dialogForm.mouldpart.push(item.code)
+ }
+ })
+ this.$store.state.app.buttonIsDisabled = true
+ AddUpdateMouldManger(this.dialogForm).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('鍏宠仈鎴愬姛锛�')
+ this.$refs.tree.setCheckedKeys([])
+ this.dialogVisible = false
+ this.$store.state.app.buttonIsDisabled = false
+ this.getMouldMangerSearch()
+ } else {
+ this.$store.state.app.buttonIsDisabled = false
+ this.$notify.error('鍏宠仈澶辫触锛�')
+ }
+ })
+ }
+ },
+ filterNode(value, data) {
+ if (!value) return true
+ return data.name.indexOf(value) !== -1
+ },
+
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 255
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ }
+ }
+
+}
+</script>
+<style scoped lang="scss">
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+::v-deep .el-range__icon {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-separator {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-input {
+ font-size: 14px;
+}
+
+::v-deep .el-range-separator {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+::v-deep .el-progress-bar__innerText {
+ display: none !important;
+}
+
+.dialogFormClass ::v-deep .el-form-item {
+ margin-bottom: 0;
+}
+</style>
diff --git a/src/views/mouldManager/mouldMaintain.vue b/src/views/mouldManager/mouldMaintain.vue
new file mode 100644
index 0000000..3ece798
--- /dev/null
+++ b/src/views/mouldManager/mouldMaintain.vue
@@ -0,0 +1,453 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
+ <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+ <el-button v-waves type="success" icon="el-icon-download" @click="$router.push('./../systemSetting/dataImport?fileCode=14')">瀵煎叆</el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="閮ㄤ綅缂栫爜" style=" display: flex;">
+ <el-input v-model="form.maiitemcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="閮ㄤ綅鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.maiitemname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="淇濆吇鎻忚堪" style=" display: flex;">
+ <el-input v-model="form.checkdescr" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ style="height:5px"
+ >
+ <!-- <svg-icon-->
+ <!-- v-show="mouseHoverType==='mouseout'"-->
+ <!-- style="cursor: pointer"-->
+ <!-- :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"-->
+ <!-- @mouseenter="mouseHoverType=$event.type"-->
+ <!-- />-->
+ <!-- <svg-icon-->
+ <!-- v-show="mouseHoverType==='mouseenter'"-->
+ <!-- style="cursor: pointer"-->
+ <!-- :icon-class="!isExpandForm?'doubleDown':'doubleUp'"-->
+ <!-- @click="isExpandForm=!isExpandForm"-->
+ <!-- @mouseout="mouseHoverType=$event.type"-->
+ <!-- />-->
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <!-- <TableColumnSettings-->
+ <!-- :list1="tableColumnSettingsArray"-->
+ <!-- @tableColumnUpdate="tableColumnUpdate"-->
+ <!-- />-->
+ <el-table
+ ref="tableDataRef"
+ :key="tableTimeStampKey"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
+ border
+ class="tableFixed"
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+
+ <el-table-column
+ v-for="item in tableColumnSettingsArray"
+ v-if="item.show"
+ :key="item.id"
+ :sortable="item.sortable"
+ :prop="item.prop"
+ :min-width="item.minWidth"
+ :label="item.label"
+ :width="item.width"
+ show-tooltip-when-overflow
+ :fixed="item.fixed?(item.fixed==='left'?'left':'right'):false"
+ >
+ <template slot-scope="{row}">
+ <div v-if="!row[item.prop]">/</div>
+ <div v-else>{{ row[item.prop] }}</div>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ label="鎿嶄綔"
+ fixed="right"
+ width="120"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-tooltip class="item" effect="dark" content="缂栬緫" placement="top">
+ <i :style="{color:$store.state.settings.theme}" class="el-icon-edit-outline" @click="edit('edit',row)" />
+ </el-tooltip>
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+ <i :style="{color:$store.state.settings.theme}" class="el-icon-delete" @click="del(row)" />
+ </el-tooltip>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getMouldMaiItemSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'缂栬緫'"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
+ <el-form-item label="閮ㄤ綅缂栫爜" prop="maiitemcode">
+ <el-input v-model="dialogForm.maiitemcode" :disabled="operation!=='add'" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="閮ㄤ綅鍚嶇О" prop="maiitemname">
+ <el-input v-model="dialogForm.maiitemname" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="淇濆吇鎻忚堪" prop="maidescr">
+ <el-input v-model="dialogForm.maidescr" type="textarea" style="width: 200px" />
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="dialogVisibleConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ <!--瀵煎叆缁勪欢-->
+ <import-picker
+ ref="importPickerFunc"
+ class="importPickerClass"
+ :shows.sync="shows"
+ :title="title_value"
+ :colos="colos"
+ :code="code"
+ />
+
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import ImportPicker from '@/components/ImportPicker'
+import { validateCode } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import TableColumnSettings from '@/components/TableColumnSettings'
+import {
+ AddUpdateMouldMaiItem,
+ DeleteMouldMaiItem,
+ MouldMaiItemSearch
+} from '@/api/MouldManager'
+
+export default {
+ name: 'Zzjg',
+ components: {
+ Pagination, ImportPicker, TableColumnSettings
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ maiitemcode: '', // 閮ㄤ綅缂栫爜
+ maiitemname: '', // 閮ㄤ綅鍚嶇О
+ checkdescr: '', // 淇濆吇鎻忚堪
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+
+ total: 10,
+ tableData: [],
+ tableColumnSettingsArray: [
+ { minWidth: false, width: 55, prop: 'id', label: 'id', id: 1, show: false, fixed: false, sortable: false }, // 闅愯棌鍒� show: false闅愯棌锛宼rue鏄剧ず
+ { minWidth: false, width: 55, prop: 'rowNum', label: '搴忓彿', id: 2, show: true, fixed: 'left', sortable: false }, // custom
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'code',
+ label: '閮ㄤ綅缂栫爜',
+ id: 3,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'name',
+ label: '閮ㄤ綅鍚嶇О',
+ id: 4,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 330,
+ width: false,
+ prop: 'description',
+ label: '淇濆吇鎻忚堪',
+ id: 5,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ // {
+ // minWidth: false,
+ // width: 110,
+ // prop: 'isscan',
+ // label: '閫夋嫨鎵爜',
+ // id: 6,
+ // show: true,
+ // fixed: false,
+ // sortable: true
+ // },
+ // {
+ // minWidth: false,
+ // width: 110,
+ // prop: 'cycle',
+ // label: '鐐规鍛ㄦ湡',
+ // id: 7,
+ // show: true,
+ // fixed: false,
+ // sortable: true
+ // },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'lm_user',
+ label: '鍒涘缓浜哄憳',
+ id: 8,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 160,
+ prop: 'lm_date',
+ label: '鍒涘缓鏃堕棿',
+ id: 9,
+ show: true,
+ fixed: false,
+ sortable: true
+ }
+ ],
+ tableTimeStampKey: new Date().getTime(), // 琛ㄦ牸key
+
+ dialogVisible: false,
+ dialogForm: {
+ id: '',
+ maiitemcode: '', // 璁惧鐐规閮ㄤ綅缂栫爜
+ maiitemname: '', // 璁惧鐐规閮ㄤ綅鍚嶇О
+ maidescr: '', // 璁惧鐐规閮ㄤ綅瑕佹眰
+ operType: '' // 鎿嶄綔绫诲瀷
+ },
+ operation: '',
+ dialogFormRules: {
+ maiitemcode: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ maiitemname: [
+ { required: true, message: '璇疯緭鍏ラ儴浣嶅悕绉�', trigger: ['blur', 'change'] }
+ ]
+ },
+
+ title_value: '鏁版嵁瀵煎叆 / 鐐规閮ㄤ綅',
+ code: '10',
+ shows: false
+
+ }
+ },
+
+ created() {
+ this.getMouldMaiItemSearch()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ tableColumnUpdate(val, isCopyTrue) {
+ if (isCopyTrue) {
+ this.tableColumnSettingsArray = val
+ }
+ this.tableTimeStampKey = new Date().getTime()
+ this.$refs.tableDataRef.doLayout()
+ },
+ async getMouldMaiItemSearch() {
+ const res = await MouldMaiItemSearch(this.form)
+ this.tableData = res.data
+ this.total = res.count
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getMouldMaiItemSearch()
+ },
+ // 鏌ヨ
+ search() {
+ this.getMouldMaiItemSearch()
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.maiitemcode = ''
+ this.form.maiitemname = ''
+ this.form.checkdescr = ''
+ this.getMouldMaiItemSearch()
+ },
+
+ // 鏂板鎸夐挳
+ add(operation) {
+ this.operation = operation
+ this.dialogVisible = true
+ },
+ // 淇敼鎸夐挳
+ edit(operation, row) {
+ this.operation = operation
+ this.dialogVisible = true
+
+ this.$nextTick(() => {
+ this.dialogForm.id = row.id
+ this.dialogForm.maiitemcode = row.code
+ this.dialogForm.maiitemname = row.name
+ this.dialogForm.maidescr = row.description
+ })
+ },
+ // 鍒犻櫎鎸夐挳
+ async del(row) {
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ DeleteMouldMaiItem({ maiitemcode: row.code }).then(res => {
+ if (res.code === '200') {
+ this.$message.success('鍒犻櫎鎴愬姛!')
+ if (this.form.page > 1 && this.tableData.length === 1) {
+ this.form.page--
+ }
+ this.getMouldMaiItemSearch()
+ }
+ })
+ }).catch(() => {
+ this.$message.info('宸插彇娑堝垹闄�')
+ })
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm.id = ''
+ this.dialogForm.maiitemcode = ''
+ this.dialogForm.maiitemname = ''
+ this.dialogForm.maidescr = ''
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ this.$store.state.app.buttonIsDisabled = true
+ const data = {
+ id: this.dialogForm.id,
+ maiitemcode: this.dialogForm.maiitemcode,
+ maiitemname: this.dialogForm.maiitemname,
+ maiitemdescr: this.dialogForm.maidescr,
+ opertype: this.operation === 'add' ? 'Add' : 'Update'
+ }
+ // console.log(JSON.stringify(data), 1)
+ AddUpdateMouldMaiItem(data).then(res => {
+ if (res.code === '200') {
+ this.dialogVisible = false
+ this.$notify.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ this.getMouldMaiItemSearch()
+ this.$store.state.app.buttonIsDisabled = false
+ } else {
+ this.$notify.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ }
+ })
+ }
+ })
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 240
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ },
+ // 瀵煎叆鎸夐挳
+ upload() {
+ this.shows = true
+ this.$refs.importPickerFunc.newDataFunc()
+ },
+ colos() {
+ this.shows = false
+ }
+ }
+}
+</script>
+
diff --git a/src/views/mouldManager/mouldMaintainRecord.vue b/src/views/mouldManager/mouldMaintainRecord.vue
new file mode 100644
index 0000000..ab63629
--- /dev/null
+++ b/src/views/mouldManager/mouldMaintainRecord.vue
@@ -0,0 +1,492 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup">
+ <el-button v-waves type="primary" icon="el-icon-download" @click="download">瀵煎嚭</el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="妯″叿缂栫爜" style=" display: flex;">
+ <el-input v-model="form.mouldcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="妯″叿鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.mouldname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="瑙勬牸鍨嬪彿" style=" display: flex;">
+ <el-input v-model="form.mouldspec" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item label="淇濆吇鏍囧噯缂栫爜" style=" display: flex;">
+ <el-input v-model="form.stanedcode" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="淇濆吇鏍囧噯鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.stanedname" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="淇濆吇浜哄憳" style=" display: flex;">
+ <el-input v-model="form.repairuser" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item
+ v-show="isExpandForm"
+ style="display: flex;align-items: center"
+ label="淇濆吇鏃堕棿"
+ >
+ <el-date-picker
+ v-model="form.repairdate"
+ type="daterange"
+ range-separator="~"
+ class="timeMini"
+ size="mini"
+ style="width: 200px;display: flex;line-height: 34px;height: 34px;"
+ :clearable="false"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ />
+ <!-- font-size: 14px!important;-->
+ <!-- :picker-options="expireTimeOption"-->
+
+ </el-form-item>
+
+ <el-form-item v-show="isExpandForm" label="淇濆吇缁撴灉" style=" display: flex;">
+ <el-select v-model="form.repairresult" style="width: 200px" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in checkrequestArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="bywo"
+ label="淇濆吇鍗曞彿"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="mould_code"
+ label="妯″叿缂栫爜"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="mould_name"
+ label="妯″叿鍚嶇О"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="mould_spec"
+ label="浜у搧瑙勬牸"
+ show-tooltip-when-overflow
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.mould_spec">{{ row.mould_spec }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="stanedcode"
+ label="鐐规鏍囧噯缂栫爜"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="stanedname"
+ label="鐐规鏍囧噯鍚嶇О"
+ sortable="custom"
+ />
+
+ <el-table-column
+ prop="maint_user"
+ label="鐐规浜哄憳"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="maint_result"
+ label="鐐规缁撴灉"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <el-tag v-if="row.maint_result==='OK'" size="small" type="success">鍚堟牸</el-tag>
+ <el-tag v-if="row.maint_result==='NG'" size="small" type="danger">寮傚父</el-tag>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ prop="maint_date"
+ label="鐐规鏃堕棿"
+ sortable="custom"
+ />
+
+ <el-table-column
+ label="鎿嶄綔"
+ width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+
+ <el-tooltip class="item" effect="dark" content="鏄庣粏" placement="top">
+ <i
+ class="el-icon-tickets"
+ :style="{color:$store.state.settings.theme}"
+ style="cursor: pointer;margin-right: 15px"
+ @click="edit(row)"
+ />
+ </el-tooltip>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getMouldRepairTakeSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ title="鏄庣粏"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <div class="elTableDiv" style="margin-top: 0">
+ <el-table
+ :data="tableDataDialog"
+ :height="500+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:500+'px'}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="seq"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="itemcode"
+ label="閮ㄤ綅缂栫爜"
+ />
+ <el-table-column
+ prop="itemname"
+ label="閮ㄤ綅鍚嶇О"
+ />
+ <el-table-column
+ prop="result"
+ label="鐐规缁撴灉"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.result==='OK'" style="display: flex;align-items: center">
+ <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />
+ 姝e父
+ </div>
+ <div v-if="row.result==='NG'" style="display: flex;align-items: center">
+ <i class="el-icon-info" style="margin-right: 2px" />
+ 寮傚父
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="chk_value"
+ label="鏁板��"
+ >
+ <template slot-scope="{row}">
+ {{ row.chk_value ? row.chk_value : '/' }}
+ </template>
+ </el-table-column>
+ <!-- <el-table-column-->
+ <!-- prop="remark"-->
+ <!-- label="澶囨敞"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- />-->
+ </el-table>
+ </div>
+
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>-->
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import { handleDatetime } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import {
+ MouldRepairSubTakeSearch,
+ MouldRepairTakeOutExcel,
+ MouldRepairTakeSearch
+} from '@/api/MouldManager'
+
+export default {
+ name: 'Zzjg',
+ components: {
+ Pagination
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ mouldcode: '',
+ mouldname: '',
+ mouldspec: '',
+ stanedcode: '',
+ stanedname: '',
+ repairuser: '',
+ repairresult: '',
+ repairdate: '',
+ prop: 'maint_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ checkrequestArr: [
+ { code: 'OK', name: '鍚堟牸' },
+ { code: 'NG', name: '寮傚父' }
+ ],
+ total: 10,
+ tableData: [],
+ dialogVisible: false,
+ tableDataDialog: []
+
+ }
+ },
+
+ created() {
+ this.getMouldRepairTakeSearch()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ async getMouldRepairTakeSearch() {
+ let tempDate = this.form.repairdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+
+ const data = {
+ mouldcode: this.form.mouldcode,
+ mouldname: this.form.mouldname,
+ mouldspec: this.form.mouldspec,
+ stanedcode: this.form.stanedcode,
+ stanedname: this.form.stanedname,
+ repairuser: this.form.repairuser,
+ repairresult: this.form.repairresult,
+ repairdate: tempDate,
+ prop: this.form.prop,
+ order: this.form.order,
+ page: this.form.page,
+ rows: this.form.rows
+
+ }
+ console.log(data, 1)
+ const res = await MouldRepairTakeSearch(data)
+ this.tableData = res.data
+ this.total = res.count
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getMouldRepairTakeSearch()
+ },
+ async download() {
+ let tempDate = this.form.repairdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+
+ const data = {
+ mouldcode: this.form.mouldcode,
+ mouldname: this.form.mouldname,
+ mouldspec: this.form.mouldspec,
+ stanedcode: this.form.stanedcode,
+ stanedname: this.form.stanedname,
+ repairuser: this.form.repairuser,
+ repairresult: this.form.repairresult,
+ repairdate: tempDate
+ }
+
+ const { data: res } = await MouldRepairTakeOutExcel(data)
+ window.location.href = res
+ },
+ // 鏌ヨ
+ search() {
+ this.getMouldRepairTakeSearch()
+ },
+
+ // 閲嶇疆
+ reset() {
+ this.form.mouldcode = ''
+ this.form.mouldname = ''
+ this.form.mouldspec = ''
+ this.form.stanedcode = ''
+ this.form.stanedname = ''
+ this.form.repairuser = ''
+ this.form.repairresult = ''
+ this.form.repairdate = ''
+ this.getMouldRepairTakeSearch()
+ },
+
+ // 淇敼鎸夐挳
+ async edit(row) {
+ this.dialogVisible = true
+
+ const { data: res } = await MouldRepairSubTakeSearch({ id: row.id })
+ this.tableDataDialog = res
+
+ // this.$nextTick(() => {
+ // this.dialogForm.OrgCode = row.org_code
+ // this.dialogForm.OrgName = row.org_name
+ // this.dialogForm.SupUnit = row.parent_id
+ // })
+ },
+
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.tableDataDialog = []
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 255
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ }
+ }
+}
+</script>
+
+<style scoped lang="scss">
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+::v-deep .el-range__icon {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-separator {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-input {
+ font-size: 14px;
+}
+
+::v-deep .el-range-separator {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+::v-deep .el-progress-bar__innerText {
+ display: none !important;
+}
+</style>
+<style>
+
+.el-table .custom-row {
+ background: #f8f8fa;
+}
+</style>
diff --git a/src/views/mouldManager/mouldMaintainStand.vue b/src/views/mouldManager/mouldMaintainStand.vue
new file mode 100644
index 0000000..6c98e14
--- /dev/null
+++ b/src/views/mouldManager/mouldMaintainStand.vue
@@ -0,0 +1,713 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
+ <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+ <el-button
+ v-waves
+ type="success"
+ icon="el-icon-download"
+ @click="$router.push('./../systemSetting/dataImport?fileCode=14_1')"
+ >瀵煎叆
+ </el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="鏍囧噯缂栫爜" style=" display: flex;">
+ <el-input v-model="form.repairstandcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鏍囧噯鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.repairstandname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鏍囧噯鎻忚堪" style=" display: flex;">
+ <el-input v-model="form.repairstandescr" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+
+ <div
+ class="bodyTopFormExpand"
+ style="height:5px"
+ />
+ </div>
+
+ <div class="elTableDiv">
+ <!-- <TableColumnSettings-->
+ <!-- :list1="tableColumnSettingsArray"-->
+ <!-- @tableColumnUpdate="tableColumnUpdate"-->
+ <!-- />-->
+ <el-table
+ ref="tableDataRef"
+ :key="tableTimeStampKey"
+ :data="tableData"
+ :height="tableHeight+'px'"
+ border
+ class="tableFixed"
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:tableHeight+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+
+ <el-table-column
+ v-for="item in tableColumnSettingsArray"
+ v-if="item.show"
+ :key="item.id"
+ :sortable="item.sortable"
+ :prop="item.prop"
+ :min-width="item.minWidth"
+ :label="item.label"
+ :width="item.width"
+ show-tooltip-when-overflow
+ :fixed="item.fixed?(item.fixed==='left'?'left':'right'):false"
+ >
+ <template slot-scope="{row}">
+ <div v-if="!row[item.prop]">/</div>
+ <div v-else-if="item.prop==='is_repairmould'">
+ <i
+ v-if="row[item.prop]==='Y'"
+ :style="{color:$store.state.settings.theme}"
+ class="el-icon-share"
+ style="cursor: pointer"
+ @click="connectClick(row)"
+ />
+ <i
+ v-if="row[item.prop]==='N'"
+ class="el-icon-share"
+ style="color: rgb(180 ,181, 185);cursor:pointer;"
+ @click="connectClick(row)"
+ />
+ </div>
+ <div v-else>{{ row[item.prop] }}</div>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ label="鎿嶄綔"
+ fixed="right"
+ width="120"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-tooltip class="item" effect="dark" content="缂栬緫" placement="top">
+ <i
+ :style="{color:$store.state.settings.theme}"
+ class="el-icon-edit-outline"
+ @click="edit('edit',row)"
+ />
+ </el-tooltip>
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+ <i :style="{color:$store.state.settings.theme}" class="el-icon-delete" @click="del(row)" />
+ </el-tooltip>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getMouldRepairStandArdSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'缂栬緫'"
+ :visible.sync="dialogVisible"
+ width="1100px"
+ :close-on-click-modal="false"
+ top="8vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <div style="margin: 0 30px;">
+ <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
+ <el-divider content-position="left">妯″叿淇濆吇鏍囧噯淇℃伅</el-divider>
+
+ <el-form-item label="鏍囧噯缂栫爜" prop="code">
+ <el-input v-model="dialogForm.code" :disabled="operation!=='add'" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鏍囧噯鍚嶇О" prop="name">
+ <el-input v-model="dialogForm.name" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鏍囧噯鎻忚堪" prop="description">
+ <el-input v-model="dialogForm.description" type="textarea" style="width: 200px" />
+ </el-form-item>
+ </el-form>
+ </div>
+ <el-divider content-position="left">鎸囧畾淇濆吇椤逛俊鎭�</el-divider>
+ <div style="display: flex;align-items: center">
+ <!-- <div style="font-weight: bolder">鐐规椤归�夋嫨锛�</div>-->
+ <el-drag-select
+ v-model="checkSelectedValue"
+ style="width:940px;"
+ multiple
+ placeholder="璇烽�夋嫨鐩稿搴旀寚瀹氶」"
+ >
+ <el-option
+ v-for="item in checkSelectArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-drag-select>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataDialogRef"
+ :data="tableDataDialog"
+ :height="(tableHeight-300)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:(tableHeight-300)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ >
+ <el-table-column
+ type="index"
+ width="50"
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="code"
+ width="150"
+ label="鐐规閮ㄤ綅缂栫爜"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="name"
+ label="鐐规閮ㄤ綅鍚嶇О"
+ width="150"
+ show-tooltip-when-overflow
+ />
+
+ <el-table-column
+ prop="description"
+ label="鐐规瑕佹眰"
+ show-tooltip-when-overflow
+ >
+ <template slot-scope="{row}">
+ <el-input v-model="row.description" />
+ </template>
+ </el-table-column>
+
+ </el-table>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="dialogVisibleConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ <el-dialog
+ v-el-drag-dialog
+ title="鍏宠仈妯″叿"
+ :visible.sync="mouldDialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="8vh"
+ @closed="handleMouldClose"
+ @close="handleMouldClose"
+ >
+ <div>
+ <el-input
+ v-model="filterText"
+ placeholder="杈撳叆鍏抽敭瀛楄繘琛岃繃婊�"
+ />
+ <el-tree
+ ref="tree"
+ class="filter-tree"
+ :data="tree"
+ :props="defaultProps"
+ show-checkbox
+ node-key="code"
+ style="margin-top:15px;height: 550px;overflow: auto"
+ default-expand-all
+ :filter-node-method="filterNode"
+ />
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="mouldDialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="mouldDialogVisibleConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import { validateCode } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import TableColumnSettings from '@/components/TableColumnSettings'
+import {
+ AddUpdateMouldRepairStandArd,
+ DeleteMouldRepairStaned,
+ MouldRepairStandArdSearch,
+ RepairStanedAssociationMould,
+ SaveRepairStanedAssociationMould,
+ ViewMouldRepairStanedSearch
+} from '@/api/MouldManager'
+import ElDragSelect from '@/components/DragSelect'
+import { MouldRepairItemSelect } from '@/api/GeneralBasicData'
+import arrayToTree from 'array-to-tree'
+
+export default {
+ name: 'Zzjg',
+ components: {
+ Pagination, TableColumnSettings, ElDragSelect
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ repairstandcode: '', // 鏍囧噯缂栫爜
+ repairstandname: '', // 鏍囧噯鍚嶇О
+ repairstandescr: '', // 鐐规绠℃帶
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ checkcontrArr: [
+ { code: 'Y', name: '鏄�' },
+ { code: 'N', name: '鍚�' }
+ ],
+ cycleArr: [
+ { code: 'D', name: '鏃�' }
+ ],
+ total: 10,
+ tableData: [],
+ tableColumnSettingsArray: [
+ { minWidth: false, width: 55, prop: 'id', label: 'id', id: 1, show: false, fixed: false, sortable: false }, // 闅愯棌鍒� show: false闅愯棌锛宼rue鏄剧ず
+ { minWidth: false, width: 55, prop: 'rowNum', label: '搴忓彿', id: 2, show: true, fixed: 'left', sortable: false }, // custom
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'code',
+ label: '鏍囧噯缂栫爜',
+ id: 3,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'name',
+ label: '鏍囧噯鍚嶇О',
+ id: 4,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 330,
+ width: false,
+ prop: 'description',
+ label: '鏍囧噯鎻忚堪',
+ id: 5,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'is_repairmould',
+ label: '鍏宠仈妯″叿',
+ id: 6,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ // {
+ // minWidth: false,
+ // width: 110,
+ // prop: 'is_checkeqp',
+ // label: '鍏宠仈璁惧',
+ // id: 7,
+ // show: true,
+ // fixed: false,
+ // sortable: true
+ // },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'lm_user',
+ label: '鍒涘缓浜哄憳',
+ id: 8,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 160,
+ prop: 'lm_date',
+ label: '鍒涘缓鏃堕棿',
+ id: 9,
+ show: true,
+ fixed: false,
+ sortable: true
+ }
+ ],
+ tableTimeStampKey: new Date().getTime(), // 琛ㄦ牸key
+
+ dialogVisible: false,
+ dialogForm: {
+ code: '',
+ name: '',
+ description: ''
+ },
+ operation: '',
+ dialogFormRules: {
+ code: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ name: [
+ { required: true, message: '璇疯緭鍏ユ爣鍑嗗悕绉�', trigger: ['blur', 'change'] }
+ ]
+
+ },
+ tableDataDialog: [], // 琛ㄦ牸鏁版嵁
+
+ checkSelectedValue: [],
+ checkSelectArr: [],
+
+ mouldDialogVisible: false,
+ tree: [
+ {
+ code: '-1',
+ name: '鍏ㄩ儴'
+ }
+ ],
+ filterText: '',
+ defaultProps: {
+ children: 'children',
+ label: 'name'
+ },
+ repairstand_code: ''
+
+ }
+ },
+ watch: {
+ filterText(val) {
+ this.$refs.tree.filter(val)
+ },
+ 'checkSelectedValue': {
+ handler: function(val) {
+ const arr = JSON.parse(JSON.stringify(this.tableDataDialog))
+ const arrCheckcode = arr.map(i => i.code)
+ this.tableDataDialog = []
+ val.forEach(i => {
+ this.tableDataDialog.push(
+ {
+ code: i,
+ name: this.checkSelectArr.find(j => j.code === i).name,
+ description: arrCheckcode.includes(i) ? arr.find(j => j.code === i).description : this.checkSelectArr.find(j => j.code === i).description
+ }
+ )
+ })
+ }
+ }
+ },
+ created() {
+ this.handleRequest()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+
+ tableColumnUpdate(val, isCopyTrue) {
+ if (isCopyTrue) {
+ this.tableColumnSettingsArray = val
+ }
+ this.tableTimeStampKey = new Date().getTime()
+
+ this.$refs.tableDataRef.doLayout()
+ },
+ handleRequest() {
+ this.getMouldRepairStandArdSearch().then(res => {
+ if (res.code === '200') {
+ this.getMouldRepairItemSelect()
+ }
+ })
+ },
+ async getMouldRepairStandArdSearch() {
+ const res = await MouldRepairStandArdSearch(this.form)
+ this.tableData = res.data
+ this.total = res.count
+ return { code: res.code }
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getMouldRepairStandArdSearch()
+ },
+ // 鏌ヨ
+ search() {
+ this.getMouldRepairStandArdSearch()
+ },
+
+ // 閲嶇疆
+ reset() {
+ this.form.repairstandcode = ''
+ this.form.repairstandname = ''
+ this.form.repairstandescr = ''
+ this.getMouldRepairStandArdSearch()
+ },
+
+ async getMouldRepairItemSelect() {
+ const { data: res } = await MouldRepairItemSelect()
+ this.checkSelectArr = res
+ },
+
+ // 鏂板鎸夐挳
+ add(operation) {
+ this.operation = operation
+ this.dialogVisible = true
+ this.$nextTick(() => {
+ this.$refs.tableDataDialogRef.doLayout()
+ })
+ },
+ // 淇敼鎸夐挳
+ edit(operation, row) {
+ this.operation = operation
+ this.getViewMouldRepairStanedSearch(row.code)
+ this.dialogVisible = true
+ this.$nextTick(() => {
+ this.$refs.tableDataDialogRef.doLayout()
+ })
+ },
+ // 淇敼鍓嶈姹傛帴鍙�
+ async getViewMouldRepairStanedSearch(repairstand_code) {
+ const { data: res } = await ViewMouldRepairStanedSearch({ repairstand_code })
+ this.tableDataDialog = res.data
+ this.checkSelectedValue = res.data.map(i => i.code)
+
+ this.dialogForm.code = res.code
+ this.dialogForm.name = res.name
+ this.dialogForm.description = res.description
+
+ this.tableDataDialog.forEach(item => {
+ item.description = item.chkdesc
+ })
+ },
+ // 鍒犻櫎鎸夐挳
+ async del(row) {
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ DeleteMouldRepairStaned({ repairstand_code: row.code }).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('鍒犻櫎鎴愬姛!')
+ if (this.form.page > 1 && this.tableData.length === 1) {
+ this.form.page--
+ }
+ this.getMouldRepairStandArdSearch()
+ }
+ })
+ }).catch(() => {
+ this.$notify.info('宸插彇娑堝垹闄�')
+ })
+ },
+
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm.code = ''
+ this.dialogForm.name = ''
+ this.dialogForm.description = ''
+ this.tableDataDialog = []
+ this.checkSelectedValue = []
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ if (this.tableDataDialog.length === 0) {
+ return this.$message.info('淇濆吇椤逛俊鎭笉鑳戒负绌猴紒')
+ }
+
+ const Data = []
+ this.tableDataDialog.forEach((i, index) => {
+ Data.push({
+ repairitem_seq: index + 1,
+ repairitem_code: i.code,
+ repairitem_name: i.name,
+ repairitem_descr: i.description
+ // cycle: '',
+ // isscan: ''
+ })
+ })
+ const data = {
+ 'code': this.dialogForm.code,
+ 'name': this.dialogForm.name,
+ 'description': this.dialogForm.description,
+ 'Data': Data
+ }
+
+ this.$store.state.app.buttonIsDisabled = true
+ AddUpdateMouldRepairStandArd(data, this.operation === 'add' ? 'Add' : 'Update').then(res => {
+ if (res.code === '200') {
+ this.dialogVisible = false
+ this.$notify.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ this.getMouldRepairStandArdSearch()
+ this.$store.state.app.buttonIsDisabled = false
+ } else {
+ this.$notify.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ }
+ })
+ }
+ })
+ },
+
+ // 鍏宠仈妯″叿鐐瑰嚮
+ async connectClick(row) {
+ const { data: res } = await RepairStanedAssociationMould({ repairstand_code: row.code })
+ this.repairstand_code = row.code
+
+ const keySelected = []
+ res.forEach(i => {
+ i.parentid = '-1'
+ i.name = i.code + ' / ' + i.name
+
+ if (i.flag === 'Y') {
+ keySelected.push(i.code)
+ }
+ })
+ this.tree = arrayToTree(this.tree.concat(res), {
+ parentProperty: 'parentid',
+ customID: 'code',
+ childrenProperty: 'children'
+ })
+ this.mouldDialogVisible = true
+ this.$nextTick(() => {
+ this.$refs.tree.setCheckedKeys(keySelected)
+ })
+ },
+ filterNode(value, data) {
+ if (!value) return true
+ return data.name.indexOf(value) !== -1
+ },
+ handleMouldClose() {
+ this.tree = [
+ {
+ code: '-1',
+ name: '鍏ㄩ儴'
+ }
+ ]
+ },
+ mouldDialogVisibleCancel() {
+ this.mouldDialogVisible = false
+ },
+ mouldDialogVisibleConfirm() {
+ const treeKey = this.$refs.tree.getCheckedKeys()
+ const arr = []
+ this.tree[0].children.forEach(i => {
+ // i.flag = treeKey.includes(i.code) ? 'Y' : 'N'
+ if (treeKey.includes(i.code)) {
+ arr.push({
+ code: i.code,
+ name: i.name.split('/')[1].trim()
+ })
+ }
+ })
+
+ this.$store.state.app.buttonIsDisabled = true
+ SaveRepairStanedAssociationMould(arr, this.repairstand_code).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('缁戝畾鎴愬姛锛�')
+ this.mouldDialogVisible = false
+ this.getMouldRepairStandArdSearch()
+ this.$store.state.app.buttonIsDisabled = false
+ } else {
+ this.$store.state.app.buttonIsDisabled = false
+ this.$notify.error('缁戝畾澶辫触锛�')
+ }
+ })
+ },
+
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 205
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ }
+
+ }
+}
+</script>
+<style scoped lang="scss">
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+</style>
diff --git a/src/views/mouldManager/mouldOutInRecord.vue b/src/views/mouldManager/mouldOutInRecord.vue
new file mode 100644
index 0000000..6d03f99
--- /dev/null
+++ b/src/views/mouldManager/mouldOutInRecord.vue
@@ -0,0 +1,496 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup">
+ <el-button v-waves type="primary" icon="el-icon-download" @click="download">瀵煎嚭</el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="妯″叿缂栫爜" style=" display: flex;">
+ <el-input v-model="form.mouldcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="妯″叿鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.mouldname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="瑙勬牸鍨嬪彿" style=" display: flex;">
+ <el-input v-model="form.mouldspec" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+
+ <el-form-item label="鎿嶄綔绫诲瀷" style=" display: flex;">
+ <el-select v-model="form.type" style="width: 200px" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in typeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+
+ <el-form-item v-show="isExpandForm" label="浠撳簱缂栫爜" style=" display: flex;">
+ <el-input v-model="form.warehousecode" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="搴撲綅缂栫爜" style=" display: flex;">
+ <el-input v-model="form.locationcode" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鎿嶄綔浜哄憳" style=" display: flex;">
+ <el-input v-model="form.operuser" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item
+ v-show="isExpandForm"
+ style="display: flex;align-items: center"
+ label="鎿嶄綔鏃堕棿"
+ >
+ <el-date-picker
+ v-model="form.operdate"
+ type="daterange"
+ range-separator="~"
+ class="timeMini"
+ size="mini"
+ style="width: 200px;display: flex;line-height: 34px;height: 34px;"
+ :clearable="false"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ />
+ <!-- font-size: 14px!important;-->
+ <!-- :picker-options="expireTimeOption"-->
+
+ </el-form-item>
+
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+
+ <el-table-column
+ prop="mould_code"
+ label="妯″叿缂栫爜"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="mould_name"
+ label="妯″叿鍚嶇О"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="mould_spec"
+ label="浜у搧瑙勬牸"
+ show-tooltip-when-overflow
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.mould_spec">{{ row.mould_spec }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="type"
+ label="鎿嶄綔绫诲瀷"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="warehouse_code"
+ label="浠撳簱缂栫爜"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="warehouse_name"
+ label="浠撳簱鍚嶇О"
+ sortable="custom"
+ />
+
+ <el-table-column
+ prop="location_code"
+ label="搴撲綅缂栫爜"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="location_name"
+ label="搴撲綅鍚嶇О"
+ sortable="custom"
+ />
+
+ <el-table-column
+ prop="lm_user"
+ label="鎿嶄綔浜�"
+ sortable="custom"
+ />
+
+ <el-table-column
+ prop="lm_date"
+ label="鎿嶄綔鏃堕棿"
+ sortable="custom"
+ />
+
+ <!-- <el-table-column-->
+ <!-- label="鎿嶄綔"-->
+ <!-- width="120"-->
+ <!-- fixed="right"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div class="operationClass">-->
+
+ <!-- <el-tooltip class="item" effect="dark" content="鏄庣粏" placement="top">-->
+ <!-- <i-->
+ <!-- class="el-icon-tickets"-->
+ <!-- :style="{color:$store.state.settings.theme}"-->
+ <!-- style="cursor: pointer;margin-right: 15px"-->
+ <!-- @click="edit(row)"-->
+ <!-- />-->
+ <!-- </el-tooltip>-->
+ <!-- </div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getMouldInOutMachinesSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ title="鏄庣粏"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <div class="elTableDiv" style="margin-top: 0">
+ <el-table
+ :data="tableDataDialog"
+ :height="500+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:500+'px'}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="seq"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="itemcode"
+ label="閮ㄤ綅缂栫爜"
+ />
+ <el-table-column
+ prop="itemname"
+ label="閮ㄤ綅鍚嶇О"
+ />
+ <el-table-column
+ prop="result"
+ label="鐐规缁撴灉"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.result==='OK'" style="display: flex;align-items: center">
+ <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />
+ 姝e父
+ </div>
+ <div v-if="row.result==='NG'" style="display: flex;align-items: center">
+ <i class="el-icon-info" style="margin-right: 2px" />
+ 寮傚父
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="chk_value"
+ label="鏁板��"
+ >
+ <template slot-scope="{row}">
+ {{ row.chk_value ? row.chk_value : '/' }}
+ </template>
+ </el-table-column>
+ <!-- <el-table-column-->
+ <!-- prop="remark"-->
+ <!-- label="澶囨敞"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- />-->
+ </el-table>
+ </div>
+
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>-->
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import { handleDatetime } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import {
+ MouldCheckSubTakeSearch,
+ MouldCheckTakeOutExcel,
+ MouldInOutMachinesOutExcel,
+ MouldInOutMachinesSearch
+} from '@/api/MouldManager'
+
+export default {
+ name: 'Zzjg',
+ components: {
+ Pagination
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ mouldcode: '',
+ mouldname: '',
+ mouldspec: '',
+ warehousecode: '',
+ operuser: '',
+ locationcode: '',
+ type: '',
+ operdate: '',
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ typeArr: [
+ { code: 'IN', name: '鍏ュ簱' },
+ { code: 'OUT', name: '鍑哄簱' }
+ ],
+ total: 10,
+ tableData: [],
+ dialogVisible: false,
+ tableDataDialog: []
+
+ }
+ },
+
+ created() {
+ this.getMouldInOutMachinesSearch()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ async getMouldInOutMachinesSearch() {
+ let tempDate = this.form.operdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+
+ const data = {
+ mouldcode: this.form.mouldcode,
+ mouldname: this.form.mouldname,
+ mouldspec: this.form.mouldspec,
+ warehousecode: this.form.warehousecode,
+ locationcode: this.form.locationcode,
+ type: this.form.type,
+ operuser: this.form.operuser,
+ operdate: tempDate,
+ prop: this.form.prop,
+ order: this.form.order,
+ page: this.form.page,
+ rows: this.form.rows
+ }
+ // console.log(data, 1)
+ const res = await MouldInOutMachinesSearch(data)
+ this.tableData = res.data
+ this.total = res.count
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getMouldInOutMachinesSearch()
+ },
+ async download() {
+ let tempDate = this.form.operdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+
+ const data = {
+ mouldcode: this.form.mouldcode,
+ mouldname: this.form.mouldname,
+ mouldspec: this.form.mouldspec,
+ warehousecode: this.form.warehousecode,
+ operuser: this.form.operuser,
+ locationcode: this.form.locationcode,
+ type: this.form.type,
+ operdate: tempDate
+ }
+
+ const { data: res } = await MouldInOutMachinesOutExcel(data)
+ window.location.href = res
+ },
+ // 鏌ヨ
+ search() {
+ this.getMouldInOutMachinesSearch()
+ },
+
+ // 閲嶇疆
+ reset() {
+ this.form.mouldcode = ''
+ this.form.mouldname = ''
+ this.form.mouldspec = ''
+ this.form.warehousecode = ''
+ this.form.locationcode = ''
+ this.form.type = ''
+ this.form.operuser = ''
+ this.form.operdate = ''
+ this.getMouldInOutMachinesSearch()
+ },
+
+ // 淇敼鎸夐挳
+ async edit(row) {
+ this.dialogVisible = true
+
+ const { data: res } = await MouldCheckSubTakeSearch({ id: row.id })
+ this.tableDataDialog = res
+
+ // this.$nextTick(() => {
+ // this.dialogForm.OrgCode = row.org_code
+ // this.dialogForm.OrgName = row.org_name
+ // this.dialogForm.SupUnit = row.parent_id
+ // })
+ },
+
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.tableDataDialog = []
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 255
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ }
+ }
+}
+</script>
+
+<style scoped lang="scss">
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+::v-deep .el-range__icon {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-separator {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-input {
+ font-size: 14px;
+}
+
+::v-deep .el-range-separator {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+::v-deep .el-progress-bar__innerText {
+ display: none !important;
+}
+</style>
+<style>
+
+.el-table .custom-row {
+ background: #f8f8fa;
+}
+</style>
diff --git a/src/views/mouldManager/mouldRepairRecord.vue b/src/views/mouldManager/mouldRepairRecord.vue
new file mode 100644
index 0000000..2ae6510
--- /dev/null
+++ b/src/views/mouldManager/mouldRepairRecord.vue
@@ -0,0 +1,728 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
+ <el-button v-waves type="primary" icon="el-icon-download" @click="download">瀵煎嚭</el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+
+ <el-form-item label="妯″叿缂栫爜" style=" display: flex;">
+ <el-input v-model="form.mouldcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="妯″叿鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.mouldname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鐢熶骇杞﹂棿" style=" display: flex;">
+ <el-input v-model="form.mouldspec" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+
+ <el-form-item label="鎶ヤ慨浜哄憳" style=" display: flex;">
+ <el-input v-model="form.reportuser" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="缁翠慨浜哄憳" style=" display: flex;">
+ <el-input v-model="form.repairuser" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="楠岃瘉浜哄憳" style=" display: flex;">
+ <el-input v-model="form.vrifcatuser" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鎶ヤ慨鏃堕棿" style=" display: flex;align-items: center">
+ <el-date-picker
+ v-model="form.reportdate"
+ type="daterange"
+ :clearable="false"
+ class="timeMini"
+ range-separator="~"
+ start-placeholder="寮�濮嬫棩鏈�"
+ style="width: 200px;display: flex;line-height: 34px ;height: 34px ;"
+ end-placeholder="缁撴潫鏃ユ湡"
+ size="mini"
+ />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="缁翠慨鏃堕棿" style=" display: flex;align-items: center">
+ <el-date-picker
+ v-model="form.repairdate"
+ type="daterange"
+ :clearable="false"
+ class="timeMini"
+ range-separator="~"
+ start-placeholder="寮�濮嬫棩鏈�"
+ style="width: 200px;display: flex;line-height: 34px ;height: 34px ;"
+ end-placeholder="缁撴潫鏃ユ湡"
+ size="mini"
+ />
+ </el-form-item>
+ <el-form-item
+ v-show="isExpandForm"
+ label="楠岃瘉鏃堕棿"
+ style=" display: flex;align-items: center"
+ >
+ <el-date-picker
+ v-model="form.vrifcatdate"
+ type="daterange"
+ :clearable="false"
+ class="timeMini"
+ range-separator="~"
+ start-placeholder="寮�濮嬫棩鏈�"
+ style="width: 200px;display: flex;line-height: 34px ;height: 34px ;"
+ end-placeholder="缁撴潫鏃ユ湡"
+ size="mini"
+ />
+ </el-form-item>
+ </div>
+ <div class="bodySearchReset" :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}">
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <!-- <TableColumnSettings-->
+ <!-- :list1="tableColumnSettingsArray"-->
+ <!-- @tableColumnUpdate="tableColumnUpdate"-->
+ <!-- />-->
+ <!-- :key="tableTimeStampKey"-->
+
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+80)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+80)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <!-- :key="item.id"-->
+
+ <el-table-column
+ v-for="item in tableColumnSettingsArray"
+ v-if="item.show"
+ :sortable="item.sortable"
+ :prop="item.prop"
+ :min-width="item.minWidth"
+ :label="item.label"
+ :width="item.width"
+ show-tooltip-when-overflow
+ :fixed="item.fixed?(item.fixed==='left'?'left':'right'):false"
+ >
+ <template slot-scope="{row}">
+ <div v-if="!row[item.prop]">/</div>
+ <div v-else-if="item.prop==='verify_result'">
+ <div v-if="row[item.prop]==='閫氳繃'" style="display: flex;align-items: center">
+ <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />
+ 閫氳繃
+ </div>
+ <div v-if="row[item.prop]==='涓嶉�氳繃'" style="display: flex;align-items: center">
+ <i class="el-icon-info" style="margin-right: 2px" />
+ 涓嶉�氳繃
+ </div>
+ </div>
+ <div v-else>{{ row[item.prop] }}</div>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ label="鏄庣粏"
+ width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <i
+ class="el-icon-tickets"
+ :style="{color:$store.state.settings.theme}"
+ style="cursor: pointer;margin-right: 15px"
+ @click="edit('edit',row)"
+ />
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getMouldUpdateSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ title="缁翠慨鏄庣粏"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="7vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <div style="font-size:16px;">
+ <div style="margin-bottom: 20px">
+ <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" /> 妯″叿鎶ヤ慨淇℃伅锛�
+ </div>
+ <div style="display: flex;flex-direction: column;margin-left: 40px">
+ <div style="margin-bottom: 10px">鏁呴殰鏉ユ簮锛歿{ dialogData1.faultsource }}</div>
+ <div style="margin-bottom: 10px">鏁呴殰鎻忚堪锛歿{ dialogData1.faultdescr }}</div>
+ <div v-if="dialogData1.faultimage" style="display: flex;margin-bottom: 10px">鏁呴殰鍥剧墖锛�
+ <div v-for="item in dialogData1.faultimage">
+ <img
+ style="width: 90px;margin-right: 10px;border-radius: 10px"
+ :src="baseUrl+item.img1url"
+ alt=""
+ @click="handlePictureCardPreview(baseUrl+item.img1url,'妯″叿鎶ヤ慨/鏁呴殰鍥剧墖')"
+ >
+ </div>
+ </div>
+ </div>
+ <div style="margin-bottom: 20px">
+ <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" /> 妯″叿缁翠慨淇℃伅锛�
+ </div>
+ <div style="display: flex;flex-direction: column;margin-left: 40px">
+ <div style="margin-bottom: 10px">鏁呴殰鎻忚堪锛歿{ dialogData2.faultdescr }}</div>
+ <div v-if="dialogData2.repairimage" style="display: flex;margin-bottom: 10px">鏁呴殰鍥剧墖锛�
+
+ <div v-for="item in dialogData2.repairimage" v-if="item.img1url!==''">
+ <img
+ style="width: 90px;margin-right: 10px;border-radius: 10px"
+ :src="baseUrl+item.img1url"
+ alt=""
+ @click="handlePictureCardPreview(baseUrl+item.img1url,'妯″叿缁翠慨/鏁呴殰鍥剧墖')"
+ >
+ </div>
+ </div>
+ <div style="margin-bottom: 10px">鍋滄満缁翠慨锛歿{ dialogData2.isstoprepair === 'N' ? '鍚�' : '鏄�' }}</div>
+ <div v-if="dialogData2.repaircontent" style="margin-bottom: 10px">缁翠慨鍐呭锛歿{ dialogData2.repaircontent }}</div>
+ <!-- <div v-if="dialogData2.repairpart" style="margin-bottom: 10px">鏇存崲澶囦欢锛歿{ dialogData2.repairpart }}</div>-->
+ <!-- <div v-if="dialogData2.repairimage" style="display: flex;margin-bottom: 10px">澶囦欢鍥剧墖锛�-->
+ <!-- <div v-for="item in dialogData2.repairimage" v-if="item.img2url!==''">-->
+ <!-- <img-->
+ <!-- style="width: 100px;margin-right: 10px"-->
+ <!-- :src="baseUrl+item.img2url"-->
+ <!-- alt=""-->
+ <!-- @click="handlePictureCardPreview(baseUrl+item.img2url,'妯″叿缁翠慨/澶囦欢鍥剧墖')"-->
+ <!-- >-->
+ <!-- </div>-->
+ <!-- </div>-->
+ </div>
+ <div style="margin-bottom: 20px">
+ <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" /> 妯″叿缁翠慨楠岃瘉淇℃伅锛�
+ </div>
+ <div style="display: flex;flex-direction: column;margin-left: 40px">
+ <div style="margin-bottom: 10px;display: flex;">楠岃瘉缁撴灉锛�
+
+ <i
+ v-if="isResult==='閫氳繃'"
+ class="el-icon-success"
+ :style="{color:$store.state.settings.theme}"
+ style="margin-right: 2px"
+ />
+ <i v-if="isResult==='涓嶉�氳繃'" class="el-icon-info" style="margin-right: 2px" />
+
+ {{ isResult }}
+ </div>
+
+ </div>
+ </div>
+ <!-- 鍥剧墖棰勮瀵硅瘽妗�-->
+ <el-dialog
+ title="鍥剧墖棰勮"
+ :visible.sync="pictureVisible"
+ width="800px"
+ top="7vh"
+ append-to-body
+ @close="pictureHandleClose"
+ >
+ <div style="font-size: 16px;margin-bottom: 10px">
+ <i class="el-icon-s-comment" :style="{color:$store.state.settings.theme}" /> {{ pictureName }}
+ </div>
+ <div style="display: flex;justify-content: center">
+ <img :key="pictureUrl" width="50%" :src="pictureUrl" alt="">
+ </div>
+
+ <el-tooltip class="item" effect="light" content="涓婁竴寮�" placement="top">
+ <div
+ v-if="pictureUrlAll.findIndex(item => item.url === pictureUrl)!==0"
+ style="position: absolute;top: 48%;left: 3.5%;"
+ ><i
+ :style="{color:$store.state.settings.theme}"
+ style="cursor: pointer;font-size: 20px"
+ class="el-icon-d-arrow-left"
+ @click="arrowLeftClick(pictureUrl,pictureName)"
+ /></div>
+ </el-tooltip>
+ <el-tooltip class="item" effect="light" content="涓嬩竴寮�" placement="top">
+ <div
+ v-if="pictureUrlAll.findIndex(item => item.url === pictureUrl)!==pictureUrlAll.length-1"
+ style="position: absolute;top: 48%;right: 3.5%;"
+ >
+ <i
+ :style="{color:$store.state.settings.theme}"
+ style="cursor: pointer;font-size: 20px"
+ class="el-icon-d-arrow-right"
+ @click="arrowRightClick(pictureUrl,pictureName)"
+ /></div>
+ </el-tooltip>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="pictureVisible=false">杩� 鍥�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">杩� 鍥�</el-button>
+ <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>-->
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import { handleDatetime } from '@/utils/global'
+// import { DeviceUpdateOutExcel, MouldUpdateSearch, DeviceUpdateSubSearch } from '@/api/deviceManager'
+// import { ShopSearch } from '@/api/kanbanManager'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import TableColumnSettings from '@/components/TableColumnSettings'
+import { MouldUpdateSearch, MouldUpdateSubSearch } from '@/api/MouldManager'
+
+export default {
+ name: 'Zzjg',
+ components: {
+ Pagination, TableColumnSettings
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ mouldspec: '', // 瑙勬牸鍨嬪彿
+ mouldcode: '', // 妯″叿缂栫爜
+ mouldname: '', // 妯″叿鍚嶇О
+ reportuser: '', // 鎶ヤ慨浜哄憳
+ repairuser: '', // 缁翠慨浜哄憳
+ vrifcatuser: '', // 楠岃瘉浜哄憳
+ reportdate: '', // 鎶ヤ慨鏃堕棿
+ repairdate: '', // 缁翠慨鏃堕棿
+ vrifcatdate: '', // 楠岃瘉鏃堕棿
+ prop: 'repair_code', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ wkshopSelectArr: [],
+ total: 10,
+ tableData: [],
+
+ tableColumnSettingsArray: [
+ // { minWidth: false, width: 55, prop: 'id', label: 'id', id: 1, show: false, fixed: false, sortable: false }, // 闅愯棌鍒� show: false闅愯棌锛宼rue鏄剧ず
+ { minWidth: false, width: 55, prop: 'rowNum', label: '搴忓彿', id: 2, show: true, fixed: 'left', sortable: false }, // custom
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'repair_code',
+ label: '缁翠慨鍗曞彿',
+ id: 3,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'mould_code',
+ label: '妯″叿缂栫爜',
+ id: 4,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'mould_name',
+ label: '妯″叿鍚嶇О',
+ id: 5,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: 110,
+ width: false,
+ prop: 'mould_spec',
+ label: '瑙勬牸鍨嬪彿',
+ id: 6,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: false,
+ width: 110,
+ prop: 'request_person',
+ label: '鎶ヤ慨浜�',
+ id: 8,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: false,
+ width: 160,
+ prop: 'request_date',
+ label: '淇濅慨鏃堕棿',
+ id: 9,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'repair_person',
+ label: '缁翠慨浜�',
+ id: 10,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: false,
+ width: 160,
+ prop: 'repair_date',
+ label: '缁翠慨瀹屾垚鏃堕棿',
+ id: 11,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: false,
+ width: 110,
+ prop: 'cycleDate',
+ label: '缁翠慨鏃堕暱',
+ id: 12,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: false,
+ width: 110,
+ prop: 'verify_person',
+ label: '楠岃瘉浜�',
+ id: 13,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 160,
+ prop: 'verify_date',
+ label: '楠岃瘉鏃堕棿',
+ id: 14,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'verify_result',
+ label: '楠岃瘉缁撴灉',
+ id: 15,
+ show: true,
+ fixed: false,
+ sortable: true
+ }
+ ],
+ tableTimeStampKey: new Date().getTime(), // 琛ㄦ牸key
+
+ dialogVisible: false,
+ dialogData1: {},
+ dialogData2: {},
+ isResult: '', // 楠岃瘉缁撴灉
+ operation: '',
+
+ baseUrl: '', // 鍥剧墖棰勮鍦板潃鍓嶇紑
+
+ pictureVisible: false, // 鍥剧墖棰勮瀵硅瘽妗�
+ pictureUrl: '', // 鍥剧墖棰勮Url
+ pictureName: '', // 鍥剧墖棰勮鍚嶇О
+ pictureUrlAll: [], // 鍥剧墖棰勮鍦板潃鐨勬墍鏈塙rl
+
+ title_value: '鏁版嵁瀵煎叆 / 鐐规閮ㄤ綅',
+ code: '4',
+ shows: false
+
+ }
+ },
+
+ created() {
+ this.getMouldUpdateSearch()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+
+ this.baseUrl = process.env.VUE_APP_BASE_API_FILE
+ },
+ methods: {
+ tableColumnUpdate(val, isCopyTrue) {
+ if (isCopyTrue) {
+ this.tableColumnSettingsArray = val
+ }
+ this.tableTimeStampKey = new Date().getTime()
+
+ this.$refs.tableDataRef.doLayout()
+ },
+
+ async getMouldUpdateSearch() {
+ let reportdate = this.form.reportdate
+ if (reportdate.length > 0) {
+ reportdate = handleDatetime(reportdate[0]) + '~' + handleDatetime(reportdate[1])
+ }
+ let repairdate = this.form.repairdate
+ if (repairdate.length > 0) {
+ repairdate = handleDatetime(repairdate[0]) + '~' + handleDatetime(repairdate[1])
+ }
+ let vrifcatdate = this.form.vrifcatdate
+ if (vrifcatdate.length > 0) {
+ vrifcatdate = handleDatetime(vrifcatdate[0]) + '~' + handleDatetime(vrifcatdate[1])
+ }
+ const data = {
+ mouldspec: this.form.mouldspec, // 瑙勬牸鍨嬪彿
+ mouldcode: this.form.mouldcode, // 妯″叿缂栫爜
+ mouldname: this.form.mouldname, // 妯″叿鍚嶇О
+ reportuser: this.form.reportuser, // 鎶ヤ慨浜哄憳
+ repairuser: this.form.repairuser, // 缁翠慨浜哄憳
+ vrifcatuser: this.form.vrifcatuser, // 楠岃瘉浜哄憳
+ reportdate, // 鎶ヤ慨鏃堕棿
+ repairdate, // 缁翠慨鏃堕棿
+ vrifcatdate, // 楠岃瘉鏃堕棿
+ prop: 'repair_code', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ }
+
+ const res = await MouldUpdateSearch(data)
+ this.tableData = res.data
+ this.total = res.count
+ return { code: res.code }
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getMouldUpdateSearch()
+ },
+ // 鏌ヨ
+ search() {
+ this.getMouldUpdateSearch()
+ },
+
+ // 閲嶇疆
+ reset() {
+ this.form.mouldspec = ''
+ this.form.mouldcode = ''
+ this.form.mouldname = ''
+ this.form.reportuser = ''
+ this.form.repairuser = ''
+ this.form.vrifcatuser = ''
+ this.form.reportdate = ''
+ this.form.repairdate = ''
+ this.form.vrifcatdate = ''
+ this.getMouldUpdateSearch()
+ },
+ // 淇敼鎸夐挳
+ async edit(operation, row) {
+ this.operation = operation
+ this.dialogVisible = true
+
+ const { data: res } = await MouldUpdateSubSearch({ repair_code: row.repair_code })
+ this.dialogData1 = res.data1
+ this.dialogData2 = res.data2
+ this.isResult = row.verify_result
+
+ // 妯″叿鎶ヤ慨鍥剧墖闆嗗悎
+ if (this.dialogData1.faultimage) {
+ this.dialogData1.faultimage.forEach(item => {
+ this.pictureUrlAll.push(
+ { url: this.baseUrl + item.img1url, name: '妯″叿鎶ヤ慨/鏁呴殰鍥剧墖' }
+ )
+ })
+ }
+ // 妯″叿缁翠慨鍥剧墖闆嗗悎
+ if (this.dialogData2.repairimage) {
+ this.dialogData2.repairimage.forEach(item => {
+ this.pictureUrlAll.push(
+ {
+ url: item.img1url ? this.baseUrl + item.img1url : this.baseUrl + item.img2url,
+ name: item.img1url ? '妯″叿缁翠慨/鏁呴殰鍥剧墖' : '妯″叿缁翠慨/澶囦欢鍥剧墖'
+ }
+ )
+ })
+ }
+ },
+ handlePictureCardPreview(url, name) {
+ this.pictureVisible = true
+ this.pictureUrl = url
+ this.pictureName = name
+ },
+ arrowLeftClick(pictureUrl, pictureName) {
+ this.pictureUrlAll.forEach((item, index) => {
+ if (item.url === pictureUrl) {
+ this.pictureUrl = this.pictureUrlAll[index - 1].url
+ this.pictureName = this.pictureUrlAll[index - 1].name
+ }
+ })
+ },
+ arrowRightClick(pictureUrl, pictureName) {
+ this.pictureUrlAll.forEach((item, index) => {
+ if (item.url === pictureUrl) {
+ this.pictureUrl = this.pictureUrlAll[index + 1].url
+ this.pictureName = this.pictureUrlAll[index + 1].name
+ }
+ })
+ },
+ pictureHandleClose() {
+ this.pictureUrl = ''
+ this.pictureName = ''
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogData1 = {}
+ this.dialogData2 = {}
+ this.isResult = ''
+ this.pictureUrlAll = []
+ },
+ async download() {
+ let reportdate = this.form.reportdate
+ if (reportdate.length > 0) {
+ reportdate = handleDatetime(reportdate[0]) + '~' + handleDatetime(reportdate[1])
+ }
+ let repairdate = this.form.repairdate
+ if (repairdate.length > 0) {
+ repairdate = handleDatetime(repairdate[0]) + '~' + handleDatetime(repairdate[1])
+ }
+ let vrifcatdate = this.form.vrifcatdate
+ if (vrifcatdate.length > 0) {
+ vrifcatdate = handleDatetime(vrifcatdate[0]) + '~' + handleDatetime(vrifcatdate[1])
+ }
+ const data = {
+ mouldspec: this.form.mouldspec, // 瑙勬牸鍨嬪彿
+ mouldcode: this.form.mouldcode, // 妯″叿缂栫爜
+ mouldname: this.form.mouldname, // 妯″叿鍚嶇О
+ reportuser: this.form.reportuser, // 鎶ヤ慨浜哄憳
+ repairuser: this.form.repairuser, // 缁翠慨浜哄憳
+ vrifcatuser: this.form.vrifcatuser, // 楠岃瘉浜哄憳
+ reportdate, // 鎶ヤ慨鏃堕棿
+ repairdate, // 缁翠慨鏃堕棿
+ vrifcatdate // 楠岃瘉鏃堕棿
+ }
+ const { data: res } = await DeviceUpdateOutExcel(data)
+ window.location.href = res
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 295
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ }
+ }
+}
+</script>
+
+<style scoped lang="scss">
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+::v-deep .el-range__icon {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-separator {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-input {
+ font-size: 14px;
+}
+
+::v-deep .el-range-separator {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+::v-deep .el-progress-bar__innerText {
+ display: none !important;
+}
+</style>
+<style>
+
+.el-table .custom-row {
+ background: #f8f8fa;
+}
+</style>
diff --git a/src/views/mouldManager/mouldUpDownRecord.vue b/src/views/mouldManager/mouldUpDownRecord.vue
new file mode 100644
index 0000000..479a653
--- /dev/null
+++ b/src/views/mouldManager/mouldUpDownRecord.vue
@@ -0,0 +1,500 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup">
+ <el-button v-waves type="primary" icon="el-icon-download" @click="download">瀵煎嚭</el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="妯″叿缂栫爜" style=" display: flex;">
+ <el-input v-model="form.mouldcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="妯″叿鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.mouldname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="瑙勬牸鍨嬪彿" style=" display: flex;">
+ <el-input v-model="form.mouldspec" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+
+ <el-form-item label="鎿嶄綔绫诲瀷" style=" display: flex;">
+ <el-select v-model="form.type" style="width: 200px" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in typeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+
+ <el-form-item v-show="isExpandForm" label="璁惧缂栫爜" style=" display: flex;">
+ <el-input v-model="form.devicecode" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鎿嶄綔浜哄憳" style=" display: flex;">
+ <el-input v-model="form.operuser" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item
+ v-show="isExpandForm"
+ style="display: flex;align-items: center"
+ label="鎿嶄綔鏃堕棿"
+ >
+ <el-date-picker
+ v-model="form.operdate"
+ type="daterange"
+ range-separator="~"
+ class="timeMini"
+ size="mini"
+ style="width: 200px;display: flex;line-height: 34px;height: 34px;"
+ :clearable="false"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ />
+ <!-- font-size: 14px!important;-->
+ <!-- :picker-options="expireTimeOption"-->
+
+ </el-form-item>
+
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+
+ <el-table-column
+ prop="mould_code"
+ label="妯″叿缂栫爜"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="mould_name"
+ label="妯″叿鍚嶇О"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="mould_spec"
+ label="浜у搧瑙勬牸"
+ show-tooltip-when-overflow
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.mould_spec">{{ row.mould_spec }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="type"
+ label="鎿嶄綔绫诲瀷"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="usecount_life"
+ label="鍓╀綑瀵垮懡"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ {{ row.usecount_life?row.usecount_life:'/' }}
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="eqp_code"
+ label="璁惧缂栫爜"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="eqp_name"
+ label="璁惧鍚嶇О"
+ sortable="custom"
+ />
+
+ <el-table-column
+ prop="lm_user"
+ label="鎿嶄綔浜�"
+ sortable="custom"
+ />
+ <!-- <el-table-column-->
+ <!-- prop="chk_result"-->
+ <!-- label="鐐规缁撴灉"-->
+ <!-- sortable="custom"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <el-tag v-if="row.chk_result==='OK'" size="small" type="success">鍚堟牸</el-tag>-->
+ <!-- <el-tag v-if="row.chk_result==='NG'" size="small" type="danger">寮傚父</el-tag>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+
+ <el-table-column
+ prop="lm_date"
+ label="鎿嶄綔鏃堕棿"
+ sortable="custom"
+ />
+
+ <!-- <el-table-column-->
+ <!-- label="鎿嶄綔"-->
+ <!-- width="120"-->
+ <!-- fixed="right"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div class="operationClass">-->
+
+ <!-- <el-tooltip class="item" effect="dark" content="鏄庣粏" placement="top">-->
+ <!-- <i-->
+ <!-- class="el-icon-tickets"-->
+ <!-- :style="{color:$store.state.settings.theme}"-->
+ <!-- style="cursor: pointer;margin-right: 15px"-->
+ <!-- @click="edit(row)"-->
+ <!-- />-->
+ <!-- </el-tooltip>-->
+ <!-- </div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getMouldUpDownMachinesSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ title="鏄庣粏"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <div class="elTableDiv" style="margin-top: 0">
+ <el-table
+ :data="tableDataDialog"
+ :height="500+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:500+'px'}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="seq"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="itemcode"
+ label="閮ㄤ綅缂栫爜"
+ />
+ <el-table-column
+ prop="itemname"
+ label="閮ㄤ綅鍚嶇О"
+ />
+ <el-table-column
+ prop="result"
+ label="鐐规缁撴灉"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.result==='OK'" style="display: flex;align-items: center">
+ <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />
+ 姝e父
+ </div>
+ <div v-if="row.result==='NG'" style="display: flex;align-items: center">
+ <i class="el-icon-info" style="margin-right: 2px" />
+ 寮傚父
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="chk_value"
+ label="鏁板��"
+ >
+ <template slot-scope="{row}">
+ {{ row.chk_value ? row.chk_value : '/' }}
+ </template>
+ </el-table-column>
+ <!-- <el-table-column-->
+ <!-- prop="remark"-->
+ <!-- label="澶囨敞"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- />-->
+ </el-table>
+ </div>
+
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>-->
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import { handleDatetime } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import {
+ MouldCheckSubTakeSearch,
+ MouldCheckTakeOutExcel,
+ MouldUpDownMachinesOutExcel,
+ MouldUpDownMachinesSearch
+} from '@/api/MouldManager'
+
+export default {
+ name: 'Zzjg',
+ components: {
+ Pagination
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ mouldcode: '',
+ mouldname: '',
+ mouldspec: '',
+ devicecode: '',
+ stanedname: '',
+ operuser: '',
+ type: '',
+ operdate: '',
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ typeArr: [
+ { code: 'UP', name: '涓婃満' },
+ { code: 'DOWN', name: '涓嬫満' }
+ ],
+ total: 10,
+ tableData: [],
+ dialogVisible: false,
+ tableDataDialog: []
+
+ }
+ },
+
+ created() {
+ this.getMouldUpDownMachinesSearch()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ async getMouldUpDownMachinesSearch() {
+ let tempDate = this.form.operdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+
+ const data = {
+ mouldcode: this.form.mouldcode,
+ mouldname: this.form.mouldname,
+ mouldspec: this.form.mouldspec,
+ devicecode: this.form.devicecode,
+ operuser: this.form.operuser,
+ type: this.form.type,
+ operdate: tempDate,
+ prop: this.form.prop,
+ order: this.form.order,
+ page: this.form.page,
+ rows: this.form.rows
+
+ }
+ console.log(data, 1)
+ const res = await MouldUpDownMachinesSearch(data)
+ this.tableData = res.data
+ this.total = res.count
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getMouldUpDownMachinesSearch()
+ },
+ async download() {
+ let tempDate = this.form.operdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+
+ const data = {
+ mouldcode: this.form.mouldcode,
+ mouldname: this.form.mouldname,
+ mouldspec: this.form.mouldspec,
+ devicecode: this.form.devicecode,
+ stanedname: this.form.stanedname,
+ operuser: this.form.operuser,
+ type: this.form.type,
+ operdate: tempDate
+ }
+
+ const { data: res } = await MouldUpDownMachinesOutExcel(data)
+ window.location.href = res
+ },
+ // 鏌ヨ
+ search() {
+ this.getMouldUpDownMachinesSearch()
+ },
+
+ // 閲嶇疆
+ reset() {
+ this.form.mouldcode = ''
+ this.form.mouldname = ''
+ this.form.mouldspec = ''
+ this.form.devicecode = ''
+ this.form.operuser = ''
+ this.form.type = ''
+ this.form.operdate = ''
+ this.getMouldUpDownMachinesSearch()
+ },
+
+ // 淇敼鎸夐挳
+ async edit(row) {
+ this.dialogVisible = true
+
+ const { data: res } = await MouldCheckSubTakeSearch({ id: row.id })
+ this.tableDataDialog = res
+
+ // this.$nextTick(() => {
+ // this.dialogForm.OrgCode = row.org_code
+ // this.dialogForm.OrgName = row.org_name
+ // this.dialogForm.SupUnit = row.parent_id
+ // })
+ },
+
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.tableDataDialog = []
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 255
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ }
+ }
+}
+</script>
+
+<style scoped lang="scss">
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+::v-deep .el-range__icon {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-separator {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-input {
+ font-size: 14px;
+}
+
+::v-deep .el-range-separator {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+::v-deep .el-progress-bar__innerText {
+ display: none !important;
+}
+</style>
+<style>
+
+.el-table .custom-row {
+ background: #f8f8fa;
+}
+</style>
diff --git a/src/views/produce/reportCorrect.vue b/src/views/produce/reportCorrect.vue
index 1e5626a..7df5531 100644
--- a/src/views/produce/reportCorrect.vue
+++ b/src/views/produce/reportCorrect.vue
@@ -1,11 +1,772 @@
-<template />
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+
+ <div class="bodyTopFormGroup" style="margin-top: 10px;">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="杞﹂棿鍚嶇О" style=" display: flex;">
+ <el-select
+ v-model="form.wkshopcode"
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in wkshopcodeArr"
+ :key="item.torg_code"
+ :label="item.torg_name"
+ :value="item.torg_code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="宸ュ崟缂栫爜" style=" display: flex;">
+ <el-input v-model="form.wo_code" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="浜у搧缂栫爜" style=" display: flex;">
+ <el-input v-model="form.partnumber" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="浜у搧鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.partname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="浜у搧瑙勬牸" style=" display: flex;">
+ <el-input v-model="form.partspec" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+
+ <el-form-item v-show="isExpandForm" label="鎶ュ伐浜哄憳" style=" display: flex;">
+ <el-input v-model="form.reportuser" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鎶ュ伐鏃堕棿" style=" display: flex;">
+ <el-date-picker
+ v-model="form.reportdate"
+ type="daterange"
+ range-separator="~"
+ class="timeMini"
+ size="mini"
+ style="width: 200px;"
+ :clearable="false"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ />
+ </el-form-item>
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="getMesOrderStepVerifySearch">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
+ border
+ row-class-name="custom-row"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <!-- <el-table-column-->
+ <!-- type="selection"-->
+ <!-- width="50"-->
+ <!-- :reserve-selection="true"-->
+ <!-- fixed-->
+ <!-- />-->
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="wo_code"
+ label="鎶ュ伐宸ュ崟"
+ sortable="custom"
+ min-width="160"
+ show-overflow-tooltip
+ />
+ <el-table-column
+ prop="partnumber"
+ label="浜у搧缂栫爜"
+ show-overflow-tooltip
+ sortable="custom"
+ min-width="110"
+ />
+ <el-table-column
+ prop="partname"
+ label="浜у搧鍚嶇О"
+ sortable="custom"
+ show-overflow-tooltip
+ min-width="110"
+ />
+ <el-table-column
+ prop="wkshp_name"
+ label="杞﹂棿鍚嶇О"
+ sortable="custom"
+ show-overflow-tooltip
+ min-width="110"
+ />
+ <el-table-column
+ prop="task_qty"
+ label="浠诲姟鏁伴噺"
+ sortable="custom"
+ show-overflow-tooltip
+ min-width="110"
+ />
+ <!-- <el-table-column-->
+ <!-- prop="wkshp_name"-->
+ <!-- label="杞﹂棿鍚嶇О"-->
+ <!-- show-overflow-tooltip-->
+ <!-- sortable="custom"-->
+ <!-- min-width="110"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- prop="eqp_name"-->
+ <!-- label="璁惧鍚嶇О"-->
+ <!-- sortable="custom"-->
+ <!-- show-overflow-tooltip-->
+ <!-- min-width="110"-->
+ <!-- />-->
+ <el-table-column
+ prop="stepname"
+ label="宸ュ簭鍚嶇О"
+ show-overflow-tooltip
+ sortable="custom"
+ min-width="110"
+ />
+ <!-- <el-table-column-->
+ <!-- prop="step_price"-->
+ <!-- label="宸ュ簭鍗曚环"-->
+ <!-- show-overflow-tooltip-->
+ <!-- sortable="custom"-->
+ <!-- min-width="110"-->
+ <!-- />-->
+ <el-table-column
+ prop="steptype"
+ label="宸ュ簭绫诲瀷"
+ show-overflow-tooltip
+ sortable="custom"
+ min-width="110"
+ >
+ <template slot-scope="{row}">
+ {{ row.steptype === 'Z' ? '鑷埗' : '澶栧崗' }}
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="wx_name"
+ label="渚涘簲鍟�"
+ show-overflow-tooltip
+ sortable="custom"
+ min-width="110"
+ >
+ <template slot-scope="{row}">
+ {{ row.wx_name ? row.wx_name : '/' }}
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="usergroup_name"
+ label="鎶ュ伐鐝粍"
+ show-overflow-tooltip
+ min-width="110"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ {{ row.usergroup_name ? row.usergroup_name : '/' }}
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="username"
+ label="鎶ュ伐浜哄憳"
+ show-overflow-tooltip
+ min-width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="report_qty"
+ label="鍚堟牸鏁伴噺"
+ show-overflow-tooltip
+ sortable="custom"
+ min-width="110"
+ />
+ <el-table-column
+ prop="ng_qty"
+ label="涓嶈壇鏁伴噺"
+ show-overflow-tooltip
+ min-width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="laborbad_qty"
+ label="宸ュ簾鏁伴噺"
+ min-width="110"
+ show-overflow-tooltip
+ sortable="custom"
+ />
+ <el-table-column
+ prop="materielbad_qty"
+ label="鏂欏簾鏁伴噺"
+ show-overflow-tooltip
+ min-width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="report_date"
+ label="鎶ュ伐鏃堕棿"
+ min-width="160"
+ show-overflow-tooltip
+ sortable="custom"
+ />
+ <el-table-column
+ label="鎿嶄綔"
+ width="100"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-button
+ type="text"
+ style="cursor: pointer;font-size: 14px"
+ @click="reportAdjust(row)"
+ >鎶ュ伐璋冩暣
+ </el-button>
+
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes,jumper"
+ popper-class="select_bottom"
+ @pagination="getMesOrderStepVerifySearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ title="鎶ュ伐璋冩暣"
+ :visible.sync="dialogVisible"
+ width="1080px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
+ <el-divider content-position="left">宸ュ崟淇℃伅</el-divider>
+
+ <el-form-item label="宸ュ崟缂栧彿" class="dialogFormItem">
+ <div style="width: 200px;">
+ {{ dialogForm.wo_code }}
+ </div>
+ <!-- <el-input v-model="dialogForm.postcode" style="width: 200px" />-->
+ </el-form-item>
+ <el-form-item label="浜у搧缂栫爜" class="dialogFormItem">
+ <div style="width: 200px;">
+ {{ dialogForm.partnumber }}
+ </div>
+ <!-- <el-input v-model="dialogForm.postname" style="width: 200px" />-->
+ </el-form-item>
+ <el-form-item label="浜у搧鍚嶇О" class="dialogFormItem">
+ <div style="width: 200px;">
+ {{ dialogForm.partname }}
+ </div>
+ </el-form-item>
+ <el-form-item label="浜у搧瑙勬牸" class="dialogFormItem">
+ <div style="width: 200px;">
+ {{ dialogForm.partspec ? dialogForm.partspec : '/' }}
+ </div>
+ </el-form-item>
+ <el-form-item label="鐢熶骇宸ュ簭" class="dialogFormItem">
+ <div style="width: 200px;">
+ {{ dialogForm.step_name }}
+ </div>
+ </el-form-item>
+ <el-form-item label="宸ュ簭鍗曚环" class="dialogFormItem">
+ <div style="width: 200px;">
+ {{ dialogForm.unprice ? dialogForm.unprice : '/' }}
+ </div>
+ </el-form-item>
+ <el-form-item v-if="dialogForm.flw_type==='Z'" label="鎶ュ伐鐝粍" class="dialogFormItem">
+ <div style="width: 200px;" class="ellipsis">
+ {{ dialogForm.usergroup_name ? dialogForm.usergroup_name : '/' }}
+ </div>
+ </el-form-item>
+ <el-form-item v-if="dialogForm.flw_type!=='Z'" label="渚涘簲鍟�" class="dialogFormItem">
+ <div style="width: 200px;" class="ellipsis">
+ {{ dialogForm.wx_name }}
+ </div>
+ </el-form-item>
+ <el-form-item label="鎶ュ伐浜哄憳" class="dialogFormItem">
+ <div style="width: 200px;" class="ellipsis">
+ {{ dialogForm.username }}
+ </div>
+ </el-form-item>
+ <el-form-item :label="dialogForm.flw_type==='Z'?'鍚堟牸鏁伴噺':'鏀舵枡鏁伴噺'" prop="report_qty" class="dialogFormItem">
+ <el-input
+ v-model="dialogForm.report_qty"
+ oninput="value=value.replace(/[^0-9]/g,'')"
+ style="width: 200px"
+ />
+ </el-form-item>
+
+ <el-divider content-position="left">鎶ュ伐鎯呭喌</el-divider>
+
+ <el-table
+ ref="tableDataDialogRef"
+ key="tableDataDialogKey"
+ :data="tableDataDialog"
+ border
+ row-class-name="custom-row"
+ height="200"
+ style="width: 100%;margin-top: 15px;"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ >
+ <el-table-column
+ type="index"
+ label="搴忓彿"
+ align="center"
+ width="50"
+ />
+ <el-table-column
+ prop="stepcode"
+ show-tooltip-when-overflow
+ label="缂洪櫡缂栫爜/鍚嶇О"
+ align="center"
+ min-width="400"
+ >
+ <template slot-scope="{row}">
+ <el-select
+ v-model="row.defect_code"
+ style="width: 100%"
+ placeholder="璇烽�夋嫨"
+ multiple
+ filterable
+ >
+ <!-- collapse-tags-->
+ <el-option
+ v-for="item in defectArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ prop="defect_qty"
+ label="涓嶈壇鏁伴噺"
+ align="center"
+ >
+ <template slot-scope="{row}">
+ <el-input
+ v-model="row.defect_qty"
+ placeholder="璇疯緭鍏ユ暟閲�"
+ oninput="value=value.replace(/[^0-9]/g,'')"
+ style="width: 100%"
+ />
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="laborbad_qty"
+ label="宸ュ簾鏁伴噺"
+ align="center"
+ >
+ <template slot-scope="{row}">
+ <el-input
+ v-model="row.laborbad_qty"
+ placeholder="璇疯緭鍏ユ暟閲�"
+ oninput="value=value.replace(/[^0-9]/g,'')"
+ style="width: 100%"
+ />
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="materielbad_qty"
+ label="鏂欏簾鏁伴噺"
+ align="center"
+ >
+ <template slot-scope="{row}">
+ <el-input
+ v-model="row.materielbad_qty"
+ placeholder="璇疯緭鍏ユ暟閲�"
+ oninput="value=value.replace(/[^0-9]/g,'')"
+ style="width: 100%"
+ />
+ </template>
+ </el-table-column>
+ </el-table>
+
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="dialogVisibleConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
<script>
+import Pagination from '@/components/Pagination'
+import { handleDatetime } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import { DefectPermissions, PrentOrganizationNoCompany } from '@/api/GeneralBasicData'
+import { MesOrderStepModelSearch, MesOrderStepUpdateSeave, MesOrderStepVerifySearch } from '@/api/WorkOrder'
+
export default {
- name: 'ReportCorrect'
+ name: 'Zzjg',
+ components: {
+ Pagination
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ wkshopcode: '',
+ wo_code: '', // 宸ュ崟缂栫爜
+ partnumber: '', // 浜у搧缂栫爜
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 浜у搧瑙勬牸
+ reportuser: '', // 鎶ュ伐浜哄憳
+ reportdate: '', // 鎶ュ伐鏃堕棿
+
+ prop: 'report_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ total: 10,
+ tableData: [],
+ wkshopcodeArr: [],
+ dialogVisible: false,
+ dialogForm: {
+ 'id': '',
+ 'sbid': '',
+ 'wo_code': '',
+ 'partnumber': '',
+ partname: '',
+ partspec: '',
+ usergroup_name: '',
+ username: '',
+ 'task_qty': '',
+ 'wkshp_code': '',
+ 'eqp_code': '',
+ 'step_seq': '',
+ 'step_code': '',
+ 'step_name': '',
+ 'flw_type': '',
+ 'first_choke': '',
+ 'last_choke': '',
+ 'unprice': '',
+ 'groupcode': '',
+ 'usercode': '',
+ 'report_date': '',
+ 'report_qty': '',
+ 'report_dvalue': '',
+ wx_code: '',
+ wx_name: '',
+ children: []
+ },
+ tableDataDialog: [],
+
+ defectArr: [], // 涓嶈壇缂洪櫡
+
+ dialogFormRules: {
+ report_qty: [
+ { required: true, message: '璇疯緭鍏ュ悎鏍兼暟閲�', trigger: ['blur', 'change'] }
+ ]
+ }
+
+ }
+ },
+ created() {
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+
+ this.getMesOrderStepVerifySearch()
+ this.getDefectPermissions()
+ this.getPrentOrganizationNoCompany()
+ },
+ methods: {
+ async getPrentOrganizationNoCompany() {
+ const { data: res } = await PrentOrganizationNoCompany()
+ this.wkshopcodeArr = res
+ },
+ async getDefectPermissions() {
+ const { data: res3 } = await DefectPermissions() // 缂洪櫡
+ this.defectArr = res3
+ },
+ // 鎶ュ伐璋冩暣鍒楄〃鏌ヨ
+ async getMesOrderStepVerifySearch() {
+ let tempDate = this.form.reportdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+ const data = {
+ wkshopcode: this.form.wkshopcode,
+ wo_code: this.form.wo_code,
+ partnumber: this.form.partnumber,
+ partname: this.form.partname,
+ partspec: this.form.partspec,
+ reportuser: this.form.reportuser,
+ reportdate: tempDate,
+
+ prop: this.form.prop, // 鎺掑簭瀛楁
+ order: this.form.order, // 鎺掑簭瀛楁
+ page: this.form.page, // 绗嚑椤�
+ rows: this.form.rows // 姣忛〉澶氬皯鏉�
+ }
+ const res = await MesOrderStepVerifySearch(data)
+ this.tableData = res.data
+ this.total = res.count
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getMesOrderStepVerifySearch()
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.wkshopcode = ''
+ this.form.wo_code = ''
+ this.form.partnumber = ''
+ this.form.partname = ''
+ this.form.partspec = ''
+ this.form.reportuser = ''
+ this.form.reportdate = ''
+ this.getMesOrderStepVerifySearch()
+ },
+
+ // 鎶ュ伐璋冩暣
+ async reportAdjust(row) {
+ const data = {
+ wo_code: row.wo_code,
+ step_code: row.step_code,
+ step_type: row.steptype,
+ isbott: row.first_choke,
+ isend: row.last_choke,
+ id: row.id,
+ sbid: row.sbid
+ }
+ const res = await MesOrderStepModelSearch(data)
+ if (res.code === '200') {
+ this.dialogForm.id = row.id
+ this.dialogForm.sbid = row.sbid
+ this.dialogForm.wo_code = row.wo_code
+ this.dialogForm.partnumber = row.partnumber
+ this.dialogForm.partname = row.partname
+ this.dialogForm.partspec = row.partspec
+ this.dialogForm.task_qty = row.task_qty
+ this.dialogForm.wkshp_code = row.wkshp_code
+ this.dialogForm.eqp_code = row.eqp_code
+ this.dialogForm.step_seq = row.step_seq
+ this.dialogForm.step_code = row.step_code
+ this.dialogForm.step_name = row.stepname
+ this.dialogForm.flw_type = row.steptype
+ this.dialogForm.first_choke = row.first_choke
+ this.dialogForm.last_choke = row.last_choke
+ this.dialogForm.unprice = row.step_price
+ this.dialogForm.groupcode = row.usergroup_code
+ this.dialogForm.usercode = row.usercode
+ this.dialogForm.usergroup_name = row.usergroup_name
+ this.dialogForm.username = row.username
+ this.dialogForm.report_date = row.report_date
+ this.dialogForm.report_qty = row.report_qty
+ this.dialogForm.report_qty2 = row.report_qty // old鍊�
+
+ this.dialogForm.wx_code = row.wx_code
+ this.dialogForm.wx_name = row.wx_name
+
+ if (res.data.length > 0) {
+ res.data.forEach(i => {
+ i.defect_code = i.defect_code.split(',')
+ i.defect_qty2 = i.defect_qty
+ i.laborbad_qty2 = i.laborbad_qty
+ i.materielbad_qty2 = i.materielbad_qty
+ })
+ }
+ this.tableDataDialog = res.data
+
+ this.dialogVisible = true
+ }
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.tableDataDialog = []
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ async dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(async valid => {
+ if (valid) {
+ const children = []
+
+ this.tableDataDialog.forEach(i => {
+ children.push({
+ ng_id: i.id,
+ ng_sbid: i.record_id,
+ ng_qty: parseFloat(i.defect_qty),
+ ng_dvalue: parseFloat(i.defect_qty) - parseFloat(i.defect_qty2),
+ laborbad_qty: parseFloat(i.laborbad_qty),
+ laborbad_dvalue: parseFloat(i.laborbad_qty) - parseFloat(i.laborbad_qty2),
+ materielbad_qty: parseFloat(i.materielbad_qty),
+ materielbad_dvalue: parseFloat(i.materielbad_qty) - parseFloat(i.materielbad_qty2),
+ bad_money: 0,
+ badmoney_dvalue: 0
+ })
+ })
+ const data = {
+ 'id': this.dialogForm.id,
+ 'sbid': this.dialogForm.sbid,
+ 'wo_code': this.dialogForm.wo_code,
+ 'partnumber': this.dialogForm.partnumber,
+ 'task_qty': this.dialogForm.task_qty,
+ 'wkshp_code': this.dialogForm.wkshp_code,
+ 'eqp_code': this.dialogForm.eqp_code,
+ 'step_seq': this.dialogForm.step_seq,
+ 'step_code': this.dialogForm.step_code,
+ 'flw_type': this.dialogForm.flw_type,
+ 'first_choke': this.dialogForm.first_choke,
+ 'last_choke': this.dialogForm.last_choke,
+ 'unprice': this.dialogForm.unprice,
+ 'groupcode': this.dialogForm.groupcode,
+ 'usercode': this.dialogForm.usercode,
+ wxcode: this.dialogForm.wx_code,
+ 'report_date': this.dialogForm.report_date,
+ 'report_qty': parseFloat(this.dialogForm.report_qty),
+ 'report_dvalue': parseFloat(this.dialogForm.report_qty) - parseFloat(this.dialogForm.report_qty2),
+ children
+ }
+ // console.log(JSON.stringify(data), 12)
+ // console.log(JSON.parse(JSON.stringify(data)), 12)
+ this.$store.state.app.buttonIsDisabled = true
+ const res = await MesOrderStepUpdateSeave([data])
+ if (res.code === '200') {
+ this.$notify.success('璋冩暣鎴愬姛锛�')
+ await this.getMesOrderStepVerifySearch()
+ this.$store.state.app.buttonIsDisabled = false
+ this.dialogVisible = false
+ } else {
+ this.$store.state.app.buttonIsDisabled = false
+ this.$notify.error('璋冩暣澶辫触锛�')
+ }
+ }
+ })
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 205
+ this.$refs.tableDataRef.doLayout()
+ })
+ }
+ }
}
</script>
-<style scoped>
+<style scoped lang="scss">
+.dialogFormItem {
+ margin: 0 10px 0 0;
+}
+
+::v-deep .el-dialog .el-divider__text {
+ font-weight: bolder !important;
+}
+
+::v-deep .el-dialog .el-form-item__label {
+ font-weight: lighter !important;
+}
+
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+::v-deep .el-range__icon {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-separator {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-input {
+ font-size: 14px;
+}
+
+::v-deep .el-range-separator {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
</style>
diff --git a/src/views/produce/reportVerify.vue b/src/views/produce/reportVerify.vue
index 81b99d2..2ccbeb3 100644
--- a/src/views/produce/reportVerify.vue
+++ b/src/views/produce/reportVerify.vue
@@ -1,11 +1,530 @@
-<template />
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
+ <el-button v-waves type="primary" icon="el-icon-circle-check" @click="reportAdjust()">鎶ュ伐瀹℃牳</el-button>
+ <!-- <el-button v-waves type="success" icon="el-icon-download" @click="$router.push('./../systemSetting/dataImport?fileCode=2')">瀵煎叆</el-button>-->
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="瀹℃牳鐘舵��" style=" display: flex;">
+ <el-select
+ v-model="form.reviewstatus"
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in reviewstatusArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="杞﹂棿鍚嶇О" style=" display: flex;">
+ <el-select
+ v-model="form.wkshopcode"
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in wkshopcodeArr"
+ :key="item.torg_code"
+ :label="item.torg_name"
+ :value="item.torg_code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="宸ュ崟缂栫爜" style=" display: flex;">
+ <el-input v-model="form.wo_code" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="浜у搧缂栫爜" style=" display: flex;">
+ <el-input v-model="form.partnumber" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="浜у搧鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.partname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <!-- <el-form-item v-show="isExpandForm" label="浜у搧瑙勬牸" style=" display: flex;">-->
+ <!-- <el-input v-model="form.partspec" placeholder="璇疯緭鍏�" style="width: 200px" />-->
+ <!-- </el-form-item>-->
+
+ <el-form-item v-show="isExpandForm" label="宸ュ簭鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.stepname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+
+ <el-form-item v-show="isExpandForm" label="鎶ュ伐浜哄憳" style=" display: flex;">
+ <el-input v-model="form.reportuser" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鎶ュ伐鏃堕棿" style=" display: flex;">
+ <el-date-picker
+ v-model="form.reportdate"
+ type="daterange"
+ range-separator="~"
+ class="timeMini"
+ size="mini"
+ style="width: 200px;"
+ :clearable="false"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ />
+ </el-form-item>
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="getMesOrderStepReportVerifySearch">鏌ヨ
+ </el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
+ border
+ row-class-name="custom-row"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column
+ type="selection"
+ width="50"
+ :selectable="selected"
+ fixed
+ />
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="verify"
+ label="鏄惁宸插鏍�"
+ sortable="custom"
+ width="120"
+ show-overflow-tooltip
+ >
+ <template slot-scope="{row}">
+ <el-tag v-if="row.verify==='Y'" size="small" type="success">宸插鏍�</el-tag>
+ <el-tag v-if="row.verify==='N'" size="small" type="danger">鏈鏍�</el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="wo_code"
+ label="鎶ュ伐宸ュ崟"
+ sortable="custom"
+ min-width="160"
+ show-overflow-tooltip
+ />
+ <el-table-column
+ prop="partnumber"
+ label="浜у搧缂栫爜"
+ show-overflow-tooltip
+ sortable="custom"
+ min-width="110"
+ />
+ <el-table-column
+ prop="partname"
+ label="浜у搧鍚嶇О"
+ sortable="custom"
+ show-overflow-tooltip
+ min-width="110"
+ />
+ <el-table-column
+ prop="wkshp_name"
+ label="杞﹂棿鍚嶇О"
+ sortable="custom"
+ show-overflow-tooltip
+ min-width="110"
+ />
+ <el-table-column
+ prop="task_qty"
+ label="浠诲姟鏁伴噺"
+ sortable="custom"
+ show-overflow-tooltip
+ min-width="110"
+ />
+ <!-- <el-table-column-->
+ <!-- prop="wkshp_name"-->
+ <!-- label="杞﹂棿鍚嶇О"-->
+ <!-- show-overflow-tooltip-->
+ <!-- sortable="custom"-->
+ <!-- min-width="110"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- prop="eqp_name"-->
+ <!-- label="璁惧鍚嶇О"-->
+ <!-- sortable="custom"-->
+ <!-- show-overflow-tooltip-->
+ <!-- min-width="110"-->
+ <!-- />-->
+ <el-table-column
+ prop="stepname"
+ label="宸ュ簭鍚嶇О"
+ show-overflow-tooltip
+ sortable="custom"
+ min-width="110"
+ />
+ <!-- <el-table-column-->
+ <!-- prop="step_price"-->
+ <!-- label="宸ュ簭鍗曚环"-->
+ <!-- show-overflow-tooltip-->
+ <!-- sortable="custom"-->
+ <!-- min-width="110"-->
+ <!-- />-->
+ <el-table-column
+ prop="steptype"
+ label="宸ュ簭绫诲瀷"
+ show-overflow-tooltip
+ sortable="custom"
+ min-width="110"
+ >
+ <template slot-scope="{row}">
+ {{ row.steptype === 'Z' ? '鑷埗' : '澶栧崗' }}
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="wx_name"
+ label="渚涘簲鍟�"
+ show-overflow-tooltip
+ sortable="custom"
+ min-width="110"
+ >
+ <template slot-scope="{row}">
+ {{ row.wx_name ? row.wx_name : '/' }}
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="usergroup_name"
+ label="鎶ュ伐鐝粍"
+ show-overflow-tooltip
+ min-width="110"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ {{ row.usergroup_name ? row.usergroup_name : '/' }}
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="username"
+ label="鎶ュ伐浜哄憳"
+ show-overflow-tooltip
+ min-width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="report_qty"
+ label="鍚堟牸鏁伴噺"
+ show-overflow-tooltip
+ sortable="custom"
+ min-width="110"
+ />
+ <el-table-column
+ prop="ng_qty"
+ label="涓嶈壇鏁伴噺"
+ show-overflow-tooltip
+ min-width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="laborbad_qty"
+ label="宸ュ簾鏁伴噺"
+ min-width="110"
+ show-overflow-tooltip
+ sortable="custom"
+ />
+ <el-table-column
+ prop="materielbad_qty"
+ label="鏂欏簾鏁伴噺"
+ show-overflow-tooltip
+ min-width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="report_date"
+ label="鎶ュ伐鏃堕棿"
+ min-width="160"
+ show-overflow-tooltip
+ sortable="custom"
+ />
+ <el-table-column
+ label="鎿嶄綔"
+ width="100"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-button
+ type="text"
+ style="cursor: pointer;font-size: 14px"
+ @click="reportAdjust(row)"
+ >鎶ュ伐瀹℃牳
+ </el-button>
+
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes,jumper"
+ popper-class="select_bottom"
+ @pagination="getMesOrderStepReportVerifySearch"
+ />
+ </div>
+
+ </div>
+</template>
<script>
+import Pagination from '@/components/Pagination'
+import { handleDatetime } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import { MesOrderDistribution, MesOrderStepReportVerifySearch, MesOrderStepReportVerifySeave } from '@/api/WorkOrder'
+import { PrentOrganizationNoCompany } from '@/api/GeneralBasicData'
+
export default {
- name: 'ReportVerify'
+ name: 'Zzjg',
+ components: {
+ Pagination
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ wkshopcode: '',
+ wo_code: '', // 宸ュ崟缂栫爜
+ partnumber: '', // 浜у搧缂栫爜
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 浜у搧瑙勬牸
+
+ stepname: '', // 宸ュ簭鍚嶇О
+ reportuser: '', // 鎶ュ伐浜哄憳
+ reportdate: '', // 鎶ュ伐鏃堕棿
+
+ reviewstatus: '', // 瀹℃牳鐘舵��
+
+ prop: 'report_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ total: 10,
+ tableData: [],
+ wkshopcodeArr: [],
+
+ multipleSelection: [],
+ reviewstatusArr: [
+ { code: 'Y', name: '宸插鏍�' },
+ { code: 'N', name: '鏈鏍�' }
+ ]
+
+ }
+ },
+ created() {
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+
+ this.getMesOrderStepReportVerifySearch()
+ this.getPrentOrganizationNoCompany()
+ },
+ methods: {
+ async getPrentOrganizationNoCompany() {
+ const { data: res } = await PrentOrganizationNoCompany()
+ this.wkshopcodeArr = res
+ },
+ // 鎶ュ伐璋冩暣鍒楄〃鏌ヨ
+ async getMesOrderStepReportVerifySearch() {
+ let tempDate = this.form.reportdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+ const data = {
+ wkshopcode: this.form.wkshopcode,
+ wo_code: this.form.wo_code,
+ reviewstatus: this.form.reviewstatus,
+ partnumber: this.form.partnumber,
+ partname: this.form.partname,
+ partspec: this.form.partspec,
+ reportuser: this.form.reportuser,
+ stepname: this.form.stepname,
+ reportdate: tempDate,
+
+ prop: this.form.prop, // 鎺掑簭瀛楁
+ order: this.form.order, // 鎺掑簭瀛楁
+ page: this.form.page, // 绗嚑椤�
+ rows: this.form.rows // 姣忛〉澶氬皯鏉�
+ }
+ const res = await MesOrderStepReportVerifySearch(data)
+ this.tableData = res.data
+ this.total = res.count
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getMesOrderStepReportVerifySearch()
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.wkshopcode = ''
+ this.form.wo_code = ''
+ this.form.partnumber = ''
+ this.form.partname = ''
+ this.form.partspec = ''
+ this.form.stepname = ''
+ this.form.reportuser = ''
+ this.form.reportdate = ''
+ this.form.reviewstatus = ''
+ this.getMesOrderStepReportVerifySearch()
+ },
+
+ // 鎶ュ伐瀹℃牳
+ async reportAdjust(row) {
+ if (row && row.verify === 'Y') {
+ return this.$message.info('姝ゅ伐鍗曞凡瀹℃牳锛�')
+ }
+ this.$confirm('鏄惁纭瀹℃牳?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ if (row) {
+ this.multipleSelection = [row]
+ }
+ const data = {
+ zdata: [],
+ wdata: []
+ }
+ this.multipleSelection.forEach(i => {
+ if (i.steptype === 'Z') {
+ data.zdata.push(i.id)
+ } else {
+ data.wdata.push(i.id)
+ }
+ })
+ MesOrderStepReportVerifySeave(data).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('瀹℃牳鎴愬姛锛�')
+ this.getMesOrderStepReportVerifySearch()
+ }
+ })
+ }).catch(() => {
+ this.$notify.info('宸插彇娑堝鏍革紒')
+ })
+ },
+ handleSelectionChange(val) {
+ this.multipleSelection = val
+ },
+ selected(row) {
+ return row.verify === 'N'
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 255
+ this.$refs.tableDataRef.doLayout()
+ })
+ }
+ }
}
</script>
-<style scoped>
+<style scoped lang="scss">
+.dialogFormItem {
+ margin: 0 10px 0 0;
+}
+
+::v-deep .el-dialog .el-divider__text {
+ font-weight: bolder !important;
+}
+
+::v-deep .el-dialog .el-form-item__label {
+ font-weight: lighter !important;
+}
+
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+::v-deep .el-range__icon {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-separator {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-input {
+ font-size: 14px;
+}
+
+::v-deep .el-range-separator {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
</style>
diff --git a/src/views/produce/stepReport.vue b/src/views/produce/stepReport.vue
index 42bbb50..b48169f 100644
--- a/src/views/produce/stepReport.vue
+++ b/src/views/produce/stepReport.vue
@@ -1,11 +1,1517 @@
-<template />
+<template>
+ <div>
+ <div class="body" style="padding-top: 10px;" :style="{height:mainHeight+'px'}">
+
+ <div style="position: absolute;right:36px;z-index: 2;top: 13px">
+ <el-button
+ v-if="activeName==='鐢熶骇鍒楄〃'&&tableData.length>0"
+ v-waves
+ icon="el-icon-thumb"
+ type="primary"
+ :disabled="radioSelected===''"
+ @click="report()"
+ >鎶ュ伐
+ </el-button>
+ <el-button
+ v-if="activeName==='澶栧崗鍙戞枡'&&tableData.length>0"
+ v-waves
+ type="primary"
+ icon="el-icon-thumb"
+ :disabled="radioSelected===''"
+ @click="sendOut()"
+ >鍙戞枡
+ </el-button>
+ <el-button
+ v-if="activeName==='澶栧崗鏀舵枡'&&tableData.length>0"
+ v-waves
+ type="primary"
+ icon="el-icon-thumb"
+ :disabled="radioSelected===''"
+ @click="takeIn()"
+ >鏀舵枡
+ </el-button>
+ <el-button
+ v-if="activeName==='涓嶈壇寰呭鐞�'&&tableData.length>0"
+ v-waves
+ type="primary"
+ icon="el-icon-thumb"
+ :disabled="radioSelected===''"
+ @click="handleBad()"
+ >澶勭悊
+ </el-button>
+ </div>
+
+ <div v-if="form.wocode" style="position: absolute;left: 460px;z-index: 2;top: 23px;font-weight: bolder">
+ 褰撳墠宸ュ崟鍙蜂负锛歿{ form.wocode }}
+ </div>
+
+ <el-tabs
+ ref="elTabs"
+ v-model="activeName"
+ type="border-card"
+ @tab-click="tabClick"
+ >
+
+ <el-tab-pane
+ v-for="item in elTabsArr"
+ :key="item.code"
+ :label="item.name"
+ :name="item.name"
+ >
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+
+ <el-form-item label="宸ュ崟鍙�" style=" display: flex;">
+ <el-input
+ v-model="workOrderCurrentValue"
+ :name="'produceCode'+item.code"
+ placeholder="璇锋壂鎻忔垨杈撳叆"
+ style="width: 300px"
+
+ @keyup.enter.native="val=>enterNative(val,'produceCode' + item.code)"
+ />
+ </el-form-item>
+ <el-form-item label="浜у搧缂栫爜" style=" display: flex;">
+ <el-input
+ v-model="form.partcode"
+ placeholder="璇疯緭鍏�"
+ style="width: 200px"
+
+ @keyup.enter.native="val=>enterNative(val,'produceCode' + item.code)"
+ />
+ </el-form-item>
+ <el-form-item label="浜у搧鍚嶇О" style=" display: flex;">
+ <el-input
+ v-model="form.partname"
+ placeholder="璇疯緭鍏�"
+
+ style="width: 200px"
+ @keyup.enter.native="val=>enterNative(val,'produceCode' + item.code)"
+ />
+ </el-form-item>
+ <el-form-item label="杞﹂棿鍚嶇О" style=" display: flex;">
+ <el-select
+ v-model="form.wkshopcode"
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px"
+
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in wkshopcodeArr"
+ :key="item.torg_code"
+ :label="item.torg_name"
+ :value="item.torg_code"
+ />
+ </el-select>
+ </el-form-item>
+
+ <!-- <el-form-item label="瑙勬牸鍨嬪彿" style=" display: flex;">-->
+ <!-- <el-input v-model="form.partspec" placeholder="璇疯緭鍏�" style="width: 200px" />-->
+ <!-- </el-form-item>-->
+
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ style="height:5px"
+ >
+ <!-- <svg-icon-->
+ <!-- v-show="mouseHoverType==='mouseout'"-->
+ <!-- style="cursor: pointer"-->
+ <!-- :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"-->
+ <!-- @mouseenter="mouseHoverType=$event.type"-->
+ <!-- />-->
+ <!-- <svg-icon-->
+ <!-- v-show="mouseHoverType==='mouseenter'"-->
+ <!-- style="cursor: pointer"-->
+ <!-- :icon-class="!isExpandForm?'doubleDown':'doubleUp'"-->
+ <!-- @click="isExpandForm=!isExpandForm"-->
+ <!-- @mouseout="mouseHoverType=$event.type"-->
+ <!-- />-->
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataRef"
+ :key="'tableDataRef'+item.code"
+ class="tableFixed"
+ :data="tableData"
+ :height="tableHeight+50"
+ border
+ row-class-name="custom-row"
+ :style="{width: 100+'%',height:tableHeight+'px'}"
+ highlight-current-row
+ :header-cell-style="headerCellStyle()"
+ :cell-style="cellStyle()"
+ @sort-change="sortChange"
+ @row-click="rowClick"
+ >
+ <el-table-column
+ width="50"
+ fixed
+ >
+ <template slot-scope="{row}">
+ <el-radio
+ v-model="radioSelected"
+ :label="row.id"
+ style="color: transparent;padding-left: 10px;"
+ />
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ label="搴忓彿"
+ fixed
+ />
+ <el-table-column
+ v-if="activeName!=='涓嶈壇寰呭鐞�'"
+ prop="status"
+ show-tooltip-when-overflow
+ label="鐘舵��"
+ sortable="custom"
+ width="80"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.status==='NEW'">鏂拌鍗�</div>
+ <div v-if="row.status==='ALLO'">宸叉淳鍙�</div>
+ <div v-if="row.status==='START'">寮�宸�</div>
+ <div v-if="row.status==='CLOSED'">瀹屽伐</div>
+ <div v-if="row.status==='NOSCHED'">寰呮帓绋�</div>
+ <div v-if="row.status==='SCHED'">宸叉帓绋�</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="wo_code"
+ label="宸ュ崟鍙�"
+ min-width="160"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partcode"
+ label="浜у搧缂栫爜"
+ min-width="110"
+ sortable="custom"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="partname"
+ min-width="110"
+ show-tooltip-when-overflow
+ label="浜у搧鍚嶇О"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partspec"
+ min-width="110"
+ show-tooltip-when-overflow
+ label="瑙勬牸鍨嬪彿"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ {{ row.partspec ? row.partspec : '/' }}
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="wkshp_name"
+ min-width="110"
+ show-tooltip-when-overflow
+ label="杞﹂棿鍚嶇О"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="stepname"
+ label="宸ュ簭鍚嶇О"
+ show-tooltip-when-overflow
+ width="120"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="plan_qty"
+ label="浠诲姟鏁伴噺"
+ width="110"
+ sortable="custom"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ v-if="activeName==='澶栧崗鍙戞枡'||activeName==='澶栧崗鏀舵枡'"
+ prop="fqty"
+ show-tooltip-when-overflow
+ label="宸插彂鏂欐暟閲�"
+ sortable="custom"
+ width="120"
+ />
+ <el-table-column
+ prop="good_qty"
+ show-tooltip-when-overflow
+ :label="activeName==='澶栧崗鍙戞枡'||activeName==='澶栧崗鏀舵枡'?'宸叉敹鏂欐暟閲�':'鍚堟牸鏁伴噺'"
+ sortable="custom"
+ width="120"
+ />
+ <el-table-column
+ prop="ng_qty"
+ label="涓嶈壇鏁伴噺"
+ show-tooltip-when-overflow
+ width="120"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="laborbad_qty"
+ label="宸ュ簾鏁伴噺"
+ width="120"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="materielbad_qty"
+ label="鏂欏簾鏁伴噺"
+ width="120"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+
+ <el-table-column
+ label="鎿嶄綔"
+ width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-button v-if="activeName==='鐢熶骇鍒楄〃'" v-waves icon="el-icon-thumb" type="text" @click="report(row)">
+ 鎶ュ伐
+ </el-button>
+ <el-button
+ v-if="activeName==='澶栧崗鍙戞枡'"
+ v-waves
+ icon="el-icon-thumb"
+ type="text"
+ @click="sendOut(row)"
+ >鍙戞枡
+ </el-button>
+ <el-button v-if="activeName==='澶栧崗鏀舵枡'" v-waves icon="el-icon-thumb" type="text" @click="takeIn(row)">
+ 鏀舵枡
+ </el-button>
+ <el-button
+ v-if="activeName==='涓嶈壇寰呭鐞�'"
+ v-waves
+ icon="el-icon-thumb"
+ type="text"
+ @click="handleBad(row)"
+ >澶勭悊
+ </el-button>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="search"
+ />
+ </el-tab-pane>
+
+ </el-tabs>
+
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ :title="dialogTitle"
+ :visible.sync="dialogVisible"
+ width="1160px"
+ :close-on-click-modal="false"
+ :top="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'? '6vh':'15vh'"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="110px">
+ <!-- <el-divider v-if="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'||activeName==='涓嶈壇寰呭鐞�'" content-position="left">鍩烘湰淇℃伅</el-divider>-->
+ <el-divider v-if="activeName==='鐢熶骇鍒楄〃'" content-position="left">鎶ュ伐淇℃伅</el-divider>
+ <el-divider v-if="activeName==='澶栧崗鏀舵枡'" content-position="left">鏀舵枡淇℃伅</el-divider>
+ <el-divider v-if="activeName==='涓嶈壇寰呭鐞�'" content-position="left">寰呭鐞嗕俊鎭�</el-divider>
+ <el-form-item label="宸ュ崟缂栧彿" class="dialogFormItem">
+ <div class="dialogFormItemDiv">{{ dialogForm.wo_code }}</div>
+ </el-form-item>
+ <el-form-item label="浜у搧缂栫爜" class="dialogFormItem">
+ <div class="dialogFormItemDiv">{{ dialogForm.partnumber }}</div>
+ </el-form-item>
+ <el-form-item label="浜у搧鍚嶇О" class="dialogFormItem">
+ <div class="dialogFormItemDiv">{{ dialogForm.partname }}</div>
+ </el-form-item>
+ <el-form-item label="瑙勬牸鍨嬪彿" class="dialogFormItem">
+ <div class="dialogFormItemDiv">{{ dialogForm.partspec ? dialogForm.partspec : '/' }}</div>
+ </el-form-item>
+ <el-form-item label="褰撳墠宸ュ簭" class="dialogFormItem">
+ <div class="dialogFormItemDiv">{{ dialogForm.stepname }}</div>
+ </el-form-item>
+ <el-form-item label="涓嬮亾宸ュ簭" class="dialogFormItem">
+ <div class="dialogFormItemDiv">{{ dialogForm.nextstepname ? dialogForm.nextstepname : '/' }}</div>
+ </el-form-item>
+ <el-form-item label="浠诲姟鏁伴噺" class="dialogFormItem">
+ <div class="dialogFormItemDiv">{{ dialogForm.planqty }}</div>
+ </el-form-item>
+
+ <el-form-item v-if="activeName==='涓嶈壇寰呭鐞�'" label="鍚堟牸鏁伴噺" class="dialogFormItem">
+ <div class="dialogFormItemDiv">{{ dialogForm.noreportqty }}</div>
+ </el-form-item>
+ <el-form-item v-if="activeName==='涓嶈壇寰呭鐞�'" label="涓嶈壇鏁伴噺" class="dialogFormItem">
+ <div class="dialogFormItemDiv">{{ dialogForm.noputqty }}</div>
+ </el-form-item>
+
+ <el-form-item
+ v-if="activeName!=='涓嶈壇寰呭鐞�'"
+ :label="activeName==='鐢熶骇鍒楄〃'? '鏈姤/宸叉姤':(activeName==='澶栧崗鍙戞枡'?'鏈彂/宸插彂':'鏈敹/宸叉敹')"
+ class="dialogFormItem"
+ >
+ <div class="dialogFormItemDiv">{{ dialogForm.noreportqty + '/' + dialogForm.reportqty }}</div>
+ </el-form-item>
+
+ <el-form-item v-if="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'" label="涓嶈壇鏁伴噺" class="dialogFormItem">
+ <div class="dialogFormItemDiv" style="color:red;">{{ dialogForm.noputqty }}</div>
+ </el-form-item>
+
+ <el-form-item v-if="activeName==='鐢熶骇鍒楄〃'" label="鎶ュ伐璁惧" class="dialogFormItem">
+ <el-select
+ v-model="dialogForm.eqpcode"
+ style="width:200px"
+ placeholder="璇烽�夋嫨"
+ filterable
+ clearable
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in eqpArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+
+ <el-form-item v-if="activeName==='鐢熶骇鍒楄〃'" label="璁′欢鏂瑰紡" class="dialogFormItem">
+ <el-radio-group
+ v-model="dialogForm.reckway"
+ style="width: 200px;"
+ @change="reckwayChange"
+ >
+ <el-radio label="person">涓汉</el-radio>
+ <el-radio label="group">鐝粍</el-radio>
+ </el-radio-group>
+ </el-form-item>
+
+ <el-form-item
+ v-if="activeName==='鐢熶骇鍒楄〃'"
+ :prop="dialogForm.reckway==='group'?'usergroupcode':''"
+ label="鎶ュ伐鐝粍"
+ class="dialogFormItem"
+ >
+ <el-select
+ v-model="dialogForm.usergroupcode"
+ style="width:200px"
+ placeholder="璇烽�夋嫨"
+ filterable
+ :disabled="dialogForm.reckway!=='group'"
+ :popper-append-to-body="false"
+ @change="usergroupChange"
+ >
+ <el-option
+ v-for="item in usergroupArr"
+ :key="item.usergroupcode"
+ :label="item.usergroupname"
+ :value="item.usergroupcode"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item v-if="activeName==='鐢熶骇鍒楄〃'" prop="reportuser" label="鎶ュ伐浜哄憳" class="dialogFormItem">
+ <el-select
+ v-model="dialogForm.reportuser"
+ style="width:200px"
+ placeholder="璇烽�夋嫨"
+ filterable
+ multiple
+ collapse-tags
+ :multiple-limit="dialogForm.reckway==='group'?0:1"
+ :disabled="dialogForm.reckway==='group'&&dialogForm.usergroupcode===''"
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in reportuserArr"
+ :key="item.usercode"
+ :label="item.username"
+ :value="item.usercode"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item v-if="activeName==='鐢熶骇鍒楄〃'" prop="startqty" label="鍚堟牸鏁伴噺" class="dialogFormItem">
+ <el-input v-model="dialogForm.startqty" oninput="value=value.replace(/[^\d]/g,'')" style="width: 200px" />
+ </el-form-item>
+
+ <el-form-item v-if="activeName==='澶栧崗鍙戞枡'||activeName==='澶栧崗鏀舵枡'" prop="wxcode" label="澶栧崗渚涙柟" class="dialogFormItem">
+ <el-select
+ v-model="dialogForm.wxcode"
+ style="width:200px"
+ placeholder="璇烽�夋嫨"
+ filterable
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in wxArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item v-if="activeName==='澶栧崗鍙戞枡'" prop="outuser" label="鍙戞枡浜哄憳" class="dialogFormItem">
+ <el-select
+ v-model="dialogForm.outuser"
+ style="width:200px"
+ placeholder="璇烽�夋嫨"
+ filterable
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in reportuserArr"
+ :key="item.usercode"
+ :label="item.username"
+ :value="item.usercode"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item v-if="activeName==='澶栧崗鍙戞枡'" prop="fqty" label="鍙戞枡鏁伴噺" class="dialogFormItem">
+ <el-input v-model="dialogForm.fqty" oninput="value=value.replace(/[^\d]/g,'')" style="width: 200px" />
+ </el-form-item>
+
+ <el-form-item v-if="activeName==='澶栧崗鏀舵枡'" prop="inuser" label="鏀舵枡浜哄憳" class="dialogFormItem">
+ <el-select
+ v-model="dialogForm.inuser"
+ style="width:200px"
+ placeholder="璇烽�夋嫨"
+ filterable
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in reportuserArr"
+ :key="item.usercode"
+ :label="item.username"
+ :value="item.usercode"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item v-if="activeName==='澶栧崗鏀舵枡'" prop="sqty" label="鏀舵枡鏁伴噺" class="dialogFormItem">
+ <el-input v-model="dialogForm.sqty" oninput="value=value.replace(/[^\d]/g,'')" style="width: 200px" />
+ </el-form-item>
+
+ <el-divider v-if="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'" content-position="left">涓嶈壇鏄庣粏淇℃伅</el-divider>
+ <el-button
+ v-if="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'"
+ v-waves
+ type="primary"
+ icon="el-icon-circle-plus-outline"
+ @click="addDefect"
+ >鏂板
+ </el-button>
+ <el-table
+ v-if="activeName==='鐢熶骇鍒楄〃'||activeName==='澶栧崗鏀舵枡'"
+ ref="defectTableDataRef"
+ key="defectTableDataKey"
+ :data="defectTableData"
+ border
+ row-class-name="custom-row"
+ height="200"
+ style="width: 100%;margin-top: 15px;"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ >
+ <el-table-column
+ type="index"
+ label="搴忓彿"
+ align="center"
+ width="50"
+ />
+ <el-table-column
+ prop="stepcode"
+ label="缂洪櫡缂栫爜/鍚嶇О"
+ align="center"
+ min-width="450"
+ >
+ <template slot-scope="{row}">
+ <el-select
+ v-model="row.code"
+ style="width: 100%"
+ placeholder="璇烽�夋嫨"
+ multiple
+ filterable
+ >
+ <!-- collapse-tags-->
+ <el-option
+ v-for="item in defectArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ prop="badqty"
+ label="涓嶈壇鏁伴噺"
+ align="center"
+ >
+ <template slot-scope="{row}">
+ <el-input
+ v-model="row.badqty"
+ placeholder="璇疯緭鍏ユ暟閲�"
+ oninput="value=value.replace(/[^0-9]/g,'')"
+ style="width: 100%"
+ @click.stop=""
+ @change="badqtyChange"
+ />
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鎿嶄綔"
+ width="50"
+ align="center"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+ <i
+ class="el-icon-delete"
+ :style="{color:$store.state.settings.theme}"
+ style="margin-left: 7px;"
+ @click="defectDel(row)"
+ />
+ </el-tooltip>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <el-divider v-if="activeName==='澶栧崗鏀舵枡'" content-position="left">鍙敹鏂欎緵搴斿晢</el-divider>
+ <div
+ v-for="(item,index) in dialogForm.list"
+ v-if="item.fqty>0"
+ :key="item.name"
+ style="display: flex;line-height: 26px;height: 26px;margin-left:30px;align-items: center"
+ >
+ <div
+ style="color: #fff;width: 22px;height: 22px;display: flex;justify-content: center;align-items: center;border-radius: 50%"
+ :style="{backgroundColor:$store.state.settings.theme}"
+ >{{ index + 1 }}
+ </div>
+ <div style="margin-left:30px;width: 160px;" class="ellipsis">
+ {{ item.tp }}
+ </div>
+ <div style="margin-left:30px;">
+ 鍙敹鏁伴噺锛歿{ item.acceptQty }}
+ </div>
+ </div>
+
+ <el-divider v-if="activeName==='涓嶈壇寰呭鐞�'" content-position="left">涓嶈壇淇℃伅鏄庣粏</el-divider>
+ <el-table
+ v-if="activeName==='涓嶈壇寰呭鐞�'"
+ ref="badTableDataDataRef"
+ key="badTableDataDataKey"
+ :data="badTableData"
+ border
+ row-class-name="custom-row"
+ height="300"
+ style="width: 100%;margin-top: 15px;"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ >
+ <el-table-column
+ type="index"
+ label="搴忓彿"
+ align="center"
+ width="50"
+ />
+ <!-- <el-table-column-->
+ <!-- prop="step_code"-->
+ <!-- label="宸ュ簭缂栫爜"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- align="center"-->
+ <!-- />-->
+ <el-table-column
+ prop="stepname"
+ label="宸ュ簭鍚嶇О"
+ show-tooltip-when-overflow
+ align="center"
+ />
+ <el-table-column
+ prop="plan_qty"
+ label="浠诲姟鏁伴噺"
+ show-tooltip-when-overflow
+ align="center"
+ />
+ <el-table-column
+ prop="report_qty"
+ label="鍚堟牸鏁伴噺"
+ show-tooltip-when-overflow
+ align="center"
+ />
+ <el-table-column
+ prop="ng_qty"
+ label="涓嶈壇鏁伴噺"
+ show-tooltip-when-overflow
+ align="center"
+ />
+ <el-table-column
+ prop="defect_name"
+ label="涓嶈壇鍘熷洜"
+ show-tooltip-when-overflow
+ align="center"
+ />
+ <el-table-column
+ prop="repair_qty"
+ label="缁翠慨鍚堟牸鏁伴噺"
+ align="center"
+ >
+ <template slot-scope="{row}">
+ <el-input
+ v-model="row.repair_qty"
+ placeholder="璇疯緭鍏ユ暟閲�"
+ oninput="value=value.replace(/[^0-9]/g,'')"
+ style="width: 100%"
+ @click.stop=""
+ />
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="laborbad_qty"
+ label="宸ュ簾鏁伴噺"
+ align="center"
+ >
+ <template slot-scope="{row}">
+ <el-input
+ v-model="row.laborbad_qty"
+ placeholder="璇疯緭鍏ユ暟閲�"
+ oninput="value=value.replace(/[^0-9]/g,'')"
+ style="width: 100%"
+ @click.stop=""
+ />
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="materielbad_qty"
+ label="鏂欏簾鏁伴噺"
+ align="center"
+ >
+ <template slot-scope="{row}">
+ <el-input
+ v-model="row.materielbad_qty"
+ placeholder="璇疯緭鍏ユ暟閲�"
+ oninput="value=value.replace(/[^0-9]/g,'')"
+ style="width: 100%"
+ @click.stop=""
+ />
+ </template>
+ </el-table-column>
+
+ <!-- <el-table-column-->
+ <!-- prop="badqty"-->
+ <!-- label="涓嶈壇鏁伴噺"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- align="center"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <el-input-->
+ <!-- v-model="row.badqty"-->
+ <!-- placeholder="璇疯緭鍏ユ暟閲�"-->
+ <!-- oninput="value=value.replace(/[^0-9]/g,'')"-->
+ <!-- style="width: 100%"-->
+ <!-- @click.stop=""-->
+ <!-- @change="badqtyChange"-->
+ <!-- />-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+
+ <!-- <el-table-column-->
+ <!-- label="鎿嶄綔"-->
+ <!-- width="50"-->
+ <!-- align="center"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div class="operationClass">-->
+ <!-- <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">-->
+ <!-- <i-->
+ <!-- class="el-icon-delete"-->
+ <!-- :style="{color:$store.state.settings.theme}"-->
+ <!-- style="margin-left: 7px;"-->
+ <!-- @click="defectDel(row)"-->
+ <!-- />-->
+ <!-- </el-tooltip>-->
+ <!-- </div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+
+ </el-table>
+ </el-form>
+
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="dialogVisibleConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
<script>
+import Pagination from '@/components/Pagination'
+import $ from 'jquery'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import {
+ EditOrderNgStepSeave,
+ MesOrderNgStepSearch,
+ MesOrderNgSubStepSearch,
+ MesOrderStepSearch, MesOrderStepStart,
+ MesOrderWxStepSearch, SavaMesOrderStepIn, SavaMesOrderStepOut, SavaMesOrderStepReport
+} from '@/api/WorkOrder'
+import {
+ CustomerPermissions,
+ DefectPermissions,
+ EqpPermissions,
+ GroupsPermissions,
+ GroupsPersonPermissions,
+ PersonPermissions, PrentOrganizationNoCompany
+} from '@/api/GeneralBasicData'
+import { nanoid } from 'nanoid'
+import { LabelBarCode } from '@/api/systemSetting'
+import { getCookie } from '@/utils/auth'
+
export default {
- name: 'StepReport'
+ name: 'SCKBG',
+ components: {
+ Pagination
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ wkshopcode: '',
+ wocode: '', // 宸ュ崟鍙�
+ partcode: '', // 浜у搧缂栫爜
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 浜у搧瑙勬牸
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ wkshopcodeArr: [],
+ total: 10,
+ tableData: [],
+ activeName: '鐢熶骇鍒楄〃',
+ elTabsArr: [
+ { code: 'ZZ', name: '鐢熶骇鍒楄〃' },
+ { code: 'OUT', name: '澶栧崗鍙戞枡' },
+ { code: 'IN', name: '澶栧崗鏀舵枡' },
+ { code: 'BAD', name: '涓嶈壇寰呭鐞�' }
+ ],
+
+ radioSelected: '', // 澶氶�夋閫変腑鍊�
+
+ dialogVisible: false,
+ dialogTitle: '', // 瀵硅瘽妗嗗皬鏍囬
+
+ dialogForm: {
+ 'wo_code': '',
+ 'partnumber': '',
+ 'partname': '',
+ 'partspec': '',
+ 'seq': '',
+ 'stepcode': '',
+ 'stepname': '',
+ 'stepprice': '', // 宸ュ簭鍗曚环
+ 'nextstepcode': '',
+ 'nextstepname': '',
+ 'nextstepprice': '',
+ 'stepdesc': '',
+ 'planqty': 0,
+ 'startqty': 0, //
+ 'noreportqty': 0, // 鏈姤鏁伴噺
+ 'reportqty': 0, // 宸叉姤鏁伴噺
+ 'noputqty': 0, // 涓嶈壇鏁伴噺
+ 'wkshopcode': '',
+ 'wkshopname': '',
+ 'eqpcode': '',
+ 'eqpname': '',
+
+ remarks: '', // 澶囨敞
+ inbarcode: '', // 鍏ュ簱鏉$爜
+ defectlist: '', // 涓嶈壇姹囨��
+ reckway: 'person', // 璁′欢鏂瑰紡(鐝粍:group銆佷釜浜�:person)
+ usergroupcode: '', // 鐝粍缂栫爜
+ reportuser: [], // 鎶ュ伐浜哄憳
+
+ wxcode: '',
+ outuser: '',
+ fqty: '',
+ inuser: '',
+ sqty: '',
+ list: ''
+
+ },
+ dialogFormRules: {
+ eqpcode: [
+ { required: true, message: '璇烽�夋嫨鎶ュ伐璁惧', trigger: ['blur', 'change'] }
+ ],
+ usergroupcode: [
+ { required: true, message: '璇烽�夋嫨鎶ュ伐鐝粍', trigger: ['blur', 'change'] }
+ ],
+ reportuser: [
+ { required: true, message: '璇烽�夋嫨鎶ュ伐浜哄憳', trigger: ['blur', 'change'] }
+ ],
+ startqty: [
+ { required: true, message: '璇疯緭鍏ュ悎鏍兼暟閲�', trigger: ['blur', 'change'] }
+ ],
+ wxcode: [
+ { required: true, message: '璇烽�夋嫨澶栧崗渚涙柟', trigger: ['blur', 'change'] }
+ ],
+ outuser: [
+ { required: true, message: '璇烽�夋嫨鍙戞枡浜哄憳', trigger: ['blur', 'change'] }
+ ],
+ inuser: [
+ { required: true, message: '璇烽�夋嫨鏀舵枡浜哄憳', trigger: ['blur', 'change'] }
+ ],
+ fqty: [
+ { required: true, message: '璇疯緭鍏ュ彂鏂欐暟閲�', trigger: ['blur', 'change'] }
+ ],
+ sqty: [
+ { required: true, message: '璇疯緭鍏ユ敹鏂欐暟閲�', trigger: ['blur', 'change'] }
+ ]
+
+ },
+ reckwayArr: [// 鎶ュ伐绫诲瀷
+ { code: 'group', name: '鐝粍' },
+ { code: 'person', name: '涓汉' }
+ ],
+ reportuserArr: [], // 鎶ュ伐浜哄憳
+ usergroupArr: [], // 鎶ュ伐鐝粍
+ eqpArr: [], // 鎶ュ伐璁惧
+ defectArr: [], // 涓嶈壇缂洪櫡
+ wxArr: [], // 寰�鏉ュ崟浣嶄笅鎷�
+
+ defectTableData: [],
+ badTableData: [],
+ workOrderCurrentValue: ''
+
+ }
+ },
+ created() {
+
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+
+ this.tabClick()
+
+ this.getAllSelectArr()
+ },
+ methods: {
+ async getAllSelectArr() {
+ const { data: res1 } = await GroupsPermissions()// 鐝粍
+ this.usergroupArr = res1
+
+ const { data: res2 } = await PersonPermissions() // 浜哄憳
+ this.reportuserArr = res2
+
+ const { data: res3 } = await DefectPermissions() // 缂洪櫡
+ this.defectArr = res3
+
+ const { data: res4 } = await EqpPermissions() // 璁惧
+ this.eqpArr = res4
+
+ const { data: res5 } = await CustomerPermissions() // 寰�鏉ュ崟浣�
+ this.wxArr = res5
+
+ const { data: res6 } = await PrentOrganizationNoCompany()// 鏃犲叕鍙哥殑缁勭粐涓嬫媺
+ this.wkshopcodeArr = res6
+ },
+ tabClick() {
+ let belong
+ switch (this.activeName) {
+ case '鐢熶骇鍒楄〃':
+ belong = 'produceCodeZZ'
+ this.dialogTitle = '鎶ュ伐'
+ break
+ case '澶栧崗鍙戞枡':
+ belong = 'produceCodeOUT'
+ this.dialogTitle = '鍙戞枡'
+ break
+ case '澶栧崗鏀舵枡':
+ belong = 'produceCodeIN'
+ this.dialogTitle = '鏀舵枡'
+ break
+ case '涓嶈壇寰呭鐞�':
+ belong = 'produceCodeBAD'
+ this.dialogTitle = '涓嶈壇澶勭悊'
+ break
+ }
+ this.enterNative(this.form.wocode, belong)
+
+ this.radioSelected = ''
+ },
+ enterNative(val, belong) {
+ if (belong === 'produceCodeZZ') {
+ this.$nextTick(() => {
+ $('input[name=\'produceCodeZZ\']')[0].focus()
+ })
+ }
+ if (belong === 'produceCodeOUT') {
+ this.$nextTick(() => {
+ $('input[name=\'produceCodeOUT\']')[0].focus()
+ })
+ }
+ if (belong === 'produceCodeIN') {
+ this.$nextTick(() => {
+ $('input[name=\'produceCodeIN\']')[0].focus()
+ })
+ }
+ if (belong === 'produceCodeBAD') {
+ this.$nextTick(() => {
+ $('input[name=\'produceCodeBAD\']')[0].focus()
+ })
+ }
+ this.search()
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.search()
+ },
+ // 鏌ヨ
+ async search() {
+ this.form.wocode = this.workOrderCurrentValue
+ this.workOrderCurrentValue = ''
+ if (this.activeName === '鐢熶骇鍒楄〃') {
+ const res = await MesOrderStepSearch(this.form)
+ this.tableData = res.data
+ this.total = res.count
+ }
+ if (this.activeName === '澶栧崗鍙戞枡' || this.activeName === '澶栧崗鏀舵枡') {
+ const res = await MesOrderWxStepSearch(this.form)
+ this.tableData = res.data
+ this.total = res.count
+ }
+
+ if (this.activeName === '涓嶈壇寰呭鐞�') {
+ const res = await MesOrderNgStepSearch(this.form)
+ this.tableData = res.data
+ this.total = res.count
+ }
+ },
+ // 鎶ュ伐
+ report(row) {
+ if (row) {
+ this.getMesOrderStepStart('ZZ', '', row.wo_code, row.stepcode)
+ } else {
+ const temp = this.tableData.find(i => i.id === this.radioSelected)
+ this.getMesOrderStepStart('ZZ', '', temp.wo_code, temp.stepcode)
+ }
+ },
+ // 鍙戞枡
+ sendOut(row) {
+ if (row) {
+ this.getMesOrderStepStart('WX', 'OUT', row.wo_code, row.stepcode)
+ } else {
+ const temp = this.tableData.find(i => i.id === this.radioSelected)
+ this.getMesOrderStepStart('WX', 'OUT', temp.wo_code, temp.stepcode)
+ }
+ },
+ // 鏀舵枡
+ takeIn(row) {
+ if (row) {
+ this.getMesOrderStepStart('WX', 'IN', row.wo_code, row.stepcode)
+ } else {
+ const temp = this.tableData.find(i => i.id === this.radioSelected)
+ this.getMesOrderStepStart('WX', 'IN', temp.wo_code, temp.stepcode)
+ }
+ },
+ // 涓嶈壇澶勭悊 鐢熶骇寮�鎶ュ伐鎵爜鑾峰彇宸ュ崟瀵瑰簲宸ュ簭浠诲姟(涓嶈壇鏄庣粏)
+ async handleBad(row) {
+ const data = {
+ wocode: row ? row.wo_code : this.tableData.find(i => i.id === this.radioSelected).wo_code,
+ stepcode: row ? row.stepcode : this.tableData.find(i => i.id === this.radioSelected).stepcode
+ }
+ let res = await MesOrderNgSubStepSearch(data)
+ if (res.code === '200') {
+ res = res.data
+ this.dialogForm.wo_code = res.data1.wo_code
+ this.dialogForm.partnumber = res.data1.partnumber
+ this.dialogForm.partname = res.data1.partname
+ this.dialogForm.partspec = res.data1.partspec
+ this.dialogForm.seq = res.data1.seq
+ this.dialogForm.stepcode = res.data1.stepcode
+ this.dialogForm.stepname = res.data1.stepname
+ this.dialogForm.stepprice = res.data1.stepprice
+ this.dialogForm.nextstepcode = res.data1.nextstepcode
+ this.dialogForm.nextstepname = res.data1.nextstepname
+ this.dialogForm.nextstepprice = res.data1.nextstepprice
+ this.dialogForm.stepdesc = res.data1.stepdesc
+ this.dialogForm.planqty = res.data1.planqty
+ this.dialogForm.startqty = res.data1.startqty
+ this.dialogForm.noreportqty = res.data1.noreportqty // 鍚堟牸鏁伴噺
+ this.dialogForm.reportqty = res.data1.reportqty
+ this.dialogForm.noputqty = res.data1.noputqty // 涓嶈壇鏁伴噺
+ this.dialogForm.wkshopcode = res.data1.wkshopcode
+ this.dialogForm.wkshopname = res.data1.wkshopname
+ this.dialogForm.eqpcode = res.data1.eqpcode
+ this.dialogForm.eqpname = res.data1.eqpname
+
+ res.data2.forEach(item => {
+ item.repair_qty = 0
+ item.laborbad_qty = 0
+ item.materielbad_qty = 0
+ })
+
+ this.badTableData = res.data2
+
+ this.dialogVisible = true
+ }
+ },
+ // 鐢熶骇寮�鎶ュ伐锛氭姤宸�/澶栧崗(鍙戞枡/鏀舵枡)鏃舵潯浠跺垽鏂強鏁版嵁杩斿洖鎺ュ彛
+ async getMesOrderStepStart(OperType, SelectType, wocode, stepcode) {
+ const data = {
+ OperType, SelectType, wocode, stepcode
+ }
+ let res = await MesOrderStepStart(data)
+ if (res.code === '200') {
+ res = res.data
+ this.dialogForm.wo_code = res.wo_code
+ this.dialogForm.partnumber = res.partnumber
+ this.dialogForm.partname = res.partname
+ this.dialogForm.partspec = res.partspec
+ this.dialogForm.seq = res.seq
+ this.dialogForm.stepcode = res.stepcode
+ this.dialogForm.stepname = res.stepname
+ this.dialogForm.stepprice = res.stepprice
+ this.dialogForm.nextstepcode = res.nextstepcode
+ this.dialogForm.nextstepname = res.nextstepname
+ this.dialogForm.nextstepprice = res.nextstepprice
+ this.dialogForm.stepdesc = res.stepdesc
+ this.dialogForm.planqty = res.planqty
+ this.dialogForm.startqty = res.startqty
+ this.dialogForm.noreportqty = res.noreportqty// 鏈姤鏁伴噺
+ this.dialogForm.reportqty = res.reportqty // 宸叉姤鏁伴噺
+ this.dialogForm.noputqty = res.noputqty
+ this.dialogForm.wkshopcode = res.wkshopcode
+ this.dialogForm.wkshopname = res.wkshopname
+ this.dialogForm.eqpcode = res.eqpcode
+ this.dialogForm.eqpname = res.eqpname
+
+ if (this.activeName === '澶栧崗鏀舵枡') {
+ this.dialogForm.list = []
+ res.list.forEach(i => {
+ i.acceptQty = parseFloat(i.fqty) - parseFloat(i.sqty) - parseFloat(i.ng_qty) - parseFloat(i.laborbad_qty) - parseFloat(i.materielbad_qty)
+ if (i.acceptQty > 0) {
+ this.dialogForm.list.push(i)
+ }
+ })
+ }
+
+ // this.dialogForm.list = res.list
+
+ this.dialogVisible = true
+ }
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm = {
+ 'wo_code': '',
+ 'partnumber': '',
+ 'partname': '',
+ 'partspec': '',
+ 'seq': '',
+ 'stepcode': '',
+ 'stepname': '',
+ 'stepprice': '', // 宸ュ簭鍗曚环
+ 'nextstepcode': '',
+ 'nextstepname': '',
+ 'nextstepprice': '',
+ 'stepdesc': '',
+ 'planqty': 0,
+ 'startqty': 0, //
+ 'noreportqty': 0, // 鏈姤鏁伴噺
+ 'reportqty': 0, // 宸叉姤鏁伴噺
+ 'noputqty': 0, // 涓嶈壇鏁伴噺
+ 'wkshopcode': '',
+ 'wkshopname': '',
+ 'eqpcode': '',
+ 'eqpname': '',
+
+ wxcode: '',
+ outuser: '',
+ fqty: '',
+ inuser: '',
+ sqty: '',
+ list: '',
+
+ remarks: '', // 澶囨敞
+ inbarcode: '', // 鍏ュ簱鏉$爜
+ defectlist: '', // 涓嶈壇姹囨��
+ reckway: 'person', // 璁′欢鏂瑰紡(鐝粍:group銆佷釜浜�:person)
+ usergroupcode: '', // 鐝粍缂栫爜
+ reportuser: [] // 鎶ュ伐浜哄憳
+
+ }
+
+ this.defectTableData = []
+ this.badTableData = []
+
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ this.tabClick()
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(async valid => {
+ if (valid) {
+ if (this.activeName === '鐢熶骇鍒楄〃') {
+ if (this.defectTableData.find(i => i.code.length === 0)) {
+ return this.$message.info('缂洪櫡缂栫爜/鍚嶇О涓嶈兘涓虹┖锛�')
+ }
+ if (this.defectTableData.find(i => i.badqty.toString().trim() === '' || parseFloat(i.badqty) === 0)) {
+ return this.$message.info('涓嶈壇鏁伴噺涓嶈兘涓虹┖鎴栦负闆讹紒')
+ }
+
+ if (parseFloat(this.dialogForm.noreportqty) < parseFloat(this.dialogForm.startqty) + parseFloat(this.dialogForm.noputqty)) {
+ return this.$message.info('鍚堟牸鏁伴噺鍔犱笉鑹暟閲忎笉鑳藉ぇ浜庝簡鏈姤鏁伴噺!')
+ }
+ let inbarcode = ''
+ if (this.tableData.find(i => i.id === this.radioSelected).isend === 'Y') {
+ const data1 = {
+ rightcode: getCookie('ruleCode'),
+ partcode: this.dialogForm.partnumber,
+ qty: this.dialogForm.startqty,
+ onelabqty: this.dialogForm.startqty
+ }
+
+ const res1 = await LabelBarCode(data1)
+ inbarcode = res1.data[0].labcode
+ }
+
+ const defectlist = []
+ this.defectTableData.forEach(i => {
+ defectlist.push({
+ defect_code: i.code.join(','),
+ badqty: i.badqty
+ })
+ })
+ const data = {
+ mesordercode: this.dialogForm.wo_code,
+ partcode: this.dialogForm.partnumber,
+ stepseq: this.dialogForm.seq,
+ stepcode: this.dialogForm.stepcode,
+ stepprice: this.dialogForm.stepprice,
+ eqpcode: this.dialogForm.eqpcode,
+ inbarcode,
+ reckway: this.dialogForm.reckway,
+ usergroupcode: this.dialogForm.usergroupcode,
+ reportuser: this.dialogForm.reportuser.join(','),
+ taskqty: this.dialogForm.planqty,
+ // startqty: this.dialogForm.startqty,
+ // reportqty: this.dialogForm.reportqty,
+
+ startqty: this.dialogForm.startqty,
+ reportqty: this.dialogForm.startqty, // 鎶ュ伐鏁伴噺
+
+ defectlist,
+ remarks: ''
+ }
+ // console.log(JSON.parse(JSON.stringify(this.defectTableData)))
+ // console.log(JSON.parse(JSON.stringify(data)))
+
+ this.$store.state.app.buttonIsDisabled = true
+ const res = await SavaMesOrderStepReport(data)
+ if (res.code === '200') {
+ this.$notify.success('鎶ュ伐鎴愬姛锛�')
+ // await this.search()
+ await this.tabClick()
+ this.$store.state.app.buttonIsDisabled = false
+ this.dialogVisible = false
+ } else {
+ this.$store.state.app.buttonIsDisabled = false
+ this.$notify.error('鎶ュ伐澶辫触锛�')
+ }
+ }
+
+ if (this.activeName === '澶栧崗鍙戞枡') {
+ if (parseFloat(this.dialogForm.fqty) < 1) {
+ return this.$message.info('鍙戞枡鏁伴噺涓嶈兘涓洪浂锛�')
+ }
+ if (parseFloat(this.dialogForm.fqty) > parseFloat(this.dialogForm.noreportqty)) {
+ return this.$message.info('鍙戞枡鏁伴噺涓嶈兘澶т簬鏈彂鏁伴噺!')
+ }
+ const data = {
+ mesordercode: this.dialogForm.wo_code,
+ partcode: this.dialogForm.partnumber,
+ stepseq: this.dialogForm.seq,
+ stepcode: this.dialogForm.stepcode,
+
+ wxcode: this.dialogForm.wxcode,
+ outuser: this.dialogForm.outuser,
+ taskqty: this.dialogForm.planqty,
+ fqty: this.dialogForm.fqty
+ }
+ // console.log(JSON.stringify(data))
+
+ this.$store.state.app.buttonIsDisabled = true
+ const res = await SavaMesOrderStepOut(data)
+ if (res.code === '200') {
+ this.$notify.success('鍙戞枡鎴愬姛锛�')
+ // await this.search()
+ await this.tabClick()
+ this.$store.state.app.buttonIsDisabled = false
+ this.dialogVisible = false
+ } else {
+ this.$store.state.app.buttonIsDisabled = false
+ this.$notify.error('鍙戞枡澶辫触锛�')
+ }
+ }
+
+ if (this.activeName === '澶栧崗鏀舵枡') {
+ if (this.defectTableData.find(i => i.code.length === 0)) {
+ return this.$message.info('缂洪櫡缂栫爜/鍚嶇О涓嶈兘涓虹┖锛�')
+ }
+ if (this.defectTableData.find(i => i.badqty.toString().trim() === '' || parseFloat(i.badqty) === 0)) {
+ return this.$message.info('涓嶈壇鏁伴噺涓嶈兘涓虹┖鎴栦负闆讹紒')
+ }
+
+ if (parseFloat(this.dialogForm.noreportqty) < parseFloat(this.dialogForm.sqty) + parseFloat(this.dialogForm.noputqty)) {
+ return this.$message.info('鏀舵枡鏁伴噺鍔犱笉鑹暟閲忎笉鑳藉ぇ浜庝簡鍙敹鏁伴噺!')
+ }
+
+ if (this.dialogForm.list.find(i => i.Name === this.dialogForm.wxcode)) {
+ if (this.dialogForm.list.find(i => i.Name === this.dialogForm.wxcode).acceptQty < parseFloat(this.dialogForm.sqty) + parseFloat(this.dialogForm.noputqty)) {
+ return this.$message.info('鏀舵枡鏁伴噺鍔犱笉鑹暟閲忎笉鑳藉ぇ浜庤渚涘簲鍟嗗彲鏀舵暟閲�!')
+ }
+ } else {
+ return this.$message.info('姝や緵搴斿晢鏃犲彲鏀舵暟閲�!')
+ }
+
+ let inbarcode = ''
+ if (this.tableData.find(i => i.id === this.radioSelected).isend === 'Y') {
+ const data1 = {
+ rightcode: getCookie('ruleCode'),
+ partcode: this.dialogForm.partnumber,
+ qty: this.dialogForm.startqty,
+ onelabqty: this.dialogForm.startqty
+ }
+
+ const res1 = await LabelBarCode(data1)
+ inbarcode = res1.data[0].labcode
+ }
+ const defectlist = []
+ this.defectTableData.forEach(i => {
+ defectlist.push({
+ defect_code: i.code.join(','),
+ badqty: i.badqty
+ })
+ })
+
+ const data = {
+ mesordercode: this.dialogForm.wo_code,
+ partcode: this.dialogForm.partnumber,
+ stepseq: this.dialogForm.seq,
+ stepcode: this.dialogForm.stepcode,
+
+ wxcode: this.dialogForm.wxcode,
+ inbarcode,
+ inuser: this.dialogForm.inuser,
+ taskqty: this.dialogForm.planqty,
+ sqty: this.dialogForm.sqty,
+ defectlist,
+ remarks: ''
+ }
+ // console.log(JSON.parse(JSON.stringify(data)), 1)
+ this.$store.state.app.buttonIsDisabled = true
+ const res = await SavaMesOrderStepIn(data)
+ if (res.code === '200') {
+ this.$notify.success('鏀舵枡鎴愬姛锛�')
+ // await this.search()
+ await this.tabClick()
+ this.$store.state.app.buttonIsDisabled = false
+ this.dialogVisible = false
+ } else {
+ this.$store.state.app.buttonIsDisabled = false
+ this.$notify.error('鏀舵枡澶辫触锛�')
+ }
+ }
+
+ if (this.activeName === '涓嶈壇寰呭鐞�') {
+ let flag = false
+ this.badTableData.forEach(i => {
+ if (parseFloat(i.repair_qty) + parseFloat(i.laborbad_qty) + parseFloat(i.materielbad_qty) > parseFloat(i.ng_qty)) {
+ flag = true
+ }
+ })
+ if (flag) {
+ return this.$message.info('缁翠慨鍚堟牸鏁伴噺+宸ュ簾鏁伴噺+鏂欏簾鏁伴噺涓嶈兘澶т簬涓嶈壇鏁伴噺锛�')
+ }
+ this.$store.state.app.buttonIsDisabled = true
+ const res = await EditOrderNgStepSeave({ Data: this.badTableData })
+ if (res.code === '200') {
+ this.$notify.success('鎻愪氦鎴愬姛锛�')
+ // await this.search()
+ await this.tabClick()
+ this.$store.state.app.buttonIsDisabled = false
+ this.dialogVisible = false
+ } else {
+ this.$store.state.app.buttonIsDisabled = false
+ this.$notify.error('鎻愪氦澶辫触锛�')
+ }
+ }
+ }
+ })
+ },
+ // 缂洪櫡鏂板
+ addDefect() {
+ if (this.defectTableData.find(i => i.code.length === 0)) {
+ return this.$message.info('缂洪櫡缂栫爜/鍚嶇О涓嶈兘涓虹┖锛�')
+ }
+ if (this.defectTableData.find(i => i.badqty.toString().trim() === '' || parseFloat(i.badqty) === 0)) {
+ return this.$message.info('涓嶈壇鏁伴噺涓嶈兘涓虹┖鎴栦负闆讹紒')
+ }
+
+ this.defectTableData.push({
+ uuid: nanoid(), code: [], badqty: ''
+ })
+ },
+ // 缂洪櫡鍒犻櫎
+ defectDel(row) {
+ this.defectTableData = this.defectTableData.filter(i => i.uuid !== row.uuid)
+
+ this.dialogForm.noputqty = 0
+ this.defectTableData.forEach(i => {
+ this.dialogForm.noputqty += parseFloat(i.badqty)
+ })
+ },
+ badqtyChange(val) {
+ this.dialogForm.noputqty = 0
+ this.defectTableData.forEach(i => {
+ this.dialogForm.noputqty += parseFloat(i.badqty)
+ })
+ },
+ reckwayChange(val) {
+ // console.log(val)
+ this.dialogForm.usergroupcode = ''
+ this.dialogForm.reportuser = []
+ },
+ async usergroupChange(val) {
+ const { data: res } = await GroupsPersonPermissions({ groupcode: val })
+ this.dialogForm.reportuser = res[0].usercode_list ? res[0].usercode_list.split(',') : []
+ },
+ rowClick(row, event, column) {
+ this.radioSelected = row.id
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 275
+ // this.$refs.tableDataRef.doLayout()
+ })
+ },
+ reset() {
+ this.form.wkshopcode = ''
+ this.form.wocode = ''
+ this.form.workOrderCurrentValue = ''
+ this.form.partcode = ''
+ this.form.partname = ''
+ this.form.partspec = ''
+ this.search()
+ },
+
+ headerCellStyle() {
+ return this.$headerCellStyle
+ },
+ cellStyle() {
+ return this.$cellStyle
+ }
+ }
}
</script>
+<style lang="scss" scoped>
-<style scoped>
+::v-deep .elTableDiv .el-radio__label {
+ display: none !important;
+}
+
+.dialogFormItem {
+ margin: 0 10px 0 0;
+}
+
+.dialogFormItemDiv {
+ width: 200px;
+}
+
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+::v-deep .el-dialog .el-form-item__label {
+ font-weight: lighter !important;
+}
+
+::v-deep .el-dialog .el-divider__text {
+ font-weight: bolder !important;
+}
</style>
diff --git a/src/views/qualityManager/defectDefine.vue b/src/views/qualityManager/defectDefine.vue
index e69de29..7fd9cf4 100644
--- a/src/views/qualityManager/defectDefine.vue
+++ b/src/views/qualityManager/defectDefine.vue
@@ -0,0 +1,356 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
+ <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+ <el-button
+ v-waves
+ type="success"
+ icon="el-icon-download"
+ @click="$router.push('./../systemSetting/dataImport?fileCode=18')"
+ >瀵煎叆
+ </el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="缂洪櫡缂栫爜" style=" display: flex;">
+ <el-input v-model="form.defectcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="缂洪櫡鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.defectname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="getDedectSearch">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ style="height:5px"
+ >
+ <!-- <svg-icon-->
+ <!-- v-show="mouseHoverType==='mouseout'"-->
+ <!-- style="cursor: pointer"-->
+ <!-- :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"-->
+ <!-- @mouseenter="mouseHoverType=$event.type"-->
+ <!-- />-->
+ <!-- <svg-icon-->
+ <!-- v-show="mouseHoverType==='mouseenter'"-->
+ <!-- style="cursor: pointer"-->
+ <!-- :icon-class="!isExpandForm?'doubleDown':'doubleUp'"-->
+ <!-- @click="isExpandForm=!isExpandForm"-->
+ <!-- @mouseout="mouseHoverType=$event.type"-->
+ <!-- />-->
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="tableHeight+'px'"
+ border
+ row-class-name="custom-row"
+ :style="{width: 100+'%',height:tableHeight+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="code"
+ label="缂洪櫡缂栫爜"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="name"
+ label="缂洪櫡鍚嶇О"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="description"
+ label="鎻忚堪"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ {{ row.description ? row.description : '/' }}
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="lm_user"
+ label="鍒涘缓浜哄憳"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="lm_date"
+ label="鍒涘缓鏃堕棿"
+ width="160"
+ sortable="custom"
+ />
+ <el-table-column
+ label="鎿嶄綔"
+ width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-tooltip class="item" effect="dark" content="缂栬緫" placement="top">
+ <i
+ v-if="row.leve!==0"
+ class="el-icon-edit-outline"
+ :style="{color:$store.state.settings.theme}"
+ @click="edit('edit',row)"
+ />
+ </el-tooltip>
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+ <i
+ v-if="row.leve!==0"
+ class="el-icon-delete"
+ :style="{color:$store.state.settings.theme}"
+ @click="del(row)"
+ />
+ </el-tooltip>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes,jumper"
+ popper-class="select_bottom"
+ @pagination="getDedectSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'缂栬緫'"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
+ <el-form-item label="缂洪櫡缂栫爜" prop="defectcode">
+ <el-input v-model="dialogForm.defectcode" :disabled="operation!=='add'" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="缂洪櫡鍚嶇О" prop="defectname">
+ <el-input v-model="dialogForm.defectname" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鎻忚堪">
+ <el-input
+ v-model="dialogForm.defectdescr"
+ type="textarea"
+ style="width: 200px"
+ />
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="dialogVisibleConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import {
+ AddUpdateOrganization, AddUpdatePost,
+ DeleteOrganization, DeletePost, PostData,
+ PrentOrganization,
+ STorgData
+} from '@/api/basicSettings'
+import { validateCode } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import { AddUpdateDedect, DedectSearch, DeleteDedect } from '@/api/QualityManagement'
+
+export default {
+ name: 'Zzjg',
+ components: {
+ Pagination
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ defectcode: '', // 缁勭粐鏋舵瀯缂栫爜
+ defectname: '', // 缁勭粐鏋舵瀯鍚嶇О
+ defectdescr: '',
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ total: 10,
+ tableData: [],
+ dialogVisible: false,
+ dialogForm: {
+ defectcode: '', // 缁勭粐缂栫爜
+ defectname: '', // 缁勭粐鍚嶇О
+ defectdescr: '', // 鎻忚堪
+ OperType: ''
+ },
+ operation: '',
+ dialogFormRules: {
+ defectcode: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ defectname: [
+ { required: true, message: '璇疯緭鍏ョ己闄峰悕绉�', trigger: ['blur', 'change'] }
+ ]
+ }
+
+ }
+ },
+ created() {
+ this.getDedectSearch()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ // 缁勭粐鏋舵瀯澶у垪琛ㄦ煡璇�
+ async getDedectSearch() {
+ const res = await DedectSearch(this.form)
+ this.tableData = res.data
+ this.total = res.count
+ },
+
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getDedectSearch()
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.defectcode = ''
+ this.form.defectname = ''
+ this.getDedectSearch()
+ },
+ // 鏂板鎸夐挳
+ add(operation) {
+ this.operation = operation
+ this.dialogVisible = true
+ this.dialogForm.OperType = 'Add'
+ },
+ // 淇敼鎸夐挳
+ async edit(operation, row) {
+ this.operation = operation
+ this.dialogVisible = true
+ this.dialogForm.OperType = 'Update'
+
+ this.$nextTick(() => {
+ this.dialogForm.defectcode = row.code
+ this.dialogForm.defectname = row.name
+ this.dialogForm.defectdescr = row.description
+ })
+ },
+ // 鍒犻櫎鎸夐挳
+ async del(row) {
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ DeleteDedect({ defectcode: row.code }).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('鍒犻櫎鎴愬姛!')
+ if (this.form.page > 1 && this.tableData.length === 1) {
+ this.form.page--
+ }
+ this.getDedectSearch()
+ }
+ })
+ }).catch(() => {
+ this.$notify.info('宸插彇娑堝垹闄�')
+ })
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm.defectcode = ''
+ this.dialogForm.defectname = ''
+ this.dialogForm.defectdescr = ''
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ this.$store.state.app.buttonIsDisabled = true
+ AddUpdateDedect(this.dialogForm).then(res => {
+ if (res.code === '200') {
+ this.$notify.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ this.dialogVisible = false
+ this.$store.state.app.buttonIsDisabled = false
+ this.getDedectSearch()
+ } else {
+ this.$store.state.app.buttonIsDisabled = false
+ this.$notify.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ }
+ })
+ }
+ })
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 200
+ this.$refs.tableDataRef.doLayout()
+ })
+ }
+ }
+}
+</script>
diff --git a/src/views/qualityManager/processCheck.vue b/src/views/qualityManager/processCheck.vue
index e69de29..dbe4e3a 100644
--- a/src/views/qualityManager/processCheck.vue
+++ b/src/views/qualityManager/processCheck.vue
@@ -0,0 +1,802 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}" style="background-color: #eaecef">
+
+ <div
+ style="background-color: #f8f8fa;margin: 10px 0;
+ overflow-y:auto;overflow-x: hidden;
+ display: flex;flex-direction: column"
+ :style="{height:mainHeight+'px'}"
+ >
+ <div class="content1">
+ <div>
+ <i class="el-icon-s-operation" style="font-size: 14px" :style="{color:$store.state.settings.theme}" />
+ </div>
+ <div class="title">
+ 鎵弿淇℃伅
+ </div>
+ </div>
+
+ <div class="content2">
+ <el-form :inline="true" label-width="80px">
+ <el-form-item label="妫�楠岀被鍨�">
+ <el-select
+ v-model="form.checktype"
+ style="width: 160px;"
+ placeholder="璇烽�夋嫨"
+ filterable
+ >
+ <el-option
+ v-for="item in checktypeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鎵爜鏉$爜">
+ <el-input
+ v-model="form.orderstepqrcode"
+ name="GXproduceCode"
+ style="width: 250px"
+ placeholder="璇锋壂鐮佸伐鍗曞伐搴忕爜"
+ @keyup.enter.native="enterNative"
+ />
+ </el-form-item>
+ </el-form>
+ </div>
+
+ <div class="content1">
+ <div>
+ <i class="el-icon-s-operation" style="font-size: 14px" :style="{color:$store.state.settings.theme}" />
+ </div>
+ <div class="title">
+ 宸ュ崟淇℃伅
+ </div>
+ </div>
+ <div class="content2" style="width: 60%;margin-left: 30px;">
+ <div class="orderMsg">鍗曟嵁缂栧彿锛歿{ form.wocode }}</div>
+ <div class="orderMsg">鐗╂枡缂栫爜锛歿{ form.partcode }}</div>
+ <div class="orderMsg">鐗╂枡鍚嶇О锛歿{ form.partname }}</div>
+ </div>
+ <div class="content2" style="width: 60%;margin-left: 30px;">
+ <div class="orderMsg">鐗╂枡瑙勬牸锛歿{ form.partspec }}</div>
+ <div class="orderMsg">宸ュ簭缂栫爜锛歿{ form.stepcode }}</div>
+ <div class="orderMsg">宸ュ簭鍚嶇О锛歿{ form.stepname }}</div>
+ </div>
+
+ <div class="content1">
+ <div>
+ <i class="el-icon-s-operation" style="font-size: 14px" :style="{color:$store.state.settings.theme}" />
+ </div>
+ <div class="title">
+ 璐ㄦ鏂规
+ </div>
+ </div>
+ <div class="content2" style="width: 60%;margin-left: 30px;">
+ <div class="orderMsg">鏂规鍚嶇О锛歿{ form.checkstandname }}</div>
+ <div class="orderMsg">鎶芥牱鏂瑰紡锛歿{
+ form.sampmethod === 'FIXED' ? '鍥烘椂鎶芥' : form.sampmethod === 'SCARE' ? '姣斾緥鎶芥' : ''
+ }}
+ </div>
+ </div>
+ <div class="content2" style="width: 60%;margin-left: 30px;">
+ <div class="orderMsg">鎶ュ伐鏁伴噺锛歿{ form.good_qty }}</div>
+ <div class="orderMsg">鏍锋湰鏁伴噺锛�
+ <el-input-number
+ v-if="form.good_qty"
+ v-model="form.sampscare"
+ :max="form.good_qty"
+ :min="1"
+ size="medium"
+ @change="numberChange"
+ />
+ </div>
+ </div>
+
+ <div
+ v-if="checkItemArr.length>0"
+ class="content1"
+ >
+ <div>
+ <i class="el-icon-s-operation" style="font-size: 14px" :style="{color:$store.state.settings.theme}" />
+ </div>
+ <div class="title">
+ 妫�楠岄」鐩�
+ </div>
+ </div>
+ <div
+ v-if="form.sampscare!==1&&checkItemArr.length>0"
+ class="content2"
+ style="width: 60%;"
+ >
+ <el-link :underline="false" :disabled="!(stepActive>0)" style="width: 60px;margin-top: 5px" @click="pre">涓婁竴浠�
+ </el-link>
+ <el-steps :active="stepActive" style="width: 70%;margin:0 10px;" finish-status="success">
+ <el-step v-for="item in form.sampscare" :key="item" title="" />
+ </el-steps>
+ <el-link
+ :underline="false"
+ :disabled="!(stepActive < form.sampscare-1)"
+ style="width: 60px;margin-top: 5px"
+ @click="next"
+ >涓嬩竴浠�
+ </el-link>
+ </div>
+
+ <div
+ class="content2"
+ style="flex-direction: column;justify-content:flex-start;width: 480px;margin-top: 10px;"
+ >
+
+ <div
+ v-for="(item,index) in checkItemArr"
+ v-if="stepActive+1===item.checkNumber"
+ :key="item.code+(stepActive+1).toString()"
+ :style="{borderBottom:(index+1)%checkItemArr.map(i=>i.checkNumber===1).filter(i=>i).length!==0?`1px solid rgba(48,49,51,0.2)`:''}"
+ class="checkItem"
+ >
+
+ <div style="display: flex;justify-content: space-between;align-items: center">
+ <div style="display: flex;width: 300px;">
+ <div class="serialNumber">{{ item.stepcheckitem_seq }}</div>
+ <div style="display: flex;align-items: center">{{ item.name }}</div>
+ </div>
+
+ <div v-show="item.numberjudge==='N'" style="width: 150px;display: flex;padding-left: 20px">
+ <el-button
+ type="primary"
+ size="mini"
+ :plain="!item.check_result"
+ @click="checkResultClick('OK',item)"
+ >鍚堟牸
+ </el-button>
+ <el-button
+ type="warning"
+ size="mini"
+ :plain="item.check_result"
+ @click="checkResultClick('NG',item)"
+ >涓嶅悎鏍�
+ </el-button>
+ </div>
+ <div v-show="item.numberjudge!=='N'" style="width: 150px;" />
+ </div>
+
+ <div style="display: flex;margin-bottom: 5px">
+ <div style="display: flex;flex-direction: column">
+ <div v-if="item.standvalue" class="itemTitle">鏍囧噯鍊�</div>
+ <div v-if="item.uppervalue" class="itemTitle">涓婇檺鍊�</div>
+ <div v-if="item.lowervalue" class="itemTitle">涓嬮檺鍊�</div>
+ <div v-if="item.stepcheckitem_desc" class="itemTitle">鎻忚堪</div>
+ <div v-if="item.numberjudge!=='N'" class="itemTitle">瀹炴祴鍊�
+ <el-input
+ v-model="item.real_value"
+ size="mini"
+ oninput="value=value.replace(/[^0-9]/g,'')"
+ style="width: 100px;margin-left: 5px"
+ @input="val=>inputChange(val,item)"
+ />
+ </div>
+ </div>
+ <div style="display: flex;flex-direction: column">
+ <div v-if="item.standvalue" class="itemContent">{{ item.standvalue }}</div>
+ <div v-if="item.uppervalue" class="itemContent">{{ item.uppervalue }}</div>
+ <div v-if="item.lowervalue" class="itemContent">{{ item.lowervalue }}</div>
+ <div v-if="item.stepcheckitem_desc" class="itemContent">{{ item.stepcheckitem_desc }}</div>
+
+ <div v-show="item.numberjudge!=='N'" class="itemContent" style="width: 150px;display: flex">
+ <el-button
+ type="primary"
+ size="mini"
+ :disabled="item.required==='Y'&&!item.real_value"
+ :plain="!item.check_result"
+ @click="checkResultClick('OK',item)"
+ >鍚堟牸
+ </el-button>
+ <el-button
+ type="warning"
+ size="mini"
+ :disabled="item.required==='Y'&&!item.real_value"
+ :plain="item.check_result"
+ @click="checkResultClick('NG',item)"
+ >
+ 涓嶅悎鏍�
+ </el-button>
+ </div>
+ </div>
+ </div>
+
+ </div>
+
+ </div>
+
+ <div
+ v-if="checkItemArr.filter(i=>i.check_result!=='').length===checkItemArr.length&&checkItemArr.length>0"
+ class="content1"
+ >
+ <div>
+ <i class="el-icon-s-operation" style="font-size: 14px" :style="{color:$store.state.settings.theme}" />
+ </div>
+ <div class="title">
+ 妫�楠岀粨鏋�
+ </div>
+ </div>
+
+ <div
+ v-if="checkItemArr.filter(i=>i.check_result!=='').length===checkItemArr.length&&checkItemArr.length>0"
+ class="content2"
+ style="width: 60%;margin-left: 30px;"
+ >
+ <div class="orderMsg2">鏍锋湰鏁伴噺锛歿{ form.sampscare }}</div>
+ <div class="orderMsg2">鍚堟牸鏁伴噺锛歿{ form.goodqty }}</div>
+ <div class="orderMsg2">涓嶅悎鏍兼暟閲忥細{{ form.ngqty }}</div>
+
+ <div style="width: 290px;display: flex;align-items: center" class="resultButton">
+ <div style="width: 70px;">鍒ゅ畾缁撴灉锛�</div>
+ <el-button type="primary" size="medium" :plain="!check_result" @click="check_result=true">鍚堟牸</el-button>
+ <el-button type="warning" size="medium" :plain="check_result" @click="check_result=false">涓嶅悎鏍�</el-button>
+ </div>
+ </div>
+
+ <div
+ v-if="checkItemArr.filter(i=>i.check_result!=='').length===checkItemArr.length&&checkItemArr.length>0"
+ class="content2 submitButton"
+ style="margin-top: 10px;margin-bottom: 10px;"
+ >
+ <el-button
+ v-waves
+ type="primary"
+ @click="submitButton"
+ >鎻愪氦
+ </el-button>
+ </div>
+
+ </div>
+
+ </div>
+ </div>
+</template>
+
+<script>
+import waves from '@/directive/waves'
+import $ from 'jquery'
+import { MesOrderStepCheckItemList, MesOrderStepCheckSearch, SaveMesOrderStepCheckItem } from '@/api/QualityManagement'
+import { getCookie } from '@/utils/auth'
+
+export default {
+ name: 'Zzjg',
+
+ directives: { waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+
+ form: {
+ orderstepqrcode: '', // 鎵弿宸ュ簭浜岀淮鐮佷俊鎭�
+ checktype: 'FirstCheck',
+
+ wocode: '',
+ partcode: '',
+ partname: '',
+ partspec: '',
+ stepcode: '',
+ stepname: '',
+ checkstandcode: '',
+ checkstandname: '',
+ check_type: '',
+ sampmethod: '', // FIXED(鍥烘椂鎶芥) SCARE(姣斾緥鎶芥)
+ sampscare: '',
+ qualitystatus: '',
+ good_qty: '', // 鎸囩殑鎶ュ伐鏁伴噺
+ sampleqty: '',
+ goodqty: '', // 鍚堟牸鏁伴噺
+ ngqty: '', // 涓嶈壇鏁伴噺
+ // checkitemcont: [],
+
+ username: getCookie('admin')
+
+ },
+ checktypeArr: [
+ { code: 'FirstCheck', name: '棣栨' },
+ { code: 'PatroCheck', name: '宸℃' },
+ { code: 'EndCheck', name: '瀹屽伐妫�' }
+ ],
+ stepActive: 0, // 褰撳墠澶勪簬绗嚑浠�
+
+ checkItemArr: [],
+ check_result: ''
+
+ }
+ },
+
+ watch: {
+ 'checkItemArr': {
+ deep: true, // 娣卞害鐩戝惉鏃� 鐩戝惉鍒板睘鎬� 褰撲笉涓烘繁搴︾洃鍚椂锛屽彲鐩戝惉闀垮害
+ handler: function(val) {
+ // do something with the new and old value of myArray
+ this.form.goodqty = 0
+ for (var i = 0; i < this.form.sampscare; i++) {
+ const flag = this.checkItemArr.filter(j => j.checkNumber === i + 1).every(j => j.check_result)
+ if (flag) {
+ this.form.goodqty++
+ }
+ }
+ this.form.ngqty = this.form.sampscare - this.form.goodqty
+ }
+ }
+ },
+
+ created() {
+
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+
+ this.getFocus()
+ },
+ methods: {
+ // 鑾峰彇鑱氱劍
+ getFocus() {
+ this.$nextTick(() => {
+ $('input[name=\'GXproduceCode\']')[0].focus()
+ })
+ },
+ async enterNative() {
+ const data = {
+ orderstepqrcode: this.form.orderstepqrcode,
+ checktype: this.form.checktype,
+ stu_torgcode: getCookie('stu_torgcode')
+ }
+ const { data: res } = await MesOrderStepCheckSearch(data)
+ this.form.wocode = res.labcont[0].wo_code
+ this.form.partcode = res.labcont[0].partcode
+ this.form.partname = res.labcont[0].partname
+ this.form.partspec = res.labcont[0].partspec ? res.labcont[0].partspec : '/'
+ this.form.stepcode = res.labcont[0].stepcode
+ this.form.stepname = res.labcont[0].stepname
+ this.form.good_qty = res.labcont[0].good_qty
+
+ this.form.checkstandcode = res.chekstand[0].checkstandcode
+ this.form.checkstandname = res.chekstand[0].checkstandname
+ this.form.sampmethod = res.chekstand[0].sampmethod
+
+ this.form.sampscare = res.chekstand[0].sampmethod === 'FIXED' ? res.chekstand[0].sampscare
+ : res.labcont[0].good_qty * res.chekstand[0].sampscare / 100
+ this.form.sampscare = this.form.sampscare <= this.form.good_qty ? this.form.sampscare : this.form.good_qty
+
+ await this.getMesOrderStepCheckItemList()
+ },
+ async getMesOrderStepCheckItemList() {
+ const { data: res } = await MesOrderStepCheckItemList({ checkstandcode: this.form.checkstandcode })
+ // this.checkItemArr = res
+ this.checkItemArr = []
+ for (let i = 0; i < this.form.sampscare; i++) {
+ res.forEach(j => {
+ this.checkItemArr.push({
+ checkNumber: i + 1,
+ stepcheckitem_seq: j.stepcheckitem_seq,
+ name: j.name,
+ code: j.code,
+ standvalue: j.standvalue,
+ lowervalue: j.lowervalue,
+ uppervalue: j.uppervalue,
+
+ unit: j.unit,
+ stepcheckitem_desc: j.stepcheckitem_desc,
+ required: j.required, // 鏄惁蹇呭~
+ numberjudge: j.numberjudge, // 鏁板�煎垽鏂�
+ real_value: '',
+ check_result: j.numberjudge === 'Y' ? '' : true
+ })
+ })
+ }
+
+ if (this.checkItemArr.every(i => i.check_result)) {
+ this.check_result = true
+ } else {
+ this.check_result = ''
+ }
+ },
+
+ numberChange(currentValue, oldValue) {
+ const t = this.checkItemArr.filter(i => i.checkNumber === 1)
+
+ // 浠舵暟鍙樺皯鏃舵墽琛�
+ if (currentValue < this.checkItemArr.length / t.length) {
+ this.checkItemArr.reverse()
+ this.checkItemArr.splice(0, t.length * (oldValue - currentValue))
+ this.checkItemArr.reverse()
+
+ this.stepActive = currentValue - 1
+ }
+ // 浠舵暟鍙樺鏃舵墽琛�
+ if (currentValue > this.checkItemArr.length / t.length) {
+ for (let i = currentValue; i > oldValue; i--) {
+ t.forEach(j => {
+ this.checkItemArr.push({
+ checkNumber: i,
+ name: j.name,
+ code: j.code,
+ standvalue: j.standvalue,
+ lowervalue: j.lowervalue,
+ uppervalue: j.uppervalue,
+ stepcheckitem_seq: j.stepcheckitem_seq,
+ unit: j.unit,
+ stepcheckitem_desc: j.stepcheckitem_desc,
+ required: j.required, // 鏄惁蹇呭~
+ numberjudge: j.numberjudge, // 鏁板�煎垽鏂�
+ real_value: '',
+ check_result: j.numberjudge === 'Y' ? '' : true
+ })
+ })
+ }
+ this.checkItemArr.sort((a, b) => a.checkNumber - b.checkNumber)
+ }
+ },
+
+ pre() {
+ if (this.stepActive > 0) {
+ this.stepActive--
+ }
+ },
+ next() {
+ if (this.stepActive < this.form.sampscare) {
+ this.stepActive++
+ }
+ },
+
+ inputChange(val, item) {
+ if (val !== '') {
+ if (item.numberjudge === 'Y') { // 濡傛灉闇�瑕佽繘琛屾暟鍊煎垽鏂�
+ if (item.uppervalue === '' && item.lowervalue === '') { // 涓婇檺鍊间负绌猴紝涓嬮檺鍊间负绌�
+ item.check_result = parseFloat(val) === parseFloat(item.standvalue)
+ }
+
+ if (item.uppervalue !== '' && item.lowervalue !== '') { // 涓婇檺鍊间笉涓虹┖锛屼笅闄愬�间笉涓虹┖
+ item.check_result = parseFloat(val) >= parseFloat(item.lowervalue) && parseFloat(val) <=
+ parseFloat(item.uppervalue)
+ }
+
+ if (item.uppervalue !== '' && item.lowervalue === '') { // 涓婇檺鍊间笉涓虹┖锛屼笅闄愬�间负绌�
+ item.check_result = parseFloat(val) <= parseFloat(item.uppervalue)
+ }
+
+ if (item.uppervalue === '' && item.lowervalue !== '') { // 涓婇檺鍊间负绌猴紝涓嬮檺鍊间笉涓虹┖
+ item.check_result = parseFloat(val) >= parseFloat(item.lowervalue)
+ }
+ }
+ }
+
+ if (val === '') {
+ item.check_result = ''
+ }
+
+ this.check_result = !!this.checkItemArr.every(i => i.check_result)
+ },
+
+ checkResultClick(val, item) {
+ item.check_result = val === 'OK'
+
+ if (this.checkItemArr.filter(i => i.check_result !== '').length === this.checkItemArr.length) {
+ this.check_result = !!this.checkItemArr.every(i => i.check_result)
+ }
+ },
+
+ submitButton() {
+ this.$confirm('鏄惁纭鎻愪氦?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ const checkitemcont = []
+ this.checkItemArr.forEach((i, index) => {
+ checkitemcont.push({
+ checknum: i.checkNumber + '/' + this.checkItemArr.length / this
+ .checkItemArr.filter(j => j.checkNumber === 1).length,
+ checkiem_seq: i.stepcheckitem_seq,
+ checkitem_code: i.code,
+ checkitem_name: i.name,
+ check_value: i.real_value ? i.real_value : '',
+ check_result: i.check_result ? 'OK' : 'NG',
+ checkitem_descr: ''
+ })
+ })
+
+ const data = {
+ stu_torgcode: getCookie('stu_torgcode'),
+ wocode: this.form.wocode,
+ partcode: this.form.partcode,
+ stepcode: this.form.stepcode,
+ checkstandcode: this.form.checkstandcode,
+ check_type: this.form.checktype,
+ sampmethod: this.form.sampmethod,
+ qualitystatus: this.check_result ? 'OK' : 'NG',
+ good_qty: this.form.good_qty,
+ sampleqty: this.form.sampscare,
+ goodqty: this.form.goodqty,
+ ngqty: this.form.ngqty,
+ admin: this.form.username,
+ checkitemcont
+ }
+
+ SaveMesOrderStepCheckItem(data).then(res => {
+ if (res.code === '200') {
+ this.form.orderstepqrcode = ''
+
+ this.form.wocode = ''
+ this.form.partcode = ''
+ this.form.partname = ''
+ this.form.partspec = ''
+ this.form.stepcode = ''
+ this.form.stepname = ''
+ this.form.checkstandcode = ''
+ this.form.checkstandname = ''
+ this.form.check_type = ''
+ this.form.sampmethod = ''// FIXED(鍥烘椂鎶芥) SCARE(姣斾緥鎶芥)
+ this.form.sampscare = ''
+ this.form.qualitystatus = ''
+ this.form.good_qty = '' // 鎸囩殑鎶ュ伐鏁伴噺
+ this.form.sampleqty = ''
+ this.form.goodqty = '' // 鍚堟牸鏁伴噺
+ this.form.ngqty = '' // 涓嶈壇鏁伴噺
+ this.stepActive = 0
+ this.checkItemArr = []
+ this.check_result = ''
+ this.$message.success('妫�楠屾垚鍔燂紒')
+ this.getFocus()
+ }
+ })
+ })
+ },
+
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 255
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ }
+ }
+}
+</script>
+
+<!--鍏叡椤甸潰鏍峰紡-->
+<style lang="scss" scoped>
+$main_color: #42b983;
+::v-deep .el-button--text {
+ font-size: 14px;
+ cursor: pointer;
+}
+
+.el-icon-share, .el-icon-delete, .el-icon-edit-outline {
+ color: $main_color;
+ cursor: pointer;
+}
+
+.el-icon-edit-outline {
+ margin-right: 15px;
+}
+
+::v-deep .el-button--primary, .el-button--warning, .el-button--default, .el-button--info {
+ //height: 34px;
+ //display: flex;
+ //align-items: center;
+ //padding: 0 15px;
+ width: 58px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.submitButton {
+ ::v-deep .el-button--primary {
+ width: 160px;
+ letter-spacing: 10px;
+ padding-left: 25px;
+ font-size: 18px;
+ //display: flex;
+ //justify-content: center;
+ //align-items: center;
+ }
+}
+
+.resultButton {
+ ::v-deep .el-button--primary {
+ width: 100px;
+ letter-spacing: 4px;
+ padding-left: 22px;
+ }
+
+ ::v-deep .el-button--warning {
+ width: 100px;
+ letter-spacing: 4px;
+ padding-left: 22px;
+ }
+}
+
+::v-deep .el-button--default {
+ background-color: #f8f8fa;
+ border: none;
+}
+
+::v-deep .el-input__inner {
+ height: 34px;
+ line-height: 34px;
+ //color: #a7a7a7;
+}
+
+::v-deep .el-dialog__body {
+ padding: 20px 100px !important;
+}
+
+::v-deep .dialogVisibleRoles .el-dialog__body {
+ padding: 20px 20px !important;
+}
+
+::v-deep .importPickerClass .el-dialog__body {
+ padding: 20px 20px !important;
+}
+
+::v-deep .el-dialog__footer {
+ display: flex;
+ justify-content: flex-end;
+}
+
+::v-deep .el-table .caret-wrapper {
+ transform: scale(0.8);
+}
+
+::v-deep .cell {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
+
+::v-deep .el-table::before {
+ height: 0;
+}
+
+::v-deep .el-table__body-wrapper {
+ background-color: #f8f8fa;
+}
+
+::v-deep .el-table__body .el-table__row.hover-row td {
+ background-color: #eaecef;
+}
+
+::v-deep .el-form--inline .el-form-item__label {
+ //color: #a7a7a7;
+ //font-size: 16px;
+}
+
+.body ::v-deep .el-divider {
+ border: 1px solid #eee;
+ width: 99%;
+ margin: 10px auto;
+}
+
+.body ::v-deep .el-form-item {
+ margin-bottom: 0;
+}
+
+.userDialogVisible ::v-deep .el-form-item {
+ margin-bottom: 0;
+}
+
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.tableFixed {
+ ::v-deep .el-table__fixed-right {
+ height: 100% !important;
+ }
+
+ ::v-deep .el-table__fixed {
+ height: 100% !important;
+ }
+}
+</style>
+
+<style lang="scss" scoped>
+.content1 {
+ display: flex;
+ align-items: center;
+ margin: 10px 0 0 10px;
+
+ .title {
+ font-size: 14px;
+ font-weight: bold;
+ margin-left: 5px;
+ }
+}
+
+.content2 {
+ margin: 10px 0 0 20px;
+ display: flex;
+ font-size: 14px;
+ width: 100%;
+ align-items: center;
+}
+
+.orderMsg {
+ width: 33.33%;
+ display: flex;
+ align-items: center;
+}
+
+::v-deep .el-input-number--medium {
+ line-height: 32px;
+ width: 120px;
+}
+
+.checkItem {
+ display: flex;
+ justify-content: space-between;
+ min-height: 36px;
+
+ align-items: center;
+ flex-direction: column;
+ margin-top: 5px;
+}
+
+.serialNumber {
+ width: 20px;
+ height: 20px;
+ border-radius: 50%;
+ background-color: #42B983;
+ color: #fff;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-right: 10px;
+}
+
+.itemTitle {
+ width: 300px;
+ padding-left: 40px;
+ height: 26px;
+ color: #909399;
+ display: flex;
+ align-items: center;
+
+ ::v-deep .el-input--mini {
+ line-height: 24px;
+ height: 24px;
+ }
+
+ ::v-deep .el-input__inner {
+ line-height: 24px;
+ height: 24px;
+ }
+}
+
+.itemContent {
+ width: 150px;
+ height: 26px;
+ padding-left: 20px;
+ display: flex;
+ align-items: center;
+
+}
+
+.orderMsg2 {
+ width: 200px;
+}
+</style>
+
+<style>
+
+.el-table .custom-row {
+ background: #f8f8fa;
+}
+</style>
diff --git a/src/views/qualityManager/processCheckItem.vue b/src/views/qualityManager/processCheckItem.vue
index e69de29..916913c 100644
--- a/src/views/qualityManager/processCheckItem.vue
+++ b/src/views/qualityManager/processCheckItem.vue
@@ -0,0 +1,406 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+
+ <div class="bodyTopButtonGroup">
+ <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+ <!-- <el-button v-waves type="primary" icon="el-icon-upload2" @click="upload">瀵煎叆</el-button>-->
+ </div>
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex"
+ >
+ <div class="elForm">
+ <el-form-item label="椤圭洰缂栫爜" style=" display: flex;">
+ <el-input v-model="form.itemcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="椤圭洰鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.itemname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="椤圭洰鎻忚堪" style=" display: flex;">
+ <el-input v-model="form.itemdescr" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ </div>
+ <div class="bodySearchReset" :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}">
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ />
+ </div>
+ <div class="elTableDiv">
+ <!-- <TableColumnSettings-->
+ <!-- :list1="tableColumnSettingsArray"-->
+ <!-- @tableColumnUpdate="tableColumnUpdate"-->
+ <!-- />-->
+ <el-table
+ ref="tableDataRef"
+ :key="tableTimeStampKey"
+ class="tableFixed"
+ :data="tableData"
+ :height="tableHeight+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:tableHeight+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+
+ <el-table-column
+ v-for="item in tableColumnSettingsArray"
+ v-if="item.show"
+ :key="item.id"
+ :sortable="item.sortable"
+ :prop="item.prop"
+ :min-width="item.minWidth"
+ :label="item.label"
+ :width="item.width"
+ show-tooltip-when-overflow
+ :fixed="item.fixed?(item.fixed==='left'?'left':'right'):false"
+ >
+ <template slot-scope="{row}">
+ <div v-if="!row[item.prop]">/</div>
+ <div v-else>{{ row[item.prop] }}</div>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ label="鎿嶄綔"
+ fixed="right"
+ width="120"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-tooltip class="item" effect="dark" content="缂栬緫" placement="top">
+ <i :style="{color:$store.state.settings.theme}" class="el-icon-edit-outline" @click="edit('edit',row)" />
+ </el-tooltip>
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+ <i :style="{color:$store.state.settings.theme}" class="el-icon-delete" @click="del(row)" />
+ </el-tooltip>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes,jumper"
+ popper-class="select_bottom"
+ @pagination="getStepCheckItemSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'缂栬緫'"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
+ <el-form-item label="椤圭洰缂栫爜" prop="checkitemcode">
+ <el-input v-model="dialogForm.checkitemcode" :disabled="operation!=='add'" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="椤圭洰鍚嶇О" prop="checkitemname">
+ <el-input v-model="dialogForm.checkitemname" style="width: 200px" />
+ </el-form-item>
+
+ <el-form-item label="椤圭洰鎻忚堪" prop="checkitemdescr">
+ <el-input v-model="dialogForm.checkitemdescr" type="textarea" style="width: 200px" />
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="dialogVisibleConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import { AddUpdateStepCheckItem, DeleteStepCheckItem, StepCheckItemSearch } from '@/api/QualityManagement'
+import { validateCode } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import TableColumnSettings from '@/components/TableColumnSettings'
+import { PrentOrganization } from '@/api/GeneralBasicData'
+
+export default {
+ name: 'ProcessCheckItem',
+ components: {
+ Pagination, TableColumnSettings
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ itemcode: '', // 椤圭洰浠g爜
+ itemname: '', // 椤圭洰鍚嶇О
+ itemdescr: '', // 椤圭洰鎻忚堪
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ total: 10,
+ tableData: [],
+ tableColumnSettingsArray: [
+ // { minWidth: 50, width: false, prop: 'id', label: 'id', id: 1, show: false, fixed: false, sortable: false }, // 闅愯棌鍒� show: false闅愯棌锛宼rue鏄剧ず
+ { minWidth: 25, width: 50, prop: 'rowNum', label: '搴忓彿', id: 2, show: true, fixed: 'left', sortable: false }, // custom
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'code',
+ label: '鏍囧噯浠g爜',
+ id: 3,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'name',
+ label: '鏍囧噯鍚嶇О',
+ id: 4,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'org_code',
+ label: '鎵�灞炶溅闂寸紪鐮�',
+ id: 5,
+ show: false,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: 110,
+ width: false,
+ prop: 'org_name',
+ label: '鎵�灞炶溅闂�',
+ id: 6,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 330,
+ width: false,
+ prop: 'descr',
+ label: '鏍囧噯鎻忚堪',
+ id: 7,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'lm_user',
+ label: '鍒涘缓浜哄憳',
+ id: 8,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'lm_date',
+ label: '鍒涘缓鏃堕棿',
+ id: 9,
+ show: true,
+ fixed: false,
+ sortable: true
+ }
+ ],
+ tableTimeStampKey: new Date().getTime(), // 琛ㄦ牸key
+
+ dialogVisible: false,
+ dialogForm: {
+ checkitemcode: '', // 宸ュ簭妫�楠岄」鐩紪鐮�
+ checkitemname: '', // 宸ュ簭妫�楠岄」鐩悕绉�
+ checkitemdescr: '' // 宸ュ簭妫�楠岄」鐩弿杩�
+ },
+ operation: '',
+ dialogFormRules: {
+ checkitemcode: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ checkitemname: [
+ { required: true, message: '璇疯緭鍏ュ悕绉�', trigger: ['blur', 'change'] }
+ ],
+ workshopcode: [
+ { required: true, message: '璇烽�夋嫨鎵�灞炶溅闂�', trigger: ['blur', 'change'] }
+ ]
+ }
+ }
+ },
+ created() {
+ this.getStepCheckItemSearch()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ tableColumnUpdate(val, isCopyTrue) {
+ if (isCopyTrue) {
+ this.tableColumnSettingsArray = val
+ }
+ this.tableTimeStampKey = new Date().getTime()
+ this.$refs.tableDataRef.doLayout()
+ },
+ async getStepCheckItemSearch() {
+ const res = await StepCheckItemSearch(this.form)
+ this.tableData = res.data
+ this.total = res.count
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getStepCheckItemSearch()
+ },
+ // 鏌ヨ
+ search() {
+ this.getStepCheckItemSearch()
+ },
+ upload() {
+
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.itemcode = ''
+ this.form.itemname = ''
+ this.form.itemdescr = ''
+ this.getStepCheckItemSearch()
+ },
+
+ // 鏂板鎸夐挳
+ add(operation) {
+ this.operation = operation
+ this.dialogVisible = true
+ },
+ // 淇敼鎸夐挳
+ edit(operation, row) {
+ this.operation = operation
+ this.dialogVisible = true
+
+ this.$nextTick(() => {
+ this.dialogForm.checkitemcode = row.code
+ this.dialogForm.checkitemname = row.name
+ this.dialogForm.workshopcode = row.org_code
+ this.dialogForm.checkitemdescr = row.descr
+ })
+ },
+ // 鍒犻櫎鎸夐挳
+ async del(row) {
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ DeleteStepCheckItem({ checkitemcode: row.code }).then(res => {
+ if (res.code === '200') {
+ this.$message.success('鍒犻櫎鎴愬姛!')
+ if (this.form.page > 1 && this.tableData.length === 1) {
+ this.form.page--
+ }
+ this.getStepCheckItemSearch()
+ }
+ })
+ }).catch(() => {
+ this.$message.info('宸插彇娑堝垹闄�')
+ })
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm.checkitemcode = ''
+ this.dialogForm.checkitemname = ''
+ this.dialogForm.checkitemdescr = ''
+ this.dialogForm.workshopcode = ''
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ this.$store.state.app.buttonIsDisabled = true
+ const data = {
+ checkitemcode: this.dialogForm.checkitemcode,
+ checkitemname: this.dialogForm.checkitemname,
+ checkitemdescr: this.dialogForm.checkitemdescr,
+ wkshopcode: this.dialogForm.workshopcode,
+ OperType: this.operation === 'add' ? 'Add' : 'Update'
+ }
+ AddUpdateStepCheckItem(data).then(res => {
+ if (res.code === '200') {
+ this.dialogVisible = false
+ this.$message.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ this.getStepCheckItemSearch()
+ this.$store.state.app.buttonIsDisabled = false
+ } else {
+ this.$message.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ }
+ })
+ }
+ })
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 195
+ this.$refs.tableDataRef.doLayout()
+ // if (window.innerHeight < 769) {
+ // this.tableHeight = this.tableHeight - 50
+ // }
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ }
+ }
+}
+</script>
diff --git a/src/views/qualityManager/processCheckRecord.vue b/src/views/qualityManager/processCheckRecord.vue
index 1be8c89..76aacc5 100644
--- a/src/views/qualityManager/processCheckRecord.vue
+++ b/src/views/qualityManager/processCheckRecord.vue
@@ -1,11 +1,731 @@
-<template />
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup">
+ <el-button v-waves type="primary" icon="el-icon-download" @click="download">瀵煎嚭</el-button>
+ <!-- <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>-->
+ <!-- <el-button v-waves icon="el-icon-download" @click="upload">瀵煎叆</el-button>-->
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="宸ュ崟缂栧彿" style=" display: flex;">
+ <el-input v-model="form.wocode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="浜у搧缂栫爜" style=" display: flex;">
+ <el-input v-model="form.partcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="浜у搧鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.partname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="瑙勬牸鍨嬪彿" style=" display: flex;">
+ <el-input v-model="form.partapec" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="宸ュ簭鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.stepname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鏍囧噯鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.standname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="妫�楠岀被鍨�" style=" display: flex;">
+ <el-select v-model="form.checktype" style="width: 200px" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in checktypeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="妫�楠岀粨鏋�" style=" display: flex;">
+ <el-select v-model="form.checkresult " style="width: 200px" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in checkresultArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ </div>
+ <div class="bodySearchReset" :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}">
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <!-- <TableColumnSettings-->
+ <!-- :list1="tableColumnSettingsArray"-->
+ <!-- @tableColumnUpdate="tableColumnUpdate"-->
+ <!-- />-->
+ <el-table
+ :key="tableTimeStampKey"
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px'}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+
+ <el-table-column
+ v-for="item in tableColumnSettingsArray"
+ v-if="item.show"
+ :key="item.id"
+ :sortable="item.sortable"
+ :prop="item.prop"
+ :min-width="item.minWidth"
+ :label="item.label"
+ :width="item.width"
+ show-tooltip-when-overflow
+ :fixed="item.fixed?(item.fixed==='left'?'left':'right'):false"
+ >
+ <template slot-scope="{row}">
+ <div v-if="!row[item.prop]">/</div>
+ <div v-else-if="item.prop==='check_type'">
+ {{ checktypeArr.find(i=>i.code===row[item.prop]).name }}
+ </div>
+ <div v-else-if="item.prop==='check_result'">
+ <div v-if="row.check_result==='NG'">
+ <i class="el-icon-info" style="margin-right: 2px" />
+ 涓嶈壇
+ </div>
+ <div v-if="row.check_result==='OK'">
+ <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />
+ 鍚堟牸
+ </div>
+ </div>
+ <div v-else>{{ row[item.prop] }}</div>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ label="鎿嶄綔"
+ fixed="right"
+ width="120"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <!-- <el-button v-waves type="text" @click="check(row)">鏌ョ湅</el-button>-->
+ <!-- <el-button v-waves type="text" @click="del(row)">鍒犻櫎</el-button>-->
+
+ <el-tooltip class="item" effect="dark" content="鏌ョ湅" placement="top">
+ <i
+ class="el-icon-view"
+ :style="{color:$store.state.settings.theme}"
+ style="cursor: pointer;margin-right: 15px;"
+ @click="check(row)"
+ />
+ </el-tooltip>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="prev, pager, next,sizes,jumper"
+ popper-class="select_bottom"
+ @pagination="getStepCheckTableSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ title="宸ュ簭妫�楠屾槑缁�"
+ :visible.sync="dialogVisible"
+ width="900px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataRef2"
+ :data="tableDataDialog"
+ :height="(tableHeight-100)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:(tableHeight-100)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ >
+ <!-- <el-table-column-->
+ <!-- type="selection"-->
+ <!-- width="50"-->
+ <!-- fixed-->
+ <!-- />-->
+ <el-table-column
+ type="index"
+ width="50"
+ label="搴忓彿"
+ fixed
+ />
+
+ <!-- <el-table-column-->
+ <!-- prop="checkitem_code"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- label="妫�楠岄」鐩紪鍙�"-->
+ <!-- width="120"-->
+ <!-- />-->
+ <el-table-column
+ prop="checkitem_name"
+ label="妫�楠岄」鐩悕绉�"
+ fixed
+ show-tooltip-when-overflow
+ />
+ <!-- <el-table-column-->
+ <!-- prop="checkitem_descr"-->
+ <!-- label="妫�楠岄」鐩弿杩�"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- />-->
+ <el-table-column
+ prop="standvalue"
+ label="鏍囧噯瑕佹眰"
+ fixed
+ min-width="120"
+ show-tooltip-when-overflow
+ >
+ <template slot-scope="{row}">
+ <!-- ~褰撲笁涓�奸兘鏈� -->
+ <div v-if="row.standvalue&&row.uppervalue&&row.lowervalue">{{ row.standvalue }}({{
+ row.lowervalue
+ }}~{{ row.uppervalue }})
+ </div>
+ <!-- ~褰撳彧鏈夋爣鍑嗗�煎拰涓婇檺鍊兼椂 -->
+ <div v-else-if="row.standvalue&&row.uppervalue">{{ row.standvalue }}(~{{ row.uppervalue }})</div>
+ <!-- ~褰撳彧鏈夋爣鍑嗗�煎拰涓嬮檺鍊兼椂-->
+ <div v-else-if="row.standvalue&&row.lowervalue">{{ row.standvalue }}({{ row.lowervalue }}~)</div>
+
+ <!-- ~褰撳彧鏈変笂闄愬�煎拰涓嬮檺鍊兼椂-->
+ <div v-else-if="row.uppervalue&&row.lowervalue">({{ row.lowervalue }}~{{ row.uppervalue }})</div>
+ <!-- ~褰撳彧鏈夋爣鍑嗗�兼椂 -->
+ <div v-else-if="row.standvalue">{{ row.standvalue }}</div>
+ <!-- ~褰撳彧鏈変笂闄愬�兼椂 -->
+ <div v-else-if="row.uppervalue">(~{{ row.uppervalue }})</div>
+ <!-- ~褰撳彧鏈変笅闄愬�兼椂 -->
+ <div v-else-if="row.lowervalue">({{ row.lowervalue }}~)</div>
+
+ <div v-else>/</div>
+
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ v-for="(item,index) in dialogTableArrayCol"
+ :key="item"
+ :prop="(index+1)+'/'+ dialogTableNumberCol"
+ :label="'绗�'+(index+1)+'浠�'"
+ show-tooltip-when-overflow
+ min-width="100"
+ >
+ <template slot-scope="{row}">
+ <div style="display: flex;align-items: center">
+ <i
+ :class="row.check_result==='OK'?'el-icon-success':'el-icon-error'"
+ :style="{color:row.check_result==='OK'?$store.state.settings.theme:'red'}"
+ style="margin-right: 2px"
+ />
+ {{ row[(index + 1) + '/' + dialogTableNumberCol] }}
+ </div>
+
+ <!-- <!– ~褰撲笁涓�奸兘鏈� –>-->
+ <!-- <div v-if="row.standvalue&&row.uppervalue&&row.lowervalue&&parseFloat(row[(index + 1) + '/' + dialogTableNumberCol])>=parseFloat(row.lowervalue)&&parseFloat(row[(index + 1) + '/' + dialogTableNumberCol])<=parseFloat(row.uppervalue)">-->
+ <!-- <!– <div v-if="row[(index + 1) + '/' + dialogTableNumberCol]>=row.lowervalue&&row[(index + 1) + '/' + dialogTableNumberCol]<=row.uppervalue">–>-->
+ <!-- <div style="display: flex;align-items: center">-->
+ <!-- <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />-->
+ <!-- {{ row[(index + 1) + '/' + dialogTableNumberCol] }}-->
+ <!-- </div>-->
+ <!-- </div>-->
+
+ <!-- <!– ~褰撳彧鏈夋爣鍑嗗�煎拰涓婇檺鍊兼椂 –>-->
+ <!-- <div v-else-if="row.standvalue&&row.uppervalue&&row.lowervalue===''&&parseFloat(row[(index + 1) + '/' + dialogTableNumberCol])<=parseFloat(row.uppervalue)">-->
+ <!-- <div style="display: flex;align-items: center">-->
+ <!-- <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />-->
+ <!-- {{ row[(index + 1) + '/' + dialogTableNumberCol] }}-->
+ <!-- </div>-->
+ <!-- </div>-->
+ <!-- <!– ~褰撳彧鏈夋爣鍑嗗�煎拰涓嬮檺鍊兼椂–>-->
+ <!-- <div v-else-if="row.standvalue&&row.lowervalue&&row.uppervalue===''&&parseFloat(row[(index + 1) + '/' + dialogTableNumberCol])>=parseFloat(row.lowervalue)">-->
+ <!-- <div style="display: flex;align-items: center">-->
+ <!-- <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />-->
+ <!-- {{ row[(index + 1) + '/' + dialogTableNumberCol] }}-->
+ <!-- </div>-->
+ <!-- </div>-->
+
+ <!-- <!– ~褰撳彧鏈変笂闄愬�煎拰涓嬮檺鍊兼椂–>-->
+ <!-- <div v-else-if="row.uppervalue&&row.lowervalue&&row.standvalue===''&&parseFloat(row[(index + 1) + '/' + dialogTableNumberCol])>=parseFloat(row.lowervalue)&&parseFloat(row[(index + 1) + '/' + dialogTableNumberCol])<=parseFloat(row.uppervalue)">-->
+ <!-- <div style="display: flex;align-items: center">-->
+ <!-- <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />-->
+ <!-- {{ row[(index + 1) + '/' + dialogTableNumberCol] }}-->
+ <!-- </div>-->
+ <!-- </div>-->
+ <!-- <!– ~褰撳彧鏈夋爣鍑嗗�兼椂 –>-->
+ <!-- <div v-else-if="row.standvalue&&row.uppervalue===''&&row.lowervalue===''&&parseFloat(row[(index + 1) + '/' + dialogTableNumberCol])===parseFloat(row.standvalue)">-->
+ <!-- <div style="display: flex;align-items: center">-->
+ <!-- <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />-->
+ <!-- {{ row[(index + 1) + '/' + dialogTableNumberCol] }}-->
+ <!-- </div>-->
+ <!-- </div>-->
+ <!-- <!– ~褰撳彧鏈変笂闄愬�兼椂 –>-->
+ <!-- <div v-else-if="row.uppervalue&&row.lowervalue===''&&row.standvalue===''&&parseFloat(row[(index + 1) + '/' + dialogTableNumberCol])<=parseFloat(row.uppervalue)">-->
+ <!-- <div style="display: flex;align-items: center">-->
+ <!-- <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />-->
+ <!-- {{ row[(index + 1) + '/' + dialogTableNumberCol] }}-->
+ <!-- </div>-->
+ <!-- </div>-->
+
+ <!-- <!– ~褰撳彧鏈変笅闄愬�兼椂 –>-->
+ <!-- <div v-else-if="row.lowervalue&& row.uppervalue===''&&row.standvalue===''&&parseFloat(row[(index + 1) + '/' + dialogTableNumberCol])>=parseFloat(row.lowervalue)">-->
+ <!-- <div style="display: flex;align-items: center">-->
+ <!-- <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />-->
+ <!-- {{ row[(index + 1) + '/' + dialogTableNumberCol] }}-->
+ <!-- </div></div>-->
+
+ <!-- <div v-else>-->
+ <!-- <div style="display: flex;align-items: center">-->
+ <!-- <i class="el-icon-error" style="color: red;margin-right: 2px" />-->
+ <!-- {{ row[(index + 1) + '/' + dialogTableNumberCol] }}-->
+ <!-- </div>-->
+ <!-- </div>-->
+
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <!-- <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>-->
+ <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>-->
+ <el-button v-waves @click="dialogVisibleBack">杩� 鍥�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ <!--瀵煎叆缁勪欢-->
+ <import-picker
+ ref="importPickerFunc"
+ class="importPickerClass"
+ :shows.sync="shows"
+ :title="title_value"
+ :colos="colos"
+ :code="code"
+ />
+
+ </div>
+</template>
<script>
+import Pagination from '@/components/Pagination'
+import { AddUpdateOrganization, DeleteOrganization } from '@/api/basicSettings'
+import { getCookie } from '@/utils/auth'
+import ImportPicker from '@/components/ImportPicker'
+import { StepCheckTableOutExcel, StepCheckTableSearch, StepCheckTableSubSearch } from '@/api/QualityManagement'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import TableColumnSettings from '@/components/TableColumnSettings'
+
+const SER_HZ = /^[\u4e00-\u9fa5]+$/
export default {
- name: 'ProcessCheckRecord'
+ name: 'Zzjg',
+ components: {
+ Pagination, ImportPicker, TableColumnSettings
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ wocode: '', // 宸ュ崟缂栧彿
+ partcode: '', // 浜у搧缂栫爜
+ partname: '', // 浜у搧鍚嶇О
+ partapec: '', // 浜у搧瑙勬牸
+ stepname: '', // 宸ュ簭鍚嶇О
+ standname: '', // 鏍囧噯鍚嶇О
+ checktype: '', // 妫�楠岀被鍨�
+ checkresult: '', // 妫�楠岀被鍨�
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ checktypeArr: [
+ { code: 'InCheck', name: '鍏ュ巶妫�楠�' },
+ { code: 'OutCheck', name: '鍑哄巶妫�楠�' },
+ { code: 'FirstCheck', name: '棣栨' },
+ { code: 'PatroCheck', name: '宸℃' },
+ { code: 'EndCheck', name: '瀹屽伐妫�' }
+ ],
+ checkresultArr: [
+ { code: 'OK', name: '鍚堟牸' },
+ { code: 'NG', name: '涓嶈壇' }
+ ],
+
+ total: 10,
+ tableData: [],
+ tableColumnSettingsArray: [
+ { minWidth: 50, width: false, prop: 'id', label: 'id', id: 1, show: false, fixed: false, sortable: false }, // 闅愯棌鍒� show: false闅愯棌锛宼rue鏄剧ず
+ { minWidth: 25, width: 50, prop: 'rowNum', label: '搴忓彿', id: 2, show: true, fixed: 'left', sortable: false }, // custom
+ {
+ minWidth: 160,
+ width: false,
+ prop: 'wo_code',
+ label: '宸ュ崟缂栧彿',
+ id: 3,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'partcode',
+ label: '浜у搧缂栫爜',
+ id: 4,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'partname',
+ label: '浜у搧鍚嶇О',
+ id: 5,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: 110,
+ width: false,
+ prop: 'partspec',
+ label: '浜у搧瑙勬牸',
+ id: 6,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: 110,
+ width: false,
+ prop: 'step_code',
+ label: '宸ュ簭缂栫爜',
+ id: 7,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: 110,
+ width: false,
+ prop: 'stepname',
+ label: '宸ュ簭鍚嶇О',
+ id: 8,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: 110,
+ width: false,
+ prop: 'checkstaned_code',
+ label: '鏍囧噯缂栫爜',
+ id: 9,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: 110,
+ width: false,
+ prop: 'checkstaned_name',
+ label: '鏍囧噯鍚嶇О',
+ id: 10,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: 110,
+ width: false,
+ prop: 'check_type',
+ label: '妫�楠岀被鍨�',
+ id: 11,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: 110,
+ width: false,
+ prop: 'check_result',
+ label: '妫�楠岀粨鏋�',
+ id: 12,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: 110,
+ width: false,
+ prop: 'check_descr',
+ label: '妫�楠屽娉�',
+ id: 13,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: 110,
+ width: false,
+ prop: 'check_qty',
+ label: '妫�楠屾暟閲�',
+ id: 14,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'lm_user',
+ label: '妫�楠屼汉鍛�',
+ id: 15,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 160,
+ width: false,
+ prop: 'lm_date',
+ label: '妫�楠屾椂闂�',
+ id: 16,
+ show: true,
+ fixed: false,
+ sortable: true
+ }
+ ],
+ tableTimeStampKey: new Date().getTime(), // 琛ㄦ牸key
+ dialogVisible: false,
+ tableDataDialog: [],
+ title_value: '鏁版嵁瀵煎叆 / 鐐规閮ㄤ綅',
+ code: '4',
+ shows: false,
+ dialogTableNumberCol: 0, // 瀵硅瘽妗嗗姩鎬佺殑鍒楁暟
+ dialogTableArrayCol: []// 瀵硅瘽妗嗗姩鎬佺殑鏁扮粍
+
+ }
+ },
+ watch: {
+ shows() {
+ if (!this.shows) {
+ this.getStepCheckTableSearch()
+ }
+ }
+ },
+ created() {
+ this.getStepCheckTableSearch()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ tableColumnUpdate(val, isCopyTrue) {
+ if (isCopyTrue) {
+ this.tableColumnSettingsArray = val
+ }
+ this.tableTimeStampKey = new Date().getTime()
+ this.$refs.tableDataRef.doLayout()
+ },
+ async getStepCheckTableSearch() {
+ const res = await StepCheckTableSearch(this.form)
+ this.tableData = res.data
+ this.total = res.count
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getStepCheckTableSearch()
+ },
+ // 鏌ヨ
+ search() {
+ this.getStepCheckTableSearch()
+ },
+ // 瀵煎叆鎸夐挳
+ upload() {
+ this.shows = true
+ this.$refs.importPickerFunc.newDataFunc()
+ },
+ colos() {
+ this.shows = false
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.wocode = '', // 宸ュ崟缂栧彿
+ this.form.partcode = '', // 浜у搧缂栫爜
+ this.form.partname = '', // 浜у搧鍚嶇О
+ this.form.partapec = '', // 浜у搧瑙勬牸
+ this.form.stepname = '', // 宸ュ簭鍚嶇О
+ this.form.standname = '', // 鏍囧噯鍚嶇О
+ this.form.checktype = '', // 妫�楠岀被鍨�
+ this.form.checkresult = '', // 妫�楠岀被鍨�
+ this.getStepCheckTableSearch()
+ },
+
+ async check(row) {
+ // this.operation = operation
+
+ this.dialogVisible = true
+ console.log(row, 1)
+ const res = await StepCheckTableSubSearch({ id: row.id })
+ this.tableDataDialog = res.data
+
+ this.tableDataDialog.forEach((item, index) => {
+ for (const it in item) {
+ if (it.indexOf('/') !== -1) {
+ const i = it.split('/')[1]
+ this.dialogTableNumberCol = i
+ }
+ }
+ })
+
+ this.dialogTableArrayCol = []
+ for (let i = 0; i < this.dialogTableNumberCol; i++) {
+ this.dialogTableArrayCol.push(i)
+ }
+
+ this.$nextTick(() => {
+ this.$refs.tableDataRef2.doLayout()
+ })
+ },
+
+ // 鏂板鎸夐挳
+ add(operation) {
+ this.operation = operation
+ this.dialogVisible = true
+ },
+ // 淇敼鎸夐挳
+ edit(operation, row) {
+ this.operation = operation
+ this.dialogVisible = true
+
+ this.$nextTick(() => {
+ this.dialogForm.OrgCode = row.org_code
+ this.dialogForm.OrgName = row.org_name
+ this.dialogForm.SupUnit = row.parent_id
+ })
+ },
+ // 鍒犻櫎鎸夐挳
+ async del(row) {
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ DeleteOrganization({ orgid: row.code }).then(res => {
+ if (res.code === '200') {
+ this.$message.success('鍒犻櫎鎴愬姛!')
+ if (this.form.page > 1 && this.tableData.length === 1) {
+ this.form.page--
+ }
+ this.getStepCheckTableSearch()
+ }
+ })
+ }).catch(() => {
+ this.$message.info('宸插彇娑堝垹闄�')
+ })
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.tableDataDialog = []
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ const data = {
+ OrganCode: this.dialogForm.OrgCode,
+ OrganName: this.dialogForm.OrgName,
+ OperType: this.operation === 'add' ? 'Add' : 'Update',
+ Operator: getCookie('admin')
+ }
+ AddUpdateOrganization(data).then(res => {
+ if (res.code === '200') {
+ this.$message.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ this.dialogVisible = false
+ this.getStepCheckTableSearch()
+ } else {
+ this.$message.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ }
+ })
+ }
+ })
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 250
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ },
+ async download() {
+ const { data: res } = await StepCheckTableOutExcel(this.form)
+ window.location.href = res
+ },
+ dialogVisibleBack() {
+ this.dialogVisible = false
+ }
+ }
}
</script>
-
-<style scoped>
-
-</style>
diff --git a/src/views/qualityManager/qualityPlaning.vue b/src/views/qualityManager/qualityPlaning.vue
index a08b4e3..c217f53 100644
--- a/src/views/qualityManager/qualityPlaning.vue
+++ b/src/views/qualityManager/qualityPlaning.vue
@@ -1,11 +1,1295 @@
-<template />
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
+ <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="璐ㄦ鏂规缂栫爜" style=" display: flex;">
+ <el-input v-model="form.qualityinsptcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="璐ㄦ鏂规鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.qualityinsptname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鏈夋晥鐘舵��" style=" display: flex;">
+ <el-select v-model="form.status" style="width: 200px" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in whetherOrNot"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="璐ㄦ绫诲瀷" style=" display: flex;">
+ <el-select v-model="form.checktype" style="width: 200px" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in checktypeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鎶芥牱鏂瑰紡" style=" display: flex;">
+ <el-select v-model="form.sampltype" style="width: 200px" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in sampltypeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="閫傜敤瀵硅薄" style=" display: flex;">
+ <el-select v-model="form.suitobject" style="width: 200px" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in suitobjectArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <!-- <TableColumnSettings-->
+ <!-- :list1="tableColumnSettingsArray"-->
+ <!-- @tableColumnUpdate="tableColumnUpdate"-->
+ <!-- />-->
+ <el-table
+ :key="tableTimeStampKey"
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <!-- <el-table-column-->
+ <!-- prop="RowNum"-->
+ <!-- width="50"-->
+ <!-- fixed-->
+ <!-- label="搴忓彿"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- prop="code"-->
+ <!-- label="璐ㄦ鏂规缂栫爜"-->
+ <!-- sortable="custom"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- prop="name"-->
+ <!-- label="璐ㄦ鏂规鍚嶇О"-->
+ <!-- sortable="custom"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- prop="status"-->
+ <!-- label="鏈夋晥鐘舵��"-->
+ <!-- sortable="custom"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.status==='Y'"><i-->
+ <!-- class="el-icon-success"-->
+ <!-- :style="{color:$store.state.settings.theme}"-->
+ <!-- style="margin-right:5px"-->
+ <!-- />鏄�-->
+ <!-- </div>-->
+ <!-- <div v-else-if="row.status==='N'"><i class="el-icon-info" style="margin-right: 5px" />鍚�</div>-->
+ <!-- <div v-else>/</div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ <!-- <el-table-column-->
+ <!-- prop="checktype"-->
+ <!-- label="璐ㄦ绫诲瀷"-->
+ <!-- sortable="custom"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.checktype">{{ checktypeArr.find(i => i.code === row.checktype).name }}</div>-->
+ <!-- <div v-else>/</div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ <!-- <el-table-column-->
+ <!-- prop="sampmethod"-->
+ <!-- label="鎶芥牱鏂瑰紡"-->
+ <!-- sortable="custom"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.sampmethod">{{ sampltypeArr.find(i => i.code === row.sampmethod).name }}</div>-->
+ <!-- <div v-else>/</div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ <!-- <el-table-column-->
+ <!-- prop="suitobject"-->
+ <!-- label="閫傜敤瀵硅薄"-->
+ <!-- sortable="custom"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.suitobject">{{ suitobjectArr.find(i => i.code === row.suitobject).name }}</div>-->
+ <!-- <div v-else>/</div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+
+ <!-- <el-table-column-->
+ <!-- prop="username"-->
+ <!-- label="鍒涘缓浜哄憳"-->
+ <!-- sortable="custom"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- prop="lm_date"-->
+ <!-- label="鍒涘缓鏃堕棿"-->
+ <!-- width="160"-->
+ <!-- sortable="custom"-->
+ <!-- />-->
+
+ <el-table-column
+ v-for="item in tableColumnSettingsArray"
+ v-if="item.show"
+ :key="item.id"
+ :sortable="item.sortable"
+ :prop="item.prop"
+ :min-width="item.minWidth"
+ :label="item.label"
+ :width="item.width"
+ show-tooltip-when-overflow
+ :fixed="item.fixed?(item.fixed==='left'?'left':'right'):false"
+ >
+ <template slot-scope="{row}">
+ <div v-if="!row[item.prop]">/</div>
+ <div v-else-if="item.prop==='checktype'">
+ {{ checktypeArr.find(i => i.code === row[item.prop]).name }}
+ </div>
+ <div v-else-if="item.prop==='sampmethod'">
+ {{ sampltypeArr.find(i => i.code === row[item.prop]).name }}
+ </div>
+ <!-- 閫傜敤瀵硅薄-->
+ <div v-else-if="item.prop==='suitobject'">
+ {{ suitobjectArr.find(i => i.code === row.suitobject).name }}
+ </div>
+ <div v-else-if="item.prop==='status'">
+ <div v-if="row.status==='Y'"><i
+ class="el-icon-success"
+ :style="{color:$store.state.settings.theme}"
+ style="margin-right:5px"
+ />鏄�
+ </div>
+ <div v-else-if="row.status==='N'"><i class="el-icon-info" style="margin-right: 5px" />鍚�</div>
+ <div v-else>/</div>
+ </div>
+ <div v-else>{{ row[item.prop] }}</div>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ label="鎿嶄綔"
+ width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-tooltip class="item" effect="dark" content="鏌ョ湅" placement="top">
+ <i
+ class="el-icon-view"
+ :style="{color:$store.state.settings.theme}"
+ style="margin-right:15px;cursor: pointer;"
+ @click="check('check',row)"
+ />
+ </el-tooltip>
+ <el-tooltip class="item" effect="dark" content="缂栬緫" placement="top">
+ <i
+ class="el-icon-edit-outline"
+ :style="{color:$store.state.settings.theme}"
+ @click="edit('edit',row)"
+ />
+ </el-tooltip>
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+ <i class="el-icon-delete" :style="{color:$store.state.settings.theme}" @click="del(row)" />
+ </el-tooltip>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getQualityInspectionSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':operation==='check'?'鏌ョ湅':'缂栬緫'"
+ :visible.sync="dialogVisible"
+ width="1260px"
+ :close-on-click-modal="false"
+ top="5vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+
+ <!-- <div>-->
+ <!-- <i class="el-icon-s-comment" :style="{color:$store.state.settings.theme}" style="margin: -20px 10px 20px 0" />鍩虹璧勬枡锛�-->
+ <!-- </div>-->
+ <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="110px">
+ <el-form-item label="璐ㄦ鏂规缂栫爜" prop="qualityinsptcode">
+ <el-input v-model="dialogForm.qualityinsptcode" :disabled="operation!=='add'" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="璐ㄦ鏂规鍚嶇О" prop="qualityinsptname">
+ <el-input v-model="dialogForm.qualityinsptname" style="width: 200px" />
+ </el-form-item>
+ <br>
+ <el-form-item prop="status" label="鏈夋晥鐘舵��">
+ <el-select
+ v-model="dialogForm.status"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in whetherOrNot"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <br>
+ <el-form-item prop="checktype" label="璐ㄦ绫诲瀷">
+ <el-radio-group v-model="dialogForm.checktype">
+ <!-- <el-radio label="InCheck">鍏ュ巶妫�楠�</el-radio>-->
+ <!-- <el-radio label="OutCheck">鍑哄巶妫�楠�</el-radio>-->
+ <el-radio label="FirstCheck">棣栨妫�楠�</el-radio>
+ <el-radio label="PatroCheck">宸℃</el-radio>
+ <el-radio label="EndCheck">瀹屽伐妫�</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <br>
+ <el-form-item prop="sampmethod" label="鎶芥牱鏂瑰紡">
+ <el-radio-group v-model="dialogForm.sampmethod" style="width: 200px;">
+ <el-radio label="FIXED">鍥烘椂鎶芥</el-radio>
+ <el-radio label="SCARE">姣斾緥鎶芥</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item v-if="dialogForm.sampmethod==='FIXED'" label="鏍锋湰鏁伴噺" prop="sampnum">
+ <el-input v-model="dialogForm.sampnum" oninput="value=value.replace(/[^0-9]/g,'')" style="width: 200px" />
+ </el-form-item>
+ <el-form-item v-if="dialogForm.sampmethod==='SCARE'" label="鎶芥姣斾緥" prop="sampscale">
+ <el-input v-model="dialogForm.sampscale" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 180px" />
+ %
+ </el-form-item>
+ <br>
+ <el-form-item prop="suitobject" label="閫傜敤瀵硅薄">
+ <el-radio-group v-model="dialogForm.suitobject" style="width: 200px;" @change="suitobjectChange">
+ <el-radio label="PY">鐗╂枡绫诲埆</el-radio>
+ <el-radio label="P">鐗╂枡</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ <el-form-item
+ prop="suitpart"
+ :label="dialogForm.suitobject==='P'?'閫傜敤鐗╂枡':'閫傜敤鐗╂枡绫诲埆'"
+ >
+ <el-select
+ v-model="dialogForm.suitpart"
+ style="width: 200px"
+ multiple
+ filterable
+ collapse-tags
+ placeholder="璇烽�夋嫨"
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in PartSelectArr"
+ v-if="dialogForm.suitobject==='P'"
+ :key="item.partcode"
+ :label="item.partcode +' / '+ item.partname"
+ :value="item.partcode"
+ />
+ <el-option
+ v-for="item in StockTypeSelectArr"
+ v-if="dialogForm.suitobject==='PY'"
+ :key="item.code"
+ :label="item.code+' / '+item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <br>
+ <el-form-item
+ label="宸ュ簭鍚嶇О"
+ prop="stepcode"
+ >
+ <el-select
+ v-model="dialogForm.stepcode"
+ style="width: 200px"
+ filterable
+ placeholder="璇烽�夋嫨"
+ :popper-append-to-body="false"
+ >
+ <el-option
+ v-for="item in StepSelectArr"
+ :key="item.stepcode"
+ :label="item.stepname"
+ :value="item.stepcode"
+ />
+ </el-select>
+ </el-form-item>
+
+ <el-form-item label="妫�楠屾柟妗堟弿杩�">
+ <el-input v-model="dialogForm.descr" type="textarea" :autosize="{ minRows: 2 }" />
+ </el-form-item>
+ </el-form>
+
+ <div style="display: flex;align-items: center;margin-bottom: 10px;">
+ <div>
+ <i
+ class="el-icon-s-operation"
+ :style="{color:$store.state.settings.theme}"
+ style="margin:0 10px 0 0px;"
+ />
+ </div>
+ <div>璐ㄦ鍒楄〃锛�</div>
+ <el-button
+ v-if="operation!=='check'"
+ v-waves
+ type="primary"
+ style="margin-left: 20px;"
+ icon="el-icon-circle-plus-outline"
+ @click="addZjlb"
+ >鏂板
+ </el-button>
+ </div>
+
+ <el-table
+ ref="tableDataRef2"
+ class="tableFixed"
+ :data="checkitem"
+ height="250"
+ style="height:250px"
+ border
+ :row-class-name="tableRowClassName"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ >
+ <el-table-column
+ type="index"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <!-- <el-table-column-->
+ <!-- prop="jyxmbm"-->
+ <!-- width="105"-->
+ <!-- label="妫�楠岄」鐩紪鐮�"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <el-select-->
+ <!-- v-if="row.isVisible===1"-->
+ <!-- v-model="row.jyxmbm"-->
+ <!-- filterable-->
+ <!-- placeholder="璇烽�夋嫨"-->
+ <!-- @change="val=>tableChange(val,row)"-->
+ <!-- >-->
+ <!-- <el-option-->
+ <!-- v-for="item in PartSelectArr"-->
+ <!-- :key="item.partname"-->
+ <!-- :label="item.partcode"-->
+ <!-- :value="item.partname"-->
+ <!-- />-->
+ <!-- </el-select>-->
+ <!-- <div v-if="row.isVisible===0">{{ row.jyxmbm }}</div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ <!-- <el-table-column-->
+ <!-- prop="jyxmmc"-->
+ <!-- width="105"-->
+ <!-- label="妫�楠岄」鐩悕绉�"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <el-select-->
+ <!-- v-if="row.isVisible===1"-->
+ <!-- v-model="row.jyxmmc"-->
+ <!-- filterable-->
+ <!-- placeholder="璇烽�夋嫨"-->
+ <!-- @change="val=>tableChange(val,row)"-->
+ <!-- >-->
+ <!-- <el-option-->
+ <!-- v-for="item in PartSelectArr"-->
+ <!-- :key="item.partname"-->
+ <!-- :label="item.partcode"-->
+ <!-- :value="item.partname"-->
+ <!-- />-->
+ <!-- </el-select>-->
+ <!-- <div v-if="row.isVisible===0">{{ row.jyxmmc }}</div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+
+ <el-table-column
+ prop="stepcheckitem_code"
+ width="250"
+ label="妫�楠岄」鐩� / 缂栫爜"
+ >
+ <template slot-scope="{row}">
+ <el-select
+ v-if="row.isVisible===1"
+ v-model="row.stepcheckitem_code"
+ filterable
+ placeholder="璇烽�夋嫨"
+ style="width: 100%;"
+ >
+ <!-- @change="val=>tableChange(val,row)"-->
+ <el-option
+ v-for="item in CheckItemSelectArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ <div v-else>{{
+ CheckItemSelectAllArr.find(i => i.code === row.stepcheckitem_code).name
+ }}
+ </div>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ prop="required"
+ width="85"
+ label="鏄惁蹇呭~"
+ >
+ <template slot-scope="{row}">
+ <el-select
+ v-if="row.isVisible===1"
+ v-model="row.required"
+ filterable
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in whetherOrNot"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ <div v-else>{{ row.required === 'Y' ? '鏄�' : '鍚�' }}</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="numberjudge"
+ width="85"
+ label="鏁板�煎垽瀹�"
+ >
+ <template slot-scope="{row}">
+ <el-select
+ v-if="row.isVisible===1"
+ v-model="row.numberjudge"
+ filterable
+ placeholder="璇烽�夋嫨"
+ @change="val=>szpdChange(val,row)"
+ >
+ <el-option
+ v-for="item in whetherOrNot"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ <div v-else>{{ row.numberjudge === 'Y' ? '鏄�' : '鍚�' }}</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="unit"
+ label="鍗曚綅"
+ >
+ <template slot-scope="{row}">
+ <!-- <el-select-->
+ <!-- v-if="row.isVisible===1"-->
+ <!-- v-model="row.unit"-->
+ <!-- filterable-->
+ <!-- :disabled="row.numberjudge==='N'"-->
+ <!-- placeholder="璇烽�夋嫨"-->
+ <!-- >-->
+ <!-- <el-option-->
+ <!-- v-for="item in UomSelectArr"-->
+ <!-- :key="item.code"-->
+ <!-- :label="item.name"-->
+ <!-- :value="item.code"-->
+ <!-- />-->
+ <!-- </el-select>-->
+ <!-- <div v-if="row.isVisible===0">{{-->
+ <!-- row.numberjudge === 'Y' ? UomSelectArr.find(i => i.code === row.unit).name : '/'-->
+ <!-- }}-->
+ <!-- </div>-->
+ <el-input
+ v-if="row.isVisible===1"
+ v-model="row.unit"
+ placeholder="璇烽�夋嫨"
+ :disabled="row.numberjudge==='N'"
+ />
+ <div v-else>{{ row.unit ? row.unit : '/' }}</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="decimalnum"
+ width="85"
+ label="灏忔暟浣嶆暟"
+ >
+ <template slot-scope="{row}">
+ <!-- <el-select-->
+ <!-- v-if="row.isVisible===1"-->
+ <!-- v-model="row.decimalnum"-->
+ <!-- filterable-->
+ <!-- placeholder="璇烽�夋嫨"-->
+ <!-- >-->
+ <!-- <el-option-->
+ <!-- v-for="item in PartSelectArr"-->
+ <!-- :key="item.partname"-->
+ <!-- :label="item.partcode"-->
+ <!-- :value="item.partname"-->
+ <!-- />-->
+ <!-- </el-select>-->
+ <el-input
+ v-if="row.isVisible===1"
+ v-model="row.decimalnum"
+ :disabled="row.numberjudge==='N'"
+ oninput="value=value.replace(/[^0-9]/g,'')"
+ placeholder="璇疯緭鍏�"
+ />
+ <div v-else>{{ row.numberjudge === 'Y' ? row.decimalnum : '/' }}</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="standvalue"
+ label="鏍囧噯鍊�"
+ >
+ <template slot-scope="{row}">
+ <el-input
+ v-if="row.isVisible===1"
+ v-model="row.standvalue"
+ :disabled="row.numberjudge==='N'"
+ oninput="value=value.replace(/[^0-9.]/g,'')"
+ placeholder="璇疯緭鍏�"
+ />
+ <div v-else>{{ row.standvalue ? row.standvalue : '/' }}</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="uppervalue"
+ label="涓婇檺鍊�"
+ >
+ <template slot-scope="{row}">
+ <el-input
+ v-if="row.isVisible===1"
+ v-model="row.uppervalue"
+ :disabled="row.numberjudge==='N'"
+ oninput="value=value.replace(/[^0-9.]/g,'')"
+ placeholder="璇疯緭鍏�"
+ />
+ <div v-else>{{ row.uppervalue ? row.uppervalue : '/' }}</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="lowervalue"
+ label="涓嬮檺鍊�"
+ >
+ <template slot-scope="{row}">
+ <el-input
+ v-if="row.isVisible===1"
+ v-model="row.lowervalue"
+ :disabled="row.numberjudge==='N'"
+ oninput="value=value.replace(/[^0-9.]/g,'')"
+ placeholder="璇疯緭鍏�"
+ />
+ <div v-else>{{ row.lowervalue ? row.lowervalue : '/' }}</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="stepcheckitem_desc"
+ label="鎻忚堪"
+ show-tooltip-when-overflow
+ >
+ <template slot-scope="{row}">
+ <el-input
+ v-if="row.isVisible===1"
+ v-model="row.stepcheckitem_desc"
+ placeholder="璇疯緭鍏�"
+ />
+ <div v-else>{{ row.stepcheckitem_desc ? row.stepcheckitem_desc : '/' }}</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ v-if="operation!=='check'"
+ label="鎿嶄綔"
+ width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-button v-if="row.isVisible===1" v-waves type="text" @click="saveZjlbRow(row)">纭</el-button>
+ <el-button v-if="row.isVisible===1&&isCancel" v-waves type="text" @click="cancelZjlbRow(row)">鍙栨秷
+ </el-button>
+ <el-button v-if="row.isVisible!==1" v-waves type="text" @click="editZjlbRow(row)">缂栬緫</el-button>
+ <el-button v-if="row.isVisible!==1" v-waves type="text" @click="delZjlbRow(row)">鍒犻櫎</el-button>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-if="operation!=='check'" v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button
+ v-if="operation!=='check'"
+ v-waves
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ type="primary"
+ @click="dialogVisibleConfirm"
+ >淇� 瀛�</el-button>
+ <el-button v-if="operation==='check'" v-waves @click="dialogVisibleCancel">杩� 鍥�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
<script>
+import Pagination from '@/components/Pagination'
+import { validateCode } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import {
+ QualityInspectionAddEditSave,
+ QualityInspectionDelete,
+ QualityInspectionSearch, QualityInspectionSeeEdit, QualityStepCheckItemSelect
+} from '@/api/QualityManagement'
+import TableColumnSettings from '@/components/TableColumnSettings'
+import { PartSelect, TMaterielClassTree } from '@/api/ProductModel'
+import { StepData } from '@/api/GeneralBasicData'
+
export default {
- name: 'QualityPlaning'
+ name: 'Zzjg',
+ components: {
+ Pagination, TableColumnSettings
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ qualityinsptcode: '', // 璐ㄦ鏂规缂栫爜
+ qualityinsptname: '', // 璐ㄦ鏂规鍚嶇О
+ status: '', // 鏈夋晥鐘舵��
+ checktype: '', // 璐ㄦ绫诲瀷
+ sampltype: '', // 鎶芥牱鏂瑰紡
+ suitobject: '', // 閫傜敤瀵硅薄
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ checktypeArr: [
+ // { code: 'InCheck', name: '鍏ュ巶妫�楠�' },
+ // { code: 'OutCheck', name: '鍑哄巶妫�楠�' },
+ { code: 'FirstCheck', name: '棣栨' },
+ { code: 'PatroCheck', name: '宸℃' },
+ { code: 'EndCheck', name: '瀹屽伐妫�' }
+ ],
+ sampltypeArr: [
+ { code: 'FIXED', name: '鍥哄畾鎶芥' },
+ { code: 'SCARE', name: '姣斾緥鎶芥' }
+ ],
+ suitobjectArr: [
+ { code: 'P', name: '鐗╂枡' },
+ { code: 'PY', name: '鐗╂枡绫诲瀷' }
+ ],
+ total: 10,
+ tableData: [],
+ tableColumnSettingsArray: [
+ // { minWidth: 50, width: false, prop: 'id', label: 'id', id: 1, show: false, fixed: false, sortable: false }, // 闅愯棌鍒� show: false闅愯棌锛宼rue鏄剧ず
+ { minWidth: 25, width: 50, prop: 'rowNum', label: '搴忓彿', id: 2, show: true, fixed: 'left', sortable: false }, // custom
+ {
+ minWidth: 130,
+ width: false,
+ prop: 'code',
+ label: '璐ㄦ鏂规缂栫爜',
+ id: 3,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 130,
+ width: false,
+ prop: 'name',
+ label: '璐ㄦ鏂规鍚嶇О',
+ id: 4,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'status',
+ label: '鏈夋晥鐘舵��',
+ id: 5,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: 110,
+ width: false,
+ prop: 'checktype',
+ label: '璐ㄦ绫诲瀷',
+ id: 6,
+ show: true,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: 110,
+ width: false,
+ prop: 'sampmethod',
+ label: '鎶芥牱鏂瑰紡',
+ id: 7,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+
+ {
+ minWidth: 110,
+ width: false,
+ prop: 'suitobject',
+ label: '閫傜敤瀵硅薄',
+ id: 8,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'stepcode',
+ label: '宸ュ簭缂栫爜',
+ id: 9,
+ show: false,
+ fixed: false,
+ sortable: true
+ }, {
+ minWidth: 110,
+ width: false,
+ prop: 'stepname',
+ label: '宸ュ簭鍚嶇О',
+ id: 10,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 110,
+ prop: 'username',
+ label: '鍒涘缓浜哄憳',
+ id: 11,
+ show: true,
+ fixed: false,
+ sortable: true
+ },
+ {
+ minWidth: false,
+ width: 160,
+ prop: 'lm_date',
+ label: '鍒涘缓鏃堕棿',
+ id: 12,
+ show: true,
+ fixed: false,
+ sortable: true
+ }
+ ],
+ tableTimeStampKey: new Date().getTime(), // 琛ㄦ牸key
+ dialogVisible: false,
+ dialogForm: {
+ qualityinsptcode: '', // 璐ㄦ鏂规缂栫爜
+ qualityinsptname: '', // 璐ㄦ鏂规鍚嶇О
+ status: 'Y', // 鏈夋晥鐘舵��
+ checktype: 'FirstCheck', // 妫�楠岀被鍨�
+ sampmethod: 'FIXED', // 鎶芥鏂瑰紡
+ sampnum: '', // 鏍锋湰鏁伴噺
+ sampscale: '', // 鎶芥姣斾緥
+ suitobject: 'P', // 閫傜敤瀵硅薄
+ suitpart: [], // 閫傜敤鐗╂枡
+ stepcode: '', // 宸ュ簭
+ descr: '' // /鎻忚堪
+ },
+ operation: '',
+ dialogFormRules: {
+ status: [
+ { required: true, message: '璇疯緭鍏ラ�夋嫨绫诲瀷', trigger: ['blur', 'change'] }
+ ],
+ qualityinsptcode: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ qualityinsptname: [
+ { required: true, message: '璇疯緭鍏ヨ川妫�鏂规鍚嶇О', trigger: ['blur', 'change'] }
+ ],
+ checktype: [
+ { required: true, message: '璇烽�夋嫨璐ㄦ鏂瑰紡', trigger: ['blur', 'change'] }
+ ],
+ sampmethod: [
+ { required: true, message: '璇烽�夋嫨鎶芥牱鏂瑰紡', trigger: ['blur', 'change'] }
+ ],
+ sampnum: [
+ { required: true, message: '璇疯緭鍏ユ牱鏈暟閲�', trigger: ['blur', 'change'] }
+ ],
+ sampscale: [
+ { required: true, message: '璇疯緭鍏ユ娊妫�姣斾緥', trigger: ['blur', 'change'] }
+ ],
+ suitobject: [
+ { required: true, message: '璇烽�夋嫨閫傜敤瀵硅薄', trigger: ['blur', 'change'] }
+ ],
+ suitpart: [
+ { required: true, message: '璇烽�夋嫨鐗╂枡鎴栫墿鏂欑被鍒�', trigger: ['blur', 'change'] }
+ ],
+ stepcode: [
+ { required: true, message: '璇烽�夋嫨宸ュ簭鍚嶇О', trigger: ['blur', 'change'] }
+ ]
+ },
+ checkitem: [],
+
+ whetherOrNot: [ // 鏄垨鍚�
+ { code: 'Y', name: '鏄�' },
+ { code: 'N', name: '鍚�' }
+ ],
+
+ PartSelectArr: [], // 鐗╂枡涓嬫媺鏁扮粍
+ StockTypeSelectArr: [], // 鐗╂枡绫诲埆涓嬫媺鏁扮粍
+ UomSelectArr: [], // 鍗曚綅涓嬫媺鏁扮粍
+ CheckItemSelectAllArr: [], // 妫�楠岄」鐩�(鎵�鏈�)
+ CheckItemSelectArr: [], // 妫�楠岄」鐩�
+ StepSelectArr: [], // 宸ュ簭鍚嶇О涓嬫媺鎵�鏈�
+
+ isCancel: true// 鏄惁鍙彇娑�
+
+ }
+ },
+
+ created() {
+ this.handleRequest()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ tableColumnUpdate(val, isCopyTrue) {
+ if (isCopyTrue) {
+ this.tableColumnSettingsArray = val
+ }
+ this.tableTimeStampKey = new Date().getTime()
+ this.$refs.tableDataRef.doLayout()
+ },
+ handleRequest() {
+ this.getQualityInspectionSearch().then(res => {
+ if (res.code === '200') {
+ // this.getUomSelect()
+ this.getStepCheckItemSelect()
+ this.getPartSelect()
+ this.getStockTypeSelect()
+ this.getStepSelect()
+ }
+ })
+ },
+ async getStepSelect() {
+ const { data: res } = await StepData()
+ this.StepSelectArr = res
+ },
+ async getQualityInspectionSearch() {
+ const res = await QualityInspectionSearch(this.form)
+ this.tableData = res.data
+ this.total = res.count
+
+ return { code: res.code }
+ },
+
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getQualityInspectionSearch()
+ },
+ // 鏌ヨ
+ search() {
+ this.getQualityInspectionSearch()
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.qualityinsptcode = ''
+ this.form.qualityinsptname = ''
+ this.form.status = ''
+ this.form.checktype = ''
+ this.form.sampltype = ''
+ this.form.suitobject = ''
+ this.getQualityInspectionSearch()
+ },
+
+ // 鏂板鎸夐挳
+ add(operation) {
+ this.operation = operation
+ this.dialogVisible = true
+ },
+ // 鏌ョ湅
+ async check(operation, row) {
+ this.operation = operation
+ this.dialogVisible = true
+
+ const { data: res } = await QualityInspectionSeeEdit({ qualityinsptcode: row.code })
+
+ this.$nextTick(() => {
+ this.dialogForm.qualityinsptcode = row.code
+ this.dialogForm.qualityinsptname = row.name
+ this.dialogForm.status = row.status
+ this.dialogForm.stepcode = row.stepcode
+ this.dialogForm.checktype = row.checktype
+ this.dialogForm.sampmethod = row.sampmethod
+ // this.dialogForm.sampscare = row.sampscare
+ if (this.dialogForm.sampmethod === 'FIXED') {
+ this.dialogForm.sampnum = row.sampscare
+ } else {
+ this.dialogForm.sampscale = row.sampscare
+ }
+ this.dialogForm.suitobject = row.suitobject
+ this.dialogForm.suitpart = row.suitpart.split(',')
+ this.dialogForm.descr = row.descr
+ this.checkitem = res
+
+ this.$refs.tableDataRef2.doLayout()
+ })
+ },
+ // 淇敼鎸夐挳
+ async edit(operation, row) {
+ this.operation = operation
+ this.dialogVisible = true
+
+ const { data: res } = await QualityInspectionSeeEdit({ qualityinsptcode: row.code })
+
+ const tempCodeArr = []
+ res.forEach(i => {
+ let number = Math.random() * Math.random()// 浣滀负鍒犻櫎鏃剁殑鏍囪瘑绗�
+ number = number === 0 ? (10 + Math.random()) : number
+ i.number = number
+ i.isVisible = 0
+ tempCodeArr.push(i.stepcheckitem_code)
+ })
+
+ this.CheckItemSelectArr = []
+ this.CheckItemSelectAllArr.forEach(i => {
+ if (!tempCodeArr.includes(i.code)) {
+ this.CheckItemSelectArr.push(i)
+ }
+ })
+
+ this.$nextTick(() => {
+ this.dialogForm.qualityinsptcode = row.code
+ this.dialogForm.qualityinsptname = row.name
+ this.dialogForm.status = row.status
+ this.dialogForm.stepcode = row.stepcode
+ this.dialogForm.checktype = row.checktype
+ this.dialogForm.sampmethod = row.sampmethod
+ if (this.dialogForm.sampmethod === 'FIXED') {
+ this.dialogForm.sampnum = row.sampscare
+ } else {
+ this.dialogForm.sampscale = row.sampscare
+ }
+ this.dialogForm.suitobject = row.suitobject
+ this.dialogForm.suitpart = row.suitpart.split(',')
+ this.dialogForm.descr = row.descr
+ this.checkitem = res
+ // console.log(this.checkitem, 2)
+ this.$refs.tableDataRef2.doLayout()
+ })
+ },
+ // 鍒犻櫎鎸夐挳
+ async del(row) {
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ QualityInspectionDelete({ qualityinsptcode: row.code }).then(res => {
+ if (res.code === '200') {
+ this.$message.success('鍒犻櫎鎴愬姛!')
+ if (this.form.page > 1 && this.tableData.length === 1) {
+ this.form.page--
+ }
+ this.getQualityInspectionSearch()
+ }
+ })
+ }).catch(() => {
+ this.$message.info('宸插彇娑堝垹闄�')
+ })
+ },
+ // 鐗╂枡涓嬫媺
+ async getPartSelect() {
+ const { data: res } = await PartSelect()
+ this.PartSelectArr = res
+ },
+ // 鐗╂枡绫诲埆涓嬫媺
+ async getStockTypeSelect() {
+ const { data: res } = await TMaterielClassTree()
+ this.StockTypeSelectArr = res
+ },
+
+ // 閫傜敤瀵硅薄鍊兼敼鍙樻槸
+ suitobjectChange() {
+ this.dialogForm.suitpart = []
+ },
+ // 鑾峰彇妫�楠岄」鐩笅鎷夋帴鍙�
+ async getStepCheckItemSelect() {
+ const { data: res } = await QualityStepCheckItemSelect()
+
+ res.forEach(i => {
+ this.CheckItemSelectArr.push({
+ code: i.code,
+ name: i.name + ' / ' + i.code,
+ descr: i.descr
+ })
+ })
+ this.CheckItemSelectAllArr = JSON.parse(JSON.stringify(this.CheckItemSelectArr))
+ },
+ // 鏁板�煎垽瀹�
+ szpdChange(val, row) {
+ if (val === 'N') {
+ row.unit = ''
+ row.decimalnum = ''
+ row.standvalue = ''
+ row.uppervalue = ''
+ row.lowervalue = ''
+ }
+ },
+ // 琛ㄦ牸鍊兼敼鍙樻椂
+ tableChange(val, row) {
+ console.log(val, row)
+ },
+ // 璐ㄦ鍒楄〃 鏂板琛�
+ addZjlb() {
+ if (this.checkitem.find(i => i.isVisible === 1)) {
+ return this.$message.info('璇峰厛淇濆瓨褰撳墠琛屾暟鎹紒')
+ }
+
+ let number = Math.random() * Math.random()// 浣滀负鍒犻櫎鏃剁殑鏍囪瘑绗�
+ number = number === 0 ? (10 + Math.random()) : number
+
+ this.checkitem.push({
+ number,
+ isVisible: 1,
+ // jyxmbm: '',
+ // jyxmmc: '',
+ stepcheckitem_code: '', // 妫�楠岄」鐩紪鐮�
+ required: 'Y', // 鏄惁蹇呭~
+ numberjudge: 'Y', // 鏄惁鏁板�煎垽鏂�
+ unit: '', // 鍗曚綅
+ decimalnum: '', // 灏忔暟浣嶆暟
+ standvalue: '', // 鏍囧噯鍊�
+ uppervalue: '', // 涓婇檺鍊�
+ lowervalue: '', // 涓嬮檺鍊�
+ stepcheckitem_desc: ''// 妫�楠岄」鐩弿杩�
+ })
+ },
+ // 鍒犻櫎璐ㄦ鍒楄〃琛�
+ delZjlbRow(row) {
+ const t = this.CheckItemSelectAllArr.find(i => i.code === row.stepcheckitem_code)
+ this.CheckItemSelectArr.unshift(t)
+ this.checkitem = this.checkitem.filter(i => i.number !== row.number)
+ },
+ // 淇濆瓨琛�
+ saveZjlbRow(row) {
+ if (!row.stepcheckitem_code) {
+ return this.$message.info('妫�楠岄」鐩笉鑳戒负绌猴紒')
+ }
+ if (row.numberjudge === 'Y' && !row.unit) {
+ return this.$message.info('鍗曚綅涓嶈兘涓虹┖锛�')
+ }
+ if (row.numberjudge === 'Y' && !row.decimalnum) {
+ return this.$message.info('灏忔暟浣嶆暟涓嶈兘涓虹┖锛�')
+ }
+ if (row.numberjudge === 'Y') {
+ if (!row.standvalue && !row.uppervalue && !row.lowervalue) {
+ return this.$message.info('鏍囧噯鍊笺�佷笂闄愬�笺�佷笅闄愬�煎叾涓竴椤逛笉鑳戒负绌猴紒')
+ }
+ }
+ this.CheckItemSelectArr = this.CheckItemSelectArr.filter(i => i.code !== row.stepcheckitem_code)
+ row.isVisible = 0
+
+ this.isCancel = true
+ },
+ // 鍙栨秷琛�
+ cancelZjlbRow(row) {
+ this.checkitem = this.checkitem.filter(i => i.number !== row.number)
+ },
+ // 缂栬緫琛�
+ editZjlbRow(row) {
+ if (this.checkitem.find(i => i.isVisible === 1)) {
+ return this.$message.info('璇峰厛淇濆瓨褰撳墠琛屾暟鎹紒')
+ }
+ row.isVisible = 1
+ this.isCancel = false
+ const t = this.CheckItemSelectAllArr.find(i => i.code === row.stepcheckitem_code)
+ this.CheckItemSelectArr.unshift(t)
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm = {
+ qualityinsptcode: '',
+ qualityinsptname: '',
+ status: 'Y',
+ checktype: 'FirstCheck',
+ sampmethod: 'FIXED',
+ sampnum: '',
+ stepcode: '',
+ sampscale: '',
+ suitobject: 'P',
+ suitpart: [],
+ descr: ''
+ }
+
+ this.isCancel = true
+ this.checkitem = []
+ this.CheckItemSelectArr = JSON.parse(JSON.stringify(this.CheckItemSelectAllArr))
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ if (this.checkitem.length < 1) {
+ return this.$message.info('璐ㄦ鍒楄〃涓嶈兘涓虹┖锛�')
+ }
+
+ const checkitem = []
+ this.checkitem.forEach((item, index) => {
+ checkitem.push({
+ stepcheckitem_seq: index + 1,
+ stepcheckitem_code: item.stepcheckitem_code,
+ stepcheckitem_desc: item.stepcheckitem_desc,
+ required: item.required,
+ numberjudge: item.numberjudge,
+ unit: item.unit,
+ decimalnum: item.decimalnum,
+ standvalue: item.standvalue,
+ uppervalue: item.uppervalue,
+ lowervalue: item.lowervalue
+ })
+ })
+ const data = {
+ qualityinsptcode: this.dialogForm.qualityinsptcode,
+ qualityinsptname: this.dialogForm.qualityinsptname,
+ status: this.dialogForm.status,
+ stepcode: this.dialogForm.checktype === 'InCheck' || this.dialogForm.checktype === 'OutCheck' ? '' : this.dialogForm.stepcode,
+ checktype: this.dialogForm.checktype,
+ sampmethod: this.dialogForm.sampmethod,
+ sampscare: this.dialogForm.sampnum ? this.dialogForm.sampnum : this.dialogForm.sampscale,
+ suitobject: this.dialogForm.suitobject,
+ suitpart: this.dialogForm.suitpart.join(','),
+ type: this.operation === 'add' ? 'Add' : 'Update',
+ descr: this.dialogForm.descr,
+ checkitem
+ }
+
+ this.$store.state.app.buttonIsDisabled = true
+ QualityInspectionAddEditSave(data).then(res => {
+ if (res.code === '200') {
+ this.$message.success(this.operation === 'add' ? '淇濆瓨鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ this.dialogVisible = false
+ this.getQualityInspectionSearch()
+ this.$store.state.app.buttonIsDisabled = false
+ } else {
+ this.$message.error(this.operation === 'add' ? '淇濆瓨澶辫触锛�' : '淇敼澶辫触锛�')
+ }
+ })
+ }
+ })
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 255
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ }
+ }
}
</script>
-<style scoped>
-
+<style scoped lang="scss">
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
</style>
diff --git a/src/views/statistic/defectDetailList.vue b/src/views/statistic/defectDetailList.vue
new file mode 100644
index 0000000..18a7a12
--- /dev/null
+++ b/src/views/statistic/defectDetailList.vue
@@ -0,0 +1,595 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup">
+ <el-button v-waves type="primary" icon="el-icon-download" @click="download">瀵煎嚭</el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="杞﹂棿鍚嶇О" style=" display: flex;">
+ <el-select
+ v-model="form.wkshopcode"
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in wkshopcodeArr"
+ :key="item.torg_code"
+ :label="item.torg_name"
+ :value="item.torg_code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="宸ュ崟缂栧彿" style=" display: flex;">
+ <el-input v-model="form.wocode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="浜у搧缂栫爜" style=" display: flex;">
+ <el-input v-model="form.partcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="浜у搧鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.partname" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="瑙勬牸鍨嬪彿" style=" display: flex;">
+ <el-input v-model="form.partspec" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="宸ュ簭鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.stepname" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="缂洪櫡浠g爜" style=" display: flex;">
+ <el-input v-model="form.defectcode" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="缂洪櫡鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.defectname" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鎶ュ伐浜哄憳" style=" display: flex;">
+ <el-input v-model="form.reportname" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鎶ュ伐鏃堕棿" style="display: flex;align-items: center">
+ <el-date-picker
+ v-model="form.reportdate"
+ type="daterange"
+ range-separator="~"
+ class="timeMini"
+ size="mini"
+ style="width: 200px;display: flex;line-height: 34px;height: 34px;"
+ :clearable="false"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ />
+ <!-- font-size: 14px!important;-->
+ <!-- :picker-options="expireTimeOption"-->
+
+ </el-form-item>
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+80)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+80)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="wo_code"
+ label="宸ュ崟缂栧彿"
+ width="160"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partcode"
+ label="浜у搧缂栫爜"
+ width="160"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partname"
+ label="浜у搧鍚嶇О"
+ width="160"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partspec"
+ label="浜у搧瑙勬牸"
+ width="160"
+ show-tooltip-when-overflow
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.partspec">{{ row.partspec }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="wkshp_name"
+ label="杞﹂棿鍚嶇О"
+ width="130"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="stepcode"
+ label="宸ュ簭缂栫爜"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="stepname"
+ label="宸ュ簭鍚嶇О"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="plan_qty"
+ label="浠诲姟鏁伴噺"
+ width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="defect_qty"
+ label="涓嶈壇鏁伴噺"
+ width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="defect_code"
+ label="缂洪櫡浠g爜"
+ width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="defect_name"
+ label="缂洪櫡鍚嶇О"
+ width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="style"
+ label="鎿嶄綔绫诲瀷"
+ width="110"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.style==='B'">鎶ュ伐</div>
+ <div v-if="row.style==='S'">鏀舵枡</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="lm_user"
+ label="鎿嶄綔浜哄憳"
+ width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="lm_date"
+ label="鎿嶄綔鏃堕棿"
+ width="160"
+ sortable="custom"
+ />
+
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getDefectDetailsReportSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'浜哄憳鏄庣粏'"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <div style="height: 300px;width: 100%;background-color: aliceblue;padding:20px">
+ <el-tag
+ v-for="tag in tagArr"
+ :key="tag.name"
+ type="success"
+ style="margin-right: 15px;min-width: 80px;text-align: center"
+ >
+ {{ tag }}
+ </el-tag>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisible=false">杩� 鍥�</el-button>
+ <!-- <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>-->
+ <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>-->
+ </div>
+ </span>
+ </el-dialog>
+
+ <!--瀵煎叆缁勪欢-->
+ <import-picker
+ ref="importPickerFunc"
+ class="importPickerClass"
+ :shows.sync="shows"
+ :title="title_value"
+ :colos="colos"
+ :code="code"
+ />
+
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import { getCookie } from '@/utils/auth'
+import ImportPicker from '@/components/ImportPicker'
+import { handleDatetime, validateCode } from '@/utils/global'
+import {
+ DefectDetailsReportExcelSearch,
+ DefectDetailsReportSearch,
+ GroupSalaryReportSearchUser
+} from '@/api/ReportManager'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import { PrentOrganizationNoCompany } from '@/api/GeneralBasicData'
+
+export default {
+ name: 'Zzjg',
+ components: {
+ Pagination, ImportPicker
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ wkshopcode: '',
+ wocode: '', // 宸ュ崟缂栧彿
+ partcode: '', // 浜у搧缂栫爜
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 瑙勬牸鍨嬪彿
+ stepname: '', // 宸ュ簭鍚嶇О
+ defectcode: '', // 缂洪櫡浠g爜
+ defectname: '', // 缂洪櫡鍚嶇О
+ reportname: '', // 鎿嶄綔浜哄憳
+ reportdate: '', // 鎿嶄綔鏃堕棿
+ prop: 'partcode', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ // groupArr: [],
+ wkshopcodeArr: [],
+ total: 10,
+ tableData: [],
+ dialogVisible: false,
+ tagArr: [], //
+ dialogForm: {
+ OrgType: '',
+ OrgCode: '',
+ OrgName: '',
+ SupUnit: ''// 涓婄骇鍗曚綅
+ },
+ operation: '',
+ dialogFormRules: {
+ OrgType: [
+ { required: true, message: '璇疯緭鍏ラ�夋嫨绫诲瀷', trigger: ['blur', 'change'] }
+ ],
+ OrgCode: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ OrgName: [
+ { required: true, message: '璇疯緭鍏ュ悕绉�', trigger: ['blur', 'change'] }
+ ]
+
+ },
+
+ title_value: '鏁版嵁瀵煎叆 / 鐐规閮ㄤ綅',
+ code: '4',
+ shows: false
+
+ }
+ },
+ watch: {
+ shows() {
+ if (!this.shows) {
+ this.getDefectDetailsReportSearch()
+ }
+ }
+ },
+ created() {
+ this.handleRequest()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ handleRequest() {
+ this.getDefectDetailsReportSearch().then(res => {
+ if (res.code === '200') {
+ this.getPrentOrganizationNoCompany()
+ }
+ })
+ },
+ async getPrentOrganizationNoCompany() {
+ const { data: res } = await PrentOrganizationNoCompany()
+ this.wkshopcodeArr = res
+ },
+ async getDefectDetailsReportSearch() {
+ let tempDate = this.form.reportdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+ const data = {
+ wkshopcode: this.form.wkshopcode,
+ wocode: this.form.wocode,
+ partcode: this.form.partcode,
+ partname: this.form.partname,
+ partspec: this.form.partspec,
+ stepname: this.form.stepname,
+ defectcode: this.form.defectcode,
+ defectname: this.form.defectname,
+ reportname: this.form.reportname,
+ reportdate: tempDate,
+ prop: this.form.prop,
+ order: this.form.order,
+ page: this.form.page,
+ rows: this.form.rows
+ }
+
+ const res = await DefectDetailsReportSearch(data)
+ this.tableData = res.data
+ this.total = res.count
+
+ return { code: res.code }
+ },
+
+ // async getMesOrderStepReportSelectUserGroup() {
+ // const { data: res } = await MesOrderStepReportSelectUserGroup()
+ // this.groupArr = res
+ // },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getDefectDetailsReportSearch()
+ },
+ async download() {
+ let tempDate = this.form.reportdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+
+ const data = {
+ wkshopcode: this.form.wkshopcode,
+ wocode: this.form.wocode,
+ partcode: this.form.partcode,
+ partname: this.form.partname,
+ partspec: this.form.partspec,
+ stepname: this.form.stepname,
+ defectcode: this.form.defectcode,
+ defectname: this.form.defectname,
+ reportname: this.form.reportname,
+ reportdate: tempDate
+ }
+
+ const { data: res } = await DefectDetailsReportExcelSearch(data)
+ window.location.href = res
+ },
+ // 鏌ヨ
+ search() {
+ this.getDefectDetailsReportSearch()
+ },
+ // 瀵煎叆鎸夐挳
+ upload() {
+ this.shows = true
+ this.$refs.importPickerFunc.newDataFunc()
+ },
+ colos() {
+ this.shows = false
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.wkshopcode = ''
+ this.form.wocode = ''
+ this.form.partcode = ''
+ this.form.partname = ''
+ this.form.partspec = ''
+ this.form.stepname = ''
+ this.form.defectcode = ''
+ this.form.defectname = ''
+ this.form.reportname = ''
+ this.form.reportdate = ''
+ this.getDefectDetailsReportSearch()
+ },
+
+ // 鏂板鎸夐挳
+ add(operation) {
+ this.operation = operation
+ this.dialogVisible = true
+ },
+ // 淇敼鎸夐挳
+ async edit(operation, row) {
+ this.operation = operation
+ this.dialogVisible = true
+
+ const res = await GroupSalaryReportSearchUser({ id: row.id })
+ this.tagArr = res.data.map(r => r.reportname)
+ // this.tagArr = ['妤兼潕淇�', '寮犱笁', '鏉庡洓']
+ // this.$nextTick(() => {
+ // this.dialogForm.OrgCode = row.org_code
+ // this.dialogForm.OrgName = row.org_name
+ // this.dialogForm.SupUnit = row.parent_id
+ // })
+ },
+ // 鍒犻櫎鎸夐挳
+ async del(row) {
+ // this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ // confirmButtonText: '纭畾',
+ // cancelButtonText: '鍙栨秷',
+ // type: 'warning'
+ // }).then(() => {
+ // DeleteOrganization({ orgid: row.code }).then(res => {
+ // if (res.code === '200') {
+ // this.$message.success('鍒犻櫎鎴愬姛!')
+ // if (this.form.page > 1 && this.tableData.length === 1) {
+ // this.form.page--
+ // }
+ // this.getDefectDetailsReportSearch()
+ // }
+ // })
+ // }).catch(() => {
+ // this.$message.info('宸插彇娑堝垹闄�')
+ // })
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm.OrgType = ''
+ this.dialogForm.OrgCode = ''
+ this.dialogForm.OrgName = ''
+ this.dialogForm.SupUnit = ''
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ const data = {
+ OrganCode: this.dialogForm.OrgCode,
+ OrganName: this.dialogForm.OrgName,
+ OperType: this.operation === 'add' ? 'Add' : 'Update',
+ Operator: getCookie('admin')
+ }
+ // AddUpdateOrganization(data).then(res => {
+ // if (res.code === '200') {
+ // this.$message.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ // this.dialogVisible = false
+ // this.getDefectDetailsReportSearch()
+ // } else {
+ // this.$message.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ // }
+ // })
+ }
+ })
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 295
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ }
+ }
+}
+</script>
+
+<style scoped lang="scss">
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+::v-deep .el-range__icon {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-separator {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-input {
+ font-size: 14px;
+}
+
+::v-deep .el-range-separator {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+::v-deep .el-progress-bar__innerText{
+ display: none !important;
+}
+</style>
+<style>
+
+.el-table .custom-row {
+ background: #f8f8fa;
+}
+</style>
diff --git a/src/views/statistic/groupSalaryList.vue b/src/views/statistic/groupSalaryList.vue
new file mode 100644
index 0000000..9d61962
--- /dev/null
+++ b/src/views/statistic/groupSalaryList.vue
@@ -0,0 +1,897 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
+ <el-button v-waves type="primary" icon="el-icon-download" @click="download">瀵煎嚭</el-button>
+
+ <!-- <div-->
+ <!-- style="color: red;margin: 10px 5px 0 0;"-->
+ <!-- >褰撳墠鎶ヨ〃鍙粺璁¤嚜鍒朵欢宸ュ簭-->
+ <!-- </div>-->
+
+ <!-- <div class="topRight" style="display: flex;align-items: center">-->
+ <!-- <el-select-->
+ <!-- v-model="form.rejectstepcode"-->
+ <!-- style="width: 170px;"-->
+ <!-- multiple-->
+ <!-- placeholder="璇烽�夋嫨鍓旈櫎宸ュ簭"-->
+ <!-- collapse-tags-->
+ <!-- filterable-->
+ <!-- clearable-->
+ <!-- @change="getGroupSalaryReportSearch"-->
+ <!-- >-->
+ <!-- <el-option-->
+ <!-- v-for="item in StepSelectArr"-->
+ <!-- :key="item.stepcode"-->
+ <!-- :label="item.stepname"-->
+ <!-- :value="item.stepcode"-->
+ <!-- />-->
+ <!-- </el-select>-->
+ <!-- </div>-->
+
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="杞﹂棿鍚嶇О" style=" display: flex;">
+ <el-select
+ v-model="form.wkshopcode"
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in wkshopcodeArr"
+ :key="item.torg_code"
+ :label="item.torg_name"
+ :value="item.torg_code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="宸ュ崟缂栧彿" style="display: flex;">
+ <el-input v-model="form.wocode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="浜у搧缂栫爜" style=" display: flex;">
+ <el-input v-model="form.partcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="浜у搧鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.partname" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <!-- <el-form-item label="瑙勬牸鍨嬪彿" style=" display: flex;">-->
+ <!-- <el-input v-model="form.partspec" style="width: 200px" placeholder="璇疯緭鍏�" />-->
+ <!-- </el-form-item>-->
+ <el-form-item v-show="isExpandForm" label="宸ュ簭鍚嶇О" style="display: flex;">
+ <el-input v-model="form.stepname" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鐢熶骇鐝粍" style=" display: flex;">
+ <el-select v-model="form.groupcode" style="width: 200px" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in groupArr"
+ :key="item.usergroupcode"
+ :label="item.usergroupname"
+ :value="item.usergroupcode"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鎿嶄綔浜哄憳" style=" display: flex;">
+ <el-input v-model="form.username" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鎿嶄綔鏃堕棿" style="display: flex;align-items: center">
+ <el-date-picker
+ v-model="form.operdate"
+ type="daterange"
+ range-separator="~"
+ class="timeMini"
+ size="mini"
+ style="width: 200px;display: flex;line-height: 34px;height: 34px;"
+ :clearable="false"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ />
+ <!-- font-size: 14px!important;-->
+ <!-- :picker-options="expireTimeOption"-->
+
+ </el-form-item>
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
+ />
+ </div>
+
+ </div>
+ <el-tabs type="border-card" style="margin-top: 10px" @tab-click="tabClick">
+ <el-tab-pane label="鏈亾宸ュ簭">
+ <div class="elTableDiv" style="margin: 0 auto 10px;">
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?(tableHeight-70):(tableHeight-30)+'px'"
+ border
+ :summary-method="getSummaries"
+ show-summary
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?(tableHeight-70):(tableHeight-30)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="wo_code"
+ label="宸ュ崟缂栧彿"
+ width="160"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partcode"
+ label="浜у搧缂栫爜"
+ width="160"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partname"
+ label="浜у搧鍚嶇О"
+ width="160"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partspec"
+ label="浜у搧瑙勬牸"
+ width="150"
+ show-tooltip-when-overflow
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.partspec">{{ row.partspec }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="wkshp_name"
+ label="鐢熶骇杞﹂棿"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="stepcode"
+ label="宸ュ簭缂栫爜"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="stepname"
+ label="宸ュ簭鍚嶇О"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="task_qty"
+ label="浠诲姟鏁伴噺"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="usergroupname"
+ label="鐢熶骇鐝粍"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.usergroupname">{{ row.usergroupname }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="good_qty"
+ label="鎶ュ伐鏁伴噺"
+ width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="unprice"
+ label="宸ュ簭鍗曚环"
+ width="110"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.unprice">{{ row.unprice }} 鍏�</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="usermoney"
+ label="璁′欢宸ヨ祫"
+ width="110"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.usermoney">{{ row.usermoney }} 鍏�</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="lm_user"
+ label="鎿嶄綔浜�"
+ width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="report_date"
+ label="鎿嶄綔鏃堕棿"
+ width="160"
+ sortable="custom"
+ />
+
+ <el-table-column
+ label="鏌ョ湅鏄庣粏"
+ width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-tooltip class="item" effect="dark" content="浜哄憳鏄庣粏" placement="top">
+ <!-- <i class="el-icon-edit-outline" @click="edit('edit',row)" />-->
+ <i
+ class="el-icon-tickets"
+ :style="{color:$store.state.settings.theme}"
+ style="cursor: pointer;margin-right: 15px"
+ @click="edit('edit',row)"
+ />
+ </el-tooltip>
+ <!-- <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">-->
+ <!-- <i class="el-icon-delete" @click="del(row)" />-->
+ <!-- </el-tooltip>-->
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getGroupSalaryReportSearch"
+ />
+ </el-tab-pane>
+ <el-tab-pane label="閫愰亾宸ュ簭">
+ <div class="elTableDiv" style="margin: 0 auto 10px;">
+ <el-table
+ ref="tableDataRef2"
+ class="tableFixed"
+ :data="tableData2"
+ :height="isExpandForm?(tableHeight-70):(tableHeight-30)+'px'"
+ border
+ :summary-method="getSummaries"
+ show-summary
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?(tableHeight-70):(tableHeight-30)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="wo_code"
+ label="宸ュ崟缂栧彿"
+ width="160"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partcode"
+ label="浜у搧缂栫爜"
+ width="160"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partname"
+ label="浜у搧鍚嶇О"
+ width="160"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partspec"
+ label="浜у搧瑙勬牸"
+ width="150"
+ show-tooltip-when-overflow
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.partspec">{{ row.partspec }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="wkshp_name"
+ label="鐢熶骇杞﹂棿"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="stepcode"
+ label="宸ュ簭缂栫爜"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="stepname"
+ label="宸ュ簭鍚嶇О"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="task_qty"
+ label="浠诲姟鏁伴噺"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="usergroupname"
+ label="鐢熶骇鐝粍"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.usergroupname">{{ row.usergroupname }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="good_qty"
+ label="鎶ュ伐鏁伴噺"
+ width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="unprice"
+ label="宸ュ簭鍗曚环"
+ width="110"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.unprice">{{ row.unprice }} 鍏�</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="usermoney"
+ label="璁′欢宸ヨ祫"
+ width="110"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.usermoney">{{ row.usermoney }} 鍏�</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="lm_user"
+ label="鎿嶄綔浜�"
+ width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="report_date"
+ label="鎿嶄綔鏃堕棿"
+ width="160"
+ sortable="custom"
+ />
+
+ <el-table-column
+ label="鏌ョ湅鏄庣粏"
+ width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-tooltip class="item" effect="dark" content="浜哄憳鏄庣粏" placement="top">
+ <!-- <i class="el-icon-edit-outline" @click="edit('edit',row)" />-->
+ <i
+ class="el-icon-tickets"
+ :style="{color:$store.state.settings.theme}"
+ style="cursor: pointer;margin-right: 15px"
+ @click="edit('edit',row)"
+ />
+ </el-tooltip>
+ <!-- <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">-->
+ <!-- <i class="el-icon-delete" @click="del(row)" />-->
+ <!-- </el-tooltip>-->
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getGroupSalaryReportSearch"
+ />
+ </el-tab-pane>
+ </el-tabs>
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'浜哄憳鏄庣粏'"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <div style="height: 300px;width: 100%;background-color: aliceblue;padding:20px">
+ <el-tag
+ v-for="tag in tagArr"
+ :key="tag.name"
+ type="success"
+ style="margin-right: 15px;min-width: 80px;text-align: center"
+ :style="{color:$store.state.settings.theme}"
+ >
+ {{ tag }}
+ </el-tag>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisible=false">杩� 鍥�</el-button>
+ <!-- <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>-->
+ <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>-->
+ </div>
+ </span>
+ </el-dialog>
+
+ <!--瀵煎叆缁勪欢-->
+ <import-picker
+ ref="importPickerFunc"
+ class="importPickerClass"
+ :shows.sync="shows"
+ :title="title_value"
+ :colos="colos"
+ :code="code"
+ />
+
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import { getCookie } from '@/utils/auth'
+import ImportPicker from '@/components/ImportPicker'
+import { handleDatetime, validateCode } from '@/utils/global'
+import {
+ GroupSalaryReportExcelSearch,
+ GroupSalaryReportSearch,
+ GroupSalaryReportSearchUser
+} from '@/api/ReportManager'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import { GroupsPermissions, PrentOrganizationNoCompany } from '@/api/GeneralBasicData'
+
+export default {
+ name: 'Zzjg',
+ components: {
+ Pagination, ImportPicker
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ StepSelectArr: [], // 鍓旈櫎宸ュ簭鏁扮粍
+ form: {
+ wkshopcode: '',
+ wocode: '', // 宸ュ崟缂栧彿
+ partcode: '', // 浜у搧缂栫爜
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 瑙勬牸鍨嬪彿
+ stepname: '', // 宸ュ簭鍚嶇О
+ groupcode: '', // 鐢熶骇鐝粍
+ username: '', // 鎿嶄綔浜哄憳
+ operdate: '', // 鎿嶄綔鏃堕棿
+ rejectstepcode: [], // 鍓旈櫎宸ュ簭(鍥哄畾钖祫宸ュ簭涓嶅弬涓庤绠�
+ compute: 'last', // 璁′欢鏂瑰紡 閫愰亾宸ュ簭锛歝ontin 鏈亾宸ュ簭锛歭ast
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ wkshopcodeArr: [],
+ groupArr: [],
+ total: 10,
+ tableData: [],
+ tableData2: [],
+ dialogVisible: false,
+ tagArr: [], //
+ dialogForm: {
+ OrgType: '',
+ OrgCode: '',
+ OrgName: '',
+ SupUnit: ''// 涓婄骇鍗曚綅
+ },
+ operation: '',
+ dialogFormRules: {
+ OrgType: [
+ { required: true, message: '璇疯緭鍏ラ�夋嫨绫诲瀷', trigger: ['blur', 'change'] }
+ ],
+ OrgCode: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ OrgName: [
+ { required: true, message: '璇疯緭鍏ュ悕绉�', trigger: ['blur', 'change'] }
+ ]
+
+ },
+
+ title_value: '鏁版嵁瀵煎叆 / 鐐规閮ㄤ綅',
+ code: '4',
+ shows: false
+
+ }
+ },
+ watch: {
+ shows() {
+ if (!this.shows) {
+ this.getGroupSalaryReportSearch()
+ }
+ }
+ },
+ created() {
+ this.handleRequest()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ // updated() {
+ // this.$nextTick(() => {
+ // this.$refs.tableDataRef.doLayout()
+ // this.$refs.tableDataRef2.doLayout()
+ // })
+ // },
+ methods: {
+ handleRequest() {
+ this.getGroupSalaryReportSearch().then(res => {
+ if (res.code === '200') {
+ this.getMesOrderStepReportSelectUserGroup()
+ this.getPrentOrganizationNoCompany()
+ // this.getStepSelect()
+ }
+ })
+ },
+ async getPrentOrganizationNoCompany() {
+ const { data: res } = await PrentOrganizationNoCompany()
+ this.wkshopcodeArr = res
+ },
+ // 鑾峰彇宸ュ簭涓嬫媺鎺ュ彛
+ // async getStepSelect() {
+ // const { data: res } = await StepSelect()
+ // this.StepSelectArr = res
+ // },
+ getSummaries(param) {
+ const { columns, data } = param
+ const sums = []
+
+ columns.forEach((column, index) => {
+ if (index === 10) {
+ sums[index] = '鎬讳环'
+ return
+ }
+ const values = data.map(item => Number(item[column.property]))
+ if (column.property === 'usermoney') {
+ sums[index] = values.reduce((prev, curr) => {
+ const value = Number(curr)
+ if (!isNaN(value)) {
+ return Math.round(prev * 100) / 100 + Math.round(curr * 100) / 100
+ } else {
+ return Math.round(prev * 100) / 100
+ }
+ }, 0)
+ sums[index] += ' 鍏�'
+ } else {
+ // sums[index] = 'N/A'
+ sums[index] = ' '
+ }
+ })
+ this.$nextTick(() => {
+ this.$refs.tableDataRef.doLayout()
+ this.$refs.tableDataRef2.doLayout()
+ })
+
+ return sums
+ },
+ async getGroupSalaryReportSearch() {
+ let tempDate = this.form.operdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+ const data = {
+ wkshopcode: this.form.wkshopcode,
+ wocode: this.form.wocode,
+ partcode: this.form.partcode,
+ partname: this.form.partname,
+ partspec: this.form.partspec,
+ stepname: this.form.stepname,
+ groupcode: this.form.groupcode,
+ username: this.form.username,
+ operdate: tempDate,
+ rejectstepcode: this.form.rejectstepcode.join(','),
+ compute: this.form.compute,
+ prop: this.form.prop,
+ order: this.form.order,
+ page: this.form.page,
+ rows: this.form.rows
+
+ }
+ const res = await GroupSalaryReportSearch(data)
+ if (this.form.compute === 'last') {
+ this.tableData = res.data
+ }
+ if (this.form.compute === 'contin') {
+ this.tableData2 = res.data
+ }
+
+ this.total = res.count
+
+ return { code: res.code }
+ },
+
+ async getMesOrderStepReportSelectUserGroup() {
+ const { data: res } = await GroupsPermissions()
+ this.groupArr = res
+ },
+ tabClick(val) {
+ // console.log(val.label)
+ this.form.compute = val.label === '鏈亾宸ュ簭' ? 'last' : 'contin'
+ this.getGroupSalaryReportSearch()
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getGroupSalaryReportSearch()
+ },
+ async download() {
+ let tempDate = this.form.operdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+
+ const data = {
+ wkshopcode: this.form.wkshopcode,
+ wocode: this.form.wocode,
+ partcode: this.form.partcode,
+ partname: this.form.partname,
+ partspec: this.form.partspec,
+ stepname: this.form.stepname,
+ groupcode: this.form.groupcode,
+ username: this.form.username,
+ operdate: tempDate,
+ compute: this.form.compute
+ }
+
+ const { data: res } = await GroupSalaryReportExcelSearch(data)
+ window.location.href = res
+ },
+ // 鏌ヨ
+ search() {
+ this.getGroupSalaryReportSearch()
+ },
+ // 瀵煎叆鎸夐挳
+ upload() {
+ this.shows = true
+ this.$refs.importPickerFunc.newDataFunc()
+ },
+ colos() {
+ this.shows = false
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.wkshopcode = ''
+ this.form.wocode = ''
+ this.form.partcode = ''
+ this.form.partname = ''
+ this.form.partspec = ''
+ this.form.stepname = ''
+ this.form.groupcode = ''
+ this.form.username = ''
+ this.form.operdate = ''
+ this.getGroupSalaryReportSearch()
+ },
+
+ // 鏂板鎸夐挳
+ add(operation) {
+ this.operation = operation
+ this.dialogVisible = true
+ },
+ // 淇敼鎸夐挳
+ async edit(operation, row) {
+ this.operation = operation
+ this.dialogVisible = true
+
+ const res = await GroupSalaryReportSearchUser({ id: row.id })
+ this.tagArr = res.data.map(r => r.username).join(',').split(',')
+ // this.tagArr = ['妤兼潕淇�', '寮犱笁', '鏉庡洓']
+ // this.$nextTick(() => {
+ // this.dialogForm.OrgCode = row.org_code
+ // this.dialogForm.OrgName = row.org_name
+ // this.dialogForm.SupUnit = row.parent_id
+ // })
+ },
+ // 鍒犻櫎鎸夐挳
+ async del(row) {
+ // this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ // confirmButtonText: '纭畾',
+ // cancelButtonText: '鍙栨秷',
+ // type: 'warning'
+ // }).then(() => {
+ // DeleteOrganization({ orgid: row.code }).then(res => {
+ // if (res.code === '200') {
+ // this.$message.success('鍒犻櫎鎴愬姛!')
+ // if (this.form.page > 1 && this.tableData.length === 1) {
+ // this.form.page--
+ // }
+ // this.getGroupSalaryReportSearch()
+ // }
+ // })
+ // }).catch(() => {
+ // this.$message.info('宸插彇娑堝垹闄�')
+ // })
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm.OrgType = ''
+ this.dialogForm.OrgCode = ''
+ this.dialogForm.OrgName = ''
+ this.dialogForm.SupUnit = ''
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ const data = {
+ OrganCode: this.dialogForm.OrgCode,
+ OrganName: this.dialogForm.OrgName,
+ OperType: this.operation === 'add' ? 'Add' : 'Update',
+ Operator: getCookie('admin')
+ }
+ // AddUpdateOrganization(data).then(res => {
+ // if (res.code === '200') {
+ // this.$message.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ // this.dialogVisible = false
+ // this.getGroupSalaryReportSearch()
+ // } else {
+ // this.$message.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ // }
+ // })
+ }
+ })
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 255
+ this.$refs.tableDataRef.doLayout()
+ this.$refs.tableDataRef2.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ }
+ }
+}
+</script>
+
+<style scoped lang="scss">
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+::v-deep .el-range__icon {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-separator {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-input {
+ font-size: 14px;
+}
+
+::v-deep .el-range-separator {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+::v-deep .el-progress-bar__innerText{
+ display: none !important;
+}
+</style>
+<style>
+.el-table .custom-row {
+ background: #f8f8fa;
+}
+</style>
diff --git a/src/views/statistic/personSalaryList.vue b/src/views/statistic/personSalaryList.vue
new file mode 100644
index 0000000..d4aa68f
--- /dev/null
+++ b/src/views/statistic/personSalaryList.vue
@@ -0,0 +1,880 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
+ <el-button v-waves type="primary" icon="el-icon-download" @click="download">瀵煎嚭</el-button>
+
+ <div
+ style="color: red;margin: 10px 5px 0 0;"
+ >褰撳墠鎶ヨ〃鍙粺璁¤嚜鍒朵欢宸ュ簭
+ </div>
+
+ <!-- <div class="topRight" style="display: flex;align-items: center">-->
+ <!-- <!– <div style="font-size: 14px;margin-right: 15px;color: #a7a7a7">鍓旈櫎宸ュ簭</div>–>-->
+ <!-- <el-select-->
+ <!-- v-model="form.rejectstepcode"-->
+ <!-- style="width: 170px;"-->
+ <!-- multiple-->
+ <!-- placeholder="璇烽�夋嫨鍓旈櫎宸ュ簭"-->
+ <!-- collapse-tags-->
+ <!-- filterable-->
+ <!-- clearable-->
+ <!-- @change="getPeopleSalaryReportSearch"-->
+ <!-- >-->
+ <!-- <el-option-->
+ <!-- v-for="item in StepSelectArr"-->
+ <!-- :key="item.stepcode"-->
+ <!-- :label="item.stepname"-->
+ <!-- :value="item.stepcode"-->
+ <!-- />-->
+ <!-- </el-select>-->
+ <!-- </div>-->
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex; "
+ >
+ <div class="elForm">
+ <el-form-item label="杞﹂棿鍚嶇О" style=" display: flex;">
+ <el-select
+ v-model="form.wkshopcode"
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in wkshopcodeArr"
+ :key="item.torg_code"
+ :label="item.torg_name"
+ :value="item.torg_code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="宸ュ崟缂栧彿" style="display: flex;">
+ <el-input v-model="form.wocode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="浜у搧缂栫爜" style=" display: flex;">
+ <el-input v-model="form.partcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="浜у搧鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.partname" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="瑙勬牸鍨嬪彿" style=" display: flex;">
+ <el-input v-model="form.partspec" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="宸ュ簭鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.stepname" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <!-- <el-form-item v-show="isExpandForm" label="鐢熶骇鐝粍" style=" display: flex;">-->
+ <!-- <el-select v-model="form.groupcode" style="width: 200px" placeholder="璇烽�夋嫨">-->
+ <!-- <el-option-->
+ <!-- v-for="item in groupArr"-->
+ <!-- :key="item.group_code"-->
+ <!-- :label="item.group_name"-->
+ <!-- :value="item.group_code"-->
+ <!-- />-->
+ <!-- </el-select>-->
+ <!-- </el-form-item>-->
+ <el-form-item v-show="isExpandForm" label="鎶ュ伐浜哄憳" style=" display: flex;">
+ <el-input v-model="form.reportname" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鎶ュ伐鏃堕棿" style="display: flex;align-items: center">
+ <el-date-picker
+ v-model="form.reportdate"
+ type="daterange"
+ range-separator="~"
+ class="timeMini"
+ size="mini"
+ style="width: 200px;display: flex;line-height: 34px;height: 34px;"
+ :clearable="false"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ />
+ <!-- font-size: 14px!important;-->
+ <!-- :picker-options="expireTimeOption"-->
+
+ </el-form-item>
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
+ />
+ </div>
+ </div>
+
+ <el-tabs type="border-card" style="margin-top: 10px" @tab-click="tabClick">
+ <el-tab-pane label="鏈亾宸ュ簭">
+ <div class="elTableDiv" style="margin: 0 auto 10px;">
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?(tableHeight-80):(tableHeight-40)+'px'"
+ border
+ :summary-method="getSummaries"
+ show-summary
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?(tableHeight-80):(tableHeight-40)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="wo_code"
+ label="宸ュ崟缂栧彿"
+ width="160"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partcode"
+ label="浜у搧缂栫爜"
+ width="160"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partname"
+ label="浜у搧鍚嶇О"
+ width="160"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partspec"
+ label="浜у搧瑙勬牸"
+ width="160"
+ show-tooltip-when-overflow
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.partspec">{{ row.partspec }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="wkshp_name"
+ label="杞﹂棿鍚嶇О"
+ width="130"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+
+ <el-table-column
+ prop="step_code"
+ label="宸ュ簭缂栫爜"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="stepname"
+ label="宸ュ簭鍚嶇О"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="task_qty"
+ label="浠诲姟鏁伴噺"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <!-- <el-table-column-->
+ <!-- prop="group_name"-->
+ <!-- label="鐢熶骇鐝粍"-->
+ <!-- width="110"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- sortable="custom"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.group_name">{{ row.group_name }}</div>-->
+ <!-- <div v-else>/</div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ <el-table-column
+ prop="report_qty"
+ label="鎶ュ伐鏁伴噺"
+ width="110"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.report_qty">{{ row.report_qty }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="step_price"
+ label="宸ュ簭鍗曚环"
+ width="110"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.step_price">{{ row.step_price }} 鍏�</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <!-- <el-table-column-->
+ <!-- prop="ratio"-->
+ <!-- label="鍒嗛厤姣斾緥"-->
+ <!-- width="110"-->
+ <!-- sortable="custom"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.step_price">{{ row.ratio }} %</div>-->
+ <!-- <div v-else>/</div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ <el-table-column
+ prop="moneys"
+ label="涓汉璁′欢宸ヨ祫"
+ width="130"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.moneys">{{ row.moneys }} 鍏�</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="username"
+ label="鎶ュ伐浜哄憳"
+ width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="report_date"
+ label="鎶ュ伐鏃堕棿"
+ width="160"
+ sortable="custom"
+ />
+
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getPeopleSalaryReportSearch"
+ />
+ </el-tab-pane>
+ <el-tab-pane label="閫愰亾宸ュ簭">
+ <div class="elTableDiv" style="margin: 0 auto 10px;">
+ <el-table
+ ref="tableDataRef2"
+ class="tableFixed"
+ :data="tableData2"
+ :height="isExpandForm?(tableHeight-80):(tableHeight-40)+'px'"
+ border
+ :summary-method="getSummaries"
+ show-summary
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?(tableHeight-80):(tableHeight-40)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="wo_code"
+ label="宸ュ崟缂栧彿"
+ width="160"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partcode"
+ label="浜у搧缂栫爜"
+ width="160"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partname"
+ label="浜у搧鍚嶇О"
+ width="160"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partspec"
+ label="浜у搧瑙勬牸"
+ width="160"
+ show-tooltip-when-overflow
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.partspec">{{ row.partspec }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="wkshp_name"
+ label="杞﹂棿鍚嶇О"
+ width="130"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+
+ <el-table-column
+ prop="step_code"
+ label="宸ュ簭缂栫爜"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="stepname"
+ label="宸ュ簭鍚嶇О"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="task_qty"
+ label="浠诲姟鏁伴噺"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <!-- <el-table-column-->
+ <!-- prop="group_name"-->
+ <!-- label="鐢熶骇鐝粍"-->
+ <!-- width="110"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- sortable="custom"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.group_name">{{ row.group_name }}</div>-->
+ <!-- <div v-else>/</div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ <el-table-column
+ prop="report_qty"
+ label="鎶ュ伐鏁伴噺"
+ width="110"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.report_qty">{{ row.report_qty }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="step_price"
+ label="宸ュ簭鍗曚环"
+ width="110"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.step_price">{{ row.step_price }} 鍏�</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="moneys"
+ label="涓汉璁′欢宸ヨ祫"
+ width="130"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.moneys">{{ row.moneys }} 鍏�</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="username"
+ label="鎶ュ伐浜哄憳"
+ width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="report_date"
+ label="鎶ュ伐鏃堕棿"
+ width="160"
+ sortable="custom"
+ />
+
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getPeopleSalaryReportSearch"
+ />
+ </el-tab-pane>
+ </el-tabs>
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'浜哄憳鏄庣粏'"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <div style="height: 300px;width: 100%;background-color: aliceblue;padding:20px">
+ <el-tag
+ v-for="tag in tagArr"
+ :key="tag.name"
+ type="success"
+ style="margin-right: 15px;min-width: 80px;text-align: center"
+ >
+ {{ tag }}
+ </el-tag>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisible=false">杩� 鍥�</el-button>
+ <!-- <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>-->
+ <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>-->
+ </div>
+ </span>
+ </el-dialog>
+
+ <!--瀵煎叆缁勪欢-->
+ <import-picker
+ ref="importPickerFunc"
+ class="importPickerClass"
+ :shows.sync="shows"
+ :title="title_value"
+ :colos="colos"
+ :code="code"
+ />
+
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import { getCookie } from '@/utils/auth'
+import ImportPicker from '@/components/ImportPicker'
+import { handleDatetime, validateCode } from '@/utils/global'
+import {
+ GroupSalaryReportSearchUser, PeopleSalaryReportExcelSearch, PeopleSalaryReportSearch
+} from '@/api/ReportManager'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import { PrentOrganizationNoCompany } from '@/api/GeneralBasicData'
+
+export default {
+ name: 'Zzjg',
+ components: {
+ Pagination, ImportPicker
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ StepSelectArr: [], // 鍓旈櫎宸ュ簭鏁扮粍
+ form: {
+ wkshopcode: '',
+ wocode: '', // 宸ュ崟缂栧彿
+ partcode: '', // 浜у搧缂栫爜
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 瑙勬牸鍨嬪彿
+ stepname: '', // 宸ュ簭鍚嶇О
+ groupcode: '', // 鐢熶骇鐝粍
+ reportname: '', // 鎿嶄綔浜哄憳
+ reportdate: '', // 鎿嶄綔鏃堕棿
+ rejectstepcode: [], // 鍓旈櫎宸ュ簭(鍥哄畾钖祫宸ュ簭涓嶅弬涓庤绠�
+ compute: 'last', // 璁′欢鏂瑰紡
+ prop: 'partcode', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ wkshopcodeArr: [],
+ groupArr: [],
+ total: 10,
+ tableData: [],
+ tableData2: [],
+ dialogVisible: false,
+ tagArr: [], //
+ dialogForm: {
+ OrgType: '',
+ OrgCode: '',
+ OrgName: '',
+ SupUnit: ''// 涓婄骇鍗曚綅
+ },
+ operation: '',
+ dialogFormRules: {
+ OrgType: [
+ { required: true, message: '璇疯緭鍏ラ�夋嫨绫诲瀷', trigger: ['blur', 'change'] }
+ ],
+ OrgCode: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ OrgName: [
+ { required: true, message: '璇疯緭鍏ュ悕绉�', trigger: ['blur', 'change'] }
+ ]
+
+ },
+
+ title_value: '鏁版嵁瀵煎叆 / 鐐规閮ㄤ綅',
+ code: '4',
+ shows: false
+
+ }
+ },
+ watch: {
+ shows() {
+ if (!this.shows) {
+ this.getPeopleSalaryReportSearch()
+ }
+ }
+ },
+ // updated() {
+ // this.$nextTick(() => {
+ // this.$refs.tableDataRef.doLayout()
+ // this.$refs.tableDataRef2.doLayout()
+ // })
+ // },
+ created() {
+ this.handleRequest()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ handleRequest() {
+ this.getPeopleSalaryReportSearch().then(res => {
+ if (res.code === '200') {
+ this.getPrentOrganizationNoCompany()
+
+ // this.getMesOrderStepReportSelectUserGroup()
+ // this.getStepSelect()
+ }
+ })
+ },
+ async getPrentOrganizationNoCompany() {
+ const { data: res } = await PrentOrganizationNoCompany()
+ this.wkshopcodeArr = res
+ },
+ // 鑾峰彇宸ュ簭涓嬫媺鎺ュ彛
+ // async getStepSelect() {
+ // const { data: res } = await StepSelect()
+ // this.StepSelectArr = res
+ // },
+ getSummaries(param) {
+ const { columns, data } = param
+ const sums = []
+
+ const i = this.form.compute === 'last' ? 9 : 9
+
+ columns.forEach((column, index) => {
+ if (index === i) {
+ sums[index] = '鎬讳环'
+ return
+ }
+ const values = data.map(item => Number(item[column.property]))
+ if (column.property === 'moneys') {
+ sums[index] = values.reduce((prev, curr) => {
+ const value = Number(curr)
+ if (!isNaN(value)) {
+ // return prev + curr
+ return Math.round(prev * 100) / 100 + Math.round(curr * 100) / 100
+ } else {
+ return Math.round(prev * 100) / 100
+ }
+ }, 0)
+
+ sums[index] += ' 鍏�'
+ } else {
+ // sums[index] = 'N/A'
+ sums[index] = ' '
+ }
+ })
+
+ this.$nextTick(() => {
+ this.$refs.tableDataRef.doLayout()
+ this.$refs.tableDataRef2.doLayout()
+ })
+ // (Math.round(sums * 100) / 100).toS
+
+ // console.log(typeof sums)
+ // console.log(sums[11].split(' '))
+ return sums
+ },
+ async getPeopleSalaryReportSearch() {
+ let tempDate = this.form.reportdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+ const data = {
+ wkshopcode: this.form.wkshopcode,
+ wocode: this.form.wocode,
+ partcode: this.form.partcode,
+ partname: this.form.partname,
+ partspec: this.form.partspec,
+ stepname: this.form.stepname,
+ groupcode: this.form.groupcode,
+ compute: this.form.compute,
+ reportname: this.form.reportname,
+ rejectstepcode: this.form.rejectstepcode.join(','),
+ reportdate: tempDate,
+ prop: this.form.prop,
+ order: this.form.order,
+ page: this.form.page,
+ rows: this.form.rows
+
+ }
+
+ const res = await PeopleSalaryReportSearch(data)
+ if (this.form.compute === 'last') {
+ this.tableData = res.data
+ }
+ if (this.form.compute === 'contin') {
+ this.tableData2 = res.data
+ }
+ this.total = res.count
+
+ return { code: res.code }
+ },
+
+ // async getMesOrderStepReportSelectUserGroup() {
+ // const { data: res } = await MesOrderStepReportSelectUserGroup()
+ // this.groupArr = res
+ // },
+ tabClick(val) {
+ this.form.compute = val.label === '鏈亾宸ュ簭' ? 'last' : 'contin'
+ this.getPeopleSalaryReportSearch()
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getPeopleSalaryReportSearch()
+ },
+ async download() {
+ let tempDate = this.form.reportdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+
+ const data = {
+ wkshopcode: this.form.wkshopcode,
+ wocode: this.form.wocode,
+ partcode: this.form.partcode,
+ partname: this.form.partname,
+ partspec: this.form.partspec,
+ stepname: this.form.stepname,
+ groupcode: this.form.groupcode,
+ compute: this.form.compute,
+ reportname: this.form.reportname,
+ reportdate: tempDate
+ }
+
+ const { data: res } = await PeopleSalaryReportExcelSearch(data)
+ window.location.href = res
+ },
+ // 鏌ヨ
+ search() {
+ this.getPeopleSalaryReportSearch()
+ },
+ // 瀵煎叆鎸夐挳
+ upload() {
+ this.shows = true
+ this.$refs.importPickerFunc.newDataFunc()
+ },
+ colos() {
+ this.shows = false
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.wkshopcode = ''
+ this.form.wocode = ''
+ this.form.partcode = ''
+ this.form.partname = ''
+ this.form.partspec = ''
+ this.form.stepname = ''
+ this.form.groupcode = ''
+ this.form.reportname = ''
+ this.form.reportdate = ''
+ this.getPeopleSalaryReportSearch()
+ },
+
+ // 鏂板鎸夐挳
+ add(operation) {
+ this.operation = operation
+ this.dialogVisible = true
+ },
+ // 淇敼鎸夐挳
+ async edit(operation, row) {
+ this.operation = operation
+ this.dialogVisible = true
+
+ const res = await GroupSalaryReportSearchUser({ id: row.id })
+ this.tagArr = res.data.map(r => r.reportname)
+ // this.tagArr = ['妤兼潕淇�', '寮犱笁', '鏉庡洓']
+ // this.$nextTick(() => {
+ // this.dialogForm.OrgCode = row.org_code
+ // this.dialogForm.OrgName = row.org_name
+ // this.dialogForm.SupUnit = row.parent_id
+ // })
+ },
+ // 鍒犻櫎鎸夐挳
+ async del(row) {
+ // this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ // confirmButtonText: '纭畾',
+ // cancelButtonText: '鍙栨秷',
+ // type: 'warning'
+ // }).then(() => {
+ // DeleteOrganization({ orgid: row.code }).then(res => {
+ // if (res.code === '200') {
+ // this.$message.success('鍒犻櫎鎴愬姛!')
+ // if (this.form.page > 1 && this.tableData.length === 1) {
+ // this.form.page--
+ // }
+ // this.getPeopleSalaryReportSearch()
+ // }
+ // })
+ // }).catch(() => {
+ // this.$message.info('宸插彇娑堝垹闄�')
+ // })
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm.OrgType = ''
+ this.dialogForm.OrgCode = ''
+ this.dialogForm.OrgName = ''
+ this.dialogForm.SupUnit = ''
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ const data = {
+ OrganCode: this.dialogForm.OrgCode,
+ OrganName: this.dialogForm.OrgName,
+ OperType: this.operation === 'add' ? 'Add' : 'Update',
+ Operator: getCookie('admin')
+ }
+ // AddUpdateOrganization(data).then(res => {
+ // if (res.code === '200') {
+ // this.$message.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ // this.dialogVisible = false
+ // this.getPeopleSalaryReportSearch()
+ // } else {
+ // this.$message.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ // }
+ // })
+ }
+ })
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 245
+ this.$refs.tableDataRef.doLayout()
+ this.$refs.tableDataRef2.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ }
+ }
+}
+</script>
+
+<style scoped lang="scss">
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+::v-deep .el-range__icon {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-separator {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-input {
+ font-size: 14px;
+}
+
+::v-deep .el-range-separator {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+::v-deep .el-progress-bar__innerText {
+ display: none !important;
+}
+</style>
+<style>
+.el-table .custom-row {
+ background: #f8f8fa;
+}
+</style>
diff --git a/src/views/statistic/repairDetailList.vue b/src/views/statistic/repairDetailList.vue
new file mode 100644
index 0000000..09c6421
--- /dev/null
+++ b/src/views/statistic/repairDetailList.vue
@@ -0,0 +1,614 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup">
+ <el-button v-waves type="primary" icon="el-icon-download" @click="download">瀵煎嚭</el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="杞﹂棿鍚嶇О" style=" display: flex;">
+ <el-select
+ v-model="form.wkshopcode"
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in wkshopcodeArr"
+ :key="item.torg_code"
+ :label="item.torg_name"
+ :value="item.torg_code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="宸ュ崟缂栧彿" style=" display: flex;">
+ <el-input v-model="form.wocode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="浜у搧缂栫爜" style=" display: flex;">
+ <el-input v-model="form.partcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="浜у搧鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.partname" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="瑙勬牸鍨嬪彿" style=" display: flex;">
+ <el-input v-model="form.partspec" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="宸ュ簭鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.stepname" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鎿嶄綔绫诲瀷" style=" display: flex;">
+ <!-- <el-input v-model="form.style" style="width: 200px" placeholder="璇疯緭鍏�" />-->
+ <el-select v-model="form.style" style="width: 200px" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in styleArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="缂洪櫡鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.defectname" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鎶ュ伐浜哄憳" style=" display: flex;">
+ <el-input v-model="form.repairname" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鎶ュ伐鏃堕棿" style="display: flex;align-items: center">
+ <el-date-picker
+ v-model="form.repairdate"
+ type="daterange"
+ range-separator="~"
+ class="timeMini"
+ size="mini"
+ style="width: 200px;display: flex;line-height: 34px;height: 34px;"
+ :clearable="false"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ />
+ <!-- font-size: 14px!important;-->
+ <!-- :picker-options="expireTimeOption"-->
+
+ </el-form-item>
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+80)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+80)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="wo_code"
+ label="宸ュ崟缂栧彿"
+ width="160"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partcode"
+ label="浜у搧缂栫爜"
+ width="160"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partname"
+ label="浜у搧鍚嶇О"
+ width="160"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partspec"
+ label="浜у搧瑙勬牸"
+ width="120"
+ show-tooltip-when-overflow
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.partspec">{{ row.partspec }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="wkshp_name"
+ label="杞﹂棿鍚嶇О"
+ width="130"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="stepcode"
+ label="宸ュ簭缂栫爜"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="stepname"
+ label="宸ュ簭鍚嶇О"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="style"
+ label="鎿嶄綔绫诲瀷"
+ width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="plan_qty"
+ label="浠诲姟鏁伴噺"
+ width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="repair_qty"
+ label="缁翠慨鏁伴噺"
+ width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="laborbad_qty"
+ label="宸ュ簾鏁伴噺"
+ width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="materielbad_qty"
+ label="鏂欏簾鏁伴噺"
+ width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="defect_code"
+ label="缂洪櫡浠g爜"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="defect_name"
+ label="缂洪櫡鍚嶇О"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="lm_user"
+ label="鎿嶄綔浜哄憳"
+ width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="lm_date"
+ label="鎿嶄綔鏃堕棿"
+ width="160"
+ sortable="custom"
+ />
+
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getMaintenanceDetailsReportSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'浜哄憳鏄庣粏'"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <div style="height: 300px;width: 100%;background-color: aliceblue;padding:20px">
+ <el-tag
+ v-for="tag in tagArr"
+ :key="tag.name"
+ type="success"
+ style="margin-right: 15px;min-width: 80px;text-align: center"
+ >
+ {{ tag }}
+ </el-tag>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisible=false">杩� 鍥�</el-button>
+ <!-- <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>-->
+ <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>-->
+ </div>
+ </span>
+ </el-dialog>
+
+ <!--瀵煎叆缁勪欢-->
+ <import-picker
+ ref="importPickerFunc"
+ class="importPickerClass"
+ :shows.sync="shows"
+ :title="title_value"
+ :colos="colos"
+ :code="code"
+ />
+
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import { getCookie } from '@/utils/auth'
+import ImportPicker from '@/components/ImportPicker'
+import { handleDatetime, validateCode } from '@/utils/global'
+import {
+ GroupSalaryReportSearchUser, MaintenanceDetailsReportExcelSearch, MaintenanceDetailsReportSearch
+} from '@/api/ReportManager'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import { PrentOrganizationNoCompany } from '@/api/GeneralBasicData'
+
+export default {
+ name: 'Zzjg',
+ components: {
+ Pagination, ImportPicker
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ wkshopcode: '',
+ wocode: '', // 宸ュ崟缂栧彿
+ partcode: '', // 浜у搧缂栫爜
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 瑙勬牸鍨嬪彿
+ stepname: '', // 宸ュ簭鍚嶇О
+ style: '', // 鎿嶄綔绫诲瀷
+ defectname: '', // 缂洪櫡鍚嶇О
+ repairname: '', // 鎿嶄綔浜哄憳
+ repairdate: '', // 鎿嶄綔鏃堕棿
+ prop: 'partcode', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ styleArr: [
+ { code: 'B', name: '鎶ュ伐' },
+ { code: 'S', name: '鏀舵枡' }
+ ],
+ // groupArr: [],
+ wkshopcodeArr: [],
+ total: 10,
+ tableData: [],
+ dialogVisible: false,
+ tagArr: [], //
+ dialogForm: {
+ OrgType: '',
+ OrgCode: '',
+ OrgName: '',
+ SupUnit: ''// 涓婄骇鍗曚綅
+ },
+ operation: '',
+ dialogFormRules: {
+ OrgType: [
+ { required: true, message: '璇疯緭鍏ラ�夋嫨绫诲瀷', trigger: ['blur', 'change'] }
+ ],
+ OrgCode: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ OrgName: [
+ { required: true, message: '璇疯緭鍏ュ悕绉�', trigger: ['blur', 'change'] }
+ ]
+
+ },
+
+ title_value: '鏁版嵁瀵煎叆 / 鐐规閮ㄤ綅',
+ code: '4',
+ shows: false
+
+ }
+ },
+ watch: {
+ shows() {
+ if (!this.shows) {
+ this.getMaintenanceDetailsReportSearch()
+ }
+ }
+ },
+ created() {
+ this.handleRequest()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ handleRequest() {
+ this.getMaintenanceDetailsReportSearch().then(res => {
+ if (res.code === '200') {
+ this.getPrentOrganizationNoCompany()
+ }
+ })
+ },
+ async getPrentOrganizationNoCompany() {
+ const { data: res } = await PrentOrganizationNoCompany()
+ this.wkshopcodeArr = res
+ },
+ async getMaintenanceDetailsReportSearch() {
+ let tempDate = this.form.repairdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+ const data = {
+ wkshopcode: this.form.wkshopcode,
+ wocode: this.form.wocode,
+ partcode: this.form.partcode,
+ partname: this.form.partname,
+ partspec: this.form.partspec,
+ stepname: this.form.stepname,
+ style: this.form.style,
+ defectname: this.form.defectname,
+ repairname: this.form.repairname,
+ repairdate: tempDate,
+ prop: this.form.prop,
+ order: this.form.order,
+ page: this.form.page,
+ rows: this.form.rows
+ }
+
+ const res = await MaintenanceDetailsReportSearch(data)
+ this.tableData = res.data
+ this.total = res.count
+
+ return { code: res.code }
+ },
+
+ // async getMesOrderStepReportSelectUserGroup() {
+ // const { data: res } = await MesOrderStepReportSelectUserGroup()
+ // this.groupArr = res
+ // },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getMaintenanceDetailsReportSearch()
+ },
+ async download() {
+ let tempDate = this.form.repairdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+
+ const data = {
+ wkshopcode: this.form.wkshopcode,
+ wocode: this.form.wocode,
+ partcode: this.form.partcode,
+ partname: this.form.partname,
+ partspec: this.form.partspec,
+ stepname: this.form.stepname,
+ style: this.form.style,
+ defectname: this.form.defectname,
+ repairname: this.form.repairname,
+ repairdate: tempDate
+ }
+
+ const { data: res } = await MaintenanceDetailsReportExcelSearch(data)
+ window.location.href = res
+ },
+ // 鏌ヨ
+ search() {
+ this.getMaintenanceDetailsReportSearch()
+ },
+ // 瀵煎叆鎸夐挳
+ upload() {
+ this.shows = true
+ this.$refs.importPickerFunc.newDataFunc()
+ },
+ colos() {
+ this.shows = false
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.wkshopcode = ''
+ this.form.wocode = ''
+ this.form.partcode = ''
+ this.form.partname = ''
+ this.form.partspec = ''
+ this.form.stepname = ''
+ this.form.style = ''
+ this.form.defectname = ''
+ this.form.repairname = ''
+ this.form.repairdate = ''
+ this.getMaintenanceDetailsReportSearch()
+ },
+
+ // 鏂板鎸夐挳
+ add(operation) {
+ this.operation = operation
+ this.dialogVisible = true
+ },
+ // 淇敼鎸夐挳
+ async edit(operation, row) {
+ this.operation = operation
+ this.dialogVisible = true
+
+ const res = await GroupSalaryReportSearchUser({ id: row.id })
+ this.tagArr = res.data.map(r => r.repairname)
+ // this.tagArr = ['妤兼潕淇�', '寮犱笁', '鏉庡洓']
+ // this.$nextTick(() => {
+ // this.dialogForm.OrgCode = row.org_code
+ // this.dialogForm.OrgName = row.org_name
+ // this.dialogForm.SupUnit = row.parent_id
+ // })
+ },
+ // 鍒犻櫎鎸夐挳
+ async del(row) {
+ // this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ // confirmButtonText: '纭畾',
+ // cancelButtonText: '鍙栨秷',
+ // type: 'warning'
+ // }).then(() => {
+ // DeleteOrganization({ orgid: row.code }).then(res => {
+ // if (res.code === '200') {
+ // this.$message.success('鍒犻櫎鎴愬姛!')
+ // if (this.form.page > 1 && this.tableData.length === 1) {
+ // this.form.page--
+ // }
+ // this.getMaintenanceDetailsReportSearch()
+ // }
+ // })
+ // }).catch(() => {
+ // this.$message.info('宸插彇娑堝垹闄�')
+ // })
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm.OrgType = ''
+ this.dialogForm.OrgCode = ''
+ this.dialogForm.OrgName = ''
+ this.dialogForm.SupUnit = ''
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ const data = {
+ OrganCode: this.dialogForm.OrgCode,
+ OrganName: this.dialogForm.OrgName,
+ OperType: this.operation === 'add' ? 'Add' : 'Update',
+ Operator: getCookie('admin')
+ }
+ // AddUpdateOrganization(data).then(res => {
+ // if (res.code === '200') {
+ // this.$message.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ // this.dialogVisible = false
+ // this.getMaintenanceDetailsReportSearch()
+ // } else {
+ // this.$message.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ // }
+ // })
+ }
+ })
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 295
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ }
+ }
+}
+</script>
+
+<style scoped lang="scss">
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+::v-deep .el-range__icon {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-separator {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-input {
+ font-size: 14px;
+}
+
+::v-deep .el-range-separator {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+::v-deep .el-progress-bar__innerText{
+ display: none !important;
+}
+</style>
+<style>
+
+.el-table .custom-row {
+ background: #f8f8fa;
+}
+</style>
diff --git a/src/views/statistic/subcontractingOperation.vue b/src/views/statistic/subcontractingOperation.vue
new file mode 100644
index 0000000..1eec12e
--- /dev/null
+++ b/src/views/statistic/subcontractingOperation.vue
@@ -0,0 +1,644 @@
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup">
+ <el-button v-waves type="primary" icon="el-icon-download" @click="download">瀵煎嚭</el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="杞﹂棿鍚嶇О" style=" display: flex;">
+ <el-select
+ v-model="form.wkshopcode"
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in wkshopcodeArr"
+ :key="item.torg_code"
+ :label="item.torg_name"
+ :value="item.torg_code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="宸ュ崟缂栧彿" style=" display: flex;">
+ <el-input v-model="form.wocode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="浜у搧缂栫爜" style=" display: flex;">
+ <el-input v-model="form.partcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="浜у搧鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.partname" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <!-- <el-form-item label="瑙勬牸鍨嬪彿" style=" display: flex;">-->
+ <!-- <el-input v-model="form.partspec" style="width: 200px" placeholder="璇疯緭鍏�" />-->
+ <!-- </el-form-item>-->
+ <el-form-item v-show="isExpandForm" label="宸ュ簭鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.stepname" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="渚涙柟鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.suppername" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鎿嶄綔绫诲瀷" style=" display: flex;">
+ <el-select v-model="form.type" style="width: 200px" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in typeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item
+ v-show="isExpandForm"
+ style="display: flex;align-items: center"
+ :label="form.type==='F'?'鍙戞枡鏃堕棿':'鏀舵枡鏃堕棿'"
+ >
+ <el-date-picker
+ v-model="form.receivdate"
+ type="daterange"
+ :disabled="form.type===''"
+ range-separator="~"
+ class="timeMini"
+ size="mini"
+ style="width: 200px;display: flex;line-height: 34px;height: 34px;"
+ :clearable="false"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ />
+ <!-- font-size: 14px!important;-->
+ <!-- :picker-options="expireTimeOption"-->
+
+ </el-form-item>
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="wo_code"
+ label="宸ュ崟缂栧彿"
+ width="160"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partcode"
+ label="浜у搧缂栫爜"
+ width="160"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partname"
+ label="浜у搧鍚嶇О"
+ width="160"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partspec"
+ label="浜у搧瑙勬牸"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.partspec">{{ row.partspec }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="wkshp_name"
+ label="杞﹂棿鍚嶇О"
+ width="130"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="stepcode"
+ label="宸ュ簭缂栫爜"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="stepname"
+ label="宸ュ簭鍚嶇О"
+ width="110"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="code"
+ label="澶栧崗渚涙柟缂栫爜"
+ width="129"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="name"
+ label="澶栧崗渚涙柟鍚嶇О"
+ width="240"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="style"
+ label="鎿嶄綔绫诲瀷"
+ width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="fqty"
+ label="鍙戞枡鏁伴噺"
+ width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="sqty"
+ label="鏀舵枡鏁伴噺"
+ width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="ng_qty"
+ label="涓嶈壇鏁伴噺"
+ width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="laborbad_qty"
+ label="宸ュ簾鏁伴噺"
+ width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="materielbad_qty"
+ label="鏂欏簾鏁伴噺"
+ width="110"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="out_person"
+ label="鍙戞枡浜�"
+ width="110"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.out_person">{{ row.out_person }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="out_time"
+ label="鍙戞枡鏃堕棿"
+ width="160"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.out_time">{{ row.out_time }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="in_person"
+ label="鏀舵枡浜�"
+ width="110"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.in_person">{{ row.in_person }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="in_time"
+ label="鏀舵枡鏃堕棿"
+ width="160"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.in_time">{{ row.in_time }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <!-- <el-table-column-->
+ <!-- label="鎿嶄綔"-->
+ <!-- width="120"-->
+ <!-- fixed="right"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div class="operationClass">-->
+ <!-- <el-tooltip class="item" effect="dark" content="缂栬緫" placement="top">-->
+ <!-- <i class="el-icon-edit-outline" @click="edit('edit',row)" />-->
+ <!-- </el-tooltip>-->
+ <!-- <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">-->
+ <!-- <i class="el-icon-delete" @click="del(row)" />-->
+ <!-- </el-tooltip>-->
+ <!-- </div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getOutSourceReportSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'缂栬緫'"
+ :visible.sync="dialogVisible"
+ width="800px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
+ <el-form-item label="缁勭粐缂栫爜" prop="OrgCode">
+ <el-input v-model="dialogForm.OrgCode" :disabled="operation!=='add'" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="缁勭粐鍚嶇О" prop="OrgName">
+ <el-input v-model="dialogForm.OrgName" style="width: 200px" />
+ </el-form-item>
+
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ <!--瀵煎叆缁勪欢-->
+ <import-picker
+ ref="importPickerFunc"
+ class="importPickerClass"
+ :shows.sync="shows"
+ :title="title_value"
+ :colos="colos"
+ :code="code"
+ />
+
+ </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import { getCookie } from '@/utils/auth'
+import ImportPicker from '@/components/ImportPicker'
+import { handleDatetime, validateCode } from '@/utils/global'
+import { OutSourceReportExcelSearch, OutSourceReportSearch } from '@/api/ReportManager'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import { PrentOrganizationNoCompany } from '@/api/GeneralBasicData'
+
+export default {
+ name: 'Zzjg',
+ components: {
+ Pagination, ImportPicker
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ wkshopcode: '',
+ wocode: '', // 宸ュ崟缂栧彿
+ partcode: '', // 浜у搧缂栫爜
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 瑙勬牸鍨嬪彿
+ stepname: '', // 宸ュ簭鍚嶇О
+ suppername: '', // 渚涙柟鍚嶇О
+ type: '', // 鎿嶄綔绫诲瀷
+ receivdate: '', // 鏀舵枡鏃堕棿
+ prop: 'out_time', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ typeArr: [
+ { code: 'F', name: '鍙戞枡' },
+ { code: 'S', name: '鏀舵枡' }
+ ],
+ wkshopcodeArr: [],
+ total: 10,
+ tableData: [],
+ dialogVisible: false,
+ dialogForm: {
+ OrgType: '',
+ OrgCode: '',
+ OrgName: '',
+ SupUnit: ''// 涓婄骇鍗曚綅
+ },
+ operation: '',
+ dialogFormRules: {
+ OrgType: [
+ { required: true, message: '璇疯緭鍏ラ�夋嫨绫诲瀷', trigger: ['blur', 'change'] }
+ ],
+ OrgCode: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ OrgName: [
+ { required: true, message: '璇疯緭鍏ュ悕绉�', trigger: ['blur', 'change'] }
+ ]
+
+ },
+
+ title_value: '鏁版嵁瀵煎叆 / 鐐规閮ㄤ綅',
+ code: '4',
+ shows: false
+
+ }
+ },
+ watch: {
+ shows() {
+ if (!this.shows) {
+ this.getOutSourceReportSearch()
+ }
+ }
+ },
+ created() {
+ this.getOutSourceReportSearch()
+ this.getPrentOrganizationNoCompany()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ async getPrentOrganizationNoCompany() {
+ const { data: res } = await PrentOrganizationNoCompany()
+ this.wkshopcodeArr = res
+ },
+ async getOutSourceReportSearch() {
+ let tempDate = this.form.receivdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+
+ const data = {
+ wkshopcode: this.form.wkshopcode,
+ wocode: this.form.wocode,
+ partcode: this.form.partcode,
+ partname: this.form.partname,
+ partspec: this.form.partspec,
+ stepname: this.form.stepname,
+ suppername: this.form.suppername,
+ type: this.form.type,
+ receivdate: tempDate,
+ prop: this.form.prop,
+ order: this.form.order,
+ page: this.form.page,
+ rows: this.form.rows
+
+ }
+ // console.log(data, 1)
+ const res = await OutSourceReportSearch(data)
+ this.tableData = res.data
+ this.total = res.count
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getOutSourceReportSearch()
+ },
+ async download() {
+ let tempDate = this.form.receivdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+
+ const data = {
+ wkshopcode: this.form.wkshopcode,
+ wocode: this.form.wocode,
+ partcode: this.form.partcode,
+ partname: this.form.partname,
+ partspec: this.form.partspec,
+ stepname: this.form.stepname,
+ suppername: this.form.suppername,
+ type: this.form.type,
+ receivdate: tempDate
+ }
+
+ const { data: res } = await OutSourceReportExcelSearch(data)
+ window.location.href = res
+ },
+ // 鏌ヨ
+ search() {
+ this.getOutSourceReportSearch()
+ },
+ // 瀵煎叆鎸夐挳
+ upload() {
+ this.shows = true
+ this.$refs.importPickerFunc.newDataFunc()
+ },
+ colos() {
+ this.shows = false
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.wkshopcode = ''
+ this.form.wocode = ''
+ this.form.partcode = ''
+ this.form.partname = ''
+ this.form.partspec = ''
+ this.form.stepname = ''
+ this.form.suppername = ''
+ this.form.type = ''
+ this.form.receivdate = ''
+ this.getOutSourceReportSearch()
+ },
+
+ // 鏂板鎸夐挳
+ add(operation) {
+ this.operation = operation
+ this.dialogVisible = true
+ },
+ // 淇敼鎸夐挳
+ edit(operation, row) {
+ this.operation = operation
+ this.dialogVisible = true
+
+ this.$nextTick(() => {
+ this.dialogForm.OrgCode = row.org_code
+ this.dialogForm.OrgName = row.org_name
+ this.dialogForm.SupUnit = row.parent_id
+ })
+ },
+ // 鍒犻櫎鎸夐挳
+ async del(row) {
+ // this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ // confirmButtonText: '纭畾',
+ // cancelButtonText: '鍙栨秷',
+ // type: 'warning'
+ // }).then(() => {
+ // DeleteOrganization({ orgid: row.code }).then(res => {
+ // if (res.code === '200') {
+ // this.$message.success('鍒犻櫎鎴愬姛!')
+ // if (this.form.page > 1 && this.tableData.length === 1) {
+ // this.form.page--
+ // }
+ // this.getOutSourceReportSearch()
+ // }
+ // })
+ // }).catch(() => {
+ // this.$message.info('宸插彇娑堝垹闄�')
+ // })
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm.OrgType = ''
+ this.dialogForm.OrgCode = ''
+ this.dialogForm.OrgName = ''
+ this.dialogForm.SupUnit = ''
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ const data = {
+ OrganCode: this.dialogForm.OrgCode,
+ OrganName: this.dialogForm.OrgName,
+ OperType: this.operation === 'add' ? 'Add' : 'Update',
+ Operator: getCookie('admin')
+ }
+ // AddUpdateOrganization(data).then(res => {
+ // if (res.code === '200') {
+ // this.$message.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+ // this.dialogVisible = false
+ // this.getOutSourceReportSearch()
+ // } else {
+ // this.$message.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+ // }
+ // })
+ }
+ })
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 255
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ }
+ }
+}
+</script>
+
+<style scoped lang="scss">
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+::v-deep .el-range__icon {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-separator {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-input {
+ font-size: 14px;
+}
+
+::v-deep .el-range-separator {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+::v-deep .el-progress-bar__innerText{
+ display: none !important;
+}
+</style>
+<style>
+
+.el-table .custom-row {
+ background: #f8f8fa;
+}
+</style>
diff --git a/src/views/statistic/workOrderProcess.vue b/src/views/statistic/workOrderProcess.vue
index 7d95aec..b517db9 100644
--- a/src/views/statistic/workOrderProcess.vue
+++ b/src/views/statistic/workOrderProcess.vue
@@ -1,11 +1,444 @@
-<template />
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
+ <el-button v-waves type="primary" icon="el-icon-download" @click="download">瀵煎嚭</el-button>
+ <!-- <el-button v-waves icon="el-icon-download" @click="upload">瀵煎叆</el-button>-->
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="杞﹂棿鍚嶇О" style=" display: flex;">
+ <el-select
+ v-model="form.wkshopcode"
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in wkshopcodeArr"
+ :key="item.torg_code"
+ :label="item.torg_name"
+ :value="item.torg_code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="宸ュ崟鐘舵��" style=" display: flex;">
+ <el-select v-model="form.status" style="width: 200px" placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in statusArr"
+ :key="item.value"
+ :label="item.label"
+ :value="item.value"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="宸ュ崟缂栧彿" style=" display: flex;">
+ <el-input v-model="form.wocode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+
+ <!-- <el-form-item label="杞﹂棿鍚嶇О" style=" display: flex;">-->
+ <!-- <el-input v-model="form.wkshopname" placeholder="璇疯緭鍏�" style="width: 200px" />-->
+ <!-- </el-form-item>-->
+ <el-form-item label="浜у搧缂栫爜" style=" display: flex;">
+ <el-input v-model="form.partcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="浜у搧鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.partname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="瑙勬牸鍨嬪彿" style=" display: flex;">
+ <el-input v-model="form.partspec" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鍗曟嵁鏃ユ湡" style="display: flex;align-items: center">
+ <el-date-picker
+ v-model="form.lm_date"
+ type="daterange"
+ range-separator="~"
+ class="timeMini"
+ size="mini"
+ style="width: 200px;display: flex;line-height: 34px;height: 34px;"
+ :clearable="false"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ />
+ </el-form-item>
+ </div>
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ >
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="lm_date"
+ label="鍗曟嵁鏃ユ湡"
+ width="105"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.lm_date">{{ row.lm_date.substring(0, 11) }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="status"
+ label="宸ュ崟鐘舵��"
+ width="105"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="wo_code"
+ label="宸ュ崟缂栧彿"
+ width="155"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partcode"
+ label="浜у搧缂栫爜"
+ width="105"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partname"
+ label="浜у搧鍚嶇О"
+ width="155"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partpesc"
+ label="浜у搧瑙勬牸"
+ width="105"
+ show-tooltip-when-overflow
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.partpesc">{{ row.partpesc }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <!-- <el-table-column-->
+ <!-- prop="wkshp_code"-->
+ <!-- label="杞﹂棿缂栫爜"-->
+ <!-- width="130"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- sortable="custom"-->
+ <!-- />-->
+ <el-table-column
+ prop="wkshp_name"
+ label="杞﹂棿鍚嶇О"
+ width="130"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="plan_qty"
+ label="浠诲姟鏁伴噺"
+ width="105"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="concat_name"
+ label="鐢熶骇杩涘害"
+ min-width="521"
+ sortable="custom"
+ >
+ <!-- show-tooltip-when-overflow-->
+
+ <template slot-scope="{row}">
+ <div style="min-width: 900px;display: flex;overflow-x: auto;overflow-y: hidden">
+ <div
+ v-for="item in row.concat_name.split(',')"
+ :key="item+row.wo_code"
+ style="display: flex;align-items: center;"
+ >
+ <!-- padding:0px 0px 10px 0px;-->
+
+ <div style="position: relative;display: flex;flex-direction: column;width: 80px;text-align: center;align-items: center;margin-left:10px">
+ <div style="width: 80px;" class="ellipsis">{{ item.split('/')[0] }}</div>
+ <el-progress
+ :text-inside="true"
+ :stroke-width="20"
+ color="#2FD04F"
+ define-back-color="rgba(144,147,153,0.5)"
+ :percentage="parseFloat((parseFloat(item.split('/')[1])*100/parseFloat(row.plan_qty)).toFixed(2))"
+ style="width: 80px;margin: 0 2px"
+ />
+
+ <div style="position: absolute;top:22px;">{{ parseFloat(item.split('/')[1]) }}/{{ row.plan_qty }}</div>
+
+ </div>
+
+ </div>
+ </div>
+
+ </template>
+ </el-table-column>
+
+ <!-- <el-table-column-->
+ <!-- label="鎿嶄綔"-->
+ <!-- width="120"-->
+ <!-- fixed="right"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div class="operationClass">-->
+ <!-- <el-tooltip class="item" effect="dark" content="缂栬緫" placement="top">-->
+ <!-- <i class="el-icon-edit-outline" @click="edit('edit',row)" />-->
+ <!-- </el-tooltip>-->
+ <!-- <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">-->
+ <!-- <i class="el-icon-delete" @click="del(row)" />-->
+ <!-- </el-tooltip>-->
+ <!-- </div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getProductionScheduleReportSearch"
+ />
+ </div>
+
+ </div>
+</template>
<script>
+import Pagination from '@/components/Pagination'
+import { handleDatetime } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import {
+ ProductionScheduleReportExcelSearch,
+ ProductionScheduleReportSearch
+} from '@/api/ReportManager'
+import { PrentOrganizationNoCompany } from '@/api/GeneralBasicData'
+
export default {
- name: 'WorkOrderProcess'
+ name: 'Zzjg',
+ components: {
+ Pagination
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ status: '', // 宸ュ崟鐘舵��
+ wocode: '', // 宸ュ崟缂栧彿
+ wkshopcode: '', // 宸ヨ壓璺嚎缂栫爜
+ wkshopname: '', // 宸ヨ壓璺嚎鍚嶇О
+ partcode: '', // 浜у搧缂栫爜
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 瑙勬牸鍨嬪彿
+ lm_date: '', // 鍗曟嵁鏃ユ湡
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ statusArr: [
+ { label: '鏈紑濮�', value: 'NOSTART' },
+ { label: '鎵ц涓�', value: 'START' },
+ { label: '宸插畬鎴�', value: 'CLOSED' }
+ ],
+ wkshopcodeArr: [],
+
+ total: 10,
+ tableData: []
+
+ }
+ },
+
+ created() {
+ this.getProductionScheduleReportSearch()
+ this.getPrentOrganizationNoCompany()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ async getPrentOrganizationNoCompany() {
+ const { data: res } = await PrentOrganizationNoCompany()
+ this.wkshopcodeArr = res
+ },
+ async getProductionScheduleReportSearch() {
+ let tempDate = this.form.lm_date
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+ const data = {
+ status: this.form.status,
+ wocode: this.form.wocode,
+ wkshopcode: this.form.wkshopcode,
+ wkshopname: this.form.wkshopname,
+ partcode: this.form.partcode,
+ partname: this.form.partname,
+ partspec: this.form.partspec,
+ lm_date: tempDate,
+ prop: this.form.prop,
+ order: this.form.order,
+ page: this.form.page,
+ rows: this.form.rows
+ }
+
+ const res = await ProductionScheduleReportSearch(data)
+ this.tableData = res.data
+ this.total = res.count
+ },
+
+ // 瀵煎嚭
+ async download() {
+ let tempDate = this.form.lm_date
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+ const data = {
+ status: this.form.status,
+ wocode: this.form.wocode,
+ wkshopcode: this.form.wkshopcode,
+ wkshopname: this.form.wkshopname,
+ partcode: this.form.partcode,
+ partname: this.form.partname,
+ partspec: this.form.partspec,
+ lm_date: tempDate
+ }
+
+ const res = await ProductionScheduleReportExcelSearch(data)
+ // console.log(res)
+ window.location.href = res.data
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getProductionScheduleReportSearch()
+ },
+ // 鏌ヨ
+ search() {
+ this.getProductionScheduleReportSearch()
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.status = ''
+ this.form.wocode = ''
+ this.form.wkshopcode = ''
+ this.form.wkshopname = ''
+ this.form.partcode = ''
+ this.form.partname = ''
+ this.form.partspec = ''
+ this.form.lm_date = ''
+ this.getProductionScheduleReportSearch()
+ },
+
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 255
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ }
+ }
}
</script>
+<style scoped lang="scss">
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
-<style scoped>
+::v-deep .el-range__icon {
+ line-height: 28px !important;
+}
+::v-deep .el-range-separator {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-input {
+ font-size: 14px;
+}
+
+::v-deep .el-range-separator {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+::v-deep .el-progress-bar__innerText{
+ display: none !important;
+}
</style>
diff --git a/src/views/systemSetting/dataImport.vue b/src/views/systemSetting/dataImport.vue
new file mode 100644
index 0000000..c4c8aa5
--- /dev/null
+++ b/src/views/systemSetting/dataImport.vue
@@ -0,0 +1,2308 @@
+<template>
+ <div class="" :style="{height:mainHeight+'px'}">
+
+ <div style="display: flex;margin: 20px 10px;align-items: center">
+
+ <el-select
+ v-model="excelCode"
+ style="width:200px"
+ placeholder="璇烽�夋嫨妯℃澘鏂囦欢"
+ :popper-append-to-body="false"
+ clearable
+ >
+ <el-option
+ v-for="item in excelArr"
+ :key="item.FileCode"
+ :label="item.FileName"
+ :value="item.FileCode"
+ />
+ </el-select>
+
+ <el-button
+ type="primary"
+ style="margin-left: 20px"
+ :disabled="excelCode===''"
+ icon="el-icon-download"
+ waves
+ @click="getExcel"
+ >涓嬭浇妯℃澘
+ </el-button>
+
+ <upload-excel-component
+ :on-success="handleSuccess"
+ :before-upload="beforeUpload"
+ :disabled="excelCode===''"
+ />
+
+ <el-button
+ type="info"
+ style="margin-left: 20px"
+ :disabled="excelCode===''"
+ icon="el-icon-refresh"
+ waves
+ @click="reset"
+ >閲嶇疆
+ </el-button>
+
+ <el-button
+ type="warning"
+ style="margin-left: 20px"
+ icon="el-icon-circle-plus-outline"
+ :disabled="excelCode===''||tableData.length===0"
+ waves
+ @click="addRow"
+ >鏂板琛�
+ </el-button>
+
+ <el-button
+ type="success"
+ style="margin-left: 20px"
+ :disabled="excelCode===''||tableData.length===0"
+ icon="el-icon-thumb"
+ waves
+ @click="submit"
+ >鎻愪氦鏁版嵁
+ </el-button>
+ </div>
+
+ <div
+ v-if="sheetName.length>0"
+ style="margin: 10px"
+ >
+
+ <el-tabs v-model="activeName" type="border-card">
+ <el-tab-pane
+ v-for="(i,j) in sheetName"
+ :key="i+j"
+ :label="i"
+ >
+ <el-table
+ v-if="tableData[j].length>0"
+ :ref="'tableDataRef'+i"
+ :data="tableData[j]"
+ border
+ :height="(mainHeight-180)+'px'"
+ :header-cell-style="headerCellStyle"
+ :cell-style="cellStyle"
+ :style="{width: 100+'%',height:(mainHeight-180)+'px',zIndex:10}"
+ style="overflow-y: scroll;"
+ highlight-current-row
+ >
+
+ <el-table-column
+ label="搴忓彿"
+ width="55"
+ fixed
+ align="center"
+ :render-header="indexRender"
+ >
+ <template slot-scope="scope">
+ {{ scope.$index + 1 }}
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ v-for="item of tableHeader[j]"
+ :key="item"
+ :prop="item"
+ :label="item"
+ align="center"
+ :render-header="addRedStar"
+ min-width="220"
+ >
+ <template slot-scope="{row}">
+
+ <div
+ v-if="item.indexOf('缂栧彿(鍞竴)')!==-1||
+ item.indexOf('鐢ㄦ埛濮撳悕')!==-1||
+ item.indexOf('瀵嗙爜')!==-1||
+ item.indexOf('鎵嬫満鍙�')!==-1||
+ item.indexOf('閭')!==-1||
+ item.indexOf('鍚嶇О')!==-1||
+ item.indexOf('鎻忚堪')!==-1||
+ item.indexOf('涓婄骇缂栫爜')!==-1||
+ item.indexOf('绫诲瀷缂栫爜')!==-1||
+ item.indexOf('鑱旂郴浜�')!==-1||
+ item.indexOf('鑱旂郴鏂瑰紡')!==-1||
+ item.indexOf('鍦板潃')!==-1||
+ item.indexOf('鎵�灞炰粨搴撶紪鐮�')!==-1||
+ item.indexOf('涓婄骇搴撲綅缂栫爜')!==-1||
+ item.indexOf('瑙勬牸鍨嬪彿')!==-1||
+ item.indexOf('瀛樿揣鍒嗙被')!==-1||
+ item.indexOf('浠撳簱缂栫爜')!==-1||
+ item.indexOf('棰勮瀵垮懡')!==-1||
+ item.indexOf('鍓╀綑瀵垮懡')!==-1||
+ item.indexOf('妯″叿缂栫爜')!==-1||
+ item.indexOf('浜у搧缂栫爜')!==-1||
+
+ item.indexOf('鏍囧噯缂栧彿')!==-1||
+ item.indexOf('椤瑰簭鍙�')!==-1||
+ item.indexOf('椤硅姹�')!==-1||
+
+ item.indexOf('璁¢噺鍗曚綅/缁勫悕绉�')!==-1||
+
+ item.indexOf('淇濆吇閮ㄤ綅瑕佹眰')!==-1||
+ item.indexOf('淇濆吇椤圭洰瑕佹眰')!==-1||
+ item.indexOf('鐐规閮ㄤ綅瑕佹眰')!==-1||
+ item.indexOf('鐐规椤圭洰瑕佹眰')!==-1||
+
+ item.indexOf('浠撳簱缂栫爜')!==-1||
+ item.indexOf('搴撲綅缂栫爜')!==-1
+ "
+ >
+ <el-input v-model="row[item]" placeholder="璇疯緭鍏�" />
+ </div>
+ <div v-else-if="item.indexOf('鐘舵��')!==-1">
+ <el-select
+ v-model="row[item]"
+ placeholder="璇烽�夋嫨"
+ filterable
+ style="width:100%"
+ clearable
+ >
+ <el-option
+ v-for="item in statusArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </div>
+ <div v-else-if="item.indexOf('璁¢噺鏂瑰紡')!==-1">
+ <el-select
+ v-model="row[item]"
+ placeholder="璇烽�夋嫨"
+ filterable
+ style="width:100%"
+ clearable
+ >
+ <el-option
+ v-for="item in meterMethodArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </div>
+ <div v-else-if="item.indexOf('宸ュ簭绫诲瀷')!==-1">
+ <el-select
+ v-model="row[item]"
+ placeholder="璇烽�夋嫨"
+ filterable
+ style="width:100%"
+ clearable
+ >
+ <el-option
+ v-for="item in stepTypeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </div>
+ <div
+ v-else-if="
+ item.indexOf('鐐规绠℃帶')!==-1||
+ item.indexOf('閫夋嫨鎵爜')!==-1||
+ item.indexOf('鏄惁鎵爜')!==-1||
+ item.indexOf('搴撲綅绠$悊')!==-1||
+ item.indexOf('鏄惁澶栬喘')!==-1||
+ item.indexOf('鏄惁閿�鍞�')!==-1||
+ item.indexOf('鏄惁鑷埗')!==-1||
+ item.indexOf('鏄惁鐢熶骇娑堣��')!==-1||
+ item.indexOf('鏄惁濮斿')!==-1
+ "
+ >
+ <el-select
+ v-model="row[item]"
+ placeholder="璇烽�夋嫨"
+ filterable
+ style="width:100%"
+ clearable
+ >
+ <el-option
+ v-for="item in isYesOrNo"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </div>
+ <div
+ v-else-if="item.indexOf('鐐规鍛ㄦ湡')!==-1||
+ item.indexOf('淇濆吇鍛ㄦ湡')!==-1"
+ >
+ <el-select
+ v-model="row[item]"
+ style="width: 100%;"
+ placeholder="璇烽�夋嫨"
+ >
+
+ <el-option
+ v-for="item in cycleArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </div>
+ <div v-else-if="item.indexOf('鎵�灞炲矖浣嶇紪鐮�')!==-1">
+ <el-select
+ v-model="row[item]"
+ style="width: 100%;"
+ placeholder="璇烽�夋嫨"
+ multiple
+ filterable
+ collapse-tags
+ clearable
+ >
+
+ <el-option
+ v-for="item in postArr"
+ :key="item.postcode"
+ :label="item.postname"
+ :value="item.postcode"
+ />
+ </el-select>
+ </div>
+ <div v-else-if="item.indexOf('鎵�灞炶鑹茬紪鐮�')!==-1">
+ <el-select
+ v-model="row[item]"
+ style="width: 100%;"
+ placeholder="璇烽�夋嫨"
+ multiple
+ filterable
+ collapse-tags
+ clearable
+ >
+ <el-option
+ v-for="item in roleArr"
+ :key="item.rolecode"
+ :label="item.rolename"
+ :value="item.rolecode"
+ />
+ </el-select>
+ </div>
+ <div v-else-if="item.indexOf('鎵�灞炵彮缁勭紪鐮�')!==-1">
+ <el-select
+ v-model="row[item]"
+ style="width: 100%;"
+ placeholder="璇烽�夋嫨"
+ collapse-tags
+ multiple
+ filterable
+ clearable
+ >
+ <el-option
+ v-for="item in groupArr"
+ :key="item.usergroupcode"
+ :label="item.usergroupname"
+ :value="item.usergroupcode"
+ />
+ </el-select>
+ </div>
+ <div v-else-if="item.indexOf('鎵�灞炵粍缁囩紪鐮�')!==-1">
+ <el-cascader
+ ref="cascader"
+ v-model="row[item]"
+ :options="orgOptions"
+ filterable
+ :props="defaultProps"
+ :show-all-levels="false"
+ />
+ </div>
+ <div v-else> {{ row[item] }}</div>
+ </template>
+ </el-table-column>
+
+ <el-table-column
+ label="鎿嶄綔"
+ width="55"
+ :render-header="operationRender"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass" style="padding-left: 10px">
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+ <i
+ class="el-icon-delete"
+ :style="{color:$store.state.settings.theme}"
+ @click="delRow(row)"
+ />
+ </el-tooltip>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </el-tab-pane>
+ </el-tabs>
+
+ </div>
+
+ <el-empty v-if="tableData.length===0" :image-size="500">
+ <el-button type="text">1.璇烽�夋嫨妯℃澘涓嬭浇</el-button>
+ <el-button type="text" style="margin-left: 0;">2.璇峰~鍐欐ā鏉挎暟鎹�</el-button>
+ <el-button type="text" style="margin-left: 0;">3.璇蜂笂浼犳枃浠舵彁浜�</el-button>
+ </el-empty>
+
+ <el-dialog
+ v-el-drag-dialog
+ title="澶辫触鍘熷洜"
+ :visible.sync="dialogVisible"
+ width="1300px"
+ :close-on-click-modal="false"
+ top="15vh"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <div class="">
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="dialogTableData"
+ :height="400"
+ border
+ row-class-name="custom-row"
+ :style="{width: 100+'%',height: '400px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ >
+ <el-table-column
+ type="index"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="ErrorField"
+ label="閿欒瀛楁"
+ width="200"
+ show-overflow-tooltip
+ />
+ <el-table-column
+ prop="ErrorCont"
+ show-overflow-tooltip
+ label="閿欒鍘熷洜"
+ />
+ </el-table>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisible=false">杩� 鍥�</el-button>
+ <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>-->
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
+
+<script>
+import UploadExcelComponent from '@/components/UploadExcel/index.vue'
+import { DownLoadExcel, ExcelModelCheck, ExcelModelData } from '@/api/Excel'
+import { GroupsPermissions, PostPermissions, PrentOrganization, RolePermissions } from '@/api/GeneralBasicData'
+import { nanoid } from 'nanoid'
+import arrayToTree from 'array-to-tree'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+
+export default {
+ name: 'DataImport',
+ components: { UploadExcelComponent },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mainHeight: window.innerHeight - 85,
+
+ tableData: [],
+ tableHeader: [],
+ sheetName: [],
+
+ excelCode: '',
+ excelArr: [],
+
+ statusArr: [],
+ isYesOrNo: [
+ { code: '1', name: '鏄�' },
+ { code: '0', name: '鍚�' }
+ ],
+ stepTypeArr: [
+ { code: 'Z', name: '鑷埗' },
+ { code: 'W', name: '澶栧崗' }
+ ],
+ orgArr: [], // 缁勭粐
+ orgOptions: [],
+ defaultProps: {
+ checkStrictly: true,
+ expandTrigger: 'hover',
+ value: 'torg_code',
+ label: 'torg_name'
+ },
+ orgDefaultProps: {
+ multiple: true,
+ expandTrigger: 'hover',
+ value: 'torg_code',
+ label: 'torg_name'
+ },
+ postArr: [], // 宀椾綅
+ roleArr: [], // 瑙掕壊
+ groupArr: [], // 鐝粍
+
+ dialogVisible: false,
+ dialogTableData: [],
+
+ meterMethodArr: [
+ { code: 'S', name: '鍗曡閲�' },
+ { code: 'M', name: '澶氳閲�' }
+ ],
+
+ cycleArr: [
+ { code: '骞�', name: '骞�' },
+ { code: '瀛�', name: '瀛�' },
+ { code: '鏈�', name: '鏈�' },
+ { code: '鍛�', name: '鍛�' },
+ { code: '鏃�', name: '鏃�' }
+ ],
+
+ activeName: '0'// tab閫変腑鍊�
+
+ }
+ },
+ mounted() {
+ this.getExcelModelData()
+
+ this.getSelectArr()
+ window.addEventListener('resize', this.getHeight)
+ },
+ methods: { // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+
+ // this.$nextTick(() => {
+ // this.$refs.tableDataRef.doLayout()
+ // })
+ })
+ },
+ async beforeUpload(file) {
+ const isLt1M = file.size / 1024 / 1024 < 1
+ if (isLt1M) {
+ return true
+ }
+
+ this.$message({
+ message: '璇蜂笉瑕佷笂浼犲ぇ浜�1鍏嗙殑鏂囦欢銆�',
+ type: 'warning'
+ })
+ return false
+ },
+ // excel鎴愬姛鍚庣殑鍥炶皟
+ async handleSuccess({ results, header, sheetName }) {
+ if (results[0].length === 0) {
+ return this.$message.info('琛ㄦ牸鏁版嵁涓嶈兘涓虹┖锛�')
+ }
+ this.tableData = results
+ this.tableHeader = header
+ this.sheetName = sheetName
+
+ this.activeName = '0'
+
+ // 浜哄憳绠$悊瀵煎叆鍒ゆ柇
+ if (this.sheetName.indexOf('浜哄憳绠$悊') !== -1) {
+ this.handlePersonListUploadTemplate(true)
+ }
+
+ if (this.sheetName.indexOf('瑙掕壊绠$悊') !== -1 || this.sheetName.indexOf('鐝粍绠$悊') !== -1 ||
+ this.sheetName.indexOf('宀椾綅绠$悊') !== -1
+ ) {
+ this.statusArr = [
+ { code: 'Y', name: '姝e父' },
+ { code: 'N', name: '鍋滅敤' }
+ ]
+ this.tableData[0].forEach(j => {
+ j['*鐘舵��'] = j['*鐘舵��'] ? this.statusArr.find(e => e.name === j['*鐘舵��']).code : ''
+ j.uuid = nanoid()
+ })
+ }
+
+ if (this.sheetName.indexOf('寰�鏉ュ崟浣�') !== -1) {
+ this.statusArr = [
+ { code: '0', name: '姝e父' },
+ { code: '1', name: '鍋滅敤' }
+ ]
+ this.tableData[0].forEach(j => {
+ j.uuid = nanoid()
+ })
+ this.tableData[1].forEach(j => {
+ j['*鐘舵��'] = j['*鐘舵��'] ? this.statusArr.find(e => e.name === j['*鐘舵��']).code : ''
+ j.uuid = nanoid()
+ })
+ }
+
+ if (this.sheetName.indexOf('浠撳簱璁剧疆') !== -1) {
+ this.statusArr = [
+ { code: '0', name: '姝e父' },
+ { code: '1', name: '鍋滅敤' }
+ ]
+ this.tableData[0].forEach(j => {
+ j['*鐘舵��'] = j['*鐘舵��'] ? this.statusArr.find(e => e.name === j['*鐘舵��']).code : ''
+ j['*搴撲綅绠$悊'] = j['*搴撲綅绠$悊'] ? this.isYesOrNo.find(e => e.name === j['*搴撲綅绠$悊']).code : ''
+ j.uuid = nanoid()
+ })
+ }
+
+ if (this.sheetName.indexOf('搴撲綅璁剧疆') !== -1) {
+ this.statusArr = [
+ { code: '0', name: '姝e父' },
+ { code: '1', name: '鍋滅敤' }
+ ]
+ this.tableData[0].forEach(j => {
+ j['*鐘舵��'] = j['*鐘舵��'] ? this.statusArr.find(e => e.name === j['*鐘舵��']).code : ''
+ j.uuid = nanoid()
+ })
+ }
+
+ if (this.sheetName.indexOf('瀛樿揣鍒嗙被') !== -1) {
+ this.statusArr = [
+ { code: '0', name: '姝e父' },
+ { code: '1', name: '鍋滅敤' }
+ ]
+ this.tableData[0].forEach(j => {
+ j.uuid = nanoid()
+ })
+ this.tableData[1].forEach(j => {
+ j['*鐘舵��'] = j['*鐘舵��'] ? this.statusArr.find(e => e.name === j['*鐘舵��']).code : ''
+ j['*璁¢噺鏂瑰紡'] = j['*璁¢噺鏂瑰紡'] ? this.meterMethodArr.find(e => e.name === j['*璁¢噺鏂瑰紡']).code : '0'
+ j['鏄惁澶栬喘'] = j['鏄惁澶栬喘'] ? this.isYesOrNo.find(e => e.name === j['鏄惁澶栬喘']).code : '0'
+ j['鏄惁閿�鍞�'] = j['鏄惁閿�鍞�'] ? this.isYesOrNo.find(e => e.name === j['鏄惁閿�鍞�']).code : '0'
+ j['鏄惁鑷埗'] = j['鏄惁鑷埗'] ? this.isYesOrNo.find(e => e.name === j['鏄惁鑷埗']).code : '0'
+ j['鏄惁鐢熶骇娑堣��'] = j['鏄惁鐢熶骇娑堣��'] ? this.isYesOrNo.find(e => e.name === j['鏄惁鐢熶骇娑堣��']).code : '0'
+ j['鏄惁濮斿'] = j['鏄惁濮斿'] ? this.isYesOrNo.find(e => e.name === j['鏄惁濮斿']).code : '0'
+ j.uuid = nanoid()
+ })
+ }
+ if (this.sheetName.indexOf('璁惧绫诲瀷') !== -1) {
+ this.statusArr = [
+ { code: 'Y', name: '姝e父' },
+ { code: 'N', name: '鍋滅敤' }
+ ]
+ const orgArr = this.orgArr.map(i => i.torg_code)
+
+ this.tableData[0].forEach(j => {
+ j.uuid = nanoid()
+ })
+ this.tableData[1].forEach(j => {
+ j['*鐘舵��'] = j['*鐘舵��'] ? this.statusArr.find(e => e.name === j['*鐘舵��']).code : ''
+ j['*鎵�灞炵粍缁囩紪鐮�'] = j['*鎵�灞炵粍缁囩紪鐮�'] ? (orgArr.includes(j['*鎵�灞炵粍缁囩紪鐮�']) ? this.findParent([], j['*鎵�灞炵粍缁囩紪鐮�'], this.orgOptions).reverse() : '') : ''
+ j.uuid = nanoid()
+ })
+ }
+
+ if (this.sheetName.indexOf('宸ュ簭璁剧疆') !== -1) {
+ this.statusArr = [
+ { code: 'Y', name: '姝e父' },
+ { code: 'N', name: '鍋滅敤' }
+ ]
+ this.tableData[0].forEach(j => {
+ j['*鐘舵��'] = j['*鐘舵��'] ? this.statusArr.find(e => e.name === j['*鐘舵��']).code : ''
+ j['*宸ュ簭绫诲瀷'] = j['*宸ュ簭绫诲瀷'] ? this.stepTypeArr.find(e => e.name === j['*宸ュ簭绫诲瀷']).code : ''
+ j.uuid = nanoid()
+ })
+ }
+
+ if (this.sheetName.indexOf('妯″叿娓呭崟') !== -1) {
+ this.statusArr = [
+ { code: 'Y', name: '姝e父' },
+ { code: 'N', name: '鏁呴殰' }
+ ]
+
+ this.tableData[0].forEach(j => {
+ j.uuid = nanoid()
+ j['*鐘舵��'] = j['*鐘舵��'] ? this.statusArr.find(e => e.name === j['*鐘舵��']).code : ''
+ })
+ this.tableData[1].forEach(j => {
+ j.uuid = nanoid()
+ })
+ }
+
+ if (this.sheetName.indexOf('妯″叿鐐规鏍囧噯') !== -1) {
+ this.tableData[0].forEach(j => {
+ j.uuid = nanoid()
+ })
+ this.tableData[1].forEach(j => {
+ j.uuid = nanoid()
+ })
+ }
+
+ if (this.sheetName.indexOf('璁惧鐐规椤圭洰') !== -1) {
+ this.isYesOrNo = [
+ { code: '鏄�', name: '鏄�' },
+ { code: '鍚�', name: '鍚�' }
+ ]
+ this.tableData[0].forEach(j => {
+ j.uuid = nanoid()
+ j['*鐐规鍛ㄦ湡'] = j['*鐐规鍛ㄦ湡'] ? this.cycleArr.find(e => e.name === j['*鐐规鍛ㄦ湡']).code : ''
+ j['*鏄惁鎵爜'] = j['*鏄惁鎵爜'] ? this.isYesOrNo.find(e => e.name === j['*鏄惁鎵爜']).code : ''
+ })
+ }
+
+ if (this.sheetName.indexOf('璁惧鐐规鏍囧噯') !== -1) {
+ this.isYesOrNo = [
+ { code: 'Y', name: 'Y' },
+ { code: 'N', name: 'N' }
+ ]
+ this.cycleArr = [
+ { code: '鏃�', name: '鏃�' }
+ ]
+
+ this.tableData[0].forEach(j => {
+ j.uuid = nanoid()
+ })
+ this.tableData[1].forEach(j => {
+ j.uuid = nanoid()
+ })
+ }
+
+ if (this.sheetName.indexOf('璁惧淇濆吇椤圭洰') !== -1) {
+ this.isYesOrNo = [
+ { code: 'Y', name: 'Y' },
+ { code: 'N', name: 'N' }
+ ]
+ this.cycleArr = [
+ { code: '骞�', name: '骞�' },
+ { code: '瀛�', name: '瀛�' },
+ { code: '鏈�', name: '鏈�' },
+ { code: '鍛�', name: '鍛�' }
+ ]
+ this.tableData[0].forEach(j => {
+ j.uuid = nanoid()
+ j['*鏄惁鎵爜'] = j['*鏄惁鎵爜'] ? this.isYesOrNo.find(e => e.name === j['*鏄惁鎵爜']).code : ''
+ })
+ }
+
+ if (this.sheetName.indexOf('璁惧淇濆吇鏍囧噯') !== -1) {
+ this.isYesOrNo = [
+ { code: 'Y', name: 'Y' },
+ { code: 'N', name: 'N' }
+ ]
+ this.cycleArr = [
+ { code: '骞�', name: '骞�' },
+ { code: '瀛�', name: '瀛�' },
+ { code: '鏈�', name: '鏈�' },
+ { code: '鍛�', name: '鍛�' }
+ ]
+ this.tableData[0].forEach(j => {
+ j.uuid = nanoid()
+ })
+ this.tableData[1].forEach(j => {
+ j.uuid = nanoid()
+ })
+ }
+
+ //
+ },
+ // 鎻愪氦
+ submit() {
+ this.$confirm('鏄惁纭鎻愪氦?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ })
+ .then(() => {
+ if (this.sheetName.indexOf('浜哄憳绠$悊') !== -1) {
+ const res = this.handlePersonListSubmitData()
+ if (res.code !== '200') {
+ return this.$message.info(res.message)
+ }
+ }
+
+ if (this.sheetName.indexOf('瑙掕壊绠$悊') !== -1) {
+ const res = this.handleRoleListSubmitData()
+ if (res.code !== '200') {
+ return this.$message.info(res.message)
+ }
+ }
+ if (this.sheetName.indexOf('鐝粍绠$悊') !== -1) {
+ const res = this.handleGroupListSubmitData()
+ if (res.code !== '200') {
+ return this.$message.info(res.message)
+ }
+ }
+ if (this.sheetName.indexOf('宀椾綅绠$悊') !== -1) {
+ const res = this.handlePostListSubmitData()
+ if (res.code !== '200') {
+ return this.$message.info(res.message)
+ }
+ }
+ if (this.sheetName.indexOf('寰�鏉ュ崟浣嶇被鍨�') !== -1 && this.sheetName.indexOf('寰�鏉ュ崟浣�') !== -1) {
+ const res = this.handleContactUnitListSubmitData()
+ if (res.code !== '200') {
+ return this.$message.info(res.message)
+ }
+ }
+
+ if (this.sheetName.indexOf('浠撳簱璁剧疆') !== -1) {
+ const res = this.handleWarehouseListSubmitData()
+ if (res.code !== '200') {
+ return this.$message.info(res.message)
+ }
+ }
+
+ if (this.sheetName.indexOf('搴撲綅璁剧疆') !== -1) {
+ const res = this.handleStorageListSubmitData()
+ if (res.code !== '200') {
+ return this.$message.info(res.message)
+ }
+ }
+ if (this.sheetName.indexOf('瀛樿揣鍒嗙被') !== -1) {
+ const res = this.handleInventoryListSubmitData()
+ if (res.code !== '200') {
+ return this.$message.info(res.message)
+ }
+ }
+ if (this.sheetName.indexOf('璁惧绫诲瀷') !== -1) {
+ const res = this.handleDeviceListSubmitData()
+ if (res.code !== '200') {
+ return this.$message.info(res.message)
+ }
+ }
+ if (this.sheetName.indexOf('宸ュ簭璁剧疆') !== -1) {
+ const res = this.handleProcessListSubmitData()
+ if (res.code !== '200') {
+ return this.$message.info(res.message)
+ }
+ }
+ if (this.sheetName.indexOf('缂洪櫡瀹氫箟') !== -1) {
+ const res = this.handleDefectDefineSubmitData()
+ if (res.code !== '200') {
+ return this.$message.info(res.message)
+ }
+ }
+
+ if (this.sheetName.indexOf('妯″叿娓呭崟') !== -1 && this.sheetName.indexOf('妯″叿鍏宠仈浜у搧') !== -1) {
+ const res = this.handleMouldListSubmitData()
+ if (res.code !== '200') {
+ return this.$message.info(res.message)
+ }
+ }
+
+ if (this.sheetName.indexOf('妯″叿鐐规椤圭洰') !== -1) {
+ const res = this.handleMouldCheckPosSubmitData()
+ if (res.code !== '200') {
+ return this.$message.info(res.message)
+ }
+ }
+
+ if (this.sheetName.indexOf('妯″叿鐐规鏍囧噯') !== -1) {
+ const res = this.handleMouldCheckStandSubmitData()
+ if (res.code !== '200') {
+ return this.$message.info(res.message)
+ }
+ }
+
+ if (this.sheetName.indexOf('妯″叿淇濆吇椤圭洰') !== -1) {
+ const res = this.handleMouldMaintainSubmitData()
+ if (res.code !== '200') {
+ return this.$message.info(res.message)
+ }
+ }
+
+ if (this.sheetName.indexOf('妯″叿淇濆吇鏍囧噯') !== -1) {
+ const res = this.handleMouldMaintainStandSubmitData()
+ if (res.code !== '200') {
+ return this.$message.info(res.message)
+ }
+ }
+
+ if (this.sheetName.indexOf('璁惧鐐规椤圭洰') !== -1) {
+ const res = this.handleCheckPositionSubmitData()
+ if (res.code !== '200') {
+ return this.$message.info(res.message)
+ }
+ }
+
+ if (this.sheetName.indexOf('璁惧鐐规鏍囧噯') !== -1) {
+ const res = this.handleCheckStandardSubmitData()
+ if (res.code !== '200') {
+ return this.$message.info(res.message)
+ }
+ }
+
+ if (this.sheetName.indexOf('璁惧淇濆吇椤圭洰') !== -1) {
+ const res = this.handleMaintainPositionSubmitData()
+ if (res.code !== '200') {
+ return this.$message.info(res.message)
+ }
+ }
+
+ if (this.sheetName.indexOf('璁惧淇濆吇鏍囧噯') !== -1) {
+ const res = this.handleMaintainStandardSubmitData()
+ if (res.code !== '200') {
+ return this.$message.info(res.message)
+ }
+ }
+
+ // 鏁版嵁鎻愪氦鍓嶅幓闄ょ┖鏍兼柟娉�
+ // this.tableDataTrim()
+
+ const data = {
+ fileCode: this.excelCode,
+ tableData: this.tableData
+ }
+ ExcelModelCheck(data).then(res => {
+ // 杩斿洖鐨刯son1銆乯son2銆乯son3 json1涓烘ā鏉挎牎楠屻�乯son2涓烘暟鎹牎楠屻�乯son3涓哄鍏ユ暟鎹簱鏍¢獙(鍙兘浼氭湁绯荤粺鎶ラ敊浜х敓)
+ if (res.json1.code !== '200' && res.json2 === null && res.json3 === null) {
+ this.$message.error(res.json1.message)
+ }
+ if (res.json1.code === '200' && res.json2 !== '200' && res.json3 === null) {
+ this.$message.error(res.json2.message)
+ }
+ if (res.json1.code === '200' && res.json2 === '200' && res.json3 !== '200') {
+ this.$message.error(res.json3.message)
+ }
+
+ if (res.json1.code === '300' && res.json2.code === '200' && res.json3.code === '300') { // 绯荤粺鎶ラ敊
+ return this.$message.error(res.json3.message)
+ }
+
+ if (res.json1.code === '200' && res.json2.code === '301' && res.json3 === null) {
+ this.dialogVisible = true
+ this.dialogTableData = res.json2.data
+ }
+
+ if (res.json1.code === '200' && res.json2.code === '200' && res.json3.code === '200') {
+ this.$notify.success('鏁版嵁鎻愪氦鎴愬姛!')
+ this.tableData = []
+ this.tableHeader = []
+ this.sheetName = []
+ this.excelCode = ''
+
+ return
+ }
+
+ if (this.sheetName.indexOf('浜哄憳绠$悊') !== -1) {
+ this.handlePersonListUploadTemplate(false)
+ }
+ if (this.sheetName.indexOf('璁惧绫诲瀷') !== -1) {
+ this.tableData[0].forEach(j => {
+ j.uuid = nanoid()
+ })
+ this.tableData[1].forEach(j => {
+ j['*鎵�灞炵粍缁囩紪鐮�'] = this.findParent([], j['*鎵�灞炵粍缁囩紪鐮�'], this.orgOptions).reverse()
+ j.uuid = nanoid()
+ })
+ }
+ })
+ })
+ .catch(e => {
+ console.log(e)
+ this.$notify.info('宸插彇娑堟彁浜わ紒')
+ })
+ },
+
+ // 澶勭悊浜哄憳绠$悊瀵煎叆妯℃澘
+ handlePersonListUploadTemplate(isFirstUpload) {
+ this.statusArr = [
+ { code: 'Y', name: '鍦ㄨ亴' },
+ { code: 'N', name: '绂昏亴' }
+ ]
+ const postArr = this.postArr.map(i => i.postcode)
+ const roleArr = this.roleArr.map(i => i.rolecode)
+ const groupArr = this.groupArr.map(i => i.usergroupcode)
+ const orgArr = this.orgArr.map(i => i.torg_code)
+
+ // this.sheetName.indexOf('浜哄憳绠$悊')
+ // 绗竴娆℃覆鏌�
+ if (isFirstUpload) {
+ this.tableData[0].forEach(j => {
+ j['鎵�灞炲矖浣嶇紪鐮�'] = j['鎵�灞炲矖浣嶇紪鐮�'] ? j['鎵�灞炲矖浣嶇紪鐮�'].split(',').filter(e => postArr.includes(e)) : []
+ j['鎵�灞炶鑹茬紪鐮�'] = j['鎵�灞炶鑹茬紪鐮�'] ? j['鎵�灞炶鑹茬紪鐮�'].split(',').filter(e => roleArr.includes(e)) : []
+ j['鎵�灞炵彮缁勭紪鐮�'] = j['鎵�灞炵彮缁勭紪鐮�'] ? j['鎵�灞炵彮缁勭紪鐮�'].split(',').filter(e => groupArr.includes(e)) : []
+ j['*鎵�灞炵粍缁囩紪鐮�'] = j['*鎵�灞炵粍缁囩紪鐮�'] ? (orgArr.includes(j['*鎵�灞炵粍缁囩紪鐮�']) ? this.findParent([], j['*鎵�灞炵粍缁囩紪鐮�'], this.orgOptions).reverse() : '') : ''
+ j['*鍦ㄨ亴鐘舵��'] = j['*鍦ㄨ亴鐘舵��'] ? this.statusArr.find(e => e.name === j['*鍦ㄨ亴鐘舵��']).code : 'Y'
+ j.uuid = nanoid()
+ })
+ }
+
+ // 闈炵涓�娆℃覆鏌�
+ if (!isFirstUpload) {
+ this.tableData[0].forEach(j => {
+ j.鎵�灞炲矖浣嶇紪鐮� = typeof j.鎵�灞炲矖浣嶇紪鐮� === 'string' ? j.鎵�灞炲矖浣嶇紪鐮�.split(',').filter(e => postArr.includes(e)) : []
+ j.鎵�灞炶鑹茬紪鐮� = typeof j.鎵�灞炶鑹茬紪鐮� === 'string' ? j.鎵�灞炶鑹茬紪鐮�.split(',').filter(e => roleArr.includes(e)) : []
+ j.鎵�灞炵彮缁勭紪鐮� = typeof j.鎵�灞炵彮缁勭紪鐮� === 'string' ? j.鎵�灞炵彮缁勭紪鐮�.split(',').filter(e => groupArr.includes(e)) : []
+ j['*鎵�灞炵粍缁囩紪鐮�'] = this.findParent([], j['*鎵�灞炵粍缁囩紪鐮�'], this.orgOptions).reverse()
+
+ j.uuid = nanoid()
+ })
+ }
+ },
+ // 澶勭悊浜哄憳绠$悊鎻愪氦鏁版嵁
+ handlePersonListSubmitData() {
+ let flag = true
+ let msg = ''
+ if ([...new Set(this.tableData[0].map(i => i['*鐢ㄦ埛缂栧彿(鍞竴)']))].length !== this.tableData[0].length) {
+ return this.$message.info('缂栫爜涓嶈兘閲嶅锛�')
+ }
+ this.tableData[0].forEach(j => {
+ if (!j['*鐢ㄦ埛缂栧彿(鍞竴)']) {
+ flag = false
+ msg = '*鐢ㄦ埛缂栧彿(鍞竴)'
+ }
+
+ if (!j['*鐢ㄦ埛濮撳悕']) {
+ flag = false
+ msg = '*鐢ㄦ埛濮撳悕'
+ }
+ if (!j['*瀵嗙爜']) {
+ flag = false
+ msg = '*瀵嗙爜'
+ }
+ if (!j['*鍦ㄨ亴鐘舵��']) {
+ flag = false
+ msg = '*鍦ㄨ亴鐘舵��'
+ }
+ if (!j['*鎵�灞炵粍缁囩紪鐮�']) {
+ flag = false
+ msg = '*鎵�灞炵粍缁囩紪鐮�'
+ }
+ })
+
+ if (!flag) {
+ return { code: '301', message: msg + '涓嶈兘涓虹┖锛�' }
+ }
+ this.tableData[0].forEach(j => {
+ j['鎵�灞炲矖浣嶇紪鐮�'] = j['鎵�灞炲矖浣嶇紪鐮�'].join(',')
+ j['鎵�灞炵彮缁勭紪鐮�'] = j['鎵�灞炵彮缁勭紪鐮�'].join(',')
+ j['鎵�灞炶鑹茬紪鐮�'] = j['鎵�灞炶鑹茬紪鐮�'].join(',')
+ j['*鎵�灞炵粍缁囩紪鐮�'] = j['*鎵�灞炵粍缁囩紪鐮�'][j['*鎵�灞炵粍缁囩紪鐮�'].length - 1]
+ })
+
+ this.tableData[0].map(item => {
+ delete (item.uuid)
+ })
+
+ return { code: '200', message: '鎴愬姛锛�' }
+ },
+ // 澶勭悊瑙掕壊绠$悊鎻愪氦鏁版嵁
+ handleRoleListSubmitData() {
+ let flag = true
+ let msg = ''
+ if ([...new Set(this.tableData[0].map(i => i['*瑙掕壊缂栧彿(鍞竴)']))].length !== this.tableData[0].length) {
+ return this.$message.info('缂栫爜涓嶈兘閲嶅锛�')
+ }
+ this.tableData[0].forEach(j => {
+ if (!j['*瑙掕壊缂栧彿(鍞竴)']) {
+ flag = false
+ msg = '*瑙掕壊缂栧彿(鍞竴)'
+ }
+ if (!j['*瑙掕壊鍚嶇О']) {
+ flag = false
+ msg = '*瑙掕壊鍚嶇О'
+ }
+ if (!j['*鐘舵��']) {
+ flag = false
+ msg = '*鐘舵��'
+ }
+ })
+
+ if (!flag) {
+ return { code: '301', message: msg + '涓嶈兘涓虹┖锛�' }
+ }
+
+ this.tableData[0].map(item => {
+ delete (item.uuid)
+ })
+
+ return { code: '200', message: '鎴愬姛锛�' }
+ },
+ // 澶勭悊鐝粍绠$悊鎻愪氦鏁版嵁
+ handleGroupListSubmitData() {
+ let flag = true
+ let msg = ''
+ if ([...new Set(this.tableData[0].map(i => i['*瑙掕壊缂栧彿(鍞竴)']))].length !== this.tableData[0].length) {
+ return this.$message.info('缂栫爜涓嶈兘閲嶅锛�')
+ }
+ this.tableData[0].forEach(j => {
+ if (!j['*鐝粍缂栧彿(鍞竴)']) {
+ flag = false
+ msg = '*鐝粍缂栧彿(鍞竴)'
+ }
+ if (!j['*鐝粍鍚嶇О']) {
+ flag = false
+ msg = '*鐝粍鍚嶇О'
+ }
+ if (!j['*鐘舵��']) {
+ flag = false
+ msg = '*鐘舵��'
+ }
+ })
+
+ if (!flag) {
+ return { code: '301', message: msg + '涓嶈兘涓虹┖锛�' }
+ }
+
+ this.tableData[0].map(item => {
+ delete (item.uuid)
+ })
+
+ return { code: '200', message: '鎴愬姛锛�' }
+ },
+ // 澶勭悊宀椾綅绠$悊鎻愪氦鏁版嵁
+ handlePostListSubmitData() {
+ let flag = true
+ let msg = ''
+ if ([...new Set(this.tableData[0].map(i => i['*宀椾綅缂栧彿(鍞竴)']))].length !== this.tableData[0].length) {
+ return this.$message.info('缂栫爜涓嶈兘閲嶅锛�')
+ }
+ this.tableData[0].forEach(j => {
+ if (!j['*宀椾綅缂栧彿(鍞竴)']) {
+ flag = false
+ msg = '*宀椾綅缂栧彿(鍞竴)'
+ }
+ if (!j['*宀椾綅鍚嶇О']) {
+ flag = false
+ msg = '*宀椾綅鍚嶇О'
+ }
+ if (!j['*鐘舵��']) {
+ flag = false
+ msg = '*鐘舵��'
+ }
+ })
+
+ if (!flag) {
+ return { code: '301', message: msg + '涓嶈兘涓虹┖锛�' }
+ }
+
+ this.tableData[0].map(item => {
+ delete (item.uuid)
+ })
+
+ return { code: '200', message: '鎴愬姛锛�' }
+ },
+ // 澶勭悊寰�鏉ュ崟浣嶆彁浜ゆ暟鎹�
+ handleContactUnitListSubmitData() {
+ let flag = true
+ let msg = ''
+ if ([...new Set(this.tableData[0].map(i => i['*寰�鏉ュ崟浣嶇被鍨嬬紪鍙�(鍞竴)']))].length !== this.tableData[0].length) {
+ return this.$message.info('寰�鏉ュ崟浣嶇被鍨嬬紪鍙蜂笉鑳介噸澶嶏紒')
+ }
+ if ([...new Set(this.tableData[1].map(i => i['*寰�鏉ュ崟浣嶇紪鍙�(鍞竴)']))].length !== this.tableData[1].length) {
+ return this.$message.info('寰�鏉ュ崟浣嶇紪鍙蜂笉鑳介噸澶嶏紒')
+ }
+ this.tableData[0].forEach(j => {
+ if (!j['*寰�鏉ュ崟浣嶇被鍨嬬紪鍙�(鍞竴)']) {
+ flag = false
+ msg = '*寰�鏉ュ崟浣嶇被鍨嬬紪鍙�(鍞竴)涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*寰�鏉ュ崟浣嶇被鍨嬪悕绉�']) {
+ flag = false
+ msg = '*寰�鏉ュ崟浣嶇被鍨嬪悕绉颁笉鑳戒负绌猴紒'
+ }
+ if (j['*寰�鏉ュ崟浣嶇被鍨嬬紪鍙�(鍞竴)'] === j['涓婄骇缂栫爜']) {
+ flag = false
+ msg = '*寰�鏉ュ崟浣嶇被鍨嬬紪鍙�(鍞竴)涓庝笂绾х紪鐮佷笉鑳界浉鍚岋紒'
+ }
+ })
+ this.tableData[1].forEach(j => {
+ if (!j['*寰�鏉ュ崟浣嶇紪鍙�(鍞竴)']) {
+ flag = false
+ msg = '*寰�鏉ュ崟浣嶇紪鍙�(鍞竴)涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*寰�鏉ュ崟浣嶅悕绉�']) {
+ flag = false
+ msg = '*寰�鏉ュ崟浣嶅悕绉颁笉鑳戒负绌猴紒'
+ }
+ if (!j['*鐘舵��']) {
+ flag = false
+ msg = '*鐘舵�佷笉鑳戒负绌猴紒'
+ }
+ if (!j['*寰�鏉ュ崟浣嶇被鍨嬬紪鐮�']) {
+ flag = false
+ msg = '*寰�鏉ュ崟浣嶇被鍨嬬紪鐮佷笉鑳戒负绌猴紒'
+ }
+ })
+
+ if (!flag) {
+ return { code: '301', message: msg }
+ }
+
+ this.tableData[0].map(item => {
+ delete (item.uuid)
+ })
+ this.tableData[1].map(item => {
+ delete (item.uuid)
+ })
+
+ return { code: '200', message: '鎴愬姛锛�' }
+ },
+ // 澶勭悊浠撳簱璁剧疆鎻愪氦鏁版嵁
+ handleWarehouseListSubmitData() {
+ let flag = true
+ let msg = ''
+ if ([...new Set(this.tableData[0].map(i => i['*浠撳簱缂栧彿(鍞竴)']))].length !== this.tableData[0].length) {
+ return this.$message.info('缂栫爜涓嶈兘閲嶅锛�')
+ }
+ this.tableData[0].forEach(j => {
+ if (!j['*浠撳簱缂栧彿(鍞竴)']) {
+ flag = false
+ msg = '*浠撳簱缂栧彿(鍞竴)'
+ }
+ if (!j['*浠撳簱鍚嶇О']) {
+ flag = false
+ msg = '*浠撳簱鍚嶇О'
+ }
+ if (!j['*鐘舵��']) {
+ flag = false
+ msg = '*鐘舵��'
+ }
+ if (!j['*搴撲綅绠$悊']) {
+ flag = false
+ msg = '*搴撲綅绠$悊'
+ }
+ })
+
+ if (!flag) {
+ return { code: '301', message: msg + '涓嶈兘涓虹┖锛�' }
+ }
+
+ this.tableData[0].map(item => {
+ delete (item.uuid)
+ })
+
+ return { code: '200', message: '鎴愬姛锛�' }
+ },
+ // 澶勭悊搴撲綅璁剧疆鎻愪氦鏁版嵁
+ handleStorageListSubmitData() {
+ let flag = true
+ let msg = ''
+ if ([...new Set(this.tableData[0].map(i => i['*搴撲綅缂栧彿(鍞竴)']))].length !== this.tableData[0].length) {
+ return this.$message.info('缂栫爜涓嶈兘閲嶅锛�')
+ }
+ this.tableData[0].forEach(j => {
+ if (!j['*搴撲綅缂栧彿(鍞竴)']) {
+ flag = false
+ msg = '*搴撲綅缂栧彿(鍞竴)涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*搴撲綅鍚嶇О']) {
+ flag = false
+ msg = '*搴撲綅鍚嶇О涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*鎵�灞炰粨搴撶紪鐮�']) {
+ flag = false
+ msg = '*鎵�灞炰粨搴撶紪鐮佷笉鑳戒负绌猴紒'
+ }
+ if (!j['*鐘舵��']) {
+ flag = false
+ msg = '*鐘舵�佷笉鑳戒负绌猴紒'
+ }
+ if (j['涓婄骇搴撲綅缂栫爜'] === j['*搴撲綅缂栧彿(鍞竴)']) {
+ flag = false
+ msg = '*搴撲綅缂栧彿(鍞竴)涓庝笂绾у簱浣嶇紪鐮佷笉鑳界浉鍚岋紒'
+ }
+ })
+
+ if (!flag) {
+ return { code: '301', message: msg }
+ }
+
+ this.tableData[0].map(item => {
+ delete (item.uuid)
+ })
+
+ return { code: '200', message: '鎴愬姛锛�' }
+ },
+ // 澶勭悊瀛樿揣妗f鎻愪氦鏁版嵁
+ handleInventoryListSubmitData() {
+ let flag = true
+ let msg = ''
+ if ([...new Set(this.tableData[0].map(i => i['*瀛樿揣鍒嗙被缂栧彿(鍞竴)']))].length !== this.tableData[0].length) {
+ return this.$message.info('瀛樿揣鍒嗙被缂栧彿涓嶈兘閲嶅锛�')
+ }
+ if ([...new Set(this.tableData[1].map(i => i['*瀛樿揣缂栧彿(鍞竴)']))].length !== this.tableData[1].length) {
+ return this.$message.info('瀛樿揣缂栧彿涓嶈兘閲嶅锛�')
+ }
+ this.tableData[0].forEach(j => {
+ if (!j['*瀛樿揣鍒嗙被缂栧彿(鍞竴)']) {
+ flag = false
+ msg = '*瀛樿揣鍒嗙被缂栧彿(鍞竴)涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*瀛樿揣鍒嗙被鍚嶇О']) {
+ flag = false
+ msg = '*瀛樿揣鍒嗙被涓嶈兘涓虹┖锛�'
+ }
+ if (j['*瀛樿揣鍒嗙被缂栧彿(鍞竴)'] === j['涓婄骇缂栫爜']) {
+ flag = false
+ msg = '*瀛樿揣鍒嗙被缂栧彿(鍞竴)涓庝笂绾х紪鐮佷笉鑳界浉鍚岋紒'
+ }
+ })
+ this.tableData[1].forEach(j => {
+ if (!j['*瀛樿揣缂栧彿(鍞竴)']) {
+ flag = false
+ msg = '*瀛樿揣缂栧彿(鍞竴)涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*瀛樿揣鍚嶇О']) {
+ flag = false
+ msg = '*瀛樿揣鍚嶇О涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*瀛樿揣鍒嗙被缂栫爜']) {
+ flag = false
+ msg = '*瀛樿揣鍒嗙被缂栫爜涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*鐘舵��']) {
+ flag = false
+ msg = '*鐘舵�佷笉鑳戒负绌猴紒'
+ }
+ if (!j['*璁¢噺鏂瑰紡']) {
+ flag = false
+ msg = '*璁¢噺鏂瑰紡涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*璁¢噺鍗曚綅/缁勫悕绉�']) {
+ flag = false
+ msg = '*璁¢噺鍗曚綅/缁勫悕绉颁笉鑳戒负绌猴紒'
+ }
+ if (!(j['鏄惁澶栬喘'] === '1' || j['鏄惁閿�鍞�'] === '1' || j['鏄惁鑷埗'] === '1' || j['鏄惁鐢熶骇娑堣��'] === '1' || j['鏄惁濮斿'] === '1')) {
+ flag = false
+ msg = '瀛樿揣灞炴�у繀椤昏閫夋嫨鍏朵竴锛�'
+ }
+ })
+
+ if (!flag) {
+ return { code: '301', message: msg }
+ }
+
+ this.tableData[0].map(item => {
+ delete (item.uuid)
+ })
+ this.tableData[1].map(item => {
+ delete (item.uuid)
+ })
+
+ return { code: '200', message: '鎴愬姛锛�' }
+ },
+ // 澶勭悊璁惧娓呭崟鎻愪氦鏁版嵁
+ handleDeviceListSubmitData() {
+ let flag = true
+ let msg = ''
+ if ([...new Set(this.tableData[0].map(i => i['*璁惧绫诲瀷缂栧彿(鍞竴)']))].length !== this.tableData[0].length) {
+ return this.$message.info('璁惧绫诲瀷缂栧彿涓嶈兘閲嶅锛�')
+ }
+ if ([...new Set(this.tableData[1].map(i => i['*璁惧缂栧彿(鍞竴)']))].length !== this.tableData[1].length) {
+ return this.$message.info('璁惧缂栧彿涓嶈兘閲嶅锛�')
+ }
+ this.tableData[0].forEach(j => {
+ if (!j['*璁惧绫诲瀷缂栧彿(鍞竴)']) {
+ flag = false
+ msg = '*璁惧绫诲瀷缂栧彿(鍞竴)涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*璁惧绫诲瀷鍚嶇О']) {
+ flag = false
+ msg = '*璁惧绫诲瀷鍚嶇О涓嶈兘涓虹┖锛�'
+ }
+ })
+ this.tableData[1].forEach(j => {
+ if (!j['*璁惧缂栧彿(鍞竴)']) {
+ flag = false
+ msg = '*璁惧缂栧彿(鍞竴)涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*璁惧鍚嶇О']) {
+ flag = false
+ msg = '*璁惧鍚嶇О涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*鎵�灞炵粍缁囩紪鐮�']) {
+ flag = false
+ msg = '*鎵�灞炵粍缁囩紪鐮佷笉鑳戒负绌猴紒'
+ }
+ if (!j['*璁惧绫诲瀷缂栫爜']) {
+ flag = false
+ msg = '*璁惧绫诲瀷缂栫爜涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*鐘舵��']) {
+ flag = false
+ msg = '*鐘舵�佷笉鑳戒负绌猴紒'
+ }
+ })
+
+ if (!flag) {
+ return { code: '301', message: msg }
+ }
+
+ this.tableData[1].forEach(j => {
+ j['*鎵�灞炵粍缁囩紪鐮�'] = j['*鎵�灞炵粍缁囩紪鐮�'][j['*鎵�灞炵粍缁囩紪鐮�'].length - 1]
+ })
+
+ this.tableData[0].map(item => {
+ delete (item.uuid)
+ })
+ this.tableData[1].map(item => {
+ delete (item.uuid)
+ })
+
+ return { code: '200', message: '鎴愬姛锛�' }
+ },
+ // 澶勭悊宸ュ簭璁剧疆鎻愪氦鏁版嵁
+ handleProcessListSubmitData() {
+ let flag = true
+ let msg = ''
+ if ([...new Set(this.tableData[0].map(i => i['*宸ュ簭缂栧彿(鍞竴)']))].length !== this.tableData[0].length) {
+ return this.$message.info('缂栫爜涓嶈兘閲嶅锛�')
+ }
+ this.tableData[0].forEach(j => {
+ if (!j['*宸ュ簭缂栧彿(鍞竴)']) {
+ flag = false
+ msg = '*宸ュ簭缂栧彿(鍞竴)'
+ }
+ if (!j['*宸ュ簭鍚嶇О']) {
+ flag = false
+ msg = '*宸ュ簭鍚嶇О'
+ }
+ if (!j['*宸ュ簭绫诲瀷']) {
+ flag = false
+ msg = '*宸ュ簭绫诲瀷'
+ }
+ if (!j['*鐘舵��']) {
+ flag = false
+ msg = '*鐘舵��'
+ }
+ })
+
+ if (!flag) {
+ return { code: '301', message: msg + '涓嶈兘涓虹┖锛�' }
+ }
+
+ this.tableData[0].map(item => {
+ delete (item.uuid)
+ })
+
+ return { code: '200', message: '鎴愬姛锛�' }
+ },
+ // 澶勭悊缂洪櫡瀹氫箟鎻愪氦鏁版嵁
+ handleDefectDefineSubmitData() {
+ let flag = true
+ let msg = ''
+ if ([...new Set(this.tableData[0].map(i => i['*缂洪櫡缂栧彿(鍞竴)']))].length !== this.tableData[0].length) {
+ return this.$message.info('缂栫爜涓嶈兘閲嶅锛�')
+ }
+ this.tableData[0].forEach(j => {
+ if (!j['*缂洪櫡缂栧彿(鍞竴)']) {
+ flag = false
+ msg = '*缂洪櫡缂栧彿(鍞竴)'
+ }
+ if (!j['*缂洪櫡鍚嶇О']) {
+ flag = false
+ msg = '*缂洪櫡鍚嶇О'
+ }
+ })
+
+ if (!flag) {
+ return { code: '301', message: msg + '涓嶈兘涓虹┖锛�' }
+ }
+
+ this.tableData[0].map(item => {
+ delete (item.uuid)
+ })
+
+ return { code: '200', message: '鎴愬姛锛�' }
+ },
+ // 澶勭悊妯″叿娓呭崟鎻愪氦鏁版嵁
+ handleMouldListSubmitData() {
+ let flag = true
+ let msg = ''
+ if ([...new Set(this.tableData[0].map(i => i['*妯″叿缂栧彿(鍞竴)']))].length !== this.tableData[0].length) {
+ return this.$message.info('妯″叿娓呭崟缂栧彿涓嶈兘閲嶅锛�')
+ }
+ // if ([...new Set(this.tableData[1].map(i => i['*寰�鏉ュ崟浣嶇紪鍙�(鍞竴)']))].length !== this.tableData[1].length) {
+ // return this.$message.info('寰�鏉ュ崟浣嶇紪鍙蜂笉鑳介噸澶嶏紒')
+ // }
+ this.tableData[0].forEach(j => {
+ if (!j['*妯″叿缂栧彿(鍞竴)']) {
+ flag = false
+ msg = '*妯″叿缂栧彿(鍞竴)涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*妯″叿鍚嶇О']) {
+ flag = false
+ msg = '*妯″叿鍚嶇О涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*鐘舵��']) {
+ flag = false
+ msg = '*鐘舵�佷笉鑳戒负绌猴紒'
+ }
+ if (!j['*浠撳簱缂栫爜']) {
+ flag = false
+ msg = '*浠撳簱缂栫爜涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*搴撲綅缂栫爜']) {
+ flag = false
+ msg = '*搴撲綅缂栫爜涓嶈兘涓虹┖锛�'
+ }
+ })
+ this.tableData[1].forEach(j => {
+ if (!j['妯″叿缂栫爜'] && j['浜у搧缂栫爜']) {
+ flag = false
+ msg = '妯″叿缂栫爜涓嶈兘涓虹┖锛�'
+ }
+ if (j['妯″叿缂栫爜'] && !j['浜у搧缂栫爜']) {
+ flag = false
+ msg = '浜у搧缂栫爜涓嶈兘涓虹┖锛�'
+ }
+ })
+
+ if (!flag) {
+ return { code: '301', message: msg }
+ }
+
+ this.tableData[0].map(item => {
+ delete (item.uuid)
+ })
+ this.tableData[1].map(item => {
+ delete (item.uuid)
+ })
+
+ return { code: '200', message: '鎴愬姛锛�' }
+ },
+ // 澶勭悊妯″叿鐐规椤圭洰鎻愪氦鏁版嵁
+ handleMouldCheckPosSubmitData() {
+ let flag = true
+ let msg = ''
+ if ([...new Set(this.tableData[0].map(i => i['*鐐规椤圭洰缂栧彿(鍞竴)']))].length !== this.tableData[0].length) {
+ return this.$message.info('缂栫爜涓嶈兘閲嶅锛�')
+ }
+ this.tableData[0].forEach(j => {
+ if (!j['*鐐规椤圭洰缂栧彿(鍞竴)']) {
+ flag = false
+ msg = '*鐐规椤圭洰缂栧彿(鍞竴)'
+ }
+ if (!j['*鐐规椤圭洰鍚嶇О']) {
+ flag = false
+ msg = '*鐐规椤圭洰鍚嶇О'
+ }
+ })
+
+ if (!flag) {
+ return { code: '301', message: msg + '涓嶈兘涓虹┖锛�' }
+ }
+
+ this.tableData[0].map(item => {
+ delete (item.uuid)
+ })
+
+ return { code: '200', message: '鎴愬姛锛�' }
+ },
+ // 澶勭悊妯″叿鐐规鏍囧噯鎻愪氦鏁版嵁
+ handleMouldCheckStandSubmitData() {
+ let flag = true
+ let msg = ''
+ if ([...new Set(this.tableData[0].map(i => i['*妯″叿鐐规鏍囧噯缂栧彿(鍞竴)']))].length !== this.tableData[0].length) {
+ return this.$message.info('鐐规鏍囧噯缂栧彿涓嶈兘閲嶅锛�')
+ }
+ if ([...new Set(this.tableData[1].map(i => i['*妯″叿鐐规鏍囧噯缂栧彿']))].length !== this.tableData[1].length) {
+ return this.$message.info('妯″叿鐐规鏍囧噯缂栧彿涓嶈兘閲嶅锛�')
+ }
+ this.tableData[0].forEach(j => {
+ if (!j['*妯″叿鐐规鏍囧噯缂栧彿(鍞竴)']) {
+ flag = false
+ msg = '*妯″叿鐐规鏍囧噯缂栧彿(鍞竴)涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*妯″叿鐐规鏍囧噯鍚嶇О']) {
+ flag = false
+ msg = '*妯″叿鐐规鏍囧噯涓嶈兘涓虹┖锛�'
+ }
+ })
+ this.tableData[1].forEach(j => {
+ if (!j['*妯″叿鐐规鏍囧噯缂栧彿']) {
+ flag = false
+ msg = '*妯″叿鐐规鏍囧噯缂栧彿涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*鐐规椤瑰簭鍙�']) {
+ flag = false
+ msg = '*鐐规椤瑰簭鍙蜂笉鑳戒负绌猴紒'
+ }
+ if (!j['*妯″叿鐐规椤圭紪鍙�(鍞竴)']) {
+ flag = false
+ msg = '*妯″叿鐐规椤圭紪鍙�(鍞竴)涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*妯″叿鐐规椤瑰悕绉�']) {
+ flag = false
+ msg = '*妯″叿鐐规椤瑰悕绉颁笉鑳戒负绌猴紒'
+ }
+ })
+
+ if (!flag) {
+ return { code: '301', message: msg }
+ }
+
+ this.tableData[0].map(item => {
+ delete (item.uuid)
+ })
+ this.tableData[1].map(item => {
+ delete (item.uuid)
+ })
+
+ return { code: '200', message: '鎴愬姛锛�' }
+ },
+ // 澶勭悊妯″叿淇濆吇椤圭洰鎻愪氦鏁版嵁
+ handleMouldMaintainSubmitData() {
+ let flag = true
+ let msg = ''
+ if ([...new Set(this.tableData[0].map(i => i['*淇濆吇椤圭洰缂栧彿(鍞竴)']))].length !== this.tableData[0].length) {
+ return this.$message.info('缂栫爜涓嶈兘閲嶅锛�')
+ }
+ this.tableData[0].forEach(j => {
+ if (!j['*淇濆吇椤圭洰缂栧彿(鍞竴)']) {
+ flag = false
+ msg = '*淇濆吇椤圭洰缂栧彿(鍞竴)'
+ }
+ if (!j['*淇濆吇椤圭洰鍚嶇О']) {
+ flag = false
+ msg = '*淇濆吇椤圭洰鍚嶇О'
+ }
+ })
+
+ if (!flag) {
+ return { code: '301', message: msg + '涓嶈兘涓虹┖锛�' }
+ }
+
+ this.tableData[0].map(item => {
+ delete (item.uuid)
+ })
+
+ return { code: '200', message: '鎴愬姛锛�' }
+ },
+ // 澶勭悊妯″叿淇濆吇鏍囧噯鎻愪氦鏁版嵁
+ handleMouldMaintainStandSubmitData() {
+ let flag = true
+ let msg = ''
+ if ([...new Set(this.tableData[0].map(i => i['*妯″叿淇濆吇鏍囧噯缂栧彿(鍞竴)']))].length !== this.tableData[0].length) {
+ return this.$message.info('淇濆吇鏍囧噯缂栧彿涓嶈兘閲嶅锛�')
+ }
+ if ([...new Set(this.tableData[1].map(i => i['*妯″叿淇濆吇鏍囧噯缂栧彿']))].length !== this.tableData[1].length) {
+ return this.$message.info('妯″叿淇濆吇鏍囧噯缂栧彿涓嶈兘閲嶅锛�')
+ }
+ this.tableData[0].forEach(j => {
+ if (!j['*妯″叿淇濆吇鏍囧噯缂栧彿(鍞竴)']) {
+ flag = false
+ msg = '*妯″叿淇濆吇鏍囧噯缂栧彿(鍞竴)涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*妯″叿淇濆吇鏍囧噯鍚嶇О']) {
+ flag = false
+ msg = '*妯″叿淇濆吇鏍囧噯涓嶈兘涓虹┖锛�'
+ }
+ })
+ this.tableData[1].forEach(j => {
+ if (!j['*妯″叿淇濆吇鏍囧噯缂栧彿']) {
+ flag = false
+ msg = '*妯″叿淇濆吇鏍囧噯缂栧彿涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*淇濆吇椤瑰簭鍙�']) {
+ flag = false
+ msg = '*淇濆吇椤瑰簭鍙蜂笉鑳戒负绌猴紒'
+ }
+ if (!j['*妯″叿淇濆吇椤圭紪鍙�(鍞竴)']) {
+ flag = false
+ msg = '*妯″叿淇濆吇椤圭紪鍙�(鍞竴)涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*妯″叿淇濆吇椤瑰悕绉�']) {
+ flag = false
+ msg = '*妯″叿淇濆吇椤瑰悕绉颁笉鑳戒负绌猴紒'
+ }
+ })
+
+ if (!flag) {
+ return { code: '301', message: msg }
+ }
+
+ this.tableData[0].map(item => {
+ delete (item.uuid)
+ })
+ this.tableData[1].map(item => {
+ delete (item.uuid)
+ })
+
+ return { code: '200', message: '鎴愬姛锛�' }
+ },
+ // 澶勭悊璁惧鐐规椤圭洰鎻愪氦鏁版嵁
+ handleCheckPositionSubmitData() {
+ let flag = true
+ let msg = ''
+ if ([...new Set(this.tableData[0].map(i => i['*鐐规椤圭洰缂栧彿(鍞竴)']))].length !== this.tableData[0].length) {
+ return this.$message.info('缂栫爜涓嶈兘閲嶅锛�')
+ }
+ this.tableData[0].forEach(j => {
+ if (!j['*鐐规椤圭洰缂栧彿(鍞竴)']) {
+ flag = false
+ msg = '*鐐规椤圭洰缂栧彿(鍞竴)'
+ }
+ if (!j['*鐐规椤圭洰鍚嶇О']) {
+ flag = false
+ msg = '*鐐规椤圭洰鍚嶇О'
+ }
+ if (!j['*鐐规鍛ㄦ湡']) {
+ flag = false
+ msg = '*鐐规鍛ㄦ湡'
+ }
+ if (!j['*鏄惁鎵爜']) {
+ flag = false
+ msg = '*鏄惁鎵爜'
+ }
+ })
+
+ if (!flag) {
+ return { code: '301', message: msg + '涓嶈兘涓虹┖锛�' }
+ }
+
+ this.tableData[0].map(item => {
+ delete (item.uuid)
+ })
+
+ return { code: '200', message: '鎴愬姛锛�' }
+ },
+ // 澶勭悊璁惧鐐规鏍囧噯鎻愪氦鏁版嵁
+ handleCheckStandardSubmitData() {
+ let flag = true
+ let msg = ''
+ if ([...new Set(this.tableData[0].map(i => i['*璁惧鐐规鏍囧噯缂栧彿(鍞竴)']))].length !== this.tableData[0].length) {
+ return this.$message.info('璁惧鐐规鏍囧噯缂栧彿涓嶈兘閲嶅锛�')
+ }
+ // if ([...new Set(this.tableData[1].map(i => i['*妯″叿淇濆吇鏍囧噯缂栧彿']))].length !== this.tableData[1].length) {
+ // return this.$message.info('妯″叿淇濆吇鏍囧噯缂栧彿涓嶈兘閲嶅锛�')
+ // }
+ this.tableData[0].forEach(j => {
+ if (!j['*璁惧鐐规鏍囧噯缂栧彿(鍞竴)']) {
+ flag = false
+ msg = '*璁惧鐐规鏍囧噯缂栧彿(鍞竴)涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*璁惧鐐规鏍囧噯鍚嶇О']) {
+ flag = false
+ msg = '*璁惧鐐规鏍囧噯鍚嶇О涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*鐐规绠℃帶']) {
+ flag = false
+ msg = '*鐐规绠℃帶涓嶈兘涓虹┖锛�'
+ }
+ })
+ this.tableData[1].forEach(j => {
+ if (!j['*鐐规椤瑰簭鍙�']) {
+ flag = false
+ msg = '*鐐规椤瑰簭鍙蜂笉鑳戒负绌猴紒'
+ }
+
+ if (!j['*璁惧鐐规鏍囧噯缂栧彿(M)']) {
+ flag = false
+ msg = '*璁惧鐐规鏍囧噯缂栧彿(M)涓嶈兘涓虹┖锛�'
+ }
+
+ if (!j['*璁惧鐐规閮ㄤ綅缂栧彿(鍞竴)']) {
+ flag = false
+ msg = '*璁惧鐐规閮ㄤ綅缂栧彿(鍞竴)涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*璁惧鐐规閮ㄤ綅鍚嶇О']) {
+ flag = false
+ msg = '*璁惧鐐规閮ㄤ綅鍚嶇О涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*閫夋嫨鎵爜']) {
+ flag = false
+ msg = '*閫夋嫨鎵爜涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*鐐规鍛ㄦ湡']) {
+ flag = false
+ msg = '*鐐规鍛ㄦ湡涓嶈兘涓虹┖锛�'
+ }
+ })
+
+ if (!flag) {
+ return { code: '301', message: msg }
+ }
+
+ this.tableData[0].map(item => {
+ delete (item.uuid)
+ })
+ this.tableData[1].map(item => {
+ delete (item.uuid)
+ })
+
+ return { code: '200', message: '鎴愬姛锛�' }
+ },
+ // 澶勭悊璁惧淇濆吇椤圭洰鎻愪氦鏁版嵁
+ handleMaintainPositionSubmitData() {
+ let flag = true
+ let msg = ''
+ if ([...new Set(this.tableData[0].map(i => i['*淇濆吇椤圭洰缂栧彿(鍞竴)']))].length !== this.tableData[0].length) {
+ return this.$message.info('缂栫爜涓嶈兘閲嶅锛�')
+ }
+ this.tableData[0].forEach(j => {
+ if (!j['*淇濆吇椤圭洰缂栧彿(鍞竴)']) {
+ flag = false
+ msg = '*淇濆吇椤圭洰缂栧彿(鍞竴)'
+ }
+ if (!j['*淇濆吇椤圭洰鍚嶇О']) {
+ flag = false
+ msg = '*淇濆吇椤圭洰鍚嶇О'
+ }
+ if (!j['*鏄惁鎵爜']) {
+ flag = false
+ msg = '*鏄惁鎵爜'
+ }
+ })
+
+ if (!flag) {
+ return { code: '301', message: msg + '涓嶈兘涓虹┖锛�' }
+ }
+
+ this.tableData[0].map(item => {
+ delete (item.uuid)
+ })
+
+ return { code: '200', message: '鎴愬姛锛�' }
+ },
+ // 澶勭悊璁惧淇濆吇鏍囧噯鎻愪氦鏁版嵁
+ handleMaintainStandardSubmitData() {
+ let flag = true
+ let msg = ''
+ if ([...new Set(this.tableData[0].map(i => i['*璁惧淇濆吇鏍囧噯缂栧彿(鍞竴)']))].length !== this.tableData[0].length) {
+ return this.$message.info('璁惧淇濆吇鏍囧噯缂栧彿涓嶈兘閲嶅锛�')
+ }
+ // if ([...new Set(this.tableData[1].map(i => i['*妯″叿淇濆吇鏍囧噯缂栧彿']))].length !== this.tableData[1].length) {
+ // return this.$message.info('妯″叿淇濆吇鏍囧噯缂栧彿涓嶈兘閲嶅锛�')
+ // }
+ this.tableData[0].forEach(j => {
+ if (!j['*璁惧淇濆吇鏍囧噯缂栧彿(鍞竴)']) {
+ flag = false
+ msg = '*璁惧淇濆吇鏍囧噯缂栧彿(鍞竴)涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*璁惧淇濆吇鏍囧噯鍚嶇О']) {
+ flag = false
+ msg = '*璁惧淇濆吇鏍囧噯鍚嶇О涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*淇濆吇鍛ㄦ湡']) {
+ flag = false
+ msg = '*淇濆吇鍛ㄦ湡涓嶈兘涓虹┖锛�'
+ }
+ })
+ this.tableData[1].forEach(j => {
+ if (!j['*淇濆吇椤瑰簭鍙�']) {
+ flag = false
+ msg = '*鐐规椤瑰簭鍙蜂笉鑳戒负绌猴紒'
+ }
+
+ if (!j['*璁惧淇濆吇鏍囧噯缂栧彿(M)']) {
+ flag = false
+ msg = '*璁惧淇濆吇鏍囧噯缂栧彿(M)涓嶈兘涓虹┖锛�'
+ }
+
+ if (!j['*璁惧淇濆吇閮ㄤ綅缂栧彿(鍞竴)']) {
+ flag = false
+ msg = '*璁惧淇濆吇閮ㄤ綅缂栧彿(鍞竴)涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*璁惧淇濆吇閮ㄤ綅鍚嶇О']) {
+ flag = false
+ msg = '*璁惧淇濆吇閮ㄤ綅鍚嶇О涓嶈兘涓虹┖锛�'
+ }
+ if (!j['*閫夋嫨鎵爜']) {
+ flag = false
+ msg = '*閫夋嫨鎵爜涓嶈兘涓虹┖锛�'
+ }
+ })
+
+ if (!flag) {
+ return { code: '301', message: msg }
+ }
+
+ this.tableData[0].map(item => {
+ delete (item.uuid)
+ })
+ this.tableData[1].map(item => {
+ delete (item.uuid)
+ })
+
+ return { code: '200', message: '鎴愬姛锛�' }
+ },
+
+ // parents:鐢ㄤ簬杩斿洖鐨勬暟缁勶紝childNode:瑕佹煡璇㈢殑鑺傜偣锛宼reeData锛歫son鏍戝舰鏁版嵁
+ findParent(parents, childNode, treeData) {
+ // console.log(parents, childNode, treeData, 2)
+
+ for (let i = 0; i < treeData.length; i++) {
+ // 鐖惰妭鐐规煡璇㈡潯浠�
+ if (treeData[i].torg_code === childNode) {
+ // 濡傛灉鎵惧埌缁撴灉,淇濆瓨褰撳墠鑺傜偣
+ parents.push(treeData[i].torg_code)
+ // 鐢ㄥ綋鍓嶈妭鐐瑰啀鍘诲師鏁版嵁鏌ユ壘褰撳墠鑺傜偣鐨勭埗鑺傜偣
+ this.findParent(parents, treeData[i].parent_id, this.orgOptions)
+ break
+ } else {
+ if (treeData[i].children instanceof Array) {
+ // 娌℃壘鍒帮紝閬嶅巻璇ヨ妭鐐圭殑瀛愯妭鐐�
+ this.findParent(parents, childNode, treeData[i].children)
+ }
+ }
+ }
+ return parents
+ },
+ addRow() {
+ // 浜哄憳绠$悊鏂板琛�
+ if (this.sheetName.indexOf('浜哄憳绠$悊') !== -1) {
+ this.tableData[0].unshift({
+ uuid: nanoid(),
+ '*鐢ㄦ埛缂栧彿(鍞竴)': '',
+ '*鐢ㄦ埛濮撳悕': '',
+ '*瀵嗙爜': '',
+ '*鍦ㄨ亴鐘舵��': 'Y',
+ '鎵嬫満鍙�': '',
+ '閭': '',
+ '*鎵�灞炵粍缁囩紪鐮�': '',
+ '鎵�灞炲矖浣嶇紪鐮�': [],
+ '鎵�灞炶鑹茬紪鐮�': [],
+ '鎵�灞炵彮缁勭紪鐮�': []
+ })
+ }
+ // 瑙掕壊绠$悊鏂板琛�
+ if (this.sheetName.indexOf('瑙掕壊绠$悊') !== -1) {
+ this.tableData[0].unshift({
+ uuid: nanoid(),
+ '*瑙掕壊缂栧彿(鍞竴)': '',
+ '*瑙掕壊鍚嶇О': '',
+ '*鐘舵��': 'Y',
+ '鎻忚堪': ''
+ })
+ }
+ // 鐝粍绠$悊鏂板琛�
+ if (this.sheetName.indexOf('鐝粍绠$悊') !== -1) {
+ this.tableData[0].unshift({
+ uuid: nanoid(),
+ '*鐝粍缂栧彿(鍞竴)': '',
+ '*鐝粍鍚嶇О': '',
+ '*鐘舵��': 'Y',
+ '鎻忚堪': ''
+ })
+ }
+ // 宀椾綅绠$悊鏂板琛�
+ if (this.sheetName.indexOf('宀椾綅绠$悊') !== -1) {
+ this.tableData[0].unshift({
+ uuid: nanoid(),
+ '*宀椾綅缂栧彿(鍞竴)': '',
+ '*宀椾綅鍚嶇О': '',
+ '*鐘舵��': 'Y',
+ '鎻忚堪': ''
+ })
+ }
+ // 寰�鏉ュ崟浣�
+ if (this.sheetName.indexOf('寰�鏉ュ崟浣嶇被鍨�') !== -1 && this.activeName === '0') {
+ this.tableData[0].unshift({
+ uuid: nanoid(),
+ '*寰�鏉ュ崟浣嶇被鍨嬬紪鍙�(鍞竴)': '',
+ '*寰�鏉ュ崟浣嶇被鍨嬪悕绉�': '',
+ '涓婄骇缂栫爜': ''
+ })
+ }
+ if (this.sheetName.indexOf('寰�鏉ュ崟浣�') !== -1 && this.activeName === '1') {
+ this.tableData[1].unshift({
+ uuid: nanoid(),
+ '*寰�鏉ュ崟浣嶇紪鍙�(鍞竴)': '',
+ '*寰�鏉ュ崟浣嶅悕绉�': '',
+ '*鐘舵��': '0',
+ '*寰�鏉ュ崟浣嶇被鍨嬬紪鐮�': '',
+ '鑱旂郴浜�': '',
+ '鑱旂郴鏂瑰紡': '',
+ '鍦板潃': ''
+ })
+ }
+ // 浠撳簱璁剧疆
+ if (this.sheetName.indexOf('浠撳簱璁剧疆') !== -1) {
+ this.tableData[0].unshift({
+ uuid: nanoid(),
+ '*浠撳簱缂栧彿(鍞竴)': '',
+ '*浠撳簱鍚嶇О': '',
+ '*鐘舵��': '0',
+ '*搴撲綅绠$悊': '0',
+ '鎻忚堪': ''
+ })
+ }
+ // 搴撲綅璁剧疆
+ if (this.sheetName.indexOf('搴撲綅璁剧疆') !== -1) {
+ this.tableData[0].unshift({
+ uuid: nanoid(),
+ '*搴撲綅缂栧彿(鍞竴)': '',
+ '*搴撲綅鍚嶇О': '',
+ '*鎵�灞炰粨搴撶紪鐮�': '',
+ '涓婄骇搴撲綅缂栫爜': '',
+ '*鐘舵��': '0',
+ '鎻忚堪': ''
+ })
+ }
+ // 瀛樿揣妗f
+ if (this.sheetName.indexOf('瀛樿揣鍒嗙被') !== -1 && this.activeName === '0') {
+ this.tableData[0].unshift({
+ uuid: nanoid(),
+ '*瀛樿揣鍒嗙被缂栧彿(鍞竴)': '',
+ '*瀛樿揣鍒嗙被鍚嶇О': '',
+ '涓婄骇缂栫爜': ''
+ })
+ }
+ if (this.sheetName.indexOf('瀛樿揣') !== -1 && this.activeName === '1') {
+ this.tableData[1].unshift({
+ uuid: nanoid(),
+ '*瀛樿揣缂栧彿(鍞竴)': '',
+ '*瀛樿揣鍚嶇О': '',
+ '瑙勬牸鍨嬪彿': '',
+ '*瀛樿揣鍒嗙被缂栫爜': '',
+ '*鐘舵��': '0',
+ '*璁¢噺鏂瑰紡': '',
+ '璁¢噺鍗曚綅/缁勫悕绉�': '',
+ '鎵�灞炰粨搴撶紪鐮�': '',
+ '鏄惁澶栬喘': '0',
+ '鏄惁閿�鍞�': '0',
+ '鏄惁鑷埗': '0',
+ '鏄惁鐢熶骇娑堣��': '0',
+ '鏄惁濮斿': '0'
+ })
+ }
+ // 璁惧娓呭崟
+ if (this.sheetName.indexOf('璁惧绫诲瀷') !== -1 && this.activeName === '0') {
+ this.tableData[0].unshift({
+ uuid: nanoid(),
+ '*璁惧绫诲瀷缂栧彿(鍞竴)': '',
+ '*璁惧绫诲瀷鍚嶇О': '',
+ '鎻忚堪': ''
+ })
+ }
+ if (this.sheetName.indexOf('璁惧娓呭崟') !== -1 && this.activeName === '1') {
+ this.tableData[1].unshift({
+ uuid: nanoid(),
+ '*璁惧缂栧彿(鍞竴)': '',
+ '*璁惧鍚嶇О': '',
+ '*鎵�灞炵粍缁囩紪鐮�': '',
+ '璁惧绫诲瀷缂栫爜': '',
+ '*鐘舵��': 'Y'
+ })
+ }
+ // 宸ュ簭璁剧疆
+ if (this.sheetName.indexOf('宸ュ簭璁剧疆') !== -1) {
+ this.tableData[0].unshift({
+ uuid: nanoid(),
+ '*宸ュ簭缂栧彿(鍞竴)': '',
+ '*宸ュ簭鍚嶇О': '',
+ '*宸ュ簭绫诲瀷': 'Z',
+ '*鐘舵��': 'Y',
+ '鎻忚堪': ''
+ })
+ }
+ // 缂洪櫡瀹氫箟
+ if (this.sheetName.indexOf('缂洪櫡瀹氫箟') !== -1) {
+ this.tableData[0].unshift({
+ uuid: nanoid(),
+ '*缂洪櫡缂栧彿(鍞竴)': '',
+ '*缂洪櫡鍚嶇О': '',
+ '缂洪櫡鎻忚堪': ''
+ })
+ }
+ // 妯″叿娓呭崟
+ if (this.sheetName.indexOf('妯″叿娓呭崟') !== -1 && this.activeName === '0') {
+ this.tableData[0].unshift({
+ uuid: nanoid(),
+ '*妯″叿缂栧彿(鍞竴)': '',
+ '*妯″叿鍚嶇О': '',
+ '瑙勬牸鍨嬪彿': '',
+ '*鐘舵��': 'Y',
+ '*浠撳簱缂栫爜': '',
+ '*搴撲綅缂栫爜': '',
+ '棰勮瀵垮懡(娆�)': '',
+ '鍓╀綑瀵垮懡(娆�)': ''
+
+ })
+ }
+ if (this.sheetName.indexOf('妯″叿鍏宠仈浜у搧') !== -1 && this.activeName === '1') {
+ this.tableData[1].unshift({
+ uuid: nanoid(),
+ '妯″叿缂栫爜': '',
+ '浜у搧缂栫爜': ''
+ })
+ }
+
+ // 妯″叿鐐规椤�
+ if (this.sheetName.indexOf('妯″叿鐐规椤圭洰') !== -1) {
+ this.tableData[0].unshift({
+ uuid: nanoid(),
+ '*鐐规椤圭洰缂栧彿(鍞竴)': '',
+ '*鐐规椤圭洰鍚嶇О': '',
+ '瑕佹眰鎻忚堪': ''
+ })
+ }
+
+ // 妯″叿鐐规鏍囧噯
+ if (this.sheetName.indexOf('妯″叿鐐规鏍囧噯') !== -1 && this.activeName === '0') {
+ this.tableData[0].unshift({
+ uuid: nanoid(),
+ '*妯″叿鐐规鏍囧噯缂栧彿(鍞竴)': '',
+ '*妯″叿鐐规鏍囧噯鍚嶇О': '',
+ '鏍囧噯鎻忚堪': ''
+ })
+ }
+ if (this.sheetName.indexOf('鍏宠仈妯″叿鐐规閮ㄤ綅') !== -1 && this.activeName === '1') {
+ this.tableData[1].unshift({
+ uuid: nanoid(),
+ '*妯″叿鐐规鏍囧噯缂栧彿': '',
+ '*鐐规椤瑰簭鍙�': '',
+ '*妯″叿鐐规椤圭紪鍙�(鍞竴)': '',
+ '*妯″叿鐐规椤瑰悕绉�': '',
+ '鐐规椤硅姹�': ''
+ })
+ }
+
+ // 妯″叿淇濆吇椤�
+ if (this.sheetName.indexOf('妯″叿淇濆吇椤圭洰') !== -1) {
+ this.tableData[0].unshift({
+ uuid: nanoid(),
+ '*淇濆吇椤圭洰缂栧彿(鍞竴)': '',
+ '*淇濆吇椤圭洰鍚嶇О': '',
+ '瑕佹眰鎻忚堪': ''
+ })
+ }
+
+ // 妯″叿淇濆吇鏍囧噯
+ if (this.sheetName.indexOf('妯″叿淇濆吇鏍囧噯') !== -1 && this.activeName === '0') {
+ this.tableData[0].unshift({
+ uuid: nanoid(),
+ '*妯″叿淇濆吇鏍囧噯缂栧彿(鍞竴)': '',
+ '*妯″叿淇濆吇鏍囧噯鍚嶇О': '',
+ '鏍囧噯鎻忚堪': ''
+ })
+ }
+ if (this.sheetName.indexOf('鍏宠仈妯″叿淇濆吇閮ㄤ綅') !== -1 && this.activeName === '1') {
+ this.tableData[1].unshift({
+ uuid: nanoid(),
+ '*妯″叿淇濆吇鏍囧噯缂栧彿': '',
+ '*淇濆吇椤瑰簭鍙�': '',
+ '*妯″叿淇濆吇椤圭紪鍙�(鍞竴)': '',
+ '*妯″叿淇濆吇椤瑰悕绉�': '',
+ '淇濆吇椤硅姹�': ''
+ })
+ }
+
+ // 璁惧鐐规椤圭洰
+ if (this.sheetName.indexOf('璁惧鐐规椤圭洰') !== -1) {
+ this.tableData[0].unshift({
+ uuid: nanoid(),
+ '*鐐规椤圭洰缂栧彿(鍞竴)': '',
+ '*鐐规椤圭洰鍚嶇О': '',
+ '*鐐规鍛ㄦ湡': '',
+ '*鏄惁鎵爜': '',
+ '鐐规椤圭洰瑕佹眰': ''
+ })
+ }
+
+ // 璁惧鐐规鏍囧噯
+ if (this.sheetName.indexOf('璁惧鐐规鏍囧噯') !== -1 && this.activeName === '0') {
+ this.tableData[0].unshift({
+ uuid: nanoid(),
+ '*璁惧鐐规鏍囧噯缂栧彿(鍞竴)': '',
+ '*璁惧鐐规鏍囧噯鍚嶇О': '',
+ '*鐐规绠℃帶': '',
+ '鏍囧噯鎻忚堪': ''
+ })
+ }
+ if (this.sheetName.indexOf('璁惧鐐规閮ㄤ綅') !== -1 && this.activeName === '1') {
+ this.tableData[1].unshift({
+ uuid: nanoid(),
+ '*璁惧鐐规鏍囧噯缂栧彿(M)': '',
+ '*鐐规椤瑰簭鍙�': '',
+ '*璁惧鐐规閮ㄤ綅缂栧彿(鍞竴)': '',
+ '*璁惧鐐规閮ㄤ綅鍚嶇О': '',
+ '鐐规閮ㄤ綅瑕佹眰': '',
+ '*閫夋嫨鎵爜': '',
+ '*鐐规鍛ㄦ湡': ''
+ })
+ }
+
+ // 璁惧鐐规椤圭洰
+ if (this.sheetName.indexOf('璁惧淇濆吇椤圭洰') !== -1) {
+ this.tableData[0].unshift({
+ uuid: nanoid(),
+ '*淇濆吇椤圭洰缂栧彿(鍞竴)': '',
+ '*淇濆吇椤圭洰鍚嶇О': '',
+ '*鏄惁鎵爜': '',
+ '淇濆吇椤圭洰瑕佹眰': ''
+ })
+ }
+
+ // 璁惧淇濆吇鏍囧噯
+ if (this.sheetName.indexOf('璁惧淇濆吇鏍囧噯') !== -1 && this.activeName === '0') {
+ this.tableData[0].unshift({
+ uuid: nanoid(),
+ '*璁惧淇濆吇鏍囧噯缂栧彿(鍞竴)': '',
+ '*璁惧淇濆吇鏍囧噯鍚嶇О': '',
+ '*淇濆吇鍛ㄦ湡': '',
+ '鏍囧噯鎻忚堪': ''
+ })
+ }
+ if (this.sheetName.indexOf('璁惧淇濆吇閮ㄤ綅') !== -1 && this.activeName === '1') {
+ this.tableData[1].unshift({
+ uuid: nanoid(),
+ '*淇濆吇椤瑰簭鍙�': '',
+ '*璁惧淇濆吇鏍囧噯缂栧彿(M)': '',
+ '*璁惧淇濆吇閮ㄤ綅缂栧彿(鍞竴)': '',
+ '*璁惧淇濆吇閮ㄤ綅鍚嶇О': '',
+ '淇濆吇閮ㄤ綅瑕佹眰': '',
+ '*閫夋嫨鎵爜': ''
+ })
+ }
+
+ //
+ },
+ delRow(row) {
+ // 閽堝鍗晄heet
+ if (this.sheetName.length === 1) {
+ if (this.tableData[0].length > 1) {
+ return this.tableData[0].splice(this.tableData[0].findIndex(i => i.uuid === row.uuid), 1)
+ } else {
+ return this.$message.info('蹇呴』瑕佹湁涓�鏉℃暟鎹紒')
+ }
+ }
+ // 閽堝涓や釜 sheet
+ if (this.sheetName.length === 2) {
+ if (this.activeName === '0') {
+ if (this.tableData[0].length > 1) {
+ return this.tableData[0].splice(this.tableData[0].findIndex(i => i.uuid === row.uuid), 1)
+ } else {
+ return this.$message.info('蹇呴』瑕佹湁涓�鏉℃暟鎹紒')
+ }
+ }
+ if (this.activeName === '1') {
+ if (this.tableData[1].length > 1) {
+ return this.tableData[1].splice(this.tableData[1].findIndex(i => i.uuid === row.uuid), 1)
+ } else {
+ return this.$message.info('蹇呴』瑕佹湁涓�鏉℃暟鎹紒')
+ }
+ }
+ }
+ },
+ reset() {
+ this.tableData = []
+ this.tableHeader = []
+ this.sheetName = []
+ this.excelCode = ''
+ },
+ handleClose() {
+ this.dialogTableData = []
+ },
+ // 鑾峰彇妯℃澘
+ async getExcelModelData() {
+ const { data: res } = await ExcelModelData()
+ this.excelArr = res
+
+ if (window.location.hash.indexOf('?') !== -1) {
+ this.excelCode = window.location.hash.split('?')[1].split('=')[1]
+ }
+ },
+ // 妯℃澘涓嬭浇
+ async getExcel() {
+ const res = await DownLoadExcel({ FileCode: this.excelCode })
+ if (res.code === '200') {
+ window.location.href = res.data
+ }
+ },
+ async getSelectArr() {
+ await this.getPrentOrganization()
+ await this.getPostPermissions()
+ await this.getRolePermissions()
+ await this.getGroupsPermissions()
+ },
+ // 缁勭粐鏋舵瀯绾ц仈閫夋嫨鍣�
+ async getPrentOrganization() {
+ const { data: res } = await PrentOrganization()
+ this.orgArr = res
+ this.orgOptions = arrayToTree(res, {
+ parentProperty: 'parent_id',
+ customID: 'torg_code',
+ childrenProperty: 'children'
+ })
+ },
+ // 鑾峰彇宀椾綅涓嬫媺鏁扮粍
+ async getPostPermissions() {
+ const { data: res } = await PostPermissions()
+ this.postArr = res
+ },
+ // 鑾峰彇瑙掕壊涓嬫媺鏁扮粍
+ async getRolePermissions() {
+ const { data: res } = await RolePermissions()
+ this.roleArr = res
+ },
+ // 鑾峰彇鐝粍涓嬫媺鏁扮粍
+ async getGroupsPermissions() {
+ const { data: res } = await GroupsPermissions()
+ this.groupArr = res
+ },
+ headerCellStyle({ row, column, rowIndex, columnIndex }) {
+ let string = ''
+ if (column.label.indexOf('*') !== -1 && rowIndex === 0) {
+ string = 'background:#ffc000;'
+ } else if (column.label.indexOf('*') === -1 && rowIndex === 0) {
+ string = 'background:#00b0f0;'
+ }
+ // else if (rowIndex === 0 && columnIndex === 0) {
+ // string = 'background:red;color:#fff'
+ // }
+ return string + 'padding: 5px 0; fontWeight: 500;'
+ },
+ cellStyle() {
+ const option = {
+ padding: '5px 0'
+ }
+ return option
+ },
+ indexRender(h, { column }) {
+ return [
+ h('span', { style: 'color:#FFF' }, column.label)
+ ]
+ },
+ operationRender(h, { column }) {
+ return [
+ h('span', { style: 'color:#FFF' }, column.label)
+ ]
+ },
+ addRedStar(h, { column }) {
+ if (column.label.indexOf('*') !== -1) { // 蹇呭~瀛楁
+ return [
+ h('span', { style: 'color:#F56C6C' }, ' * '),
+ h('span', { style: 'color:#FFF' }, column.label.substring(1))
+ ]
+ } else { // 闈炲繀濉瓧娈�
+ return [
+ // h('span', { style: 'color:#F56C6C' }, ' * '),
+ h('span', { style: 'color:#FFF' }, column.label)
+ ]
+ }
+ },
+ // 鏁版嵁鎻愪氦鍓嶅幓闄ょ┖鏍兼柟娉�
+ tableDataTrim() {
+ if (this.tableData.length === 1) { // 涓�涓猻heet
+ this.tableData[0].forEach(i => {
+ for (const j in i) {
+ i[j] = i[j].trim()
+ }
+ })
+ }
+
+ if (this.tableData.length === 2) { // 涓や釜sheet
+ this.tableData[0].forEach(i => {
+ for (const j in i) {
+ i[j] = i[j].trim()
+ }
+ })
+ this.tableData[1].forEach(i => {
+ for (const j in i) {
+ i[j] = i[j].trim()
+ }
+ })
+ }
+ }
+
+ }
+}
+</script>
+
+<style lang="scss">
+::v-deep .el-dialog__body {
+ padding: 10px 10px !important;
+}
+
+</style>
diff --git a/src/views/systemSetting/encodingRules.vue b/src/views/systemSetting/encodingRules.vue
index 7efcb65..104f823 100644
--- a/src/views/systemSetting/encodingRules.vue
+++ b/src/views/systemSetting/encodingRules.vue
@@ -88,7 +88,7 @@
sortable="custom"
/>
<el-table-column
- prop="type"
+ prop="Type"
label="鑿滃崟绫诲瀷"
sortable="custom"
/>
@@ -335,10 +335,11 @@
customID: 'menucode',
childrenProperty: 'children'
})
- this.menuOptions = this.menuOptionsAll.filter(i => i.type === this.dialogForm.type)
+ // this.menuOptions = this.menuOptionsAll.filter(i => i.Type === this.dialogForm.type)
+
},
radioChange() {
- this.menuOptions = this.menuOptionsAll.filter(i => i.type === this.dialogForm.type)
+ this.menuOptions = this.menuOptionsAll.filter(i => i.Type === this.dialogForm.type)
},
async getEncodingRules() {
const res = await EncodingRules(this.form)
@@ -374,8 +375,10 @@
this.operation = operation
this.dialogVisible = true
+
this.$nextTick(() => {
- this.dialogForm.type = row.type
+ this.dialogForm.type = row.Type
+ this.radioChange()
let parentCode = ''
this.menuOptions.forEach(item => {
@@ -387,7 +390,7 @@
})
}
})
-
+ console.log(parentCode,row.menucode)
this.$refs.cascader.checkedValue = [parentCode, row.menucode]
this.dialogForm.rightcode = row.menucode
this.dialogForm.incbit = row.incbit
diff --git a/src/views/workOrder/produceOrderList.vue b/src/views/workOrder/produceOrderList.vue
index a734cf0..65c40f0 100644
--- a/src/views/workOrder/produceOrderList.vue
+++ b/src/views/workOrder/produceOrderList.vue
@@ -1,11 +1,1127 @@
-<template />
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
+ <el-button
+ v-waves
+ icon="el-icon-refresh-right"
+ @click="syncERP"
+ >鍚屾ERP
+ </el-button>
+ <div style="display: flex">
+ <el-button
+ v-waves
+ type="primary"
+ icon="el-icon-bottom"
+ @click="batchHandle"
+ >鎵归噺涓嬭揪
+ </el-button>
+ </div>
+
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="杞﹂棿鍚嶇О" style=" display: flex;">
+ <el-select
+ v-model="form.wkshopcode"
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in wkshopcodeArr"
+ :key="item.torg_code"
+ :label="item.torg_name"
+ :value="item.torg_code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="璁㈠崟鐘舵��" style=" display: flex;">
+ <el-select
+ v-model="form.erporderstus"
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in erporderstusArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="璁㈠崟缂栧彿" style=" display: flex;">
+ <el-input v-model="form.erpordercode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+
+ <el-form-item label="閿�鍞鍗�" style=" display: flex;">
+ <el-input v-model="form.saleordercode" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+
+ <el-form-item v-show="isExpandForm" label="浜у搧缂栫爜" style=" display: flex;">
+ <el-input v-model="form.partcode" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+
+ <el-form-item v-show="isExpandForm" label="浜у搧鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.partname" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="浜у搧瑙勬牸" style=" display: flex;">
+ <el-input v-model="form.partspec" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+
+ <!-- <el-form-item-->
+ <!-- v-show="isExpandForm"-->
+ <!-- label="棰勮寮�宸ユ椂闂�"-->
+ <!-- label-width="100px"-->
+ <!-- style="display: flex;font-size: 14px;align-items: center"-->
+ <!-- >-->
+ <!-- <el-date-picker-->
+ <!-- v-model="form.paystartdate"-->
+ <!-- type="daterange"-->
+ <!-- range-separator="~"-->
+ <!-- class="timeMini"-->
+ <!-- size="mini"-->
+ <!-- style="width: 200px;display: flex;line-height: 34px;height: 34px;"-->
+ <!-- :clearable="false"-->
+ <!-- start-placeholder="寮�濮嬫棩鏈�"-->
+ <!-- end-placeholder="缁撴潫鏃ユ湡"-->
+ <!-- />-->
+ <!-- </el-form-item>-->
+ <!-- <el-form-item-->
+ <!-- v-show="isExpandForm"-->
+ <!-- label="棰勮瀹屽伐鏃堕棿"-->
+ <!-- label-width="100px"-->
+ <!-- style=" display: flex;font-size: 14px;align-items: center"-->
+ <!-- >-->
+ <!-- <el-date-picker-->
+ <!-- v-model="form.payenddate"-->
+ <!-- type="daterange"-->
+ <!-- :clearable="false"-->
+ <!-- class="timeMini"-->
+ <!-- range-separator="~"-->
+ <!-- start-placeholder="寮�濮嬫棩鏈�"-->
+ <!-- style="width: 200px;display: flex;line-height: 34px ;height: 34px ;"-->
+ <!-- end-placeholder="缁撴潫鏃ユ湡"-->
+ <!-- size="mini"-->
+ <!-- />-->
+ <!-- </el-form-item>-->
+ </div>
+
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+
+ </el-form>
+
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+40)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+40)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ @selection-change="handleSelectionChange"
+ >
+ <!-- @row-click="rowClick"-->
+ <el-table-column
+ type="selection"
+ width="50"
+ :selectable="selected"
+ />
+ <!-- <el-table-column-->
+ <!-- width="50"-->
+ <!-- fixed-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <el-radio-->
+ <!-- v-model="radioSelectedId"-->
+ <!-- :label="row.id"-->
+ <!-- style="color: transparent;padding-left: 10px;"-->
+ <!-- />-->
+ <!-- <!– @change.native="getCurrentRow(row.id)"–>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <el-table-column
+ prop="status"
+ label="璁㈠崟鐘舵��"
+ sortable="custom"
+ width="110"
+ show-tooltip-when-overflow
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.status==='NEW'">鏂拌鍗�</div>
+ <div v-if="row.status==='CREATING'">閮ㄥ垎涓嬭揪</div>
+ <div v-if="row.status==='CREATED'">鍏ㄩ儴涓嬭揪</div>
+ <div v-if="row.status==='CLOSED'">宸插叧闂�</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="wo"
+ label="璁㈠崟缂栧彿"
+ show-tooltip-when-overflow
+ sortable="custom"
+ min-width="150"
+ />
+ <el-table-column
+ show-tooltip-when-overflow
+ prop="saleOrderCode"
+ label="閿�鍞鍗�"
+ sortable="custom"
+ width="150"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="partcode"
+ label="浜у搧缂栫爜"
+ sortable="custom"
+ show-tooltip-when-overflow
+ min-width="150"
+ />
+ <el-table-column
+ prop="partname"
+ label="浜у搧鍚嶇О"
+ sortable="custom"
+ min-width="200"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="partspec"
+ label="浜у搧瑙勬牸"
+ sortable="custom"
+ show-tooltip-when-overflow
+ min-width="110"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.partspec">{{ row.partspec }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="qty"
+ label="璁㈠崟鏁伴噺"
+ width="150"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="relse_qty"
+ label="宸蹭笅鍗曟暟閲�"
+ show-tooltip-when-overflow
+ width="150"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="clerkuser"
+ label="閿�鍞笟鍔″憳"
+ show-tooltip-when-overflow
+ width="150"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.clerkuser">{{ row.clerkuser }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="wkshp_name"
+ label="鐢熶骇杞﹂棿"
+ show-tooltip-when-overflow
+ sortable="custom"
+ width="150"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.wkshp_name">{{ row.wkshp_name }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <!-- <el-table-column-->
+ <!-- prop="planstartdate"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- label="棰勮寮�宸ユ椂闂�"-->
+ <!-- sortable="custom"-->
+ <!-- width="130"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.planstartdate">{{ row.planstartdate.substring(0, 11) }}</div>-->
+ <!-- <div v-else>/</div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ <!-- <el-table-column-->
+ <!-- prop="planenddate"-->
+ <!-- label="棰勮瀹屽伐鏃堕棿"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- sortable="custom"-->
+ <!-- width="130"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.planenddate">{{ row.planenddate.substring(0, 11) }}</div>-->
+ <!-- <div v-else>/</div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ <el-table-column
+ prop="saleOrderDeliveryDate"
+ label="棰勮浜や粯鏃ユ湡"
+ sortable="custom"
+ show-tooltip-when-overflow
+ width="130"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.saleOrderDeliveryDate">{{ row.saleOrderDeliveryDate.substring(0, 11) }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ show-tooltip-when-overflow
+ prop="createuser"
+ label="鍒涘缓浜哄憳"
+ sortable="custom"
+ width="150"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.createuser">{{ row.createuser }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="createdate"
+ label="鍒涘缓鏃堕棿"
+ width="130"
+ show-tooltip-when-overflow
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.createdate">{{ row.createdate.substring(0, 11) }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鎿嶄綔"
+ fixed="right"
+ width="120"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-tooltip class="item" effect="dark" content="涓嬭揪" placement="top">
+ <!-- <el-button v-waves type="text" @click="edit('edit',row)">涓嬭揪</el-button>-->
+ <i
+ class="el-icon-bottom"
+ :style="{color:$store.state.settings.theme}"
+ style="cursor: pointer;margin-left: 5px"
+ @click="edit('edit',row)"
+ />
+ </el-tooltip>
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="璁㈠崟鍏抽棴" placement="top">
+ <i
+ class="el-icon-switch-button"
+ :style="{color:$store.state.settings.theme}"
+ style="cursor: pointer;margin-left: 15px"
+ @click="orderClose(row.id)"
+ />
+ </el-tooltip>
+
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="璁㈠崟鍒犻櫎" placement="top">
+ <i
+ class="el-icon-delete"
+ :style="{color:$store.state.settings.theme}"
+ style="cursor: pointer;margin-left: 15px"
+ @click="orderDel(row.id)"
+ />
+ </el-tooltip>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes,jumper"
+ popper-class="select_bottom"
+ @pagination="getErpOrderSearch"
+ />
+ </div>
+
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'涓嬭揪'"
+ :visible.sync="dialogVisible"
+ width="860px"
+ top="15vh"
+ :close-on-click-modal="false"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="106px">
+ <el-form-item label="璁㈠崟缂栧彿" prop="erpordercode">
+ <el-input v-model="dialogForm.erpordercode" disabled style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="浜у搧缂栫爜" prop="partcode">
+ <el-input v-model="dialogForm.partcode" disabled style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="浜у搧鍚嶇О" prop="partname">
+ <el-input v-model="dialogForm.partname" disabled style="width: 200px" />
+ </el-form-item>
+
+ <el-form-item label="浜у搧瑙勬牸" prop="partspec">
+ <el-input v-model="dialogForm.partspec" disabled style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鐢熶骇杞﹂棿" prop="wkshopname">
+ <el-input v-model="dialogForm.wkshopname" disabled style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="鎵�灞炰粨搴�" prop="warehousename">
+ <el-input v-model="dialogForm.warehousename" disabled style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="璁㈠崟鏁伴噺" prop="erpqty">
+ <el-input v-model="dialogForm.erpqty" disabled style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="宸蹭笅鍗曟暟" prop="relse_qty">
+ <el-input
+ v-model="dialogForm.relse_qty"
+ disabled
+ oninput="value=value.replace(/[^0-9.]/g,'')"
+ style="width: 200px"
+ />
+ </el-form-item>
+ <el-form-item label="涓嬪崟鏁伴噺" prop="markqty">
+ <el-input
+ v-model="dialogForm.markqty"
+ oninput="value=value.replace(/[^0-9.]/g,'')"
+ style="width: 200px"
+ />
+ </el-form-item>
+ <el-form-item label="涓嬪崟鍗曟暟" prop="ordernum">
+ <el-input
+ v-model="dialogForm.ordernum"
+ oninput="value=value.replace(/[^0-9.]/g,'')"
+ style="width: 200px"
+ />
+ </el-form-item>
+
+ <el-form-item label="閿�鍞笟鍔″憳" prop="">
+ <el-input
+ v-model="dialogForm.clerkuser"
+ disabled
+ style="width: 200px"
+ />
+ </el-form-item>
+ <el-form-item label="棰勮浜や粯鏃ユ湡" prop="saleOrderDeliveryDate">
+ <el-date-picker
+ v-model="dialogForm.saleOrderDeliveryDate"
+ type="date"
+ size="mini"
+ :clearable="false"
+ class="dateMini"
+ :picker-options="pickerOptions"
+ format="yyyy-MM-dd"
+ placeholder="閫夋嫨鏃ユ湡"
+ :disabled="dialogForm.saleOrderDeliveryDateIsDisabled"
+ />
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="dialogVisibleConfirm"
+ >涓� 杈�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+ </div>
+</template>
<script>
+import Pagination from '@/components/Pagination'
+import { handleDatetime } from '@/utils/global'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import {
+ ClosedErpOrder,
+ DeleteErpOrder,
+ ErpOrderSearch,
+ MarkBatchSaveErpOrder,
+ MarkSaveErpOrder
+} from '@/api/WorkOrder'
+import { SeaveSearchErpOrder } from '@/api/ErpSyncMes'
+import { PrentOrganizationNoCompany } from '@/api/GeneralBasicData'
+
+const SER_HZ = /^[\u4e00-\u9fa5]+$/
export default {
- name: 'ProduceOrderList'
+ name: 'SCDD',
+ components: {
+ Pagination
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ const validateName = (rule, value, callback) => {
+ if (!value) {
+ return callback(new Error('璇疯緭鍏ョ紪鐮�'))
+ } else {
+ if (SER_HZ.test(value)) {
+ return callback(new Error('缂栫爜涓嶈兘涓轰腑鏂�'))
+ } else {
+ callback()
+ }
+ }
+ }
+ return {
+ mouseHoverType: 'mouseout',
+ isExpandForm: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ form: {
+ wkshopcode: '', // 杞﹂棿缂栫爜
+ erporderstus: '', // 璁㈠崟鐘舵�佺爜
+ erpordercode: '', // 璁㈠崟缂栧彿
+ partcode: '', // 浜у搧缂栫爜
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 浜у搧瑙勬牸
+ creatuser: '', // 鍒涘缓浜哄憳
+ saleordercode: '', // 閿�鍞鍗�
+ // paystartdate: '', // 浜や粯鏃堕棿
+ paystartdate: '', // 棰勮寮�宸ユ椂闂�
+ payenddate: '', // 棰勮瀹屽伐鏃堕棿
+ createdate: '', // 鍒涘缓鏃堕棿
+ prop: 'wo', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ erporderstusArr: [
+ { code: 'NEW', name: '鏂拌鍗�' },
+ { code: 'CREATING', name: '閮ㄥ垎涓嬭揪' },
+ { code: 'CREATED', name: '鍏ㄩ儴涓嬭揪' },
+ { code: 'CLOSED', name: '宸插叧闂�' }
+ ],
+ wkshopcodeArr: [],
+ total: 10,
+ radioSelectedId: '',
+ tableData: [],
+ dialogVisible: false,
+ dialogForm: {
+ erporderid: '', // 璁㈠崟id
+ sbid: '', // 璁㈠崟鏄庣粏id
+ erpordercode: '', // 璁㈠崟缂栧彿
+ saleordercode: '', // 閿�鍞鍗�
+
+ partcode: '', // 浜у搧缂栫爜
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 浜у搧瑙勬牸
+
+ wkshopcode: '', // 杞﹂棿缂栫爜
+ wkshopname: '', // 杞﹂棿鍚嶇О
+
+ warehousecode: '', // 浠撳簱缂栫爜
+ warehousename: '', // 浠撳簱鍚嶇О
+
+ erpqty: '', // 璁㈠崟鏁伴噺
+ markqty: '', // 涓嬪崟鏁伴噺
+ ordernum: '', // 涓嬪崟鍗曟暟
+ relse_qty: '', // 宸蹭笅鍗曟暟閲�
+
+ clerkuser: '', // 閿�鍞笟鍔″憳
+
+ saleOrderDeliveryDate: '' // 棰勮浜や粯鏃ユ湡
+ },
+ operation: '',
+ dialogFormRules: {
+ // OrgType: [
+ // { required: true, message: '璇疯緭鍏ラ�夋嫨绫诲瀷', trigger: ['blur', 'change'] }
+ // ],
+ // OrgCode: [
+ // { required: true, validator: validateName, trigger: ['blur', 'change'] }
+ // ],
+ markqty: [
+ { required: true, message: '璇疯緭鍏ヤ笅鍗曟暟閲�', trigger: ['blur', 'change'] }
+ ],
+ ordernum: [
+ { required: true, message: '璇疯緭鍏ヤ笅鍗曞崟鏁�', trigger: ['blur', 'change'] }
+ ],
+ saleOrderDeliveryDate: [
+ { required: true, message: '璇烽�夋嫨棰勮浜や粯鏃ユ湡', trigger: ['blur', 'change'] }
+ ]
+
+ },
+ pickerOptions: {
+ disabledDate(time) {
+ return time.getTime() < Date.now() - 8.64e7
+ }
+ },
+ multipleSelection: []
+
+ // expireTimeOption: {
+ // disabledDate(time) {
+ // return time.getTime() > Date.now() - 8.64e6 // 濡傛灉娌℃湁鍚庨潰鐨�-8.64e6灏辨槸涓嶅彲浠ラ�夋嫨浠婂ぉ鐨�
+ // }
+ // }
+
+ }
+ },
+ created() {
+ this.getErpOrderSearch()
+ // this.getPartSelect()// 鑾峰彇浜у搧缂栫爜淇℃伅
+
+ this.getPrentOrganizationNoCompany()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+ },
+ methods: {
+ async getPrentOrganizationNoCompany() {
+ const { data: res } = await PrentOrganizationNoCompany()
+ this.wkshopcodeArr = res
+ },
+ async getErpOrderSearch() {
+ console.log(this.form, 1)
+ let tempDate2 = this.form.paystartdate
+ if (tempDate2.length > 0) {
+ tempDate2 = handleDatetime(tempDate2[0]) + '~' + handleDatetime(tempDate2[1])
+ }
+
+ let tempDate = this.form.payenddate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+
+ const data = {
+ wkshopcode: this.form.wkshopcode,
+ erporderstus: this.form.erporderstus, // 璁㈠崟鐘舵�佺爜
+ erpordercode: this.form.erpordercode, // 璁㈠崟缂栧彿
+ partcode: this.form.partcode, // 浜у搧缂栫爜
+ partname: this.form.partname, // 浜у搧鍚嶇О
+ partspec: this.form.partspec, // 浜у搧瑙勬牸
+ paystartdate: tempDate2, // 浜や粯鏃堕棿
+ payenddate: tempDate, // 浜や粯鏃堕棿
+ saleordercode: this.form.saleordercode,
+ creatuser: this.form.creatuser, // 鍒涘缓浜哄憳
+ // createdate: this.form.createdate.toString().length > 0 ? handleDatetime(this.form.createdate) : '', // 鍒涘缓鏃堕棿
+
+ prop: this.form.prop, // 鎺掑簭瀛楁
+ order: this.form.order, // 鎺掑簭瀛楁
+ page: this.form.page, // 绗嚑椤�
+ rows: this.form.rows // 姣忛〉澶氬皯鏉�
+
+ }
+
+ const res = await ErpOrderSearch(data)
+ this.tableData = res.data
+ this.total = res.count
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getErpOrderSearch()
+ },
+ // 鍚屾ERP
+ syncERP() {
+ const loading = this.$loading({
+ lock: true,
+ text: '姝e湪鍚屾ERP锛岃绋嶇瓑...',
+ spinner: 'el-icon-loading',
+ customClass: 'osloading',
+ background: 'rgba(0, 0, 0, 0.7)'
+ })
+
+ SeaveSearchErpOrder().then(res => {
+ console.log(res, 11)
+ if (res.code === '200') {
+ setTimeout(() => {
+ this.getErpOrderSearch()
+ loading.close()
+ this.$message.success('鍚屾鎴愬姛锛�')
+ }, 2000)
+ }
+ // else if (res.code === '300') {
+ // setTimeout(() => {
+ // loading.close()
+ // this.$message.error('鍚屾澶辫触锛�')
+ // }, 10000)
+ // }
+ }).catch(e => {
+ loading.close()
+ })
+ },
+ // 鏌ヨ
+ search() {
+ this.getErpOrderSearch()
+ },
+ // 閲嶇疆
+ reset() {
+ this.form.wkshopcode = ''
+ this.form.erporderstus = ''
+ this.form.erpordercode = ''
+ this.form.partcode = ''
+ this.form.partname = ''
+ this.form.partspec = ''
+ this.form.paystartdate = ''
+ this.form.payenddate = ''
+ this.form.creatuser = ''
+ this.form.erpordercode = ''
+ this.form.createdate = ''
+ this.getErpOrderSearch()
+ },
+ // 鍗曢�夋閫変腑鑾峰彇褰撳墠琛屼俊鎭�
+ // getCurrentRow(id) {
+ // this.radioSelectedId = id
+ // },
+ // rowClick(row) {
+ // this.radioSelectedId = row.id
+ // },
+
+ // 璁㈠崟鍒犻櫎
+ orderDel(id) {
+ this.tableData.forEach(item => {
+ if (item.id === id) {
+ if (item.status === 'CLOSED') {
+ return this.$message.info('姝よ鍗曞凡鍏抽棴锛屾棤娉曞垹闄わ紒')
+ } else {
+ this.$confirm('鏄惁纭鍏抽棴璁㈠崟?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ DeleteErpOrder({ erpordercode: item.wo, erporderid: id }).then(res => {
+ if (res.code === '200') {
+ this.$message.success('璁㈠崟鍒犻櫎鎴愬姛!')
+ this.getErpOrderSearch()
+ }
+ })
+ }).catch(() => {
+ this.$message.info('宸插彇娑堝垹闄わ紒')
+ })
+ }
+ }
+ })
+ },
+ // 璁㈠崟鍏抽棴
+ async orderClose(id) {
+ this.tableData.forEach(item => {
+ if (item.id === id) {
+ if (item.status !== 'NEW') {
+ return this.$message.info('姝よ鍗曢潪鏂拌鍗曪紝鏃犳硶鍏抽棴锛�')
+ } else {
+ this.$confirm('鏄惁纭鍏抽棴璁㈠崟?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ ClosedErpOrder({ erpordercode: item.wo, erporderid: id }).then(res => {
+ if (res.code === '200') {
+ this.$message.success('璁㈠崟鍏抽棴鎴愬姛!')
+ this.getErpOrderSearch()
+ }
+ })
+ }).catch(() => {
+ this.$message.info('宸插彇娑堝叧闂紒')
+ })
+ }
+ }
+ })
+ },
+ batchHandle() {
+ this.$confirm('鏄惁鎵归噺涓嬭揪?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ if (this.multipleSelection.length === 0) {
+ return this.$message.info('璇峰厛閫夋嫨璁㈠崟锛�')
+ }
+ // console.log(JSON.parse(JSON.stringify(this.multipleSelection)))
+ const data = []
+ this.multipleSelection.forEach(i => {
+ data.push({
+ 'erporderid': i.id,
+ 'sbid': i.sbid,
+ 'erpordercode': i.wo,
+ 'partcode': i.partcode,
+ 'wkshopcode': i.wkshp_code,
+ 'warehousecode': i.stck_code,
+ 'erpqty': i.qty,
+ 'markqty': i.qty,
+ 'ordernum': 1,
+ 'clerkuser': i.clerkuser,
+ 'relse_qty': i.qty,
+ 'saleordercode': i.saleOrderCode,
+ // 'saleOrderDeliveryDate': i.saleOrderDeliveryDate
+ 'saleOrderDeliveryDate': handleDatetime(new Date()) + ' 00:00:00'
+ })
+ })
+ // console.log(JSON.parse(JSON.stringify(data)))
+ MarkBatchSaveErpOrder(data).then(res => {
+ if (res.code === '200') {
+ this.multipleSelection = []
+ this.$message.success('鎵归噺涓嬭揪鎴愬姛锛�')
+ this.getErpOrderSearch()
+ } else {
+ this.$message.error('鎵归噺涓嬭揪澶辫触锛�')
+ }
+ })
+ }).catch(() => {
+ this.$message.info('宸插彇娑堜笅杈撅紒')
+ })
+ },
+ selected(row, index) {
+ return row.status === 'NEW'
+ },
+ handleSelectionChange(val) {
+ this.multipleSelection = val
+ },
+ // 鏂板鎸夐挳
+ add(operation) {
+ this.operation = operation
+ this.dialogVisible = true
+ },
+ // 淇敼鎸夐挳
+ edit(operation, row) {
+ if (parseFloat(row.qty) === parseFloat(row.relse_qty) || row.status === 'CLOSED') {
+ return this.$message.info('姝ゅ伐鍗曞凡鍏ㄩ儴涓嬭揪锛�')
+ }
+
+ this.operation = operation
+ this.dialogVisible = true
+
+ this.$nextTick(() => {
+ this.dialogForm.sbid = row.sbid
+ this.dialogForm.erporderid = row.id
+ this.dialogForm.erpordercode = row.wo
+ this.dialogForm.saleordercode = row.saleOrderCode
+
+ this.dialogForm.partcode = row.partcode
+ this.dialogForm.partname = row.partname
+ this.dialogForm.partspec = row.partspec
+
+ this.dialogForm.wkshopcode = row.wkshp_code
+ this.dialogForm.wkshopname = row.wkshp_name
+
+ this.dialogForm.warehousecode = row.stck_code
+ this.dialogForm.warehousename = row.stck_name
+
+ this.dialogForm.saleOrderDeliveryDate = row.saleOrderDeliveryDate
+
+ this.dialogForm.erpqty = row.qty
+ this.dialogForm.markqty = parseFloat(row.qty) - parseFloat(row.relse_qty)
+ this.dialogForm.ordernum = 1
+ this.dialogForm.relse_qty = row.relse_qty
+ this.dialogForm.clerkuser = row.clerkuser
+ })
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm = {
+ erporderid: '', // 璁㈠崟id
+ sbid: '', // 璁㈠崟鏄庣粏id
+ erpordercode: '', // 璁㈠崟缂栧彿
+ saleordercode: '', // 閿�鍞鍗�
+
+ partcode: '', // 浜у搧缂栫爜
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 浜у搧瑙勬牸
+
+ wkshopcode: '', // 杞﹂棿缂栫爜
+ wkshopname: '', // 杞﹂棿鍚嶇О
+
+ warehousecode: '', // 浠撳簱缂栫爜
+ warehousename: '', // 浠撳簱鍚嶇О
+
+ erpqty: '', // 璁㈠崟鏁伴噺
+ markqty: '', // 涓嬪崟鏁伴噺
+ ordernum: '', // 涓嬪崟鍗曟暟
+ relse_qty: '', // 宸蹭笅鍗曟暟閲�
+
+ saleOrderDeliveryDate: '' // 棰勮浜や粯鏃ユ湡
+ }
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.dialogForm.markqty = parseFloat(this.dialogForm.markqty)
+ this.dialogForm.erpqty = parseFloat(this.dialogForm.erpqty)
+ this.dialogForm.relse_qty = parseFloat(this.dialogForm.relse_qty)
+ this.dialogForm.ordernum = parseFloat(this.dialogForm.ordernum)
+ if (this.dialogForm.markqty < 1 || this.dialogForm.markqty > this.dialogForm.erpqty - this.dialogForm.relse_qty) {
+ return this.$message.info('涓嬪崟鏁伴噺瓒呭嚭鍙笅鍗曟暟鐨勮寖鍥达紒')
+ }
+
+ if (this.dialogForm.ordernum < 1 || this.dialogForm.ordernum > this.dialogForm.markqty) {
+ return this.$message.info('涓嬪崟鍗曟暟瓒呭嚭鍙笅鍗曞崟鏁扮殑鑼冨洿锛�')
+ }
+
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ this.$store.state.app.buttonIsDisabled = true
+ const data = {
+ 'sbid': this.dialogForm.sbid,
+ 'erporderid': this.dialogForm.erporderid,
+ 'erpordercode': this.dialogForm.erpordercode,
+ 'saleordercode': this.dialogForm.saleordercode,
+ 'partcode': this.dialogForm.partcode,
+ 'wkshopcode': this.dialogForm.wkshopcode,
+ 'warehousecode': this.dialogForm.warehousecode,
+ 'clerkuser': this.dialogForm.clerkuser,
+ 'erpqty': this.dialogForm.erpqty,
+ 'markqty': this.dialogForm.markqty,
+ 'ordernum': this.dialogForm.ordernum,
+ 'relse_qty': this.dialogForm.relse_qty,
+ 'saleOrderDeliveryDate': handleDatetime(this.dialogForm.saleOrderDeliveryDate) + ' 00:00:00'
+ }
+
+ MarkSaveErpOrder(data).then(res => {
+ if (res.code === '200') {
+ this.dialogVisible = false
+ this.$message.success('涓嬭揪鎴愬姛锛�')
+ this.getErpOrderSearch()
+ this.$store.state.app.buttonIsDisabled = false
+ } else {
+ this.$message.error('涓嬭揪澶辫触锛�')
+ }
+ })
+ }
+ })
+ },
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 250
+
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ }
+ }
}
</script>
-<style scoped>
+<!--鍏叡椤甸潰鏍峰紡-->
+<style lang="scss" scoped>
+$main_color: #42b983;
+::v-deep .el-range__icon {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-separator {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-input {
+ font-size: 14px;
+}
+
+::v-deep .el-range-separator {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+.el-icon-share, .el-icon-delete, .el-icon-edit-outline {
+ color: $main_color;
+ cursor: pointer;
+}
+
+.el-icon-edit-outline {
+ margin-right: 15px;
+}
+
+//::v-deep .el-button--primary, .el-button--default, .el-button--info {
+// height: 34px;
+// display: flex;
+// align-items: center;
+// padding: 0 15px;
+//}
+
+::v-deep .el-button--primary {
+ //background-color: $main_color !important;
+}
+
+::v-deep .el-button--default {
+ background-color: #f8f8fa;
+ border: none;
+}
+
+::v-deep .el-input__inner {
+ height: 34px;
+ line-height: 34px;
+ //color: #a7a7a7;
+}
+
+::v-deep .el-dialog__body {
+ padding: 20px 100px !important;
+}
+
+::v-deep .dialogVisibleRoles .el-dialog__body {
+ padding: 20px 20px !important;
+}
+
+::v-deep .importPickerClass .el-dialog__body {
+ padding: 20px 20px !important;
+}
+
+::v-deep .el-dialog__footer {
+ display: flex;
+ justify-content: flex-end;
+}
+
+::v-deep .el-table .caret-wrapper {
+ transform: scale(0.8);
+}
+
+::v-deep .cell {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
+
+::v-deep .el-table::before {
+ height: 0;
+}
+
+::v-deep .el-table__body-wrapper {
+ background-color: #f8f8fa;
+}
+
+::v-deep .el-table__body .el-table__row.hover-row td {
+ background-color: #eaecef;
+}
+
+::v-deep .el-form--inline .el-form-item__label {
+ color: #a7a7a7;
+}
+
+.body ::v-deep .el-divider {
+ border: 1px solid #eee;
+ width: 99%;
+ margin: 10px auto;
+}
+
+.body ::v-deep .el-form-item {
+ margin-bottom: 0;
+}
+
+.userDialogVisible ::v-deep .el-form-item {
+ margin-bottom: 0;
+}
+
+.elTableDiv {
+ ::v-deep .el-radio__label {
+ display: none;
+ }
+}
+
+.tableFixed {
+ ::v-deep .el-table__fixed-right {
+ height: 100% !important;
+ }
+
+ ::v-deep .el-table__fixed {
+ height: 100% !important;
+ }
+}
+
+.dateMini {
+ ::v-deep .el-input__inner {
+ line-height: 34px;
+ height: 34px;
+ width: 200px;
+ display: flex;
+ font-size: 14px !important;
+ align-items: center !important;
+ }
+
+ ::v-deep .el-input__prefix {
+ margin-top: -3px;
+ }
+}
+::v-deep .el-icon-delete {
+ cursor: pointer;
+ margin-right: 0px !important;
+}
</style>
+<style>
+.el-table .custom-row {
+ background: #f8f8fa;
+}
+
+.osloading {
+ font-size: 26px !important;
+}
+
+.el-loading-text {
+ font-size: 26px !important;
+}
+</style>
+
diff --git a/src/views/workOrder/workOrderClose.vue b/src/views/workOrder/workOrderClose.vue
index 753842b..4435910 100644
--- a/src/views/workOrder/workOrderClose.vue
+++ b/src/views/workOrder/workOrderClose.vue
@@ -1,11 +1,3443 @@
-<template />
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+
+ <div class="bodyTopButtonGroup">
+ <el-button v-waves icon="el-icon-switch-button" type="success" @click="orderClose()">宸ュ崟鍏抽棴</el-button>
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="杞﹂棿鍚嶇О" style=" display: flex;">
+ <el-select
+ v-model="form.wkshopcode"
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in wkshopcodeArr"
+ :key="item.torg_code"
+ :label="item.torg_name"
+ :value="item.torg_code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="宸ュ崟鐘舵��" style=" display: flex;">
+ <el-select
+ v-model="form.mesorderstus"
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ filterable
+ @change="erporderstusChange"
+ >
+ <el-option
+ v-for="item in erporderstusArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="宸ュ崟缂栧彿" style=" display: flex;">
+ <el-input v-model="form.mesordercode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="婧愬崟鍗曞彿" style="display: flex;">
+ <el-input v-model="form.sourceorder" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="閿�鍞鍗�" style="display: flex;">
+ <el-input v-model="form.saleordercode" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鍗曟嵁绫诲瀷" style=" display: flex;">
+ <el-select
+ v-model="form.ordertype"
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <!-- @change="mesordertypeChange"-->
+ <el-option
+ v-for="item in ordertypeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="浜у搧缂栫爜" style=" display: flex;">
+ <el-input v-model="form.partcode" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="浜у搧鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.partname" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="浜у搧瑙勬牸" style=" display: flex;">
+ <el-input v-model="form.partspec" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鍒涘缓浜哄憳" style=" display: flex;">
+ <el-input v-model="form.creatuser" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鍒涘缓鏃堕棿" style=" display: flex;">
+ <!-- <el-date-picker-->
+ <!-- v-model="form.createdate"-->
+ <!-- type="daterange"-->
+ <!-- :clearable="false"-->
+ <!-- range-separator="~"-->
+ <!-- start-placeholder="寮�濮嬫棩鏈�"-->
+ <!-- end-placeholder="缁撴潫鏃ユ湡"-->
+ <!-- size="mini"-->
+ <!-- />-->
+ <el-date-picker
+ v-model="form.createdate"
+ type="date"
+ size="mini"
+ :clearable="false"
+ class="dateMini"
+ format="yyyy-MM-dd"
+ placeholder="閫夋嫨鏃ユ湡"
+ />
+ </el-form-item>
+ </div>
+
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+80)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+80)+'px'}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ @row-click="rowClick"
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column
+ type="selection"
+ width="50"
+ :selectable="selected"
+ />
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ label="搴忓彿"
+ fixed
+ />
+ <el-table-column
+ prop="status"
+ label="宸ュ崟鐘舵��"
+ sortable="custom"
+ width="110"
+ show-tooltip-when-overflow
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.status==='NEW'">鏂板伐鍗�</div>
+ <!-- <div v-if="row.status==='CREATING'">鎵ц涓�</div>-->
+ <!-- <div v-if="row.status==='CREATED'">宸插叧闂�</div>-->
+ <div v-if="row.status==='ALLO'">宸叉淳鍙�</div>
+ <div v-if="row.status==='START'">寮�宸�</div>
+ <div v-if="row.status==='CLOSED'">宸插叧闂�</div>
+ <div v-if="row.status==='NOCLOSED'">鏈叧闂�</div>
+ <div v-if="row.status==='NOSCHED'">寰呮帓绋�</div>
+ <div v-if="row.status==='SCHED'">宸叉帓绋�</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="wo_code"
+ label="宸ュ崟缂栧彿"
+ show-tooltip-when-overflow
+ sortable="custom"
+ min-width="160"
+ />
+ <el-table-column
+ prop="m_po"
+ label="婧愬崟鍗曞彿"
+ sortable="custom"
+ show-tooltip-when-overflow
+ min-width="160"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.m_po">{{ row.m_po }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="saleOrderCode"
+ label="閿�鍞鍗�"
+ sortable="custom"
+ show-tooltip-when-overflow
+ min-width="160"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="wotype"
+ label="鍗曟嵁绫诲瀷"
+ sortable="custom"
+ show-tooltip-when-overflow
+ min-width="120"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.wotype==='PO'">鏍囧噯宸ュ崟</div>
+ <div v-else-if="row.wotype==='FO'">鎶ュ簾琛ュ崟</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="partcode"
+ label="浜у搧缂栫爜"
+ show-tooltip-when-overflow
+ sortable="custom"
+ min-width="120"
+ />
+ <el-table-column
+ prop="partname"
+ min-width="150"
+ label="浜у搧鍚嶇О"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partspec"
+ label="浜у搧瑙勬牸"
+ sortable="custom"
+ width="110"
+ show-tooltip-when-overflow
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.partspec">{{ row.partspec }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="plan_qty"
+ label="宸ュ崟鏁�"
+ sortable="custom"
+ show-tooltip-when-overflow
+ width="100"
+ />
+ <el-table-column
+ prop="wkshp_name"
+ label="鐢熶骇杞﹂棿"
+ show-tooltip-when-overflow
+ sortable="custom"
+ width="120"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.wkshp_name">{{ row.wkshp_name }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="saleOrderDeliveryDate"
+ label="棰勮浜や粯鏃ユ湡"
+ sortable="custom"
+ width="130"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.saleOrderDeliveryDate">{{ row.saleOrderDeliveryDate.substring(0, 11) }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <!-- <el-table-column-->
+ <!-- prop="data_sources"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- label="鏁版嵁鏉ユ簮"-->
+ <!-- sortable="custom"-->
+ <!-- width="120"-->
+ <!-- />-->
+
+ <el-table-column
+ prop="lm_user"
+ show-tooltip-when-overflow
+ label="鍒涘缓浜哄憳"
+ sortable="custom"
+ width="120"
+ />
+ <el-table-column
+ prop="lm_date"
+ label="鍒涘缓鏃堕棿"
+ show-tooltip-when-overflow
+ width="160"
+ sortable="custom"
+ />
+ <el-table-column
+ label="鎿嶄綔"
+ width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <!-- <el-tooltip class="item" effect="dark" content="淇敼" placement="top">-->
+ <!-- <i-->
+ <!-- class="el-icon-edit-outline"-->
+ <!-- :style="{color:$store.state.settings.theme}"-->
+ <!-- @click.stop="edit('edit',row)"-->
+ <!-- />-->
+ <!-- </el-tooltip>-->
+
+ <!-- <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">-->
+ <!-- <i class="el-icon-delete" :style="{color:$store.state.settings.theme}" @click.stop="del(row)" />-->
+ <!-- </el-tooltip>-->
+
+ <!-- <el-tooltip class="item" effect="dark" content="鎵撳嵃宸ュ崟" placement="top">-->
+ <!-- <!– <i–>-->
+ <!-- <!– class="el-icon-tickets"–>-->
+ <!-- <!– style="cursor: pointer;color: #42b983;margin-right: 15px"–>-->
+ <!-- <!– @click="check(row)"–>-->
+ <!-- <!– />–>-->
+ <!-- <i-->
+ <!-- :style="{color:$store.state.settings.theme}"-->
+ <!-- class="el-icon-printer"-->
+ <!-- style="cursor: pointer;margin-right: 15px"-->
+ <!-- @click.stop="handlePrint(row.wo_code)"-->
+ <!-- />-->
+ <!-- </el-tooltip>-->
+
+ <el-tooltip class="item" effect="dark" content="璇︽儏" placement="top">
+ <i
+ class="el-icon-view"
+ style="cursor: pointer;"
+ :style="{color:$store.state.settings.theme}"
+ @click.stop="edit('view',row)"
+ />
+ </el-tooltip>
+
+ <el-tooltip class="item" effect="dark" content="宸ュ崟鍏抽棴" placement="top">
+ <i
+ class="el-icon-switch-button"
+ style="cursor: pointer;margin-left: 15px"
+ :style="{color:$store.state.settings.theme}"
+ @click.stop="orderClose(row)"
+ />
+ </el-tooltip>
+
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes,jumper"
+ popper-class="select_bottom"
+ @pagination="getMesOrderClosedSearch"
+ />
+
+ <!-- <div class="elTableDiv">-->
+ <!-- <el-table-->
+ <!-- :data="tableDataDetail"-->
+ <!-- border-->
+ <!-- height="210px"-->
+ <!-- :row-class-name="tableRowClassName"-->
+ <!-- highlight-current-row-->
+ <!-- :header-cell-style="this.$headerCellStyle"-->
+ <!-- :cell-style="this.$cellStyle"-->
+ <!-- >-->
+ <!-- <!– <el-table-column–>-->
+ <!-- <!– width="50"–>-->
+ <!-- <!– type="index"–>-->
+ <!-- <!– prop="搴忓彿"–>-->
+ <!-- <!– fixed–>-->
+ <!-- <!– /> –>-->
+ <!-- <el-table-column-->
+ <!-- width="50"-->
+ <!-- prop="seq"-->
+ <!-- label="搴忓彿"-->
+ <!-- fixed-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- prop="wo_code"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- label="宸ュ崟缂栧彿"-->
+ <!-- width="160"-->
+ <!-- />-->
+
+ <!-- <!– <el-table-column–>-->
+ <!-- <!– prop="partcode"–>-->
+ <!-- <!– label="浜у搧缂栫爜"–>-->
+ <!-- <!– width="150"–>-->
+ <!-- <!– show-tooltip-when-overflow–>-->
+ <!-- <!– />–>-->
+ <!-- <!– <el-table-column–>-->
+ <!-- <!– prop="partname"–>-->
+ <!-- <!– label="浜у搧鍚嶇О"–>-->
+ <!-- <!– width="200"–>-->
+ <!-- <!– show-tooltip-when-overflow–>-->
+ <!-- <!– />–>-->
+
+ <!-- <el-table-column-->
+ <!-- label="宸ュ簭缂栫爜"-->
+ <!-- prop="step_code"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- width="150"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- label="宸ュ簭鍚嶇О"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- prop="stepname"-->
+ <!-- width="150"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- label="宸茬敓浜ф暟閲�"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- prop="produceq_qty"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- label="鍚堟牸鏁伴噺"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- prop="good_qty"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- label="涓嶈壇鏁伴噺"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- prop="ng_qty"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- label="宸ュ簾鏁伴噺"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- prop="laborbad_qty"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- label="鏂欏簾鏁伴噺"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- prop="materielbad_qty"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- label="寰呬骇鏁伴噺"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- prop="delive_qty"-->
+ <!-- />-->
+ <!-- <!– <el-table-column–>-->
+ <!-- <!– label="鎿嶄綔"–>-->
+ <!-- <!– width="120"–>-->
+ <!-- <!– fixed="right"–>-->
+ <!-- <!– >–>-->
+ <!-- <!– <template slot-scope="{row}">–>-->
+ <!-- <!– <div class="operationClass">–>-->
+ <!-- <!– <el-tooltip class="item" effect="dark" content="鎵撳嵃宸ュ簭" placement="top">–>-->
+ <!-- <!– <i–>-->
+ <!-- <!– v-if="tableDataDetail.length!==row.seq"–>-->
+ <!-- <!– class="el-icon-printer"–>-->
+ <!-- <!– :style="{color:$store.state.settings.theme}"–>-->
+ <!-- <!– style="cursor: pointer;margin-right: 15px"–>-->
+ <!-- <!– @click="supplementSmallClick(row)"–>-->
+ <!-- <!– />–>-->
+ <!-- <!– </el-tooltip>–>-->
+ <!-- <!– <el-tooltip class="item" effect="dark" content="琛ユ墦鐢熶骇鍏ュ簱鏉$爜" placement="top">–>-->
+ <!-- <!– <i–>-->
+ <!-- <!– v-if="tableDataDetail.length===row.seq"–>-->
+ <!-- <!– class=" el-icon-camera"–>-->
+ <!-- <!– :style="{color:$store.state.settings.theme}"–>-->
+ <!-- <!– style="cursor: pointer;margin-right: 15px"–>-->
+ <!-- <!– @click="getProductInHouseLabCode(row.wo_code)"–>-->
+ <!-- <!– />–>-->
+ <!-- <!– </el-tooltip>–>-->
+ <!-- <!– </div>–>-->
+ <!-- <!– </template>–>-->
+ <!-- <!– </el-table-column>–>-->
+ <!-- </el-table>-->
+ <!-- </div>-->
+ </div>
+ <!--鏂板娲惧彂瀵硅瘽妗�-->
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'娲惧彂'"
+ :visible.sync="dialogVisible"
+ width="1200px"
+ top="8vh"
+ :close-on-click-modal="false"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <el-form
+ ref="dialogForm"
+ inline
+ :rules="dialogFormRules"
+ :model="dialogForm"
+ label-width="110px"
+ >
+
+ <el-divider content-position="left">鍩烘湰淇℃伅</el-divider>
+
+ <el-form-item
+ label="宸ュ崟鐘舵��"
+ prop="mesorderstus"
+ >
+ <el-select
+ v-model="dialogForm.mesorderstus"
+ disabled
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in erporderstusArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+
+ <el-form-item label="宸ュ崟缂栧彿" prop="mesordercode">
+ <!-- <el-input v-model="dialogForm.mesordercode" :disabled="operation!=='add'" style="width: 200px" />-->
+ <el-input v-model="dialogForm.mesordercode" disabled style="width: 200px" />
+ </el-form-item>
+ <!-- <div style="display: flex">-->
+ <el-form-item label="宸ュ崟绫诲瀷" prop="mesorderstus">
+ <el-select
+ v-model="dialogForm.ordertype"
+ :popper-append-to-body="false"
+ style="width: 200px"
+ :disabled="operation!=='add'"
+ placeholder="璇烽�夋嫨"
+ @change="mesordertypeChange"
+ >
+ <el-option
+ v-for="item in ordertypeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <!-- <div style="display: flex;flex-wrap: nowrap">-->
+ <el-form-item label="婧愬崟鍗曞彿">
+ <el-input
+ v-model="dialogForm.sourceorder"
+ :disabled="dialogForm.ordertype==='PO'"
+ style="width: 200px"
+ >
+ <el-button
+ slot="append"
+ icon="el-icon-search"
+ :disabled="operation!=='add'||dialogForm.ordertype==='PO'"
+ @click="mesordertsourcesearchclick"
+ />
+ </el-input>
+ </el-form-item>
+ <!-- <el-button-->
+ <!-- v-waves-->
+ <!-- type="primary"-->
+ <!-- style="padding: 0 10px;margin-left: -8px;margin-top: 3px"-->
+ <!-- class="el-icon-search"-->
+ <!-- :disabled="operation!=='add'||dialogForm.ordertype==='PO'"-->
+ <!-- @click="mesordertsourcesearchclick"-->
+ <!-- />-->
+ <!-- </div>-->
+ <!-- </div>-->
+ <el-form-item label="宸ュ崟鏁伴噺" prop="mesqty">
+ <el-input
+ v-model="dialogForm.mesqty"
+ oninput="value=value.replace(/[^\d]/g,'')"
+ style="width: 200px"
+ />
+ <!-- oninput="value=value.replace(/[^0-9*.{1}0-9*]/g,'')"-->
+ </el-form-item>
+ <el-form-item
+ label="浜у搧鍚嶇О/缂栫爜"
+ prop="partcode"
+ >
+ <el-select
+ v-model="dialogForm.partcode"
+ filterable
+ :disabled="operation!=='add'"
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ @change="partcodeChangeDialog"
+ >
+ <el-option
+ v-for="item in partArr"
+ :key="item.partcode"
+ :label="item.partname+'/'+item.partcode"
+ :value="item.partcode"
+ />
+ </el-select>
+ </el-form-item>
+ <!-- <el-form-item v-if="operation!=='add'" label="浜у搧鍚嶇О" prop="partname">-->
+ <!-- <el-input v-model="dialogForm.partname" disabled style="width: 200px" />-->
+ <!-- </el-form-item>-->
+ <!-- <el-form-item v-if="operation!=='add'" label="浜у搧缂栫爜">-->
+ <!-- <el-input v-model="dialogForm.partcode" disabled style="width: 200px" />-->
+ <!-- </el-form-item>-->
+ <el-form-item label="浜у搧瑙勬牸" prop="partspec">
+ <el-input v-model="dialogForm.partspec" disabled style="width: 200px" />
+ </el-form-item>
+ <!-- :disabled="dialogForm.partcode===''"-->
+ <el-form-item label="鎵�灞炶溅闂�" prop="wkshopcode">
+ <el-select
+ v-model="dialogForm.wkshopcode"
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px;"
+ placeholder="璇烽�夋嫨杞﹂棿"
+ >
+ <el-option
+ v-for="item in wkshopArr"
+ :key="item.torg_code"
+ :label="item.torg_name"
+ :value="item.torg_code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="棰勮浜や粯鏃ユ湡" prop="deliverydate">
+ <el-date-picker
+ v-model="dialogForm.deliverydate"
+ type="date"
+ size="mini"
+ :clearable="false"
+ class="dateMini"
+ :picker-options="pickerOptions"
+ format="yyyy-MM-dd"
+ value-format="yyyy-MM-dd"
+ placeholder="閫夋嫨鏃ユ湡"
+ />
+ <!-- :disabled="dialogForm.deliverydate"-->
+ </el-form-item>
+
+ <el-divider content-position="left">宸ュ簭淇℃伅</el-divider>
+
+ <div style="display: flex;align-items: center">
+ <!-- <div style="font-weight: bolder">宸ュ簭閫夋嫨锛�</div>-->
+ <!-- <el-drag-select-->
+ <!-- v-model="stepSelectedValue"-->
+ <!-- style="width:930px;"-->
+ <!-- multiple-->
+ <!-- placeholder="璇烽�夋嫨鐩稿搴斿伐搴�"-->
+ <!-- @change="stepSelectedValueChange"-->
+ <!-- >-->
+ <!-- <el-option-->
+ <!-- v-for="item in stepSelectArr"-->
+ <!-- :key="item.stepcode"-->
+ <!-- :label="item.stepname"-->
+ <!-- :value="item.stepcode"-->
+ <!-- />-->
+ <!-- </el-drag-select>-->
+ </div>
+
+ <el-table
+ ref="stepTableDataRef"
+ :data="stepTableData"
+ border
+ :row-class-name="tableRowClassName"
+ height="300"
+ style="width: 100%;margin-top: 15px;"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ row-key="stepcode"
+ >
+ <el-table-column
+ type="index"
+ label="搴忓彿"
+ width="50"
+ />
+ <!-- <el-table-column-->
+ <!-- prop="stepcode"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- label="宸ュ簭缂栫爜"-->
+ <!-- />-->
+ <el-table-column
+ prop="stepname"
+ label="宸ュ簭鍚嶇О"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="stepprice"
+ label="鐢熶骇鍗曚环"
+ show-tooltip-when-overflow
+ >
+ <!-- <template slot-scope="{row}">-->
+ <!-- <el-input-->
+ <!-- v-model="row.stepprice"-->
+ <!-- placeholder="璇疯緭鍏ュ伐搴忓崟浠�"-->
+ <!-- oninput="value=value.replace(/[^0-9.]/g,'')"-->
+ <!-- style="width: 100%"-->
+ <!-- @click.stop=""-->
+ <!-- />-->
+ <!-- </template>-->
+ </el-table-column>
+ <el-table-column
+ prop="produceq_qty"
+ label="宸茬敓鎴愭暟閲�"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="good_qty"
+ label="鍚堟牸鏁伴噺"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="ng_qty"
+ label="涓嶈壇鏁伴噺"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="laborbad_qty"
+ label="宸ュ簾鏁伴噺"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="materielbad_qty"
+ label="鏂欏簾鏁伴噺"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="delive_qty"
+ label="寰呬骇鏁伴噺"
+ show-tooltip-when-overflow
+ />
+ <!-- <el-table-column-->
+ <!-- label="鎿嶄綔"-->
+ <!-- width="120"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div class="operationClass">-->
+ <!-- <!– <el-tooltip class="item" effect="dark" content="绉诲姩" placement="top">–>-->
+ <!-- <i-->
+ <!-- class="el-icon-rank"-->
+ <!-- :style="{color:$store.state.settings.theme}"-->
+ <!-- style="cursor: move"-->
+ <!-- />-->
+ <!-- <!– </el-tooltip>–>-->
+ <!-- <!– @click="edit('edit',row)"–>-->
+
+ <!-- <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">-->
+ <!-- <i-->
+ <!-- class="el-icon-delete"-->
+ <!-- :style="{color:$store.state.settings.theme}"-->
+ <!-- style="margin-left: 15px;"-->
+ <!-- @click="stepDel(row)"-->
+ <!-- />-->
+ <!-- </el-tooltip>-->
+ <!-- </div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ </el-table>
+
+ </el-form>
+
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <!-- <el-button v-waves v-if="operation==='add'" type="primary" @click="dialogVisibleConfirmPreview('add')">棰勮</el-button>-->
+ <el-button
+ v-if="operation!=='view'"
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="dialogVisibleConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ <!-- 宸ュ簭浠诲姟瀵硅瘽妗�-->
+ <el-dialog
+ v-el-drag-dialog
+ title="宸ュ簭浠诲姟"
+ :visible.sync="dialogVisibleTask"
+ width="840px"
+ top="15vh"
+ class="dialogVisibleSearch"
+ :close-on-click-modal="false"
+ @close="dialogVisibleTaskClose"
+ >
+ <el-button
+ v-waves
+ style="margin-bottom: 15px"
+ type="primary"
+ @click="supplementClick"
+ >琛ユ墦
+ </el-button>
+ <el-table
+ :data="taskTableData"
+ border
+ :row-class-name="tableRowClassName"
+ height="300"
+ style="width: 100%;"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ >
+ <el-table-column
+ prop="seq"
+ width="50"
+ label="搴忓彿"
+ fixed
+ />
+ <el-table-column
+ prop="wo_code"
+ show-tooltip-when-overflow
+ label="宸ュ崟缂栧彿"
+ width="200"
+ />
+ <el-table-column
+ prop="stepcode"
+ label="宸ュ簭缂栫爜"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="stepname"
+ show-tooltip-when-overflow
+ label="宸ュ簭鍚嶇О"
+ />
+ <!-- <el-table-column-->
+ <!-- prop="flwtype"-->
+ <!-- label="宸ュ簭绫诲瀷"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.flwtype==='W'">澶栧崗</div>-->
+ <!-- <div v-if="row.flwtype==='Z'">鑷埗</div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ <!-- <el-table-column-->
+ <!-- prop="descr"-->
+ <!-- label="宸ュ簭鎻忚堪"-->
+ <!-- />-->
+ <el-table-column
+ prop="plan_qty"
+ show-tooltip-when-overflow
+ label="浠诲姟鏁伴噺"
+ />
+ <el-table-column
+ prop="good_qty"
+ show-tooltip-when-overflow
+ label="鍚堟牸鏁伴噺"
+ />
+ <el-table-column
+ prop="ng_qty"
+ show-tooltip-when-overflow
+ label="涓嶈壇鏁伴噺"
+ />
+ <el-table-column
+ label="鎿嶄綔"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button v-waves type="text" style="padding: 0;" @click="supplementSmallClick(row)">琛ユ墦</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleBack">杩� 鍥�</el-button>
+ <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>-->
+ </div>
+ </span>
+ </el-dialog>
+
+ <!-- 婧愬崟鍗曞彿瀵硅瘽妗�-->
+ <el-dialog
+ v-el-drag-dialog
+ title="婧愬崟鍗曞彿"
+ :visible.sync="dialogVisibleSource"
+ width="1200px"
+ top="10vh"
+ class="dialogVisibleSearch"
+ :close-on-click-modal="false"
+ @close="dialogVisibleSourceClose"
+ >
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="sourceForm"
+ :model="sourceForm"
+ label-width="100px"
+ inline
+ style="display: flex;justify-content: space-between"
+ >
+ <div class="elForm" style="justify-content: flex-start">
+ <!-- <el-form-item-->
+ <!-- label="棰勮寮�宸ユ椂闂�"-->
+ <!-- label-width="100px"-->
+ <!-- style=" display: flex;font-size: 14px;margin-top: 3px"-->
+ <!-- >-->
+ <!-- <el-date-picker-->
+ <!-- v-model="sourceForm.paystartdate"-->
+ <!-- type="daterange"-->
+ <!-- range-separator="~"-->
+ <!-- class="timeMini"-->
+ <!-- size="mini"-->
+ <!-- style="width: 200px;display: flex;line-height: 34px;height: 34px;font-size: 14px!important;"-->
+ <!-- :clearable="false"-->
+ <!-- start-placeholder="寮�濮嬫棩鏈�"-->
+ <!-- end-placeholder="缁撴潫鏃ユ湡"-->
+ <!-- />-->
+ <!-- <!– :picker-options="expireTimeOption"–>-->
+
+ <!-- </el-form-item>-->
+ <!-- <el-form-item-->
+ <!-- label="棰勮瀹屽伐鏃堕棿"-->
+ <!-- label-width="100px"-->
+ <!-- style=" display: flex;font-size: 14px;margin-top: 3px"-->
+ <!-- >-->
+ <!-- <el-date-picker-->
+ <!-- v-model="sourceForm.payenddate"-->
+ <!-- type="daterange"-->
+ <!-- :clearable="false"-->
+ <!-- class="timeMini"-->
+ <!-- range-separator="~"-->
+ <!-- start-placeholder="寮�濮嬫棩鏈�"-->
+ <!-- style="width: 200px;display: flex;line-height: 34px ;height: 34px ;font-size: 14px !important;"-->
+ <!-- end-placeholder="缁撴潫鏃ユ湡"-->
+ <!-- size="mini"-->
+ <!-- />-->
+ <!-- </el-form-item>-->
+ <el-form-item label="宸ュ崟鐘舵��" style=" display: flex;">
+ <el-select
+ v-model="sourceForm.mesordercode"
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in erporderstusArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="宸ュ崟缂栧彿" style=" display: flex;">
+ <el-input v-model="sourceForm.sourceorder" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="浜у搧缂栫爜" style=" display: flex;">
+ <el-input v-model="sourceForm.partcode" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+
+ <el-form-item v-show="isExpandDialog" label="浜у搧鍚嶇О" style=" display: flex;">
+ <el-input v-model="sourceForm.partname" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandDialog" label="浜у搧瑙勬牸" style=" display: flex;">
+ <el-input v-model="sourceForm.partspec" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandDialog" label="鍒涘缓浜哄憳" style=" display: flex;">
+ <el-input v-model="sourceForm.creatuser" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+
+ <el-form-item
+ v-show="isExpandDialog"
+ label="鍒涘缓鏃堕棿"
+ label-width="100px"
+ style=" display: flex;font-size: 14px;margin-top: 3px"
+ >
+ <el-date-picker
+ v-model="sourceForm.createdate"
+ type="daterange"
+ range-separator="~"
+ class="timeMini"
+ size="mini"
+ style="width: 200px;display: flex;line-height: 34px;height: 34px;font-size: 14px!important;"
+ :clearable="false"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ />
+ <!-- :picker-options="expireTimeOption"-->
+
+ </el-form-item>
+
+ </div>
+
+ <div style="display: flex;align-items: start;margin-top: 3px;z-index: 2;justify-content: end">
+ <el-button v-waves type="primary" icon="el-icon-search" @click="sourceSearch">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="sourceReset">閲嶇疆</el-button>
+ </div>
+
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverTypeDialog==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandDialog?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverTypeDialog=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverTypeDialog==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandDialog?'doubleDown':'doubleUp'"
+ @click="isExpandDialog=!isExpandDialog"
+ @mouseout="mouseHoverTypeDialog=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ :data="sourceTableData"
+ :height="isExpandDialog?(tableHeight+60)+'px':(tableHeight+140)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandDialog?(tableHeight+60)+'px':(tableHeight+140)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sourceSortChange"
+ @row-click="getCurrentRowSource"
+ >
+ <!-- <el-table-column-->
+ <!-- type="selection"-->
+ <!-- width="50"-->
+ <!-- />-->
+ <el-table-column
+ width="50"
+ fixed
+ >
+ <template slot-scope="{row}">
+ <el-radio
+ v-model="radioSelectedId"
+ :label="row.id"
+ style="color: transparent;padding-left: 10px;"
+ />
+ <!-- @change.native="getCurrentRowSource(row.id)"-->
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="RowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <!-- <el-table-column-->
+ <!-- prop="status"-->
+ <!-- label="宸ュ崟鐘舵��"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- sortable="custom"-->
+ <!-- width="110"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.status==='NEW'">鏂拌鍗�</div>-->
+ <!-- <div v-if="row.status==='CREATING'">閮ㄥ垎涓嬭揪</div>-->
+ <!-- <div v-if="row.status==='CREATED'">鍏ㄩ儴涓嬭揪</div>-->
+ <!-- <div v-if="row.status==='CLOSED'">宸插叧闂�</div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ <el-table-column
+ label="宸ュ崟缂栧彿"
+ prop="wo_code"
+ show-tooltip-when-overflow
+ min-width="150"
+ sortable="custom"
+ >
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.m_po">{{ row.m_po }}</div>-->
+ <!-- <div v-else>{{ row.wo_code }}</div>-->
+ <!-- </template>-->
+ </el-table-column>
+ <el-table-column
+ prop="partcode"
+ label="浜у搧缂栫爜"
+ sortable="custom"
+ show-tooltip-when-overflow
+ min-width="150"
+ />
+ <el-table-column
+ prop="partname"
+ label="浜у搧鍚嶇О"
+ sortable="custom"
+ show-tooltip-when-overflow
+ min-width="150"
+ />
+ <el-table-column
+ prop="partspec"
+ label="浜у搧瑙勬牸"
+ show-tooltip-when-overflow
+ sortable="custom"
+ min-width="110"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.partspec">{{ row.partspec }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="plan_qty"
+ label="浠诲姟鏁伴噺"
+ width="150"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+
+ <el-table-column
+ prop="bad_qty"
+ label="鎶ュ簾鏁伴噺"
+ width="150"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+
+ <!-- <el-table-column-->
+ <!-- prop="relse_qty"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- label="宸蹭笅鍗曟暟閲�"-->
+ <!-- width="150"-->
+ <!-- sortable="custom"-->
+ <!-- />-->
+ <el-table-column
+ prop="wkshp_name"
+ label="鐢熶骇杞﹂棿"
+ show-tooltip-when-overflow
+ sortable="custom"
+ width="150"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.wkshp_name">{{ row.wkshp_name }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="plan_startdate"
+ label="棰勮寮�宸ユ椂闂�"
+ show-tooltip-when-overflow
+ sortable="custom"
+ width="130"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.plan_startdate">{{ row.plan_startdate.substring(0, 11) }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="plan_enddate"
+ label="棰勮瀹屽伐鏃堕棿"
+ show-tooltip-when-overflow
+ sortable="custom"
+ width="130"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.plan_enddate">{{ row.plan_enddate.substring(0, 11) }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="lm_user"
+ label="鍒涘缓浜哄憳"
+ show-tooltip-when-overflow
+ sortable="custom"
+ width="150"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.lm_user">{{ row.lm_user }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="lm_date"
+ label="鍒涘缓鏃堕棿"
+ show-tooltip-when-overflow
+ width="130"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.lm_date">{{ row.lm_date.substring(0, 11) }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <!-- <el-table-column-->
+ <!-- label="鎿嶄綔"-->
+ <!-- fixed="right"-->
+ <!-- width="80"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div class="operationClass">-->
+ <!-- <el-tooltip class="item" effect="dark" content="涓嬭揪" placement="top">-->
+ <!-- <!– <el-button v-waves type="text" @click="edit('edit',row)">涓嬭揪</el-button>–>-->
+ <!-- <i-->
+ <!-- class="el-icon-bottom"-->
+ <!-- style="color:#42b983;cursor: pointer;margin-left: 5px"-->
+ <!-- @click="edit('edit',row)"-->
+ <!-- />-->
+ <!-- </el-tooltip>-->
+ <!-- </div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="sourceFormTotal"
+ :page.sync="sourceForm.page"
+ :limit.sync="sourceForm.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getMesBadOrderSearch"
+ />
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleSourceBack">杩� 鍥�</el-button>
+ <el-button v-waves type="primary" @click="dialogVisibleSourceConfirm">纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ <!--鎵撳嵃棰勮瀵硅瘽妗� 澶ф爣绛�-->
+ <el-dialog
+ v-el-drag-dialog
+ title=""
+ :visible.sync="dialogVisibleApprove"
+ width="812px"
+ class="dialogVisibleConfirmClass"
+ append-to-body
+ :close-on-click-modal="false"
+ @close="dialogVisibleConfirmClose"
+ >
+ <!-- 瑕佹墦鍗扮殑鍖哄煙 -->
+ <div id="printMe" style="padding: 30px">
+ <div style="font-size: 26px; text-align: center">娴佺▼鍗�</div>
+
+ <div style="display: flex;justify-content: space-around;margin-top: 20px; position: relative;">
+ <div style="width: 78%">
+ <el-form
+ ref="formApprove"
+ :model="formApprove"
+ label-width="80px"
+ inline
+ style="display: flex;justify-content: space-between"
+ >
+ <div class="elForm">
+ <el-form-item label="宸ュ崟缂栧彿:" class="formContent">
+ {{ formApprove.mesordercode }}
+ </el-form-item>
+ <el-form-item label="婧愬崟鍗曞彿:" class="formContent">
+ {{ formApprove.m_po }}
+ </el-form-item>
+ <el-form-item label="浜у搧缂栫爜:" class="formContent">
+ {{ formApprove.partcode }}
+ </el-form-item>
+ <el-form-item label="浜у搧鍚嶇О:" class="formContent">
+ {{ formApprove.partname }}
+ </el-form-item>
+ <el-form-item label="浜у搧瑙勬牸:" class="formContent">
+ {{ formApprove.partspec }}
+ </el-form-item>
+ <el-form-item label="宸ュ崟鏁伴噺:" class="formContent">
+ {{ formApprove.plan_qty }}
+ </el-form-item>
+ <!-- <el-form-item label="宸ヨ壓璺嚎:" class="formContent">-->
+ <!-- {{ formApprove.routename }}-->
+ <!-- </el-form-item>-->
+ <el-form-item label="鎵撳嵃浜哄憳:" class="formContent">
+ <!-- {{ localStorage.getItem('username') }}-->
+ {{ formApprove.routename }}
+ </el-form-item>
+ <el-form-item label="鎵撳嵃鏃堕棿:" class="formContent">
+ {{ formApprove.lm_date }}
+ </el-form-item>
+ </div>
+ </el-form>
+ </div>
+ <div
+ id="qrCode"
+ style="width: 22%;height:90px;
+ margin-top: 20px;
+ overflow-y: scroll;display: flex;
+ justify-content: center;
+ position: relative;"
+ >
+ <div id="qrCode0" ref="qrCodeDiv0" />
+ </div>
+ <div style="background-color: #fff;width: 20px;height:120px; position: absolute;right: 0" />
+ <div
+ style="z-index: 10;background-color:transparent;width: 120px;height:120px; position: absolute;right: 21px"
+ />
+ </div>
+
+ <!-- <div style="width:100%;height: 30px;border-bottom: 1px solid #eee;margin-bottom: 20px" />-->
+ <el-table
+ id="table"
+ :data="tableDataPrint"
+ border
+ class="tableDataPrint"
+ :header-cell-style="{ background: '#c0c0c0',textAlign:'center',color:'#000',borderColor:'#000'}"
+ :cell-style="{textAlign: 'center',color:'#000',borderColor:'#000'}"
+ style="width: 100%;margin-top: 20px;text-align: center;border-color: #000"
+ >
+ <el-table-column
+ id="column0"
+ prop="seq"
+ label="宸ュ簭鍙�"
+ width="70"
+ align="center"
+ />
+ <el-table-column
+ id="column1"
+ prop="stepqrcode"
+ label="宸ュ簭浜岀淮鐮�"
+ width="100"
+ align="center"
+ >
+ <template slot-scope="{row}">
+ <div :id="'qrCode'+row.seq" :ref="'qrCodeDiv'+row.seq" class="tableColumn" />
+ </template>
+ </el-table-column>
+ <el-table-column
+ id="column2"
+ prop="stepname"
+ label="宸ュ簭"
+ width="120"
+ align="center"
+ />
+ <el-table-column
+ id="column3"
+ prop="plan_qty"
+ label="鍔犲伐鏁伴噺"
+ width="100"
+ align="center"
+ />
+ <el-table-column
+ id="column4"
+ prop="good_qty"
+ width="100"
+ align="center"
+ label="鍚堟牸鏁伴噺"
+ />
+ <el-table-column
+ id="column5"
+ width="100"
+ prop="ng_qty"
+ align="center"
+ label="涓嶈壇鏁伴噺"
+ />
+ <el-table-column
+ id="column6"
+ prop="desc"
+ align="center"
+ width="120"
+ label="澶囨敞"
+ />
+ </el-table>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleBackPreview">杩� 鍥�</el-button>
+ <!-- <el-button v-waves v-if="operation==='add'" type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>-->
+ <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�/鎵� 鍗�</el-button>-->
+ <el-button v-waves v-print="printObj" type="primary">鎵� 鍗�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ <!--鎵撳嵃棰勮椤甸潰 灏忔爣绛�-->
+ <el-dialog
+ v-el-drag-dialog
+ title="棰勮"
+ :visible.sync="dialogVisible2"
+ width="1000"
+ top="10vh"
+ :close-on-click-modal="false"
+ @close="dialogVisible2Close"
+ >
+ <div style="height: 650px;overflow:auto;">
+ <!-- 涓嬫媺妗嗛�夋嫨鎵撳嵃灏哄-->
+ <div v-if="!isLastPrint" style="display: flex;align-items: center;margin: 0 0 20px 0">
+ <div>閫夋嫨鎵撳嵃灏哄锛�</div>
+ <el-select
+ v-model="printSize"
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ @change="printSizeChange"
+ >
+
+ <el-option
+ v-for="item in printSizeSelectArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </div>
+ <!-- 瑕佹墦鍗扮殑鍖哄煙 -->
+ <!-- <div id="printMe2" :style="{paddingLeft:'10px',paddingTop: '5px'}">-->
+ <div v-if="!isLastPrint" :style="printMe2StylePadding(printSize)">
+ <!-- 80 * 50-->
+ <div
+ v-if="printSize===0"
+ style="display: flex;width: 280px;height: 160px;border: 1px solid #000;text-align: center;font-size: 10px;"
+ >
+
+ <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000">
+ <div
+ style="display: flex;height: 96px;border-bottom:1px solid #000;
+ justify-content: center;align-items: center;position: relative"
+ >
+ <div
+ id="qrCode2"
+ ref="qrCodeDiv2"
+ style="overflow-y: hidden;height:60px;position: absolute;left: 14px;"
+ />
+ </div>
+ <div
+ style="display: flex;height: 32px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center"
+ >
+ <div style="margin-left: 5px;width: 28px">鏁伴噺:</div>
+ {{ qrForm.startqty }}
+ </div>
+ <div style="display: flex;height: 32px;justify-content: flex-start;align-items: center">
+ <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div>
+ {{ qrForm.operator }}
+ </div>
+ </div>
+
+ <div style="width:190px;display: flex;flex-direction: column">
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div>
+ <div>{{ qrForm.wo_code }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div>
+ <div>{{ qrForm.partcode }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div>
+ <div>{{ qrForm.partname }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">涓嬮亾宸ュ簭:</div>
+ <div>{{ qrForm.nextstepname }}</div>
+ </div>
+ <div style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left">
+ <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div>
+ <div>{{ qrForm.operatorTime }}</div>
+ </div>
+
+ </div>
+
+ </div>
+ <!-- 78 * 60 -->
+ <div
+ v-if="printSize===1"
+ style="display: flex;width: 280px;height: 160px;border: 1px solid #000;text-align: center;font-size: 10px;"
+ >
+
+ <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000">
+ <div
+ style="display: flex;height: 96px;border-bottom:1px solid #000;
+ justify-content: center;align-items: center;position: relative"
+ >
+ <div
+ id="qrCode2"
+ ref="qrCodeDiv2"
+ style="overflow-y: hidden;height:60px;position: absolute;left: 14px;"
+ />
+ </div>
+ <div
+ style="display: flex;height: 32px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center"
+ >
+ <div style="margin-left: 5px;width: 28px">鏁伴噺:</div>
+ {{ qrForm.startqty }}
+ </div>
+ <div style="display: flex;height: 32px;justify-content: flex-start;align-items: center">
+ <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div>
+ {{ qrForm.operator }}
+ </div>
+ </div>
+
+ <div style="width:190px;display: flex;flex-direction: column">
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div>
+ <div>{{ qrForm.wo_code }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div>
+ <div>{{ qrForm.partcode }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div>
+ <div>{{ qrForm.partname }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">涓嬮亾宸ュ簭:</div>
+ <div>{{ qrForm.nextstepname }}</div>
+ </div>
+ <div style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left">
+ <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div>
+ <div>{{ qrForm.operatorTime }}</div>
+ </div>
+
+ </div>
+
+ </div>
+ <!-- 60 * 40 -->
+ <div
+ v-if="printSize===2"
+ style="display: flex;width: 220px;height: 130px;border: 1px solid #000;text-align: center;font-size: 12px"
+ >
+
+ <div style="width: 70px;display: flex;flex-direction: column;border-right: 1px solid #000">
+ <div
+ style="display: flex;height: 60%;border-bottom:1px solid #000;
+ justify-content: center;align-items: center;position: relative"
+ >
+ <div
+ id="qrCode2"
+ ref="qrCodeDiv2"
+ style="overflow-y: hidden;height:71%;position: absolute;left: 7px;"
+ />
+ </div>
+ <div
+ style="display: flex;height: 20%;justify-content: flex-start;border-bottom:1px solid #000;align-items: center"
+ >
+ <div style="margin-left: 3px; ">鏁伴噺:{{ qrForm.startqty }}</div>
+ </div>
+ <div style="display: flex;height: 20%;justify-content: flex-start;align-items: center;">
+ <div style="margin-left: 3px; ">鎿嶄綔:{{ qrForm.operator }}</div>
+
+ </div>
+ </div>
+
+ <div style="width:150px;display: flex;flex-direction: column">
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="margin-left: 3px;">缂栧彿:{{ qrForm.wo_code }}</div>
+
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left"
+ >
+ <div style="margin-left: 3px;">浜у搧缂栫爜:{{ qrForm.partcode }}</div>
+
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="margin-left: 3px;">浜у搧鍚嶇О:{{ qrForm.partname }}</div>
+
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="margin-left: 3px;">涓嬮亾宸ュ簭:{{ qrForm.nextstepname }}</div>
+
+ </div>
+ <div style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left">
+ <div style=" margin-left: 3px;">鏃堕棿: {{ qrForm.operatorTime }}</div>
+ <!-- <div>{{ qrForm.operatorTime?qrForm.operatorTime.substring(5):'' }}</div>-->
+ <!-- <div>{{ qrForm.operatorTime }}</div>-->
+ </div>
+
+ </div>
+
+ </div>
+ <div
+ v-if="printSize===5"
+ style="display: flex;width: 140px;height: 80px;border: 1px solid #000;text-align: center;font-size: 10px;"
+ >
+
+ <div v-if="false" style="width: 45px;display: flex;flex-direction: column;border-right: 1px solid #000">
+ <div
+ style="display: flex;height: 60px;border-bottom:1px solid #000;
+ justify-content: center;align-items: center;position: relative"
+ >
+ <div
+ id="qrCode2"
+ ref="qrCodeDiv2"
+ style="overflow-y: hidden;height:60px;position: absolute;left: 14px;"
+ />
+ </div>
+ <div
+ style="display: flex;height: 20px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center"
+ >
+ <div style="margin-left: 5px;width: 28px">鏁伴噺:</div>
+ {{ qrForm.startqty }}
+ </div>
+ <div style="display: flex;height: 20px;justify-content: flex-start;align-items: center">
+ <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div>
+ {{ qrForm.operator }}
+ </div>
+ </div>
+
+ <div style="width:100%;display: flex;flex-direction: column;">
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: center;align-items: center;text-align: left"
+ >
+ <!-- <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div>-->
+ <div>{{ qrForm.wo_code }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: center;align-items: center ;text-align: left"
+ >
+ <!-- <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div>-->
+ <div>{{ qrForm.partcode }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: center;align-items: center;text-align: left"
+ >
+ <!-- <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div>-->
+ <div>{{ qrForm.partname }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: center;align-items: center;text-align: left"
+ >
+ <!-- <div style="width:60px;margin-left: 5px;">涓嬮亾宸ュ簭:</div>-->
+ <div>{{ qrForm.nextstepname }}</div>
+ </div>
+ <div style="display: flex;height: 20%;justify-content: center;align-items: center;text-align: left">
+ <!-- <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div>-->
+ <div>{{ qrForm.operatorTime }}</div>
+ </div>
+
+ </div>
+
+ </div>
+ </div>
+
+ <div v-if="isLastPrint" style="display: flex;flex-direction: column">
+
+ <div style="display: flex;font-weight: bold;font-size: 16px;margin-bottom: 20px;">
+ <div style="width: 48%;">
+ 璇烽�夋嫨鍏ュ簱鏉$爜
+ </div>
+ <div style="width: 48%;margin-left: 4%;">
+ 宸查�変腑鐨勫叆搴撴潯鐮�
+ </div>
+ </div>
+
+ <div style="display: flex;">
+ <!-- 璇烽�夋嫨鍏ュ簱鏉$爜-->
+ <div style="display: flex;flex-direction: column;height: 600px;overflow: auto;width: 48%;">
+ <div
+ v-for="(item,index) in lastPrintArr"
+ :key="item.inbarcode"
+ :style="{marginTop:index===0?'':'15px'}"
+ style="display: flex;align-items: center;"
+ >
+
+ <!-- v-if="printSize===0"-->
+ <div style="margin-right:40px">
+ <el-checkbox
+ :key="item.inbarcode"
+ v-model="item.checked"
+ @change="val=>inbarcodeChange(val,item)"
+ />
+ </div>
+ <div
+ style="display: flex;width: 280px;height: 160px;border: 1px solid #000;text-align: center;font-size: 10px;"
+ >
+
+ <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000">
+ <div
+ style="display: flex;height: 96px;border-bottom:1px solid #000;
+ justify-content: center;align-items: center;position: relative"
+ >
+ <div
+ id="qrCode2"
+ ref="qrCodeDiv2"
+ style="overflow-y: hidden;height:60px;position: absolute;left: 14px;"
+ />
+ </div>
+ <div
+ style="display: flex;height: 32px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center"
+ >
+ <div style="margin-left: 5px;width: 28px">鏁伴噺:</div>
+ {{ item.good_qty }}
+ </div>
+ <div style="display: flex;height: 32px;justify-content: flex-start;align-items: center">
+ <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div>
+ {{ item.username }}
+ </div>
+ </div>
+
+ <div style="width:190px;display: flex;flex-direction: column">
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div>
+ <div>{{ item.wo_code }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div>
+ <div>{{ item.partcode }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div>
+ <div>{{ item.partname }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">浜у搧瑙勬牸:</div>
+ <div>{{ item.partspec ? item.partspec : '/' }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div>
+ <div>{{ item.lm_date }}</div>
+ </div>
+
+ </div>
+
+ </div>
+
+ </div>
+ </div>
+
+ <!-- 宸查�変腑鐨勫叆搴撴潯鐮�-->
+ <div
+ style="display: flex;flex-direction: column;height: 600px;overflow: auto;width: 48%;margin-left: 50px;"
+ >
+ <div id="printMe2">
+ <div
+ v-for="(item,index) in lastPrintArrSelected"
+ v-if="item.checked"
+ :key="item.inbarcode"
+ :style="{marginTop:index===0?'':'15px'}"
+ style="display: flex;align-items: center;"
+ >
+ <div
+ style="display: flex;width: 280px;height: 160px;border: 1px solid #000;text-align: center;font-size: 10px;"
+ >
+
+ <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000">
+ <div
+ style="display: flex;height: 96px;border-bottom:1px solid #000;
+ justify-content: center;align-items: center;position: relative"
+ >
+ <div
+ id="qrCode3"
+ ref="qrCodeDiv3"
+ style="overflow-y: hidden;height:60px;position: absolute;left: 14px;"
+ />
+ </div>
+ <div
+ style="display: flex;height: 32px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center"
+ >
+ <div style="margin-left: 5px;width: 28px">鏁伴噺:</div>
+ {{ item.good_qty }}
+ </div>
+ <div style="display: flex;height: 32px;justify-content: flex-start;align-items: center">
+ <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div>
+ {{ item.username }}
+ </div>
+ </div>
+
+ <div style="width:190px;display: flex;flex-direction: column">
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div>
+ <div>{{ item.wo_code }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div>
+ <div>{{ item.partcode }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div>
+ <div>{{ item.partname }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">浜у搧瑙勬牸:</div>
+ <div>{{ item.partspec ? item.partspec : '/' }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div>
+ <div>{{ item.lm_date }}</div>
+ </div>
+
+ </div>
+
+ </div>
+
+ </div>
+ </div>
+
+ </div>
+
+ </div>
+
+ </div>
+
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisible2 = false;">鍙� 娑�</el-button>
+ <el-button v-waves v-print="printObj2" type="primary">鎵� 鍗�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ <!-- 宸ヨ壓璺嚎瀵硅瘽妗�-->
+ <el-dialog
+ v-el-drag-dialog
+ :close-on-click-modal="false"
+ title="鍏宠仈宸ヨ壓璺嚎"
+ :visible.sync="dialogVisibleRoute"
+ width="800px"
+ top="10vh"
+ :fullscreen="isIpad"
+ class="dialogVisibleRoute"
+ @closed="handleCloseRoute"
+ @close="handleCloseRoute"
+ >
+ <div>
+ <i class="el-icon-s-comment" style="color:#42b983;" /> 浜у搧鍚嶇О锛歿{ dialogFormRoute.projectName }}
+ </div>
+ <el-divider />
+ <div style="margin-bottom: 10px">
+ <i class="el-icon-s-operation" style="color:#42b983;" /> 宸ヨ壓璺嚎闆嗗悎
+ </div>
+
+ <div class="myCheckboxGroup">
+ <div
+ v-for="item in dialogFormRoute.routeOperationArr"
+ :key="item.code"
+ :style="{border:item.isSelected1?'1px solid #42b983':'1px solid #eee'}"
+ class="myCheckbox"
+ @click="myCheckboxClick(item)"
+ >
+ <input
+ class="myCheckboxInput"
+ type="checkbox"
+ :value="item.code"
+ :name="item.name"
+ :style="{color:item.isSelected2?'#42b983':'#fff'}"
+ @click="myCheckboxInputClick(item)"
+ >{{ item.name }}
+ <!-- 鐖跺瓙鐐瑰嚮浜嬩欢涓嶅奖鍝�-->
+ <!-- onClick="event.cancelBubble = true"-->
+ </div>
+ </div>
+
+ <el-divider />
+ <div>
+ <i class="el-icon-s-operation" style="color:#42b983;" /> 榛樿宸ヨ壓璺嚎
+ </div>
+ <div style="margin-top: 20px">
+ <el-select
+ v-model="defaultroute_code"
+ filterable
+ style="width: 200px;"
+ placeholder="璇烽�夋嫨"
+ class="defaultroute_code"
+ >
+ <el-option
+ v-for="item in defaultroute_codeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </div>
+ <el-divider />
+ <div style="margin-bottom: 10px">
+ <i class="el-icon-s-operation" style="color:#42b983;" /> 宸ュ簭鍒楄〃
+ </div>
+ <div style="overflow-y: scroll">
+ <el-table
+ ref="projectTableData"
+ :data="projectTableData"
+ border
+ height="280"
+ :row-class-name="tableRowClassName"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ >
+ <el-table-column
+ prop="seq"
+ width="100"
+ label="宸ュ簭搴忓彿"
+ fixed
+ />
+ <el-table-column
+ prop="stepcode"
+ label="宸ュ簭缂栫爜"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="stepname"
+ label="宸ュ簭鍚嶇О"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="enable"
+ label="鍚敤鐘舵��"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.enable==='Y'">
+ <svg-icon icon-class="circleYes" style="margin-right: 2px" />
+ 鏄�
+ </div>
+ <div v-if="row.enable==='N'">
+ <svg-icon icon-class="circleNo" style="margin-right: 2px" />
+ 鍚�
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="routeDialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button v-waves type="primary" @click="routeDialogVisibleConfirm">纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
<script>
+import Pagination from '@/components/Pagination'
+import { handleDatetime, handleDatetime2, validateCode } from '@/utils/global'
+import { getCookie } from '@/utils/auth'
+import QRCode from 'qrcodejs2'
+import $ from 'jquery'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import {
+ AddMesOrderCodeSearch,
+ AddUpdateMesOrder, DeleteMesOrder,
+ MesBadOrderSearch, MesOrderDistribution,
+ MesOrderClosedSearch,
+ UpdateMesOrderStepSearch, MesOrderBitchClosedSeave
+} from '@/api/WorkOrder'
+import { PartSelect } from '@/api/ProductModel'
+import { PrentOrganization, PrentOrganizationNoCompany, StepData } from '@/api/GeneralBasicData'
+import Sortable from 'sortablejs'
+import ElDragSelect from '@/components/DragSelect'
+import { MesOrderPrintSearch } from '@/api/GridReport' // base on element-ui
+
export default {
- name: 'WorkOrderClose'
+ name: 'WorkOrderList',
+ components: {
+ Pagination, ElDragSelect
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ mouseHoverTypeDialog: 'mouseout',
+ isExpandForm: false,
+ isIpad: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ username: '',
+ form: {
+ wkshopcode: '',
+ mesorderstus: '', // 宸ュ崟鐘舵�佺爜
+ mesordercode: '', // 宸ュ崟缂栧彿
+ partcode: '', // 浜у搧缂栫爜
+ ordertype: '', // ordertype
+ sourceorder: '', // 婧愬崟鍗曞彿
+ saleordercode: '', // 閿�鍞鍗�
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 浜у搧瑙勬牸
+ creatuser: '', // 鍒涘缓浜哄憳
+ createdate: '', // 鍒涘缓鏃堕棿
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ erporderstusArr: [
+ // { code: 'NEW', name: '鏂板伐鍗�' }
+ // { code: 'CREATING', name: '鎵ц涓�' },
+ // { code: 'CREATED', name: '宸插叧闂�' }
+ // { code: 'ALLO', name: '宸叉淳鍙�' }
+ // 宸插叧闂細CLOSED 鏈叧闂細NOCLOSED
+ { code: 'NOCLOSED', name: '鏈叧闂�' },
+ { code: 'CLOSED', name: '宸插叧闂�' }
+ // { code: 'NOSCHED', name: '寰呮帓绋�' },
+ // { code: 'SCHED', name: '宸叉帓绋�' }
+ ],
+ wkshopcodeArr: [],
+ total: 10,
+ tableData: [],
+ dialogVisible: false,
+ dialogForm: {
+ mesorderstus: 'NEW', // 宸ュ崟鐘舵�佺爜
+ mesordercode: '', // 宸ュ崟缂栧彿
+ ordertype: 'PO', // 宸ュ崟绫诲瀷
+ sourceorderid: '', // 婧愬崟id
+ sourceorder: '', // 婧愬崟鍗曞彿
+
+ partcode: '', // 浜у搧缂栫爜
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 浜у搧瑙勬牸
+
+ mesqty: '', // 宸ュ崟鏁伴噺
+ wkshopcode: '', // 鐢熶骇杞﹂棿缂栫爜
+ wkshopname: '', // 鐢熶骇杞﹂棿鍚嶇О
+
+ deliverydate: '', // 浜や粯鏃堕棿
+ data_sources: '', // 鏁版嵁鏉ユ簮
+
+ mesmaxqty: 0// 宸ュ崟鐨勬渶澶у��
+ },
+ ordertypeArr: [// 宸ュ崟绫诲瀷
+ { code: 'PO', name: '鏍囧噯宸ュ崟' },
+ { code: 'FO', name: '鎶ュ簾琛ュ崟' }
+ ],
+ partArr: [], // 浜у搧淇℃伅
+ wkshopArr: [], // 鐢熶骇杞﹂棿鏁扮粍
+ routeArr: [], // 宸ヨ壓璺嚎鏁扮粍
+ orderlevArr: [
+ { code: 1, name: '鐗圭骇' },
+ { code: 2, name: '绱ф��' },
+ { code: 3, name: '姝e父' }
+ ], // 宸ュ崟绛夌骇鏁扮粍
+ operation: '',
+ dialogFormRules: {
+ mesorderstus: [
+ { required: true, message: '璇烽�夋嫨璁㈠崟鐘舵��', trigger: ['blur', 'change'] }
+ ],
+ partcode: [
+ { required: true, message: '璇烽�夋嫨浜у搧淇℃伅', trigger: ['blur', 'change'] }
+ ],
+ mesordercode: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ mesqty: [
+ { required: true, message: '璇疯緭鍏ュ伐鍗曟暟閲�', trigger: ['blur', 'change'] }
+ ],
+ wkshopcode: [
+ { required: true, message: '璇烽�夋嫨鐢熶骇杞﹂棿', trigger: ['blur', 'change'] }
+ ],
+ deliverydate: [
+ { required: true, message: '璇烽�夋嫨棰勮浜や粯鏃ユ湡', trigger: ['blur', 'change'] }
+ ],
+ planstartdate: [
+ { required: true, message: '璇烽�夋嫨寮�濮嬫椂闂�', trigger: ['blur', 'change'] }
+ ],
+ planenddate: [
+ { required: true, message: '璇烽�夋嫨缁撴潫鏃堕棿', trigger: ['blur', 'change'] }
+ ],
+ orderlev: [
+ { required: true, message: '璇烽�夋嫨宸ュ崟绛夌骇', trigger: ['blur', 'change'] }
+ ],
+ isAps: [
+ { required: true, message: '璇烽�夋嫨鏄惁鎺掔▼', trigger: ['blur', 'change'] }
+ ],
+ bomId: [
+ { required: true, message: '璇烽�夋嫨鐗╂枡娓呭崟', trigger: ['blur', 'change'] }
+ ]
+
+ },
+ dialogVisibleTask: false,
+ taskTableData: [],
+
+ dialogVisibleSearch: false,
+ searchTableData: [],
+ dialogVisibleApprove: false,
+ tableDataPrint: [], // 鎵撳嵃椤甸潰鍐呭
+ printObj: {
+ id: 'printMe',
+ popTitle: '鎵撳嵃妯℃澘',
+ preview: false,
+ extraHead: '<meta http-equiv="Content-Language" content="zh-cn"/>',
+ closeCallback(vue) { // 鍏抽棴鎵撳嵃鐨勫洖璋冧簨浠讹紙鏃犳硶纭畾鐐瑰嚮鐨勬槸纭杩樻槸鍙栨秷锛�
+ console.log('11212', vue)
+ // vue.dialogVisible = false
+ vue.dialogVisibleApprove = false
+ },
+ beforeOpenCallback(vue) {
+ vue.printLoading = true
+ console.log('鎵撳紑涔嬪墠')
+ console.log()
+ },
+ openCallback(vue) {
+ vue.printLoading = false
+ console.log('鎵ц浜嗘墦鍗�')
+ }
+ },
+
+ formApprove: {
+ m_po: '', // 婧愬崟鍗曞彿
+ mesordercode: '',
+ partcode: '',
+ partname: '',
+ partspec: '',
+ plan_qty: '',
+ routename: '',
+ lm_date: ''
+ },
+ number: '',
+ dialogVisible2: false,
+ printObj2: {
+ id: 'printMe2',
+ popTitle: '鎵撳嵃妯℃澘',
+ preview: false,
+ extraHead: '<meta http-equiv="Content-Language" content="zh-cn"/>',
+ closeCallback(vue) { // 鍏抽棴鎵撳嵃鐨勫洖璋冧簨浠讹紙鏃犳硶纭畾鐐瑰嚮鐨勬槸纭杩樻槸鍙栨秷锛�
+ console.log('11212', vue)
+ // vue.dialogVisible = false
+ // vue.dialogVisible2 = false
+ // vue.dialogVisible = false
+ },
+ beforeOpenCallback(vue) {
+ vue.printLoading = true
+ console.log('鎵撳紑涔嬪墠')
+ console.log()
+ },
+ openCallback(vue) {
+ vue.printLoading = false
+ console.log('鎵ц浜嗘墦鍗�')
+ }
+ },
+ qrForm: {
+ qrvalue: '',
+ startqty: '',
+ wo_code: '',
+ partcode: '',
+ partname: '',
+ nextstepname: '',
+ operator: '', // 鎿嶄綔浜�
+ operatorTime: ''// 鎿嶄綔鏃堕棿
+ },
+ dialogVisibleSource: false,
+ sourceTableData: [],
+ sourceForm: {
+ mesordercode: '', // 宸ュ崟缂栧彿
+ sourceorder: '', // 璁㈠崟缂栧彿
+ saleordercode: '', // 閿�鍞鍗曞彿
+ partcode: '', // 浜у搧缂栫爜
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 浜у搧瑙勬牸
+ creatuser: '', // 鍒涘缓浜哄憳
+ // paystartdate: '', // 浜や粯鏃堕棿
+ // paystartdate: '', // 棰勮寮�宸ユ椂闂�
+ // payenddate: '', // 棰勮瀹屽伐鏃堕棿
+ createdate: '', // 鍒涘缓鏃堕棿
+
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ sourceFormTotal: 10,
+ radioSelectedId: '',
+ isExpandDialog: false, // 瀵硅瘽妗嗚〃鍗曟槸鍚﹀睍寮�锛岄粯璁や笉灞曞紑
+ dialogVisibleRoute: false,
+ dialogFormRoute: {
+ projectName: '', // 浜у搧鍚嶇О
+ projectCode: '', // 浜у搧浠g爜
+ routeOperationArr: [] // 宸ヨ壓璺嚎闆嗗悎
+ },
+ defaultroute_code: '', // 榛樿宸ヨ壓璺嚎閫変腑鍊�
+ defaultroute_codeArr: '', // 榛樿宸ヨ壓璺嚎鏁扮粍
+ projectTableData: [], // 璁惧鍒楄〃
+ tableDataDetail: [], // 鐐瑰嚮宸ュ崟琛ㄧ殑琛� 鏄剧ず璇︾粏淇℃伅
+ printSize: 0,
+ printSizeSelectArr: [// 瀹�*楂�
+ { code: 0, name: '80*50' },
+ { code: 1, name: '78*60' },
+ { code: 2, name: '60*40' }
+ // { code: 2, name: '50*60' },
+ // { code: 3, name: '50*40' },
+ // { code: 4, name: '50*80' },
+ // { code: 5, name: '40*30' }
+ ],
+ pickerOptions: {
+ disabledDate(time) {
+ return time.getTime() < Date.now() - 8.64e7
+ }
+ },
+
+ isLastPrint: false, // 鏄惁鏄湯閬撴墦鍗�
+ lastPrintArr: [], // 鏈亾鎵撳嵃鐨勬暟缁�(鎵�鏈�)
+ lastPrintArrSelected: [], // 鏈亾鎵撳嵃鐨勬暟缁�(閫変腑)
+
+ switchButton: false,
+
+ routeStepArr: '',
+
+ stepTableData: [],
+ sortable: null,
+ stepSelectArr: [], // 宸ュ簭涓嬫媺鏁版嵁
+ stepSelectedValue: [], // 涓嬫媺閫変腑鍊�
+
+ multipleSelection: []
+ }
+ },
+ watch: {
+ 'stepSelectedValue': {
+ // deep: true,
+ handler: function(val) {
+ // do something with the new and old value of stepSelectedValue
+ console.log(val, 1)
+ const arr = JSON.parse(JSON.stringify(this.stepTableData))
+ const arrStepcode = arr.map(i => i.stepcode)
+ this.stepTableData = []
+ val.forEach(i => {
+ this.stepTableData.push(
+ {
+ stepcode: i,
+ stepname: this.stepSelectArr.find(j => j.stepcode === i).stepname,
+ stepprice: arrStepcode.includes(i) ? arr.find(j => j.stepcode === i).stepprice : 0
+ }
+ )
+ })
+ }
+ }
+ },
+ created() {
+ this.handleRequest()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+
+ // this.$nextTick(() => {
+ // this.setSort()
+ // })
+ },
+ methods: {
+ setSort() {
+ const el = this.$refs.stepTableDataRef.$el.querySelectorAll('.el-table__body-wrapper > table > tbody')[0]
+ this.sortable = Sortable.create(el, {
+ ghostClass: 'sortable-ghost', // Class name for the drop placeholder,
+ setData: function(dataTransfer) {
+ // to avoid Firefox bug
+ // Detail see : https://github.com/RubaXa/Sortable/issues/1012
+ dataTransfer.setData('Text', '')
+ },
+ onEnd: evt => {
+ const targetRow = this.stepTableData.splice(evt.oldIndex, 1)[0]
+ this.stepTableData.splice(evt.newIndex, 0, targetRow)
+
+ this.stepSelectedValue = this.stepTableData.map(i => i.stepcode)
+ // for show the changes, you can delete in you code
+ // const tempIndex = this.newList.splice(evt.oldIndex, 1)[0]
+ // this.newList.splice(evt.newIndex, 0, tempIndex)
+ }
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ },
+ handleRequest() {
+ this.getMesOrderClosedSearch().then(res => {
+ if (res.code === '200') {
+ this.getSelect()
+ this.getPrentOrganizationNoCompany()
+ }
+ })
+ },
+ async getPrentOrganizationNoCompany() {
+ const { data: res } = await PrentOrganizationNoCompany()
+ this.wkshopcodeArr = res
+ },
+ async getMesOrderClosedSearch() {
+ // let tempDate = this.form.createdate
+ // if (tempDate.length > 0) {
+ // tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ // }
+
+ const data = {
+ wkshopcode: this.form.wkshopcode,
+ mesorderstus: this.form.mesorderstus, // 宸ュ崟鐘舵�佺爜
+ mesordercode: this.form.mesordercode, // 宸ュ崟缂栧彿
+ partcode: this.form.partcode, // 浜у搧缂栫爜
+ partname: this.form.partname, // 浜у搧鍚嶇О
+ partspec: this.form.partspec, // 浜у搧瑙勬牸
+ creatuser: this.form.creatuser, // 鍒涘缓浜哄憳
+ sourceorder: this.form.sourceorder, // 婧愬崟鍗曞彿
+ saleordercode: this.form.saleordercode, // 閿�鍞鍗�
+ ordertype: this.form.ordertype, // 鍗曟嵁绫诲瀷
+ createdate: this.form.createdate.toString().length > 0 ? handleDatetime(this.form.createdate) : '', // 鍒涘缓鏃堕棿
+ prop: this.form.prop, // 鎺掑簭瀛楁
+ order: this.form.order, // 鎺掑簭瀛楁
+ page: this.form.page, // 绗嚑椤�
+ rows: this.form.rows // 姣忛〉澶氬皯鏉�
+ }
+ const res = await MesOrderClosedSearch(data)
+ this.tableData = res.data
+ this.total = res.count
+
+ // this.form.createdate = tempDate
+ return { code: res.code }
+ },
+ async getSelect() {
+ // 鑾峰彇浜у搧淇℃伅
+ const { data: res1 } = await PartSelect()
+ this.partArr = res1
+
+ // 鑾峰彇缁勭粐
+ const { data: res2 } = await PrentOrganization()
+ this.wkshopArr = res2
+
+ // 鑾峰彇宸ュ簭
+ const { data: res3 } = await StepData()
+ this.stepSelectArr = res3
+ },
+ // 璁㈠崟鐘舵�佹敼鍙樻椂
+ erporderstusChange(val) {
+ this.form.mesorderstus = val
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getMesOrderClosedSearch()
+ },
+ sourceSortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.sourceForm.order = order
+ this.sourceForm.prop = prop
+ this.getMesBadOrderSearch()
+ },
+ // 鏌ヨ
+ search() {
+ this.getMesOrderClosedSearch()
+ },
+
+ // 閲嶇疆
+ reset(val) {
+ this.form.wkshopcode = ''
+ this.form.mesorderstus = ''
+ this.form.mesordercode = ''
+ this.form.partcode = ''
+ this.form.partname = ''
+ this.form.partspec = ''
+ this.form.paydate = ''
+ this.form.creatuser = ''
+ this.form.sourceorder = ''
+ this.form.ordertype = ''
+ this.form.createdate = ''
+ this.getMesOrderClosedSearch()
+ },
+ // 鏂板鎸夐挳
+ async add(operation) {
+ const { data: res } = await AddMesOrderCodeSearch()
+ this.dialogForm.mesordercode = res
+ this.operation = operation
+ this.dialogVisible = true
+ this.dialogForm.data_sources = 'MES'
+
+ this.$nextTick(() => {
+ this.setSort()
+ })
+ },
+ // 宸ュ簭浠诲姟
+ async check(row) {
+ // const { data: res } = await SearchWorkStep({ wo_code: row.wo_code })
+ // this.taskTableData = res
+ //
+ // if (this.taskTableData.length === 0) {
+ // return this.$message.info('鏃犵敓浜т换鍔℃暟鎹紒')
+ // }
+ // this.dialogForm.mesordercode = res[0].wo_code
+ // this.dialogVisibleTask = true
+ },
+ dialogVisibleBack() {
+ this.dialogVisibleTask = false
+ },
+ handleSelectionChange(val) {
+ this.multipleSelection = val.map(i => i.wo_code)
+ },
+
+ selected(row, index) {
+ return row.status !== 'CLOSED'
+ },
+ // 娲惧彂
+ send() {
+ this.$confirm('鏄惁纭娲惧彂?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ MesOrderDistribution(this.multipleSelection).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('娲惧彂鎴愬姛!')
+ if (this.form.page > 1 && this.tableData.length === 1) {
+ this.form.page--
+ }
+ this.getMesOrderClosedSearch()
+ }
+ })
+ }).catch(() => {
+ this.$notify.info('宸插彇娑堟淳鍙�')
+ })
+ },
+ // 鍒犻櫎鎸夐挳
+ async del(row) {
+ if (row.status === 'START' || row.status === 'CLOSED' || row.status === 'SCHED') {
+ return this.$message.info('姝ゅ伐鍗曚笉鍙垹闄わ紒')
+ }
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ const data = {
+ souceid: row.sourceid ? row.sourceid : '',
+ wocode: row.wo_code,
+ m_po: row.m_po,
+ orderqty: row.plan_qty
+ }
+ DeleteMesOrder(data).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('鍒犻櫎鎴愬姛!')
+ if (this.form.page > 1 && this.tableData.length === 1) {
+ this.form.page--
+ }
+ this.getMesOrderClosedSearch()
+ }
+ })
+ }).catch(() => {
+ this.$notify.info('宸插彇娑堝垹闄�')
+ })
+ },
+
+ // 淇敼鎸夐挳
+ async edit(operation, row) {
+ this.operation = operation
+
+ this.dialogForm.data_sources = row.data_sources
+ this.dialogForm.mesorderstus = row.status
+ this.dialogForm.mesordercode = row.wo_code
+ this.dialogForm.ordertype = row.wotype
+ this.dialogForm.sourceorderid = row.sourceid
+ this.dialogForm.sourceorder = row.m_po
+ this.dialogForm.partcode = row.partcode
+ this.dialogForm.partname = row.partname
+ this.dialogForm.partspec = row.partspec
+ this.dialogForm.wkshopcode = row.wkshp_code
+ this.dialogForm.deliverydate = row.saleOrderDeliveryDate.substring(0, 11)
+ this.dialogForm.mesqty = row.plan_qty
+
+ const data = {
+ sourceid: this.dialogForm.sourceorderid,
+ sourcewo: this.dialogForm.sourceorder,
+ wocode: this.dialogForm.mesordercode,
+ data_sources: this.dialogForm.data_sources
+ }
+ const { data: res } = await UpdateMesOrderStepSearch(data)
+ this.dialogForm.mesmaxqty = res.canupdate_qty
+ this.stepTableData = res.stepdata
+ // res.stepdata.forEach(i => {
+ // this.stepTableData.push(
+ // {
+ // stepcode: i.step_code,
+ // stepname: i.stepname,
+ // stepprice: i.stepprice
+ // }
+ // )
+ // })
+ // this.stepSelectedValue = this.stepTableData.map(i => i.stepcode)
+
+ this.dialogVisible = true
+ },
+ // 宸ュ崟鍏抽棴浜嬩欢
+ async orderClose(row) {
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ if (row) { // 琛屽叧闂伐鍗�
+ this.multipleSelection = [row.wo_code]
+ }
+ MesOrderBitchClosedSeave(this.multipleSelection).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('鍏抽棴鎴愬姛!')
+ // if (this.form.page > 1 && this.tableData.length === 1) {
+ // this.form.page--
+ // }
+ this.getMesOrderClosedSearch()
+ }
+ })
+ }).catch(() => {
+ this.$notify.info('宸插彇娑堝垹闄わ紒')
+ })
+ },
+ // 瀵硅瘽妗嗕骇鍝佷俊鎭�兼敼鍙�
+ partcodeChangeDialog(val) {
+ console.log(val)
+ this.dialogForm.partname = this.partArr.find(item => item.partcode === val).partname
+ this.dialogForm.partcode = this.partArr.find(item => item.partcode === val).partcode
+ this.dialogForm.partspec = this.partArr.find(item => item.partcode === val).partspec
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm = {
+ mesorderstus: 'NEW', // 宸ュ崟鐘舵�佺爜
+ mesordercode: '', // 宸ュ崟缂栧彿
+ ordertype: 'PO', // 宸ュ崟绫诲瀷
+ sourceorderid: '', // 婧愬崟id
+ sourceorder: '', // 婧愬崟鍗曞彿
+
+ partcode: '', // 浜у搧缂栫爜
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 浜у搧瑙勬牸
+
+ mesqty: '', // 宸ュ崟鏁伴噺
+ wkshopcode: '', // 鐢熶骇杞﹂棿缂栫爜
+ wkshopname: '', // 鐢熶骇杞﹂棿鍚嶇О
+
+ deliverydate: '', // 浜や粯鏃堕棿
+ data_sources: '' // 鏁版嵁鏉ユ簮
+ }
+ this.stepSelectedValue = []
+ this.stepTableData = []
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ if (this.dialogForm.ordertype === 'FO' && this.dialogForm.sourceorder.toString().trim().length <= 0) {
+ return this.$message.info('婧愬崟鍗曞彿涓嶈兘涓虹┖锛�')
+ }
+
+ if (this.dialogForm.data_sources === 'ERP' && this.dialogForm.mesmaxqty < this.dialogForm.mesqty) {
+ return this.$message.info('姝ゅ伐鍗曠殑鏈�澶т慨鏀规暟鍊间负锛�' + this.dialogForm.mesmaxqty)
+ }
+
+ const workListSub = []
+ this.stepTableData.forEach((i, j) => {
+ workListSub.push(
+ {
+ stepseq: j + 1,
+ stepcode: i.stepcode,
+ stepprice: i.stepprice,
+ isbott: j === 0 ? 'Y' : 'N',
+ isend: j === this.stepTableData.length - 1 ? 'Y' : 'N'
+ }
+ )
+ })
+
+ const data = {
+ wostatus: this.dialogForm.mesorderstus, // 宸ュ崟鐘舵��
+ wocode: this.dialogForm.mesordercode, // 宸ュ崟鍙�
+ wotype: this.dialogForm.ordertype, // 宸ュ崟绫诲瀷
+ sourceid: this.dialogForm.sourceorderid, // 婧愬崟id
+ sourcewo: this.dialogForm.sourceorder, // 婧愬崟鍗曞彿
+ partcode: this.dialogForm.partcode, // 浜у搧缂栧彿
+ wkshopcode: this.dialogForm.wkshopcode,
+ woqty: this.dialogForm.mesqty, // 宸ュ崟鏁伴噺
+ deliverydate: this.dialogForm.deliverydate, // 浜や粯鏃堕棿
+ data_sources: this.dialogForm.data_sources, // 鏁版嵁鏉ユ簮
+ isstep: workListSub.length > 0 ? 'Y' : 'N', //
+ workListSub
+ }
+
+ this.$store.state.app.buttonIsDisabled = true
+ AddUpdateMesOrder(data, this.operation === 'add' ? 'Add' : 'Update').then(res => {
+ if (res.code === '200') {
+ this.dialogVisible = false
+ // this.handlePrint()
+ this.$message.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '娲惧彂鎴愬姛锛�')
+ this.getMesOrderClosedSearch()
+ this.$store.state.app.buttonIsDisabled = false
+ } else {
+ this.$message.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '娲惧彂澶辫触锛�')
+ }
+ })
+ }
+ })
+ },
+ // 娲惧彂鎵撳嵃
+ async sendPrint() {
+ const data = {
+ username: getCookie('admin'),
+ // username: getCookie('username'),
+ mesordercode: this.dialogForm.mesordercode
+ }
+ const res = await MesOrderPrintSearch1(data)
+ // const res = await PrintOrder(data)
+ if (res.code === '200') {
+ // 鍙傛暟鍏蜂綋璇存槑璇峰弬鑰冨府鍔╂枃妗d腑鐨勨�淲EB鎶ヨ〃(B/S鎶ヨ〃)->WEB鎶ヨ〃瀹㈡埛绔�->鍚姩鍙傛暟璇存槑鈥濋儴鍒�
+ var args = {
+ type: 'print', // preview print
+ showOptionDlg: false, // 濡傛灉涓嶆樉绀烘墦鍗板璇濇鑰岀洿鎺ユ墦鍗帮紝灏嗘琛屾敞閲婂幓鎺夊嵆鍙�
+ report: urlAddRandomNo('./static/grf/浜у搧娴佷紶鍗旳4.grf'),
+ data: res.data
+ }
+ webapp_ws_ajax_run(args)
+ }
+ },
+
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 295
+ if (window.innerHeight < 769) {
+ this.tableHeight = this.tableHeight - 20
+ }
+ this.isIpad = window.innerHeight < 769 && window.innerWidth < 1367
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ // 宸ヨ壓璺嚎鏀惧ぇ闀滅偣鍑�
+ async searchClick() {
+ if (this.dialogForm.routecode === '') {
+ return this.$message.info('璇峰厛閫夋嫨宸ヨ壓璺嚎锛�')
+ }
+ this.dialogVisibleSearch = true
+ const { data: res } = await SelectRouteStep({ routecode: this.dialogForm.routecode })
+ this.searchTableData = res
+ },
+ dialogVisibleSearchBack() {
+ this.dialogVisibleSearch = false
+ },
+ // 澶勭悊鎵撳嵃
+ handlePrint(wo_code) {
+ // const number = Math.random() * Math.random()
+ // this.number = number === 0 ? (10 + Math.random()) : number
+ // console.log(number)
+
+ const data2 = {
+ mesordercode: wo_code || this.dialogForm.mesordercode
+ }
+ MesOrderPrintSearch(data2).then(res2 => {
+ if (res2.code === '200') {
+ const res3 = res2.data.recordset
+
+ this.tableDataPrint = res3
+ this.formApprove.mesordercode = res3[0].wo_code
+ this.formApprove.m_po = res3[0].m_po || '/'
+ this.formApprove.partcode = res3[0].partcode
+ this.formApprove.partname = res3[0].partname
+ this.formApprove.partspec = res3[0].partspec || '/'
+ this.formApprove.plan_qty = res3[0].plan_qty
+ this.formApprove.routename = localStorage.getItem('username') // 鎵撳嵃浜哄憳
+ this.formApprove.lm_date = res3[0].lm_date
+
+ this.$nextTick(() => {
+ res3.forEach(i => {
+ this.bindQRCode(i.seq, i.stepqrcode, 'small')
+ })
+ this.bindQRCode('0', this.formApprove.mesordercode, 'big')
+
+ const div = document.getElementById('qrCode')
+ // 杩欎箞澶氫唬鐮佸彧闇�瑕佽繖涓�鍙ュ疄鐜版垜浠墍闇�瑕佺殑鍔熻兘锛屽畾浣峝iv婊氬姩鏉′綅缃湪搴曢儴锛宻crollHeight璁$畻鍑篸iv鐨勯珮搴︼紝鍐峴crollTop 璁剧疆婊氬姩鏉$殑楂樺害涓哄灏�
+ div.scrollTop = div.scrollHeight // 婊氬姩鏉′綅浜庢渶搴曢儴
+ // div.scrollTop = 0 // 婊氬姩鏉′綅浜庢渶椤堕儴
+ })
+ this.dialogVisibleApprove = true
+ }
+ })
+ },
+ dialogVisibleTaskClose() {
+ this.dialogForm.mesordercode = ''
+ },
+ /*
+ * 鎵嬪姩鐐瑰嚮鎵撳嵃
+ * */
+ // 杩斿洖鎸夐挳
+ dialogVisibleBackPreview() {
+ this.dialogVisibleApprove = false
+ },
+ // dialogVisibleConfirmPreview(param) {
+ // this.$refs.dialogForm.validate(valid => {
+ // if (valid) {
+ // const data = {
+ // username: getCookie('admin'),
+ // mesordercode: this.dialogForm.mesordercode
+ // }
+ // MesOrderPrintSearch1(data).then(res => {
+ // if (res.code === '200') {
+ // this.dialogVisibleApprove = true
+ // console.log(res, 11)
+ // }
+ // })
+ // }
+ // })
+ // },
+ // 鐢熸垚浜岀淮鐮� 宸ュ崟鎶ヨ〃浜岀淮鐮�
+ bindQRCode(seq, text, size) {
+ if (size === 'big') {
+ console.log(text, 1)
+ new QRCode(this.$refs.qrCodeDiv0, {
+ text: text,
+ width: size === 'big' ? 90 : 60,
+ height: size === 'big' ? 90 : 60,
+ // colorDark: '#333333', // 浜岀淮鐮侀鑹�
+ colorDark: '#000', // 浜岀淮鐮侀鑹�
+ colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊
+ correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H
+ })
+ } else {
+ new QRCode(this.$refs['qrCodeDiv' + seq], {
+ text: text,
+ width: size === 'big' ? 90 : 60,
+ height: size === 'big' ? 90 : 60,
+ // colorDark: '#333333', // 浜岀淮鐮侀鑹�
+ colorDark: '#000', // 浜岀淮鐮侀鑹�
+ colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊
+ correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H
+ })
+ }
+ },
+
+ dialogVisibleConfirmClose() {
+ // this.dialogForm.mesordercode = ''
+ this.formApprove.mesordercode = ''
+ this.formApprove.m_po = ''
+ this.formApprove.partcode = ''
+ this.formApprove.partname = ''
+ this.formApprove.partspec = ''
+ this.formApprove.plan_qty = ''
+ this.formApprove.routename = ''
+ this.formApprove.lm_date = ''
+
+ // this.$refs.qrCodeDiv0.title = ''
+
+ this.tableDataPrint = []
+ },
+ // 琛ユ墦鎸夐挳
+ supplementClick() {
+ this.dialogVisibleTask = false
+ this.handlePrint()
+ },
+ // 琛ユ墦灏忔爣绛�
+ supplementSmallClick(row) {
+ // let obj = {}
+ console.log(row, 21)
+ // this.taskTableData.forEach((item, index) => {
+ this.tableDataDetail.forEach((item, index) => {
+ if (item.seq === row.seq) {
+ console.log(item)
+ this.qrForm = {
+ // qrvalue: item.seq === this.taskTableData.length ? item.wo_code + ';' + item.stepcode : item.wo_code + ';' + this.taskTableData[item.seq].stepcode,
+ qrvalue: item.seq === this.tableDataDetail.length ? item.wo_code + ';' + item.stepcode : item.wo_code + ';' + this.tableDataDetail[item.seq].stepcode,
+ // startqty: item.seq === this.taskTableData.length ? item.plan_qty : this.taskTableData[item.seq].plan_qty,
+ startqty: item.seq === this.tableDataDetail.length ? item.plan_qty : this.tableDataDetail[item.seq].plan_qty,
+ wo_code: item.wo_code,
+ partcode: item.partcode,
+ partname: item.partname,
+ // nextstepname: item.seq === this.taskTableData.length ? item.stepname : this.taskTableData[item.seq].stepname,
+ nextstepname: item.seq === this.tableDataDetail.length ? item.stepname : this.tableDataDetail[item.seq].stepname,
+ operator: getCookie('username'),
+ operatorTime: handleDatetime2(new Date())
+ }
+ this.$nextTick(() => {
+ console.log(this.qrForm.qrvalue, 3333)
+ this.bindQRCode2(this.qrForm.qrvalue)
+
+ const div = document.getElementById('qrCode2')
+ // 杩欎箞澶氫唬鐮佸彧闇�瑕佽繖涓�鍙ュ疄鐜版垜浠墍闇�瑕佺殑鍔熻兘锛屽畾浣峝iv婊氬姩鏉′綅缃湪搴曢儴锛宻crollHeight璁$畻鍑篸iv鐨勯珮搴︼紝鍐峴crollTop 璁剧疆婊氬姩鏉$殑楂樺害涓哄灏�
+ div.scrollTop = div.scrollHeight // 婊氬姩鏉′綅浜庢渶搴曢儴
+ // div.scrollTop = 0 // 婊氬姩鏉′綅浜庢渶椤堕儴
+ })
+ }
+ })
+
+ // this.dialogVisibleTask = false
+ this.dialogVisible2 = true
+ console.log(this.qrForm, 1111)
+ },
+ // 琛ユ墦鐢熶骇鍏ュ簱鏉$爜
+ async getProductInHouseLabCode(ordercode) {
+ const res = await ProductInHouseLabCode({ ordercode })
+ console.log(res)
+ this.isLastPrint = true
+
+ this.lastPrintArr = res.data
+
+ this.dialogVisible2 = true
+
+ // 鐢熶骇浜岀淮鐮�
+ this.$nextTick(() => {
+ this.lastPrintArr.forEach((i, index) => {
+ i.checked = false
+ new QRCode(this.$refs.qrCodeDiv2[index], {
+ text: i.inbarcode,
+ width: this.printSize !== 2 ? 60 : 55,
+ height: this.printSize !== 2 ? 60 : 55,
+ colorDark: '#000', // 浜岀淮鐮侀鑹�
+ colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊
+ correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H
+ })
+ })
+ })
+ },
+ dialogVisible2Close() {
+ this.qrForm.qrvalue = ''
+ this.qrForm.startqty = ''
+ this.qrForm.wo_code = ''
+ this.qrForm.partcode = ''
+ this.qrForm.partname = ''
+ this.qrForm.nextstepname = ''
+ this.qrForm.operator = ''
+ this.qrForm.operatorTime = ''
+ // this.$refs.qrCodeDiv2 = ''
+ this.isLastPrint = false
+ this.lastPrintArr = []
+ this.lastPrintArrSelected = []
+ },
+ // 鐢熸垚浜岀淮鐮� 宸ュ簭鏍囩浜岀淮鐮�
+ bindQRCode2(text) {
+ new QRCode(this.$refs.qrCodeDiv2, {
+ text: text,
+ width: this.printSize !== 2 ? 60 : 55,
+ height: this.printSize !== 2 ? 60 : 55,
+ colorDark: '#000', // 浜岀淮鐮侀鑹�
+ colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊
+ correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H
+ })
+ },
+ // 鎶ュ簾琛ュ崟鎯呭喌涓嬪彲鐐瑰嚮閫夋嫨
+ mesordertsourcesearchclick() {
+ if (this.dialogForm.ordertype === 'PO') {
+ return this.$message.info('宸ュ崟绫诲瀷涓烘姤搴熻ˉ鍗曟儏鍐典笅鍙�夋嫨锛�')
+ }
+
+ this.getMesBadOrderSearch()
+
+ this.dialogVisibleSource = true
+ },
+ async getMesBadOrderSearch() {
+ // let tempDate2 = this.sourceForm.paystartdate
+ // if (tempDate2.length > 0) {
+ // tempDate2 = handleDatetime(tempDate2[0]) + '~' + handleDatetime(tempDate2[1])
+ // }
+
+ let tempDate = this.sourceForm.createdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+
+ const data = {
+ mesordercode: this.sourceForm.mesordercode, // 宸ュ崟缂栧彿
+ sourceorder: this.sourceForm.sourceorder, // 璁㈠崟璁㈠崟鍙�
+ saleordercode: this.sourceForm.sourceorder, // 璁㈠崟璁㈠崟鍙�
+ partcode: this.sourceForm.partcode, // 浜у搧缂栫爜
+ partname: this.sourceForm.partname, // 浜у搧鍚嶇О
+ partspec: this.sourceForm.partspec, // 浜у搧瑙勬牸
+ // paystartdate: tempDate2, // 浜や粯鏃堕棿
+ // payenddate: tempDate, // 浜や粯鏃堕棿
+ creatuser: this.sourceForm.creatuser, // 鍒涘缓浜哄憳
+ createdate: tempDate, // 鍒涘缓鏃堕棿
+
+ prop: this.sourceForm.prop, // 鎺掑簭瀛楁
+ order: this.sourceForm.order, // 鎺掑簭瀛楁
+ page: this.sourceForm.page, // 绗嚑椤�
+ rows: this.sourceForm.rows // 姣忛〉澶氬皯鏉�
+
+ }
+
+ const res = await MesBadOrderSearch(data)
+ this.sourceTableData = res.data
+ this.sourceFormTotal = res.count
+ },
+ // 鍗曢�夋閫変腑鑾峰彇褰撳墠琛屼俊鎭�
+ // getCurrentRowSource2(id) {
+ // this.radioSelectedId = id
+ // },
+ // 鍗曢�夋閫変腑鑾峰彇褰撳墠琛屼俊鎭�
+ getCurrentRowSource(row, event, column) {
+ this.radioSelectedId = row.id
+ this.dialogForm.mesqty = row.bad_qty
+ },
+ sourceSearch() {
+ this.getMesBadOrderSearch()
+ },
+ sourceReset() {
+ this.sourceForm.mesordercode = ''
+ this.sourceForm.sourceorder = ''
+ this.sourceForm.partcode = ''
+ this.sourceForm.partname = ''
+ this.sourceForm.partspec = ''
+ // this.sourceForm.paystartdate = ''
+ // this.sourceForm.payenddate = ''
+ this.sourceForm.creatuser = ''
+ this.sourceForm.createdate = ''
+ this.getMesBadOrderSearch()
+ },
+ dialogVisibleSourceClose() {
+ this.radioSelectedId = ''
+
+ this.sourceForm.mesordercode = ''
+ this.sourceForm.sourceorder = ''
+ this.sourceForm.partcode = ''
+ this.sourceForm.partname = ''
+ this.sourceForm.partspec = ''
+ this.sourceForm.paystartdate = ''
+ this.sourceForm.payenddate = ''
+ this.sourceForm.creatuser = ''
+ this.sourceForm.createdate = ''
+
+ this.isExpandDialog = false
+ this.sourceTableData = []
+ },
+ dialogVisibleSourceBack() {
+ this.dialogVisibleSource = false
+ },
+ dialogVisibleSourceConfirm() {
+ console.log(this.radioSelectedId)
+ this.sourceTableData.forEach(item => {
+ if (item.id === this.radioSelectedId) {
+ this.dialogForm.sourceorder = item.wo_code
+ this.dialogForm.partcode = item.partcode
+ this.dialogForm.partspec = item.partspec
+ }
+ })
+ this.dialogVisibleSource = false
+ },
+ mesordertypeChange(val) {
+ if (val === 'PO') {
+ this.dialogForm.sourceorder = ''
+ this.dialogForm.partcode = ''
+ this.dialogForm.partspec = ''
+ }
+ },
+ /* 鍏宠仈宸ヨ壓璺嚎妯″潡*/
+ // 鍏宠仈宸ヨ壓璺嚎
+ async routeClick(row) {
+ console.log(row)
+ // this.defaultroute_code = row.default_route
+ this.dialogFormRoute.projectCode = row.partcode
+ this.dialogFormRoute.projectName = row.partname
+ this.dialogVisibleRoute = true
+ const { data: res } = await InventoryFileAssociationRoute({ partcode: this.dialogFormRoute.projectCode })
+ this.dialogFormRoute.routeOperationArr = res
+
+ this.dialogFormRoute.routeOperationArr.forEach((item, index) => {
+ item.isSelected1 = false
+ item.isSelected2 = false
+ if (index === 0) {
+ item.isSelected1 = true
+ this.projectTableData = item.Data
+ }
+ if (item.flag === 'Y') {
+ item.isSelected2 = true
+ this.$nextTick(() => {
+ $('input:checkbox').eq(index).prop('checked', true)
+ })
+ }
+ })
+
+ this.defaultroute_codeArr = this.dialogFormRoute.routeOperationArr.filter(item => item.flag === 'Y')
+ },
+ // 瀵硅瘽妗嗗叧闂�
+ handleCloseRoute() {
+ this.dialogFormRoute.routeOperationArr = []
+ this.defaultroute_codeArr = []
+ this.defaultroute_code = ''
+ this.projectTableData = []
+ },
+ // 鍙栨秷
+ routeDialogVisibleCancel() {
+ this.dialogVisibleRoute = false
+ },
+ // 纭畾
+ async routeDialogVisibleConfirm() {
+ const temp = this.dialogFormRoute.routeOperationArr.filter(item => item.isSelected2)
+ if (this.defaultroute_code === '' && temp.length > 0) {
+ return this.$message.info('榛樿宸ヨ壓璺嚎涓嶈兘涓虹┖锛�')
+ }
+
+ // 鎻愪氦鏍煎紡
+ const data = []
+ this.dialogFormRoute.routeOperationArr.forEach(item => {
+ if (item.isSelected2) {
+ data.push({ code: item.code, name: item.name })
+ }
+ })
+
+ const res = await SaveInventoryFile(this.dialogFormRoute.projectCode, this.defaultroute_code, data)
+ if (res.code === '200') {
+ this.$message.success('淇濆瓨鎴愬姛锛�')
+ await this.getMesOrderClosedSearch()
+ this.dialogVisibleRoute = false
+ }
+ },
+ // 澶х洅瀛愮偣鍑讳簨浠�
+ myCheckboxClick(val) {
+ console.log(val, 1)
+ this.dialogFormRoute.routeOperationArr.forEach(item => {
+ item.isSelected1 = val.code === item.code
+ })
+
+ this.projectTableData = val.Data
+ },
+ // 灏忕洅瀛愮偣鍑讳簨浠�
+ myCheckboxInputClick(val) {
+ console.log(val, 2)
+ val.isSelected2 = !val.isSelected2
+
+ this.dialogFormRoute.routeOperationArr.forEach((item, index) => {
+ if (val.code === item.code) {
+ item.flag = !item.flag
+ }
+ })
+ if (val.code === this.defaultroute_code) {
+ this.defaultroute_code = ''
+ }
+ this.defaultroute_codeArr = this.dialogFormRoute.routeOperationArr.filter(item => item.isSelected2)
+ },
+ // 琛岀偣鍑讳簨浠�
+ async rowClick(row, event, column) {
+ const data = {
+ sourceid: row.sourceid,
+ sourcewo: row.m_po,
+ wocode: row.wo_code,
+ data_sources: row.data_sources
+ }
+ const { data: res } = await UpdateMesOrderStepSearch(data)
+ this.tableDataDetail = res.stepdata
+ },
+ // 宸ュ簭鍒犻櫎
+ stepDel(row) {
+ console.log(row)
+ const index = this.stepSelectedValue.findIndex(i => i === row.stepcode)
+ this.stepSelectedValue.splice(index, 1)
+ },
+ // 鎵撳嵃宸ュ崟
+ printOrder() {
+
+ },
+ // 閫夋嫨鎵撳嵃灏哄鐨勫ぇ灏忓�兼敼鍙�
+ printSizeChange(val) {
+ this.$nextTick(() => {
+ this.bindQRCode2(this.qrForm.qrvalue)
+ })
+ },
+ printMe2StylePadding(val) {
+ if (val === 0) {
+ return { paddingLeft: '10px', paddingTop: '5px' }
+ }
+ if (val === 5) {
+ return { paddingLeft: '15px', paddingTop: '7px' }
+ }
+ },
+
+ inbarcodeChange(val, item) {
+ // 褰� lastPrintArrSelected涓湭鏈夊綋鍓嶅嬀閫夌殑鍊兼槸 璧皃ush item 鍚﹀垯璧拌繃婊ゆ帀item
+ if (val) {
+ this.lastPrintArrSelected.push(item)
+ } else {
+ this.lastPrintArrSelected = this.lastPrintArrSelected.filter(i => i.inbarcode !== item.inbarcode)
+ }
+
+ // 鐢熶骇浜岀淮鐮�
+ this.$nextTick(() => {
+ this.lastPrintArrSelected.forEach((i, index) => {
+ console.log(i.inbarcode, 'i.inbarcode')
+ new QRCode(this.$refs.qrCodeDiv3[index], {
+ text: i.inbarcode,
+ width: 60,
+ height: 60,
+ colorDark: '#000', // 浜岀淮鐮侀鑹�
+ colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊
+ correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H
+ })
+ })
+
+ // const div = document.getElementById('qrCode3')
+ // div.scrollTop = 0 // 婊氬姩鏉′綅浜庢渶搴曢儴
+
+ this.$forceUpdate()
+ }, 500)
+ },
+ stepSelectedValueChange(val) {
+ // console.log(val, 123)
+ }
+ }
}
</script>
+<style>
+.sortable-ghost {
+ opacity: .8;
+ color: #fff !important;
+ background: #42b983 !important;
+}
+</style>
+<style lang="scss" scoped>
+$main_color: #42b983;
-<style scoped>
+.dialogVisibleRoute {
+ .myCheckboxGroup {
+ display: flex;
+ flex-wrap: wrap;
+ .myCheckbox {
+ //border: 1px solid $main_color;
+ border: 1px solid #eee;
+ display: flex;
+ min-width: 100px;
+ padding: 10px;
+ margin: 10px 30px 0 0;
+ border-radius: 5px;
+ cursor: default;
+
+ .myCheckboxInput {
+ margin: 1px 5px 0 0;
+ cursor: pointer;
+ }
+
+ }
+
+ //.myCheckbox{
+ // border: 1px solid $main_color;
+ //}
+
+ input[type=checkbox] {
+ cursor: pointer;
+ position: relative;
+ width: 14px;
+ height: 14px;
+ font-size: 14px;
+ }
+
+ input[type=checkbox]::after {
+ position: absolute;
+ top: 0;
+ //color: rgb(130, 35, 35);
+ color: $main_color;
+ width: 14px;
+ height: 14px;
+ display: inline-block;
+ visibility: visible;
+ padding-left: 0px;
+ text-align: center;
+ content: ' ';
+ border-radius: 3px
+ }
+
+ input[type=checkbox]:checked::after {
+ //content: "鉁�";
+ content: "鈭�";
+ color: #fff;
+ font-size: 12px;
+ font-weight: bold;
+ background-color: $main_color;
+ }
+ }
+}
+
+.dialogVisibleRoute {
+ ::v-deep .el-dialog__body {
+ padding: 20px 20px !important;
+ }
+}
+
+.defaultroute_code ::v-deep .el-input__suffix-inner {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-top: -3px;
+}
+
+.el-date-editor {
+ font-size: 14px;
+}
+
+::v-deep .el-dialog__body {
+ padding: 20px 100px !important;
+}
+
+.dialogVisibleSearch ::v-deep .el-dialog__body {
+ padding: 20px 20px !important;
+}
+
+.dialogVisibleConfirmClass ::v-deep .el-dialog__body {
+ padding: 20px 20px !important;
+}
+
+::v-deep .el-table .caret-wrapper {
+ transform: scale(0.8);
+}
+
+::v-deep .el-button--text {
+ color: $main_color;
+ font-size: 14px;
+ cursor: pointer;
+}
+
+::v-deep .el-radio.is-bordered + .el-radio.is-bordered {
+ margin: 10px 30px 0px 0;
+}
+
+.body ::v-deep .el-form-item {
+ margin-bottom: 0;
+}
+
+.elForm ::v-deep .el-form-item {
+ margin-bottom: 0;
+}
+
+.elTableDiv {
+ ::v-deep .el-radio__label {
+ display: none;
+ }
+
+}
+
+.el-table::before {
+ height: 0;
+}
+
+//.dialogVisibleConfirmClass >>>.el-table--border, .el-table--fit {
+// border-bottom: 2px solid #000 ;
+// //outline: #000 solid 2px !important;
+//}
+
+.tableDataPrint ::v-deep div.cell {
+ display: flex !important;
+ align-items: center !important;
+ justify-content: center !important;
+}
+
+.formContent {
+ width: 240px;
+}
+
+</style>
+
+<style media="print">
+/*@media print {*/
+@page {
+ size: auto;
+ margin: 3mm;
+}
+
+</style>
+<style>
+.formContent .el-form-item__label {
+ color: #000 !important;
+}
+</style>
+<!--鍏叡椤甸潰鏍峰紡-->
+<style lang="scss" scoped>
+$main_color: #42b983;
+
+::v-deep .el-range-input {
+ font-size: 14px !important;
+}
+
+::v-deep .el-range__icon {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-separator {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-input {
+ font-size: 14px;
+}
+
+::v-deep .el-range-separator {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+//::v-deep .el-button--primary, .el-button--default, .el-button--info {
+// height: 34px;
+// display: flex;
+// align-items: center;
+// padding: 0 15px;
+//}
+
+::v-deep .el-button--primary {
+ //background-color: $main_color !important;
+}
+
+::v-deep .el-button--default {
+ background-color: #f8f8fa;
+ border: none;
+}
+
+::v-deep .el-input__inner {
+ height: 34px;
+ line-height: 34px;
+ //color: #a7a7a7;
+}
+
+::v-deep .el-dialog__body {
+ padding: 20px 100px !important;
+}
+
+::v-deep .dialogVisibleRoles .el-dialog__body {
+ padding: 20px 20px !important;
+}
+
+::v-deep .importPickerClass .el-dialog__body {
+ padding: 20px 20px !important;
+}
+
+::v-deep .el-dialog__footer {
+ display: flex;
+ justify-content: flex-end;
+}
+
+::v-deep .el-table .caret-wrapper {
+ transform: scale(0.8);
+}
+
+::v-deep .cell {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
+
+::v-deep .el-table::before {
+ height: 0;
+}
+
+::v-deep .el-table__body-wrapper {
+ background-color: #f8f8fa;
+}
+
+::v-deep .el-table__body .el-table__row.hover-row td {
+ background-color: #eaecef;
+}
+
+::v-deep .el-form--inline .el-form-item__label {
+ color: #a7a7a7;
+}
+
+.body ::v-deep .el-divider {
+ border: 1px solid #eee;
+ width: 99%;
+ margin: 10px auto;
+}
+
+.body ::v-deep .el-form-item {
+ margin-bottom: 0;
+}
+
+.userDialogVisible ::v-deep .el-form-item {
+ margin-bottom: 0;
+}
+
+.dateMini {
+ ::v-deep .el-input__inner {
+ line-height: 34px;
+ height: 34px;
+ width: 200px;
+ display: flex;
+ font-size: 14px !important;
+ align-items: center !important;
+ }
+
+ ::v-deep .el-input__prefix {
+ margin-top: -3px;
+ }
+
+ //::v-deep .el-range__icon{
+ // line-height: 28px;
+ //}
+}
+
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.tableFixed {
+ ::v-deep .el-table__fixed-right {
+ height: 100% !important;
+ }
+
+ ::v-deep .el-table__fixed {
+ height: 100% !important;
+ }
+}
+</style>
+<style>
+
+.el-table .custom-row {
+ background: #f8f8fa;
+}
</style>
diff --git a/src/views/workOrder/workOrderList.vue b/src/views/workOrder/workOrderList.vue
index 4398e56..af688a1 100644
--- a/src/views/workOrder/workOrderList.vue
+++ b/src/views/workOrder/workOrderList.vue
@@ -1,11 +1,3486 @@
-<template />
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+
+ <div class="bodyTopButtonGroup" style="justify-content: space-between">
+ <div style="display: flex">
+ <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>
+ <el-button v-waves type="success" icon="el-icon-connection" @click="send">娲惧彂</el-button>
+ </div>
+
+ <!-- <el-button v-waves icon="el-icon-switch-button" @click="orderClose">鍏抽棴宸ュ崟</el-button>-->
+ </div>
+
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="杞﹂棿鍚嶇О" style=" display: flex;">
+ <el-select
+ v-model="form.wkshopcode"
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in wkshopcodeArr"
+ :key="item.torg_code"
+ :label="item.torg_name"
+ :value="item.torg_code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="宸ュ崟鐘舵��" style=" display: flex;">
+ <el-select
+ v-model="form.mesorderstus"
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ filterable
+ @change="erporderstusChange"
+ >
+ <el-option
+ v-for="item in erporderstusArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="宸ュ崟缂栧彿" style=" display: flex;">
+ <el-input v-model="form.mesordercode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="婧愬崟鍗曞彿" style="display: flex;">
+ <el-input v-model="form.sourceorder" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="閿�鍞鍗�" style="display: flex;">
+ <el-input v-model="form.saleordercode" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鍗曟嵁绫诲瀷" style=" display: flex;">
+ <el-select
+ v-model="form.ordertype"
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <!-- @change="mesordertypeChange"-->
+ <el-option
+ v-for="item in ordertypeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="浜у搧缂栫爜" style=" display: flex;">
+ <el-input v-model="form.partcode" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="浜у搧鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.partname" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="浜у搧瑙勬牸" style=" display: flex;">
+ <el-input v-model="form.partspec" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鍒涘缓浜哄憳" style=" display: flex;">
+ <el-input v-model="form.creatuser" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鍒涘缓鏃堕棿" style=" display: flex;">
+ <!-- <el-date-picker-->
+ <!-- v-model="form.createdate"-->
+ <!-- type="daterange"-->
+ <!-- :clearable="false"-->
+ <!-- range-separator="~"-->
+ <!-- start-placeholder="寮�濮嬫棩鏈�"-->
+ <!-- end-placeholder="缁撴潫鏃ユ湡"-->
+ <!-- size="mini"-->
+ <!-- />-->
+ <el-date-picker
+ v-model="form.createdate"
+ type="date"
+ size="mini"
+ :clearable="false"
+ class="dateMini"
+ format="yyyy-MM-dd"
+ placeholder="閫夋嫨鏃ユ湡"
+ />
+ </el-form-item>
+ </div>
+
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+80)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+80)+'px'}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ @row-click="rowClick"
+ @selection-change="handleSelectionChange"
+ >
+ <el-table-column
+ type="selection"
+ width="50"
+ :selectable="selected"
+ />
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ label="搴忓彿"
+ fixed
+ />
+ <el-table-column
+ prop="status"
+ label="宸ュ崟鐘舵��"
+ sortable="custom"
+ width="110"
+ show-tooltip-when-overflow
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.status==='NEW'">鏂板伐鍗�</div>
+ <!-- <div v-if="row.status==='CREATING'">鎵ц涓�</div>-->
+ <!-- <div v-if="row.status==='CREATED'">宸插叧闂�</div>-->
+ <div v-if="row.status==='ALLO'">宸叉淳鍙�</div>
+ <div v-if="row.status==='START'">寮�宸�</div>
+ <div v-if="row.status==='CLOSED'">瀹屽伐</div>
+ <div v-if="row.status==='NOSCHED'">寰呮帓绋�</div>
+ <div v-if="row.status==='SCHED'">宸叉帓绋�</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="wo_code"
+ label="宸ュ崟缂栧彿"
+ show-tooltip-when-overflow
+ sortable="custom"
+ min-width="160"
+ />
+ <el-table-column
+ prop="m_po"
+ label="婧愬崟鍗曞彿"
+ sortable="custom"
+ show-tooltip-when-overflow
+ min-width="160"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.m_po">{{ row.m_po }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="saleOrderCode"
+ label="閿�鍞鍗�"
+ sortable="custom"
+ show-tooltip-when-overflow
+ min-width="160"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="wotype"
+ label="鍗曟嵁绫诲瀷"
+ sortable="custom"
+ show-tooltip-when-overflow
+ min-width="120"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.wotype==='PO'">鏍囧噯宸ュ崟</div>
+ <div v-else-if="row.wotype==='FO'">鎶ュ簾琛ュ崟</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="partcode"
+ label="浜у搧缂栫爜"
+ show-tooltip-when-overflow
+ sortable="custom"
+ min-width="120"
+ />
+ <el-table-column
+ prop="partname"
+ min-width="150"
+ label="浜у搧鍚嶇О"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partspec"
+ label="浜у搧瑙勬牸"
+ sortable="custom"
+ width="110"
+ show-tooltip-when-overflow
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.partspec">{{ row.partspec }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="plan_qty"
+ label="宸ュ崟鏁�"
+ sortable="custom"
+ show-tooltip-when-overflow
+ width="100"
+ />
+ <el-table-column
+ prop="clerkuser"
+ label="閿�鍞笟鍔″憳"
+ sortable="custom"
+ show-tooltip-when-overflow
+ width="150"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.clerkuser">{{ row.clerkuser }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="wkshp_name"
+ label="鐢熶骇杞﹂棿"
+ show-tooltip-when-overflow
+ sortable="custom"
+ width="120"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.wkshp_name">{{ row.wkshp_name }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="saleOrderDeliveryDate"
+ label="棰勮浜や粯鏃ユ湡"
+ sortable="custom"
+ width="130"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.saleOrderDeliveryDate">{{ row.saleOrderDeliveryDate.substring(0, 11) }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <!-- <el-table-column-->
+ <!-- prop="data_sources"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- label="鏁版嵁鏉ユ簮"-->
+ <!-- sortable="custom"-->
+ <!-- width="120"-->
+ <!-- />-->
+
+ <el-table-column
+ prop="lm_user"
+ show-tooltip-when-overflow
+ label="鍒涘缓浜哄憳"
+ sortable="custom"
+ width="120"
+ />
+ <el-table-column
+ prop="lm_date"
+ label="鍒涘缓鏃堕棿"
+ show-tooltip-when-overflow
+ width="160"
+ sortable="custom"
+ />
+ <el-table-column
+ label="鎿嶄綔"
+ width="160"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <el-tooltip class="item" effect="dark" content="淇敼" placement="top">
+ <i
+ class="el-icon-edit-outline"
+ :style="{color:$store.state.settings.theme}"
+ @click.stop="edit('edit',row)"
+ />
+ </el-tooltip>
+
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+ <i class="el-icon-delete" :style="{color:$store.state.settings.theme}" @click.stop="del(row)" />
+ </el-tooltip>
+
+ <el-tooltip class="item" effect="dark" content="鎵撳嵃宸ュ崟" placement="top">
+ <!-- <i-->
+ <!-- class="el-icon-tickets"-->
+ <!-- style="cursor: pointer;color: #42b983;margin-right: 15px"-->
+ <!-- @click="check(row)"-->
+ <!-- />-->
+ <i
+ :style="{color:$store.state.settings.theme}"
+ class="el-icon-printer"
+ style="cursor: pointer;margin-right: 15px"
+ @click.stop="handlePrint(row.wo_code)"
+ />
+ </el-tooltip>
+
+ <el-tooltip class="item" effect="dark" content="璇︽儏" placement="top">
+ <i
+ class="el-icon-view"
+ style="cursor: pointer;"
+ :style="{color:$store.state.settings.theme}"
+ @click.stop="edit('view',row)"
+ />
+ </el-tooltip>
+
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes,jumper"
+ popper-class="select_bottom"
+ @pagination="getMesOrderSearch"
+ />
+
+ <div class="elTableDiv">
+ <el-table
+ :data="tableDataDetail"
+ border
+ height="210px"
+ :row-class-name="tableRowClassName"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ >
+ <!-- <el-table-column-->
+ <!-- width="50"-->
+ <!-- type="index"-->
+ <!-- prop="搴忓彿"-->
+ <!-- fixed-->
+ <!-- /> -->
+ <el-table-column
+ width="50"
+ prop="seq"
+ label="搴忓彿"
+ fixed
+ />
+ <el-table-column
+ prop="wo_code"
+ show-tooltip-when-overflow
+ label="宸ュ崟缂栧彿"
+ width="160"
+ />
+
+ <!-- <el-table-column-->
+ <!-- prop="partcode"-->
+ <!-- label="浜у搧缂栫爜"-->
+ <!-- width="150"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- prop="partname"-->
+ <!-- label="浜у搧鍚嶇О"-->
+ <!-- width="200"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- />-->
+
+ <el-table-column
+ label="宸ュ簭缂栫爜"
+ prop="step_code"
+ show-tooltip-when-overflow
+ width="150"
+ />
+ <el-table-column
+ label="宸ュ簭鍚嶇О"
+ show-tooltip-when-overflow
+ prop="stepname"
+ width="150"
+ />
+ <el-table-column
+ label="宸ュ簭鍗曚环"
+ show-tooltip-when-overflow
+ prop="stepprice"
+ />
+ <el-table-column
+ label="宸茬敓浜ф暟閲�"
+ show-tooltip-when-overflow
+ prop="produceq_qty"
+ />
+ <el-table-column
+ label="鍚堟牸鏁伴噺"
+ show-tooltip-when-overflow
+ prop="good_qty"
+ />
+ <el-table-column
+ label="涓嶈壇鏁伴噺"
+ show-tooltip-when-overflow
+ prop="ng_qty"
+ />
+ <el-table-column
+ label="宸ュ簾鏁伴噺"
+ show-tooltip-when-overflow
+ prop="laborbad_qty"
+ />
+ <el-table-column
+ label="鏂欏簾鏁伴噺"
+ show-tooltip-when-overflow
+ prop="materielbad_qty"
+ />
+ <el-table-column
+ label="寰呬骇鏁伴噺"
+ show-tooltip-when-overflow
+ prop="delive_qty"
+ />
+ <!-- <el-table-column-->
+ <!-- label="鎿嶄綔"-->
+ <!-- width="120"-->
+ <!-- fixed="right"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div class="operationClass">-->
+ <!-- <el-tooltip class="item" effect="dark" content="鎵撳嵃宸ュ簭" placement="top">-->
+ <!-- <i-->
+ <!-- v-if="tableDataDetail.length!==row.seq"-->
+ <!-- class="el-icon-printer"-->
+ <!-- :style="{color:$store.state.settings.theme}"-->
+ <!-- style="cursor: pointer;margin-right: 15px"-->
+ <!-- @click="supplementSmallClick(row)"-->
+ <!-- />-->
+ <!-- </el-tooltip>-->
+ <!-- <el-tooltip class="item" effect="dark" content="琛ユ墦鐢熶骇鍏ュ簱鏉$爜" placement="top">-->
+ <!-- <i-->
+ <!-- v-if="tableDataDetail.length===row.seq"-->
+ <!-- class=" el-icon-camera"-->
+ <!-- :style="{color:$store.state.settings.theme}"-->
+ <!-- style="cursor: pointer;margin-right: 15px"-->
+ <!-- @click="getProductInHouseLabCode(row.wo_code)"-->
+ <!-- />-->
+ <!-- </el-tooltip>-->
+ <!-- </div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ </el-table>
+ </div>
+ </div>
+ <!--鏂板娲惧彂瀵硅瘽妗�-->
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':(operation==='edit'?'淇敼':'璇︽儏')"
+ :visible.sync="dialogVisible"
+ width="1200px"
+ top="8vh"
+ :close-on-click-modal="false"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <el-form
+ ref="dialogForm"
+ inline
+ :rules="dialogFormRules"
+ :model="dialogForm"
+ label-width="110px"
+ >
+
+ <el-divider content-position="left">鍩烘湰淇℃伅</el-divider>
+
+ <el-form-item
+ label="宸ュ崟鐘舵��"
+ prop="mesorderstus"
+ >
+ <el-select
+ v-model="dialogForm.mesorderstus"
+ disabled
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in erporderstusArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+
+ <el-form-item label="宸ュ崟缂栧彿" prop="mesordercode">
+ <!-- <el-input v-model="dialogForm.mesordercode" :disabled="operation!=='add'" style="width: 200px" />-->
+ <el-input v-model="dialogForm.mesordercode" disabled style="width: 200px" />
+ </el-form-item>
+ <!-- <div style="display: flex">-->
+ <el-form-item label="宸ュ崟绫诲瀷" prop="mesorderstus">
+ <el-select
+ v-model="dialogForm.ordertype"
+ :popper-append-to-body="false"
+ style="width: 200px"
+ :disabled="operation!=='add'"
+ placeholder="璇烽�夋嫨"
+ @change="mesordertypeChange"
+ >
+ <el-option
+ v-for="item in ordertypeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <!-- <div style="display: flex;flex-wrap: nowrap">-->
+ <el-form-item label="婧愬崟鍗曞彿">
+ <el-input
+ v-model="dialogForm.sourceorder"
+ :disabled="dialogForm.ordertype==='PO'"
+ style="width: 200px"
+ >
+ <el-button
+ slot="append"
+ icon="el-icon-search"
+ :disabled="operation!=='add'||dialogForm.ordertype==='PO'"
+ @click="mesordertsourcesearchclick"
+ />
+ </el-input>
+ </el-form-item>
+ <!-- <el-button-->
+ <!-- v-waves-->
+ <!-- type="primary"-->
+ <!-- style="padding: 0 10px;margin-left: -8px;margin-top: 3px"-->
+ <!-- class="el-icon-search"-->
+ <!-- :disabled="operation!=='add'||dialogForm.ordertype==='PO'"-->
+ <!-- @click="mesordertsourcesearchclick"-->
+ <!-- />-->
+ <!-- </div>-->
+ <!-- </div>-->
+ <el-form-item label="宸ュ崟鏁伴噺" prop="mesqty">
+ <el-input
+ v-model="dialogForm.mesqty"
+ oninput="value=value.replace(/[^\d]/g,'')"
+ style="width: 200px"
+ />
+ <!-- oninput="value=value.replace(/[^0-9*.{1}0-9*]/g,'')"-->
+ </el-form-item>
+ <el-form-item
+ label="浜у搧鍚嶇О/缂栫爜"
+ prop="partcode"
+ >
+ <el-select
+ v-model="dialogForm.partcode"
+ filterable
+ :disabled="operation!=='add'"
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ @change="partcodeChangeDialog"
+ >
+ <el-option
+ v-for="item in partArr"
+ :key="item.partcode"
+ :label="item.partname+'/'+item.partcode"
+ :value="item.partcode"
+ />
+ </el-select>
+ </el-form-item>
+ <!-- <el-form-item v-if="operation!=='add'" label="浜у搧鍚嶇О" prop="partname">-->
+ <!-- <el-input v-model="dialogForm.partname" disabled style="width: 200px" />-->
+ <!-- </el-form-item>-->
+ <!-- <el-form-item v-if="operation!=='add'" label="浜у搧缂栫爜">-->
+ <!-- <el-input v-model="dialogForm.partcode" disabled style="width: 200px" />-->
+ <!-- </el-form-item>-->
+ <el-form-item label="浜у搧瑙勬牸" prop="partspec">
+ <el-input v-model="dialogForm.partspec" disabled style="width: 200px" />
+ </el-form-item>
+ <!-- :disabled="dialogForm.partcode===''"-->
+ <el-form-item label="鎵�灞炶溅闂�" prop="wkshopcode">
+ <el-select
+ v-model="dialogForm.wkshopcode"
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px;"
+ placeholder="璇烽�夋嫨杞﹂棿"
+ @change="getMesOrderNewStepContent"
+ >
+ <el-option
+ v-for="item in wkshopArr"
+ :key="item.torg_code"
+ :label="item.torg_name"
+ :value="item.torg_code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="棰勮浜や粯鏃ユ湡" prop="deliverydate">
+ <el-date-picker
+ v-model="dialogForm.deliverydate"
+ type="date"
+ size="mini"
+ :clearable="false"
+ class="dateMini"
+ :picker-options="pickerOptions"
+ format="yyyy-MM-dd"
+ value-format="yyyy-MM-dd"
+ placeholder="閫夋嫨鏃ユ湡"
+ />
+ <!-- :disabled="dialogForm.deliverydate"-->
+ </el-form-item>
+
+ <el-divider content-position="left">宸ュ簭淇℃伅</el-divider>
+
+ <div style="display: flex;align-items: center">
+ <div style="font-weight: bolder">宸ュ簭閫夋嫨锛�</div>
+ <el-drag-select
+ v-model="stepSelectedValue"
+ style="width:930px;"
+ multiple
+ placeholder="璇烽�夋嫨鐩稿搴斿伐搴�"
+ @change="stepSelectedValueChange"
+ >
+ <!-- :disabled="!(dialogForm.mesorderstus==='NEW'||dialogForm.mesorderstus==='ALLO')"-->
+ <el-option
+ v-for="item in stepSelectArr"
+ :key="item.stepcode"
+ :label="item.stepname"
+ :value="item.stepcode"
+ />
+ </el-drag-select>
+ </div>
+
+ <el-table
+ ref="stepTableDataRef"
+ :data="stepTableData"
+ border
+ :row-class-name="tableRowClassName"
+ height="300"
+ style="width: 100%;margin-top: 15px;"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ row-key="stepcode"
+ >
+ <el-table-column
+ type="index"
+ label="搴忓彿"
+ width="50"
+ />
+ <el-table-column
+ prop="stepcode"
+ show-tooltip-when-overflow
+ label="宸ュ簭缂栫爜"
+ />
+ <el-table-column
+ prop="stepname"
+ label="宸ュ簭鍚嶇О"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="stepprice"
+ label="鐢熶骇鍗曚环"
+ show-tooltip-when-overflow
+ >
+ <template slot-scope="{row}">
+ <el-input
+ v-model="row.stepprice"
+ placeholder="璇疯緭鍏ュ伐搴忓崟浠�"
+ oninput="value=value.replace(/[^0-9.]/g,'')"
+ style="width: 100%"
+ @click.stop=""
+ />
+ </template>
+ </el-table-column>
+ <el-table-column
+ label="鎿嶄綔"
+ width="120"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <!-- <el-tooltip class="item" effect="dark" content="绉诲姩" placement="top">-->
+ <i
+ class="el-icon-rank"
+ :style="{color:$store.state.settings.theme}"
+ style="cursor: move"
+ />
+ <!-- </el-tooltip>-->
+ <!-- @click="edit('edit',row)"-->
+
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+ <i
+ class="el-icon-delete"
+ :style="{color:$store.state.settings.theme}"
+ style="margin-left: 15px;"
+ @click="stepDel(row)"
+ />
+ </el-tooltip>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+
+ </el-form>
+
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <!-- <el-button v-waves v-if="operation==='add'" type="primary" @click="dialogVisibleConfirmPreview('add')">棰勮</el-button>-->
+ <el-button
+ v-if="operation!=='view'&&(dialogForm.mesorderstus==='NEW'||dialogForm.mesorderstus==='ALLO')"
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="dialogVisibleConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ <!-- 宸ュ簭浠诲姟瀵硅瘽妗�-->
+ <el-dialog
+ v-el-drag-dialog
+ title="宸ュ簭浠诲姟"
+ :visible.sync="dialogVisibleTask"
+ width="840px"
+ top="15vh"
+ class="dialogVisibleSearch"
+ :close-on-click-modal="false"
+ @close="dialogVisibleTaskClose"
+ >
+ <el-button
+ v-waves
+ style="margin-bottom: 15px"
+ type="primary"
+ @click="supplementClick"
+ >琛ユ墦
+ </el-button>
+ <el-table
+ :data="taskTableData"
+ border
+ :row-class-name="tableRowClassName"
+ height="300"
+ style="width: 100%;"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ >
+ <el-table-column
+ prop="seq"
+ width="50"
+ label="搴忓彿"
+ fixed
+ />
+ <el-table-column
+ prop="wo_code"
+ show-tooltip-when-overflow
+ label="宸ュ崟缂栧彿"
+ width="200"
+ />
+ <el-table-column
+ prop="stepcode"
+ label="宸ュ簭缂栫爜"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="stepname"
+ show-tooltip-when-overflow
+ label="宸ュ簭鍚嶇О"
+ />
+ <!-- <el-table-column-->
+ <!-- prop="flwtype"-->
+ <!-- label="宸ュ簭绫诲瀷"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.flwtype==='W'">澶栧崗</div>-->
+ <!-- <div v-if="row.flwtype==='Z'">鑷埗</div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ <!-- <el-table-column-->
+ <!-- prop="descr"-->
+ <!-- label="宸ュ簭鎻忚堪"-->
+ <!-- />-->
+ <el-table-column
+ prop="plan_qty"
+ show-tooltip-when-overflow
+ label="浠诲姟鏁伴噺"
+ />
+ <el-table-column
+ prop="good_qty"
+ show-tooltip-when-overflow
+ label="鍚堟牸鏁伴噺"
+ />
+ <el-table-column
+ prop="ng_qty"
+ show-tooltip-when-overflow
+ label="涓嶈壇鏁伴噺"
+ />
+ <el-table-column
+ label="鎿嶄綔"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button v-waves type="text" style="padding: 0;" @click="supplementSmallClick(row)">琛ユ墦</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleBack">杩� 鍥�</el-button>
+ <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>-->
+ </div>
+ </span>
+ </el-dialog>
+
+ <!-- 婧愬崟鍗曞彿瀵硅瘽妗�-->
+ <el-dialog
+ v-el-drag-dialog
+ title="婧愬崟鍗曞彿"
+ :visible.sync="dialogVisibleSource"
+ width="1200px"
+ top="10vh"
+ class="dialogVisibleSearch"
+ :close-on-click-modal="false"
+ @close="dialogVisibleSourceClose"
+ >
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="sourceForm"
+ :model="sourceForm"
+ label-width="100px"
+ inline
+ style="display: flex;justify-content: space-between"
+ >
+ <div class="elForm" style="justify-content: flex-start">
+ <!-- <el-form-item-->
+ <!-- label="棰勮寮�宸ユ椂闂�"-->
+ <!-- label-width="100px"-->
+ <!-- style=" display: flex;font-size: 14px;margin-top: 3px"-->
+ <!-- >-->
+ <!-- <el-date-picker-->
+ <!-- v-model="sourceForm.paystartdate"-->
+ <!-- type="daterange"-->
+ <!-- range-separator="~"-->
+ <!-- class="timeMini"-->
+ <!-- size="mini"-->
+ <!-- style="width: 200px;display: flex;line-height: 34px;height: 34px;font-size: 14px!important;"-->
+ <!-- :clearable="false"-->
+ <!-- start-placeholder="寮�濮嬫棩鏈�"-->
+ <!-- end-placeholder="缁撴潫鏃ユ湡"-->
+ <!-- />-->
+ <!-- <!– :picker-options="expireTimeOption"–>-->
+
+ <!-- </el-form-item>-->
+ <!-- <el-form-item-->
+ <!-- label="棰勮瀹屽伐鏃堕棿"-->
+ <!-- label-width="100px"-->
+ <!-- style=" display: flex;font-size: 14px;margin-top: 3px"-->
+ <!-- >-->
+ <!-- <el-date-picker-->
+ <!-- v-model="sourceForm.payenddate"-->
+ <!-- type="daterange"-->
+ <!-- :clearable="false"-->
+ <!-- class="timeMini"-->
+ <!-- range-separator="~"-->
+ <!-- start-placeholder="寮�濮嬫棩鏈�"-->
+ <!-- style="width: 200px;display: flex;line-height: 34px ;height: 34px ;font-size: 14px !important;"-->
+ <!-- end-placeholder="缁撴潫鏃ユ湡"-->
+ <!-- size="mini"-->
+ <!-- />-->
+ <!-- </el-form-item>-->
+ <!-- <el-form-item label="宸ュ崟鐘舵��" style=" display: flex;">-->
+ <!-- <el-select-->
+ <!-- v-model="sourceForm.mesordercode"-->
+ <!-- filterable-->
+ <!-- :popper-append-to-body="false"-->
+ <!-- style="width: 200px"-->
+ <!-- placeholder="璇烽�夋嫨"-->
+ <!-- >-->
+ <!-- <el-option-->
+ <!-- v-for="item in erporderstusArr"-->
+ <!-- :key="item.code"-->
+ <!-- :label="item.name"-->
+ <!-- :value="item.code"-->
+ <!-- />-->
+ <!-- </el-select>-->
+ <!-- </el-form-item>-->
+ <el-form-item label="杞﹂棿鍚嶇О" style=" display: flex;">
+ <el-select
+ v-model="sourceForm.wkshopcode"
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in wkshopcodeArr"
+ :key="item.torg_code"
+ :label="item.torg_name"
+ :value="item.torg_code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="宸ュ崟缂栧彿" style=" display: flex;">
+ <el-input v-model="sourceForm.mesordercode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="浜у搧缂栫爜" style=" display: flex;">
+ <el-input v-model="sourceForm.partcode" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+
+ <el-form-item v-show="isExpandDialog" label="浜у搧鍚嶇О" style=" display: flex;">
+ <el-input v-model="sourceForm.partname" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <!-- <el-form-item v-show="isExpandDialog" label="浜у搧瑙勬牸" style=" display: flex;">-->
+ <!-- <el-input v-model="sourceForm.partspec" style="width: 200px" placeholder="璇疯緭鍏�" />-->
+ <!-- </el-form-item>-->
+ <el-form-item v-show="isExpandDialog" label="鍒涘缓浜哄憳" style=" display: flex;">
+ <el-input v-model="sourceForm.creatuser" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+
+ <el-form-item
+ v-show="isExpandDialog"
+ label="鍒涘缓鏃堕棿"
+ label-width="100px"
+ style=" display: flex;font-size: 14px;margin-top: 3px"
+ >
+ <el-date-picker
+ v-model="sourceForm.createdate"
+ type="daterange"
+ range-separator="~"
+ class="timeMini"
+ size="mini"
+ style="width: 200px;display: flex;line-height: 34px;height: 34px;font-size: 14px!important;"
+ :clearable="false"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ />
+ <!-- :picker-options="expireTimeOption"-->
+
+ </el-form-item>
+
+ </div>
+
+ <div style="display: flex;align-items: start;margin-top: 3px;z-index: 2;justify-content: end">
+ <el-button v-waves type="primary" icon="el-icon-search" @click="sourceSearch">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="sourceReset">閲嶇疆</el-button>
+ </div>
+
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverTypeDialog==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandDialog?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverTypeDialog=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverTypeDialog==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandDialog?'doubleDown':'doubleUp'"
+ @click="isExpandDialog=!isExpandDialog"
+ @mouseout="mouseHoverTypeDialog=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ :data="sourceTableData"
+ :height="isExpandDialog?(tableHeight+100)+'px':(tableHeight+140)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandDialog?(tableHeight+100)+'px':(tableHeight+140)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sourceSortChange"
+ @row-click="getCurrentRowSource"
+ >
+ <!-- <el-table-column-->
+ <!-- type="selection"-->
+ <!-- width="50"-->
+ <!-- />-->
+ <el-table-column
+ width="50"
+ fixed
+ >
+ <template slot-scope="{row}">
+ <el-radio
+ v-model="radioSelectedId"
+ :label="row.id"
+ style="color: transparent;padding-left: 10px;"
+ />
+ <!-- @change.native="getCurrentRowSource(row.id)"-->
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <!-- <el-table-column-->
+ <!-- prop="status"-->
+ <!-- label="宸ュ崟鐘舵��"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- sortable="custom"-->
+ <!-- width="110"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.status==='NEW'">鏂拌鍗�</div>-->
+ <!-- <div v-if="row.status==='CREATING'">閮ㄥ垎涓嬭揪</div>-->
+ <!-- <div v-if="row.status==='CREATED'">鍏ㄩ儴涓嬭揪</div>-->
+ <!-- <div v-if="row.status==='CLOSED'">宸插叧闂�</div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ <el-table-column
+ label="宸ュ崟缂栧彿"
+ prop="wo_code"
+ show-tooltip-when-overflow
+ min-width="150"
+ sortable="custom"
+ >
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.m_po">{{ row.m_po }}</div>-->
+ <!-- <div v-else>{{ row.wo_code }}</div>-->
+ <!-- </template>-->
+ </el-table-column>
+ <el-table-column
+ prop="partcode"
+ label="浜у搧缂栫爜"
+ sortable="custom"
+ show-tooltip-when-overflow
+ min-width="150"
+ />
+ <el-table-column
+ prop="partname"
+ label="浜у搧鍚嶇О"
+ sortable="custom"
+ show-tooltip-when-overflow
+ min-width="150"
+ />
+ <el-table-column
+ prop="partspec"
+ label="浜у搧瑙勬牸"
+ show-tooltip-when-overflow
+ sortable="custom"
+ min-width="110"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.partspec">{{ row.partspec }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="plan_qty"
+ label="浠诲姟鏁伴噺"
+ width="150"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+
+ <el-table-column
+ prop="laborbad_qty"
+ label="宸ュ簾鏁伴噺"
+ width="150"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="materielbad_qty"
+ label="鏂欏簾鏁伴噺"
+ width="150"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+
+ <!-- <el-table-column-->
+ <!-- prop="relse_qty"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- label="宸蹭笅鍗曟暟閲�"-->
+ <!-- width="150"-->
+ <!-- sortable="custom"-->
+ <!-- />-->
+ <el-table-column
+ prop="wkshp_name"
+ label="鐢熶骇杞﹂棿"
+ show-tooltip-when-overflow
+ sortable="custom"
+ width="150"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.wkshp_name">{{ row.wkshp_name }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <!-- <el-table-column-->
+ <!-- prop="plan_startdate"-->
+ <!-- label="棰勮寮�宸ユ椂闂�"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- sortable="custom"-->
+ <!-- width="130"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.plan_startdate">{{ row.plan_startdate.substring(0, 11) }}</div>-->
+ <!-- <div v-else>/</div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ <!-- <el-table-column-->
+ <!-- prop="plan_enddate"-->
+ <!-- label="棰勮瀹屽伐鏃堕棿"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- sortable="custom"-->
+ <!-- width="130"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.plan_enddate">{{ row.plan_enddate.substring(0, 11) }}</div>-->
+ <!-- <div v-else>/</div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ <el-table-column
+ prop="lm_user"
+ label="鍒涘缓浜哄憳"
+ show-tooltip-when-overflow
+ sortable="custom"
+ width="150"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.lm_user">{{ row.lm_user }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="lm_date"
+ label="鍒涘缓鏃堕棿"
+ show-tooltip-when-overflow
+ width="130"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.lm_date">{{ row.lm_date.substring(0, 11) }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <!-- <el-table-column-->
+ <!-- label="鎿嶄綔"-->
+ <!-- fixed="right"-->
+ <!-- width="80"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div class="operationClass">-->
+ <!-- <el-tooltip class="item" effect="dark" content="涓嬭揪" placement="top">-->
+ <!-- <!– <el-button v-waves type="text" @click="edit('edit',row)">涓嬭揪</el-button>–>-->
+ <!-- <i-->
+ <!-- class="el-icon-bottom"-->
+ <!-- style="color:#42b983;cursor: pointer;margin-left: 5px"-->
+ <!-- @click="edit('edit',row)"-->
+ <!-- />-->
+ <!-- </el-tooltip>-->
+ <!-- </div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="sourceFormTotal"
+ :page.sync="sourceForm.page"
+ :limit.sync="sourceForm.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getMesBadOrderSearch"
+ />
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleSourceBack">杩� 鍥�</el-button>
+ <el-button v-waves type="primary" @click="dialogVisibleSourceConfirm">纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ <!--鎵撳嵃棰勮瀵硅瘽妗� 澶ф爣绛�-->
+ <el-dialog
+ v-el-drag-dialog
+ title=""
+ :visible.sync="dialogVisibleApprove"
+ width="812px"
+ class="dialogVisibleConfirmClass"
+ append-to-body
+ :close-on-click-modal="false"
+ @close="dialogVisibleConfirmClose"
+ >
+ <!-- 瑕佹墦鍗扮殑鍖哄煙 -->
+ <div id="printMe" style="padding: 30px">
+ <div style="font-size: 26px; text-align: center">娴佺▼鍗�</div>
+
+ <div style="display: flex;justify-content: space-around;margin-top: 20px; position: relative;">
+ <div style="width: 78%">
+ <el-form
+ ref="formApprove"
+ :model="formApprove"
+ label-width="80px"
+ inline
+ style="display: flex;justify-content: space-between"
+ >
+ <div class="elForm">
+ <el-form-item label="宸ュ崟缂栧彿:" class="formContent">
+ {{ formApprove.mesordercode }}
+ </el-form-item>
+ <el-form-item label="婧愬崟鍗曞彿:" class="formContent">
+ {{ formApprove.m_po }}
+ </el-form-item>
+ <el-form-item label="浜у搧缂栫爜:" class="formContent">
+ {{ formApprove.partcode }}
+ </el-form-item>
+ <el-form-item label="浜у搧鍚嶇О:" class="formContent">
+ {{ formApprove.partname }}
+ </el-form-item>
+ <el-form-item label="浜у搧瑙勬牸:" class="formContent">
+ {{ formApprove.partspec }}
+ </el-form-item>
+ <el-form-item label="宸ュ崟鏁伴噺:" class="formContent">
+ {{ formApprove.plan_qty }}
+ </el-form-item>
+ <!-- <el-form-item label="宸ヨ壓璺嚎:" class="formContent">-->
+ <!-- {{ formApprove.routename }}-->
+ <!-- </el-form-item>-->
+ <el-form-item label="鎵撳嵃浜哄憳:" class="formContent">
+ <!-- {{ localStorage.getItem('username') }}-->
+ {{ formApprove.routename }}
+ </el-form-item>
+ <el-form-item label="鎵撳嵃鏃堕棿:" class="formContent">
+ {{ formApprove.lm_date }}
+ </el-form-item>
+ </div>
+ </el-form>
+ </div>
+ <div
+ id="qrCode"
+ style="width: 22%;height:90px;
+ margin-top: 20px;
+ overflow-y: scroll;display: flex;
+ justify-content: center;
+ position: relative;"
+ >
+ <div id="qrCode0" ref="qrCodeDiv0" />
+ </div>
+ <div style="background-color: #fff;width: 20px;height:120px; position: absolute;right: 0" />
+ <div
+ style="z-index: 10;background-color:transparent;width: 120px;height:120px; position: absolute;right: 21px"
+ />
+ </div>
+
+ <!-- <div style="width:100%;height: 30px;border-bottom: 1px solid #eee;margin-bottom: 20px" />-->
+ <el-table
+ id="table"
+ :data="tableDataPrint"
+ border
+ class="tableDataPrint"
+ :header-cell-style="{ background: '#c0c0c0',textAlign:'center',color:'#000',borderColor:'#000'}"
+ :cell-style="{textAlign: 'center',color:'#000',borderColor:'#000'}"
+ style="width: 100%;margin-top: 20px;text-align: center;border-color: #000"
+ >
+ <el-table-column
+ id="column0"
+ prop="seq"
+ label="宸ュ簭鍙�"
+ width="70"
+ align="center"
+ />
+ <el-table-column
+ id="column1"
+ prop="stepqrcode"
+ label="宸ュ簭浜岀淮鐮�"
+ width="100"
+ align="center"
+ >
+ <template slot-scope="{row}">
+ <div :id="'qrCode'+row.seq" :ref="'qrCodeDiv'+row.seq" class="tableColumn" />
+ </template>
+ </el-table-column>
+ <el-table-column
+ id="column2"
+ prop="stepname"
+ label="宸ュ簭"
+ width="120"
+ align="center"
+ />
+ <el-table-column
+ id="column3"
+ prop="plan_qty"
+ label="鍔犲伐鏁伴噺"
+ width="100"
+ align="center"
+ />
+ <el-table-column
+ id="column4"
+ prop="good_qty"
+ width="100"
+ align="center"
+ label="鍚堟牸鏁伴噺"
+ />
+ <el-table-column
+ id="column5"
+ width="100"
+ prop="ng_qty"
+ align="center"
+ label="涓嶈壇鏁伴噺"
+ />
+ <el-table-column
+ id="column6"
+ prop="desc"
+ align="center"
+ width="120"
+ label="澶囨敞"
+ />
+ </el-table>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleBackPreview">杩� 鍥�</el-button>
+ <!-- <el-button v-waves v-if="operation==='add'" type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>-->
+ <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�/鎵� 鍗�</el-button>-->
+ <el-button v-waves v-print="printObj" type="primary">鎵� 鍗�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ <!--鎵撳嵃棰勮椤甸潰 灏忔爣绛�-->
+ <el-dialog
+ v-el-drag-dialog
+ title="棰勮"
+ :visible.sync="dialogVisible2"
+ width="1000"
+ top="10vh"
+ :close-on-click-modal="false"
+ @close="dialogVisible2Close"
+ >
+ <div style="height: 650px;overflow:auto;">
+ <!-- 涓嬫媺妗嗛�夋嫨鎵撳嵃灏哄-->
+ <div v-if="!isLastPrint" style="display: flex;align-items: center;margin: 0 0 20px 0">
+ <div>閫夋嫨鎵撳嵃灏哄锛�</div>
+ <el-select
+ v-model="printSize"
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ @change="printSizeChange"
+ >
+
+ <el-option
+ v-for="item in printSizeSelectArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </div>
+ <!-- 瑕佹墦鍗扮殑鍖哄煙 -->
+ <!-- <div id="printMe2" :style="{paddingLeft:'10px',paddingTop: '5px'}">-->
+ <div v-if="!isLastPrint" :style="printMe2StylePadding(printSize)">
+ <!-- 80 * 50-->
+ <div
+ v-if="printSize===0"
+ style="display: flex;width: 280px;height: 160px;border: 1px solid #000;text-align: center;font-size: 10px;"
+ >
+
+ <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000">
+ <div
+ style="display: flex;height: 96px;border-bottom:1px solid #000;
+ justify-content: center;align-items: center;position: relative"
+ >
+ <div
+ id="qrCode2"
+ ref="qrCodeDiv2"
+ style="overflow-y: hidden;height:60px;position: absolute;left: 14px;"
+ />
+ </div>
+ <div
+ style="display: flex;height: 32px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center"
+ >
+ <div style="margin-left: 5px;width: 28px">鏁伴噺:</div>
+ {{ qrForm.startqty }}
+ </div>
+ <div style="display: flex;height: 32px;justify-content: flex-start;align-items: center">
+ <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div>
+ {{ qrForm.operator }}
+ </div>
+ </div>
+
+ <div style="width:190px;display: flex;flex-direction: column">
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div>
+ <div>{{ qrForm.wo_code }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div>
+ <div>{{ qrForm.partcode }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div>
+ <div>{{ qrForm.partname }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">涓嬮亾宸ュ簭:</div>
+ <div>{{ qrForm.nextstepname }}</div>
+ </div>
+ <div style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left">
+ <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div>
+ <div>{{ qrForm.operatorTime }}</div>
+ </div>
+
+ </div>
+
+ </div>
+ <!-- 78 * 60 -->
+ <div
+ v-if="printSize===1"
+ style="display: flex;width: 280px;height: 160px;border: 1px solid #000;text-align: center;font-size: 10px;"
+ >
+
+ <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000">
+ <div
+ style="display: flex;height: 96px;border-bottom:1px solid #000;
+ justify-content: center;align-items: center;position: relative"
+ >
+ <div
+ id="qrCode2"
+ ref="qrCodeDiv2"
+ style="overflow-y: hidden;height:60px;position: absolute;left: 14px;"
+ />
+ </div>
+ <div
+ style="display: flex;height: 32px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center"
+ >
+ <div style="margin-left: 5px;width: 28px">鏁伴噺:</div>
+ {{ qrForm.startqty }}
+ </div>
+ <div style="display: flex;height: 32px;justify-content: flex-start;align-items: center">
+ <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div>
+ {{ qrForm.operator }}
+ </div>
+ </div>
+
+ <div style="width:190px;display: flex;flex-direction: column">
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div>
+ <div>{{ qrForm.wo_code }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div>
+ <div>{{ qrForm.partcode }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div>
+ <div>{{ qrForm.partname }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">涓嬮亾宸ュ簭:</div>
+ <div>{{ qrForm.nextstepname }}</div>
+ </div>
+ <div style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left">
+ <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div>
+ <div>{{ qrForm.operatorTime }}</div>
+ </div>
+
+ </div>
+
+ </div>
+ <!-- 60 * 40 -->
+ <div
+ v-if="printSize===2"
+ style="display: flex;width: 220px;height: 130px;border: 1px solid #000;text-align: center;font-size: 12px"
+ >
+
+ <div style="width: 70px;display: flex;flex-direction: column;border-right: 1px solid #000">
+ <div
+ style="display: flex;height: 60%;border-bottom:1px solid #000;
+ justify-content: center;align-items: center;position: relative"
+ >
+ <div
+ id="qrCode2"
+ ref="qrCodeDiv2"
+ style="overflow-y: hidden;height:71%;position: absolute;left: 7px;"
+ />
+ </div>
+ <div
+ style="display: flex;height: 20%;justify-content: flex-start;border-bottom:1px solid #000;align-items: center"
+ >
+ <div style="margin-left: 3px; ">鏁伴噺:{{ qrForm.startqty }}</div>
+ </div>
+ <div style="display: flex;height: 20%;justify-content: flex-start;align-items: center;">
+ <div style="margin-left: 3px; ">鎿嶄綔:{{ qrForm.operator }}</div>
+
+ </div>
+ </div>
+
+ <div style="width:150px;display: flex;flex-direction: column">
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="margin-left: 3px;">缂栧彿:{{ qrForm.wo_code }}</div>
+
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left"
+ >
+ <div style="margin-left: 3px;">浜у搧缂栫爜:{{ qrForm.partcode }}</div>
+
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="margin-left: 3px;">浜у搧鍚嶇О:{{ qrForm.partname }}</div>
+
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="margin-left: 3px;">涓嬮亾宸ュ簭:{{ qrForm.nextstepname }}</div>
+
+ </div>
+ <div style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left">
+ <div style=" margin-left: 3px;">鏃堕棿: {{ qrForm.operatorTime }}</div>
+ <!-- <div>{{ qrForm.operatorTime?qrForm.operatorTime.substring(5):'' }}</div>-->
+ <!-- <div>{{ qrForm.operatorTime }}</div>-->
+ </div>
+
+ </div>
+
+ </div>
+ <div
+ v-if="printSize===5"
+ style="display: flex;width: 140px;height: 80px;border: 1px solid #000;text-align: center;font-size: 10px;"
+ >
+
+ <div v-if="false" style="width: 45px;display: flex;flex-direction: column;border-right: 1px solid #000">
+ <div
+ style="display: flex;height: 60px;border-bottom:1px solid #000;
+ justify-content: center;align-items: center;position: relative"
+ >
+ <div
+ id="qrCode2"
+ ref="qrCodeDiv2"
+ style="overflow-y: hidden;height:60px;position: absolute;left: 14px;"
+ />
+ </div>
+ <div
+ style="display: flex;height: 20px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center"
+ >
+ <div style="margin-left: 5px;width: 28px">鏁伴噺:</div>
+ {{ qrForm.startqty }}
+ </div>
+ <div style="display: flex;height: 20px;justify-content: flex-start;align-items: center">
+ <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div>
+ {{ qrForm.operator }}
+ </div>
+ </div>
+
+ <div style="width:100%;display: flex;flex-direction: column;">
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: center;align-items: center;text-align: left"
+ >
+ <!-- <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div>-->
+ <div>{{ qrForm.wo_code }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: center;align-items: center ;text-align: left"
+ >
+ <!-- <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div>-->
+ <div>{{ qrForm.partcode }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: center;align-items: center;text-align: left"
+ >
+ <!-- <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div>-->
+ <div>{{ qrForm.partname }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: center;align-items: center;text-align: left"
+ >
+ <!-- <div style="width:60px;margin-left: 5px;">涓嬮亾宸ュ簭:</div>-->
+ <div>{{ qrForm.nextstepname }}</div>
+ </div>
+ <div style="display: flex;height: 20%;justify-content: center;align-items: center;text-align: left">
+ <!-- <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div>-->
+ <div>{{ qrForm.operatorTime }}</div>
+ </div>
+
+ </div>
+
+ </div>
+ </div>
+
+ <div v-if="isLastPrint" style="display: flex;flex-direction: column">
+
+ <div style="display: flex;font-weight: bold;font-size: 16px;margin-bottom: 20px;">
+ <div style="width: 48%;">
+ 璇烽�夋嫨鍏ュ簱鏉$爜
+ </div>
+ <div style="width: 48%;margin-left: 4%;">
+ 宸查�変腑鐨勫叆搴撴潯鐮�
+ </div>
+ </div>
+
+ <div style="display: flex;">
+ <!-- 璇烽�夋嫨鍏ュ簱鏉$爜-->
+ <div style="display: flex;flex-direction: column;height: 600px;overflow: auto;width: 48%;">
+ <div
+ v-for="(item,index) in lastPrintArr"
+ :key="item.inbarcode"
+ :style="{marginTop:index===0?'':'15px'}"
+ style="display: flex;align-items: center;"
+ >
+
+ <!-- v-if="printSize===0"-->
+ <div style="margin-right:40px">
+ <el-checkbox
+ :key="item.inbarcode"
+ v-model="item.checked"
+ @change="val=>inbarcodeChange(val,item)"
+ />
+ </div>
+ <div
+ style="display: flex;width: 280px;height: 160px;border: 1px solid #000;text-align: center;font-size: 10px;"
+ >
+
+ <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000">
+ <div
+ style="display: flex;height: 96px;border-bottom:1px solid #000;
+ justify-content: center;align-items: center;position: relative"
+ >
+ <div
+ id="qrCode2"
+ ref="qrCodeDiv2"
+ style="overflow-y: hidden;height:60px;position: absolute;left: 14px;"
+ />
+ </div>
+ <div
+ style="display: flex;height: 32px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center"
+ >
+ <div style="margin-left: 5px;width: 28px">鏁伴噺:</div>
+ {{ item.good_qty }}
+ </div>
+ <div style="display: flex;height: 32px;justify-content: flex-start;align-items: center">
+ <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div>
+ {{ item.username }}
+ </div>
+ </div>
+
+ <div style="width:190px;display: flex;flex-direction: column">
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div>
+ <div>{{ item.wo_code }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div>
+ <div>{{ item.partcode }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div>
+ <div>{{ item.partname }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">浜у搧瑙勬牸:</div>
+ <div>{{ item.partspec ? item.partspec : '/' }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div>
+ <div>{{ item.lm_date }}</div>
+ </div>
+
+ </div>
+
+ </div>
+
+ </div>
+ </div>
+
+ <!-- 宸查�変腑鐨勫叆搴撴潯鐮�-->
+ <div
+ style="display: flex;flex-direction: column;height: 600px;overflow: auto;width: 48%;margin-left: 50px;"
+ >
+ <div id="printMe2">
+ <div
+ v-for="(item,index) in lastPrintArrSelected"
+ v-if="item.checked"
+ :key="item.inbarcode"
+ :style="{marginTop:index===0?'':'15px'}"
+ style="display: flex;align-items: center;"
+ >
+ <div
+ style="display: flex;width: 280px;height: 160px;border: 1px solid #000;text-align: center;font-size: 10px;"
+ >
+
+ <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000">
+ <div
+ style="display: flex;height: 96px;border-bottom:1px solid #000;
+ justify-content: center;align-items: center;position: relative"
+ >
+ <div
+ id="qrCode3"
+ ref="qrCodeDiv3"
+ style="overflow-y: hidden;height:60px;position: absolute;left: 14px;"
+ />
+ </div>
+ <div
+ style="display: flex;height: 32px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center"
+ >
+ <div style="margin-left: 5px;width: 28px">鏁伴噺:</div>
+ {{ item.good_qty }}
+ </div>
+ <div style="display: flex;height: 32px;justify-content: flex-start;align-items: center">
+ <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div>
+ {{ item.username }}
+ </div>
+ </div>
+
+ <div style="width:190px;display: flex;flex-direction: column">
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div>
+ <div>{{ item.wo_code }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div>
+ <div>{{ item.partcode }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div>
+ <div>{{ item.partname }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">浜у搧瑙勬牸:</div>
+ <div>{{ item.partspec ? item.partspec : '/' }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div>
+ <div>{{ item.lm_date }}</div>
+ </div>
+
+ </div>
+
+ </div>
+
+ </div>
+ </div>
+
+ </div>
+
+ </div>
+
+ </div>
+
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisible2 = false;">鍙� 娑�</el-button>
+ <el-button v-waves v-print="printObj2" type="primary">鎵� 鍗�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ <!-- 宸ヨ壓璺嚎瀵硅瘽妗�-->
+ <el-dialog
+ v-el-drag-dialog
+ :close-on-click-modal="false"
+ title="鍏宠仈宸ヨ壓璺嚎"
+ :visible.sync="dialogVisibleRoute"
+ width="800px"
+ top="10vh"
+ :fullscreen="isIpad"
+ class="dialogVisibleRoute"
+ @closed="handleCloseRoute"
+ @close="handleCloseRoute"
+ >
+ <div>
+ <i class="el-icon-s-comment" style="color:#42b983;" /> 浜у搧鍚嶇О锛歿{ dialogFormRoute.projectName }}
+ </div>
+ <el-divider />
+ <div style="margin-bottom: 10px">
+ <i class="el-icon-s-operation" style="color:#42b983;" /> 宸ヨ壓璺嚎闆嗗悎
+ </div>
+
+ <div class="myCheckboxGroup">
+ <div
+ v-for="item in dialogFormRoute.routeOperationArr"
+ :key="item.code"
+ :style="{border:item.isSelected1?'1px solid #42b983':'1px solid #eee'}"
+ class="myCheckbox"
+ @click="myCheckboxClick(item)"
+ >
+ <input
+ class="myCheckboxInput"
+ type="checkbox"
+ :value="item.code"
+ :name="item.name"
+ :style="{color:item.isSelected2?'#42b983':'#fff'}"
+ @click="myCheckboxInputClick(item)"
+ >{{ item.name }}
+ <!-- 鐖跺瓙鐐瑰嚮浜嬩欢涓嶅奖鍝�-->
+ <!-- onClick="event.cancelBubble = true"-->
+ </div>
+ </div>
+
+ <el-divider />
+ <div>
+ <i class="el-icon-s-operation" style="color:#42b983;" /> 榛樿宸ヨ壓璺嚎
+ </div>
+ <div style="margin-top: 20px">
+ <el-select
+ v-model="defaultroute_code"
+ filterable
+ style="width: 200px;"
+ placeholder="璇烽�夋嫨"
+ class="defaultroute_code"
+ >
+ <el-option
+ v-for="item in defaultroute_codeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </div>
+ <el-divider />
+ <div style="margin-bottom: 10px">
+ <i class="el-icon-s-operation" style="color:#42b983;" /> 宸ュ簭鍒楄〃
+ </div>
+ <div style="overflow-y: scroll">
+ <el-table
+ ref="projectTableData"
+ :data="projectTableData"
+ border
+ height="280"
+ :row-class-name="tableRowClassName"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ >
+ <el-table-column
+ prop="seq"
+ width="100"
+ label="宸ュ簭搴忓彿"
+ fixed
+ />
+ <el-table-column
+ prop="stepcode"
+ label="宸ュ簭缂栫爜"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="stepname"
+ label="宸ュ簭鍚嶇О"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="enable"
+ label="鍚敤鐘舵��"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.enable==='Y'">
+ <svg-icon icon-class="circleYes" style="margin-right: 2px" />
+ 鏄�
+ </div>
+ <div v-if="row.enable==='N'">
+ <svg-icon icon-class="circleNo" style="margin-right: 2px" />
+ 鍚�
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="routeDialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button v-waves type="primary" @click="routeDialogVisibleConfirm">纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
<script>
+import Pagination from '@/components/Pagination'
+import { handleDatetime, handleDatetime2, validateCode } from '@/utils/global'
+import { getCookie } from '@/utils/auth'
+import QRCode from 'qrcodejs2'
+import $ from 'jquery'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import {
+ AddMesOrderCodeSearch,
+ AddUpdateMesOrder, DeleteMesOrder,
+ MesBadOrderSearch, MesOrderDistribution, MesOrderNewStepContent,
+ MesOrderSearch,
+ UpdateMesOrderStepSearch
+} from '@/api/WorkOrder'
+import { PartSelect } from '@/api/ProductModel'
+import { PrentOrganization, PrentOrganizationNoCompany, StepData } from '@/api/GeneralBasicData'
+import Sortable from 'sortablejs'
+import ElDragSelect from '@/components/DragSelect'
+import { MesOrderPrintSearch } from '@/api/GridReport' // base on element-ui
+
export default {
- name: 'WorkOrderList'
+ name: 'WorkOrderList',
+ components: {
+ Pagination, ElDragSelect
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ mouseHoverTypeDialog: 'mouseout',
+ isExpandForm: false,
+ isIpad: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ username: '',
+ form: {
+ wkshopcode: '', // 杞﹂棿缂栫爜
+ mesorderstus: '', // 宸ュ崟鐘舵�佺爜
+ mesordercode: '', // 宸ュ崟缂栧彿
+ partcode: '', // 浜у搧缂栫爜
+ ordertype: '', // ordertype
+ sourceorder: '', // 婧愬崟鍗曞彿
+ saleordercode: '', // 閿�鍞鍗�
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 浜у搧瑙勬牸
+ creatuser: '', // 鍒涘缓浜哄憳
+ createdate: '', // 鍒涘缓鏃堕棿
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ erporderstusArr: [
+ { code: 'NEW', name: '鏂板伐鍗�' },
+ // { code: 'CREATING', name: '鎵ц涓�' },
+ // { code: 'CREATED', name: '宸插叧闂�' }
+ { code: 'ALLO', name: '宸叉淳鍙�' },
+ { code: 'START', name: '寮�宸�' },
+ { code: 'CLOSED', name: '瀹屽伐' }
+ // { code: 'NOSCHED', name: '寰呮帓绋�' },
+ // { code: 'SCHED', name: '宸叉帓绋�' }
+ ],
+ wkshopcodeArr: [],
+ total: 10,
+ tableData: [],
+ dialogVisible: false,
+ dialogForm: {
+ mesorderstus: 'NEW', // 宸ュ崟鐘舵�佺爜
+ mesordercode: '', // 宸ュ崟缂栧彿
+ ordertype: 'PO', // 宸ュ崟绫诲瀷
+ sourceorderid: '', // 婧愬崟id
+ sourceorder: '', // 婧愬崟鍗曞彿
+
+ partcode: '', // 浜у搧缂栫爜
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 浜у搧瑙勬牸
+
+ mesqty: '', // 宸ュ崟鏁伴噺
+ wkshopcode: '', // 鐢熶骇杞﹂棿缂栫爜
+ wkshopname: '', // 鐢熶骇杞﹂棿鍚嶇О
+
+ deliverydate: '', // 浜や粯鏃堕棿
+ data_sources: '', // 鏁版嵁鏉ユ簮
+
+ mesmaxqty: 0// 宸ュ崟鐨勬渶澶у��
+ },
+ ordertypeArr: [// 宸ュ崟绫诲瀷
+ { code: 'PO', name: '鏍囧噯宸ュ崟' },
+ { code: 'FO', name: '鎶ュ簾琛ュ崟' }
+ ],
+ partArr: [], // 浜у搧淇℃伅
+ wkshopArr: [], // 鐢熶骇杞﹂棿鏁扮粍
+ routeArr: [], // 宸ヨ壓璺嚎鏁扮粍
+ orderlevArr: [
+ { code: 1, name: '鐗圭骇' },
+ { code: 2, name: '绱ф��' },
+ { code: 3, name: '姝e父' }
+ ], // 宸ュ崟绛夌骇鏁扮粍
+ operation: '',
+ dialogFormRules: {
+ mesorderstus: [
+ { required: true, message: '璇烽�夋嫨璁㈠崟鐘舵��', trigger: ['blur', 'change'] }
+ ],
+ partcode: [
+ { required: true, message: '璇烽�夋嫨浜у搧淇℃伅', trigger: ['blur', 'change'] }
+ ],
+ mesordercode: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ mesqty: [
+ { required: true, message: '璇疯緭鍏ュ伐鍗曟暟閲�', trigger: ['blur', 'change'] }
+ ],
+ wkshopcode: [
+ { required: true, message: '璇烽�夋嫨鐢熶骇杞﹂棿', trigger: ['blur', 'change'] }
+ ],
+ deliverydate: [
+ { required: true, message: '璇烽�夋嫨棰勮浜や粯鏃ユ湡', trigger: ['blur', 'change'] }
+ ],
+ planstartdate: [
+ { required: true, message: '璇烽�夋嫨寮�濮嬫椂闂�', trigger: ['blur', 'change'] }
+ ],
+ planenddate: [
+ { required: true, message: '璇烽�夋嫨缁撴潫鏃堕棿', trigger: ['blur', 'change'] }
+ ],
+ orderlev: [
+ { required: true, message: '璇烽�夋嫨宸ュ崟绛夌骇', trigger: ['blur', 'change'] }
+ ],
+ isAps: [
+ { required: true, message: '璇烽�夋嫨鏄惁鎺掔▼', trigger: ['blur', 'change'] }
+ ],
+ bomId: [
+ { required: true, message: '璇烽�夋嫨鐗╂枡娓呭崟', trigger: ['blur', 'change'] }
+ ]
+
+ },
+ dialogVisibleTask: false,
+ taskTableData: [],
+
+ dialogVisibleSearch: false,
+ searchTableData: [],
+ dialogVisibleApprove: false,
+ tableDataPrint: [], // 鎵撳嵃椤甸潰鍐呭
+ printObj: {
+ id: 'printMe',
+ popTitle: '鎵撳嵃妯℃澘',
+ preview: false,
+ extraHead: '<meta http-equiv="Content-Language" content="zh-cn"/>',
+ closeCallback(vue) { // 鍏抽棴鎵撳嵃鐨勫洖璋冧簨浠讹紙鏃犳硶纭畾鐐瑰嚮鐨勬槸纭杩樻槸鍙栨秷锛�
+ console.log('11212', vue)
+ // vue.dialogVisible = false
+ vue.dialogVisibleApprove = false
+ },
+ beforeOpenCallback(vue) {
+ vue.printLoading = true
+ console.log('鎵撳紑涔嬪墠')
+ console.log()
+ },
+ openCallback(vue) {
+ vue.printLoading = false
+ console.log('鎵ц浜嗘墦鍗�')
+ }
+ },
+
+ formApprove: {
+ m_po: '', // 婧愬崟鍗曞彿
+ mesordercode: '',
+ partcode: '',
+ partname: '',
+ partspec: '',
+ plan_qty: '',
+ routename: '',
+ lm_date: ''
+ },
+ number: '',
+ dialogVisible2: false,
+ printObj2: {
+ id: 'printMe2',
+ popTitle: '鎵撳嵃妯℃澘',
+ preview: false,
+ extraHead: '<meta http-equiv="Content-Language" content="zh-cn"/>',
+ closeCallback(vue) { // 鍏抽棴鎵撳嵃鐨勫洖璋冧簨浠讹紙鏃犳硶纭畾鐐瑰嚮鐨勬槸纭杩樻槸鍙栨秷锛�
+ console.log('11212', vue)
+ // vue.dialogVisible = false
+ // vue.dialogVisible2 = false
+ // vue.dialogVisible = false
+ },
+ beforeOpenCallback(vue) {
+ vue.printLoading = true
+ console.log('鎵撳紑涔嬪墠')
+ console.log()
+ },
+ openCallback(vue) {
+ vue.printLoading = false
+ console.log('鎵ц浜嗘墦鍗�')
+ }
+ },
+ qrForm: {
+ qrvalue: '',
+ startqty: '',
+ wo_code: '',
+ partcode: '',
+ partname: '',
+ nextstepname: '',
+ operator: '', // 鎿嶄綔浜�
+ operatorTime: ''// 鎿嶄綔鏃堕棿
+ },
+ dialogVisibleSource: false,
+ sourceTableData: [],
+ sourceForm: {
+ wkshopcode: '', // 杞﹂棿缂栫爜
+ mesordercode: '', // 宸ュ崟缂栧彿
+ sourceorder: '', // 璁㈠崟缂栧彿
+ saleordercode: '', // 閿�鍞鍗曞彿
+ partcode: '', // 浜у搧缂栫爜
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 浜у搧瑙勬牸
+ creatuser: '', // 鍒涘缓浜哄憳
+ // paystartdate: '', // 浜や粯鏃堕棿
+ // paystartdate: '', // 棰勮寮�宸ユ椂闂�
+ // payenddate: '', // 棰勮瀹屽伐鏃堕棿
+ createdate: '', // 鍒涘缓鏃堕棿
+
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ sourceFormTotal: 10,
+ radioSelectedId: '',
+ isExpandDialog: false, // 瀵硅瘽妗嗚〃鍗曟槸鍚﹀睍寮�锛岄粯璁や笉灞曞紑
+ dialogVisibleRoute: false,
+ dialogFormRoute: {
+ projectName: '', // 浜у搧鍚嶇О
+ projectCode: '', // 浜у搧浠g爜
+ routeOperationArr: [] // 宸ヨ壓璺嚎闆嗗悎
+ },
+ defaultroute_code: '', // 榛樿宸ヨ壓璺嚎閫変腑鍊�
+ defaultroute_codeArr: '', // 榛樿宸ヨ壓璺嚎鏁扮粍
+ projectTableData: [], // 璁惧鍒楄〃
+ tableDataDetail: [], // 鐐瑰嚮宸ュ崟琛ㄧ殑琛� 鏄剧ず璇︾粏淇℃伅
+ printSize: 0,
+ printSizeSelectArr: [// 瀹�*楂�
+ { code: 0, name: '80*50' },
+ { code: 1, name: '78*60' },
+ { code: 2, name: '60*40' }
+ // { code: 2, name: '50*60' },
+ // { code: 3, name: '50*40' },
+ // { code: 4, name: '50*80' },
+ // { code: 5, name: '40*30' }
+ ],
+ pickerOptions: {
+ disabledDate(time) {
+ return time.getTime() < Date.now() - 8.64e7
+ }
+ },
+
+ isLastPrint: false, // 鏄惁鏄湯閬撴墦鍗�
+ lastPrintArr: [], // 鏈亾鎵撳嵃鐨勬暟缁�(鎵�鏈�)
+ lastPrintArrSelected: [], // 鏈亾鎵撳嵃鐨勬暟缁�(閫変腑)
+
+ switchButton: false,
+
+ routeStepArr: '',
+
+ stepTableData: [],
+ sortable: null,
+ stepSelectArr: [], // 宸ュ簭涓嬫媺鏁版嵁
+ stepSelectedValue: [], // 涓嬫媺閫変腑鍊�
+
+ multipleSelection: []
+ }
+ },
+ watch: {
+ 'stepSelectedValue': {
+ // deep: true,
+ handler: function(val) {
+ // do something with the new and old value of stepSelectedValue
+ console.log(val, 1)
+ const arr = JSON.parse(JSON.stringify(this.stepTableData))
+ const arrStepcode = arr.map(i => i.stepcode)
+ this.stepTableData = []
+ val.forEach(i => {
+ this.stepTableData.push(
+ {
+ stepcode: i,
+ stepname: this.stepSelectArr.find(j => j.stepcode === i).stepname,
+ stepprice: arrStepcode.includes(i) ? arr.find(j => j.stepcode === i).stepprice : 0
+ }
+ )
+ })
+ }
+ }
+ },
+ created() {
+ this.handleRequest()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+
+ // this.$nextTick(() => {
+ // this.setSort()
+ // })
+ },
+ methods: {
+ setSort() {
+ const el = this.$refs.stepTableDataRef.$el.querySelectorAll('.el-table__body-wrapper > table > tbody')[0]
+ this.sortable = Sortable.create(el, {
+ ghostClass: 'sortable-ghost', // Class name for the drop placeholder,
+ setData: function(dataTransfer) {
+ // to avoid Firefox bug
+ // Detail see : https://github.com/RubaXa/Sortable/issues/1012
+ dataTransfer.setData('Text', '')
+ },
+ onEnd: evt => {
+ const targetRow = this.stepTableData.splice(evt.oldIndex, 1)[0]
+ this.stepTableData.splice(evt.newIndex, 0, targetRow)
+
+ this.stepSelectedValue = this.stepTableData.map(i => i.stepcode)
+ // for show the changes, you can delete in you code
+ // const tempIndex = this.newList.splice(evt.oldIndex, 1)[0]
+ // this.newList.splice(evt.newIndex, 0, tempIndex)
+ }
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ },
+ handleRequest() {
+ this.getMesOrderSearch().then(res => {
+ if (res.code === '200') {
+ this.getSelect()
+ this.getPrentOrganizationNoCompany()
+ }
+ })
+ },
+ async getPrentOrganizationNoCompany() {
+ const { data: res } = await PrentOrganizationNoCompany()
+ this.wkshopcodeArr = res
+ },
+ async getMesOrderSearch() {
+ // let tempDate = this.form.createdate
+ // if (tempDate.length > 0) {
+ // tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ // }
+
+ const data = {
+ wkshopcode: this.form.wkshopcode,
+ mesorderstus: this.form.mesorderstus, // 宸ュ崟鐘舵�佺爜
+ mesordercode: this.form.mesordercode, // 宸ュ崟缂栧彿
+ partcode: this.form.partcode, // 浜у搧缂栫爜
+ partname: this.form.partname, // 浜у搧鍚嶇О
+ partspec: this.form.partspec, // 浜у搧瑙勬牸
+ creatuser: this.form.creatuser, // 鍒涘缓浜哄憳
+ sourceorder: this.form.sourceorder, // 婧愬崟鍗曞彿
+ saleordercode: this.form.saleordercode, // 閿�鍞鍗�
+ ordertype: this.form.ordertype, // 鍗曟嵁绫诲瀷
+ createdate: this.form.createdate.toString().length > 0 ? handleDatetime(this.form.createdate) : '', // 鍒涘缓鏃堕棿
+ prop: this.form.prop, // 鎺掑簭瀛楁
+ order: this.form.order, // 鎺掑簭瀛楁
+ page: this.form.page, // 绗嚑椤�
+ rows: this.form.rows // 姣忛〉澶氬皯鏉�
+ }
+ const res = await MesOrderSearch(data)
+ this.tableData = res.data
+ this.total = res.count
+
+ // this.form.createdate = tempDate
+ return { code: res.code }
+ },
+ async getSelect() {
+ // 鑾峰彇浜у搧淇℃伅
+ const { data: res1 } = await PartSelect()
+ this.partArr = res1
+
+ // 鑾峰彇缁勭粐
+ const { data: res2 } = await PrentOrganization()
+ this.wkshopArr = res2
+
+ // 鑾峰彇宸ュ簭
+ const { data: res3 } = await StepData()
+ this.stepSelectArr = res3
+ },
+ // 璁㈠崟鐘舵�佹敼鍙樻椂
+ erporderstusChange(val) {
+ this.form.mesorderstus = val
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getMesOrderSearch()
+ },
+ sourceSortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.sourceForm.order = order
+ this.sourceForm.prop = prop
+ this.getMesBadOrderSearch()
+ },
+ // 鏌ヨ
+ search() {
+ this.getMesOrderSearch()
+ },
+
+ // 閲嶇疆
+ reset(val) {
+ this.form.wkshopcode = ''
+ this.form.mesorderstus = ''
+ this.form.mesordercode = ''
+ this.form.partcode = ''
+ this.form.partname = ''
+ this.form.partspec = ''
+ this.form.paydate = ''
+ this.form.creatuser = ''
+ this.form.sourceorder = ''
+ this.form.ordertype = ''
+ this.form.createdate = ''
+ this.getMesOrderSearch()
+ },
+ // 鏂板鎸夐挳
+ async add(operation) {
+ const { data: res } = await AddMesOrderCodeSearch()
+ this.dialogForm.mesordercode = res
+ this.operation = operation
+ this.dialogVisible = true
+ this.dialogForm.data_sources = 'MES'
+
+ this.$nextTick(() => {
+ this.setSort()
+ })
+ },
+ // 宸ュ簭浠诲姟
+ async check(row) {
+ // const { data: res } = await SearchWorkStep({ wo_code: row.wo_code })
+ // this.taskTableData = res
+ //
+ // if (this.taskTableData.length === 0) {
+ // return this.$message.info('鏃犵敓浜т换鍔℃暟鎹紒')
+ // }
+ // this.dialogForm.mesordercode = res[0].wo_code
+ // this.dialogVisibleTask = true
+ },
+ dialogVisibleBack() {
+ this.dialogVisibleTask = false
+ },
+ handleSelectionChange(val) {
+ this.multipleSelection = val.map(i => i.wo_code)
+ },
+
+ selected(row, index) {
+ return row.status === 'NEW' && row.isstep === 'Y'
+ },
+ // 娲惧彂
+ send() {
+ if (this.multipleSelection.length === 0) {
+ return this.$message.info('璇峰厛鍕鹃�夌浉瀵瑰簲鐨勫伐鍗曪紒')
+ }
+
+ this.$confirm('鏄惁纭娲惧彂?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ MesOrderDistribution(this.multipleSelection).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('娲惧彂鎴愬姛!')
+ this.getMesOrderSearch()
+ }
+ })
+ }).catch(() => {
+ this.$notify.info('宸插彇娑堟淳鍙�')
+ })
+ },
+ // 鍒犻櫎鎸夐挳
+ async del(row) {
+ if (row.status === 'START' || row.status === 'CLOSED' || row.status === 'SCHED') {
+ return this.$message.info('姝ゅ伐鍗曚笉鍙垹闄わ紒')
+ }
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ const data = {
+ souceid: row.sourceid ? row.sourceid : '',
+ wocode: row.wo_code,
+ m_po: row.m_po,
+ orderqty: row.plan_qty
+ }
+ DeleteMesOrder(data).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('鍒犻櫎鎴愬姛!')
+ if (this.form.page > 1 && this.tableData.length === 1) {
+ this.form.page--
+ }
+ this.getMesOrderSearch()
+ }
+ })
+ }).catch(() => {
+ this.$notify.info('宸插彇娑堝垹闄�')
+ })
+ },
+
+ // 淇敼鎸夐挳
+ async edit(operation, row) {
+ this.operation = operation
+
+ this.dialogForm.data_sources = row.data_sources
+ this.dialogForm.mesorderstus = row.status
+ this.dialogForm.mesordercode = row.wo_code
+ this.dialogForm.ordertype = row.wotype
+ this.dialogForm.sourceorderid = row.sourceid
+ this.dialogForm.sourceorder = row.m_po
+ this.dialogForm.partcode = row.partcode
+ this.dialogForm.partname = row.partname
+ this.dialogForm.partspec = row.partspec
+ this.dialogForm.wkshopcode = row.wkshp_code
+ this.dialogForm.deliverydate = row.saleOrderDeliveryDate.substring(0, 11)
+ this.dialogForm.mesqty = row.plan_qty
+
+ const data = {
+ sourceid: this.dialogForm.sourceorderid,
+ sourcewo: this.dialogForm.sourceorder,
+ wocode: this.dialogForm.mesordercode,
+ data_sources: this.dialogForm.data_sources
+ }
+ const { data: res } = await UpdateMesOrderStepSearch(data)
+ this.dialogForm.mesmaxqty = res.canupdate_qty
+
+ if (res.stepdata.length > 0) {
+ res.stepdata.forEach(i => {
+ this.stepTableData.push(
+ {
+ stepcode: i.step_code,
+ stepname: i.stepname,
+ stepprice: i.stepprice
+ }
+ )
+ })
+ this.stepSelectedValue = this.stepTableData.map(i => i.stepcode)
+ } else {
+ const data2 = {
+ wkshopcode: this.dialogForm.wkshopcode,
+ partcode: this.dialogForm.partcode
+ }
+ const { data: res2 } = await MesOrderNewStepContent(data2)
+ if (res2.length > 0) {
+ res2.forEach(i => {
+ this.stepTableData.push(
+ {
+ stepcode: i.step_code,
+ // stepname: i.stepname,
+ stepprice: i.stepprice
+ }
+ )
+ })
+ this.stepSelectedValue = this.stepTableData.map(i => i.stepcode)
+ }
+ }
+
+ this.dialogVisible = true
+ },
+ // 宸ュ崟鍏抽棴浜嬩欢
+ orderClose() {
+ console.log('宸ュ崟鍏抽棴浜嬩欢')
+ },
+ // 瀵硅瘽妗嗕骇鍝佷俊鎭�兼敼鍙�
+ partcodeChangeDialog(val) {
+ console.log(val)
+ this.dialogForm.partname = this.partArr.find(item => item.partcode === val).partname
+ this.dialogForm.partcode = this.partArr.find(item => item.partcode === val).partcode
+ this.dialogForm.partspec = this.partArr.find(item => item.partcode === val).partspec
+ if (this.dialogForm.wkshopcode) {
+ this.getMesOrderNewStepContent()
+ }
+ },
+ async getMesOrderNewStepContent() {
+ const data = {
+ wkshopcode: this.dialogForm.wkshopcode,
+ partcode: this.dialogForm.partcode
+ }
+ const { data: res } = await MesOrderNewStepContent(data)
+ // console.log(res)
+ this.stepSelectedValue = []
+ this.stepTableData = []
+ if (res.length > 0) {
+ res.forEach(i => {
+ this.stepTableData.push(
+ {
+ stepcode: i.step_code,
+ // stepname: i.stepname,
+ stepprice: i.stepprice
+ }
+ )
+ })
+ this.stepSelectedValue = this.stepTableData.map(i => i.stepcode)
+ }
+ },
+
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm = {
+ mesorderstus: 'NEW', // 宸ュ崟鐘舵�佺爜
+ mesordercode: '', // 宸ュ崟缂栧彿
+ ordertype: 'PO', // 宸ュ崟绫诲瀷
+ sourceorderid: '', // 婧愬崟id
+ sourceorder: '', // 婧愬崟鍗曞彿
+
+ partcode: '', // 浜у搧缂栫爜
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 浜у搧瑙勬牸
+
+ mesqty: '', // 宸ュ崟鏁伴噺
+ wkshopcode: '', // 鐢熶骇杞﹂棿缂栫爜
+ wkshopname: '', // 鐢熶骇杞﹂棿鍚嶇О
+
+ deliverydate: '', // 浜や粯鏃堕棿
+ data_sources: '' // 鏁版嵁鏉ユ簮
+ }
+ this.stepSelectedValue = []
+ this.stepTableData = []
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ if (this.dialogForm.ordertype === 'FO' && this.dialogForm.sourceorder.toString().trim().length <= 0) {
+ return this.$message.info('婧愬崟鍗曞彿涓嶈兘涓虹┖锛�')
+ }
+
+ if (this.dialogForm.data_sources === 'ERP' && this.dialogForm.mesmaxqty < this.dialogForm.mesqty) {
+ return this.$message.info('姝ゅ伐鍗曠殑鏈�澶т慨鏀规暟鍊间负锛�' + this.dialogForm.mesmaxqty)
+ }
+
+ const workListSub = []
+ this.stepTableData.forEach((i, j) => {
+ workListSub.push(
+ {
+ stepseq: j + 1,
+ stepcode: i.stepcode,
+ stepprice: i.stepprice,
+ isbott: j === 0 ? 'Y' : 'N',
+ isend: j === this.stepTableData.length - 1 ? 'Y' : 'N'
+ }
+ )
+ })
+
+ if (workListSub.length === 0) {
+ return this.$message.info('宸ュ簭涓嶈兘涓虹┖锛�')
+ }
+
+ const data = {
+ wostatus: this.dialogForm.mesorderstus, // 宸ュ崟鐘舵��
+ wocode: this.dialogForm.mesordercode, // 宸ュ崟鍙�
+ wotype: this.dialogForm.ordertype, // 宸ュ崟绫诲瀷
+ sourceid: this.dialogForm.sourceorderid, // 婧愬崟id
+ sourcewo: this.dialogForm.sourceorder, // 婧愬崟鍗曞彿
+ partcode: this.dialogForm.partcode, // 浜у搧缂栧彿
+ wkshopcode: this.dialogForm.wkshopcode,
+ woqty: this.dialogForm.mesqty, // 宸ュ崟鏁伴噺
+ deliverydate: this.dialogForm.deliverydate, // 浜や粯鏃堕棿
+ data_sources: this.dialogForm.data_sources, // 鏁版嵁鏉ユ簮
+ isstep: workListSub.length > 0 ? 'Y' : 'N', //
+ workListSub
+ }
+
+ this.$store.state.app.buttonIsDisabled = true
+ AddUpdateMesOrder(data, this.operation === 'add' ? 'Add' : 'Update').then(res => {
+ if (res.code === '200') {
+ this.dialogVisible = false
+ // this.handlePrint()
+ this.$message.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '娲惧彂鎴愬姛锛�')
+ this.getMesOrderSearch()
+ this.$store.state.app.buttonIsDisabled = false
+ } else {
+ this.$message.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '娲惧彂澶辫触锛�')
+ }
+ })
+ }
+ })
+ },
+ // 娲惧彂鎵撳嵃
+ async sendPrint() {
+ const data = {
+ username: getCookie('admin'),
+ // username: getCookie('username'),
+ mesordercode: this.dialogForm.mesordercode
+ }
+ const res = await MesOrderPrintSearch1(data)
+ // const res = await PrintOrder(data)
+ if (res.code === '200') {
+ // 鍙傛暟鍏蜂綋璇存槑璇峰弬鑰冨府鍔╂枃妗d腑鐨勨�淲EB鎶ヨ〃(B/S鎶ヨ〃)->WEB鎶ヨ〃瀹㈡埛绔�->鍚姩鍙傛暟璇存槑鈥濋儴鍒�
+ var args = {
+ type: 'print', // preview print
+ showOptionDlg: false, // 濡傛灉涓嶆樉绀烘墦鍗板璇濇鑰岀洿鎺ユ墦鍗帮紝灏嗘琛屾敞閲婂幓鎺夊嵆鍙�
+ report: urlAddRandomNo('./static/grf/浜у搧娴佷紶鍗旳4.grf'),
+ data: res.data
+ }
+ webapp_ws_ajax_run(args)
+ }
+ },
+
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ // this.tableHeight = this.mainHeight - 250
+ this.tableHeight = this.mainHeight - 515
+ if (window.innerHeight < 769) {
+ this.tableHeight = this.tableHeight - 20
+ }
+ this.isIpad = window.innerHeight < 769 && window.innerWidth < 1367
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ // 宸ヨ壓璺嚎鏀惧ぇ闀滅偣鍑�
+ async searchClick() {
+ if (this.dialogForm.routecode === '') {
+ return this.$message.info('璇峰厛閫夋嫨宸ヨ壓璺嚎锛�')
+ }
+ this.dialogVisibleSearch = true
+ const { data: res } = await SelectRouteStep({ routecode: this.dialogForm.routecode })
+ this.searchTableData = res
+ },
+ dialogVisibleSearchBack() {
+ this.dialogVisibleSearch = false
+ },
+ // 澶勭悊鎵撳嵃
+ handlePrint(wo_code) {
+ // const number = Math.random() * Math.random()
+ // this.number = number === 0 ? (10 + Math.random()) : number
+ // console.log(number)
+
+ const data2 = {
+ mesordercode: wo_code || this.dialogForm.mesordercode
+ }
+ MesOrderPrintSearch(data2).then(res2 => {
+ if (res2.code === '200') {
+ const res3 = res2.data.recordset
+
+ this.tableDataPrint = res3
+ this.formApprove.mesordercode = res3[0].wo_code
+ this.formApprove.m_po = res3[0].m_po || '/'
+ this.formApprove.partcode = res3[0].partcode
+ this.formApprove.partname = res3[0].partname
+ this.formApprove.partspec = res3[0].partspec || '/'
+ this.formApprove.plan_qty = res3[0].plan_qty
+ this.formApprove.routename = localStorage.getItem('username') // 鎵撳嵃浜哄憳
+ this.formApprove.lm_date = res3[0].lm_date
+
+ this.$nextTick(() => {
+ res3.forEach(i => {
+ this.bindQRCode(i.seq, i.stepqrcode, 'small')
+ })
+ this.bindQRCode('0', this.formApprove.mesordercode, 'big')
+
+ const div = document.getElementById('qrCode')
+ // 杩欎箞澶氫唬鐮佸彧闇�瑕佽繖涓�鍙ュ疄鐜版垜浠墍闇�瑕佺殑鍔熻兘锛屽畾浣峝iv婊氬姩鏉′綅缃湪搴曢儴锛宻crollHeight璁$畻鍑篸iv鐨勯珮搴︼紝鍐峴crollTop 璁剧疆婊氬姩鏉$殑楂樺害涓哄灏�
+ div.scrollTop = div.scrollHeight // 婊氬姩鏉′綅浜庢渶搴曢儴
+ // div.scrollTop = 0 // 婊氬姩鏉′綅浜庢渶椤堕儴
+ })
+ this.dialogVisibleApprove = true
+ }
+ })
+ },
+ dialogVisibleTaskClose() {
+ this.dialogForm.mesordercode = ''
+ },
+ /*
+ * 鎵嬪姩鐐瑰嚮鎵撳嵃
+ * */
+ // 杩斿洖鎸夐挳
+ dialogVisibleBackPreview() {
+ this.dialogVisibleApprove = false
+ },
+ // dialogVisibleConfirmPreview(param) {
+ // this.$refs.dialogForm.validate(valid => {
+ // if (valid) {
+ // const data = {
+ // username: getCookie('admin'),
+ // mesordercode: this.dialogForm.mesordercode
+ // }
+ // MesOrderPrintSearch1(data).then(res => {
+ // if (res.code === '200') {
+ // this.dialogVisibleApprove = true
+ // console.log(res, 11)
+ // }
+ // })
+ // }
+ // })
+ // },
+ // 鐢熸垚浜岀淮鐮� 宸ュ崟鎶ヨ〃浜岀淮鐮�
+ bindQRCode(seq, text, size) {
+ if (size === 'big') {
+ console.log(text, 1)
+ new QRCode(this.$refs.qrCodeDiv0, {
+ text: text,
+ width: size === 'big' ? 90 : 60,
+ height: size === 'big' ? 90 : 60,
+ // colorDark: '#333333', // 浜岀淮鐮侀鑹�
+ colorDark: '#000', // 浜岀淮鐮侀鑹�
+ colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊
+ correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H
+ })
+ } else {
+ new QRCode(this.$refs['qrCodeDiv' + seq], {
+ text: text,
+ width: size === 'big' ? 90 : 60,
+ height: size === 'big' ? 90 : 60,
+ // colorDark: '#333333', // 浜岀淮鐮侀鑹�
+ colorDark: '#000', // 浜岀淮鐮侀鑹�
+ colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊
+ correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H
+ })
+ }
+ },
+
+ dialogVisibleConfirmClose() {
+ // this.dialogForm.mesordercode = ''
+ this.formApprove.mesordercode = ''
+ this.formApprove.m_po = ''
+ this.formApprove.partcode = ''
+ this.formApprove.partname = ''
+ this.formApprove.partspec = ''
+ this.formApprove.plan_qty = ''
+ this.formApprove.routename = ''
+ this.formApprove.lm_date = ''
+
+ // this.$refs.qrCodeDiv0.title = ''
+
+ this.tableDataPrint = []
+ },
+ // 琛ユ墦鎸夐挳
+ supplementClick() {
+ this.dialogVisibleTask = false
+ this.handlePrint()
+ },
+ // 琛ユ墦灏忔爣绛�
+ supplementSmallClick(row) {
+ // let obj = {}
+ console.log(row, 21)
+ // this.taskTableData.forEach((item, index) => {
+ this.tableDataDetail.forEach((item, index) => {
+ if (item.seq === row.seq) {
+ console.log(item)
+ this.qrForm = {
+ // qrvalue: item.seq === this.taskTableData.length ? item.wo_code + ';' + item.stepcode : item.wo_code + ';' + this.taskTableData[item.seq].stepcode,
+ qrvalue: item.seq === this.tableDataDetail.length ? item.wo_code + ';' + item.stepcode : item.wo_code + ';' + this.tableDataDetail[item.seq].stepcode,
+ // startqty: item.seq === this.taskTableData.length ? item.plan_qty : this.taskTableData[item.seq].plan_qty,
+ startqty: item.seq === this.tableDataDetail.length ? item.plan_qty : this.tableDataDetail[item.seq].plan_qty,
+ wo_code: item.wo_code,
+ partcode: item.partcode,
+ partname: item.partname,
+ // nextstepname: item.seq === this.taskTableData.length ? item.stepname : this.taskTableData[item.seq].stepname,
+ nextstepname: item.seq === this.tableDataDetail.length ? item.stepname : this.tableDataDetail[item.seq].stepname,
+ operator: getCookie('username'),
+ operatorTime: handleDatetime2(new Date())
+ }
+ this.$nextTick(() => {
+ console.log(this.qrForm.qrvalue, 3333)
+ this.bindQRCode2(this.qrForm.qrvalue)
+
+ const div = document.getElementById('qrCode2')
+ // 杩欎箞澶氫唬鐮佸彧闇�瑕佽繖涓�鍙ュ疄鐜版垜浠墍闇�瑕佺殑鍔熻兘锛屽畾浣峝iv婊氬姩鏉′綅缃湪搴曢儴锛宻crollHeight璁$畻鍑篸iv鐨勯珮搴︼紝鍐峴crollTop 璁剧疆婊氬姩鏉$殑楂樺害涓哄灏�
+ div.scrollTop = div.scrollHeight // 婊氬姩鏉′綅浜庢渶搴曢儴
+ // div.scrollTop = 0 // 婊氬姩鏉′綅浜庢渶椤堕儴
+ })
+ }
+ })
+
+ // this.dialogVisibleTask = false
+ this.dialogVisible2 = true
+ console.log(this.qrForm, 1111)
+ },
+ // 琛ユ墦鐢熶骇鍏ュ簱鏉$爜
+ async getProductInHouseLabCode(ordercode) {
+ const res = await ProductInHouseLabCode({ ordercode })
+ console.log(res)
+ this.isLastPrint = true
+
+ this.lastPrintArr = res.data
+
+ this.dialogVisible2 = true
+
+ // 鐢熶骇浜岀淮鐮�
+ this.$nextTick(() => {
+ this.lastPrintArr.forEach((i, index) => {
+ i.checked = false
+ new QRCode(this.$refs.qrCodeDiv2[index], {
+ text: i.inbarcode,
+ width: this.printSize !== 2 ? 60 : 55,
+ height: this.printSize !== 2 ? 60 : 55,
+ colorDark: '#000', // 浜岀淮鐮侀鑹�
+ colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊
+ correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H
+ })
+ })
+ })
+ },
+ dialogVisible2Close() {
+ this.qrForm.qrvalue = ''
+ this.qrForm.startqty = ''
+ this.qrForm.wo_code = ''
+ this.qrForm.partcode = ''
+ this.qrForm.partname = ''
+ this.qrForm.nextstepname = ''
+ this.qrForm.operator = ''
+ this.qrForm.operatorTime = ''
+ // this.$refs.qrCodeDiv2 = ''
+ this.isLastPrint = false
+ this.lastPrintArr = []
+ this.lastPrintArrSelected = []
+ },
+ // 鐢熸垚浜岀淮鐮� 宸ュ簭鏍囩浜岀淮鐮�
+ bindQRCode2(text) {
+ new QRCode(this.$refs.qrCodeDiv2, {
+ text: text,
+ width: this.printSize !== 2 ? 60 : 55,
+ height: this.printSize !== 2 ? 60 : 55,
+ colorDark: '#000', // 浜岀淮鐮侀鑹�
+ colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊
+ correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H
+ })
+ },
+ // 鎶ュ簾琛ュ崟鎯呭喌涓嬪彲鐐瑰嚮閫夋嫨
+ mesordertsourcesearchclick() {
+ if (this.dialogForm.ordertype === 'PO') {
+ return this.$message.info('宸ュ崟绫诲瀷涓烘姤搴熻ˉ鍗曟儏鍐典笅鍙�夋嫨锛�')
+ }
+
+ this.getMesBadOrderSearch()
+
+ this.dialogVisibleSource = true
+ },
+ async getMesBadOrderSearch() {
+ // let tempDate2 = this.sourceForm.paystartdate
+ // if (tempDate2.length > 0) {
+ // tempDate2 = handleDatetime(tempDate2[0]) + '~' + handleDatetime(tempDate2[1])
+ // }
+
+ let tempDate = this.sourceForm.createdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+
+ const data = {
+ wkshopcode: this.form.wkshopcode, // 杞﹂棿缂栫爜
+ mesordercode: this.sourceForm.mesordercode, // 宸ュ崟缂栧彿
+ sourceorder: '', // 婧愬崟鍗曞彿
+ saleordercode: '', // 閿�鍞崟鍙�
+ partcode: this.sourceForm.partcode, // 浜у搧缂栫爜
+ partname: this.sourceForm.partname, // 浜у搧鍚嶇О
+ partspec: this.sourceForm.partspec, // 浜у搧瑙勬牸
+ // paystartdate: tempDate2, // 浜や粯鏃堕棿
+ // payenddate: tempDate, // 浜や粯鏃堕棿
+ creatuser: this.sourceForm.creatuser, // 鍒涘缓浜哄憳
+ createdate: tempDate, // 鍒涘缓鏃堕棿
+
+ prop: this.sourceForm.prop, // 鎺掑簭瀛楁
+ order: this.sourceForm.order, // 鎺掑簭瀛楁
+ page: this.sourceForm.page, // 绗嚑椤�
+ rows: this.sourceForm.rows // 姣忛〉澶氬皯鏉�
+
+ }
+
+ const res = await MesBadOrderSearch(data)
+ this.sourceTableData = res.data
+ this.sourceFormTotal = res.count
+ },
+ // 鍗曢�夋閫変腑鑾峰彇褰撳墠琛屼俊鎭�
+ // getCurrentRowSource2(id) {
+ // this.radioSelectedId = id
+ // },
+ // 鍗曢�夋閫変腑鑾峰彇褰撳墠琛屼俊鎭�
+ getCurrentRowSource(row, event, column) {
+ this.radioSelectedId = row.id
+ this.dialogForm.mesqty = row.bad_qty
+ },
+ sourceSearch() {
+ this.getMesBadOrderSearch()
+ },
+ sourceReset() {
+ this.sourceForm.wkshopcode = ''
+ this.sourceForm.mesordercode = ''
+ this.sourceForm.sourceorder = ''
+ this.sourceForm.partcode = ''
+ this.sourceForm.partname = ''
+ this.sourceForm.partspec = ''
+ // this.sourceForm.paystartdate = ''
+ // this.sourceForm.payenddate = ''
+ this.sourceForm.creatuser = ''
+ this.sourceForm.createdate = ''
+ this.getMesBadOrderSearch()
+ },
+ dialogVisibleSourceClose() {
+ this.radioSelectedId = ''
+
+ this.sourceForm.wkshopcode = ''
+ this.sourceForm.mesordercode = ''
+ this.sourceForm.sourceorder = ''
+ this.sourceForm.partcode = ''
+ this.sourceForm.partname = ''
+ this.sourceForm.partspec = ''
+ this.sourceForm.paystartdate = ''
+ this.sourceForm.payenddate = ''
+ this.sourceForm.creatuser = ''
+ this.sourceForm.createdate = ''
+
+ this.isExpandDialog = false
+ this.sourceTableData = []
+ },
+ dialogVisibleSourceBack() {
+ this.dialogVisibleSource = false
+ },
+ dialogVisibleSourceConfirm() {
+ console.log(this.radioSelectedId)
+ this.sourceTableData.forEach(item => {
+ if (item.id === this.radioSelectedId) {
+ this.dialogForm.sourceorder = item.wo_code
+ this.dialogForm.partcode = item.partcode
+ this.dialogForm.partspec = item.partspec
+ }
+ })
+ this.dialogVisibleSource = false
+ },
+ mesordertypeChange(val) {
+ if (val === 'PO') {
+ this.dialogForm.sourceorder = ''
+ this.dialogForm.partcode = ''
+ this.dialogForm.partspec = ''
+ }
+ },
+ /* 鍏宠仈宸ヨ壓璺嚎妯″潡*/
+ // 鍏宠仈宸ヨ壓璺嚎
+ async routeClick(row) {
+ console.log(row)
+ // this.defaultroute_code = row.default_route
+ this.dialogFormRoute.projectCode = row.partcode
+ this.dialogFormRoute.projectName = row.partname
+ this.dialogVisibleRoute = true
+ const { data: res } = await InventoryFileAssociationRoute({ partcode: this.dialogFormRoute.projectCode })
+ this.dialogFormRoute.routeOperationArr = res
+
+ this.dialogFormRoute.routeOperationArr.forEach((item, index) => {
+ item.isSelected1 = false
+ item.isSelected2 = false
+ if (index === 0) {
+ item.isSelected1 = true
+ this.projectTableData = item.Data
+ }
+ if (item.flag === 'Y') {
+ item.isSelected2 = true
+ this.$nextTick(() => {
+ $('input:checkbox').eq(index).prop('checked', true)
+ })
+ }
+ })
+
+ this.defaultroute_codeArr = this.dialogFormRoute.routeOperationArr.filter(item => item.flag === 'Y')
+ },
+ // 瀵硅瘽妗嗗叧闂�
+ handleCloseRoute() {
+ this.dialogFormRoute.routeOperationArr = []
+ this.defaultroute_codeArr = []
+ this.defaultroute_code = ''
+ this.projectTableData = []
+ },
+ // 鍙栨秷
+ routeDialogVisibleCancel() {
+ this.dialogVisibleRoute = false
+ },
+ // 纭畾
+ async routeDialogVisibleConfirm() {
+ const temp = this.dialogFormRoute.routeOperationArr.filter(item => item.isSelected2)
+ if (this.defaultroute_code === '' && temp.length > 0) {
+ return this.$message.info('榛樿宸ヨ壓璺嚎涓嶈兘涓虹┖锛�')
+ }
+
+ // 鎻愪氦鏍煎紡
+ const data = []
+ this.dialogFormRoute.routeOperationArr.forEach(item => {
+ if (item.isSelected2) {
+ data.push({ code: item.code, name: item.name })
+ }
+ })
+
+ const res = await SaveInventoryFile(this.dialogFormRoute.projectCode, this.defaultroute_code, data)
+ if (res.code === '200') {
+ this.$message.success('淇濆瓨鎴愬姛锛�')
+ await this.getMesOrderSearch()
+ this.dialogVisibleRoute = false
+ }
+ },
+ // 澶х洅瀛愮偣鍑讳簨浠�
+ myCheckboxClick(val) {
+ console.log(val, 1)
+ this.dialogFormRoute.routeOperationArr.forEach(item => {
+ item.isSelected1 = val.code === item.code
+ })
+
+ this.projectTableData = val.Data
+ },
+ // 灏忕洅瀛愮偣鍑讳簨浠�
+ myCheckboxInputClick(val) {
+ console.log(val, 2)
+ val.isSelected2 = !val.isSelected2
+
+ this.dialogFormRoute.routeOperationArr.forEach((item, index) => {
+ if (val.code === item.code) {
+ item.flag = !item.flag
+ }
+ })
+ if (val.code === this.defaultroute_code) {
+ this.defaultroute_code = ''
+ }
+ this.defaultroute_codeArr = this.dialogFormRoute.routeOperationArr.filter(item => item.isSelected2)
+ },
+ // 琛岀偣鍑讳簨浠�
+ async rowClick(row, event, column) {
+ const data = {
+ sourceid: row.sourceid,
+ sourcewo: row.m_po,
+ wocode: row.wo_code,
+ data_sources: row.data_sources
+ }
+ const { data: res } = await UpdateMesOrderStepSearch(data)
+ this.tableDataDetail = res.stepdata
+ },
+ // 宸ュ簭鍒犻櫎
+ stepDel(row) {
+ console.log(row)
+ const index = this.stepSelectedValue.findIndex(i => i === row.stepcode)
+ this.stepSelectedValue.splice(index, 1)
+ },
+ // 鎵撳嵃宸ュ崟
+ printOrder() {
+
+ },
+ // 閫夋嫨鎵撳嵃灏哄鐨勫ぇ灏忓�兼敼鍙�
+ printSizeChange(val) {
+ this.$nextTick(() => {
+ this.bindQRCode2(this.qrForm.qrvalue)
+ })
+ },
+ printMe2StylePadding(val) {
+ if (val === 0) {
+ return { paddingLeft: '10px', paddingTop: '5px' }
+ }
+ if (val === 5) {
+ return { paddingLeft: '15px', paddingTop: '7px' }
+ }
+ },
+
+ inbarcodeChange(val, item) {
+ // 褰� lastPrintArrSelected涓湭鏈夊綋鍓嶅嬀閫夌殑鍊兼槸 璧皃ush item 鍚﹀垯璧拌繃婊ゆ帀item
+ if (val) {
+ this.lastPrintArrSelected.push(item)
+ } else {
+ this.lastPrintArrSelected = this.lastPrintArrSelected.filter(i => i.inbarcode !== item.inbarcode)
+ }
+
+ // 鐢熶骇浜岀淮鐮�
+ this.$nextTick(() => {
+ this.lastPrintArrSelected.forEach((i, index) => {
+ console.log(i.inbarcode, 'i.inbarcode')
+ new QRCode(this.$refs.qrCodeDiv3[index], {
+ text: i.inbarcode,
+ width: 60,
+ height: 60,
+ colorDark: '#000', // 浜岀淮鐮侀鑹�
+ colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊
+ correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H
+ })
+ })
+
+ // const div = document.getElementById('qrCode3')
+ // div.scrollTop = 0 // 婊氬姩鏉′綅浜庢渶搴曢儴
+
+ this.$forceUpdate()
+ }, 500)
+ },
+ stepSelectedValueChange(val) {
+ // console.log(val, 123)
+ }
+ }
}
</script>
+<style>
+.sortable-ghost {
+ opacity: .8;
+ color: #fff !important;
+ background: #42b983 !important;
+}
+</style>
+<style lang="scss" scoped>
+$main_color: #42b983;
-<style scoped>
+.dialogVisibleRoute {
+ .myCheckboxGroup {
+ display: flex;
+ flex-wrap: wrap;
+ .myCheckbox {
+ //border: 1px solid $main_color;
+ border: 1px solid #eee;
+ display: flex;
+ min-width: 100px;
+ padding: 10px;
+ margin: 10px 30px 0 0;
+ border-radius: 5px;
+ cursor: default;
+
+ .myCheckboxInput {
+ margin: 1px 5px 0 0;
+ cursor: pointer;
+ }
+
+ }
+
+ //.myCheckbox{
+ // border: 1px solid $main_color;
+ //}
+
+ input[type=checkbox] {
+ cursor: pointer;
+ position: relative;
+ width: 14px;
+ height: 14px;
+ font-size: 14px;
+ }
+
+ input[type=checkbox]::after {
+ position: absolute;
+ top: 0;
+ //color: rgb(130, 35, 35);
+ color: $main_color;
+ width: 14px;
+ height: 14px;
+ display: inline-block;
+ visibility: visible;
+ padding-left: 0px;
+ text-align: center;
+ content: ' ';
+ border-radius: 3px
+ }
+
+ input[type=checkbox]:checked::after {
+ //content: "鉁�";
+ content: "鈭�";
+ color: #fff;
+ font-size: 12px;
+ font-weight: bold;
+ background-color: $main_color;
+ }
+ }
+}
+
+.dialogVisibleRoute {
+ ::v-deep .el-dialog__body {
+ padding: 20px 20px !important;
+ }
+}
+
+.defaultroute_code ::v-deep .el-input__suffix-inner {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-top: -3px;
+}
+
+.el-date-editor {
+ font-size: 14px;
+}
+
+::v-deep .el-dialog__body {
+ padding: 20px 100px !important;
+}
+
+.dialogVisibleSearch ::v-deep .el-dialog__body {
+ padding: 20px 20px !important;
+}
+
+.dialogVisibleConfirmClass ::v-deep .el-dialog__body {
+ padding: 20px 20px !important;
+}
+
+::v-deep .el-table .caret-wrapper {
+ transform: scale(0.8);
+}
+
+::v-deep .el-button--text {
+ color: $main_color;
+ font-size: 14px;
+ cursor: pointer;
+}
+
+::v-deep .el-radio.is-bordered + .el-radio.is-bordered {
+ margin: 10px 30px 0px 0;
+}
+
+.body ::v-deep .el-form-item {
+ margin-bottom: 0;
+}
+
+.elForm ::v-deep .el-form-item {
+ margin-bottom: 0;
+}
+
+.elTableDiv {
+ ::v-deep .el-radio__label {
+ display: none;
+ }
+
+}
+
+.el-table::before {
+ height: 0;
+}
+
+//.dialogVisibleConfirmClass >>>.el-table--border, .el-table--fit {
+// border-bottom: 2px solid #000 ;
+// //outline: #000 solid 2px !important;
+//}
+
+.tableDataPrint ::v-deep div.cell {
+ display: flex !important;
+ align-items: center !important;
+ justify-content: center !important;
+}
+
+.formContent {
+ width: 240px;
+}
+
+</style>
+
+<style media="print">
+/*@media print {*/
+@page {
+ size: auto;
+ margin: 3mm;
+}
+
+</style>
+<style>
+.formContent .el-form-item__label {
+ color: #000 !important;
+}
+</style>
+<!--鍏叡椤甸潰鏍峰紡-->
+<style lang="scss" scoped>
+$main_color: #42b983;
+
+::v-deep .el-range-input {
+ font-size: 14px !important;
+}
+
+::v-deep .el-range__icon {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-separator {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-input {
+ font-size: 14px;
+}
+
+::v-deep .el-range-separator {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+//::v-deep .el-button--primary, .el-button--default, .el-button--info {
+// height: 34px;
+// display: flex;
+// align-items: center;
+// padding: 0 15px;
+//}
+
+::v-deep .el-button--primary {
+ //background-color: $main_color !important;
+}
+
+::v-deep .el-button--default {
+ background-color: #f8f8fa;
+ border: none;
+}
+
+::v-deep .el-input__inner {
+ height: 34px;
+ line-height: 34px;
+ //color: #a7a7a7;
+}
+
+::v-deep .el-dialog__body {
+ padding: 20px 100px !important;
+}
+
+::v-deep .dialogVisibleRoles .el-dialog__body {
+ padding: 20px 20px !important;
+}
+
+::v-deep .importPickerClass .el-dialog__body {
+ padding: 20px 20px !important;
+}
+
+::v-deep .el-dialog__footer {
+ display: flex;
+ justify-content: flex-end;
+}
+
+::v-deep .el-table .caret-wrapper {
+ transform: scale(0.8);
+}
+
+::v-deep .cell {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
+
+::v-deep .el-table::before {
+ height: 0;
+}
+
+::v-deep .el-table__body-wrapper {
+ background-color: #f8f8fa;
+}
+
+::v-deep .el-table__body .el-table__row.hover-row td {
+ background-color: #eaecef;
+}
+
+::v-deep .el-form--inline .el-form-item__label {
+ color: #a7a7a7;
+}
+
+.body ::v-deep .el-divider {
+ border: 1px solid #eee;
+ width: 99%;
+ margin: 10px auto;
+}
+
+.body ::v-deep .el-form-item {
+ margin-bottom: 0;
+}
+
+.userDialogVisible ::v-deep .el-form-item {
+ margin-bottom: 0;
+}
+
+.dateMini {
+ ::v-deep .el-input__inner {
+ line-height: 34px;
+ height: 34px;
+ width: 200px;
+ display: flex;
+ font-size: 14px !important;
+ align-items: center !important;
+ }
+
+ ::v-deep .el-input__prefix {
+ margin-top: -3px;
+ }
+
+ //::v-deep .el-range__icon{
+ // line-height: 28px;
+ //}
+}
+
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.tableFixed {
+ ::v-deep .el-table__fixed-right {
+ height: 100% !important;
+ }
+
+ ::v-deep .el-table__fixed {
+ height: 100% !important;
+ }
+}
+</style>
+<style>
+
+.el-table .custom-row {
+ background: #f8f8fa;
+}
</style>
diff --git a/src/views/workOrder/workOrderSend.vue b/src/views/workOrder/workOrderSend.vue
index d150eab..c726f93 100644
--- a/src/views/workOrder/workOrderSend.vue
+++ b/src/views/workOrder/workOrderSend.vue
@@ -1,11 +1,3419 @@
-<template />
+<template>
+ <div>
+ <div class="body" :style="{height:mainHeight+'px'}">
+
+ <!-- <div class="bodyTopButtonGroup" style="justify-content: space-between">-->
+ <!-- <div style="display: flex">-->
+ <!-- <!– <el-button v-waves type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>–>-->
+ <!-- <!– <el-button v-waves type="success" icon="el-icon-connection" @click="send">娲惧彂</el-button>–>-->
+ <!-- </div>-->
+
+ <!-- <!– <el-button v-waves icon="el-icon-switch-button" @click="orderClose">鍏抽棴宸ュ崟</el-button>–>-->
+ <!-- </div>-->
+
+ <div class="bodyTopFormGroup" style="margin-top: 10px;">
+ <el-form
+ ref="form"
+ :model="form"
+ label-width="100px"
+ inline
+ style="display: flex;"
+ >
+ <div class="elForm">
+ <el-form-item label="杞﹂棿鍚嶇О" style=" display: flex;">
+ <el-select
+ v-model="form.wkshopcode"
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in wkshopcodeArr"
+ :key="item.torg_code"
+ :label="item.torg_name"
+ :value="item.torg_code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="宸ュ崟鐘舵��" style=" display: flex;">
+ <el-select
+ v-model="form.mesorderstus"
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ disabled
+ filterable
+ @change="erporderstusChange"
+ >
+ <el-option
+ v-for="item in erporderstusArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="宸ュ崟缂栧彿" style=" display: flex;">
+ <el-input v-model="form.mesordercode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="婧愬崟鍗曞彿" style="display: flex;">
+ <el-input v-model="form.sourceorder" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="閿�鍞鍗�" style="display: flex;">
+ <el-input v-model="form.saleordercode" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鍗曟嵁绫诲瀷" style=" display: flex;">
+ <el-select
+ v-model="form.ordertype"
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <!-- @change="mesordertypeChange"-->
+ <el-option
+ v-for="item in ordertypeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="浜у搧缂栫爜" style=" display: flex;">
+ <el-input v-model="form.partcode" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="浜у搧鍚嶇О" style=" display: flex;">
+ <el-input v-model="form.partname" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="浜у搧瑙勬牸" style=" display: flex;">
+ <el-input v-model="form.partspec" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鍒涘缓浜哄憳" style=" display: flex;">
+ <el-input v-model="form.creatuser" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandForm" label="鍒涘缓鏃堕棿" style=" display: flex;">
+ <!-- <el-date-picker-->
+ <!-- v-model="form.createdate"-->
+ <!-- type="daterange"-->
+ <!-- :clearable="false"-->
+ <!-- range-separator="~"-->
+ <!-- start-placeholder="寮�濮嬫棩鏈�"-->
+ <!-- end-placeholder="缁撴潫鏃ユ湡"-->
+ <!-- size="mini"-->
+ <!-- />-->
+ <el-date-picker
+ v-model="form.createdate"
+ type="date"
+ size="mini"
+ :clearable="false"
+ class="dateMini"
+ format="yyyy-MM-dd"
+ placeholder="閫夋嫨鏃ユ湡"
+ />
+ </el-form-item>
+ </div>
+
+ <div
+ class="bodySearchReset"
+ :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
+ >
+ <el-button v-waves type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+ </div>
+
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverType==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverType=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverType==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandForm?'doubleDown':'doubleUp'"
+ @click="isExpandForm=!isExpandForm"
+ @mouseout="mouseHoverType=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ ref="tableDataRef"
+ class="tableFixed"
+ :data="tableData"
+ :height="isExpandForm?tableHeight:(tableHeight+80)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandForm?tableHeight:(tableHeight+80)+'px'}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sortChange"
+ @selection-change="handleSelectionChange"
+ >
+ <!-- @row-click="rowClick"-->
+ <!-- <el-table-column-->
+ <!-- type="selection"-->
+ <!-- width="50"-->
+ <!-- :selectable="selected"-->
+ <!-- />-->
+ <el-table-column
+ prop="rowNum"
+ width="50"
+ label="搴忓彿"
+ fixed
+ />
+ <el-table-column
+ prop="status"
+ label="宸ュ崟鐘舵��"
+ sortable="custom"
+ width="110"
+ show-tooltip-when-overflow
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.status==='NEW'">鏂板伐鍗�</div>
+ <!-- <div v-if="row.status==='CREATING'">鎵ц涓�</div>-->
+ <!-- <div v-if="row.status==='CREATED'">宸插叧闂�</div>-->
+ <div v-if="row.status==='ALLO'">宸叉淳鍙�</div>
+ <div v-if="row.status==='START'">寮�宸�</div>
+ <div v-if="row.status==='CLOSED'">瀹屽伐</div>
+ <div v-if="row.status==='NOSCHED'">寰呮帓绋�</div>
+ <div v-if="row.status==='SCHED'">宸叉帓绋�</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="wo_code"
+ label="宸ュ崟缂栧彿"
+ show-tooltip-when-overflow
+ sortable="custom"
+ min-width="160"
+ />
+ <el-table-column
+ prop="m_po"
+ label="婧愬崟鍗曞彿"
+ sortable="custom"
+ show-tooltip-when-overflow
+ min-width="160"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.m_po">{{ row.m_po }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="saleOrderCode"
+ label="閿�鍞鍗�"
+ sortable="custom"
+ show-tooltip-when-overflow
+ min-width="160"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.saleOrderCode">{{ row.saleOrderCode }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="wotype"
+ label="鍗曟嵁绫诲瀷"
+ sortable="custom"
+ show-tooltip-when-overflow
+ min-width="120"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.wotype==='PO'">鏍囧噯宸ュ崟</div>
+ <div v-else-if="row.wotype==='FO'">鎶ュ簾琛ュ崟</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="partcode"
+ label="浜у搧缂栫爜"
+ show-tooltip-when-overflow
+ sortable="custom"
+ min-width="120"
+ />
+ <el-table-column
+ prop="partname"
+ min-width="150"
+ label="浜у搧鍚嶇О"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+ <el-table-column
+ prop="partspec"
+ label="浜у搧瑙勬牸"
+ sortable="custom"
+ width="110"
+ show-tooltip-when-overflow
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.partspec">{{ row.partspec }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="plan_qty"
+ label="宸ュ崟鏁�"
+ sortable="custom"
+ show-tooltip-when-overflow
+ width="100"
+ />
+ <el-table-column
+ prop="wkshp_name"
+ label="鐢熶骇杞﹂棿"
+ show-tooltip-when-overflow
+ sortable="custom"
+ width="120"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.wkshp_name">{{ row.wkshp_name }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="saleOrderDeliveryDate"
+ label="棰勮浜や粯鏃ユ湡"
+ sortable="custom"
+ width="130"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.saleOrderDeliveryDate">{{ row.saleOrderDeliveryDate.substring(0, 11) }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <!-- <el-table-column-->
+ <!-- prop="data_sources"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- label="鏁版嵁鏉ユ簮"-->
+ <!-- sortable="custom"-->
+ <!-- width="120"-->
+ <!-- />-->
+
+ <el-table-column
+ prop="lm_user"
+ show-tooltip-when-overflow
+ label="鍒涘缓浜哄憳"
+ sortable="custom"
+ width="120"
+ />
+ <el-table-column
+ prop="lm_date"
+ label="鍒涘缓鏃堕棿"
+ show-tooltip-when-overflow
+ width="160"
+ sortable="custom"
+ />
+ <el-table-column
+ label="鎿嶄綔"
+ width="120"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div class="operationClass">
+ <!-- <el-tooltip class="item" effect="dark" content="淇敼" placement="top">-->
+ <!-- <i-->
+ <!-- class="el-icon-edit-outline"-->
+ <!-- :style="{color:$store.state.settings.theme}"-->
+ <!-- @click.stop="edit('edit',row)"-->
+ <!-- />-->
+ <!-- </el-tooltip>-->
+
+ <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">
+ <i class="el-icon-delete" :style="{color:$store.state.settings.theme}" @click.stop="del(row)" />
+ </el-tooltip>
+
+ <el-tooltip class="item" effect="dark" content="鎵撳嵃宸ュ崟" placement="top">
+ <!-- <i-->
+ <!-- class="el-icon-tickets"-->
+ <!-- style="cursor: pointer;color: #42b983;margin-right: 15px"-->
+ <!-- @click="check(row)"-->
+ <!-- />-->
+ <i
+ :style="{color:$store.state.settings.theme}"
+ class="el-icon-printer"
+ style="cursor: pointer;margin-right: 15px"
+ @click.stop="handlePrint(row.wo_code)"
+ />
+ </el-tooltip>
+
+ <el-tooltip class="item" effect="dark" content="璇︽儏" placement="top">
+ <i
+ class="el-icon-view"
+ style="cursor: pointer;"
+ :style="{color:$store.state.settings.theme}"
+ @click.stop="edit('view',row)"
+ />
+ </el-tooltip>
+
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="total"
+ :page.sync="form.page"
+ :limit.sync="form.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes,jumper"
+ popper-class="select_bottom"
+ @pagination="getMesOrderSearch"
+ />
+
+ <!-- <div class="elTableDiv">-->
+ <!-- <el-table-->
+ <!-- :data="tableDataDetail"-->
+ <!-- border-->
+ <!-- height="210px"-->
+ <!-- :row-class-name="tableRowClassName"-->
+ <!-- highlight-current-row-->
+ <!-- :header-cell-style="this.$headerCellStyle"-->
+ <!-- :cell-style="this.$cellStyle"-->
+ <!-- >-->
+ <!-- <!– <el-table-column–>-->
+ <!-- <!– width="50"–>-->
+ <!-- <!– type="index"–>-->
+ <!-- <!– prop="搴忓彿"–>-->
+ <!-- <!– fixed–>-->
+ <!-- <!– /> –>-->
+ <!-- <el-table-column-->
+ <!-- width="50"-->
+ <!-- prop="seq"-->
+ <!-- label="搴忓彿"-->
+ <!-- fixed-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- prop="wo_code"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- label="宸ュ崟缂栧彿"-->
+ <!-- width="160"-->
+ <!-- />-->
+
+ <!-- <!– <el-table-column–>-->
+ <!-- <!– prop="partcode"–>-->
+ <!-- <!– label="浜у搧缂栫爜"–>-->
+ <!-- <!– width="150"–>-->
+ <!-- <!– show-tooltip-when-overflow–>-->
+ <!-- <!– />–>-->
+ <!-- <!– <el-table-column–>-->
+ <!-- <!– prop="partname"–>-->
+ <!-- <!– label="浜у搧鍚嶇О"–>-->
+ <!-- <!– width="200"–>-->
+ <!-- <!– show-tooltip-when-overflow–>-->
+ <!-- <!– />–>-->
+
+ <!-- <el-table-column-->
+ <!-- label="宸ュ簭缂栫爜"-->
+ <!-- prop="step_code"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- width="150"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- label="宸ュ簭鍚嶇О"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- prop="stepname"-->
+ <!-- width="150"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- label="宸茬敓浜ф暟閲�"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- prop="produceq_qty"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- label="鍚堟牸鏁伴噺"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- prop="good_qty"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- label="涓嶈壇鏁伴噺"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- prop="ng_qty"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- label="宸ュ簾鏁伴噺"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- prop="laborbad_qty"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- label="鏂欏簾鏁伴噺"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- prop="materielbad_qty"-->
+ <!-- />-->
+ <!-- <el-table-column-->
+ <!-- label="寰呬骇鏁伴噺"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- prop="delive_qty"-->
+ <!-- />-->
+ <!-- <!– <el-table-column–>-->
+ <!-- <!– label="鎿嶄綔"–>-->
+ <!-- <!– width="120"–>-->
+ <!-- <!– fixed="right"–>-->
+ <!-- <!– >–>-->
+ <!-- <!– <template slot-scope="{row}">–>-->
+ <!-- <!– <div class="operationClass">–>-->
+ <!-- <!– <el-tooltip class="item" effect="dark" content="鎵撳嵃宸ュ簭" placement="top">–>-->
+ <!-- <!– <i–>-->
+ <!-- <!– v-if="tableDataDetail.length!==row.seq"–>-->
+ <!-- <!– class="el-icon-printer"–>-->
+ <!-- <!– :style="{color:$store.state.settings.theme}"–>-->
+ <!-- <!– style="cursor: pointer;margin-right: 15px"–>-->
+ <!-- <!– @click="supplementSmallClick(row)"–>-->
+ <!-- <!– />–>-->
+ <!-- <!– </el-tooltip>–>-->
+ <!-- <!– <el-tooltip class="item" effect="dark" content="琛ユ墦鐢熶骇鍏ュ簱鏉$爜" placement="top">–>-->
+ <!-- <!– <i–>-->
+ <!-- <!– v-if="tableDataDetail.length===row.seq"–>-->
+ <!-- <!– class=" el-icon-camera"–>-->
+ <!-- <!– :style="{color:$store.state.settings.theme}"–>-->
+ <!-- <!– style="cursor: pointer;margin-right: 15px"–>-->
+ <!-- <!– @click="getProductInHouseLabCode(row.wo_code)"–>-->
+ <!-- <!– />–>-->
+ <!-- <!– </el-tooltip>–>-->
+ <!-- <!– </div>–>-->
+ <!-- <!– </template>–>-->
+ <!-- <!– </el-table-column>–>-->
+ <!-- </el-table>-->
+ <!-- </div>-->
+ </div>
+ <!--鏂板娲惧彂瀵硅瘽妗�-->
+ <el-dialog
+ v-el-drag-dialog
+ :title="operation==='add'?'鏂板':'娲惧彂'"
+ :visible.sync="dialogVisible"
+ width="1200px"
+ top="8vh"
+ :close-on-click-modal="false"
+ @closed="handleClose"
+ @close="handleClose"
+ >
+ <el-form
+ ref="dialogForm"
+ inline
+ :rules="dialogFormRules"
+ :model="dialogForm"
+ label-width="110px"
+ >
+
+ <el-divider content-position="left">鍩烘湰淇℃伅</el-divider>
+
+ <el-form-item
+ label="宸ュ崟鐘舵��"
+ prop="mesorderstus"
+ >
+ <el-select
+ v-model="dialogForm.mesorderstus"
+ disabled
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in erporderstusArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+
+ <el-form-item label="宸ュ崟缂栧彿" prop="mesordercode">
+ <!-- <el-input v-model="dialogForm.mesordercode" :disabled="operation!=='add'" style="width: 200px" />-->
+ <el-input v-model="dialogForm.mesordercode" disabled style="width: 200px" />
+ </el-form-item>
+ <!-- <div style="display: flex">-->
+ <el-form-item label="宸ュ崟绫诲瀷" prop="mesorderstus">
+ <el-select
+ v-model="dialogForm.ordertype"
+ :popper-append-to-body="false"
+ style="width: 200px"
+ :disabled="operation!=='add'"
+ placeholder="璇烽�夋嫨"
+ @change="mesordertypeChange"
+ >
+ <el-option
+ v-for="item in ordertypeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <!-- <div style="display: flex;flex-wrap: nowrap">-->
+ <el-form-item label="婧愬崟鍗曞彿">
+ <el-input
+ v-model="dialogForm.sourceorder"
+ :disabled="dialogForm.ordertype==='PO'"
+ style="width: 200px"
+ >
+ <el-button
+ slot="append"
+ icon="el-icon-search"
+ :disabled="operation!=='add'||dialogForm.ordertype==='PO'"
+ @click="mesordertsourcesearchclick"
+ />
+ </el-input>
+ </el-form-item>
+ <!-- <el-button-->
+ <!-- v-waves-->
+ <!-- type="primary"-->
+ <!-- style="padding: 0 10px;margin-left: -8px;margin-top: 3px"-->
+ <!-- class="el-icon-search"-->
+ <!-- :disabled="operation!=='add'||dialogForm.ordertype==='PO'"-->
+ <!-- @click="mesordertsourcesearchclick"-->
+ <!-- />-->
+ <!-- </div>-->
+ <!-- </div>-->
+ <el-form-item label="宸ュ崟鏁伴噺" prop="mesqty">
+ <el-input
+ v-model="dialogForm.mesqty"
+ oninput="value=value.replace(/[^\d]/g,'')"
+ style="width: 200px"
+ />
+ <!-- oninput="value=value.replace(/[^0-9*.{1}0-9*]/g,'')"-->
+ </el-form-item>
+ <el-form-item
+ label="浜у搧鍚嶇О/缂栫爜"
+ prop="partcode"
+ >
+ <el-select
+ v-model="dialogForm.partcode"
+ filterable
+ :disabled="operation!=='add'"
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ @change="partcodeChangeDialog"
+ >
+ <el-option
+ v-for="item in partArr"
+ :key="item.partcode"
+ :label="item.partname+'/'+item.partcode"
+ :value="item.partcode"
+ />
+ </el-select>
+ </el-form-item>
+ <!-- <el-form-item v-if="operation!=='add'" label="浜у搧鍚嶇О" prop="partname">-->
+ <!-- <el-input v-model="dialogForm.partname" disabled style="width: 200px" />-->
+ <!-- </el-form-item>-->
+ <!-- <el-form-item v-if="operation!=='add'" label="浜у搧缂栫爜">-->
+ <!-- <el-input v-model="dialogForm.partcode" disabled style="width: 200px" />-->
+ <!-- </el-form-item>-->
+ <el-form-item label="浜у搧瑙勬牸" prop="partspec">
+ <el-input v-model="dialogForm.partspec" disabled style="width: 200px" />
+ </el-form-item>
+ <!-- :disabled="dialogForm.partcode===''"-->
+ <el-form-item label="鎵�灞炶溅闂�" prop="wkshopcode">
+ <el-select
+ v-model="dialogForm.wkshopcode"
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px;"
+ placeholder="璇烽�夋嫨杞﹂棿"
+ >
+ <el-option
+ v-for="item in wkshopArr"
+ :key="item.torg_code"
+ :label="item.torg_name"
+ :value="item.torg_code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="棰勮浜や粯鏃ユ湡" prop="deliverydate">
+ <el-date-picker
+ v-model="dialogForm.deliverydate"
+ type="date"
+ size="mini"
+ :clearable="false"
+ class="dateMini"
+ :picker-options="pickerOptions"
+ format="yyyy-MM-dd"
+ value-format="yyyy-MM-dd"
+ placeholder="閫夋嫨鏃ユ湡"
+ />
+ <!-- :disabled="dialogForm.deliverydate"-->
+ </el-form-item>
+
+ <el-divider content-position="left">宸ュ簭淇℃伅</el-divider>
+
+ <div style="display: flex;align-items: center">
+ <!-- <div style="font-weight: bolder">宸ュ簭閫夋嫨锛�</div>-->
+ <!-- <el-drag-select-->
+ <!-- v-model="stepSelectedValue"-->
+ <!-- style="width:930px;"-->
+ <!-- multiple-->
+ <!-- placeholder="璇烽�夋嫨鐩稿搴斿伐搴�"-->
+ <!-- @change="stepSelectedValueChange"-->
+ <!-- >-->
+ <!-- <el-option-->
+ <!-- v-for="item in stepSelectArr"-->
+ <!-- :key="item.stepcode"-->
+ <!-- :label="item.stepname"-->
+ <!-- :value="item.stepcode"-->
+ <!-- />-->
+ <!-- </el-drag-select>-->
+ </div>
+
+ <el-table
+ ref="stepTableDataRef"
+ :data="stepTableData"
+ border
+ :row-class-name="tableRowClassName"
+ height="300"
+ style="width: 100%;margin-top: 15px;"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ row-key="stepcode"
+ >
+ <el-table-column
+ type="index"
+ label="搴忓彿"
+ width="50"
+ />
+ <!-- <el-table-column-->
+ <!-- prop="stepcode"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- label="宸ュ簭缂栫爜"-->
+ <!-- />-->
+ <el-table-column
+ prop="stepname"
+ label="宸ュ簭鍚嶇О"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="stepprice"
+ label="鐢熶骇鍗曚环"
+ show-tooltip-when-overflow
+ >
+ <!-- <template slot-scope="{row}">-->
+ <!-- <el-input-->
+ <!-- v-model="row.stepprice"-->
+ <!-- placeholder="璇疯緭鍏ュ伐搴忓崟浠�"-->
+ <!-- oninput="value=value.replace(/[^0-9.]/g,'')"-->
+ <!-- style="width: 100%"-->
+ <!-- @click.stop=""-->
+ <!-- />-->
+ <!-- </template>-->
+ </el-table-column>
+ <el-table-column
+ prop="produceq_qty"
+ label="宸茬敓鎴愭暟閲�"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="good_qty"
+ label="鍚堟牸鏁伴噺"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="ng_qty"
+ label="涓嶈壇鏁伴噺"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="laborbad_qty"
+ label="宸ュ簾鏁伴噺"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="materielbad_qty"
+ label="鏂欏簾鏁伴噺"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="delive_qty"
+ label="寰呬骇鏁伴噺"
+ show-tooltip-when-overflow
+ />
+ <!-- <el-table-column-->
+ <!-- label="鎿嶄綔"-->
+ <!-- width="120"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div class="operationClass">-->
+ <!-- <!– <el-tooltip class="item" effect="dark" content="绉诲姩" placement="top">–>-->
+ <!-- <i-->
+ <!-- class="el-icon-rank"-->
+ <!-- :style="{color:$store.state.settings.theme}"-->
+ <!-- style="cursor: move"-->
+ <!-- />-->
+ <!-- <!– </el-tooltip>–>-->
+ <!-- <!– @click="edit('edit',row)"–>-->
+
+ <!-- <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">-->
+ <!-- <i-->
+ <!-- class="el-icon-delete"-->
+ <!-- :style="{color:$store.state.settings.theme}"-->
+ <!-- style="margin-left: 15px;"-->
+ <!-- @click="stepDel(row)"-->
+ <!-- />-->
+ <!-- </el-tooltip>-->
+ <!-- </div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ </el-table>
+
+ </el-form>
+
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleCancel">鍙� 娑�</el-button>
+ <!-- <el-button v-waves v-if="operation==='add'" type="primary" @click="dialogVisibleConfirmPreview('add')">棰勮</el-button>-->
+ <el-button
+ v-if="operation!=='view'"
+ v-waves
+ type="primary"
+ :loading="$store.state.app.buttonIsDisabled"
+ :disabled="$store.state.app.buttonIsDisabled"
+ @click="dialogVisibleConfirm"
+ >纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ <!-- 宸ュ簭浠诲姟瀵硅瘽妗�-->
+ <el-dialog
+ v-el-drag-dialog
+ title="宸ュ簭浠诲姟"
+ :visible.sync="dialogVisibleTask"
+ width="840px"
+ top="15vh"
+ class="dialogVisibleSearch"
+ :close-on-click-modal="false"
+ @close="dialogVisibleTaskClose"
+ >
+ <el-button
+ v-waves
+ style="margin-bottom: 15px"
+ type="primary"
+ @click="supplementClick"
+ >琛ユ墦
+ </el-button>
+ <el-table
+ :data="taskTableData"
+ border
+ :row-class-name="tableRowClassName"
+ height="300"
+ style="width: 100%;"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ >
+ <el-table-column
+ prop="seq"
+ width="50"
+ label="搴忓彿"
+ fixed
+ />
+ <el-table-column
+ prop="wo_code"
+ show-tooltip-when-overflow
+ label="宸ュ崟缂栧彿"
+ width="200"
+ />
+ <el-table-column
+ prop="stepcode"
+ label="宸ュ簭缂栫爜"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="stepname"
+ show-tooltip-when-overflow
+ label="宸ュ簭鍚嶇О"
+ />
+ <!-- <el-table-column-->
+ <!-- prop="flwtype"-->
+ <!-- label="宸ュ簭绫诲瀷"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.flwtype==='W'">澶栧崗</div>-->
+ <!-- <div v-if="row.flwtype==='Z'">鑷埗</div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ <!-- <el-table-column-->
+ <!-- prop="descr"-->
+ <!-- label="宸ュ簭鎻忚堪"-->
+ <!-- />-->
+ <el-table-column
+ prop="plan_qty"
+ show-tooltip-when-overflow
+ label="浠诲姟鏁伴噺"
+ />
+ <el-table-column
+ prop="good_qty"
+ show-tooltip-when-overflow
+ label="鍚堟牸鏁伴噺"
+ />
+ <el-table-column
+ prop="ng_qty"
+ show-tooltip-when-overflow
+ label="涓嶈壇鏁伴噺"
+ />
+ <el-table-column
+ label="鎿嶄綔"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <el-button v-waves type="text" style="padding: 0;" @click="supplementSmallClick(row)">琛ユ墦</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleBack">杩� 鍥�</el-button>
+ <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>-->
+ </div>
+ </span>
+ </el-dialog>
+
+ <!-- 婧愬崟鍗曞彿瀵硅瘽妗�-->
+ <el-dialog
+ v-el-drag-dialog
+ title="婧愬崟鍗曞彿"
+ :visible.sync="dialogVisibleSource"
+ width="1200px"
+ top="10vh"
+ class="dialogVisibleSearch"
+ :close-on-click-modal="false"
+ @close="dialogVisibleSourceClose"
+ >
+ <div class="bodyTopFormGroup">
+ <el-form
+ ref="sourceForm"
+ :model="sourceForm"
+ label-width="100px"
+ inline
+ style="display: flex;justify-content: space-between"
+ >
+ <div class="elForm" style="justify-content: flex-start">
+ <!-- <el-form-item-->
+ <!-- label="棰勮寮�宸ユ椂闂�"-->
+ <!-- label-width="100px"-->
+ <!-- style=" display: flex;font-size: 14px;margin-top: 3px"-->
+ <!-- >-->
+ <!-- <el-date-picker-->
+ <!-- v-model="sourceForm.paystartdate"-->
+ <!-- type="daterange"-->
+ <!-- range-separator="~"-->
+ <!-- class="timeMini"-->
+ <!-- size="mini"-->
+ <!-- style="width: 200px;display: flex;line-height: 34px;height: 34px;font-size: 14px!important;"-->
+ <!-- :clearable="false"-->
+ <!-- start-placeholder="寮�濮嬫棩鏈�"-->
+ <!-- end-placeholder="缁撴潫鏃ユ湡"-->
+ <!-- />-->
+ <!-- <!– :picker-options="expireTimeOption"–>-->
+
+ <!-- </el-form-item>-->
+ <!-- <el-form-item-->
+ <!-- label="棰勮瀹屽伐鏃堕棿"-->
+ <!-- label-width="100px"-->
+ <!-- style=" display: flex;font-size: 14px;margin-top: 3px"-->
+ <!-- >-->
+ <!-- <el-date-picker-->
+ <!-- v-model="sourceForm.payenddate"-->
+ <!-- type="daterange"-->
+ <!-- :clearable="false"-->
+ <!-- class="timeMini"-->
+ <!-- range-separator="~"-->
+ <!-- start-placeholder="寮�濮嬫棩鏈�"-->
+ <!-- style="width: 200px;display: flex;line-height: 34px ;height: 34px ;font-size: 14px !important;"-->
+ <!-- end-placeholder="缁撴潫鏃ユ湡"-->
+ <!-- size="mini"-->
+ <!-- />-->
+ <!-- </el-form-item>-->
+ <el-form-item label="宸ュ崟鐘舵��" style=" display: flex;">
+ <el-select
+ v-model="sourceForm.mesordercode"
+ filterable
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in erporderstusArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="宸ュ崟缂栧彿" style=" display: flex;">
+ <el-input v-model="sourceForm.sourceorder" placeholder="璇疯緭鍏�" style="width: 200px" />
+ </el-form-item>
+ <el-form-item label="浜у搧缂栫爜" style=" display: flex;">
+ <el-input v-model="sourceForm.partcode" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+
+ <el-form-item v-show="isExpandDialog" label="浜у搧鍚嶇О" style=" display: flex;">
+ <el-input v-model="sourceForm.partname" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandDialog" label="浜у搧瑙勬牸" style=" display: flex;">
+ <el-input v-model="sourceForm.partspec" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+ <el-form-item v-show="isExpandDialog" label="鍒涘缓浜哄憳" style=" display: flex;">
+ <el-input v-model="sourceForm.creatuser" style="width: 200px" placeholder="璇疯緭鍏�" />
+ </el-form-item>
+
+ <el-form-item
+ v-show="isExpandDialog"
+ label="鍒涘缓鏃堕棿"
+ label-width="100px"
+ style=" display: flex;font-size: 14px;margin-top: 3px"
+ >
+ <el-date-picker
+ v-model="sourceForm.createdate"
+ type="daterange"
+ range-separator="~"
+ class="timeMini"
+ size="mini"
+ style="width: 200px;display: flex;line-height: 34px;height: 34px;font-size: 14px!important;"
+ :clearable="false"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ />
+ <!-- :picker-options="expireTimeOption"-->
+
+ </el-form-item>
+
+ </div>
+
+ <div style="display: flex;align-items: start;margin-top: 3px;z-index: 2;justify-content: end">
+ <el-button v-waves type="primary" icon="el-icon-search" @click="sourceSearch">鏌ヨ</el-button>
+ <el-button v-waves type="info" icon="el-icon-refresh" @click="sourceReset">閲嶇疆</el-button>
+ </div>
+
+ </el-form>
+ <div
+ class="bodyTopFormExpand"
+ >
+ <svg-icon
+ v-show="mouseHoverTypeDialog==='mouseout'"
+ style="cursor: pointer"
+ :icon-class="!isExpandDialog?'doubleDown3':'doubleUp3'"
+ @mouseenter="mouseHoverTypeDialog=$event.type"
+ />
+ <svg-icon
+ v-show="mouseHoverTypeDialog==='mouseenter'"
+ style="cursor: pointer"
+ :icon-class="!isExpandDialog?'doubleDown':'doubleUp'"
+ @click="isExpandDialog=!isExpandDialog"
+ @mouseout="mouseHoverTypeDialog=$event.type"
+ />
+ </div>
+ </div>
+
+ <div class="elTableDiv">
+ <el-table
+ :data="sourceTableData"
+ :height="isExpandDialog?(tableHeight+60)+'px':(tableHeight+140)+'px'"
+ border
+ :row-class-name="tableRowClassName"
+ :style="{width: 100+'%',height:isExpandDialog?(tableHeight+60)+'px':(tableHeight+140)+'px',}"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ @sort-change="sourceSortChange"
+ @row-click="getCurrentRowSource"
+ >
+ <!-- <el-table-column-->
+ <!-- type="selection"-->
+ <!-- width="50"-->
+ <!-- />-->
+ <el-table-column
+ width="50"
+ fixed
+ >
+ <template slot-scope="{row}">
+ <el-radio
+ v-model="radioSelectedId"
+ :label="row.id"
+ style="color: transparent;padding-left: 10px;"
+ />
+ <!-- @change.native="getCurrentRowSource(row.id)"-->
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="RowNum"
+ width="50"
+ fixed
+ label="搴忓彿"
+ />
+ <!-- <el-table-column-->
+ <!-- prop="status"-->
+ <!-- label="宸ュ崟鐘舵��"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- sortable="custom"-->
+ <!-- width="110"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.status==='NEW'">鏂拌鍗�</div>-->
+ <!-- <div v-if="row.status==='CREATING'">閮ㄥ垎涓嬭揪</div>-->
+ <!-- <div v-if="row.status==='CREATED'">鍏ㄩ儴涓嬭揪</div>-->
+ <!-- <div v-if="row.status==='CLOSED'">宸插叧闂�</div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ <el-table-column
+ label="宸ュ崟缂栧彿"
+ prop="wo_code"
+ show-tooltip-when-overflow
+ min-width="150"
+ sortable="custom"
+ >
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div v-if="row.m_po">{{ row.m_po }}</div>-->
+ <!-- <div v-else>{{ row.wo_code }}</div>-->
+ <!-- </template>-->
+ </el-table-column>
+ <el-table-column
+ prop="partcode"
+ label="浜у搧缂栫爜"
+ sortable="custom"
+ show-tooltip-when-overflow
+ min-width="150"
+ />
+ <el-table-column
+ prop="partname"
+ label="浜у搧鍚嶇О"
+ sortable="custom"
+ show-tooltip-when-overflow
+ min-width="150"
+ />
+ <el-table-column
+ prop="partspec"
+ label="浜у搧瑙勬牸"
+ show-tooltip-when-overflow
+ sortable="custom"
+ min-width="110"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.partspec">{{ row.partspec }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="plan_qty"
+ label="浠诲姟鏁伴噺"
+ width="150"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+
+ <el-table-column
+ prop="bad_qty"
+ label="鎶ュ簾鏁伴噺"
+ width="150"
+ show-tooltip-when-overflow
+ sortable="custom"
+ />
+
+ <!-- <el-table-column-->
+ <!-- prop="relse_qty"-->
+ <!-- show-tooltip-when-overflow-->
+ <!-- label="宸蹭笅鍗曟暟閲�"-->
+ <!-- width="150"-->
+ <!-- sortable="custom"-->
+ <!-- />-->
+ <el-table-column
+ prop="wkshp_name"
+ label="鐢熶骇杞﹂棿"
+ show-tooltip-when-overflow
+ sortable="custom"
+ width="150"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.wkshp_name">{{ row.wkshp_name }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="plan_startdate"
+ label="棰勮寮�宸ユ椂闂�"
+ show-tooltip-when-overflow
+ sortable="custom"
+ width="130"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.plan_startdate">{{ row.plan_startdate.substring(0, 11) }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="plan_enddate"
+ label="棰勮瀹屽伐鏃堕棿"
+ show-tooltip-when-overflow
+ sortable="custom"
+ width="130"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.plan_enddate">{{ row.plan_enddate.substring(0, 11) }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="lm_user"
+ label="鍒涘缓浜哄憳"
+ show-tooltip-when-overflow
+ sortable="custom"
+ width="150"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.lm_user">{{ row.lm_user }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="lm_date"
+ label="鍒涘缓鏃堕棿"
+ show-tooltip-when-overflow
+ width="130"
+ sortable="custom"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.lm_date">{{ row.lm_date.substring(0, 11) }}</div>
+ <div v-else>/</div>
+ </template>
+ </el-table-column>
+ <!-- <el-table-column-->
+ <!-- label="鎿嶄綔"-->
+ <!-- fixed="right"-->
+ <!-- width="80"-->
+ <!-- >-->
+ <!-- <template slot-scope="{row}">-->
+ <!-- <div class="operationClass">-->
+ <!-- <el-tooltip class="item" effect="dark" content="涓嬭揪" placement="top">-->
+ <!-- <!– <el-button v-waves type="text" @click="edit('edit',row)">涓嬭揪</el-button>–>-->
+ <!-- <i-->
+ <!-- class="el-icon-bottom"-->
+ <!-- style="color:#42b983;cursor: pointer;margin-left: 5px"-->
+ <!-- @click="edit('edit',row)"-->
+ <!-- />-->
+ <!-- </el-tooltip>-->
+ <!-- </div>-->
+ <!-- </template>-->
+ <!-- </el-table-column>-->
+ </el-table>
+ </div>
+ <!--鍒嗛〉-->
+ <pagination
+ :total="sourceFormTotal"
+ :page.sync="sourceForm.page"
+ :limit.sync="sourceForm.rows"
+ align="right"
+ layout="total,prev, pager, next,sizes"
+ popper-class="select_bottom"
+ @pagination="getMesBadOrderSearch"
+ />
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleSourceBack">杩� 鍥�</el-button>
+ <el-button v-waves type="primary" @click="dialogVisibleSourceConfirm">纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ <!--鎵撳嵃棰勮瀵硅瘽妗� 澶ф爣绛�-->
+ <el-dialog
+ v-el-drag-dialog
+ title=""
+ :visible.sync="dialogVisibleApprove"
+ width="812px"
+ class="dialogVisibleConfirmClass"
+ append-to-body
+ :close-on-click-modal="false"
+ @close="dialogVisibleConfirmClose"
+ >
+ <!-- 瑕佹墦鍗扮殑鍖哄煙 -->
+ <div id="printMe" style="padding: 30px">
+ <div style="font-size: 26px; text-align: center">娴佺▼鍗�</div>
+
+ <div style="display: flex;justify-content: space-around;margin-top: 20px; position: relative;">
+ <div style="width: 78%">
+ <el-form
+ ref="formApprove"
+ :model="formApprove"
+ label-width="80px"
+ inline
+ style="display: flex;justify-content: space-between"
+ >
+ <div class="elForm">
+ <el-form-item label="宸ュ崟缂栧彿:" class="formContent">
+ {{ formApprove.mesordercode }}
+ </el-form-item>
+ <el-form-item label="婧愬崟鍗曞彿:" class="formContent">
+ {{ formApprove.m_po }}
+ </el-form-item>
+ <el-form-item label="浜у搧缂栫爜:" class="formContent">
+ {{ formApprove.partcode }}
+ </el-form-item>
+ <el-form-item label="浜у搧鍚嶇О:" class="formContent">
+ {{ formApprove.partname }}
+ </el-form-item>
+ <el-form-item label="浜у搧瑙勬牸:" class="formContent">
+ {{ formApprove.partspec }}
+ </el-form-item>
+ <el-form-item label="宸ュ崟鏁伴噺:" class="formContent">
+ {{ formApprove.plan_qty }}
+ </el-form-item>
+ <!-- <el-form-item label="宸ヨ壓璺嚎:" class="formContent">-->
+ <!-- {{ formApprove.routename }}-->
+ <!-- </el-form-item>-->
+ <el-form-item label="鎵撳嵃浜哄憳:" class="formContent">
+ <!-- {{ localStorage.getItem('username') }}-->
+ {{ formApprove.routename }}
+ </el-form-item>
+ <el-form-item label="鎵撳嵃鏃堕棿:" class="formContent">
+ {{ formApprove.lm_date }}
+ </el-form-item>
+ </div>
+ </el-form>
+ </div>
+ <div
+ id="qrCode"
+ style="width: 22%;height:90px;
+ margin-top: 20px;
+ overflow-y: scroll;display: flex;
+ justify-content: center;
+ position: relative;"
+ >
+ <div id="qrCode0" ref="qrCodeDiv0" />
+ </div>
+ <div style="background-color: #fff;width: 20px;height:120px; position: absolute;right: 0" />
+ <div
+ style="z-index: 10;background-color:transparent;width: 120px;height:120px; position: absolute;right: 21px"
+ />
+ </div>
+
+ <!-- <div style="width:100%;height: 30px;border-bottom: 1px solid #eee;margin-bottom: 20px" />-->
+ <el-table
+ id="table"
+ :data="tableDataPrint"
+ border
+ class="tableDataPrint"
+ :header-cell-style="{ background: '#c0c0c0',textAlign:'center',color:'#000',borderColor:'#000'}"
+ :cell-style="{textAlign: 'center',color:'#000',borderColor:'#000'}"
+ style="width: 100%;margin-top: 20px;text-align: center;border-color: #000"
+ >
+ <el-table-column
+ id="column0"
+ prop="seq"
+ label="宸ュ簭鍙�"
+ width="70"
+ align="center"
+ />
+ <el-table-column
+ id="column1"
+ prop="stepqrcode"
+ label="宸ュ簭浜岀淮鐮�"
+ width="100"
+ align="center"
+ >
+ <template slot-scope="{row}">
+ <div :id="'qrCode'+row.seq" :ref="'qrCodeDiv'+row.seq" class="tableColumn" />
+ </template>
+ </el-table-column>
+ <el-table-column
+ id="column2"
+ prop="stepname"
+ label="宸ュ簭"
+ width="120"
+ align="center"
+ />
+ <el-table-column
+ id="column3"
+ prop="plan_qty"
+ label="鍔犲伐鏁伴噺"
+ width="100"
+ align="center"
+ />
+ <el-table-column
+ id="column4"
+ prop="good_qty"
+ width="100"
+ align="center"
+ label="鍚堟牸鏁伴噺"
+ />
+ <el-table-column
+ id="column5"
+ width="100"
+ prop="ng_qty"
+ align="center"
+ label="涓嶈壇鏁伴噺"
+ />
+ <el-table-column
+ id="column6"
+ prop="desc"
+ align="center"
+ width="120"
+ label="澶囨敞"
+ />
+ </el-table>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisibleBackPreview">杩� 鍥�</el-button>
+ <!-- <el-button v-waves v-if="operation==='add'" type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>-->
+ <!-- <el-button v-waves type="primary" @click="dialogVisibleConfirm">纭� 瀹�/鎵� 鍗�</el-button>-->
+ <el-button v-waves v-print="printObj" type="primary">鎵� 鍗�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ <!--鎵撳嵃棰勮椤甸潰 灏忔爣绛�-->
+ <el-dialog
+ v-el-drag-dialog
+ title="棰勮"
+ :visible.sync="dialogVisible2"
+ width="1000"
+ top="10vh"
+ :close-on-click-modal="false"
+ @close="dialogVisible2Close"
+ >
+ <div style="height: 650px;overflow:auto;">
+ <!-- 涓嬫媺妗嗛�夋嫨鎵撳嵃灏哄-->
+ <div v-if="!isLastPrint" style="display: flex;align-items: center;margin: 0 0 20px 0">
+ <div>閫夋嫨鎵撳嵃灏哄锛�</div>
+ <el-select
+ v-model="printSize"
+ :popper-append-to-body="false"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ @change="printSizeChange"
+ >
+
+ <el-option
+ v-for="item in printSizeSelectArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </div>
+ <!-- 瑕佹墦鍗扮殑鍖哄煙 -->
+ <!-- <div id="printMe2" :style="{paddingLeft:'10px',paddingTop: '5px'}">-->
+ <div v-if="!isLastPrint" :style="printMe2StylePadding(printSize)">
+ <!-- 80 * 50-->
+ <div
+ v-if="printSize===0"
+ style="display: flex;width: 280px;height: 160px;border: 1px solid #000;text-align: center;font-size: 10px;"
+ >
+
+ <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000">
+ <div
+ style="display: flex;height: 96px;border-bottom:1px solid #000;
+ justify-content: center;align-items: center;position: relative"
+ >
+ <div
+ id="qrCode2"
+ ref="qrCodeDiv2"
+ style="overflow-y: hidden;height:60px;position: absolute;left: 14px;"
+ />
+ </div>
+ <div
+ style="display: flex;height: 32px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center"
+ >
+ <div style="margin-left: 5px;width: 28px">鏁伴噺:</div>
+ {{ qrForm.startqty }}
+ </div>
+ <div style="display: flex;height: 32px;justify-content: flex-start;align-items: center">
+ <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div>
+ {{ qrForm.operator }}
+ </div>
+ </div>
+
+ <div style="width:190px;display: flex;flex-direction: column">
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div>
+ <div>{{ qrForm.wo_code }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div>
+ <div>{{ qrForm.partcode }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div>
+ <div>{{ qrForm.partname }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">涓嬮亾宸ュ簭:</div>
+ <div>{{ qrForm.nextstepname }}</div>
+ </div>
+ <div style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left">
+ <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div>
+ <div>{{ qrForm.operatorTime }}</div>
+ </div>
+
+ </div>
+
+ </div>
+ <!-- 78 * 60 -->
+ <div
+ v-if="printSize===1"
+ style="display: flex;width: 280px;height: 160px;border: 1px solid #000;text-align: center;font-size: 10px;"
+ >
+
+ <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000">
+ <div
+ style="display: flex;height: 96px;border-bottom:1px solid #000;
+ justify-content: center;align-items: center;position: relative"
+ >
+ <div
+ id="qrCode2"
+ ref="qrCodeDiv2"
+ style="overflow-y: hidden;height:60px;position: absolute;left: 14px;"
+ />
+ </div>
+ <div
+ style="display: flex;height: 32px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center"
+ >
+ <div style="margin-left: 5px;width: 28px">鏁伴噺:</div>
+ {{ qrForm.startqty }}
+ </div>
+ <div style="display: flex;height: 32px;justify-content: flex-start;align-items: center">
+ <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div>
+ {{ qrForm.operator }}
+ </div>
+ </div>
+
+ <div style="width:190px;display: flex;flex-direction: column">
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div>
+ <div>{{ qrForm.wo_code }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div>
+ <div>{{ qrForm.partcode }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div>
+ <div>{{ qrForm.partname }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">涓嬮亾宸ュ簭:</div>
+ <div>{{ qrForm.nextstepname }}</div>
+ </div>
+ <div style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left">
+ <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div>
+ <div>{{ qrForm.operatorTime }}</div>
+ </div>
+
+ </div>
+
+ </div>
+ <!-- 60 * 40 -->
+ <div
+ v-if="printSize===2"
+ style="display: flex;width: 220px;height: 130px;border: 1px solid #000;text-align: center;font-size: 12px"
+ >
+
+ <div style="width: 70px;display: flex;flex-direction: column;border-right: 1px solid #000">
+ <div
+ style="display: flex;height: 60%;border-bottom:1px solid #000;
+ justify-content: center;align-items: center;position: relative"
+ >
+ <div
+ id="qrCode2"
+ ref="qrCodeDiv2"
+ style="overflow-y: hidden;height:71%;position: absolute;left: 7px;"
+ />
+ </div>
+ <div
+ style="display: flex;height: 20%;justify-content: flex-start;border-bottom:1px solid #000;align-items: center"
+ >
+ <div style="margin-left: 3px; ">鏁伴噺:{{ qrForm.startqty }}</div>
+ </div>
+ <div style="display: flex;height: 20%;justify-content: flex-start;align-items: center;">
+ <div style="margin-left: 3px; ">鎿嶄綔:{{ qrForm.operator }}</div>
+
+ </div>
+ </div>
+
+ <div style="width:150px;display: flex;flex-direction: column">
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="margin-left: 3px;">缂栧彿:{{ qrForm.wo_code }}</div>
+
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left"
+ >
+ <div style="margin-left: 3px;">浜у搧缂栫爜:{{ qrForm.partcode }}</div>
+
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="margin-left: 3px;">浜у搧鍚嶇О:{{ qrForm.partname }}</div>
+
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="margin-left: 3px;">涓嬮亾宸ュ簭:{{ qrForm.nextstepname }}</div>
+
+ </div>
+ <div style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left">
+ <div style=" margin-left: 3px;">鏃堕棿: {{ qrForm.operatorTime }}</div>
+ <!-- <div>{{ qrForm.operatorTime?qrForm.operatorTime.substring(5):'' }}</div>-->
+ <!-- <div>{{ qrForm.operatorTime }}</div>-->
+ </div>
+
+ </div>
+
+ </div>
+ <div
+ v-if="printSize===5"
+ style="display: flex;width: 140px;height: 80px;border: 1px solid #000;text-align: center;font-size: 10px;"
+ >
+
+ <div v-if="false" style="width: 45px;display: flex;flex-direction: column;border-right: 1px solid #000">
+ <div
+ style="display: flex;height: 60px;border-bottom:1px solid #000;
+ justify-content: center;align-items: center;position: relative"
+ >
+ <div
+ id="qrCode2"
+ ref="qrCodeDiv2"
+ style="overflow-y: hidden;height:60px;position: absolute;left: 14px;"
+ />
+ </div>
+ <div
+ style="display: flex;height: 20px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center"
+ >
+ <div style="margin-left: 5px;width: 28px">鏁伴噺:</div>
+ {{ qrForm.startqty }}
+ </div>
+ <div style="display: flex;height: 20px;justify-content: flex-start;align-items: center">
+ <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div>
+ {{ qrForm.operator }}
+ </div>
+ </div>
+
+ <div style="width:100%;display: flex;flex-direction: column;">
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: center;align-items: center;text-align: left"
+ >
+ <!-- <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div>-->
+ <div>{{ qrForm.wo_code }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: center;align-items: center ;text-align: left"
+ >
+ <!-- <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div>-->
+ <div>{{ qrForm.partcode }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: center;align-items: center;text-align: left"
+ >
+ <!-- <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div>-->
+ <div>{{ qrForm.partname }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: center;align-items: center;text-align: left"
+ >
+ <!-- <div style="width:60px;margin-left: 5px;">涓嬮亾宸ュ簭:</div>-->
+ <div>{{ qrForm.nextstepname }}</div>
+ </div>
+ <div style="display: flex;height: 20%;justify-content: center;align-items: center;text-align: left">
+ <!-- <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div>-->
+ <div>{{ qrForm.operatorTime }}</div>
+ </div>
+
+ </div>
+
+ </div>
+ </div>
+
+ <div v-if="isLastPrint" style="display: flex;flex-direction: column">
+
+ <div style="display: flex;font-weight: bold;font-size: 16px;margin-bottom: 20px;">
+ <div style="width: 48%;">
+ 璇烽�夋嫨鍏ュ簱鏉$爜
+ </div>
+ <div style="width: 48%;margin-left: 4%;">
+ 宸查�変腑鐨勫叆搴撴潯鐮�
+ </div>
+ </div>
+
+ <div style="display: flex;">
+ <!-- 璇烽�夋嫨鍏ュ簱鏉$爜-->
+ <div style="display: flex;flex-direction: column;height: 600px;overflow: auto;width: 48%;">
+ <div
+ v-for="(item,index) in lastPrintArr"
+ :key="item.inbarcode"
+ :style="{marginTop:index===0?'':'15px'}"
+ style="display: flex;align-items: center;"
+ >
+
+ <!-- v-if="printSize===0"-->
+ <div style="margin-right:40px">
+ <el-checkbox
+ :key="item.inbarcode"
+ v-model="item.checked"
+ @change="val=>inbarcodeChange(val,item)"
+ />
+ </div>
+ <div
+ style="display: flex;width: 280px;height: 160px;border: 1px solid #000;text-align: center;font-size: 10px;"
+ >
+
+ <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000">
+ <div
+ style="display: flex;height: 96px;border-bottom:1px solid #000;
+ justify-content: center;align-items: center;position: relative"
+ >
+ <div
+ id="qrCode2"
+ ref="qrCodeDiv2"
+ style="overflow-y: hidden;height:60px;position: absolute;left: 14px;"
+ />
+ </div>
+ <div
+ style="display: flex;height: 32px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center"
+ >
+ <div style="margin-left: 5px;width: 28px">鏁伴噺:</div>
+ {{ item.good_qty }}
+ </div>
+ <div style="display: flex;height: 32px;justify-content: flex-start;align-items: center">
+ <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div>
+ {{ item.username }}
+ </div>
+ </div>
+
+ <div style="width:190px;display: flex;flex-direction: column">
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div>
+ <div>{{ item.wo_code }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div>
+ <div>{{ item.partcode }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div>
+ <div>{{ item.partname }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">浜у搧瑙勬牸:</div>
+ <div>{{ item.partspec ? item.partspec : '/' }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div>
+ <div>{{ item.lm_date }}</div>
+ </div>
+
+ </div>
+
+ </div>
+
+ </div>
+ </div>
+
+ <!-- 宸查�変腑鐨勫叆搴撴潯鐮�-->
+ <div
+ style="display: flex;flex-direction: column;height: 600px;overflow: auto;width: 48%;margin-left: 50px;"
+ >
+ <div id="printMe2">
+ <div
+ v-for="(item,index) in lastPrintArrSelected"
+ v-if="item.checked"
+ :key="item.inbarcode"
+ :style="{marginTop:index===0?'':'15px'}"
+ style="display: flex;align-items: center;"
+ >
+ <div
+ style="display: flex;width: 280px;height: 160px;border: 1px solid #000;text-align: center;font-size: 10px;"
+ >
+
+ <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000">
+ <div
+ style="display: flex;height: 96px;border-bottom:1px solid #000;
+ justify-content: center;align-items: center;position: relative"
+ >
+ <div
+ id="qrCode3"
+ ref="qrCodeDiv3"
+ style="overflow-y: hidden;height:60px;position: absolute;left: 14px;"
+ />
+ </div>
+ <div
+ style="display: flex;height: 32px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center"
+ >
+ <div style="margin-left: 5px;width: 28px">鏁伴噺:</div>
+ {{ item.good_qty }}
+ </div>
+ <div style="display: flex;height: 32px;justify-content: flex-start;align-items: center">
+ <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div>
+ {{ item.username }}
+ </div>
+ </div>
+
+ <div style="width:190px;display: flex;flex-direction: column">
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div>
+ <div>{{ item.wo_code }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div>
+ <div>{{ item.partcode }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div>
+ <div>{{ item.partname }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width:60px;margin-left: 5px;">浜у搧瑙勬牸:</div>
+ <div>{{ item.partspec ? item.partspec : '/' }}</div>
+ </div>
+ <div
+ style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left"
+ >
+ <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div>
+ <div>{{ item.lm_date }}</div>
+ </div>
+
+ </div>
+
+ </div>
+
+ </div>
+ </div>
+
+ </div>
+
+ </div>
+
+ </div>
+
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="dialogVisible2 = false;">鍙� 娑�</el-button>
+ <el-button v-waves v-print="printObj2" type="primary">鎵� 鍗�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ <!-- 宸ヨ壓璺嚎瀵硅瘽妗�-->
+ <el-dialog
+ v-el-drag-dialog
+ :close-on-click-modal="false"
+ title="鍏宠仈宸ヨ壓璺嚎"
+ :visible.sync="dialogVisibleRoute"
+ width="800px"
+ top="10vh"
+ :fullscreen="isIpad"
+ class="dialogVisibleRoute"
+ @closed="handleCloseRoute"
+ @close="handleCloseRoute"
+ >
+ <div>
+ <i class="el-icon-s-comment" style="color:#42b983;" /> 浜у搧鍚嶇О锛歿{ dialogFormRoute.projectName }}
+ </div>
+ <el-divider />
+ <div style="margin-bottom: 10px">
+ <i class="el-icon-s-operation" style="color:#42b983;" /> 宸ヨ壓璺嚎闆嗗悎
+ </div>
+
+ <div class="myCheckboxGroup">
+ <div
+ v-for="item in dialogFormRoute.routeOperationArr"
+ :key="item.code"
+ :style="{border:item.isSelected1?'1px solid #42b983':'1px solid #eee'}"
+ class="myCheckbox"
+ @click="myCheckboxClick(item)"
+ >
+ <input
+ class="myCheckboxInput"
+ type="checkbox"
+ :value="item.code"
+ :name="item.name"
+ :style="{color:item.isSelected2?'#42b983':'#fff'}"
+ @click="myCheckboxInputClick(item)"
+ >{{ item.name }}
+ <!-- 鐖跺瓙鐐瑰嚮浜嬩欢涓嶅奖鍝�-->
+ <!-- onClick="event.cancelBubble = true"-->
+ </div>
+ </div>
+
+ <el-divider />
+ <div>
+ <i class="el-icon-s-operation" style="color:#42b983;" /> 榛樿宸ヨ壓璺嚎
+ </div>
+ <div style="margin-top: 20px">
+ <el-select
+ v-model="defaultroute_code"
+ filterable
+ style="width: 200px;"
+ placeholder="璇烽�夋嫨"
+ class="defaultroute_code"
+ >
+ <el-option
+ v-for="item in defaultroute_codeArr"
+ :key="item.code"
+ :label="item.name"
+ :value="item.code"
+ />
+ </el-select>
+ </div>
+ <el-divider />
+ <div style="margin-bottom: 10px">
+ <i class="el-icon-s-operation" style="color:#42b983;" /> 宸ュ簭鍒楄〃
+ </div>
+ <div style="overflow-y: scroll">
+ <el-table
+ ref="projectTableData"
+ :data="projectTableData"
+ border
+ height="280"
+ :row-class-name="tableRowClassName"
+ highlight-current-row
+ :header-cell-style="this.$headerCellStyle"
+ :cell-style="this.$cellStyle"
+ >
+ <el-table-column
+ prop="seq"
+ width="100"
+ label="宸ュ簭搴忓彿"
+ fixed
+ />
+ <el-table-column
+ prop="stepcode"
+ label="宸ュ簭缂栫爜"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="stepname"
+ label="宸ュ簭鍚嶇О"
+ show-tooltip-when-overflow
+ />
+ <el-table-column
+ prop="enable"
+ label="鍚敤鐘舵��"
+ fixed="right"
+ >
+ <template slot-scope="{row}">
+ <div v-if="row.enable==='Y'">
+ <svg-icon icon-class="circleYes" style="margin-right: 2px" />
+ 鏄�
+ </div>
+ <div v-if="row.enable==='N'">
+ <svg-icon icon-class="circleNo" style="margin-right: 2px" />
+ 鍚�
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <div class="footerButton">
+ <el-button v-waves @click="routeDialogVisibleCancel">鍙� 娑�</el-button>
+ <el-button v-waves type="primary" @click="routeDialogVisibleConfirm">纭� 瀹�</el-button>
+ </div>
+ </span>
+ </el-dialog>
+
+ </div>
+</template>
<script>
+import Pagination from '@/components/Pagination'
+import { handleDatetime, handleDatetime2, validateCode } from '@/utils/global'
+import { getCookie } from '@/utils/auth'
+import QRCode from 'qrcodejs2'
+import $ from 'jquery'
+import elDragDialog from '@/directive/el-drag-dialog'
+import waves from '@/directive/waves'
+import {
+ AddMesOrderCodeSearch,
+ AddUpdateMesOrder, DeleteMesOrder,
+ MesBadOrderSearch, MesOrderDistribution,
+ MesOrderSearch,
+ UpdateMesOrderStepSearch
+} from '@/api/WorkOrder'
+import { PartSelect } from '@/api/ProductModel'
+import { PrentOrganization, PrentOrganizationNoCompany, StepData } from '@/api/GeneralBasicData'
+import Sortable from 'sortablejs'
+import ElDragSelect from '@/components/DragSelect'
+import { MesOrderPrintSearch } from '@/api/GridReport' // base on element-ui
+
export default {
- name: 'WorkOrderSend'
+ name: 'WorkOrderList',
+ components: {
+ Pagination, ElDragSelect
+ },
+ directives: { elDragDialog, waves },
+ data() {
+ return {
+ mouseHoverType: 'mouseout',
+ mouseHoverTypeDialog: 'mouseout',
+ isExpandForm: false,
+ isIpad: false,
+ mainHeight: 0,
+ tableHeight: 0,
+ username: '',
+ form: {
+ wkshopcode: '',
+ mesorderstus: 'ALLO', // 宸ュ崟鐘舵�佺爜
+ mesordercode: '', // 宸ュ崟缂栧彿
+ partcode: '', // 浜у搧缂栫爜
+ ordertype: '', // ordertype
+ sourceorder: '', // 婧愬崟鍗曞彿
+ saleordercode: '', // 閿�鍞鍗�
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 浜у搧瑙勬牸
+ creatuser: '', // 鍒涘缓浜哄憳
+ createdate: '', // 鍒涘缓鏃堕棿
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ erporderstusArr: [
+ // { code: 'NEW', name: '鏂板伐鍗�' }
+ // { code: 'CREATING', name: '鎵ц涓�' },
+ // { code: 'CREATED', name: '宸插叧闂�' }
+ { code: 'ALLO', name: '宸叉淳鍙�' }
+ // { code: 'START', name: '寮�宸�' },
+ // { code: 'CLOSED', name: '瀹屽伐' }
+ // { code: 'NOSCHED', name: '寰呮帓绋�' },
+ // { code: 'SCHED', name: '宸叉帓绋�' }
+ ],
+ wkshopcodeArr: [],
+ total: 10,
+ tableData: [],
+ dialogVisible: false,
+ dialogForm: {
+ mesorderstus: 'NEW', // 宸ュ崟鐘舵�佺爜
+ mesordercode: '', // 宸ュ崟缂栧彿
+ ordertype: 'PO', // 宸ュ崟绫诲瀷
+ sourceorderid: '', // 婧愬崟id
+ sourceorder: '', // 婧愬崟鍗曞彿
+
+ partcode: '', // 浜у搧缂栫爜
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 浜у搧瑙勬牸
+
+ mesqty: '', // 宸ュ崟鏁伴噺
+ wkshopcode: '', // 鐢熶骇杞﹂棿缂栫爜
+ wkshopname: '', // 鐢熶骇杞﹂棿鍚嶇О
+
+ deliverydate: '', // 浜や粯鏃堕棿
+ data_sources: '', // 鏁版嵁鏉ユ簮
+
+ mesmaxqty: 0// 宸ュ崟鐨勬渶澶у��
+ },
+ ordertypeArr: [// 宸ュ崟绫诲瀷
+ { code: 'PO', name: '鏍囧噯宸ュ崟' },
+ { code: 'FO', name: '鎶ュ簾琛ュ崟' }
+ ],
+ partArr: [], // 浜у搧淇℃伅
+ wkshopArr: [], // 鐢熶骇杞﹂棿鏁扮粍
+ routeArr: [], // 宸ヨ壓璺嚎鏁扮粍
+ orderlevArr: [
+ { code: 1, name: '鐗圭骇' },
+ { code: 2, name: '绱ф��' },
+ { code: 3, name: '姝e父' }
+ ], // 宸ュ崟绛夌骇鏁扮粍
+ operation: '',
+ dialogFormRules: {
+ mesorderstus: [
+ { required: true, message: '璇烽�夋嫨璁㈠崟鐘舵��', trigger: ['blur', 'change'] }
+ ],
+ partcode: [
+ { required: true, message: '璇烽�夋嫨浜у搧淇℃伅', trigger: ['blur', 'change'] }
+ ],
+ mesordercode: [
+ { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ ],
+ mesqty: [
+ { required: true, message: '璇疯緭鍏ュ伐鍗曟暟閲�', trigger: ['blur', 'change'] }
+ ],
+ wkshopcode: [
+ { required: true, message: '璇烽�夋嫨鐢熶骇杞﹂棿', trigger: ['blur', 'change'] }
+ ],
+ deliverydate: [
+ { required: true, message: '璇烽�夋嫨棰勮浜や粯鏃ユ湡', trigger: ['blur', 'change'] }
+ ],
+ planstartdate: [
+ { required: true, message: '璇烽�夋嫨寮�濮嬫椂闂�', trigger: ['blur', 'change'] }
+ ],
+ planenddate: [
+ { required: true, message: '璇烽�夋嫨缁撴潫鏃堕棿', trigger: ['blur', 'change'] }
+ ],
+ orderlev: [
+ { required: true, message: '璇烽�夋嫨宸ュ崟绛夌骇', trigger: ['blur', 'change'] }
+ ],
+ isAps: [
+ { required: true, message: '璇烽�夋嫨鏄惁鎺掔▼', trigger: ['blur', 'change'] }
+ ],
+ bomId: [
+ { required: true, message: '璇烽�夋嫨鐗╂枡娓呭崟', trigger: ['blur', 'change'] }
+ ]
+
+ },
+ dialogVisibleTask: false,
+ taskTableData: [],
+
+ dialogVisibleSearch: false,
+ searchTableData: [],
+ dialogVisibleApprove: false,
+ tableDataPrint: [], // 鎵撳嵃椤甸潰鍐呭
+ printObj: {
+ id: 'printMe',
+ popTitle: '鎵撳嵃妯℃澘',
+ preview: false,
+ extraHead: '<meta http-equiv="Content-Language" content="zh-cn"/>',
+ closeCallback(vue) { // 鍏抽棴鎵撳嵃鐨勫洖璋冧簨浠讹紙鏃犳硶纭畾鐐瑰嚮鐨勬槸纭杩樻槸鍙栨秷锛�
+ console.log('11212', vue)
+ // vue.dialogVisible = false
+ vue.dialogVisibleApprove = false
+ },
+ beforeOpenCallback(vue) {
+ vue.printLoading = true
+ console.log('鎵撳紑涔嬪墠')
+ console.log()
+ },
+ openCallback(vue) {
+ vue.printLoading = false
+ console.log('鎵ц浜嗘墦鍗�')
+ }
+ },
+
+ formApprove: {
+ m_po: '', // 婧愬崟鍗曞彿
+ mesordercode: '',
+ partcode: '',
+ partname: '',
+ partspec: '',
+ plan_qty: '',
+ routename: '',
+ lm_date: ''
+ },
+ number: '',
+ dialogVisible2: false,
+ printObj2: {
+ id: 'printMe2',
+ popTitle: '鎵撳嵃妯℃澘',
+ preview: false,
+ extraHead: '<meta http-equiv="Content-Language" content="zh-cn"/>',
+ closeCallback(vue) { // 鍏抽棴鎵撳嵃鐨勫洖璋冧簨浠讹紙鏃犳硶纭畾鐐瑰嚮鐨勬槸纭杩樻槸鍙栨秷锛�
+ console.log('11212', vue)
+ // vue.dialogVisible = false
+ // vue.dialogVisible2 = false
+ // vue.dialogVisible = false
+ },
+ beforeOpenCallback(vue) {
+ vue.printLoading = true
+ console.log('鎵撳紑涔嬪墠')
+ console.log()
+ },
+ openCallback(vue) {
+ vue.printLoading = false
+ console.log('鎵ц浜嗘墦鍗�')
+ }
+ },
+ qrForm: {
+ qrvalue: '',
+ startqty: '',
+ wo_code: '',
+ partcode: '',
+ partname: '',
+ nextstepname: '',
+ operator: '', // 鎿嶄綔浜�
+ operatorTime: ''// 鎿嶄綔鏃堕棿
+ },
+ dialogVisibleSource: false,
+ sourceTableData: [],
+ sourceForm: {
+ mesordercode: '', // 宸ュ崟缂栧彿
+ sourceorder: '', // 璁㈠崟缂栧彿
+ saleordercode: '', // 閿�鍞鍗曞彿
+ partcode: '', // 浜у搧缂栫爜
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 浜у搧瑙勬牸
+ creatuser: '', // 鍒涘缓浜哄憳
+ // paystartdate: '', // 浜や粯鏃堕棿
+ // paystartdate: '', // 棰勮寮�宸ユ椂闂�
+ // payenddate: '', // 棰勮瀹屽伐鏃堕棿
+ createdate: '', // 鍒涘缓鏃堕棿
+
+ prop: 'lm_date', // 鎺掑簭瀛楁
+ order: 'desc', // 鎺掑簭瀛楁
+ page: 1, // 绗嚑椤�
+ rows: 20 // 姣忛〉澶氬皯鏉�
+ },
+ sourceFormTotal: 10,
+ radioSelectedId: '',
+ isExpandDialog: false, // 瀵硅瘽妗嗚〃鍗曟槸鍚﹀睍寮�锛岄粯璁や笉灞曞紑
+ dialogVisibleRoute: false,
+ dialogFormRoute: {
+ projectName: '', // 浜у搧鍚嶇О
+ projectCode: '', // 浜у搧浠g爜
+ routeOperationArr: [] // 宸ヨ壓璺嚎闆嗗悎
+ },
+ defaultroute_code: '', // 榛樿宸ヨ壓璺嚎閫変腑鍊�
+ defaultroute_codeArr: '', // 榛樿宸ヨ壓璺嚎鏁扮粍
+ projectTableData: [], // 璁惧鍒楄〃
+ tableDataDetail: [], // 鐐瑰嚮宸ュ崟琛ㄧ殑琛� 鏄剧ず璇︾粏淇℃伅
+ printSize: 0,
+ printSizeSelectArr: [// 瀹�*楂�
+ { code: 0, name: '80*50' },
+ { code: 1, name: '78*60' },
+ { code: 2, name: '60*40' }
+ // { code: 2, name: '50*60' },
+ // { code: 3, name: '50*40' },
+ // { code: 4, name: '50*80' },
+ // { code: 5, name: '40*30' }
+ ],
+ pickerOptions: {
+ disabledDate(time) {
+ return time.getTime() < Date.now() - 8.64e7
+ }
+ },
+
+ isLastPrint: false, // 鏄惁鏄湯閬撴墦鍗�
+ lastPrintArr: [], // 鏈亾鎵撳嵃鐨勬暟缁�(鎵�鏈�)
+ lastPrintArrSelected: [], // 鏈亾鎵撳嵃鐨勬暟缁�(閫変腑)
+
+ switchButton: false,
+
+ routeStepArr: '',
+
+ stepTableData: [],
+ sortable: null,
+ stepSelectArr: [], // 宸ュ簭涓嬫媺鏁版嵁
+ stepSelectedValue: [], // 涓嬫媺閫変腑鍊�
+
+ multipleSelection: []
+ }
+ },
+ watch: {
+ 'stepSelectedValue': {
+ // deep: true,
+ handler: function(val) {
+ // do something with the new and old value of stepSelectedValue
+ console.log(val, 1)
+ const arr = JSON.parse(JSON.stringify(this.stepTableData))
+ const arrStepcode = arr.map(i => i.stepcode)
+ this.stepTableData = []
+ val.forEach(i => {
+ this.stepTableData.push(
+ {
+ stepcode: i,
+ stepname: this.stepSelectArr.find(j => j.stepcode === i).stepname,
+ stepprice: arrStepcode.includes(i) ? arr.find(j => j.stepcode === i).stepprice : 0
+ }
+ )
+ })
+ }
+ }
+ },
+ created() {
+ this.handleRequest()
+ },
+ mounted() {
+ window.addEventListener('resize', this.getHeight)
+ this.getHeight()
+
+ // this.$nextTick(() => {
+ // this.setSort()
+ // })
+ },
+ methods: {
+ setSort() {
+ const el = this.$refs.stepTableDataRef.$el.querySelectorAll('.el-table__body-wrapper > table > tbody')[0]
+ this.sortable = Sortable.create(el, {
+ ghostClass: 'sortable-ghost', // Class name for the drop placeholder,
+ setData: function(dataTransfer) {
+ // to avoid Firefox bug
+ // Detail see : https://github.com/RubaXa/Sortable/issues/1012
+ dataTransfer.setData('Text', '')
+ },
+ onEnd: evt => {
+ const targetRow = this.stepTableData.splice(evt.oldIndex, 1)[0]
+ this.stepTableData.splice(evt.newIndex, 0, targetRow)
+
+ this.stepSelectedValue = this.stepTableData.map(i => i.stepcode)
+ // for show the changes, you can delete in you code
+ // const tempIndex = this.newList.splice(evt.oldIndex, 1)[0]
+ // this.newList.splice(evt.newIndex, 0, tempIndex)
+ }
+ })
+ },
+ tableRowClassName({ row, rowIndex }) {
+ return 'custom-row'
+ },
+ handleRequest() {
+ this.getMesOrderSearch().then(res => {
+ if (res.code === '200') {
+ this.getSelect()
+ this.getPrentOrganizationNoCompany()
+ }
+ })
+ },
+ async getPrentOrganizationNoCompany() {
+ const { data: res } = await PrentOrganizationNoCompany()
+ this.wkshopcodeArr = res
+ },
+ async getMesOrderSearch() {
+ // let tempDate = this.form.createdate
+ // if (tempDate.length > 0) {
+ // tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ // }
+
+ const data = {
+ wkshopcode: this.form.wkshopcode, //
+ mesorderstus: this.form.mesorderstus, // 宸ュ崟鐘舵�佺爜
+ mesordercode: this.form.mesordercode, // 宸ュ崟缂栧彿
+ partcode: this.form.partcode, // 浜у搧缂栫爜
+ partname: this.form.partname, // 浜у搧鍚嶇О
+ partspec: this.form.partspec, // 浜у搧瑙勬牸
+ creatuser: this.form.creatuser, // 鍒涘缓浜哄憳
+ sourceorder: this.form.sourceorder, // 婧愬崟鍗曞彿
+ saleordercode: this.form.saleordercode, // 閿�鍞鍗�
+ ordertype: this.form.ordertype, // 鍗曟嵁绫诲瀷
+ createdate: this.form.createdate.toString().length > 0 ? handleDatetime(this.form.createdate) : '', // 鍒涘缓鏃堕棿
+ prop: this.form.prop, // 鎺掑簭瀛楁
+ order: this.form.order, // 鎺掑簭瀛楁
+ page: this.form.page, // 绗嚑椤�
+ rows: this.form.rows // 姣忛〉澶氬皯鏉�
+ }
+ const res = await MesOrderSearch(data)
+ this.tableData = res.data
+ this.total = res.count
+
+ // this.form.createdate = tempDate
+ return { code: res.code }
+ },
+ async getSelect() {
+ // 鑾峰彇浜у搧淇℃伅
+ const { data: res1 } = await PartSelect()
+ this.partArr = res1
+
+ // 鑾峰彇缁勭粐
+ const { data: res2 } = await PrentOrganization()
+ this.wkshopArr = res2
+
+ // 鑾峰彇宸ュ簭
+ const { data: res3 } = await StepData()
+ this.stepSelectArr = res3
+ },
+ // 璁㈠崟鐘舵�佹敼鍙樻椂
+ erporderstusChange(val) {
+ this.form.mesorderstus = val
+ },
+ // 鎺掑簭鏀瑰彉鏃�
+ sortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.form.order = order
+ this.form.prop = prop
+ this.getMesOrderSearch()
+ },
+ sourceSortChange({ column, prop, order }) {
+ if (order === 'descending') {
+ order = 'desc'
+ } else if (order === 'ascending') {
+ order = 'asc'
+ } else {
+ order = 'desc'
+ }
+ this.sourceForm.order = order
+ this.sourceForm.prop = prop
+ this.getMesBadOrderSearch()
+ },
+ // 鏌ヨ
+ search() {
+ this.getMesOrderSearch()
+ },
+
+ // 閲嶇疆
+ reset(val) {
+ this.form.wkshopcode = ''
+ this.form.mesorderstus = 'ALLO'
+ this.form.mesordercode = ''
+ this.form.partcode = ''
+ this.form.partname = ''
+ this.form.partspec = ''
+ this.form.paydate = ''
+ this.form.creatuser = ''
+ this.form.sourceorder = ''
+ this.form.ordertype = ''
+ this.form.createdate = ''
+ this.getMesOrderSearch()
+ },
+ // 鏂板鎸夐挳
+ async add(operation) {
+ const { data: res } = await AddMesOrderCodeSearch()
+ this.dialogForm.mesordercode = res
+ this.operation = operation
+ this.dialogVisible = true
+ this.dialogForm.data_sources = 'MES'
+
+ this.$nextTick(() => {
+ this.setSort()
+ })
+ },
+ // 宸ュ簭浠诲姟
+ async check(row) {
+ // const { data: res } = await SearchWorkStep({ wo_code: row.wo_code })
+ // this.taskTableData = res
+ //
+ // if (this.taskTableData.length === 0) {
+ // return this.$message.info('鏃犵敓浜т换鍔℃暟鎹紒')
+ // }
+ // this.dialogForm.mesordercode = res[0].wo_code
+ // this.dialogVisibleTask = true
+ },
+ dialogVisibleBack() {
+ this.dialogVisibleTask = false
+ },
+ handleSelectionChange(val) {
+ this.multipleSelection = val.map(i => i.wo_code)
+ },
+
+ selected(row, index) {
+ return row.status === 'NEW' && row.isstep === 'Y'
+ },
+ // 娲惧彂
+ send() {
+ this.$confirm('鏄惁纭娲惧彂?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ MesOrderDistribution(this.multipleSelection).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('娲惧彂鎴愬姛!')
+ if (this.form.page > 1 && this.tableData.length === 1) {
+ this.form.page--
+ }
+ this.getMesOrderSearch()
+ }
+ })
+ }).catch(() => {
+ this.$notify.info('宸插彇娑堟淳鍙�')
+ })
+ },
+ // 鍒犻櫎鎸夐挳
+ async del(row) {
+ if (row.status === 'START' || row.status === 'CLOSED' || row.status === 'SCHED') {
+ return this.$message.info('姝ゅ伐鍗曚笉鍙垹闄わ紒')
+ }
+ this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ const data = {
+ souceid: row.sourceid ? row.sourceid : '',
+ wocode: row.wo_code,
+ m_po: row.m_po,
+ orderqty: row.plan_qty
+ }
+ DeleteMesOrder(data).then(res => {
+ if (res.code === '200') {
+ this.$notify.success('鍒犻櫎鎴愬姛!')
+ if (this.form.page > 1 && this.tableData.length === 1) {
+ this.form.page--
+ }
+ this.getMesOrderSearch()
+ }
+ })
+ }).catch(() => {
+ this.$notify.info('宸插彇娑堝垹闄�')
+ })
+ },
+
+ // 淇敼鎸夐挳
+ async edit(operation, row) {
+ this.operation = operation
+
+ this.dialogForm.data_sources = row.data_sources
+ this.dialogForm.mesorderstus = row.status
+ this.dialogForm.mesordercode = row.wo_code
+ this.dialogForm.ordertype = row.wotype
+ this.dialogForm.sourceorderid = row.sourceid
+ this.dialogForm.sourceorder = row.m_po
+ this.dialogForm.partcode = row.partcode
+ this.dialogForm.partname = row.partname
+ this.dialogForm.partspec = row.partspec
+ this.dialogForm.wkshopcode = row.wkshp_code
+ this.dialogForm.deliverydate = row.saleOrderDeliveryDate.substring(0, 11)
+ this.dialogForm.mesqty = row.plan_qty
+
+ const data = {
+ sourceid: this.dialogForm.sourceorderid,
+ sourcewo: this.dialogForm.sourceorder,
+ wocode: this.dialogForm.mesordercode,
+ data_sources: this.dialogForm.data_sources
+ }
+ const { data: res } = await UpdateMesOrderStepSearch(data)
+ this.dialogForm.mesmaxqty = res.canupdate_qty
+ this.stepTableData = res.stepdata
+ // res.stepdata.forEach(i => {
+ // this.stepTableData.push(
+ // {
+ // stepcode: i.step_code,
+ // stepname: i.stepname,
+ // stepprice: i.stepprice
+ // }
+ // )
+ // })
+ // this.stepSelectedValue = this.stepTableData.map(i => i.stepcode)
+
+ this.dialogVisible = true
+ },
+ // 宸ュ崟鍏抽棴浜嬩欢
+ orderClose() {
+ console.log('宸ュ崟鍏抽棴浜嬩欢')
+ },
+ // 瀵硅瘽妗嗕骇鍝佷俊鎭�兼敼鍙�
+ partcodeChangeDialog(val) {
+ console.log(val)
+ this.dialogForm.partname = this.partArr.find(item => item.partcode === val).partname
+ this.dialogForm.partcode = this.partArr.find(item => item.partcode === val).partcode
+ this.dialogForm.partspec = this.partArr.find(item => item.partcode === val).partspec
+ },
+ // 瀵硅瘽妗嗗叧闂簨浠�
+ handleClose() {
+ this.dialogForm = {
+ mesorderstus: 'NEW', // 宸ュ崟鐘舵�佺爜
+ mesordercode: '', // 宸ュ崟缂栧彿
+ ordertype: 'PO', // 宸ュ崟绫诲瀷
+ sourceorderid: '', // 婧愬崟id
+ sourceorder: '', // 婧愬崟鍗曞彿
+
+ partcode: '', // 浜у搧缂栫爜
+ partname: '', // 浜у搧鍚嶇О
+ partspec: '', // 浜у搧瑙勬牸
+
+ mesqty: '', // 宸ュ崟鏁伴噺
+ wkshopcode: '', // 鐢熶骇杞﹂棿缂栫爜
+ wkshopname: '', // 鐢熶骇杞﹂棿鍚嶇О
+
+ deliverydate: '', // 浜や粯鏃堕棿
+ data_sources: '' // 鏁版嵁鏉ユ簮
+ }
+ this.stepSelectedValue = []
+ this.stepTableData = []
+ this.$refs.dialogForm.clearValidate()
+ },
+ // 瀵硅瘽妗嗗彇娑�
+ dialogVisibleCancel() {
+ this.dialogVisible = false
+ },
+ // 瀵硅瘽妗嗙‘璁�
+ dialogVisibleConfirm() {
+ this.$refs.dialogForm.validate(valid => {
+ if (valid) {
+ if (this.dialogForm.ordertype === 'FO' && this.dialogForm.sourceorder.toString().trim().length <= 0) {
+ return this.$message.info('婧愬崟鍗曞彿涓嶈兘涓虹┖锛�')
+ }
+
+ if (this.dialogForm.data_sources === 'ERP' && this.dialogForm.mesmaxqty < this.dialogForm.mesqty) {
+ return this.$message.info('姝ゅ伐鍗曠殑鏈�澶т慨鏀规暟鍊间负锛�' + this.dialogForm.mesmaxqty)
+ }
+
+ const workListSub = []
+ this.stepTableData.forEach((i, j) => {
+ workListSub.push(
+ {
+ stepseq: j + 1,
+ stepcode: i.stepcode,
+ stepprice: i.stepprice,
+ isbott: j === 0 ? 'Y' : 'N',
+ isend: j === this.stepTableData.length - 1 ? 'Y' : 'N'
+ }
+ )
+ })
+
+ const data = {
+ wostatus: this.dialogForm.mesorderstus, // 宸ュ崟鐘舵��
+ wocode: this.dialogForm.mesordercode, // 宸ュ崟鍙�
+ wotype: this.dialogForm.ordertype, // 宸ュ崟绫诲瀷
+ sourceid: this.dialogForm.sourceorderid, // 婧愬崟id
+ sourcewo: this.dialogForm.sourceorder, // 婧愬崟鍗曞彿
+ partcode: this.dialogForm.partcode, // 浜у搧缂栧彿
+ wkshopcode: this.dialogForm.wkshopcode,
+ woqty: this.dialogForm.mesqty, // 宸ュ崟鏁伴噺
+ deliverydate: this.dialogForm.deliverydate, // 浜や粯鏃堕棿
+ data_sources: this.dialogForm.data_sources, // 鏁版嵁鏉ユ簮
+ isstep: workListSub.length > 0 ? 'Y' : 'N', //
+ workListSub
+ }
+
+ this.$store.state.app.buttonIsDisabled = true
+ AddUpdateMesOrder(data, this.operation === 'add' ? 'Add' : 'Update').then(res => {
+ if (res.code === '200') {
+ this.dialogVisible = false
+ // this.handlePrint()
+ this.$message.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '娲惧彂鎴愬姛锛�')
+ this.getMesOrderSearch()
+ this.$store.state.app.buttonIsDisabled = false
+ } else {
+ this.$message.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '娲惧彂澶辫触锛�')
+ }
+ })
+ }
+ })
+ },
+ // 娲惧彂鎵撳嵃
+ async sendPrint() {
+ const data = {
+ username: getCookie('admin'),
+ // username: getCookie('username'),
+ mesordercode: this.dialogForm.mesordercode
+ }
+ const res = await MesOrderPrintSearch1(data)
+ // const res = await PrintOrder(data)
+ if (res.code === '200') {
+ // 鍙傛暟鍏蜂綋璇存槑璇峰弬鑰冨府鍔╂枃妗d腑鐨勨�淲EB鎶ヨ〃(B/S鎶ヨ〃)->WEB鎶ヨ〃瀹㈡埛绔�->鍚姩鍙傛暟璇存槑鈥濋儴鍒�
+ var args = {
+ type: 'print', // preview print
+ showOptionDlg: false, // 濡傛灉涓嶆樉绀烘墦鍗板璇濇鑰岀洿鎺ユ墦鍗帮紝灏嗘琛屾敞閲婂幓鎺夊嵆鍙�
+ report: urlAddRandomNo('./static/grf/浜у搧娴佷紶鍗旳4.grf'),
+ data: res.data
+ }
+ webapp_ws_ajax_run(args)
+ }
+ },
+
+ // 鑾峰彇椤甸潰楂樺害
+ getHeight() {
+ this.$nextTick(() => {
+ this.mainHeight = window.innerHeight - 85
+ this.tableHeight = this.mainHeight - 245
+ if (window.innerHeight < 769) {
+ this.tableHeight = this.tableHeight - 20
+ }
+ this.isIpad = window.innerHeight < 769 && window.innerWidth < 1367
+ this.$refs.tableDataRef.doLayout()
+ })
+ },
+ // 宸ヨ壓璺嚎鏀惧ぇ闀滅偣鍑�
+ async searchClick() {
+ if (this.dialogForm.routecode === '') {
+ return this.$message.info('璇峰厛閫夋嫨宸ヨ壓璺嚎锛�')
+ }
+ this.dialogVisibleSearch = true
+ const { data: res } = await SelectRouteStep({ routecode: this.dialogForm.routecode })
+ this.searchTableData = res
+ },
+ dialogVisibleSearchBack() {
+ this.dialogVisibleSearch = false
+ },
+ // 澶勭悊鎵撳嵃
+ handlePrint(wo_code) {
+ // const number = Math.random() * Math.random()
+ // this.number = number === 0 ? (10 + Math.random()) : number
+ // console.log(number)
+
+ const data2 = {
+ mesordercode: wo_code || this.dialogForm.mesordercode
+ }
+ MesOrderPrintSearch(data2).then(res2 => {
+ if (res2.code === '200') {
+ const res3 = res2.data.recordset
+
+ this.tableDataPrint = res3
+ this.formApprove.mesordercode = res3[0].wo_code
+ this.formApprove.m_po = res3[0].m_po || '/'
+ this.formApprove.partcode = res3[0].partcode
+ this.formApprove.partname = res3[0].partname
+ this.formApprove.partspec = res3[0].partspec || '/'
+ this.formApprove.plan_qty = res3[0].plan_qty
+ this.formApprove.routename = localStorage.getItem('username') // 鎵撳嵃浜哄憳
+ this.formApprove.lm_date = res3[0].lm_date
+
+ this.$nextTick(() => {
+ res3.forEach(i => {
+ this.bindQRCode(i.seq, i.stepqrcode, 'small')
+ })
+ this.bindQRCode('0', this.formApprove.mesordercode, 'big')
+
+ const div = document.getElementById('qrCode')
+ // 杩欎箞澶氫唬鐮佸彧闇�瑕佽繖涓�鍙ュ疄鐜版垜浠墍闇�瑕佺殑鍔熻兘锛屽畾浣峝iv婊氬姩鏉′綅缃湪搴曢儴锛宻crollHeight璁$畻鍑篸iv鐨勯珮搴︼紝鍐峴crollTop 璁剧疆婊氬姩鏉$殑楂樺害涓哄灏�
+ div.scrollTop = div.scrollHeight // 婊氬姩鏉′綅浜庢渶搴曢儴
+ // div.scrollTop = 0 // 婊氬姩鏉′綅浜庢渶椤堕儴
+ })
+ this.dialogVisibleApprove = true
+ }
+ })
+ },
+ dialogVisibleTaskClose() {
+ this.dialogForm.mesordercode = ''
+ },
+ /*
+ * 鎵嬪姩鐐瑰嚮鎵撳嵃
+ * */
+ // 杩斿洖鎸夐挳
+ dialogVisibleBackPreview() {
+ this.dialogVisibleApprove = false
+ },
+ // dialogVisibleConfirmPreview(param) {
+ // this.$refs.dialogForm.validate(valid => {
+ // if (valid) {
+ // const data = {
+ // username: getCookie('admin'),
+ // mesordercode: this.dialogForm.mesordercode
+ // }
+ // MesOrderPrintSearch1(data).then(res => {
+ // if (res.code === '200') {
+ // this.dialogVisibleApprove = true
+ // console.log(res, 11)
+ // }
+ // })
+ // }
+ // })
+ // },
+ // 鐢熸垚浜岀淮鐮� 宸ュ崟鎶ヨ〃浜岀淮鐮�
+ bindQRCode(seq, text, size) {
+ if (size === 'big') {
+ console.log(text, 1)
+ new QRCode(this.$refs.qrCodeDiv0, {
+ text: text,
+ width: size === 'big' ? 90 : 60,
+ height: size === 'big' ? 90 : 60,
+ // colorDark: '#333333', // 浜岀淮鐮侀鑹�
+ colorDark: '#000', // 浜岀淮鐮侀鑹�
+ colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊
+ correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H
+ })
+ } else {
+ new QRCode(this.$refs['qrCodeDiv' + seq], {
+ text: text,
+ width: size === 'big' ? 90 : 60,
+ height: size === 'big' ? 90 : 60,
+ // colorDark: '#333333', // 浜岀淮鐮侀鑹�
+ colorDark: '#000', // 浜岀淮鐮侀鑹�
+ colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊
+ correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H
+ })
+ }
+ },
+
+ dialogVisibleConfirmClose() {
+ // this.dialogForm.mesordercode = ''
+ this.formApprove.mesordercode = ''
+ this.formApprove.m_po = ''
+ this.formApprove.partcode = ''
+ this.formApprove.partname = ''
+ this.formApprove.partspec = ''
+ this.formApprove.plan_qty = ''
+ this.formApprove.routename = ''
+ this.formApprove.lm_date = ''
+
+ // this.$refs.qrCodeDiv0.title = ''
+
+ this.tableDataPrint = []
+ },
+ // 琛ユ墦鎸夐挳
+ supplementClick() {
+ this.dialogVisibleTask = false
+ this.handlePrint()
+ },
+ // 琛ユ墦灏忔爣绛�
+ supplementSmallClick(row) {
+ // let obj = {}
+ console.log(row, 21)
+ // this.taskTableData.forEach((item, index) => {
+ this.tableDataDetail.forEach((item, index) => {
+ if (item.seq === row.seq) {
+ console.log(item)
+ this.qrForm = {
+ // qrvalue: item.seq === this.taskTableData.length ? item.wo_code + ';' + item.stepcode : item.wo_code + ';' + this.taskTableData[item.seq].stepcode,
+ qrvalue: item.seq === this.tableDataDetail.length ? item.wo_code + ';' + item.stepcode : item.wo_code + ';' + this.tableDataDetail[item.seq].stepcode,
+ // startqty: item.seq === this.taskTableData.length ? item.plan_qty : this.taskTableData[item.seq].plan_qty,
+ startqty: item.seq === this.tableDataDetail.length ? item.plan_qty : this.tableDataDetail[item.seq].plan_qty,
+ wo_code: item.wo_code,
+ partcode: item.partcode,
+ partname: item.partname,
+ // nextstepname: item.seq === this.taskTableData.length ? item.stepname : this.taskTableData[item.seq].stepname,
+ nextstepname: item.seq === this.tableDataDetail.length ? item.stepname : this.tableDataDetail[item.seq].stepname,
+ operator: getCookie('username'),
+ operatorTime: handleDatetime2(new Date())
+ }
+ this.$nextTick(() => {
+ console.log(this.qrForm.qrvalue, 3333)
+ this.bindQRCode2(this.qrForm.qrvalue)
+
+ const div = document.getElementById('qrCode2')
+ // 杩欎箞澶氫唬鐮佸彧闇�瑕佽繖涓�鍙ュ疄鐜版垜浠墍闇�瑕佺殑鍔熻兘锛屽畾浣峝iv婊氬姩鏉′綅缃湪搴曢儴锛宻crollHeight璁$畻鍑篸iv鐨勯珮搴︼紝鍐峴crollTop 璁剧疆婊氬姩鏉$殑楂樺害涓哄灏�
+ div.scrollTop = div.scrollHeight // 婊氬姩鏉′綅浜庢渶搴曢儴
+ // div.scrollTop = 0 // 婊氬姩鏉′綅浜庢渶椤堕儴
+ })
+ }
+ })
+
+ // this.dialogVisibleTask = false
+ this.dialogVisible2 = true
+ console.log(this.qrForm, 1111)
+ },
+ // 琛ユ墦鐢熶骇鍏ュ簱鏉$爜
+ async getProductInHouseLabCode(ordercode) {
+ const res = await ProductInHouseLabCode({ ordercode })
+ console.log(res)
+ this.isLastPrint = true
+
+ this.lastPrintArr = res.data
+
+ this.dialogVisible2 = true
+
+ // 鐢熶骇浜岀淮鐮�
+ this.$nextTick(() => {
+ this.lastPrintArr.forEach((i, index) => {
+ i.checked = false
+ new QRCode(this.$refs.qrCodeDiv2[index], {
+ text: i.inbarcode,
+ width: this.printSize !== 2 ? 60 : 55,
+ height: this.printSize !== 2 ? 60 : 55,
+ colorDark: '#000', // 浜岀淮鐮侀鑹�
+ colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊
+ correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H
+ })
+ })
+ })
+ },
+ dialogVisible2Close() {
+ this.qrForm.qrvalue = ''
+ this.qrForm.startqty = ''
+ this.qrForm.wo_code = ''
+ this.qrForm.partcode = ''
+ this.qrForm.partname = ''
+ this.qrForm.nextstepname = ''
+ this.qrForm.operator = ''
+ this.qrForm.operatorTime = ''
+ // this.$refs.qrCodeDiv2 = ''
+ this.isLastPrint = false
+ this.lastPrintArr = []
+ this.lastPrintArrSelected = []
+ },
+ // 鐢熸垚浜岀淮鐮� 宸ュ簭鏍囩浜岀淮鐮�
+ bindQRCode2(text) {
+ new QRCode(this.$refs.qrCodeDiv2, {
+ text: text,
+ width: this.printSize !== 2 ? 60 : 55,
+ height: this.printSize !== 2 ? 60 : 55,
+ colorDark: '#000', // 浜岀淮鐮侀鑹�
+ colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊
+ correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H
+ })
+ },
+ // 鎶ュ簾琛ュ崟鎯呭喌涓嬪彲鐐瑰嚮閫夋嫨
+ mesordertsourcesearchclick() {
+ if (this.dialogForm.ordertype === 'PO') {
+ return this.$message.info('宸ュ崟绫诲瀷涓烘姤搴熻ˉ鍗曟儏鍐典笅鍙�夋嫨锛�')
+ }
+
+ this.getMesBadOrderSearch()
+
+ this.dialogVisibleSource = true
+ },
+ async getMesBadOrderSearch() {
+ // let tempDate2 = this.sourceForm.paystartdate
+ // if (tempDate2.length > 0) {
+ // tempDate2 = handleDatetime(tempDate2[0]) + '~' + handleDatetime(tempDate2[1])
+ // }
+
+ let tempDate = this.sourceForm.createdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+
+ const data = {
+ mesordercode: this.sourceForm.mesordercode, // 宸ュ崟缂栧彿
+ sourceorder: this.sourceForm.sourceorder, // 璁㈠崟璁㈠崟鍙�
+ saleordercode: this.sourceForm.sourceorder, // 璁㈠崟璁㈠崟鍙�
+ partcode: this.sourceForm.partcode, // 浜у搧缂栫爜
+ partname: this.sourceForm.partname, // 浜у搧鍚嶇О
+ partspec: this.sourceForm.partspec, // 浜у搧瑙勬牸
+ // paystartdate: tempDate2, // 浜や粯鏃堕棿
+ // payenddate: tempDate, // 浜や粯鏃堕棿
+ creatuser: this.sourceForm.creatuser, // 鍒涘缓浜哄憳
+ createdate: tempDate, // 鍒涘缓鏃堕棿
+
+ prop: this.sourceForm.prop, // 鎺掑簭瀛楁
+ order: this.sourceForm.order, // 鎺掑簭瀛楁
+ page: this.sourceForm.page, // 绗嚑椤�
+ rows: this.sourceForm.rows // 姣忛〉澶氬皯鏉�
+
+ }
+
+ const res = await MesBadOrderSearch(data)
+ this.sourceTableData = res.data
+ this.sourceFormTotal = res.count
+ },
+ // 鍗曢�夋閫変腑鑾峰彇褰撳墠琛屼俊鎭�
+ // getCurrentRowSource2(id) {
+ // this.radioSelectedId = id
+ // },
+ // 鍗曢�夋閫変腑鑾峰彇褰撳墠琛屼俊鎭�
+ getCurrentRowSource(row, event, column) {
+ this.radioSelectedId = row.id
+ this.dialogForm.mesqty = row.bad_qty
+ },
+ sourceSearch() {
+ this.getMesBadOrderSearch()
+ },
+ sourceReset() {
+ this.sourceForm.mesordercode = ''
+ this.sourceForm.sourceorder = ''
+ this.sourceForm.partcode = ''
+ this.sourceForm.partname = ''
+ this.sourceForm.partspec = ''
+ // this.sourceForm.paystartdate = ''
+ // this.sourceForm.payenddate = ''
+ this.sourceForm.creatuser = ''
+ this.sourceForm.createdate = ''
+ this.getMesBadOrderSearch()
+ },
+ dialogVisibleSourceClose() {
+ this.radioSelectedId = ''
+
+ this.sourceForm.mesordercode = ''
+ this.sourceForm.sourceorder = ''
+ this.sourceForm.partcode = ''
+ this.sourceForm.partname = ''
+ this.sourceForm.partspec = ''
+ this.sourceForm.paystartdate = ''
+ this.sourceForm.payenddate = ''
+ this.sourceForm.creatuser = ''
+ this.sourceForm.createdate = ''
+
+ this.isExpandDialog = false
+ this.sourceTableData = []
+ },
+ dialogVisibleSourceBack() {
+ this.dialogVisibleSource = false
+ },
+ dialogVisibleSourceConfirm() {
+ console.log(this.radioSelectedId)
+ this.sourceTableData.forEach(item => {
+ if (item.id === this.radioSelectedId) {
+ this.dialogForm.sourceorder = item.wo_code
+ this.dialogForm.partcode = item.partcode
+ this.dialogForm.partspec = item.partspec
+ }
+ })
+ this.dialogVisibleSource = false
+ },
+ mesordertypeChange(val) {
+ if (val === 'PO') {
+ this.dialogForm.sourceorder = ''
+ this.dialogForm.partcode = ''
+ this.dialogForm.partspec = ''
+ }
+ },
+ /* 鍏宠仈宸ヨ壓璺嚎妯″潡*/
+ // 鍏宠仈宸ヨ壓璺嚎
+ async routeClick(row) {
+ console.log(row)
+ // this.defaultroute_code = row.default_route
+ this.dialogFormRoute.projectCode = row.partcode
+ this.dialogFormRoute.projectName = row.partname
+ this.dialogVisibleRoute = true
+ const { data: res } = await InventoryFileAssociationRoute({ partcode: this.dialogFormRoute.projectCode })
+ this.dialogFormRoute.routeOperationArr = res
+
+ this.dialogFormRoute.routeOperationArr.forEach((item, index) => {
+ item.isSelected1 = false
+ item.isSelected2 = false
+ if (index === 0) {
+ item.isSelected1 = true
+ this.projectTableData = item.Data
+ }
+ if (item.flag === 'Y') {
+ item.isSelected2 = true
+ this.$nextTick(() => {
+ $('input:checkbox').eq(index).prop('checked', true)
+ })
+ }
+ })
+
+ this.defaultroute_codeArr = this.dialogFormRoute.routeOperationArr.filter(item => item.flag === 'Y')
+ },
+ // 瀵硅瘽妗嗗叧闂�
+ handleCloseRoute() {
+ this.dialogFormRoute.routeOperationArr = []
+ this.defaultroute_codeArr = []
+ this.defaultroute_code = ''
+ this.projectTableData = []
+ },
+ // 鍙栨秷
+ routeDialogVisibleCancel() {
+ this.dialogVisibleRoute = false
+ },
+ // 纭畾
+ async routeDialogVisibleConfirm() {
+ const temp = this.dialogFormRoute.routeOperationArr.filter(item => item.isSelected2)
+ if (this.defaultroute_code === '' && temp.length > 0) {
+ return this.$message.info('榛樿宸ヨ壓璺嚎涓嶈兘涓虹┖锛�')
+ }
+
+ // 鎻愪氦鏍煎紡
+ const data = []
+ this.dialogFormRoute.routeOperationArr.forEach(item => {
+ if (item.isSelected2) {
+ data.push({ code: item.code, name: item.name })
+ }
+ })
+
+ const res = await SaveInventoryFile(this.dialogFormRoute.projectCode, this.defaultroute_code, data)
+ if (res.code === '200') {
+ this.$message.success('淇濆瓨鎴愬姛锛�')
+ await this.getMesOrderSearch()
+ this.dialogVisibleRoute = false
+ }
+ },
+ // 澶х洅瀛愮偣鍑讳簨浠�
+ myCheckboxClick(val) {
+ console.log(val, 1)
+ this.dialogFormRoute.routeOperationArr.forEach(item => {
+ item.isSelected1 = val.code === item.code
+ })
+
+ this.projectTableData = val.Data
+ },
+ // 灏忕洅瀛愮偣鍑讳簨浠�
+ myCheckboxInputClick(val) {
+ console.log(val, 2)
+ val.isSelected2 = !val.isSelected2
+
+ this.dialogFormRoute.routeOperationArr.forEach((item, index) => {
+ if (val.code === item.code) {
+ item.flag = !item.flag
+ }
+ })
+ if (val.code === this.defaultroute_code) {
+ this.defaultroute_code = ''
+ }
+ this.defaultroute_codeArr = this.dialogFormRoute.routeOperationArr.filter(item => item.isSelected2)
+ },
+ // 琛岀偣鍑讳簨浠�
+ async rowClick(row, event, column) {
+ const data = {
+ sourceid: row.sourceid,
+ sourcewo: row.m_po,
+ wocode: row.wo_code,
+ data_sources: row.data_sources
+ }
+ const { data: res } = await UpdateMesOrderStepSearch(data)
+ this.tableDataDetail = res.stepdata
+ },
+ // 宸ュ簭鍒犻櫎
+ stepDel(row) {
+ console.log(row)
+ const index = this.stepSelectedValue.findIndex(i => i === row.stepcode)
+ this.stepSelectedValue.splice(index, 1)
+ },
+ // 鎵撳嵃宸ュ崟
+ printOrder() {
+
+ },
+ // 閫夋嫨鎵撳嵃灏哄鐨勫ぇ灏忓�兼敼鍙�
+ printSizeChange(val) {
+ this.$nextTick(() => {
+ this.bindQRCode2(this.qrForm.qrvalue)
+ })
+ },
+ printMe2StylePadding(val) {
+ if (val === 0) {
+ return { paddingLeft: '10px', paddingTop: '5px' }
+ }
+ if (val === 5) {
+ return { paddingLeft: '15px', paddingTop: '7px' }
+ }
+ },
+
+ inbarcodeChange(val, item) {
+ // 褰� lastPrintArrSelected涓湭鏈夊綋鍓嶅嬀閫夌殑鍊兼槸 璧皃ush item 鍚﹀垯璧拌繃婊ゆ帀item
+ if (val) {
+ this.lastPrintArrSelected.push(item)
+ } else {
+ this.lastPrintArrSelected = this.lastPrintArrSelected.filter(i => i.inbarcode !== item.inbarcode)
+ }
+
+ // 鐢熶骇浜岀淮鐮�
+ this.$nextTick(() => {
+ this.lastPrintArrSelected.forEach((i, index) => {
+ console.log(i.inbarcode, 'i.inbarcode')
+ new QRCode(this.$refs.qrCodeDiv3[index], {
+ text: i.inbarcode,
+ width: 60,
+ height: 60,
+ colorDark: '#000', // 浜岀淮鐮侀鑹�
+ colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊
+ correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H
+ })
+ })
+
+ // const div = document.getElementById('qrCode3')
+ // div.scrollTop = 0 // 婊氬姩鏉′綅浜庢渶搴曢儴
+
+ this.$forceUpdate()
+ }, 500)
+ },
+ stepSelectedValueChange(val) {
+ // console.log(val, 123)
+ }
+ }
}
</script>
+<style>
+.sortable-ghost {
+ opacity: .8;
+ color: #fff !important;
+ background: #42b983 !important;
+}
+</style>
+<style lang="scss" scoped>
+$main_color: #42b983;
-<style scoped>
+.dialogVisibleRoute {
+ .myCheckboxGroup {
+ display: flex;
+ flex-wrap: wrap;
+ .myCheckbox {
+ //border: 1px solid $main_color;
+ border: 1px solid #eee;
+ display: flex;
+ min-width: 100px;
+ padding: 10px;
+ margin: 10px 30px 0 0;
+ border-radius: 5px;
+ cursor: default;
+
+ .myCheckboxInput {
+ margin: 1px 5px 0 0;
+ cursor: pointer;
+ }
+
+ }
+
+ //.myCheckbox{
+ // border: 1px solid $main_color;
+ //}
+
+ input[type=checkbox] {
+ cursor: pointer;
+ position: relative;
+ width: 14px;
+ height: 14px;
+ font-size: 14px;
+ }
+
+ input[type=checkbox]::after {
+ position: absolute;
+ top: 0;
+ //color: rgb(130, 35, 35);
+ color: $main_color;
+ width: 14px;
+ height: 14px;
+ display: inline-block;
+ visibility: visible;
+ padding-left: 0px;
+ text-align: center;
+ content: ' ';
+ border-radius: 3px
+ }
+
+ input[type=checkbox]:checked::after {
+ //content: "鉁�";
+ content: "鈭�";
+ color: #fff;
+ font-size: 12px;
+ font-weight: bold;
+ background-color: $main_color;
+ }
+ }
+}
+
+.dialogVisibleRoute {
+ ::v-deep .el-dialog__body {
+ padding: 20px 20px !important;
+ }
+}
+
+.defaultroute_code ::v-deep .el-input__suffix-inner {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ margin-top: -3px;
+}
+
+.el-date-editor {
+ font-size: 14px;
+}
+
+::v-deep .el-dialog__body {
+ padding: 20px 100px !important;
+}
+
+.dialogVisibleSearch ::v-deep .el-dialog__body {
+ padding: 20px 20px !important;
+}
+
+.dialogVisibleConfirmClass ::v-deep .el-dialog__body {
+ padding: 20px 20px !important;
+}
+
+::v-deep .el-table .caret-wrapper {
+ transform: scale(0.8);
+}
+
+::v-deep .el-button--text {
+ color: $main_color;
+ font-size: 14px;
+ cursor: pointer;
+}
+
+::v-deep .el-radio.is-bordered + .el-radio.is-bordered {
+ margin: 10px 30px 0px 0;
+}
+
+.body ::v-deep .el-form-item {
+ margin-bottom: 0;
+}
+
+.elForm ::v-deep .el-form-item {
+ margin-bottom: 0;
+}
+
+.elTableDiv {
+ ::v-deep .el-radio__label {
+ display: none;
+ }
+
+}
+
+.el-table::before {
+ height: 0;
+}
+
+//.dialogVisibleConfirmClass >>>.el-table--border, .el-table--fit {
+// border-bottom: 2px solid #000 ;
+// //outline: #000 solid 2px !important;
+//}
+
+.tableDataPrint ::v-deep div.cell {
+ display: flex !important;
+ align-items: center !important;
+ justify-content: center !important;
+}
+
+.formContent {
+ width: 240px;
+}
+
+</style>
+
+<style media="print">
+/*@media print {*/
+@page {
+ size: auto;
+ margin: 3mm;
+}
+
+</style>
+<style>
+.formContent .el-form-item__label {
+ color: #000 !important;
+}
+</style>
+<!--鍏叡椤甸潰鏍峰紡-->
+<style lang="scss" scoped>
+$main_color: #42b983;
+
+::v-deep .el-range-input {
+ font-size: 14px !important;
+}
+
+::v-deep .el-range__icon {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-separator {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-input {
+ font-size: 14px;
+}
+
+::v-deep .el-range-separator {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+//::v-deep .el-button--primary, .el-button--default, .el-button--info {
+// height: 34px;
+// display: flex;
+// align-items: center;
+// padding: 0 15px;
+//}
+
+::v-deep .el-button--primary {
+ //background-color: $main_color !important;
+}
+
+::v-deep .el-button--default {
+ background-color: #f8f8fa;
+ border: none;
+}
+
+::v-deep .el-input__inner {
+ height: 34px;
+ line-height: 34px;
+ //color: #a7a7a7;
+}
+
+::v-deep .el-dialog__body {
+ padding: 20px 100px !important;
+}
+
+::v-deep .dialogVisibleRoles .el-dialog__body {
+ padding: 20px 20px !important;
+}
+
+::v-deep .importPickerClass .el-dialog__body {
+ padding: 20px 20px !important;
+}
+
+::v-deep .el-dialog__footer {
+ display: flex;
+ justify-content: flex-end;
+}
+
+::v-deep .el-table .caret-wrapper {
+ transform: scale(0.8);
+}
+
+::v-deep .cell {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+}
+
+::v-deep .el-table::before {
+ height: 0;
+}
+
+::v-deep .el-table__body-wrapper {
+ background-color: #f8f8fa;
+}
+
+::v-deep .el-table__body .el-table__row.hover-row td {
+ background-color: #eaecef;
+}
+
+::v-deep .el-form--inline .el-form-item__label {
+ color: #a7a7a7;
+}
+
+.body ::v-deep .el-divider {
+ border: 1px solid #eee;
+ width: 99%;
+ margin: 10px auto;
+}
+
+.body ::v-deep .el-form-item {
+ margin-bottom: 0;
+}
+
+.userDialogVisible ::v-deep .el-form-item {
+ margin-bottom: 0;
+}
+
+.dateMini {
+ ::v-deep .el-input__inner {
+ line-height: 34px;
+ height: 34px;
+ width: 200px;
+ display: flex;
+ font-size: 14px !important;
+ align-items: center !important;
+ }
+
+ ::v-deep .el-input__prefix {
+ margin-top: -3px;
+ }
+
+ //::v-deep .el-range__icon{
+ // line-height: 28px;
+ //}
+}
+
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.tableFixed {
+ ::v-deep .el-table__fixed-right {
+ height: 100% !important;
+ }
+
+ ::v-deep .el-table__fixed {
+ height: 100% !important;
+ }
+}
+</style>
+<style>
+
+.el-table .custom-row {
+ background: #f8f8fa;
+}
</style>
diff --git a/vue.config.js b/vue.config.js
index b0a451c..82d5a3f 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -52,7 +52,7 @@
},
proxy: {
[process.env.VUE_APP_BASE_API]: {
- target: 'http://121.196.36.24:8019', // 璇锋眰鐨勭涓夆絽鎺モ紳鍦板潃 鏈湴寮�鍙戞湇鍔″櫒
+ target: 'http://121.196.36.24:8019', // 鏈湴
changeOrigin: true, // 璇锋眰璺ㄥ煙鏃讹紝闇� 閰嶇疆姝ら」
pathRewrite: { // 璺緞閲嶅啓,鏇挎崲target涓殑璇锋眰鍦板潃
['^' + process.env.VUE_APP_BASE_API]: '/api/'
--
Gitblit v1.9.3