尾部导航

This commit is contained in:
cxc
2022-11-17 17:29:47 +08:00
parent c2327f30cb
commit 7dc27a03ea
54 changed files with 956 additions and 433 deletions

View File

@ -23,10 +23,10 @@
<div>{{ state.expertDetail.introduce }}</div>
</template>
</achievementItem>
<!-- <div class="btns">
<div class="order">预约对接</div>
<div class="btns">
<div class="order" @click="showDocking = true">预约对接</div>
<div class="share">一键分享</div>
</div> -->
</div>
<div class="detail">
<!-- <div style="padding: 20px 0">
@ -44,6 +44,7 @@
</el-row>
</template>
</searchContainer>
<docking v-model:visible="showDocking"></docking>
</div>
</template>
@ -59,7 +60,8 @@ import productItem from "./components/productItem.vue";
import { searchAchievementDetail } from "../../../api/website/home";
import { useRoute, useRouter } from "vue-router";
import { reactive, ref } from "vue";
import docking from "./components/docking.vue";
const showDocking = ref(false);
const loading = ref(true);
const state = reactive({
pageNum: 1,

View File

@ -24,6 +24,14 @@
"未知"
}}</span>
</div>
<div class="line">
联系人
<span>中科云平台</span>
</div>
<div class="line">
联系方式(微信同号)
<span>18156053255</span>
</div>
</div>
<div>
<div class="keywords">
@ -86,7 +94,7 @@ function createdData(arr) {
<style lang="scss" scoped>
.box {
width: 100%;
height: 190px;
// height: 190px;
background: #ffffff;
padding: 20px;
box-sizing: border-box;

View File

@ -0,0 +1,30 @@
<template>
<el-dialog
width="400px"
:modelValue="visible"
title="预约对接"
align-center
@close="closeDialog"
>
<p>如需对接请联系我们</p>
<p>联系人中科云平台</p>
<p>联系电话18156053255微信同号</p>
<template #footer>
<el-button type="primary" @click="closeDialog">关闭</el-button>
</template>
</el-dialog>
</template>
<script setup>
const props = defineProps({
visible: {
type: Boolean,
required: true,
},
});
const emit = defineEmits(["update:visible"]);
const closeDialog = () => {
emit("update:visible", false);
};
</script>

View File

@ -84,7 +84,7 @@ function createdData(arr) {
<style lang="scss" scoped>
.box {
width: 100%;
height: 190px;
// height: 190px;
background: #ffffff;
padding: 20px;
box-sizing: border-box;

View File

@ -68,7 +68,7 @@ function createdData (arr) {
<style lang="scss" scoped>
.box {
width: 100%;
height: 190px;
// height: 190px;
background: #ffffff;
padding: 20px;
box-sizing: border-box;

View File

@ -54,7 +54,7 @@ function createdData (arr) {
<style lang="scss" scoped>
.box {
width: 100%;
height: 190px;
// height: 190px;
background: #ffffff;
padding: 20px;
box-sizing: border-box;

View File

@ -84,7 +84,7 @@ function createdData(arr) {
<style lang="scss" scoped>
.box {
width: 100%;
height: 190px;
// height: 190px;
background: #ffffff;
padding: 20px;
box-sizing: border-box;

View File

@ -21,8 +21,12 @@
<span>{{ data.kind }}</span>
</div>
<div class="line">
联系方式
<span>{{ data.mobile }}</span>
联系
<span>中科云平台</span>
</div>
<div class="line">
联系方式(微信同号)
<span>18156053255</span>
</div>
</div>
<div>
@ -83,7 +87,7 @@ function createdData(arr) {
<style lang="scss" scoped>
.box {
width: 100%;
height: 190px;
// height: 190px;
background: #ffffff;
padding: 20px;
box-sizing: border-box;

View File

@ -63,10 +63,10 @@
:data="createdData(state.companyDetail.keywords)"
></wordcloud>
</div>
<!-- <div class="btns">
<div class="order">预约对接</div>
<div class="btns">
<div class="order" @click="showDocking = true">预约对接</div>
<div class="share">一键分享</div>
</div> -->
</div>
</el-row>
</div>
@ -154,10 +154,12 @@
</el-row>
</template>
</searchContainer>
<docking v-model:visible="showDocking"></docking>
</div>
</template>
<script setup>
import docking from "./components/docking.vue";
import webContact from "@/components/webContact/index.vue";
import request from "@/utils/request";
import { searchEnterpriseDetail } from "@/api/website/home";
@ -171,6 +173,7 @@ import { search } from "../../../api/website/home";
const router = useRouter();
const route = useRoute();
const loading = ref(true);
const showDocking = ref(false);
const state = reactive({
pageNum: 1,
pageSize: 4,
@ -233,9 +236,8 @@ function createdData(arr) {
function handleDetail(id) {
let routeData = router.resolve({
path: `/searchList/enterprise/detail/${id}`,
query: { keyword: state.keyword, queryType: route.query.queryType },
query: { keyword: route.query.keyword, queryType: route.query.queryType },
});
// window.open(routeData.href, "_blank");
router.push(routeData);
}
@ -286,7 +288,8 @@ function getDataList() {
queryType: route.query.queryType,
}).then((resp) => {
const recommendList = resp.list.filter(
(el) => el.id != state.companyDetail.id
// (el) => el.id != state.companyDetail.id
(el) => el.id != id
);
state.list = recommendList;
state.total = resp.total;

View File

@ -19,10 +19,10 @@
<el-row type="flex" style="padding-bottom: 20px">
<div style="flex: 1">
<expertItem :data="state.expertDetail"></expertItem>
<!-- <div class="btns">
<div class="order">预约对接</div>
<div class="btns">
<div class="order" @click="showDocking = true">预约对接</div>
<div class="share">一键分享</div>
</div> -->
</div>
<div class="detail">
<div style="padding: 20px 0">
@ -325,20 +325,23 @@
</el-row>
</template>
</searchContainer>
<docking v-model:visible="showDocking"></docking>
</div>
</template>
<script setup>
import webContact from "@/components/webContact/index.vue";
import expertItem from "./components/expertItem.vue";
import loadMore from "./components/loadMore.vue";
import request from "@/utils/request";
// import loadMore from "./components/loadMore.vue";
// import request from "@/utils/request";
import { searchExpertDetail } from "@/api/website/home";
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 wordcloud from "./components/wordcloud.vue";
// import productItem from "./components/productItem.vue";
import { useRoute, useRouter } from "vue-router";
import docking from "./components/docking.vue";
const showDocking = ref(false);
const router = useRouter();
const route = useRoute();
const loading = ref(true);
@ -361,103 +364,6 @@ const state = reactive({
activeName: "first",
});
// 建议 列表前4条
function recommend() {
return request({
url: "/v1/search",
method: "post",
data: {
mode: 5,
page_num: state.pageNum,
page_size: state.pageSize,
keyword: state.keyword,
},
});
}
// 专家详情
function expert(id) {
return request({
url: "/v1/manage/expert",
method: "post",
data: { expert_id: id },
});
}
// 合作成果
function achievement(data) {
return request({
url: "/v1/manage/expert/achievement",
method: "post",
data,
});
}
// 科研项目
function project(data) {
return request({
url: "/v1/manage/expert/project",
method: "post",
data,
});
}
// 代表专利
function patent(data) {
return request({
url: "/v1/manage/expert/patent",
method: "post",
data,
});
}
// 代表论文
function paper(data) {
return request({
url: "/v1/manage/expert/paper",
method: "post",
data,
});
}
// 合作企业
function cooperate(data) {
return request({
url: "/v1/manage/expert/cooperate",
method: "post",
data,
});
}
async function cooperateDetail(item, type) {
item["loading"] = true;
let { code, msg, data } = await request({
url: "/v1/manage/expert/cooperate/detail",
method: "post",
data: { id: item.id },
});
if (200 == code) {
item[type] = data[type];
}
item["loading"] = false;
}
function createdData(arr) {
let l = [];
let snap = JSON.parse(JSON.stringify(arr));
snap.map((e) => {
l.push({ name: e, value: 30 });
return { name: e, value: 30 };
});
return l;
}
function handleDetail(id) {
let routeData = router.resolve({
path: `/searchList/0/detail/${id}`,
query: { keyword: state.keyword },
});
window.open(routeData.href, "_blank");
}
function handleList(mode, query) {
router.push({
path: `/searchList/${mode}`,
@ -507,7 +413,16 @@ function getDataList() {
// })
searchExpertDetail(id)
.then((resp) => {
state.expertDetail = resp.data;
const data = resp.data;
// data.expertDetail.introduce = data.expertDetail.introduce?.replace(
// "\n",
// "</br>"
// );
data.introduce = data.introduce
?.replaceAll("\n", "</br>")
?.replaceAll(" ", "&ensp;");
// console.log(data.introduce.replaceAll("\n", "</br>"));
state.expertDetail = data;
loading.value = false;
})
.catch(() => {

View File

@ -58,10 +58,10 @@
:data="createdData(state.patentDetail.keywords)"
></wordcloud>
</div>
<!-- <div class="btns">
<div class="order">预约对接</div>
<div class="btns">
<div class="order" @click="showDocking = true">预约对接</div>
<div class="share">一键分享</div>
</div> -->
</div>
</el-row>
</div>
@ -145,6 +145,7 @@
</el-row>
</template>
</searchContainer>
<docking v-model:visible="showDocking"></docking>
</div>
</template>
@ -157,6 +158,8 @@ import searchContainer from "./components/searchContainer.vue";
import wordcloud from "./components/wordcloud.vue";
import productItem from "./components/productItem.vue";
import { useRoute, useRouter } from "vue-router";
import docking from "./components/docking.vue";
const showDocking = ref(false);
const router = useRouter();
const route = useRoute();
const loading = ref(true);

View File

@ -62,10 +62,10 @@
:data="createdData(state.demandDetail.keywords)"
></wordcloud>
</div>
<!-- <div class="btns">
<div class="order">预约对接</div>
<div class="btns">
<div class="order" @click="showDocking = true">预约对接</div>
<div class="share">一键分享</div>
</div> -->
</div>
</el-row>
</div>
@ -149,6 +149,7 @@
</el-row>
</template>
</searchContainer>
<docking v-model:visible="showDocking"></docking>
</div>
</template>
@ -161,6 +162,8 @@ import searchContainer from "./components/searchContainer.vue";
import wordcloud from "./components/wordcloud.vue";
import productItem from "./components/productItem.vue";
import { useRoute, useRouter } from "vue-router";
import docking from "./components/docking.vue";
const showDocking = ref(false);
const router = useRouter();
const route = useRoute();
const loading = ref(true);

View File

@ -62,10 +62,10 @@
:data="createdData(state.demandDetail.keywords)"
></wordcloud>
</div>
<!-- <div class="btns">
<div class="order">预约对接</div>
<div class="btns">
<div class="order" @click="showDocking = true">预约对接</div>
<div class="share">一键分享</div>
</div> -->
</div>
</el-row>
</div>
@ -84,6 +84,7 @@
</el-row>
</template>
</searchContainer>
<docking v-model:visible="showDocking"></docking>
</div>
</template>
@ -96,6 +97,8 @@ import searchContainer from "./components/searchContainer.vue";
import wordcloud from "./components/wordcloud.vue";
import productItem from "./components/productItem.vue";
import { useRoute, useRouter } from "vue-router";
import docking from "./components/docking.vue";
const showDocking = ref(false);
const router = useRouter();
const route = useRoute();
const loading = ref(true);