From ae4b8fa2b56c3207f502a38cb0a150a4fe987e1a Mon Sep 17 00:00:00 2001 From: bibi <541660090@qq.com> Date: Tue, 25 Jan 2022 15:14:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B9=B3=E5=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 2 +- .env.production | 4 +- src/mixins/index.js | 20 +- src/permission.js | 23 +- src/request/index.js | 124 ++++---- src/store/actions.js | 18 +- src/store/getters.js | 18 +- src/store/mutations.js | 28 +- src/store/state.js | 6 +- src/styles/index.less | 2 +- src/views/Basic/home/depend/config.js | 69 +++++ src/views/Basic/home/depend/form.vue | 427 ++++++++++++++++++++++++++ src/views/Layout/index.vue | 22 +- src/views/Login/index.vue | 345 ++++++++++++--------- 14 files changed, 858 insertions(+), 250 deletions(-) create mode 100644 src/views/Basic/home/depend/config.js create mode 100644 src/views/Basic/home/depend/form.vue diff --git a/.env.development b/.env.development index bf0bedc..3130b39 100644 --- a/.env.development +++ b/.env.development @@ -1,3 +1,3 @@ NODE_ENV = 'development' VUE_APP_URL = 'http://121.41.26.2251:8002/admin' -VUE_APP_CDN = 'http://121.41.26.2251:8002/admin' \ No newline at end of file +VUE_APP_STATIC = 'http://121.41.26.2251:8002/admin' \ No newline at end of file diff --git a/.env.production b/.env.production index f891222..13d9127 100644 --- a/.env.production +++ b/.env.production @@ -1,3 +1,3 @@ NODE_ENV = 'production' -VUE_APP_URL = 'http://121.41.26.2251:8002/admin' -VUE_APP_CDN = 'http://121.41.26.2251:8002/admin' \ No newline at end of file +VUE_APP_URL = 'https://saas.kaidalai.cn/api/admin/' +VUE_APP_STATIC = 'https://saas.kaidalai.cn/api/admin/' \ No newline at end of file diff --git a/src/mixins/index.js b/src/mixins/index.js index 1dec06b..03a8b12 100644 --- a/src/mixins/index.js +++ b/src/mixins/index.js @@ -9,14 +9,14 @@ import { mapGetters, mapActions } from "vuex"; export default { - install(Vue) { - Vue.mixin({ - computed: { - ...mapGetters(['getSelectedKeys', 'getOpenKeys']) - }, - methods: { - ...mapActions(['setSelectedKeys', 'setOpenKeys']) - } - }) - } + install(Vue) { + Vue.mixin({ + computed: { + ...mapGetters(['getToken','getCommunityCode','getSelectedKeys', 'getOpenKeys']) + }, + methods: { + ...mapActions(['setToken','setCommunityCode','setSelectedKeys', 'setOpenKeys']) + } + }) + } } diff --git a/src/permission.js b/src/permission.js index f83558e..a9ca5e2 100644 --- a/src/permission.js +++ b/src/permission.js @@ -1,22 +1,23 @@ -/* - * @Author: your name - * @Date: 2021-11-18 17:34:50 - * @LastEditTime: 2021-11-18 17:37:15 - * @LastEditors: Please set LastEditors - * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE - * @FilePath: /ansu-business/src/permission.js - */ import NProgress from "nprogress" import "nprogress/nprogress.css" import router from "@/router" +import store from '@/store' +const whitePath = [ '/login'] +// 判断登录 router.beforeEach((to, from, next) => { - NProgress.start() - next(); + NProgress.start() + const token = store.getters.getToken; + if(!token && !whitePath.includes(to.path)) { + next('/login'); + } else { + next(); + NProgress.done() + } }) router.afterEach(() => { - NProgress.done() + NProgress.done() }) export default router \ No newline at end of file diff --git a/src/request/index.js b/src/request/index.js index e9befb1..ac3f56d 100644 --- a/src/request/index.js +++ b/src/request/index.js @@ -1,3 +1,11 @@ +/* + * @Author: your name + * @Date: 2021-10-13 09:28:02 + * @LastEditTime: 2022-01-05 13:44:32 + * @LastEditors: Please set LastEditors + * @Description: In User Settings Edit + * @FilePath: /data-show/src/request/index.js + */ import axios from 'axios'; // import qs from 'qs'; import router from "@/permission" @@ -5,76 +13,80 @@ import { message} from 'ant-design-vue' import store from '@/store' // import baseURL from "@/utils/baseURL" function filterRequestData(obj) { - let o = {}; - for(let key in obj) { - let b1 = obj[key] === 0; - let b2 = obj[key] === false; - if(obj[key] || b1 || b2) { - o[key] = obj[key] - } - } - return o; + let o = {}; + for(let key in obj) { + let b1 = obj[key] === 0; + let b2 = obj[key] === false; + if(obj[key] || b1 || b2) { + o[key] = obj[key] + } + } + return o; } //创建axios的实例 const httpService = axios.create({ - baseURL: process.env.VUE_APP_URL + '/1',// TODO:具体的配置可以根据项目情况而来 - timeout: 5000 + baseURL: process.env.VUE_APP_URL,// TODO:具体的配置可以根据项目情况而来 + timeout: 5000 }) -// + communityCode + //axios的拦截--request httpService.interceptors.request.use(config => { - const rqParams = filterRequestData(config.params); - const rqData = filterRequestData(config.data); - // post 'Content-Type' === 'application/x-www-form-urlencoded' - config.headers['Content-Type'] = "application/json"; - config.headers['manage-login-token'] = store.getters.getToken; - config.headers['device-type'] = "web"; - if(config.method === 'post') { - config.data = rqData; - } else { - config.data = rqData; - config.params = rqParams; - } - return config; + const rqParams = filterRequestData(config.params); + const rqData = filterRequestData(config.data); + // post 'Content-Type' === 'application/x-www-form-urlencoded' + config.headers['Content-Type'] = "application/json"; + config.headers['manage-login-token'] = store.getters.getToken; + // config.headers['device-type'] = "web"; + if(config.method === 'post') { + config.data = rqData; + } else { + config.data = rqData; + config.params = rqParams; + } + return config; },err => { - Promise.reject(err);// 请求错误处理 + Promise.reject(err);// 请求错误处理 }) //4、axios的拦截--response httpService.interceptors.response.use(response => { // TODO:具体的code对应的处理可继续添加修改 - let data = null; - let msg = ''; - let res = response.data; - if(res.code == 0){ - data = res.data; - msg = res.msg || ""; - return {data, msg}; - } else if(res.code == 100000) { - router.replace({ - path: '/login' - }); - } else { - msg = res.msg || ""; - message.error(msg); - return Promise.reject(new Error(msg)) - } + // let data = null; + let msg = ''; + let res = response.data; + // console.log(response); + if(res.code === 200){ + // code = 200; + // data = res.data; + // msg = res.msg || ""; + // console.log(msg); + // console.log(data); + return res; + } else if(res.code == 10010) { + router.replace({ + path: '/login' + }); + } else { + msg = res.msg || ""; + message.error(msg); + return Promise.reject(new Error(msg)) + } },err => { - console.log(err) + console.log(err) // TODO:具体的code对应的处理可继续添加修改 - if(err.response.code === 301){ - //登录过期跳转登录页面,并将要浏览的页面fullPath传过去,登录成功后跳转需要访问的页面 ---主页(index) 或者 退出到登录前的浏览的页面 - //这样登录页面登录接口成功之后可以进行跳转 主页(index) 或者 退出到登录前的页面: let path = this.$route.query.redirect || '/index.js'; this.$router.push(path); - setTimeout(() => { - router.replace({ - path: '/login', - query: { - redirect: router.currentRoute.fullPath - } - }); - }, 1000); - } - return Promise.reject(err); + if(err.response.code === 301){ + //登录过期跳转登录页面,并将要浏览的页面fullPath传过去,登录成功后跳转需要访问的页面 ---主页(index) 或者 退出到登录前的浏览的页面 + //这样登录页面登录接口成功之后可以进行跳转 主页(index) 或者 退出到登录前的页面: let path = this.$route.query.redirect || '/index.js'; this.$router.push(path); + setTimeout(() => { + router.replace({ + path: '/login', + query: { + redirect: router.currentRoute.fullPath + } + }); + }, 1000); + } + return Promise.reject(err); }) export default httpService \ No newline at end of file diff --git a/src/store/actions.js b/src/store/actions.js index 50313d2..e4f1be1 100644 --- a/src/store/actions.js +++ b/src/store/actions.js @@ -7,12 +7,18 @@ * @FilePath: /ansu-business/src/store/actions.js */ const actions = { - setSelectedKeys: ({commit}, log) => { - commit('setSelectedKeys', log) - }, - setOpenKeys: ({commit}, log) => { - commit('setOpenKeys', log) - }, + setToken: ({commit}, log) => { + commit('setToken', log) + }, + setCommunityCode: ({commit}, log) => { + commit('setCommunityCode', log) + }, + setSelectedKeys: ({commit}, log) => { + commit('setSelectedKeys', log) + }, + setOpenKeys: ({commit}, log) => { + commit('setOpenKeys', log) + }, } export default actions \ No newline at end of file diff --git a/src/store/getters.js b/src/store/getters.js index 1418396..9f79d7f 100644 --- a/src/store/getters.js +++ b/src/store/getters.js @@ -7,12 +7,18 @@ * @FilePath: /ansu-business/src/store/getters.js */ const getters = { - getSelectedKeys(state) { - return state.selectedKeys - }, - getOpenKeys(state) { - return state.openKeys - } + getSelectedKeys(state) { + return state.selectedKeys + }, + getOpenKeys(state) { + return state.openKeys + }, + getToken(state) { + return state.token + }, + getCommunityCode(state) { + return state.communityCode + }, } export default getters \ No newline at end of file diff --git a/src/store/mutations.js b/src/store/mutations.js index 39faf80..145f2eb 100644 --- a/src/store/mutations.js +++ b/src/store/mutations.js @@ -7,16 +7,24 @@ * @FilePath: /ansu-business/src/store/mutations.js */ const mutations = { - setSelectedKeys: (state, log) => { - state.selectedKeys = log; - let str = JSON.stringify(log); - sessionStorage.setItem('selectedKeys', str); - }, - setOpenKeys: (state, log) => { - state.openKeys = log; - let str = JSON.stringify(log); - sessionStorage.setItem('openKeys', str); - }, + setSelectedKeys: (state, log) => { + state.selectedKeys = log; + let str = JSON.stringify(log); + sessionStorage.setItem('selectedKeys', str); + }, + setOpenKeys: (state, log) => { + state.openKeys = log; + let str = JSON.stringify(log); + sessionStorage.setItem('openKeys', str); + }, + setToken: (state, log) => { + state.token = log; + sessionStorage.setItem('token', log); + }, + setCommunityCode: (state, log) => { + state.communityCode = log; + sessionStorage.setItem('communityCode', log); + }, } export default mutations \ No newline at end of file diff --git a/src/store/state.js b/src/store/state.js index c16ee50..8071246 100644 --- a/src/store/state.js +++ b/src/store/state.js @@ -7,7 +7,9 @@ * @FilePath: /ansu-business/src/store/state.js */ const state = { - selectedKeys: JSON.parse(sessionStorage.getItem('selectedKeys')) || ['/'], - openKeys: JSON.parse(sessionStorage.getItem('openKeys')) || [] + selectedKeys: JSON.parse(sessionStorage.getItem('selectedKeys')) || ['/'], + openKeys: JSON.parse(sessionStorage.getItem('openKeys')) || [], + token: sessionStorage.getItem('token') || "", + communityCode: sessionStorage.getItem('communityCode') || "", } export default state \ No newline at end of file diff --git a/src/styles/index.less b/src/styles/index.less index 429f53b..f827b5c 100644 --- a/src/styles/index.less +++ b/src/styles/index.less @@ -27,7 +27,7 @@ } .search-box { - margin: 30px; + margin: 20px; } .add-btn{ diff --git a/src/views/Basic/home/depend/config.js b/src/views/Basic/home/depend/config.js new file mode 100644 index 0000000..05341b4 --- /dev/null +++ b/src/views/Basic/home/depend/config.js @@ -0,0 +1,69 @@ +/** + * 配置 + * 表格列 + */ +export const columns = [ + { + title: "真实名称", + dataIndex: "actualName", + width: "12%", + }, + { + title: "手机号", + dataIndex: "tel", + width: "14%", + }, + { + title: "所属部门", + dataIndex: "departmentName", + width: "16%", + }, + { + title: "岗位", + dataIndex: "positionName", + width: "10%", + }, + { + title: "状态", + dataIndex: "status", + width: "16%", + customRender: function (status) { + switch (status) { + case 1: + return '正常' + case 2: + return '停用' + default: + break; + } + } + }, + { + title: "备注", + dataIndex: "remake", + width: "300", + }, + { + title: "操作", + dataIndex: "action", + key: "action", + width: "180", + fixed: "right", + scopedSlots: { customRender: "action" }, + }, +] +// 搜索项 +export const searchForm = { + keyword: "", + departmentId: null, + positionId: null, +} +// 分页 +export const pagination = { + current: 1, + total: 0, + pageSize: 10, + showTotal: (total) => `共 ${total} 条`, + showSizeChanger: true, + showQuickJumper: true, +} \ No newline at end of file diff --git a/src/views/Basic/home/depend/form.vue b/src/views/Basic/home/depend/form.vue new file mode 100644 index 0000000..bb9aff5 --- /dev/null +++ b/src/views/Basic/home/depend/form.vue @@ -0,0 +1,427 @@ + + + + + diff --git a/src/views/Layout/index.vue b/src/views/Layout/index.vue index 4803245..37e12d6 100644 --- a/src/views/Layout/index.vue +++ b/src/views/Layout/index.vue @@ -40,13 +40,25 @@ export default { components: { yMenu, }, + mounted(){ + this.$router.push({ name: sessionStorage.getItem('routerName') }); + // this.tagActive = Number(sessionStorage.getItem('index')) + }, watch: { $route: { - handler(val) { - this.tags = val.matched; - }, - immediate: true, - }, + handler(val) { + this.tags = val.matched; + sessionStorage.setItem('routerName',val.name) + }, + immediate: true, + }, + tagActive:{ + handler(val) { + // console.log(val); + sessionStorage.setItem('modal',this.menuTags[val].value) + }, + immediate: true, + } }, data() { return { diff --git a/src/views/Login/index.vue b/src/views/Login/index.vue index 547de55..81ecc90 100644 --- a/src/views/Login/index.vue +++ b/src/views/Login/index.vue @@ -1,16 +1,8 @@ -