import { menuList } from "@/api/menuMgmt.js"; import { deepClone, toTreeData, getItemData } from "@/utils/js/common.js"; import { mapGetters, mapMutations } from "vuex"; export default { data() { return { MenuDict: {}, menuListData: [], //简单结构 menuTreeData: [], //树型结构 tablePagination: { current: 1, pageSize: 10, total: 20, showQuickJumper: true, //是否可以快速跳转至某页 showSizeChanger: true, //是否可以改变 pageSize showTotal: (total, range) => `共${total}条`, pageSizeOptions: ["10", "20", "30"], }, }; }, computed: { menuRouterList() { return this.$router.options.routes .filter((v) => v.name == "home")[0] .children.map((k) => { return { title: k.meta.title, routerPath: k.path, }; }); }, ...mapGetters("menu", ["menuList_X", "menuTree_X"]), ...mapGetters("user", ["censusList_X", "appsList_X"]), MenuChildren() { let routerPath = this.$route.path.substr( this.$route.path.lastIndexOf("/") + 1 ); let result = getItemData(this.menuTree_X, "routerPath", routerPath); return result ? result : { children: [] }; }, }, created() {}, beforeDestroy() {}, methods: { ...mapMutations("menu", ["SET_menuList_X", "SET_menuTree_X"]), getMenuList(isFirst = false) { let obj = { page: this.tablePagination.current, //当前页 size: this.tablePagination.pageSize, //每页条数 }; if (isFirst) { obj = { page: 1, //-1 全部数据 size: -1, //-1 全部数据 }; } menuList(obj).then((res) => { // console.log(res); let { code, data, dict } = res; if (code == 1) { data.data = data.data.map((item) => { this.menuRouterList.forEach((v) => { if (v["title"] == item.name) { item["routerPath"] = v["routerPath"]; } }); item["value"] = item.id; item["label"] = item.name; return item; }); // console.log(data.data); // this.$message.success(res.msg); this.tablePagination.current = data.current_page; this.tablePagination.total = data.total; this.menuListData = data.data; this.menuTreeData = toTreeData(data.data, -1, "id", "parentId"); this.SET_menuList_X(deepClone(this.menuListData)); this.SET_menuTree_X(deepClone(this.menuTreeData)); this.MenuDict = dict; this.MenuDict["MenuTree"] = deepClone(this.menuTreeData); // console.log(this.menuListData); // console.log(this.menuTreeData); // this.getMenuDict(); //弃用 } }); }, getMenuDict() { //目前只有三级 一级查询条件-1 let list = deepClone(this.menuListData); let obj = list.sort((a, b) => { return parseFloat(b["parentId"]) - parseFloat(a["parentId"]); })[0]; Promise.all([ // 一级菜单字典 menuList({ parentId: -1, }), // 二级菜单字典 menuList({ parentId: obj["firstMenuId"], }), // 三级菜单字典 menuList({ parentId: obj["secondMenuId"], }), ]) .then((res) => { // 一级菜单字典 this.MenuDict["firstLevelOptions"] = res[0].data.data; // 二级菜单字典 this.MenuDict["secondLevelOptions"] = res[1].data.data; // 三级菜单字典 this.MenuDict["thirdLevelOptions"] = res[2].data.data; // console.log(this.MenuDict); }) .catch((err) => { // console.log(err); }); }, }, };