143 Commits
dy ... fzq

Author SHA1 Message Date
Fanzink
c595794b1a Merge branch 'develop' into fzq 2022-05-30 13:42:36 +08:00
Fanzink
72ac5b9998 '修改导出后空白bug' 2022-05-30 13:41:50 +08:00
ddc3f5d49d Merge pull request '修改首页详情' (#82) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #82
2022-04-02 16:04:35 +08:00
zwq
db0a906323 修改首页详情 2022-04-02 16:04:07 +08:00
93a412d243 Merge pull request '修改bug' (#81) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #81
2022-03-28 13:56:31 +08:00
zwq
aa85593884 修改bug 2022-03-28 13:56:03 +08:00
a77918c059 Merge pull request 'fzq' (#80) from fzq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #80
2022-03-28 13:54:27 +08:00
Fanzink
d8336aced0 '修改存储箱字段' 2022-03-28 11:13:51 +08:00
Fanzink
43983bc929 '修改存储箱字段' 2022-03-28 11:12:03 +08:00
6d3309ed2b Merge pull request '修改bug' (#79) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #79
2022-03-22 11:27:14 +08:00
zwq
cae8938e22 修改bug 2022-03-22 11:26:34 +08:00
03b13c77aa Merge pull request 'fzq' (#78) from fzq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #78
2022-03-21 09:12:51 +08:00
Fanzink
985ec95bc6 Merge branch 'develop' into fzq 2022-03-20 09:50:51 +08:00
Fanzink
453f66b7b3 '更新字段' 2022-03-20 09:50:14 +08:00
47793c38da Merge pull request '修改bug' (#77) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #77
2022-03-19 13:52:17 +08:00
zwq
dcb7801d24 修改bug 2022-03-19 13:49:04 +08:00
f59fc1a594 Merge pull request 'gtz' (#76) from gtz into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #76
2022-03-18 16:37:14 +08:00
b2c50e8c56 merge 2022-03-18 16:36:37 +08:00
dd8e54f743 首页去除缓存 2022-03-18 16:29:54 +08:00
8142f16662 dashboard attribute number to string 2022-03-18 16:05:01 +08:00
5ec45b87ca Merge pull request 'fzq' (#75) from fzq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #75
2022-03-18 15:03:46 +08:00
Fanzink
445ad7f280 Merge branch 'develop' into fzq 2022-03-18 15:01:06 +08:00
Fanzink
15f9fb0f5b '改bug更新' 2022-03-18 15:00:32 +08:00
114bfeccf3 Merge pull request '修改bug' (#74) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #74
2022-03-18 09:50:40 +08:00
zwq
018695fe70 修改bug 2022-03-18 09:49:30 +08:00
9aaffbb8b4 Merge pull request '修改bug' (#73) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #73
2022-03-17 16:22:39 +08:00
zwq
2a2bd1d726 修改bug 2022-03-17 16:21:35 +08:00
dd029f2055 Merge pull request 'eqtyep default' (#72) from gtz into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #72
2022-03-17 14:01:10 +08:00
fe54918801 eqtyep default 2022-03-17 14:00:36 +08:00
ced191b4df Merge pull request '修改仓库样式' (#71) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #71
2022-03-17 10:59:56 +08:00
zwq
995db83484 修改仓库样式 2022-03-17 10:59:00 +08:00
40f426f7f5 Merge pull request 'base eq add' (#70) from gtz into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #70
2022-03-17 10:57:00 +08:00
61270a542d base eq 2022-03-17 10:56:24 +08:00
3ecaa99a8c Merge branch 'develop' into gtz 2022-03-17 10:52:41 +08:00
79238fca27 1 2022-03-17 10:52:22 +08:00
73d8951bbb Merge pull request '首页对接以及库位详情' (#69) from gtz into develop
Some checks failed
continuous-integration/drone/push Build is failing
Reviewed-on: #69
2022-03-16 20:12:20 +08:00
2f19b50e20 merge and update dashboard detail 2022-03-16 20:11:30 +08:00
6d4594b338 update 2022-03-16 19:14:00 +08:00
d4168e6157 Merge pull request '修改bug' (#68) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #68
2022-03-16 16:19:42 +08:00
zwq
dfb1f3d97b 修改bug 2022-03-16 16:18:59 +08:00
26772a324a Merge pull request 'fzq' (#67) from fzq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #67
2022-03-16 16:17:35 +08:00
Fanzink
aae6117db7 Merge branch 'develop' into fzq 2022-03-16 16:15:16 +08:00
Fanzink
99f92f6891 '报表更新' 2022-03-16 16:14:50 +08:00
d8424e1752 Merge pull request '修改bug' (#66) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #66
2022-03-16 14:19:58 +08:00
zwq
598f49e378 修改bug 2022-03-16 14:19:28 +08:00
982c25fa0b Merge pull request '修改bug' (#65) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #65
2022-03-16 10:13:21 +08:00
zwq
2756e75aaf 修改bug 2022-03-16 10:12:36 +08:00
74883db1c0 Merge pull request 'fzq' (#64) from fzq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #64
2022-03-16 09:55:55 +08:00
643277e1c7 更新 'src/lang/i18n/zh/module/basicData.js' 2022-03-16 09:53:24 +08:00
4a834c3dc1 更新 'src/lang/i18n/en/module/basicData.js' 2022-03-16 09:53:04 +08:00
6b20524a5f 更新 'src/lang/i18n/zh/module/basicData.js' 2022-03-16 09:52:02 +08:00
Fanzink
f219b55d0c '更新' 2022-03-16 09:43:13 +08:00
Fanzink
79b7fe0eec '更新' 2022-03-16 09:41:00 +08:00
2329a20c4f Merge pull request 'zwq' (#63) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #63
2022-03-16 09:00:59 +08:00
zwq
7aba931c94 提交 2022-03-16 08:58:59 +08:00
zwq
176fd99cd1 Merge branch 'test' of http://git.picaiba.com/mt-ck-00a/mt-ck-wms-ui into zwq 2022-03-16 08:42:53 +08:00
77fbbb630b Merge pull request '仓库翻译' (#62) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #62
2022-03-15 17:04:29 +08:00
zwq
18b932afa1 仓库翻译 2022-03-15 17:04:06 +08:00
251d507db7 Merge pull request 'gtz' (#61) from gtz into test
Reviewed-on: #61
2022-03-15 16:59:59 +08:00
8502f5d7d1 Merge branch 'develop' into gtz 2022-03-15 16:59:11 +08:00
9eea286c08 i18n dashboard 2022-03-15 16:58:48 +08:00
d4e0384e10 Merge pull request '修改bug' (#60) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #60
2022-03-15 14:38:09 +08:00
zwq
983be7801c 修改bug 2022-03-15 14:37:40 +08:00
d725cb7a0c Merge pull request '修改bug' (#59) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #59
2022-03-15 11:21:10 +08:00
zwq
ef8a7ef497 修改bug 2022-03-15 11:20:36 +08:00
6ac3fcb572 Merge pull request 'fzq' (#58) from fzq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #58
2022-03-15 10:09:07 +08:00
Fanzink
3e6389f0eb '更新' 2022-03-15 09:55:49 +08:00
Fanzink
afde4d5225 '更新' 2022-03-15 09:12:22 +08:00
8da50584fc Merge pull request 'gtz' (#57) from gtz into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #57
2022-03-14 17:00:11 +08:00
2351e96c9e Merge branch 'develop' into gtz 2022-03-14 16:59:06 +08:00
5277788174 update 2022-03-14 16:58:27 +08:00
127092be26 Merge pull request '修改bug' (#56) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #56
2022-03-14 11:00:08 +08:00
zwq
21d45adf22 修改bug 2022-03-14 10:59:13 +08:00
3d3c802d01 Merge pull request 'fzq' (#55) from fzq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #55
2022-03-14 10:56:52 +08:00
Fanzink
4263eb79a0 '' 2022-03-13 14:45:13 +08:00
Fanzink
7775d15b67 '' 2022-03-13 14:44:14 +08:00
d21c69e883 Merge pull request 'gtz' (#54) from gtz into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #54
2022-03-12 14:25:29 +08:00
4921ba62ed update 2022-03-12 14:24:40 +08:00
c58d4fb90b Merge branch 'develop' into test 2022-03-12 11:32:21 +08:00
f273bd32de Merge pull request '仓库管理-工序库位关联' (#53) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #53
2022-03-11 16:39:54 +08:00
zwq
7fd51b5211 仓库管理-工序库位关联 2022-03-11 16:38:54 +08:00
5dda7cd772 Merge branch 'develop' into gtz 2022-03-11 10:37:48 +08:00
60fb71791a update dashborad number to string 2022-03-11 10:37:20 +08:00
e7629a6ea0 Merge pull request '修改bug' (#52) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #52
2022-03-11 09:51:02 +08:00
zwq
633313c34e 修改bug 2022-03-11 09:50:41 +08:00
7a798d354b Merge pull request '修改bug' (#51) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #51
2022-03-11 09:20:30 +08:00
zwq
ddcae6d119 修改bug 2022-03-11 09:20:02 +08:00
cf1e32049c Merge pull request 'fzq' (#50) from fzq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #50
2022-03-11 08:26:17 +08:00
Fanzink
44411b19cd '修改bug' 2022-03-10 21:17:31 +08:00
Fanzink
7afe3c3ec7 '修改bug' 2022-03-10 21:15:33 +08:00
c5f564797b Merge pull request '修改bug' (#49) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #49
2022-03-10 16:55:54 +08:00
zwq
0b6f2ea996 修改bug 2022-03-10 16:55:35 +08:00
3a8debc3be Merge pull request 'zwq' (#48) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #48
2022-03-10 16:50:13 +08:00
zwq
2876f44536 修改bug 2022-03-10 16:49:41 +08:00
zwq
6361c3a47f 修改bug 2022-03-10 16:45:20 +08:00
73ac7e04ce Merge pull request '修改bug' (#47) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #47
2022-03-10 14:31:13 +08:00
zwq
0adf1dad1e 修改bug 2022-03-10 14:30:33 +08:00
77f1831fc2 Merge pull request '修改bug' (#46) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #46
2022-03-09 16:46:11 +08:00
zwq
3112915398 修改bug 2022-03-09 16:45:21 +08:00
507b9da319 Merge pull request '更新-仓库-工序' (#45) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #45
2022-03-09 15:19:56 +08:00
zwq
6b6eb66145 更新-仓库-工序 2022-03-09 15:19:23 +08:00
02ac7ee486 Merge pull request '修改bug' (#44) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #44
2022-03-09 14:50:35 +08:00
zwq
83fdc49dbb 修改bug 2022-03-09 14:50:07 +08:00
68902f0f6c Merge pull request '增加仓库-工序-提示' (#43) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #43
2022-03-09 14:32:55 +08:00
zwq
76dba55bae 增加仓库-工序-提示 2022-03-09 14:32:25 +08:00
66302849a3 Merge pull request '仓库-工序存储区管理' (#42) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #42
2022-03-09 14:20:05 +08:00
zwq
238d8ba41c 仓库-工序存储区管理 2022-03-09 14:19:03 +08:00
27786fb197 Merge pull request 'update dashboard' (#41) from gtz into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #41
2022-03-08 14:35:40 +08:00
b6d0d32b6f update dashboard 2022-03-08 14:34:48 +08:00
9f42c5e33e Merge pull request '更新工艺' (#40) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #40
2022-03-08 09:11:55 +08:00
zwq
a2adcc0fd3 更新工艺 2022-03-08 09:11:34 +08:00
0c0679cb1e Merge pull request '更新工艺' (#39) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #39
2022-03-08 09:02:19 +08:00
zwq
4743fdc191 更新工艺 2022-03-08 09:01:47 +08:00
cf888de5d8 Merge branch 'develop' into gtz 2022-03-07 20:42:39 +08:00
ba3983e085 update dashboard 2022-03-07 20:42:06 +08:00
c9d77e20a0 Merge pull request 'dashboard' (#38) from gtz into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #38
2022-03-07 19:49:47 +08:00
1ed431e10a update 2022-03-07 19:48:14 +08:00
cbcbe5ccfa Merge pull request '更新' (#37) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #37
2022-03-07 09:32:02 +08:00
zwq
a214eb9bad 更新 2022-03-07 09:31:40 +08:00
e3be286a50 Merge pull request '更新' (#36) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #36
2022-03-07 09:17:49 +08:00
zwq
f5a003876f 更新 2022-03-07 09:17:12 +08:00
de76ca416c Merge pull request 'fzq' (#35) from fzq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #35
2022-03-07 09:07:28 +08:00
Fanzink
95afd175a3 '' 2022-03-07 08:43:56 +08:00
Fanzink
9f1a4226c3 '' 2022-03-07 08:41:20 +08:00
Fanzink
90344983b3 Merge branch 'develop' into fzq 2022-03-06 19:36:56 +08:00
Fanzink
97997681a2 '工序库位+报表' 2022-03-06 19:36:26 +08:00
Fanzink
82f44b5a62 '基础+报表' 2022-03-05 19:43:42 +08:00
28316462aa Merge pull request 'fzq' (#32) from fzq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #32
2022-03-04 11:18:40 +08:00
Fanzink
b5081ba279 '不动vue.config.js' 2022-03-04 11:12:33 +08:00
Fanzink
913e03230e '' 2022-03-04 11:01:51 +08:00
Fanzink
81e92cdb3f '不动vue.config.js' 2022-03-04 10:59:43 +08:00
Fanzink
aec5bcaf85 '' 2022-03-04 10:58:39 +08:00
Fanzink
581ca3d60b '' 2022-03-04 10:48:30 +08:00
Fanzink
cb7718c340 '' 2022-03-04 10:47:28 +08:00
7501849be6 Merge pull request '更新' (#30) from zwq into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #30
2022-03-04 10:45:43 +08:00
Fanzink
2a4fdeef04 '不动vue.config.js' 2022-03-04 10:45:12 +08:00
zwq
33a27dd810 更新 2022-03-04 10:44:28 +08:00
Fanzink
8801c44b98 Merge branch 'develop' into fzq 2022-03-03 20:49:39 +08:00
Fanzink
04cc50f504 '基础资料部分' 2022-03-03 20:48:59 +08:00
878c9b22f7 Merge pull request 'eslint版本' (#28) from dy into develop
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #28
2022-03-03 16:59:38 +08:00
Fanzink
ffdcbf6fa7 修改vue.config.js 2022-02-28 15:53:44 +08:00
Fanzink
f655b4d718 '' 2022-02-28 15:48:39 +08:00
Fanzink
a0adee8ce5 '' 2022-02-28 15:45:50 +08:00
98 changed files with 10426 additions and 852 deletions

2
.gitignore vendored
View File

@@ -22,4 +22,4 @@ selenium-debug.log
package-lock.json
yarn.lock
/.env.development
/vue.config.js
vue.config.js

View File

@@ -97,7 +97,7 @@
"@vue/test-utils": "1.0.0-beta.29",
"autoprefixer": "^9.5.1",
"babel-core": "7.0.0-bridge.0",
"babel-eslint": "10.0.1",
"babel-eslint": "^8.2.2",
"babel-jest": "23.6.0",
"chalk": "2.4.2",
"chokidar": "2.1.5",

View File

@@ -1,15 +1,15 @@
/*
* @Author: zwq
* @Date: 2020-12-29 16:00:14
* @LastEditors: zwq
* @LastEditTime: 2021-01-28 09:38:31
* @LastEditors: fzq
* @LastEditTime: 2022-03-03 14:29:17
* @Description:
*/
import request from '@/utils/request'
export function locationList(data) { // 获取库位信息列表
return request({
url: '/basic/stock/page',
url: '/api/wms/area/locationByShelf',
method: 'post',
data
})
@@ -17,7 +17,7 @@ export function locationList(data) { // 获取库位信息列表
export function locationDetail(id) { // 获取库位信息单条数据
return request({
url: '/basic/stock/get',
url: '/api/wms/area/locationById',
method: 'post',
data: { id }
})
@@ -25,7 +25,7 @@ export function locationDetail(id) { // 获取库位信息单条数据
export function locationUpdate(data) { // 更新库位信息单条数据
return request({
url: '/basic/stock/update',
url: '/api/wms/area/updatelocation',
method: 'post',
data
})
@@ -33,7 +33,7 @@ export function locationUpdate(data) { // 更新库位信息单条数据
export function locationAdd(data) { // 新增库位信息单条数据
return request({
url: '/basic/stock/add',
url: '/api/wms/area/addlocation',
method: 'post',
data
})
@@ -41,14 +41,14 @@ export function locationAdd(data) { // 新增库位信息单条数据
export function locationCode() { // 获取库位信息code
return request({
url: '/basic/stock/get-code',
url: '/api/wms/area/getCode',
method: 'post'
})
}
export function locationDelete(id) { // 删除库位信息单条数据
return request({
url: '/basic/stock/delete',
url: '/api/wms/area/deletelocation',
method: 'post',
data: { id }
})

View File

@@ -0,0 +1,72 @@
/*
* @Descripttion:
* @version:
* @Author: fzq
* @Date: 2022-03-06 18:13:49
* @LastEditors: fzq
* @LastEditTime: 2022-03-09 10:44:04
*/
import request from '@/utils/request'
export function list(data) { // 获取工序库位信息列表
return request({
url: '/api/wms/processlocation/page',
method: 'post',
data
})
}
export function detail(id) { // 获取工序库位信息单条数据
return request({
url: '/api/wms/processlocation/getById',
method: 'post',
data: { id }
})
}
export function update(data) { // 更新工序库位信息单条数据
return request({
url: '/api/wms/processlocation/update',
method: 'post',
data
})
}
export function add(data) { // 手动绑定工序库位
return request({
url: '/api/wms/processlocation/add',
method: 'post',
data
})
}
export function locaDelete(id) { // 删除工序库位信息单条数据
return request({
url: '/api/wms/processlocation/delete',
method: 'post',
data: { id }
})
}
export function locationList(data) { // 获取库位id列表
return request({
url: '/api/wms/processlocation/locationList',
method: 'post',
data
})
}
export function portAttrList(data) { // 获取库位属性列表,关联数据字典
return request({
url: '/api/wms/processlocation/portAttrList',
method: 'post',
data
})
}
export function workSequenList(data) { // 获取工序id列表
return request({
url: '/api/wms/processlocation/workSequenList',
method: 'post',
data
})
}

View File

@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2020-12-29 16:00:14
* @LastEditors: zwq
* @LastEditTime: 2022-01-10 17:00:16
* @LastEditTime: 2022-03-04 09:06:58
* @Description:
*/
import request from '@/utils/request'
@@ -15,6 +15,14 @@ export function equipmentInfoList(data) { // 获取设备信息列表
})
}
export function equipmentlistList(data) { // 获取设备信息列表
return request({
url: '/api/process/work-sequence/equipmentlistList',
method: 'post',
data
})
}
export function equipmentInfoDetail(id) { // 获取设备信息单条数据
return request({
url: '/api/wms/equipment/get',

View File

@@ -1,8 +1,8 @@
/*
* @Author: zwq
* @Date: 2020-12-29 16:00:14
* @LastEditors: zwq
* @LastEditTime: 2021-01-20 12:00:52
* @LastEditors: fzq
* @LastEditTime: 2022-03-05 10:22:28
* @Description:
*/
import request from '@/utils/request'
@@ -10,7 +10,7 @@ import request from '@/utils/request'
export function equipmentInfoAttrList(data) { // 获取设备属性列表
return request({
// url: '/basic/equipment-attr/page',
url: '/api/wms/equipment/page',
url: '/api/wms/equipment/attr',
method: 'post',
data
})
@@ -27,7 +27,7 @@ export function equipmentInfoAttrDetail(id) { // 获取设备属性单条数据
export function equipmentInfoAttrUpdate(data) { // 更新设备属性单条数据
return request({
url: '/basic/equipment-attr/update',
url: '/api/wms/equipment/updateattr',
method: 'post',
data
})
@@ -35,7 +35,7 @@ export function equipmentInfoAttrUpdate(data) { // 更新设备属性单条数
export function equipmentInfoAttrAdd(data) { // 新增设备属性单条数据
return request({
url: '/basic/equipment-attr/add',
url: '/api/wms/equipment/addattr',
method: 'post',
data
})
@@ -43,14 +43,14 @@ export function equipmentInfoAttrAdd(data) { // 新增设备属性单条数据
export function equipmentInfoAttrCode() { // 获取设备属性code
return request({
url: '/basic/equipment-attr/get-code',
url: '/api/wms/equipment/getCode',
method: 'post'
})
}
export function equipmentInfoAttrDelete(id) { // 删除设备属性单条数据
return request({
url: '/basic/equipment-attr/delete',
url: '/api/wms/equipment/deleteattr',
method: 'post',
data: { id }
})

View File

@@ -2,14 +2,14 @@
* @Author: zwq
* @Date: 2020-12-29 16:00:14
* @LastEditors: zwq
* @LastEditTime: 2022-03-03 15:10:05
* @LastEditTime: 2022-03-04 10:05:02
* @Description:
*/
import request from '@/utils/request'
export function staffList(data) { // 获取员工列表
return request({
url: '/basic/worker/page',
url: '/api/wms/worker/page',
method: 'post',
data
})
@@ -17,7 +17,7 @@ export function staffList(data) { // 获取员工列表
export function staffDetail(id) { // 获取员工单条数据
return request({
url: '/basic/worker/get',
url: '/api/wms/worker/get',
method: 'post',
data: { id }
})
@@ -25,7 +25,7 @@ export function staffDetail(id) { // 获取员工单条数据
export function staffUpdate(data) { // 更新员工单条数据
return request({
url: '/basic/worker/update',
url: '/api/wms/worker/update',
method: 'post',
data
})
@@ -33,7 +33,7 @@ export function staffUpdate(data) { // 更新员工单条数据
export function staffAdd(data) { // 新增员工单条数据
return request({
url: '/basic/worker/add',
url: '/api/wms/worker/add',
method: 'post',
data
})
@@ -41,14 +41,14 @@ export function staffAdd(data) { // 新增员工单条数据
export function staffCode() { // 获取员工code
return request({
url: '/basic/worker/get-code',
url: '/api/wms/worker/get-code',
method: 'post'
})
}
export function staffDelete(id) { // 删除员工单条数据
return request({
url: '/basic/worker/delete',
url: '/api/wms/worker/delete',
method: 'post',
data: { id }
})

View File

@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2020-12-29 16:00:14
* @LastEditors: zwq
* @LastEditTime: 2022-01-17 13:59:54
* @LastEditTime: 2022-03-11 16:23:43
* @Description:
*/
import request from '@/utils/request'
@@ -84,3 +84,19 @@ export function StorageBoxRackDelete(id) { // 删除存储箱上架单条数据
data: { id }
})
}
export function batchListAdd(data) { // 新增工序库位关联
return request({
url: '/api/wms/processlocation/batchList',
method: 'post',
data
})
}
export function locationByProcessList(data) { // 工序库位列表获取
return request({
url: '/api/wms/processlocation/locationByProcess',
method: 'post',
data
})
}

27
src/api/dashboard.js Normal file
View File

@@ -0,0 +1,27 @@
/*
* @Author: gtz
* @Date: 2022-03-16 16:08:06
* @LastEditors: gtz
* @LastEditTime: 2022-03-16 16:45:41
* @Description: file content
* @FilePath: \mt-ck-wms-ui\src\api\dashboard.js
*/
import request from '@/utils/request'
// 获取菜单列表
export function getPortList(data) {
return request({
url: '/api/wms/location/shelfList',
method: 'post',
data
})
}
// 获取菜单详情
export function getPortDetail(id) {
return request({
url: '/api/wms/storage/box/circ/info/getByLocationId',
method: 'post',
data: { id }
})
}

View File

@@ -1,7 +1,7 @@
/*
* @Date: 2020-12-28 20:46:53
* @LastEditors: zwq
* @LastEditTime: 2021-04-25 14:52:11
* @LastEditTime: 2022-03-11 09:16:13
* @FilePath: \basic-admin\src\api\menu.js
* @Description: 菜单api接口定义
*/
@@ -10,7 +10,7 @@ import request from '@/utils/request'
// 获取菜单列表
export function getMenuList(data) {
return request({
url: '/upms/menu/list',
url: '/api/upms/menu/list',
method: 'post',
data
})
@@ -19,7 +19,7 @@ export function getMenuList(data) {
// 获取菜单详情
export function getMenuDetail(id) {
return request({
url: '/upms/menu/get',
url: '/api/upms/menu/get',
method: 'post',
data: { id }
})
@@ -28,7 +28,7 @@ export function getMenuDetail(id) {
// 新增菜单
export function addMenu(data) {
return request({
url: '/upms/menu/add',
url: '/api/upms/menu/add',
method: 'post',
data
})
@@ -37,7 +37,7 @@ export function addMenu(data) {
// 删除菜单
export function delMenu(id) {
return request({
url: '/upms/menu/delete',
url: '/api/upms/menu/delete',
method: 'post',
data: { id }
})
@@ -46,7 +46,7 @@ export function delMenu(id) {
// 启停菜单
export function enableMenu(data) {
return request({
url: '/upms/menu/enabled',
url: '/api/upms/menu/enabled',
method: 'post',
data
})
@@ -55,7 +55,7 @@ export function enableMenu(data) {
// 修改菜单
export function editMenu(data) {
return request({
url: '/upms/menu/update',
url: '/api/upms/menu/update',
method: 'post',
data
})
@@ -64,7 +64,7 @@ export function editMenu(data) {
// 菜单-角色关联授权
export function saveRoleMenu(data) {
return request({
url: '/upms/menu/saveRoleMenu',
url: '/api/upms/menu/saveRoleMenu',
method: 'post',
data
})
@@ -73,7 +73,7 @@ export function saveRoleMenu(data) {
// 菜单-角色关联获取
export function listByRole(id) {
return request({
url: '/upms/menu/listByRole',
url: '/api/upms/menu/listByRole',
method: 'post',
data: { id }
})

View File

@@ -2,13 +2,13 @@
* @Author: zwq
* @Date: 2022-01-17 14:55:09
* @LastEditors: zwq
* @LastEditTime: 2022-01-17 14:59:07
* @LastEditTime: 2022-03-28 13:52:12
* @Description:
*/
import request from '@/utils/request'
export function ProcessInfoList(data) { // 获取工单工艺列表
export function ProcessInfoList(data) { // 获取工单列表
return request({
url: '/api/wms/work/order/page',
method: 'post',
@@ -16,6 +16,14 @@ export function ProcessInfoList(data) { // 获取工单工艺列表
})
}
export function ProcessInfoUpdata(data) { // 获取工单工艺列表
return request({
url: '/api/wms/work/order/update',
method: 'post',
data
})
}
export function ProcessInfoDetail(id) { // 获取工单工艺单条数据
const data = {
'id': id

View File

@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2020-12-29 16:00:14
* @LastEditors: zwq
* @LastEditTime: 2022-03-03 13:57:00
* @LastEditTime: 2022-03-04 09:35:14
* @Description:
*/
import request from '@/utils/request'
@@ -15,6 +15,14 @@ export function workOrderList(data) { // 获取工单列表
})
}
export function workOrderListList(data) { // 00A获取工单列表
return request({
url: '/api/wms/work/order/page',
method: 'post',
data
})
}
export function workOrderDetail(id) { // 获取工单单条数据
const data = {
'id': id

View File

@@ -1,7 +1,7 @@
/*
* @Date: 2021-01-04 17:34:38
* @LastEditors: zwq
* @LastEditTime: 2021-04-12 14:23:30
* @LastEditTime: 2022-03-10 16:42:55
* @FilePath: \basic-admin\src\api\org.js
* @Description: 框架基础模块——组织结构
*/
@@ -10,7 +10,7 @@ import request from '@/utils/request'
// 获取组织结构列表
export function getOrgList(data) {
return request({
url: '/upms/org/page',
url: '/api/upms/org/page',
method: 'post',
data
})
@@ -18,7 +18,7 @@ export function getOrgList(data) {
export function getOrgDetail(id) { // 获取组织结构单条数据
return request({
url: '/upms/org/get',
url: '/api/upms/org/get',
method: 'post',
data: { id }
})
@@ -26,7 +26,7 @@ export function getOrgDetail(id) { // 获取组织结构单条数据
// export function getOrgAllList(data) {
// return request({
// url: '/upms/org/list',
// url: '/api/upms/org/list',
// method: 'post',
// data
// })
@@ -35,7 +35,7 @@ export function getOrgDetail(id) { // 获取组织结构单条数据
// 添加组织结构
export function addOrg(data) {
return request({
url: '/upms/org/add',
url: '/api/upms/org/add',
method: 'post',
data
})
@@ -44,7 +44,7 @@ export function addOrg(data) {
// 修改组织
export function editOrg(data) {
return request({
url: '/upms/org/update',
url: '/api/upms/org/update',
method: 'post',
data
})
@@ -53,7 +53,7 @@ export function editOrg(data) {
// 删除组织结构
export function delOrg(id) {
return request({
url: '/upms/org/delete',
url: '/api/upms/org/delete',
method: 'post',
data: { id }
})

View File

@@ -1,19 +1,37 @@
/*
* @Author: gtz
* @Date: 2021-03-07 18:39:03
* @LastEditors: zwq
* @LastEditTime: 2022-02-25 09:05:53
* @LastEditors: fzq
* @LastEditTime: 2022-03-08 15:31:13
* @Description: file content
*/
import request from '@/utils/request'
export function page(data) {
// 获取当前库存存储箱列表
export function list(data) {
return request({
url: '/api/report/report-sheet/page',
url: '/api/report/report-storage-box/list',
method: 'post',
data
})
}
// 获取当前库存存储箱分页报表
export function page(data) {
return request({
url: '/api/report/report-storage-box/page',
method: 'post',
data
})
}
// 导出当前库存存储箱列表
export function download(data) {
return request({
url: '/api/report/report-storage-box/excel-download',
method: 'post',
data,
responseType: 'blob',
timeout: 60000
})
}
export function del(data) {
return request({
@@ -47,3 +65,44 @@ export function listCategory(data) {
data
})
}
// 获取当前存储箱对应基板列表
export function listSubstrate(data) {
return request({
url: '/api/report/report-substrate/list',
method: 'post',
data
})
}
// 删除基板信息
export function deleSubstrate(data) {
return request({
url: '/api/report/report-substrate/delete',
method: 'post',
data
})
}
// 获取当前存储箱对应基板分页报表
export function pageSubstrate(data) {
return request({
url: '/api/report/report-substrate/page',
method: 'post',
data
})
}
// 更新基板信息
export function updateSubstrate(data) {
return request({
url: '/api/report/report-substrate/update',
method: 'post',
data
})
}
// 导出当前存储箱对应基板列表
export function downloadSubstrate(data) {
return request({
url: '/api/report/report-substrate/excel-download',
method: 'post',
data
})
}

View File

@@ -10,7 +10,7 @@ import request from '@/utils/request'
// 获取角色详细信息
export function getRoleInfo(data) {
return request({
url: `/upms/role/get`,
url: `/api/upms/role/get`,
method: 'post',
data
})
@@ -18,7 +18,7 @@ export function getRoleInfo(data) {
export function RoleCode() { // 获取code
return request({
url: '/upms/role/get-code',
url: '/api/upms/role/get-code',
method: 'post'
})
}
@@ -26,7 +26,7 @@ export function RoleCode() { // 获取code
// 获取角色列表
export function getRoleList(data) {
return request({
url: '/upms/role/list',
url: '/api/upms/role/list',
method: 'post',
data
})
@@ -35,7 +35,7 @@ export function getRoleList(data) {
// 添加角色
export function addRole(data) {
return request({
url: '/upms/role/add',
url: '/api/upms/role/add',
method: 'post',
data
})
@@ -44,7 +44,7 @@ export function addRole(data) {
// 修改角色
export function updateRole(data) {
return request({
url: '/upms/role/update',
url: '/api/upms/role/update',
method: 'post',
data
})
@@ -53,7 +53,7 @@ export function updateRole(data) {
// 删除角色
export function deleteRole(data) {
return request({
url: `/upms/role/delete`,
url: `/api/upms/role/delete`,
method: 'post',
data
})
@@ -62,7 +62,7 @@ export function deleteRole(data) {
// 启停角色
export function enableRole(data) {
return request({
url: `/upms/role/enabled`,
url: `/api/upms/role/enabled`,
method: 'post',
data
})
@@ -71,7 +71,7 @@ export function enableRole(data) {
// 用户-角色关联授权
export function saveUserRole(data) {
return request({
url: '/upms/role/saveUserRole',
url: '/api/upms/role/saveUserRole',
method: 'post',
data
})
@@ -80,7 +80,7 @@ export function saveUserRole(data) {
// 用户-角色关联获取
export function listByUser(id) {
return request({
url: '/upms/role/listByUser',
url: '/api/upms/role/listByUser',
method: 'post',
data: { id }
})

View File

@@ -1,7 +1,7 @@
/*
* @Date: 2020-12-14 09:07:03
* @LastEditors: zwq
* @LastEditTime: 2022-01-11 15:45:54
* @LastEditTime: 2022-03-10 16:41:55
* @FilePath: \basic-admin\src\api\user.js
* @Description: 用户管理 & 登录用户的相关api接口定义
*/
@@ -38,7 +38,7 @@ export function getUserInfo(data) {
// 修改当前用户密码
export function editUserPW(data) {
return request({
url: '/upms/user/modifyPassword',
url: '/api/upms/user/modifyPassword',
method: 'post',
data
})
@@ -47,17 +47,17 @@ export function editUserPW(data) {
// 当前用户 找回密码
export function findUserPW(data) {
return request({
url: '/upms/user/findPassword',
url: '/api/upms/user/findPassword',
method: 'post',
data
})
}
// 下面为:用户管理列表
// 获取用户列表 (根据需求可以考虑换成带分页的 /upms/user/page
// 获取用户列表 (根据需求可以考虑换成带分页的 /api/upms/user/page
export function getUserList(data) {
return request({
url: '/upms/user/page',
url: '/api/upms/user/page',
method: 'post',
data
})
@@ -66,7 +66,7 @@ export function getUserList(data) {
// 新增用户
export function addUser(data) {
return request({
url: '/upms/user/add',
url: '/api/upms/user/add',
method: 'post',
data
})
@@ -75,7 +75,7 @@ export function addUser(data) {
// 删除用户
export function delUser(data) {
return request({
url: '/upms/user/delete',
url: '/api/upms/user/delete',
method: 'post',
data
})
@@ -84,7 +84,7 @@ export function delUser(data) {
// 修改用户信息
export function editUser(data) {
return request({
url: '/upms/user/update',
url: '/api/upms/user/update',
method: 'post',
data
})
@@ -93,7 +93,7 @@ export function editUser(data) {
// 获取用户详细信息
export function getUserDetail(data) {
return request({
url: '/upms/user/get',
url: '/api/upms/user/get',
method: 'post',
data
})
@@ -102,7 +102,7 @@ export function getUserDetail(data) {
// 管理员重置用户的密码
export function resetUserPW(data) {
return request({
url: '/upms/user/resetPassword',
url: '/api/upms/user/resetPassword',
method: 'post',
data
})
@@ -111,7 +111,7 @@ export function resetUserPW(data) {
// 启停用户信息
export function enableUser(data) {
return request({
url: '/upms/user/enabled',
url: '/api/upms/user/enabled',
method: 'post',
data
})

View File

@@ -1,7 +1,7 @@
/*
* @Date: 2020-12-14 09:07:03
* @LastEditors: Please set LastEditors
* @LastEditTime: 2021-07-22 09:12:23
* @LastEditors: fzq
* @LastEditTime: 2022-03-05 11:13:00
* @FilePath: \basic-admin\src\filters\index.js
* @Description: 过滤器定义、多语言过滤器修改
*/

View File

@@ -68,6 +68,10 @@ export default {
zh: '返回',
en: 'Back'
},
export: {
zh: '导出',
en: 'Export'
},
checkLog: {
zh: '查看日志',
en: 'Check Log'
@@ -111,6 +115,10 @@ export default {
design: {
zh: '设计',
en: 'Design'
},
refresh: {
zh: '刷新',
en: 'Refresh'
}
},
navbar: {
@@ -254,8 +262,8 @@ export default {
},
routerTitle: {
dashboard: {
zh: '仪表盘',
en: 'Dashboard'
zh: '首页',
en: 'Home'
},
basic: {
zh: '系统管理',
@@ -571,10 +579,18 @@ export default {
zh: '货架信息',
en: 'Shelf Add'
},
shelfInfo: {
zh: '货位管理',
en: 'Shelf Info'
},
locationAdd: {
zh: '库位信息',
en: 'Location Add'
},
location: {
zh: '添加库位',
en: 'Location Management'
},
storageBox: {
zh: '存储箱',
en: 'Storage Box'
@@ -584,6 +600,18 @@ export default {
en: 'Position Detail Info'
}
},
process: {
zh: '工序信息',
en: 'ProcessLocation Info',
processInfo: {
zh: '工序库位信息',
en: 'ProcessLocation Info'
},
processInfoAdd: {
zh: '工序库位信息管理',
en: 'ProcessLocation Manage'
}
},
equipment: {
zh: '设备信息',
en: 'Equipment Info',
@@ -727,6 +755,10 @@ export default {
HistoricalTask: {
zh: '历史任务',
en: 'Historical Task'
},
ProcessStorageManagement: {
zh: '工序存储区域管理',
en: 'Process Storage Management'
}
},
order: {
@@ -737,8 +769,8 @@ export default {
en: 'Power Classification'
},
ProcessInfo: {
zh: '工艺信息',
en: 'Process Info'
zh: '工单工艺信息',
en: 'Order Process Info'
},
ExecutionInfo: {
zh: '执行信息',
@@ -920,6 +952,26 @@ export default {
form: {
zh: '报表管理',
en: 'Report Form',
currentInventory: {
zh: '当前库存',
en: 'Current Inventory'
},
currentEmptyBox: {
zh: '当前仓库空箱信息',
en: 'Current Empty Box'
},
currentSubstrate: {
zh: '当前基板流转情况',
en: 'Current Substrate'
},
viewSubstrate: {
zh: '查看基板',
en: 'View Substrate'
},
editSubstrate: {
zh: '编辑基板',
en: 'Edit Substrate'
},
report: {
zh: '报表列表',
en: 'Report List'

View File

@@ -1,8 +1,8 @@
/*
* @Author: gtz
* @Date: 2021-03-04 16:19:14
* @LastEditors: Please set LastEditors
* @LastEditTime: 2021-07-13 20:32:02
* @LastEditors: fzq
* @LastEditTime: 2022-03-08 15:48:54
* @Description: file content
*/
@@ -90,5 +90,9 @@ export default {
download: {
zh: '下载',
en: 'download'
},
export: {
zh: '导出',
en: 'export'
}
}

View File

@@ -1,8 +1,8 @@
/*
* @Author: gtz
* @Date: 2021-03-08 09:45:54
* @LastEditors: gtz
* @LastEditTime: 2021-04-15 19:34:46
* @LastEditors: zwq
* @LastEditTime: 2022-03-04 15:07:12
* @Description: file content
*/
@@ -47,6 +47,7 @@ export default {
sameEqError: 'Can not choice same equipment!',
processList: {
processName: 'Process Step Name',
processCode: 'process Code',
processEq: 'Process Step Equipment',
description: 'Description',
addProcess: 'Add a Process Step',

View File

@@ -1,8 +1,8 @@
/*
* @Author: gtz
* @Date: 2021-03-04 16:13:51
* @LastEditors: zwq
* @LastEditTime: 2022-01-17 15:12:18
* @LastEditors: fzq
* @LastEditTime: 2022-03-28 11:13:15
* @Description: file content
*/
export default {
@@ -30,6 +30,8 @@ export default {
cancelButtonText: 'cancel',
Tips: 'Tips',
TipsBefore: 'Are you sure you want to delete',
TipsStorageBefore: 'Confirm to add location:',
PleaseAddLocationFirst: 'Please Add Location First!',
Description: 'Description',
Remarks: 'Remarks',
Yes: 'Yes',
@@ -53,7 +55,9 @@ export default {
editLocation: 'Edit Location Point',
location: 'Location',
locationTip: 'Click the picture below to select a point. After selecting a point, select a location in the pop-up box. If you do not select a location when adding a new point, you cannot select the next point. If you want to adjust the order of the points, drag the label at the bottom of the picture to the position you want to adjust. Click to confirm the submission point information and click Reset to reset the point information to the state when the pop-up box is opened',
locationInfo: 'Location Point Info'
locationInfo: 'Location Point Info',
storageCode: 'storageBoxCode',
storageBoxFid: 'StorageBox FID Code'
},
factory: {
placeholderName: 'Name Or Code',
@@ -126,6 +130,20 @@ export default {
AlarmTypeCode: 'Alarm Type Code',
LevelCode: 'Level Code'
},
processLocation: {
sequence: 'Sequence',
locationName: 'Location Name',
isProcess: 'Location Type',
locationId: 'Location Id',
workSequenId: 'Work Sequence Id',
equipmentMark: 'Equipment Mark',
portAttrId: 'Port Attribute Id',
goodsShelves: 'Goods Shelves',
ProcessLocation: 'Process Location',
CacheLocation: 'Cache Location',
aShelf: 'Shelf A',
bShelf: 'Shelf B'
},
cache: {
CacheCode: 'Ports Code',
CacheName: 'Ports Name',
@@ -147,7 +165,20 @@ export default {
LocationName: 'Location Name',
anotherName: 'Another Name',
place: 'Place',
addCacheArea: 'add Ports Shelf'
addCacheArea: 'add Ports Shelf',
warning: 'Layers and Columns must be integer!',
logisticsEquipment: 'Logistics Equipment',
processEquipment: 'Process Equipment',
sheCode: 'Shelf Code',
sheName: 'Shelf Name',
locaNum: 'Location Number',
addLocation: 'Add Location',
columnMark: 'Column Mark',
rowMark: 'Row Mark',
status: 'Status',
man: 'Man',
woman: 'Woman',
locationNumber: 'Location Number'
},
storageBox: {
name: 'Name',
@@ -159,7 +190,10 @@ export default {
remark: 'Remark',
PositionNo: 'PositionNo',
PositionCode: 'PositionCode',
PositionCodeAlias: 'PositionCodeAlias'
PositionCodeAlias: 'PositionCodeAlias',
scrapped: 'Scrapped',
normal: 'Normal',
repairing: 'Repairing'
},
equipment: {
EquipmentName: 'Equipment Name',
@@ -225,6 +259,7 @@ export default {
wasteGrade: 'Waste Grade',
RegisterPerson: 'Register Person',
updateTime: 'Update Time',
registrationPlace: 'Registration Place',
cause: 'Cause',
causeCode: 'Cause Code',
WasteName: 'Waste Name',
@@ -236,7 +271,7 @@ export default {
entryType: 'Manual/Automatic',
automatic: 'automatic',
manual: 'Manual',
workOrderId: 'workOrderId'
workOrderName: 'Work Order Name'
},
productPool: {
productName: 'Product Name',
@@ -286,6 +321,7 @@ export default {
BoxStatus: 'Box Status',
BoxNumber: 'Box Number',
PreviousOperation: 'Previous Operation',
ExecutionOperation: 'Execution Operation',
NextOperation: 'Next Operation',
CompletionTime: 'Completion Time',
StartLocation: 'Start Location',
@@ -293,15 +329,20 @@ export default {
TaskLocation: 'Task Location',
TargetLocation: 'Target Location',
OrderName: 'Order Name',
OrderType: 'Order Type',
OrderCode: 'Order Code',
IssueOrderTime: 'Issue Order Time',
startProduceTime: 'Start Produce Time',
TotalProcessName: 'Total Process Name',
Priority: 'Priority',
OrderStatus: 'Order Status',
triggerOrigin: 'Trigger Origin',
ProcessOrNot: 'Process Or Not',
Unit: 'Unit',
scrapQuantity: 'Scrap Quantity',
RelateProcess: 'Relate Process',
PlanProcessQuantity: 'Plan Process Quantity',
actualProcessQuantity: 'Actual Process Quantity',
SubProcessName: 'Sub Process Name',
TaskBoxNumber: 'Task Box Number',
FullBoxNumber: 'Full Box Number',
@@ -314,6 +355,19 @@ export default {
IsEmpty: 'Is Empty',
IsEmptyBox: 'Is Empty Box',
LocationName: 'Location Name',
LocationCode: 'Location Code'
LocationCode: 'Location Code',
PerformTaskManual: 'Perform Task Manual',
processStorageLink: 'Process Storage Link',
SelectStorageType: 'Select Storage Type',
LocationStorageSetting: 'Location Storage Setting',
publishTask: 'Publish The Task',
startPosition: 'Start',
endPosition: 'End',
taskType: 'Task Type',
ExWarehouse: 'Ex Warehouse',
InWarehouse: 'In Warehouse',
Circulation: 'Circulation',
Initialization: 'Initialization',
Damage: 'Damage'
}
}

View File

@@ -0,0 +1,23 @@
/*
* @Author: gtz
* @Date: 2022-03-15 16:42:34
* @LastEditors: gtz
* @LastEditTime: 2022-03-16 20:01:32
* @Description: file content
* @FilePath: \mt-ck-wms-ui\src\lang\i18n\en\module\dashboard.js
*/
export default {
first: 'First Row',
second: 'Second Row',
title: 'WMS Inventory Information',
pageHeader: 'No.',
pageFooter: ' Page',
isEmpty: 'Is Empty',
status: 'Status',
storageBoxCode: 'Cassette Code',
name: 'Location Name',
attribute: 'Location Attribute',
cassetteStatus: 'Cassette Status',
workOrderNo: 'Work Order Number'
}

View File

@@ -2,7 +2,7 @@
* @Author: gtz
* @Date: 2021-03-04 16:12:46
* @LastEditors: gtz
* @LastEditTime: 2021-04-22 19:49:39
* @LastEditTime: 2022-03-15 16:44:11
* @Description: file content
*/
@@ -17,6 +17,7 @@ import quality from './quality'
import factory from './factory'
import formManage from './formManage'
import report from './report'
import dashboard from './dashboard'
export default {
basicData,
@@ -29,5 +30,6 @@ export default {
quality,
factory,
formManage,
report
report,
dashboard
}

View File

@@ -1,7 +1,7 @@
/*
* @Date: 2021-03-13 13:49:16
* @LastEditors: zwq
* @LastEditTime: 2021-04-15 09:59:15
* @LastEditTime: 2022-03-04 09:21:36
* @FilePath: \basic-admin\src\lang\i18n\en\module\quality.js
* @Description:
*/
@@ -90,5 +90,10 @@ export default {
subTitle: 'Scrap Category Statistics',
completeWaste: 'Complete Waste',
CanBeUsedAfterProcessing: 'Can be used after processing'
},
QCPplan: {
QCPcode: 'QCP Code',
getTime: 'Get Time',
detail: 'Detail'
}
}

View File

@@ -1,8 +1,8 @@
/*
* @Author: gtz
* @Date: 2021-04-22 19:48:46
* @LastEditors: gtz
* @LastEditTime: 2021-04-23 14:36:08
* @LastEditors: fzq
* @LastEditTime: 2022-03-18 14:50:00
* @Description: file content
*/
@@ -11,7 +11,35 @@ export default {
reportName: 'Report name',
reportSort: 'Report Sort',
createTime: 'Create Date',
operation: 'Operation'
operation: 'Operation',
storageBoxNumber: 'StorageBox Number',
queryFiltering: 'Query Filtering',
storageBoxReport: 'StorageBoxReport'
},
inventory: {
code: 'Code',
status: 'Status',
inprocessCode: 'Inprocess Code',
nextprocessCode: 'Next Process Code',
currentLocation: 'Current Location',
storeTime: 'Store Time',
orderName: 'Order Name',
substrateDetails: 'Substrate Details',
viewSubstrates: 'View Substrates',
manual: 'Manual',
downl: 'Download'
},
substrate: {
substrateCode: 'SubstrateCode',
location: 'Location',
storeTime: 'Store Time',
substrateStatus: 'Substrate Status',
editSubstrate: 'Edit Substrate',
interCode: 'Inter Code',
subStorageStatus: 'Sub Storage Status',
load: 'Load',
unload: 'Unload',
machineHandID: 'Machine Hand ID'
},
reportSort: {
all: 'All'

View File

@@ -1,8 +1,8 @@
/*
* @Author: gtz
* @Date: 2021-03-08 09:46:00
* @LastEditors: gtz
* @LastEditTime: 2021-04-15 19:35:00
* @LastEditors: zwq
* @LastEditTime: 2022-03-04 15:07:02
* @Description: file content
*/
@@ -47,6 +47,7 @@ export default {
sameEqError: '不能选择相同的设备!',
processList: {
processName: '工序名称',
processCode: '工序编码',
processEq: '工序设备',
description: '描述',
addProcess: '添加一道工序',

View File

@@ -1,9 +1,9 @@
/*
* @Author: gtz
* @Date: 2021-03-04 16:13:51
* @LastEditors: zwq
* @LastEditTime: 2022-01-17 15:12:12
* @Description: file content
* @LastEditors: fzq
* @LastEditTime: 2022-03-28 11:13:13
* * @Description: file content
*/
export default {
visual: {
@@ -30,6 +30,8 @@ export default {
cancelButtonText: '取消',
Tips: '提示',
TipsBefore: '确定删除',
TipsStorageBefore: '确定添加库位:',
PleaseAddLocationFirst: '请先添加库位!',
Description: '描述',
Remarks: '备注',
Or: '或',
@@ -53,7 +55,9 @@ export default {
editLocation: '编辑库位点',
location: '库位',
locationTip: '点击下方图片选点,选点后在弹出框内选择库位,新增点位时未选择库位无法进行下一个选点,若想调整点位顺序可拖动图片下方的标签到你想调整的位置,点击确定提交点位信息,点击重置将点位信息重置到打开弹出框时的状态',
locationInfo: '库位点信息'
locationInfo: '库位点信息',
storageCode: '存储箱号',
storageBoxFid: '存储箱名FID编码'
},
factory: {
placeholderName: '名称或编码',
@@ -135,6 +139,8 @@ export default {
AreaName: '货架名称',
rowNum: '行数',
columnNum: '列数',
rowMark: '行标',
columnMark: '列标',
Shelf: '货架',
ManageShelves: '管理货架',
ShelfCode: '货架编码',
@@ -145,13 +151,25 @@ export default {
ManageLocation: '管理货位',
LocationCode: '库位编码',
LocationName: '库位名称',
anotherName: '别名',
locationType: '库位类型',
anotherName: '库位别名',
place: '位置',
addCacheArea: '添加货架'
addCacheArea: '添加货架',
addLocation: '添加库位',
status: '状态',
warning: '行列标必须为整数!',
logisticsEquipment: '物流设备',
processEquipment: '工艺设备',
sheCode: '货架编码',
sheName: '货架名',
locaNum: '库存数量',
man: '男',
woman: '女',
locationNumber: '库位编号'
},
storageBox: {
name: '名称',
code: '编码',
name: '存储箱名称',
code: '存储箱编码',
alias: '别名',
StorageQuantity: '存储数量',
status: '状态',
@@ -159,9 +177,15 @@ export default {
remark: '备注',
PositionNo: '位置序号',
PositionCode: '位置编码',
PositionCodeAlias: '位置编码别名'
PositionCodeAlias: '位置编码别名',
scrapped: '报废',
normal: '正常',
repairing: '维修中'
},
equipment: {
shortName: '名称缩写',
enName: '英文名称',
EquipmentName: '设备名称',
EquipmentCode: '设备编码',
EquipmentType: '设备类型',
@@ -225,6 +249,7 @@ export default {
wasteGrade: '废品等级',
RegisterPerson: '登记人',
updateTime: '登记时间',
registrationPlace: '登记地点',
cause: '报废原因',
causeCode: '报废原因编码',
WasteName: '废品报废名称',
@@ -236,7 +261,21 @@ export default {
entryType: '手动/自动',
automatic: '自动',
manual: '手动',
workOrderId: '工单名称'
workOrderName: '工单名称'
},
processLocation: {
sequence: '顺序',
locationName: '库位名',
isProcess: '库位类型',
locationId: '库位ID',
workSequenId: '工序ID',
equipmentMark: '设备标记',
portAttrId: '库位属性ID',
goodsShelves: '货架',
CacheLocation: '缓存区库位',
ProcessLocation: '工序库位',
aShelf: 'a货架',
bShelf: 'b货架'
},
productPool: {
productName: '产品名称',
@@ -286,6 +325,7 @@ export default {
BoxStatus: '箱状态',
BoxNumber: '箱号',
PreviousOperation: '上一个工序',
ExecutionOperation: '执行工序',
NextOperation: '下一个工序',
CompletionTime: '完成时间',
StartLocation: '开始库位',
@@ -293,15 +333,20 @@ export default {
TaskLocation: '任务库位',
TargetLocation: '目标库位',
OrderName: '工单名',
OrderType: '工单类型',
OrderCode: '工单编码',
IssueOrderTime: '下发工单时间',
startProduceTime: '开始生产时间',
TotalProcessName: '总工艺名称',
Priority: '优先级',
scrapQuantity: '废片数量',
OrderStatus: '工单状态',
triggerOrigin: '工单发起方',
ProcessOrNot: '是否关联工艺',
Unit: '单位',
RelateProcess: '关联工艺',
PlanProcessQuantity: '计划加工数量',
actualProcessQuantity: '实际加工数量',
SubProcessName: '分工艺',
TaskBoxNumber: '任务箱号',
FullBoxNumber: '空箱号',
@@ -314,7 +359,19 @@ export default {
IsEmpty: '是否有基板',
IsEmptyBox: '是否空箱',
LocationName: '库位名',
LocationCode: '库位编码'
LocationCode: '库位编码',
PerformTaskManual: '手动执行任务',
processStorageLink: '工序关联库位',
SelectStorageType: '选择库位类型',
LocationStorageSetting: '库位存储箱设置',
publishTask: '发布任务',
startPosition: '起点',
endPosition: '终点',
taskType: '任务类型',
ExWarehouse: '出库',
InWarehouse: '入库',
Circulation: '流转',
Initialization: '初始化',
Damage: '损坏'
}
}

View File

@@ -0,0 +1,23 @@
/*
* @Author: gtz
* @Date: 2022-03-15 16:42:34
* @LastEditors: gtz
* @LastEditTime: 2022-03-16 20:01:27
* @Description: file content
* @FilePath: \mt-ck-wms-ui\src\lang\i18n\zh\module\dashboard.js
*/
export default {
first: '第一排',
second: '第二排',
title: 'WMS库存信息',
pageHeader: '第',
pageFooter: '页',
isEmpty: '是否为空',
status: '状态',
storageBoxCode: '存储箱编码',
name: '库位名',
attribute: '库位属性',
cassetteStatus: '存储箱状态',
workOrderNo: '工单号'
}

View File

@@ -2,7 +2,7 @@
* @Author: gtz
* @Date: 2021-03-04 16:12:46
* @LastEditors: gtz
* @LastEditTime: 2021-04-22 19:49:47
* @LastEditTime: 2022-03-15 16:44:05
* @Description: file content
*/
@@ -17,6 +17,7 @@ import quality from './quality'
import factory from './factory'
import formManage from './formManage'
import report from './report'
import dashboard from './dashboard'
export default {
basicData,
@@ -29,5 +30,6 @@ export default {
quality,
factory,
formManage,
report
report,
dashboard
}

View File

@@ -1,7 +1,7 @@
/*
* @Date: 2021-03-13 13:49:07
* @LastEditors: zwq
* @LastEditTime: 2021-04-15 09:58:18
* @LastEditTime: 2022-03-04 09:21:04
* @FilePath: \basic-admin\src\lang\i18n\zh\module\quality.js
* @Description:
*/
@@ -90,5 +90,10 @@ export default {
subTitle: '废品分类统计',
completeWaste: '完全废品',
CanBeUsedAfterProcessing: '加工可用'
},
QCPplan: {
QCPcode: 'QCP项目编码',
getTime: '获取时间',
detail: '详情'
}
}

View File

@@ -1,8 +1,8 @@
/*
* @Author: gtz
* @Date: 2021-04-22 19:48:46
* @LastEditors: gtz
* @LastEditTime: 2021-04-27 12:13:25
* @LastEditors: fzq
* @LastEditTime: 2022-03-18 14:49:43
* @Description: file content
*/
@@ -11,7 +11,35 @@ export default {
reportName: '报表名称',
reportSort: '报表分类',
createTime: '添加时间',
operation: '操作'
operation: '操作',
storageBoxNumber: '存储箱号',
queryFiltering: '查询过滤',
storageBoxReport: '存储箱报表'
},
inventory: {
code: '存储箱号',
status: '存储箱状态',
inprocessCode: '完成工序',
nextprocessCode: '下一个工序',
currentLocation: '当前库位',
storeTime: '存放时间',
orderName: '工单名',
substrateDetails: '详情基板',
viewSubstrates: '查看基板',
manual: '使用流程',
downl: '导出'
},
substrate: {
substrateCode: '基板编码',
location: '当前位置',
storeTime: '入库时间',
substrateStatus: '基板状态',
editSubstrate: '编辑基板',
interCode: '内部编码',
subStorageStatus: '存取状态',
load: '上片',
unload: '下片',
machineHandID: '机械手ID'
},
reportSort: {
all: '全部'

View File

@@ -11,10 +11,10 @@
<div class="right-menu">
<div v-if="showhome" class="right-menu-back" @click="toHome">
<!-- <div v-if="showhome" class="right-menu-back" @click="toHome">
<svg-icon class="item-icon" icon-class="home" />
{{ 'navbar.homepage' | i18nFilter }}
</div>
</div> -->
<template>
<lang-select class="right-menu-item hover-effect" />
@@ -34,16 +34,6 @@
<!-- <i class="el-icon-caret-bottom" /> -->
</div>
<el-dropdown-menu slot="dropdown">
<router-link to="/profile/index">
<el-dropdown-item>
<svg-icon class="item-icon" icon-class="user" />
{{ 'navbar.profile' | i18nFilter }}
</el-dropdown-item>
</router-link>
<el-dropdown-item @click.native="toHome">
<svg-icon class="item-icon" icon-class="help" />
{{ 'navbar.help' | i18nFilter }}
</el-dropdown-item>
<el-dropdown-item @click.native="logout">
<svg-icon class="item-icon" icon-class="logout" />
{{ 'navbar.logOut' | i18nFilter }}

View File

@@ -59,19 +59,6 @@ export const constantRoutes = [
},
// {
// path: '/',
// component: Layout,
// redirect: '/dashboard',
// children: [
// {
// path: 'dashboard',
// component: () => import('@/views/dashboard/index'),
// name: 'Dashboard',
// meta: { title: routerTitle.dashboard?.[language] || routerTitle.dashboard.en, icon: 'form', iconPart: 'dashboard', affix: true, required: true, requireToken: true }
// }
// ]
// },
// {
// path: '/',
// component: () => import('@/views/ChoicePart'),
// hidden: true,
// meta: { requireToken: true }
@@ -91,6 +78,20 @@ export const constantRoutes = [
component: () => import('@/views/error-page/401'),
hidden: true
},
{
path: '/dashboard',
component: Layout,
redirect: '/dashboard',
name: 'Dash',
children: [
{
path: 'dashboard',
component: () => import('@/views/dashboard/index'),
name: 'Dashboard',
meta: { title: routerTitle.dashboard?.[language] || routerTitle.dashboard.en, icon: 'form', affix: true, required: true, requireToken: true, noCache: true }
}
]
},
{
path: '/',
component: Layout,
@@ -98,11 +99,19 @@ export const constantRoutes = [
name: 'basicData',
meta: { title: routerTitle.basicData?.[language] || routerTitle.basicData.en, icon: 'form', iconPart: 'basicData', affix: true, required: true, requireToken: true },
children: [
// 缓存区信息
{
path: 'cache',
component: () => import('@/views/basicData/Cache/cache'),
name: 'cache',
hidden: true,
meta: { title: routerTitle.basicData.ports.ports?.[language] || routerTitle.basicData.ports.ports.en, icon: 'form', affix: true }
},
{
path: 'ports',
component: () => import('@/views/basicData/Cache/cache'),
component: () => import('@/views/basicData/Cache/shelf'),
name: 'ports',
meta: { title: routerTitle.basicData.ports.ports?.[language] || routerTitle.basicData.ports.ports.en, icon: 'form', affix: true }
meta: { title: routerTitle.basicData.ports.shelfInfo?.[language] || routerTitle.basicData.ports.shelfInfo.en, icon: 'form', affix: true }
},
{
path: 'area',
@@ -147,6 +156,20 @@ export const constantRoutes = [
hidden: true,
meta: { title: routerTitle.basicData.ports.PositionDetailInfo?.[language] || routerTitle.basicData.ports.PositionDetailInfo.en, icon: 'form', affix: true }
},
{
path: 'processInfo',
component: () => import('@/views/basicData/Process/processInfo'),
name: 'processInfo',
hidden: true,
meta: { title: routerTitle.basicData.process.processInfo?.[language] || routerTitle.basicData.process.processInfo.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'processInfoAdd',
component: () => import('@/views/basicData/Process/components/processInfo-add'),
name: 'processInfoAdd',
hidden: true,
meta: { title: routerTitle.basicData.process.processInfoAdd?.[language] || routerTitle.basicData.process.processInfoAdd.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'equipmentInfo',
component: () => import('@/views/basicData/Equipment/equipmentInfo'),
@@ -164,6 +187,7 @@ export const constantRoutes = [
path: '/Materials',
component: () => import('@/views/basicData/index'),
name: 'Materials',
hidden: true,
meta: { title: routerTitle.basicData.materials?.[language] || routerTitle.basicData.materials.en, icon: 'form', affix: true, required: true, requireToken: true },
children: [
{
@@ -189,9 +213,16 @@ export const constantRoutes = [
]
},
{
path: '/dataDictionary',
path: 'staff',
component: () => import('@/views/basicData/GroupModule/staff'),
name: 'staff',
hidden: true,
meta: { title: routerTitle.basicData.teamManage.staff?.[language] || routerTitle.basicData.teamManage.staff.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: '/DataDictionary',
component: () => import('@/views/basicData/index'),
name: 'dataDictionary',
name: 'DataDictionary',
meta: { title: routerTitle.basicData.dataDictionaryType.dataDictionary?.[language] || routerTitle.basicData.dataDictionaryType.dataDictionary.en, icon: 'form', affix: true, required: true, requireToken: true },
children: [{
path: 'dataDictionary',
@@ -231,7 +262,7 @@ export const constantRoutes = [
{
path: 'processList',
component: () => import('@/views/art/processList'),
name: 'Process',
name: 'processList',
meta: { title: routerTitle.technology.processList?.[language] || routerTitle.technology.processList.en, icon: 'form', affix: true, required: true, requireToken: true }
}
]
@@ -239,7 +270,7 @@ export const constantRoutes = [
{
path: '/Warehouse',
component: Layout,
redirect: '/Warehouse/workOrderManage',
redirect: '/Warehouse/StorageBoxInfo',
name: 'Warehouse',
meta: { title: routerTitle.Warehouse?.[language] || routerTitle.Warehouse.en, icon: 'form', iconPart: 'orderManage', affix: true, required: true, requireToken: true },
children: [
@@ -252,6 +283,7 @@ export const constantRoutes = [
},
{
path: '/StorageBoxRack',
hidden: true,
component: () =>
import('@/views/basicData/Warehouse/StorageBoxRack'),
name: 'StorageBoxRack',
@@ -270,6 +302,29 @@ export const constantRoutes = [
import('@/views/basicData/Warehouse/HistoricalTask'),
name: 'HistoricalTask',
meta: { title: routerTitle.Warehouse.HistoricalTask?.[language] || routerTitle.Warehouse.HistoricalTask.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: '/ProcessStorageManagement',
component: () =>
import('@/views/basicData/Warehouse/ProcessStorageManagement'),
name: 'ProcessStorageManagement',
meta: { title: routerTitle.Warehouse.ProcessStorageManagement?.[language] || routerTitle.Warehouse.ProcessStorageManagement.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: '/ProcessStorageManagementInfo',
hidden: true,
component: () =>
import('@/views/basicData/Warehouse/components/ProcessStorageManagement-info'),
name: 'ProcessStorageManagementInfo',
meta: { title: routerTitle.Warehouse.ProcessStorageManagement?.[language] || routerTitle.Warehouse.ProcessStorageManagement.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: '/ProcessStorageLink',
hidden: true,
component: () =>
import('@/views/basicData/Warehouse/components/processStorageLink'),
name: 'ProcessStorageLink',
meta: { title: routerTitle.Warehouse.ProcessStorageManagement?.[language] || routerTitle.Warehouse.ProcessStorageManagement.en, icon: 'form', affix: true, required: true, requireToken: true }
}
]
},
@@ -345,12 +400,12 @@ export const constantRoutes = [
name: 'ScrapType',
meta: { title: routerTitle.basicData.scrap.scrapType?.[language] || routerTitle.basicData.scrap.scrapType.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'EquipmentScrapGrade',
component: () => import('@/views/basicData/EquipmentScrapGrade'),
name: 'EquipmentScrapGrade',
meta: { title: routerTitle.basicData.EquipmentScrapGrade?.[language] || routerTitle.basicData.EquipmentScrapGrade.en, icon: 'form', affix: true, required: true, requireToken: true }
},
// {
// path: 'EquipmentScrapGrade',
// component: () => import('@/views/basicData/EquipmentScrapGrade'),
// name: 'EquipmentScrapGrade',
// meta: { title: routerTitle.basicData.EquipmentScrapGrade?.[language] || routerTitle.basicData.EquipmentScrapGrade.en, icon: 'form', affix: true, required: true, requireToken: true }
// },
{
path: 'scrap',
component: () => import('@/views/QualityManager/scrap'),
@@ -368,36 +423,37 @@ export const constantRoutes = [
name: 'formManage',
meta: { title: routerTitle.form?.[language] || routerTitle.form.en, icon: 'form', iconPart: 'formManage', affix: true, required: true, requireToken: true, unuse: false },
children: [{
path: 'report',
component: () => import('@/views/report-manage/ReportSortChoise'),
name: 'Report',
meta: { title: routerTitle.form.report?.[language] || routerTitle.form.report.en, icon: 'form', affix: true, required: true, requireToken: true }
path: 'currentInventory',
component: () => import('@/views/report-manage/CurrentInventory'),
name: 'currentInventory',
meta: { title: routerTitle.form.currentInventory?.[language] || routerTitle.form.currentInventory.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'report-sort-list',
component: () => import('@/views/report-manage/Report'),
name: 'ReportSortList',
path: 'currentEmptyBox',
component: () => import('@/views/report-manage/CurrentEmptyBox'),
name: 'currentEmptyBox',
meta: { title: routerTitle.form.currentEmptyBox?.[language] || routerTitle.form.currentEmptyBox.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'currentSubstrate',
component: () => import('@/views/report-manage/CurrentSubstrate'),
name: 'currentSubstrate',
hidden: true,
meta: { title: routerTitle.form.reportSortList?.[language] || routerTitle.form.reportSortList.en, icon: 'form', affix: true, required: true, requireToken: true }
meta: { title: routerTitle.form.currentSubstrate?.[language] || routerTitle.form.currentSubstrate.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'report-view',
component: () => import('@/views/report-manage/ReportView'),
name: 'ReportDesign',
meta: { title: routerTitle.form.reportView?.[language] || routerTitle.form.reportView.en, icon: 'form', affix: true, required: true, requireToken: true },
hidden: true
path: 'editSubstrate',
component: () => import('@/views/report-manage/components/edit-substrate'),
name: 'editSubstrate',
hidden: true,
meta: { title: routerTitle.form.editSubstrate?.[language] || routerTitle.form.editSubstrate.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'report-design',
component: () => import('@/views/report-manage/ReportDesign'),
name: 'ReportDesign',
meta: { title: routerTitle.form.reportDesign?.[language] || routerTitle.form.reportDesign.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'report-sort',
component: () => import('@/views/report-manage/ReportSort/index'),
name: 'ReportSort',
meta: { title: routerTitle.form.reportSort?.[language] || routerTitle.form.reportSort.en, icon: 'form', affix: true, required: true, requireToken: true }
path: 'viewSubstrate',
component: () => import('@/views/report-manage/components/viewSubstrate'),
name: 'viewSubstrate',
hidden: true,
meta: { title: routerTitle.form.viewSubstrate?.[language] || routerTitle.form.viewSubstrate.en, icon: 'form', affix: true, required: true, requireToken: true }
}]
},
{
@@ -443,7 +499,7 @@ export const constantRoutes = [
path: '/basic',
component: Layout,
redirect: '/user/manager',
name: 'ArticleManager',
name: 'basic',
meta: { title: routerTitle.basic?.[language] || routerTitle.basic.en, icon: 'form', iconPart: 'ArticleManager', affix: true, required: true, requireToken: true },
children: [
{
@@ -462,7 +518,6 @@ export const constantRoutes = [
path: 'menumanager',
component: () => import('@/views/MenuManager'),
name: 'MenuManager',
hidden: true,
meta: { title: routerTitle.basic.menumanage?.[language] || routerTitle.basic.menumanage.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{

View File

@@ -198,3 +198,40 @@ aside {
.el-dialog__wrapper {
backdrop-filter: blur(5px);
}
::-webkit-scrollbar {
width: 8px;
height: 8px;
background-color: transparent;
}
::-webkit-scrollbar-track-piece {
background-color:rgba(144,147,153,0);
}
::-webkit-scrollbar-corner {
background-color:rgba(144,147,153,0);
}
::-webkit-scrollbar-track {
width: 6px;
background: rgba(144,147,153,0);
-webkit-border-radius: 2em;
-moz-border-radius: 2em;
border-radius: 2em;
}
::-webkit-scrollbar-thumb {
background-color: rgba(144,147,153,.5);
background-clip: padding-box;
min-height: 28px;
-webkit-border-radius: 2em;
-moz-border-radius: 2em;
border-radius: 2em;
transition: background-color .3s;
cursor: pointer;
}
::-webkit-scrollbar-thumb:hover {
background-color: rgba(144,147,153,.3);
}

View File

@@ -1,8 +1,8 @@
<!--
* @Author: DY
* @Date: 2021-12-16 15:41:11
* @LastEditors: DY
* @LastEditTime: 2022-03-03 15:26:05
* @LastEditors: zwq
* @LastEditTime: 2022-03-04 09:04:30
* @Description: E10
-->
<template>
@@ -84,18 +84,18 @@ export default {
},
created() {
// this.getEqList()
this.getList()
// this.getList()
},
methods: {
async getEqList() {
const res = await equipmentList({
current: 1,
size: 999
})
if (res.code === 0) {
this.eqList = res.data
}
},
// async getEqList() {
// const res = await equipmentList({
// current: 1,
// size: 999
// })
// if (res.code === 0) {
// this.eqList = res.data
// }
// },
toE10() {
this.$router.push({
name: 'E10'

View File

@@ -1,8 +1,8 @@
<!--
* @Author: DY
* @Date: 2021-12-16 15:41:11
* @LastEditors: DY
* @LastEditTime: 2022-03-03 15:26:28
* @LastEditors: zwq
* @LastEditTime: 2022-03-04 09:04:19
* @Description: MCBF
-->
<template>
@@ -83,18 +83,18 @@ export default {
},
created() {
// this.getEqList()
this.getList()
// this.getList()
},
methods: {
async getEqList() {
const res = await equipmentList({
current: 1,
size: 999
})
if (res.code === 0) {
this.eqList = res.data
}
},
// async getEqList() {
// const res = await equipmentList({
// current: 1,
// size: 999
// })
// if (res.code === 0) {
// this.eqList = res.data
// }
// },
toE10() {
this.$router.push({
name: 'E10'

View File

@@ -1,8 +1,8 @@
<!--
* @Author: DY
* @Date: 2021-12-16 15:41:11
* @LastEditors: DY
* @LastEditTime: 2022-03-03 15:26:44
* @LastEditors: zwq
* @LastEditTime: 2022-03-04 09:04:09
* @Description: MTTR
-->
<template>
@@ -83,18 +83,18 @@ export default {
},
created() {
// this.getEqList()
this.getList()
// this.getList()
},
methods: {
async getEqList() {
const res = await equipmentList({
current: 1,
size: 999
})
if (res.code === 0) {
this.eqList = res.data
}
},
// async getEqList() {
// const res = await equipmentList({
// current: 1,
// size: 999
// })
// if (res.code === 0) {
// this.eqList = res.data
// }
// },
toE10() {
this.$router.push({
name: 'E10'

View File

@@ -1,8 +1,8 @@
<!--
* @Author: DY
* @Date: 2021-12-16 15:41:11
* @LastEditors: DY
* @LastEditTime: 2022-03-03 15:26:56
* @LastEditors: zwq
* @LastEditTime: 2022-03-04 09:03:58
* @Description: OEE
-->
<template>
@@ -83,18 +83,18 @@ export default {
},
created() {
// this.getEqList()
this.getList()
// this.getList()
},
methods: {
async getEqList() {
const res = await equipmentList({
current: 1,
size: 999
})
if (res.code === 0) {
this.eqList = res.data
}
},
// async getEqList() {
// const res = await equipmentList({
// current: 1,
// size: 999
// })
// if (res.code === 0) {
// this.eqList = res.data
// }
// },
toE10() {
this.$router.push({
name: 'E10'

View File

@@ -1,8 +1,8 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 15:41:11
* @LastEditors: DY
* @LastEditTime: 2022-03-03 16:22:24
* @LastEditors: zwq
* @LastEditTime: 2022-03-04 09:03:35
* @Description: E10详情表格
-->
<template>
@@ -108,15 +108,15 @@ export default {
this.listQuery.startTime = this.time1
this.listQuery.endTime = this.time2
this.listQuery.equipmentName = this.equipmentName
getE10StackDetail(this.listQuery).then(res => {
if (res.data !== []) {
this.list = res.data.detail.records
this.total = res.data.detail.total
this.list.forEach(item => {
item.equipmentName = this.equipmentName
})
}
})
// getE10StackDetail(this.listQuery).then(res => {
// if (res.data !== []) {
// this.list = res.data.detail.records
// this.total = res.data.detail.total
// this.list.forEach(item => {
// item.equipmentName = this.equipmentName
// })
// }
// })
}
}
}

View File

@@ -1,8 +1,8 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 15:41:11
* @LastEditors: DY
* @LastEditTime: 2022-03-03 16:46:06
* @LastEditors: zwq
* @LastEditTime: 2022-03-04 09:03:23
* @Description: Mttr详情表格
-->
<template>
@@ -109,12 +109,12 @@ export default {
this.listQuery.startTime = this.time1
this.listQuery.endTime = this.time2
this.listQuery.equipmentName = this.equipmentName
getMttrDetail(this.listQuery).then(res => {
if (res.data !== []) {
this.list = res.data.detail.records
this.total = res.data.detail.total
}
})
// getMttrDetail(this.listQuery).then(res => {
// if (res.data !== []) {
// this.list = res.data.detail.records
// this.total = res.data.detail.total
// }
// })
}
}
}

View File

@@ -2,18 +2,35 @@
* @Author: zwq
* @Date: 2020-12-29 15:41:11
* @LastEditors: zwq
* @LastEditTime: 2022-03-03 14:28:58
* @LastEditTime: 2022-03-04 09:22:58
* @Description:
-->
<template>
<div class="app-container">
<head-form
:placeholder-name="placeholderName"
:key-name="keyName"
:show-add="showAdd"
@getDataList="getList"
@add="addNew"
/>
<el-form
ref="formData"
:rules="rules"
:model="listQuery"
:inline="true"
size="medium"
label-width="100px"
>
<el-form-item :label="$t('module.basicData.Warehouse.TimeSlot')" prop="time">
<el-date-picker
v-model="listQuery.timeSlot"
type="daterange"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
:start-placeholder="$t('module.orderManage.order.StartTime')"
:end-placeholder="$t('module.orderManage.order.StartTime')"
:range-separator="$t('module.orderManage.order.To')"
clearable
/>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="getList()"> {{ 'btn.search' | i18nFilter }} </el-button>
</el-form-item>
</el-form>
<base-table
:page="listQuery.current"
:limit="listQuery.size"
@@ -35,18 +52,17 @@
:limit.sync="listQuery.size"
@pagination="getList()"
/>
<Factory-add v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getList" />
</div>
</template>
<script>
import i18n from '@/lang'
import { StateConfigList, StateConfigDelete } from '@/api/basicData/StateConfig'
import HeadForm from '@/components/basicData/HeadForm'
import FactoryAdd from './components/ExecutionInfoDetail.vue'
import BaseTable from '@/components/BaseTable'
import Pagination from '@/components/Pagination' // Secondary package based on el-pagination
import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn'
import { timeFormatter } from '@/filters'
import basicData from '@/filters/basicData'
import i18n from '@/lang'
/**
* 表格表头配置项 TypeScript接口注释
* tableConfig<ConfigItem> = []
@@ -65,62 +81,51 @@ import basicData from '@/filters/basicData'
const tableBtn = [
{
type: 'edit',
btnName: 'btn.edit'
type: 'see',
btnName: 'btn.see'
}
// {
// type: 'delete',
// btnName: 'btn.delete'
// }
]
const tableProps = [
{
prop: 'name',
label: i18n.t('module.quality.QCPplan.QCPcode'),
align: 'center'
},
{
prop: 'createTime',
label: i18n.t('module.basicData.factory.createTime'),
label: i18n.t('module.quality.QCPplan.getTime'),
filter: timeFormatter,
align: 'center'
},
{
prop: 'status',
label: i18n.t('module.basicData.StateConfig.status'),
align: 'center'
},
{
prop: 'twinkle',
label: i18n.t('module.basicData.StateConfig.Twinkle'),
filter: basicData('onDuty'),
align: 'center'
},
{
prop: 'colour',
label: i18n.t('module.basicData.StateConfig.DisplayColor'),
align: 'center'
},
{
prop: 'description',
label: i18n.t('module.basicData.visual.Remarks'),
align: 'center'
}
]
export default {
name: 'QCPplan',
components: { Pagination, BaseTable, MethodBtn, HeadForm },
name: 'ExecutionInfo',
components: { Pagination, BaseTable, MethodBtn, FactoryAdd },
filters: {
statusFilter(status) {
const statusMap = {
published: 'success',
draft: 'info',
deleted: 'danger'
}
return statusMap[status]
}
},
data() {
return {
keyName: i18n.t('module.basicData.visual.keyword'),
placeholderName: this.$t('module.basicData.StateConfig.status'),
addOrUpdateVisible: false,
tableBtn,
trueWidth: 150,
trueWidth: 200,
tableProps,
list: [],
total: 0,
showAdd: false,
listLoading: true,
rules: {},
listQuery: {
current: 1,
size: 10
size: 10,
timeSlot: []
}
}
},
@@ -129,37 +134,32 @@ export default {
},
methods: {
handleClick(raw) {
console.log(raw)
if (raw.type === 'delete') {
this.$confirm(`${this.$t('module.basicData.visual.TipsBefore')}[${raw.data.status}]?`, this.$t('module.basicData.visual.Tips'), {
confirmButtonText: this.$t('module.basicData.visual.confirmButtonText'),
cancelButtonText: this.$t('module.basicData.visual.cancelButtonText'),
type: 'warning'
}).then(() => {
StateConfigDelete(raw.data.id).then(response => {
this.$message({
message: this.$t('module.basicData.visual.success'),
type: 'success',
duration: 1500,
onClose: () => {
this.getList()
}
})
})
}).catch(() => {})
}
this.addNew(raw.data.id)
},
getList(key) {
this.listLoading = true
this.listQuery.status = key
StateConfigList(this.listQuery).then(response => {
if (response.data.records) {
this.list = response.data.records
} else {
this.list.splice(0, this.list.length)
}
this.total = response.data.total
this.listLoading = false
getList() {
// this.listLoading = true
if (this.listQuery.timeSlot) {
this.listQuery.startTime = this.listQuery.timeSlot[0]
this.listQuery.endTime = this.listQuery.timeSlot[1]
} else {
this.listQuery.startTime = ''
this.listQuery.endTime = ''
}
// ExecutionInfoList(this.listQuery).then(response => {
// if (response.data.records) {
// this.list = response.data.records
// } else {
// this.list.splice(0, this.list.length)
// }
// this.total = response.data.total
this.listLoading = false
// })
},
// 新增 / 修改
addNew(id) {
this.addOrUpdateVisible = true
this.$nextTick(() => {
this.$refs.addOrUpdate.init(id)
})
}
}

View File

@@ -0,0 +1,115 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 16:37:56
* @LastEditors: zwq
* @LastEditTime: 2022-01-17 15:21:50
* @Description:
-->
<template>
<el-dialog
:title="'btn.see' | i18nFilter"
:visible.sync="visible"
>
<el-row :gutter="10">
<el-form
ref="dataForm"
:model="dataForm"
size="medium"
label-width="110px"
label-position="left"
>
<el-col :span="8">
<el-row>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.OrderName')" prop="name">
<el-input v-model="dataForm.name" :placeholder="$t('module.basicData.Warehouse.OrderName')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.IssueOrderTime')" prop="createTime">
<el-input v-model="dataForm.createTime" :placeholder="$t('module.basicData.Warehouse.IssueOrderTime')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.PlanProcessQuantity')" prop="planQuantity">
<el-input v-model="dataForm.planQuantity" :placeholder="$t('module.basicData.Warehouse.PlanProcessQuantity')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="8">
<el-row>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.OrderCode')" prop="taskCode">
<el-input v-model="dataForm.taskCode" :placeholder="$t('module.basicData.Warehouse.OrderCode')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.OrderStatus')" prop="taskType">
<el-input v-model="dataForm.taskType" :placeholder="$t('module.basicData.Warehouse.OrderStatus')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="8">
<el-row>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.TotalProcessName')" prop="craftName">
<el-input v-model="dataForm.craftName" :placeholder="$t('module.basicData.Warehouse.TotalProcessName')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.SubProcessName')" prop="subProccessName">
<el-input
v-model="dataForm.subProccessName"
:placeholder="$t('module.basicData.Warehouse.SubProcessName')"
readonly
:style="{width: '100%'}"
/>
</el-form-item>
</el-col>
</el-row>
</el-col>
</el-form>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">{{ 'btn.cancel' | i18nFilter }}</el-button>
</span>
</el-dialog>
</template>
<script>
import { ExecutionInfoDetail } from '@/api/orderManage/00A'
export default {
data() {
return {
visible: false,
dataForm: {
id: 0,
name: undefined,
createTime: undefined,
taskCode: undefined,
taskType: undefined,
craftName: undefined,
planQuantity: undefined,
subProccessName: undefined
}
}
},
methods: {
init(id) {
this.dataForm.id = id || ''
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
ExecutionInfoDetail(this.dataForm.id).then(res => {
this.dataForm = res.data
})
}
})
}
}
}
</script>

View File

@@ -1,8 +1,8 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 16:37:56
* @LastEditors: Please set LastEditors
* @LastEditTime: 2021-07-20 11:03:09
* @LastEditors: zwq
* @LastEditTime: 2022-03-16 14:11:09
* @Description:
-->
<template>
@@ -66,10 +66,10 @@
</el-select>
</el-form-item>
<el-form-item :label="$t('module.basicData.ScrapInfo.workOrderId')" prop="workOrderId">
<el-form-item :label="$t('module.basicData.ScrapInfo.workOrderName')" prop="workOrderId">
<el-select
v-model="dataForm.workOrderId"
:placeholder="$i18nForm(['placeholder.input', $t('module.basicData.ScrapInfo.workOrderId')])"
:placeholder="$i18nForm(['placeholder.input', $t('module.basicData.ScrapInfo.workOrderName')])"
clearable
:style="{width: '100%'}"
>
@@ -91,7 +91,7 @@
</el-form-item>
<el-form-item :label="$t('module.basicData.ScrapInfo.name')" prop="equipmentId">
<el-select v-model="dataForm.equipmentId" filterable :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.ScrapInfo.name')])" clearable :style="{width: '100%'}" @change="getScrapGrade">
<el-select v-model="dataForm.equipmentId" filterable :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.ScrapInfo.name')])" clearable :style="{width: '100%'}">
<el-option
v-for="(item, index) in device"
:key="index"
@@ -101,10 +101,6 @@
</el-select>
</el-form-item>
<el-form-item v-if="tag" :label="$t('module.basicData.ScrapInfo.wasteGrade')" prop="ewasteGrade">
<el-input v-model="wasteGrade" clear readonly :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.ScrapInfo.wasteGrade')])" :disabled="true" />
</el-form-item>
<el-form-item :label="$t('module.basicData.ScrapInfo.cause')" prop="scrapReasonId">
<!-- <el-input v-model="dataForm.registerPerson" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.ScrapInfo.RegisterPerson')])" clearable :style="{width: '100%'}" /> -->
<el-select
@@ -122,6 +118,9 @@
</el-select>
</el-form-item>
<el-form-item :label="$t('module.basicData.ScrapInfo.registrationPlace')" prop="placeOfRegis">
<el-input v-model="dataForm.placeOfRegis" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.ScrapInfo.registrationPlace')])" clearable :style="{width: '100%'}" />
</el-form-item>
<el-form-item :label="$t('module.basicData.ScrapInfo.remark')" prop="remark">
<el-input v-model="dataForm.remark" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.ScrapInfo.remark')])" clearable :style="{width: '100%'}" />
</el-form-item>
@@ -136,12 +135,13 @@
</template>
<script>
import moment from 'moment'
import i18n from '@/lang'
import { getScrapInfo, editScrapInfo, addScrapInfo, getScrap } from '@/api/quality-manage/scrap'
import { getScrapInfo, editScrapInfo, addScrapInfo } from '@/api/quality-manage/scrap'
import { scrapReasonList } from '@/api/dict'
import { getDictWorker } from '@/api/dict'
import { getEqList } from '@/api/equipment/maintain'
import { workOrderList } from '@/api/orderManage/workOrder/workOrder'
import { workOrderListList } from '@/api/orderManage/workOrder/workOrder'
const wasteGradeArr = [{
value: '加工可用',
@@ -165,6 +165,7 @@ export default {
data() {
return {
visible: false,
moment,
dataForm: {
id: 0,
source: undefined,
@@ -173,24 +174,15 @@ export default {
scrapGrade: undefined,
description: undefined,
substrateId: undefined,
placeOfRegis: '00A',
remark: undefined
},
wasteGradeArr,
entryType,
rules: {
name: [{
required: true,
message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.ScrapInfo.WasteName')]),
trigger: 'blur'
}],
code: [{
required: true,
message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.ScrapInfo.WasteCode')]),
trigger: 'blur'
}],
equipmentId: [{
required: true,
message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.ScrapInfo.equipmentId')]),
message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.ScrapInfo.name')]),
trigger: 'change'
}],
substrateId: [{
@@ -202,6 +194,11 @@ export default {
required: true,
message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.ScrapInfo.registerPerson')]),
trigger: 'change'
}],
scrapReasonId: [{
required: true,
message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.ScrapInfo.cause')]),
trigger: 'change'
}]
},
dict: {
@@ -210,7 +207,6 @@ export default {
orderList: []
},
device: [],
wasteGrade: '',
tag: false
}
},
@@ -218,19 +214,6 @@ export default {
this.getDict()
},
methods: {
getScrapGrade(val) {
getScrap(val).then(res => {
if (res.code === 0) {
if (res.data) {
this.tag = true
this.wasteGrade = res.data.dataName
} else {
this.tag = false
this.wasteGrade = ''
}
}
})
},
onClose() {
this.$refs['dataForm'].resetFields()
},
@@ -242,6 +225,8 @@ export default {
getScrapInfo({ id: this.dataForm.id }).then(res => {
this.dataForm = res.data
})
} else {
this.dataForm.registerTime = this.moment()
}
})
},
@@ -279,7 +264,7 @@ export default {
})
},
async getDict() {
const result3 = await workOrderList({
const result3 = await workOrderListList({
current: 1,
size: 999
})

View File

@@ -1,8 +1,8 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 15:41:11
* @LastEditors: Please set LastEditors
* @LastEditTime: 2021-07-26 13:39:35
* @LastEditors: zwq
* @LastEditTime: 2022-03-28 13:52:30
* @Description:
-->
<template>
@@ -11,10 +11,9 @@
:model="formData"
:inline="true"
size="medium"
label-width="130px"
>
<el-form-item v-if="false" :label="$t('module.basicData.ScrapInfo.PlateId')" prop="basalId">
<el-input v-model="formData.basalId" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.ScrapInfo.PlateId')])" style="width:200px" clearable />
<el-form-item :label="$t('module.basicData.ScrapInfo.PlateId')" prop="substrateId">
<el-input v-model="formData.substrateId" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.ScrapInfo.PlateId')])" style="width:200px" clearable />
</el-form-item>
<el-form-item :label="$t('module.basicData.ScrapInfo.TimePeriod')" prop="time">
<el-date-picker
@@ -38,6 +37,16 @@
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('module.basicData.ScrapInfo.workOrderName')" prop="workOrderId">
<el-select v-model="formData.workOrderId" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.ScrapInfo.workOrderName')])" clearable :style="{width: '100%'}" filterable>
<el-option
v-for="(item, index) in orderList"
:key="index"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="getList()"> {{ 'btn.search' | i18nFilter }} </el-button>
<el-button type="primary" @click="addNew()"> {{ 'btn.add' | i18nFilter }} </el-button>
@@ -79,6 +88,7 @@ import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn'
import { timeFormatter } from '@/filters'
import i18n from '@/lang'
import { getEqList } from '@/api/equipment/maintain'
import { ProcessInfoList } from '@/api/orderManage/00A'
// import DictFilter from '@/components/BaseTable/subcomponents/DataDictFilter'
/**
* 表格表头配置项 TypeScript接口注释
@@ -113,13 +123,13 @@ const tableProps = [
// filter: timeFormatter
// },
{
prop: 'source',
label: i18n.t('module.basicData.ScrapInfo.source'),
prop: 'substrateId',
label: i18n.t('module.basicData.ScrapInfo.PlateId'),
align: 'center'
},
{
prop: 'scrapGradeDic',
label: i18n.t('module.basicData.ScrapInfo.wasteGrade'),
prop: 'workOrderName',
label: i18n.t('module.basicData.ScrapInfo.workOrderName'),
align: 'center'
},
{
@@ -127,11 +137,6 @@ const tableProps = [
label: i18n.t('module.basicData.ScrapInfo.name'),
align: 'center'
},
{
prop: 'substrateId',
label: i18n.t('module.basicData.ScrapInfo.PlateId'),
align: 'center'
},
{
prop: 'registerPersonName',
label: i18n.t('module.basicData.ScrapInfo.RegisterPerson'),
@@ -143,6 +148,11 @@ const tableProps = [
filter: timeFormatter,
align: 'center'
},
{
prop: 'placeOfRegis',
label: i18n.t('module.basicData.ScrapInfo.registrationPlace'),
align: 'center'
},
{
prop: 'scrapReason',
label: i18n.t('module.basicData.ScrapInfo.cause'),
@@ -171,7 +181,9 @@ export default {
listLoading: true,
formData: {
timeSlot: null,
basalId: '',
substrateId: '',
workOrderId: '',
equipmentId: '',
current: 1,
size: 10,
id: ''
@@ -183,6 +195,7 @@ export default {
dict: {
scrap: []
},
orderList: [],
device: []
}
},
@@ -241,6 +254,13 @@ export default {
if (result1.code === 0) {
this.device = result1.data.records
}
const result2 = await ProcessInfoList({
current: 1,
size: 999
})
if (result2.code === 0) {
this.orderList = result2.data.records
}
const result = await scrapReasonList()
this.dict.scrap = result
},

View File

@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2021-04-06 19:33:11
* @LastEditors: zwq
* @LastEditTime: 2021-07-09 09:42:54
* @LastEditTime: 2022-03-10 16:54:48
* @Description:
-->
<template>
@@ -257,7 +257,7 @@ export default {
if (res.code === 0) {
this.list = res.data.records
this.list.forEach(item => {
item.roleName = item.stringList.toString()
item.roleName = item.stringList?.toString()
})
this.total = res.data.total
this.listLoading = false

View File

@@ -1,8 +1,8 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 16:37:56
* @LastEditors: Please set LastEditors
* @LastEditTime: 2021-07-26 14:39:36
* @LastEditors: zwq
* @LastEditTime: 2022-03-16 14:30:59
* @Description:
-->
<template>
@@ -15,16 +15,16 @@
<el-input v-model="dataForm.name" :placeholder="$i18nForm(['placeholder.input', $t('module.art.processList.processName')])" clearable />
</el-form-item>
<el-form-item :label="$t('module.art.processList.processEq')" prop="equipmentIds">
<el-select v-model="dataForm.equipmentIds" clearable filterable multiple>
<el-select v-model="dataForm.equipmentIds" clearable filterable multiple @change="$forceUpdate()">
<el-option v-for="item in eqList" :key="item.id" :value="item.id" :label="item.name" />
</el-select>
</el-form-item>
<el-form-item :label="$t('module.art.processList.type')" prop="type">
<!-- <el-form-item :label="$t('module.art.processList.type')" prop="type">
<el-select v-model="dataForm.type" clearable filterable>
<el-option v-for="item in typeList" :key="item.id" :value="item.id" :label="item.name" />
</el-select>
</el-form-item>
<el-form-item :label="$t('module.art.processList.description')" prop="address">
</el-form-item> -->
<el-form-item :label="$t('module.art.processList.description')" prop="description">
<el-input v-model="dataForm.description" :placeholder="$i18nForm(['placeholder.input', $t('module.art.processList.description')])" clearable />
</el-form-item>
</el-form>
@@ -88,10 +88,7 @@ export default {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
getInfo({ id: this.dataForm.id }).then(res => {
this.dataForm.id = res.data.id
this.dataForm.name = res.data.name
this.dataForm.type = res.data.type
this.dataForm.description = res.data.description
this.dataForm = res.data
this.dataForm.equipmentIds = res.data.equipments.map(item => {
return item.id
})
@@ -101,7 +98,6 @@ export default {
},
// 表单提交
dataFormSubmit() {
console.log(!this.dataForm.id)
this.$refs['dataForm'].validate((valid) => {
if (valid) {
const data = {

View File

@@ -32,7 +32,7 @@
/>
</el-select>
</el-form-item> -->
<el-form-item v-if="false" :label="$t('module.art.artBOM')" prop="bomId">
<!-- <el-form-item v-if="false" :label="$t('module.art.artBOM')" prop="bomId">
<el-select
v-model="obj.bomId"
:class="$style.select"
@@ -47,7 +47,7 @@
:value="item.id"
/>
</el-select>
</el-form-item>
</el-form-item> -->
<el-form-item :label="$t('module.art.description')" prop="description">
<el-input v-model="obj.description" />
</el-form-item>
@@ -63,7 +63,7 @@
</template>
<script>
import { add, update, getInfo, listSubstrate, listBom, getCode } from '@/api/art-manage/art.js'
import { add, update, getInfo, getCode } from '@/api/art-manage/art.js'
import SubmitBar from '@/views/art/components/submit-bar'
export default {
@@ -91,8 +91,6 @@ export default {
substrateId: '',
bomId: ''
},
substrateList: [],
bomList: [],
rules: {
name: [
{ required: true, message: this.$t('module.art.artName') + this.$t('module.art.notNull'), trigger: 'blur' },
@@ -129,14 +127,6 @@ export default {
},
methods: {
init: async function() {
if (this.substrateList.length === 0) {
const substrateRes = await listSubstrate()
this.substrateList = substrateRes.data
}
if (this.bomList.length === 0) {
const bomRes = await listBom()
this.bomList = bomRes.data
}
if (this.id) {
const res = await getInfo({ id: this.id })
this.obj = res.data

View File

@@ -1,8 +1,8 @@
<!--
* @Author: gtz
* @Date: 2021-04-06 20:07:22
* @LastEditors: gtz
* @LastEditTime: 2021-06-23 16:22:06
* @LastEditors: zwq
* @LastEditTime: 2022-03-09 16:19:15
* @Description: file content
-->
<template>
@@ -23,7 +23,7 @@
<script>
// edit here
import DataDict from './filters'
// import DataDict from './filters'
const tableBtn = [{
type: 'edit',
btnName: 'btn.edit'
@@ -35,12 +35,14 @@ const tableProps = [{
prop: 'name',
label: i18n.t('module.art.processList.processName'),
align: 'center'
}, {
prop: 'type',
label: i18n.t('module.art.processList.type'),
align: 'center',
filter: DataDict('typeFilter')
}, {
},
// {
// prop: 'type',
// label: i18n.t('module.art.processList.type'),
// align: 'center',
// filter: DataDict('typeFilter')
// },
{
prop: 'description',
label: i18n.t('module.art.processList.description'),
align: 'center'
@@ -48,7 +50,7 @@ const tableProps = [{
import BaseTable from '@/components/BaseTable'
// edit here
import { list, del } from '@/api/art-manage/process'
import { equipmentInfoList } from '@/api/basicData/Equipment/equipmentInfo'
import { equipmentlistList } from '@/api/basicData/Equipment/equipmentInfo'
import HeadForm from '@/components/basicData/HeadForm'
import ProcessAdd from './components/Process-add'
import Pagination from '@/components/Pagination'
@@ -124,12 +126,9 @@ export default {
},
async getEqList(key) {
// edit here
const res = await equipmentInfoList({
current: 1,
size: 999
})
const res = await equipmentlistList()
if (res.code === 0) {
this.eqList = res.data.records
this.eqList = res.data
}
this.getList()
},

View File

@@ -1,8 +1,8 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 15:41:11
* @LastEditors: zwq
* @LastEditTime: 2022-01-11 15:48:58
* @LastEditors: fzq
* @LastEditTime: 2022-03-03 16:35:32
* @Description:
-->
<template>
@@ -158,8 +158,9 @@ export default {
},
getList(key) {
this.listLoading = true
this.listQuery.name = key
this.listQuery.tareaName = key
this.listQuery.code = key
console.log(this.listQuery)
cacheList(this.listQuery).then(response => {
if (response.data.records) {
this.list = response.data.records

View File

@@ -1,8 +1,8 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 16:37:56
* @LastEditors: zwq
* @LastEditTime: 2022-01-11 16:26:29
* @LastEditors: fzq
* @LastEditTime: 2022-03-03 14:21:53
* @enName:
-->
<template>
@@ -104,11 +104,11 @@
<script>import i18n from '@/lang'
import { cacheDetail, cacheUpdate, cacheAdd, cacheCode } from '@/api/basicData/Cache/cache'
import { areaList, areaDelete } from '@/api/basicData/Cache/area'
import { shelfList, shelfDelete } from '@/api/basicData/Cache/shelf'
import BaseTable from '@/components/BaseTable'
import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn'
import shelfAttrAdd from './shelfAttr-add.vue'
import shelfBtn from './shelfBtn.vue'
import locationBtn from './locationBtn.vue'
const tableBtn = [
{
type: 'edit',
@@ -121,7 +121,7 @@ const tableBtn = [
]
const tableProps = [
{
prop: 'name',
prop: 'shelfName',
label: i18n.t('module.basicData.cache.AreaName'),
align: 'center'
},
@@ -131,7 +131,7 @@ const tableProps = [
align: 'center'
},
{
prop: 'shelfNum',
prop: 'total',
label: i18n.t('module.basicData.cache.StorageQuantity'),
align: 'center'
},
@@ -148,7 +148,7 @@ const tableProps = [
{
prop: 'shelf',
label: i18n.t('module.basicData.cache.Location'),
subcomponent: shelfBtn,
subcomponent: locationBtn,
align: 'center'
}
]
@@ -219,9 +219,20 @@ export default {
if (this.id) {
cacheDetail(this.id).then(res => {
this.dataForm = res.data
// console.log(this.dataForm)
})
this.listQuery.id = this.id
areaList(this.listQuery).then(response => {
console.log(this.listQuery.id)
// shelfDetail(this.listQuery).then(response => {
// console.log(response)
// if (response.data.records) {
// this.list = response.data.records
// } else {
// this.list.splice(0, this.list.length)
// }
// })
shelfList(this.listQuery).then(response => {
console.log(response)
if (response.data.records) {
this.list = response.data.records
} else {
@@ -236,7 +247,7 @@ export default {
})
},
getList() {
areaList(this.listQuery).then(response => {
shelfList(this.listQuery).then(response => {
if (response.data.records) {
this.list = response.data.records
}
@@ -249,7 +260,7 @@ export default {
cancelButtonText: this.$t('module.basicData.visual.cancelButtonText'),
type: 'warning'
}).then(() => {
areaDelete(raw.data.id).then(response => {
shelfDelete(raw.data.id).then(response => {
this.$message({
message: this.$t('module.basicData.visual.success'),
type: 'success',

View File

@@ -1,15 +1,24 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 15:41:11
* @LastEditors: zwq
* @LastEditTime: 2021-03-11 16:44:10
* @LastEditors: fzq
* @LastEditTime: 2022-03-19 10:25:46
* @Description:
-->
<template>
<div class="app-container">
<div style="margin:10px 50px">
<!-- <div style="margin:10px 50px">
<el-button type="success" @click="goback()">{{ 'btn.back' | i18nFilter }}</el-button>
<el-button type="primary" @click="addNew()">{{ 'btn.add' | i18nFilter }}</el-button>
</div> -->
<head-form
:placeholder-name="placeholderName"
:key-name="keyNameAdd"
@getDataList="getList"
@add="addNew"
/>
<div style="title">{{ sheCode }}:{{ shCode }} {{ sheName }}{{ shName }} {{ locaNum }}{{ num }}
<el-button type="success" @click="goback()">{{ 'btn.back' | i18nFilter }}</el-button>
</div>
<base-table
:page="listQuery.current"
@@ -30,11 +39,11 @@
</template>
<script>import i18n from '@/lang'
import HeadForm from '@/components/basicData/HeadForm'
import { locationList, locationDelete } from '@/api/basicData/Cache/location'
import locationAttrAdd from './locationAttr-add.vue'
import BaseTable from '@/components/BaseTable'
import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn'
import { timeFormatter } from '@/filters'
/**
* 表格表头配置项 TypeScript接口注释
* tableConfig<ConfigItem> = []
@@ -62,10 +71,15 @@ const tableBtn = [
}
]
const tableProps = [
// {
// prop: 'createTime',
// label: i18n.t('module.basicData.factory.createTime'),
// filter: timeFormatter,
// align: 'center'
// },
{
prop: 'createTime',
label: i18n.t('module.basicData.factory.createTime'),
filter: timeFormatter,
prop: 'locationName',
label: i18n.t('module.basicData.cache.LocationName'),
align: 'center'
},
{
@@ -74,30 +88,40 @@ const tableProps = [
align: 'center'
},
{
prop: 'name',
label: i18n.t('module.basicData.cache.LocationName'),
align: 'center'
},
{
prop: 'anotherName',
prop: 'locationNameAlias',
label: i18n.t('module.basicData.cache.anotherName'),
align: 'center'
},
{
prop: 'place',
label: i18n.t('module.basicData.cache.place'),
prop: 'layers',
label: i18n.t('module.basicData.cache.rowMark'),
align: 'center'
},
{
prop: 'remark',
label: i18n.t('module.basicData.visual.Remarks'),
prop: 'columns',
label: i18n.t('module.basicData.cache.columnMark'),
align: 'center'
},
// {
// prop: 'locationType',
// label: i18n.t('module.basicData.cache.locationType'),
// align: 'center'
// },
{
prop: 'statusName',
label: i18n.t('module.basicData.cache.status'),
align: 'center'
},
{
prop: 'locationNumber',
label: i18n.t('module.basicData.cache.locationNumber'),
align: 'center'
}
]
export default {
name: 'Location',
components: { BaseTable, MethodBtn, locationAttrAdd },
components: { BaseTable, MethodBtn, locationAttrAdd, HeadForm },
filters: {
statusFilter(status) {
const statusMap = {
@@ -110,27 +134,43 @@ export default {
},
data() {
return {
shCode: '',
shName: '',
num: 0,
addOrUpdateVisible: false,
keyNameAdd: i18n.t('module.basicData.visual.keyword'),
placeholderName: this.$t('module.basicData.cache.LocationName'),
tableBtn,
trueWidth: 200,
tableProps,
list: [],
list: [{
statusName: ''
}],
listLoading: true,
listQuery: {
name: '',
current: 1,
size: 990,
shelfId: ''
}
size: 20
// shelfId: '',
// id: ''
},
sheCode: this.$t('module.basicData.cache.sheCode'),
sheName: this.$t('module.basicData.cache.sheName'),
locaNum: this.$t('module.basicData.cache.locaNum')
}
},
created() {
this.listQuery.shelfId = this.$route.query.id
this.shCode = this.$route.query.code
this.shName = this.$route.query.shelfName
this.num = this.$route.query.total
this.getList()
},
methods: {
handleClick(raw) {
if (raw.type === 'delete') {
this.$confirm(`${this.$t('module.basicData.visual.TipsBefore')}[${raw.data.name}]?`, this.$t('module.basicData.visual.Tips'), {
console.log(raw.data)
this.$confirm(`${this.$t('module.basicData.visual.TipsBefore')}[${raw.data.locationName}]?`, this.$t('module.basicData.visual.Tips'), {
confirmButtonText: this.$t('module.basicData.visual.confirmButtonText'),
cancelButtonText: this.$t('module.basicData.visual.cancelButtonText'),
type: 'warning'
@@ -153,9 +193,23 @@ export default {
getList(key) {
this.listLoading = true
this.listQuery.name = key
// shelfId与查询参数id关联
console.log(this.listQuery)
this.listQuery.id = this.listQuery.shelfId
locationList(this.listQuery).then(response => {
if (response.data.records) {
this.list = response.data.records
console.log(this.list)
// 1是Working Port2是Buffer Port3是Exception Port与status进行替换
for (var x = 0; x < this.list.length; x++) {
if (this.list[x].status === 1) {
this.list[x].statusName = 'Working Port'
} else if (this.list[x].status === 2) {
this.list[x].statusName = 'Buffer Port'
} else if (this.list[x].status === 3) {
this.list[x].statusName = 'Exception Port'
}
}
} else {
this.list.splice(0, this.list.length)
}

View File

@@ -1,30 +1,52 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 16:37:56
* @LastEditors: zwq
* @LastEditTime: 2021-03-25 16:23:03
* @LastEditors: fzq
* @LastEditTime: 2022-03-23 11:03:08
* @Description:
-->
<template>
<el-dialog
:title="!dataForm.shelfId ? 'btn.add' : 'btn.edit' | i18nFilter"
:title="!dataForm.id ? 'btn.add' : 'btn.edit' | i18nFilter"
:visible.sync="visible"
>
<el-form ref="dataForm" :model="dataForm" :rules="dataRule" label-width="130px" @keyup.enter.native="dataFormSubmit()">
<el-form-item :label="$t('module.basicData.cache.LocationName')" prop="name">
<el-input v-model="dataForm.name" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.cache.LocationName')])" clearable />
<el-form-item :label="$t('module.basicData.cache.LocationName')" prop="locationName">
<el-input v-model="dataForm.locationName" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.cache.LocationName')])" clearable />
</el-form-item>
<el-form-item :label="$t('module.basicData.cache.LocationCode')" prop="code">
<el-input v-model="dataForm.code" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.cache.LocationCode')])" clearable />
</el-form-item>
<el-form-item :label="$t('module.basicData.cache.anotherName')" prop="anotherName">
<el-input v-model="dataForm.anotherName" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.cache.anotherName')])" clearable />
<el-form-item :label="$t('module.basicData.cache.anotherName')" prop="locationNameAlias">
<el-input v-model="dataForm.locationNameAlias" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.cache.anotherName')])" clearable />
</el-form-item>
<el-form-item :label="$t('module.basicData.cache.place')" prop="place">
<el-input v-model="dataForm.place" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.cache.place')])" clearable />
<!-- <el-form-item :label="$t('module.basicData.cache.rowMark')" prop="layers">
<el-input v-model="dataForm.layers" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.cache.rowMark')])" clearable />
</el-form-item> -->
<el-form-item :label="$t('module.basicData.cache.rowMark')" prop="layers">
<el-input-number v-model="dataForm.layers" :step="1" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.cache.rowMark')])" clearable />
</el-form-item>
<el-form-item :label="$t('module.basicData.visual.Remarks')" prop="remark">
<el-input v-model="dataForm.remark" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.Remarks')])" clearable />
<el-form-item :label="$t('module.basicData.cache.columnMark')" prop="columns">
<el-input-number v-model="dataForm.columns" :step="1" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.cache.columnMark')])" clearable />
</el-form-item>
<!-- <el-form-item :label="$t('module.basicData.cache.locationType')" prop="locationType">
<el-input v-model="dataForm.locationType" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.cache.locationType')])" clearable />
</el-form-item> -->
<!-- <el-form-item :label="$t('module.basicData.cache.status')" prop="status">
<el-input v-model="dataForm.status" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.cache.status')])" clearable />
</el-form-item> -->
<!-- <el-form-item :label="$t('module.basicData.cache.status')" prop="status">
<el-select v-model="dataForm.status">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item> -->
<el-form-item :label="$t('module.basicData.cache.locationNumber')" prop="locationNumber">
<el-input v-model="dataForm.locationNumber" :step="1" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.cache.locationNumber')])" clearable />
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
@@ -51,18 +73,43 @@ export default {
visible: false,
dataForm: {
id: 0,
name: '',
locationName: '',
code: '',
anotherName: '',
place: '',
remark: ''
locationNameAlias: '',
rowNum: '',
status: null,
locationType: '',
locationNumber: 0
},
options: [
{
value: 1,
label: 'Working Port'
},
{
value: 2,
label: 'Buffer Port'
},
{
value: 3,
label: 'Exception Port'
}
],
dataRule: {
name: [
{ required: true, message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.cache.LocationName')]), trigger: 'blur' }
],
code: [
{ required: true, message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.cache.LocationCode')]), trigger: 'blur' }
],
layers: [
{ required: true, pattern: /^[1-9]\d*$/, message: this.$t('module.basicData.cache.warning'), trigger: 'blur' }
],
columns: [
{ required: true, pattern: /^[1-9]\d*$/, message: this.$t('module.basicData.cache.warning'), trigger: 'blur' }
],
locationNumber: [
{ required: true, message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.cache.locationNumber')]), trigger: 'blur' }
]
}
}
@@ -76,6 +123,7 @@ export default {
if (this.dataForm.id) {
locationDetail(this.dataForm.id).then(res => {
this.dataForm = res.data
// console.log(this.dataForm)
})
} else {
locationCode().then(res => {
@@ -89,13 +137,16 @@ export default {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
const data = {
'name': this.dataForm.name,
'locationName': this.dataForm.locationName,
'code': this.dataForm.code,
'anotherName': this.dataForm.anotherName,
'place': this.dataForm.place,
'remark': this.dataForm.remark,
'locationNameAlias': this.dataForm.locationNameAlias,
'columns': this.dataForm.columns,
'layers': this.dataForm.layers,
'shelfId': this.shelfId,
'id': this.dataForm.id
'id': this.dataForm.id,
'status': this.dataForm.status,
'locationType': this.dataForm.locationType,
'locationNumber': this.dataForm.locationNumber
}
if (this.dataForm.id) {
locationUpdate(data).then(res => {
@@ -111,6 +162,8 @@ export default {
})
} else {
locationAdd(data).then(res => {
console.log(data)
console.log(res)
this.$message({
message: this.$t('module.basicData.visual.success'),
type: 'success',
@@ -125,6 +178,28 @@ export default {
}
})
}
// isInt(value){
// for(var i = 0; i < value.length; i++) {
// if(charAt[i] == '.'){
// }
// }
// }
// isInt(value) {
// let zero = /^0+\d*$/ // 过滤以0开头的数据(不含小数点)
// let dublue = /^0{2,}\.\d+$/ // 过滤小数点前有两个以上0的数字
// let point = /^\d+\.?\d+$/ // 以数字开头,可以允许出现一次或0次小数点,以数字结尾(这里的数字必须有两个)
// let reg = /^[1-9]{1}$/ // 匹配只有一个数字的情况
// if (!value) {
// return false
// }
// if (zero.test(value) || dublue.test(value)) { // 首先过滤掉错误的数据
// return false
// } else if (point.test(value) || reg.test(value)) { // 匹配数据,如果输入的数字只有一位数时用reg匹配
// return true
// } else {
// return false
// }
// }
}
}
</script>

View File

@@ -1,13 +1,13 @@
<!--
* @Date: 2021-01-07 20:09:37
* @LastEditors: zwq
* @LastEditTime: 2021-03-06 13:12:47
* @LastEditors: fzq
* @LastEditTime: 2022-03-15 09:48:09
* @FilePath: \basic-admin\src\components\BaseTable\subcomponents\CheckDetail.vue
* @Description:
-->
<template>
<span>
<el-button type="text" size="small" @click="emitClick">{{ $t('module.basicData.cache.ManageLocation') }}</el-button>
<el-button type="text" size="small" @click="emitClick">{{ $t('module.basicData.cache.addLocation') }}</el-button>
</span>
</template>
@@ -24,7 +24,10 @@ export default {
this.$router.push({
name: 'locationAdd',
query: {
id: this.injectData.id
id: this.injectData.id,
code: this.injectData.code,
total: this.injectData.total,
shelfName: this.injectData.shelfName
}
})
}

View File

@@ -1,8 +1,8 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 15:41:11
* @LastEditors: zwq
* @LastEditTime: 2021-03-11 09:22:52
* @LastEditors: fzq
* @LastEditTime: 2022-03-10 19:20:22
* @Description:
-->
<template>
@@ -25,7 +25,7 @@
@clickBtn="handleClick"
/>
</base-table>
<shelfAttr-add v-if="addOrUpdateVisible" ref="addOrUpdate" :area-id="listQuery.areaId" @refreshDataList="getList" />
<shelfAttr-add v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getList" />
</div>
</template>
@@ -163,7 +163,7 @@ export default {
addNew(id) {
this.addOrUpdateVisible = true
this.$nextTick(() => {
this.$refs.addOrUpdate.init(id)
this.$refs.addOrUpdate.init(id, true)
})
},
goback() {

View File

@@ -1,13 +1,14 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 16:37:56
* @LastEditors: gtz
* @LastEditTime: 2021-04-16 15:01:45
* @LastEditors: fzq
* @LastEditTime: 2022-03-10 19:38:31
* @Description:
-->
<template>
<!-- 新增/编辑识别 :title="!dataForm.areaId ? 'btn.add' : 'btn.edit' | i18nFilter" -->
<el-dialog
:title="!dataForm.areaId ? 'btn.add' : 'btn.edit' | i18nFilter"
:title="!dataForm.id ? 'btn.add' : 'btn.edit' | i18nFilter"
:visible.sync="visible"
>
<el-form ref="dataForm" :model="dataForm" :rules="dataRule" label-width="130px" @keyup.enter.native="dataFormSubmit()">
@@ -17,6 +18,7 @@
<el-form-item :label="$t('module.basicData.cache.ShelfCode')" prop="code">
<el-input v-model="dataForm.code" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.cache.ShelfCode')])" clearable />
</el-form-item>
<!-- 选择货架code的下拉框
<el-form-item v-if="isPage" :label="$t('module.basicData.cache.AreaName')" prop="areaId">
<el-select v-model="dataForm.areaId" filterable :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.cache.AreaName')])" clearable>
<el-option
@@ -26,9 +28,15 @@
:value="item.id"
/>
</el-select>
</el-form-item> -->
<el-form-item :label="$t('module.basicData.cache.StorageQuantity')" prop="total">
<el-input-number v-model="dataForm.total" :step="1" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.cache.StorageQuantity')])" clearable />
</el-form-item>
<el-form-item :label="$t('module.basicData.cache.StorageQuantity')" prop="shelfNumber">
<el-input-number v-model="dataForm.shelfNumber" :step="1" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.cache.StorageQuantity')])" clearable />
<el-form-item :label="$t('module.basicData.cache.rowNum')" prop="rowNum">
<el-input-number v-model="dataForm.rowNum" :step="1" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.cache.rowNum')])" clearable />
</el-form-item>
<el-form-item :label="$t('module.basicData.cache.columnNum')" prop="columnNum">
<el-input-number v-model="dataForm.columnNum" :step="1" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.cache.columnNum')])" clearable />
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
@@ -40,7 +48,6 @@
<script>
import { shelfDetail, shelfUpdate, shelfAdd, shelfCode } from '@/api/basicData/Cache/shelf'
import { areaList } from '@/api/basicData/Cache/area'
export default {
props: {
@@ -79,42 +86,66 @@ export default {
}
},
methods: {
init(id, isPage) {
this.isPage = isPage || false
// init(id, isPage) {
// this.isPage = isPage || false
// this.dataForm.id = id || ''
// if (!this.isPage) {
// this.dataForm.areaId = this.areaId
// }
// this.areaArr.splice(0, this.areaArr.length)
// const params = {
// current: 1,
// size: 500
// }
// shelfList(params).then(response => {
// if (response.data.records) {
// this.areaArr = response.data.records
// }
// })
// this.visible = true
// this.$nextTick(() => {
// this.$refs['dataForm'].resetFields()
// if (this.dataForm.id) {
// shelfDetail(this.dataForm.id).then(res => {
// this.dataForm = res.data
// })
// } else {
// shelfCode().then(res => {
// this.dataForm.code = res.data
// })
// }
// })
// },
init(id) {
this.dataForm.id = id || ''
if (!this.isPage) {
this.dataForm.areaId = this.areaId
}
this.areaArr.splice(0, this.areaArr.length)
const params = {
current: 1,
size: 500
}
areaList(params).then(response => {
if (response.data.records) {
this.areaArr = response.data.records
}
})
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
// console.log(this.dataForm)
shelfDetail(this.dataForm.id).then(res => {
// console.log(res)
this.dataForm = res.data
})
} else {
this.dataForm.shelfName = ''
shelfCode().then(res => {
this.dataForm.code = res.data
})
}
})
// console.log(this.dataForm)
},
// getClose() {
// this.dataForm.shelfName = ''
// console.log(this.dataForm)
// },
// 表单提交
dataFormSubmit() {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
const data = this.dataForm
console.log(data)
// console.log(data)
if (this.dataForm.id) {
shelfUpdate(data).then(res => {
this.$message({
@@ -129,6 +160,7 @@ export default {
})
} else {
shelfAdd(data).then(res => {
// console.log(res)
this.$message({
message: this.$t('module.basicData.visual.success'),
type: 'success',

View File

@@ -1,13 +1,13 @@
<!--
* @Date: 2021-01-07 20:09:37
* @LastEditors: zwq
* @LastEditTime: 2021-03-06 13:03:40
* @LastEditors: fzq
* @LastEditTime: 2022-03-02 19:00:47
* @FilePath: \basic-admin\src\components\BaseTable\subcomponents\CheckDetail.vue
* @Description:
-->
<template>
<span>
<el-button type="text" size="small" @click="emitClick">{{ $t('module.basicData.cache.ManageShelves') }}</el-button>
<el-button type="text" size="small" @click="emitClick">{{ $t('module.basicData.cache.addLocation') }}</el-button>
</span>
</template>

View File

@@ -1,8 +1,8 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 16:37:56
* @LastEditors: zwq
* @LastEditTime: 2022-01-11 16:45:30
* @LastEditors: fzq
* @LastEditTime: 2022-03-23 11:04:20
* @Description:
-->
<template>
@@ -30,6 +30,9 @@
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('module.basicData.visual.storageBoxFid')" prop="storageBoxFid">
<el-input v-model="dataForm.storageBoxFid" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.storageBoxFid')])" clearable />
</el-form-item>
<el-form-item :label="$t('module.basicData.visual.Remarks')" prop="note">
<el-input v-model="dataForm.note" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.Remarks')])" clearable />
</el-form-item>
@@ -52,22 +55,23 @@ export default {
id: 0,
storageBoxName: '',
code: '',
status: 0,
status: '',
enName: '',
note: ''
note: '',
storageBoxFid: ''
},
options: [
{
value: 0,
label: '正常'
label: this.$t('module.basicData.storageBox.normal')
},
{
value: 1,
label: '维修中'
label: this.$t('module.basicData.storageBox.repairing')
},
{
value: 2,
label: '报废'
label: this.$t('module.basicData.storageBox.scrapped')
}
],
dataRule: {

View File

@@ -1,8 +1,8 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 15:41:11
* @LastEditors: zwq
* @LastEditTime: 2021-03-25 16:13:19
* @LastEditors: fzq
* @LastEditTime: 2022-03-10 20:18:52
* @Description:
-->
<template>
@@ -44,10 +44,8 @@ import BaseTable from '@/components/BaseTable'
import Pagination from '@/components/Pagination' // Secondary package based on el-pagination
import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn'
import { shelfList, shelfDelete } from '@/api/basicData/Cache/shelf'
import { areaList } from '@/api/basicData/Cache/area'
import shelfAttrAdd from './components/shelfAttr-add.vue'
import locationBtn from './components/locationBtn.vue'
import { timeFormatter } from '@/filters'
/**
* 表格表头配置项 TypeScript接口注释
* tableConfig<ConfigItem> = []
@@ -76,34 +74,33 @@ const tableBtn = [
]
const tableProps = [
{
prop: 'createTime',
label: i18n.t('module.basicData.factory.createTime'),
filter: timeFormatter,
align: 'center'
},
{
prop: 'name',
label: i18n.t('module.basicData.cache.ShelfName'),
align: 'center'
},
{
prop: 'code',
label: i18n.t('module.basicData.cache.ShelfCode'),
align: 'center'
},
{
prop: 'areaName',
prop: 'shelfName',
label: i18n.t('module.basicData.cache.AreaName'),
align: 'center'
},
{
prop: 'shelfNumber',
prop: 'code',
label: i18n.t('module.basicData.cache.AreaCode'),
align: 'center'
},
{
prop: 'total',
label: i18n.t('module.basicData.cache.StorageQuantity'),
align: 'center'
},
{
prop: 'location',
label: i18n.t('module.basicData.cache.Location'),
prop: 'rowNum',
label: i18n.t('module.basicData.cache.rowNum'),
align: 'center'
},
{
prop: 'columnNum',
label: i18n.t('module.basicData.cache.columnNum'),
align: 'center'
},
{
prop: 'shelf',
label: i18n.t('module.basicData.visual.location'),
subcomponent: locationBtn,
align: 'center'
}
@@ -125,7 +122,7 @@ export default {
data() {
return {
addOrUpdateVisible: false,
keyName: i18n.t('module.basicData.visual.keyword'),
keyName: this.$t('module.basicData.cache.ShelfName'),
placeholderName: this.$t('module.basicData.cache.ShelfName'),
tableBtn,
trueWidth: 200,
@@ -141,21 +138,22 @@ export default {
}
},
created() {
const params = {
current: 1,
size: 500
}
areaList(params).then(response => {
if (response.data.records) {
this.areaList = response.data.records
}
this.getList()
})
// const params = {
// current: 1,
// size: 500
// }
// shelfList(params).then(response => {
// if (response.data.records) {
// this.areaList = response.data.records
// }
// this.getList()
// })
this.getList()
},
methods: {
handleClick(raw) {
if (raw.type === 'delete') {
this.$confirm(`${this.$t('module.basicData.visual.TipsBefore')}[${raw.data.name}]?`, this.$t('module.basicData.visual.Tips'), {
this.$confirm(`${this.$t('module.basicData.visual.TipsBefore')}[${raw.data.shelfName}]?`, this.$t('module.basicData.visual.Tips'), {
confirmButtonText: this.$t('module.basicData.visual.confirmButtonText'),
cancelButtonText: this.$t('module.basicData.visual.cancelButtonText'),
type: 'warning'
@@ -179,7 +177,8 @@ export default {
},
getList(key) {
this.listLoading = true
this.listQuery.name = key
this.listQuery.shelfName = key
// console.log(this.listQuery)
shelfList(this.listQuery).then(response => {
console.log(response)
if (response.data.records) {

View File

@@ -1,8 +1,8 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 15:41:11
* @LastEditors: zwq
* @LastEditTime: 2022-01-11 16:46:48
* @LastEditors: fzq
* @LastEditTime: 2022-03-23 11:06:20
* @Description:
-->
<template>
@@ -81,13 +81,13 @@ const tableProps = [
align: 'center'
},
{
prop: 'storageBoxName',
label: i18n.t('module.basicData.storageBox.name'),
prop: 'code',
label: i18n.t('module.basicData.storageBox.code'),
align: 'center'
},
{
prop: 'code',
label: i18n.t('module.basicData.storageBox.code'),
prop: 'storageBoxName',
label: i18n.t('module.basicData.storageBox.name'),
align: 'center'
},
{
@@ -101,6 +101,11 @@ const tableProps = [
filter: basicData('storage'),
align: 'center'
},
{
prop: 'storageBoxFid',
label: i18n.t('module.basicData.visual.storageBoxFid'),
align: 'center'
},
{
prop: 'note',
label: i18n.t('module.basicData.storageBox.remark'),
@@ -124,8 +129,8 @@ export default {
data() {
return {
addOrUpdateVisible: false,
keyName: i18n.t('module.basicData.visual.keyword'),
placeholderName: this.$t('module.basicData.storageBox.name') + this.$t('module.basicData.visual.Or') + this.$t('module.basicData.storageBox.code'),
keyName: this.$t('module.basicData.storageBox.name'),
placeholderName: this.$t('module.basicData.storageBox.name'),
tableBtn,
trueWidth: 200,
tableProps,
@@ -173,6 +178,7 @@ export default {
storageBoxList(this.listQuery).then(response => {
if (response.data.records) {
this.list = response.data.records
console.log(this.list)
} else {
this.list.splice(0, this.list.length)
}

View File

@@ -37,7 +37,7 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('module.basicData.equipment.EquipmentType')" prop="equipmentType">
<!-- <el-form-item :label="$t('module.basicData.equipment.EquipmentType')" prop="equipmentType">
<el-select
v-model="dataForm.equipmentType"
:disabled="isdetail"
@@ -53,9 +53,35 @@
:disabled="item.disabled"
/>
</el-select>
</el-form-item> -->
<!-- <el-form-item :label="$t('module.basicData.equipment.EquipmentType')" prop="equipmentType">
<el-input v-model="dataForm.equipmentType" :disabled="isdetail" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.equipment.EquipmentType')])" clearable :style="{width: '100%'}" />
</el-form-item> -->
<el-form-item :label="$t('module.basicData.equipment.EquipmentType')" prop="equipmentType">
<el-select v-model="dataForm.equipmentType" :placeholder="this.$t('module.basicData.cache.logisticsEquipment')" default>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('module.basicData.visual.enterTime')" prop="enterTime">
<el-date-picker
v-model="dataForm.enterTime"
:disabled="isdetail"
format="yyyy-MM-dd"
value-format="yyyy-MM-ddT00:00:00"
:style="{width: '100%'}"
:placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.enterTime')])"
clearable
/>
</el-form-item>
</el-col>
<!-- <el-col :span="8">
<el-form-item :label="$t('module.basicData.equipment.EquipmentGrouping')" prop="groupId">
<el-select
v-model="dataForm.groupId"
@@ -73,18 +99,18 @@
/>
</el-select>
</el-form-item>
</el-col>
</el-col> -->
</el-row>
<el-row>
<el-col :span="8">
<!-- <el-col :span="8">
<el-form-item :label="$t('module.basicData.visual.Specs')" prop="spec">
<el-input v-model="dataForm.spec" :disabled="isdetail" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.Specs')])" clearable :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('module.basicData.visual.productionTime')" prop="productionTime">
<el-form-item :label="$t('module.basicData.visual.productionTime')" prop="createTime">
<el-date-picker
v-model="dataForm.productionTime"
v-model="dataForm.createTime"
:disabled="isdetail"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
@@ -93,23 +119,10 @@
clearable
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('module.basicData.visual.enterTime')" prop="enterTime">
<el-date-picker
v-model="dataForm.enterTime"
:disabled="isdetail"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
:style="{width: '100%'}"
:placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.enterTime')])"
clearable
/>
</el-form-item>
</el-col>
</el-col> -->
</el-row>
<el-row>
<el-col :span="8">
<!-- <el-col :span="8">
<el-form-item :label="$t('module.basicData.visual.debugTime')" prop="debugTime">
<el-date-picker
v-model="dataForm.debugTime"
@@ -126,7 +139,7 @@
<el-form-item :label="$t('module.basicData.equipment.DebugPeriod')" prop="debugPeriod">
<el-input v-model="dataForm.debugPeriod" :disabled="isdetail" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.equipment.DebugPeriod')])" clearable :style="{width: '100%'}" />
</el-form-item>
</el-col>
</el-col> -->
<el-col :span="8">
<el-form-item :label="$t('module.basicData.visual.Manufacturer')" prop="manufacturer">
<el-input
@@ -138,9 +151,19 @@
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('module.basicData.visual.Remarks')" prop="remark">
<el-input v-model="dataForm.remark" :disabled="isdetail" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.Remarks')])" clearable :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('module.basicData.visual.Description')" prop="description">
<el-input v-model="dataForm.description" :disabled="isdetail" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.Description')])" clearable :style="{width: '100%'}" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<!-- <el-col :span="8">
<el-form-item :label="$t('module.basicData.equipment.intellectualProperty')" prop="intellectualProperty">
<el-input
v-model="dataForm.intellectualProperty"
@@ -162,20 +185,8 @@
:style="{width: '100%'}"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('module.basicData.visual.Remarks')" prop="remark">
<el-input v-model="dataForm.remark" :disabled="isdetail" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.Remarks')])" clearable :style="{width: '100%'}" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item :label="$t('module.basicData.visual.Description')" prop="description">
<el-input v-model="dataForm.description" :disabled="isdetail" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.Description')])" clearable :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="8">
</el-col> -->
<!-- <el-col :span="8">
<el-form-item :label="$t('module.basicData.equipment.plcVersion')" prop="plcVersion">
<el-input v-model="dataForm.plcVersion" :disabled="isdetail" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.equipment.plcVersion')])" clearable :style="{width: '100%'}" />
</el-form-item>
@@ -184,9 +195,9 @@
<el-form-item :label="$t('module.basicData.equipment.eapVersion')" prop="eapVersion">
<el-input v-model="dataForm.eapVersion" :disabled="isdetail" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.equipment.eapVersion')])" clearable :style="{width: '100%'}" />
</el-form-item>
</el-col>
</el-col> -->
</el-row>
<el-row>
<!-- <el-row>
<el-col :span="8">
<el-form-item :label="$t('module.basicData.equipment.maintenanceCycle')" prop="maintenanceCycle">
<el-input v-model="dataForm.maintenanceCycle" :disabled="isdetail" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.equipment.maintenanceCycle')])" clearable :style="{width: '100%'}" />
@@ -197,9 +208,9 @@
<el-input v-model="dataForm.maintenanceTime" :disabled="isdetail" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.equipment.maintenanceTime')])" clearable :style="{width: '100%'}" />
</el-form-item>
</el-col>
</el-row>
</el-row> -->
<el-row>
<el-col :span="4">
<!-- <el-col :span="4">
<el-form-item :label="$t('module.basicData.equipment.E10Status')" prop="estatus">
<el-switch
v-model="dataForm.estatus"
@@ -248,11 +259,11 @@
inactive-color="#AAAAAA"
/>
</el-form-item>
</el-col>
</el-col> -->
</el-row>
<el-row>
<el-col :span="9">
<el-form-item v-if="listQuery.equipmentId && !isdetail" :label="$t('module.basicData.equipment.equipmentImg')" prop="eImg">
<!-- <el-form-item v-if="listQuery.equipmentId && !isdetail" :label="$t('module.basicData.equipment.equipmentImg')" prop="eImg">
<el-upload
ref="eImg"
name="files"
@@ -265,7 +276,7 @@
>
<el-button size="small" type="primary" icon="el-icon-upload">{{ 'btn.upload' | i18nFilter }}</el-button>
</el-upload>
</el-form-item>
</el-form-item> -->
<el-form-item v-if="isdetail" :label="$t('module.basicData.equipment.equipmentImg')" prop="upInfo">
<div v-for="item in imgList" :key="item.id">
{{ item.fileName }} <el-button size="small" type="primary" icon="el-icon-upload" @click="downloadFile(item.fileId)">{{ 'btn.download' | i18nFilter }}</el-button>
@@ -330,12 +341,9 @@ import {
equipmentInfoUpdate,
equipmentInfoAdd,
equipmentInfoCode,
equipmentInfoFileAdd,
getEquipmentInfoFile
equipmentInfoFileAdd
} from '@/api/basicData/Equipment/equipmentInfo'
import { equipmentGroupList } from '@/api/basicData/Equipment/equipmentGroup'
import { equipmentInfoAttrList, equipmentInfoAttrDelete } from '@/api/basicData/Equipment/equipmentInfoAttr'
import { equipmentTypeList } from '@/api/basicData/Equipment/equipmentType'
import BaseTable from '@/components/BaseTable'
import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn'
import equipmentInfoAttrAdd from './equipmentInfoAttr-add'
@@ -365,15 +373,15 @@ const tableProps = [
align: 'center'
},
{
prop: 'attrValue',
prop: 'attrContent',
label: i18n.t('module.basicData.visual.AttributeValue'),
align: 'center'
},
{
prop: 'remark',
label: i18n.t('module.basicData.visual.Remarks'),
align: 'center'
}
// {
// prop: 'remark',
// label: i18n.t('module.basicData.visual.Remarks'),
// align: 'center'
// }
]
export default {
@@ -391,9 +399,9 @@ export default {
code: '',
enName: '',
abbr: '',
equipmentType: '',
equipmentType: '1',
spec: '',
productionTime: '',
createTime: '',
enterTime: '',
debugTime: '',
debugPeriod: '',
@@ -414,6 +422,16 @@ export default {
maintenanceTime: '',
maintenanceCycle: ''
},
options: [
{
value: '1',
label: this.$t('module.basicData.cache.logisticsEquipment')
},
{
value: '2',
label: this.$t('module.basicData.cache.processEquipment')
}
],
rules: {
name: [{
required: true,
@@ -427,19 +445,19 @@ export default {
}],
equipmentType: [{
required: true,
message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.equipment.EquipmentType')]),
trigger: 'change'
}],
maintenanceCycle: [{
required: true,
message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.equipment.maintenanceCycle')]),
trigger: 'blur'
}],
maintenanceTime: [{
required: true,
message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.equipment.maintenanceTime')]),
message: this.$i18nForm(['placeholder.select', this.$t('module.basicData.equipment.EquipmentType')]),
trigger: 'blur'
}]
// maintenanceCycle: [{
// required: true,
// message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.equipment.maintenanceCycle')]),
// trigger: 'blur'
// }],
// maintenanceTime: [{
// required: true,
// message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.equipment.maintenanceTime')]),
// trigger: 'blur'
// }]
},
typeCode: {},
eImgAction: uploadPath,
@@ -462,40 +480,43 @@ export default {
created() {
this.listQuery.equipmentId = this.$route.query.id
this.init()
this.getList()
},
methods: {
init() {
this.isdetail = false
this.isdetail = Boolean(this.$route.query.isdetail)
if (this.isdetail) {
const data =
{
'equipmentId': this.listQuery.equipmentId
}
getEquipmentInfoFile(data).then(res => {
this.downloadList = res.data
this.downloadList.forEach(item => {
if (item.typeCode === 'equipmentInfoImage') {
this.imgList.push(item)
} else {
this.fileList.push(item)
}
})
})
}
this.list.splice(0, this.list.length)
equipmentTypeList(this.listQuery).then(response => {
this.equipmentTypeOption = response.data.records
})
equipmentGroupList(this.listQuery).then(response => {
this.equipmentGroupOption = response.data.records
})
// 设备信息下载接口,暂时未调用
// if (this.isdetail) {
// const data =
// {
// 'equipmentId': this.listQuery.equipmentId
// }
// getEquipmentInfoFile(data).then(res => {
// this.downloadList = res.data
// this.downloadList.forEach(item => {
// if (item.typeCode === 'equipmentInfoImage') {
// this.imgList.push(item)
// } else {
// this.fileList.push(item)
// }
// })
// })
// }
// this.list.splice(0, this.list.length)
// equipmentTypeList(this.listQuery).then(response => {
// this.equipmentTypeOption = response.data.records
// })
// equipmentGroupList(this.listQuery).then(response => {
// this.equipmentGroupOption = response.data.records
// })
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (this.listQuery.equipmentId) {
this.listLoading = true
equipmentInfoDetail(this.listQuery.equipmentId).then(res => {
this.dataForm = res.data
console.log(this.dataForm)
})
equipmentInfoAttrList(this.listQuery).then(response => {
if (response.data.records) {
@@ -514,7 +535,9 @@ export default {
},
getList() {
this.listLoading = true
// console.log(this.listQuery)
equipmentInfoAttrList(this.listQuery).then(response => {
// console.log(response)
if (response.data.records) {
this.list = response.data.records
} else {
@@ -525,7 +548,7 @@ export default {
},
handleClick(raw) {
if (raw.type === 'delete') {
this.$confirm(`${this.$t('module.basicData.visual.TipsBefore')}[${raw.data.attrName}]?`, this.$t('module.basicData.visual.Tips'), {
this.$confirm(`${this.$t('module.basicData.visual.TipsBefore')}[${raw.data.name}]?`, this.$t('module.basicData.visual.Tips'), {
confirmButtonText: this.$t('module.basicData.visual.confirmButtonText'),
cancelButtonText: this.$t('module.basicData.visual.cancelButtonText'),
type: 'warning'
@@ -547,13 +570,14 @@ export default {
},
// 表单提交
dataFormSubmit() {
console.log(this.dataForm)
console.log(this.dataForm.eInfo)
// console.log(this.dataForm)
// console.log(this.dataForm.eInfo)
this.$refs['dataForm'].validate((valid) => {
if (valid) {
const data = this.dataForm
data.id = this.listQuery.equipmentId
if (this.listQuery.equipmentId) {
// console.log(data)
equipmentInfoUpdate(data).then(res => {
this.$message({
message: this.$t('module.basicData.visual.success'),
@@ -562,6 +586,7 @@ export default {
})
})
} else {
console.log(data)
equipmentInfoAdd(data).then(res => {
this.$message({
message: this.$t('module.basicData.visual.success'),
@@ -619,9 +644,9 @@ export default {
'fileUrl': res.data[0].fileUrl,
'typeCode': this.typeCode.typeCode
}
console.log(data)
// console.log(data)
equipmentInfoFileAdd(data).then(res => {
console.log(res)
// console.log(res)
})
},
downloadFile(id) {

View File

@@ -1,8 +1,8 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 16:37:56
* @LastEditors: zwq
* @LastEditTime: 2021-03-25 16:31:46
* @LastEditors: fzq
* @LastEditTime: 2022-03-05 14:08:41
* @Description:
-->
<template>
@@ -19,12 +19,12 @@
<el-form-item :label="$t('module.basicData.visual.AttributeName')" prop="attrName">
<el-input v-model="dataForm.attrName" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.AttributeName')])" clearable />
</el-form-item>
<el-form-item :label="$t('module.basicData.visual.AttributeValue')" prop="attrValue">
<el-input v-model="dataForm.attrValue" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.AttributeValue')])" clearable />
<el-form-item :label="$t('module.basicData.visual.AttributeValue')" prop="attrContent">
<el-input v-model="dataForm.attrContent" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.AttributeValue')])" clearable />
</el-form-item>
<el-form-item :label="$t('module.basicData.visual.Remarks')" prop="remark">
<!-- <el-form-item :label="$t('module.basicData.visual.Remarks')" prop="remark">
<el-input v-model="dataForm.remark" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.Remarks')])" clearable />
</el-form-item>
</el-form-item> -->
</el-form>
<div class="drawer-footer">
<el-button @click="visible = false">{{ 'btn.cancel' | i18nFilter }}</el-button>
@@ -52,14 +52,14 @@ export default {
dataForm: {
id: 0,
attrName: '',
attrValue: '',
attrContent: '',
remark: ''
},
dataRule: {
attrName: [
{ required: true, message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.visual.AttributeName')]), trigger: 'blur' }
],
attrValue: [
attrContent: [
{ required: true, message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.visual.AttributeValue')]), trigger: 'blur' }
]
}
@@ -74,6 +74,7 @@ export default {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
equipmentInfoAttrDetail(this.dataForm.id).then(res => {
console.log(res)
this.dataForm = res.data
})
}
@@ -86,7 +87,7 @@ export default {
if (valid) {
const data = {
'attrName': this.dataForm.attrName,
'attrValue': this.dataForm.attrValue,
'attrContent': this.dataForm.attrContent,
'remark': this.dataForm.remark,
'equipmentId': this.equipmentId,
'id': this.dataForm.id

View File

@@ -1,8 +1,8 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 15:41:11
* @LastEditors: zwq
* @LastEditTime: 2021-07-08 09:46:10
* @LastEditors: fzq
* @LastEditTime: 2022-03-10 15:09:41
* @Description:
-->
<template>
@@ -43,7 +43,7 @@ import HeadForm from '@/components/basicData/HeadForm'
import BaseTable from '@/components/BaseTable'
import Pagination from '@/components/Pagination' // Secondary package based on el-pagination
import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn'
// import { timeFormatter } from '@/filters'
import { timeFormatter } from '@/filters'
// import dataDict from '@/filters/DataDict'
/**
* 表格表头配置项 TypeScript接口注释
@@ -76,20 +76,15 @@ const tableBtn = [
}
]
const tableProps = [
// {
// prop: 'createTime',
// label: i18n.t('module.basicData.factory.createTime'),
// filter: timeFormatter,
// align: 'center'
// },
{
prop: 'name',
label: i18n.t('module.basicData.equipment.EquipmentName'),
prop: 'createTime',
label: i18n.t('module.basicData.factory.createTime'),
filter: timeFormatter,
align: 'center'
},
{
prop: 'equipmentTypeName',
label: i18n.t('module.basicData.equipment.EquipmentType'),
prop: 'name',
label: i18n.t('module.basicData.equipment.EquipmentName'),
align: 'center'
},
{
@@ -98,8 +93,8 @@ const tableProps = [
align: 'center'
},
{
prop: 'equipmentGroupName',
label: i18n.t('module.basicData.equipment.EquipmentGrouping'),
prop: 'typeName',
label: i18n.t('module.basicData.equipment.EquipmentType'),
align: 'center'
},
{
@@ -108,26 +103,11 @@ const tableProps = [
align: 'center'
},
{
prop: 'maintenanceCycle',
label: i18n.t('module.basicData.equipment.maintenanceCycle'),
align: 'center'
},
{
prop: 'maintenanceTime',
label: i18n.t('module.basicData.equipment.maintenanceTime'),
align: 'center'
},
{
prop: 'description',
label: i18n.t('module.basicData.equipment.FunctionDescription'),
prop: 'abbr',
label: i18n.t('module.basicData.equipment.shortName'),
align: 'center'
}
// {
// prop: 'abbr',
// label: i18n.t('module.basicData.visual.Abbreviation'),
// align: 'center'
// }
// {
// prop: 'estatus',
// label: i18n.t('module.basicData.visual.CurrentState'),
// filter: dataDict('enableState'),
@@ -150,12 +130,14 @@ export default {
},
data() {
return {
keyName: i18n.t('module.basicData.visual.keyword'),
placeholderName: this.$t('module.basicData.equipment.EquipmentName') + this.$t('module.basicData.visual.Or') + this.$t('module.basicData.equipment.EquipmentCode'),
keyName: this.$t('module.basicData.equipment.EquipmentCode'),
placeholderName: this.$t('module.basicData.equipment.EquipmentCode'),
tableBtn,
trueWidth: 240,
tableProps,
list: [],
list: [{
typeName: ''
}],
total: 0,
listLoading: true,
listQuery: {
@@ -197,13 +179,23 @@ export default {
this.listQuery.name = key
this.listQuery.code = key
equipmentInfoList(this.listQuery).then(response => {
console.log(response)
if (response.data.records) {
this.list = response.data.records
// 1是物流设备2是工艺设备与equipmentType进行替换
for (var x = 0; x < this.list.length; x++) {
if (this.list[x].equipmentType === '1') {
this.list[x].typeName = this.$t('module.basicData.cache.logisticsEquipment')
} else if (this.list[x].equipmentType === '2') {
this.list[x].typeName = this.$t('module.basicData.cache.processEquipment')
}
}
} else {
this.list.splice(0, this.list.length)
}
this.total = response.data.total
this.listLoading = false
console.log(this.list)
})
},
// 新增 / 修改

View File

@@ -1,8 +1,8 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 16:37:56
* @LastEditors: gtz
* @LastEditTime: 2021-04-17 16:33:37
* @LastEditors: fzq
* @LastEditTime: 2022-03-15 18:33:01
* @Description:
-->
<template>
@@ -62,23 +62,8 @@
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item :label="$t('module.basicData.staff.Profession')" prop="majorId">
<el-select
v-model="staffData.majorId"
:placeholder="$i18nForm(['placeholder.input', $t('module.basicData.staff.Profession')])"
multiple
filterable
clearable
:style="{width: '100%'}"
>
<el-option
v-for="(item, index) in majorArr"
:key="index"
:label="item.name"
:value="item.id"
:disabled="item.disabled"
/>
</el-select>
<el-form-item :label="$t('module.basicData.visual.Remarks')" prop="description">
<el-input v-model="staffData.description" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.Remarks')])" clearable :style="{width: '100%'}" />
</el-form-item>
</el-col>
</el-row>
@@ -122,11 +107,6 @@
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="20">
<el-form-item :label="$t('module.basicData.visual.Remarks')" prop="description">
<el-input v-model="staffData.description" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.Remarks')])" clearable :style="{width: '100%'}" />
</el-form-item>
</el-col>
</el-row>
</el-col>
</el-form>
@@ -140,7 +120,6 @@
<script>
import { staffDetail, staffUpdate, staffAdd, staffCode } from '@/api/basicData/GroupModule/staff'
import { majorList } from '@/api/basicData/GroupModule/major'
export default {
props: {
@@ -152,7 +131,6 @@ export default {
data() {
return {
visible: false,
majorArr: [],
staffData: {
name: undefined,
sex: '',
@@ -191,10 +169,10 @@ export default {
}]
},
sexOptions: [{
'label': '男',
'label': this.$t('module.basicData.cache.man'),
'value': 1
}, {
'label': '女',
'label': this.$t('module.basicData.cache.woman'),
'value': 0
}],
onDutyOptions: [{
@@ -211,13 +189,6 @@ export default {
staffCode().then(res => {
this.staffData.code = res.data
})
majorList({
current: 1,
size: 999,
name: ''
}).then(response => {
this.majorArr = response.data.records
})
this.staffData.id = id || ''
this.visible = true
this.$nextTick(() => {

View File

@@ -1,8 +1,8 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 15:41:11
* @LastEditors: zwq
* @LastEditTime: 2021-05-21 14:41:36
* @LastEditors: fzq
* @LastEditTime: 2022-03-19 10:20:40
* @Description:
-->
<template>
@@ -127,11 +127,6 @@ const tableProps = [
label: i18n.t('module.basicData.staff.Wechat'),
align: 'center'
},
{
prop: 'majorArr',
label: i18n.t('module.basicData.staff.Profession'),
align: 'center'
},
{
prop: 'workshop',
label: i18n.t('module.basicData.staff.Workshop'),

View File

@@ -1,8 +1,8 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 15:41:11
* @LastEditors: zwq
* @LastEditTime: 2021-03-11 16:48:22
* @LastEditors: fzq
* @LastEditTime: 2022-03-03 18:33:17
* @Description:
-->
<template>
@@ -180,6 +180,7 @@ export default {
this.listLoading = true
this.listQuery.name = key
this.listQuery.code = key
console.log(this.listQuery)
materialList(this.listQuery).then(response => {
if (response.data.records) {
this.list = response.data.records

View File

@@ -0,0 +1,201 @@
<!--
* @Descripttion:
* @version:
* @Author: fzq
* @Date: 2022-03-04 11:12:42
* @LastEditors: fzq
* @LastEditTime: 2022-03-09 16:12:04
-->
<template>
<el-dialog
:title="!dataForm.id ? 'btn.add' : 'btn.edit' | i18nFilter"
:visible.sync="visible"
>
<el-form ref="dataForm" :model="dataForm" label-width="130px" @keyup.enter.native="dataFormSubmit()">
<el-form-item :label="$t('module.basicData.processLocation.workSequenId')" prop="workSequenId">
<el-input v-model="dataForm.workSequenId" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.processLocation.workSequenId')])" clearable />
</el-form-item>
<!-- <el-form-item :label="$t('module.basicData.processLocation.locationName')" prop="locationName">
<el-input v-model="dataForm.locationId" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.processLocation.locationName')])" clearable />
</el-form-item> -->
<el-form-item :label="$t('module.basicData.processLocation.locationName')" prop="locationName">
<el-select v-model="dataForm.locationName" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.processLocation.locationName')])">
<el-option
v-for="item in dataForm"
:key="item.locationName"
:label="item.locationName"
:value="item.locationName"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('module.basicData.processLocation.portAttrId')" prop="portAttrId">
<el-input v-model="dataForm.portAttrId" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.processLocation.portAttrId')])" clearable />
</el-form-item>
<!-- <el-form-item :label="$t('module.basicData.processLocation.isProcess')" prop="isProcess">
<el-input v-model="dataForm.isProcess" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.processLocation.isProcess')])" clearable />
</el-form-item> -->
<el-form-item :label="$t('module.basicData.processLocation.isProcess')" prop="isProcess">
<el-select v-model="dataForm.isProcess" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.processLocation.isProcess')])">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('module.basicData.processLocation.equipmentMark')" prop="equipmentMark">
<el-input v-model="dataForm.equipmentMark" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.processLocation.equipmentMark')])" clearable />
</el-form-item>
<el-form-item :label="$t('module.basicData.processLocation.sequence')" prop="sequence">
<el-input v-model="dataForm.sequence" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.processLocation.sequence')])" clearable />
</el-form-item>
<!-- <el-form-item :label="$t('module.basicData.processLocation.goodsShelves')" prop="goodsShelves">
<el-input v-model="dataForm.goodsShelves" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.processLocation.goodsShelves')])" clearable />
</el-form-item> -->
<el-form-item :label="$t('module.basicData.processLocation.goodsShelves')" prop="goodsShelves">
<el-select v-model="dataForm.goodsShelves" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.processLocation.goodsShelves')])">
<el-option
v-for="item in options2"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">{{ 'btn.cancel' | i18nFilter }}</el-button>
<el-button type="primary" @click="dataFormSubmit()">{{ 'btn.confirm' | i18nFilter }}</el-button>
</span>
</el-dialog>
</template>
<script>
import { detail, update, add, locationList } from '@/api/basicData/Cache/processLocation'
export default {
data() {
return {
visible: false,
dataForm: {
workSequenId: '',
locationId: '',
portAttrId: '',
isProcess: '',
equipmentMark: '',
sequence: '',
goodsShelves: '',
locationName: ''
},
options: [
{
value: 0,
label: this.$t('module.basicData.processLocation.CacheLocation')
},
{
value: 1,
label: this.$t('module.basicData.processLocation.ProcessLocation')
}
],
options2: [
{
value: 0,
label: this.$t('module.basicData.processLocation.aShelf')
},
{
value: 1,
label: this.$t('module.basicData.processLocation.bShelf')
}
],
// options3: [
// {
// value: this.dataForm.locationId,
// label: this.dataForm.locationName
// }
// ],
listQuery: {
id: ''
}
}
},
methods: {
init(id) {
this.listQuery.id = id || ''
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
locationList().then(res => {
// console.log(res)
// this.dataForm.locationId = res.data.id'
for (var i = 0; i < res.data.length; i++) {
this.dataForm.locationId = res.data[i].id
this.dataForm.locationName = res.data[i].locationName
}
// console.log(this.dataForm)
})
// portAttrList().then(res => {
// console.log(res)
// })
// workSequenList().then(res => {
// console.log(res)
// })
// console.log(this.listQuery)
if (this.listQuery.id) {
// list(this.listQuery).then(res =>{
// this.list = response.data.records
// })
detail(this.listQuery.id).then(res => {
this.dataForm.equipmentMark = res.data.equipmentMark
this.dataForm.goodsShelves = res.data.goodsShelves
this.dataForm.id = res.data.id
this.dataForm.isProcess = res.data.isProcess
this.dataForm.portAttrId = res.data.portAttrId
this.dataForm.sequence = res.data.sequence
this.dataForm.workSequenId = res.data.workSequenId
console.log(this.dataForm)
})
} else {
// storageBoxCode().then(res => {
// this.dataForm.code = res.data
// })
}
})
},
// 表单提交
dataFormSubmit() {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
const data = this.dataForm
data.id = this.dataForm.id
if (this.dataForm.id) {
update(data).then(res => {
this.$message({
message: this.$t('module.basicData.visual.success'),
type: 'success',
duration: 1500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
}
})
})
} else {
add(data).then(res => {
this.$message({
message: this.$t('module.basicData.visual.success'),
type: 'success',
duration: 1500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
}
})
})
}
}
})
}
}
}
</script>

View File

@@ -0,0 +1,214 @@
<!--
* @Descripttion:
* @version:
* @Author: fzq
* @Date: 2022-03-03 09:51:25
* @LastEditors: fzq
* @LastEditTime: 2022-03-08 16:56:40
-->
<template>
<div class="app-container">
<head-form
:placeholder-name="placeholderName"
:key-name="keyName"
@getDataList="getList"
@add="addNew"
/>
<base-table
:page="listQuery.current"
:limit="listQuery.size"
:table-config="tableProps"
:table-data="list"
:is-loading="listLoading"
>
<method-btn
slot="handleBtn"
:width="trueWidth"
:method-list="tableBtn"
@clickBtn="handleClick"
/>
</base-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="listQuery.current"
:limit.sync="listQuery.size"
@pagination="getList()"
/>
<processInfo-add v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getList" />
</div>
</template>
<script>import i18n from '@/lang'
import HeadForm from '@/components/basicData/HeadForm'
import BaseTable from '@/components/BaseTable'
import processInfoAdd from './components/processInfo-add'
import Pagination from '@/components/Pagination' // Secondary package based on el-pagination
import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn'
import { list, locaDelete } from '@/api/basicData/Cache/processLocation'
/**
* 表格表头配置项 TypeScript接口注释
* tableConfig<ConfigItem> = []
*
* Interface ConfigItem = {
* prop: string,
* label: string,
* width: string,
* align: string,
* subcomponent: function,
* filter: function
* }
*
*
*/
const tableBtn = [
{
type: 'edit',
btnName: 'btn.edit'
},
{
type: 'delete',
btnName: 'btn.delete'
}
]
const tableProps = [
{
prop: 'workSequenId',
label: i18n.t('module.basicData.processLocation.workSequenId'),
align: 'center'
},
{
prop: 'locationId',
label: i18n.t('module.basicData.processLocation.locationId'),
align: 'center'
},
{
prop: 'portAttrId',
label: i18n.t('module.basicData.processLocation.portAttrId'),
align: 'center'
},
{
prop: 'isProcess',
label: i18n.t('module.basicData.processLocation.isProcess'),
align: 'center'
},
{
prop: 'equipmentMark',
label: i18n.t('module.basicData.processLocation.equipmentMark'),
align: 'center'
},
{
prop: 'sequence',
label: i18n.t('module.basicData.processLocation.sequence'),
align: 'center'
},
{
prop: 'goodsShelves',
label: i18n.t('module.basicData.processLocation.goodsShelves'),
align: 'center'
},
{
prop: 'locationName',
label: i18n.t('module.basicData.processLocation.locationName'),
align: 'center'
}
]
export default {
name: 'Area',
components: { Pagination, BaseTable, MethodBtn, HeadForm, processInfoAdd },
filters: {
statusFilter(status) {
const statusMap = {
published: 'success',
draft: 'info',
deleted: 'danger'
}
return statusMap[status]
}
},
data() {
return {
addOrUpdateVisible: false,
keyName: i18n.t('module.basicData.visual.keyword'),
placeholderName: i18n.t('module.basicData.processLocation.locationName'),
tableBtn,
trueWidth: 200,
tableProps,
list: [],
areaList: [],
total: 0,
listLoading: true,
listQuery: {
current: 1,
size: 10,
locationId: '',
workSequenId: '',
locationName: ''
}
}
},
created() {
this.getList()
},
methods: {
handleClick(raw) {
if (raw.type === 'delete') {
this.$confirm(`${this.$t('module.basicData.visual.TipsBefore')}[${raw.data.id}]?`, this.$t('module.basicData.visual.Tips'), {
confirmButtonText: this.$t('module.basicData.visual.confirmButtonText'),
cancelButtonText: this.$t('module.basicData.visual.cancelButtonText'),
type: 'warning'
}).then(() => {
locaDelete(raw.data.id).then(response => {
this.$message({
message: this.$t('module.basicData.visual.success'),
type: 'success',
duration: 1500,
onClose: () => {
this.getList()
}
})
})
}).catch(() => {})
} else if (raw.type === 'edit') {
this.addNew(raw.data.id)
} else {
this.addNew(raw.data.id, true)
}
},
getList(key) {
this.listLoading = true
this.listQuery.locationName = key
list(this.listQuery).then(response => {
if (response.data.records) {
this.list = response.data.records
} else {
this.list.splice(0, this.list.length)
}
this.total = response.data.total
// console.log(response)
this.listLoading = false
})
},
// 新增 / 修改
addNew(id) {
this.addOrUpdateVisible = true
this.$nextTick(() => {
this.$refs.addOrUpdate.init(id, true)
})
}
}
}
</script>
<style scoped>
.edit-input {
padding-right: 100px;
}
.cancel-btn {
position: absolute;
right: 15px;
top: 10px;
}
</style>

View File

@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2020-12-29 15:41:11
* @LastEditors: zwq
* @LastEditTime: 2022-01-14 15:54:12
* @LastEditTime: 2022-03-22 10:36:05
* @Description:
-->
<template>
@@ -12,7 +12,6 @@
:model="formData"
:inline="true"
size="medium"
label-width="100px"
>
<el-form-item :label="$t('module.basicData.Warehouse.TaskType')" prop="taskType">
<el-select v-model="formData.taskType" filterable :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.Warehouse.TaskType')])" clearable>
@@ -46,6 +45,8 @@
</el-form-item>
<el-form-item>
<el-button type="primary" @click="getList()"> {{ 'btn.search' | i18nFilter }} </el-button>
<el-button type="primary" @click="manualTask()"> {{ $t('module.basicData.Warehouse.PerformTaskManual') | i18nFilter }} </el-button>
<el-button type="primary" @click="publishTask()"> {{ $t('module.basicData.Warehouse.publishTask') | i18nFilter }} </el-button>
</el-form-item>
</el-form>
<base-table
@@ -70,17 +71,21 @@
@pagination="getList()"
/>
<current-task-info v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getList" />
<current-task-add v-if="manualTaskVisible" ref="manualTaskRef" @refreshDataList="getList" />
<publish-task v-if="publishTaskVisible" ref="publishTask" />
</div>
</template>
<script>
import { CurrentTaskList } from '@/api/basicData/Warehouse/HistoricalTask'
import CurrentTaskInfo from './components/CurrentTaskInfo.vue'
import CurrentTaskAdd from './components/CurrentTask-add.vue'
import PublishTask from './components/PublishTask.vue'
import i18n from '@/lang'
import BaseTable from '@/components/BaseTable'
import Pagination from '@/components/Pagination' // Secondary package based on el-pagination
import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn'
// import { timeFormatter } from '@/filters'
import { timeFormatter } from '@/filters'
/**
* 表格表头配置项 TypeScript接口注释
* tableConfig<ConfigItem> = []
@@ -112,6 +117,7 @@ const tableProps = [
{
prop: 'createTime',
label: i18n.t('module.basicData.Warehouse.ExecutionTime'),
filter: timeFormatter,
align: 'center'
},
{
@@ -168,11 +174,13 @@ const tableProps = [
export default {
name: 'ScrapInfo',
components: { Pagination, BaseTable, MethodBtn, CurrentTaskInfo },
components: { Pagination, BaseTable, MethodBtn, CurrentTaskInfo, CurrentTaskAdd, PublishTask },
data() {
return {
trueWidth: 100,
addOrUpdateVisible: false,
manualTaskVisible: false,
publishTaskVisible: false,
tableProps,
tableBtn,
list: [],
@@ -186,20 +194,20 @@ export default {
size: 10
},
taskTypeList: [{
'label': '出库',
'label': i18n.t('module.basicData.Warehouse.ExWarehouse'),
'value': 0
}, {
'label': '入库',
'label': i18n.t('module.basicData.Warehouse.InWarehouse'),
'value': 1
}, {
'label': '流转',
'label': i18n.t('module.basicData.Warehouse.Circulation'),
'value': 2
}],
TaskStatusList: [{
'label': '初始化',
'label': i18n.t('module.basicData.Warehouse.Initialization'),
'value': 0
}, {
'label': '损坏',
'label': i18n.t('module.basicData.Warehouse.Damage'),
'value': 1
}],
VehicleNameList: [{
@@ -237,6 +245,20 @@ export default {
this.$nextTick(() => {
this.$refs.addOrUpdate.init(id)
})
},
// 手动执行任务
manualTask() {
this.manualTaskVisible = true
this.$nextTick(() => {
this.$refs.manualTaskRef.init()
})
},
// 发布任务
publishTask() {
this.publishTaskVisible = true
this.$nextTick(() => {
this.$refs.publishTask.init()
})
}
}
}

View File

@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2020-12-29 15:41:11
* @LastEditors: zwq
* @LastEditTime: 2022-01-13 15:49:01
* @LastEditTime: 2022-03-16 09:46:13
* @Description:
-->
<template>
@@ -12,7 +12,6 @@
:model="formData"
:inline="true"
size="medium"
label-width="100px"
>
<el-form-item :label="$t('module.basicData.Warehouse.TaskType')" prop="taskType">
<el-select v-model="formData.taskType" filterable :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.Warehouse.TaskType')])" clearable>
@@ -44,7 +43,7 @@
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('module.basicData.Warehouse.TimeSlot')" prop="time">
<!-- <el-form-item :label="$t('module.basicData.Warehouse.TimeSlot')" prop="time">
<el-date-picker
v-model="formData.timeSlot"
type="daterange"
@@ -55,7 +54,7 @@
:range-separator="$t('module.orderManage.order.To')"
clearable
/>
</el-form-item>
</el-form-item> -->
<el-form-item>
<el-button type="primary" @click="getList()"> {{ 'btn.search' | i18nFilter }} </el-button>
</el-form-item>
@@ -92,7 +91,7 @@ import i18n from '@/lang'
import BaseTable from '@/components/BaseTable'
import Pagination from '@/components/Pagination' // Secondary package based on el-pagination
import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn'
// import { timeFormatter } from '@/filters'
import { timeFormatter } from '@/filters'
/**
* 表格表头配置项 TypeScript接口注释
* tableConfig<ConfigItem> = []
@@ -124,31 +123,27 @@ const tableProps = [
{
prop: 'createTime',
label: i18n.t('module.basicData.Warehouse.ExecutionTime'),
filter: timeFormatter,
align: 'center'
},
{
prop: 'status',
label: i18n.t('module.basicData.Warehouse.TaskStatus'),
prop: 'taskSource',
label: i18n.t('module.basicData.Warehouse.TaskSource'),
align: 'center'
},
// {
// prop: 'taskType',
// label: i18n.t('module.basicData.Warehouse.TaskType'),
// align: 'center'
// },
{
prop: 'name',
label: i18n.t('module.basicData.Warehouse.VehicleName'),
prop: 'taskType',
label: i18n.t('module.basicData.Warehouse.TaskType'),
align: 'center'
},
// {
// prop: 'substrateNo',
// label: i18n.t('module.basicData.Warehouse.BoxStatus'),
// align: 'center'
// },
{
prop: 'wcode',
label: i18n.t('module.basicData.Warehouse.BoxNumber'),
prop: 'fullCode',
label: i18n.t('module.basicData.Warehouse.TaskBoxNumber'),
align: 'center'
},
{
prop: 'emptyCode',
label: i18n.t('module.basicData.Warehouse.FullBoxNumber'),
align: 'center'
},
{
@@ -162,19 +157,24 @@ const tableProps = [
align: 'center'
},
{
prop: 'updateTime',
label: i18n.t('module.basicData.Warehouse.CompletionTime'),
align: 'center'
},
{
prop: 'currLocation',
prop: 'anotherCurrLocation',
label: i18n.t('module.basicData.Warehouse.StartLocation'),
align: 'center'
},
{
prop: 'targetLocation',
prop: 'anotherTargetLocation',
label: i18n.t('module.basicData.Warehouse.TargetLocation'),
align: 'center'
},
{
prop: 'currLocation',
label: i18n.t('module.basicData.Warehouse.FullBoxStartLocation'),
align: 'center'
},
{
prop: 'name',
label: i18n.t('module.basicData.Warehouse.VehicleName'),
align: 'center'
}
]
@@ -194,9 +194,9 @@ export default {
taskType: '',
status: '',
equipmentId: '',
timeSlot: [],
endTime: '',
startTime: '',
// timeSlot: [],
// endTime: '',
// startTime: '',
current: 1,
size: 10
},
@@ -231,13 +231,13 @@ export default {
},
methods: {
getList() {
if (this.formData.timeSlot) {
this.formData.startTime = this.formData.timeSlot[0]
this.formData.endTime = this.formData.timeSlot[1]
} else {
this.formData.startTime = ''
this.formData.endTime = ''
}
// if (this.formData.timeSlot) {
// this.formData.startTime = this.formData.timeSlot[0]
// this.formData.endTime = this.formData.timeSlot[1]
// } else {
// this.formData.startTime = ''
// this.formData.endTime = ''
// }
this.listLoading = true
HistoricalTaskList(this.formData).then(response => {
if (response.data.records) {

View File

@@ -0,0 +1,195 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 15:41:11
* @LastEditors: zwq
* @LastEditTime: 2022-03-16 09:46:19
* @Description:
-->
<template>
<div class="app-container">
<el-form
ref="formData"
:rules="rules"
:model="listQuery"
:inline="true"
size="medium"
>
<el-form-item :label="$t('module.art.processList.processName')" prop="key">
<el-select
v-model="listQuery.key"
:placeholder="$i18nForm(['placeholder.input', $t('module.art.processList.processName')])"
clearable
filterable
:style="{width: '100%'}"
>
<el-option
v-for="(item, index) in processArr"
:key="index"
:label="item.name"
:value="item.name"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="getList()"> {{ 'btn.search' | i18nFilter }} </el-button>
</el-form-item>
</el-form>
<base-table
:page="listQuery.current"
:limit="listQuery.size"
:table-config="tableProps"
:table-data="list"
:is-loading="listLoading"
>
<method-btn
slot="handleBtn"
:width="trueWidth"
:method-list="tableBtn"
@clickBtn="handleClick"
/>
</base-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="listQuery.current"
:limit.sync="listQuery.size"
@pagination="getList()"
/>
</div>
</template>
<script>
import { list } from '@/api/art-manage/process'
import BaseTable from '@/components/BaseTable'
import Pagination from '@/components/Pagination' // Secondary package based on el-pagination
import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn'
import i18n from '@/lang'
import { timeFormatter } from '@/filters'
/**
* 表格表头配置项 TypeScript接口注释
* tableConfig<ConfigItem> = []
*
* Interface ConfigItem = {
* prop: string,
* label: string,
* width: string,
* align: string,
* subcomponent: function,
* filter: function
* }
*
*
*/
const tableBtn = [
{
type: 'see',
btnName: i18n.t('module.basicData.Warehouse.processStorageLink')
}
]
const tableProps = [
{
prop: 'code',
label: i18n.t('module.art.processList.processCode'),
align: 'center'
},
{
prop: 'name',
label: i18n.t('module.art.processList.processName'),
align: 'center'
},
{
prop: 'createTime',
label: i18n.t('module.art.eqName'),
filter: timeFormatter,
align: 'center'
}
]
export default {
name: 'ExecutionInfo',
components: { Pagination, BaseTable, MethodBtn },
filters: {
statusFilter(status) {
const statusMap = {
published: 'success',
draft: 'info',
deleted: 'danger'
}
return statusMap[status]
}
},
data() {
return {
tableBtn,
trueWidth: 200,
tableProps,
list: [],
processArr: [],
total: 0,
listLoading: true,
rules: {},
listQuery: {
current: 1,
size: 10,
key: ''
}
}
},
created() {
this.getList()
this.init()
},
methods: {
handleClick(raw) {
this.addNew(raw.data.id)
},
init() {
const lparams = {
current: 1,
size: 999
}
list(lparams).then(response => {
if (response.data.records) {
this.processArr = response.data.records
} else {
this.processArr.splice(0, this.list.length)
}
this.total = response.data.total
})
},
getList() {
this.listLoading = true
list(this.listQuery).then(response => {
if (response.data.records) {
this.list = response.data.records
} else {
this.list.splice(0, this.list.length)
}
this.total = response.data.total
this.listLoading = false
})
},
// 新增 / 修改
addNew(id) {
this.$router.push({
name: 'ProcessStorageManagementInfo',
query: {
id
}
})
}
}
}
</script>
<style scoped>
.edit-input {
padding-right: 100px;
}
.cancel-btn {
position: absolute;
right: 15px;
top: 10px;
}
</style>

View File

@@ -2,12 +2,12 @@
* @Author: zwq
* @Date: 2020-12-29 15:41:11
* @LastEditors: zwq
* @LastEditTime: 2022-01-18 14:30:25
* @LastEditTime: 2022-03-16 09:45:26
* @Description:
-->
<template>
<div class="app-container">
<el-form ref="listQuery" :model="listQuery" :inline="true" label-width="120px" @keyup.enter.native="getList()">
<el-form ref="listQuery" :model="listQuery" :inline="true" @keyup.enter.native="getList()">
<el-form-item :label="$t('module.basicData.Warehouse.StorageBoxNumber')" prop="code">
<el-select
v-model="listQuery.code"
@@ -92,7 +92,7 @@ const tableProps = [
]
export default {
name: 'StorageBoxInfo',
name: 'ScrapInfo',
components: { Pagination, BaseTable },
filters: {
statusFilter(status) {
@@ -123,15 +123,18 @@ export default {
},
created() {
this.getList()
const listQuery1 = {
current: 1,
size: 100
}
StorageBoxRackCode(listQuery1).then(res => {
this.storageBoxList = res.data.records
})
this.init()
},
methods: {
init() {
const listQuery1 = {
current: 1,
size: 100
}
StorageBoxRackCode(listQuery1).then(res => {
this.storageBoxList = res.data.records
})
},
getList() {
this.listLoading = true
StorageBoxInfoList(this.listQuery).then(response => {

View File

@@ -2,12 +2,12 @@
* @Author: zwq
* @Date: 2020-12-29 15:41:11
* @LastEditors: zwq
* @LastEditTime: 2022-01-17 14:06:53
* @LastEditTime: 2022-03-16 09:46:26
* @Description:
-->
<template>
<div class="app-container">
<el-form ref="listQuery" :model="listQuery" :inline="true" label-width="120px" @keyup.enter.native="getList()">
<el-form ref="listQuery" :model="listQuery" :inline="true" @keyup.enter.native="getList()">
<el-form-item :label="$t('module.basicData.Warehouse.LocationName')" prop="currLocationId">
<el-select
v-model="listQuery.currLocationId"

View File

@@ -0,0 +1,205 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 16:37:56
* @LastEditors: zwq
* @LastEditTime: 2022-03-16 09:49:10
* @Description:
-->
<template>
<el-dialog
:title="$t('module.basicData.Warehouse.PerformTaskManual')"
:visible.sync="visible"
>
<el-row :gutter="10">
<el-form
ref="dataForm"
:model="dataForm"
size="medium"
label-width="170px"
label-position="left"
>
<el-col :span="12">
<el-row>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.TaskBoxNumber')" prop="taskCode">
<el-select
v-model="dataForm.taskCode"
:placeholder="$i18nForm(['placeholder.input', $t('module.basicData.Warehouse.StorageBoxNumber')])"
clearable
filterable
:style="{width: '100%'}"
>
<el-option
v-for="(item, index) in storageBoxList"
:key="index"
:label="item.code"
:value="item.code"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.FullBoxNumber')" prop="orderName">
<el-input v-model="dataForm.orderName" :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.ExecutionOperation')" prop="fullCode">
<el-select
v-model="dataForm.fullCode"
:placeholder="$i18nForm(['placeholder.input', $t('module.art.processList.processName')])"
clearable
filterable
:style="{width: '100%'}"
>
<el-option
v-for="(item, index) in processArr"
:key="index"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.TaskStatus')" prop="TaskStatus">
<el-select
v-model="dataForm.TaskStatus"
:placeholder="$i18nForm(['placeholder.input', $t('module.basicData.Warehouse.TaskStatus')])"
clearable
filterable
:style="{width: '100%'}"
>
<el-option
v-for="(item, index) in TaskStatusArr"
:key="index"
:label="item.dataName"
:value="item.dataCode"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.ScrapInfo.remark')" prop="remark">
<el-input v-model="dataForm.remark" :style="{width: '100%'}" />
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="12">
<el-row>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.TaskLocation')" prop="createTime">
<el-input v-model="dataForm.createTime" :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.FullBoxStartLocation')" prop="taskType">
<el-input v-model="dataForm.taskType" :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.Priority')" prop="emptyCode">
<el-input v-model="dataForm.emptyCode" :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.NextOperation')" prop="anotherCurrLocation">
<el-select
v-model="dataForm.anotherCurrLocation"
:placeholder="$i18nForm(['placeholder.input', $t('module.basicData.Warehouse.NextOperation')])"
clearable
filterable
:style="{width: '100%'}"
>
<el-option
v-for="(item, index) in processArr"
:key="index"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-col>
</el-form>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">{{ 'btn.cancel' | i18nFilter }}</el-button>
<el-button type="primary" @click="visible = false">{{ $t('module.basicData.Warehouse.PerformTaskManual') | i18nFilter }} </el-button>
</span>
</el-dialog>
</template>
<script>
// import { CurrentTaskDetail } from '@/api/basicData/Warehouse/HistoricalTask'
import { list } from '@/api/art-manage/process'
import { dataDictionaryDataList } from '@/api/basicData/dataDictionary'
import { StorageBoxRackCode } from '@/api/basicData/Warehouse/StorageBoxInfo'
export default {
data() {
return {
visible: false,
processArr: [],
TaskStatusArr: [],
storageBoxList: [],
dataForm: {
id: '',
taskCode: undefined,
orderName: undefined,
fullCode: undefined,
TaskStatus: undefined,
remark: undefined,
field119: undefined,
createTime: undefined,
taskType: undefined,
emptyCode: undefined,
anotherCurrLocation: undefined,
field121: undefined,
taskSource: undefined,
anotherCurrProcessCode: undefined,
anotherNextProcessCode: undefined,
anotherTargetLocation: undefined,
field126: undefined
}
}
},
methods: {
init(id) {
this.dataForm.id = id
this.visible = true
const lparams = {
current: 1,
size: 999
}
list(lparams).then(response => {
if (response.data.records) {
this.processArr = response.data.records
} else {
this.processArr.splice(0, this.list.length)
}
this.total = response.data.total
})
StorageBoxRackCode(lparams).then(res => {
this.storageBoxList = res.data.records
})
dataDictionaryDataList({
current: 1,
size: 999,
dictTypeId: '6'
}).then(response => {
if (response.data.records) {
this.TaskStatusArr = response.data.records
} else {
this.TaskStatusArr.splice(0, this.scrapsArr.length)
}
})
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
})
}
}
}
</script>

View File

@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2020-12-29 16:37:56
* @LastEditors: zwq
* @LastEditTime: 2022-01-14 15:55:39
* @LastEditTime: 2022-03-16 09:50:12
* @Description:
-->
<template>
@@ -15,7 +15,7 @@
ref="dataForm"
:model="dataForm"
size="medium"
label-width="110px"
label-width="160px"
label-position="left"
>
<el-col :span="8">

View File

@@ -2,20 +2,21 @@
* @Author: zwq
* @Date: 2020-12-29 16:37:56
* @LastEditors: zwq
* @LastEditTime: 2022-01-13 16:22:39
* @LastEditTime: 2022-03-16 09:50:58
* @Description:
-->
<template>
<el-dialog
:title="'btn.see' | i18nFilter"
:visible.sync="visible"
width="60%"
>
<el-row :gutter="10">
<el-form
ref="dataForm"
:model="dataForm"
size="medium"
label-width="110px"
label-width="170px"
label-position="left"
>
<el-col :span="8">

View File

@@ -0,0 +1,159 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 15:41:11
* @LastEditors: zwq
* @LastEditTime: 2022-03-17 14:50:20
* @Description:
-->
<template>
<div class="app-container">
<div style="margin:10px 50px">
<el-button type="success" @click="goback()">{{ 'btn.back' | i18nFilter }}</el-button>
<el-button type="primary" @click="addNew()">{{ 'btn.add' | i18nFilter }}</el-button>
</div>
<base-table
:page="listQuery.current"
:limit="listQuery.size"
:table-config="tableProps"
:table-data="list"
:is-loading="listLoading"
>
<!-- <method-btn
slot="handleBtn"
:width="trueWidth"
:method-list="tableBtn"
@clickBtn="handleClick"
/> -->
</base-table>
</div>
</template>
<script>
import { locationByProcessList } from '@/api/basicData/Warehouse/StorageBoxInfo'
import i18n from '@/lang'
import BaseTable from '@/components/BaseTable'
// import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn'
/**
* 表格表头配置项 TypeScript接口注释
* tableConfig<ConfigItem> = []
*
* Interface ConfigItem = {
* prop: string,
* label: string,
* width: string,
* align: string,
* subcomponent: function,
* filter: function
* }
*
*
*/
// const tableBtn = [
// {
// type: 'delete',
// btnName: 'btn.delete'
// }
// ]
const tableProps = [
{
prop: 'code',
label: i18n.t('module.basicData.cache.LocationCode'),
align: 'center'
},
{
prop: 'locationName',
label: i18n.t('module.basicData.cache.LocationName'),
align: 'center'
}
]
export default {
name: 'Shelf',
components: { BaseTable },
filters: {
statusFilter(status) {
const statusMap = {
published: 'success',
draft: 'info',
deleted: 'danger'
}
return statusMap[status]
}
},
data() {
return {
// tableBtn,
trueWidth: 200,
tableProps,
list: [],
listLoading: true,
listQuery: {
current: 1,
size: 990,
workSequenId: ''
}
}
},
created() {
this.listQuery.workSequenId = this.$route.query.id
this.getList()
},
methods: {
handleClick(raw) {
if (raw.type === 'delete') {
this.$confirm(`${this.$t('module.basicData.visual.TipsBefore')}[${raw.data.name}]?`, this.$t('module.basicData.visual.Tips'), {
confirmButtonText: this.$t('module.basicData.visual.confirmButtonText'),
cancelButtonText: this.$t('module.basicData.visual.cancelButtonText'),
type: 'warning'
}).then(() => {
// shelfDelete(raw.data.id).then(response => {
// this.$message({
// message: this.$t('module.basicData.visual.success'),
// type: 'success',
// duration: 1500,
// onClose: () => {
// this.getList()
// }
// })
// })
}).catch(() => {})
}
},
getList() {
this.listLoading = true
locationByProcessList(this.listQuery).then(response => {
if (response.data.records) {
this.list = response.data.records
} else {
this.list.splice(0, this.list.length)
}
this.listLoading = false
})
},
// 新增 / 修改
addNew() {
this.$router.push({
name: 'ProcessStorageLink',
query: {
id: this.listQuery.workSequenId
}
})
},
goback() {
this.$router.go(-1)
}
}
}
</script>
<style scoped>
.edit-input {
padding-right: 100px;
}
.cancel-btn {
position: absolute;
right: 15px;
top: 10px;
}
</style>

View File

@@ -0,0 +1,75 @@
<!--
* @Author: gtz
* @Date: 2022-03-12 14:17:55
* @LastEditors: zwq
* @LastEditTime: 2022-03-16 14:18:33
* @Description: file content
* @FilePath: \mt-ck-wms-ui\src\views\basicData\Warehouse\components\PublishTask.vue
-->
<template>
<el-dialog
:title="'btn.see' | i18nFilter"
:visible.sync="visible"
>
<el-row :gutter="10">
<el-form
ref="dataForm"
:model="dataForm"
:rules="dataRule"
size="medium"
label-width="110px"
label-position="left"
>
<el-form-item :label="$t('module.basicData.Warehouse.startPosition')" prop="startPosition">
<el-input v-model="dataForm.startPosition" :style="{width: '100%'}" />
</el-form-item>
<el-form-item :label="$t('module.basicData.Warehouse.endPosition')" prop="endPosition">
<el-input v-model="dataForm.endPosition" :style="{width: '100%'}" />
</el-form-item>
<el-form-item :label="$t('module.basicData.Warehouse.taskType')" prop="taskType">
<el-input v-model="dataForm.taskType" :style="{width: '100%'}" />
</el-form-item>
</el-form>
</el-row>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">{{ 'btn.cancel' | i18nFilter }}</el-button>
<el-button type="primary" @click="visible = false">{{ 'btn.submit' | i18nFilter }} </el-button>
</span>
</el-dialog>
</template>
<script>
// import { CurrentTaskDetail } from '@/api/basicData/Warehouse/HistoricalTask'
export default {
data() {
return {
visible: false,
dataForm: {
startPosition: null,
endPosition: null,
taskType: null
},
dataRule: {
startPosition: [
{ required: true, message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.Warehouse.startPosition')]), trigger: 'blur' }
],
endPosition: [
{ required: true, message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.Warehouse.endPosition')]), trigger: 'blur' }
],
taskType: [
{ required: true, message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.Warehouse.taskType')]), trigger: 'blur' }
]
}
}
},
methods: {
init() {
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
})
}
}
}
</script>

View File

@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2020-12-29 16:37:56
* @LastEditors: zwq
* @LastEditTime: 2022-01-17 11:21:26
* @LastEditTime: 2022-03-16 09:47:25
* @Description:
-->
<template>
@@ -10,7 +10,7 @@
:title="!dataForm.id ? 'btn.add' : 'btn.edit' | i18nFilter"
:visible.sync="visible"
>
<el-form ref="dataForm" :model="dataForm" :rules="dataRule" label-width="120px" @keyup.enter.native="dataFormSubmit()">
<el-form ref="dataForm" :model="dataForm" :rules="dataRule" @keyup.enter.native="dataFormSubmit()">
<el-form-item :label="$t('module.basicData.Warehouse.LocationName')" prop="currLocationId">
<el-select
v-model="dataForm.currLocationId"

View File

@@ -0,0 +1,652 @@
<!--
* @Author: gtz
* @Date: 2022-03-03 09:16:10
* @LastEditors: gtz
* @LastEditTime: 2022-03-18 16:33:59
* @Description: file content
* @FilePath: \mt-ck-wms-ui\src\views\basicData\Warehouse\components\processStorageLink.vue
-->
<template>
<div class="dashboard-container">
<el-card class="dashboard-main">
<el-row class="dashboard-title">
<div class="dashboard-header-line" />
<div class="dashboard-header-title">
{{ $t("module.dashboard.title") }}
</div>
</el-row>
<el-row class="dashboard-legend">
<div
v-for="item in cassetteStatusList"
:key="'cassette' + item.id"
class="dashboard-legend-cassette"
>
<div
class="dashboard-legend-cassette-cricle"
:style="{ background: item.color }"
/>
{{ item.name }}
</div>
|
<div
v-for="item in portAttributeList"
:key="'port' + item.id"
class="dashboard-legend-port"
:style="{ background: item.color }"
>
{{ item.name }}
</div>
<div class="dashboard-legend-btn">
<el-button type="primary" size="mini" @click="submitLinkList">{{
"btn.submit" | i18nFilter
}}</el-button>
<el-button type="warning" size="mini" @click="init()">{{
"btn.reset" | i18nFilter
}}</el-button>
<el-button type="success" size="mini" @click="goback()">{{
"btn.back" | i18nFilter
}}</el-button>
</div>
<div class="dashboard-legend-search">
<el-select
v-model="current"
size="mini"
@change="handleChange"
><el-option
v-for="item in totalPage"
:key="'select' + item"
:label="
$t('module.dashboard.pageHeader') +
item +
$t('module.dashboard.pageFooter')
"
:value="item"
/>
</el-select>
</div>
</el-row>
<el-row
v-if="current * 80 < shelfVoList[0].rowVoList[0].portVoList.length"
class="dashboard-layout"
:gutter="12"
>
<el-col
v-for="item in 4"
:key="'shelfbox' + item"
class="dashboard-layout-shelf-box"
:span="6"
>
<el-row>
<el-col
v-for="(i, index) in shelfVoList"
:key="item + 'shelf' + i.id"
:span="12"
class="dashboard-layout-shelf"
>
<el-row>
<el-col
v-for="z in i.rowVoList"
:key="item + 'shelf' + i + 'row' + z.id"
:span="12"
class="dashboard-layout-row"
>
<div
v-for="x in 20"
:key="item + 'shelf' + i + 'row' + z + 'item' + x"
class="dashboard-layout-item"
:style="{
background:
portAttributeObj[
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].attribute
],
cursor:
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].attribute === '3'
? 'not-allowed'
: 'pointer',
color:
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].attribute === '3'
? '#A2A8B5'
: '',
border: selectStorageList.some(
StorageItem =>
StorageItem.locationId ===
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].id
)
? '2px dashed red'
: ''
}"
@click="
setType(
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
]
)
"
>
<div
v-if="
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].attribute !== '3'
"
class="dashboard-layout-item-cricle"
:style="{
background: z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].cassetteVoList[0]
? cassetteStatusObj[
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].cassetteVoList[0].status
]
: ''
}"
/>
<div
v-if="
StorageList.some(
StorageItem =>
StorageItem.id ===
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].id
)"
class="dashboard-layout-item-horn"
/>
{{
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].attribute !== '3'
? z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].name
: "XXXX"
}}
</div>
</el-col>
</el-row>
<div class="dashboard-layout-footer">
{{
$t(bottomIndex[index]) +
"(" +
((current - 1) * 4 + item) +
")"
}}
</div>
</el-col>
</el-row>
</el-col>
</el-row>
<el-row v-else class="dashboard-layout" :gutter="12">
<el-col
v-for="item in Math.ceil(
(shelfVoList[0].rowVoList[0].portVoList.length -
(current - 1) * 80) /
20
)"
:key="'shelfbox' + item"
class="dashboard-layout-shelf-box"
:span="6"
>
<el-row>
<el-col
v-for="(i, index) in shelfVoList"
:key="item + 'shelf' + i.id"
:span="12"
class="dashboard-layout-shelf"
>
<el-row
v-if="
item <
Math.ceil(
(shelfVoList[0].rowVoList[0].portVoList.length -
(current - 1) * 80) /
20
)
"
>
<el-col
v-for="z in i.rowVoList"
:key="item + 'shelf' + i + 'row' + z.id"
:span="12"
class="dashboard-layout-row"
>
<div
v-for="x in 20"
:key="item + 'shelf' + i + 'row' + z + 'item' + x"
class="dashboard-layout-item"
:style="{
background:
portAttributeObj[
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].attribute
],
cursor:
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].attribute === '3'
? 'not-allowed'
: 'pointer',
color:
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].attribute === '3'
? '#A2A8B5'
: '',
border: selectStorageList.some(
StorageItem =>
StorageItem.locationId ===
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].id
)
? '2px dashed red'
: ''
}"
@click="
setType(
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
]
)
"
>
<div
v-if="
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].attribute !== '3'
"
class="dashboard-layout-item-cricle"
:style="{
background: z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].cassetteVoList[0]
? cassetteStatusObj[
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].cassetteVoList[0].status
]
: ''
}"
/>
<div
v-if="
StorageList.some(
StorageItem =>
StorageItem.id ===
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].id
)"
class="dashboard-layout-item-horn"
/>
{{
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].attribute !== '3'
? z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].name
: "XXXX"
}}
</div>
</el-col>
</el-row>
<el-row v-else>
<el-col
v-for="z in i.rowVoList"
:key="item + 'shelf' + i + 'row' + z.id"
:span="12"
class="dashboard-layout-row"
>
<div
v-for="x in shelfVoList[0].rowVoList[0].portVoList.length -
(item - 1) * 20 -
(current - 1) * 80"
:key="item + 'shelf' + i + 'row' + z + 'item' + x"
class="dashboard-layout-item"
:style="{
background:
portAttributeObj[
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].attribute
],
cursor:
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].attribute === '3'
? 'not-allowed'
: 'pointer',
color:
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].attribute === '3'
? '#A2A8B5'
: '',
border: selectStorageList.some(
StorageItem =>
StorageItem.locationId ===
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].id
)
? '2px dashed red'
: ''
}"
@click="
setType(
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
]
)
"
>
<div
v-if="
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].attribute !== '3'
"
class="dashboard-layout-item-cricle"
:style="{
background: z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].cassetteVoList[0]
? cassetteStatusObj[
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].cassetteVoList[0].status
]
: ''
}"
/>
<div
v-if="
StorageList.some(
StorageItem =>
StorageItem.id ===
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].id
)"
class="dashboard-layout-item-horn"
/>
{{
z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].attribute !== '3'
? z.portVoList[
(current - 1) * 80 + (item - 1) * 20 + (x - 1)
].name
: "XXXX"
}}
</div>
</el-col>
</el-row>
<div class="dashboard-layout-footer">
{{
$t(bottomIndex[index]) +
"(" +
((current - 1) * 4 + item) +
")"
}}
</div>
</el-col>
</el-row>
</el-col>
</el-row>
</el-card>
<process-storage-type
v-if="typeVisible"
ref="typeRef"
@refreshDataList="setStorageList"
/>
</div>
</template>
<script>
import { getPortList } from '@/api/dashboard'
import { locationByProcessList } from '@/api/basicData/Warehouse/StorageBoxInfo'
import { batchListAdd } from '@/api/basicData/Warehouse/StorageBoxInfo'
import testdata from './testdata'
import processStorageType from './processStorageType'
export default {
name: 'ProcessStorageLink1',
components: { processStorageType },
data() {
return testdata
},
created() {
this.id = this.$route.query.id
this.totalPage = Math.ceil(
this.shelfVoList[0].rowVoList[0].portVoList.length / 80
)
this.init()
},
methods: {
init() {
getPortList().then(res => {
this.shelfVoList = res.data[0].shelfVoList
this.totalPage = Math.ceil(
this.shelfVoList[0].rowVoList[0].portVoList.length / 80
)
})
locationByProcessList({
current: 1,
size: 990,
workSequenId: this.id
}).then(response => {
if (response.data.records) {
this.StorageList = response.data.records
} else {
this.StorageList.splice(0, this.StorageList.length)
}
})
this.selectStorageList.splice(0, this.selectStorageList.length)
},
setType(item) {
if (item.attribute !== '3') {
if (
this.selectStorageList.findIndex(
StorageItem => StorageItem.locationId === item.id
) + 1
) {
this.selectStorageList.splice(
this.selectStorageList.findIndex(
StorageItem => StorageItem.locationId === item.id
),
1
)
} else {
const isExist = this.StorageList.some(
StorageItem =>
StorageItem.id === item.id
)
this.typeVisible = true
this.$nextTick(() => {
this.$refs.typeRef.init(item.id, item.name, item.attribute, isExist)
})
}
}
},
setStorageList(locationId, locationName, dataForm) {
const obj = Object.assign({ locationId, locationName }, dataForm)
this.selectStorageList.push(obj)
},
handleChange(v) {
console.log(v)
},
submitLinkList() {
if (this.selectStorageList.length) {
const tipArr = this.selectStorageList.map(item => {
return item.locationName
})
const obj = {
workSequenId: this.id,
processLocationStorageList: this.selectStorageList
}
this.$confirm(
`${this.$t(
'module.basicData.visual.TipsStorageBefore'
)}[${tipArr.join(',')}]?`,
this.$t('module.basicData.visual.Tips'),
{
confirmButtonText: this.$t(
'module.basicData.visual.confirmButtonText'
),
cancelButtonText: this.$t(
'module.basicData.visual.cancelButtonText'
),
type: 'warning'
}
)
.then(() => {
batchListAdd(obj).then(res => {
this.$message({
message: this.$t('module.basicData.visual.success'),
type: 'success',
duration: 1500,
onClose: () => {
this.init()
}
})
})
})
.catch(() => {})
} else {
this.$message({
message: this.$t('module.basicData.visual.PleaseAddLocationFirst'),
type: 'warning',
duration: 1500
})
}
},
goback() {
this.selectStorageList.splice(0, this.selectStorageList.length)
this.$router.go(-1)
}
}
}
</script>
<style lang="scss" scoped>
.dashboard-container {
background: #f2f4f9;
min-height: calc(100vh - 134px);
overflow-x: scroll;
padding: 0 16px;
padding-top: 24px;
font-size: 14px;
.dashboard-main {
width: 100%;
min-width: 1380px;
background-color: #fff;
border-radius: 8px;
min-height: calc(100vh - 186px);
.dashboard-title {
.dashboard-header-line {
display: inline-block;
width: 4px;
height: 16px;
background: #0b58ff;
border-radius: 1px;
position: relative;
top: 2px;
margin-right: 4px;
}
.dashboard-header-title {
display: inline-block;
font-size: 16px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #000000;
line-height: 16px;
}
}
.dashboard-legend {
margin-top: 20px;
.dashboard-legend-cassette {
display: inline-block;
margin-right: 24px;
.dashboard-legend-cassette-cricle {
display: inline-block;
width: 12px;
height: 12px;
border-radius: 6px;
}
}
.dashboard-legend-port {
display: inline-block;
height: 24px;
line-height: 24px;
border-radius: 4px;
padding: 0 16px;
margin-left: 24px;
}
.dashboard-legend-btn {
margin: 0 20px;
float: right;
}
.dashboard-legend-search {
float: right;
}
}
.dashboard-layout {
margin: 20px 0;
.dashboard-layout-shelf-box {
.dashboard-layout-footer {
text-align: center;
margin-top: 12px;
}
.dashboard-layout-shelf {
padding: 0 8px;
.dashboard-layout-row {
padding: 0 1px;
.dashboard-layout-item {
width: 100%;
text-align: center;
height: 32px;
box-shadow: 0px 3px 6px 0px rgba(166, 174, 190, 0.8);
border-radius: 2px 4px 4px 2px;
margin-bottom: 8px;
display: flex;
align-items: center;
justify-content: center;
position: relative;
.dashboard-layout-item-cricle {
display: inline-block;
width: 12px;
height: 12px;
border-radius: 6px;
margin-right: 6px;
}
.dashboard-layout-item-horn {
position: absolute;
width: 0;
height: 0;
right: 0;
top: 0;
border-style: solid;
border-width: 14px 0px 0px 14px;
border-color: #0B58FF transparent transparent transparent;
}
}
}
}
}
}
}
}
</style>

View File

@@ -0,0 +1,109 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 16:37:56
* @LastEditors: zwq
* @LastEditTime: 2022-03-18 09:39:09
* @Description:
-->
<template>
<el-dialog
:title="$t('module.basicData.Warehouse.LocationStorageSetting') | i18nFilter"
:visible.sync="visible"
>
<el-form
ref="dataForm"
:model="dataForm"
size="medium"
:rules="dataRule"
label-position="left"
>
<el-form-item :label="$t('module.basicData.Warehouse.SelectStorageType')" prop="portAttrId">
<el-radio v-model="dataForm.portAttrId" label="1">Working Port</el-radio>
<el-radio v-model="dataForm.portAttrId" label="2">Buffer Port</el-radio>
<el-radio v-model="dataForm.portAttrId" label="3">Exception Port</el-radio>
</el-form-item>
<el-form-item :label="$t('module.basicData.storageBox.name')" prop="storageId">
<el-select v-model="dataForm.storageId" filterable :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.storageBox.name')])" clearable>
<el-option
v-for="item in storageBoxArr"
:key="item.id"
:label="item.storageBoxName"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">{{ 'btn.cancel' | i18nFilter }}</el-button>
<el-button type="primary" @click="dataFormSubmit()">{{ 'btn.confirm' | i18nFilter }}</el-button>
</span>
</el-dialog>
</template>
<script>
import { getPortDetail } from '@/api/dashboard'
import { storageBoxList } from '@/api/basicData/Cache/storageBox'
export default {
data() {
return {
visible: false,
locationId: '',
locationName: '',
dataForm: {
portAttrId: '1',
storageId: ''
},
dataRule: {
storageId: [
{
required: true,
message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.storageBox.name')]),
trigger: 'change' }
]
},
storageBoxArr: []
}
},
methods: {
init(id, name, attribute, isExist) {
this.locationId = id
this.locationName = name
const listQuery = {
current: 1,
size: 999
}
storageBoxList(listQuery).then(response => {
if (response.data.records) {
this.storageBoxArr = response.data.records
} else {
this.storageBoxArr.splice(0, this.list.length)
}
})
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
if (attribute) {
this.dataForm.portAttrId = attribute
} else {
this.dataForm.portAttrId = '1'
}
if (isExist) {
getPortDetail(id).then(res => {
if (res.code === 0) { this.dataForm.storageId = res.data.storageBoxId }
})
}
})
this.visible = true
},
// 表单提交
dataFormSubmit() {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.visible = false
this.$emit('refreshDataList', this.locationId, this.locationName, this.dataForm)
}
})
}
}
}
</script>

File diff suppressed because it is too large Load Diff

View File

@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2020-12-29 16:37:56
* @LastEditors: zwq
* @LastEditTime: 2021-07-06 11:26:28
* @LastEditTime: 2022-03-03 16:49:10
* @Description:
-->
<template>
@@ -83,7 +83,7 @@ export default {
dataDictionaryDataList({
current: 1,
size: 999,
dictTypeId: '1412216979622785026'
dictTypeId: '2'
}).then(response => {
if (response.data.records) {
this.scrapsArr = response.data.records

View File

@@ -0,0 +1,157 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 16:37:56
* @LastEditors: zwq
* @LastEditTime: 2022-04-02 15:57:14
* @Description:
-->
<template>
<el-dialog
:title="'btn.detail' | i18nFilter"
:visible.sync="visible"
width="70%"
>
<el-row :gutter="10">
<el-form ref="dataForm" :model="dataForm" label-width="150px">
<el-col :span="8">
<el-form-item :label="$t('module.dashboard.name')" prop="name">
{{ dataForm.name }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('module.dashboard.attribute')" prop="attribute">
{{ dataForm.attribute ? portAttributeObj[dataForm.attribute] : '' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('module.dashboard.cassetteStatus')" prop="cassetteVoList">
{{ dataForm.cassetteVoList && dataForm.cassetteVoList.length && dataForm.cassetteVoList[0].status ? cassetteStatusObj[dataForm.cassetteVoList[0].status] : '' }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('module.dashboard.workOrderNo')" prop="workOrderNo">
{{ dataForm.workOrderNo }}
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('module.dashboard.storageBoxCode')" prop="storageBoxCode">
{{ dataForm.storageBoxCode }}
</el-form-item>
</el-col>
</el-form>
</el-row>
<base-table
:page="listQuery.current"
:limit="listQuery.size"
:table-config="tableProps"
:table-data="list"
:is-loading="listLoading"
/>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">{{ 'btn.cancel' | i18nFilter }}</el-button>
</span>
</el-dialog>
</template>
<script>
import i18n from '@/lang'
import { listSubstrate } from '@/api/report-manage/report'
import BaseTable from '@/components/BaseTable'
const tableProps = [
{
prop: 'substrateCode',
label: i18n.t('module.report.substrate.substrateCode'),
align: 'center'
},
{
prop: 'subPosition',
label: i18n.t('module.report.substrate.location'),
align: 'center'
},
{
prop: 'storeTime',
label: i18n.t('module.report.substrate.storeTime'),
align: 'center'
},
{
prop: 'status',
label: i18n.t('module.report.substrate.substrateStatus'),
align: 'center'
},
{
prop: 'subStorageStatusName',
label: i18n.t('module.report.substrate.subStorageStatus'),
align: 'center'
},
{
prop: 'machineHandID',
label: i18n.t('module.report.substrate.machineHandID'),
align: 'center'
}
]
export default {
components: { BaseTable },
data() {
return {
visible: false,
tableProps,
list: [],
listLoading: true,
listQuery: {
current: 1,
size: 500,
locationStorageSubID: ''
},
dataForm: {
code: null,
createTime: null,
currLocation: null,
currLocationId: null,
id: null,
isEmpty: null,
status: null,
storageBoxCode: null,
storageBoxId: null,
updateTime: null
},
cassetteStatusObj: {
'1': 'Empty Cassette',
'2': 'Dummy Cassette',
'3': 'OK Cassette',
'4': 'NOK Cassette'
},
portAttributeObj: {
1: 'Working Port',
2: 'Buffer Port',
3: 'Exception Port'
}
}
},
methods: {
init(data) {
console.log(data)
this.visible = true
this.dataForm = data
this.listQuery.locationStorageSubID = data.locationStorageSubId
this.listLoading = true
listSubstrate(this.listQuery).then(response => {
if (response.data) {
this.list = response.data
for (var x = 0; x < this.list.length; x++) {
if (this.list[x].subStorageStatus === 1) {
this.list[x].subStorageStatusName = this.$t('module.report.substrate.load')
} else if (this.list[x].subStorageStatus === 2) {
this.list[x].subStorageStatusName = this.$t('module.report.substrate.unload')
}
}
} else {
this.list.splice(0, this.list.length)
}
this.listLoading = false
})
}
}
}
</script>

View File

@@ -1,15 +1,216 @@
<!--
* @Author: gtz
* @Date: 2022-03-03 09:16:10
* @LastEditors: gtz
* @LastEditTime: 2022-03-18 16:29:33
* @Description: file content
* @FilePath: \mt-ck-wms-ui\src\views\dashboard\index.vue
-->
<template>
<div class="dashboard-container">
<!-- <component :is="currentRole" /> -->
<admin-dashboard />
<el-card class="dashboard-main">
<el-row class="dashboard-title">
<div class="dashboard-header-line" />
<div class="dashboard-header-title">{{ $t('module.dashboard.title') }}</div>
</el-row>
<el-row class="dashboard-legend">
<div v-for="item in cassetteStatusList" :key="'cassette' + item.id" class="dashboard-legend-cassette">
<div class="dashboard-legend-cassette-cricle" :style="{background: item.color}" />
{{ item.name }}
</div>
|
<div v-for="item in portAttributeList" :key="'port' + item.id" class="dashboard-legend-port" :style="{background: item.color}">
{{ item.name }}
</div>
<div class="dashboard-legend-search">
<el-select v-model="current" size="mini" @change="handleChange">
<el-option v-for="item in totalPage" :key="'select' + item" :label="$t('module.dashboard.pageHeader') + item + $t('module.dashboard.pageFooter')" :value="item" />
</el-select>
<el-button type="primary" @click="refresh">{{ 'btn.refresh' | i18nFilter }}</el-button>
</div>
</el-row>
<el-row v-if="current * 80 < shelfVoList[0].rowVoList[0].portVoList.length" class="dashboard-layout" :gutter="12">
<el-col v-for="item in 4" :key="'shelfbox' + item" class="dashboard-layout-shelf-box" :span="6">
<el-row>
<el-col v-for="(i, index) in shelfVoList" :key="item + 'shelf' + i.id" :span="12" class="dashboard-layout-shelf">
<el-row>
<el-col v-for="z in i.rowVoList" :key="item + 'shelf' + i + 'row' + z.id" :span="12" class="dashboard-layout-row">
<div v-for="x in 20" :key="item + 'shelf' + i + 'row' + z + 'item' + x" class="dashboard-layout-item" :style="{background: portAttributeObj[z.portVoList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute], cursor: z.portVoList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute === '3' ? 'not-allowed' : 'pointer', color: z.portVoList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute === '3' ? '#A2A8B5' : ''}" @click="handlePort(z, x)">
<div v-if="z.portVoList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute !== '3'" class="dashboard-layout-item-cricle" :style="{background: z.portVoList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].cassetteVoList[0] ? cassetteStatusObj[z.portVoList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].cassetteVoList[0].status] : ''}" />
{{ z.portVoList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute !== '3' ? z.portVoList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].name : 'XXXX' }}
</div>
</el-col>
</el-row>
<div class="dashboard-layout-footer">
{{ $t(rowIndex[index]) + '(' + ((current - 1) * 4 + item) + ')' }}
</div>
</el-col>
</el-row>
</el-col>
</el-row>
<el-row v-else class="dashboard-layout" :gutter="12">
<el-col v-for="item in Math.ceil((shelfVoList[0].rowVoList[0].portVoList.length - (current - 1) * 80) / 20)" :key="'shelfbox' + item" class="dashboard-layout-shelf-box" :span="6">
<el-row>
<el-col v-for="(i, index) in shelfVoList" :key="item + 'shelf' + i.id" :span="12" class="dashboard-layout-shelf">
<el-row v-if="item < Math.ceil((shelfVoList[0].rowVoList[0].portVoList.length - (current - 1) * 80) / 20)">
<el-col v-for="z in i.rowVoList" :key="item + 'shelf' + i + 'row' + z.id" :span="12" class="dashboard-layout-row">
<div v-for="x in 20" :key="item + 'shelf' + i + 'row' + z + 'item' + x" class="dashboard-layout-item" :style="{background: portAttributeObj[z.portVoList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute], cursor: z.portVoList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute === '3' ? 'not-allowed' : 'pointer', color: z.portVoList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute === '3' ? '#A2A8B5' : ''}" @click="handlePort(z, x)">
<div v-if="z.portVoList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute !== '3'" class="dashboard-layout-item-cricle" :style="{background: z.portVoList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].cassetteVoList[0] ? cassetteStatusObj[z.portVoList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].cassetteVoList[0].status] : ''}" />
{{ z.portVoList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute !== '3' ? z.portVoList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].name : 'XXXX' }}
</div>
</el-col>
</el-row>
<el-row v-else>
<el-col v-for="z in i.rowVoList" :key="item + 'shelf' + i + 'row' + z.id" :span="12" class="dashboard-layout-row">
<div v-for="x in shelfVoList[0].rowVoList[0].portVoList.length - (item - 1) * 20 - (current - 1) * 80" :key="item + 'shelf' + i + 'row' + z + 'item' + x" class="dashboard-layout-item" :style="{background: portAttributeObj[z.portVoList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute], cursor: z.portVoList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute === '3' ? 'not-allowed' : 'pointer', color: z.portVoList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute === '3' ? '#A2A8B5' : ''}" @click="handlePort(z, x)">
<div v-if="z.portVoList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute !== '3'" class="dashboard-layout-item-cricle" :style="{background: z.portVoList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].cassetteVoList[0] ? cassetteStatusObj[z.portVoList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].cassetteVoList[0].status] : ''}" />
{{ z.portVoList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute !== '3' ? z.portVoList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].name : 'XXXX' }}
</div>
</el-col>
</el-row>
<div class="dashboard-layout-footer">
{{ $t(rowIndex[index]) + '(' + ((current - 1) * 4 + item) + ')' }}
</div>
</el-col>
</el-row>
</el-col>
</el-row>
</el-card>
<port-detail ref="addOrUpdate" />
</div>
</template>
<script>
import AdminDashboard from './admin'
import testdata from './testdata'
import { getPortList, getPortDetail } from '@/api/dashboard'
import portDetail from './components/PortDetail'
export default {
name: 'Dashboard',
components: { AdminDashboard }
components: { portDetail },
data() {
return testdata
},
created() {
this.totalPage = Math.ceil(this.shelfVoList[0].rowVoList[0].portVoList.length / 80)
this.init()
},
methods: {
init() {
getPortList().then(res => {
this.shelfVoList = res.data[0].shelfVoList
this.totalPage = Math.ceil(this.shelfVoList[0].rowVoList[0].portVoList.length / 80)
})
},
handleChange(v) {
console.log(v)
},
handlePort(z, x) {
getPortDetail(z.portVoList[x - 1].id).then(res => {
this.addOrUpdateVisible = true
this.$nextTick(() => {
this.$refs.addOrUpdate.init({ ...(res.data), ...z.portVoList[x - 1] })
})
})
},
refresh() {
this.init()
}
}
}
</script>
<style lang="scss" scoped>
.dashboard-container {
background: #F2F4F9;
min-height: calc(100vh - 134px);
overflow-x: scroll;
padding: 0 16px;
padding-top: 24px;
font-size: 14px;
.dashboard-main {
width: 100%;
min-width: 1380px;
background-color: #fff;
border-radius: 8px;
min-height: calc(100vh - 186px);
.dashboard-title {
.dashboard-header-line{
display: inline-block;
width: 4px;
height: 16px;
background: #0B58FF;
border-radius: 1px;
position: relative;
top: 2px;
margin-right: 4px;
}
.dashboard-header-title{
display: inline-block;
font-size: 16px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #000000;
line-height: 16px;
}
}
.dashboard-legend {
margin-top: 20px;
.dashboard-legend-cassette {
display: inline-block;
margin-right: 24px;
.dashboard-legend-cassette-cricle {
display: inline-block;
width: 12px;
height: 12px;
border-radius: 6px;
}
}
.dashboard-legend-port {
display: inline-block;
height: 24px;
line-height: 24px;
border-radius: 4px;
padding: 0 16px;
margin-left: 24px;
}
.dashboard-legend-search {
float: right;
}
}
.dashboard-layout {
margin: 20px 0;
.dashboard-layout-shelf-box {
.dashboard-layout-footer {
text-align: center;
margin-top: 12px;
}
.dashboard-layout-shelf {
padding: 0 8px;
.dashboard-layout-row {
padding: 0 1px;
.dashboard-layout-item {
width: 100%;
text-align: center;
height: 32px;
box-shadow: 0px 3px 6px 0px rgba(166, 174, 190, 0.8);
border-radius: 2px 4px 4px 2px;
margin-bottom: 8px;
display: flex;
align-items: center;
justify-content: center;
.dashboard-layout-item-cricle{
display: inline-block;
width: 12px;
height: 12px;
border-radius: 6px;
margin-right: 6px;
}
}
}
}
}
}
}
}
</style>

File diff suppressed because it is too large Load Diff

View File

@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2020-12-29 15:41:11
* @LastEditors: zwq
* @LastEditTime: 2022-01-17 15:26:35
* @LastEditTime: 2022-03-09 14:46:12
* @Description:
-->
<template>
@@ -143,7 +143,7 @@ export default {
},
getList(key) {
this.listLoading = true
this.listQuery.code = key
this.listQuery.name = key
ExecutionInfoList(this.listQuery).then(response => {
if (response.data.records) {
this.list = response.data.records

View File

@@ -2,7 +2,7 @@
* @Author: zwq
* @Date: 2020-12-29 15:41:11
* @LastEditors: zwq
* @LastEditTime: 2022-01-17 15:32:00
* @LastEditTime: 2022-03-09 14:44:58
* @Description:
-->
<template>
@@ -150,7 +150,7 @@ export default {
},
getList(key) {
this.listLoading = true
this.listQuery.code = key
this.listQuery.name = key
ProcessInfoList(this.listQuery).then(response => {
if (response.data.records) {
this.list = response.data.records

View File

@@ -2,20 +2,21 @@
* @Author: zwq
* @Date: 2020-12-29 16:37:56
* @LastEditors: zwq
* @LastEditTime: 2022-01-17 15:21:50
* @LastEditTime: 2022-03-16 14:17:40
* @Description:
-->
<template>
<el-dialog
:title="'btn.see' | i18nFilter"
:visible.sync="visible"
width="70%"
>
<el-row :gutter="10">
<el-form
ref="dataForm"
:model="dataForm"
size="medium"
label-width="110px"
label-width="180px"
label-position="left"
>
<el-col :span="8">
@@ -26,8 +27,8 @@
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.IssueOrderTime')" prop="createTime">
<el-input v-model="dataForm.createTime" :placeholder="$t('module.basicData.Warehouse.IssueOrderTime')" readonly :style="{width: '100%'}" />
<el-form-item :label="$t('module.basicData.Warehouse.OrderStatus')" prop="status">
<el-input v-model="dataForm.status" :placeholder="$t('module.basicData.Warehouse.OrderStatus')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="24">
@@ -35,18 +36,43 @@
<el-input v-model="dataForm.planQuantity" :placeholder="$t('module.basicData.Warehouse.PlanProcessQuantity')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.Priority')" prop="priority">
<el-input v-model="dataForm.priority" :placeholder="$t('module.basicData.Warehouse.Priority')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.CompletionTime')" prop="finishProduceTime">
<el-input v-model="dataForm.finishProduceTime" :placeholder="$t('module.basicData.Warehouse.CompletionTime')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="8">
<el-row>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.OrderCode')" prop="taskCode">
<el-input v-model="dataForm.taskCode" :placeholder="$t('module.basicData.Warehouse.OrderCode')" readonly :style="{width: '100%'}" />
<el-form-item :label="$t('module.basicData.Warehouse.OrderCode')" prop="code">
<el-input v-model="dataForm.code" :placeholder="$t('module.basicData.Warehouse.OrderCode')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.OrderStatus')" prop="taskType">
<el-input v-model="dataForm.taskType" :placeholder="$t('module.basicData.Warehouse.OrderStatus')" readonly :style="{width: '100%'}" />
<el-form-item :label="$t('module.basicData.Warehouse.startProduceTime')" prop="startProduceTime">
<el-input v-model="dataForm.startProduceTime" :placeholder="$t('module.basicData.Warehouse.startProduceTime')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.actualProcessQuantity')" prop="actualQuantity">
<el-input v-model="dataForm.actualQuantity" :placeholder="$t('module.basicData.Warehouse.actualProcessQuantity')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.triggerOrigin')" prop="triggerOrigin">
<el-input v-model="dataForm.triggerOrigin" :placeholder="$t('module.basicData.Warehouse.triggerOrigin')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.ProcessOrNot')" prop="ProcessOrNot">
<el-input v-model="dataForm.ProcessOrNot" :placeholder="$t('module.basicData.Warehouse.ProcessOrNot')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
</el-row>
@@ -68,6 +94,16 @@
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.scrapQuantity')" prop="scrapQuantity">
<el-input v-model="dataForm.scrapQuantity" :placeholder="$t('module.basicData.Warehouse.scrapQuantity')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.OrderType')" prop="type">
<el-input v-model="dataForm.type" :placeholder="$t('module.basicData.Warehouse.OrderType')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
</el-row>
</el-col>
</el-form>
@@ -80,6 +116,7 @@
<script>
import { ExecutionInfoDetail } from '@/api/orderManage/00A'
import { timeFormatter } from '@/filters'
export default {
data() {
@@ -88,9 +125,15 @@ export default {
dataForm: {
id: 0,
name: undefined,
createTime: undefined,
taskCode: undefined,
taskType: undefined,
priority: '',
actualQuantity: '',
startProduceTime: '',
finishProduceTime: '',
scrapQuantity: '',
triggerOrigin: '',
type: '',
code: undefined,
status: undefined,
craftName: undefined,
planQuantity: undefined,
subProccessName: undefined
@@ -105,10 +148,46 @@ export default {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
ExecutionInfoDetail(this.dataForm.id).then(res => {
res.data.status = this.statusfilter('orderStatus', res.data.status)
res.data.type = this.statusfilter('orderType', res.data.type)
res.data.priority = this.statusfilter('priority', res.data.priority)
res.data.triggerOrigin = this.statusfilter('triggerOrigin', res.data.triggerOrigin)
res.data.finishProduceTime = timeFormatter(res.data.finishProduceTime)
res.data.startProduceTime = timeFormatter(res.data.startProduceTime)
res.data.ProcessOrNot = res.data.processId ? '是' : '否'
this.dataForm = res.data
})
}
})
},
statusfilter(type, val) {
const filterObj = {
orderStatus: {
'1': '未激活',
'2': '等待',
'3': '激活',
'4': '暂停',
'9': '完成'
},
priority: {
'1': '低',
'2': '正常',
'3': '高'
},
orderType: {
'1': '生产工单',
'2': '重工工单',
'3': '测试工单'
},
triggerOrigin: {
'1': 'MES',
'2': 'ERP',
'3': 'PID1',
'4': '00A',
'5': '00C'
}
}
return filterObj?.[type]?.[val]
}
}
}

View File

@@ -2,20 +2,21 @@
* @Author: zwq
* @Date: 2020-12-29 16:37:56
* @LastEditors: zwq
* @LastEditTime: 2022-01-17 15:22:08
* @LastEditTime: 2022-03-16 14:17:37
* @Description:
-->
<template>
<el-dialog
:title="'btn.see' | i18nFilter"
:visible.sync="visible"
width="70%"
>
<el-row :gutter="10">
<el-form
ref="dataForm"
:model="dataForm"
size="medium"
label-width="110px"
label-width="180px"
label-position="left"
>
<el-col :span="8">
@@ -26,8 +27,8 @@
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.IssueOrderTime')" prop="createTime">
<el-input v-model="dataForm.createTime" :placeholder="$t('module.basicData.Warehouse.IssueOrderTime')" readonly :style="{width: '100%'}" />
<el-form-item :label="$t('module.basicData.Warehouse.OrderStatus')" prop="status">
<el-input v-model="dataForm.status" :placeholder="$t('module.basicData.Warehouse.OrderStatus')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="24">
@@ -35,18 +36,33 @@
<el-input v-model="dataForm.planQuantity" :placeholder="$t('module.basicData.Warehouse.PlanProcessQuantity')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.Priority')" prop="priority">
<el-input v-model="dataForm.priority" :placeholder="$t('module.basicData.Warehouse.Priority')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
</el-row>
</el-col>
<el-col :span="8">
<el-row>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.OrderCode')" prop="taskCode">
<el-input v-model="dataForm.taskCode" :placeholder="$t('module.basicData.Warehouse.OrderCode')" readonly :style="{width: '100%'}" />
<el-form-item :label="$t('module.basicData.Warehouse.OrderCode')" prop="code">
<el-input v-model="dataForm.code" :placeholder="$t('module.basicData.Warehouse.OrderCode')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.OrderStatus')" prop="taskType">
<el-input v-model="dataForm.taskType" :placeholder="$t('module.basicData.Warehouse.OrderStatus')" readonly :style="{width: '100%'}" />
<el-form-item :label="$t('module.basicData.Warehouse.startProduceTime')" prop="startProduceTime">
<el-input v-model="dataForm.startProduceTime" :placeholder="$t('module.basicData.Warehouse.startProduceTime')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.actualProcessQuantity')" prop="actualQuantity">
<el-input v-model="dataForm.actualQuantity" :placeholder="$t('module.basicData.Warehouse.actualProcessQuantity')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.triggerOrigin')" prop="triggerOrigin">
<el-input v-model="dataForm.triggerOrigin" :placeholder="$t('module.basicData.Warehouse.triggerOrigin')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
</el-row>
@@ -68,6 +84,16 @@
/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.scrapQuantity')" prop="scrapQuantity">
<el-input v-model="dataForm.scrapQuantity" :placeholder="$t('module.basicData.Warehouse.scrapQuantity')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item :label="$t('module.basicData.Warehouse.OrderType')" prop="type">
<el-input v-model="dataForm.type" :placeholder="$t('module.basicData.Warehouse.OrderType')" readonly :style="{width: '100%'}" />
</el-form-item>
</el-col>
</el-row>
</el-col>
</el-form>
@@ -80,6 +106,7 @@
<script>
import { ProcessInfoDetail } from '@/api/orderManage/00A'
import { timeFormatter } from '@/filters'
export default {
data() {
@@ -88,9 +115,14 @@ export default {
dataForm: {
id: 0,
name: undefined,
createTime: undefined,
taskCode: undefined,
taskType: undefined,
priority: '',
actualQuantity: '',
startProduceTime: '',
scrapQuantity: '',
triggerOrigin: '',
type: '',
code: undefined,
status: undefined,
craftName: undefined,
planQuantity: undefined,
subProccessName: undefined
@@ -105,10 +137,44 @@ export default {
this.$refs['dataForm'].resetFields()
if (this.dataForm.id) {
ProcessInfoDetail(this.dataForm.id).then(res => {
res.data.status = this.statusfilter('orderStatus', res.data.status)
res.data.type = this.statusfilter('orderType', res.data.type)
res.data.priority = this.statusfilter('priority', res.data.priority)
res.data.triggerOrigin = this.statusfilter('triggerOrigin', res.data.triggerOrigin)
res.data.startProduceTime = timeFormatter(res.data.startProduceTime)
this.dataForm = res.data
})
}
})
},
statusfilter(type, val) {
const filterObj = {
orderStatus: {
'1': '未激活',
'2': '等待',
'3': '激活',
'4': '暂停',
'9': '完成'
},
priority: {
'1': '低',
'2': '正常',
'3': '高'
},
orderType: {
'1': '生产工单',
'2': '重工工单',
'3': '测试工单'
},
triggerOrigin: {
'1': 'MES',
'2': 'ERP',
'3': 'PID1',
'4': '00A',
'5': '00C'
}
}
return filterObj?.[type]?.[val]
}
}
}

View File

@@ -1,7 +1,7 @@
<!--
* @Date: 2021-01-07 20:09:37
* @LastEditors: zwq
* @LastEditTime: 2022-01-17 15:16:29
* @LastEditTime: 2022-03-19 13:47:06
* @FilePath: \basic-admin\src\components\BaseTable\subcomponents\CheckDetail.vue
* @Description:
-->
@@ -13,18 +13,18 @@
width="160"
>
<div>
<el-select v-model="value" placeholder="请选择">
<el-select v-model="value" :placeholder="$t('module.basicData.Warehouse.RelateProcess')">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</div>
<div style="text-align: right; margin: 0">
<el-button size="mini" type="text" @click="visible = false">取消</el-button>
<el-button type="primary" size="mini" @click="emitClick">确定</el-button>
<el-button size="mini" type="text" @click="visible = false">{{ 'btn.cancel' | i18nFilter }}</el-button>
<el-button type="primary" size="mini" @click="emitClick">{{ 'btn.confirm' | i18nFilter }}</el-button>
</div>
<el-button slot="reference" type="text">{{ $t('module.basicData.Warehouse.RelateProcess') }}</el-button>
</el-popover>
@@ -32,6 +32,8 @@
</template>
<script>
import { list } from '@/api/art-manage/art.js'
import { ProcessInfoUpdata } from '@/api/orderManage/00A'
export default {
props: {
injectData: {
@@ -42,22 +44,38 @@ export default {
data() {
return {
visible: false,
options: [{
value: '选项1',
label: '黄金糕'
}, {
value: '选项2',
label: '双皮奶'
}
],
options: [],
value: ''
}
},
created() {
this.init()
},
methods: {
init() {
list({
current: 1,
size: 999
}).then(response => {
this.options = response.data.records
})
this.value = this.injectData.processId
},
emitClick() {
console.log(this.injectData)
console.log(this.value)
this.visible = false
const data = {
id: this.injectData.id,
subProcessId: this.value
}
ProcessInfoUpdata(data).then(res => {
this.$message({
message: this.$t('module.basicData.visual.success'),
type: 'success',
duration: 1500,
onClose: () => {
this.visible = false
}
})
})
}
}
}

View File

@@ -0,0 +1,199 @@
<!--
* @Descripttion:
* @version:
* @Author: fzq
* @Date: 2022-03-04 20:54:54
* @LastEditors: fzq
* @LastEditTime: 2022-03-06 16:37:29
-->
<template>
<div class="app-container">
<head-form
:placeholder-name="placeholderName"
:key-name="keyName"
:show-add="false"
@getDataList="getList"
/>
<base-table
:page="listQuery.current"
:limit="listQuery.size"
:table-config="tableProps"
:table-data="list"
:is-loading="listLoading"
>
<!-- <method-btn
slot="handleBtn"
:width="trueWidth"
:method-list="tableBtn"
@clickBtn="handleClick"
/> -->
</base-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="listQuery.current"
:limit.sync="listQuery.size"
@pagination="getList()"
/>
<!-- <storageBox-add v-if="addOrUpdateVisible" ref="addOrUpdate" :cache-id="listQuery.cacheId" @refreshDataList="getList" /> -->
</div>
</template>
<script>import i18n from '@/lang'
import HeadForm from '@/components/basicData/HeadForm'
import BaseTable from '@/components/BaseTable'
import Pagination from '@/components/Pagination' // Secondary package based on el-pagination
import { list } from '@/api/report-manage/report'
/**
* 表格表头配置项 TypeScript接口注释
* tableConfig<ConfigItem> = []
*
* Interface ConfigItem = {
* prop: string,
* label: string,
* width: string,
* align: string,
* subcomponent: function,
* filter: function
* }
*
*
*/
const tableBtn = [
{
type: 'edit',
btnName: 'btn.edit'
},
{
type: 'delete',
btnName: 'btn.delete'
}
]
const tableProps = [
{
prop: 'code',
label: i18n.t('module.report.inventory.code'),
align: 'center'
},
{
prop: 'status',
label: i18n.t('module.report.inventory.status'),
align: 'center'
},
{
prop: 'inprocessCode',
label: i18n.t('module.report.inventory.inprocessCode'),
align: 'center'
},
{
prop: 'currentLocation',
label: i18n.t('module.report.inventory.currentLocation'),
align: 'center'
},
{
prop: 'storeTime',
label: i18n.t('module.report.inventory.storeTime'),
align: 'center'
},
{
prop: 'manual',
label: i18n.t('module.report.inventory.manual'),
align: 'center'
}
]
export default {
name: 'Inventory',
components: { Pagination, BaseTable, HeadForm },
filters: {
statusFilter(status) {
const statusMap = {
published: 'success',
draft: 'info',
deleted: 'danger'
}
return statusMap[status]
}
},
data() {
return {
addOrUpdateVisible: false,
keyName: i18n.t('module.report.reportList.storageBoxNumber'),
placeholderName: this.$t('module.report.reportList.queryFiltering'),
tableBtn,
trueWidth: 200,
tableProps,
list: [],
total: 0,
listLoading: true,
listQuery: {
current: 1,
size: 10
}
}
},
created() {
this.getList()
},
methods: {
// handleClick(raw) {
// if (raw.type === 'delete') {
// this.$confirm(`${this.$t('module.basicData.visual.TipsBefore')}[${raw.data.storageBoxName}]?`, this.$t('module.basicData.visual.Tips'), {
// confirmButtonText: this.$t('module.basicData.visual.confirmButtonText'),
// cancelButtonText: this.$t('module.basicData.visual.cancelButtonText'),
// type: 'warning'
// }).then(() => {
// storageBoxDelete(raw.data.id).then(response => {
// this.$message({
// message: this.$t('module.basicData.visual.success'),
// type: 'success',
// duration: 1500,
// onClose: () => {
// this.getList()
// }
// })
// })
// }).catch(() => {})
// } else if (raw.type === 'edit') {
// this.addNew(raw.data.id)
// } else {
// this.addNew(raw.data.id, true)
// }
// },
getList(key) {
this.listLoading = true
this.listQuery.code = key
console.log(this.listQuery)
list(this.listQuery).then(response => {
console.log(response)
if (response.data) {
this.list = response.data
} else {
this.list.splice(0, this.list.length)
}
// this.total = response.data.total
this.listLoading = false
})
}
// 新增 / 修改
// addNew(id) {
// this.addOrUpdateVisible = true
// this.$nextTick(() => {
// this.$refs.addOrUpdate.init(id, true)
// })
// }
}
}
</script>
<style scoped>
.edit-input {
padding-right: 100px;
}
.cancel-btn {
position: absolute;
right: 15px;
top: 10px;
}
</style>

View File

@@ -0,0 +1,249 @@
<!--
* @Descripttion:
* @version:
* @Author: fzq
* @Date: 2022-03-04 20:54:54
* @LastEditors: fzq
* @LastEditTime: 2022-05-30 13:40:33
-->
<template>
<div class="app-container">
<head-form
:placeholder-name="placeholderName"
:key-name="keyName"
:show-add="false"
@getDataList="getList"
@downl="downl"
/>
<base-table
:page="listQuery.current"
:limit="listQuery.size"
:table-config="tableProps"
:table-data="list"
:is-loading="listLoading"
>
<!-- <method-btn
slot="handleBtn"
:width="trueWidth"
:method-list="tableBtn"
@clickBtn="handleClick"
/> -->
</base-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="listQuery.current"
:limit.sync="listQuery.size"
@pagination="getList()"
/>
<!-- <storageBox-add v-if="addOrUpdateVisible" ref="addOrUpdate" :cache-id="listQuery.cacheId" @refreshDataList="getList" /> -->
</div>
</template>
<script>import i18n from '@/lang'
import HeadForm from './components/HeadForm'
import BaseTable from '@/components/BaseTable'
import Pagination from '@/components/Pagination' // Secondary package based on el-pagination
import { list, download } from '@/api/report-manage/report'
import substrateBtn from './components/substrateBtn.vue'
/**
* 表格表头配置项 TypeScript接口注释
* tableConfig<ConfigItem> = []
*
* Interface ConfigItem = {
* prop: string,
* label: string,
* width: string,
* align: string,
* subcomponent: function,
* filter: function
* }
*
*
*/
const tableBtn = [
{
type: 'edit',
btnName: 'btn.edit'
},
{
type: 'delete',
btnName: 'btn.delete'
}
]
const tableProps = [
{
prop: 'code',
label: i18n.t('module.report.inventory.code'),
align: 'center'
},
{
prop: 'status',
label: i18n.t('module.report.inventory.status'),
align: 'center'
},
{
prop: 'inprocessCode',
label: i18n.t('module.report.inventory.inprocessCode'),
align: 'center'
},
{
prop: 'nextprocessCode',
label: i18n.t('module.report.inventory.nextprocessCode'),
align: 'center'
},
{
prop: 'currentLocation',
label: i18n.t('module.report.inventory.currentLocation'),
align: 'center'
},
{
prop: 'storeTime',
label: i18n.t('module.report.inventory.storeTime'),
align: 'center'
},
{
prop: 'orderName',
label: i18n.t('module.report.inventory.orderName'),
align: 'center'
},
{
prop: 'substrateDetails',
label: i18n.t('module.report.inventory.substrateDetails'),
subcomponent: substrateBtn,
align: 'center'
}
]
export default {
name: 'Inventory',
components: { Pagination, BaseTable, HeadForm },
filters: {
statusFilter(status) {
const statusMap = {
published: 'success',
draft: 'info',
deleted: 'danger'
}
return statusMap[status]
}
},
data() {
return {
addOrUpdateVisible: false,
keyName: i18n.t('module.report.reportList.storageBoxNumber'),
placeholderName: this.$t('module.report.reportList.queryFiltering'),
tableBtn,
trueWidth: 200,
tableProps,
list: [],
total: 0,
listLoading: true,
listQuery: {
current: 1,
size: 10,
enabled: 1
}
}
},
created() {
this.getList()
},
methods: {
// handleClick(raw) {
// if (raw.type === 'delete') {
// this.$confirm(`${this.$t('module.basicData.visual.TipsBefore')}[${raw.data.storageBoxName}]?`, this.$t('module.basicData.visual.Tips'), {
// confirmButtonText: this.$t('module.basicData.visual.confirmButtonText'),
// cancelButtonText: this.$t('module.basicData.visual.cancelButtonText'),
// type: 'warning'
// }).then(() => {
// storageBoxDelete(raw.data.id).then(response => {
// this.$message({
// message: this.$t('module.basicData.visual.success'),
// type: 'success',
// duration: 1500,
// onClose: () => {
// this.getList()
// }
// })
// })
// }).catch(() => {})
// } else if (raw.type === 'edit') {
// this.addNew(raw.data.id)
// } else {
// this.addNew(raw.data.id, true)
// }
// },
getList(key) {
this.listLoading = true
this.listQuery.code = key
// console.log(this.listQuery)
list(this.listQuery).then(response => {
console.log(response)
if (response.data) {
this.list = response.data
} else {
this.list.splice(0, this.list.length)
}
// this.total = response.data.total
this.listLoading = false
})
},
downl(key) {
this.listLoading = true
this.listQuery.code = key
// console.log(this.listQuery)
download(this.listQuery).then(res => {
let fileName = ''
const contentDisposition = res.headers['content-disposition']
if (contentDisposition) {
// fileName = contentDisposition.slice(contentDisposition.indexOf('filename=') + 9)
fileName = this.$t('module.report.reportList.storageBoxReport') + '.xlsx'
}
const blob = new Blob([res.data])
const reader = new FileReader()
reader.readAsDataURL(blob)
reader.onload = (e) => {
const a = document.createElement('a')
a.download = fileName
a.href = e.target.result
document.body.appendChild(a)
a.click()
document.body.removeChild(a)
}
// const fileName = `${+new Date()}.xlsx`
// const blob = new Blob([res], { type: 'application/vnd.ms-excel;charset=utf-8' })
// if (navigator.msSaveBlob) {
// navigator.msSaveBlob(blob, fileName)
// } else {
// const link = document.createElement('a')
// link.href = URL.createObjectURL(blob)
// link.download = fileName
// link.click()
// URL.revokeObjectURL(link.href)
// }
this.getList()
})
}
// 新增 / 修改
// addNew(id) {
// this.addOrUpdateVisible = true
// this.$nextTick(() => {
// this.$refs.addOrUpdate.init(id, true)
// })
// }
}
}
</script>
<style scoped>
.edit-input {
padding-right: 100px;
}
.cancel-btn {
position: absolute;
right: 15px;
top: 10px;
}
</style>

View File

@@ -0,0 +1,203 @@
<!--
* @Descripttion:
* @version:
* @Author: fzq
* @Date: 2022-03-04 20:54:54
* @LastEditors: fzq
* @LastEditTime: 2022-03-04 21:09:41
-->
<template>
<div class="app-container">
<head-form
:placeholder-name="placeholderName"
:key-name="keyName"
@getDataList="getList"
@add="addNew"
/>
<base-table
:page="listQuery.current"
:limit="listQuery.size"
:table-config="tableProps"
:table-data="list"
:is-loading="listLoading"
>
<method-btn
slot="handleBtn"
:width="trueWidth"
:method-list="tableBtn"
@clickBtn="handleClick"
/>
</base-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="listQuery.current"
:limit.sync="listQuery.size"
@pagination="getList()"
/>
<!-- <storageBox-add v-if="addOrUpdateVisible" ref="addOrUpdate" :cache-id="listQuery.cacheId" @refreshDataList="getList" /> -->
</div>
</template>
<script>import i18n from '@/lang'
import HeadForm from '@/components/basicData/HeadForm'
import BaseTable from '@/components/BaseTable'
import Pagination from '@/components/Pagination' // Secondary package based on el-pagination
import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn'
import { storageBoxList, storageBoxDelete } from '@/api/basicData/Cache/storageBox'
import { timeFormatter } from '@/filters'
import basicData from '@/filters/basicData'
/**
* 表格表头配置项 TypeScript接口注释
* tableConfig<ConfigItem> = []
*
* Interface ConfigItem = {
* prop: string,
* label: string,
* width: string,
* align: string,
* subcomponent: function,
* filter: function
* }
*
*
*/
const tableBtn = [
{
type: 'edit',
btnName: 'btn.edit'
},
{
type: 'delete',
btnName: 'btn.delete'
}
]
const tableProps = [
{
prop: 'createTime',
label: i18n.t('module.basicData.factory.createTime'),
filter: timeFormatter,
align: 'center'
},
{
prop: 'storageBoxName',
label: i18n.t('module.basicData.storageBox.name'),
align: 'center'
},
{
prop: 'code',
label: i18n.t('module.basicData.storageBox.code'),
align: 'center'
},
{
prop: 'enName',
label: i18n.t('module.basicData.visual.EnglishName'),
align: 'center'
},
{
prop: 'status',
label: i18n.t('module.basicData.storageBox.status'),
filter: basicData('storage'),
align: 'center'
},
{
prop: 'note',
label: i18n.t('module.basicData.storageBox.remark'),
align: 'center'
}
]
export default {
name: 'Area',
components: { Pagination, BaseTable, MethodBtn, HeadForm },
filters: {
statusFilter(status) {
const statusMap = {
published: 'success',
draft: 'info',
deleted: 'danger'
}
return statusMap[status]
}
},
data() {
return {
addOrUpdateVisible: false,
keyName: i18n.t('module.basicData.visual.keyword'),
placeholderName: this.$t('module.basicData.storageBox.name') + this.$t('module.basicData.visual.Or') + this.$t('module.basicData.storageBox.code'),
tableBtn,
trueWidth: 200,
tableProps,
list: [],
areaList: [],
total: 0,
listLoading: true,
listQuery: {
current: 1,
size: 10
}
}
},
created() {
this.getList()
},
methods: {
handleClick(raw) {
if (raw.type === 'delete') {
this.$confirm(`${this.$t('module.basicData.visual.TipsBefore')}[${raw.data.storageBoxName}]?`, this.$t('module.basicData.visual.Tips'), {
confirmButtonText: this.$t('module.basicData.visual.confirmButtonText'),
cancelButtonText: this.$t('module.basicData.visual.cancelButtonText'),
type: 'warning'
}).then(() => {
storageBoxDelete(raw.data.id).then(response => {
this.$message({
message: this.$t('module.basicData.visual.success'),
type: 'success',
duration: 1500,
onClose: () => {
this.getList()
}
})
})
}).catch(() => {})
} else if (raw.type === 'edit') {
this.addNew(raw.data.id)
} else {
this.addNew(raw.data.id, true)
}
},
getList(key) {
this.listLoading = true
this.listQuery.storageBoxName = key
storageBoxList(this.listQuery).then(response => {
if (response.data.records) {
this.list = response.data.records
} else {
this.list.splice(0, this.list.length)
}
this.total = response.data.total
this.listLoading = false
})
},
// 新增 / 修改
addNew(id) {
this.addOrUpdateVisible = true
this.$nextTick(() => {
this.$refs.addOrUpdate.init(id, true)
})
}
}
}
</script>
<style scoped>
.edit-input {
padding-right: 100px;
}
.cancel-btn {
position: absolute;
right: 15px;
top: 10px;
}
</style>

View File

@@ -0,0 +1,67 @@
<!--
* @Descripttion:
* @version:
* @Author: fzq
* @Date: 2022-03-06 17:06:51
* @LastEditors: fzq
* @LastEditTime: 2022-03-07 10:35:29
-->
<template>
<el-form :inline="true" @keyup.enter.native="getDataList()">
<el-form-item :label="keyName">
<el-input v-model="key" style="width:300px" :placeholder="placeholderName" clearable />
</el-form-item>
<el-form-item>
<el-button type="primary" @click="getDataList()">{{ 'btn.search' | i18nFilter }}</el-button>
<el-button v-if="showAdd" type="primary" @click="add()">{{ 'btn.add' | i18nFilter }}</el-button>
<el-button type="success" @click="downl()">{{ 'btn.export' | i18nFilter }}</el-button>
</el-form-item>
</el-form>
</template>
<script>
import { string } from 'jszip/lib/support'
export default {
props: {
keyName: {
type: string,
default: () => {
return '关键字'
}
},
showAdd: {
type: Boolean,
default: () => {
return true
}
},
placeholderName: {
type: string,
default: () => {
return '请输入关键字'
}
}
},
data() {
return {
key: ''
}
},
methods: {
getDataList() {
this.$emit('getDataList', this.key)
},
add() {
this.$emit('add')
},
downl() {
this.$emit('downl', this.key)
}
}
}
</script>
<style>
</style>

View File

@@ -0,0 +1,185 @@
<!--
* @Descripttion:
* @version:
* @Author: fzq
* @Date: 2022-03-05 17:45:46
* @LastEditors: fzq
* @LastEditTime: 2022-03-20 09:35:03
-->
<template>
<!-- <el-dialog
:title="!dataForm.id ? 'btn.add' : 'btn.edit' | i18nFilter"
:visible.sync="visible"
> -->
<el-dialog
:title="'btn.edit' | i18nFilter"
:visible.sync="visible"
>
<el-form ref="dataForm" :model="dataForm" :rules="dataRule" label-width="130px" @keyup.enter.native="dataFormSubmit()">
<el-form-item :label="$t('module.report.substrate.substrateCode')" prop="substrateCode">
<el-input v-model="dataForm.substrateCode" :placeholder="$i18nForm(['placeholder.input', $t('module.report.substrate.substrateCode')])" clearable />
</el-form-item>
<el-form-item :label="$t('module.report.substrate.location')" prop="subPosition">
<el-input v-model="dataForm.subPosition" :placeholder="$i18nForm(['placeholder.input', $t('module.report.substrate.location')])" clearable />
</el-form-item>
<el-form-item :label="$t('module.report.substrate.storeTime')" prop="storeTime">
<el-input v-model="dataForm.storeTime" :placeholder="$i18nForm(['placeholder.input', $t('module.report.substrate.storeTime')])" clearable />
</el-form-item>
<el-form-item :label="$t('module.report.substrate.substrateStatus')" prop="status">
<el-input v-model="dataForm.status" :placeholder="$i18nForm(['placeholder.input', $t('module.report.substrate.substrateStatus')])" clearable />
</el-form-item>
<!-- <el-form-item :label="$t('module.report.substrate.interCode')" prop="interCode">
<el-input v-model="dataForm.interCode" :placeholder="$i18nForm(['placeholder.input', $t('module.report.substrate.interCode')])" clearable />
</el-form-item> -->
<!-- <el-form-item :label="$t('module.report.substrate.subStorageStatus')" prop="subStorageStatus">
<el-input v-model="dataForm.subStorageStatus" :placeholder="$i18nForm(['placeholder.input', $t('module.report.substrate.subStorageStatus')])" clearable />
</el-form-item> -->
<el-form-item :label="$t('module.report.substrate.subStorageStatus')" prop="subStorageStatus">
<el-select v-model="dataForm.subStorageStatus" :placeholder="this.$t('module.report.substrate.subStorageStatus')" default>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('module.report.substrate.machineHandID')" prop="machineHandID">
<el-input v-model="dataForm.machineHandID" :placeholder="$i18nForm(['placeholder.input', $t('module.report.substrate.machineHandID')])" clearable />
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button @click="visible = false">{{ 'btn.cancel' | i18nFilter }}</el-button>
<el-button type="primary" @click="dataFormSubmit()">{{ 'btn.confirm' | i18nFilter }}</el-button>
</span>
</el-dialog>
</template>
<script>
import { updateSubstrate } from '@/api/report-manage/report'
export default {
props: {
id: {
type: String,
default: () => {
return ''
}
}
},
data() {
return {
visible: false,
dataForm: {
// substrateCode: '',
// locationName: '',
// storeTime: '',
// substrateStatus: '',
// code: '',
// storageBoxId: '',
// storageCode: '',
// interCode: '',
// id: '',
// current: 1,
// size: 10,
// locationStorageSubID: ''
},
options: [
{
value: 1,
label: this.$t('module.report.substrate.load')
},
{
value: 2,
label: this.$t('module.report.substrate.unload')
}
],
list: {
id: '',
locationName: '',
storeTime: '',
substrateCode: '',
substrateStatus: ''
},
dataRule: {
substrateCode: [
{ required: true, message: this.$i18nForm(['placeholder.input', this.$t('module.report.substrate.substrateCode')]), trigger: 'blur' }
]
}
}
},
created() {
this.init()
},
methods: {
// init(id) {
// // this.dataForm.id = id || ''
// this.dataForm.storageBoxId = this.$route.query.id
// this.dataForm.storageCode = this.$route.query.code
// this.visible = true
// this.$nextTick(() => {
// this.$refs['dataForm'].resetFields()
// // console.log(this.dataForm)
// listSubstrate(this.dataForm).then(res => {
// this.dataForm.id = res.data.id
// this.dataForm.location = res.data.location
// this.dataForm.storeTime = res.data.storeTime
// this.dataForm.substrateCode = res.data.substrateCode
// this.dataForm.substrateStatus = res.data.substrateStatus
// // console.log(this.dataForm)
// })
// })
// },
init(data) {
// this.dataForm.id = id || ''
// console.log(this.$route.query)
// this.dataForm.id = this.$route.query.id
// this.dataForm.substrateCode = this.$route.query.substrateCode
// this.dataForm.locationStorageSubID = this.$route.query.locationStorageSubID
this.dataForm = data
this.visible = true
// console.log(this.dataForm)
// listSubstrate(this.dataForm).then(res => {
// // console.log(res)
// this.dataForm.id = res.data[0].id
// this.dataForm.location = res.data[0].location
// this.dataForm.storeTime = res.data[0].storeTime
// this.dataForm.substrateCode = res.data[0].substrateCode
// this.dataForm.substrateStatus = res.data[0].substrateStatus
// this.dataForm.interCode = res.data[0].interCode
// // console.log(this.dataForm)
// })
},
// 表单提交
dataFormSubmit() {
this.$refs['dataForm'].validate((valid) => {
if (valid) {
const data = {
'status': this.dataForm.status,
'storeTime': this.dataForm.storeTime,
'id': this.dataForm.id,
'substrateCode': this.dataForm.substrateCode,
'subPosition': this.dataForm.subPosition,
// 'interCode': this.dataForm.interCode,
'storageBoxFid': this.dataForm.storageBoxFid,
'machineHandID': this.dataForm.machineHandID,
'subStorageStatus': this.dataForm.subStorageStatus
}
console.log(data)
updateSubstrate(data).then(res => {
this.$message({
message: this.$t('module.basicData.visual.success'),
type: 'success',
duration: 1500,
onClose: () => {
this.visible = false
this.$emit('refreshDataList')
}
})
})
}
})
}
}
}
</script>

View File

@@ -0,0 +1,36 @@
<!--
* @Descripttion:
* @version:
* @Author: fzq
* @Date: 2022-03-05 14:35:07
* @LastEditors: fzq
* @LastEditTime: 2022-03-16 16:13:58
-->
<template>
<span>
<el-button type="text" size="small" @click="emitClick">{{ $t('module.report.inventory.viewSubstrates') }}</el-button>
</span>
</template>
<script>
export default {
props: {
injectData: {
type: Object,
default: () => ({})
}
},
methods: {
emitClick() {
this.$router.push({
name: 'viewSubstrate',
query: {
id: this.injectData.id,
code: this.injectData.code,
locationStorageSubID: this.injectData.locationStorageSubID
}
})
}
}
}
</script>

View File

@@ -0,0 +1,217 @@
<!--
* @Descripttion:
* @version:
* @Author: fzq
* @Date: 2022-03-05 15:55:45
* @LastEditors: fzq
* @LastEditTime: 2022-03-20 09:35:05
-->
<template>
<div class="app-container">
<!-- <div style="margin:10px 50px">
<el-button type="success" @click="goback()">{{ 'btn.back' | i18nFilter }}</el-button>
<el-button type="primary" @click="addNew()">{{ 'btn.add' | i18nFilter }}</el-button>
</div> -->
<div style="title">{{ storageCode }}:{{ num }}
<el-button type="success" style="back" @click="goback()">{{ 'btn.back' | i18nFilter }}</el-button>
</div>
<base-table
:page="listQuery.current"
:limit="listQuery.size"
:table-config="tableProps"
:table-data="list"
:is-loading="listLoading"
>
<method-btn
slot="handleBtn"
:width="trueWidth"
:method-list="tableBtn"
@clickBtn="handleClick"
/>
</base-table>
<edit-substrate v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getList" />
</div>
</template>
<script>import i18n from '@/lang'
import { listSubstrate, deleSubstrate } from '@/api/report-manage/report'
import editSubstrate from './edit-substrate.vue'
import BaseTable from '@/components/BaseTable'
import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn'
/**
* 表格表头配置项 TypeScript接口注释
* tableConfig<ConfigItem> = []
*
* Interface ConfigItem = {
* prop: string,
* label: string,
* width: string,
* align: string,
* subcomponent: function,
* filter: function
* }
*
*
*/
const tableBtn = [
{
type: 'edit',
btnName: 'btn.edit'
},
{
type: 'delete',
btnName: 'btn.delete'
}
]
const tableProps = [
{
prop: 'substrateCode',
label: i18n.t('module.report.substrate.substrateCode'),
align: 'center'
},
{
prop: 'subPosition',
label: i18n.t('module.report.substrate.location'),
align: 'center'
},
{
prop: 'storeTime',
label: i18n.t('module.report.substrate.storeTime'),
align: 'center'
},
{
prop: 'status',
label: i18n.t('module.report.substrate.substrateStatus'),
align: 'center'
},
{
prop: 'subStorageStatusName',
label: i18n.t('module.report.substrate.subStorageStatus'),
align: 'center'
},
{
prop: 'machineHandID',
label: i18n.t('module.report.substrate.machineHandID'),
align: 'center'
}
]
export default {
name: 'ViewSubstrate',
components: { BaseTable, MethodBtn, editSubstrate },
filters: {
statusFilter(status) {
const statusMap = {
published: 'success',
draft: 'info',
deleted: 'danger'
}
return statusMap[status]
}
},
data() {
return {
addOrUpdateVisible: false,
num: '',
storageCode: this.$t('module.basicData.visual.storageCode'),
tableBtn,
trueWidth: 200,
tableProps,
list: [],
listLoading: true,
listQuery: {
current: 1,
size: 10,
locationStorageSubID: ''
// storageBoxCode: '',
// storageBoxId: ''
},
count: 0
}
},
created() {
this.listQuery.storageBoxCode = this.$route.query.code
// this.listQuery.storageBoxId = this.$route.query.id
this.listQuery.locationStorageSubID = this.$route.query.locationStorageSubID
this.getList()
},
methods: {
handleClick(raw) {
if (raw.type === 'delete') {
this.$confirm(`${this.$t('module.basicData.visual.TipsBefore')}[${raw.data.substrateCode}]?`, this.$t('module.basicData.visual.Tips'), {
confirmButtonText: this.$t('module.basicData.visual.confirmButtonText'),
cancelButtonText: this.$t('module.basicData.visual.cancelButtonText'),
type: 'warning'
}).then(() => {
// console.log(raw.data)
deleSubstrate(raw.data).then(response => {
this.$message({
message: this.$t('module.basicData.visual.success'),
type: 'success',
duration: 1500,
onClose: () => {
this.getList()
}
})
})
}).catch(() => {})
} else {
// this.count = raw.data._pageIndex
// console.log(this.count)
this.addNew(raw.data)
}
},
getList() {
this.listLoading = true
this.num = this.listQuery.storageBoxCode
this.listQuery.code = this.$route.query.code
// console.log(this.listQuery)
listSubstrate(this.listQuery).then(response => {
// console.log(response)
if (response.data) {
this.list = response.data
for (var x = 0; x < this.list.length; x++) {
if (this.list[x].subStorageStatus === 1) {
this.list[x].subStorageStatusName = this.$t('module.report.substrate.load')
} else if (this.list[x].subStorageStatus === 2) {
this.list[x].subStorageStatusName = this.$t('module.report.substrate.unload')
}
}
console.log(this.list)
} else {
this.list.splice(0, this.list.length)
}
this.listLoading = false
})
},
// 新增 / 修改
addNew(id) {
this.addOrUpdateVisible = true
this.$nextTick(() => {
this.$refs.addOrUpdate.init(id)
})
},
goback() {
this.$router.go(-1)
}
}
}
</script>
<style scoped>
.title {
left: 150px;
}
.edit-input {
padding-right: 100px;
}
.cancel-btn {
position: absolute;
right: 15px;
top: 10px;
}
.back {
right: 20px;
}
</style>

View File

@@ -55,7 +55,7 @@ module.exports = {
// target: 'http://127.0.0.1:8080',
// target: 'http://192.168.0.70:8080',
// target: 'http://192.168.0.199:8080',
ws: true,
changeOrigin: true,
pathRewrite: {
@@ -188,4 +188,4 @@ module.exports = {
}
)
}
}
}