Compare commits
8 Commits
master
...
9673c1ba30
| Author | SHA1 | Date | |
|---|---|---|---|
| 9673c1ba30 | |||
| 66fce549e1 | |||
| 1b6ffddcf9 | |||
| 14bf2bd17e | |||
| bb6925f3a2 | |||
|
|
433c86a379 | ||
| 31c9929245 | |||
| dcc267ab9c |
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* @Date: 2020-12-14 09:07:03
|
* @Date: 2020-12-14 09:07:03
|
||||||
* @LastEditors: guo
|
* @LastEditors: Please set LastEditors
|
||||||
* @LastEditTime: 2021-01-11 09:40:09
|
* @LastEditTime: 2021-12-06 15:14:46
|
||||||
* @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
|
||||||
})
|
})
|
||||||
@@ -26,13 +27,13 @@ export function logout() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
// 获取当前登录的用户信息
|
// 获取当前登录的用户信息
|
||||||
export function getUserInfo(data) {
|
// export function getUserInfo(data) {
|
||||||
return request({
|
// return request({
|
||||||
url: '/passport/getLoginUser',
|
// url: '/passport/getLoginUser',
|
||||||
method: 'post',
|
// method: 'post',
|
||||||
data
|
// data
|
||||||
})
|
// })
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 修改当前用户密码
|
// 修改当前用户密码
|
||||||
export function editUserPW(data) {
|
export function editUserPW(data) {
|
||||||
|
|||||||
@@ -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: '系统管理',
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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: {
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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,140 +90,14 @@ 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/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: [
|
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',
|
path: '/Ports',
|
||||||
component: () => import('@/views/basicData/index'),
|
component: () => import('@/views/basicData/index'),
|
||||||
@@ -389,284 +275,9 @@ export const dynamicRoutes = [
|
|||||||
// meta: { title: routerTitle.basicData.equipment.equipmentLinkAdd?.[language] || routerTitle.basicData.equipment.equipmentInfoAdd.en, icon: 'form', affix: true, required: true, requireToken: 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',
|
|
||||||
component: Layout,
|
|
||||||
// redirect: '/equipment/manager',
|
|
||||||
name: 'EquipmentManager',
|
|
||||||
meta: { title: routerTitle.equipment?.[language] || routerTitle.equipment.en, icon: 'form', iconPart: 'EquipmentManager', 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: [
|
|
||||||
{
|
|
||||||
path: 'EquipmentProcessingQuantity',
|
|
||||||
component: () => import('@/views/EquipmentManager/equipmentVisualization/EquipmentProcessingQuantity'),
|
|
||||||
name: 'EquipmentProcessingQuantity',
|
|
||||||
meta: { title: routerTitle.equipment.EquipmentVisualization.EquipmentProcessingQuantity?.[language] || routerTitle.equipment.EquipmentVisualization.EquipmentProcessingQuantity.en, icon: 'form', affix: true, required: true, requireToken: true }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'EquipmentEnergyMonitor',
|
|
||||||
component: () => import('@/views/EquipmentManager/equipmentVisualization/EquipmentEnergyMonitor'),
|
|
||||||
name: 'EquipmentEnergyMonitor',
|
|
||||||
meta: { title: routerTitle.equipment.EquipmentVisualization.EquipmentEnergyMonitor?.[language] || routerTitle.equipment.EquipmentVisualization.EquipmentEnergyMonitor.en, icon: 'form', affix: true, required: true, requireToken: true }
|
|
||||||
},
|
|
||||||
{
|
|
||||||
path: 'Visualized',
|
|
||||||
component: () => import('@/views/EquipmentManager/equipmentVisualization/Visualized'),
|
|
||||||
name: 'Visualized',
|
|
||||||
meta: { title: routerTitle.equipment.EquipmentVisualization.Visualized?.[language] || routerTitle.equipment.EquipmentVisualization.Visualized.en, icon: 'form', affix: true, required: true, requireToken: true }
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
path: '/art',
|
path: '/art',
|
||||||
component: Layout,
|
component: Layout,
|
||||||
@@ -695,72 +306,6 @@ export const dynamicRoutes = [
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
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 }
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
path: '/order',
|
path: '/order',
|
||||||
component: Layout,
|
component: Layout,
|
||||||
@@ -956,196 +501,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 +542,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 +651,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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|||||||
@@ -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
190
vue.config.js
Normal 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')
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user