diff --git a/package.json b/package.json index 4ec34ca..ac3b645 100644 --- a/package.json +++ b/package.json @@ -48,11 +48,11 @@ "devDependencies": { "@vitejs/plugin-vue": "2.3.3", "@vue/compiler-sfc": "3.2.36", - "autoprefixer": "^10.4.14", - "postcss": "^8.4.26", + "autoprefixer": "^10.4.19", + "postcss": "^8.4.38", "prettier": "^2.8.8", "sass": "1.52.1", - "tailwindcss": "^3.3.3", + "tailwindcss": "^3.4.3", "unplugin-auto-import": "0.8.5", "vite": "2.9.16", "vite-plugin-compression": "0.5.1", diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..33ad091 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} diff --git a/src/api/website/home/news.js b/src/api/website/home/news.js index 9944e9d..86e736b 100644 --- a/src/api/website/home/news.js +++ b/src/api/website/home/news.js @@ -1,14 +1,18 @@ import request from "@/utils/request"; export const listNews = (params) => - request({ - url: "/app/news/list", - method: "GET", - params, - }); - + request({ + url: "/app/news/list", + method: "GET", + params, + }); +export const listCategory = () => + request({ + url: "/app/news/category", + method: "GET", + }); export const getNewsInfo = (id) => - request({ - url: `/app/news/${id}`, - method: "GET", - }); + request({ + url: `/app/news/${id}`, + method: "GET", + }); diff --git a/src/assets/icons/identity/专家.png b/src/assets/icons/identity/专家.png new file mode 100644 index 0000000..8ebf72c Binary files /dev/null and b/src/assets/icons/identity/专家.png differ diff --git a/src/assets/icons/identity/企业.jpg b/src/assets/icons/identity/企业.jpg new file mode 100644 index 0000000..02a0ac9 Binary files /dev/null and b/src/assets/icons/identity/企业.jpg differ diff --git a/src/assets/icons/identity/实验室.jpg b/src/assets/icons/identity/实验室.jpg new file mode 100644 index 0000000..83fd8b9 Binary files /dev/null and b/src/assets/icons/identity/实验室.jpg differ diff --git a/src/assets/icons/identity/科研机构.jpg b/src/assets/icons/identity/科研机构.jpg new file mode 100644 index 0000000..e094416 Binary files /dev/null and b/src/assets/icons/identity/科研机构.jpg differ diff --git a/src/assets/icons/identity/经纪人.jpg b/src/assets/icons/identity/经纪人.jpg new file mode 100644 index 0000000..cf25095 Binary files /dev/null and b/src/assets/icons/identity/经纪人.jpg differ diff --git a/src/assets/styles/index.scss b/src/assets/styles/index.scss index e7bf205..5bbccd7 100644 --- a/src/assets/styles/index.scss +++ b/src/assets/styles/index.scss @@ -5,6 +5,7 @@ @import "./sidebar.scss"; @import "./btn.scss"; @import "./ruoyi.scss"; +@import "./tailwindcss"; body { height: 100%; @@ -12,14 +13,13 @@ body { -moz-osx-font-smoothing: grayscale; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; - font-family: - Helvetica Neue, - Helvetica, - PingFang SC, - Hiragino Sans GB, - Microsoft YaHei, - Arial, - sans-serif; + font-family: Helvetica Neue, + Helvetica, + PingFang SC, + Hiragino Sans GB, + Microsoft YaHei, + Arial, + sans-serif; } label { @@ -114,7 +114,7 @@ aside { line-height: 32px; font-size: 16px; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, - Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; + Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; color: #2c3e50; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; @@ -156,11 +156,11 @@ aside { padding-right: 20px; transition: 600ms ease position; background: linear-gradient( - 90deg, - rgba(32, 182, 249, 1) 0%, - rgba(32, 182, 249, 1) 0%, - rgba(33, 120, 241, 1) 100%, - rgba(33, 120, 241, 1) 100% + 90deg, + rgba(32, 182, 249, 1) 0%, + rgba(32, 182, 249, 1) 0%, + rgba(33, 120, 241, 1) 100%, + rgba(33, 120, 241, 1) 100% ); .subtitle { @@ -211,16 +211,19 @@ aside { width: 1000px; margin: 0 auto; } + .conter1400 { width: 1400px; margin: 0 auto; } + // 1行文本省略号 .ellipsis { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } + // 2行文本省略号 .text_hidden { overflow: hidden; @@ -229,24 +232,30 @@ aside { -webkit-box-orient: vertical; word-break: break-all; } + .x_btns { font-size: 16px !important; color: #fff !important; border-radius: 0 !important; background-color: #0054ff !important; } + .x16 { font-size: 16px !important; } + .x_fff { color: #fff !important; } + .x_blue { color: #0054ff !important; } + .x_border_blue { border: 1px solid #0054ff !important; } + .x_bg_blue { background-color: #0054ff !important; } diff --git a/src/assets/styles/tailwindcss.css b/src/assets/styles/tailwindcss.css deleted file mode 100644 index e69de29..0000000 diff --git a/src/assets/styles/tailwindcss.scss b/src/assets/styles/tailwindcss.scss new file mode 100644 index 0000000..4b1492e --- /dev/null +++ b/src/assets/styles/tailwindcss.scss @@ -0,0 +1,23 @@ +.h-screen { + height: 100vh; +} + +.flex { + display: flex; +} + +.flex-col { + flex-direction: column; +} + +.flex-1 { + flex: 1; +} + +.items-center { + align-items: center; +} + +.justify-center { + justify-content: center; +} \ No newline at end of file diff --git a/src/constant/dict.js b/src/constant/dict.js index e4c0705..257f5f4 100644 --- a/src/constant/dict.js +++ b/src/constant/dict.js @@ -106,10 +106,10 @@ export const seeLogTypeDict = [ export const orderTypeDict = [ { value: "1", - label: "创新币充值", + label: "技术交易", i18n: "coinRecharge", elTagType: "primary", - zh: "创新币充值", + zh: "技术交易", ru: "Пополнение монеты инноваций", }, { diff --git a/src/i18n/message/admin/form/ru.js b/src/i18n/message/admin/form/ru.js index 1dab476..b90ce94 100644 --- a/src/i18n/message/admin/form/ru.js +++ b/src/i18n/message/admin/form/ru.js @@ -118,5 +118,14 @@ const form = { productField: "Область продукта", // 成熟度证明材料 maturityProofMaterial: "Материалы подтверждения зрелости", + achievementIntroduction:`Презентация продукта: + ● Рыночный спрос: Описание рыночного спроса или проблемы, решаемой данной технологической разработкой. + ● Описание продукта: Краткое описание продукта, сравнение с конкурентами, область применения. +Технические параметры: + ● Основная технология: Подробное описание основных принципов и технологий разработки. + ● Технические параметры: Предоставление ключевых технических параметров и показателей производительности. +Сценарии применения: + ● Практическое применение: Описание случаев практического применения данной технологической разработки. + ● Потенциальные клиенты: Описание других типов целевых клиентов и их наименований.` }; export default form; diff --git a/src/i18n/message/admin/form/zh.js b/src/i18n/message/admin/form/zh.js index cf07d7d..88d101e 100644 --- a/src/i18n/message/admin/form/zh.js +++ b/src/i18n/message/admin/form/zh.js @@ -116,6 +116,15 @@ const form = { productField: "产品领域", // 成熟度证明材料 maturityProofMaterial: "成熟度证明材料", + achievementIntroduction:`产品介绍: + ●市场需求:描述该科技成果解决的市场需求或问题。 + ●产品描述:产品简介,竞品对比,适用范围。 +技术参数: + ●核心技术:详细介绍科技成果的核心原理和技术。 + ●技术参数:提供关键的技术参数和性能指标。 +应用场景: + ●实际应用:描述该科技成果在实际中的应用案例。 + ●潜在客户:描述产品其他重点客户类型及客户名称。` }; export default form; diff --git a/src/i18n/message/dict/zh.js b/src/i18n/message/dict/zh.js index c0b262a..30ef164 100644 --- a/src/i18n/message/dict/zh.js +++ b/src/i18n/message/dict/zh.js @@ -9,7 +9,7 @@ const dict = { expert: "专家", researchProject: "科研项目", paper: "论文", - coinRecharge: "创新币充值", + coinRecharge: "技术交易", activityRegistration: "活动报名", notApplied: "未申请", applied: "已申请", diff --git a/src/index.css b/src/index.css index e69de29..b5c61c9 100644 --- a/src/index.css +++ b/src/index.css @@ -0,0 +1,3 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; diff --git a/src/main.js b/src/main.js index 113057e..f86498b 100644 --- a/src/main.js +++ b/src/main.js @@ -1,12 +1,14 @@ import { createApp } from "vue"; +// import "@/index.css"; import Cookies from "js-cookie"; import ElementPlus from "element-plus"; import locale from "element-plus/lib/locale/lang/zh-cn"; // 中文语言 + + import "@/assets/styles/index.scss"; // global css -import "@/index.css"; // import {createI18n} from "vue-i18n"; // import {messages} from '@/i18n' diff --git a/src/router/index.js b/src/router/index.js index 6679c06..6dc7fb8 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -1,4 +1,4 @@ -import { createRouter, createWebHistory } from "vue-router"; +import {createRouter, createWebHistory} from "vue-router"; /* Layout */ import Layout from "@/layout"; import basicInfo from "../views/admin/enterprise/account/basicInfo.vue"; @@ -25,1150 +25,1155 @@ import i18n from "@/i18n"; activeMenu: '/system/user' // 当路由设置了该属性,则会高亮相对应的侧边栏。 } */ -const { t } = i18n.global; +const {t} = i18n.global; // 公共路由 export const constantRoutes = [ - { - path: "/", - name: "Home", - component: () => import("../views/website/website-layout.vue"), - hidden: true, - children: [ - { - path: "login", - name: "login", - component: () => import("@/views/website/login/index.vue"), - children: [], - }, - { - path: "", - component: () => import("../views/website/home/index.vue"), - }, - { - path: "searchList/enterprise", - component: () => import("../views/website/searchList/enterprise.vue"), - meta: { - searchType: 1, - }, - }, - { - path: "searchList/enterprise/detail/:id", - component: () => - import("../views/website/searchList/enterpriseDetail.vue"), - meta: { - searchType: 1, - }, - }, - { - path: "searchList/achievement", - component: () => import("../views/website/searchList/achievement.vue"), - meta: { - searchType: 2, - }, - }, - { - path: "searchList/achievement/detail/:id", - component: () => - import("../views/website/searchList/achievementDetail.vue"), - meta: { - searchType: 2, - }, - }, - { - path: "searchList/product/detail/:id", - component: () => - import("../views/website/searchList/productDetail.vue"), - meta: { - searchType: 2, - }, - }, - { - path: "searchList/lab", - component: () => import("../views/website/searchList/lab.vue"), - meta: { - searchType: 8, - }, - }, - { - path: "searchList/lab/detail/:id", - component: () => - import("../views/website/searchList/laboratoryDetail.vue"), - meta: { - searchType: 8, - }, - }, - { - path: "searchList/patent", - component: () => import("../views/website/searchList/patent.vue"), - meta: { - searchType: 4, - }, - }, - { - path: "searchList/patent/detail/:id", - component: () => import("../views/website/searchList/patentDetail.vue"), - meta: { - searchType: 4, - }, - }, - { - path: "searchList/expert", - component: () => import("../views/website/searchList/expert.vue"), - meta: { - searchType: 5, - }, - }, - { - path: "searchList/expert/detail/:id", - component: () => import("../views/website/searchList/expertDetail.vue"), - meta: { - searchType: 5, - }, - }, - { - path: "searchList/serviceDemand", - component: () => - import("../views/website/searchList/serviceDemand.vue"), - meta: { - searchType: 7, - }, - }, - { - path: "searchList/serviceDemand/detail/:id", - component: () => - import("../views/website/searchList/serviceDemandDetail.vue"), - meta: { - searchType: 7, - }, - }, - { - path: "searchList/technologyDemand", - component: () => - import("../views/website/searchList/technologyDemand.vue"), - meta: { - searchType: 6, - }, - }, - { - path: "searchList/technologyDemand/detail/:id", - component: () => - import("../views/website/searchList/technologyDemandDetail.vue"), - meta: { - searchType: 6, - }, - }, - { - path: "solution/:mode", - name: "solution", - component: () => import("../views/website/solution/solution.vue"), - }, - { - path: "solution/detail/:id", - name: "solutionDetail", - component: () => import("../views/website/solution/detail.vue"), - }, - { - path: "/innovate", - name: "innovate", - component: () => import("../views/website/innovate/innovate.vue"), - }, - { - path: "innovate/detail/:id", - name: "innovateDetail", - component: () => import("../views/website/innovate/detail.vue"), - }, - { - path: "activity", - name: "activity", - component: () => import("../views/website/activity/activity.vue"), // children: [ - // { - // path: '', - // name: 'activityList', - // component: () => import('../views/website/activity/list.vue'), - // }, - // { - // path: 'detail/:id', - // name: 'activityDetail', - // component: () => import('../views/website/activity/detail.vue'), - // }, - // ] - }, - { - path: "about", - name: "about", - component: () => import("../views/website/about/about.vue"), - }, - { - path: "news", - name: "news-list", - component: () => import("../views/website/home/index.vue"), - }, - { - path: "news/detail/:id", - name: "news", - component: () => import("@/views/website/news/detail.vue"), - }, - ], - }, + { + path: "/", + name: "Home", + component: () => import("../views/website/website-layout.vue"), + hidden: true, + children: [ + { + path: "login", + name: "login", + component: () => import("@/views/website/login/index.vue"), + children: [], + }, + { + path: "", + component: () => import("../views/website/home/index.vue"), + }, + { + path: "searchList/enterprise", + component: () => import("../views/website/searchList/enterprise.vue"), + meta: { + searchType: 1, + }, + }, + { + path: "searchList/enterprise/detail/:id", + component: () => + import("../views/website/searchList/enterpriseDetail.vue"), + meta: { + searchType: 1, + }, + }, + { + path: "searchList/achievement", + component: () => import("../views/website/searchList/achievement.vue"), + meta: { + searchType: 2, + }, + }, + { + path: "searchList/achievement/detail/:id", + component: () => + import("../views/website/searchList/achievementDetail.vue"), + meta: { + searchType: 2, + }, + }, + { + path: "searchList/product/detail/:id", + component: () => + import("../views/website/searchList/productDetail.vue"), + meta: { + searchType: 2, + }, + }, + { + path: "searchList/lab", + component: () => import("../views/website/searchList/lab.vue"), + meta: { + searchType: 8, + }, + }, + { + path: "searchList/lab/detail/:id", + component: () => + import("../views/website/searchList/laboratoryDetail.vue"), + meta: { + searchType: 8, + }, + }, + { + path: "searchList/patent", + component: () => import("../views/website/searchList/patent.vue"), + meta: { + searchType: 4, + }, + }, + { + path: "searchList/patent/detail/:id", + component: () => import("../views/website/searchList/patentDetail.vue"), + meta: { + searchType: 4, + }, + }, + { + path: "searchList/expert", + component: () => import("../views/website/searchList/expert.vue"), + meta: { + searchType: 5, + }, + }, + { + path: "searchList/expert/detail/:id", + component: () => import("../views/website/searchList/expertDetail.vue"), + meta: { + searchType: 5, + }, + }, + { + path: "searchList/serviceDemand", + component: () => + import("../views/website/searchList/serviceDemand.vue"), + meta: { + searchType: 7, + }, + }, + { + path: "searchList/serviceDemand/detail/:id", + component: () => + import("../views/website/searchList/serviceDemandDetail.vue"), + meta: { + searchType: 7, + }, + }, + { + path: "searchList/technologyDemand", + component: () => + import("../views/website/searchList/technologyDemand.vue"), + meta: { + searchType: 6, + }, + }, + { + path: "searchList/technologyDemand/detail/:id", + component: () => + import("../views/website/searchList/technologyDemandDetail.vue"), + meta: { + searchType: 6, + }, + }, + { + path: "solution/:mode", + name: "solution", + component: () => import("../views/website/solution/solution.vue"), + }, + { + path: "solution/detail/:id", + name: "solutionDetail", + component: () => import("../views/website/solution/detail.vue"), + }, + { + path: "/innovate", + name: "innovate", + component: () => import("../views/website/innovate/innovate.vue"), + }, + { + path: "innovate/detail/:id", + name: "innovateDetail", + component: () => import("../views/website/innovate/detail.vue"), + }, + { + path: "activity", + name: "activity", + component: () => import("../views/website/activity/activity.vue"), // children: [ + // { + // path: '', + // name: 'activityList', + // component: () => import('../views/website/activity/list.vue'), + // }, + // { + // path: 'detail/:id', + // name: 'activityDetail', + // component: () => import('../views/website/activity/detail.vue'), + // }, + // ] + }, + { + path: "about", + name: "about", + component: () => import("../views/website/about/about.vue"), + }, + { + path: "news", + name: "news-list", + component: () => import("../views/website/home/index.vue"), + }, + { + path: "news/detail/:id", + name: "news", + component: () => import("@/views/website/news/detail.vue"), + }, + ], + }, - { - path: "/redirect", - component: Layout, - hidden: true, - children: [ - { - path: "/redirect/:path(.*)", - component: () => import("@/views/redirect/index.vue"), - }, - ], - }, // { - // path: "/login", - // component: () => import("@/views/login"), - // hidden: true, - // }, - // { - // path: "/register", - // component: () => import("@/views/register"), - // hidden: true, - // }, - { - path: "/:pathMatch(.*)*", - component: () => import("@/views/error/404"), - hidden: true, - }, - { - path: "/401", - component: () => import("@/views/error/401"), - hidden: true, - }, + { + path: "/redirect", + component: Layout, + hidden: true, + children: [ + { + path: "/redirect/:path(.*)", + component: () => import("@/views/redirect/index.vue"), + }, + ], + }, // { + // path: "/login", + // component: () => import("@/views/login"), + // hidden: true, + // }, + // { + // path: "/register", + // component: () => import("@/views/register"), + // hidden: true, + // }, + { + path: "/:pathMatch(.*)*", + component: () => import("@/views/error/404"), + hidden: true, + }, + { + path: "/401", + component: () => import("@/views/error/401"), + hidden: true, + }, - { - path: "/identity", - component: () => import("@/views/identity/layout"), - hidden: true, - children: [ - { - path: "index", - component: () => import("@/views/identity/index"), - name: "index", - meta: { title: "身份选择" }, - }, - { - path: "enterprise", - component: () => import("@/views/identity/enterprise"), - name: "enterprise", - meta: { title: "企业入驻" }, - }, - { - path: "expert", - component: () => import("@/views/identity/expert"), - name: "expert", - meta: { title: "专家入驻" }, - }, - { - path: "research", - component: () => import("@/views/identity/research"), - name: "research", - meta: { title: "研究机构入驻" }, - }, - { - path: "laboratory", - component: () => import("@/views/identity/laboratory"), - name: "laboratory", - meta: { title: "实验室入驻" }, - }, - { - path: "agent", - component: () => import("@/views/identity/agent"), - name: "agent", - meta: { title: "科技经纪人入驻" }, - }, - ], - }, //TODO: + { + path: "/identity", + component: () => import("@/views/identity/layout"), + hidden: true, + children: [ + { + path: "index", + component: () => import("@/views/identity/index"), + name: "index", + meta: {title: "身份选择"}, + }, + { + path: "enterprise", + component: () => import("@/views/identity/enterprise"), + name: "enterprise", + meta: {title: "企业入驻"}, + }, + { + path: "expert", + component: () => import("@/views/identity/expert"), + name: "expert", + meta: {title: "专家入驻"}, + }, + { + path: "research", + component: () => import("@/views/identity/research"), + name: "research", + meta: {title: "研究机构入驻"}, + }, + { + path: "laboratory", + component: () => import("@/views/identity/laboratory"), + name: "laboratory", + meta: {title: "实验室入驻"}, + }, + { + path: "agent", + component: () => import("@/views/identity/agent"), + name: "agent", + meta: {title: "科技经纪人入驻"}, + }, + ], + }, //TODO: - // { - // path: '', - // component: Layout, - // redirect: '/index', - // children: [ - // { - // path: '/index', - // component: () => import('@/views/index'), - // name: 'Index', - // meta: { title: '首页', icon: 'dashboard', affix: true } - // } - // ] - // }, - { - path: "/user", - component: Layout, - hidden: true, - redirect: "noredirect", - children: [ - { - path: "profile", - component: () => import("@/views/system/user/profile/index"), - name: "Profile", - meta: { title: "个人中心", icon: "user" }, - }, - ], - }, + // { + // path: '', + // component: Layout, + // redirect: '/index', + // children: [ + // { + // path: '/index', + // component: () => import('@/views/index'), + // name: 'Index', + // meta: { title: '首页', icon: 'dashboard', affix: true } + // } + // ] + // }, + { + path: "/user", + component: Layout, + hidden: true, + redirect: "noredirect", + children: [ + { + path: "profile", + component: () => import("@/views/system/user/profile/index"), + name: "Profile", + meta: {title: "个人中心", icon: "user"}, + }, + ], + }, ]; // 企业后台路由表 export const enterpriseRoutes = [ - { - path: "/admin", - component: Layout, - redirect: "/admin/index", - children: [ - { - path: "index", - component: () => import("@/views/admin/enterprise/index"), - name: "Index", - meta: { - title: "首页", - i18nStr: "routes.company.home", - icon: "dashboard", - affix: true, - }, - }, - ], - }, - { - path: "/account", - component: Layout, - meta: { - title: "账号管理", - icon: "dashboard", - i18nStr: "routes.company.accountManagement", + { + path: "/admin", + component: Layout, + redirect: "/admin/index", + children: [ + { + path: "index", + component: () => import("@/views/admin/enterprise/index"), + name: "Index", + meta: { + title: "首页", + i18nStr: "routes.company.home", + icon: "dashboard", + affix: true, + }, + }, + ], }, - alwaysShow: true, - redirect: "/account/basicInfo", - children: [ - { - path: "basicInfo", - component: basicInfo, - name: "basicInfo", + { + path: "/account", + component: Layout, meta: { - title: "基本资料", - i18nStr: "routes.company.basicInformation", - icon: "list", + title: "账号管理", + icon: "dashboard", + i18nStr: "routes.company.accountManagement", }, - }, - { - path: "joinMembership", - component: () => - import("@/views/admin/enterprise/account/joinMembership"), - name: "joinMembership", - meta: { - title: "开通会员", - icon: "list", - i18nStr: "routes.company.openMember", - }, - }, - { - path: "bill", - component: () => import("@/views/admin/enterprise/account/bill"), - name: "Bill", - meta: { - title: "账单列表", - icon: "list", - i18nStr: "routes.company.billList", - }, - }, // { - // path: "record", - // component: () => import("@/views/admin/enterprise/account/record"), - // name: "Record", - // meta: { title: "创新币兑换记录", icon: "list" }, - // }, - ], - }, - { - path: "/extension", - component: Layout, - meta: { - title: "产品推广", - icon: "dashboard", - i18nStr: "routes.company.productPromotion", + alwaysShow: true, + redirect: "/account/basicInfo", + children: [ + { + path: "basicInfo", + component: basicInfo, + name: "basicInfo", + meta: { + title: "基本资料", + i18nStr: "routes.company.basicInformation", + icon: "list", + }, + }, + { + path: "joinMembership", + component: () => + import("@/views/admin/enterprise/account/joinMembership"), + name: "joinMembership", + meta: { + title: "开通会员", + icon: "list", + i18nStr: "routes.company.openMember", + }, + }, + { + path: "bill", + component: () => import("@/views/admin/enterprise/account/bill"), + name: "Bill", + meta: { + title: "账单列表", + icon: "list", + i18nStr: "routes.company.billList", + }, + }, // { + // path: "record", + // component: () => import("@/views/admin/enterprise/account/record"), + // name: "Record", + // meta: { title: "创新币兑换记录", icon: "list" }, + // }, + ], }, - alwaysShow: true, - redirect: "/extension/product", - children: [ - { - path: "product", - component: () => import("@/views/admin/enterprise/extension/product"), - name: "Product", + { + path: "/extension", + component: Layout, meta: { - title: "产品列表", - icon: "list", - i18nStr: "routes.company.productList", + title: "产品推广", + icon: "dashboard", + i18nStr: "routes.company.productPromotion", }, - }, - { - path: "release", - component: () => import("@/views/admin/enterprise/extension/release"), - hidden: true, - name: "Release", - meta: { - title: "发布产品", - icon: "list", - i18nStr: "routes.company.publishProduct", - }, - }, - { - path: "results", - component: () => import("@/views/admin/enterprise/extension/results"), - hidden: true, - name: "Results", - meta: { - title: "匹配结果", - icon: "list", - isMatch: true, - i18nStr: "routes.company.matchingResults", - }, - }, - { - path: "business", - component: () => import("@/views/admin/enterprise/extension/business"), - hidden: true, - name: "Business", - meta: { - title: "浏览信息", - icon: "list", - i18nStr: "routes.company.browseInformation", - }, - }, - ], - }, - { - path: "/demand", - component: Layout, - meta: { - title: "需求管理", - icon: "dashboard", - i18nStr: "routes.company.demandManagement", + alwaysShow: true, + redirect: "/extension/product", + children: [ + { + path: "product", + component: () => import("@/views/admin/enterprise/extension/product"), + name: "Product", + meta: { + title: "产品列表", + icon: "list", + i18nStr: "routes.company.productList", + }, + }, + { + path: "release", + component: () => import("@/views/admin/enterprise/extension/release"), + hidden: true, + name: "Release", + meta: { + title: "发布产品", + icon: "list", + i18nStr: "routes.company.publishProduct", + }, + }, + { + path: "results", + component: () => import("@/views/admin/enterprise/extension/results"), + hidden: true, + name: "Results", + meta: { + title: "匹配结果", + icon: "list", + isMatch: true, + i18nStr: "routes.company.matchingResults", + }, + }, + { + path: "business", + component: () => import("@/views/admin/enterprise/extension/business"), + hidden: true, + name: "Business", + meta: { + title: "浏览信息", + icon: "list", + i18nStr: "routes.company.browseInformation", + }, + }, + ], }, - alwaysShow: true, - redirect: "/demand/serviceDemand", - children: [ - { - path: "serviceDemand", - component: () => - import("@/views/admin/enterprise/demand/serviceDemand"), - name: "serviceDemand", + { + path: "/demand", + component: Layout, meta: { - title: "服务需求", - icon: "list", - i18nStr: "routes.company.serviceDemand", + title: "需求管理", + icon: "dashboard", + i18nStr: "routes.company.demandManagement", }, - }, - { - path: "releaseService", - component: () => - import("@/views/admin/enterprise/demand/releaseService"), - hidden: true, - name: "releaseService", - meta: { - title: "发布服务需求", - icon: "list", - i18nStr: "routes.company.publishServiceDemand", - }, - }, - { - path: "technology", - component: () => import("@/views/admin/enterprise/demand/technology"), - name: "technology", - meta: { - title: "技术需求", - icon: "list", - i18nStr: "routes.company.technicalDemand", - }, - }, - { - path: "releaseTechnology", - component: () => - import("@/views/admin/enterprise/demand/releaseTechnology"), - hidden: true, - name: "releaseTechnology", - meta: { - title: "发布技术需求", - icon: "list", - i18nStr: "routes.company.publishTechnicalDemand", - }, - }, - { - path: "results", - component: () => import("@/views/admin/enterprise/extension/results"), - hidden: true, - name: "results", - meta: { - title: "匹配结果", - icon: "list", - isMatch: true, - i18nStr: "routes.company.matchingResults", - }, - }, - ], - }, - { - path: "/activity", - component: Layout, - meta: { - title: "活动管理", - icon: "dashboard", - i18nStr: "routes.company.activityManagement", + alwaysShow: true, + redirect: "/demand/serviceDemand", + children: [ + { + path: "serviceDemand", + component: () => + import("@/views/admin/enterprise/demand/serviceDemand"), + name: "serviceDemand", + meta: { + title: "服务需求", + icon: "list", + i18nStr: "routes.company.serviceDemand", + }, + }, + { + path: "releaseService", + component: () => + import("@/views/admin/enterprise/demand/releaseService"), + hidden: true, + name: "releaseService", + meta: { + title: "发布服务需求", + icon: "list", + i18nStr: "routes.company.publishServiceDemand", + }, + }, + { + path: "technology", + component: () => import("@/views/admin/enterprise/demand/technology"), + name: "technology", + meta: { + title: "技术需求", + icon: "list", + i18nStr: "routes.company.technicalDemand", + }, + }, + { + path: "releaseTechnology", + component: () => + import("@/views/admin/enterprise/demand/releaseTechnology"), + hidden: true, + name: "releaseTechnology", + meta: { + title: "发布技术需求", + icon: "list", + i18nStr: "routes.company.publishTechnicalDemand", + }, + }, + { + path: "results", + component: () => import("@/views/admin/enterprise/extension/results"), + hidden: true, + name: "results", + meta: { + title: "匹配结果", + icon: "list", + isMatch: true, + i18nStr: "routes.company.matchingResults", + }, + }, + ], }, - alwaysShow: true, - redirect: "/activity/active", - children: [ - { - path: "active", - component: () => import("@/views/admin/enterprise/activity/active"), - name: "Active", + { + path: "/activity", + component: Layout, meta: { - title: "活动列表", - icon: "list", - i18nStr: "routes.company.activityList", + title: "活动管理", + icon: "dashboard", + i18nStr: "routes.company.activityManagement", }, - }, - ], - }, + alwaysShow: true, + redirect: "/activity/active", + children: [ + { + path: "active", + component: () => import("@/views/admin/enterprise/activity/active"), + name: "Active", + meta: { + title: "活动列表", + icon: "list", + i18nStr: "routes.company.activityList", + }, + }, + ], + }, ]; // 专家后台路由表 export const expertRoutes = [ - { - path: "/admin", - component: Layout, - redirect: "/admin/index", - children: [ - { - path: "index", - component: () => import("@/views/admin/expert/index"), - name: "Index", - meta: { - title: "首页", - icon: "dashboard", - affix: true, - i18nStr: "routes.expert.home", - }, - }, - ], - }, - { - path: "/account", - component: Layout, - meta: { - title: "账号管理", - icon: "dashboard", - i18nStr: "routes.expert.accountManagement", + { + path: "/admin", + component: Layout, + redirect: "/admin/index", + children: [ + { + path: "index", + component: () => import("@/views/admin/expert/index"), + name: "Index", + meta: { + title: "首页", + icon: "dashboard", + affix: true, + i18nStr: "routes.expert.home", + }, + }, + ], }, - alwaysShow: true, // redirect: 'noRedirect', - redirect: "/account/bill", - children: [ - // { - // path: "bill", - // component: () => import("@/views/admin/expert/account/bill"), - // name: "Bill", - // meta: { title: "账单列表", icon: "list" }, - // }, - // { - // path: "exchange", - // component: () => import("@/views/admin/expert/account/exchange"), - // name: "Exchange", - // meta: { title: "兑换记录", icon: "list" }, - // }, - { - path: "basicInfo", - component: () => import("@/views/admin/expert/account/basicInfo"), - name: "basicInfo", + { + path: "/account", + component: Layout, meta: { - title: "基本资料", - icon: "list", - i18nStr: "routes.expert.basicInformation", + title: "账号管理", + icon: "dashboard", + i18nStr: "routes.expert.accountManagement", }, - }, // { - // path: "transactionAuth", - // component: () => import("@/views/admin/expert/account/transactionAuth"), - // name: "transactionAuth", - // meta: { title: "交易认证", icon: "list" }, - // }, - // { - // path: "profit", - // component: () => import("@/views/admin/expert/account/profit"), - // name: "profit", - // meta: { title: "收益管理", icon: "list" }, - // }, - // { - // path: "withdrawal", - // component: () => import("@/views/admin/expert/account/withdrawal"), - // hidden: true, - // name: "Withdrawal", - // meta: { title: "提现记录", icon: "list" }, - // }, - ], - }, - { - path: "/technology", - component: Layout, - meta: { - title: "技术管理", - icon: "dashboard", - i18nStr: "routes.expert.technicalManagement", + alwaysShow: true, // redirect: 'noRedirect', + redirect: "/account/bill", + children: [ + // { + // path: "bill", + // component: () => import("@/views/admin/expert/account/bill"), + // name: "Bill", + // meta: { title: "账单列表", icon: "list" }, + // }, + // { + // path: "exchange", + // component: () => import("@/views/admin/expert/account/exchange"), + // name: "Exchange", + // meta: { title: "兑换记录", icon: "list" }, + // }, + { + path: "basicInfo", + component: () => import("@/views/admin/expert/account/basicInfo"), + name: "basicInfo", + meta: { + title: "基本资料", + icon: "list", + i18nStr: "routes.expert.basicInformation", + }, + }, // { + // path: "transactionAuth", + // component: () => import("@/views/admin/expert/account/transactionAuth"), + // name: "transactionAuth", + // meta: { title: "交易认证", icon: "list" }, + // }, + // { + // path: "profit", + // component: () => import("@/views/admin/expert/account/profit"), + // name: "profit", + // meta: { title: "收益管理", icon: "list" }, + // }, + // { + // path: "withdrawal", + // component: () => import("@/views/admin/expert/account/withdrawal"), + // hidden: true, + // name: "Withdrawal", + // meta: { title: "提现记录", icon: "list" }, + // }, + ], }, - alwaysShow: true, - redirect: "/technology/achievement", - children: [ - { - path: "achievement", - component: () => import("@/views/admin/expert/technology/achievement"), - name: "Achievement", + { + path: "/technology", + component: Layout, meta: { - title: "成果列表", - icon: "list", - i18nStr: "routes.expert.achievementList", + title: "技术管理", + icon: "dashboard", + i18nStr: "routes.expert.technicalManagement", }, - }, - { - path: "release", - component: () => import("@/views/admin/expert/technology/release"), - hidden: true, - name: "Release", - meta: { - title: "发布成果", - icon: "list", - i18nStr: "routes.expert.publishAchievement", - }, - }, - { - path: "results", // component: () => import("@/views/admin/expert/technology/results"), - component: () => import("@/views/admin/enterprise/extension/results"), - hidden: true, - name: "Results", - meta: { - title: "匹配结果", - icon: "list", - isMatch: false, - i18nStr: "routes.expert.matchingResults", - }, - }, - { - path: "patent", - component: () => import("@/views/admin/expert/technology/patent"), - name: "patent", - meta: { - title: "专利列表", - icon: "list", - i18nStr: "routes.expert.patentList", - }, - }, - { - path: "claimPatent", - component: () => import("@/views/admin/expert/technology/claimPatent"), - hidden: true, - name: "claimPatent", - meta: { - title: "认领专利", - icon: "list", - i18nStr: "routes.expert.claimPatent", - }, - }, - { - path: "paper", - component: () => import("@/views/admin/expert/technology/paper"), - name: "Paper", - meta: { - title: "论文列表", - icon: "list", - i18nStr: "routes.expert.paperList", - }, - }, - { - path: "research", - component: () => import("@/views/admin/expert/technology/research"), - name: "Research", - meta: { - title: "科研项目列表", - icon: "list", - i18nStr: "routes.expert.researchProjectList", - }, - }, - ], - }, - { - path: "/demand", - component: Layout, - meta: { - title: "需求管理", - icon: "dashboard", - i18nStr: "routes.expert.demandManagement", + alwaysShow: true, + redirect: "/technology/achievement", + children: [ + { + path: "achievement", + component: () => import("@/views/admin/expert/technology/achievement"), + name: "Achievement", + meta: { + title: "成果列表", + icon: "list", + i18nStr: "routes.expert.achievementList", + }, + }, + { + path: "release", + component: () => import("@/views/admin/expert/technology/release"), + hidden: true, + name: "Release", + meta: { + title: "发布成果", + icon: "list", + i18nStr: "routes.expert.publishAchievement", + }, + }, + { + path: "results", // component: () => import("@/views/admin/expert/technology/results"), + component: () => import("@/views/admin/enterprise/extension/results"), + hidden: true, + name: "Results", + meta: { + title: "匹配结果", + icon: "list", + isMatch: false, + i18nStr: "routes.expert.matchingResults", + }, + }, + { + path: "patent", + component: () => import("@/views/admin/expert/technology/patent"), + name: "patent", + meta: { + title: "专利列表", + icon: "list", + i18nStr: "routes.expert.patentList", + }, + }, + { + path: "claimPatent", + component: () => import("@/views/admin/expert/technology/claimPatent"), + hidden: true, + name: "claimPatent", + meta: { + title: "认领专利", + icon: "list", + i18nStr: "routes.expert.claimPatent", + }, + }, + { + path: "paper", + component: () => import("@/views/admin/expert/technology/paper"), + name: "Paper", + meta: { + title: "论文列表", + icon: "list", + i18nStr: "routes.expert.paperList", + }, + }, + { + path: "research", + component: () => import("@/views/admin/expert/technology/research"), + name: "Research", + meta: { + title: "科研项目列表", + icon: "list", + i18nStr: "routes.expert.researchProjectList", + }, + }, + ], }, - alwaysShow: true, - redirect: "/demand/serviceDemand", - children: [ - { - path: "serviceDemand", - component: () => import("@/views/admin/expert/demand/serviceDemand"), - name: "serviceDemand", + { + path: "/demand", + component: Layout, meta: { - title: "服务需求", - icon: "list", - i18nStr: "routes.expert.serviceDemand", + title: "需求管理", + icon: "dashboard", + i18nStr: "routes.expert.demandManagement", }, - }, - { - path: "release", - component: () => import("@/views/admin/expert/demand/release"), - hidden: true, - name: "release", - meta: { - title: "发布需求", - icon: "list", - i18nStr: "routes.expert.publishDemand", - }, - }, - { - path: "already", - component: () => import("@/views/admin/expert/demand/already"), - name: "already", - meta: { - title: "已合作企业", - icon: "list", - i18nStr: "routes.expert.cooperatedCompany", - }, - }, - { - path: "think", - component: () => import("@/views/admin/expert/demand/think"), - name: "think", - meta: { - title: "想合作企业", - icon: "list", - i18nStr: "routes.expert.wantCooperateCompany", - }, - }, - ], - }, + alwaysShow: true, + redirect: "/demand/serviceDemand", + children: [ + { + path: "serviceDemand", + component: () => import("@/views/admin/expert/demand/serviceDemand"), + name: "serviceDemand", + meta: { + title: "服务需求", + icon: "list", + i18nStr: "routes.expert.serviceDemand", + }, + }, + { + path: "release", + component: () => import("@/views/admin/expert/demand/release"), + hidden: true, + name: "release", + meta: { + title: "发布需求", + icon: "list", + i18nStr: "routes.expert.publishDemand", + }, + }, + { + path: "already", + component: () => import("@/views/admin/expert/demand/already"), + name: "already", + meta: { + title: "已合作企业", + icon: "list", + i18nStr: "routes.expert.cooperatedCompany", + }, + }, + { + path: "think", + component: () => import("@/views/admin/expert/demand/think"), + name: "think", + meta: { + title: "想合作企业", + icon: "list", + i18nStr: "routes.expert.wantCooperateCompany", + }, + }, + ], + }, - { - path: "/activity", - component: Layout, - meta: { - title: "活动管理", - icon: "dashboard", - i18nStr: "routes.expert.activityManagement", - }, - alwaysShow: true, - redirect: "/activity/active", - children: [ - { - path: "active", - component: () => import("@/views/admin/expert/activity/active"), - name: "Active", + { + path: "/activity", + component: Layout, meta: { - title: "活动列表", - icon: "list", - i18nStr: "routes.expert.activityList", + title: "活动管理", + icon: "dashboard", + i18nStr: "routes.expert.activityManagement", }, - }, - ], - }, + alwaysShow: true, + redirect: "/activity/active", + children: [ + { + path: "active", + component: () => import("@/views/admin/expert/activity/active"), + name: "Active", + meta: { + title: "活动列表", + icon: "list", + i18nStr: "routes.expert.activityList", + }, + }, + ], + }, ]; export const laboratoryRoutes = [ - { - path: "/admin", - component: Layout, - redirect: "/admin/index", - children: [ - { - path: "index", - component: () => import("@/views/admin/laboratory/index"), - name: "Index", - meta: { - title: "首页", - icon: "dashboard", - affix: true, - i18nStr: "routes.lab.home", - }, - }, - ], - }, - { - path: "/admin/account", - component: Layout, - meta: { - title: "账号管理", - icon: "dashboard", - i18nStr: "routes.lab.accountManagement", + { + path: "/admin", + component: Layout, + redirect: "/admin/index", + children: [ + { + path: "index", + component: () => import("@/views/admin/laboratory/index"), + name: "Index", + meta: { + title: "首页", + icon: "dashboard", + affix: true, + i18nStr: "routes.lab.home", + }, + }, + ], }, - alwaysShow: true, - redirect: "/admin/account/basic-info", - children: [ - { - path: "basic-info", - component: () => - import("@/views/admin/laboratory/account/basic-info.vue"), - name: "basicInfo", + { + path: "/admin/account", + component: Layout, meta: { - title: "基本资料", - icon: "list", - i18nStr: "routes.lab.basicInformation", + title: "账号管理", + icon: "dashboard", + i18nStr: "routes.lab.accountManagement", }, - }, - ], - }, - { - path: "/admin/research", - component: Layout, - meta: { - title: "科研管理", - icon: "dashboard", - i18nStr: "routes.lab.researchManagement", + alwaysShow: true, + redirect: "/admin/account/basic-info", + children: [ + { + path: "basic-info", + component: () => + import("@/views/admin/laboratory/account/basic-info.vue"), + name: "basicInfo", + meta: { + title: "基本资料", + icon: "list", + i18nStr: "routes.lab.basicInformation", + }, + }, + ], }, - alwaysShow: true, - redirect: "/admin/research/patent", - children: [ - { - path: "patent", - component: () => - import("@/views/admin/laboratory/research/patent/index.vue"), - name: "Patent", + { + path: "/admin/research", + component: Layout, meta: { - title: "专利列表", - icon: "list", - i18nStr: "routes.lab.patentList", + title: "科研管理", + icon: "dashboard", + i18nStr: "routes.lab.researchManagement", }, - }, - // { - // path: "achievement", - // component: () => - // import("@/views/admin/laboratory/research/achievement/index.vue"), - // name: "Achievement", - // meta: { - // title: "成果列表", - // icon: "list", - // i18nStr: "routes.lab.achievementList", - // }, - // }, - { - path: "expert-achievement", - component: () => - import("@/views/admin/laboratory/research/achievement/index.vue"), - meta: { - title: "专家成果", - icon: "list", - i18nStr: "routes.lab.expertAchievement", - }, - name: "ExpertAchievement", - }, - { - path: "lab-achievement", - component: () => - import("@/views/admin/laboratory/research/achievement/index.vue"), - meta: { - title: "实验室成果", - icon: "list", - i18nStr: "routes.lab.labAchievement", - }, - name: "LabAchievement", - }, - { - path: "release", - component: () => - import("@/views/admin/laboratory/research/achievement/release"), - hidden: true, - name: "Release", - meta: { - title: "发布成果", - icon: "list", - i18nStr: "routes.expert.publishAchievement", - }, - }, - { - path: "service-demand", - component: () => - import("@/views/admin/laboratory/research/service-demand/index.vue"), - name: "ServiceDemand", - meta: { - title: "服务需求列表", - icon: "list", - i18nStr: "routes.lab.serviceDemandList", - }, - }, - { - path: "service-demand/detail/:id", - component: () => - import("@/views/admin/laboratory/research/service-demand/detail.vue"), - hidden: true, - name: "ServiceDemandDetail", - meta: { - title: "查看需求", - icon: "list", - i18nStr: "routes.lab.viewDemand", - }, - }, - { - path: "expert", - component: () => - import("@/views/admin/laboratory/research/expert/index.vue"), - name: "Expert", - meta: { - title: "专家列表", - icon: "list", - i18nStr: "routes.lab.expertList", - }, - }, - { - path: "research-project", - component: () => - import( - "@/views/admin/laboratory/research/research-project/index.vue" - ), - name: "ResearchProject", - meta: { - title: "科研项目列表", - icon: "list", - i18nStr: "routes.lab.researchProjectList", - }, - }, - { - path: "paper", - component: () => - import("@/views/admin/laboratory/research/paper/index.vue"), - name: "Paper", - meta: { - title: "论文列表", - icon: "list", - i18nStr: "routes.lab.paperList", - }, - }, - { - path: "paper/unit-info", - component: () => - import("@/views/admin/laboratory/research/paper/unit-info.vue"), - hidden: true, - name: "UnitInfo", - meta: { - title: "浏览单位信息", - icon: "list", - i18nStr: "routes.lab.viewUnitInformation", - }, - }, - { - path: "laboratory-equipment", - component: () => - import( - "@/views/admin/laboratory/research/laboratory-equipment/index.vue" - ), - name: "LaboratoryEquipment", - meta: { - title: "实验设备", - icon: "list", - i18nStr: "routes.lab.experimentalEquipment", - }, - }, - ], - }, + alwaysShow: true, + redirect: "/admin/research/patent", + children: [ + { + path: "expert", + component: () => + import("@/views/admin/laboratory/research/expert/index.vue"), + name: "Expert", + meta: { + title: "专家列表", + icon: "list", + i18nStr: "routes.lab.expertList", + }, + }, { + path: "expert-achievement", + component: () => + import("@/views/admin/laboratory/research/achievement/index.vue"), + meta: { + title: "专家成果", + icon: "list", + i18nStr: "routes.lab.expertAchievement", + }, + name: "ExpertAchievement", + }, + { + path: "lab-achievement", + component: () => + import("@/views/admin/laboratory/research/achievement/index.vue"), + meta: { + title: "实验室成果", + icon: "list", + i18nStr: "routes.lab.labAchievement", + }, + name: "LabAchievement", + }, + { + path: "laboratory-equipment", + component: () => + import( + "@/views/admin/laboratory/research/laboratory-equipment/index.vue" + ), + name: "LaboratoryEquipment", + meta: { + title: "实验设备", + icon: "list", + i18nStr: "routes.lab.experimentalEquipment", + }, + }, + { + path: "paper", + component: () => + import("@/views/admin/laboratory/research/paper/index.vue"), + name: "Paper", + meta: { + title: "论文列表", + icon: "list", + i18nStr: "routes.lab.paperList", + }, + }, + { + path: "research-project", + component: () => + import( + "@/views/admin/laboratory/research/research-project/index.vue" + ), + name: "ResearchProject", + meta: { + title: "科研项目列表", + icon: "list", + i18nStr: "routes.lab.researchProjectList", + }, + }, + + { + path: "patent", + component: () => + import("@/views/admin/laboratory/research/patent/index.vue"), + name: "Patent", + meta: { + title: "专利列表", + icon: "list", + i18nStr: "routes.lab.patentList", + }, + }, + // { + // path: "achievement", + // component: () => + // import("@/views/admin/laboratory/research/achievement/index.vue"), + // name: "Achievement", + // meta: { + // title: "成果列表", + // icon: "list", + // i18nStr: "routes.lab.achievementList", + // }, + // }, + + + { + path: "release", + component: () => + import("@/views/admin/laboratory/research/achievement/release"), + hidden: true, + name: "Release", + meta: { + title: "发布成果", + icon: "list", + i18nStr: "routes.expert.publishAchievement", + }, + }, + { + path: "service-demand", + component: () => + import("@/views/admin/laboratory/research/service-demand/index.vue"), + name: "ServiceDemand", + meta: { + title: "服务需求列表", + icon: "list", + i18nStr: "routes.lab.serviceDemandList", + }, + }, + { + path: "service-demand/detail/:id", + component: () => + import("@/views/admin/laboratory/research/service-demand/detail.vue"), + hidden: true, + name: "ServiceDemandDetail", + meta: { + title: "查看需求", + icon: "list", + i18nStr: "routes.lab.viewDemand", + }, + }, + + + { + path: "paper/unit-info", + component: () => + import("@/views/admin/laboratory/research/paper/unit-info.vue"), + hidden: true, + name: "UnitInfo", + meta: { + title: "浏览单位信息", + icon: "list", + i18nStr: "routes.lab.viewUnitInformation", + }, + }, + + ], + }, ]; export const researchRoutes = [ - { - /*研究机构后台首页*/ - path: "/admin", - component: Layout, - redirect: "/admin/index", - children: [ - { - path: "index", - component: () => import("@/views/admin/research/index"), - name: "Index", - meta: { - title: "首页", - icon: "dashboard", - affix: true, - i18nStr: "routes.research.home", - }, - }, - ], - }, - { - path: "/admin/account", - component: Layout, - meta: { - title: "账号管理", - icon: "dashboard", - i18nStr: "routes.research.accountManagement", + { + /*研究机构后台首页*/ + path: "/admin", + component: Layout, + redirect: "/admin/index", + children: [ + { + path: "index", + component: () => import("@/views/admin/research/index"), + name: "Index", + meta: { + title: "首页", + icon: "dashboard", + affix: true, + i18nStr: "routes.research.home", + }, + }, + ], }, - alwaysShow: true, - redirect: "/admin/account/basic-info", - children: [ - { - path: "basic-info", - component: () => - import("@/views/admin/research/account/basic-info.vue"), - name: "basicInfo", + { + path: "/admin/account", + component: Layout, meta: { - title: "基本资料", - icon: "list", - i18nStr: "routes.research.basicInformation", + title: "账号管理", + icon: "dashboard", + i18nStr: "routes.research.accountManagement", }, - }, - ], - }, - { - path: "/admin/research", - component: Layout, - meta: { - title: "科研管理", - icon: "dashboard", - i18nStr: "routes.research.researchManagement", + alwaysShow: true, + redirect: "/admin/account/basic-info", + children: [ + { + path: "basic-info", + component: () => + import("@/views/admin/research/account/basic-info.vue"), + name: "basicInfo", + meta: { + title: "基本资料", + icon: "list", + i18nStr: "routes.research.basicInformation", + }, + }, + ], }, - alwaysShow: true, - redirect: "/admin/research/patent", - children: [ - { - path: "patent", - component: () => - import("@/views/admin/research/research/patent/index.vue"), - name: "Patent", + { + path: "/admin/research", + component: Layout, meta: { - title: "专利列表", - icon: "list", - i18nStr: "routes.research.patentList", + title: "科研管理", + icon: "dashboard", + i18nStr: "routes.research.researchManagement", }, - }, - // { - // path: "achievement", - // component: () => - // import("@/views/admin/research/research/achievement/index.vue"), - // name: "Achievement", - // meta: { - // title: "成果列表", - // icon: "list", - // i18nStr: "routes.research.achievementList", - // }, - // }, - { - path: "expert-achievement", - component: () => - import("@/views/admin/research/research/achievement/index.vue"), - name: "ExpertAchievement", - meta: { - title: "专家成果列表", - icon: "list", - i18nStr: "routes.research.expertAchievementList", - }, - }, - { - path: "research-achievement", - component: () => - import("@/views/admin/research/research/achievement/index.vue"), - name: "ResearchAchievement", - meta: { - title: "科研机构成果列表", - icon: "list", - i18nStr: "routes.research.researchInstitutionAchievementList", - }, - }, - { - path: "service-demand", - component: () => - import("@/views/admin/research/research/service-demand/index.vue"), - name: "ServiceDemand", - hidden: true, - meta: { - title: "服务需求列表", - icon: "list", - i18nStr: "routes.research.serviceDemandList", - }, - }, - { - path: "service-demand/detail/:id", - component: () => - import("@/views/admin/research/research/service-demand/detail.vue"), - hidden: true, - name: "ServiceDemandDetail", - meta: { - title: "查看需求", - icon: "list", - i18nStr: "routes.research.viewDemand", - }, - }, - { - path: "expert", - component: () => - import("@/views/admin/research/research/expert/index.vue"), - name: "Expert", - meta: { - title: "专家列表", - icon: "list", - i18nStr: "routes.research.expertList", - }, - }, - { - path: "research-project", - component: () => - import("@/views/admin/research/research/research-project/index.vue"), - name: "ResearchProject", - meta: { - title: "科研项目列表", - icon: "list", - i18nStr: "routes.research.researchProjectList", - }, - }, - { - path: "laboratory", - component: () => - import("@/views/admin/research/research/laboratory/index.vue"), - name: "Laboratory", - meta: { - title: "实验室列表", - icon: "list", - i18nStr: "routes.research.labList", - }, - }, - { - path: "laboratory/edit", - component: () => - import("@/views/admin/research/research/laboratory/edit.vue"), - name: "EditLaboratory", - hidden: true, - meta: { - title: "修改实验室", - icon: "edit", - i18nStr: "routes.research.modifyLab", - }, - }, - ], - }, - { - // 客户足迹路由 - path: "/admin/footprint", - component: Layout, - meta: { - title: "客户足迹", - icon: "dashboard", - i18nStr: "routes.research.customerFootprint", + alwaysShow: true, + redirect: "/admin/research/patent", + children: [ + { + path: "patent", + component: () => + import("@/views/admin/research/research/patent/index.vue"), + name: "Patent", + meta: { + title: "专利列表", + icon: "list", + i18nStr: "routes.research.patentList", + }, + }, + // { + // path: "achievement", + // component: () => + // import("@/views/admin/research/research/achievement/index.vue"), + // name: "Achievement", + // meta: { + // title: "成果列表", + // icon: "list", + // i18nStr: "routes.research.achievementList", + // }, + // }, + { + path: "expert-achievement", + component: () => + import("@/views/admin/research/research/achievement/index.vue"), + name: "ExpertAchievement", + meta: { + title: "专家成果列表", + icon: "list", + i18nStr: "routes.research.expertAchievementList", + }, + }, + { + path: "research-achievement", + component: () => + import("@/views/admin/research/research/achievement/index.vue"), + name: "ResearchAchievement", + meta: { + title: "科研机构成果列表", + icon: "list", + i18nStr: "routes.research.researchInstitutionAchievementList", + }, + }, + { + path: "service-demand", + component: () => + import("@/views/admin/research/research/service-demand/index.vue"), + name: "ServiceDemand", + hidden: true, + meta: { + title: "服务需求列表", + icon: "list", + i18nStr: "routes.research.serviceDemandList", + }, + }, + { + path: "service-demand/detail/:id", + component: () => + import("@/views/admin/research/research/service-demand/detail.vue"), + hidden: true, + name: "ServiceDemandDetail", + meta: { + title: "查看需求", + icon: "list", + i18nStr: "routes.research.viewDemand", + }, + }, + { + path: "expert", + component: () => + import("@/views/admin/research/research/expert/index.vue"), + name: "Expert", + meta: { + title: "专家列表", + icon: "list", + i18nStr: "routes.research.expertList", + }, + }, + { + path: "research-project", + component: () => + import("@/views/admin/research/research/research-project/index.vue"), + name: "ResearchProject", + meta: { + title: "科研项目列表", + icon: "list", + i18nStr: "routes.research.researchProjectList", + }, + }, + { + path: "laboratory", + component: () => + import("@/views/admin/research/research/laboratory/index.vue"), + name: "Laboratory", + meta: { + title: "实验室列表", + icon: "list", + i18nStr: "routes.research.labList", + }, + }, + { + path: "laboratory/edit", + component: () => + import("@/views/admin/research/research/laboratory/edit.vue"), + name: "EditLaboratory", + hidden: true, + meta: { + title: "修改实验室", + icon: "edit", + i18nStr: "routes.research.modifyLab", + }, + }, + ], }, - alwaysShow: true, - redirect: "/admin/footprint/browsing-history", - children: [ - { - // 浏览数据 - path: "browsing-history", - component: () => - import("@/views/admin/research/footprint/browsing-history/index.vue"), - name: "BrowsingHistory", + { + // 客户足迹路由 + path: "/admin/footprint", + component: Layout, meta: { - title: "浏览数据", - icon: "list", - i18nStr: "routes.research.browsingData", + title: "客户足迹", + icon: "dashboard", + i18nStr: "routes.research.customerFootprint", }, - }, - ], - }, + alwaysShow: true, + redirect: "/admin/footprint/browsing-history", + children: [ + { + // 浏览数据 + path: "browsing-history", + component: () => + import("@/views/admin/research/footprint/browsing-history/index.vue"), + name: "BrowsingHistory", + meta: { + title: "浏览数据", + icon: "list", + i18nStr: "routes.research.browsingData", + }, + }, + ], + }, ]; /** @@ -1176,184 +1181,184 @@ export const researchRoutes = [ * @type {[{redirect: string, path: string, component: {}, children: [{path: string, component: (function(): Promise<{}>), meta: {affix: boolean, icon: string, title: string}, name: string}]}]} */ export const agentRoutes = [ - { - // 首页路由 - path: "/admin", - component: Layout, - redirect: "/admin/index", - children: [ - { - path: "index", - component: () => import("@/views/admin/agent/index.vue"), - name: "Index", - meta: { - title: "首页", - icon: "dashboard", - affix: true, - i18nStr: "routes.broker.home", - }, - }, - ], - }, - { - path: "/admin/service", - component: Layout, - meta: { - title: "服务管理", - icon: "dashboard", - i18nStr: "routes.broker.serviceManagement", + { + // 首页路由 + path: "/admin", + component: Layout, + redirect: "/admin/index", + children: [ + { + path: "index", + component: () => import("@/views/admin/agent/index.vue"), + name: "Index", + meta: { + title: "首页", + icon: "dashboard", + affix: true, + i18nStr: "routes.broker.home", + }, + }, + ], }, - alwaysShow: true, - redirect: "/admin/service/enterprise", - children: [ - { - path: "enterprise", - component: () => - import("@/views/admin/agent/service/enterprise/index.vue"), - name: "ServiceEnterprise", + { + path: "/admin/service", + component: Layout, meta: { - title: "我服务的企业", - icon: "list", - i18nStr: "routes.broker.myServiceEnterprise", + title: "服务管理", + icon: "dashboard", + i18nStr: "routes.broker.serviceManagement", }, - }, - { - path: "technology-demand", - component: () => - import( - "@/views/admin/agent/service/enterprise/technology-demand.vue" - ), - name: "TechnologyDemandList", - hidden: true, - meta: { - title: "技术需求列表", - icon: "list", - i18nStr: "routes.broker.technicalDemandList", - }, - }, - { - path: "results", - component: () => import("@/views/admin/enterprise/extension/results"), - hidden: true, - name: "Results", - meta: { - title: "匹配结果", - icon: "list", - isMatch: true, - i18nStr: "routes.broker.matchingResults", - }, - }, - { - path: "technology-demand-release", - component: () => - import( - "@/views/admin/agent/service/enterprise/technology-demand-release.vue" - ), - name: "TechnologyDemandRelease", - hidden: true, - meta: { - title: "发布需求", - icon: "list", - i18nStr: "routes.broker.publishDemand", - }, - }, - { - path: "update-status", - component: () => - import("@/views/admin/agent/service/enterprise/update-status.vue"), - name: "TechnologyDemandUpdateStatus", - hidden: true, - meta: { - title: "更新状态", - icon: "list", - i18nStr: "routes.broker.updateStatus", - }, - }, - // { - // path: "matching-demand", - // component: () => - // import("@/views/admin/agent/service/matching-demand/index.vue"), - // name: "EnterpriseDemandMatch", - // meta: { - // title: "企业需求匹配", - // icon: "list", - // i18nStr: "routes.broker.enterpriseDemandMatching", - // }, - // }, - { - path: "matching-demand-detail", - component: () => - import("@/views/admin/agent/service/matching-demand/index.vue"), - name: "EnterpriseDemandMatchDetail", - hidden: true, - meta: { - title: "企业需求匹配详情", - icon: "list", - i18nStr: "routes.broker.enterpriseDemandMatchingDetails", - }, - }, - ], - }, + alwaysShow: true, + redirect: "/admin/service/enterprise", + children: [ + { + path: "enterprise", + component: () => + import("@/views/admin/agent/service/enterprise/index.vue"), + name: "ServiceEnterprise", + meta: { + title: "我服务的企业", + icon: "list", + i18nStr: "routes.broker.myServiceEnterprise", + }, + }, + { + path: "technology-demand", + component: () => + import( + "@/views/admin/agent/service/enterprise/technology-demand.vue" + ), + name: "TechnologyDemandList", + hidden: true, + meta: { + title: "技术需求列表", + icon: "list", + i18nStr: "routes.broker.technicalDemandList", + }, + }, + { + path: "results", + component: () => import("@/views/admin/enterprise/extension/results"), + hidden: true, + name: "Results", + meta: { + title: "匹配结果", + icon: "list", + isMatch: true, + i18nStr: "routes.broker.matchingResults", + }, + }, + { + path: "technology-demand-release", + component: () => + import( + "@/views/admin/agent/service/enterprise/technology-demand-release.vue" + ), + name: "TechnologyDemandRelease", + hidden: true, + meta: { + title: "发布需求", + icon: "list", + i18nStr: "routes.broker.publishDemand", + }, + }, + { + path: "update-status", + component: () => + import("@/views/admin/agent/service/enterprise/update-status.vue"), + name: "TechnologyDemandUpdateStatus", + hidden: true, + meta: { + title: "更新状态", + icon: "list", + i18nStr: "routes.broker.updateStatus", + }, + }, + // { + // path: "matching-demand", + // component: () => + // import("@/views/admin/agent/service/matching-demand/index.vue"), + // name: "EnterpriseDemandMatch", + // meta: { + // title: "企业需求匹配", + // icon: "list", + // i18nStr: "routes.broker.enterpriseDemandMatching", + // }, + // }, + { + path: "matching-demand-detail", + component: () => + import("@/views/admin/agent/service/matching-demand/index.vue"), + name: "EnterpriseDemandMatchDetail", + hidden: true, + meta: { + title: "企业需求匹配详情", + icon: "list", + i18nStr: "routes.broker.enterpriseDemandMatchingDetails", + }, + }, + ], + }, - { - path: "/admin/account", - component: Layout, - meta: { - title: "账号管理", - icon: "dashboard", - i18nStr: "routes.broker.accountManagement", - }, - alwaysShow: true, - redirect: "/admin/account/basic-info", - children: [ - { - path: "basic-info", - component: () => import("@/views/admin/agent/account/basic-info.vue"), - name: "basicInfo", + { + path: "/admin/account", + component: Layout, meta: { - title: "基本资料", - icon: "list", - i18nStr: "routes.broker.basicInformation", + title: "账号管理", + icon: "dashboard", + i18nStr: "routes.broker.accountManagement", }, - }, - ], - }, - { - path: "/admin/bill", - component: Layout, - meta: { - title: "账单管理", - icon: "dashboard", - i18nStr: "routes.broker.billManagement", + alwaysShow: true, + redirect: "/admin/account/basic-info", + children: [ + { + path: "basic-info", + component: () => import("@/views/admin/agent/account/basic-info.vue"), + name: "basicInfo", + meta: { + title: "基本资料", + icon: "list", + i18nStr: "routes.broker.basicInformation", + }, + }, + ], }, - alwaysShow: true, - redirect: "/admin/bill/bill-list", - children: [ - { - path: "bill-list", - component: () => import("@/views/admin/agent/bill/bill-list/index.vue"), - name: "BillList", + { + path: "/admin/bill", + component: Layout, meta: { - title: "账单列表", - icon: "list", - i18nStr: "routes.broker.billList", + title: "账单管理", + icon: "dashboard", + i18nStr: "routes.broker.billManagement", }, - }, - ], - }, + alwaysShow: true, + redirect: "/admin/bill/bill-list", + children: [ + { + path: "bill-list", + component: () => import("@/views/admin/agent/bill/bill-list/index.vue"), + name: "BillList", + meta: { + title: "账单列表", + icon: "list", + i18nStr: "routes.broker.billList", + }, + }, + ], + }, ]; // 动态路由,基于用户权限动态去加载 const router = createRouter({ - history: createWebHistory(), - routes: constantRoutes, - scrollBehavior(to, from, savedPosition) { - if (savedPosition) { - return savedPosition; - } else { - return { top: 0 }; - } - }, + history: createWebHistory(), + routes: constantRoutes, + scrollBehavior(to, from, savedPosition) { + if (savedPosition) { + return savedPosition; + } else { + return {top: 0}; + } + }, }); export default router; diff --git a/src/store/modules/user.js b/src/store/modules/user.js index a6ce81e..075a55b 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -1,96 +1,99 @@ -import { login, logout, getInfo } from "@/api/login"; -import { getToken, setToken, removeToken } from "@/utils/auth"; +import {login, logout, getInfo} from "@/api/login"; +import {getToken, setToken, removeToken} from "@/utils/auth"; // import defAva from "@/assets/images/profile.jpg"; import defAva from "@/assets/logo/avatar.png"; const useUserStore = defineStore("user", { - state: () => ({ - token: getToken(), - name: "", - avatar: "", - roles: [], - permissions: [], - roleId: localStorage.getItem("role-id") ?? 1, - userId: "", - nickName: "", - enterprise: {}, - }), - actions: { - // 登录 - login(userInfo) { - const username = userInfo.username.trim(); - const password = userInfo.password; - const code = userInfo.code; - const uuid = userInfo.uuid; - return new Promise((resolve, reject) => { - login(username, password, code, uuid) - .then((res) => { - setToken(res["client-token"]); - this.token = res["client-token"]; - resolve(); - }) - .catch((error) => { - reject(error); - }); - }); - }, - // 获取用户信息 - getInfo() { - return new Promise((resolve, reject) => { - getInfo() - .then((res) => { - const user = res.data.user; - const enterprise = res.data.enterprise; - const userId = user.userId; - const avatar = - /* user.avatar == "" || user.avatar == null - ? defAva - : import.meta.env.VITE_APP_BASE_API + */ user.avatar; + state: () => ({ + token: getToken(), + name: "", + avatar: "", + roles: [], + permissions: [], + roleId: localStorage.getItem("role-id") ?? 1, + userId: "", + nickName: "", + enterprise: {}, + vip: null + }), + actions: { + // 登录 + login(userInfo) { + const username = userInfo.username.trim(); + const password = userInfo.password; + const code = userInfo.code; + const uuid = userInfo.uuid; + return new Promise((resolve, reject) => { + login(username, password, code, uuid) + .then((res) => { + setToken(res["client-token"]); + this.token = res["client-token"]; + resolve(); + }) + .catch((error) => { + reject(error); + }); + }); + }, + // 获取用户信息 + getInfo() { + return new Promise((resolve, reject) => { + getInfo() + .then((res) => { + const user = res.data.user; + const enterprise = res.data.enterprise; + const vip = res.data.vip; + const userId = user.userId; + const avatar = + /* user.avatar == "" || user.avatar == null + ? defAva + : import.meta.env.VITE_APP_BASE_API + */ user.avatar; - if (res.roles && res.roles.length > 0) { - // 验证返回的roles是否是一个非空数组 - this.roles = res.roles; - this.permissions = res.permissions; - } else { - this.roles = ["ROLE_DEFAULT"]; - } - this.name = user.userName; - this.avatar = avatar; - this.userId = userId; - this.nickName = user.nickName; - this.enterprise = enterprise; - resolve(res); - }) - .catch((error) => { - reject(error); - }); - }); - }, - // 退出系统 - logOut() { - return new Promise((resolve, reject) => { - logout(this.token) - .then(() => { - this.token = ""; - this.roles = []; - this.permissions = []; - removeToken(); - resolve(); - }) - .catch((error) => { - reject(error); - }); - }); - }, + if (res.roles && res.roles.length > 0) { + // 验证返回的roles是否是一个非空数组 + this.roles = res.roles; + this.permissions = res.permissions; + } else { + this.roles = ["ROLE_DEFAULT"]; + } + this.name = user.userName; + this.avatar = avatar; + this.userId = userId; + this.nickName = user.nickName; + this.enterprise = enterprise; + this.vip = vip; + resolve(res); + }) + .catch((error) => { + reject(error); + }); + }); + }, + // 退出系统 + logOut() { + return new Promise((resolve, reject) => { + logout(this.token) + .then(() => { + this.token = ""; + this.roles = []; + this.permissions = []; + removeToken(); + resolve(); + }) + .catch((error) => { + reject(error); + }); + }); + }, - // 切换角色 - switchRole(roleId) { - // return new Promise((resolve, reject) => { - this.roleId = roleId; - localStorage.setItem("role-id", roleId); - // }); + // 切换角色 + switchRole(roleId) { + // return new Promise((resolve, reject) => { + this.roleId = roleId; + localStorage.setItem("role-id", roleId); + // }); + }, }, - }, }); export default useUserStore; diff --git a/src/views/admin/enterprise/account/joinMembership.vue b/src/views/admin/enterprise/account/joinMembership.vue index aec857c..f7870f8 100644 --- a/src/views/admin/enterprise/account/joinMembership.vue +++ b/src/views/admin/enterprise/account/joinMembership.vue @@ -55,8 +55,8 @@
{{ latestNews?.title }}
如需对接,请联系我们
联系人:中科云平台
-联系电话:18156053255(微信同号)
+{{ t("webSearch.contactInformation") }}:(+86)18156053255, zkxh2024@qq.com