10 Commits

Author SHA1 Message Date
602af58f2d Merge pull request '更新' (#5) from zwq into develop
Reviewed-on: #5
2022-01-13 10:47:28 +08:00
zwq
7bc184c9c7 更新 2022-01-13 10:45:55 +08:00
9673c1ba30 Merge pull request '修改菜单' (#4) from zwq into develop
Reviewed-on: #4
2021-12-23 15:47:46 +08:00
zwq
66fce549e1 修改菜单 2021-12-23 15:46:53 +08:00
1b6ffddcf9 Merge pull request '修改分模块' (#3) from zwq into develop
Reviewed-on: #3
2021-12-22 16:14:34 +08:00
zwq
14bf2bd17e 修改分模块 2021-12-22 16:13:55 +08:00
bb6925f3a2 Merge pull request '合并' (#2) from fzq into develop
Reviewed-on: #2
2021-12-22 10:07:47 +08:00
Fanzink
433c86a379 ‘1’ 2021-12-22 10:05:35 +08:00
31c9929245 Merge pull request '提交' (#1) from zwq into develop
Reviewed-on: #1
2021-10-29 09:57:38 +08:00
zwq
dcc267ab9c 提交 2021-10-29 09:54:58 +08:00
27 changed files with 843 additions and 1237 deletions

View File

@@ -2,14 +2,14 @@
* @Author: zwq * @Author: zwq
* @Date: 2020-12-29 16:00:14 * @Date: 2020-12-29 16:00:14
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2021-01-27 16:42:27 * @LastEditTime: 2022-01-11 16:16:07
* @Description: * @Description:
*/ */
import request from '@/utils/request' import request from '@/utils/request'
export function areaList(data) { // 获取缓存区区域信息列表 export function areaList(data) { // 获取缓存区区域信息列表
return request({ return request({
url: '/basic/area/page', url: '/api/wms/area/shelf',
method: 'post', method: 'post',
data data
}) })
@@ -17,7 +17,7 @@ export function areaList(data) { // 获取缓存区区域信息列表
export function areaDetail(id) { // 获取缓存区区域信息单条数据 export function areaDetail(id) { // 获取缓存区区域信息单条数据
return request({ return request({
url: '/basic/area/get', url: '/api/wms/area/get',
method: 'post', method: 'post',
data: { id } data: { id }
}) })
@@ -25,7 +25,7 @@ export function areaDetail(id) { // 获取缓存区区域信息单条数据
export function areaUpdate(data) { // 更新缓存区区域信息单条数据 export function areaUpdate(data) { // 更新缓存区区域信息单条数据
return request({ return request({
url: '/basic/area/update', url: '/api/wms/area/update',
method: 'post', method: 'post',
data data
}) })
@@ -33,7 +33,7 @@ export function areaUpdate(data) { // 更新缓存区区域信息单条数据
export function areaAdd(data) { // 新增缓存区区域信息单条数据 export function areaAdd(data) { // 新增缓存区区域信息单条数据
return request({ return request({
url: '/basic/area/add', url: '/api/wms/area/add',
method: 'post', method: 'post',
data data
}) })
@@ -41,14 +41,14 @@ export function areaAdd(data) { // 新增缓存区区域信息单条数据
export function areaCode() { // 获取缓存区区域信息code export function areaCode() { // 获取缓存区区域信息code
return request({ return request({
url: '/basic/area/get-code', url: '/api/wms/area/get-code',
method: 'post' method: 'post'
}) })
} }
export function areaDelete(id) { // 删除缓存区区域信息单条数据 export function areaDelete(id) { // 删除缓存区区域信息单条数据
return request({ return request({
url: '/basic/area/delete', url: '/api/wms/area/delete',
method: 'post', method: 'post',
data: { id } data: { id }
}) })

View File

@@ -2,14 +2,14 @@
* @Author: zwq * @Author: zwq
* @Date: 2020-12-29 16:00:14 * @Date: 2020-12-29 16:00:14
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2021-01-20 15:31:32 * @LastEditTime: 2022-01-11 15:50:42
* @Description: * @Description:
*/ */
import request from '@/utils/request' import request from '@/utils/request'
export function cacheList(data) { // 获取缓存区信息列表 export function cacheList(data) { // 获取缓存区信息列表
return request({ return request({
url: '/basic/cache/page', url: '/api/wms/area/page',
method: 'post', method: 'post',
data data
}) })
@@ -17,7 +17,7 @@ export function cacheList(data) { // 获取缓存区信息列表
export function cacheDetail(id) { // 获取缓存区信息单条数据 export function cacheDetail(id) { // 获取缓存区信息单条数据
return request({ return request({
url: '/basic/cache/get', url: '/api/wms/area/getById',
method: 'post', method: 'post',
data: { id } data: { id }
}) })
@@ -25,7 +25,7 @@ export function cacheDetail(id) { // 获取缓存区信息单条数据
export function cacheUpdate(data) { // 更新缓存区信息单条数据 export function cacheUpdate(data) { // 更新缓存区信息单条数据
return request({ return request({
url: '/basic/cache/update', url: '/api/wms/area/update',
method: 'post', method: 'post',
data data
}) })
@@ -33,7 +33,7 @@ export function cacheUpdate(data) { // 更新缓存区信息单条数据
export function cacheAdd(data) { // 新增缓存区信息单条数据 export function cacheAdd(data) { // 新增缓存区信息单条数据
return request({ return request({
url: '/basic/cache/add', url: '/api/wms/area/add',
method: 'post', method: 'post',
data data
}) })
@@ -41,14 +41,14 @@ export function cacheAdd(data) { // 新增缓存区信息单条数据
export function cacheCode() { // 获取缓存区信息code export function cacheCode() { // 获取缓存区信息code
return request({ return request({
url: '/basic/cache/get-code', url: '/api/wms/area/get-code',
method: 'post' method: 'post'
}) })
} }
export function cacheDelete(id) { // 删除缓存区信息单条数据 export function cacheDelete(id) { // 删除缓存区信息单条数据
return request({ return request({
url: '/basic/cache/delete', url: '/api/wms/area/delete',
method: 'post', method: 'post',
data: { id } data: { id }
}) })

View File

@@ -2,14 +2,14 @@
* @Author: zwq * @Author: zwq
* @Date: 2020-12-29 16:00:14 * @Date: 2020-12-29 16:00:14
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2021-07-21 14:29:10 * @LastEditTime: 2022-01-11 16:43:22
* @Description: * @Description:
*/ */
import request from '@/utils/request' import request from '@/utils/request'
export function storageBoxList(data) { // 获取存储箱列表 export function storageBoxList(data) { // 获取存储箱列表
return request({ return request({
url: '/basic/storage-tank/page', url: '/api/wms/storagebox/page',
method: 'post', method: 'post',
data data
}) })
@@ -17,7 +17,7 @@ export function storageBoxList(data) { // 获取存储箱列表
export function storageBoxDetail(id) { // 获取存储箱单条数据 export function storageBoxDetail(id) { // 获取存储箱单条数据
return request({ return request({
url: '/basic/storage-tank/get', url: '/api/wms/storagebox/getById',
method: 'post', method: 'post',
data: { id } data: { id }
}) })
@@ -25,7 +25,7 @@ export function storageBoxDetail(id) { // 获取存储箱单条数据
export function storageBoxUpdate(data) { // 更新存储箱单条数据 export function storageBoxUpdate(data) { // 更新存储箱单条数据
return request({ return request({
url: '/basic/storage-tank/update', url: '/api/wms/storagebox/update',
method: 'post', method: 'post',
data data
}) })
@@ -33,7 +33,7 @@ export function storageBoxUpdate(data) { // 更新存储箱单条数据
export function storageBoxAdd(data) { // 新增存储箱单条数据 export function storageBoxAdd(data) { // 新增存储箱单条数据
return request({ return request({
url: '/basic/storage-tank/add', url: '/api/wms/storagebox/add',
method: 'post', method: 'post',
data data
}) })
@@ -41,14 +41,14 @@ export function storageBoxAdd(data) { // 新增存储箱单条数据
export function storageBoxCode() { // 获取存储箱code export function storageBoxCode() { // 获取存储箱code
return request({ return request({
url: '/basic/storage-tank/get-code', url: '/api/wms/storagebox/get-code',
method: 'post' method: 'post'
}) })
} }
export function storageBoxDelete(id) { // 删除存储箱单条数据 export function storageBoxDelete(id) { // 删除存储箱单条数据
return request({ return request({
url: '/basic/storage-tank/delete', url: '/api/wms/storagebox/delete',
method: 'post', method: 'post',
data: { id } data: { id }
}) })
@@ -56,14 +56,14 @@ export function storageBoxDelete(id) { // 删除存储箱单条数据
export function PositionDetailInfoAdd(data) { // 新增存储箱地址单条数据 export function PositionDetailInfoAdd(data) { // 新增存储箱地址单条数据
return request({ return request({
url: '/basic/storage-tank-site/add', url: '/api/wms/storagebox-site/add',
method: 'post', method: 'post',
data data
}) })
} }
export function PositionDetailInfoList(data) { // 获取存储箱地址列表 export function PositionDetailInfoList(data) { // 获取存储箱地址列表
return request({ return request({
url: '/basic/storage-tank-site/page', url: '/api/wms/storagebox-site/page',
method: 'post', method: 'post',
data data
}) })

View File

@@ -2,14 +2,14 @@
* @Author: zwq * @Author: zwq
* @Date: 2020-12-29 16:00:14 * @Date: 2020-12-29 16:00:14
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2021-03-12 09:40:01 * @LastEditTime: 2022-01-10 17:00:16
* @Description: * @Description:
*/ */
import request from '@/utils/request' import request from '@/utils/request'
export function equipmentInfoList(data) { // 获取设备信息列表 export function equipmentInfoList(data) { // 获取设备信息列表
return request({ return request({
url: '/basic/equipment/page', url: '/api/wms/equipment/page',
method: 'post', method: 'post',
data data
}) })
@@ -17,7 +17,7 @@ export function equipmentInfoList(data) { // 获取设备信息列表
export function equipmentInfoDetail(id) { // 获取设备信息单条数据 export function equipmentInfoDetail(id) { // 获取设备信息单条数据
return request({ return request({
url: '/basic/equipment/get', url: '/api/wms/equipment/get',
method: 'post', method: 'post',
data: { id } data: { id }
}) })
@@ -25,7 +25,7 @@ export function equipmentInfoDetail(id) { // 获取设备信息单条数据
export function equipmentInfoUpdate(data) { // 更新设备信息单条数据 export function equipmentInfoUpdate(data) { // 更新设备信息单条数据
return request({ return request({
url: '/basic/equipment/update', url: '/api/wms/equipment/update',
method: 'post', method: 'post',
data data
}) })
@@ -33,7 +33,7 @@ export function equipmentInfoUpdate(data) { // 更新设备信息单条数据
export function equipmentInfoAdd(data) { // 新增设备信息单条数据 export function equipmentInfoAdd(data) { // 新增设备信息单条数据
return request({ return request({
url: '/basic/equipment/add', url: '/api/wms/equipment/add',
method: 'post', method: 'post',
data data
}) })
@@ -41,14 +41,14 @@ export function equipmentInfoAdd(data) { // 新增设备信息单条数据
export function equipmentInfoCode() { // 获取设备信息code export function equipmentInfoCode() { // 获取设备信息code
return request({ return request({
url: '/basic/equipment/get-code', url: '/api/wms/equipment/get-code',
method: 'post' method: 'post'
}) })
} }
export function equipmentInfoDelete(id) { // 删除设备信息单条数据 export function equipmentInfoDelete(id) { // 删除设备信息单条数据
return request({ return request({
url: '/basic/equipment/delete', url: '/api/wms/equipment/delete',
method: 'post', method: 'post',
data: { id } data: { id }
}) })
@@ -56,7 +56,7 @@ export function equipmentInfoDelete(id) { // 删除设备信息单条数据
export function equipmentInfoFileAdd(data) { // 设备信息上传 export function equipmentInfoFileAdd(data) { // 设备信息上传
return request({ return request({
url: '/basic/equipment-file/update-file', url: '/api/wms/equipment-file/update-file',
method: 'post', method: 'post',
data data
}) })
@@ -64,7 +64,7 @@ export function equipmentInfoFileAdd(data) { // 设备信息上传
export function getEquipmentInfoFile(data) { // 设备信息下载 export function getEquipmentInfoFile(data) { // 设备信息下载
return request({ return request({
url: '/basic/equipment-file/get-by-param', url: '/api/wms/equipment-file/get-by-param',
method: 'post', method: 'post',
data data
}) })

View File

@@ -0,0 +1,28 @@
/*
* @Author: zwq
* @Date: 2020-12-29 16:00:14
* @LastEditors: zwq
* @LastEditTime: 2022-01-12 16:23:00
* @Description:
*/
import request from '@/utils/request'
export function HistoricalTaskList(data) { // 获取任务列表
return request({
url: '/api/wms/car/task/execution/info/his/page',
method: 'post',
data
})
}
export function HistoricalTaskDetail(id) { // 获取任务单条数据
const data = {
'id': id
}
return request({
url: '/api/wms/car/task/execution/info/his/get',
method: 'post',
data
})
}

View File

@@ -1,7 +1,7 @@
/* /*
* @Date: 2020-12-14 09:07:03 * @Date: 2020-12-14 09:07:03
* @LastEditors: guo * @LastEditors: zwq
* @LastEditTime: 2021-01-11 09:40:09 * @LastEditTime: 2022-01-11 15:45:54
* @FilePath: \basic-admin\src\api\user.js * @FilePath: \basic-admin\src\api\user.js
* @Description: 用户管理 & 登录用户的相关api接口定义 * @Description: 用户管理 & 登录用户的相关api接口定义
*/ */
@@ -13,7 +13,8 @@ export function login(data) {
userType: 1 userType: 1
}) })
return request({ return request({
url: '/passport/login', url: '/api/passport/login',
// url: '/passport/login',
method: 'post', method: 'post',
data: dto data: dto
}) })
@@ -28,7 +29,7 @@ export function logout() {
// 获取当前登录的用户信息 // 获取当前登录的用户信息
export function getUserInfo(data) { export function getUserInfo(data) {
return request({ return request({
url: '/passport/getLoginUser', url: '/api/passport/getLoginUser',
method: 'post', method: 'post',
data data
}) })

View File

@@ -1,7 +1,7 @@
export default { export default {
title: { title: {
en: 'ARI MES', en: 'ARI WMS',
zh: '中建材自动化智能制造执行系统' zh: '中建材自动化智能仓库管理系统'
}, },
btn: { btn: {
start: { start: {
@@ -253,13 +253,9 @@ export default {
} }
}, },
routerTitle: { routerTitle: {
dashboard: {
zh: '',
en: '',
dashboard: { dashboard: {
zh: '仪表盘', zh: '仪表盘',
en: 'Dashboard' en: 'Dashboard'
}
}, },
basic: { basic: {
zh: '系统管理', zh: '系统管理',
@@ -552,8 +548,8 @@ export default {
zh: '缓存区信息', zh: '缓存区信息',
en: 'Ports Info', en: 'Ports Info',
ports: { ports: {
zh: '仓库', zh: '缓存区信息',
en: 'Warehouse' en: 'Ports Info'
}, },
area: { area: {
zh: '区域', zh: '区域',
@@ -709,6 +705,22 @@ export default {
} }
} }
}, },
Warehouse: {
zh: '仓库管理',
en: 'Warehouse Manager',
StorageBoxInfo: {
zh: '存储箱信息',
en: 'Storage Box Info'
},
CurrentTask: {
zh: '当前任务',
en: 'Current Task'
},
HistoricalTask: {
zh: '历史任务',
en: 'Historical Task'
}
},
order: { order: {
zh: '工单管理', zh: '工单管理',
en: 'Order Manager', en: 'Order Manager',

View File

@@ -2,7 +2,7 @@
* @Author: gtz * @Author: gtz
* @Date: 2021-03-04 16:13:51 * @Date: 2021-03-04 16:13:51
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2021-07-21 09:59:34 * @LastEditTime: 2022-01-12 16:09:24
* @Description: file content * @Description: file content
*/ */
export default { export default {
@@ -130,9 +130,11 @@ export default {
CacheCode: 'Ports Code', CacheCode: 'Ports Code',
CacheName: 'Ports Name', CacheName: 'Ports Name',
StockNumber: 'Stock Number', StockNumber: 'Stock Number',
AreaNumber: 'Area Number', AreaNumber: 'Shelf Number',
AreaCode: 'Area Code', AreaCode: 'Shelf Code',
AreaName: 'Area Name', AreaName: 'Shelf Name',
rowNum: 'Row Num',
columnNum: 'Column Num',
Shelf: 'Shelf', Shelf: 'Shelf',
ManageShelves: 'Manage Shelves', ManageShelves: 'Manage Shelves',
ShelfCode: 'Shelf Code', ShelfCode: 'Shelf Code',
@@ -145,7 +147,7 @@ export default {
LocationName: 'Location Name', LocationName: 'Location Name',
anotherName: 'Another Name', anotherName: 'Another Name',
place: 'Place', place: 'Place',
addCacheArea: 'add Ports Area' addCacheArea: 'add Ports Shelf'
}, },
storageBox: { storageBox: {
name: 'Name', name: 'Name',
@@ -272,5 +274,20 @@ export default {
EquipmentScrapGrade: { EquipmentScrapGrade: {
keyword: 'name', keyword: 'name',
ScrapGrade: 'Scrap Grade' ScrapGrade: 'Scrap Grade'
},
Warehouse: {
Code: 'Code',
TaskType: 'Task Type',
TaskStatus: 'Task Status',
VehicleName: 'Vehicle Name',
TimeSlot: 'Time Slot',
ExecutionTime: 'Execution Time',
BoxStatus: 'Box Status',
BoxNumber: 'Box Number',
PreviousOperation: 'Previous Operation',
NextOperation: 'Next Operation',
CompletionTime: 'Completion Time',
StartLocation: 'Start Location',
TargetLocation: 'Target Location'
} }
} }

View File

@@ -2,7 +2,7 @@
* @Author: gtz * @Author: gtz
* @Date: 2021-03-04 16:13:51 * @Date: 2021-03-04 16:13:51
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2021-07-21 09:58:59 * @LastEditTime: 2022-01-12 16:09:25
* @Description: file content * @Description: file content
*/ */
export default { export default {
@@ -130,22 +130,24 @@ export default {
CacheCode: '缓存区编码', CacheCode: '缓存区编码',
CacheName: '缓存区名称', CacheName: '缓存区名称',
StockNumber: '库位数量', StockNumber: '库位数量',
AreaNumber: '区域数量', AreaNumber: '货架数量',
AreaCode: '区域编码', AreaCode: '货架编码',
AreaName: '区域名称', AreaName: '货架名称',
rowNum: '行数',
columnNum: '列数',
Shelf: '货架', Shelf: '货架',
ManageShelves: '管理货架', ManageShelves: '管理货架',
ShelfCode: '货架编码', ShelfCode: '货架编码',
ShelfName: '货架名称', ShelfName: '货架名称',
ShelfNumber: '货架数量', ShelfNumber: '货架数量',
StorageQuantity: '存储数量', StorageQuantity: '存储数量',
Location: '位', Location: '位',
ManageLocation: '管理货位', ManageLocation: '管理货位',
LocationCode: '库位编码', LocationCode: '库位编码',
LocationName: '库位名称', LocationName: '库位名称',
anotherName: '别名', anotherName: '别名',
place: '位置', place: '位置',
addCacheArea: '添加区域' addCacheArea: '添加货架'
}, },
storageBox: { storageBox: {
name: '名称', name: '名称',
@@ -272,5 +274,20 @@ export default {
EquipmentScrapGrade: { EquipmentScrapGrade: {
keyword: '名称', keyword: '名称',
ScrapGrade: '废片等级' ScrapGrade: '废片等级'
},
Warehouse: {
Code: '编码',
TaskType: '任务类型',
TaskStatus: '任务状态',
VehicleName: '车辆名',
TimeSlot: '时间段',
ExecutionTime: '执行时间',
BoxStatus: '箱状态',
BoxNumber: '箱号',
PreviousOperation: '上一个工序',
NextOperation: '下一个工序',
CompletionTime: '完成时间',
StartLocation: '开始库位',
TargetLocation: '目标库位'
} }
} }

View File

@@ -15,11 +15,6 @@
<svg-icon class="item-icon" icon-class="home" /> <svg-icon class="item-icon" icon-class="home" />
{{ 'navbar.homepage' | i18nFilter }} {{ 'navbar.homepage' | i18nFilter }}
</div> </div>
<div class="right-menu-back">
<el-badge :value="alarmList.length" class="item" style="line-height: 0; margin: 0 10px;" @click.native="toAlarm">
<svg-icon style="width: 24px; height: 24px" class="item-icon" icon-class="alarm" />
</el-badge>
</div>
<template> <template>
<lang-select class="right-menu-item hover-effect" /> <lang-select class="right-menu-item hover-effect" />
@@ -27,15 +22,15 @@
<div v-if="showhome" class="right-menu-back"> <div v-if="showhome" class="right-menu-back">
<a href="Lodap.zip"><i class="el-icon-download" /></a> <a href="Lodap.zip"><i class="el-icon-download" /></a>
</div> </div>
<div class="right-menu-back"> <!-- <div class="right-menu-back">
<i class="el-icon-alarm-clock" /> <i class="el-icon-alarm-clock" />
{{ formatTime }} {{ formatTime }}
</div> </div> -->
<el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click"> <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click">
<div class="avatar-wrapper"> <div class="avatar-wrapper">
<img :src="require('@/assets/img/head.png')" class="user-avatar"> <img :src="require('@/assets/img/head.png')" class="user-avatar">
<div class="avatar-username">{{ username }}</div> <!-- <div class="avatar-username">{{ username }}</div> -->
<!-- <i class="el-icon-caret-bottom" /> --> <!-- <i class="el-icon-caret-bottom" /> -->
</div> </div>
<el-dropdown-menu slot="dropdown"> <el-dropdown-menu slot="dropdown">
@@ -71,7 +66,6 @@
<script> <script>
import axios from 'axios' import axios from 'axios'
import { mapGetters } from 'vuex' import { mapGetters } from 'vuex'
import { alarmInfoList } from '@/api/basicData/AlarmManagement/alarmInfo'
import Breadcrumb from '@/components/Breadcrumb' import Breadcrumb from '@/components/Breadcrumb'
import Hamburger from '@/components/Hamburger' import Hamburger from '@/components/Hamburger'
import LangSelect from '@/components/LangSelect' import LangSelect from '@/components/LangSelect'
@@ -122,16 +116,9 @@ export default {
if (val <= 0) { if (val <= 0) {
this.logout() this.logout()
} }
},
$route: function() {
this.getAlarm()
} }
}, },
mounted() { mounted() {
this.getAlarm()
logoutInterval = setInterval(() => {
this.logoutTime -= 1000
}, 1000)
addEventListener('click', this.logoutTimeReset) addEventListener('click', this.logoutTimeReset)
addEventListener('keydown', this.logoutTimeReset) addEventListener('keydown', this.logoutTimeReset)
addEventListener('visibilitychange', this.visibilitychangeListener) addEventListener('visibilitychange', this.visibilitychangeListener)
@@ -192,24 +179,6 @@ export default {
async toHome() { async toHome() {
this.$store.dispatch('app/setChoicepart') this.$store.dispatch('app/setChoicepart')
this.$router.push('/') this.$router.push('/')
},
getAlarm() {
alarmInfoList({
current: 1,
size: 1000,
alarmType: '',
code: '',
alarmGrade: ''
}).then(response => {
if (response.data.records) {
this.alarmList = response.data.records
} else {
this.alarmList = []
}
})
},
toAlarm() {
this.$router.push('/AlarmManagement/AlarmInfo')
} }
} }
} }

View File

@@ -1,8 +1,8 @@
<!-- <!--
* @Author: your name * @Author: your name
* @Date: 2021-01-27 10:07:42 * @Date: 2021-01-27 10:07:42
* @LastEditTime: 2021-03-08 11:59:59 * @LastEditTime: 2021-12-22 16:06:25
* @LastEditors: gtz * @LastEditors: zwq
* @Description: In User Settings Edit * @Description: In User Settings Edit
* @FilePath: \mt-bus-fe\src\layout\components\Sidebar\index.vue * @FilePath: \mt-bus-fe\src\layout\components\Sidebar\index.vue
--> -->
@@ -31,31 +31,17 @@ import { mapGetters } from 'vuex'
import Logo from './Logo' import Logo from './Logo'
import SidebarItem from './SidebarItem' import SidebarItem from './SidebarItem'
import variables from '@/styles/variables.scss' import variables from '@/styles/variables.scss'
// import { constantRoutes } from '@/router' import { constantRoutes } from '@/router'
import store from '@/store'
export default { export default {
components: { SidebarItem, Logo }, components: { SidebarItem, Logo },
computed: { computed: {
...mapGetters([ ...mapGetters([
'sidebar', 'sidebar',
'choicepart', 'permission_routes',
'language' 'language'
]), ]),
partList() {
const cangoList = []
const constantRoutes = store.getters.permission_routes
constantRoutes.map(item => {
if (!item.hidden && item.meta) {
cangoList.push(item)
}
})
const formatList = cangoList.map((item, index) => {
return this.setIndex(item, index)
})
return formatList
},
routeList() { routeList() {
return [this.partList[this.choicepart]] return constantRoutes
}, },
activeMenu() { activeMenu() {
const route = this.$route const route = this.$route
@@ -67,6 +53,7 @@ export default {
return path return path
}, },
showLogo() { showLogo() {
console.log(this.$route)
return this.$store.state.settings.sidebarLogo return this.$store.state.settings.sidebarLogo
}, },
variables() { variables() {
@@ -75,24 +62,6 @@ export default {
isCollapse() { isCollapse() {
return !this.sidebar.opened return !this.sidebar.opened
} }
},
watch: {
$route: function(val) {
if (val.meta.routeIndex >= 0) {
this.$store.dispatch('app/setChoicepart', val.meta.routeIndex)
}
}
},
methods: {
setIndex(list, index) {
list.meta.routeIndex = index
if (list.children) {
list.children.map(item => {
this.setIndex(item, index)
})
}
return list
}
} }
} }
</script> </script>

View File

@@ -45,8 +45,8 @@ export default {
return this.$store.state.tagsView.visitedViews return this.$store.state.tagsView.visitedViews
}, },
routes() { routes() {
// return this.$store.state.permission.routes return this.$store.state.permission.routes
return [] // return []
} }
}, },
watch: { watch: {

View File

@@ -1,12 +1,11 @@
/* /*
* @Date: 2020-12-14 09:07:03 * @Date: 2020-12-14 09:07:03
* @LastEditors: gtz * @LastEditors: zwq
* @LastEditTime: 2021-02-25 09:42:36 * @LastEditTime: 2021-12-22 16:13:30
* @FilePath: \basic-admin\src\permission.js * @FilePath: \basic-admin\src\permission.js
* @Description: 路由权限检查 * @Description: 路由权限检查
*/ */
import router from './router' import router from './router'
// import { resetRouter } from '@/router'
import { Message } from 'element-ui' import { Message } from 'element-ui'
import NProgress from 'nprogress' // progress bar import NProgress from 'nprogress' // progress bar
import 'nprogress/nprogress.css' // progress bar style import 'nprogress/nprogress.css' // progress bar style
@@ -35,23 +34,14 @@ router.beforeEach(async(to, from, next) => {
next({ path: '/' }) next({ path: '/' })
NProgress.done() // hack: https://github.com/PanJiaChen/vue-element-admin/pull/2939 NProgress.done() // hack: https://github.com/PanJiaChen/vue-element-admin/pull/2939
} else { } else {
const hasRoles = store.getters.menus && store.getters.menus.length > 0 // next()
console.log('store.getters.menus', store.getters.menus)
console.log('store.getters', store.getters)
console.log('hasRoles=', hasRoles)
if (hasRoles) {
console.log('hasRoles=', store.getters.menus)
next()
NProgress.done() NProgress.done()
} else {
try { try {
// // generate accessible routes map based on roles // // generate accessible routes map based on roles
const { menus } = await store.dispatch('user/getInfo') // const accessRoutes = await store.dispatch('permission/generateRoutes')
console.log(menus) // console.log(accessRoutes)
const accessRoutes = await store.dispatch('permission/generateRoutes', menus) // router.addRoutes(accessRoutes)
console.log('accessRoutes', accessRoutes) next()
router.addRoutes(accessRoutes)
next({ ...to, replace: true })
// hack method to ensure that addRoutes is complete // hack method to ensure that addRoutes is complete
// set the replace: true, so the navigation will not leave a history record // set the replace: true, so the navigation will not leave a history record
// next({ ...to, replace: true }) // next({ ...to, replace: true })
@@ -63,10 +53,9 @@ router.beforeEach(async(to, from, next) => {
NProgress.done() NProgress.done()
} }
} }
}
} else { } else {
/* has no token*/ /* has no token*/
console.log('has no token to.path=' + to.path) console.log('to.path=' + to.path)
console.log('whiteList.indexOf(to.path)=' + whiteList.indexOf(to.path)) console.log('whiteList.indexOf(to.path)=' + whiteList.indexOf(to.path))
if (whiteList.indexOf(to.path) !== -1) { if (whiteList.indexOf(to.path) !== -1) {
// in the free login whitelist, go directly // in the free login whitelist, go directly

View File

@@ -2,7 +2,6 @@ import Vue from 'vue'
import Router from 'vue-router' import Router from 'vue-router'
import i18n from '@/lang/i18n' import i18n from '@/lang/i18n'
import Cookies from 'js-cookie' import Cookies from 'js-cookie'
import store from '@/store'
const routerTitle = i18n.routerTitle const routerTitle = i18n.routerTitle
const language = Cookies.get('language') const language = Cookies.get('language')
@@ -58,12 +57,25 @@ export const constantRoutes = [
component: () => import('@/views/login/index'), component: () => import('@/views/login/index'),
hidden: true hidden: true
}, },
{ // {
path: '/', // path: '/',
component: () => import('@/views/ChoicePart'), // component: Layout,
hidden: true, // redirect: '/dashboard',
meta: { requireToken: true } // children: [
}, // {
// path: 'dashboard',
// component: () => import('@/views/dashboard/index'),
// name: 'Dashboard',
// meta: { title: routerTitle.dashboard?.[language] || routerTitle.dashboard.en, icon: 'form', iconPart: 'dashboard', affix: true, required: true, requireToken: true }
// }
// ]
// },
// {
// path: '/',
// component: () => import('@/views/ChoicePart'),
// hidden: true,
// meta: { requireToken: true }
// },
// { // {
// path: '/auth-redirect', // path: '/auth-redirect',
// component: () => import('@/views/login/auth-redirect'), // component: () => import('@/views/login/auth-redirect'),
@@ -78,145 +90,13 @@ export const constantRoutes = [
path: '/401', path: '/401',
component: () => import('@/views/error-page/401'), component: () => import('@/views/error-page/401'),
hidden: true hidden: true
} },
// 工单管理、厂务管理、包装管理、接口管理、数据采集、报表、质量管理、SPC
/** when your routing map is too long, you can split it into small modules **/
// 404 page must be placed at the end !!!
// { path: '*', redirect: '/404', hidden: true }
]
export const dynamicRoutes = [
// {
// path: '/dashboard',
// component: Layout,
// redirect: '/dashboard',
// name: 'dashboard',
// children: [
// {
// path: 'dashboard',
// component: () => import('@/views/dashboard/index'),
// name: 'Dashboard',
// meta: { title: routerTitle.dashboard.dashboard?.[language] || routerTitle.dashboard.dashboard.en, icon: 'dashboard', affix: true }
// }
// ]
// },
{ {
path: '/basicData', path: '/',
component: Layout, component: Layout,
redirect: '/basicData/factoryManage', redirect: '/ports',
name: 'basicData', name: 'basicData',
meta: { title: routerTitle.basicData?.[language] || routerTitle.basicData.en, icon: 'form', iconPart: 'basicData', affix: true, required: true, requireToken: true }, meta: { title: routerTitle.basicData?.[language] || routerTitle.basicData.en, icon: 'form', iconPart: 'basicData', affix: true, required: true, requireToken: true },
children: [
{
path: '/factoryManage',
component: () => import('@/views/basicData/index'),
name: 'factoryManager',
meta: { title: routerTitle.basicData.factoryManage?.[language] || routerTitle.basicData.factoryManage.en, icon: 'form', affix: true, required: true, requireToken: true },
children: [
{
path: 'factory',
component: () =>
import('@/views/basicData/FactoryManagement/Factory'),
name: 'factory',
meta: { title: routerTitle.basicData.factoryManage.factory?.[language] || routerTitle.basicData.factoryManage.factory.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'productLine',
component: () =>
import('@/views/basicData/FactoryManagement/product-line'),
name: 'productLine',
meta: { title: routerTitle.basicData.factoryManage.productLine?.[language] || routerTitle.basicData.factoryManage.productLine.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'workSection',
component: () =>
import('@/views/basicData/FactoryManagement/work-section'),
name: 'workSection',
meta: { title: routerTitle.basicData.factoryManage.workSection?.[language] || routerTitle.basicData.factoryManage.workSection.en, icon: 'form', affix: true, required: true, requireToken: true }
}
]
},
{
path: '/GroupModule',
component: () => import('@/views/basicData/index'),
name: 'GroupModule',
meta: { title: routerTitle.basicData.teamManage?.[language] || routerTitle.basicData.teamManage.en, icon: 'form', affix: true, required: true, requireToken: true },
children: [
{
path: 'group',
component: () => import('@/views/basicData/GroupModule/group'),
name: 'group',
meta: { title: routerTitle.basicData.teamManage.team?.[language] || routerTitle.basicData.teamManage.team.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'major',
component: () => import('@/views/basicData/GroupModule/major'),
name: 'major',
meta: { title: routerTitle.basicData.teamManage.major?.[language] || routerTitle.basicData.teamManage.major.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'staff',
component: () => import('@/views/basicData/GroupModule/staff'),
name: 'staff',
meta: { title: routerTitle.basicData.teamManage.staff?.[language] || routerTitle.basicData.teamManage.staff.en, icon: 'form', affix: true, required: true, requireToken: true }
}
]
},
// {
// path: '/CustomerSupplier',
// component: () => import('@/views/basicData/index'),
// name: 'CustomerSupplier',
// meta: { title: routerTitle.basicData.CustomerSupplier?.[language] || routerTitle.basicData.CustomerSupplier.en, icon: 'form', affix: true, required: true, requireToken: true },
// children: [
// {
// path: 'Customer',
// component: () =>
// import('@/views/basicData/CustomerSupplier/customer'),
// name: 'Customer',
// meta: { title: routerTitle.basicData.CustomerSupplier.customer?.[language] || routerTitle.basicData.CustomerSupplier.customer.en, icon: 'form', affix: true, required: true, requireToken: true }
// },
// {
// path: 'Supplier',
// component: () =>
// import('@/views/basicData/CustomerSupplier/supplier'),
// name: 'Supplier',
// meta: { title: routerTitle.basicData.CustomerSupplier.supplier?.[language] || routerTitle.basicData.CustomerSupplier.supplier.en, icon: 'form', affix: true, required: true, requireToken: true }
// }
// ]
// },
{
path: '/Materials',
component: () => import('@/views/basicData/index'),
name: 'Materials',
meta: { title: routerTitle.basicData.materials?.[language] || routerTitle.basicData.materials.en, icon: 'form', affix: true, required: true, requireToken: true },
children: [
{
path: 'Material',
component: () => import('@/views/basicData/Materials/material'),
name: 'Material',
meta: { title: routerTitle.basicData.materials.material?.[language] || routerTitle.basicData.materials.material.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'MaterialAdd',
component: () => import('@/views/basicData/Materials/components/material-add'),
name: 'MaterialAdd',
hidden: true,
meta: { title: routerTitle.basicData.materials.MaterialAdd?.[language] || routerTitle.basicData.materials.MaterialAdd.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'MaterialsType',
component: () =>
import('@/views/basicData/Materials/materialsType'),
name: 'MaterialsType',
meta: { title: routerTitle.basicData.materials.materialType?.[language] || routerTitle.basicData.materials.materialType.en, icon: 'form', affix: true, required: true, requireToken: true }
}
]
},
{
path: '/Ports',
component: () => import('@/views/basicData/index'),
name: 'Ports',
meta: { title: routerTitle.basicData.ports?.[language] || routerTitle.basicData.ports.en, icon: 'form', affix: true, required: true, requireToken: true },
children: [ children: [
{ {
path: 'ports', path: 'ports',
@@ -228,12 +108,14 @@ export const dynamicRoutes = [
path: 'area', path: 'area',
component: () => import('@/views/basicData/Cache/area'), component: () => import('@/views/basicData/Cache/area'),
name: 'area', name: 'area',
hidden: true,
meta: { title: routerTitle.basicData.ports.area?.[language] || routerTitle.basicData.ports.area.en, icon: 'form', affix: true } meta: { title: routerTitle.basicData.ports.area?.[language] || routerTitle.basicData.ports.area.en, icon: 'form', affix: true }
}, },
{ {
path: 'shelf', path: 'shelf',
component: () => import('@/views/basicData/Cache/shelf'), component: () => import('@/views/basicData/Cache/shelf'),
name: 'shelf', name: 'shelf',
hidden: true,
meta: { title: routerTitle.basicData.ports.shelf?.[language] || routerTitle.basicData.ports.shelf.en, icon: 'form', affix: true } meta: { title: routerTitle.basicData.ports.shelf?.[language] || routerTitle.basicData.ports.shelf.en, icon: 'form', affix: true }
}, { }, {
path: 'cacheAdd', path: 'cacheAdd',
@@ -264,15 +146,7 @@ export const dynamicRoutes = [
name: 'PositionDetailInfo', name: 'PositionDetailInfo',
hidden: true, hidden: true,
meta: { title: routerTitle.basicData.ports.PositionDetailInfo?.[language] || routerTitle.basicData.ports.PositionDetailInfo.en, icon: 'form', affix: true } meta: { title: routerTitle.basicData.ports.PositionDetailInfo?.[language] || routerTitle.basicData.ports.PositionDetailInfo.en, icon: 'form', affix: true }
}
]
}, },
{
path: '/Equipment',
component: () => import('@/views/basicData/index'),
name: 'Equipment',
meta: { title: routerTitle.basicData.equipment?.[language] || routerTitle.basicData.equipment.en, icon: 'form', affix: true, required: true, requireToken: true },
children: [
{ {
path: 'equipmentInfo', path: 'equipmentInfo',
component: () => component: () =>
@@ -286,478 +160,36 @@ export const dynamicRoutes = [
name: 'equipmentInfoAdd', name: 'equipmentInfoAdd',
hidden: true, hidden: true,
meta: { title: routerTitle.basicData.equipment.equipmentInfoAdd?.[language] || routerTitle.basicData.equipment.equipmentInfoAdd.en, icon: 'form', affix: true, required: true, requireToken: true } meta: { title: routerTitle.basicData.equipment.equipmentInfoAdd?.[language] || routerTitle.basicData.equipment.equipmentInfoAdd.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'equipmentType',
component: () =>
import('@/views/basicData/Equipment/equipmentType'),
name: 'equipmentType',
meta: { title: routerTitle.basicData.equipment.equipmentType?.[language] || routerTitle.basicData.equipment.equipmentType.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'EquipmentGroup',
component: () =>
import('@/views/basicData/Equipment/EquipmentGroup'),
name: 'EquipmentGroup',
meta: { title: routerTitle.basicData.equipment.EquipmentGroup?.[language] || routerTitle.basicData.equipment.EquipmentGroup.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'equipmentTypeAlarm',
component: () =>
import('@/views/basicData/Equipment/equipmentTypeAlarm'),
name: 'equipmentTypeAlarm',
hidden: true,
meta: { title: routerTitle.basicData.equipment.equipmentTypeAlarm?.[language] || routerTitle.basicData.equipment.equipmentTypeAlarm.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'maintenanceType',
component: () =>
import('@/views/basicData/Equipment/maintenanceType'),
name: 'maintenanceType',
meta: { title: routerTitle.basicData.equipment.maintenanceType?.[language] || routerTitle.basicData.equipment.maintenanceType.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'maintenanceCycle',
component: () =>
import('@/views/basicData/Equipment/maintenanceCycle'),
name: 'maintenanceCycle',
meta: { title: routerTitle.basicData.equipment.maintenanceCycle?.[language] || routerTitle.basicData.equipment.maintenanceCycle.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: '/equipmentDetectInfo',
component: () => import('@/views/basicData/index'),
name: 'equipmentDetectInfo',
meta: { title: routerTitle.basicData.equipment.equipmentDetectInfo?.[language] || routerTitle.basicData.equipment.equipmentDetectInfo.en, icon: 'form', affix: true, required: true, requireToken: true },
children: [
{
path: 'equipmentDetectSystem',
component: () =>
import('@/views/basicData/Equipment/equipmentDetectSystem'),
name: 'equipmentDetectSystem',
meta: { title: routerTitle.basicData.equipment.equipmentDetectInfo.equipmentDetectSystem?.[language] || routerTitle.basicData.equipment.equipmentDetectInfo.equipmentDetectSystem.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'equipmentDetectArea',
component: () =>
import('@/views/basicData/Equipment/equipmentDetectArea'),
name: 'equipmentDetectArea',
meta: { title: routerTitle.basicData.equipment.equipmentDetectInfo.equipmentDetectArea?.[language] || routerTitle.basicData.equipment.equipmentDetectInfo.equipmentDetectArea.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'equipmentDetectAreaAdd',
component: () =>
import('@/views/basicData/Equipment/components/equipmentDetectArea-add'),
name: 'equipmentDetectAreaAdd',
hidden: true,
meta: { title: routerTitle.basicData.equipment.equipmentDetectInfo.equipmentDetectArea?.[language] || routerTitle.basicData.equipment.equipmentDetectInfo.equipmentDetectArea.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'detectSystemSettings',
component: () =>
import('@/views/basicData/Equipment/detectSystemSettings'),
name: 'detectSystemSettings',
meta: { title: routerTitle.basicData.equipment.equipmentDetectInfo.detectSystemSettings?.[language] || routerTitle.basicData.equipment.equipmentDetectInfo.detectSystemSettings.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'detectSystemSettingsAdd',
component: () =>
import('@/views/basicData/Equipment/components/detectSystemSettings-add'),
name: 'detectSystemSettingsAdd',
hidden: true,
meta: { title: routerTitle.basicData.equipment.equipmentDetectInfo.detectSystemSettings?.[language] || routerTitle.basicData.equipment.equipmentDetectInfo.detectSystemSettings.en, icon: 'form', affix: true, required: true, requireToken: true }
}
]
}
// {
// path: 'spareParts',
// component: () => import('@/views/basicData/Equipment/spareParts'),
// name: 'spareParts',
// meta: { title: routerTitle.basicData.equipment.spareParts?.[language] || routerTitle.basicData.equipment.spareParts.en, icon: 'form', affix: true, required: true, requireToken: true }
// },
// {
// path: 'equipmentLink',
// component: () =>
// import('@/views/basicData/Equipment/equipmentLink'),
// name: 'equipmentLink',
// meta: { title: routerTitle.basicData.equipment.equipmentLink?.[language] || routerTitle.basicData.equipment.equipmentLink.en, icon: 'form', affix: true, required: true, requireToken: true }
// },
// {
// path: 'equipmentLinkAdd',
// component: () => import('@/views/basicData/Equipment/components/equipmentLink-add'),
// name: 'equipmentLinkAdd',
// hidden: true,
// meta: { title: routerTitle.basicData.equipment.equipmentLinkAdd?.[language] || routerTitle.basicData.equipment.equipmentInfoAdd.en, icon: 'form', affix: true, required: true, requireToken: true }
// }
]
},
{
path: '/Scrap',
component: () => import('@/views/basicData/index'),
name: 'Scrap',
meta: { title: routerTitle.basicData.scrap?.[language] || routerTitle.basicData.scrap.en, icon: 'form', affix: true, required: true, requireToken: true },
children: [
{
path: 'ScrapInfo',
component: () => import('@/views/basicData/Scrap/ScrapInfo'),
name: 'ScrapInfo',
meta: { title: routerTitle.basicData.scrap.scrapInfo?.[language] || routerTitle.basicData.scrap.scrapInfo.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'ScrapType',
component: () => import('@/views/basicData/Scrap/ScrapType'),
name: 'ScrapType',
meta: { title: routerTitle.basicData.scrap.scrapType?.[language] || routerTitle.basicData.scrap.scrapType.en, icon: 'form', affix: true, required: true, requireToken: true }
}
]
},
// {
// path: '/product',
// component: () => import('@/views/basicData/index'),
// name: 'product',
// meta: { title: routerTitle.basicData.product?.[language] || routerTitle.basicData.product.en, icon: 'form', affix: true, required: true, requireToken: true },
// children: [
// {
// path: 'productPool',
// component: () => import('@/views/basicData/ProductPool'),
// name: 'productPool',
// meta: { title: routerTitle.basicData.product.productPool?.[language] || routerTitle.basicData.product.productPool.en, icon: 'form', affix: true, required: true, requireToken: true }
// }
// ]
// },
{
path: '/state',
component: () => import('@/views/basicData/index'),
name: 'state',
meta: { title: routerTitle.basicData.state?.[language] || routerTitle.basicData.state.en, icon: 'form', affix: true, required: true, requireToken: true },
children: [{
path: 'StateConfig',
component: () => import('@/views/basicData/StateConfig'),
name: 'StateConfig',
meta: { title: routerTitle.basicData.state.stateConfig?.[language] || routerTitle.basicData.state.stateConfig.en, icon: 'form', affix: true, required: true, requireToken: true }
}]
},
{
path: 'EquipmentScrapGrade',
component: () => import('@/views/basicData/EquipmentScrapGrade'),
name: 'EquipmentScrapGrade',
meta: { title: routerTitle.basicData.EquipmentScrapGrade?.[language] || routerTitle.basicData.EquipmentScrapGrade.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: '/dataDictionary',
component: () => import('@/views/basicData/index'),
name: 'dataDictionary',
meta: { title: routerTitle.basicData.dataDictionaryType.dataDictionary?.[language] || routerTitle.basicData.dataDictionaryType.dataDictionary.en, icon: 'form', affix: true, required: true, requireToken: true },
children: [{
path: 'dataDictionary',
component: () => import('@/views/basicData/dataDictionary'),
name: 'dataDictionary',
meta: { title: routerTitle.basicData.dataDictionaryType?.[language] || routerTitle.basicData.dataDictionaryType.en, icon: 'form', affix: true, required: true, requireToken: true }
}, {
path: 'dataDictionaryData',
component: () => import('@/views/basicData/components/dataDictionaryData'),
hidden: true,
name: 'dataDictionaryData',
meta: { title: routerTitle.basicData.dataDictionaryType.dataDictionary?.[language] || routerTitle.basicData.dataDictionaryType.dataDictionary.en, icon: 'form', affix: true, required: true, requireToken: true }
}]
},
{
path: '/cRules',
component: () => import('@/views/basicData/index'),
hidden: true,
name: 'cRules',
meta: { title: routerTitle.basicData.rule?.[language] || routerTitle.basicData.rule.en, icon: 'form', affix: true, required: true, requireToken: true },
children: [{
path: 'CodeRules',
component: () => import('@/views/basicData/CodeRules'),
name: 'CodeRules',
meta: { title: routerTitle.basicData.rule.codeRules?.[language] || routerTitle.basicData.rule.codeRules.en, icon: 'form', affix: true, required: true, requireToken: true }
}, {
path: 'codeAttr',
component: () => import('@/views/basicData/components/CodeRulesAttr'),
name: 'codeAttr',
hidden: true,
meta: { title: routerTitle.basicData.rule.codeRulesAttr?.[language] || routerTitle.basicData.rule.codeRulesAttr.en, icon: 'form', affix: true, required: true, requireToken: true }
}]
},
{
path: '/Visualization',
component: () => import('@/views/basicData/index'),
name: 'Visualization',
// hidden: true,
meta: { title: routerTitle.basicData.visualization?.[language] || routerTitle.basicData.visualization.en, icon: 'form', affix: true, required: true, requireToken: true },
children: [
{
path: 'VisualLayout',
component: () => import('@/views/basicData/VisualLayout'),
name: 'VisualLayout',
meta: { title: routerTitle.basicData.visualization.visualLayout?.[language] || routerTitle.basicData.visualization.visualLayout.en, icon: 'form', affix: true, required: true, requireToken: true }
}
]
} }
] ]
}, },
{ {
path: '/equipment', path: '/Warehouse',
component: Layout, component: Layout,
// redirect: '/equipment/manager', redirect: '/Warehouse/workOrderManage',
name: 'EquipmentManager', name: 'Warehouse',
meta: { title: routerTitle.equipment?.[language] || routerTitle.equipment.en, icon: 'form', iconPart: 'EquipmentManager', affix: true, required: true, requireToken: true }, meta: { title: routerTitle.Warehouse?.[language] || routerTitle.Warehouse.en, icon: 'form', iconPart: 'orderManage', affix: true, required: true, requireToken: true },
children: [{
path: 'bom',
component: () => import('@/views/EquipmentManager/BOMManager'),
name: 'BOMManage',
meta: { title: routerTitle.equipment.bom?.[language] || routerTitle.equipment.bom.en, icon: 'form', affix: true, required: true, requireToken: true }
}, {
path: 'recipe',
component: () => import('@/views/EquipmentManager/RecipeManager'),
name: 'RecipeManage',
meta: { title: routerTitle.equipment.recipe?.[language] || routerTitle.equipment.recipe?.en, icon: 'form', affix: true }
}, {
path: 'sparepart',
component: () => import('@/views/EquipmentManager/sqarepart'),
name: 'SparePartManage',
hidden: true,
meta: { title: routerTitle.equipment.sparepart?.[language] || routerTitle.equipment.sparepart.en, icon: 'form', affix: true, required: true, requireToken: true }
}, {
path: 'bomform',
component: () => import('@/views/EquipmentManager/BOMManager/subpage/detail'),
name: 'DeviceBOMManage',
hidden: true,
meta: { title: routerTitle.equipment.bomform?.[language] || routerTitle.equipment.bomform.en, icon: 'form', affix: true, required: true, requireToken: true }
}, {
path: 'devicerecipe',
component: () => import('@/views/EquipmentManager/RecipeManager/subpage/detail'),
name: 'RecipeParamManage',
hidden: true,
meta: { title: routerTitle.equipment.recipeform?.[language] || routerTitle.equipment.recipeform?.en, icon: 'form', affix: true }
}, {
path: 'statussetting',
component: () => import('@/views/EquipmentManager/StatusSetting'),
name: 'EquipmentStatusSetting',
meta: { title: routerTitle.equipment.statussetting?.[language] || routerTitle.equipment.statussetting.en, icon: 'form', affix: true, required: true, requireToken: true }
}, {
path: 'repairmanager',
component: () => import('@/views/EquipmentManager/RepairManager'),
name: 'RepairManager',
meta: { title: routerTitle.equipment.repairmanage?.[language] || routerTitle.equipment.repairmanage.en, icon: 'form', affix: true, required: true, requireToken: true }
}, {
path: 'addrepair',
component: () => import('@/views/EquipmentManager/RepairManager/AddRepair'),
name: 'AddRepair',
hidden: true,
meta: { title: routerTitle.equipment.addrepair?.[language] || routerTitle.equipment.addrepair.en, icon: 'form', affix: true, required: true, requireToken: true }
}, {
path: 'editrepair',
component: () => import('@/views/EquipmentManager/RepairManager/EditRepair'),
name: 'EditRepair',
hidden: true,
meta: { title: routerTitle.equipment.editrepair?.[language] || routerTitle.equipment.editrepair.en, icon: 'form', affix: true, required: true, requireToken: true }
}, {
path: 'maintainplan',
component: () => import('@/views/EquipmentManager/MaintainPlan'),
name: 'MaintainPlan',
meta: { title: routerTitle.equipment.maintainplan?.[language] || routerTitle.equipment.maintainplan.en, icon: 'form', affix: true, required: true, requireToken: true }
}, {
path: 'maintainlog-single',
component: () => import('@/views/EquipmentManager/MaintainLog'),
name: 'MaintainLogSingle',
// hidden: true,
meta: { title: routerTitle.equipment.maintainlog?.[language] || routerTitle.equipment.maintainlog.en, icon: 'form', affix: true, required: true, requireToken: true }
}, {
path: 'maintainlog',
component: () => import('@/views/EquipmentManager/MaintainLog'),
name: 'MaintainLog',
hidden: true,
meta: { title: routerTitle.equipment.maintainlog?.[language] || routerTitle.equipment.maintainlog.en, icon: 'form', affix: true, required: true, requireToken: true }
}, {
path: 'maintainlog-add',
component: () => import('@/views/EquipmentManager/MaintainLog/AddLog'),
name: 'MaintainAddLog',
hidden: true,
meta: { title: routerTitle.equipment.maintainlog?.[language] || routerTitle.equipment.maintainlog.en, icon: 'form', affix: true, required: true, requireToken: true }
}, {
path: 'maintainlog-edit',
component: () => import('@/views/EquipmentManager/MaintainLog/EditLog'),
name: 'MaintainEditLog',
hidden: true,
meta: { title: routerTitle.equipment.maintainlog?.[language] || routerTitle.equipment.maintainlog.en, icon: 'form', affix: true, required: true, requireToken: true }
}, {
path: 'typeparam',
component: () => import('@/views/EquipmentManager/TypeParamSetting'),
name: 'TypeParam',
meta: { title: routerTitle.equipment.typeparam?.[language] || routerTitle.equipment.typeparam.en, icon: 'form', affix: true, required: true, requireToken: true }
}, {
path: 'typeparam-detail',
component: () => import('@/views/EquipmentManager/TypeParamSetting/detail'),
name: 'TypeParamDetail',
hidden: true,
meta: { title: routerTitle.equipment.typeparamdetail?.[language] || routerTitle.equipment.typeparamdetail.en, icon: 'form', affix: true, required: true, requireToken: true }
}, {
path: 'monitoring',
component: () => import('@/views/EquipmentManager/DeviceMonitoring'),
name: 'MonitoringManage',
hidden: true,
meta: { title: routerTitle.equipment.monitoring?.[language] || routerTitle.equipment.monitoring.en, icon: 'form', affix: true, required: true, requireToken: true }
}, {
path: 'Processequipment',
component: () => import('@/views/EquipmentManager/ProcessData/Processequipment'),
name: 'Processequipment',
meta: { title: routerTitle.equipment.Processequipment?.[language] || routerTitle.equipment.Processequipment.en, icon: 'form', affix: true, required: true, requireToken: true }
}, {
path: 'Three',
component: () => import('@/views/EquipmentManager/ProcessData/Three'),
name: 'Three',
hidden: true,
meta: { title: routerTitle.equipment.Parameters?.[language] || routerTitle.equipment.Parameters.en, icon: 'form', affix: true, required: true, requireToken: true }
}, {
path: 'ProcessData',
component: () => import('@/views/EquipmentManager/ProcessData/ProcessData'),
name: 'ProcessData',
hidden: true,
meta: {
title: routerTitle.equipment.ProcessData?.[language] || routerTitle.equipment.ProcessData.en, icon: 'form', affix: true, required: true, requireToken: true
}
}, {
path: 'Details',
component: () => import('@/views/EquipmentManager/ProcessData/Details'),
name: 'Details',
hidden: true,
meta: { title: routerTitle.equipment.Details?.[language] || routerTitle.equipment.Details.en, icon: 'form', affix: true, required: true, requireToken: true }
}, {
path: 'analysis',
component: () => import('@/views/EquipmentManager/Analysis'),
name: 'AnalysisManage',
hidden: true,
meta: { title: routerTitle.equipment.analysis?.[language] || routerTitle.equipment.analysis.en, icon: 'form', affix: true, required: true, requireToken: true }
}, {
path: 'equipmentManagerManage',
component: () => import('@/views/EquipmentManager/equipmentManagerManage'),
name: 'EquipmentManagerManage',
meta: { title: routerTitle.equipment.equipmentManagerManage?.[language] || routerTitle.equipment.equipmentManagerManage.en, icon: 'form', affix: true, required: true, requireToken: true }
}, {
path: 'equipmentParams',
component: () => import('@/views/EquipmentManager/equipmentParams'),
name: 'equipmentParams',
meta: { title: routerTitle.equipment.equipmentParams?.[language] || routerTitle.equipment.equipmentParams.en, icon: 'form', affix: true, required: true, requireToken: true }
}, {
path: '/equipmentVisualization',
component: () => import('@/views/basicData/index'),
name: 'equipmentVisualization',
// hidden: true,
meta: { title: routerTitle.equipment.EquipmentVisualization?.[language] || routerTitle.equipment.EquipmentVisualization.en, icon: 'form', affix: true, required: true, requireToken: true },
children: [ children: [
{ {
path: 'EquipmentProcessingQuantity', path: '/StorageBoxInfo',
component: () => import('@/views/EquipmentManager/equipmentVisualization/EquipmentProcessingQuantity'), component: () =>
name: 'EquipmentProcessingQuantity', import('@/views/basicData/Warehouse/StorageBoxInfo'),
meta: { title: routerTitle.equipment.EquipmentVisualization.EquipmentProcessingQuantity?.[language] || routerTitle.equipment.EquipmentVisualization.EquipmentProcessingQuantity.en, icon: 'form', affix: true, required: true, requireToken: true } name: 'StorageBoxInfo',
meta: { title: routerTitle.Warehouse.StorageBoxInfo?.[language] || routerTitle.Warehouse.StorageBoxInfo.en, icon: 'form', affix: true, required: true, requireToken: true }
}, },
{ {
path: 'EquipmentEnergyMonitor', path: '/CurrentTask',
component: () => import('@/views/EquipmentManager/equipmentVisualization/EquipmentEnergyMonitor'), component: () =>
name: 'EquipmentEnergyMonitor', import('@/views/basicData/Warehouse/CurrentTask'),
meta: { title: routerTitle.equipment.EquipmentVisualization.EquipmentEnergyMonitor?.[language] || routerTitle.equipment.EquipmentVisualization.EquipmentEnergyMonitor.en, icon: 'form', affix: true, required: true, requireToken: true } name: 'CurrentTask',
meta: { title: routerTitle.Warehouse.CurrentTask?.[language] || routerTitle.Warehouse.CurrentTask.en, icon: 'form', affix: true, required: true, requireToken: true }
}, },
{ {
path: 'Visualized', path: '/HistoricalTask',
component: () => import('@/views/EquipmentManager/equipmentVisualization/Visualized'), component: () =>
name: 'Visualized', import('@/views/basicData/Warehouse/HistoricalTask'),
meta: { title: routerTitle.equipment.EquipmentVisualization.Visualized?.[language] || routerTitle.equipment.EquipmentVisualization.Visualized.en, icon: 'form', affix: true, required: true, requireToken: true } name: 'HistoricalTask',
} meta: { title: routerTitle.Warehouse.HistoricalTask?.[language] || routerTitle.Warehouse.HistoricalTask.en, icon: 'form', affix: true, required: true, requireToken: true }
]
}]
},
{
path: '/art',
component: Layout,
redirect: '/art/list',
name: 'ArtManager',
meta: { title: routerTitle.technology?.[language] || routerTitle.technology.en, icon: 'form', iconPart: 'ArtManager', affix: true, required: true, requireToken: true },
children: [
{
path: 'list',
component: () => import('@/views/art/list'),
name: 'ArtList',
meta: { title: routerTitle.technology.technologylist?.[language] || routerTitle.technology.technologylist.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'process',
component: () => import('@/views/art/process/list'),
name: 'Process',
meta: { title: routerTitle.technology.technologyprocess?.[language] || routerTitle.technology.technologyprocess.en, icon: 'form', affix: true, required: true, requireToken: true },
hidden: true
},
{
path: 'processList',
component: () => import('@/views/art/processList'),
name: 'Process',
meta: { title: routerTitle.technology.processList?.[language] || routerTitle.technology.processList.en, icon: 'form', affix: true, required: true, requireToken: true }
}
]
},
{
path: '/material-manage',
component: Layout,
redirect: '/material-manage/refueling',
name: 'MaterialsManage',
meta: { title: routerTitle.material?.[language] || routerTitle.material.en, icon: 'form', iconPart: 'MaterialsManage', affix: true, required: true, requireToken: true },
children: [
{
path: 'bom',
component: () => import('@/views/material-manage/bom/index'),
name: 'bom',
meta: { title: routerTitle.material.bom?.[language] || routerTitle.material.bom.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'bom/add',
component: () => import('@/views/material-manage/bom/components/add-panel'),
name: 'bomAdd',
meta: { title: routerTitle.material.bomadd?.[language] || routerTitle.material.bomadd.en, icon: 'form', affix: true, required: true, requireToken: true },
hidden: true
},
{
path: 'batch',
component: () => import('@/views/material-manage/batch/index'),
name: 'batch',
meta: { title: routerTitle.material.batch?.[language] || routerTitle.material.batch.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'batch/add',
component: () => import('@/views/material-manage/batch/components/add-panel'),
name: 'batchAdd',
meta: { title: routerTitle.material.batchadd?.[language] || routerTitle.material.batchadd.en, icon: 'form', affix: true, required: true, requireToken: true },
hidden: true
},
{
path: 'refueling',
component: () => import('@/views/material-manage/refueling/index'),
name: 'refueling',
meta: { title: routerTitle.material.refueling?.[language] || routerTitle.material.refueling.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'refueling/add',
component: () => import('@/views/material-manage/refueling/components/add-panel'),
name: 'refuelingAdd',
meta: { title: routerTitle.material.refuelingadd?.[language] || routerTitle.material.refuelingadd.en, icon: 'form', affix: true, required: true, requireToken: true },
hidden: true
},
{
path: 'report',
component: () => import('@/views/material-manage/report/index'),
name: 'report',
meta: { title: routerTitle.material.report?.[language] || routerTitle.material.report.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'historyConsume',
component: () => import('@/views/material-manage/historyConsume/index'),
name: 'historyConsume',
meta: { title: routerTitle.material.historyConsume?.[language] || routerTitle.material.historyConsume.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'currentConsume',
component: () => import('@/views/material-manage/currentConsume/index'),
name: 'currentConsume',
meta: { title: routerTitle.material.currentConsume?.[language] || routerTitle.material.currentConsume.en, icon: 'form', affix: true, required: true, requireToken: true }
} }
] ]
}, },
@@ -956,196 +388,6 @@ export const dynamicRoutes = [
} }
] ]
}, },
{
path: '/factory',
component: Layout,
redirect: '/factory',
name: 'factoryManage',
meta: { title: routerTitle.factory?.[language] || routerTitle.factory.en, icon: 'form', iconPart: 'factoryManage', affix: true, required: true, requireToken: true },
children: [
{
path: '/team-manage',
redirect: '/team-manage/list',
component: () => import('@/views/basicData/index'),
name: 'TeamManage',
meta: { title: routerTitle.team?.[language] || routerTitle.team.en, icon: 'form', iconPart: 'formwhite', affix: true, required: true, requireToken: true },
children: [
{
path: 'plan',
component: () => import('@/views/team-manage/plan'),
name: 'TeamManagePlan',
meta: { title: routerTitle.team.teamplan?.[language] || routerTitle.team.teamplan.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'plan/add',
component: () => import('@/views/team-manage/components/plan/add-plan'),
name: 'TeamManagePlanAdd',
meta: { title: routerTitle.team.teamplanoperation?.[language] || routerTitle.team.teamplanoperation.en, icon: 'form', affix: true, required: true, requireToken: true },
hidden: true
},
{
path: 'list',
component: () => import('@/views/team-manage/list'),
name: 'TeamManageList',
meta: { title: routerTitle.team.teamlist?.[language] || routerTitle.team.teamlist.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'team/add',
component: () => import('@/views/team-manage/components/change/add-plan'),
name: 'TeamManageAdd',
meta: { title: routerTitle.team.teamhandover?.[language] || routerTitle.team.teamhandover.en, icon: 'form', affix: true, required: true, requireToken: true },
hidden: true
},
{
path: 'showlog',
component: () => import('@/views/team-manage/showlog'),
name: 'logadd',
meta: { title: routerTitle.team.showlog?.[language] || routerTitle.team.showlog.en, icon: 'form', affix: true, required: true, requireToken: true },
hidden: true
}
]
},
{
path: '/abnormal-alarm',
redirect: '/abnormal-alarm/list',
component: () => import('@/views/basicData/index'),
name: 'AlarmManager',
meta: { title: routerTitle.factory.AlarmManager?.[language] || routerTitle.factory.AlarmManager.en, icon: 'form', iconPart: 'formwhite', affix: true, required: true, requireToken: true },
children: [
{
path: 'list',
component: () => import('@/views/FactoryManage/AbnormalAlarm'),
name: 'AbnormalAlarm',
meta: { title: routerTitle.factory.AlarmManager.AbnormalAlarm?.[language] || routerTitle.factory.AlarmManager.AbnormalAlarm.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'EquipmentAlarm',
component: () => import('@/views/FactoryManage/EquipmentAlarm'),
name: 'EquipmentAlarm',
meta: { title: routerTitle.factory.AlarmManager.EquipmentAlarm?.[language] || routerTitle.factory.AlarmManager.EquipmentAlarm.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: '/AlarmManagement',
component: () => import('@/views/basicData/index'),
name: 'AlarmManagement',
meta: { title: routerTitle.basicData.alarmSetting?.[language] || routerTitle.basicData.alarmSetting.en, icon: 'form', affix: true, required: true, requireToken: true },
children: [
{
path: 'AlarmInfo',
component: () =>
import('@/views/basicData/AlarmManagement/alarmInfo'),
name: 'AlarmInfo',
meta: { title: routerTitle.basicData.alarmSetting.alarmInfo?.[language] || routerTitle.basicData.alarmSetting.alarmInfo.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'AlarmType',
component: () =>
import('@/views/basicData/AlarmManagement/alarmType'),
name: 'AlarmType',
meta: { title: routerTitle.basicData.alarmSetting.alarmType?.[language] || routerTitle.basicData.alarmSetting.alarmType.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'AlarmLevel',
component: () =>
import('@/views/basicData/AlarmManagement/alarmLevel'),
name: 'AlarmLevel',
meta: { title: routerTitle.basicData.alarmSetting.alarmLevel?.[language] || routerTitle.basicData.alarmSetting.alarmLevel.en, icon: 'form', affix: true, required: true, requireToken: true }
}
]
}
]
},
{
path: '/Visual',
component: () => import('@/views/basicData/index'),
name: 'Visual',
// hidden: true,
meta: { title: routerTitle.factory.visual?.[language] || routerTitle.factory.visual.en, icon: 'form', affix: true, required: true, requireToken: true },
children: [
{
path: 'Visual',
component: () => import('@/views/FactoryManage/visual'),
name: 'Visual',
meta: { title: routerTitle.factory.visual.visual?.[language] || routerTitle.factory.visual.visual.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'VisualLocation',
component: () => import('@/views/FactoryManage/visualLocation'),
name: 'VisualLocation',
meta: { title: routerTitle.factory.visual.visualLocation?.[language] || routerTitle.factory.visual.visualLocation.en, icon: 'form', affix: true, required: true, requireToken: true },
hidden: true
}
]
}
]
},
{
path: '/form',
component: Layout,
redirect: '/form',
name: 'formManage',
meta: { title: routerTitle.form?.[language] || routerTitle.form.en, icon: 'form', iconPart: 'formManage', affix: true, required: true, requireToken: true, unuse: false },
children: [{
path: 'report',
component: () => import('@/views/report-manage/ReportSortChoise'),
name: 'Report',
meta: { title: routerTitle.form.report?.[language] || routerTitle.form.report.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'report-sort-list',
component: () => import('@/views/report-manage/Report'),
name: 'ReportSortList',
hidden: true,
meta: { title: routerTitle.form.reportSortList?.[language] || routerTitle.form.reportSortList.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'report-view',
component: () => import('@/views/report-manage/ReportView'),
name: 'ReportDesign',
meta: { title: routerTitle.form.reportView?.[language] || routerTitle.form.reportView.en, icon: 'form', affix: true, required: true, requireToken: true },
hidden: true
},
{
path: 'report-design',
component: () => import('@/views/report-manage/ReportDesign'),
name: 'ReportDesign',
meta: { title: routerTitle.form.reportDesign?.[language] || routerTitle.form.reportDesign.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'report-sort',
component: () => import('@/views/report-manage/ReportSort/index'),
name: 'ReportSort',
meta: { title: routerTitle.form.reportSort?.[language] || routerTitle.form.reportSort.en, icon: 'form', affix: true, required: true, requireToken: true }
}]
},
{
path: '/packing',
component: Layout,
redirect: '/packing',
name: 'packingManage',
meta: { title: routerTitle.packing?.[language] || routerTitle.packing.en, icon: 'form', iconPart: 'packingManage', affix: true, required: true, requireToken: true, unuse: false },
children: [{
path: 'label-template',
component: () =>
import('@/views/packing-manage/LabelTemplate'),
name: 'LableDesign',
meta: { title: routerTitle.packing.labelTemplate?.[language] || routerTitle.packing.labelTemplate.en, icon: 'form', affix: true, required: true, requireToken: true }
}, {
path: 'PackingList',
component: () =>
import('@/views/packing-manage/PackingList'),
name: 'PackingList',
meta: { title: routerTitle.packing.PackingList?.[language] || routerTitle.packing.PackingList.en, icon: 'form', affix: true, required: true, requireToken: true }
},
{
path: 'label-design-add',
component: () =>
import('@/views/packing-manage/components/AddLablePanel'),
name: 'AddLablePanel',
hidden: true,
meta: { title: routerTitle.packing.labelDesign?.[language] || routerTitle.packing.labelDesign.en, icon: 'form', affix: true, required: true, requireToken: true }
}]
},
{ {
path: '/interface', path: '/interface',
component: Layout, component: Layout,
@@ -1187,18 +429,18 @@ export const dynamicRoutes = [
path: 'plan', path: 'plan',
component: () => import('@/views/QualityManager/plan'), component: () => import('@/views/QualityManager/plan'),
name: 'PlanManage', name: 'PlanManage',
meta: { title: routerTitle.quality.plan?.[language] || routerTitle.quality.plan?.en, icon: 'form', affix: true } meta: { title: routerTitle.quality.plan?.[language] || routerTitle.quality.plan.en, icon: 'form', affix: true }
}, { }, {
path: 'planparam', path: 'planparam',
component: () => import('@/views/QualityManager/plan/subpage/detail'), component: () => import('@/views/QualityManager/plan/subpage/detail'),
name: 'PlanParamManage', name: 'PlanParamManage',
hidden: true, hidden: true,
meta: { title: routerTitle.quality.planform?.[language] || routerTitle.quality.planform?.en, icon: 'form', affix: true } meta: { title: routerTitle.quality.planform?.[language] || routerTitle.quality.planform.en, icon: 'form', affix: true }
}, { }, {
path: 'issue', path: 'issue',
component: () => import('@/views/QualityManager/plan/issuedplan'), component: () => import('@/views/QualityManager/plan/issuedplan'),
name: 'PlanIssuedManage', name: 'PlanIssuedManage',
meta: { title: routerTitle.quality.issuedplan?.[language] || routerTitle.quality.issuedplan?.en, icon: 'form', affix: true } meta: { title: routerTitle.quality.issuedplan?.[language] || routerTitle.quality.issuedplan.en, icon: 'form', affix: true }
}, },
{ {
path: '/offlineDetec', path: '/offlineDetec',
@@ -1296,49 +538,23 @@ export const dynamicRoutes = [
}, },
{ path: '*', redirect: '/404', hidden: true } { path: '*', redirect: '/404', hidden: true }
] ]
export const asyncRoutes = [
// 404 page must be placed at the end !!!
{ path: '*', redirect: '/404', hidden: true }
]
const createRouter = (r) => const createRouter = () =>
new Router({ new Router({
// mode: 'history', // require service support // mode: 'history', // require service support
scrollBehavior: () => ({ y: 0 }), scrollBehavior: () => ({ y: 0 }),
routes: r routes: constantRoutes
}) })
const router = createRouter(constantRoutes) const router = createRouter()
router.beforeEach((to, from, next) => {
console.log('route.index', to, to.meta.routeIndex)
if (to.meta.routeIndex >= 0) {
store.dispatch('app/setChoicepart', to.meta.routeIndex)
}
// 拦截器
console.log('route,to.path:', to.path)
if (to.meta.requireToken) {
if (Cookies.get('Admin-Token')) {
if (to.meta.required) {
if (Cookies.get('choicepart') === 'undefined' || !Cookies.get('choicepart')) {
next({
path: '/'
})
} else {
next()
}
} else {
next()
}
} else {
next({
path: '/login'
})
}
} else {
next()
}
})
// Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465 // Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465
export function resetRouter() { export function resetRouter() {
const newRouter = createRouter(constantRoutes) const newRouter = createRouter()
router.matcher = newRouter.matcher // reset router router.matcher = newRouter.matcher // reset router
} }

View File

@@ -1,13 +1,13 @@
/* /*
* @Date: 2020-12-14 09:07:03 * @Date: 2020-12-14 09:07:03
* @LastEditors: gtz * @LastEditors: Please set LastEditors
* @LastEditTime: 2021-03-08 11:52:17 * @LastEditTime: 2021-12-06 14:24:30
* @FilePath: \basic-admin\src\settings.js * @FilePath: \basic-admin\src\settings.js
* @Description: * @Description:
*/ */
module.exports = { module.exports = {
title: 'ARI MES', title: 'ARI WMS',
/** /**
* @type {boolean} true | false * @type {boolean} true | false

View File

@@ -1,7 +1,7 @@
/* /*
* @Date: 2020-12-14 09:07:03 * @Date: 2020-12-14 09:07:03
* @LastEditors: gtz * @LastEditors: zwq
* @LastEditTime: 2021-01-29 14:24:20 * @LastEditTime: 2021-12-22 11:38:46
* @FilePath: \basic-admin\src\store\getters.js * @FilePath: \basic-admin\src\store\getters.js
* @Description: * @Description:
*/ */
@@ -19,7 +19,6 @@ const getters = {
introduction: state => state.user.introduction, introduction: state => state.user.introduction,
username: state => state.user.username, username: state => state.user.username,
roles: state => state.user.roles, roles: state => state.user.roles,
menus: state => state.user.menus,
permission_routes: state => state.permission.routes permission_routes: state => state.permission.routes
} }
export default getters export default getters

View File

@@ -1,36 +1,38 @@
import { dynamicRoutes, constantRoutes } from '@/router' /*
import { getListItems } from '@/utils/tree' * @Author: zwq
* @Date: 2021-09-18 16:09:08
* @LastEditors: zwq
* @LastEditTime: 2021-12-22 15:43:46
* @Description:
*/
import { asyncRoutes, constantRoutes } from '@/router'
/** /**
* Use meta.role to determine if the current user has permission * Use meta.role to determine if the current user has permission
* @param roles * @param roles
* @param route * @param route
*/ */
function hasPermission(menuList, route) { function hasPermission(roles, route) {
// if (route.meta && route.meta.roles) { if (route.meta && route.meta.roles) {
// return roles.some(role => route.meta.roles.includes(role)) return roles.some(role => route.meta.roles.includes(role))
// } else { } else {
// return true
// }
if (route.hidden) {
return true return true
} }
return menuList.some(m => route.path === m.h)
} }
/** /**
* Filter asynchronous routing tables by recursion * Filter asynchronous routing tables by recursion
* @param routes asyncRoutes * @param routes asyncRoutes
* @param menuList * @param roles
*/ */
export function filterAsyncRoutes(routes, menuList) { export function filterAsyncRoutes(routes, roles) {
const res = [] const res = []
routes.forEach(route => { routes.forEach(route => {
const tmp = { ...route } const tmp = { ...route }
if (hasPermission(menuList, tmp)) { if (hasPermission(roles, tmp)) {
if (tmp.children) { if (tmp.children) {
tmp.children = filterAsyncRoutes(tmp.children, menuList) tmp.children = filterAsyncRoutes(tmp.children, roles)
} }
res.push(tmp) res.push(tmp)
} }
@@ -52,19 +54,13 @@ const mutations = {
} }
const actions = { const actions = {
generateRoutes({ commit }, menus) { generateRoutes({ commit }, roles) {
return new Promise(resolve => { return new Promise(resolve => {
let accessedRoutes let accessedRoutes
console.log(menus) if (roles.includes('admin')) {
if (!menus) { accessedRoutes = asyncRoutes || []
accessedRoutes = []
} else { } else {
const menuList = [] accessedRoutes = filterAsyncRoutes(asyncRoutes, roles)
getListItems(menus, node => menuList.push(node))
console.log(menuList)
console.log(dynamicRoutes)
accessedRoutes = filterAsyncRoutes(dynamicRoutes, menuList)
console.log(accessedRoutes)
} }
commit('SET_ROUTES', accessedRoutes) commit('SET_ROUTES', accessedRoutes)
resolve(accessedRoutes) resolve(accessedRoutes)

View File

@@ -9,7 +9,6 @@ const state = {
avatar: '', avatar: '',
introduction: '', introduction: '',
roles: [], roles: [],
menus: [],
username: Cookies.get('username') || '' username: Cookies.get('username') || ''
} }
@@ -26,9 +25,6 @@ const mutations = {
SET_AVATAR: (state, avatar) => { SET_AVATAR: (state, avatar) => {
state.avatar = avatar state.avatar = avatar
}, },
SET_MENUS: (state, menus) => {
state.menus = menus
},
SET_ROLES: (state, roles) => { SET_ROLES: (state, roles) => {
state.roles = roles state.roles = roles
}, },
@@ -42,7 +38,7 @@ const actions = {
login({ commit }, userInfo) { login({ commit }, userInfo) {
const { username, password } = userInfo const { username, password } = userInfo
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
login({ mobile: username.trim(), password: password }).then(res => { login({ mobile: String(username).trim(), password }).then(res => {
console.log(res) console.log(res)
if (res.code === 0) { if (res.code === 0) {
const { token, name } = res.data const { token, name } = res.data
@@ -70,17 +66,16 @@ const actions = {
reject('Verification failed, please Login again.') reject('Verification failed, please Login again.')
} }
const { roles, name, avatar, introduction, menus } = data const { roles, name, avatar, introduction } = data
// roles must be a non-empty array // roles must be a non-empty array
if (!menus || menus.length <= 0) { if (!roles || roles.length <= 0) {
reject('getInfo: menus must be a non-null array!') reject('getInfo: roles must be a non-null array!')
} }
commit('SET_ROLES', roles || []) commit('SET_ROLES', roles)
commit('SET_NAME', name) commit('SET_NAME', name)
commit('SET_AVATAR', avatar) commit('SET_AVATAR', avatar)
commit('SET_MENUS', menus)
commit('SET_INTRODUCTION', introduction) commit('SET_INTRODUCTION', introduction)
resolve(data) resolve(data)
}).catch(error => { }).catch(error => {
@@ -97,7 +92,6 @@ const actions = {
dispatch('tagsView/delAllViews', null, { root: true }) dispatch('tagsView/delAllViews', null, { root: true })
commit('SET_TOKEN', '') commit('SET_TOKEN', '')
commit('SET_ROLES', []) commit('SET_ROLES', [])
commit('SET_MENUS', [])
commit('SET_USERNAME') commit('SET_USERNAME')
Cookies.set('username', '') Cookies.set('username', '')
localStorage.clear() localStorage.clear()

View File

@@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2020-12-29 15:41:11 * @Date: 2020-12-29 15:41:11
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2021-03-25 16:09:59 * @LastEditTime: 2022-01-11 15:48:58
* @Description: * @Description:
--> -->
<template> <template>
@@ -82,7 +82,7 @@ const tableProps = [
align: 'center' align: 'center'
}, },
{ {
prop: 'name', prop: 'tareaName',
label: i18n.t('module.basicData.cache.CacheName'), label: i18n.t('module.basicData.cache.CacheName'),
align: 'center' align: 'center'
}, },

View File

@@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2020-12-29 16:37:56 * @Date: 2020-12-29 16:37:56
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2021-04-28 10:07:44 * @LastEditTime: 2022-01-11 16:26:29
* @enName: * @enName:
--> -->
<template> <template>
@@ -16,8 +16,8 @@
label-width="140px" label-width="140px"
> >
<el-col :span="8"> <el-col :span="8">
<el-form-item :label="$t('module.basicData.cache.CacheName')" prop="name"> <el-form-item :label="$t('module.basicData.cache.CacheName')" prop="tareaName">
<el-input v-model="dataForm.name" :disabled="isdetail" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.cache.CacheName')])" clearable :style="{width: '100%'}" /> <el-input v-model="dataForm.tareaName" :disabled="isdetail" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.cache.CacheName')])" clearable :style="{width: '100%'}" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@@ -36,64 +36,14 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item :label="$t('module.basicData.visual.Manufacturer')" prop="manufacturer"> <el-form-item :label="$t('module.basicData.visual.Specs')" prop="spec">
<el-input <el-input v-model="dataForm.spec" :disabled="isdetail" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.Specs')])" clearable :style="{width: '100%'}" />
v-model="dataForm.manufacturer"
:disabled="isdetail"
:placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.Manufacturer')])"
clearable
:style="{width: '100%'}"
/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item :label="$t('module.basicData.visual.Specs')" prop="description"> <el-form-item :label="$t('module.basicData.visual.CurrentState')" prop="status">
<el-input v-model="dataForm.description" :disabled="isdetail" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.Specs')])" clearable :style="{width: '100%'}" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('module.basicData.visual.productionTime')" prop="productionTime">
<el-date-picker
v-model="dataForm.productionTime"
:disabled="isdetail"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
:style="{width: '100%'}"
:placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.productionTime')])"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('module.basicData.visual.enterTime')" prop="enterTime">
<el-date-picker
v-model="dataForm.enterTime"
:disabled="isdetail"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
:style="{width: '100%'}"
:placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.enterTime')])"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('module.basicData.visual.debugTime')" prop="debugTime">
<el-date-picker
v-model="dataForm.debugTime"
:disabled="isdetail"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
:style="{width: '100%'}"
:placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.debugTime')])"
clearable
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('module.basicData.visual.CurrentState')" prop="currentStatus">
<el-select <el-select
v-model="dataForm.currentStatus" v-model="dataForm.status"
:disabled="isdetail" :disabled="isdetail"
:placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.CurrentState')])" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.CurrentState')])"
clearable clearable
@@ -110,18 +60,18 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item :label="$t('module.basicData.cache.StockNumber')" prop="stockNumber"> <el-form-item :label="$t('module.basicData.cache.StockNumber')" prop="locationNum">
<el-input-number v-model="dataForm.stockNumber" :disabled="isdetail" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.cache.StockNumber')])" :step="1" /> <el-input-number v-model="dataForm.locationNum" :disabled="isdetail" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.cache.StockNumber')])" :step="1" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item :label="$t('module.basicData.cache.AreaNumber')" prop="areaNumber"> <el-form-item :label="$t('module.basicData.cache.AreaNumber')" prop="shelfNum">
<el-input-number v-model="dataForm.areaNumber" :disabled="isdetail" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.cache.AreaNumber')])" :step="1" /> <el-input-number v-model="dataForm.shelfNum" :disabled="isdetail" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.cache.AreaNumber')])" :step="1" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item :label="$t('module.basicData.visual.Remarks')" prop="remark"> <el-form-item :label="$t('module.basicData.visual.Remarks')" prop="note">
<el-input v-model="dataForm.remark" :disabled="isdetail" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.Remarks')])" clearable :style="{width: '100%'}" /> <el-input v-model="dataForm.note" :disabled="isdetail" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.Remarks')])" clearable :style="{width: '100%'}" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-form> </el-form>
@@ -130,7 +80,7 @@
<el-button type="success" @click="goback()">{{ 'btn.back' | i18nFilter }}</el-button> <el-button type="success" @click="goback()">{{ 'btn.back' | i18nFilter }}</el-button>
<span v-if="!isdetail"> <span v-if="!isdetail">
<el-button type="primary" @click="dataFormSubmit()">{{ 'btn.save' | i18nFilter }}</el-button> <el-button type="primary" @click="dataFormSubmit()">{{ 'btn.save' | i18nFilter }}</el-button>
<el-button v-if="listQuery.cacheId" type="primary" @click="addNew()">{{ $t('module.basicData.cache.addCacheArea') }}</el-button> <el-button v-if="listQuery.id" type="primary" @click="addNew()">{{ $t('module.basicData.cache.addCacheArea') }}</el-button>
</span> </span>
</div> </div>
<div style="height:380px;overflow:auto"> <div style="height:380px;overflow:auto">
@@ -148,7 +98,7 @@
/> />
</base-table> </base-table>
</div> </div>
<cacheArea-add v-if="addOrUpdateVisible" ref="addOrUpdate" :cache-id="listQuery.cacheId" @refreshDataList="getList" /> <cacheArea-add v-if="addOrUpdateVisible" ref="addOrUpdate" :cache-id="listQuery.id" @refreshDataList="getList" />
</div> </div>
</template> </template>
@@ -159,7 +109,6 @@ import BaseTable from '@/components/BaseTable'
import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn' import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn'
import cacheAreaAdd from './cacheArea-add.vue' import cacheAreaAdd from './cacheArea-add.vue'
import shelfBtn from './shelfBtn.vue' import shelfBtn from './shelfBtn.vue'
import { timeFormatter } from '@/filters'
const tableBtn = [ const tableBtn = [
{ {
type: 'edit', type: 'edit',
@@ -171,12 +120,6 @@ const tableBtn = [
} }
] ]
const tableProps = [ const tableProps = [
{
prop: 'createTime',
label: i18n.t('module.basicData.factory.createTime'),
filter: timeFormatter,
align: 'center'
},
{ {
prop: 'name', prop: 'name',
label: i18n.t('module.basicData.cache.AreaName'), label: i18n.t('module.basicData.cache.AreaName'),
@@ -188,13 +131,23 @@ const tableProps = [
align: 'center' align: 'center'
}, },
{ {
prop: 'areaNumber', prop: 'shelfNum',
label: i18n.t('module.basicData.cache.StorageQuantity'), label: i18n.t('module.basicData.cache.StorageQuantity'),
align: 'center' align: 'center'
}, },
{
prop: 'rowNum',
label: i18n.t('module.basicData.cache.rowNum'),
align: 'center'
},
{
prop: 'columnNum',
label: i18n.t('module.basicData.cache.columnNum'),
align: 'center'
},
{ {
prop: 'shelf', prop: 'shelf',
label: i18n.t('module.basicData.cache.Shelf'), label: i18n.t('module.basicData.cache.Location'),
subcomponent: shelfBtn, subcomponent: shelfBtn,
align: 'center' align: 'center'
} }
@@ -210,27 +163,23 @@ export default {
tableProps, tableProps,
list: [], list: [],
dataForm: { dataForm: {
name: '', tareaName: '',
code: '', code: '',
enName: '', enName: '',
abbr: '', abbr: '',
manufacturer: '', spec: '',
description: '', status: '',
productionTime: '', locationNum: '',
enterTime: '', shelfNum: '',
debugTime: '', note: ''
currentStatus: '',
stockNumber: '',
areaNumber: '',
remark: ''
}, },
listQuery: { listQuery: {
current: 1, current: 1,
size: 990, size: 990,
cacheId: '' id: ''
}, },
rules: { rules: {
name: [{ tareaName: [{
required: true, required: true,
message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.cache.CacheName')]), message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.cache.CacheName')]),
trigger: 'blur' trigger: 'blur'
@@ -243,35 +192,35 @@ export default {
}, },
currentStatusOptions: [{ currentStatusOptions: [{
'label': '正常', 'label': '正常',
'value': '0' 'value': 0
}, { }, {
'label': '暂停', 'label': '暂停',
'value': '1' 'value': 1
}, { }, {
'label': '维修', 'label': '维修',
'value': '2' 'value': 2
}], }],
cacheId: '', id: '', // 缓存区id
isdetail: false isdetail: false
} }
}, },
created() { created() {
this.cacheId = this.$route.query.id this.id = this.$route.query.id
this.init() this.init()
}, },
methods: { methods: {
init() { init() {
this.isdetail = false this.isdetail = false
this.isdetail = Boolean(this.$route.query.isdetail) this.isdetail = Boolean(this.$route.query.isdetail)
this.listQuery.cacheId = '' this.listQuery.id = ''
this.list.splice(0, this.list.length) this.list.splice(0, this.list.length)
this.$nextTick(() => { this.$nextTick(() => {
this.$refs['dataForm'].resetFields() this.$refs['dataForm'].resetFields()
if (this.cacheId) { if (this.id) {
cacheDetail(this.cacheId).then(res => { cacheDetail(this.id).then(res => {
this.dataForm = res.data this.dataForm = res.data
}) })
this.listQuery.cacheId = this.cacheId this.listQuery.id = this.id
areaList(this.listQuery).then(response => { areaList(this.listQuery).then(response => {
if (response.data.records) { if (response.data.records) {
this.list = response.data.records this.list = response.data.records
@@ -322,20 +271,16 @@ export default {
const data = { const data = {
'abbr': this.dataForm.abbr, 'abbr': this.dataForm.abbr,
'code': this.dataForm.code, 'code': this.dataForm.code,
'currentStatus': this.dataForm.currentStatus, 'status': this.dataForm.status,
'debugTime': this.dataForm.debugTime,
'enName': this.dataForm.enName, 'enName': this.dataForm.enName,
'enterTime': this.dataForm.enterTime, 'tareaName': this.dataForm.tareaName,
'manufacturer': this.dataForm.manufacturer, 'note': this.dataForm.note,
'name': this.dataForm.name, 'spec': this.dataForm.spec,
'productionTime': this.dataForm.productionTime, 'locationNum': this.dataForm.locationNum,
'remark': this.dataForm.remark, 'shelfNum': this.dataForm.shelfNum,
'description': this.dataForm.description, 'id': this.id
'stockNumber': this.dataForm.stockNumber,
'areaNumber': this.dataForm.areaNumber,
'id': this.cacheId
} }
if (this.cacheId) { if (this.id) {
cacheUpdate(data).then(res => { cacheUpdate(data).then(res => {
this.$message({ this.$message({
message: this.$t('module.basicData.visual.success'), message: this.$t('module.basicData.visual.success'),
@@ -350,7 +295,7 @@ export default {
type: 'success', type: 'success',
duration: 1500 duration: 1500
}) })
this.listQuery.cacheId = res.data.id this.listQuery.id = res.data.id
}) })
} }
} }

View File

@@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2020-12-29 16:37:56 * @Date: 2020-12-29 16:37:56
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2021-07-21 13:59:43 * @LastEditTime: 2022-01-11 16:45:30
* @Description: * @Description:
--> -->
<template> <template>
@@ -11,17 +11,14 @@
:visible.sync="visible" :visible.sync="visible"
> >
<el-form ref="dataForm" :model="dataForm" :rules="dataRule" label-width="130px" @keyup.enter.native="dataFormSubmit()"> <el-form ref="dataForm" :model="dataForm" :rules="dataRule" label-width="130px" @keyup.enter.native="dataFormSubmit()">
<el-form-item :label="$t('module.basicData.storageBox.name')" prop="name"> <el-form-item :label="$t('module.basicData.storageBox.name')" prop="storageBoxName">
<el-input v-model="dataForm.name" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.storageBox.name')])" clearable /> <el-input v-model="dataForm.storageBoxName" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.storageBox.name')])" clearable />
</el-form-item> </el-form-item>
<el-form-item :label="$t('module.basicData.storageBox.code')" prop="code"> <el-form-item :label="$t('module.basicData.storageBox.code')" prop="code">
<el-input v-model="dataForm.code" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.storageBox.code')])" clearable /> <el-input v-model="dataForm.code" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.storageBox.code')])" clearable />
</el-form-item> </el-form-item>
<el-form-item :label="$t('module.basicData.storageBox.StorageQuantity')" prop="quantity"> <el-form-item :label="$t('module.basicData.visual.EnglishName')" prop="enName">
<el-input-number v-model="dataForm.quantity" :min="0" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.storageBox.StorageQuantity')])" /> <el-input v-model="dataForm.enName" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.EnglishName')])" clearable />
</el-form-item>
<el-form-item :label="$t('module.basicData.storageBox.alias')" prop="aliasName">
<el-input v-model="dataForm.aliasName" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.storageBox.alias')])" clearable />
</el-form-item> </el-form-item>
<el-form-item :label="$t('module.basicData.storageBox.status')" prop="status"> <el-form-item :label="$t('module.basicData.storageBox.status')" prop="status">
<el-select v-model="dataForm.status" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.storageBox.status')])" clearable> <el-select v-model="dataForm.status" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.storageBox.status')])" clearable>
@@ -33,8 +30,8 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item :label="$t('module.basicData.visual.Remarks')" prop="remark"> <el-form-item :label="$t('module.basicData.visual.Remarks')" prop="note">
<el-input v-model="dataForm.remark" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.Remarks')])" clearable /> <el-input v-model="dataForm.note" :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.visual.Remarks')])" clearable />
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
@@ -53,12 +50,11 @@ export default {
visible: false, visible: false,
dataForm: { dataForm: {
id: 0, id: 0,
name: '', storageBoxName: '',
code: '', code: '',
status: 0, status: 0,
aliasName: '', enName: '',
quantity: 0, note: ''
remark: ''
}, },
options: [ options: [
{ {
@@ -75,7 +71,7 @@ export default {
} }
], ],
dataRule: { dataRule: {
name: [ storageBoxName: [
{ {
required: true, required: true,
message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.storageBox.name')]), message: this.$i18nForm(['placeholder.input', this.$t('module.basicData.storageBox.name')]),

View File

@@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2020-12-29 15:41:11 * @Date: 2020-12-29 15:41:11
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2021-07-21 14:00:56 * @LastEditTime: 2022-01-11 16:46:48
* @Description: * @Description:
--> -->
<template> <template>
@@ -41,7 +41,6 @@
<script>import i18n from '@/lang' <script>import i18n from '@/lang'
import HeadForm from '@/components/basicData/HeadForm' import HeadForm from '@/components/basicData/HeadForm'
import BaseTable from '@/components/BaseTable' import BaseTable from '@/components/BaseTable'
import PositionDetail from './components/PositionDetail'
import storageBoxAdd from './components/storageBox-add' import storageBoxAdd from './components/storageBox-add'
import Pagination from '@/components/Pagination' // Secondary package based on el-pagination import Pagination from '@/components/Pagination' // Secondary package based on el-pagination
import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn' import MethodBtn from '@/components/BaseTable/subcomponents/MethodBtn'
@@ -82,7 +81,7 @@ const tableProps = [
align: 'center' align: 'center'
}, },
{ {
prop: 'name', prop: 'storageBoxName',
label: i18n.t('module.basicData.storageBox.name'), label: i18n.t('module.basicData.storageBox.name'),
align: 'center' align: 'center'
}, },
@@ -92,13 +91,8 @@ const tableProps = [
align: 'center' align: 'center'
}, },
{ {
prop: 'aliasName', prop: 'enName',
label: i18n.t('module.basicData.storageBox.alias'), label: i18n.t('module.basicData.visual.EnglishName'),
align: 'center'
},
{
prop: 'quantity',
label: i18n.t('module.basicData.storageBox.StorageQuantity'),
align: 'center' align: 'center'
}, },
{ {
@@ -108,15 +102,9 @@ const tableProps = [
align: 'center' align: 'center'
}, },
{ {
prop: 'remark', prop: 'note',
label: i18n.t('module.basicData.storageBox.remark'), label: i18n.t('module.basicData.storageBox.remark'),
align: 'center' align: 'center'
},
{
prop: 'location',
label: i18n.t('module.basicData.cache.Location'),
subcomponent: PositionDetail,
align: 'center'
} }
] ]
@@ -157,7 +145,7 @@ export default {
methods: { methods: {
handleClick(raw) { handleClick(raw) {
if (raw.type === 'delete') { if (raw.type === 'delete') {
this.$confirm(`${this.$t('module.basicData.visual.TipsBefore')}[${raw.data.name}]?`, this.$t('module.basicData.visual.Tips'), { this.$confirm(`${this.$t('module.basicData.visual.TipsBefore')}[${raw.data.storageBoxName}]?`, this.$t('module.basicData.visual.Tips'), {
confirmButtonText: this.$t('module.basicData.visual.confirmButtonText'), confirmButtonText: this.$t('module.basicData.visual.confirmButtonText'),
cancelButtonText: this.$t('module.basicData.visual.cancelButtonText'), cancelButtonText: this.$t('module.basicData.visual.cancelButtonText'),
type: 'warning' type: 'warning'
@@ -181,8 +169,7 @@ export default {
}, },
getList(key) { getList(key) {
this.listLoading = true this.listLoading = true
this.listQuery.name = key this.listQuery.storageBoxName = key
this.listQuery.code = key
storageBoxList(this.listQuery).then(response => { storageBoxList(this.listQuery).then(response => {
if (response.data.records) { if (response.data.records) {
this.list = response.data.records this.list = response.data.records

View File

@@ -0,0 +1,7 @@
<!--
* @Author: zwq
* @Date: 2022-01-12 15:35:11
* @LastEditors: zwq
* @LastEditTime: 2022-01-12 15:35:11
* @Description:
-->

View File

@@ -0,0 +1,248 @@
<!--
* @Author: zwq
* @Date: 2020-12-29 15:41:11
* @LastEditors: zwq
* @LastEditTime: 2022-01-12 16:27:58
* @Description:
-->
<template>
<div class="app-container">
<el-form
ref="formData"
:model="formData"
:inline="true"
size="medium"
label-width="100px"
>
<el-form-item :label="$t('module.basicData.Warehouse.TaskType')" prop="taskType">
<el-select v-model="formData.taskType" filterable :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.Warehouse.TaskType')])" clearable>
<el-option
v-for="item in taskTypeList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('module.basicData.Warehouse.TaskStatus')" prop="status">
<el-select v-model="formData.status" filterable :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.Warehouse.TaskStatus')])" clearable>
<el-option
v-for="item in equipmentList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('module.basicData.Warehouse.VehicleName')" prop="equipmentId">
<el-select v-model="formData.equipmentId" filterable :placeholder="$i18nForm(['placeholder.input', $t('module.basicData.Warehouse.VehicleName')])" clearable>
<el-option
v-for="item in equipmentList"
:key="item.id"
:label="item.name"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item :label="$t('module.basicData.Warehouse.TimeSlot')" prop="time">
<el-date-picker
v-model="formData.timeSlot"
type="daterange"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
:start-placeholder="$t('module.orderManage.order.StartTime')"
:end-placeholder="$t('module.orderManage.order.StartTime')"
:range-separator="$t('module.orderManage.order.To')"
clearable
/>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="getList()"> {{ 'btn.search' | i18nFilter }} </el-button>
</el-form-item>
</el-form>
<base-table
:page="formData.current"
:limit="formData.size"
:table-config="tableProps"
:table-data="list"
:is-loading="listLoading"
/>
<pagination
v-show="total > 0"
:total="total"
:page.sync="formData.current"
:limit.sync="formData.size"
@pagination="getList()"
/>
</div>
</template>
<script>
import { equipmentInfoList } from '@/api/basicData/Equipment/equipmentInfo'
import { HistoricalTaskList } from '@/api/basicData/Warehouse/HistoricalTask'
import i18n from '@/lang'
import BaseTable from '@/components/BaseTable'
import Pagination from '@/components/Pagination' // Secondary package based on el-pagination
// import { timeFormatter } from '@/filters'
/**
* 表格表头配置项 TypeScript接口注释
* tableConfig<ConfigItem> = []
*
* Interface ConfigItem = {
* prop: string,
* label: string,
* width: string,
* align: string,
* subcomponent: function,
* filter: function
* }
*
*
*/
const tableProps = [
{
prop: 'taskCode',
label: i18n.t('module.basicData.Warehouse.Code'),
align: 'center'
},
{
prop: 'createTime',
label: i18n.t('module.basicData.Warehouse.ExecutionTime'),
align: 'center'
},
{
prop: 'status',
label: i18n.t('module.basicData.Warehouse.TaskStatus'),
align: 'center'
},
// {
// prop: 'taskType',
// label: i18n.t('module.basicData.Warehouse.TaskType'),
// align: 'center'
// },
{
prop: 'name',
label: i18n.t('module.basicData.Warehouse.VehicleName'),
align: 'center'
},
// {
// prop: 'substrateNo',
// label: i18n.t('module.basicData.Warehouse.BoxStatus'),
// align: 'center'
// },
{
prop: 'wcode',
label: i18n.t('module.basicData.Warehouse.BoxNumber'),
align: 'center'
},
{
prop: 'wcurrProcessCode',
label: i18n.t('module.basicData.Warehouse.PreviousOperation'),
align: 'center'
},
{
prop: 'wnextProcessCode',
label: i18n.t('module.basicData.Warehouse.NextOperation'),
align: 'center'
},
{
prop: 'updateTime',
label: i18n.t('module.basicData.Warehouse.CompletionTime'),
align: 'center'
},
{
prop: 'currLocation',
label: i18n.t('module.basicData.Warehouse.StartLocation'),
align: 'center'
},
{
prop: 'targetLocation',
label: i18n.t('module.basicData.Warehouse.TargetLocation'),
align: 'center'
}
]
export default {
name: 'ScrapInfo',
components: { Pagination, BaseTable },
data() {
return {
trueWidth: 200,
tableProps,
list: [],
total: 0,
listLoading: false,
formData: {
taskType: '',
status: '',
equipmentId: '',
timeSlot: [],
endTime: '',
startTime: '',
current: 1,
size: 10
},
taskTypeList: [{
'label': '出库',
'value': 0
}, {
'label': '入库',
'value': 1
}, {
'label': '流转',
'value': 2
}],
equipmentList: []
}
},
created() {
this.init()
this.getList()
},
methods: {
init() {
const listQuery = {
current: 1,
size: 500
}
this.equipmentList.splice(0, this.equipmentList.length)
equipmentInfoList(listQuery).then(response => {
if (response.data.records) {
this.equipmentList = response.data.records
}
})
},
getList() {
if (this.formData.timeSlot) {
this.formData.startTime = this.formData.timeSlot[0]
this.formData.endTime = this.formData.timeSlot[1]
} else {
this.formData.startTime = ''
this.formData.endTime = ''
}
this.listLoading = true
HistoricalTaskList(this.formData).then(response => {
if (response.data.records) {
this.list = response.data.records
} else {
this.list.splice(0, this.list.length)
}
this.total = response.data.total
this.listLoading = false
})
}
}
}
</script>
<style scoped>
.edit-input {
padding-right: 100px;
}
.cancel-btn {
position: absolute;
right: 15px;
top: 10px;
}
</style>

View File

@@ -0,0 +1,7 @@
<!--
* @Author: zwq
* @Date: 2022-01-12 15:32:02
* @LastEditors: zwq
* @LastEditTime: 2022-01-12 15:32:03
* @Description:
-->

View File

@@ -102,8 +102,13 @@ export default {
} }
return { return {
loginForm: { loginForm: {
username: '13588441519', username: 13588441519,
password: '123abc.' password: 123456,
// password: '123abc.'
mobile: 13588441519,
oauthCode: 13588441519,
openId: 13588441519,
wechatAppId: 13588441519
}, },
loginRules: { loginRules: {
username: [{ required: true, trigger: 'blur', validator: validateUsername }], username: [{ required: true, trigger: 'blur', validator: validateUsername }],
@@ -133,6 +138,7 @@ export default {
// window.addEventListener('storage', this.afterQRScan) // window.addEventListener('storage', this.afterQRScan)
}, },
mounted() { mounted() {
// 自动获取焦点
if (this.loginForm.username === '') { if (this.loginForm.username === '') {
this.$refs.username.focus() this.$refs.username.focus()
} else if (this.loginForm.password === '') { } else if (this.loginForm.password === '') {
@@ -146,6 +152,7 @@ export default {
// window.removeEventListener('storage', this.afterQRScan) // window.removeEventListener('storage', this.afterQRScan)
}, },
methods: { methods: {
// 监听用户键盘输入
checkCapslock(e) { checkCapslock(e) {
const { key } = e const { key } = e
this.capsTooltip = key && key.length === 1 && (key >= 'A' && key <= 'Z') this.capsTooltip = key && key.length === 1 && (key >= 'A' && key <= 'Z')
@@ -162,12 +169,24 @@ export default {
}, },
handleLogin() { handleLogin() {
this.$refs.loginForm.validate(valid => { this.$refs.loginForm.validate(valid => {
// 自定义登陆验证如符合验证console.log输出true
console.log(valid) console.log(valid)
console.log(this.redirect, this.$route) console.log(this.redirect, this.$route)
if (valid) { if (valid) {
this.loading = true this.loading = true
// this.$store.dispatch('user/login', this.loginForm)
// .then(() => {
// console.log(this.redirect, this.otherQuery)
// this.$router.push({ path: this.redirect || '/', query: this.otherQuery })
// this.loading = false
// })
// .catch(() => {
// this.loading = false
// })
this.$store.dispatch('user/login', this.loginForm) this.$store.dispatch('user/login', this.loginForm)
.then(() => { .then(res => {
console.log(res)
console.log(this.redirect, this.otherQuery) console.log(this.redirect, this.otherQuery)
this.$router.push({ path: this.redirect || '/', query: this.otherQuery }) this.$router.push({ path: this.redirect || '/', query: this.otherQuery })
this.loading = false this.loading = false

190
vue.config.js Normal file
View File

@@ -0,0 +1,190 @@
'use strict'
const path = require('path')
const defaultSettings = require('./src/settings.js')
function resolve(dir) {
return path.join(__dirname, dir)
}
const name = defaultSettings.title || 'vue Element Admin' // page title
// If your port is set to 80,
// use administrator privileges to execute the command line.
// For example, Mac: sudo npm run
// You can change the port by the following method:
// port = 9527 npm run dev OR npm run dev --port = 9527
const port = process.env.port || process.env.npm_config_port || 9527 // dev port
// All configuration item explanations can be find in https://cli.vuejs.org/config/
module.exports = {
/**
* You will need to set publicPath if you plan to deploy your site under a sub path,
* for example GitHub Pages. If you plan to deploy your site to https://foo.github.io/bar/,
* then publicPath should be set to "/bar/".
* In most cases please use '/' !!!
* Detail: https://cli.vuejs.org/config/#publicpath
*/
publicPath: '',
outputDir: 'dist',
assetsDir: 'static',
lintOnSave: process.env.NODE_ENV === 'development',
productionSourceMap: false,
devServer: {
port: port,
open: false,
overlay: {
warnings: false,
errors: true
},
// allowedHosts: ['192.168.0.104:8080', '192.168.0.104:8081'],
// headers: {
// 'Access-Control-Allow-Origin': '192.168.0.104:8080, 192.168.0.104:8081',
// 'Access-Control-Allow-Headers': '*',
// 'Access-Control-Allow-Methods': '*',
// 'Access-Control-Allow-Credentials': 'true'
// },
// before: require('./mock/mock-server.js'),
// 这里写入需要代理的api和对应的目标地址
proxy: {
'/api': {
target: 'http://localhost:8080',
// target: 'http://192.168.0.198:8080',
// target: 'http://192.168.0.127:8080',
// target: 'http://192.168.0.165:8080',
// target: 'http://192.168.43.105:8080',
// target: 'http://127.0.0.1:8080',
// target: 'http://192.168.0.70:8080',
// target: 'http://192.168.0.199:8080',
ws: true,
changeOrigin: true,
pathRewrite: {
'^/portapi': ''
}
// 使用了proxy 就需要开启下面的选项 (http-proxy-middleware会将post请求给parse了 所以需要再次进行string化)
// onProxyReq: (proxyReq, req, res, options) => {
// if (req.body) {
// const bodyData = JSON.stringify(req.body)
// // incase if content-type is application/x-www-form-urlencoded -> we need to change to application/json
// proxyReq.setHeader('Content-Type', 'application/json')
// proxyReq.setHeader('Content-Length', Buffer.byteLength(bodyData))
// // stream the content
// proxyReq.write(bodyData)
// }
// }
},
'/spc': {
// target: 'http://192.168.0.180:8080',
target: 'http://58.210.206.230:8000',
// target: 'http://192.168.0.187:8080',
// target: 'http://192.168.43.105:8080',
// target: 'http://127.0.0.1:8080',
ws: true,
changeOrigin: true,
pathRewrite: {
'^/spc': ''
}
// 使用了proxy 就需要开启下面的选项 (http-proxy-middleware会将post请求给parse了 所以需要再次进行string化)
// onProxyReq: (proxyReq, req, res, options) => {
// if (req.body) {
// const bodyData = JSON.stringify(req.body)
// // incase if content-type is application/x-www-form-urlencoded -> we need to change to application/json
// proxyReq.setHeader('Content-Type', 'application/json')
// proxyReq.setHeader('Content-Length', Buffer.byteLength(bodyData))
// // stream the content
// proxyReq.write(bodyData)
// }
// }
}
}
},
configureWebpack: {
// provide the app's title in webpack's name field, so that
// it can be accessed in index.html to inject the correct title.
name: name,
resolve: {
alias: {
'@': resolve('src')
}
}
},
css: {
loaderOptions: {
// vue cli默认使用node-sass作为sass预处理器使用下面的选项可以使用sass包作为预处理器
// 用于解决node-sass需要从外网下载依赖的卡顿问题
sass: {
implementation: require('sass')
}
}
},
chainWebpack(config) {
config.plugins.delete('preload') // TODO: need test
config.plugins.delete('prefetch') // TODO: need test
// set svg-sprite-loader
config.module
.rule('svg')
.exclude.add(resolve('src/icons'))
.end()
config.module
.rule('icons')
.test(/\.svg$/)
.include.add(resolve('src/icons'))
.end()
.use('svg-sprite-loader')
.loader('svg-sprite-loader')
.options({
symbolId: 'icon-[name]'
})
.end()
// set preserveWhitespace
config.module
.rule('vue')
.use('vue-loader')
.loader('vue-loader')
.tap(options => {
options.compilerOptions.preserveWhitespace = true
return options
})
.end()
config
.when(process.env.NODE_ENV !== 'development',
config => {
config
.plugin('ScriptExtHtmlWebpackPlugin')
.after('html')
.use('script-ext-html-webpack-plugin', [{
// `runtime` must same as runtimeChunk name. default is `runtime`
inline: /runtime\..*\.js$/
}])
.end()
config
.optimization.splitChunks({
chunks: 'all',
cacheGroups: {
libs: {
name: 'chunk-libs',
test: /[\\/]node_modules[\\/]/,
priority: 10,
chunks: 'initial' // only package third parties that are initially dependent
},
elementUI: {
name: 'chunk-elementUI', // split elementUI into a single package
priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app
test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm
},
commons: {
name: 'chunk-commons',
test: resolve('src/components'), // can customize your rules
minChunks: 3, // minimum common number
priority: 5,
reuseExistingChunk: true
}
}
})
config.optimization.runtimeChunk('single')
}
)
}
}