From 23811de7f45e5c40136be9dd072b448334db3e66 Mon Sep 17 00:00:00 2001
From: zuozhengqing <a13193816592@163.com>
Date: 星期二, 12 十二月 2023 18:52:05 +0800
Subject: [PATCH] 新增无权限展示页

---
 src/assets/img/noJurisdiction.png                     |    0 
 src/common/untils/request.js                          |    8 +-
 src/views/NoData/index.vue                            |   62 ++++++++++++++++++++
 vue.config.js                                         |    7 ++
 src/components/layout/components/appsidebar/index.vue |   53 +++++++----------
 src/router/index.js                                   |   11 +++
 src/api/menus/index.js                                |   10 +++
 7 files changed, 118 insertions(+), 33 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/common/untils/request.js b/src/common/untils/request.js
index 9cb4874..0911d0d 100644
--- a/src/common/untils/request.js
+++ b/src/common/untils/request.js
@@ -33,7 +33,7 @@
         prod:`//${window.location.hostname}:9080`,
         test:`//192.168.20.119:9080`,
         // 鎯宠烦鍒版湰鍦板惎鍔ㄧ殑鐧诲綍椤电殑璇濋渶瑕佹妸dev鏀规垚浣犳湰鍦伴」鐩矾寰�
-        dev: `//192.168.20.124:8081`
+        dev: `//192.168.8.111:8081`
     }
 
     return loginPathMap[environmentType()]
@@ -70,7 +70,8 @@
       return res
     } else if([2012,2013,2014,2015].includes(res.data.code)){
       if (isDev){
-          alert("JWT澶辨晥")
+        alert("JWT澶辨晥")
+        window.location = getApsPage()+'/'
       }else {
         //   JWT閴存潈澶辨晥 璺宠浆鍒扮櫥褰曢〉
         window.location = getApsPage()+'/login'
@@ -88,7 +89,8 @@
   (error) => {
     if (error.response.status === 401){
       if (isDev){
-          alert("JWT澶辨晥")
+        alert("JWT澶辨晥")
+        window.location = getApsPage()+'/'
       }else {
         //   JWT閴存潈澶辨晥 璺宠浆鍒扮櫥褰曢〉
         window.location = getApsPage()+'/login'
diff --git a/src/components/layout/components/appsidebar/index.vue b/src/components/layout/components/appsidebar/index.vue
index ddcb6f1..a3e7990 100644
--- a/src/components/layout/components/appsidebar/index.vue
+++ b/src/components/layout/components/appsidebar/index.vue
@@ -13,41 +13,20 @@
         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="/client/salesLead">閿�鍞嚎绱�</el-menu-item>
+          <el-menu-item v-for="itm in item.children" :key="itm.id" :index="itm.path">{{ itm.title }}</el-menu-item>
+          
+          <!-- <el-menu-item index="/client/salesLead">閿�鍞嚎绱�</el-menu-item>
           <el-menu-item index="/client/clientManage">瀹㈡埛绠$悊</el-menu-item>
           <el-menu-item index="/client/contacts">鑱旂郴浜�</el-menu-item>
-          <el-menu-item index="/client/followupRecords">璺熻繘璁板綍</el-menu-item>
+          <el-menu-item index="/client/followupRecords">璺熻繘璁板綍</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="/sales/salesOpportunity">閿�鍞満浼�</el-menu-item>
-          <el-menu-item index="/sales/quotation">鎶ヤ环鍗�</el-menu-item>
-          <el-menu-item index="/sales/masterOrder">閿�鍞�诲崟</el-menu-item>
-          <el-menu-item index="/sales/subOrder">閿�鍞瓙鍗�</el-menu-item>
-          <el-menu-item index="/sales/salesDetails">閿�鍞槑缁嗗崟</el-menu-item>
-          <el-menu-item index="/sales/salesReturn">閿�鍞��璐у崟</el-menu-item>
-          <el-menu-item index="/sales/refundForm">閿�鍞��娆惧崟</el-menu-item>
-          <el-menu-item index="/sales/contractManage">鍚堝悓绠$悊</el-menu-item>
-          <!-- <el-menu-item index="/sales/generatePlan">鐢熸垚璁″垝</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="/service/serviceContract">鏈嶅姟鍚堝悓</el-menu-item>
-          <el-menu-item index="/service/clientServiceOrder">瀹㈡埛鏈嶅姟鍗�</el-menu-item>
-          <el-menu-item index="/service/serviceFollowup">鏈嶅姟鍥炶鍗�</el-menu-item>
-          <!-- <el-menu-item index="/service/serviceFeeManage">鏈嶅姟鏀惰垂绠$悊</el-menu-item> -->
-        </el-submenu>
+        
+
         <!-- <el-submenu index="4">
           <template slot="title">
             <i class="el-icon-location"></i>
@@ -62,11 +41,14 @@
 </template>
 
 <script>
+import {getMenuTreeByRole} from "@/api/menus/index"
 export default {
   name: "AppSidebar",
   props: {},
   data() {
-    return {}
+    return {
+      menus:[]
+    }
   },
   watch: {
     // $route: {
@@ -76,8 +58,19 @@
   },
   created() {
     this.initNavMenu()
+    this.getMenuTreeByRole()
   },
   methods: {
+    getMenuTreeByRole(){
+      getMenuTreeByRole().then((res)=>{
+        console.log(res.data.list,"crm鑿滃崟")
+        res.data.list.map((item)=>{
+          if(item.systemType===2){
+            this.menus=item.menus
+          }
+        }) 
+      })
+    },
     // 鐩戝惉璺敱
     initNavMenu() {
       // console.log(this.$route.name)
diff --git a/src/router/index.js b/src/router/index.js
index a0c59c8..8f17f9d 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -12,9 +12,20 @@
 const client = (resolve) => require(["@/views/client/index"], resolve)
 const sales = (resolve) => require(["@/views/sales/index"], resolve)
 const service = (resolve) => require(["@/views/service/index"], resolve)
+const noData = (resolve) => require(["@/views/NoData/index"], resolve)
 // const background = (resolve) => require(["@/views/backgroundConfig/index"], resolve)
 
 export const routes = [
+  // 鏃犳暟鎹〉闈�
+  {
+    path: "/",
+    name: "NoData",
+    meta: {
+      title: "",
+      auth: true,
+    },
+    component: noData,
+  },
   {
     path: "client", // 瀹㈡埛绠$悊
     name: "client",
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 83bffdf..d13a119 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -13,6 +13,13 @@
   productionSourceMap: false, // 濡傛灉浣犱笉闇�瑕佺敓浜х幆澧冪殑source map, 鍙互灏嗗叾璁剧疆涓篺alse 浠ュ姞閫熺敓浜х幆澧冩瀯寤�
   devServer: {
     proxy: {
+      "/api/menu":{
+        target: "http://192.168.20.119:8001", // http://192.168.20.119:8002 http://fai365.com:30150/
+        // 寤洪亾鏈湴鐜
+        // target: "http://192.168.20.118:8002",
+        ws: true,
+        changeOrigin: true
+      },
       "/api": {
         target: "http://192.168.20.119:8002", // http://192.168.20.119:8002 http://fai365.com:30150/
         // 寤洪亾鏈湴鐜

--
Gitblit v1.8.0