Compare commits
	
		
			35 Commits
		
	
	
		
			9f1a4226c3
			...
			44411b19cd
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					44411b19cd | ||
| 
						 | 
					7afe3c3ec7 | ||
| c5f564797b | |||
| 0b6f2ea996 | |||
| 3a8debc3be | |||
| 2876f44536 | |||
| 6361c3a47f | |||
| 73ac7e04ce | |||
| 0adf1dad1e | |||
| 77f1831fc2 | |||
| 3112915398 | |||
| 507b9da319 | |||
| 6b6eb66145 | |||
| 02ac7ee486 | |||
| 83fdc49dbb | |||
| 68902f0f6c | |||
| 76dba55bae | |||
| 66302849a3 | |||
| 238d8ba41c | |||
| 27786fb197 | |||
| b6d0d32b6f | |||
| 9f42c5e33e | |||
| a2adcc0fd3 | |||
| 0c0679cb1e | |||
| 4743fdc191 | |||
| cf888de5d8 | |||
| ba3983e085 | |||
| c9d77e20a0 | |||
| 1ed431e10a | |||
| cbcbe5ccfa | |||
| a214eb9bad | |||
| e3be286a50 | |||
| f5a003876f | |||
| de76ca416c | |||
| 
						 | 
					95afd175a3 | 
@@ -2,6 +2,6 @@
 | 
			
		||||
ENV = 'production'
 | 
			
		||||
 | 
			
		||||
# base api
 | 
			
		||||
VUE_APP_BASE_API = '/api'
 | 
			
		||||
VUE_APP_BASE_API = ''
 | 
			
		||||
VUE_APP_REPORT_DESIGN_URL = '/ureport/designer'
 | 
			
		||||
VUE_APP_REPORT_VIEW_URL = '/ureport/preview'
 | 
			
		||||
 
 | 
			
		||||
@@ -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",
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
 * @Author: fzq
 | 
			
		||||
 * @Date: 2022-03-06 18:13:49
 | 
			
		||||
 * @LastEditors: fzq
 | 
			
		||||
 * @LastEditTime: 2022-03-06 18:29:43
 | 
			
		||||
 * @LastEditTime: 2022-03-09 10:44:04
 | 
			
		||||
 */
 | 
			
		||||
import request from '@/utils/request'
 | 
			
		||||
 | 
			
		||||
@@ -46,3 +46,27 @@ export function locaDelete(id) { // 删除工序库位信息单条数据
 | 
			
		||||
    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
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2022-01-17 14:55:09
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2022-01-17 14:59:07
 | 
			
		||||
 * @LastEditTime: 2022-03-10 14:13:22
 | 
			
		||||
 * @Description:
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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 }
 | 
			
		||||
  })
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
 * @Author: gtz
 | 
			
		||||
 * @Date: 2021-03-07 18:39:03
 | 
			
		||||
 * @LastEditors: fzq
 | 
			
		||||
 * @LastEditTime: 2022-03-06 19:27:01
 | 
			
		||||
 * @LastEditTime: 2022-03-08 15:31:13
 | 
			
		||||
 * @Description: file content
 | 
			
		||||
 */
 | 
			
		||||
import request from '@/utils/request'
 | 
			
		||||
@@ -28,7 +28,8 @@ export function download(data) {
 | 
			
		||||
    url: '/api/report/report-storage-box/excel-download',
 | 
			
		||||
    method: 'post',
 | 
			
		||||
    data,
 | 
			
		||||
    'responseType': 'arraybuffer'
 | 
			
		||||
    responseType: 'blob',
 | 
			
		||||
    timeout: 60000
 | 
			
		||||
  })
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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 }
 | 
			
		||||
  })
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
  })
 | 
			
		||||
 
 | 
			
		||||
@@ -68,6 +68,10 @@ export default {
 | 
			
		||||
      zh: '返回',
 | 
			
		||||
      en: 'Back'
 | 
			
		||||
    },
 | 
			
		||||
    export: {
 | 
			
		||||
      zh: '导出',
 | 
			
		||||
      en: 'Export'
 | 
			
		||||
    },
 | 
			
		||||
    checkLog: {
 | 
			
		||||
      zh: '查看日志',
 | 
			
		||||
      en: 'Check Log'
 | 
			
		||||
@@ -254,8 +258,8 @@ export default {
 | 
			
		||||
  },
 | 
			
		||||
  routerTitle: {
 | 
			
		||||
    dashboard: {
 | 
			
		||||
      zh: '仪表盘',
 | 
			
		||||
      en: 'Dashboard'
 | 
			
		||||
      zh: '首页',
 | 
			
		||||
      en: 'Home'
 | 
			
		||||
    },
 | 
			
		||||
    basic: {
 | 
			
		||||
      zh: '系统管理',
 | 
			
		||||
@@ -747,6 +751,10 @@ export default {
 | 
			
		||||
      HistoricalTask: {
 | 
			
		||||
        zh: '历史任务',
 | 
			
		||||
        en: 'Historical Task'
 | 
			
		||||
      },
 | 
			
		||||
      ProcessStorageManagement: {
 | 
			
		||||
        zh: '工序存储区域管理',
 | 
			
		||||
        en: 'Process Storage Management'
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    order: {
 | 
			
		||||
@@ -757,8 +765,8 @@ export default {
 | 
			
		||||
        en: 'Power Classification'
 | 
			
		||||
      },
 | 
			
		||||
      ProcessInfo: {
 | 
			
		||||
        zh: '工艺信息',
 | 
			
		||||
        en: 'Process Info'
 | 
			
		||||
        zh: '工单工艺信息',
 | 
			
		||||
        en: 'Order Process Info'
 | 
			
		||||
      },
 | 
			
		||||
      ExecutionInfo: {
 | 
			
		||||
        zh: '执行信息',
 | 
			
		||||
 
 | 
			
		||||
@@ -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'
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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',
 | 
			
		||||
 
 | 
			
		||||
@@ -1,8 +1,13 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: gtz
 | 
			
		||||
 * @Date: 2021-03-04 16:13:51
 | 
			
		||||
<<<<<<< HEAD
 | 
			
		||||
 * @LastEditors: fzq
 | 
			
		||||
 * @LastEditTime: 2022-03-10 14:05:21
 | 
			
		||||
=======
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2022-03-04 10:13:58
 | 
			
		||||
 * @LastEditTime: 2022-03-09 16:34:56
 | 
			
		||||
>>>>>>> develop
 | 
			
		||||
 * @Description: file content
 | 
			
		||||
 */
 | 
			
		||||
export default {
 | 
			
		||||
@@ -30,6 +35,7 @@ export default {
 | 
			
		||||
    cancelButtonText: 'cancel',
 | 
			
		||||
    Tips: 'Tips',
 | 
			
		||||
    TipsBefore: 'Are you sure you want to delete',
 | 
			
		||||
    TipsStorageBefore: 'Confirm to add location:',
 | 
			
		||||
    Description: 'Description',
 | 
			
		||||
    Remarks: 'Remarks',
 | 
			
		||||
    Yes: 'Yes',
 | 
			
		||||
@@ -126,6 +132,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 +167,10 @@ 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'
 | 
			
		||||
  },
 | 
			
		||||
  storageBox: {
 | 
			
		||||
    name: 'Name',
 | 
			
		||||
@@ -287,6 +310,7 @@ export default {
 | 
			
		||||
    BoxStatus: 'Box Status',
 | 
			
		||||
    BoxNumber: 'Box Number',
 | 
			
		||||
    PreviousOperation: 'Previous Operation',
 | 
			
		||||
    ExecutionOperation: 'Execution Operation',
 | 
			
		||||
    NextOperation: 'Next Operation',
 | 
			
		||||
    CompletionTime: 'Completion Time',
 | 
			
		||||
    StartLocation: 'Start Location',
 | 
			
		||||
@@ -294,15 +318,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',
 | 
			
		||||
@@ -315,6 +344,10 @@ 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'
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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: '添加一道工序',
 | 
			
		||||
 
 | 
			
		||||
@@ -3,12 +3,12 @@
 | 
			
		||||
 * @Date: 2021-03-04 16:13:51
 | 
			
		||||
<<<<<<< HEAD
 | 
			
		||||
 * @LastEditors: fzq
 | 
			
		||||
 * @LastEditTime: 2022-03-06 19:53:27
 | 
			
		||||
 * @LastEditTime: 2022-03-10 14:05:01
 | 
			
		||||
 * @Description: file content
 | 
			
		||||
=======
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2022-03-04 10:13:41
 | 
			
		||||
 * @LastEditTime: 2022-03-09 16:34:50
 | 
			
		||||
>>>>>>> develop
 | 
			
		||||
 * @Description: file content
 | 
			
		||||
 */
 | 
			
		||||
export default {
 | 
			
		||||
  visual: {
 | 
			
		||||
@@ -35,6 +35,7 @@ export default {
 | 
			
		||||
    cancelButtonText: '取消',
 | 
			
		||||
    Tips: '提示',
 | 
			
		||||
    TipsBefore: '确定删除',
 | 
			
		||||
    TipsStorageBefore: '确定添加库位:',
 | 
			
		||||
    Description: '描述',
 | 
			
		||||
    Remarks: '备注',
 | 
			
		||||
    Or: '或',
 | 
			
		||||
@@ -157,7 +158,10 @@ export default {
 | 
			
		||||
    place: '位置',
 | 
			
		||||
    addCacheArea: '添加货架',
 | 
			
		||||
    addLocation: '添加库位',
 | 
			
		||||
    status: '状态'
 | 
			
		||||
    status: '状态',
 | 
			
		||||
    warning: '行列标必须为整数!',
 | 
			
		||||
    logisticsEquipment: '物流设备',
 | 
			
		||||
    processEquipment: '工艺设备'
 | 
			
		||||
  },
 | 
			
		||||
  storageBox: {
 | 
			
		||||
    name: '存储箱名称',
 | 
			
		||||
@@ -254,10 +258,16 @@ export default {
 | 
			
		||||
  processLocation: {
 | 
			
		||||
    sequence: '顺序',
 | 
			
		||||
    locationName: '库位名',
 | 
			
		||||
    isProcess: '是否为工序准备箱',
 | 
			
		||||
    isProcess: '库位类型',
 | 
			
		||||
    locationId: '库位ID',
 | 
			
		||||
    workSequenId: '工序ID',
 | 
			
		||||
    equipmentMark: '设备标记'
 | 
			
		||||
    equipmentMark: '设备标记',
 | 
			
		||||
    portAttrId: '库位属性ID',
 | 
			
		||||
    goodsShelves: '货架',
 | 
			
		||||
    CacheLocation: '缓存区库位',
 | 
			
		||||
    ProcessLocation: '工序库位',
 | 
			
		||||
    aShelf: 'a货架',
 | 
			
		||||
    bShelf: 'b货架'
 | 
			
		||||
  },
 | 
			
		||||
  productPool: {
 | 
			
		||||
    productName: '产品名称',
 | 
			
		||||
@@ -307,6 +317,7 @@ export default {
 | 
			
		||||
    BoxStatus: '箱状态',
 | 
			
		||||
    BoxNumber: '箱号',
 | 
			
		||||
    PreviousOperation: '上一个工序',
 | 
			
		||||
    ExecutionOperation: '执行工序',
 | 
			
		||||
    NextOperation: '下一个工序',
 | 
			
		||||
    CompletionTime: '完成时间',
 | 
			
		||||
    StartLocation: '开始库位',
 | 
			
		||||
@@ -314,15 +325,20 @@ export default {
 | 
			
		||||
    TaskLocation: '任务库位',
 | 
			
		||||
    TargetLocation: '目标库位',
 | 
			
		||||
    OrderName: '工单名',
 | 
			
		||||
    OrderType: '工单类型',
 | 
			
		||||
    OrderCode: '工单编码',
 | 
			
		||||
    IssueOrderTime: '下发工单时间',
 | 
			
		||||
    startProduceTime: '开始生产时间',
 | 
			
		||||
    TotalProcessName: '总工艺名称',
 | 
			
		||||
    Priority: '优先级',
 | 
			
		||||
    scrapQuantity: '废片数量',
 | 
			
		||||
    OrderStatus: '工单状态',
 | 
			
		||||
    triggerOrigin: '工单发起方',
 | 
			
		||||
    ProcessOrNot: '是否关联工艺',
 | 
			
		||||
    Unit: '单位',
 | 
			
		||||
    RelateProcess: '关联工艺',
 | 
			
		||||
    PlanProcessQuantity: '计划加工数量',
 | 
			
		||||
    actualProcessQuantity: '实际加工数量',
 | 
			
		||||
    SubProcessName: '分工艺',
 | 
			
		||||
    TaskBoxNumber: '任务箱号',
 | 
			
		||||
    FullBoxNumber: '空箱号',
 | 
			
		||||
@@ -335,7 +351,10 @@ export default {
 | 
			
		||||
    IsEmpty: '是否有基板',
 | 
			
		||||
    IsEmptyBox: '是否空箱',
 | 
			
		||||
    LocationName: '库位名',
 | 
			
		||||
    LocationCode: '库位编码'
 | 
			
		||||
 | 
			
		||||
    LocationCode: '库位编码',
 | 
			
		||||
    PerformTaskManual: '手动执行任务',
 | 
			
		||||
    processStorageLink: '工序关联库位',
 | 
			
		||||
    SelectStorageType: '选择库位类型',
 | 
			
		||||
    LocationStorageSetting: '库位存储箱设置'
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -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 }}
 | 
			
		||||
 
 | 
			
		||||
@@ -57,19 +57,19 @@ export const constantRoutes = [
 | 
			
		||||
    component: () => import('@/views/login/index'),
 | 
			
		||||
    hidden: true
 | 
			
		||||
  },
 | 
			
		||||
  // {
 | 
			
		||||
  //   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: 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'),
 | 
			
		||||
@@ -159,6 +159,7 @@ export const constantRoutes = [
 | 
			
		||||
        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 }
 | 
			
		||||
      },
 | 
			
		||||
      {
 | 
			
		||||
@@ -298,6 +299,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 }
 | 
			
		||||
      }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
@@ -411,6 +435,7 @@ export const constantRoutes = [
 | 
			
		||||
      path: 'currentSubstrate',
 | 
			
		||||
      component: () => import('@/views/report-manage/CurrentSubstrate'),
 | 
			
		||||
      name: 'currentSubstrate',
 | 
			
		||||
      hidden: true,
 | 
			
		||||
      meta: { title: routerTitle.form.currentSubstrate?.[language] || routerTitle.form.currentSubstrate.en, icon: 'form', affix: true, required: true, requireToken: true }
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -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);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2020-12-29 16:37:56
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2022-03-04 10:39:52
 | 
			
		||||
 * @LastEditTime: 2022-03-09 14:59:52
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -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
 | 
			
		||||
@@ -140,7 +136,7 @@
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
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'
 | 
			
		||||
@@ -182,19 +178,9 @@ export default {
 | 
			
		||||
      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: [{
 | 
			
		||||
@@ -206,6 +192,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: {
 | 
			
		||||
@@ -214,7 +205,6 @@ export default {
 | 
			
		||||
        orderList: []
 | 
			
		||||
      },
 | 
			
		||||
      device: [],
 | 
			
		||||
      wasteGrade: '',
 | 
			
		||||
      tag: false
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
@@ -222,19 +212,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()
 | 
			
		||||
    },
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2020-12-29 16:37:56
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2022-03-03 16:43:26
 | 
			
		||||
 * @LastEditTime: 2022-03-09 16:53:23
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -16,7 +16,7 @@
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
      <el-form-item :label="$t('module.art.processList.processEq')" prop="equipmentIds">
 | 
			
		||||
        <el-select v-model="dataForm.equipmentIds" clearable filterable multiple>
 | 
			
		||||
          <el-option v-for="item in eqList" :key="item.id" :value="item.id" :label="item.enName" />
 | 
			
		||||
          <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">
 | 
			
		||||
@@ -24,7 +24,7 @@
 | 
			
		||||
          <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 :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 = {
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
 * @Author: gtz
 | 
			
		||||
 * @Date: 2021-04-06 20:07:22
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2022-03-03 17:00:54
 | 
			
		||||
 * @LastEditTime: 2022-03-09 16:19:15
 | 
			
		||||
 * @Description: file content
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -128,7 +128,7 @@ export default {
 | 
			
		||||
      // edit here
 | 
			
		||||
      const res = await equipmentlistList()
 | 
			
		||||
      if (res.code === 0) {
 | 
			
		||||
        this.eqList = res.data.records
 | 
			
		||||
        this.eqList = res.data
 | 
			
		||||
      }
 | 
			
		||||
      this.getList()
 | 
			
		||||
    },
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2020-12-29 15:41:11
 | 
			
		||||
 * @LastEditors: fzq
 | 
			
		||||
 * @LastEditTime: 2022-03-04 19:08:00
 | 
			
		||||
 * @LastEditTime: 2022-03-10 21:00:58
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -17,7 +17,9 @@
 | 
			
		||||
      @getDataList="getList"
 | 
			
		||||
      @add="addNew"
 | 
			
		||||
    />
 | 
			
		||||
    <el-button type="success" @click="goback()">{{ 'btn.back' | i18nFilter }}</el-button>
 | 
			
		||||
    <div style="title">货架编码:{{ shCode }}    货架名称:{{ shName }}    库存量:{{ num }}
 | 
			
		||||
      <el-button type="success" @click="goback()">{{ 'btn.back' | i18nFilter }}</el-button>
 | 
			
		||||
    </div>
 | 
			
		||||
    <base-table
 | 
			
		||||
      :page="listQuery.current"
 | 
			
		||||
      :limit="listQuery.size"
 | 
			
		||||
@@ -106,7 +108,7 @@ const tableProps = [
 | 
			
		||||
    align: 'center'
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'status',
 | 
			
		||||
    prop: 'statusName',
 | 
			
		||||
    label: i18n.t('module.basicData.cache.status'),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
  }
 | 
			
		||||
@@ -127,13 +129,18 @@ 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: {
 | 
			
		||||
        current: 1,
 | 
			
		||||
@@ -145,6 +152,9 @@ export default {
 | 
			
		||||
  },
 | 
			
		||||
  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.columnNum
 | 
			
		||||
    this.getList()
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
@@ -180,6 +190,16 @@ export default {
 | 
			
		||||
        if (response.data.records) {
 | 
			
		||||
          this.list = response.data.records
 | 
			
		||||
          console.log(this.list)
 | 
			
		||||
          // 1是Working Port,2是Buffer Port,3是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)
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2020-12-29 16:37:56
 | 
			
		||||
 * @LastEditors: fzq
 | 
			
		||||
 * @LastEditTime: 2022-03-04 18:59:53
 | 
			
		||||
 * @LastEditTime: 2022-03-10 21:14:13
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -29,8 +29,18 @@
 | 
			
		||||
      <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-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>
 | 
			
		||||
    <span slot="footer" class="dialog-footer">
 | 
			
		||||
@@ -61,11 +71,25 @@ export default {
 | 
			
		||||
        code: '',
 | 
			
		||||
        locationNameAlias: '',
 | 
			
		||||
        rowNum: '',
 | 
			
		||||
        columns: '',
 | 
			
		||||
        layers: '',
 | 
			
		||||
        status: '',
 | 
			
		||||
        columns: 0,
 | 
			
		||||
        layers: 0,
 | 
			
		||||
        status: null,
 | 
			
		||||
        locationType: ''
 | 
			
		||||
      },
 | 
			
		||||
      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' }
 | 
			
		||||
@@ -73,6 +97,16 @@ export default {
 | 
			
		||||
        code: [
 | 
			
		||||
          { required: true, message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.cache.LocationCode')]), trigger: 'blur' }
 | 
			
		||||
        ]
 | 
			
		||||
        // layers: [{
 | 
			
		||||
        // type: 'number',
 | 
			
		||||
        // message: this.$t('module.basicData.cache.warning'),
 | 
			
		||||
        // trigger: "blur"
 | 
			
		||||
        // }],
 | 
			
		||||
        // columns:  [{
 | 
			
		||||
        // type: 'number',
 | 
			
		||||
        // message: this.$t('module.basicData.cache.warning'),
 | 
			
		||||
        // trigger: "blur"
 | 
			
		||||
        // }]
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
@@ -85,6 +119,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 => {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Date: 2021-01-07 20:09:37
 | 
			
		||||
 * @LastEditors: fzq
 | 
			
		||||
 * @LastEditTime: 2022-03-03 18:39:03
 | 
			
		||||
 * @LastEditTime: 2022-03-10 20:20:44
 | 
			
		||||
 * @FilePath: \basic-admin\src\components\BaseTable\subcomponents\CheckDetail.vue
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
@@ -24,7 +24,10 @@ export default {
 | 
			
		||||
      this.$router.push({
 | 
			
		||||
        name: 'locationAdd',
 | 
			
		||||
        query: {
 | 
			
		||||
          id: this.injectData.id
 | 
			
		||||
          id: this.injectData.id,
 | 
			
		||||
          code: this.injectData.code,
 | 
			
		||||
          columnNum: this.injectData.columnNum,
 | 
			
		||||
          shelfName: this.injectData.shelfName
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
@@ -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() {
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2020-12-29 16:37:56
 | 
			
		||||
 * @LastEditors: fzq
 | 
			
		||||
 * @LastEditTime: 2022-03-03 19:00:08
 | 
			
		||||
 * @LastEditTime: 2022-03-10 19:38:31
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -47,7 +47,7 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import { shelfList, shelfDetail, shelfUpdate, shelfAdd, shelfCode } from '@/api/basicData/Cache/shelf'
 | 
			
		||||
import { shelfDetail, shelfUpdate, shelfAdd, shelfCode } from '@/api/basicData/Cache/shelf'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  props: {
 | 
			
		||||
@@ -86,36 +86,60 @@ 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
 | 
			
		||||
      }
 | 
			
		||||
      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) {
 | 
			
		||||
          // 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) => {
 | 
			
		||||
@@ -136,7 +160,7 @@ export default {
 | 
			
		||||
            })
 | 
			
		||||
          } else {
 | 
			
		||||
            shelfAdd(data).then(res => {
 | 
			
		||||
              console.log(res)
 | 
			
		||||
              // console.log(res)
 | 
			
		||||
              this.$message({
 | 
			
		||||
                message: this.$t('module.basicData.visual.success'),
 | 
			
		||||
                type: 'success',
 | 
			
		||||
 
 | 
			
		||||
@@ -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-09 16:53:31
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -52,7 +52,7 @@ export default {
 | 
			
		||||
        id: 0,
 | 
			
		||||
        storageBoxName: '',
 | 
			
		||||
        code: '',
 | 
			
		||||
        status: 0,
 | 
			
		||||
        status: '',
 | 
			
		||||
        enName: '',
 | 
			
		||||
        note: ''
 | 
			
		||||
      },
 | 
			
		||||
 
 | 
			
		||||
@@ -2,17 +2,17 @@
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2020-12-29 15:41:11
 | 
			
		||||
 * @LastEditors: fzq
 | 
			
		||||
 * @LastEditTime: 2022-03-04 19:00:14
 | 
			
		||||
 * @LastEditTime: 2022-03-10 20:18:52
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app-container">
 | 
			
		||||
    <!-- <head-form
 | 
			
		||||
    <head-form
 | 
			
		||||
      :placeholder-name="placeholderName"
 | 
			
		||||
      :key-name="keyName"
 | 
			
		||||
      @getDataList="getList"
 | 
			
		||||
      @add="addNew"
 | 
			
		||||
    /> -->
 | 
			
		||||
    />
 | 
			
		||||
    <base-table
 | 
			
		||||
      :page="listQuery.current"
 | 
			
		||||
      :limit="listQuery.size"
 | 
			
		||||
@@ -39,7 +39,7 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>import i18n from '@/lang'
 | 
			
		||||
// import HeadForm from '@/components/basicData/HeadForm'
 | 
			
		||||
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'
 | 
			
		||||
@@ -108,7 +108,7 @@ const tableProps = [
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'Area',
 | 
			
		||||
  components: { Pagination, BaseTable, MethodBtn, shelfAttrAdd },
 | 
			
		||||
  components: { Pagination, BaseTable, MethodBtn, HeadForm, shelfAttrAdd },
 | 
			
		||||
  filters: {
 | 
			
		||||
    statusFilter(status) {
 | 
			
		||||
      const statusMap = {
 | 
			
		||||
@@ -122,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,
 | 
			
		||||
@@ -178,9 +178,9 @@ export default {
 | 
			
		||||
    getList(key) {
 | 
			
		||||
      this.listLoading = true
 | 
			
		||||
      this.listQuery.shelfName = key
 | 
			
		||||
      console.log(this.listQuery)
 | 
			
		||||
      // console.log(this.listQuery)
 | 
			
		||||
      shelfList(this.listQuery).then(response => {
 | 
			
		||||
        // console.log(response)
 | 
			
		||||
        console.log(response)
 | 
			
		||||
        if (response.data.records) {
 | 
			
		||||
          this.list = response.data.records
 | 
			
		||||
          this.list.forEach(item => {
 | 
			
		||||
 
 | 
			
		||||
@@ -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-10 10:55:34
 | 
			
		||||
 * @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'
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
@@ -124,8 +124,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,
 | 
			
		||||
 
 | 
			
		||||
@@ -54,8 +54,18 @@
 | 
			
		||||
                />
 | 
			
		||||
              </el-select>
 | 
			
		||||
            </el-form-item> -->
 | 
			
		||||
            <el-form-item :label="$t('module.basicData.equipment.EquipmentType')" prop="equipmentType">
 | 
			
		||||
            <!-- <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="dataForm.equipmentType">
 | 
			
		||||
                <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">
 | 
			
		||||
@@ -412,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,
 | 
			
		||||
@@ -422,11 +442,6 @@ export default {
 | 
			
		||||
          required: true,
 | 
			
		||||
          message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.equipment.EquipmentCode')]),
 | 
			
		||||
          trigger: 'blur'
 | 
			
		||||
        }],
 | 
			
		||||
        equipmentType: [{
 | 
			
		||||
          required: true,
 | 
			
		||||
          message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.equipment.EquipmentType')]),
 | 
			
		||||
          trigger: 'change'
 | 
			
		||||
        }]
 | 
			
		||||
        // maintenanceCycle: [{
 | 
			
		||||
        //   required: true,
 | 
			
		||||
@@ -496,6 +511,7 @@ export default {
 | 
			
		||||
          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,9 +530,9 @@ export default {
 | 
			
		||||
    },
 | 
			
		||||
    getList() {
 | 
			
		||||
      this.listLoading = true
 | 
			
		||||
      console.log(this.listQuery)
 | 
			
		||||
      // console.log(this.listQuery)
 | 
			
		||||
      equipmentInfoAttrList(this.listQuery).then(response => {
 | 
			
		||||
        console.log(response)
 | 
			
		||||
        // console.log(response)
 | 
			
		||||
        if (response.data.records) {
 | 
			
		||||
          this.list = response.data.records
 | 
			
		||||
        } else {
 | 
			
		||||
@@ -549,13 +565,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'),
 | 
			
		||||
@@ -621,9 +638,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) {
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2020-12-29 15:41:11
 | 
			
		||||
 * @LastEditors: fzq
 | 
			
		||||
 * @LastEditTime: 2022-03-05 11:01:57
 | 
			
		||||
 * @LastEditTime: 2022-03-10 15:09:41
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -93,7 +93,7 @@ const tableProps = [
 | 
			
		||||
    align: 'center'
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'equipmentType',
 | 
			
		||||
    prop: 'typeName',
 | 
			
		||||
    label: i18n.t('module.basicData.equipment.EquipmentType'),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
  },
 | 
			
		||||
@@ -130,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: {
 | 
			
		||||
@@ -180,11 +182,20 @@ export default {
 | 
			
		||||
        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)
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    // 新增 / 修改
 | 
			
		||||
 
 | 
			
		||||
@@ -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-10 13:43:01
 | 
			
		||||
 * @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'),
 | 
			
		||||
 
 | 
			
		||||
@@ -4,32 +4,65 @@
 | 
			
		||||
 * @Author: fzq
 | 
			
		||||
 * @Date: 2022-03-04 11:12:42
 | 
			
		||||
 * @LastEditors: fzq
 | 
			
		||||
 * @LastEditTime: 2022-03-06 19:17:36
 | 
			
		||||
 * @LastEditTime: 2022-03-09 16:12:04
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <el-dialog
 | 
			
		||||
    :title="!dataForm.locationId ? 'btn.add' : 'btn.edit' | i18nFilter"
 | 
			
		||||
    :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.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.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-input v-model="dataForm.locationName" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.processLocation.locationName')])" clearable />
 | 
			
		||||
        <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.locationId')" prop="locationId">
 | 
			
		||||
        <el-input v-model="dataForm.locationId" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.processLocation.locationId')])" clearable />
 | 
			
		||||
      <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-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>
 | 
			
		||||
@@ -39,40 +72,88 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import { detail, update, add } from '@/api/basicData/Cache/processLocation'
 | 
			
		||||
import { detail, update, add, locationList } from '@/api/basicData/Cache/processLocation'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      visible: false,
 | 
			
		||||
      dataForm: {
 | 
			
		||||
        id: 0,
 | 
			
		||||
        sequence: '',
 | 
			
		||||
        locationName: '',
 | 
			
		||||
        isProcess: '',
 | 
			
		||||
        equipmentMark: ''
 | 
			
		||||
      },
 | 
			
		||||
      listQuery: {
 | 
			
		||||
        current: 1,
 | 
			
		||||
        size: 10,
 | 
			
		||||
        locationId: '',
 | 
			
		||||
        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(LocationId) {
 | 
			
		||||
      this.listQuery.LocationId = LocationId || ''
 | 
			
		||||
    init(id) {
 | 
			
		||||
      this.listQuery.id = id || ''
 | 
			
		||||
      this.visible = true
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.$refs['dataForm'].resetFields()
 | 
			
		||||
        if (this.listQuery.LocationId) {
 | 
			
		||||
        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.dataForm.id).then(res => {
 | 
			
		||||
            this.dataForm = res.data
 | 
			
		||||
          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 => {
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
 * @Author: fzq
 | 
			
		||||
 * @Date: 2022-03-03 09:51:25
 | 
			
		||||
 * @LastEditors: fzq
 | 
			
		||||
 * @LastEditTime: 2022-03-06 19:15:25
 | 
			
		||||
 * @LastEditTime: 2022-03-08 16:56:40
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app-container">
 | 
			
		||||
@@ -35,7 +35,7 @@
 | 
			
		||||
      :limit.sync="listQuery.size"
 | 
			
		||||
      @pagination="getList()"
 | 
			
		||||
    />
 | 
			
		||||
    <processInfo-add v-if="addOrUpdateVisible" ref="addOrUpdate" :cache-id="listQuery.cacheId" @refreshDataList="getList" />
 | 
			
		||||
    <processInfo-add v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getList" />
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
@@ -46,7 +46,6 @@ 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'
 | 
			
		||||
import { timeFormatter } from '@/filters'
 | 
			
		||||
/**
 | 
			
		||||
 * 表格表头配置项 TypeScript接口注释
 | 
			
		||||
 * tableConfig<ConfigItem> = []
 | 
			
		||||
@@ -75,24 +74,8 @@ const tableBtn = [
 | 
			
		||||
]
 | 
			
		||||
const tableProps = [
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'createTime',
 | 
			
		||||
    label: i18n.t('module.basicData.factory.createTime'),
 | 
			
		||||
    filter: timeFormatter,
 | 
			
		||||
    align: 'center'
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'sequence',
 | 
			
		||||
    label: i18n.t('module.basicData.processLocation.sequence'),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'locationName',
 | 
			
		||||
    label: i18n.t('module.basicData.processLocation.locationName'),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'isProcess',
 | 
			
		||||
    label: i18n.t('module.basicData.processLocation.isProcess'),
 | 
			
		||||
    prop: 'workSequenId',
 | 
			
		||||
    label: i18n.t('module.basicData.processLocation.workSequenId'),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
@@ -101,14 +84,34 @@ const tableProps = [
 | 
			
		||||
    align: 'center'
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'workSequenId',
 | 
			
		||||
    label: i18n.t('module.basicData.processLocation.workSequenId'),
 | 
			
		||||
    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'
 | 
			
		||||
  }
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
@@ -152,12 +155,11 @@ export default {
 | 
			
		||||
  methods: {
 | 
			
		||||
    handleClick(raw) {
 | 
			
		||||
      if (raw.type === 'delete') {
 | 
			
		||||
        this.$confirm(`${this.$t('module.basicData.visual.TipsBefore')}[${raw.data.locationName}]?`, this.$t('module.basicData.visual.Tips'), {
 | 
			
		||||
        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(() => {
 | 
			
		||||
          console.log(raw.data)
 | 
			
		||||
          locaDelete(raw.data.id).then(response => {
 | 
			
		||||
            this.$message({
 | 
			
		||||
              message: this.$t('module.basicData.visual.success'),
 | 
			
		||||
@@ -170,9 +172,9 @@ export default {
 | 
			
		||||
          })
 | 
			
		||||
        }).catch(() => {})
 | 
			
		||||
      } else if (raw.type === 'edit') {
 | 
			
		||||
        this.addNew(raw.data.locationId)
 | 
			
		||||
        this.addNew(raw.data.id)
 | 
			
		||||
      } else {
 | 
			
		||||
        this.addNew(raw.data.locationId, true)
 | 
			
		||||
        this.addNew(raw.data.id, true)
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    getList(key) {
 | 
			
		||||
@@ -185,7 +187,7 @@ export default {
 | 
			
		||||
          this.list.splice(0, this.list.length)
 | 
			
		||||
        }
 | 
			
		||||
        this.total = response.data.total
 | 
			
		||||
        console.log(response)
 | 
			
		||||
        // console.log(response)
 | 
			
		||||
        this.listLoading = false
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
 
 | 
			
		||||
@@ -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-04 10:56:41
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -46,6 +46,7 @@
 | 
			
		||||
      </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-form-item>
 | 
			
		||||
    </el-form>
 | 
			
		||||
    <base-table
 | 
			
		||||
@@ -70,12 +71,14 @@
 | 
			
		||||
      @pagination="getList()"
 | 
			
		||||
    />
 | 
			
		||||
    <current-task-info v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getList" />
 | 
			
		||||
    <current-task-add v-if="manualTaskVisible" ref="manualTaskRef" @refreshDataList="getList" />
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import { CurrentTaskList } from '@/api/basicData/Warehouse/HistoricalTask'
 | 
			
		||||
import CurrentTaskInfo from './components/CurrentTaskInfo.vue'
 | 
			
		||||
import CurrentTaskAdd from './components/CurrentTask-add.vue'
 | 
			
		||||
import i18n from '@/lang'
 | 
			
		||||
import BaseTable from '@/components/BaseTable'
 | 
			
		||||
import Pagination from '@/components/Pagination' // Secondary package based on el-pagination
 | 
			
		||||
@@ -168,11 +171,12 @@ const tableProps = [
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'ScrapInfo',
 | 
			
		||||
  components: { Pagination, BaseTable, MethodBtn, CurrentTaskInfo },
 | 
			
		||||
  components: { Pagination, BaseTable, MethodBtn, CurrentTaskInfo, CurrentTaskAdd },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      trueWidth: 100,
 | 
			
		||||
      addOrUpdateVisible: false,
 | 
			
		||||
      manualTaskVisible: false,
 | 
			
		||||
      tableProps,
 | 
			
		||||
      tableBtn,
 | 
			
		||||
      list: [],
 | 
			
		||||
@@ -237,6 +241,13 @@ export default {
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.$refs.addOrUpdate.init(id)
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    // 手动执行任务
 | 
			
		||||
    manualTask() {
 | 
			
		||||
      this.manualTaskVisible = true
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.$refs.manualTaskRef.init()
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										202
									
								
								src/views/basicData/Warehouse/ProcessStorageManagement.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										202
									
								
								src/views/basicData/Warehouse/ProcessStorageManagement.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,202 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2020-12-29 15:41:11
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2022-03-04 15:45:23
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app-container">
 | 
			
		||||
    <el-form
 | 
			
		||||
      ref="formData"
 | 
			
		||||
      :rules="rules"
 | 
			
		||||
      :model="listQuery"
 | 
			
		||||
      :inline="true"
 | 
			
		||||
      size="medium"
 | 
			
		||||
      label-width="100px"
 | 
			
		||||
    >
 | 
			
		||||
      <el-form-item :label="$t('module.art.processList.processName')" prop="processId">
 | 
			
		||||
        <el-select
 | 
			
		||||
          v-model="listQuery.processId"
 | 
			
		||||
          :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-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 { timeFormatter } from '@/filters'
 | 
			
		||||
import i18n from '@/lang'
 | 
			
		||||
/**
 | 
			
		||||
 * 表格表头配置项 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,
 | 
			
		||||
        processId: ''
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  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
 | 
			
		||||
      // 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.list = [
 | 
			
		||||
        {
 | 
			
		||||
          code: 11,
 | 
			
		||||
          name: '11'
 | 
			
		||||
        }
 | 
			
		||||
      ]
 | 
			
		||||
      this.listLoading = false
 | 
			
		||||
      // })
 | 
			
		||||
    },
 | 
			
		||||
    // 新增 / 修改
 | 
			
		||||
    addNew(id) {
 | 
			
		||||
      this.$router.push({
 | 
			
		||||
        name: 'ProcessStorageManagementInfo',
 | 
			
		||||
        query: {
 | 
			
		||||
          dictTypeId: id
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped>
 | 
			
		||||
.edit-input {
 | 
			
		||||
  padding-right: 100px;
 | 
			
		||||
}
 | 
			
		||||
.cancel-btn {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  right: 15px;
 | 
			
		||||
  top: 10px;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
							
								
								
									
										125
									
								
								src/views/basicData/Warehouse/components/CurrentTask-add.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										125
									
								
								src/views/basicData/Warehouse/components/CurrentTask-add.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,125 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2020-12-29 16:37:56
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2022-03-04 11:05:23
 | 
			
		||||
 * @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="12">
 | 
			
		||||
          <el-row>
 | 
			
		||||
            <el-col :span="24">
 | 
			
		||||
              <el-form-item :label="$t('module.basicData.Warehouse.TaskBoxNumber')" prop="taskCode">
 | 
			
		||||
                <el-input v-model="dataForm.taskCode" readonly :style="{width: '100%'}" />
 | 
			
		||||
              </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" readonly :style="{width: '100%'}" />
 | 
			
		||||
              </el-form-item>
 | 
			
		||||
            </el-col>
 | 
			
		||||
            <el-col :span="24">
 | 
			
		||||
              <el-form-item :label="$t('module.basicData.Warehouse.ExecutionOperation')" prop="fullCode">
 | 
			
		||||
                <el-input v-model="dataForm.fullCode" readonly :style="{width: '100%'}" />
 | 
			
		||||
              </el-form-item>
 | 
			
		||||
            </el-col>
 | 
			
		||||
            <el-col :span="24">
 | 
			
		||||
              <el-form-item :label="$t('module.basicData.Warehouse.TaskStatus')" prop="name">
 | 
			
		||||
                <el-input v-model="dataForm.name" readonly :style="{width: '100%'}" />
 | 
			
		||||
              </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" readonly :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" readonly :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" readonly :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" readonly :style="{width: '100%'}" />
 | 
			
		||||
              </el-form-item>
 | 
			
		||||
            </el-col>
 | 
			
		||||
            <el-col :span="24">
 | 
			
		||||
              <el-form-item :label="$t('module.basicData.Warehouse.NextOperation')" prop="anotherCurrLocation">
 | 
			
		||||
                <el-input
 | 
			
		||||
                  v-model="dataForm.anotherCurrLocation"
 | 
			
		||||
                  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>
 | 
			
		||||
      <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'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      visible: false,
 | 
			
		||||
      dataForm: {
 | 
			
		||||
        id: '',
 | 
			
		||||
        taskCode: undefined,
 | 
			
		||||
        orderName: undefined,
 | 
			
		||||
        fullCode: undefined,
 | 
			
		||||
        name: 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
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.$refs['dataForm'].resetFields()
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
@@ -0,0 +1,165 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2020-12-29 15:41:11
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2022-03-09 09:57:41
 | 
			
		||||
 * @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 i18n from '@/lang'
 | 
			
		||||
import BaseTable from '@/components/BaseTable'
 | 
			
		||||
import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn'
 | 
			
		||||
import { timeFormatter } from '@/filters'
 | 
			
		||||
/**
 | 
			
		||||
 * 表格表头配置项 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'),
 | 
			
		||||
    filter: timeFormatter,
 | 
			
		||||
    align: 'center'
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'name',
 | 
			
		||||
    label: i18n.t('module.basicData.cache.LocationName'),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    prop: 'shelfName',
 | 
			
		||||
    label: i18n.t('module.basicData.cache.locationType'),
 | 
			
		||||
    align: 'center'
 | 
			
		||||
  }
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'Shelf',
 | 
			
		||||
  components: { BaseTable, MethodBtn },
 | 
			
		||||
  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,
 | 
			
		||||
        areaId: ''
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  created() {
 | 
			
		||||
    this.listQuery.areaId = 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(key) {
 | 
			
		||||
      this.listLoading = true
 | 
			
		||||
      // shelfList(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(id) {
 | 
			
		||||
      this.$router.push({
 | 
			
		||||
        name: 'ProcessStorageLink',
 | 
			
		||||
        query: {
 | 
			
		||||
          dictTypeId: id
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    goback() {
 | 
			
		||||
      this.$router.go(-1)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
<style scoped>
 | 
			
		||||
.edit-input {
 | 
			
		||||
  padding-right: 100px;
 | 
			
		||||
}
 | 
			
		||||
.cancel-btn {
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  right: 15px;
 | 
			
		||||
  top: 10px;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@@ -1,8 +1,8 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2020-12-29 16:37:56
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2022-01-17 11:21:26
 | 
			
		||||
 * @LastEditors: fzq
 | 
			
		||||
 * @LastEditTime: 2022-03-10 18:44:36
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										477
									
								
								src/views/basicData/Warehouse/components/processStorageLink.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										477
									
								
								src/views/basicData/Warehouse/components/processStorageLink.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,477 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: gtz
 | 
			
		||||
 * @Date: 2022-03-03 09:16:10
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2022-03-09 15:17:46
 | 
			
		||||
 * @Description: file content
 | 
			
		||||
 * @FilePath: \mt-ck-wms-ui\src\views\dashboard\index.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">WMS库存信息</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>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="dashboard-legend-search">
 | 
			
		||||
          <el-select
 | 
			
		||||
            v-model="current"
 | 
			
		||||
            size="mini"
 | 
			
		||||
            placeholder="请选择库存范围"
 | 
			
		||||
            @change="handleChange"
 | 
			
		||||
          >
 | 
			
		||||
            <el-option
 | 
			
		||||
              v-for="item in totalPage"
 | 
			
		||||
              :key="'select' + item"
 | 
			
		||||
              :label="'第' + item + '页'"
 | 
			
		||||
              :value="item"
 | 
			
		||||
            />
 | 
			
		||||
          </el-select>
 | 
			
		||||
        </div>
 | 
			
		||||
      </el-row>
 | 
			
		||||
      <el-row
 | 
			
		||||
        v-if="current * 80 < shelfList[0].rowList[0].portList.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 shelfList"
 | 
			
		||||
              :key="item + 'shelf' + i.id"
 | 
			
		||||
              :span="12"
 | 
			
		||||
              class="dashboard-layout-shelf"
 | 
			
		||||
            >
 | 
			
		||||
              <el-row>
 | 
			
		||||
                <el-col
 | 
			
		||||
                  v-for="z in i.rowList"
 | 
			
		||||
                  :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.portList[
 | 
			
		||||
                            (current - 1) * 80 + (item - 1) * 20 + (x - 1)
 | 
			
		||||
                          ].attribute
 | 
			
		||||
                        ],
 | 
			
		||||
                      cursor:
 | 
			
		||||
                        z.portList[
 | 
			
		||||
                          (current - 1) * 80 + (item - 1) * 20 + (x - 1)
 | 
			
		||||
                        ].attribute === 3
 | 
			
		||||
                          ? 'not-allowed'
 | 
			
		||||
                          : 'pointer',
 | 
			
		||||
                      color:
 | 
			
		||||
                        z.portList[
 | 
			
		||||
                          (current - 1) * 80 + (item - 1) * 20 + (x - 1)
 | 
			
		||||
                        ].attribute === 3
 | 
			
		||||
                          ? '#A2A8B5'
 | 
			
		||||
                          : '',
 | 
			
		||||
                      border:
 | 
			
		||||
                        selectStorageList.some(StorageItem=>StorageItem.id===z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].id)
 | 
			
		||||
                          ? '1px solid red' : ''
 | 
			
		||||
                    }"
 | 
			
		||||
                    @click="
 | 
			
		||||
                      setType(
 | 
			
		||||
                        z.portList[
 | 
			
		||||
                          (current - 1) * 80 + (item - 1) * 20 + (x - 1)
 | 
			
		||||
                        ]
 | 
			
		||||
                      )
 | 
			
		||||
                    "
 | 
			
		||||
                  >
 | 
			
		||||
                    <div
 | 
			
		||||
                      v-if="
 | 
			
		||||
                        z.portList[
 | 
			
		||||
                          (current - 1) * 80 + (item - 1) * 20 + (x - 1)
 | 
			
		||||
                        ].attribute !== 3
 | 
			
		||||
                      "
 | 
			
		||||
                      class="dashboard-layout-item-cricle"
 | 
			
		||||
                      :style="{
 | 
			
		||||
                        background:
 | 
			
		||||
                          cassetteStatusObj[
 | 
			
		||||
                            z.portList[
 | 
			
		||||
                              (current - 1) * 80 + (item - 1) * 20 + (x - 1)
 | 
			
		||||
                            ].cassetteList[0].status
 | 
			
		||||
                          ]
 | 
			
		||||
                      }"
 | 
			
		||||
                    />
 | 
			
		||||
                    {{
 | 
			
		||||
                      z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)]
 | 
			
		||||
                        .name
 | 
			
		||||
                    }}
 | 
			
		||||
                  </div>
 | 
			
		||||
                </el-col>
 | 
			
		||||
              </el-row>
 | 
			
		||||
              <div class="dashboard-layout-footer">
 | 
			
		||||
                {{
 | 
			
		||||
                  "第" + (index + 1) + "排(" + ((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(
 | 
			
		||||
            (shelfList[0].rowList[0].portList.length - (current - 1) * 80) / 20
 | 
			
		||||
          )"
 | 
			
		||||
          :key="'shelfbox' + item"
 | 
			
		||||
          class="dashboard-layout-shelf-box"
 | 
			
		||||
          :span="6"
 | 
			
		||||
        >
 | 
			
		||||
          <el-row>
 | 
			
		||||
            <el-col
 | 
			
		||||
              v-for="(i, index) in shelfList"
 | 
			
		||||
              :key="item + 'shelf' + i.id"
 | 
			
		||||
              :span="12"
 | 
			
		||||
              class="dashboard-layout-shelf"
 | 
			
		||||
            >
 | 
			
		||||
              <el-row
 | 
			
		||||
                v-if="
 | 
			
		||||
                  item <
 | 
			
		||||
                    Math.ceil(
 | 
			
		||||
                      (shelfList[0].rowList[0].portList.length -
 | 
			
		||||
                        (current - 1) * 80) /
 | 
			
		||||
                        20
 | 
			
		||||
                    )
 | 
			
		||||
                "
 | 
			
		||||
              >
 | 
			
		||||
                <el-col
 | 
			
		||||
                  v-for="z in i.rowList"
 | 
			
		||||
                  :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.portList[
 | 
			
		||||
                            (current - 1) * 80 + (item - 1) * 20 + (x - 1)
 | 
			
		||||
                          ].attribute
 | 
			
		||||
                        ],
 | 
			
		||||
                      cursor:
 | 
			
		||||
                        z.portList[
 | 
			
		||||
                          (current - 1) * 80 + (item - 1) * 20 + (x - 1)
 | 
			
		||||
                        ].attribute === 3
 | 
			
		||||
                          ? 'not-allowed'
 | 
			
		||||
                          : 'pointer',
 | 
			
		||||
                      color:
 | 
			
		||||
                        z.portList[
 | 
			
		||||
                          (current - 1) * 80 + (item - 1) * 20 + (x - 1)
 | 
			
		||||
                        ].attribute === 3
 | 
			
		||||
                          ? '#A2A8B5'
 | 
			
		||||
                          : '',
 | 
			
		||||
                      border:
 | 
			
		||||
                        selectStorageList.some(StorageItem=>StorageItem.id===z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].id)
 | 
			
		||||
                          ? '1px solid red' : ''
 | 
			
		||||
                    }"
 | 
			
		||||
                    @click="
 | 
			
		||||
                      setType(
 | 
			
		||||
                        z.portList[
 | 
			
		||||
                          (current - 1) * 80 + (item - 1) * 20 + (x - 1)
 | 
			
		||||
                        ]
 | 
			
		||||
                      )
 | 
			
		||||
                    "
 | 
			
		||||
                  >
 | 
			
		||||
                    <div
 | 
			
		||||
                      v-if="
 | 
			
		||||
                        z.portList[
 | 
			
		||||
                          (current - 1) * 80 + (item - 1) * 20 + (x - 1)
 | 
			
		||||
                        ].attribute !== 3
 | 
			
		||||
                      "
 | 
			
		||||
                      class="dashboard-layout-item-cricle"
 | 
			
		||||
                      :style="{
 | 
			
		||||
                        background:
 | 
			
		||||
                          cassetteStatusObj[
 | 
			
		||||
                            z.portList[
 | 
			
		||||
                              (current - 1) * 80 + (item - 1) * 20 + (x - 1)
 | 
			
		||||
                            ].cassetteList[0].status
 | 
			
		||||
                          ]
 | 
			
		||||
                      }"
 | 
			
		||||
                    />
 | 
			
		||||
                    {{
 | 
			
		||||
                      z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)]
 | 
			
		||||
                        .name
 | 
			
		||||
                    }}
 | 
			
		||||
                  </div>
 | 
			
		||||
                </el-col>
 | 
			
		||||
              </el-row>
 | 
			
		||||
              <el-row v-else>
 | 
			
		||||
                <el-col
 | 
			
		||||
                  v-for="z in i.rowList"
 | 
			
		||||
                  :key="item + 'shelf' + i + 'row' + z.id"
 | 
			
		||||
                  :span="12"
 | 
			
		||||
                  class="dashboard-layout-row"
 | 
			
		||||
                >
 | 
			
		||||
                  <div
 | 
			
		||||
                    v-for="x in shelfList[0].rowList[0].portList.length -
 | 
			
		||||
                      (item - 1) * 20 -
 | 
			
		||||
                      (current - 1) * 80"
 | 
			
		||||
                    :key="item + 'shelf' + i + 'row' + z + 'item' + x"
 | 
			
		||||
                    class="dashboard-layout-item"
 | 
			
		||||
                    :style="{
 | 
			
		||||
                      background:
 | 
			
		||||
                        portAttributeObj[
 | 
			
		||||
                          z.portList[
 | 
			
		||||
                            (current - 1) * 80 + (item - 1) * 20 + (x - 1)
 | 
			
		||||
                          ].attribute
 | 
			
		||||
                        ],
 | 
			
		||||
                      cursor:
 | 
			
		||||
                        z.portList[
 | 
			
		||||
                          (current - 1) * 80 + (item - 1) * 20 + (x - 1)
 | 
			
		||||
                        ].attribute === 3
 | 
			
		||||
                          ? 'not-allowed'
 | 
			
		||||
                          : 'pointer',
 | 
			
		||||
                      color:
 | 
			
		||||
                        z.portList[
 | 
			
		||||
                          (current - 1) * 80 + (item - 1) * 20 + (x - 1)
 | 
			
		||||
                        ].attribute === 3
 | 
			
		||||
                          ? '#A2A8B5'
 | 
			
		||||
                          : '',
 | 
			
		||||
                      border:
 | 
			
		||||
                        selectStorageList.some(StorageItem=>StorageItem.id===z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].id)
 | 
			
		||||
                          ? '1px solid red' : ''
 | 
			
		||||
                    }"
 | 
			
		||||
                    @click="
 | 
			
		||||
                      setType(
 | 
			
		||||
                        z.portList[
 | 
			
		||||
                          (current - 1) * 80 + (item - 1) * 20 + (x - 1)
 | 
			
		||||
                        ]
 | 
			
		||||
                      )
 | 
			
		||||
                    "
 | 
			
		||||
                  >
 | 
			
		||||
                    <div
 | 
			
		||||
                      v-if="
 | 
			
		||||
                        z.portList[
 | 
			
		||||
                          (current - 1) * 80 + (item - 1) * 20 + (x - 1)
 | 
			
		||||
                        ].attribute !== 3
 | 
			
		||||
                      "
 | 
			
		||||
                      class="dashboard-layout-item-cricle"
 | 
			
		||||
                      :style="{
 | 
			
		||||
                        background:
 | 
			
		||||
                          cassetteStatusObj[
 | 
			
		||||
                            z.portList[
 | 
			
		||||
                              (current - 1) * 80 + (item - 1) * 20 + (x - 1)
 | 
			
		||||
                            ].cassetteList[0].status
 | 
			
		||||
                          ]
 | 
			
		||||
                      }"
 | 
			
		||||
                    />
 | 
			
		||||
                    {{
 | 
			
		||||
                      z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)]
 | 
			
		||||
                        .name
 | 
			
		||||
                    }}
 | 
			
		||||
                  </div>
 | 
			
		||||
                </el-col>
 | 
			
		||||
              </el-row>
 | 
			
		||||
              <div class="dashboard-layout-footer">
 | 
			
		||||
                {{
 | 
			
		||||
                  "第" + (index + 1) + "排(" + ((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 testdata from './testdata'
 | 
			
		||||
import processStorageType from './processStorageType'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'Dashboard',
 | 
			
		||||
  components: { processStorageType },
 | 
			
		||||
  data() {
 | 
			
		||||
    return testdata
 | 
			
		||||
  },
 | 
			
		||||
  created() {
 | 
			
		||||
    console.log(this.shelfList)
 | 
			
		||||
    this.totalPage = Math.ceil(
 | 
			
		||||
      this.shelfList[0].rowList[0].portList.length / 80
 | 
			
		||||
    )
 | 
			
		||||
    this.init()
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    init() {
 | 
			
		||||
      this.selectStorageList.splice(0, this.selectStorageList.length)
 | 
			
		||||
    },
 | 
			
		||||
    setType(item) {
 | 
			
		||||
      if (item.attribute !== 3) {
 | 
			
		||||
        if (this.selectStorageList.findIndex(StorageItem => StorageItem.id === item.id) + 1) {
 | 
			
		||||
          this.selectStorageList.splice(this.selectStorageList.findIndex(StorageItem => StorageItem.id === item.id), 1)
 | 
			
		||||
        } else {
 | 
			
		||||
          this.typeVisible = true
 | 
			
		||||
          this.$nextTick(() => {
 | 
			
		||||
            this.$refs.typeRef.init(item.id)
 | 
			
		||||
          })
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    setStorageList(id, dataForm) {
 | 
			
		||||
      const obj = Object.assign({ id }, dataForm)
 | 
			
		||||
      this.selectStorageList.push(obj)
 | 
			
		||||
    },
 | 
			
		||||
    handleChange(v) {
 | 
			
		||||
      console.log(v)
 | 
			
		||||
    },
 | 
			
		||||
    submitLinkList() {
 | 
			
		||||
      const tipArr = this.selectStorageList.map(item => {
 | 
			
		||||
        return item.id
 | 
			
		||||
      })
 | 
			
		||||
      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(() => {
 | 
			
		||||
      }).catch(() => {})
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</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;
 | 
			
		||||
              .dashboard-layout-item-cricle {
 | 
			
		||||
                display: inline-block;
 | 
			
		||||
                width: 12px;
 | 
			
		||||
                height: 12px;
 | 
			
		||||
                border-radius: 6px;
 | 
			
		||||
                margin-right: 6px;
 | 
			
		||||
              }
 | 
			
		||||
            }
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@@ -0,0 +1,94 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2020-12-29 16:37:56
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2022-03-10 14:27:47
 | 
			
		||||
 * @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-width="110px"
 | 
			
		||||
      label-position="left"
 | 
			
		||||
    >
 | 
			
		||||
      <el-form-item :label="$t('module.basicData.Warehouse.SelectStorageType')" prop="storageType">
 | 
			
		||||
        <el-radio v-model="dataForm.storageType" :label="1">Working Port</el-radio>
 | 
			
		||||
        <el-radio v-model="dataForm.storageType" :label="2">Buffer Port</el-radio>
 | 
			
		||||
        <el-radio v-model="dataForm.storageType" :label="3">Exception Port</el-radio>
 | 
			
		||||
      </el-form-item>
 | 
			
		||||
      <el-form-item :label="$t('module.basicData.storageBox.name')" prop="storageBoxName">
 | 
			
		||||
        <el-select v-model="dataForm.storageBoxName" 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 { storageBoxList } from '@/api/basicData/Cache/storageBox'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      visible: false,
 | 
			
		||||
      storageId: '',
 | 
			
		||||
      dataForm: {
 | 
			
		||||
        storageType: 1,
 | 
			
		||||
        storageBoxName: ''
 | 
			
		||||
      },
 | 
			
		||||
      dataRule: {
 | 
			
		||||
        storageBoxName: [
 | 
			
		||||
          {
 | 
			
		||||
            required: true,
 | 
			
		||||
            message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.storageBox.name')]),
 | 
			
		||||
            trigger: 'change' }
 | 
			
		||||
        ]
 | 
			
		||||
      },
 | 
			
		||||
      storageBoxArr: []
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    init(id) {
 | 
			
		||||
      this.storageId = id
 | 
			
		||||
      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.visible = true
 | 
			
		||||
    },
 | 
			
		||||
    // 表单提交
 | 
			
		||||
    dataFormSubmit() {
 | 
			
		||||
      this.$refs['dataForm'].validate((valid) => {
 | 
			
		||||
        if (valid) {
 | 
			
		||||
          this.visible = false
 | 
			
		||||
          this.$emit('refreshDataList', this.storageId, this.dataForm)
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</script>
 | 
			
		||||
							
								
								
									
										2955
									
								
								src/views/basicData/Warehouse/components/testdata.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2955
									
								
								src/views/basicData/Warehouse/components/testdata.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -1,15 +1,194 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Author: gtz
 | 
			
		||||
 * @Date: 2022-03-03 09:16:10
 | 
			
		||||
 * @LastEditors: gtz
 | 
			
		||||
 * @LastEditTime: 2022-03-08 14:34:24
 | 
			
		||||
 * @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">WMS库存信息</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" placeholder="请选择库存范围" @change="handleChange">
 | 
			
		||||
            <el-option v-for="item in totalPage" :key="'select' + item" :label="'第' + item + '页'" :value="item" />
 | 
			
		||||
          </el-select>
 | 
			
		||||
        </div>
 | 
			
		||||
      </el-row>
 | 
			
		||||
      <el-row v-if="current * 80 < shelfList[0].rowList[0].portList.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 shelfList" :key="item + 'shelf' + i.id" :span="12" class="dashboard-layout-shelf">
 | 
			
		||||
              <el-row>
 | 
			
		||||
                <el-col v-for="z in i.rowList" :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.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute], cursor: z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute === 3 ? 'not-allowed' : 'pointer', color: z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute === 3 ? '#A2A8B5' : ''}">
 | 
			
		||||
                    <div v-if="z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute !== 3" class="dashboard-layout-item-cricle" :style="{background: cassetteStatusObj[z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].cassetteList[0].status]}" />
 | 
			
		||||
                    {{ z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].name }}
 | 
			
		||||
                  </div>
 | 
			
		||||
                </el-col>
 | 
			
		||||
              </el-row>
 | 
			
		||||
              <div class="dashboard-layout-footer">
 | 
			
		||||
                {{ '第' + (index + 1) + '排(' + ((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((shelfList[0].rowList[0].portList.length - (current - 1) * 80) / 20)" :key="'shelfbox' + item" class="dashboard-layout-shelf-box" :span="6">
 | 
			
		||||
          <el-row>
 | 
			
		||||
            <el-col v-for="(i, index) in shelfList" :key="item + 'shelf' + i.id" :span="12" class="dashboard-layout-shelf">
 | 
			
		||||
              <el-row v-if="item < Math.ceil((shelfList[0].rowList[0].portList.length - (current - 1) * 80) / 20)">
 | 
			
		||||
                <el-col v-for="z in i.rowList" :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.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute], cursor: z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute === 3 ? 'not-allowed' : 'pointer', color: z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute === 3 ? '#A2A8B5' : ''}">
 | 
			
		||||
                    <div v-if="z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute !== 3" class="dashboard-layout-item-cricle" :style="{background: cassetteStatusObj[z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].cassetteList[0].status]}" />
 | 
			
		||||
                    {{ z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].name }}
 | 
			
		||||
                  </div>
 | 
			
		||||
                </el-col>
 | 
			
		||||
              </el-row>
 | 
			
		||||
              <el-row v-else>
 | 
			
		||||
                <el-col v-for="z in i.rowList" :key="item + 'shelf' + i + 'row' + z.id" :span="12" class="dashboard-layout-row">
 | 
			
		||||
                  <div v-for="x in shelfList[0].rowList[0].portList.length - (item - 1) * 20 - (current - 1) * 80" :key="item + 'shelf' + i + 'row' + z + 'item' + x" class="dashboard-layout-item" :style="{background: portAttributeObj[z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute], cursor: z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute === 3 ? 'not-allowed' : 'pointer', color: z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute === 3 ? '#A2A8B5' : ''}">
 | 
			
		||||
                    <div v-if="z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].attribute !== 3" class="dashboard-layout-item-cricle" :style="{background: cassetteStatusObj[z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].cassetteList[0].status]}" />
 | 
			
		||||
                    {{ z.portList[(current - 1) * 80 + (item - 1) * 20 + (x - 1)].name }}
 | 
			
		||||
                  </div>
 | 
			
		||||
                </el-col>
 | 
			
		||||
              </el-row>
 | 
			
		||||
              <div class="dashboard-layout-footer">
 | 
			
		||||
                {{ '第' + (index + 1) + '排(' + ((current - 1) * 4 + item) + ')' }}
 | 
			
		||||
              </div>
 | 
			
		||||
            </el-col>
 | 
			
		||||
          </el-row>
 | 
			
		||||
        </el-col>
 | 
			
		||||
      </el-row>
 | 
			
		||||
    </el-card>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import AdminDashboard from './admin'
 | 
			
		||||
import testdata from './testdata'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'Dashboard',
 | 
			
		||||
  components: { AdminDashboard }
 | 
			
		||||
  data() {
 | 
			
		||||
    return testdata
 | 
			
		||||
  },
 | 
			
		||||
  created() {
 | 
			
		||||
    console.log(this.shelfList)
 | 
			
		||||
    this.totalPage = Math.ceil(this.shelfList[0].rowList[0].portList.length / 80)
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    handleChange(v) {
 | 
			
		||||
      console.log(v)
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</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>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2953
									
								
								src/views/dashboard/testdata.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2953
									
								
								src/views/dashboard/testdata.js
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2020-12-29 16:37:56
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2022-01-17 15:21:50
 | 
			
		||||
 * @LastEditTime: 2022-03-09 16:43:01
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -26,8 +26,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 +35,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 +83,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>
 | 
			
		||||
@@ -79,7 +104,7 @@
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import { ExecutionInfoDetail } from '@/api/orderManage/00A'
 | 
			
		||||
import { ProcessInfoDetail } from '@/api/orderManage/00A'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  data() {
 | 
			
		||||
@@ -89,8 +114,14 @@ export default {
 | 
			
		||||
        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
 | 
			
		||||
@@ -104,11 +135,44 @@ export default {
 | 
			
		||||
      this.$nextTick(() => {
 | 
			
		||||
        this.$refs['dataForm'].resetFields()
 | 
			
		||||
        if (this.dataForm.id) {
 | 
			
		||||
          ExecutionInfoDetail(this.dataForm.id).then(res => {
 | 
			
		||||
          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)
 | 
			
		||||
            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]
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
 * @Author: zwq
 | 
			
		||||
 * @Date: 2020-12-29 16:37:56
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2022-01-17 15:22:08
 | 
			
		||||
 * @LastEditTime: 2022-03-09 16:40:11
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
@@ -26,8 +26,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 +35,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 +83,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>
 | 
			
		||||
@@ -89,8 +114,14 @@ export default {
 | 
			
		||||
        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 +136,43 @@ 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)
 | 
			
		||||
            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]
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @Date: 2021-01-07 20:09:37
 | 
			
		||||
 * @LastEditors: zwq
 | 
			
		||||
 * @LastEditTime: 2022-01-17 15:16:29
 | 
			
		||||
 * @LastEditTime: 2022-03-10 14:25:50
 | 
			
		||||
 * @FilePath: \basic-admin\src\components\BaseTable\subcomponents\CheckDetail.vue
 | 
			
		||||
 * @Description:
 | 
			
		||||
-->
 | 
			
		||||
@@ -16,9 +16,9 @@
 | 
			
		||||
        <el-select v-model="value" placeholder="请选择">
 | 
			
		||||
          <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>
 | 
			
		||||
@@ -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,37 @@ 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
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    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
 | 
			
		||||
          }
 | 
			
		||||
        })
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
 * @Author: fzq
 | 
			
		||||
 * @Date: 2022-03-04 20:54:54
 | 
			
		||||
 * @LastEditors: fzq
 | 
			
		||||
 * @LastEditTime: 2022-03-06 19:32:34
 | 
			
		||||
 * @LastEditTime: 2022-03-07 09:46:36
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app-container">
 | 
			
		||||
@@ -195,7 +195,22 @@ export default {
 | 
			
		||||
      this.listQuery.code = key
 | 
			
		||||
      // console.log(this.listQuery)
 | 
			
		||||
      download(this.listQuery).then(res => {
 | 
			
		||||
        console.log(res)
 | 
			
		||||
        let fileName = ''
 | 
			
		||||
        const contentDisposition = res.headers['content-disposition']
 | 
			
		||||
        if (contentDisposition) {
 | 
			
		||||
          fileName = contentDisposition.slice(contentDisposition.indexOf('filename=') + 9)
 | 
			
		||||
        }
 | 
			
		||||
        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) {
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
 * @Author: fzq
 | 
			
		||||
 * @Date: 2022-03-06 17:06:51
 | 
			
		||||
 * @LastEditors: fzq
 | 
			
		||||
 * @LastEditTime: 2022-03-06 17:10:16
 | 
			
		||||
 * @LastEditTime: 2022-03-07 10:35:29
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <el-form :inline="true" @keyup.enter.native="getDataList()">
 | 
			
		||||
@@ -14,7 +14,7 @@
 | 
			
		||||
    <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()">{{ '导出' | i18nFilter }}</el-button>
 | 
			
		||||
      <el-button type="success" @click="downl()">{{ 'btn.export' | i18nFilter }}</el-button>
 | 
			
		||||
    </el-form-item>
 | 
			
		||||
  </el-form>
 | 
			
		||||
</template>
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
 * @Author: fzq
 | 
			
		||||
 * @Date: 2022-03-05 17:45:46
 | 
			
		||||
 * @LastEditors: fzq
 | 
			
		||||
 * @LastEditTime: 2022-03-06 16:46:54
 | 
			
		||||
 * @LastEditTime: 2022-03-07 09:19:34
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <!-- <el-dialog
 | 
			
		||||
@@ -112,6 +112,7 @@ export default {
 | 
			
		||||
      this.dataForm.storageBoxId = this.$route.query.id
 | 
			
		||||
      this.dataForm.storageCode = this.$route.query.code
 | 
			
		||||
      this.visible = true
 | 
			
		||||
      // console.log(this.dataForm)
 | 
			
		||||
      listSubstrate(this.dataForm).then(res => {
 | 
			
		||||
        console.log(res.data[0])
 | 
			
		||||
        this.dataForm.id = res.data[0].id
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
 * @Author: fzq
 | 
			
		||||
 * @Date: 2022-03-05 15:55:45
 | 
			
		||||
 * @LastEditors: fzq
 | 
			
		||||
 * @LastEditTime: 2022-03-05 19:44:47
 | 
			
		||||
 * @LastEditTime: 2022-03-07 09:28:21
 | 
			
		||||
-->
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="app-container">
 | 
			
		||||
@@ -112,12 +112,14 @@ export default {
 | 
			
		||||
      listQuery: {
 | 
			
		||||
        current: 1,
 | 
			
		||||
        size: 10,
 | 
			
		||||
        substrateCode: ''
 | 
			
		||||
        storageBoxCode: '',
 | 
			
		||||
        storageBoxId: ''
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  created() {
 | 
			
		||||
    this.listQuery.substrateCode = this.$route.query.code
 | 
			
		||||
    this.listQuery.storageBoxCode = this.$route.query.code
 | 
			
		||||
    this.listQuery.storageBoxId = this.$route.query.id
 | 
			
		||||
    this.getList()
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
@@ -150,6 +152,7 @@ export default {
 | 
			
		||||
      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
 | 
			
		||||
          console.log(this.list)
 | 
			
		||||
 
 | 
			
		||||
@@ -46,9 +46,9 @@ module.exports = {
 | 
			
		||||
    // 这里写入需要代理的api和对应的目标地址
 | 
			
		||||
    proxy: {
 | 
			
		||||
      '/api': {
 | 
			
		||||
        target: 'http://localhost:8080',
 | 
			
		||||
        // target: 'http://localhost:8080',
 | 
			
		||||
        // target: 'http://192.168.0.148:8080',
 | 
			
		||||
        // target: 'http://a.wms.picaiba.com/api',
 | 
			
		||||
        target: 'http://a.wms.picaiba.com/api',
 | 
			
		||||
        // target: 'http://192.168.0.127:8080',
 | 
			
		||||
        // target: 'http://192.168.0.165:8080',
 | 
			
		||||
        // target: 'http://192.168.43.105:8080',
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user