YY 2 years ago
parent
commit
de164bf726

+ 53 - 75
src/components/studio-one-green/homeParts/left-1.vue

@@ -1,98 +1,76 @@
 <template>
   <div class="main">
-    <el-menu :collapse="false" unique-opened router background-color="#66363c">
-      <template v-for="item in items">
-        <!-- 二级菜单 -->
-        <template v-if="item.type === '0'">
-          <el-sub-menu :index="item._id || item.index" :key="item._id">
-            <template v-slot:title>
-              <span>{{ item.name }}</span>
-            </template>
-            <template v-for="subItem in item.children">
-              <!-- 三级菜单 -->
-              <el-sub-menu
-                v-if="subItem.children && subItem.children.length > 0 && subItem.children.every((f:any) => f.type === '0' || f.type === '1')"
-                :index="subItem._id"
-                :key="subItem._id"
-              >
-                <template v-slot:title>
-                  <span>{{ subItem.name }}</span>
+    <el-row>
+      <el-col :span="24" class="aside">
+        <el-menu
+          :default-active="onRoutes"
+          unique-opened
+          router
+          :background-color="styleInfo.menus_bg_color"
+          :text-color="styleInfo.menus_txt_color"
+          :active-text-color="styleInfo.menus_actxt_color"
+        >
+          <template v-for="item in items">
+            <template v-if="item.type === '0'">
+              <el-submenu :index="item._id" :key="item._id">
+                <template>
+                  <!-- <i :class="['iconfont', item.icon]"></i> -->
+                  <span>{{ item.name }}</span>
                 </template>
-                <el-menu-item v-for="(threeItem, i) in subItem.children" :key="i" :index="threeItem.path">
-                  <template v-slot:title>
-                    <span>{{ threeItem.name }}</span>
-                  </template>
-                </el-menu-item>
-              </el-sub-menu>
-              <el-menu-item v-else :index="subItem.path" :key="subItem.path">
-                <template v-slot:title>
-                  <span>{{ subItem.name }}</span>
+                <template v-for="subItem in item.children">
+                  <el-submenu v-if="subItem.children && subItem.children.length > 0" :index="subItem._id" :key="subItem._id">
+                    <template>
+                      <i :class="['iconfont', subItem.icon]"></i>
+                      <span>{{ subItem.name }}</span>
+                    </template>
+                    <el-menu-item v-for="(threeItem, i) in subItem.children" :key="i" :index="threeItem.path">
+                      <template>
+                        <i :class="['iconfont', threeItem.icon]"></i>
+                        <span>{{ threeItem.name }}</span>
+                      </template>
+                    </el-menu-item>
+                  </el-submenu>
+                  <el-menu-item v-else :index="subItem.path" :key="subItem.path">
+                    <template>
+                      <i :class="['iconfont', subItem.icon]"></i>
+                      <span>{{ subItem.name }}</span>
+                    </template>
+                  </el-menu-item>
                 </template>
+              </el-submenu>
+            </template>
+            <template v-else>
+              <el-menu-item :index="item.path" :key="item.path">
+                <i :class="['iconfont', item.icon]"></i>
+                <span>{{ item.name }}</span>
               </el-menu-item>
             </template>
-          </el-sub-menu>
-        </template>
-        <!-- 一级菜单 -->
-        <template v-else>
-          <el-menu-item :index="item.path" :key="item.path">
-            <span>{{ item.name }}</span>
-          </el-menu-item>
-        </template>
-      </template>
-    </el-menu>
+          </template>
+        </el-menu>
+      </el-col>
+    </el-row>
   </div>
 </template>
 
 <script setup lang="ts">
 import { ref } from 'vue';
 import type { Ref } from 'vue';
-// import { project_module_menus } from '@/layout/site';
+import { project_module_menus,studio_style_Info } from '../../../layout/site';
 
 // 请求列表
 let items: Ref<any[]> = ref([]);
-// items.value = project_module_menus;
+items.value = project_module_menus;
+let styleInfo=studio_style_Info
+const onRoutes = () => {};
 </script>
 
 <style scoped>
