From 3211fce1acecc9a7eccc5c33662d2c7291acf502 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9Cyiyousong=E2=80=9D?= <鈥測ousong_yi@foxmail.com鈥�> Date: Sat, 18 Nov 2023 18:13:11 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- portal-manager-ui/admin/src/api/resource.js | 5 ++++ portal-manager-ui/admin/src/router/index.js | 11 ++++++++- .../admin/src/store/modules/user.js | 7 ++++++ .../admin/src/views/dataAdmin/dataAdmin.vue | 12 +++++++++- .../admin/src/views/signIn/signIn.vue | 23 ++++++++++++++++++- .../menuManagement/components/addEdit.vue | 4 ++-- .../permissionsModel/ResourceManage.vue | 17 +++++++++++++- .../components/AddResurce.vue | 12 ++++------ 8 files changed, 78 insertions(+), 13 deletions(-) diff --git a/portal-manager-ui/admin/src/api/resource.js b/portal-manager-ui/admin/src/api/resource.js index 4bd390e8..d1cf4d43 100644 --- a/portal-manager-ui/admin/src/api/resource.js +++ b/portal-manager-ui/admin/src/api/resource.js @@ -25,3 +25,8 @@ export function getRoleResourceList(params) { export function distributionSource(params) { return http.post(`${baseURL}/zwfw/role/auth/distributionSource`, params); } + +// 鑷姩鍒锋柊璧勬簮 +export function refreshUrl(params) { + return http.post(`${baseURL}/zwfw/resource/refreshUrl`, params); +} diff --git a/portal-manager-ui/admin/src/router/index.js b/portal-manager-ui/admin/src/router/index.js index 2dc90af5..d362a677 100644 --- a/portal-manager-ui/admin/src/router/index.js +++ b/portal-manager-ui/admin/src/router/index.js @@ -20,11 +20,16 @@ const router = new VueRouter({ base: process.env.BASE_URL, routes: routeConfig, }); - router.beforeEach((to, from, next) => { let islogin = store.getters["user/token"]; + // let routerPath = store.getters["user/routerList"]; + // let toRootPathArr = to.matched.map((v) => v.path); + // let bol = hasIntersection(toRootPathArr, routerPath); if (islogin) { next(); + // if (routerPath.includes(to.path) || bol) { + // next(); + // } } else { // 鍐嶆鍒ゆ柇闃叉姝诲惊鐜� if (to.path === "/") { @@ -35,6 +40,10 @@ router.beforeEach((to, from, next) => { } }); +// function hasIntersection(arr1, arr2) { +// return arr1.some((item) => arr2.includes(item)); +// } + router.afterEach((to, from, next) => { window.scrollTo(0, 0); }); diff --git a/portal-manager-ui/admin/src/store/modules/user.js b/portal-manager-ui/admin/src/store/modules/user.js index 8b91457e..4d7dd8aa 100644 --- a/portal-manager-ui/admin/src/store/modules/user.js +++ b/portal-manager-ui/admin/src/store/modules/user.js @@ -11,6 +11,7 @@ export default { siteName: "", // 绔欑偣鍚嶇О siteId: "", // 绔欑偣id searForm: {}, // 鎶ヨ〃鎼滅储 + routerList: [], // 鐢ㄦ埛鏉冮檺璺敱 }, getters: { siteId: (state) => state.siteId, @@ -22,8 +23,14 @@ export default { let { menuList = [] } = state.userData; return menuList; }, + routerList(state) { + return state.routerList; + }, }, mutations: { + SET_routerList(state, routerList) { + state.routerList = [...new Set([...state.routerList, ...routerList])]; + }, SET_USERDATA(state, data) { state.userData = data; }, diff --git a/portal-manager-ui/admin/src/views/dataAdmin/dataAdmin.vue b/portal-manager-ui/admin/src/views/dataAdmin/dataAdmin.vue index 1fb5497c..2eefcdb9 100644 --- a/portal-manager-ui/admin/src/views/dataAdmin/dataAdmin.vue +++ b/portal-manager-ui/admin/src/views/dataAdmin/dataAdmin.vue @@ -76,6 +76,7 @@ import Swiper from "swiper"; import { censusListInterface } from "@/api/dataAdmin"; import Storage from "@/utils/js/Storage"; +import { mapMutations } from "vuex"; export default { components: {}, data() { @@ -138,6 +139,7 @@ export default { this.initSwiper(); }, methods: { + ...mapMutations("user", ["SET_routerList"]), initSwiper() { this.mySwiper = new Swiper(".swiper-container", { speed: 1500, @@ -180,6 +182,7 @@ export default { CensusType_2: this.CensusType_2, CensusType_3: this.CensusType_3, }; + this.SET_routerList(this.getReportPath(censusObj)); let key = this.findFirstNonEmpty(censusObj); if (key) { this.active = key; @@ -189,7 +192,6 @@ export default { this.censusList = []; this.active = "CensusType_1"; if (this.$route.path != "/home/dataManagement") { - console.log(1); this.$router.push("/home/dataManagement"); } } @@ -203,6 +205,7 @@ export default { this.$router.push(this.censusList[0].censusUrl); } }, + // 鎵惧嚭绗竴涓笉涓虹┖鐨勬姤琛ㄧ被鍒� findFirstNonEmpty(obj) { for (let key in obj) { if (obj[key].length > 0) { @@ -211,6 +214,13 @@ export default { } return null; }, + // 鑾峰彇鎶ヨ〃璺敱 + getReportPath(obj = {}) { + let arr = Object.values(obj) + .flat() + .map((v) => v.censusUrl); + return arr; + }, changeRouter(path) { this.$router.push(path); }, diff --git a/portal-manager-ui/admin/src/views/signIn/signIn.vue b/portal-manager-ui/admin/src/views/signIn/signIn.vue index bd7c9d04..e331143b 100644 --- a/portal-manager-ui/admin/src/views/signIn/signIn.vue +++ b/portal-manager-ui/admin/src/views/signIn/signIn.vue @@ -326,7 +326,12 @@ export default { this.initSwiper(); }, methods: { - ...mapMutations("user", ["set_token", "SET_USERDATA", "set_siteList"]), + ...mapMutations("user", [ + "set_token", + "SET_USERDATA", + "set_siteList", + "SET_routerList", + ]), initSwiper() { this.mySwiper = new Swiper(".mySwiper", { effect: "cube", // 鏂瑰潡鍔ㄧ敾 @@ -377,6 +382,7 @@ export default { this.set_token(token); this.SET_USERDATA(user); this.set_siteList(siteList); + this.SET_routerList(this.getUrl(user.menuList)); if (siteList.length) { storage.set(2, "siteId", siteList[0].id); storage.set(2, "siteName", siteList[0].siteName); @@ -420,6 +426,21 @@ export default { } }); }, + + // 閫掑綊鑾峰彇鑿滃崟url + getUrl(menus = []) { + let urls = []; + let fn = (arr) => { + arr.forEach((v) => { + urls.push(v.url); + if (v.childList && v.childList.length) { + fn(v.childList); + } + }); + }; + fn(menus); + return urls; + }, }, }; </script> diff --git a/portal-manager-ui/admin/src/views/thePlatformIsSet/components/menuManagement/components/addEdit.vue b/portal-manager-ui/admin/src/views/thePlatformIsSet/components/menuManagement/components/addEdit.vue index d8f4f36f..13e7f64e 100644 --- a/portal-manager-ui/admin/src/views/thePlatformIsSet/components/menuManagement/components/addEdit.vue +++ b/portal-manager-ui/admin/src/views/thePlatformIsSet/components/menuManagement/components/addEdit.vue @@ -225,7 +225,7 @@ export default { imgPath: [ //鍥炬爣 { - required: true, //鏄惁蹇呴€� + required: false, //鏄惁蹇呴€� message: "璇烽€夋嫨鍥炬爣", trigger: "change", }, @@ -245,7 +245,7 @@ export default { remark: [ //鎻忚堪 { - required: true, //鏄惁蹇呴€� + required: false, //鏄惁蹇呴€� message: "璇疯緭鍏ユ弿杩�", trigger: "blur", }, diff --git a/portal-manager-ui/admin/src/views/thePlatformIsSet/components/permissionsModel/ResourceManage.vue b/portal-manager-ui/admin/src/views/thePlatformIsSet/components/permissionsModel/ResourceManage.vue index 1965383e..3115780b 100644 --- a/portal-manager-ui/admin/src/views/thePlatformIsSet/components/permissionsModel/ResourceManage.vue +++ b/portal-manager-ui/admin/src/views/thePlatformIsSet/components/permissionsModel/ResourceManage.vue @@ -6,6 +6,13 @@ <a-button type="primary" class="addclass" @click="addSresource" >鏂板璧勬簮</a-button > + <a-button + v-permission="[1]" + type="primary" + class="addclass" + @click="refSresource" + >鍒锋柊璧勬簮</a-button + > <a-button type="danger" @click="delAll">鎵归噺鍒犻櫎</a-button> </a-space> <a-space> @@ -84,7 +91,7 @@ </template> <script> -import { getResourceList, delResource } from "@/api/resource"; +import { getResourceList, delResource, refreshUrl } from "@/api/resource"; import AddResurce from "./components/AddResurce.vue"; export default { components: { @@ -242,6 +249,14 @@ export default { }, }); }, + // 鍒锋柊璧勬簮 + async refSresource() { + let res = await refreshUrl(); + if (res.code == 1) { + this.$message.success(res.msg); + this.getResourceList(); + } + }, }, }; </script> diff --git a/portal-manager-ui/admin/src/views/thePlatformIsSet/components/permissionsModel/components/AddResurce.vue b/portal-manager-ui/admin/src/views/thePlatformIsSet/components/permissionsModel/components/AddResurce.vue index cffe2ebc..8890d712 100644 --- a/portal-manager-ui/admin/src/views/thePlatformIsSet/components/permissionsModel/components/AddResurce.vue +++ b/portal-manager-ui/admin/src/views/thePlatformIsSet/components/permissionsModel/components/AddResurce.vue @@ -36,7 +36,7 @@ > </a-select> </a-form-model-item> - <a-form-model-item label="閾炬帴鍦板潃" prop="url"> + <a-form-model-item label="閾炬帴鍦板潃"> <a-form-model-item class="url-params" v-for="(v, i) in form.urls" @@ -133,11 +133,12 @@ export default { onEdit(row) { setTimeout(() => { this.form = { ...row }; - this.form.urls = this.form.url.map((v) => { + let arr = this.form.url.map((v) => { return { value: v, }; }); + this.$set(this.form, "urls", arr); }, 10); }, subForm() { @@ -186,16 +187,13 @@ export default { } else { this.form.urls.splice(index, 1); } + // this.$forceUpdate(); }, resetForm() { // 閲嶇疆杩樺師琛ㄥ崟淇℃伅鍐呭 this.$refs.form.resetFields(); - this.form.urls = [ - { - value: "", - }, - ]; + this.$set(this.form, "urls", [{ value: "" }]); }, handleCancel() { this.resetForm(); -- 2.24.3