From 6dde1e41c03698fd5520f8bf5abb55173b060d51 Mon Sep 17 00:00:00 2001
From: zuozhengqing <a13193816592@163.com>
Date: 星期二, 12 十二月 2023 18:50:34 +0800
Subject: [PATCH] 新增无权限展示页
---
src/assets/img/noJurisdiction.png | 0
src/views/NoData/index.vue | 62 ++++++++++++++++++++
vue.config.js | 6 +
src/components/layout/components/appsidebar/index.vue | 39 ++++++-------
src/router/index.js | 12 ++++
src/api/menus/index.js | 10 +++
6 files changed, 107 insertions(+), 22 deletions(-)
diff --git a/src/api/menus/index.js b/src/api/menus/index.js
new file mode 100644
index 0000000..79af122
--- /dev/null
+++ b/src/api/menus/index.js
@@ -0,0 +1,10 @@
+import request from "@/common/untils/request.js"
+
+// 宸︿晶鑿滃崟
+export function getMenuTreeByRole(data) {
+ return request({
+ url: "/api/menu/getMenuTreeByRole",
+ method: "get",
+ data
+ })
+}
\ No newline at end of file
diff --git a/src/assets/img/noJurisdiction.png b/src/assets/img/noJurisdiction.png
new file mode 100644
index 0000000..9e6f432
--- /dev/null
+++ b/src/assets/img/noJurisdiction.png
Binary files differ
diff --git a/src/components/layout/components/appsidebar/index.vue b/src/components/layout/components/appsidebar/index.vue
index 96653ac..53edca9 100644
--- a/src/components/layout/components/appsidebar/index.vue
+++ b/src/components/layout/components/appsidebar/index.vue
@@ -16,47 +16,44 @@
text-color="#bfcbd9"
active-text-color="#fff"
>
- <el-submenu index="1">
+ <el-submenu v-for="item in menus" :key="item.id" :index="item.id">
<template slot="title">
<i class="el-icon-money icon"></i>
- <span>渚涘簲鍟嗙鐞�</span>
+ <span>{{item.title}}</span>
</template>
- <el-menu-item index="/supplierManage/supplier">渚涘簲鍟�</el-menu-item>
+ <el-menu-item v-for="itm in item.children" :key="itm.id" :index="itm.path">{{itm.title}}</el-menu-item>
</el-submenu>
- <el-submenu index="2">
- <template slot="title">
- <i class="el-icon-phone-outline icon"></i>
- <span>閲囪喘绠$悊</span>
- </template>
- <el-menu-item index="/purchaseManage/purchase">閲囪喘璁㈠崟</el-menu-item>
- <!-- <el-menu-item index="/purchaseManage/quality">閲囪喘璐ㄦ鍗�</el-menu-item> -->
- <!-- <el-menu-item index="/purchaseManage/warehouse">閲囪喘鍏ュ簱鍗�</el-menu-item> -->
- <!-- <el-menu-item index="/purchaseManage/returned">閲囪喘閫�璐у崟</el-menu-item> -->
- </el-submenu>
- <el-submenu index="3">
- <template slot="title">
- <i class="el-icon-service icon"></i>
- <span>浜у搧绠$悊</span>
- </template>
- <el-menu-item index="/productManage/product">浜у搧绠$悊</el-menu-item>
- </el-submenu>
+
</el-menu>
</div>
</div>
</template>
<script>
+import {getMenuTreeByRole} from "@/api/menus/index"
export default {
name: "AppSidebar",
props: {},
data() {
- return {}
+ return {
+ menus:[]
+ }
},
watch: {},
created() {
this.initNavMenu()
+ this.getMenuTreeByRole()
},
methods: {
+ getMenuTreeByRole(){
+ getMenuTreeByRole().then((res)=>{
+ res.data.list.map((item)=>{
+ if(item.systemType===4){
+ this.menus=item.menus
+ }
+ })
+ })
+ },
// 鐩戝惉璺敱
initNavMenu() {
// console.log(this.$route.name)
diff --git a/src/router/index.js b/src/router/index.js
index 4834a64..c98cba4 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -12,8 +12,20 @@
const purchaseManage = (resolve) => require(["@/views/purchaseManage/index"], resolve)
const productManage = (resolve) => require(["@/views/productManage/index"], resolve)
const PreviewFile = (resolve) => require(["@/views/supplierManage/supplier/PreviewFile"], resolve)
+const noData = (resolve) => require(["@/views/NoData/index"], resolve)
+
export const routes = [
+ // 鏃犳暟鎹〉闈�
+ {
+ path: "/",
+ name: "NoData",
+ meta: {
+ title: "",
+ auth: true,
+ },
+ component: noData,
+ },
{
path: "supplierManage", // 渚涘簲鍟嗙鐞�
name: "supplierManage",
diff --git a/src/views/NoData/index.vue b/src/views/NoData/index.vue
new file mode 100644
index 0000000..1a7d65f
--- /dev/null
+++ b/src/views/NoData/index.vue
@@ -0,0 +1,62 @@
+<template>
+ <d2-container>
+ <div class="content">
+ <el-empty :image="require('@/assets/img/noJurisdiction.png')" description="鎮ㄥ皻鏈幏寰楄闂潈闄愩��">
+ <p>璇锋偍鑱旂郴涓昏处鍙风櫥褰曡闂帶鍒讹紝涓烘偍鎺堜簣鏈嶅姟鐨勭浉鍏虫潈闄愩��</p>
+ </el-empty>
+ </div>
+ </d2-container>
+</template>
+
+<script>
+
+export default {
+ name: "NoData",
+ components: {
+ },
+
+ computed: {
+
+ },
+ data() {
+ return {
+
+ };
+ },
+ mounted() {},
+ methods: {
+
+ },
+};
+</script>
+
+<style lang="scss" scoped>
+
+// 鏄剧ず鍒楄〃
+.content {
+ width: 100%;
+ height:100%;
+ min-height: 300px;
+ overflow: hidden;
+ background:#fff;
+ padding:30px 0;
+ border-radius: 4px;
+ .el-empty{
+ width: 100%;
+ height:calc(100% - 280px);
+ p{
+ margin: 0;
+ font-size: 14px;
+ color: #909399;
+ }
+ }
+}
+
+::v-deep .el-empty__bottom{
+ margin: 0 !important;
+}
+::v-deep .el-empty__description{
+ margin: 0 !important;
+
+}
+</style>
diff --git a/vue.config.js b/vue.config.js
index b48fa64..d8343db 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -13,12 +13,16 @@
productionSourceMap: false, // 濡傛灉浣犱笉闇�瑕佺敓浜х幆澧冪殑source map, 鍙互灏嗗叾璁剧疆涓篺alse 浠ュ姞閫熺敓浜х幆澧冩瀯寤�
devServer: {
proxy: {
+ "/api/menu":{
+ target:"http://192.168.20.119:8001",
+ ws: true,
+ changeOrigin: true
+ },
"/api": {
// target: "http://192.168.20.118:8889", // http://192.168.20.119:8002 http://fai365.com:30150/
// target: "http://192.168.20.120:8004",
target: "http://192.168.20.119:8004", // http://192.168.20.119:8004 http://fai365.com:30150/
-
ws: true,
changeOrigin: true
}
--
Gitblit v1.8.0