-.el-menu {
-  height: 92.5vh;
-  overflow-y: auto;
-}
-.el-menu-item {
-  color: var(--vt-c-white);
-  font-size: 16px;
-  font-weight: 500;
-}
-.el-menu-item span {
-  overflow-y: auto;
-  overflow-x: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-:deep().el-sub-menu__title {
-  color: var(--vt-c-white);
-  font-size: 16px;
-  font-weight: 500;
-}
-:deep().el-sub-menu__title span {
-  overflow-y: auto;
-  overflow-x: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
 .el-menu-item.is-active {
-  color: var(--vt-c-black) !important;
-  background-color: var(--vt-c-white) !important;
+  background-color: #65cd94 !important;
 }
+.el-menu-item:focus,
 .el-menu-item:hover {
-  color: var(--vt-c-black) !important;
-  background-color: var(--vt-c-white) !important;
-}
-.el-menu::-webkit-scrollbar {
-  width: 2px;
-}
-.el-menu::-webkit-scrollbar-thumb {
-  border-radius: 10px;
-  background: rgb(255, 255, 255);
+  background-color: #65cd94 !important;
+  color: #ffffff !important;
 }
 </style>

+ 53 - 75
src/components/studio-one-green/parts/left-1.vue

@@ -1,98 +1,76 @@
 <template>
   <div class="main">
-    <el-menu :collapse="false" unique-opened router background-color="#66363c">
-      <template v-for="item in items">
-        <!-- 二级菜单 -->
-        <template v-if="item.type === '0'">
-          <el-sub-menu :index="item._id || item.index" :key="item._id">
-            <template v-slot:title>
-              <span>{{ item.name }}</span>
-            </template>
-            <template v-for="subItem in item.children">
-              <!-- 三级菜单 -->
-              <el-sub-menu
-                v-if="subItem.children && subItem.children.length > 0 && subItem.children.every((f:any) => f.type === '0' || f.type === '1')"
-                :index="subItem._id"
-                :key="subItem._id"
-              >
-                <template v-slot:title>
-                  <span>{{ subItem.name }}</span>
+    <el-row>
+      <el-col :span="24" class="aside">
+        <el-menu
+          :default-active="onRoutes"
+          unique-opened
+          router
+          :background-color="styleInfo.menus_bg_color"
+          :text-color="styleInfo.menus_txt_color"
+          :active-text-color="styleInfo.menus_actxt_color"
+        >
+          <template v-for="item in items">
+            <template v-if="item.type === '0'">
+              <el-submenu :index="item._id" :key="item._id">
+                <template>
+                  <i :class="['iconfont', item.icon]"></i>
+                  <span>{{ item.name }}</span>
                 </template>
-                <el-menu-item v-for="(threeItem, i) in subItem.children" :key="i" :index="threeItem.path">
-                  <template v-slot:title>
-                    <span>{{ threeItem.name }}</span>
-                  </template>
-                </el-menu-item>
-              </el-sub-menu>
-              <el-menu-item v-else :index="subItem.path" :key="subItem.path">
-                <template v-slot:title>
-                  <span>{{ subItem.name }}</span>
+                <template v-for="subItem in item.children">
+                  <el-submenu v-if="subItem.children && subItem.children.length > 0" :index="subItem._id" :key="subItem._id">
+                    <template>
+                      <i :class="['iconfont', subItem.icon]"></i>
+                      <span>{{ subItem.name }}</span>
+                    </template>
+                    <el-menu-item v-for="(threeItem, i) in subItem.children" :key="i" :index="threeItem.path">
+                      <template>
+                        <i :class="['iconfont', threeItem.icon]"></i>
+                        <span>{{ threeItem.name }}</span>
+                      </template>
+                    </el-menu-item>
+                  </el-submenu>
+                  <el-menu-item v-else :index="subItem.path" :key="subItem.path">
+                    <template>
+                      <i :class="['iconfont', subItem.icon]"></i>
+                      <span>{{ subItem.name }}</span>
+                    </template>
+                  </el-menu-item>
                 </template>
+              </el-submenu>
+            </template>
+            <template v-else>
+              <el-menu-item :index="item.path" :key="item.path">
+                <i :class="['iconfont', item.icon]"></i>
+                <span>{{ item.name }}</span>
               </el-menu-item>
             </template>
-          </el-sub-menu>
-        </template>
-        <!-- 一级菜单 -->
-        <template v-else>
-          <el-menu-item :index="item.path" :key="item.path">
-            <span>{{ item.name }}</span>
-          </el-menu-item>
-        </template>
-      </template>
-    </el-menu>
+          </template>
+        </el-menu>
+      </el-col>
+    </el-row>
   </div>
 </template>
 
 <script setup lang="ts">
 import { ref } from 'vue';
 import type { Ref } from 'vue';
-// import { project_module_menus } from '@/layout/site';
+import { project_module_menus, studio_style_Info } from '../../../layout/site';
 
 // 请求列表
 let items: Ref<any[]> = ref([]);
-// items.value = project_module_menus;
+items.value = project_module_menus;
+let styleInfo = studio_style_Info;
+const onRoutes = () => {};
 </script>
 
 <style scoped>
-.el-menu {
-  height: 92.5vh;
-  overflow-y: auto;
-}
-.el-menu-item {
-  color: var(--vt-c-white);
-  font-size: 16px;
-  font-weight: 500;
-}
-.el-menu-item span {
-  overflow-y: auto;
-  overflow-x: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-:deep().el-sub-menu__title {
-  color: var(--vt-c-white);
-  font-size: 16px;
-  font-weight: 500;
-}
-:deep().el-sub-menu__title span {
-  overflow-y: auto;
-  overflow-x: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
 .el-menu-item.is-active {
-  color: var(--vt-c-black) !important;
-  background-color: var(--vt-c-white) !important;
+  background-color: #65cd94 !important;
 }
+.el-menu-item:focus,
 .el-menu-item:hover {
-  color: var(--vt-c-black) !important;
-  background-color: var(--vt-c-white) !important;
-}
-.el-menu::-webkit-scrollbar {
-  width: 2px;
-}
-.el-menu::-webkit-scrollbar-thumb {
-  border-radius: 10px;
-  background: rgb(255, 255, 255);
+  background-color: #65cd94 !important;
+  color: #ffffff !important;
 }
 </style>

+ 795 - 0
src/layout/site.ts

@@ -1,3 +1,57 @@
+// 网站基本设置
+export const webInfo = {
+  display: true,
+  zhTitle: '基础研究动态管理平台',
+  enTitle: 'Dynamic management platform for basic research',
+  // logo_url: require('../assets/logo.png'),
+  // user_url: require('../assets/user.png'),
+  content: 'Copyright  2018-2022 free All Rights Reserved.',
+  smallTtitle: '基础研究动态',
+  one_title: '鼓励探索、突出原创',
+  two_title: '聚焦前沿、独辟蹊径',
+  thr_title: '需求牵引、突破瓶颈',
+  four_title: '共性导向、交叉融通',
+};
+// 超级管理员项目基本设置
+export const admin_style_Info = {
+  // 主体背景颜色
+  main_bg_color: '#f0f0f0',
+  // 头部
+  header_bg_color: '#07c4a8',
+  // 左侧菜单部分
+  aside_bg_color: '#07c4a8',
+  aside_border_color: '#ffffff',
+  // 内容显示部分
+  routerview_bg_color: '#ffffff',
+};
+// 管理员项目基本设置
+export const basic_style_Info = {
+  // 主体背景颜色
+  main_bg_color: '#f0f0f0',
+  // 头部
+  header_bg_color: '#07c4a8',
+  // 左侧菜单部分
+  aside_bg_color: '#07c4a8',
+  aside_border_color: '#ffffff',
+  // 内容显示部分
+  routerview_bg_color: '#ffffff',
+};
+// 项目管理项目基本设置
+export const project_style_Info = {
+  webInfo: {
+    display: true,
+    zhTitle: '吉林省项目动态管理平台',
+  },
+  // 主体背景颜色
+  main_bg_color: '#f0f0f0',
+  // 头部
+  header_bg_color: '#07c4a8',
+  // 左侧菜单部分
+  aside_bg_color: '#07c4a8',
+  aside_border_color: '#ffffff',
+  // 内容显示部分
+  routerview_bg_color: '#ffffff',
+};
 // 科学家工作室管理项目基本设置
 export const studio_style_Info = {
   webInfo: {
@@ -16,3 +70,744 @@ export const studio_style_Info = {
   con_bg_color: '#fff2cc',
   conmain_bg_color: '#dae3f3',
 };
+// 模块设置
+export const project_module_menus = [
+  {
+    icon: 'el-icon-user',
+    name: '基础研究动态管理平台',
+    path: '/admin',
+    type: 'basic,project,studio',
+    active: '0',
+  },
+  // {
+  //   icon: 'el-icon-user',
+  //   name: '省重点实验室',
+  //   path: '/basic',
+  //   type: 'admin,project,studio',
+  //   active: '1',
+  // },
+  {
+    icon: 'el-icon-user',
+    name: '项目管理',
+    path: '/project',
+    type: 'admin,basic,studio',
+    active: '2',
+  },
+  {
+    icon: 'el-icon-user',
+    name: '科学家工作室管理',
+    path: '/studio',
+    type: 'admin,basic,project',
+    active: '3',
+  },
+];
+// 菜单
+export const admin_menus = [
+  {
+    id: 'menus_1',
+    icon: 'el-icon-user',
+    name: '系统首页',
+    path: '/homeIndex',
+    type: '',
+  },
+  {
+    _id: 'menus_2',
+    icon: 'el-icon-user',
+    name: '系统管理',
+    type: '0',
+    children: [
+      {
+        _id: 'menus_2_1',
+        icon: 'el-icon-user',
+        name: '用户管理',
+        type: '1',
+        children: [
+          {
+            _id: 'menus_2_1_1',
+            icon: 'el-icon-user',
+            name: '管理员',
+            path: '/system/user/admin',
+          },
+          {
+            _id: 'menus_2_1_2',
+            icon: 'el-icon-user',
+            name: '依托单位',
+            path: '/system/user/unit',
+          },
+          {
+            _id: 'menus_2_1_3',
+            icon: 'el-icon-user',
+            name: '个人账号',
+            path: '/system/user/personal',
+          },
+        ],
+      },
+      {
+        _id: 'menus_2_2',
+        icon: 'el-icon-user',
+        name: '角色管理',
+        path: '/system/role',
+      },
+      {
+        _id: 'menus_2_3',
+        icon: 'el-icon-user',
+        name: '平台项目管理',
+        path: '/system/module',
+      },
+      {
+        _id: 'menus_2_4',
+        icon: 'el-icon-user',
+        name: '字典管理',
+        path: '/system/dict',
+      },
+      {
+        _id: 'menus_2_5',
+        icon: 'el-icon-user',
+        name: '地区管理',
+        path: '/system/place',
+      },
+      {
+        _id: 'menus_2_6',
+        icon: 'el-icon-user',
+        name: '通知公告',
+        path: '/system/notice',
+      },
+      {
+        _id: 'menus_2_7',
+        icon: 'el-icon-user',
+        name: '查看公告',
+        path: '/system/noticeview',
+      },
+    ],
+  },
+  {
+    _id: 'menus_3',
+    icon: 'el-icon-user',
+    name: '账号管理',
+    type: '0',
+    children: [
+      {
+        _id: 'menus_3_1',
+        icon: 'el-icon-user',
+        name: '账号信息',
+        path: '/account/info',
+      },
+      {
+        _id: 'menus_3_2',
+        icon: 'el-icon-user',
+        name: '修改密码',
+        path: '/account/updatepd',
+      },
+    ],
+  },
+];
+export const basic_menus = [
+  {
+    id: 'menus_1',
+    icon: 'el-icon-user',
+    name: '系统首页',
+    path: '/homeIndex',
+    type: '',
+  },
+  {
+    _id: 'menus_2',
+    icon: 'el-icon-user',
+    name: '二级菜单',
+    type: '0',
+    children: [
+      {
+        _id: 'menus_2_1',
+        icon: 'el-icon-user',
+        name: '二级菜单-1',
+        path: '/test/test1',
+      },
+      {
+        _id: 'menus_2_2',
+        icon: 'el-icon-user',
+        name: '三级菜单',
+        type: '2',
+        children: [
+          {
+            _id: 'menus_2_2_1',
+            icon: 'el-icon-user',
+            name: '三级菜单-1',
+            path: '/test/test2/test1',
+          },
+        ],
+      },
+    ],
+  },
+];
+// #region
+// 个人用户菜单
+// export const project_menus = [
+//   {
+//     id: 'menus_1',
+//     icon: 'el-icon-user',
+//     name: '系统首页',
+//     path: '/homeIndex',
+//     type: '',
+//   },
+//   {
+//     id: 'menus_2',
+//     icon: 'el-icon-user',
+//     name: '科研项目',
+//     path: '/project',
+//     type: '',
+//   },
+//   {
+//     _id: 'menus_3',
+//     icon: 'el-icon-user',
+//     name: '项目管理',
+//     type: '0',
+//     children: [
+//       {
+//         _id: 'menus_3_1',
+//         icon: 'el-icon-user',
+//         name: '发表学术论文',
+//         path: '/project/platform/paper',
+//       },
+//       {
+//         _id: 'menus_3_2',
+//         icon: 'el-icon-user',
+//         name: '其他成果',
+//         path: '/project/platform/other',
+//       },
+//       {
+//         _id: 'menus_3_3',
+//         icon: 'el-icon-user',
+//         name: '获奖情况',
+//         path: '/project/platform/award',
+//       },
+//       {
+//         _id: 'menus_3_4',
+//         icon: 'el-icon-user',
+//         name: '成果转化',
+//         path: '/project/platform/achieve',
+//       },
+//       {
+//         _id: 'menus_3_5',
+//         icon: 'el-icon-user',
+//         name: '学术交流',
+//         type: '2',
+//         children: [
+//           {
+//             _id: 'menus_3_5_1',
+//             icon: 'el-icon-user',
+//             name: '省部级及以上活动',
+//             path: '/project/xueshu/socialservices',
+//           },
+//           {
+//             _id: 'menus_3_5_2',
+//             icon: 'el-icon-user',
+//             name: '科普活动',
+//             path: '/project/xueshu/scienceactivities',
+//           },
+//           {
+//             _id: 'menus_3_5_3',
+//             icon: 'el-icon-user',
+//             name: '发表/提交报告',
+//             path: '/project/xueshu/report',
+//           },
+//         ],
+//       },
+//       {
+//         _id: 'menus_3_6',
+//         icon: 'el-icon-user',
+//         name: '队伍建设与人才培养',
+//         type: '2',
+//         children: [
+//           {
+//             _id: 'menus_3_6_1',
+//             icon: 'el-icon-user',
+//             name: '省部级以上人才称号',
+//             path: '/project/jianshe/personnelname',
+//           },
+//           {
+//             _id: 'menus_3_6_2',
+//             icon: 'el-icon-user',
+//             name: '职称晋升',
+//             path: '/project/jianshe/title',
+//           },
+//           {
+//             _id: 'menus_3_6_3',
+//             icon: 'el-icon-user',
+//             name: '博硕培养',
+//             path: '/project/jianshe/doctor',
+//           },
+//         ],
+//       },
+//       {
+//         _id: 'menus_3_7',
+//         icon: 'el-icon-user',
+//         name: '重要进展及重大报告',
+//         path: '/project/outcome',
+//       },
+//     ],
+//   },
+//   {
+//     _id: 'menus_4',
+//     icon: 'el-icon-user',
+//     name: '项目指南建议征集',
+//     type: '0',
+//     children: [
+//       {
+//         _id: 'menus_4_1',
+//         icon: 'el-icon-user',
+//         name: '2024年度国家自然科学基金区域创新发展联合基金指南建议申报',
+//         path: '/project/guide/declare',
+//       },
+//     ],
+//   },
+// ];
+// 依托单位菜单
+// export const project_menus = [
+//   {
+//     id: 'menus_1',
+//     icon: 'el-icon-user',
+//     name: '系统首页',
+//     path: '/homeIndex',
+//     type: '',
+//   },
+//   {
+//     id: 'menus_2',
+//     icon: 'el-icon-user',
+//     name: '项目管理',
+//     path: '/project/views',
+//     type: '',
+//   },
+//   {
+//     _id: 'menus_3',
+//     icon: 'el-icon-user',
+//     name: '项目指南建议征集',
+//     type: '0',
+//     children: [
+//       {
+//         _id: 'menus_3_1',
+//         icon: 'el-icon-user',
+//         name: '建议审核',
+//         path: '/project/guide/exam',
+//       },
+//     ],
+//   },
+// ];
+// #endregion
+// 管理员菜单
+export const project_menus = [
+  {
+    id: 'menus_1',
+    icon: 'el-icon-user',
+    name: '系统首页',
+    path: '/homeIndex',
+    type: '',
+  },
+  {
+    id: 'menus_2',
+    icon: 'el-icon-user',
+    name: '科研项目',
+    path: '/project',
+    type: '',
+  },
+  {
+    id: 'menus_3',
+    icon: 'el-icon-user',
+    name: '项目管理',
+    path: '/project/views',
+    type: '',
+  },
+  {
+    _id: 'menus_4',
+    icon: 'el-icon-user',
+    name: '项目管理',
+    type: '0',
+    children: [
+      {
+        _id: 'menus_4_1',
+        icon: 'el-icon-user',
+        name: '发表学术论文',
+        path: '/project/platform/paper',
+      },
+      {
+        _id: 'menus_4_2',
+        icon: 'el-icon-user',
+        name: '其他成果',
+        path: '/project/platform/other',
+      },
+      {
+        _id: 'menus_4_3',
+        icon: 'el-icon-user',
+        name: '获奖情况',
+        path: '/project/platform/award',
+      },
+      {
+        _id: 'menus_4_4',
+        icon: 'el-icon-user',
+        name: '成果转化',
+        path: '/project/platform/achieve',
+      },
+      {
+        _id: 'menus_4_5',
+        icon: 'el-icon-user',
+        name: '学术交流',
+        type: '2',
+        children: [
+          {
+            _id: 'menus_4_5_1',
+            icon: 'el-icon-user',
+            name: '省部级及以上活动',
+            path: '/project/xueshu/socialservices',
+          },
+          {
+            _id: 'menus_4_5_2',
+            icon: 'el-icon-user',
+            name: '科普活动',
+            path: '/project/xueshu/scienceactivities',
+          },
+          {
+            _id: 'menus_4_5_3',
+            icon: 'el-icon-user',
+            name: '发表/提交报告',
+            path: '/project/xueshu/report',
+          },
+        ],
+      },
+      {
+        _id: 'menus_4_6',
+        icon: 'el-icon-user',
+        name: '队伍建设与人才培养',
+        type: '2',
+        children: [
+          {
+            _id: 'menus_4_6_1',
+            icon: 'el-icon-user',
+            name: '省部级以上人才称号',
+            path: '/project/jianshe/personnelname',
+          },
+          {
+            _id: 'menus_4_6_2',
+            icon: 'el-icon-user',
+            name: '职称晋升',
+            path: '/project/jianshe/title',
+          },
+          {
+            _id: 'menus_4_6_3',
+            icon: 'el-icon-user',
+            name: '博硕培养',
+            path: '/project/jianshe/doctor',
+          },
+        ],
+      },
+      {
+        _id: 'menus_4_7',
+        icon: 'el-icon-user',
+        name: '重要进展及重大报告',
+        path: '/project/outcome',
+      },
+    ],
+  },
+  {
+    _id: 'menus_5',
+    icon: 'el-icon-user',
+    name: '项目指南建议征集',
+    type: '0',
+    children: [
+      {
+        _id: 'menus_5_1',
+        icon: 'el-icon-user',
+        name: '2024年度国家自然科学基金区域创新发展联合基金指南建议申报',
+        path: '/project/guide/declare',
+      },
+      {
+        _id: 'menus_5_2',
+        icon: 'el-icon-user',
+        name: '建议审核',
+        path: '/project/guide/exam',
+      },
+      {
+        _id: 'menus_5_3',
+        icon: 'el-icon-user',
+        name: '建议审核结束',
+        path: '/project/guide/endGuide',
+      },
+    ],
+  },
+];
+export const studio_menus = [
+  {
+    id: 'menus_1',
+    icon: 'el-icon-user',
+    name: '系统首页',
+    path: '/homeIndex',
+    type: '',
+  },
+  {
+    _id: 'menus_2',
+    icon: 'el-icon-user',
+    name: '用户管理',
+    type: '0',
+    children: [
+      {
+        _id: 'menus_2_1',
+        icon: 'el-icon-user',
+        name: '依托单位',
+        path: '/users/company',
+      },
+      {
+        _id: 'menus_2_2',
+        icon: 'el-icon-user',
+        name: '科学家',
+        path: '/users/scientist',
+      },
+    ],
+  },
+  {
+    _id: 'menus_3',
+    icon: 'el-icon-user',
+    name: '科学家工作室',
+    type: '0',
+    children: [
+      {
+        _id: 'menus_3_1',
+        icon: 'el-icon-user',
+        name: '信息列表',
+        path: '/studio/info',
+      },
+      {
+        _id: 'menus_3_2',
+        icon: 'el-icon-user',
+        name: '年度报告',
+        path: '/studio/year',
+      },
+      {
+        _id: 'menus_3_3',
+        icon: 'el-icon-user',
+        name: '保留资质',
+        path: '/studio/flair',
+      },
+    ],
+  },
+  {
+    _id: 'menus_4',
+    icon: 'el-icon-user',
+    name: '技术供求',
+    type: '0',
+    children: [
+      {
+        _id: 'menus_4_1',
+        icon: 'el-icon-user',
+        name: '技术支持',
+        path: '/supplydemand/support',
+      },
+      {
+        _id: 'menus_4_2',
+        icon: 'el-icon-user',
+        name: '技术需求',
+        path: '/supplydemand/demand',
+      },
+    ],
+  },
+  {
+    _id: 'menus_5',
+    icon: 'el-icon-user',
+    name: '其他内容',
+    type: '0',
+    children: [
+      {
+        _id: 'menus_4_1',
+        icon: 'el-icon-user',
+        name: '成果展示',
+        path: '/other/achieve',
+      },
+      {
+        _id: 'menus_4_2',
+        icon: 'el-icon-user',
+        name: '通知公告',
+        path: '/other/notice',
+      },
+      {
+        _id: 'menus_4_3',
+        icon: 'el-icon-user',
+        name: '相关下载',
+        path: '/other/download',
+      },
+      {
+        _id: 'menus_4_4',
+        icon: 'el-icon-user',
+        name: '联系处室',
+        path: '/other/contact',
+      },
+      {
+        _id: 'menus_4_5',
+        icon: 'el-icon-user',
+        name: '系统消息',
+        path: '/other/message',
+      },
+    ],
+  },
+];
+// 问题来源
+export const question_origin = [
+  {
+    dict_sort: '0',
+    dict_label: '企业科技问题',
+    dict_value: '企业科技问题',
+    dict_type: 'question_origin',
+    status: '0',
+    remark: '问题来源',
+  },
+  {
+    dict_sort: '0',
+    dict_label: '独立提出',
+    dict_value: '独立提出',
+    dict_type: 'question_origin',
+    status: '0',
+    remark: '问题来源',
+  },
+];
+// 企业科技问题
+export const company_question = [
+  {
+    dict_sort: '0',
+    dict_label: '基于新型锑化物超晶格异质结的高性能红外探测芯片关键技术',
+    dict_value: '基于新型锑化物超晶格异质结的高性能红外探测芯片关键技术',
+    dict_type: 'company_question',
+    status: '0',
+    remark: '企业科技问题',
+  },
+  {
+    dict_sort: '0',
+    dict_label: '结构可控的功能化水性聚氨酯基涂层的构筑、性能及其机理',
+    dict_value: '结构可控的功能化水性聚氨酯基涂层的构筑、性能及其机理',
+    dict_type: 'company_question',
+    status: '0',
+    remark: '企业科技问题',
+  },
+  {
+    dict_sort: '0',
+    dict_label: '季冻区轨道交通工程绿色纤维UHPC耐复杂环境结构性能研究',
+    dict_value: '季冻区轨道交通工程绿色纤维UHPC耐复杂环境结构性能研究',
+    dict_type: 'company_question',
+    status: '0',
+    remark: '企业科技问题',
+  },
+  {
+    dict_sort: '0',
+    dict_label: '自由曲面多阶段超精密加工工艺链数字孪生的基础研究',
+    dict_value: '自由曲面多阶段超精密加工工艺链数字孪生的基础研究',
+    dict_type: 'company_question',
+    status: '0',
+    remark: '企业科技问题',
+  },
+  {
+    dict_sort: '0',
+    dict_label: '花生高油酸性状对耐寒性的影响及其机理',
+    dict_value: '花生高油酸性状对耐寒性的影响及其机理',
+    dict_type: 'company_question',
+    status: '0',
+    remark: '企业科技问题',
+  },
+  {
+    dict_sort: '0',
+    dict_label: '寒地黑猪品种优质抗逆特性形成机理',
+    dict_value: '寒地黑猪品种优质抗逆特性形成机理',
+    dict_type: 'company_question',
+    status: '0',
+    remark: '企业科技问题',
+  },
+  {
+    dict_sort: '0',
+    dict_label: '米级量程纳米精度多自由度光栅位移测量机理与关键技术',
+    dict_value: '米级量程纳米精度多自由度光栅位移测量机理与关键技术',
+    dict_type: 'company_question',
+    status: '0',
+    remark: '企业科技问题',
+  },
+  {
+    dict_sort: '0',
+    dict_label: '通遥一体的在轨数据实时分析处理方法',
+    dict_value: '通遥一体的在轨数据实时分析处理方法',
+    dict_type: 'company_question',
+    status: '0',
+    remark: '企业科技问题',
+  },
+  {
+    dict_sort: '0',
+    dict_label: '高速电动磁浮车载超导磁体的服役可靠性与行为演变',
+    dict_value: '高速电动磁浮车载超导磁体的服役可靠性与行为演变',
+    dict_type: 'company_question',
+    status: '0',
+    remark: '企业科技问题',
+  },
+  {
+    dict_sort: '0',
+    dict_label: '伺服阀壳体磨粒流精密抛光表面完整性及多余物去除机理',
+    dict_value: '伺服阀壳体磨粒流精密抛光表面完整性及多余物去除机理',
+    dict_type: 'company_question',
+    status: '0',
+    remark: '企业科技问题',
+  },
+  {
+    dict_sort: '0',
+    dict_label: '肉牛养殖人工智能监控机制',
+    dict_value: '肉牛养殖人工智能监控机制',
+    dict_type: 'company_question',
+    status: '0',
+    remark: '企业科技问题',
+  },
+  {
+    dict_sort: '0',
+    dict_label: '新型产胶植物橡胶草高产新品种创制及其产量形成的分子机理',
+    dict_value: '新型产胶植物橡胶草高产新品种创制及其产量形成的分子机理',
+    dict_type: 'company_question',
+    status: '0',
+    remark: '企业科技问题',
+  },
+  {
+    dict_sort: '0',
+    dict_label: '黑土地农田土壤微塑料污染过程与阻控机制',
+    dict_value: '黑土地农田土壤微塑料污染过程与阻控机制',
+    dict_type: 'company_question',
+    status: '0',
+    remark: '企业科技问题',
+  },
+  {
+    dict_sort: '0',
+    dict_label: '城镇污水生物-化学耦合强化减污降碳和再生利用机制',
+    dict_value: '城镇污水生物-化学耦合强化减污降碳和再生利用机制',
+    dict_type: 'company_question',
+    status: '0',
+    remark: '企业科技问题',
+  },
+  {
+    dict_sort: '0',
+    dict_label: '基于力-像融合的智能骨折复位机器人系统',
+    dict_value: '基于力-像融合的智能骨折复位机器人系统',
+    dict_type: 'company_question',
+    status: '0',
+    remark: '企业科技问题',
+  },
+  {
+    dict_sort: '0',
+    dict_label: '冻融复杂条件下黑土石油污染光电融合膜界面探测与仿生特异感知',
+    dict_value: '冻融复杂条件下黑土石油污染光电融合膜界面探测与仿生特异感知',
+    dict_type: 'company_question',
+    status: '0',
+    remark: '企业科技问题',
+  },
+  {
+    dict_sort: '0',
+    dict_label: '基于机器视觉的汽车整车及零部件外观检测',
+    dict_value: '基于机器视觉的汽车整车及零部件外观检测',
+    dict_type: 'company_question',
+    status: '0',
+    remark: '企业科技问题',
+  },
+  {
+    dict_sort: '0',
+    dict_label: '空地湍流信道光脉冲往返传输特性基础理论',
+    dict_value: '空地湍流信道光脉冲往返传输特性基础理论',
+    dict_type: 'company_question',
+    status: '0',
+    remark: '企业科技问题',
+  },
+];

+ 3 - 0
src/stores/user/mutations.ts

@@ -0,0 +1,3 @@
+export const setUser = (state: { user: { role_type: string; lab_id: string } }, payload: { role_type: string; lab_id: string }) => {
+  state.user = payload;
+};

+ 1 - 0
src/stores/user/state.ts

@@ -0,0 +1 @@
+export const user = {};