diff --git a/info.ts b/info.ts
new file mode 100644
index 0000000..2b397d9
--- /dev/null
+++ b/info.ts
@@ -0,0 +1,69 @@
+export interface User {
+ userId: number;
+ userName: string;
+ nickName: string;
+ email: string;
+ mobile: string;
+ sex: string;
+ post?: any;
+ phone: string;
+ avatar: string;
+ password: string;
+ status: string;
+ loginIp: string;
+ loginDate?: any;
+ createBy: string;
+ createTime: string;
+ updateBy: string;
+ updateTime?: any;
+ remark?: any;
+}
+
+export interface Enterprise {
+ id: number;
+ tenantId: number;
+ area?: any;
+ inviterId: number;
+ uid: number;
+ username: string;
+ phone: string;
+ email: string;
+ kind: string;
+ name: string;
+ code: string;
+ image: string;
+ product: string;
+ province: string;
+ city: string;
+ cityStr: string;
+ district: string;
+ address: string;
+ url: string;
+ license: string;
+ industry: string;
+ industrys?: any;
+ industryStr: string;
+ keyword: string;
+ keywords: string[];
+ direction: string;
+ directions?: any;
+ introduce: string;
+ examineStatus: string;
+ examineRemark: string;
+ examineAt: string;
+ isDeleted: string;
+ createdAt: string;
+ updatedAt: string;
+}
+
+export interface Data {
+ vip?: any;
+ user: User;
+ enterprise: Enterprise;
+}
+
+export interface RootObject {
+ msg: string;
+ code: number;
+ data: Data;
+}
diff --git a/src/api/admin/expert/demand.js b/src/api/admin/expert/demand.js
index 7286988..280a51a 100644
--- a/src/api/admin/expert/demand.js
+++ b/src/api/admin/expert/demand.js
@@ -2,82 +2,96 @@ import request from "@/utils/request";
// 专家想合作企业列表
export const expertWantEnterpriseList = (params) => {
- return request({
- url: `/app/expert/expertWantEnterpriseList`,
- method: "GET",
- params
- });
+ return request({
+ url: `/app/expert/expertWantEnterpriseList`,
+ method: "GET",
+ params,
+ });
};
// 新增想合作企业
export const insertExpertWantEnterprise = (data) => {
- return request({
- url: `/app/expert/insertExpertWantEnterprise`,
- method: "POST",
- data
- });
+ return request({
+ url: `/app/expert/insertExpertWantEnterprise`,
+ method: "POST",
+ data,
+ });
};
// 修改想合作企业
export const updateExpertWantEnterprise = (data) => {
- return request({
- url: `/app/expert/updateExpertWantEnterprise`,
- method: "PUT",
- data
- });
+ return request({
+ url: `/app/expert/updateExpertWantEnterprise`,
+ method: "PUT",
+ data,
+ });
};
// 删除想合作企业
export const deleteExpertWantEnterpriseByIds = (data) => {
- return request({
- url: `/app/expert/deleteExpertWantEnterpriseByIds`,
- method: "DELETE",
- data
- });
+ return request({
+ url: `/app/expert/deleteExpertWantEnterpriseByIds`,
+ method: "DELETE",
+ data,
+ });
};
-
// 专家服务需求列表
export const demandList = (params) => {
- return request({
- url: `/app/expert/demandList`,
- method: "GET",
- params
- });
+ return request({
+ url: `/app/expert/demandList`,
+ method: "GET",
+ params,
+ });
};
// 新增服务需求
export const insertDemand = (data) => {
- return request({
- url: `/app/expert/insertDemand`,
- method: "POST",
- data
- });
+ return request({
+ url: `/app/expert/insertDemand`,
+ method: "POST",
+ data,
+ });
};
// 专家已合作企业列表
export const getExpertCooperateEnterpriseList = (params) => {
- return request({
- url: `/app/expert/getExpertCooperateEnterpriseList`,
- method: "GET",
- params
- });
+ return request({
+ url: `/app/expert/getExpertCooperateEnterpriseList`,
+ method: "GET",
+ params,
+ });
};
// 专家新增已合作企业
export const insertExpertCooperateEnterprise = (data) => {
- return request({
- url: `/app/expert/insertExpertCooperateEnterprise`,
- method: "POST",
- data
- });
+ return request({
+ url: `/app/expert/insertExpertCooperateEnterprise`,
+ method: "POST",
+ data,
+ });
};
// 专家修改已合作企业
export const updateExpertCooperateEnterprise = (data) => {
- return request({
- url: `/app/expert/updateExpertCooperateEnterprise`,
- method: "PUT",
- data
- });
+ return request({
+ url: `/app/expert/updateExpertCooperateEnterprise`,
+ method: "PUT",
+ data,
+ });
};
// 删除已合作
export const deleteExpertCooperateEnterpriseByIds = (ids) => {
- return request({
- url: `/app/expert/deleteExpertCooperateEnterpriseByIds/${ids}`,
- method: "DELETE",
- });
-};
\ No newline at end of file
+ return request({
+ url: `/app/expert/deleteExpertCooperateEnterpriseByIds/${ids}`,
+ method: "DELETE",
+ });
+};
+// 获取服务需求详情
+export const getDemandById = (id) => {
+ return request({
+ url: `/app/expert/getDemand/${id}`,
+ method: "GET",
+ });
+};
+// 修改服务需求
+export const updateDemand = (data) => {
+ return request({
+ url: `/app/expert/updateDemand`,
+ method: "PUT",
+ data,
+ });
+};
diff --git a/src/api/website/home/index.js b/src/api/website/home/index.js
index a0a4dd2..2921351 100644
--- a/src/api/website/home/index.js
+++ b/src/api/website/home/index.js
@@ -91,6 +91,13 @@ export function searchAchievementDetail(id) {
method: "get",
});
}
+// 客户端实验室搜索结果详情
+export function searchLaboratoryDetail(id) {
+ return request({
+ url: `/search/laboratory/${id}`,
+ method: "get",
+ });
+}
// 客户端专家搜索结果详情
export function searchExpertDetail(id) {
return request({
@@ -222,3 +229,10 @@ export function countAchievementByArea(cityCode) {
},
});
}
+// 获取尾部导航
+export function getCasNavigation() {
+ return request({
+ url: "/app/about/getCasNavigation",
+ method: "get",
+ });
+}
diff --git a/src/components/webFooter/index.vue b/src/components/webFooter/index.vue
index 13ac1b1..b3212a1 100644
--- a/src/components/webFooter/index.vue
+++ b/src/components/webFooter/index.vue
@@ -48,6 +48,7 @@
import request from "@/utils/request";
import { onMounted, reactive, watch } from "vue";
import { getCategory } from "@/api/website/solution";
+import { getCasNavigation } from "@/api/website/home";
function navigation() {
return request({
@@ -66,178 +67,179 @@ const state = reactive({
email: "",
address: "",
});
-function getNavigation() {
+async function getNavigation() {
// navigation().then((res) => {
// if (200 == res.code) {
// state.list = res.data;
// }
// });
- const res = {
- msg: "操作成功",
- code: 200,
- data: [
- {
- id: 21,
- tenantId: 3,
- parentId: 0,
- title: "创新服务",
- link: "/",
- targetFlag: "0",
- sort: 0,
- status: "1",
- createTime: "2022-02-21 14:03:28",
- updateTime: "2022-02-21 14:03:28",
- children: [
- {
- id: 22,
- tenantId: 1,
- parentId: 21,
- title: "中科院设备共享平台",
- link: "http://samp.cas.cn",
- targetFlag: "0",
- sort: 0,
- status: "1",
- createTime: "2022-02-21 14:03:47",
- updateTime: "2022-02-21 14:03:47",
- children: [],
- },
- {
- id: 23,
- tenantId: 1,
- parentId: 21,
- title: "中科院文献情报中心",
- link: "https://www.las.ac.cn",
- targetFlag: "0",
- sort: 0,
- status: "1",
- createTime: "2022-02-21 14:04:52",
- updateTime: "2022-02-21 14:04:52",
- children: [],
- },
- {
- id: 25,
- tenantId: 1,
- parentId: 21,
- title: "中国科学院",
- link: "https://www.cas.cn",
- targetFlag: "0",
- sort: 0,
- status: "1",
- createTime: "2022-02-21 14:05:59",
- updateTime: "2022-02-21 14:05:59",
- children: [],
- },
- {
- id: 26,
- tenantId: 1,
- parentId: 21,
- title: "中科院重庆院合肥分院",
- link: "http://www.caszl.cn",
- targetFlag: "0",
- sort: 0,
- status: "1",
- createTime: "2022-02-21 14:06:29",
- updateTime: "2022-02-21 14:06:29",
- children: [],
- },
- ],
- },
- {
- id: 29,
- tenantId: 3,
- parentId: 0,
- title: "联系我们",
- link: "/",
- targetFlag: "0",
- sort: 0,
- status: "1",
- createTime: "2022-11-15 16:20:19",
- updateTime: null,
- children: [
- {
- id: 30,
- tenantId: 3,
- parentId: 29,
- title: "客服电话:18156053255",
- link: "/",
- targetFlag: "0",
- sort: 0,
- status: "1",
- createTime: "2022-11-15 16:20:39",
- updateTime: null,
- children: [],
- },
- {
- id: 31,
- tenantId: 3,
- parentId: 29,
- title: "邮箱:zky@gmail.com",
- link: "/",
- targetFlag: "0",
- sort: 0,
- status: "1",
- createTime: "2022-11-15 16:20:56",
- updateTime: null,
- children: [],
- },
- {
- id: 32,
- tenantId: 3,
- parentId: 29,
- title: "地址:安徽省合肥市高新区创新产业园D1南楼",
- link: "/",
- targetFlag: "0",
- sort: 0,
- status: "1",
- createTime: "2022-11-15 16:21:43",
- updateTime: null,
- children: [],
- },
- ],
- },
- {
- id: 33,
- tenantId: 3,
- parentId: 0,
- title: "解决方案",
- link: "/",
- targetFlag: "0",
- sort: 0,
- status: "1",
- createTime: "2022-11-15 16:22:41",
- updateTime: null,
- children: [
- {
- id: 34,
- tenantId: 3,
- parentId: 33,
- title: "企业创新升级",
- link: "/",
- targetFlag: "0",
- sort: 0,
- status: "1",
- createTime: "2022-11-15 16:22:58",
- updateTime: null,
- children: [],
- },
- {
- id: 35,
- tenantId: 3,
- parentId: 33,
- title: "成果转化",
- link: "/",
- targetFlag: "0",
- sort: 0,
- status: "1",
- createTime: "2022-11-15 16:23:21",
- updateTime: null,
- children: [],
- },
- ],
- },
- ],
- };
- state.list = res.data;
+ const resp = await getCasNavigation();
+ // const res = {
+ // msg: "操作成功",
+ // code: 200,
+ // data: [
+ // {
+ // id: 21,
+ // tenantId: 3,
+ // parentId: 0,
+ // title: "创新服务",
+ // link: "/",
+ // targetFlag: "0",
+ // sort: 0,
+ // status: "1",
+ // createTime: "2022-02-21 14:03:28",
+ // updateTime: "2022-02-21 14:03:28",
+ // children: [
+ // {
+ // id: 22,
+ // tenantId: 1,
+ // parentId: 21,
+ // title: "中科院设备共享平台",
+ // link: "http://samp.cas.cn",
+ // targetFlag: "0",
+ // sort: 0,
+ // status: "1",
+ // createTime: "2022-02-21 14:03:47",
+ // updateTime: "2022-02-21 14:03:47",
+ // children: [],
+ // },
+ // {
+ // id: 23,
+ // tenantId: 1,
+ // parentId: 21,
+ // title: "中科院文献情报中心",
+ // link: "https://www.las.ac.cn",
+ // targetFlag: "0",
+ // sort: 0,
+ // status: "1",
+ // createTime: "2022-02-21 14:04:52",
+ // updateTime: "2022-02-21 14:04:52",
+ // children: [],
+ // },
+ // {
+ // id: 25,
+ // tenantId: 1,
+ // parentId: 21,
+ // title: "中国科学院",
+ // link: "https://www.cas.cn",
+ // targetFlag: "0",
+ // sort: 0,
+ // status: "1",
+ // createTime: "2022-02-21 14:05:59",
+ // updateTime: "2022-02-21 14:05:59",
+ // children: [],
+ // },
+ // {
+ // id: 26,
+ // tenantId: 1,
+ // parentId: 21,
+ // title: "中科院重庆院合肥分院",
+ // link: "http://www.caszl.cn",
+ // targetFlag: "0",
+ // sort: 0,
+ // status: "1",
+ // createTime: "2022-02-21 14:06:29",
+ // updateTime: "2022-02-21 14:06:29",
+ // children: [],
+ // },
+ // ],
+ // },
+ // {
+ // id: 29,
+ // tenantId: 3,
+ // parentId: 0,
+ // title: "联系我们",
+ // link: "/",
+ // targetFlag: "0",
+ // sort: 0,
+ // status: "1",
+ // createTime: "2022-11-15 16:20:19",
+ // updateTime: null,
+ // children: [
+ // {
+ // id: 30,
+ // tenantId: 3,
+ // parentId: 29,
+ // title: "客服电话:18156053255",
+ // link: "/",
+ // targetFlag: "0",
+ // sort: 0,
+ // status: "1",
+ // createTime: "2022-11-15 16:20:39",
+ // updateTime: null,
+ // children: [],
+ // },
+ // {
+ // id: 31,
+ // tenantId: 3,
+ // parentId: 29,
+ // title: "邮箱:zky@gmail.com",
+ // link: "/",
+ // targetFlag: "0",
+ // sort: 0,
+ // status: "1",
+ // createTime: "2022-11-15 16:20:56",
+ // updateTime: null,
+ // children: [],
+ // },
+ // {
+ // id: 32,
+ // tenantId: 3,
+ // parentId: 29,
+ // title: "地址:安徽省合肥市高新区创新产业园D1南楼",
+ // link: "/",
+ // targetFlag: "0",
+ // sort: 0,
+ // status: "1",
+ // createTime: "2022-11-15 16:21:43",
+ // updateTime: null,
+ // children: [],
+ // },
+ // ],
+ // },
+ // {
+ // id: 33,
+ // tenantId: 3,
+ // parentId: 0,
+ // title: "解决方案",
+ // link: "/",
+ // targetFlag: "0",
+ // sort: 0,
+ // status: "1",
+ // createTime: "2022-11-15 16:22:41",
+ // updateTime: null,
+ // children: [
+ // {
+ // id: 34,
+ // tenantId: 3,
+ // parentId: 33,
+ // title: "企业创新升级",
+ // link: "/",
+ // targetFlag: "0",
+ // sort: 0,
+ // status: "1",
+ // createTime: "2022-11-15 16:22:58",
+ // updateTime: null,
+ // children: [],
+ // },
+ // {
+ // id: 35,
+ // tenantId: 3,
+ // parentId: 33,
+ // title: "成果转化",
+ // link: "/",
+ // targetFlag: "0",
+ // sort: 0,
+ // status: "1",
+ // createTime: "2022-11-15 16:23:21",
+ // updateTime: null,
+ // children: [],
+ // },
+ // ],
+ // },
+ // ],
+ // };
+ state.list = resp.data;
}
async function getConfig() {
// const mobileData = await config({ key: "mobile" });
@@ -275,7 +277,7 @@ async function getConfig() {
// });
}
getNavigation();
-getConfig();
+// getConfig();
const solutionCategoryList = ref([]);
const loadsolutionCategoryList = async () => {
diff --git a/src/router/index.js b/src/router/index.js
index f0f6d58..14768ed 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -73,6 +73,21 @@ export const constantRoutes = [
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"),
diff --git a/src/utils/city.js b/src/utils/city.js
new file mode 100644
index 0000000..326e7cd
--- /dev/null
+++ b/src/utils/city.js
@@ -0,0 +1,28 @@
+import request from "@/utils/request";
+
+export const getCity = async (provinceCode, cityCode, areaCode) => {
+ const resps = await Promise.all([
+ request({
+ url: `/region/allProvince`,
+ }),
+ request({
+ url: `/region/allCity`,
+ params: {
+ provinceCode,
+ },
+ }),
+ request({
+ url: `/region/allArea`,
+ params: {
+ cityCode,
+ },
+ }),
+ ]);
+ const provinceStr = resps[0].data.find(
+ (el) => el.provinceCode == provinceCode
+ ).provinceName;
+ // console.log(provinceStr);
+ const cityStr = resps[1].data.find((el) => el.cityCode == cityCode).cityName;
+ const areaStr = resps[2].data.find((el) => el.areaCode == areaCode).areaName;
+ return `${provinceStr} ${cityStr} ${areaStr}`;
+};
diff --git a/src/utils/parameter.js b/src/utils/parameter.js
index 4ae1f47..073fe7a 100644
--- a/src/utils/parameter.js
+++ b/src/utils/parameter.js
@@ -35,6 +35,27 @@ export const enterpriseOptions = [
{ key: "104", value: "高新技术企业" },
{ key: "105", value: "科技企业" },
];
+// 需求类型
+export const demandCategoryList = [
+ { id: 1, name: "基金对接" },
+ { id: 2, name: "贷款" },
+ { id: 3, name: "对接专家院士" },
+ { id: 4, name: "人才培养" },
+ { id: 5, name: "一带一路国际合作" },
+ { id: 6, name: "上市辅导" },
+ { id: 7, name: "成果产业化" },
+ { id: 8, name: "国家级科研平台合作" },
+ { id: 9, name: "研发项目立项评估" },
+ { id: 10, name: "科技查新" },
+ { id: 11, name: "产业链上下游对接" },
+ { id: 12, name: "委托研发" },
+ { id: 13, name: "对接政府项目落地" },
+ { id: 14, name: "技术咨询" },
+ { id: 15, name: "高价值专利培育" },
+ { id: 16, name: "知识产权布局" },
+ { id: 17, name: "设立院士工作站" },
+ { id: 18, name: "海外留学生培养" },
+];
// export const enterpriseOptions = [
// { key: "101", value: '上市企业' },
// { key: "102", value: '优质企业' },
diff --git a/src/views/admin/enterprise/demand/releaseService.vue b/src/views/admin/enterprise/demand/releaseService.vue
index b5baae1..0685c0b 100644
--- a/src/views/admin/enterprise/demand/releaseService.vue
+++ b/src/views/admin/enterprise/demand/releaseService.vue
@@ -120,6 +120,7 @@ import {
// import CityOptions from "@/views/components/CityOptions";
import { ElMessage } from "element-plus";
import { onActivated } from "vue";
+import { demandCategoryList } from "@/utils/parameter";
// import { onActivated } from "vue";
import { useRoute, useRouter } from "vue-router";
@@ -154,24 +155,7 @@ const data = reactive({
const { form, rules } = toRefs(data);
const labelWidth = 140;
-const checkList = reactive([
- {
- id: 1,
- name: "成果推广",
- },
- {
- id: 2,
- name: "关键成果解决",
- },
- {
- id: 3,
- name: "对接专家院士",
- },
- {
- id: 4,
- name: "上市辅导",
- },
-]);
+const checkList = reactive([...demandCategoryList]);
const checkInput = ref("");
// const cityFormRef = ref();
const formRef = ref();
@@ -215,6 +199,8 @@ function addCheck() {
onMounted(() => {
formRef.value.resetFields();
if (route.query.id) {
+ const obj = Object.assign({}, route, { title: "修改服务需求" });
+ tab.updatePage(obj);
getDemand({ id: route.query.id }).then((resp) => {
if (resp.data.kinds) {
resp.data.kinds.forEach((el, index) => {
diff --git a/src/views/admin/enterprise/demand/releaseTechnology.vue b/src/views/admin/enterprise/demand/releaseTechnology.vue
index 7c213ac..a44fab2 100644
--- a/src/views/admin/enterprise/demand/releaseTechnology.vue
+++ b/src/views/admin/enterprise/demand/releaseTechnology.vue
@@ -310,19 +310,19 @@ const submitForm = async (status) => {
// }
// });
};
-function addCheck() {
- if (!checkInput.value.trim().length) return proxy.$modal.msgError("请输入");
- const flag = checkList.some((item) => {
- return item.name.trim() == checkInput.value.trim();
- });
- if (!flag) {
- checkList.push({
- id: checkList.length + 1,
- name: checkInput.value,
- });
- checkInput.value = "";
- }
-}
+// function addCheck() {
+// if (!checkInput.value.trim().length) return proxy.$modal.msgError("请输入");
+// const flag = checkList.some((item) => {
+// return item.name.trim() == checkInput.value.trim();
+// });
+// if (!flag) {
+// checkList.push({
+// id: checkList.length + 1,
+// name: checkInput.value,
+// });
+// checkInput.value = "";
+// }
+// }
// 返回技术需求列表
const backToList = () => {
tab.closeOpenPage({ path: "/demand/technology" });
@@ -332,6 +332,8 @@ onMounted(() => {
formRef.value.resetFields();
if (route.query.id) {
+ const obj = Object.assign({}, route, { title: "修改技术需求" });
+ tab.updatePage(obj);
getTechnologyDemand({ id: route.query.id }).then((resp) => {
form.value = resp.data;
diff --git a/src/views/admin/enterprise/demand/results.vue b/src/views/admin/enterprise/demand/results.vue
index d59d1f0..69a6981 100644
--- a/src/views/admin/enterprise/demand/results.vue
+++ b/src/views/admin/enterprise/demand/results.vue
@@ -13,7 +13,7 @@
专家
-
+ 实验室
@@ -79,6 +79,7 @@ const loading = ref(true);
const total = ref(0);
const queryType = computed(() => {
+ console.log(queryParams.value.searchType);
if (queryParams.value.searchType == 1) {
return 2;
} else if (queryParams.value.searchType == 2) {
@@ -87,9 +88,9 @@ const queryType = computed(() => {
return 2;
} else if (queryParams.value.searchType == 5) {
return 2;
+ } else if (queryParams.value.searchType == 8) {
+ return 2;
}
- // else if (queryParams.value.searchType == 6) {
- // return 1;
// } else if (queryParams.value.searchType == 7) {
// return 1;
// }
diff --git a/src/views/admin/enterprise/extension/results.vue b/src/views/admin/enterprise/extension/results.vue
index 86c9ef3..c0be215 100644
--- a/src/views/admin/enterprise/extension/results.vue
+++ b/src/views/admin/enterprise/extension/results.vue
@@ -12,8 +12,10 @@
专利
专家
-
技术需求
-
+
实验室
+
技术需求
-
升级SVIP
+
普通会员
-
+
@@ -168,6 +172,7 @@
@@ -253,11 +258,22 @@ const props = defineProps({
const { modelValue, isAdd, showTitle, labelWidth } = toRefs(props);
const data = reactive({
rules: {
- title: [{ required: true, message: "请输入", trigger: "blur" }],
- maturity: [{ required: true, message: "请选择", trigger: "change" }],
- leadStandard: [{ required: true, message: "请选择", trigger: "change" }],
- description: [{ required: true, message: "请输入", trigger: "blur" }],
- image: [{ required: true, message: "请上传", trigger: ["change", "blur"] }],
+ title: [{ required: true, message: "请输入成果名称", trigger: "blur" }],
+ maturity: [{ required: true, message: "请选择成熟度", trigger: "change" }],
+ leadStandard: [
+ { required: true, message: "请选择领先情况", trigger: "change" },
+ ],
+ description: [
+ { required: true, message: "请输入成果简介", trigger: "blur" },
+ ],
+ image: [
+ {
+ required: true,
+ message: "请上传成果图片",
+ trigger: ["change", "blur"],
+ },
+ ],
+ unit: [{ required: true, message: "请输入所属单位", trigger: "blur" }],
},
});
const { rules } = toRefs(data);
@@ -266,6 +282,7 @@ const formRef = ref();
const fieldFormRef = ref();
const customersFormRef = ref();
const directionsFormRef = ref();
+const cityFormRef = ref();
const keywordsFormRef = ref();
const validateForm = async () => {
let formValid;
@@ -277,13 +294,15 @@ const validateForm = async () => {
const fieldFormValid = await fieldFormRef.value.validateForm(); // 城市选择表单验证
const customersValid = await customersFormRef.value.validateForm(); // 领域选择表单验证
// const directionsFormRef = await customersFormRef.value.validateForm(); // 领域选择表单验证
- const keywordsFormRef = await customersFormRef.value.validateForm(); // 领域选择表单验证
+
+ const cityFormValid = await cityFormRef.value.validateForm();
+ const keywordsFormValid = await keywordsFormRef.value.validateForm(); // 关键词
return (
formValid &&
fieldFormValid &&
customersValid &&
- // directionsFormRef &&
- keywordsFormRef
+ cityFormValid &&
+ keywordsFormValid
);
};
defineExpose({
diff --git a/src/views/admin/expert/demand/release.vue b/src/views/admin/expert/demand/release.vue
index 300012f..f4fbfea 100644
--- a/src/views/admin/expert/demand/release.vue
+++ b/src/views/admin/expert/demand/release.vue
@@ -112,23 +112,18 @@
diff --git a/src/views/admin/expert/demand/serviceDemand.vue b/src/views/admin/expert/demand/serviceDemand.vue
index f5b386c..92cd4a0 100644
--- a/src/views/admin/expert/demand/serviceDemand.vue
+++ b/src/views/admin/expert/demand/serviceDemand.vue
@@ -24,7 +24,7 @@
-
+
diff --git a/src/views/admin/expert/technology/achievement.vue b/src/views/admin/expert/technology/achievement.vue
index e5081bd..fcd0d29 100644
--- a/src/views/admin/expert/technology/achievement.vue
+++ b/src/views/admin/expert/technology/achievement.vue
@@ -44,7 +44,7 @@
v-if="queryParams.status == 1"
size="small"
type="text"
- icon="Download"
+ :icon="row.shelfStatus == 1 ? `Download` : `Upload`"
@click="handleShelf(row)"
>{{ row.shelfStatus == 1 ? "下架" : "上架" }}
diff --git a/src/views/admin/expert/technology/paper.vue b/src/views/admin/expert/technology/paper.vue
index cd5d5b9..79240b1 100644
--- a/src/views/admin/expert/technology/paper.vue
+++ b/src/views/admin/expert/technology/paper.vue
@@ -136,9 +136,9 @@
>
-
+
diff --git a/src/views/admin/expert/technology/release.vue b/src/views/admin/expert/technology/release.vue
index f4a0f79..f20b7ee 100644
--- a/src/views/admin/expert/technology/release.vue
+++ b/src/views/admin/expert/technology/release.vue
@@ -20,6 +20,7 @@ import {
expertAchievementInfo,
updateExpertAchievement,
} from "@/api/admin/expert/achievement";
+import tab from "@/plugins/tab";
import { ElMessage } from "element-plus";
import { reactive, ref, toRefs } from "vue";
import { useRoute, useRouter } from "vue-router";
@@ -27,7 +28,7 @@ import ReleaseForm from "../components/ReleaseForm";
const labelWidth = 140;
const data = reactive({
- form: { mode: 1 },
+ form: { mode: 1, shelfStatus: "2" },
});
const formData = reactive({});
@@ -38,6 +39,8 @@ const releaseFormRef = ref();
const { id } = route.query;
if (id) {
+ const obj = Object.assign({}, route, { title: "修改成果" });
+ tab.updatePage(obj);
expertAchievementInfo({ id }).then((resp) => {
form.value = resp.data;
form.value.keywords =
@@ -52,12 +55,13 @@ const submitForm = async (status) => {
if (id) {
await updateExpertAchievement({ ...form.value, status });
ElMessage.success("修改成果成功");
- router.back();
+ // router.back();
} else {
await insertAchievement({ ...form.value, status });
ElMessage.success("新增成果成功");
- router.back();
+ // router.back();
}
+ tab.closeOpenPage({ path: "/technology/achievement" });
} else {
console.log("校验未通过");
}
diff --git a/src/views/admin/expert/technology/research.vue b/src/views/admin/expert/technology/research.vue
index 04a01a0..4ec34bd 100644
--- a/src/views/admin/expert/technology/research.vue
+++ b/src/views/admin/expert/technology/research.vue
@@ -187,13 +187,19 @@
-
-
+
+
@@ -259,6 +265,9 @@ const data = reactive({
director: [
{ required: true, message: "课题负责人不能为空", trigger: "blur" },
],
+ introduce: [
+ { required: true, message: "项目简介不能为空", trigger: "blur" },
+ ],
},
});
diff --git a/src/views/components/CityOptions/index.vue b/src/views/components/CityOptions/index.vue
index 40794de..762641e 100644
--- a/src/views/components/CityOptions/index.vue
+++ b/src/views/components/CityOptions/index.vue
@@ -181,7 +181,10 @@ watch(
() => modelValue.value.province,
(val) => {
console.log("changed province");
- getCityListByProvinceId(val);
+ val && getCityListByProvinceId(val);
+ },
+ {
+ immediate: true,
}
);
@@ -189,7 +192,10 @@ watch(
() => modelValue.value.city,
(val) => {
console.log("changed city");
- getAreaListByCityId(val);
+ val && getAreaListByCityId(val);
+ },
+ {
+ immediate: true,
}
);
getProvinceList();
diff --git a/src/views/components/EnterpriseForm/index.vue b/src/views/components/EnterpriseForm/index.vue
index e88c1be..8e81ede 100644
--- a/src/views/components/EnterpriseForm/index.vue
+++ b/src/views/components/EnterpriseForm/index.vue
@@ -7,7 +7,8 @@
>
基本信息
-
+
+
@@ -153,7 +154,7 @@
-
+
diff --git a/src/views/components/ExpertForm/index.vue b/src/views/components/ExpertForm/index.vue
index 7a588de..d4910df 100644
--- a/src/views/components/ExpertForm/index.vue
+++ b/src/views/components/ExpertForm/index.vue
@@ -173,13 +173,19 @@
-
+ /> -->
+
diff --git a/src/views/website/home/comp/index1.vue b/src/views/website/home/comp/index1.vue
index de1a867..19bbefd 100644
--- a/src/views/website/home/comp/index1.vue
+++ b/src/views/website/home/comp/index1.vue
@@ -10,10 +10,10 @@
@@ -28,7 +28,7 @@
v-model.trim="queryParams.keyword"
placeholder="请输入检索词"
>
-
+
{
+ console.log(mode);
await queryRef.value.validate();
const routeData = router.resolve({
path: `/searchList/${mode}`,
@@ -232,15 +248,15 @@ const switchTab = (index) => {
queryRef.value.resetFields("queryType");
};
-watch(
- () => state.tabIndex,
- (val) => {
- console.log(val);
- // return [2, 0][val];
- queryParams.queryType = ["2", "1", "0", "2", "2", "1"][val];
- },
- { immediate: true }
-);
+// watch(
+// () => state.tabIndex,
+// (val) => {
+// console.log(val);
+// // return [2, 0][val];
+// queryParams.queryType = ["2", "2", "2", "2", "2", "2"][val];
+// },
+// { immediate: true }
+// );
onMounted(() => {
banner({ locals: "首页背景" }).then((resp) => {
// console.log(resp);
diff --git a/src/views/website/home/comp/index3.vue b/src/views/website/home/comp/index3.vue
index cf3671e..30117d7 100644
--- a/src/views/website/home/comp/index3.vue
+++ b/src/views/website/home/comp/index3.vue
@@ -20,23 +20,23 @@
暂无
-
+
@@ -50,13 +50,14 @@ import {
// return;
// console.log(echarts);
import * as echarts from "echarts";
-import { ElMessage } from "element-plus";
+// import { ElMessage } from "element-plus";
const { proxy } = getCurrentInstance();
const loading = shallowRef(true);
-let treeData = [];
+let treeData = {};
const snapTree = shallowRef({});
+const industryTree = shallowRef({});
const searchRegionData = async (code, level) => {
if (level == "province") {
@@ -71,8 +72,9 @@ const searchRegionData = async (code, level) => {
data = snapTree.value;
} else {
const resp = await countExpertByCity(provcode);
- snapTree.value = resp.data;
- data = resp.data;
+ snapTree.value = resp.count;
+ industryTree.value = resp.industry ?? {};
+ data = resp.count;
}
return data.find((item) => item.code == code) || false;
} else if (level == "city") {
@@ -86,16 +88,20 @@ const searchRegionData = async (code, level) => {
data = snapTree.value;
} else {
const resp = await countExpertByArea(ctcode);
- snapTree.value = resp.data;
- data = resp.data;
+ snapTree.value = resp.count;
+ industryTree.value = resp.industry ?? {};
+ data = resp.count;
}
return data.find((item) => item.code == code) || false;
} else {
- if (treeData.length) {
- return treeData.find((item) => item.code == code) || false;
+ if (Object.keys(treeData).length) {
+ industryTree.value = treeData.industry ?? {};
+ snapTree.value = treeData.count ?? {};
+ return treeData.count.find((item) => item.code == code) || false;
} else {
- const { data } = await countExpertByProvince();
- return data.find((item) => item.code == code) || false;
+ const { count, industry } = await countExpertByProvince();
+ industryTree.value = industry ?? {};
+ return count.find((item) => item.code == code) || false;
}
}
};
@@ -123,33 +129,35 @@ function deepFindTree(code, tree) {
return snap;
}
-function getIndustry(object) {
- let snap = {};
- for (const key in object) {
- if (Object.hasOwnProperty.call(object, key)) {
- const element = object[key];
- if (element["industry"] != null) {
- for (const ek in element["industry"]) {
- if (Object.hasOwnProperty.call(element["industry"], ek)) {
- const ele = element["industry"][ek];
- if (!Object.hasOwnProperty.call(snap, ek)) {
- snap[ek] = 0;
- }
- snap[ek] += ele;
- }
- }
- // for (let index = 0; index < element['industry'].length; index++) {
- // const ele = element['industry'][index];
- // if(Object.hasOwnProperty.call(snap, ele)) {
+const getIndustry = () => {};
- // }
+// function getIndustry(object) {
+// let snap = {};
+// for (const key in object) {
+// if (Object.hasOwnProperty.call(object, key)) {
+// const element = object[key];
+// if (element["industry"] != null) {
+// for (const ek in element["industry"]) {
+// if (Object.hasOwnProperty.call(element["industry"], ek)) {
+// const ele = element["industry"][ek];
+// if (!Object.hasOwnProperty.call(snap, ek)) {
+// snap[ek] = 0;
+// }
+// snap[ek] += ele;
+// }
+// }
+// // for (let index = 0; index < element['industry'].length; index++) {
+// // const ele = element['industry'][index];
+// // if(Object.hasOwnProperty.call(snap, ele)) {
- // }
- }
- }
- }
- return snap;
-}
+// // }
+
+// // }
+// }
+// }
+// }
+// return snap;
+// }
const state = reactive({
loading: false,
@@ -190,8 +198,9 @@ onMounted(() => {
// 数据接口
countExpertByProvince().then((resp) => {
// const data = formatData(resp.data);
- treeData = resp.data;
- snapTree.value = resp.data;
+ treeData = resp;
+ snapTree.value = resp.count;
+ industryTree.value = resp.industry ?? {};
loading.value = false;
});
@@ -228,7 +237,7 @@ function goBack() {
state.district.search("中国", async (status, result) => {
if (status == "complete") {
await getData(result.districtList[0], "", 100000);
- snapTree.value = formatData(treeData);
+ snapTree.value = formatData(treeData.count);
}
});
}
@@ -243,7 +252,8 @@ async function echartsMapClick(params) {
}
if (params.data.level == "street") return; //此处的params.data为state.mapData里的数据
console.log(params.data.level, params.data.cityCode);
- let snap = await searchRegionData(params.data.cityCode, params.data.level);
+ // let snap =
+ await searchRegionData(params.data.cityCode, params.data.level);
// snapTree.value = {};
// console.log(snap, "-----------****---------");
// ElMessage.success(snap);
diff --git a/src/views/website/home/comp/index5.vue b/src/views/website/home/comp/index5.vue
index 58ddbe8..94cd805 100644
--- a/src/views/website/home/comp/index5.vue
+++ b/src/views/website/home/comp/index5.vue
@@ -1,6 +1,6 @@
-
专利与成果分布地图
+
技术分布地图
@@ -20,14 +20,14 @@
暂无
-
+
@@ -52,8 +52,9 @@ import * as echarts from "echarts";
const { proxy } = getCurrentInstance();
const loading = shallowRef(true);
-let treeData = [];
-const snapTree = shallowRef([]);
+let treeData = {};
+const snapTree = shallowRef({});
+const industryTree = shallowRef({});
const searchRegionData = async (code, level) => {
if (level == "province") {
@@ -68,8 +69,9 @@ const searchRegionData = async (code, level) => {
data = snapTree.value;
} else {
const resp = await countAchievementByCity(provcode);
- snapTree.value = resp.data;
- data = resp.data;
+ snapTree.value = resp.count;
+ industryTree.value = resp.industry ?? {};
+ data = resp.count;
}
return data.find((item) => item.code == code) || false;
} else if (level == "city") {
@@ -83,16 +85,20 @@ const searchRegionData = async (code, level) => {
data = snapTree.value;
} else {
const resp = await countAchievementByArea(ctcode);
- snapTree.value = resp.data;
- data = resp.data;
+ snapTree.value = resp.count;
+ industryTree.value = resp.industry ?? {};
+ data = resp.count;
}
return data.find((item) => item.code == code) || false;
} else {
- if (treeData.length) {
- return treeData.find((item) => item.code == code) || false;
+ if (Object.keys(treeData).length) {
+ industryTree.value = treeData.industry ?? {};
+ snapTree.value = treeData.count ?? {};
+ return treeData.count.find((item) => item.code == code) || false;
} else {
- const { data } = await countAchievementByProvince();
- return data.find((item) => item.code == code) || false;
+ const { count, industry } = await countAchievementByProvince();
+ industryTree.value = industry ?? {};
+ return count.find((item) => item.code == code) || false;
}
}
};
@@ -174,10 +180,11 @@ const state = reactive({
onMounted(() => {
// 数据接口
- const res = [];
+ // const res = [];
countAchievementByProvince().then((resp) => {
- treeData = resp.data;
- snapTree.value = resp.data;
+ treeData = resp;
+ snapTree.value = resp.count;
+ industryTree.value = resp.industry ?? {};
loading.value = false;
});
@@ -214,7 +221,8 @@ function goBack() {
state.district.search("中国", async (status, result) => {
if (status == "complete") {
await getData(result.districtList[0], "", 100000);
- snapTree.value = treeData;
+ // snapTree.value = treeData.count;
+ snapTree.value = treeData.count;
}
});
}
diff --git a/src/views/website/home/comp/index6.vue b/src/views/website/home/comp/index6.vue
index 6470a09..3781178 100644
--- a/src/views/website/home/comp/index6.vue
+++ b/src/views/website/home/comp/index6.vue
@@ -20,14 +20,14 @@
暂无
-
+
@@ -52,8 +52,10 @@ import {
const { proxy } = getCurrentInstance();
const loading = shallowRef(true);
-let treeData = [];
-const snapTree = shallowRef([]);
+
+let treeData = {};
+const snapTree = shallowRef({});
+const industryTree = shallowRef({});
const searchRegionData = async (code, level) => {
if (level == "province") {
@@ -67,8 +69,9 @@ const searchRegionData = async (code, level) => {
data = snapTree.value;
} else {
const resp = await countDemandByCity(provcode);
- snapTree.value = resp.data;
- data = resp.data;
+ snapTree.value = resp.count;
+ industryTree.value = resp.industry ?? {};
+ data = resp.count;
}
return data.find((item) => item.code == code) || false;
} else if (level == "city") {
@@ -82,16 +85,20 @@ const searchRegionData = async (code, level) => {
data = snapTree.value;
} else {
const resp = await countDemandByArea(ctcode);
- snapTree.value = resp.data;
- data = resp.data;
+ snapTree.value = resp.count;
+ industryTree.value = resp.industry ?? {};
+ data = resp.count;
}
return data.find((item) => item.code == code) || false;
} else {
- if (treeData.length) {
- return treeData.find((item) => item.code == code) || false;
+ if (Object.keys(treeData).length) {
+ industryTree.value = treeData.industry ?? {};
+ snapTree.value = treeData.count ?? {};
+ return treeData.count.find((item) => item.code == code) || false;
} else {
- const { data } = await countDemandByProvince();
- return data.find((item) => item.code == code) || false;
+ const { count, industry } = await countDemandByProvince();
+ industryTree.value = industry ?? {};
+ return count.find((item) => item.code == code) || false;
}
}
};
@@ -173,10 +180,10 @@ const state = reactive({
onMounted(() => {
// 数据接口
- const res = { code: 200, message: "ok", data: {} };
- countDemandByProvince().then((res) => {
- treeData = res.data;
- snapTree.value = res.data;
+ countDemandByProvince().then((resp) => {
+ treeData = resp;
+ snapTree.value = resp.count;
+ industryTree.value = resp.industry ?? {};
loading.value = false;
});
// let echartsDomList = document.querySelectorAll('.echartsDom');
@@ -223,7 +230,7 @@ function goBack() {
state.district.search("中国", async (status, result) => {
if (status == "complete") {
await getData(result.districtList[0], "", 100000);
- snapTree.value = treeData;
+ snapTree.value = treeData.count;
}
});
}
diff --git a/src/views/website/home/comp/index7.vue b/src/views/website/home/comp/index7.vue
index 5b36a69..e6f81df 100644
--- a/src/views/website/home/comp/index7.vue
+++ b/src/views/website/home/comp/index7.vue
@@ -20,14 +20,14 @@
暂无
-
+
@@ -52,8 +52,9 @@ import {
const { proxy } = getCurrentInstance();
const loading = shallowRef(true);
-let treeData = [];
-const snapTree = shallowRef([]);
+let treeData = {};
+const snapTree = shallowRef({});
+const industryTree = shallowRef({});
const searchRegionData = async (code, level) => {
if (level == "province") {
@@ -68,8 +69,9 @@ const searchRegionData = async (code, level) => {
data = snapTree.value;
} else {
const resp = await countEnterpriseByCity(provcode);
- snapTree.value = resp.data;
- data = resp.data;
+ snapTree.value = resp.count;
+ industryTree.value = resp.industry ?? {};
+ data = resp.count;
}
return data.find((item) => item.code == code) || false;
} else if (level == "city") {
@@ -83,16 +85,20 @@ const searchRegionData = async (code, level) => {
data = snapTree.value;
} else {
const resp = await countEnterpriseByArea(ctcode);
- snapTree.value = resp.data;
- data = resp.data;
+ snapTree.value = resp.count;
+ industryTree.value = resp.industry ?? {};
+ data = resp.count;
}
return data.find((item) => item.code == code) || false;
} else {
- if (treeData.length) {
- return treeData.find((item) => item.code == code) || false;
+ if (Object.keys(treeData).length) {
+ industryTree.value = treeData.industry ?? {};
+ snapTree.value = treeData.count ?? {};
+ return treeData.count.find((item) => item.code == code) || false;
} else {
- const { data } = await countEnterpriseByProvince();
- return data.find((item) => item.code == code) || false;
+ const { count, industry } = await countEnterpriseByProvince();
+ industryTree.value = industry ?? {};
+ return count.find((item) => item.code == code) || false;
}
}
};
@@ -177,8 +183,9 @@ onMounted(() => {
countEnterpriseByProvince().then((resp) => {
// if (200 == res.code) {
- treeData = resp.data;
- snapTree.value = resp.data;
+ treeData = resp;
+ snapTree.value = resp.count;
+ industryTree.value = resp.industry ?? {};
loading.value = false;
// }
});
@@ -226,7 +233,7 @@ function goBack() {
state.district.search("中国", async (status, result) => {
if (status == "complete") {
await getData(result.districtList[0], "", 100000);
- snapTree.value = treeData;
+ snapTree.value = treeData.count;
}
});
}
diff --git a/src/views/website/searchList/achievementDetail.vue b/src/views/website/searchList/achievementDetail.vue
index 2fa5fc9..2a529ce 100644
--- a/src/views/website/searchList/achievementDetail.vue
+++ b/src/views/website/searchList/achievementDetail.vue
@@ -36,6 +36,50 @@
成果简介
+
+
+
+ {{
+ leadOptions.find(
+ (el) => el.key == state.expertDetail.leadStandard
+ )?.value
+ }}
+
+
+
+
+
+ {{
+ cooperationOptions.find(
+ (el) => el.key == state.expertDetail.cooperationMode
+ )?.value
+ }}
+
+
+
+
+
+ {{ state.expertDetail.customer }}
+
+
+
+
+ {{ state.localtion }}
+
+
+
+ {{ state.expertDetail.unit }}
+
@@ -55,14 +99,18 @@ import loadMore from "./components/loadMore.vue";
import request from "@/utils/request";
// import { onMounted } from "vue";
import searchContainer from "./components/searchContainer.vue";
+
import wordcloud from "./components/wordcloud.vue";
import productItem from "./components/productItem.vue";
-import { searchAchievementDetail } from "../../../api/website/home";
+import { searchAchievementDetail } from "@/api/website/home";
import { useRoute, useRouter } from "vue-router";
import { reactive, ref } from "vue";
import docking from "./components/docking.vue";
+import { getCity } from "@/utils/city";
+import { leadOptions, cooperationOptions } from "@/utils/parameter";
const showDocking = ref(false);
const loading = ref(true);
+// import {lead}
const state = reactive({
pageNum: 1,
pageSize: 4,
@@ -152,10 +200,15 @@ function getDataList() {
if (!id) return;
searchAchievementDetail(id)
// achievementDetail(id)
- .then((res) => {
+ .then(async (resp) => {
// if (200 == res.code) {
- console.log(res.data);
- state.expertDetail = res.data;
+ console.log(resp.data);
+ state.expertDetail = resp.data;
+ state.localtion = await getCity(
+ resp.data.province,
+ resp.data.city,
+ resp.data.district
+ );
loading.value = false;
// }
});
diff --git a/src/views/website/searchList/components/laboratoryItem.vue b/src/views/website/searchList/components/laboratoryItem.vue
index 9f927b1..433c24c 100644
--- a/src/views/website/searchList/components/laboratoryItem.vue
+++ b/src/views/website/searchList/components/laboratoryItem.vue
@@ -1,141 +1,178 @@
-
-
-
-
-

-
-
-
{{ data.title }}
-
+
+
+
实验室
+
+
{{ data.name }}
+
-
- 所属领域:
- {{ data.industrys[data.industrys.length - 1] }}
-
-
- 依托管理部门:
- {{ data.mode_title }}
-
-
+
+ 所属领域:
+ {{ data.industryStr }}
+
+
+ 网址:
+ {{ data.url }}
+
+
+ 所属院所或高校:
+ {{ data.school }}
+
+
+
+
+
\ No newline at end of file
+
diff --git a/src/views/website/searchList/components/searchContainer.vue b/src/views/website/searchList/components/searchContainer.vue
index da97e3d..e247936 100644
--- a/src/views/website/searchList/components/searchContainer.vue
+++ b/src/views/website/searchList/components/searchContainer.vue
@@ -13,7 +13,7 @@
v-model.trim="state.currentKeyword"
placeholder="请输入检索词"
>
-
+
import WebContact from "@/components/webContact/index.vue";
-import request from "@/utils/request";
+// import request from "@/utils/request";
import { enterpriseOptions } from "@/utils/parameter";
import { search } from "@/api/website/home/index";
-import { onMounted } from "vue";
+// import { onMounted } from "vue";
import searchContainer from "./components/searchContainer.vue";
// import industrySelect from "./components/industrySelect.vue";
import wordcloud from "./components/wordcloud.vue";
@@ -92,6 +92,7 @@ const route = useRoute();
const router = useRouter();
const searchResults = ref([]);
const total = ref(0);
+
const queryParams = reactive({
pageNum: 1,
pageSize: 5,
diff --git a/src/views/website/searchList/enterpriseDetail.vue b/src/views/website/searchList/enterpriseDetail.vue
index 8a91b28..3243977 100644
--- a/src/views/website/searchList/enterpriseDetail.vue
+++ b/src/views/website/searchList/enterpriseDetail.vue
@@ -69,7 +69,6 @@
-
企业简介
@@ -87,6 +86,25 @@
{{ item }}
-->
+
+
+ {{ state.companyDetail.username }}
+
+
+
+ {{ state.companyDetail.phone }}
+
+
+
+ {{ state.companyDetail.email }}
+
+
@@ -103,8 +121,8 @@
-
- {{ state.companyDetail.address }}
+
详细地址
@@ -192,15 +210,16 @@
+
+
diff --git a/src/views/website/searchList/laboratoryDetail.vue b/src/views/website/searchList/laboratoryDetail.vue
new file mode 100644
index 0000000..33991ee
--- /dev/null
+++ b/src/views/website/searchList/laboratoryDetail.vue
@@ -0,0 +1,338 @@
+
+
+
+
+
+
+
+ 找实验室
+
+
+ 实验室详情
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ state.LabDetail.name }}
+
+
+
+ 所属领域:
+ {{ state.LabDetail.industryStr }}
+
+
+ 网址:
+ {{ state.LabDetail.url }}
+
+
+ 所属院所或高校:
+
+ {{ state.LabDetail.school }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ state.LabDetail.researchDirection }}
+
+
{{ state.LabDetail.primaryTechnology }}
+
+
{{ state.LabDetail.researchProject }}
+
+
{{ state.LabDetail.achievement }}
+
+
{{ state.LabDetail.industryStr }}
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/website/searchList/patentDetail.vue b/src/views/website/searchList/patentDetail.vue
index 94b11af..46c3a54 100644
--- a/src/views/website/searchList/patentDetail.vue
+++ b/src/views/website/searchList/patentDetail.vue
@@ -77,6 +77,37 @@
class="html"
v-html="state.patentDetail.principalClaim"
>
+
+
+
+
+ {{ state.patentDetail.ipcCode }}
+
+
+
+ {{
+ patentOptions.find((el) => el.key == state.patentDetail.kind)
+ ?.value
+ }}
+
+
+ {{ state.patentDetail.openAt }}
+
+ {{ state.patentDetail.openCode }}
+
+ {{ state.patentDetail.applyAddress }}
共找到
- {{ total }} 个技术需求
+ {{ total }} 个需求
diff --git a/src/views/website/searchList/technologyDemandDetail.vue b/src/views/website/searchList/technologyDemandDetail.vue
index 784ec09..8437403 100644
--- a/src/views/website/searchList/technologyDemandDetail.vue
+++ b/src/views/website/searchList/technologyDemandDetail.vue
@@ -1,18 +1,18 @@
- 接技术需求
+ 接需求
- 技术需求详情
+ 需求详情
@@ -20,6 +20,9 @@
+
@@ -41,19 +44,13 @@
需求类型:
{{ state.demandDetail.kind }}
-
- 申请日
- {{ state.demandDetail.createTime }}
-
联系人
-
- {{ state.demandDetail.name }}
-
+ 中科云平台
- 联系方式
- {{ state.demandDetail.mobile }}
+ 联系方式(微信同号):
+ 18156053255
+
+
+ {{ state.localtion }}
+
@@ -96,6 +99,7 @@ import { onMounted, reactive, ref } from "vue";
import searchContainer from "./components/searchContainer.vue";
import wordcloud from "./components/wordcloud.vue";
import productItem from "./components/productItem.vue";
+import { getCity } from "@/utils/city";
import { useRoute, useRouter } from "vue-router";
import docking from "./components/docking.vue";
const showDocking = ref(false);
@@ -109,6 +113,7 @@ const state = reactive({
val: 3,
demandDetail: {},
companyProduct: [],
+ localtion: "",
arr: [
{
name: "Cat",
@@ -157,8 +162,15 @@ function getDataList() {
let id = route.params.id;
if (!id) return;
searchTechnologyDemandDetail(id)
- .then((resp) => {
+ .then(async (resp) => {
state.demandDetail = resp.data;
+ if (resp.data.province && resp.data.city && resp.data.district) {
+ state.localtion = await getCity(
+ resp.data.province,
+ resp.data.city,
+ resp.data.district
+ );
+ }
loading.value = false;
})
.catch((err) => {