From 4b0da30208d4a0a7b35923e72f5c1fcef8c9ba2d Mon Sep 17 00:00:00 2001 From: renguanyu111 <80379958+renguanyu111@users.noreply.github.com> Date: Fri, 11 Feb 2022 16:50:32 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=A9=E6=95=88=E8=80=83=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/api/user.js | 11 + web/src/router/index.js | 3 +- web/src/store/module/router.js | 38 ++++ web/src/store/module/user copy.js | 151 +++++++++++++ web/src/store/module/user.js | 33 ++- web/src/view/layout/index.vue | 6 + web/src/view/login/index copy.vue | 203 ++++++++++++++++++ web/src/view/login/userLogin.vue | 10 +- .../view/performance/dataEntry/beAssessed.vue | 46 ++-- .../view/performance/dataEntry/category.vue | 17 +- web/src/view/process/guanli/layout.vue | 4 +- 11 files changed, 485 insertions(+), 37 deletions(-) create mode 100644 web/src/store/module/user copy.js create mode 100644 web/src/view/login/index copy.vue diff --git a/web/src/api/user.js b/web/src/api/user.js index 32ee55c..848e42d 100644 --- a/web/src/api/user.js +++ b/web/src/api/user.js @@ -11,6 +11,17 @@ export const login = (data) => { data: data }) } +// @Summary 用户端登录 +// @Produce application/json +// @Param data body {username:"string",password:"string"} +// @Router /base/login [post] +export const mylogin = (data) => { + return service({ + url: '/base/mylogin', + method: 'post', + data: data + }) +} // @Summary 获取验证码 // @Produce application/json diff --git a/web/src/router/index.js b/web/src/router/index.js index dda2d93..1f29678 100644 --- a/web/src/router/index.js +++ b/web/src/router/index.js @@ -18,7 +18,8 @@ const routes = [{ path: '/userlogin', name: 'Userlogin', component: () => import('@/view/login/userLogin.vue') -} +}, + ] const router = createRouter({ diff --git a/web/src/store/module/router.js b/web/src/store/module/router.js index 156477c..ce5ce92 100644 --- a/web/src/store/module/router.js +++ b/web/src/store/module/router.js @@ -52,6 +52,44 @@ export const router = { actions: { // 从后台获取动态路由 async SetAsyncRouter({ commit }) { + console.log("从后台获取动态路由") + const baseRouter = [{ + path: '/layout', + name: 'layout', + component: 'view/layout/index.vue', + meta: { + title: '底层layout' + }, + children: [] + }] + const asyncRouterRes = await asyncMenu() + const asyncRouter = asyncRouterRes.data.menus + asyncRouter.push({ + path: '404', + name: '404', + hidden: true, + meta: { + title: '迷路了*。*', + }, + component: 'view/error/index.vue' + }) + formatRouter(asyncRouter) + baseRouter[0].children = asyncRouter + baseRouter.push({ + path: '/:catchAll(.*)', + redirect: '/layout/404' + + }) + asyncRouterHandle(baseRouter) + KeepAliveFilter(asyncRouter) + commit('setAsyncRouter', baseRouter) + commit('setRouterList', routerList) + commit('setKeepAliveRouters', keepAliveRouters) + return true + }, + // 跳转路由 + async goLayout({ commit }) { + console.log("从后台获取动态路由") const baseRouter = [{ path: '/layout', name: 'layout', diff --git a/web/src/store/module/user copy.js b/web/src/store/module/user copy.js new file mode 100644 index 0000000..72196f4 --- /dev/null +++ b/web/src/store/module/user copy.js @@ -0,0 +1,151 @@ +import { login, getUserInfo, setUserInfo,mylogin } from '@/api/user' +import { jsonInBlacklist } from '@/api/jwt' +import router from '@/router/index' +import { ElMessage } from 'element-plus' + +export const user = { + namespaced: true, + state: { + userInfo: { + uuid: '', + nickName: '', + headerImg: '', + authority: {}, + sideMode: 'dark', + activeColor: '#4D70FF', + baseColor: '#fff' + }, + token: '', + }, + mutations: { + setUserInfo(state, userInfo) { + // 这里的 `state` 对象是模块的局部状态 + state.userInfo = userInfo + }, + setToken(state, token) { + // 这里的 `state` 对象是模块的局部状态 + state.token = token + }, + NeedInit(state) { + state.userInfo = {} + state.token = '' + sessionStorage.clear() + router.push({ name: 'Init', replace: true }) + }, + LoginOut(state) { + state.userInfo = {} + state.token = '' + sessionStorage.clear() + router.push({ name: 'Login', replace: true }) + window.location.reload() + }, + ResetUserInfo(state, userInfo = {}) { + state.userInfo = { ...state.userInfo, + ...userInfo + } + }, + ChangeSideMode: (state, val) => { + state.userInfo.sideMode = val + }, + }, + actions: { + async GetUserInfo({ commit }) { + const res = await getUserInfo() + if (res.code === 0) { + commit('setUserInfo', res.data.userInfo) + } + return res + }, + async LoginIn({ commit, dispatch, rootGetters, getters }, loginInfo) { + const res = await login(loginInfo) + if (res.code === 0) { + commit('setUserInfo', res.data.user) + commit('setToken', res.data.token) + await dispatch('router/SetAsyncRouter', {}, { root: true }) + const asyncRouters = rootGetters['router/asyncRouters'] + asyncRouters.forEach(asyncRouter => { + router.addRoute(asyncRouter) + }) + // const redirect = router.history.current.query.redirect + // console.log(redirect) + // if (redirect) { + // router.push({ path: redirect }) + // } else { + router.push({ name: getters['userInfo'].authority.defaultRouter }) + // } + return true + } + }, + async myLoginIn({ commit, dispatch, rootGetters, getters }, loginInfo) { + const res = await mylogin(loginInfo) + if (res.code === 0) { + commit('setUserInfo', res.data.user) + commit('setToken', res.data.token) + await dispatch('router/SetAsyncRouter', {}, { root: true }) + const asyncRouters = rootGetters['router/asyncRouters'] + asyncRouters.forEach(asyncRouter => { + router.addRoute(asyncRouter) + }) + // const redirect = router.history.current.query.redirect + // console.log(redirect) + // if (redirect) { + // router.push({ path: redirect }) + // } else { + router.push({ name: getters['userInfo'].authority.defaultRouter }) + // } + return true + } + }, + async LoginOut({ commit }) { + const res = await jsonInBlacklist() + if (res.code === 0) { + commit('LoginOut') + } + }, + async changeSideMode({ commit, state }, data) { + const res = await setUserInfo({ sideMode: data, ID: state.userInfo.ID }) + if (res.code === 0) { + commit('ChangeSideMode', data) + ElMessage({ + type: 'success', + message: '设置成功' + }) + } + }, + }, + getters: { + userInfo(state) { + return state.userInfo + }, + token(state) { + return state.token + }, + mode(state) { + return state.userInfo.sideMode + }, + sideMode(state) { + if (state.userInfo.sideMode === 'dark') { + return '#191a23' + } else if (state.userInfo.sideMode === 'light') { + return '#fff' + } else { + return state.userInfo.sideMode + } + }, + baseColor(state) { + if (state.userInfo.sideMode === 'dark') { + return '#fff' + } else if (state.userInfo.sideMode === 'light') { + return '#191a23' + } else { + return state.userInfo.baseColor + } + }, + activeColor(state) { + if (state.userInfo.sideMode === 'dark' || state.userInfo.sideMode === 'light') { + return '#4D70FF' + } + return state.userInfo.activeColor + } + } +} diff --git a/web/src/store/module/user.js b/web/src/store/module/user.js index dae7760..41571a7 100644 --- a/web/src/store/module/user.js +++ b/web/src/store/module/user.js @@ -1,4 +1,4 @@ -import { login, getUserInfo, setUserInfo } from '@/api/user' +import { login, getUserInfo, setUserInfo,mylogin } from '@/api/user' import { jsonInBlacklist } from '@/api/jwt' import router from '@/router/index' import { ElMessage } from 'element-plus' @@ -7,6 +7,7 @@ export const user = { namespaced: true, state: { userInfo: { + key:'', uuid: '', nickName: '', headerImg: '', @@ -22,6 +23,10 @@ export const user = { // 这里的 `state` 对象是模块的局部状态 state.userInfo = userInfo }, + setKey(state, key) { + // 这里的 `state` 对象是模块的局部状态 + state.key = key + }, setToken(state, token) { // 这里的 `state` 对象是模块的局部状态 state.token = token @@ -76,6 +81,32 @@ export const user = { return true } }, + async myLoginIn({ commit, dispatch, rootGetters, getters }, loginInfo) { + const res = await mylogin(loginInfo) + if (res.code === 0) { + commit('setUserInfo', res.data.userinfo) + commit('setToken', res.data.token) + commit('setKey', res.data.key) + await dispatch('router/SetAsyncRouter', {}, { root: true }) + const asyncRouters = rootGetters['router/asyncRouters'] + asyncRouters.forEach(asyncRouter => { + router.addRoute(asyncRouter) + }) + // await dispatch('router/SetAsyncRouter', {}, { root: true }) + // const asyncRouters = rootGetters['router/asyncRouters'] + // asyncRouters.forEach(asyncRouter => { + // router.addRoute(asyncRouter) + // }) + // const redirect = router.history.current.query.redirect + // console.log(redirect) + // if (redirect) { + // router.push({ path: redirect }) + // } else { + router.push({ name: getters['userInfo'] }) + // } + return true + } + }, async LoginOut({ commit }) { const res = await jsonInBlacklist() if (res.code === 0) { diff --git a/web/src/view/layout/index.vue b/web/src/view/layout/index.vue index e20e653..bb23f19 100644 --- a/web/src/view/layout/index.vue +++ b/web/src/view/layout/index.vue @@ -155,6 +155,12 @@ export default { } }, created() { + console.log("-----------------------------------------layout-------------------------------------------") + console.log("-----------------------------------------layout-------------------------------------------") + console.log("-----------------------------------------layout-------------------------------------------") + console.log("-----------------------------------------layout-------------------------------------------") + console.log("-----------------------------------------layout-------------------------------------------") + console.log("-----------------------------------------layout-------------------------------------------") const screenWidth = document.body.clientWidth if (screenWidth < 1000) { this.isMobile = true diff --git a/web/src/view/login/index copy.vue b/web/src/view/login/index copy.vue new file mode 100644 index 0000000..356dd82 --- /dev/null +++ b/web/src/view/login/index copy.vue @@ -0,0 +1,203 @@ + + + + + + + diff --git a/web/src/view/login/userLogin.vue b/web/src/view/login/userLogin.vue index f5e400a..715c162 100644 --- a/web/src/view/login/userLogin.vue +++ b/web/src/view/login/userLogin.vue @@ -95,13 +95,13 @@ export default { curYear: 0, lock: 'lock', loginForm: { - username: 'admin', - password: '123456', + username: '', + password: '', captcha: '', captchaId: '' }, rules: { - username: [{ validator: checkUsername, trigger: 'blur' }], + username: [{ required: true, message: '请输入工号',trigger: 'blur' }], password: [{ validator: checkPassword, trigger: 'blur' }], captcha: [{ required: true, message: '请输入验证码', trigger: 'blur' }, { @@ -120,7 +120,7 @@ export default { this.curYear = new Date().getFullYear() }, methods: { - ...mapActions('user', ['LoginIn']), + ...mapActions('user', ['myLoginIn']), async checkInit() { const res = await checkDB() if (res.code === 0) { @@ -136,7 +136,7 @@ export default { } }, async login() { - return await this.LoginIn(this.loginForm) + return await this.myLoginIn(this.loginForm) }, async submitForm() { this.$refs.loginForm.validate(async(v) => { diff --git a/web/src/view/performance/dataEntry/beAssessed.vue b/web/src/view/performance/dataEntry/beAssessed.vue index e25c7cd..098f0fd 100644 --- a/web/src/view/performance/dataEntry/beAssessed.vue +++ b/web/src/view/performance/dataEntry/beAssessed.vue @@ -44,7 +44,11 @@ /> - + + +