Commit 79ba1c58 authored by 赵啸非's avatar 赵啸非

Merge remote-tracking branch 'origin/master'

parents 211b2499 8c2fabbd
...@@ -25,3 +25,8 @@ export function getRoleResourceList(params) { ...@@ -25,3 +25,8 @@ export function getRoleResourceList(params) {
export function distributionSource(params) { export function distributionSource(params) {
return http.post(`${baseURL}/zwfw/role/auth/distributionSource`, params); return http.post(`${baseURL}/zwfw/role/auth/distributionSource`, params);
} }
// 自动刷新资源
export function refreshUrl(params) {
return http.post(`${baseURL}/zwfw/resource/refreshUrl`, params);
}
...@@ -20,11 +20,16 @@ const router = new VueRouter({ ...@@ -20,11 +20,16 @@ const router = new VueRouter({
base: process.env.BASE_URL, base: process.env.BASE_URL,
routes: routeConfig, routes: routeConfig,
}); });
router.beforeEach((to, from, next) => { router.beforeEach((to, from, next) => {
let islogin = store.getters["user/token"]; 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) { if (islogin) {
next(); next();
// if (routerPath.includes(to.path) || bol) {
// next();
// }
} else { } else {
// 再次判断防止死循环 // 再次判断防止死循环
if (to.path === "/") { if (to.path === "/") {
...@@ -35,6 +40,10 @@ router.beforeEach((to, from, next) => { ...@@ -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) => { router.afterEach((to, from, next) => {
window.scrollTo(0, 0); window.scrollTo(0, 0);
}); });
......
...@@ -11,6 +11,7 @@ export default { ...@@ -11,6 +11,7 @@ export default {
siteName: "", // 站点名称 siteName: "", // 站点名称
siteId: "", // 站点id siteId: "", // 站点id
searForm: {}, // 报表搜索 searForm: {}, // 报表搜索
routerList: [], // 用户权限路由
}, },
getters: { getters: {
siteId: (state) => state.siteId, siteId: (state) => state.siteId,
...@@ -22,8 +23,14 @@ export default { ...@@ -22,8 +23,14 @@ export default {
let { menuList = [] } = state.userData; let { menuList = [] } = state.userData;
return menuList; return menuList;
}, },
routerList(state) {
return state.routerList;
},
}, },
mutations: { mutations: {
SET_routerList(state, routerList) {
state.routerList = [...new Set([...state.routerList, ...routerList])];
},
SET_USERDATA(state, data) { SET_USERDATA(state, data) {
state.userData = data; state.userData = data;
}, },
......
...@@ -76,6 +76,7 @@ ...@@ -76,6 +76,7 @@
import Swiper from "swiper"; import Swiper from "swiper";
import { censusListInterface } from "@/api/dataAdmin"; import { censusListInterface } from "@/api/dataAdmin";
import Storage from "@/utils/js/Storage"; import Storage from "@/utils/js/Storage";
import { mapMutations } from "vuex";
export default { export default {
components: {}, components: {},
data() { data() {
...@@ -138,6 +139,7 @@ export default { ...@@ -138,6 +139,7 @@ export default {
this.initSwiper(); this.initSwiper();
}, },
methods: { methods: {
...mapMutations("user", ["SET_routerList"]),
initSwiper() { initSwiper() {
this.mySwiper = new Swiper(".swiper-container", { this.mySwiper = new Swiper(".swiper-container", {
speed: 1500, speed: 1500,
...@@ -180,6 +182,7 @@ export default { ...@@ -180,6 +182,7 @@ export default {
CensusType_2: this.CensusType_2, CensusType_2: this.CensusType_2,
CensusType_3: this.CensusType_3, CensusType_3: this.CensusType_3,
}; };
this.SET_routerList(this.getReportPath(censusObj));
let key = this.findFirstNonEmpty(censusObj); let key = this.findFirstNonEmpty(censusObj);
if (key) { if (key) {
this.active = key; this.active = key;
...@@ -189,7 +192,6 @@ export default { ...@@ -189,7 +192,6 @@ export default {
this.censusList = []; this.censusList = [];
this.active = "CensusType_1"; this.active = "CensusType_1";
if (this.$route.path != "/home/dataManagement") { if (this.$route.path != "/home/dataManagement") {
console.log(1);
this.$router.push("/home/dataManagement"); this.$router.push("/home/dataManagement");
} }
} }
...@@ -203,6 +205,7 @@ export default { ...@@ -203,6 +205,7 @@ export default {
this.$router.push(this.censusList[0].censusUrl); this.$router.push(this.censusList[0].censusUrl);
} }
}, },
// 找出第一个不为空的报表类别
findFirstNonEmpty(obj) { findFirstNonEmpty(obj) {
for (let key in obj) { for (let key in obj) {
if (obj[key].length > 0) { if (obj[key].length > 0) {
...@@ -211,6 +214,13 @@ export default { ...@@ -211,6 +214,13 @@ export default {
} }
return null; return null;
}, },
// 获取报表路由
getReportPath(obj = {}) {
let arr = Object.values(obj)
.flat()
.map((v) => v.censusUrl);
return arr;
},
changeRouter(path) { changeRouter(path) {
this.$router.push(path); this.$router.push(path);
}, },
......
...@@ -326,7 +326,12 @@ export default { ...@@ -326,7 +326,12 @@ export default {
this.initSwiper(); this.initSwiper();
}, },
methods: { methods: {
...mapMutations("user", ["set_token", "SET_USERDATA", "set_siteList"]), ...mapMutations("user", [
"set_token",
"SET_USERDATA",
"set_siteList",
"SET_routerList",
]),
initSwiper() { initSwiper() {
this.mySwiper = new Swiper(".mySwiper", { this.mySwiper = new Swiper(".mySwiper", {
effect: "cube", // 方块动画 effect: "cube", // 方块动画
...@@ -377,6 +382,7 @@ export default { ...@@ -377,6 +382,7 @@ export default {
this.set_token(token); this.set_token(token);
this.SET_USERDATA(user); this.SET_USERDATA(user);
this.set_siteList(siteList); this.set_siteList(siteList);
this.SET_routerList(this.getUrl(user.menuList));
if (siteList.length) { if (siteList.length) {
storage.set(2, "siteId", siteList[0].id); storage.set(2, "siteId", siteList[0].id);
storage.set(2, "siteName", siteList[0].siteName); storage.set(2, "siteName", siteList[0].siteName);
...@@ -420,6 +426,21 @@ export default { ...@@ -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> </script>
......
...@@ -225,7 +225,7 @@ export default { ...@@ -225,7 +225,7 @@ export default {
imgPath: [ imgPath: [
//图标 //图标
{ {
required: true, //是否必选 required: false, //是否必选
message: "请选择图标", message: "请选择图标",
trigger: "change", trigger: "change",
}, },
...@@ -245,7 +245,7 @@ export default { ...@@ -245,7 +245,7 @@ export default {
remark: [ remark: [
//描述 //描述
{ {
required: true, //是否必选 required: false, //是否必选
message: "请输入描述", message: "请输入描述",
trigger: "blur", trigger: "blur",
}, },
......
...@@ -6,6 +6,13 @@ ...@@ -6,6 +6,13 @@
<a-button type="primary" class="addclass" @click="addSresource" <a-button type="primary" class="addclass" @click="addSresource"
>新增资源</a-button >新增资源</a-button
> >
<a-button
v-permission="[1]"
type="primary"
class="addclass"
@click="refSresource"
>刷新资源</a-button
>
<a-button type="danger" @click="delAll">批量删除</a-button> <a-button type="danger" @click="delAll">批量删除</a-button>
</a-space> </a-space>
<a-space> <a-space>
...@@ -84,7 +91,7 @@ ...@@ -84,7 +91,7 @@
</template> </template>
<script> <script>
import { getResourceList, delResource } from "@/api/resource"; import { getResourceList, delResource, refreshUrl } from "@/api/resource";
import AddResurce from "./components/AddResurce.vue"; import AddResurce from "./components/AddResurce.vue";
export default { export default {
components: { components: {
...@@ -242,6 +249,14 @@ export default { ...@@ -242,6 +249,14 @@ export default {
}, },
}); });
}, },
// 刷新资源
async refSresource() {
let res = await refreshUrl();
if (res.code == 1) {
this.$message.success(res.msg);
this.getResourceList();
}
},
}, },
}; };
</script> </script>
......
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
> >
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
<a-form-model-item label="链接地址" prop="url"> <a-form-model-item label="链接地址">
<a-form-model-item <a-form-model-item
class="url-params" class="url-params"
v-for="(v, i) in form.urls" v-for="(v, i) in form.urls"
...@@ -133,11 +133,12 @@ export default { ...@@ -133,11 +133,12 @@ export default {
onEdit(row) { onEdit(row) {
setTimeout(() => { setTimeout(() => {
this.form = { ...row }; this.form = { ...row };
this.form.urls = this.form.url.map((v) => { let arr = this.form.url.map((v) => {
return { return {
value: v, value: v,
}; };
}); });
this.$set(this.form, "urls", arr);
}, 10); }, 10);
}, },
subForm() { subForm() {
...@@ -186,16 +187,13 @@ export default { ...@@ -186,16 +187,13 @@ export default {
} else { } else {
this.form.urls.splice(index, 1); this.form.urls.splice(index, 1);
} }
// this.$forceUpdate();
}, },
resetForm() { resetForm() {
// 重置还原表单信息内容 // 重置还原表单信息内容
this.$refs.form.resetFields(); this.$refs.form.resetFields();
this.form.urls = [ this.$set(this.form, "urls", [{ value: "" }]);
{
value: "",
},
];
}, },
handleCancel() { handleCancel() {
this.resetForm(); this.resetForm();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment