企业技术需求和产品 、专家成果上传自动审核
This commit is contained in:
@ -108,7 +108,6 @@
|
|||||||
登录注册
|
登录注册
|
||||||
</div>
|
</div>
|
||||||
<!-- <el-popover
|
<!-- <el-popover
|
||||||
|
|
||||||
placement="bottom"
|
placement="bottom"
|
||||||
:title="`32`"
|
:title="`32`"
|
||||||
:width="200"
|
:width="200"
|
||||||
@ -320,7 +319,12 @@ dt {
|
|||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
// .avatar-wrapper {
|
// .avatar-wrapper {
|
||||||
// padding-top: 25px;
|
// box-sizing: border-box;
|
||||||
|
// padding: 10px;
|
||||||
|
// .user-avatar {
|
||||||
|
// width: 20px;
|
||||||
|
// height: 20px;
|
||||||
|
// }
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { login, logout, getInfo } from "@/api/login";
|
import { login, logout, getInfo } from "@/api/login";
|
||||||
import { getToken, setToken, removeToken } from "@/utils/auth";
|
import { getToken, setToken, removeToken } from "@/utils/auth";
|
||||||
import defAva from "@/assets/images/profile.jpg";
|
// import defAva from "@/assets/images/profile.jpg";
|
||||||
|
import defAva from "@/assets/logo/logo_small.png";
|
||||||
|
|
||||||
const useUserStore = defineStore("user", {
|
const useUserStore = defineStore("user", {
|
||||||
state: () => ({
|
state: () => ({
|
||||||
|
@ -170,7 +170,7 @@
|
|||||||
</div> -->
|
</div> -->
|
||||||
<div :style="{ marginLeft: labelWidth + 'px' }">
|
<div :style="{ marginLeft: labelWidth + 'px' }">
|
||||||
<el-button type="primary" @click="submitForm(3)">保存草稿</el-button>
|
<el-button type="primary" @click="submitForm(3)">保存草稿</el-button>
|
||||||
<el-button type="primary" @click="submitForm(0)">提交审核</el-button>
|
<el-button type="primary" @click="submitForm(1)">提交审核</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
/>
|
/>
|
||||||
<div :style="{ marginLeft: labelWidth + 'px' }">
|
<div :style="{ marginLeft: labelWidth + 'px' }">
|
||||||
<el-button type="primary" @click="submitForm(3)">保存草稿</el-button>
|
<el-button type="primary" @click="submitForm(3)">保存草稿</el-button>
|
||||||
<el-button type="primary" @click="submitForm(0)">提交审核</el-button>
|
<el-button type="primary" @click="submitForm(1)">提交审核</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
|
@ -54,7 +54,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row> -->
|
</el-row> -->
|
||||||
|
<!-- <el-empty v-if=""></el-empty> -->
|
||||||
<div v-if="dataList.length" style="margin-top: 20px" v-loading="loading">
|
<div v-if="dataList.length" style="margin-top: 20px" v-loading="loading">
|
||||||
<section v-for="item in dataList" :key="item.id">
|
<section v-for="item in dataList" :key="item.id">
|
||||||
<div style="border: 1px solid #dcdcdc; margin-bottom: 10px">
|
<div style="border: 1px solid #dcdcdc; margin-bottom: 10px">
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<el-card shadow="always" style="width: 55%; margin: 0 auto">
|
<el-card shadow="always" style="width: 55%; margin: 0 auto">
|
||||||
<p><b>基本资料</b></p>
|
<!-- <p><b>基本资料</b></p>
|
||||||
<el-form
|
<el-form
|
||||||
ref="personalInfoFormRef"
|
ref="personalInfoFormRef"
|
||||||
:model="PersonalInfoForm"
|
:model="PersonalInfoForm"
|
||||||
@ -36,7 +36,7 @@
|
|||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="submitPersonalInfo">提交</el-button>
|
<el-button type="primary" @click="submitPersonalInfo">提交</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form> -->
|
||||||
<p><b>专家资料</b></p>
|
<p><b>专家资料</b></p>
|
||||||
<ExpertForm
|
<ExpertForm
|
||||||
v-model="expertForm"
|
v-model="expertForm"
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
/>
|
/>
|
||||||
<div :style="{ marginLeft: labelWidth + 'px' }">
|
<div :style="{ marginLeft: labelWidth + 'px' }">
|
||||||
<el-button type="primary" @click="submitForm(`3`)">保存草稿</el-button>
|
<el-button type="primary" @click="submitForm(`3`)">保存草稿</el-button>
|
||||||
<el-button type="primary" @click="submitForm(`0`)">提交审核</el-button>
|
<el-button type="primary" @click="submitForm(`1`)">提交审核</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
|
@ -182,6 +182,7 @@
|
|||||||
/> -->
|
/> -->
|
||||||
<WangEditor
|
<WangEditor
|
||||||
v-model="modelValue.introduce"
|
v-model="modelValue.introduce"
|
||||||
|
placeholder="请输入研究方向、核心技术及产品、代表专利和论文、承担科研项目名称及项目摘要"
|
||||||
width="100%"
|
width="100%"
|
||||||
min-height="150px"
|
min-height="150px"
|
||||||
@blur="formRef.validateField(`introduce`)"
|
@blur="formRef.validateField(`introduce`)"
|
||||||
|
@ -130,7 +130,9 @@ function reason(item) {
|
|||||||
alert("拒绝原因:\n" + item.remark);
|
alert("拒绝原因:\n" + item.remark);
|
||||||
}
|
}
|
||||||
function noClicking() {
|
function noClicking() {
|
||||||
return identityList.value.some((item) => item.status == 0);
|
return identityList.value.some(
|
||||||
|
(item) => item.status == 0 || item.status == 1
|
||||||
|
);
|
||||||
}
|
}
|
||||||
const backToHome = () => {
|
const backToHome = () => {
|
||||||
router.push({
|
router.push({
|
||||||
@ -140,7 +142,7 @@ const backToHome = () => {
|
|||||||
// item.status -1>未入驻 0>审核中 1>通过 2拒绝
|
// item.status -1>未入驻 0>审核中 1>通过 2拒绝
|
||||||
function handleStatus(item) {
|
function handleStatus(item) {
|
||||||
// console.log(item);
|
// console.log(item);
|
||||||
if (noClicking()) return ElMessageBox.alert("您已有入驻申请");
|
if (noClicking()) return ElMessageBox.alert("一个账号只能申请一个身份");
|
||||||
if (item.status === "4" || item.status === "2") {
|
if (item.status === "4" || item.status === "2") {
|
||||||
if (item.id == 1) {
|
if (item.id == 1) {
|
||||||
// 企业
|
// 企业
|
||||||
|
70
src/views/website/home/comp/RegionPagine.vue
Normal file
70
src/views/website/home/comp/RegionPagine.vue
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
<template>
|
||||||
|
<div class="paging">
|
||||||
|
<el-icon
|
||||||
|
class="prev"
|
||||||
|
:style="{
|
||||||
|
cursor: page === 1 ? 'not-allowed' : 'pointer',
|
||||||
|
color: page === 1 ? '#999' : '#fff',
|
||||||
|
}"
|
||||||
|
@click="prev"
|
||||||
|
>
|
||||||
|
<ArrowLeftBold />
|
||||||
|
</el-icon>
|
||||||
|
<div class="page-num">{{ page }}</div>
|
||||||
|
<el-icon
|
||||||
|
class="next"
|
||||||
|
:style="{
|
||||||
|
cursor: Math.ceil(total / 5) <= page ? 'not-allowed' : 'pointer',
|
||||||
|
color: Math.ceil(total / 5) <= page ? '#999' : '#fff',
|
||||||
|
}"
|
||||||
|
@click="next"
|
||||||
|
>
|
||||||
|
<ArrowRightBold />
|
||||||
|
</el-icon>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import { toRefs } from "vue";
|
||||||
|
const emit = defineEmits(["update:page"]);
|
||||||
|
const props = defineProps({
|
||||||
|
total: {
|
||||||
|
type: Number,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
page: {
|
||||||
|
type: Number,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const { total, page } = toRefs(props);
|
||||||
|
|
||||||
|
const prev = () => {
|
||||||
|
if (page.value == 1) return;
|
||||||
|
emit("update:page", page.value - 1);
|
||||||
|
};
|
||||||
|
const next = () => {
|
||||||
|
if (Math.ceil(total.value / 5) <= page.value) return;
|
||||||
|
emit("update:page", page.value + 1);
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.paging {
|
||||||
|
width: 100px;
|
||||||
|
z-index: 9999;
|
||||||
|
position: absolute;
|
||||||
|
bottom: -40px;
|
||||||
|
left: 50%;
|
||||||
|
transform: translateX(-50%);
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
.prev,
|
||||||
|
.next {
|
||||||
|
user-select: none;
|
||||||
|
cursor: pointer;
|
||||||
|
color: #fff;
|
||||||
|
width: 30px;
|
||||||
|
height: 30px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -11,14 +11,26 @@
|
|||||||
<div class="a">地区</div>
|
<div class="a">地区</div>
|
||||||
<div class="b">专家数量</div>
|
<div class="b">专家数量</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="Object.keys(snapTree).length > 0" v-for="v in snapTree">
|
<template v-if="snapTree.length > 0">
|
||||||
<div class="a">{{ v.name }}</div>
|
<div
|
||||||
<div class="b">{{ v.count }}</div>
|
v-for="v in snapTree.slice(
|
||||||
</div>
|
(leftBoxPageNum - 1) * 5,
|
||||||
|
leftBoxPageNum * 5
|
||||||
|
)"
|
||||||
|
>
|
||||||
|
<div class="a">{{ v.name }}</div>
|
||||||
|
<div class="b">{{ v.count }}</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<div class="a">暂无</div>
|
<div class="a">暂无</div>
|
||||||
<div class="b">暂无</div>
|
<div class="b">暂无</div>
|
||||||
</div>
|
</div>
|
||||||
|
<RegionPagine
|
||||||
|
v-if="snapTree.length"
|
||||||
|
v-model:page="leftBoxPageNum"
|
||||||
|
:total="snapTree.length"
|
||||||
|
></RegionPagine>
|
||||||
</div>
|
</div>
|
||||||
<div class="rightBox">
|
<div class="rightBox">
|
||||||
<div class="head">
|
<div class="head">
|
||||||
@ -50,15 +62,16 @@ import {
|
|||||||
// return;
|
// return;
|
||||||
// console.log(echarts);
|
// console.log(echarts);
|
||||||
import * as echarts from "echarts";
|
import * as echarts from "echarts";
|
||||||
|
import RegionPagine from "./RegionPagine.vue";
|
||||||
// import { ElMessage } from "element-plus";
|
// import { ElMessage } from "element-plus";
|
||||||
|
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const loading = shallowRef(true);
|
const loading = shallowRef(true);
|
||||||
|
|
||||||
let treeData = {};
|
let treeData = {};
|
||||||
const snapTree = shallowRef({});
|
const snapTree = shallowRef([]);
|
||||||
const industryTree = shallowRef({});
|
const industryTree = shallowRef({});
|
||||||
|
const leftBoxPageNum = ref(1);
|
||||||
const searchRegionData = async (code, level) => {
|
const searchRegionData = async (code, level) => {
|
||||||
if (level == "province") {
|
if (level == "province") {
|
||||||
const provcode = code.substring(0, 2) + "0000";
|
const provcode = code.substring(0, 2) + "0000";
|
||||||
@ -96,7 +109,7 @@ const searchRegionData = async (code, level) => {
|
|||||||
} else {
|
} else {
|
||||||
if (Object.keys(treeData).length) {
|
if (Object.keys(treeData).length) {
|
||||||
industryTree.value = treeData.industry ?? {};
|
industryTree.value = treeData.industry ?? {};
|
||||||
snapTree.value = treeData.count ?? {};
|
snapTree.value = treeData.count ?? [];
|
||||||
return treeData.count.find((item) => item.code == code) || false;
|
return treeData.count.find((item) => item.code == code) || false;
|
||||||
} else {
|
} else {
|
||||||
const { count, industry } = await countExpertByProvince();
|
const { count, industry } = await countExpertByProvince();
|
||||||
@ -237,7 +250,8 @@ function goBack() {
|
|||||||
state.district.search("中国", async (status, result) => {
|
state.district.search("中国", async (status, result) => {
|
||||||
if (status == "complete") {
|
if (status == "complete") {
|
||||||
await getData(result.districtList[0], "", 100000);
|
await getData(result.districtList[0], "", 100000);
|
||||||
snapTree.value = formatData(treeData.count);
|
// snapTree.value = formatData(treeData.count);
|
||||||
|
snapTree.value = treeData.count;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -414,7 +428,7 @@ function loadMap(mapName, data) {
|
|||||||
borderColor: "#666666",
|
borderColor: "#666666",
|
||||||
borderWidth: 0.5,
|
borderWidth: 0.5,
|
||||||
label: {
|
label: {
|
||||||
show: true,
|
show: false,
|
||||||
textStyle: {
|
textStyle: {
|
||||||
color: "#333333",
|
color: "#333333",
|
||||||
},
|
},
|
||||||
@ -509,7 +523,7 @@ function loadMap(mapName, data) {
|
|||||||
max-width: 250px;
|
max-width: 250px;
|
||||||
min-width: 200px;
|
min-width: 200px;
|
||||||
max-height: 256px;
|
max-height: 256px;
|
||||||
overflow: hidden;
|
// overflow: hidden;
|
||||||
background: rgba(4, 22, 65, 0.5);
|
background: rgba(4, 22, 65, 0.5);
|
||||||
border: 1px solid #0054ff;
|
border: 1px solid #0054ff;
|
||||||
color: rgba(161, 192, 255, 1);
|
color: rgba(161, 192, 255, 1);
|
||||||
@ -535,4 +549,7 @@ function loadMap(mapName, data) {
|
|||||||
width: 90px;
|
width: 90px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.rightBox {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -11,7 +11,13 @@
|
|||||||
<div class="a">地区</div>
|
<div class="a">地区</div>
|
||||||
<div class="b">实验室数量</div>
|
<div class="b">实验室数量</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="Object.keys(snapTree).length > 0" v-for="v in snapTree">
|
<div
|
||||||
|
v-if="Object.keys(snapTree).length > 0"
|
||||||
|
v-for="v in snapTree.slice(
|
||||||
|
(leftBoxPageNum - 1) * 5,
|
||||||
|
leftBoxPageNum * 5
|
||||||
|
)"
|
||||||
|
>
|
||||||
<div class="a">{{ v.name }}</div>
|
<div class="a">{{ v.name }}</div>
|
||||||
<div class="b">{{ v.count }}</div>
|
<div class="b">{{ v.count }}</div>
|
||||||
</div>
|
</div>
|
||||||
@ -19,6 +25,11 @@
|
|||||||
<div class="a">暂无</div>
|
<div class="a">暂无</div>
|
||||||
<div class="b">暂无</div>
|
<div class="b">暂无</div>
|
||||||
</div>
|
</div>
|
||||||
|
<RegionPagine
|
||||||
|
v-if="snapTree.length"
|
||||||
|
v-model:page="leftBoxPageNum"
|
||||||
|
:total="snapTree.length"
|
||||||
|
></RegionPagine>
|
||||||
</div>
|
</div>
|
||||||
<!-- <div class="rightBox">
|
<!-- <div class="rightBox">
|
||||||
<div class="head">
|
<div class="head">
|
||||||
@ -48,11 +59,12 @@ import {
|
|||||||
countEnterpriseByCity,
|
countEnterpriseByCity,
|
||||||
countEnterpriseByArea,
|
countEnterpriseByArea,
|
||||||
} from "@/api/website/home/index";
|
} from "@/api/website/home/index";
|
||||||
|
import RegionPagine from "./RegionPagine.vue";
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const loading = shallowRef(true);
|
const loading = shallowRef(true);
|
||||||
let treeData = [];
|
let treeData = [];
|
||||||
const snapTree = shallowRef([]);
|
const snapTree = shallowRef([]);
|
||||||
|
const leftBoxPageNum = ref(1);
|
||||||
|
|
||||||
const searchRegionData = async (code, level) => {
|
const searchRegionData = async (code, level) => {
|
||||||
if (level == "province") {
|
if (level == "province") {
|
||||||
@ -385,7 +397,7 @@ function loadMap(mapName, data) {
|
|||||||
borderColor: "#666666",
|
borderColor: "#666666",
|
||||||
borderWidth: 0.5,
|
borderWidth: 0.5,
|
||||||
label: {
|
label: {
|
||||||
show: true,
|
show: false,
|
||||||
textStyle: {
|
textStyle: {
|
||||||
color: "#333333",
|
color: "#333333",
|
||||||
},
|
},
|
||||||
@ -479,7 +491,7 @@ function loadMap(mapName, data) {
|
|||||||
max-width: 250px;
|
max-width: 250px;
|
||||||
min-width: 200px;
|
min-width: 200px;
|
||||||
max-height: 256px;
|
max-height: 256px;
|
||||||
overflow: hidden;
|
// overflow: hidden;
|
||||||
border: 1px solid #dcdcdc;
|
border: 1px solid #dcdcdc;
|
||||||
color: #666666;
|
color: #666666;
|
||||||
& > div {
|
& > div {
|
||||||
|
@ -11,14 +11,26 @@
|
|||||||
<div class="a">地区</div>
|
<div class="a">地区</div>
|
||||||
<div class="b">成果数量</div>
|
<div class="b">成果数量</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="Object.keys(snapTree).length > 0" v-for="v in snapTree">
|
<template v-if="snapTree.length > 0">
|
||||||
<div class="a">{{ v.name }}</div>
|
<div
|
||||||
<div class="b">{{ v.count }}</div>
|
v-for="v in snapTree.slice(
|
||||||
</div>
|
(leftBoxPageNum - 1) * 5,
|
||||||
|
leftBoxPageNum * 5
|
||||||
|
)"
|
||||||
|
>
|
||||||
|
<div class="a">{{ v.name }}</div>
|
||||||
|
<div class="b">{{ v.count }}</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<div class="a">暂无</div>
|
<div class="a">暂无</div>
|
||||||
<div class="b">暂无</div>
|
<div class="b">暂无</div>
|
||||||
</div>
|
</div>
|
||||||
|
<RegionPagine
|
||||||
|
v-if="snapTree.length"
|
||||||
|
v-model:page="leftBoxPageNum"
|
||||||
|
:total="snapTree.length"
|
||||||
|
></RegionPagine>
|
||||||
</div>
|
</div>
|
||||||
<div class="rightBox">
|
<div class="rightBox">
|
||||||
<div class="head">
|
<div class="head">
|
||||||
@ -49,14 +61,17 @@ import {
|
|||||||
} from "@/api/website/home/index";
|
} from "@/api/website/home/index";
|
||||||
import * as echarts from "echarts";
|
import * as echarts from "echarts";
|
||||||
// import { achievement } from "@/api/website/home/index";
|
// import { achievement } from "@/api/website/home/index";
|
||||||
|
import RegionPagine from "./RegionPagine.vue";
|
||||||
|
const leftBoxPageNum = ref(1);
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const loading = shallowRef(true);
|
const loading = shallowRef(true);
|
||||||
let treeData = {};
|
let treeData = {};
|
||||||
const snapTree = shallowRef({});
|
const snapTree = shallowRef([]);
|
||||||
const industryTree = shallowRef({});
|
const industryTree = shallowRef({});
|
||||||
|
|
||||||
const searchRegionData = async (code, level) => {
|
const searchRegionData = async (code, level) => {
|
||||||
|
console.log(1234343);
|
||||||
|
leftBoxPageNum.value = 1;
|
||||||
if (level == "province") {
|
if (level == "province") {
|
||||||
const provcode = code.substring(0, 2) + "0000";
|
const provcode = code.substring(0, 2) + "0000";
|
||||||
let data = {};
|
let data = {};
|
||||||
@ -93,7 +108,7 @@ const searchRegionData = async (code, level) => {
|
|||||||
} else {
|
} else {
|
||||||
if (Object.keys(treeData).length) {
|
if (Object.keys(treeData).length) {
|
||||||
industryTree.value = treeData.industry ?? {};
|
industryTree.value = treeData.industry ?? {};
|
||||||
snapTree.value = treeData.count ?? {};
|
snapTree.value = treeData.count ?? [];
|
||||||
return treeData.count.find((item) => item.code == code) || false;
|
return treeData.count.find((item) => item.code == code) || false;
|
||||||
} else {
|
} else {
|
||||||
const { count, industry } = await countAchievementByProvince();
|
const { count, industry } = await countAchievementByProvince();
|
||||||
@ -216,6 +231,7 @@ onMounted(() => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
function goBack() {
|
function goBack() {
|
||||||
|
leftBoxPageNum.value = 1;
|
||||||
state.isShowGoBack = false;
|
state.isShowGoBack = false;
|
||||||
loading.value = true;
|
loading.value = true;
|
||||||
state.district.search("中国", async (status, result) => {
|
state.district.search("中国", async (status, result) => {
|
||||||
@ -392,7 +408,7 @@ function loadMap(mapName, data) {
|
|||||||
borderColor: "#666666",
|
borderColor: "#666666",
|
||||||
borderWidth: 0.5,
|
borderWidth: 0.5,
|
||||||
label: {
|
label: {
|
||||||
show: true,
|
show: false,
|
||||||
textStyle: {
|
textStyle: {
|
||||||
color: "#333333",
|
color: "#333333",
|
||||||
},
|
},
|
||||||
@ -487,7 +503,7 @@ function loadMap(mapName, data) {
|
|||||||
max-width: 250px;
|
max-width: 250px;
|
||||||
min-width: 200px;
|
min-width: 200px;
|
||||||
max-height: 256px;
|
max-height: 256px;
|
||||||
overflow: hidden;
|
// overflow: hidden;
|
||||||
background: rgba(4, 22, 65, 0.5);
|
background: rgba(4, 22, 65, 0.5);
|
||||||
border: 1px solid #0054ff;
|
border: 1px solid #0054ff;
|
||||||
color: rgba(161, 192, 255, 1);
|
color: rgba(161, 192, 255, 1);
|
||||||
@ -513,4 +529,7 @@ function loadMap(mapName, data) {
|
|||||||
width: 90px;
|
width: 90px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.rightBox {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -11,14 +11,26 @@
|
|||||||
<div class="a">地区</div>
|
<div class="a">地区</div>
|
||||||
<div class="b">需求数量</div>
|
<div class="b">需求数量</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="Object.keys(snapTree).length > 0" v-for="v in snapTree">
|
<template v-if="snapTree.length > 0">
|
||||||
<div class="a">{{ v.name }}</div>
|
<div
|
||||||
<div class="b">{{ v.count }}</div>
|
v-for="v in snapTree.slice(
|
||||||
</div>
|
(leftBoxPageNum - 1) * 5,
|
||||||
|
leftBoxPageNum * 5
|
||||||
|
)"
|
||||||
|
>
|
||||||
|
<div class="a">{{ v.name }}</div>
|
||||||
|
<div class="b">{{ v.count }}</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<div class="a">暂无</div>
|
<div class="a">暂无</div>
|
||||||
<div class="b">暂无</div>
|
<div class="b">暂无</div>
|
||||||
</div>
|
</div>
|
||||||
|
<RegionPagine
|
||||||
|
v-if="snapTree.length"
|
||||||
|
v-model:page="leftBoxPageNum"
|
||||||
|
:total="snapTree.length"
|
||||||
|
></RegionPagine>
|
||||||
</div>
|
</div>
|
||||||
<div class="rightBox">
|
<div class="rightBox">
|
||||||
<div class="head">
|
<div class="head">
|
||||||
@ -48,15 +60,16 @@ import {
|
|||||||
countDemandByCity,
|
countDemandByCity,
|
||||||
countDemandByArea,
|
countDemandByArea,
|
||||||
} from "@/api/website/home/index";
|
} from "@/api/website/home/index";
|
||||||
|
import RegionPagine from "./RegionPagine.vue";
|
||||||
// import { demand } from "@/api/website/home/index";
|
// import { demand } from "@/api/website/home/index";
|
||||||
|
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const loading = shallowRef(true);
|
const loading = shallowRef(true);
|
||||||
|
|
||||||
let treeData = {};
|
let treeData = {};
|
||||||
const snapTree = shallowRef({});
|
const snapTree = shallowRef([]);
|
||||||
const industryTree = shallowRef({});
|
const industryTree = shallowRef({});
|
||||||
|
const leftBoxPageNum = ref(1);
|
||||||
const searchRegionData = async (code, level) => {
|
const searchRegionData = async (code, level) => {
|
||||||
if (level == "province") {
|
if (level == "province") {
|
||||||
const provcode = code.substring(0, 2) + "0000";
|
const provcode = code.substring(0, 2) + "0000";
|
||||||
@ -93,7 +106,7 @@ const searchRegionData = async (code, level) => {
|
|||||||
} else {
|
} else {
|
||||||
if (Object.keys(treeData).length) {
|
if (Object.keys(treeData).length) {
|
||||||
industryTree.value = treeData.industry ?? {};
|
industryTree.value = treeData.industry ?? {};
|
||||||
snapTree.value = treeData.count ?? {};
|
snapTree.value = treeData.count ?? [];
|
||||||
return treeData.count.find((item) => item.code == code) || false;
|
return treeData.count.find((item) => item.code == code) || false;
|
||||||
} else {
|
} else {
|
||||||
const { count, industry } = await countDemandByProvince();
|
const { count, industry } = await countDemandByProvince();
|
||||||
@ -403,7 +416,7 @@ function loadMap(mapName, data) {
|
|||||||
borderColor: "#666666",
|
borderColor: "#666666",
|
||||||
borderWidth: 0.5,
|
borderWidth: 0.5,
|
||||||
label: {
|
label: {
|
||||||
show: true,
|
show: false,
|
||||||
textStyle: {
|
textStyle: {
|
||||||
color: "#333333",
|
color: "#333333",
|
||||||
},
|
},
|
||||||
@ -497,7 +510,7 @@ function loadMap(mapName, data) {
|
|||||||
max-width: 250px;
|
max-width: 250px;
|
||||||
min-width: 200px;
|
min-width: 200px;
|
||||||
max-height: 256px;
|
max-height: 256px;
|
||||||
overflow: hidden;
|
// overflow: hidden;
|
||||||
border: 1px solid #dcdcdc;
|
border: 1px solid #dcdcdc;
|
||||||
color: #666666;
|
color: #666666;
|
||||||
& > div {
|
& > div {
|
||||||
@ -522,4 +535,13 @@ function loadMap(mapName, data) {
|
|||||||
width: 90px;
|
width: 90px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.rightBox {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
:deep(.pagine) {
|
||||||
|
.prev,
|
||||||
|
.next {
|
||||||
|
color: #000 !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -11,27 +11,38 @@
|
|||||||
<div class="a">地区</div>
|
<div class="a">地区</div>
|
||||||
<div class="b">企业数量</div>
|
<div class="b">企业数量</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="Object.keys(snapTree).length > 0" v-for="v in snapTree">
|
<template v-if="snapTree.length > 0">
|
||||||
<div class="a">{{ v.name }}</div>
|
<div
|
||||||
<div class="b">{{ v.count }}</div>
|
v-for="v in snapTree.slice(
|
||||||
</div>
|
(leftBoxPageNum - 1) * 5,
|
||||||
|
leftBoxPageNum * 5
|
||||||
|
)"
|
||||||
|
>
|
||||||
|
<div class="a">{{ v.name }}</div>
|
||||||
|
<div class="b">{{ v.count }}</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<div class="a">暂无</div>
|
<div class="a">暂无</div>
|
||||||
<div class="b">暂无</div>
|
<div class="b">暂无</div>
|
||||||
</div>
|
</div>
|
||||||
|
<RegionPagine
|
||||||
|
v-if="snapTree.length"
|
||||||
|
v-model:page="leftBoxPageNum"
|
||||||
|
:total="snapTree.length"
|
||||||
|
></RegionPagine>
|
||||||
</div>
|
</div>
|
||||||
<div class="rightBox">
|
<div class="rightBox">
|
||||||
<div class="head">
|
<div class="head">
|
||||||
<div class="a">领域</div>
|
<div class="a">领域</div>
|
||||||
<div class="b">企业数量</div>
|
<div class="b">企业数量</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<template v-if="Object.keys(industryTree).length > 0">
|
||||||
v-if="Object.keys(industryTree).length > 0"
|
<div v-for="(v, k) in industryTree">
|
||||||
v-for="(v, k) in industryTree"
|
<div class="a" :title="k">{{ k }}</div>
|
||||||
>
|
<div class="b">{{ v }}</div>
|
||||||
<div class="a" :title="k">{{ k }}</div>
|
</div>
|
||||||
<div class="b">{{ v }}</div>
|
</template>
|
||||||
</div>
|
|
||||||
<div v-else>
|
<div v-else>
|
||||||
<div class="a">暂无</div>
|
<div class="a">暂无</div>
|
||||||
<div class="b">暂无</div>
|
<div class="b">暂无</div>
|
||||||
@ -48,12 +59,14 @@ import {
|
|||||||
countEnterpriseByCity,
|
countEnterpriseByCity,
|
||||||
countEnterpriseByArea,
|
countEnterpriseByArea,
|
||||||
} from "@/api/website/home/index";
|
} from "@/api/website/home/index";
|
||||||
|
import RegionPagine from "./RegionPagine.vue";
|
||||||
// import { company } from "@/api/website/home/index";
|
// import { company } from "@/api/website/home/index";
|
||||||
|
|
||||||
|
const leftBoxPageNum = ref(1);
|
||||||
const { proxy } = getCurrentInstance();
|
const { proxy } = getCurrentInstance();
|
||||||
const loading = shallowRef(true);
|
const loading = shallowRef(true);
|
||||||
let treeData = {};
|
let treeData = {};
|
||||||
const snapTree = shallowRef({});
|
const snapTree = shallowRef([]);
|
||||||
const industryTree = shallowRef({});
|
const industryTree = shallowRef({});
|
||||||
|
|
||||||
const searchRegionData = async (code, level) => {
|
const searchRegionData = async (code, level) => {
|
||||||
@ -93,7 +106,7 @@ const searchRegionData = async (code, level) => {
|
|||||||
} else {
|
} else {
|
||||||
if (Object.keys(treeData).length) {
|
if (Object.keys(treeData).length) {
|
||||||
industryTree.value = treeData.industry ?? {};
|
industryTree.value = treeData.industry ?? {};
|
||||||
snapTree.value = treeData.count ?? {};
|
snapTree.value = treeData.count ?? [];
|
||||||
return treeData.count.find((item) => item.code == code) || false;
|
return treeData.count.find((item) => item.code == code) || false;
|
||||||
} else {
|
} else {
|
||||||
const { count, industry } = await countEnterpriseByProvince();
|
const { count, industry } = await countEnterpriseByProvince();
|
||||||
@ -406,7 +419,7 @@ function loadMap(mapName, data) {
|
|||||||
borderColor: "#666666",
|
borderColor: "#666666",
|
||||||
borderWidth: 0.5,
|
borderWidth: 0.5,
|
||||||
label: {
|
label: {
|
||||||
show: true,
|
show: false,
|
||||||
textStyle: {
|
textStyle: {
|
||||||
color: "#333333",
|
color: "#333333",
|
||||||
},
|
},
|
||||||
@ -501,7 +514,7 @@ function loadMap(mapName, data) {
|
|||||||
max-width: 250px;
|
max-width: 250px;
|
||||||
min-width: 200px;
|
min-width: 200px;
|
||||||
max-height: 256px;
|
max-height: 256px;
|
||||||
overflow: hidden;
|
// overflow: hidden;
|
||||||
background: rgba(4, 22, 65, 0.5);
|
background: rgba(4, 22, 65, 0.5);
|
||||||
border: 1px solid #0054ff;
|
border: 1px solid #0054ff;
|
||||||
color: rgba(161, 192, 255, 1);
|
color: rgba(161, 192, 255, 1);
|
||||||
@ -527,4 +540,7 @@ function loadMap(mapName, data) {
|
|||||||
width: 90px;
|
width: 90px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.rightBox {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -3,7 +3,8 @@
|
|||||||
<div class="wrap">
|
<div class="wrap">
|
||||||
<div class="img">
|
<div class="img">
|
||||||
<!-- <img :src="data.image" alt /> -->
|
<!-- <img :src="data.image" alt /> -->
|
||||||
<el-image :src="data.image" fit="fill"></el-image>
|
<!-- <el-image :src="data.image" fit="fill"></el-image> -->
|
||||||
|
<el-image :src="logo" fit="fill"></el-image>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<div class="tit">
|
<div class="tit">
|
||||||
@ -69,6 +70,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup name="ExpertItem">
|
<script setup name="ExpertItem">
|
||||||
|
import logo from "../../../../assets/logo/logo_small.png";
|
||||||
import wordcloud from "./wordcloud.vue";
|
import wordcloud from "./wordcloud.vue";
|
||||||
import { useRoute, useRouter } from "vue-router";
|
import { useRoute, useRouter } from "vue-router";
|
||||||
// import collectAndVisit from "./collectAndVisit.vue";
|
// import collectAndVisit from "./collectAndVisit.vue";
|
||||||
|
@ -43,14 +43,14 @@
|
|||||||
}}
|
}}
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
<div style="padding: 20px 0">
|
<!-- <div style="padding: 20px 0">
|
||||||
<div class="pointTit">手机号</div>
|
<div class="pointTit">手机号</div>
|
||||||
</div>
|
</div>
|
||||||
<section>
|
<section>
|
||||||
<div>
|
<div>
|
||||||
{{ state.expertDetail.mobile }}
|
{{ state.expertDetail.mobile }}
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section> -->
|
||||||
<div style="padding: 20px 0">
|
<div style="padding: 20px 0">
|
||||||
<div class="pointTit">主修专业</div>
|
<div class="pointTit">主修专业</div>
|
||||||
</div>
|
</div>
|
||||||
|
Reference in New Issue
Block a user