浏览代码

项目选择新增可搜索(目前仅超级管理员可用)

ZaiZai 2 年之前
父节点
当前提交
cf4f97b84d
共有 1 个文件被更改,包括 29 次插入23 次删除
  1. 29 23
      src/layout/index.vue

+ 29 - 23
src/layout/index.vue

@@ -37,7 +37,11 @@
                 <div class="hc-header-content">
                     <div class="hc-header-cascader-box">
                         <div class="project-name-box">{{ projectInfo.projectAlias }} / {{ contractInfo.name }}</div>
-                        <el-cascader ref="ElCascaderRef" v-model="projectValue" :options="projectContract" :props="projectProps" placeholder="请选择项目" @change="projectContractChange"/>
+                        <el-cascader ref="ElCascaderRef" v-model="projectValue" :clearable="userInfo?.role_id === '1123598816738675201'"
+                                     :filterable="userInfo?.role_id === '1123598816738675201'"
+                                     :options="projectContract"
+                                     :props="projectProps" placeholder="请选择项目"
+                                     @change="projectContractChange"/>
                     </div>
                     <HelpInfoBar></HelpInfoBar>
                     <ConfigBar></ConfigBar>
@@ -206,25 +210,27 @@ const projectContractData = (projectContractData) => {
 //项目被选择
 const ElCascaderRef = ref(null)
 const projectContractChange = (val) => {
-    const Nodes = ElCascaderRef.value.getCheckedNodes();
-    const UserProjectInfo = Nodes[0].parent.data;
-    const UserContractInfo = Nodes[0].data;
-    //缓存项目数据
-    useAppState.setProjectId(val[0])
-    useAppState.setContractId(val[1])
-    useAppState.setProjectInfo(UserProjectInfo)
-    useAppState.setContractInfo(UserContractInfo)
-    //更改界面更新
-    projectInfo.value = UserProjectInfo
-    contractInfo.value = UserContractInfo
-    window.$message?.info('切换了项目,数据更新中');
-    //发送消息
-    socketSend(val[0] + ',' + val[1])
-    //刷新路由
-    reloadRouter.value = false
-    nextTick(() => {
-        reloadRouter.value = true
-    })
+    if (val) {
+        const Nodes = ElCascaderRef.value.getCheckedNodes();
+        const UserProjectInfo = Nodes[0].parent.data;
+        const UserContractInfo = Nodes[0].data;
+        //缓存项目数据
+        useAppState.setProjectId(val[0])
+        useAppState.setContractId(val[1])
+        useAppState.setProjectInfo(UserProjectInfo)
+        useAppState.setContractInfo(UserContractInfo)
+        //更改界面更新
+        projectInfo.value = UserProjectInfo
+        contractInfo.value = UserContractInfo
+        window.$message?.info('切换了项目,数据更新中');
+        //发送消息
+        socketSend(val[0] + ',' + val[1])
+        //刷新路由
+        reloadRouter.value = false
+        nextTick(() => {
+            reloadRouter.value = true
+        })
+    }
 }
 
 //菜单被点击
@@ -351,9 +357,9 @@ const socketSend = (msg) => {
         .hc-header-view .hc-header-top-menu-bar {
             padding-left: 0;
             .hc-top-menu-bar .bar-menu-content .bar-menu-btn {
-                background: rgba(255,255,255, .2);
-                border-color: rgba(255,255,255, .2);
-                color: rgba(255,255,255, .7);
+                background: rgba(255, 255, 255, .2);
+                border-color: rgba(255, 255, 255, .2);
+                color: rgba(255, 255, 255, .7);
                 backdrop-filter: blur(20px);
                 -webkit-backdrop-filter: blur(20px);
                 &:hover:not([class*='cur']) {