From 2dda26067c2e0b2ed02b020f426fb27f7731f6d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AE=B8=E5=AE=8F=E6=9D=B0?= <1943105267@qq.com> Date: Thu, 10 Aug 2023 17:30:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=BA=E5=9F=9F=E5=AD=97=E5=85=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/zongzhi/town/index.js | 9 ++ src/store/getters.js | 37 +++--- src/store/modules/user.js | 147 +++++++++++++-------- src/views/netSecurity/DataSource/index.vue | 25 +++- 4 files changed, 142 insertions(+), 76 deletions(-) create mode 100644 src/api/zongzhi/town/index.js diff --git a/src/api/zongzhi/town/index.js b/src/api/zongzhi/town/index.js new file mode 100644 index 0000000..02e558e --- /dev/null +++ b/src/api/zongzhi/town/index.js @@ -0,0 +1,9 @@ +import request from "@/utils/request"; + +export function listTown(query) { + return request({ + url: "/zongzhi/town/list", + method: "get", + params: query, + }); +} diff --git a/src/store/getters.js b/src/store/getters.js index 8adb1b6..24646df 100644 --- a/src/store/getters.js +++ b/src/store/getters.js @@ -1,19 +1,20 @@ const getters = { - sidebar: state => state.app.sidebar, - size: state => state.app.size, - device: state => state.app.device, - dict: state => state.dict.dict, - visitedViews: state => state.tagsView.visitedViews, - cachedViews: state => state.tagsView.cachedViews, - token: state => state.user.token, - avatar: state => state.user.avatar, - name: state => state.user.name, - introduction: state => state.user.introduction, - roles: state => state.user.roles, - permissions: state => state.user.permissions, - permission_routes: state => state.permission.routes, - topbarRouters:state => state.permission.topbarRouters, - defaultRoutes:state => state.permission.defaultRoutes, - sidebarRouters:state => state.permission.sidebarRouters, -} -export default getters + sidebar: (state) => state.app.sidebar, + size: (state) => state.app.size, + device: (state) => state.app.device, + dict: (state) => state.dict.dict, + visitedViews: (state) => state.tagsView.visitedViews, + cachedViews: (state) => state.tagsView.cachedViews, + token: (state) => state.user.token, + avatar: (state) => state.user.avatar, + name: (state) => state.user.name, + introduction: (state) => state.user.introduction, + roles: (state) => state.user.roles, + permissions: (state) => state.user.permissions, + permission_routes: (state) => state.permission.routes, + topbarRouters: (state) => state.permission.topbarRouters, + defaultRoutes: (state) => state.permission.defaultRoutes, + sidebarRouters: (state) => state.permission.sidebarRouters, + townList: (state) => state.user.townList, +}; +export default getters; diff --git a/src/store/modules/user.js b/src/store/modules/user.js index ab0a6fe..26d8dbf 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -1,96 +1,131 @@ -import { login, logout, getInfo } from '@/api/login' -import { getToken, setToken, removeToken } from '@/utils/auth' +import { login, logout, getInfo } from "@/api/login"; +import { getToken, setToken, removeToken } from "@/utils/auth"; +import { listTown } from "@/api/zongzhi/town/index.js"; const user = { state: { token: getToken(), - name: '', - avatar: '', + name: "", + avatar: "", roles: [], - permissions: [] + permissions: [], + townList: [], }, mutations: { SET_TOKEN: (state, token) => { - state.token = token + state.token = token; }, SET_NAME: (state, name) => { - state.name = name + state.name = name; }, SET_AVATAR: (state, avatar) => { - state.avatar = avatar + state.avatar = avatar; }, SET_ROLES: (state, roles) => { - state.roles = roles + state.roles = roles; }, SET_PERMISSIONS: (state, permissions) => { - state.permissions = permissions - } + state.permissions = permissions; + }, + SET_TOWN: (state, town) => { + state.townList = town; + }, }, actions: { // 登录 Login({ commit }, userInfo) { - const username = userInfo.username.trim() - const password = userInfo.password - const code = userInfo.code - const uuid = userInfo.uuid + const username = userInfo.username.trim(); + const password = userInfo.password; + const code = userInfo.code; + const uuid = userInfo.uuid; return new Promise((resolve, reject) => { - login(username, password, code, uuid).then(res => { - setToken(res.token) - commit('SET_TOKEN', res.token) - resolve() - }).catch(error => { - reject(error) - }) - }) + login(username, password, code, uuid) + .then((res) => { + setToken(res.token); + commit("SET_TOKEN", res.token); + resolve(); + }) + .catch((error) => { + reject(error); + }); + }); }, // 获取用户信息 GetInfo({ commit, state }) { return new Promise((resolve, reject) => { - getInfo().then(res => { - const user = res.user - const avatar = (user.avatar == "" || user.avatar == null) ? require("@/assets/images/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar; - if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组 - commit('SET_ROLES', res.roles) - commit('SET_PERMISSIONS', res.permissions) - } else { - commit('SET_ROLES', ['ROLE_DEFAULT']) - } - commit('SET_NAME', user.userName) - commit('SET_AVATAR', avatar) - resolve(res) - }).catch(error => { - reject(error) - }) - }) + getInfo() + .then((res) => { + const user = res.user; + const avatar = + user.avatar == "" || user.avatar == null + ? require("@/assets/images/profile.jpg") + : process.env.VUE_APP_BASE_API + user.avatar; + if (res.roles && res.roles.length > 0) { + // 验证返回的roles是否是一个非空数组 + commit("SET_ROLES", res.roles); + commit("SET_PERMISSIONS", res.permissions); + } else { + commit("SET_ROLES", ["ROLE_DEFAULT"]); + } + commit("SET_NAME", user.userName); + commit("SET_AVATAR", avatar); + getownList().then((res) => { + commit("SET_TOWN", res); + }); + resolve(res); + }) + .catch((error) => { + reject(error); + }); + }); }, // 退出系统 LogOut({ commit, state }) { return new Promise((resolve, reject) => { - logout(state.token).then(() => { - commit('SET_TOKEN', '') - commit('SET_ROLES', []) - commit('SET_PERMISSIONS', []) - removeToken() - resolve() - }).catch(error => { - reject(error) - }) - }) + logout(state.token) + .then(() => { + commit("SET_TOKEN", ""); + commit("SET_ROLES", []); + commit("SET_PERMISSIONS", []); + removeToken(); + resolve(); + }) + .catch((error) => { + reject(error); + }); + }); }, // 前端 登出 FedLogOut({ commit }) { - return new Promise(resolve => { - commit('SET_TOKEN', '') - removeToken() - resolve() + return new Promise((resolve) => { + commit("SET_TOKEN", ""); + removeToken(); + resolve(); + }); + }, + }, +}; +// 获取各镇/村 + +function getownList() { + return new Promise((resolve, reject) => { + let lsit = []; + listTown({ pageNum: 1, pageSize: 200 }) + .then((res) => { + res.rows.forEach((item) => { + lsit.push({ value: item.id, label: item.name }); + }); + resolve(lsit); }) - } - } + .catch((error) => { + reject(error); + }); + }); } -export default user +export default user; diff --git a/src/views/netSecurity/DataSource/index.vue b/src/views/netSecurity/DataSource/index.vue index c1da0f3..457dc81 100644 --- a/src/views/netSecurity/DataSource/index.vue +++ b/src/views/netSecurity/DataSource/index.vue @@ -175,8 +175,15 @@ label-width="auto" class="dialog-from" > - - + + + + @@ -321,6 +328,7 @@