diff --git a/src/api/admin/laboratory/account.js b/src/api/admin/laboratory/account.js
new file mode 100644
index 0000000..132e4c3
--- /dev/null
+++ b/src/api/admin/laboratory/account.js
@@ -0,0 +1,19 @@
+// 获取用户详细信息
+import request from "@/utils/request";
+
+/*获取实验室基本信息*/
+export function getInfo() {
+ return request({
+ url: "/app/laboratory/info",
+ method: "get",
+ });
+}
+
+// 实验室信息修改
+export const updateLaboratory = (data) => {
+ return request({
+ url: "/app/laboratory/updateLaboratory",
+ method: "POST",
+ data,
+ });
+};
\ No newline at end of file
diff --git a/src/api/admin/laboratory/patent.js b/src/api/admin/laboratory/patent.js
new file mode 100644
index 0000000..f1caa24
--- /dev/null
+++ b/src/api/admin/laboratory/patent.js
@@ -0,0 +1,40 @@
+import request from "@/utils/request";
+
+// 实验室专利列表
+export const labPatentList = (params) => {
+ return request({
+ url: `/app/laboratory/patent/list`,
+ method: "GET",
+ params
+ });
+};
+
+// 实验室新增专利
+export const insertLabPatent = (data) => {
+ return request({
+ url: `/app/laboratory/patent`,
+ method: "POST",
+ data,
+ });
+};
+
+
+/**
+ * 实验室修改专利
+ * @param data
+ * @return {*}
+ */
+export const updateLabPatent = (data) => {
+ return request({
+ url: `/app/laboratory/patent`,
+ method: "PUT",
+ data,
+ });
+};
+
+export const deleteLabPatentByIds = (ids) => {
+ return request({
+ url: `/app/laboratory/patent/${ids}`,
+ method: "DELETE",
+ });
+};
\ No newline at end of file
diff --git a/src/api/identity/index.js b/src/api/identity/index.js
index c00b617..bc00857 100644
--- a/src/api/identity/index.js
+++ b/src/api/identity/index.js
@@ -2,75 +2,82 @@ import request from "@/utils/request";
// 首页每一项
export function identity() {
- return request({
- url: "/app/getRoleStatus",
- });
+ return request({
+ url: "/app/getRoleStatus",
+ });
}
+
// 当前状态
export function settled() {
- return request({
- url: "/enterprise/v1/settled",
- });
+ return request({
+ url: "/enterprise/v1/settled",
+ });
}
+
// 当前状态切换
export function identitySwitch(data) {
- return request({
- url: "/enterprise/v1/user/identity/switch",
- method: "post",
- data,
- });
+ return request({
+ url: "/enterprise/v1/user/identity/switch",
+ method: "post",
+ data,
+ });
}
+
// 申请企业入住
export function insertEnterprise(data) {
- return request({
- url: "/app/insertEnterprise",
- method: "post",
- data,
- });
+ return request({
+ url: "/app/insertEnterprise",
+ method: "post",
+ data,
+ });
}
+
// 专家入驻
export function insertCasExpert(data) {
- return request({
- url: "/app/expert/insertCasExpert",
- method: "post",
- data,
- });
+ return request({
+ url: "/app/expert/insertCasExpert",
+ method: "post",
+ data,
+ });
}
+
// 所属单位
export function researchSelect() {
- return request({
- url: "/enterprise/v1/manage/research/select",
- });
+ return request({
+ url: "/enterprise/v1/manage/research/select",
+ });
}
+
// 所属单位>实验室
export function laboratorySelect() {
- return request({
- url: "/enterprise/v1/manage/research/laboratory",
- });
+ return request({
+ url: "/enterprise/v1/manage/research/laboratory",
+ });
}
+
// 科研机构入驻
export function research(data) {
- return request({
- url: "/enterprise/v1/settled/research",
- method: "post",
- data,
- });
+ return request({
+ url: "/enterprise/v1/settled/research",
+ method: "post",
+ data,
+ });
}
// 实验室入驻
-export function laboratory(data) {
- return request({
- url: "/enterprise/v1/settled/laboratory",
- method: "post",
- data,
- });
+export function insertLaboratory(data) {
+ return request({
+ url: "/app/laboratory/insertLaboratory",
+ method: "post",
+ data,
+ });
}
// 实验室入驻
export function agent(data) {
- return request({
- url: "/enterprise/v1/settled/agent",
- method: "post",
- data,
- });
+ return request({
+ url: "/enterprise/v1/settled/agent",
+ method: "post",
+ data,
+ });
}
diff --git a/src/router/index.js b/src/router/index.js
index c588566..8b5f9ec 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -1,4 +1,4 @@
-import { createWebHistory, createRouter } from "vue-router";
+import {createRouter, createWebHistory} from "vue-router";
/* Layout */
import Layout from "@/layout";
import basicInfo from "../views/admin/enterprise/account/basicInfo.vue";
@@ -27,685 +27,751 @@ import basicInfo from "../views/admin/enterprise/account/basicInfo.vue";
// 公共路由
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: "/",
+ 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: "/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: "首页", icon: "dashboard", affix: true },
- },
- ],
- },
- {
- path: "/account",
- component: Layout,
- meta: { title: "账号管理", icon: "dashboard" },
- alwaysShow: true,
- redirect: "/account/basicInfo",
- children: [
- {
- path: "basicInfo",
- component: basicInfo,
- name: "basicInfo",
- meta: { title: "基本资料", icon: "list" },
- },
- {
- path: "joinMembership",
- component: () =>
- import("@/views/admin/enterprise/account/joinMembership"),
- name: "joinMembership",
- meta: { title: "开通会员", icon: "list" },
- },
- {
- path: "bill",
- component: () => import("@/views/admin/enterprise/account/bill"),
- name: "Bill",
- meta: { title: "账单列表", icon: "list" },
- },
- // {
- // path: "record",
- // component: () => import("@/views/admin/enterprise/account/record"),
- // name: "Record",
- // meta: { title: "创新币兑换记录", icon: "list" },
- // },
- ],
- },
- {
- path: "/extension",
- component: Layout,
- meta: { title: "产品推广", icon: "dashboard" },
- alwaysShow: true,
- redirect: "/extension/product",
- children: [
- {
- path: "product",
- component: () => import("@/views/admin/enterprise/extension/product"),
- name: "Product",
- meta: { title: "产品列表", icon: "list" },
- },
- {
- path: "release",
- component: () => import("@/views/admin/enterprise/extension/release"),
- hidden: true,
- name: "Release",
- meta: { title: "发布产品", icon: "list" },
- },
- {
- path: "results",
- component: () => import("@/views/admin/enterprise/extension/results"),
- hidden: true,
- name: "Results",
- meta: { title: "匹配结果", icon: "list", isMatch: true },
- },
- {
- path: "business",
- component: () => import("@/views/admin/enterprise/extension/business"),
- hidden: true,
- name: "Business",
- meta: { title: "浏览信息", icon: "list" },
- },
- ],
- },
- {
- path: "/demand",
- component: Layout,
- meta: { title: "需求管理", icon: "dashboard" },
- alwaysShow: true,
- redirect: "/demand/serviceDemand",
- children: [
- {
- path: "serviceDemand",
- component: () =>
- import("@/views/admin/enterprise/demand/serviceDemand"),
- name: "serviceDemand",
- meta: { title: "服务需求", icon: "list" },
- },
- {
- path: "releaseService",
- component: () =>
- import("@/views/admin/enterprise/demand/releaseService"),
- hidden: true,
- name: "releaseService",
- meta: { title: "发布服务需求", icon: "list" },
- },
- {
- path: "technology",
- component: () => import("@/views/admin/enterprise/demand/technology"),
- name: "technology",
- meta: { title: "技术需求", icon: "list" },
- },
- {
- path: "releaseTechnology",
- component: () =>
- import("@/views/admin/enterprise/demand/releaseTechnology"),
- hidden: true,
- name: "releaseTechnology",
- meta: { title: "发布技术需求", icon: "list" },
- },
- {
- path: "results",
- component: () => import("@/views/admin/enterprise/extension/results"),
- hidden: true,
- name: "results",
- meta: { title: "匹配结果", icon: "list", isMatch: true },
- },
- ],
- },
- {
- path: "/activity",
- component: Layout,
- meta: { title: "活动管理", icon: "dashboard" },
- alwaysShow: true,
- redirect: "/activity/active",
- children: [
- {
- path: "active",
- component: () => import("@/views/admin/enterprise/activity/active"),
- name: "Active",
- meta: { title: "活动列表", icon: "list" },
- },
- ],
- },
+ {
+ path: "/admin",
+ component: Layout,
+ redirect: "/admin/index",
+ children: [
+ {
+ path: "index",
+ component: () => import("@/views/admin/enterprise/index"),
+ name: "Index",
+ meta: {title: "首页", icon: "dashboard", affix: true},
+ },
+ ],
+ },
+ {
+ path: "/account",
+ component: Layout,
+ meta: {title: "账号管理", icon: "dashboard"},
+ alwaysShow: true,
+ redirect: "/account/basicInfo",
+ children: [
+ {
+ path: "basicInfo",
+ component: basicInfo,
+ name: "basicInfo",
+ meta: {title: "基本资料", icon: "list"},
+ },
+ {
+ path: "joinMembership",
+ component: () =>
+ import("@/views/admin/enterprise/account/joinMembership"),
+ name: "joinMembership",
+ meta: {title: "开通会员", icon: "list"},
+ },
+ {
+ path: "bill",
+ component: () => import("@/views/admin/enterprise/account/bill"),
+ name: "Bill",
+ meta: {title: "账单列表", icon: "list"},
+ },
+ // {
+ // path: "record",
+ // component: () => import("@/views/admin/enterprise/account/record"),
+ // name: "Record",
+ // meta: { title: "创新币兑换记录", icon: "list" },
+ // },
+ ],
+ },
+ {
+ path: "/extension",
+ component: Layout,
+ meta: {title: "产品推广", icon: "dashboard"},
+ alwaysShow: true,
+ redirect: "/extension/product",
+ children: [
+ {
+ path: "product",
+ component: () => import("@/views/admin/enterprise/extension/product"),
+ name: "Product",
+ meta: {title: "产品列表", icon: "list"},
+ },
+ {
+ path: "release",
+ component: () => import("@/views/admin/enterprise/extension/release"),
+ hidden: true,
+ name: "Release",
+ meta: {title: "发布产品", icon: "list"},
+ },
+ {
+ path: "results",
+ component: () => import("@/views/admin/enterprise/extension/results"),
+ hidden: true,
+ name: "Results",
+ meta: {title: "匹配结果", icon: "list", isMatch: true},
+ },
+ {
+ path: "business",
+ component: () => import("@/views/admin/enterprise/extension/business"),
+ hidden: true,
+ name: "Business",
+ meta: {title: "浏览信息", icon: "list"},
+ },
+ ],
+ },
+ {
+ path: "/demand",
+ component: Layout,
+ meta: {title: "需求管理", icon: "dashboard"},
+ alwaysShow: true,
+ redirect: "/demand/serviceDemand",
+ children: [
+ {
+ path: "serviceDemand",
+ component: () =>
+ import("@/views/admin/enterprise/demand/serviceDemand"),
+ name: "serviceDemand",
+ meta: {title: "服务需求", icon: "list"},
+ },
+ {
+ path: "releaseService",
+ component: () =>
+ import("@/views/admin/enterprise/demand/releaseService"),
+ hidden: true,
+ name: "releaseService",
+ meta: {title: "发布服务需求", icon: "list"},
+ },
+ {
+ path: "technology",
+ component: () => import("@/views/admin/enterprise/demand/technology"),
+ name: "technology",
+ meta: {title: "技术需求", icon: "list"},
+ },
+ {
+ path: "releaseTechnology",
+ component: () =>
+ import("@/views/admin/enterprise/demand/releaseTechnology"),
+ hidden: true,
+ name: "releaseTechnology",
+ meta: {title: "发布技术需求", icon: "list"},
+ },
+ {
+ path: "results",
+ component: () => import("@/views/admin/enterprise/extension/results"),
+ hidden: true,
+ name: "results",
+ meta: {title: "匹配结果", icon: "list", isMatch: true},
+ },
+ ],
+ },
+ {
+ path: "/activity",
+ component: Layout,
+ meta: {title: "活动管理", icon: "dashboard"},
+ alwaysShow: true,
+ redirect: "/activity/active",
+ children: [
+ {
+ path: "active",
+ component: () => import("@/views/admin/enterprise/activity/active"),
+ name: "Active",
+ meta: {title: "活动列表", icon: "list"},
+ },
+ ],
+ },
];
// 专家后台路由表
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 },
- },
- ],
- },
- {
- path: "/account",
- component: Layout,
- meta: { title: "账号管理", icon: "dashboard" },
- 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" },
- },
- // {
- // 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" },
- alwaysShow: true,
- redirect: "/technology/achievement",
- children: [
- {
- path: "achievement",
- component: () => import("@/views/admin/expert/technology/achievement"),
- name: "Achievement",
- meta: { title: "成果列表", icon: "list" },
- },
- {
- path: "release",
- component: () => import("@/views/admin/expert/technology/release"),
- hidden: true,
- name: "Release",
- meta: { title: "发布成果", icon: "list" },
- },
- {
- 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 },
- },
- {
- path: "patent",
- component: () => import("@/views/admin/expert/technology/patent"),
- name: "patent",
- meta: { title: "专利列表", icon: "list" },
- },
- {
- path: "claimPatent",
- component: () => import("@/views/admin/expert/technology/claimPatent"),
- hidden: true,
- name: "claimPatent",
- meta: { title: "认领专利", icon: "list" },
- },
- {
- path: "paper",
- component: () => import("@/views/admin/expert/technology/paper"),
- name: "Paper",
- meta: { title: "论文列表", icon: "list" },
- },
- {
- path: "research",
- component: () => import("@/views/admin/expert/technology/research"),
- name: "Research",
- meta: { title: "科研项目列表", icon: "list" },
- },
- ],
- },
- {
- path: "/demand",
- component: Layout,
- meta: { title: "需求管理", icon: "dashboard" },
- alwaysShow: true,
- redirect: "/demand/serviceDemand",
- children: [
- {
- path: "serviceDemand",
- component: () => import("@/views/admin/expert/demand/serviceDemand"),
- name: "serviceDemand",
- meta: { title: "服务需求", icon: "list" },
- },
- {
- path: "release",
- component: () => import("@/views/admin/expert/demand/release"),
- hidden: true,
- name: "release",
- meta: { title: "发布需求", icon: "list" },
- },
- {
- path: "already",
- component: () => import("@/views/admin/expert/demand/already"),
- name: "already",
- meta: { title: "已合作企业", icon: "list" },
- },
- {
- path: "think",
- component: () => import("@/views/admin/expert/demand/think"),
- name: "think",
- meta: { title: "想合作企业", icon: "list" },
- },
- ],
- },
+ {
+ path: "/admin",
+ component: Layout,
+ redirect: "/admin/index",
+ children: [
+ {
+ path: "index",
+ component: () => import("@/views/admin/expert/index"),
+ name: "Index",
+ meta: {title: "首页", icon: "dashboard", affix: true},
+ },
+ ],
+ },
+ {
+ path: "/account",
+ component: Layout,
+ meta: {title: "账号管理", icon: "dashboard"},
+ 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"},
+ },
+ // {
+ // 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"},
+ alwaysShow: true,
+ redirect: "/technology/achievement",
+ children: [
+ {
+ path: "achievement",
+ component: () => import("@/views/admin/expert/technology/achievement"),
+ name: "Achievement",
+ meta: {title: "成果列表", icon: "list"},
+ },
+ {
+ path: "release",
+ component: () => import("@/views/admin/expert/technology/release"),
+ hidden: true,
+ name: "Release",
+ meta: {title: "发布成果", icon: "list"},
+ },
+ {
+ 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},
+ },
+ {
+ path: "patent",
+ component: () => import("@/views/admin/expert/technology/patent"),
+ name: "patent",
+ meta: {title: "专利列表", icon: "list"},
+ },
+ {
+ path: "claimPatent",
+ component: () => import("@/views/admin/expert/technology/claimPatent"),
+ hidden: true,
+ name: "claimPatent",
+ meta: {title: "认领专利", icon: "list"},
+ },
+ {
+ path: "paper",
+ component: () => import("@/views/admin/expert/technology/paper"),
+ name: "Paper",
+ meta: {title: "论文列表", icon: "list"},
+ },
+ {
+ path: "research",
+ component: () => import("@/views/admin/expert/technology/research"),
+ name: "Research",
+ meta: {title: "科研项目列表", icon: "list"},
+ },
+ ],
+ },
+ {
+ path: "/demand",
+ component: Layout,
+ meta: {title: "需求管理", icon: "dashboard"},
+ alwaysShow: true,
+ redirect: "/demand/serviceDemand",
+ children: [
+ {
+ path: "serviceDemand",
+ component: () => import("@/views/admin/expert/demand/serviceDemand"),
+ name: "serviceDemand",
+ meta: {title: "服务需求", icon: "list"},
+ },
+ {
+ path: "release",
+ component: () => import("@/views/admin/expert/demand/release"),
+ hidden: true,
+ name: "release",
+ meta: {title: "发布需求", icon: "list"},
+ },
+ {
+ path: "already",
+ component: () => import("@/views/admin/expert/demand/already"),
+ name: "already",
+ meta: {title: "已合作企业", icon: "list"},
+ },
+ {
+ path: "think",
+ component: () => import("@/views/admin/expert/demand/think"),
+ name: "think",
+ meta: {title: "想合作企业", icon: "list"},
+ },
+ ],
+ },
- {
- path: "/activity",
- component: Layout,
- meta: { title: "活动管理", icon: "dashboard" },
- alwaysShow: true,
- redirect: "/activity/active",
- children: [
- {
- path: "active",
- component: () => import("@/views/admin/expert/activity/active"),
- name: "Active",
- meta: { title: "活动列表", icon: "list" },
- },
- ],
- },
+ {
+ path: "/activity",
+ component: Layout,
+ meta: {title: "活动管理", icon: "dashboard"},
+ alwaysShow: true,
+ redirect: "/activity/active",
+ children: [
+ {
+ path: "active",
+ component: () => import("@/views/admin/expert/activity/active"),
+ name: "Active",
+ meta: {title: "活动列表", icon: "list"},
+ },
+ ],
+ },
];
+
+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},
+ },
+ ],
+ },
+ {
+ path: "/admin/account",
+ component: Layout,
+ meta: {title: "账号管理", icon: "dashboard"},
+ 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"},
+ },
+
+ ],
+ },
+ {
+ path: "/admin/research",
+ component: Layout,
+ meta: {title: "科研管理", icon: "dashboard"},
+ alwaysShow: true,
+ redirect: "/admin/research/patent",
+ children: [
+ {
+ path: "patent",
+ component: () => import("@/views/admin/laboratory/research/patent/index.vue"),
+ name: "Patent",
+ meta: {title: "专利列表", icon: "list"},
+ },
+
+ ],
+ },
+]
+
+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},
+ },
+ ],
+ },
+]
+
// 动态路由,基于用户权限动态去加载
export const dynamicRoutes = [
- {
- path: "/system/user-auth",
- component: Layout,
- hidden: true,
- permissions: ["system:user:edit"],
- children: [
- {
- path: "role/:userId(\\d+)",
- component: () => import("@/views/system/user/authRole"),
- name: "AuthRole",
- meta: { title: "分配角色", activeMenu: "/system/user" },
- },
- ],
- },
- {
- path: "/system/role-auth",
- component: Layout,
- hidden: true,
- permissions: ["system:role:edit"],
- children: [
- {
- path: "user/:roleId(\\d+)",
- component: () => import("@/views/system/role/authUser"),
- name: "AuthUser",
- meta: { title: "分配用户", activeMenu: "/system/role" },
- },
- ],
- },
- {
- path: "/system/dict-data",
- component: Layout,
- hidden: true,
- permissions: ["system:dict:list"],
- children: [
- {
- path: "index/:dictId(\\d+)",
- component: () => import("@/views/system/dict/data"),
- name: "Data",
- meta: { title: "字典数据", activeMenu: "/system/dict" },
- },
- ],
- },
- {
- path: "/monitor/job-log",
- component: Layout,
- hidden: true,
- permissions: ["monitor:job:list"],
- children: [
- {
- path: "index",
- component: () => import("@/views/monitor/job/log"),
- name: "JobLog",
- meta: { title: "调度日志", activeMenu: "/monitor/job" },
- },
- ],
- },
- {
- path: "/tool/gen-edit",
- component: Layout,
- hidden: true,
- permissions: ["tool:gen:edit"],
- children: [
- {
- path: "index/:tableId(\\d+)",
- component: () => import("@/views/tool/gen/editTable"),
- name: "GenEdit",
- meta: { title: "修改生成配置", activeMenu: "/tool/gen" },
- },
- ],
- },
+ {
+ path: "/system/user-auth",
+ component: Layout,
+ hidden: true,
+ permissions: ["system:user:edit"],
+ children: [
+ {
+ path: "role/:userId(\\d+)",
+ component: () => import("@/views/system/user/authRole"),
+ name: "AuthRole",
+ meta: {title: "分配角色", activeMenu: "/system/user"},
+ },
+ ],
+ },
+ {
+ path: "/system/role-auth",
+ component: Layout,
+ hidden: true,
+ permissions: ["system:role:edit"],
+ children: [
+ {
+ path: "user/:roleId(\\d+)",
+ component: () => import("@/views/system/role/authUser"),
+ name: "AuthUser",
+ meta: {title: "分配用户", activeMenu: "/system/role"},
+ },
+ ],
+ },
+ {
+ path: "/system/dict-data",
+ component: Layout,
+ hidden: true,
+ permissions: ["system:dict:list"],
+ children: [
+ {
+ path: "index/:dictId(\\d+)",
+ component: () => import("@/views/system/dict/data"),
+ name: "Data",
+ meta: {title: "字典数据", activeMenu: "/system/dict"},
+ },
+ ],
+ },
+ {
+ path: "/monitor/job-log",
+ component: Layout,
+ hidden: true,
+ permissions: ["monitor:job:list"],
+ children: [
+ {
+ path: "index",
+ component: () => import("@/views/monitor/job/log"),
+ name: "JobLog",
+ meta: {title: "调度日志", activeMenu: "/monitor/job"},
+ },
+ ],
+ },
+ {
+ path: "/tool/gen-edit",
+ component: Layout,
+ hidden: true,
+ permissions: ["tool:gen:edit"],
+ children: [
+ {
+ path: "index/:tableId(\\d+)",
+ component: () => import("@/views/tool/gen/editTable"),
+ name: "GenEdit",
+ meta: {title: "修改生成配置", activeMenu: "/tool/gen"},
+ },
+ ],
+ },
];
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/permission.js b/src/store/modules/permission.js
index 9d137cb..1a175d0 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -1,172 +1,133 @@
import auth from "@/plugins/auth";
-import router, { constantRoutes, dynamicRoutes, enterpriseRoutes, expertRoutes } from "@/router";
-import { getRouters } from "@/api/menu";
+import {constantRoutes, enterpriseRoutes, expertRoutes, laboratoryRoutes} from "@/router";
import Layout from "@/layout/index";
import ParentView from "@/components/ParentView";
import InnerLink from "@/layout/components/InnerLink";
-// import { enterpriseRoutes, expertRoutes } from "@/router";
-// import { expertRoutes } from "../../router";
// 匹配views里面所有的.vue文件
const modules = import.meta.glob("./../../views/**/*.vue");
const usePermissionStore = defineStore("permission", {
- state: () => ({
- routes: [],
- addRoutes: [],
- defaultRoutes: [],
- topbarRouters: [],
- sidebarRouters: [],
- }),
- actions: {
- setRoutes(routes) {
- this.addRoutes = routes;
- this.routes = constantRoutes.concat(routes);
- // console.log(routes);
+ state: () => ({
+ routes: [],
+ addRoutes: [],
+ defaultRoutes: [],
+ topbarRouters: [],
+ sidebarRouters: [],
+ }),
+ actions: {
+ setRoutes(routes) {
+ this.addRoutes = routes;
+ this.routes = constantRoutes.concat(routes);
+ },
+ setDefaultRoutes(routes) {
+ this.defaultRoutes = constantRoutes.concat(routes);
+ },
+ setTopbarRoutes(routes) {
+ this.topbarRouters = routes;
+ },
+ setSidebarRouters(routes) {
+ this.sidebarRouters = routes;
+ },
+ generateRoutes(roles) {
+ return new Promise((resolve) => {
+ console.log(roles)
+ let routesList = [];
+ if (roles === "1") {
+ routesList = enterpriseRoutes;
+ } else if (roles === "2") {
+ routesList = expertRoutes;
+ } else if (roles === "3") {
+ routesList = laboratoryRoutes
+ }
+ this.setRoutes(routesList);
+ this.setSidebarRouters(constantRoutes.concat(routesList));
+ this.setDefaultRoutes(routesList);
+ this.setTopbarRoutes(routesList);
+ resolve(routesList);
+ });
+ },
},
- setDefaultRoutes(routes) {
- this.defaultRoutes = constantRoutes.concat(routes);
- },
- setTopbarRoutes(routes) {
- this.topbarRouters = routes;
- },
- setSidebarRouters(routes) {
- this.sidebarRouters = routes;
- },
- generateRoutes(roles) {
- return new Promise((resolve) => {
- let routesList = [];
- if (roles == 1) {
- routesList = enterpriseRoutes;
- } else if (roles == 2) {
- routesList = expertRoutes;
- // routesList = [];
- }
- // console.log(routesList);
- // const sdata = JSON.parse(JSON.stringify(routesList));
- // const rdata = JSON.parse(JSON.stringify(routesList));
- // const defaultData = JSON.parse(JSON.stringify(routesList));
- // const sidebarRoutes = filterAsyncRouter(sdata);
- // const rewriteRoutes = filterAsyncRouter(rdata, false, true);
- // const defaultRoutes = filterAsyncRouter(defaultData);
- // const asyncRoutes = filterDynamicRoutes(dynamicRoutes);
- // console.log(
- // sdata,
- // rdata,
- // defaultData,
- // sidebarRoutes,
- // rewriteRoutes,
- // defaultRoutes,
- // asyncRoutes
- // );
- // asyncRoutes.forEach((route) => {
- // router.addRoute(route);
- // });
- this.setRoutes(routesList);
- this.setSidebarRouters(constantRoutes.concat(routesList));
- this.setDefaultRoutes(routesList);
- this.setTopbarRoutes(routesList);
- resolve(routesList);
- // 向后端请求路由数据
- // getRouters().then(res => {
- // console.log(res);
- // const sdata = JSON.parse(JSON.stringify(res.data))
- // const rdata = JSON.parse(JSON.stringify(res.data))
- // const defaultData = JSON.parse(JSON.stringify(res.data))
- // const sidebarRoutes = filterAsyncRouter(sdata)
- // const rewriteRoutes = filterAsyncRouter(rdata, false, true)
- // const defaultRoutes = filterAsyncRouter(defaultData)
- // const asyncRoutes = filterDynamicRoutes(dynamicRoutes)
- // asyncRoutes.forEach(route => { router.addRoute(route) })
- // this.setRoutes(rewriteRoutes)
- // this.setSidebarRouters(constantRoutes.concat(sidebarRoutes))
- // this.setDefaultRoutes(sidebarRoutes)
- // this.setTopbarRoutes(defaultRoutes)
- // resolve(rewriteRoutes)
- // })
- });
- },
- },
});
// 遍历后台传来的路由字符串,转换为组件对象
function filterAsyncRouter(asyncRouterMap, lastRouter = false, type = false) {
- return asyncRouterMap.filter((route) => {
- if (type && route.children) {
- route.children = filterChildren(route.children);
- }
- if (route.component) {
- // Layout ParentView 组件特殊处理
- if (route.component === "Layout") {
- route.component = Layout;
- } else if (route.component === "ParentView") {
- route.component = ParentView;
- } else if (route.component === "InnerLink") {
- route.component = InnerLink;
- } else {
- route.component = loadView(route.component);
- }
- }
- if (route.children != null && route.children && route.children.length) {
- route.children = filterAsyncRouter(route.children, route, type);
- } else {
- delete route["children"];
- delete route["redirect"];
- }
- return true;
- });
+ return asyncRouterMap.filter((route) => {
+ if (type && route.children) {
+ route.children = filterChildren(route.children);
+ }
+ if (route.component) {
+ // Layout ParentView 组件特殊处理
+ if (route.component === "Layout") {
+ route.component = Layout;
+ } else if (route.component === "ParentView") {
+ route.component = ParentView;
+ } else if (route.component === "InnerLink") {
+ route.component = InnerLink;
+ } else {
+ route.component = loadView(route.component);
+ }
+ }
+ if (route.children != null && route.children && route.children.length) {
+ route.children = filterAsyncRouter(route.children, route, type);
+ } else {
+ delete route["children"];
+ delete route["redirect"];
+ }
+ return true;
+ });
}
function filterChildren(childrenMap, lastRouter = false) {
- var children = [];
- childrenMap.forEach((el, index) => {
- if (el.children && el.children.length) {
- if (el.component === "ParentView" && !lastRouter) {
- el.children.forEach((c) => {
- c.path = el.path + "/" + c.path;
- if (c.children && c.children.length) {
- children = children.concat(filterChildren(c.children, c));
- return;
- }
- children.push(c);
- });
- return;
- }
- }
- if (lastRouter) {
- el.path = lastRouter.path + "/" + el.path;
- }
- children = children.concat(el);
- });
- return children;
+ var children = [];
+ childrenMap.forEach((el, index) => {
+ if (el.children && el.children.length) {
+ if (el.component === "ParentView" && !lastRouter) {
+ el.children.forEach((c) => {
+ c.path = el.path + "/" + c.path;
+ if (c.children && c.children.length) {
+ children = children.concat(filterChildren(c.children, c));
+ return;
+ }
+ children.push(c);
+ });
+ return;
+ }
+ }
+ if (lastRouter) {
+ el.path = lastRouter.path + "/" + el.path;
+ }
+ children = children.concat(el);
+ });
+ return children;
}
// 动态路由遍历,验证是否具备权限
export function filterDynamicRoutes(routes) {
- const res = [];
- routes.forEach((route) => {
- if (route.permissions) {
- if (auth.hasPermiOr(route.permissions)) {
- res.push(route);
- }
- } else if (route.roles) {
- if (auth.hasRoleOr(route.roles)) {
- res.push(route);
- }
- }
- });
- return res;
+ const res = [];
+ routes.forEach((route) => {
+ if (route.permissions) {
+ if (auth.hasPermiOr(route.permissions)) {
+ res.push(route);
+ }
+ } else if (route.roles) {
+ if (auth.hasRoleOr(route.roles)) {
+ res.push(route);
+ }
+ }
+ });
+ return res;
}
export const loadView = (view) => {
- let res;
- for (const path in modules) {
- const dir = path.split("views/")[1].split(".vue")[0];
- if (dir === view) {
- res = () => modules[path]();
+ let res;
+ for (const path in modules) {
+ const dir = path.split("views/")[1].split(".vue")[0];
+ if (dir === view) {
+ res = () => modules[path]();
+ }
}
- }
- return res;
+ return res;
};
export default usePermissionStore;
diff --git a/src/views/admin/laboratory/account/basic-info.vue b/src/views/admin/laboratory/account/basic-info.vue
new file mode 100644
index 0000000..6746f39
--- /dev/null
+++ b/src/views/admin/laboratory/account/basic-info.vue
@@ -0,0 +1,105 @@
+
+
+
基本资料
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 提交
+
+
+
实验室资料
+
+
+ 提交
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/admin/laboratory/index.vue b/src/views/admin/laboratory/index.vue
new file mode 100644
index 0000000..dac3572
--- /dev/null
+++ b/src/views/admin/laboratory/index.vue
@@ -0,0 +1,13 @@
+
+
+
+
+ 实验室后台
+
+
+
+
\ No newline at end of file
diff --git a/src/views/admin/laboratory/research/patent/index.vue b/src/views/admin/laboratory/research/patent/index.vue
new file mode 100644
index 0000000..0720b32
--- /dev/null
+++ b/src/views/admin/laboratory/research/patent/index.vue
@@ -0,0 +1,398 @@
+
+
+
+
+
+
+
+ 搜索
+
+ 重置
+
+
+
+
+
+ 新增
+
+
+
+
+
+ 认领
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ dayjs(row.applyAt).format("YYYY-MM-DD") }}
+
+
+
+
+ 修改
+
+ 删除
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 授权
+ 实审
+ 公开
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/admin/research/index.vue b/src/views/admin/research/index.vue
new file mode 100644
index 0000000..5a5346d
--- /dev/null
+++ b/src/views/admin/research/index.vue
@@ -0,0 +1,13 @@
+
+
+
+
+ 研究机构后台
+
+
+
+
\ No newline at end of file
diff --git a/src/views/components/AgentForm/index.vue b/src/views/components/AgentForm/index.vue
new file mode 100644
index 0000000..aa86e60
--- /dev/null
+++ b/src/views/components/AgentForm/index.vue
@@ -0,0 +1,239 @@
+
+
+ 基本信息
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 身份证人像面
+
+
+
+
+
+ 身份证国徽面
+
+
+
+
+
+ 手持身份证人像面
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/components/EnterpriseForm/index.vue b/src/views/components/EnterpriseForm/index.vue
index 8e81ede..69f40d6 100644
--- a/src/views/components/EnterpriseForm/index.vue
+++ b/src/views/components/EnterpriseForm/index.vue
@@ -287,13 +287,7 @@ const data = reactive({
trigger: ["change", "blur"],
},
],
- license: [
- {
- required: true,
- message: "请上传",
- trigger: ["blur", "change"],
- },
- ],
+
},
});
const { rules } = toRefs(data);
diff --git a/src/views/components/FieldOptions/index.vue b/src/views/components/FieldOptions/index.vue
index 574f8ea..a0de208 100644
--- a/src/views/components/FieldOptions/index.vue
+++ b/src/views/components/FieldOptions/index.vue
@@ -1,28 +1,28 @@
-
-
+
+
@@ -30,33 +30,33 @@
@@ -66,12 +66,13 @@
+
{{ getFieldNameById(tag) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查找
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/components/ReleaseForm/index.vue b/src/views/components/ReleaseForm/index.vue
index 4104433..7071d27 100644
--- a/src/views/components/ReleaseForm/index.vue
+++ b/src/views/components/ReleaseForm/index.vue
@@ -237,7 +237,6 @@ const data = reactive({
// education: [{ required: true, message: "请选择", trigger: "change" }],
// major: [{ required: true, message: "请输入", trigger: "blur" }],
// job: [{ required: true, message: "请输入", trigger: "blur" }],
- title: [{ required: true, message: "请输入", trigger: "blur" }],
work_at: [
{
required: true,
diff --git a/src/views/components/ResearchForm/index.vue b/src/views/components/ResearchForm/index.vue
new file mode 100644
index 0000000..88b2e60
--- /dev/null
+++ b/src/views/components/ResearchForm/index.vue
@@ -0,0 +1,203 @@
+
+
+ 基本信息
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 查找
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/identity/agent.vue b/src/views/identity/agent.vue
new file mode 100644
index 0000000..08d58b9
--- /dev/null
+++ b/src/views/identity/agent.vue
@@ -0,0 +1,41 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/views/identity/expert.vue b/src/views/identity/expert.vue
index 8ab95f8..3f871f6 100644
--- a/src/views/identity/expert.vue
+++ b/src/views/identity/expert.vue
@@ -15,10 +15,11 @@
+
+
\ No newline at end of file
diff --git a/src/views/identity/research.vue b/src/views/identity/research.vue
new file mode 100644
index 0000000..983530e
--- /dev/null
+++ b/src/views/identity/research.vue
@@ -0,0 +1,40 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/vite.config.js b/vite.config.js
index b8bfa28..950d116 100644
--- a/vite.config.js
+++ b/vite.config.js
@@ -31,9 +31,9 @@ export default defineConfig(({ mode, command }) => {
proxy: {
// https://cn.vitejs.dev/config/#server-proxy
"/dev-api": {
- target: 'http://101.34.131.16:1618',
+ // target: 'http://101.34.131.16:1618',
// target: "http://101.34.131.16:1618",
- // target: "http://192.168.110.10:1618",
+ target: "http://192.168.0.201:1618",
// target: 'http://172.18.3.127:1618',
changeOrigin: true,
rewrite: (p) => p.replace(/^\/dev-api/, ""),