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 @@
+
+
+
+ 基本信息
+
+
+
+
+
+
+
+
+
+
+ {{
+ item.name
+ }}
+
+
+
+
+
+
+
+
+
+
+ {
+ $refs.tel.onFieldBlur();
+ }
+ "
+ />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 身份证照片
+
+
+
+
+
+
+ 单张最多不超过4M,最多上传2张,支持JPG,PNG格式
+
+ 入职信息
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 上传资料
+
+ 点击上传
+
+ 支持上传PNG,JPG,PDF文件
+
+
+ 联系信息
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 其他信息
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
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 @@
-
-
智慧小区平台
+
智慧小区后台管理系统
@@ -19,42 +11,84 @@
-->
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
新建账号
@@ -83,31 +117,28 @@
-
+
-
+
-
- 确定
-
+ 确定
- 已有账号?登录
+ 已有账号?登录
-
+
找回密码
@@ -136,18 +167,17 @@
-
+
-
+
-
- 确定
-
+ 确定
- 已有账号?登录
+ 已有账号?登录
@@ -157,77 +187,108 @@