bugfixed
This commit is contained in:
@ -31,8 +31,8 @@
|
||||
|
||||
<script setup>
|
||||
import wordcloud from "./wordcloud.vue";
|
||||
import { useRouter } from "vue-router";
|
||||
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
const props = defineProps({
|
||||
data: {
|
||||
@ -50,7 +50,13 @@ function createdData(arr) {
|
||||
return l;
|
||||
}
|
||||
function handleDetail(id) {
|
||||
let routeData = router.resolve({ path: `/searchList/1/detail/${id}` });
|
||||
let routeData = router.resolve({
|
||||
path: `/searchList/enterprise/detail/${id}`,
|
||||
query: {
|
||||
keyword: route.query.keyword,
|
||||
queryType: route.query.queryType,
|
||||
},
|
||||
});
|
||||
window.open(routeData.href, "_blank");
|
||||
}
|
||||
</script>
|
||||
@ -62,7 +68,7 @@ function handleDetail(id) {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
img {
|
||||
:deep(.el-image) {
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
border-radius: 50%;
|
||||
|
@ -55,9 +55,9 @@ import { insertClientUser, updateEnterprise } from "@/api/admin/enterprise";
|
||||
// import { expert } from "@/api/identity/index";
|
||||
import EnterpriseForm from "@/views/components/EnterpriseForm";
|
||||
import { ElMessage } from "element-plus";
|
||||
import { useRouter } from "vue-router";
|
||||
// import { useRouter } from "vue-router";
|
||||
|
||||
const router = useRouter();
|
||||
// const router = useRouter();
|
||||
const data = reactive({
|
||||
PersonalInfoForm: {}, // 个人基本资料
|
||||
enterpriseInfoForm: {
|
||||
@ -97,7 +97,6 @@ const data = reactive({
|
||||
const { PersonalInfoForm, rules, enterpriseInfoForm } = toRefs(data);
|
||||
|
||||
const labelWidth = 140;
|
||||
// let enterpriseInfoForm = ref({});
|
||||
|
||||
// 获取基础信息用于回显
|
||||
const getBasicInfo = async () => {
|
||||
|
@ -125,6 +125,7 @@ const route = useRoute();
|
||||
const data = reactive({
|
||||
form: {
|
||||
check: [],
|
||||
status: 0,
|
||||
},
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
@ -202,9 +203,20 @@ function addCheck() {
|
||||
}
|
||||
}
|
||||
|
||||
onActivated(() => {
|
||||
onMounted(() => {
|
||||
formRef.value.resetFields();
|
||||
if (route.query.id) {
|
||||
getDemand({ id: route.query.id }).then((resp) => {
|
||||
if (resp.data.kinds) {
|
||||
resp.data.kinds.forEach((el, index) => {
|
||||
if (!checkList.find((item) => item.name == el)) {
|
||||
checkList.push({
|
||||
id: index,
|
||||
name: el,
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
form.value = resp.data;
|
||||
});
|
||||
}
|
||||
|
@ -20,7 +20,7 @@
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<!-- <el-checkbox label="0" @change="handleCheck">其他</el-checkbox> -->
|
||||
<el-form-item label="需求类别:">
|
||||
<el-form-item label="需求类别:" prop="kinds">
|
||||
<el-checkbox-group v-model="form.kinds">
|
||||
<el-checkbox
|
||||
v-for="item in checkList"
|
||||
@ -47,7 +47,6 @@
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="需求描述:" prop="introduce">
|
||||
<!-- <Editor v-model="form.add" :minHeight="150" /> -->
|
||||
<wangEditor
|
||||
v-model="form.introduce"
|
||||
width="100%"
|
||||
@ -57,11 +56,6 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<!-- <CityOptions
|
||||
v-model="form"
|
||||
:labelWidth="labelWidth"
|
||||
ref="cityForm"
|
||||
/> -->
|
||||
<FieldOptions
|
||||
v-model="form"
|
||||
:labelWidth="labelWidth"
|
||||
@ -161,9 +155,13 @@
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div :style="{ marginLeft: labelWidth + 'px' }">
|
||||
<!-- <div :style="{ marginLeft: labelWidth + 'px' }">
|
||||
<el-button @click="router.go(-1)">取消</el-button>
|
||||
<el-button type="primary" @click="submitForm">提交</el-button>
|
||||
</div> -->
|
||||
<div :style="{ marginLeft: labelWidth + 'px' }">
|
||||
<el-button type="primary" @click="submitForm(3)">保存草稿</el-button>
|
||||
<el-button type="primary" @click="submitForm(0)">提交审核</el-button>
|
||||
</div>
|
||||
</el-card>
|
||||
</div>
|
||||
@ -181,6 +179,7 @@ import {
|
||||
updateTechnologyDemand,
|
||||
insertTechnologyDemand,
|
||||
} from "@/api/admin/enterprise/demand";
|
||||
import { onMounted } from "vue";
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const data = reactive({
|
||||
@ -204,6 +203,9 @@ const data = reactive({
|
||||
commitUserName: [
|
||||
{ required: true, message: "需求提交人不能为空", trigger: "blur" },
|
||||
],
|
||||
kinds: [
|
||||
{ required: true, message: "至少选择一个需求类别", trigger: "change" },
|
||||
],
|
||||
budget: [{ required: true, message: "需求预算不能为空", trigger: "blur" }],
|
||||
deadline: [
|
||||
{
|
||||
@ -246,13 +248,14 @@ const formRef = ref(null);
|
||||
const fieldFormRef = ref(null);
|
||||
const directionsFormRef = ref(null);
|
||||
const checkInput = ref("");
|
||||
const submitForm = async () => {
|
||||
const submitForm = async (status) => {
|
||||
let formValid;
|
||||
try {
|
||||
formValid = await formRef.value.validate();
|
||||
} catch (error) {
|
||||
formValid = false;
|
||||
}
|
||||
form.value.status = status;
|
||||
const fieldFormValid = await fieldFormRef.value.validateForm();
|
||||
const directionsFormValid = await directionsFormRef.value.validateForm();
|
||||
if (formValid && fieldFormValid && directionsFormValid) {
|
||||
@ -303,16 +306,28 @@ function addCheck() {
|
||||
checkInput.value = "";
|
||||
}
|
||||
}
|
||||
onMounted(() => {
|
||||
formRef.value.resetFields();
|
||||
|
||||
if (route.query.id) {
|
||||
getTechnologyDemand({ id: route.query.id }).then((resp) => {
|
||||
form.value = resp.data;
|
||||
if (!form.value.kinds) {
|
||||
form.value.kinds = resp.data.kind?.split(",") ?? [];
|
||||
}
|
||||
if (!form.value.wants) {
|
||||
form.value.wants = resp.data.want?.split(",") ?? [];
|
||||
}
|
||||
});
|
||||
}
|
||||
if (route.query.id) {
|
||||
getTechnologyDemand({ id: route.query.id }).then((resp) => {
|
||||
form.value = resp.data;
|
||||
|
||||
if (!form.value.kinds) {
|
||||
form.value.kinds = resp.data.kind?.split(",") ?? [];
|
||||
form.value.kinds.forEach((el, index) => {
|
||||
if (!checkList.find((item) => item.name == el)) {
|
||||
checkList.push({
|
||||
id: index,
|
||||
name: el,
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
if (!form.value.wants) {
|
||||
form.value.wants = resp.data.want?.split(",") ?? [];
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
@ -1 +1,147 @@
|
||||
<template></template>
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-radio-group
|
||||
v-model="queryParams.searchType"
|
||||
size="small"
|
||||
@change="handleQuery"
|
||||
>
|
||||
<el-badge :value="12" class="count-badge" :hidden="true">
|
||||
<el-radio-button label="1">企业</el-radio-button>
|
||||
</el-badge>
|
||||
<el-radio-button label="2">成果</el-radio-button>
|
||||
<el-radio-button label="4">专利</el-radio-button>
|
||||
<el-radio-button label="5">专家</el-radio-button>
|
||||
<el-radio-button label="6">服务需求</el-radio-button>
|
||||
<el-radio-button label="7">技术需求</el-radio-button>
|
||||
<!-- <el-radio-button label="4">实验室</el-radio-button> -->
|
||||
</el-radio-group>
|
||||
|
||||
<div v-if="dataList.length" style="margin-top: 20px" v-loading="loading">
|
||||
<section v-for="item in dataList" :key="item.id">
|
||||
<div style="border: 1px solid #dcdcdc; margin-bottom: 10px">
|
||||
<enterpriseItem
|
||||
:data="item"
|
||||
v-if="queryParams.searchType == 1"
|
||||
></enterpriseItem>
|
||||
<AchievementItem
|
||||
:data="item"
|
||||
v-else-if="queryParams.searchType == 2"
|
||||
></AchievementItem>
|
||||
<gainItem
|
||||
:data="item"
|
||||
v-else-if="queryParams.searchType == 4"
|
||||
></gainItem>
|
||||
<expertItem
|
||||
:data="item"
|
||||
v-else-if="queryParams.searchType == 5"
|
||||
></expertItem>
|
||||
<serviceDemandItem
|
||||
:data="item"
|
||||
v-else-if="queryParams.searchType == 6"
|
||||
></serviceDemandItem>
|
||||
<TechnologyDemandItem
|
||||
:data="item"
|
||||
v-else-if="queryParams.searchType == 7"
|
||||
></TechnologyDemandItem>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
<el-empty v-else></el-empty>
|
||||
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup name="Post">
|
||||
import { search } from "@/api/website/home/index";
|
||||
import gainItem from "@/views/website/searchList/components/gainItem.vue";
|
||||
import expertItem from "@/views/website/searchList/components/expertItem.vue";
|
||||
import serviceDemandItem from "@/views/website/searchList/components/serviceDemandItem.vue";
|
||||
import enterpriseItem from "../../components/enterpriseItem.vue";
|
||||
import TechnologyDemandItem from "@/views/website/searchList/components/technologyDemandItem.vue";
|
||||
import AchievementItem from "@/views/website/searchList/components/achievementItem.vue";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import { watch } from "vue";
|
||||
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
|
||||
const dataList = ref([]);
|
||||
const loading = ref(true);
|
||||
const total = ref(0);
|
||||
|
||||
const queryType = computed(() => {
|
||||
if (queryParams.value.searchType == 1) {
|
||||
return 2;
|
||||
} else if (queryParams.value.searchType == 2) {
|
||||
return 1;
|
||||
} else if (queryParams.value.searchType == 4) {
|
||||
return 2;
|
||||
} else if (queryParams.value.searchType == 5) {
|
||||
return 2;
|
||||
} else if (queryParams.value.searchType == 6) {
|
||||
return 1;
|
||||
} else if (queryParams.value.searchType == 7) {
|
||||
return 1;
|
||||
}
|
||||
});
|
||||
|
||||
// router.replace({
|
||||
// path: "/extension/results",
|
||||
// query: {
|
||||
// keyword: route.query.keyword,
|
||||
// queryType: queryType,
|
||||
// },
|
||||
// });
|
||||
// watch(
|
||||
// queryType,
|
||||
// (val) => {
|
||||
// console.log(val);
|
||||
// },
|
||||
// { immediate: true }
|
||||
// );
|
||||
const data = reactive({
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
query: route.query.keyword,
|
||||
searchType: "1",
|
||||
queryType: queryType,
|
||||
},
|
||||
});
|
||||
|
||||
const { queryParams } = toRefs(data);
|
||||
|
||||
/** 查询列表 */
|
||||
async function getList() {
|
||||
const resp = await search(queryParams.value);
|
||||
dataList.value = resp.list;
|
||||
total.value = resp.total;
|
||||
loading.value = false;
|
||||
}
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
queryParams.value.pageNum = 1;
|
||||
getList();
|
||||
}
|
||||
|
||||
handleQuery();
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.btn_info {
|
||||
height: 35px;
|
||||
line-height: 35px;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
background-color: #787878;
|
||||
}
|
||||
:deep(.count-badge) {
|
||||
z-index: 99;
|
||||
}
|
||||
</style>
|
||||
|
@ -17,9 +17,9 @@
|
||||
size="small"
|
||||
@change="handleQuery"
|
||||
>
|
||||
<el-radio-button :label="1">待受理</el-radio-button>
|
||||
<el-radio-button :label="2">已受理</el-radio-button>
|
||||
<el-radio-button :label="3">已结束</el-radio-button>
|
||||
<el-radio-button :label="0">待受理</el-radio-button>
|
||||
<el-radio-button :label="1">已受理</el-radio-button>
|
||||
<el-radio-button :label="2">已结束</el-radio-button>
|
||||
</el-radio-group>
|
||||
|
||||
<el-table v-loading="loading" :data="dataList" style="margin-top: 20px">
|
||||
@ -45,7 +45,7 @@
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
v-if="queryParams.type == 3"
|
||||
v-if="queryParams.type == 2"
|
||||
size="small"
|
||||
type="text"
|
||||
icon="Delete"
|
||||
@ -53,7 +53,7 @@
|
||||
>删除</el-button
|
||||
>
|
||||
<el-button
|
||||
v-if="queryParams.type == 1"
|
||||
v-if="queryParams.type == 0"
|
||||
size="small"
|
||||
type="text"
|
||||
icon="Close"
|
||||
@ -61,7 +61,7 @@
|
||||
>取消发布</el-button
|
||||
>
|
||||
<el-button
|
||||
v-if="queryParams.type != 3"
|
||||
v-if="queryParams.type != 2"
|
||||
size="small"
|
||||
type="text"
|
||||
icon="View"
|
||||
|
@ -13,10 +13,10 @@
|
||||
size="small"
|
||||
@change="handleQuery"
|
||||
>
|
||||
<el-radio-button :label="1">已发布</el-radio-button>
|
||||
<el-radio-button :label="0">待审核</el-radio-button>
|
||||
<el-radio-button :label="1">已发布</el-radio-button>
|
||||
<el-radio-button :label="2">已驳回</el-radio-button>
|
||||
<!-- <el-radio-button :label="3">草稿箱</el-radio-button> -->
|
||||
<el-radio-button :label="3">草稿箱</el-radio-button>
|
||||
</el-radio-group>
|
||||
|
||||
<el-table v-loading="loading" :data="dataList" style="margin-top: 20px">
|
||||
@ -54,13 +54,13 @@
|
||||
<template #default="{ row }">
|
||||
<router-link
|
||||
:to="{ path: './releaseTechnology', query: { id: row.id } }"
|
||||
v-if="queryParams.status == 0"
|
||||
v-if="queryParams.status == 3"
|
||||
>
|
||||
<el-button size="small" type="text" icon="Edit">编辑</el-button>
|
||||
</router-link>
|
||||
|
||||
<el-button
|
||||
v-if="queryParams.status != 1"
|
||||
v-if="queryParams.status != 0"
|
||||
size="small"
|
||||
type="text"
|
||||
icon="Delete"
|
||||
@ -68,15 +68,15 @@
|
||||
>删除</el-button
|
||||
>
|
||||
<el-button
|
||||
v-if="queryParams.status == 2"
|
||||
v-if="queryParams.status == 1"
|
||||
size="small"
|
||||
type="text"
|
||||
icon="View"
|
||||
@click="handleResults(row.id)"
|
||||
@click="handleResults(row)"
|
||||
>查看匹配结果</el-button
|
||||
>
|
||||
<el-button
|
||||
v-if="queryParams.status == 1"
|
||||
v-if="queryParams.status == 0"
|
||||
size="small"
|
||||
type="text"
|
||||
icon="Close"
|
||||
@ -194,8 +194,13 @@ function handleShelf(row) {
|
||||
})
|
||||
.catch(() => {});
|
||||
}
|
||||
function handleResults(id) {
|
||||
router.push({ path: "./results" });
|
||||
function handleResults(row) {
|
||||
router.push({
|
||||
path: "./results",
|
||||
query: {
|
||||
keyword: row.title,
|
||||
},
|
||||
});
|
||||
}
|
||||
getList();
|
||||
</script>
|
||||
|
@ -102,9 +102,10 @@ import {
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import { onActivated } from "vue";
|
||||
import { useRouter } from "vue-router";
|
||||
import useUserStore from "@/store/modules/user";
|
||||
|
||||
const router = useRouter();
|
||||
|
||||
const userStore = useUserStore();
|
||||
const dataList = ref([]);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
|
@ -35,7 +35,7 @@ const { form } = toRefs(data);
|
||||
const releaseFormRef = ref();
|
||||
const submitForm = async (is_submit) => {
|
||||
form.value["status"] = is_submit;
|
||||
console.log(await releaseFormRef.value.validateForm());
|
||||
// console.log(await releaseFormRef.value.validateForm());
|
||||
const isValid = await releaseFormRef.value.validateForm();
|
||||
if (isValid) {
|
||||
if (route.query.id) {
|
||||
|
@ -5,7 +5,9 @@
|
||||
size="small"
|
||||
@change="handleQuery"
|
||||
>
|
||||
<el-radio-button label="1">企业</el-radio-button>
|
||||
<el-badge :value="12" class="count-badge" :hidden="true">
|
||||
<el-radio-button label="1">企业</el-radio-button>
|
||||
</el-badge>
|
||||
<el-radio-button label="2">成果</el-radio-button>
|
||||
<el-radio-button label="4">专利</el-radio-button>
|
||||
<el-radio-button label="5">专家</el-radio-button>
|
||||
@ -101,10 +103,10 @@ import serviceDemandItem from "@/views/website/searchList/components/serviceDema
|
||||
import enterpriseItem from "../../components/enterpriseItem.vue";
|
||||
import TechnologyDemandItem from "@/views/website/searchList/components/technologyDemandItem.vue";
|
||||
import AchievementItem from "@/views/website/searchList/components/achievementItem.vue";
|
||||
import { useRoute } from "vue-router";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
|
||||
const route = useRoute();
|
||||
|
||||
const router = useRouter();
|
||||
const dataList = ref([]);
|
||||
const loading = ref(true);
|
||||
const total = ref(0);
|
||||
@ -137,6 +139,19 @@ const data = reactive({
|
||||
|
||||
const { queryParams } = toRefs(data);
|
||||
|
||||
watch(
|
||||
queryType,
|
||||
(val) => {
|
||||
router.replace({
|
||||
path: route.path,
|
||||
query: {
|
||||
keyword: route.query.keyword,
|
||||
queryType: val,
|
||||
},
|
||||
});
|
||||
},
|
||||
{ immediate: true }
|
||||
);
|
||||
/** 查询列表 */
|
||||
async function getList() {
|
||||
const resp = await search(queryParams.value);
|
||||
@ -175,4 +190,7 @@ handleQuery();
|
||||
color: #fff;
|
||||
background-color: #787878;
|
||||
}
|
||||
:deep(.count-badge) {
|
||||
z-index: 99;
|
||||
}
|
||||
</style>
|
||||
|
168
src/views/admin/enterprise/index.vue
Normal file
168
src/views/admin/enterprise/index.vue
Normal file
@ -0,0 +1,168 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<div class="card-panel surplus-currency" :class="flag ? 'vip-box' : ''">
|
||||
<div class="_tit">
|
||||
<span style="visibility: hidden"> 会员banner图 </span>
|
||||
<div class="fr" v-if="flag">
|
||||
<div class="text-right">
|
||||
{{ vipData.vipType == 1 ? "VIP" : "SVIP" }}
|
||||
</div>
|
||||
<div class="text-right">续期</div>
|
||||
<div>升级VIP</div>
|
||||
</div>
|
||||
<div class="text-right" style="margin-top: 50px" v-if="flag">
|
||||
会员到期时间:{{ vipData.expireTime }}
|
||||
</div>
|
||||
</div>
|
||||
<span
|
||||
class="pointer"
|
||||
style="font-size: 14px"
|
||||
v-if="flag"
|
||||
@click="vipBenefits"
|
||||
>
|
||||
查看会员权益
|
||||
</span>
|
||||
<p class="text-center pointer" v-else>开通VIP</p>
|
||||
</div>
|
||||
<!--
|
||||
<div class="card-panel surplus-currency">
|
||||
<span style="margin-right: 50px; font-size: 16px; font-weight: 700"
|
||||
>剩余创新币:98</span
|
||||
>
|
||||
<el-button class="x_btns">创新币充值</el-button>
|
||||
</div> -->
|
||||
<el-card style="margin-top: 20px">
|
||||
<template #header>
|
||||
<div>快捷功能</div>
|
||||
</template>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="4">
|
||||
<router-link to="/extension/release">
|
||||
<div class="menu-item">
|
||||
<el-avatar :icon="Box" />
|
||||
<div class="title">发布产品</div>
|
||||
</div>
|
||||
</router-link>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<router-link to="/demand/releaseService">
|
||||
<div class="menu-item">
|
||||
<el-avatar :icon="Help" />
|
||||
<div class="title">发布服务需求</div>
|
||||
</div>
|
||||
</router-link>
|
||||
</el-col>
|
||||
<el-col :span="4">
|
||||
<router-link to="/demand/releaseTechnology">
|
||||
<div class="menu-item">
|
||||
<el-avatar :icon="Goods" />
|
||||
<div class="title">发布技术需求</div>
|
||||
</div>
|
||||
</router-link>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
<!-- <el-card style="margin-top: 20px">
|
||||
<template #header>
|
||||
<div>快捷功能</div>
|
||||
</template>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="3">
|
||||
<router-link to="/extension/release">
|
||||
<el-card shadow="never" class="text-center pointer">
|
||||
发布产品
|
||||
</el-card>
|
||||
</router-link>
|
||||
</el-col>
|
||||
<el-col :span="21">
|
||||
<el-card shadow="never" class="text-center">文字简介</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20" class="mt20">
|
||||
<el-col :span="3">
|
||||
<router-link to="/demand/released">
|
||||
<el-card shadow="never" class="text-center pointer">
|
||||
发布需求
|
||||
</el-card>
|
||||
</router-link>
|
||||
</el-col>
|
||||
<el-col :span="21">
|
||||
<el-card shadow="never" class="text-center">(技术需求)</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card> -->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { reactive, ref, toRefs } from "vue";
|
||||
import { getInfo } from "@/api/login";
|
||||
import { useRouter } from "vue-router";
|
||||
import { Box, Help, Goods } from "@element-plus/icons-vue";
|
||||
const router = useRouter();
|
||||
const flag = ref(false);
|
||||
// const vip
|
||||
let data = reactive({
|
||||
vipData: {},
|
||||
});
|
||||
const { vipData } = toRefs(data);
|
||||
const getVipData = async () => {
|
||||
const { data } = await getInfo();
|
||||
if (data.vip) {
|
||||
flag.value = true;
|
||||
vipData.value = data.vip;
|
||||
} else {
|
||||
flag.value = false;
|
||||
}
|
||||
};
|
||||
|
||||
getVipData();
|
||||
const vipBenefits = () => {
|
||||
router.push({
|
||||
path: "/account/joinMembership",
|
||||
});
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
:deep(el-card__header) {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
div {
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
}
|
||||
}
|
||||
.surplus-currency {
|
||||
background-image: url("@/assets/index_banner.png");
|
||||
margin-bottom: 20px;
|
||||
height: 150px;
|
||||
color: white;
|
||||
background-color: #f2f2f2;
|
||||
padding: 20px 50px;
|
||||
._tit {
|
||||
font-size: 24px;
|
||||
font-weight: 700;
|
||||
color: #bebebe;
|
||||
div {
|
||||
font-size: 18px;
|
||||
// color: #000;
|
||||
}
|
||||
}
|
||||
}
|
||||
.vip-box {
|
||||
height: auto;
|
||||
// background-color: yellow;
|
||||
}
|
||||
.menu-item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
:deep(.el-avatar--icon) {
|
||||
background-color: #409eff;
|
||||
}
|
||||
.title {
|
||||
margin-top: 20px;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -17,6 +17,7 @@
|
||||
<el-form-item label="手机:" prop="mobile">
|
||||
<el-input
|
||||
v-model="PersonalInfoForm.mobile"
|
||||
maxlength="11"
|
||||
placeholder="请输入手机号"
|
||||
/>
|
||||
</el-form-item>
|
||||
@ -51,7 +52,7 @@
|
||||
</template>
|
||||
<script setup>
|
||||
// import { expert } from "@/api/identity/index";
|
||||
import { getInfo } from "@/api/login";
|
||||
import { getInfo } from "../../../../api/admin/expert/account";
|
||||
import { insertClientUser } from "@/api/admin/enterprise";
|
||||
import { updateExpert } from "@/api/admin/expert/account";
|
||||
import ExpertForm from "@/views/components/ExpertForm";
|
||||
@ -101,8 +102,13 @@ const labelWidth = 140;
|
||||
// 获取基础信息用于回显
|
||||
const getBasicInfo = async () => {
|
||||
const { data } = await getInfo();
|
||||
if (data.casExpert) {
|
||||
if (data.casExpert.research)
|
||||
data.casExpert.researchs = data.casExpert.research?.split(",") ?? [];
|
||||
if (data.casExpert.area) data.casExpert.district = data.casExpert.area;
|
||||
}
|
||||
PersonalInfoForm.value = data.user ?? {};
|
||||
expertForm.value = data.enterprise ?? {};
|
||||
expertForm.value = data.casExpert ?? {};
|
||||
};
|
||||
getBasicInfo();
|
||||
|
||||
@ -129,9 +135,10 @@ const submitPersonalInfo = async () => {
|
||||
async function submitExpertForm(status) {
|
||||
const valid = await expertFormRef.value.validateForm();
|
||||
if (valid) {
|
||||
expertForm.value.area = expertForm.value.district;
|
||||
updateExpert(expertForm.value).then((res) => {
|
||||
ElMessage.success("新增成功");
|
||||
router.back();
|
||||
ElMessage.success("修改成功");
|
||||
// router.back();
|
||||
});
|
||||
} else {
|
||||
console.log("校验未通过");
|
||||
|
@ -23,19 +23,29 @@
|
||||
show-overflow-tooltip
|
||||
width="200"
|
||||
/>
|
||||
<el-table-column label="关联论文" align="center" prop="paper_title">
|
||||
<template #default="scope">
|
||||
<el-table-column
|
||||
label="关联论文"
|
||||
align="center"
|
||||
prop="paperStr"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<!-- <template #default="scope">
|
||||
<div v-for="(item, index) in scope.row.paper_title" :key="index">
|
||||
<div class="ellipsis" v-if="index <= 2">{{ item }}</div>
|
||||
</div>
|
||||
</template>
|
||||
</template> -->
|
||||
</el-table-column>
|
||||
<el-table-column label="关联专利" align="center" prop="patent_title">
|
||||
<template #default="scope">
|
||||
<el-table-column
|
||||
label="关联专利"
|
||||
align="center"
|
||||
prop="patentStr"
|
||||
show-overflow-tooltip
|
||||
>
|
||||
<!-- <template #default="scope">
|
||||
<div v-for="(item, index) in scope.row.patent_title" :key="index">
|
||||
<div class="ellipsis text-left" v-if="index <= 2">{{ item }}</div>
|
||||
</div>
|
||||
</template>
|
||||
</template> -->
|
||||
</el-table-column>
|
||||
<el-table-column label="创建日期" align="center" prop="created_at">
|
||||
<template #default="scope">
|
||||
@ -61,7 +71,7 @@
|
||||
size="small"
|
||||
type="text"
|
||||
icon="Delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
@click="handleDelete(scope.row.id)"
|
||||
>删除</el-button
|
||||
>
|
||||
</template>
|
||||
@ -107,17 +117,18 @@
|
||||
v-for="item in paperOptions"
|
||||
:key="item.id"
|
||||
:label="item.title"
|
||||
:value="item"
|
||||
:value="item.id"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="关联专利:" prop="patents">
|
||||
<el-select
|
||||
@change="changePattent"
|
||||
style="width: 100%"
|
||||
v-model="form.patents"
|
||||
value-key="id"
|
||||
multiple
|
||||
value-key="id"
|
||||
filterable
|
||||
remote
|
||||
reserve-keyword
|
||||
@ -130,7 +141,7 @@
|
||||
v-for="item in patentOptions"
|
||||
:key="item.id"
|
||||
:label="item.title"
|
||||
:value="item"
|
||||
:value="item.id"
|
||||
>
|
||||
</el-option>
|
||||
</el-select>
|
||||
@ -155,8 +166,17 @@
|
||||
// } from "@/api/admin/expert/demand";
|
||||
// 专利,论文
|
||||
// import { patentSelect, paperSelect } from "@/api/admin/expert/technology";
|
||||
import {
|
||||
getExpertCooperateEnterpriseList,
|
||||
insertExpertCooperateEnterprise,
|
||||
updateExpertCooperateEnterprise,
|
||||
deleteExpertCooperateEnterpriseByIds,
|
||||
} from "@/api/admin/expert/demand";
|
||||
import { search } from "@/api/website/home";
|
||||
import dayjs from "dayjs";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import { paperList } from "@/api/admin/expert/technology";
|
||||
|
||||
// const router = useRouter();
|
||||
// const { proxy } = getCurrentInstance();
|
||||
|
||||
@ -170,8 +190,8 @@ const title = ref("");
|
||||
const data = reactive({
|
||||
form: {},
|
||||
queryParams: {
|
||||
page_num: 1,
|
||||
page_size: 10,
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
mode: 1,
|
||||
},
|
||||
rules: {
|
||||
@ -197,14 +217,15 @@ const data = reactive({
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
// 论文
|
||||
const paperOptions = ref([]);
|
||||
// const paperStr = ref("");
|
||||
const paperSelectLoading = ref(false);
|
||||
const formRef = ref();
|
||||
const paperMethod = (title) => {
|
||||
if (title) {
|
||||
paperSelectLoading.value = true;
|
||||
paperSelect({ title }).then((res) => {
|
||||
paperList({ title, pageNum: 1, pageSize: 10 }).then((res) => {
|
||||
paperSelectLoading.value = false;
|
||||
paperOptions.value = res.data;
|
||||
paperOptions.value = res.rows;
|
||||
});
|
||||
} else {
|
||||
paperOptions.value = [];
|
||||
@ -216,9 +237,15 @@ const patentSelectLoading = ref(false);
|
||||
const patentMethod = (title) => {
|
||||
if (title) {
|
||||
patentSelectLoading.value = true;
|
||||
patentSelect({ title }).then((res) => {
|
||||
search({
|
||||
searchType: 4,
|
||||
queryType: 1,
|
||||
query: title,
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
}).then((res) => {
|
||||
patentSelectLoading.value = false;
|
||||
patentOptions.value = res.data;
|
||||
patentOptions.value = res.list;
|
||||
});
|
||||
} else {
|
||||
patentOptions.value = [];
|
||||
@ -226,8 +253,16 @@ const patentMethod = (title) => {
|
||||
};
|
||||
|
||||
/** 查询数据列表 */
|
||||
function getList() {
|
||||
async function getList() {
|
||||
loading.value = true;
|
||||
try {
|
||||
const resp = await getExpertCooperateEnterpriseList(queryParams.value);
|
||||
dataList.value = resp.rows;
|
||||
total.value = resp.total;
|
||||
loading.value = false;
|
||||
} catch (error) {
|
||||
loading.value = false;
|
||||
}
|
||||
// enterprise(queryParams.value).then((response) => {
|
||||
// response.data.data.map((item) => {
|
||||
// item.paper_title = item.paper_title.split("&&");
|
||||
@ -237,13 +272,17 @@ function getList() {
|
||||
// total.value = response.data.count;
|
||||
// loading.value = false;
|
||||
// });
|
||||
loading.value = false;
|
||||
}
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
queryParams.value.pageNum = 1;
|
||||
getList();
|
||||
}
|
||||
|
||||
const changePattent = (val) => {
|
||||
console.log(12313);
|
||||
console.log(val);
|
||||
};
|
||||
/** 重置按钮操作 */
|
||||
// function resetQuery() {
|
||||
// // if()
|
||||
@ -254,7 +293,7 @@ function handleQuery() {
|
||||
function handleDelete(id) {
|
||||
ElMessageBox.confirm('是否确认删除数据编号为"' + id + '"的数据项?')
|
||||
.then(function () {
|
||||
return enterpriseDelete({ id: id });
|
||||
return deleteExpertCooperateEnterpriseByIds(id);
|
||||
})
|
||||
.then(() => {
|
||||
getList();
|
||||
@ -288,20 +327,39 @@ function handleUpdate(row) {
|
||||
let formData = Object.assign({}, row);
|
||||
let papers = [];
|
||||
let patents = [];
|
||||
formData.papers.map((item, index) => {
|
||||
formData.papers = row.paper ? row.paper.split(",") : [];
|
||||
formData.patents = row.patent ? row.patent.split(",") : [];
|
||||
|
||||
//TODO: // formData.papers.map((item, index) => {
|
||||
//TODO: // papers.push({
|
||||
//TODO: // id: item,
|
||||
//TODO: // title: formData.paper_title[index],
|
||||
//TODO: // });
|
||||
//TODO: // });
|
||||
//TODO: // formData.patents.map((item, index) => {
|
||||
//TODO: // patents.push({
|
||||
//TODO: // id: item,
|
||||
//TODO: // title: formData.patent_title[index],
|
||||
//TODO: // });
|
||||
//TODO: // });
|
||||
const paperStrs = row.paperStr ? row.paperStr.split(",") : [];
|
||||
formData.papers.forEach((el, index) => {
|
||||
papers.push({
|
||||
id: item,
|
||||
title: formData.paper_title[index],
|
||||
id: el,
|
||||
title: paperStrs[index],
|
||||
});
|
||||
});
|
||||
formData.patents.map((item, index) => {
|
||||
|
||||
const patentStrs = row.patentStr ? row.patentStr.split(",") : [];
|
||||
formData.patents.forEach((el, index) => {
|
||||
patents.push({
|
||||
id: item,
|
||||
title: formData.patent_title[index],
|
||||
id: el,
|
||||
title: patentStrs[index],
|
||||
});
|
||||
});
|
||||
paperOptions.value = formData.papers = papers;
|
||||
patentOptions.value = formData.patents = patents;
|
||||
|
||||
paperOptions.value = papers;
|
||||
patentOptions.value = patents;
|
||||
form.value = formData;
|
||||
open.value = true;
|
||||
title.value = "修改数据";
|
||||
@ -314,25 +372,28 @@ function handleUpdate(row) {
|
||||
function submitForm() {
|
||||
formRef.value.validate((valid) => {
|
||||
if (valid) {
|
||||
let formData = Object.assign({}, form.value);
|
||||
let papers = [];
|
||||
let patents = [];
|
||||
formData.papers.map((item) => {
|
||||
papers.push(item.id);
|
||||
});
|
||||
formData.patents.map((item) => {
|
||||
patents.push(item.id);
|
||||
});
|
||||
formData.papers = papers;
|
||||
formData.patents = patents;
|
||||
// let formData = Object.assign({}, form.value);
|
||||
|
||||
// let papers = [];
|
||||
// let patents = [];
|
||||
// formData.papers.map((item) => {
|
||||
// papers.push(item.id);
|
||||
// });
|
||||
// formData.patents.map((item) => {
|
||||
// patents.push(item.id);
|
||||
// });
|
||||
// formData.papers = papers;
|
||||
// formData.patents = patents;
|
||||
form.value.patent = form.value.patents.join(",");
|
||||
form.value.paper = form.value.papers.join(",");
|
||||
if (form.value.id != undefined) {
|
||||
enterpriseEdit(formData).then((response) => {
|
||||
updateExpertCooperateEnterprise(form.value).then((response) => {
|
||||
ElMessage.success("修改成功");
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
} else {
|
||||
enterpriseAdd(formData).then((response) => {
|
||||
insertExpertCooperateEnterprise(form.value).then((response) => {
|
||||
ElMessage.success("新增成功");
|
||||
open.value = false;
|
||||
getList();
|
||||
|
@ -117,6 +117,7 @@ import { useRoute, useRouter } from "vue-router";
|
||||
const data = reactive({
|
||||
formData: {
|
||||
check: [],
|
||||
status: 0,
|
||||
},
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
@ -176,7 +177,7 @@ function submitForm() {
|
||||
formRef.value.validate(async (valid) => {
|
||||
const cityFormValid = cityFormRef.value.validateForm(); // 城市
|
||||
if (valid && cityFormValid) {
|
||||
console.log(formData.value);
|
||||
// console.log(formData.value);
|
||||
if (formData.value.id) {
|
||||
// updatePost(form.value).then((response) => {
|
||||
// proxy.$modal.msgSuccess("修改成功");
|
||||
|
@ -17,9 +17,9 @@
|
||||
size="small"
|
||||
@change="handleQuery"
|
||||
>
|
||||
<el-radio-button :label="1">待受理</el-radio-button>
|
||||
<el-radio-button :label="2">已受理</el-radio-button>
|
||||
<el-radio-button :label="3">已结束</el-radio-button>
|
||||
<el-radio-button :label="0">待受理</el-radio-button>
|
||||
<el-radio-button :label="1">已受理</el-radio-button>
|
||||
<el-radio-button :label="2">已结束</el-radio-button>
|
||||
</el-radio-group>
|
||||
|
||||
<el-table v-loading="loading" :data="dataList" style="margin-top: 20px">
|
||||
|
@ -57,7 +57,7 @@
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<!-- province--city--district -->
|
||||
<el-table-column label="所属领域" prop="territory" />
|
||||
<el-table-column label="所属领域" prop="territoryStr" />
|
||||
<el-table-column label="联系人" prop="contactUser" />
|
||||
<el-table-column label="联系电话" prop="contactPhone" />
|
||||
<!-- <el-table-column label="创建日期" align="center" prop="created_at">
|
||||
@ -117,13 +117,15 @@
|
||||
<el-form-item label="联系电话:">
|
||||
<el-input v-model="form.contactPhone" placeholder="默认专家电话" />
|
||||
</el-form-item>
|
||||
|
||||
<div class="hide_required">
|
||||
<el-form-item label="所在地">
|
||||
<el-input v-model="form.address" placeholder="请输入所在地" />
|
||||
</el-form-item>
|
||||
<!-- <div class="hide_required">
|
||||
<CityOptions v-model="form" :labelWidth="100" :is_required="false" />
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<div class="hide_required">
|
||||
<FieldSingle v-model="form" :labelWidth="100" :is_required="false" />
|
||||
<FieldSingle v-model="form" :labelWidth="100" />
|
||||
</div>
|
||||
|
||||
<el-form-item label="合作内容:" prop="content">
|
||||
@ -248,14 +250,18 @@ function handleUpdate(row) {
|
||||
reset();
|
||||
form.value = cloneDeep(row);
|
||||
form.value.industrys =
|
||||
form.value.industrys?.split(",").filter((el) => el != "") ?? [];
|
||||
form.value.territory
|
||||
?.split("-")
|
||||
.filter((el) => el != "")
|
||||
.map((el) => parseInt(el)) ?? [];
|
||||
showEditDialog.value = true;
|
||||
title.value = "修改数据";
|
||||
}
|
||||
|
||||
/** 提交按钮 */
|
||||
function submitForm() {
|
||||
formRef.value.validate(async (valid) => {
|
||||
form.value.territory = form.value.industrys.join(",");
|
||||
form.value.territory = form.value.industrys.join("-");
|
||||
if (valid) {
|
||||
if (form.value.id) {
|
||||
await updateExpertWantEnterprise(form.value);
|
||||
|
@ -1,6 +1,6 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<div class="card-panel surplus-currency" :class="flag ? 'vip-box' : ''">
|
||||
<!-- <div class="card-panel surplus-currency" :class="flag ? 'vip-box' : ''">
|
||||
<div class="_tit">
|
||||
<span style="visibility: hidden"> 会员banner图 </span>
|
||||
<div class="fr" v-if="flag">
|
||||
@ -15,7 +15,7 @@
|
||||
查看会员权益
|
||||
</span>
|
||||
<p class="text-center pointer" v-else>开通VIP</p>
|
||||
</div>
|
||||
</div> -->
|
||||
<!--
|
||||
<div class="card-panel surplus-currency">
|
||||
<span style="margin-right: 50px; font-size: 16px; font-weight: 700"
|
||||
@ -29,28 +29,22 @@
|
||||
<div>快捷功能</div>
|
||||
</template>
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="3">
|
||||
<el-col :span="4">
|
||||
<router-link to="/extension/release">
|
||||
<el-card shadow="never" class="text-center pointer">
|
||||
发布产品
|
||||
</el-card>
|
||||
<div class="menu-item">
|
||||
<el-avatar :icon="Box" />
|
||||
<div class="title">发布产品</div>
|
||||
</div>
|
||||
</router-link>
|
||||
</el-col>
|
||||
<el-col :span="21">
|
||||
<el-card shadow="never" class="text-center">文字简介</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20" class="mt20">
|
||||
<el-col :span="3">
|
||||
<router-link to="/demand/released">
|
||||
<el-card shadow="never" class="text-center pointer">
|
||||
发布需求
|
||||
</el-card>
|
||||
<el-col :span="4">
|
||||
<router-link to="/demand/release">
|
||||
<div class="menu-item">
|
||||
<el-avatar :icon="Help" />
|
||||
<div class="title">发布需求</div>
|
||||
</div>
|
||||
</router-link>
|
||||
</el-col>
|
||||
<el-col :span="21">
|
||||
<el-card shadow="never" class="text-center">(技术需求)</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-card>
|
||||
</div>
|
||||
@ -58,6 +52,7 @@
|
||||
|
||||
<script setup>
|
||||
import { ref } from "vue";
|
||||
import { Box, Help } from "@element-plus/icons-vue";
|
||||
|
||||
const flag = ref(true);
|
||||
</script>
|
||||
@ -92,4 +87,15 @@ const flag = ref(true);
|
||||
height: auto;
|
||||
// background-color: yellow;
|
||||
}
|
||||
.menu-item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
:deep(.el-avatar--icon) {
|
||||
background-color: #409eff;
|
||||
}
|
||||
.title {
|
||||
margin-top: 20px;
|
||||
}
|
||||
}
|
||||
</style>
|
@ -13,8 +13,8 @@
|
||||
size="small"
|
||||
@change="handleQuery"
|
||||
>
|
||||
<el-radio-button :label="1">已发布</el-radio-button>
|
||||
<el-radio-button :label="0">待审核</el-radio-button>
|
||||
<el-radio-button :label="1">已发布</el-radio-button>
|
||||
<el-radio-button :label="2">已驳回</el-radio-button>
|
||||
<el-radio-button :label="3">草稿箱</el-radio-button>
|
||||
</el-radio-group>
|
||||
@ -23,7 +23,7 @@
|
||||
<el-table-column label="数据编号" prop="id" />
|
||||
<el-table-column label="成果名称" prop="title" />
|
||||
<el-table-column label="成果领域" prop="industryStr" />
|
||||
<el-table-column label="浏览量" prop="visitCount" />
|
||||
<!-- <el-table-column label="浏览量" prop="visitCount" /> -->
|
||||
<el-table-column label="发布时间" prop="createTime" width="180">
|
||||
<template #default="{ row }">
|
||||
<span>
|
||||
@ -61,7 +61,7 @@
|
||||
size="small"
|
||||
type="text"
|
||||
icon="View"
|
||||
@click="handleResults(row.id)"
|
||||
@click="handleResults(row)"
|
||||
>查看匹配结果</el-button
|
||||
>
|
||||
<el-button
|
||||
@ -96,6 +96,7 @@ import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import { update } from "lodash-unified";
|
||||
import { useRouter } from "vue-router";
|
||||
import { updateExpertAchievement } from "@/api/admin/expert/achievement";
|
||||
import { onActivated } from "vue";
|
||||
const router = useRouter();
|
||||
const dataList = ref([]);
|
||||
const loading = ref(true);
|
||||
@ -165,8 +166,16 @@ const handleCancelPublish = (id) => {
|
||||
// queryParams.value.status = "3";
|
||||
// handleQuery();
|
||||
};
|
||||
function handleResults(id) {
|
||||
router.push({ path: "./results" });
|
||||
function handleResults(row) {
|
||||
router.push({
|
||||
path: "./results",
|
||||
query: {
|
||||
keyword: row.title,
|
||||
},
|
||||
});
|
||||
}
|
||||
getList();
|
||||
|
||||
onActivated(() => {
|
||||
getList();
|
||||
});
|
||||
</script>
|
||||
|
244
src/views/admin/expert/technology/claimPatent.vue
Normal file
244
src/views/admin/expert/technology/claimPatent.vue
Normal file
@ -0,0 +1,244 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-form
|
||||
:model="queryParams"
|
||||
ref="queryRef"
|
||||
v-show="showSearch"
|
||||
:inline="true"
|
||||
>
|
||||
<el-form-item label="专利名称" prop="roleName">
|
||||
<el-input
|
||||
v-model="queryParams.roleName"
|
||||
placeholder="请输入专利名称"
|
||||
clearable
|
||||
size="small"
|
||||
style="width: 240px"
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="申请人" prop="roleName">
|
||||
<el-input
|
||||
v-model="queryParams.roleName"
|
||||
placeholder="请输入申请人"
|
||||
clearable
|
||||
size="small"
|
||||
style="width: 240px"
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="发明人" prop="roleName">
|
||||
<el-input
|
||||
v-model="queryParams.roleName"
|
||||
placeholder="请输入发明人"
|
||||
clearable
|
||||
size="small"
|
||||
style="width: 240px"
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item> -->
|
||||
<el-form-item>
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="Search"
|
||||
size="small"
|
||||
@click="handleQuery"
|
||||
>搜索</el-button
|
||||
>
|
||||
<el-button icon="Refresh" size="small" @click="resetQuery"
|
||||
>重置</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<!-- 表格数据 -->
|
||||
<el-table v-loading="loading" :data="dataList">
|
||||
<el-table-column label="数据编号" prop="id" />
|
||||
<el-table-column
|
||||
label="专利名称"
|
||||
prop="title"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column
|
||||
label="申请号"
|
||||
prop="applyCode"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column label="发明人" prop="inventor" />
|
||||
<el-table-column label="申请(专利权)人" prop="applyName" />
|
||||
<el-table-column label="申请日期" align="center" prop="applyAt">
|
||||
<template #default="scope">
|
||||
<span>{{ parseTime(scope.row.applyAt) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<!-- <el-table-column label="状态" align="center">
|
||||
<template #default="scope">
|
||||
<el-tag v-if="scope.row.is_bind">已认领</el-tag>
|
||||
<el-tag type="danger" v-else>未认领</el-tag>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
<el-table-column
|
||||
label="操作"
|
||||
align="center"
|
||||
class-name="small-padding fixed-width"
|
||||
>
|
||||
<template #default="scope">
|
||||
<!-- v-if="!scope.row.is_bind" -->
|
||||
<el-button
|
||||
size="small"
|
||||
type="text"
|
||||
icon="el-icon-plus"
|
||||
@click="handleBind(scope.row.id)"
|
||||
>认领</el-button
|
||||
>
|
||||
<!-- <el-button
|
||||
v-else
|
||||
size="small"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleUnbind(scope.row.id)"
|
||||
>取消认领</el-button
|
||||
> -->
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
||||
<pagination
|
||||
v-show="total > 0"
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNum"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {
|
||||
addRole,
|
||||
changeRoleStatus,
|
||||
dataScope,
|
||||
delRole,
|
||||
getRole,
|
||||
listRole,
|
||||
updateRole,
|
||||
} from "@/api/system/role";
|
||||
import {
|
||||
getNoBindPatentList,
|
||||
bindPatent,
|
||||
} from "../../../../api/admin/expert/technology";
|
||||
import { getInfo } from "../../../../api/admin/expert/account";
|
||||
import {
|
||||
roleMenuTreeselect,
|
||||
treeselect as menuTreeselect,
|
||||
} from "@/api/system/menu";
|
||||
import {
|
||||
treeselect as deptTreeselect,
|
||||
roleDeptTreeselect,
|
||||
} from "@/api/system/dept";
|
||||
import { useRouter } from "vue-router";
|
||||
import { ElMessage } from "element-plus";
|
||||
|
||||
const router = useRouter();
|
||||
const { proxy } = getCurrentInstance();
|
||||
|
||||
const dataList = ref([]);
|
||||
const open = ref(false);
|
||||
const loading = ref(true);
|
||||
const showSearch = ref(true);
|
||||
const total = ref(0);
|
||||
const title = ref("");
|
||||
|
||||
const data = reactive({
|
||||
queryParams: {
|
||||
// pageNum: 1,
|
||||
// pageSize: 10,
|
||||
// roleName: undefined,
|
||||
// author:
|
||||
},
|
||||
});
|
||||
|
||||
const { queryParams, rules } = toRefs(data);
|
||||
|
||||
/** 查询数据列表 */
|
||||
const getList = async () => {
|
||||
loading.value = true;
|
||||
getInfo()
|
||||
.then((resp) => {
|
||||
return resp.data.casExpert;
|
||||
})
|
||||
.then((casExpert) => {
|
||||
queryParams.value.author = casExpert.name;
|
||||
queryParams.value.expertId = casExpert.id;
|
||||
getNoBindPatentList(queryParams.value).then((resp) => {
|
||||
// total.value = resp.;
|
||||
dataList.value = resp.data;
|
||||
loading.value = false;
|
||||
});
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
loading.value = false;
|
||||
});
|
||||
// listRole(queryParams.value).then(
|
||||
// (response) => {
|
||||
// dataList.value = response.rows;
|
||||
// total.value = response.total;
|
||||
// loading.value = false;
|
||||
// }
|
||||
// );
|
||||
};
|
||||
/** 搜索按钮操作 */
|
||||
function handleQuery() {
|
||||
queryParams.value.pageNum = 1;
|
||||
getList();
|
||||
}
|
||||
/** 重置按钮操作 */
|
||||
function resetQuery() {
|
||||
proxy.resetForm("queryRef");
|
||||
handleQuery();
|
||||
}
|
||||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
proxy.$modal
|
||||
.confirm('是否确认删除数据编号为"' + row.id + '"的数据项?')
|
||||
.then(function () {
|
||||
return delRole(roleIds);
|
||||
})
|
||||
.then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("删除成功");
|
||||
})
|
||||
.catch(() => {});
|
||||
}
|
||||
function handleBind(id) {
|
||||
getInfo()
|
||||
.then((resp) => {
|
||||
return resp.data.casExpert;
|
||||
})
|
||||
.then((casExpert) => {
|
||||
bindPatent({
|
||||
patentId: id,
|
||||
expertId: casExpert.id,
|
||||
}).then(() => {
|
||||
getList();
|
||||
ElMessage.success("认领专利成功");
|
||||
});
|
||||
});
|
||||
// expertPatentBind({ id: this.queryParams.id, patent_ids: [id] }).then(
|
||||
// (res) => {
|
||||
// this.$modal.msgSuccess("修改成功");
|
||||
// this.getList();
|
||||
// }
|
||||
// );
|
||||
}
|
||||
function handleUnbind(id) {
|
||||
// expertPatentUnbind({ id: this.queryParams.id, patent_ids: [id] }).then(
|
||||
// (res) => {
|
||||
// this.$modal.msgSuccess("修改成功");
|
||||
// this.getList();
|
||||
// }
|
||||
// );
|
||||
}
|
||||
|
||||
getList();
|
||||
</script>
|
@ -60,9 +60,7 @@
|
||||
<el-table-column label="关键词" align="center" prop="keyword" />
|
||||
<el-table-column label="出版日期" align="center">
|
||||
<template #default="{ row }">
|
||||
<span>{{
|
||||
dayjs(row.publishTime).format("YYYY-MM-DD HH:mm:ss")
|
||||
}}</span>
|
||||
<span>{{ dayjs(row.publishTime).format("YYYY-MM-DD") }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
@ -155,7 +153,7 @@ import {
|
||||
insertCasPaper,
|
||||
deleteCasPaper,
|
||||
updateCasPaper,
|
||||
} from "@/api/admin/expert";
|
||||
} from "@/api/admin/expert/technology";
|
||||
import dayjs from "dayjs";
|
||||
import { cloneDeep } from "lodash";
|
||||
import { useRouter } from "vue-router";
|
||||
|
@ -38,10 +38,14 @@
|
||||
/>
|
||||
</el-form-item> -->
|
||||
<el-form-item>
|
||||
<el-button type="primary" icon="Search" size="mini" @click="handleQuery"
|
||||
<el-button
|
||||
type="primary"
|
||||
icon="Search"
|
||||
size="small"
|
||||
@click="handleQuery"
|
||||
>搜索</el-button
|
||||
>
|
||||
<el-button icon="Refresh" size="mini" @click="resetQuery"
|
||||
<el-button icon="Refresh" size="small" @click="resetQuery"
|
||||
>重置</el-button
|
||||
>
|
||||
</el-form-item>
|
||||
@ -52,19 +56,19 @@
|
||||
type="primary"
|
||||
plain
|
||||
icon="Plus"
|
||||
size="mini"
|
||||
size="small"
|
||||
@click="handleAdd"
|
||||
>新增</el-button
|
||||
>
|
||||
</el-col>
|
||||
<!-- 无接口 暂时注释 -->
|
||||
<!-- <el-col :span="1.5">
|
||||
<router-link to="./claimPatent">
|
||||
<el-button type="primary" plain icon="Plus" size="mini"
|
||||
>认领</el-button
|
||||
>
|
||||
</router-link>
|
||||
</el-col> -->
|
||||
<el-col :span="1.5">
|
||||
<router-link to="./claimPatent">
|
||||
<el-button type="primary" plain icon="Plus" size="small"
|
||||
>认领</el-button
|
||||
>
|
||||
</router-link>
|
||||
</el-col>
|
||||
<right-toolbar
|
||||
v-model:showSearch="showSearch"
|
||||
@queryTable="getList"
|
||||
@ -81,14 +85,14 @@
|
||||
/>
|
||||
<el-table-column
|
||||
label="申请号"
|
||||
prop="apply_code"
|
||||
prop="applyCode"
|
||||
:show-overflow-tooltip="true"
|
||||
/>
|
||||
<el-table-column label="发明人" prop="inventor" />
|
||||
<el-table-column label="申请(专利权)人" prop="apply_name" />
|
||||
<el-table-column label="申请日期" align="center" prop="apply_at">
|
||||
<template #default="scope">
|
||||
<span>{{ dayjs(scope.row.apply_at).format("YYYY-MM-DD") }}</span>
|
||||
<el-table-column label="申请(专利权)人" prop="applyName" />
|
||||
<el-table-column label="申请日期" align="center" prop="applyAt">
|
||||
<template #default="{ row }">
|
||||
<span>{{ dayjs(row.applyAt).format("YYYY-MM-DD") }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
@ -96,19 +100,19 @@
|
||||
align="center"
|
||||
class-name="small-padding fixed-width"
|
||||
>
|
||||
<template #default="scope">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
size="mini"
|
||||
size="small"
|
||||
type="text"
|
||||
icon="Edit"
|
||||
@click="handleUpdate(scope.row.id)"
|
||||
@click="handleUpdate(row)"
|
||||
>修改</el-button
|
||||
>
|
||||
<el-button
|
||||
size="mini"
|
||||
size="small"
|
||||
type="text"
|
||||
icon="Delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
@click="handleDelete(row.id)"
|
||||
>删除</el-button
|
||||
>
|
||||
</template>
|
||||
@ -126,15 +130,15 @@
|
||||
<!-- 添加或修改数据配置对话框 -->
|
||||
<el-dialog :title="title" v-model="open" width="800px" append-to-body>
|
||||
<el-form ref="patentRef" :model="form" :rules="rules" label-width="100px">
|
||||
<el-form-item label="申请人:" prop="apply_name">
|
||||
<el-form-item label="申请人:" prop="applyName">
|
||||
<el-input
|
||||
v-model="form.apply_name"
|
||||
v-model="form.applyName"
|
||||
placeholder="请输入申请(专利权)人(多个请以 , 分割)"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="申请人地址:" prop="apply_address">
|
||||
<el-form-item label="申请人地址:" prop="applyAddress">
|
||||
<el-input
|
||||
v-model="form.apply_address"
|
||||
v-model="form.applyAddress"
|
||||
placeholder="请输入申请人地址"
|
||||
/>
|
||||
</el-form-item>
|
||||
@ -147,18 +151,18 @@
|
||||
<el-form-item label="专利名称:" prop="title">
|
||||
<el-input v-model="form.title" placeholder="请输入专利名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="申请号:" prop="apply_code">
|
||||
<el-input v-model="form.apply_code" placeholder="请输入申请号" />
|
||||
<el-form-item label="申请号:" prop="applyCode">
|
||||
<el-input v-model="form.applyCode" placeholder="请输入申请号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="公开号:" prop="open_code">
|
||||
<el-input v-model="form.open_code" placeholder="请输入公开号" />
|
||||
<el-form-item label="公开号:" prop="openCode">
|
||||
<el-input v-model="form.openCode" placeholder="请输入公开号" />
|
||||
</el-form-item>
|
||||
<el-row>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="申请日期:" prop="apply_at">
|
||||
<el-form-item label="申请日期:" prop="applyAt">
|
||||
<el-date-picker
|
||||
style="width: 100%"
|
||||
v-model="form.apply_at"
|
||||
v-model="form.applyAt"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD"
|
||||
placeholder="请选择申请日期"
|
||||
@ -166,10 +170,10 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="公开日:" prop="open_at">
|
||||
<el-form-item label="公开日:" prop="openAt">
|
||||
<el-date-picker
|
||||
style="width: 100%"
|
||||
v-model="form.open_at"
|
||||
v-model="form.openAt"
|
||||
type="date"
|
||||
value-format="YYYY-MM-DD"
|
||||
placeholder="请选择公开日"
|
||||
@ -197,12 +201,18 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="IPC分类号:" prop="ipc_code">
|
||||
<el-input v-model="form.ipc_code" placeholder="请输入IPC分类号" />
|
||||
<el-form-item label="IPC分类号:" prop="ipcCode">
|
||||
<el-input v-model="form.ipcCode" placeholder="请输入IPC分类号" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-form-item label="专利状态:" prop="status">
|
||||
<el-radio-group v-model="form.status">
|
||||
<el-radio label="1">授权</el-radio>
|
||||
<el-radio label="2">实审</el-radio>
|
||||
<el-radio label="3">公开</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label="摘要:" prop="description">
|
||||
<el-input
|
||||
v-model="form.description"
|
||||
@ -211,9 +221,9 @@
|
||||
:autosize="{ minRows: 4, maxRows: 8 }"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="主权项:" prop="principal_claim">
|
||||
<el-form-item label="主权项:" prop="principalClaim">
|
||||
<el-input
|
||||
v-model="form.principal_claim"
|
||||
v-model="form.principalClaim"
|
||||
placeholder="请输入主权项"
|
||||
type="textarea"
|
||||
:autosize="{ minRows: 4, maxRows: 8 }"
|
||||
@ -231,14 +241,17 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
// import {
|
||||
// expertPatent,
|
||||
// patentAdd,
|
||||
// patentDetail,
|
||||
// patentEdit,
|
||||
// patentDelete,
|
||||
// } from "@/api/admin/expert/technology";
|
||||
import {
|
||||
expertPatentList,
|
||||
insertCasPatent,
|
||||
updateCasPatent,
|
||||
deleteCasPatentByIds,
|
||||
} from "@/api/admin/expert/patent";
|
||||
import { cloneDeep } from "lodash";
|
||||
import { getInfo } from "@/api/admin/expert/account";
|
||||
import dayjs from "dayjs";
|
||||
import { ElMessage, ElMessageBox } from "element-plus";
|
||||
import { patentOptions } from "@/utils/parameter";
|
||||
import { useRouter } from "vue-router";
|
||||
const router = useRouter();
|
||||
|
||||
@ -255,32 +268,33 @@ const data = reactive({
|
||||
form: {},
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
page_size: 10,
|
||||
pageSize: 10,
|
||||
inventor: undefined,
|
||||
},
|
||||
rules: {
|
||||
apply_name: [
|
||||
{ required: true, message: "申请人不能为空", trigger: "blur" },
|
||||
],
|
||||
apply_address: [
|
||||
applyName: [{ required: true, message: "申请人不能为空", trigger: "blur" }],
|
||||
applyAddress: [
|
||||
{ required: true, message: "申请人地址不能为空", trigger: "blur" },
|
||||
],
|
||||
open_code: [{ required: true, message: "公开号不能为空", trigger: "blur" }],
|
||||
open_at: [{ required: true, message: "公开日不能为空", trigger: "blur" }],
|
||||
openCode: [{ required: true, message: "公开号不能为空", trigger: "blur" }],
|
||||
openAt: [{ required: true, message: "公开日不能为空", trigger: "blur" }],
|
||||
inventor: [{ required: true, message: "发明人不能为空", trigger: "blur" }],
|
||||
title: [{ required: true, message: "专利名称不能为空", trigger: "blur" }],
|
||||
apply_code: [
|
||||
{ required: true, message: "申请号不能为空", trigger: "blur" },
|
||||
],
|
||||
apply_at: [
|
||||
{ required: true, message: "申请日期不能为空", trigger: "blur" },
|
||||
],
|
||||
applyCode: [{ required: true, message: "申请号不能为空", trigger: "blur" }],
|
||||
applyAt: [{ required: true, message: "申请日期不能为空", trigger: "blur" }],
|
||||
kind: [{ required: true, message: "请选择专利类型", trigger: "change" }],
|
||||
ipc_code: [
|
||||
ipcCode: [
|
||||
{ required: true, message: "IPC分类号不能为空", trigger: "blur" },
|
||||
],
|
||||
status: [
|
||||
{
|
||||
required: true,
|
||||
message: "请选择专利状态",
|
||||
trigger: "change",
|
||||
},
|
||||
],
|
||||
description: [{ required: true, message: "摘要不能为空", trigger: "blur" }],
|
||||
principal_claim: [
|
||||
principalClaim: [
|
||||
{ required: true, message: "主权项不能为空", trigger: "blur" },
|
||||
],
|
||||
},
|
||||
@ -288,12 +302,20 @@ const data = reactive({
|
||||
|
||||
const { queryParams, form, rules } = toRefs(data);
|
||||
|
||||
const queryRef = ref();
|
||||
const patentRef = ref();
|
||||
const expertId = ref(undefined);
|
||||
|
||||
/** 查询数据列表 */
|
||||
const getList = async () => {
|
||||
loading.value = true;
|
||||
expertPatent(queryParams.value).then((response) => {
|
||||
dataList.value = response.data.data;
|
||||
total.value = response.data.count;
|
||||
const { data } = await getInfo();
|
||||
form.value.expertId = data.casExpert.id;
|
||||
const id = data.casExpert.id;
|
||||
expertId.value = data.casExpert.id;
|
||||
expertPatentList(id, queryParams.value).then((resp) => {
|
||||
dataList.value = resp.rows;
|
||||
total.value = resp.total;
|
||||
loading.value = false;
|
||||
});
|
||||
};
|
||||
@ -304,39 +326,40 @@ const handleQuery = () => {
|
||||
};
|
||||
/** 重置按钮操作 */
|
||||
function resetQuery() {
|
||||
proxy.resetForm("queryRef");
|
||||
queryRef.value.resetFields();
|
||||
handleQuery();
|
||||
}
|
||||
/** 删除按钮操作 */
|
||||
function handleDelete(row) {
|
||||
proxy.$modal
|
||||
.confirm('是否确认删除数据编号为"' + row.id + '"的专利项?')
|
||||
function handleDelete(id) {
|
||||
ElMessageBox.confirm('是否确认删除数据编号为"' + id + '"的专利项?')
|
||||
.then(function () {
|
||||
return patentDelete({ id: row.id });
|
||||
return deleteCasPatentByIds(id);
|
||||
})
|
||||
.then(() => {
|
||||
getList();
|
||||
proxy.$modal.msgSuccess("删除成功");
|
||||
ElMessage.success("删除成功");
|
||||
})
|
||||
.catch(() => {});
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
|
||||
/** 重置新增的表单以及其他数据 */
|
||||
function reset() {
|
||||
form.value = {
|
||||
id: undefined,
|
||||
apply_name: undefined,
|
||||
apply_address: undefined,
|
||||
applyName: undefined,
|
||||
applyAddress: undefined,
|
||||
inventor: undefined,
|
||||
title: undefined,
|
||||
apply_code: undefined,
|
||||
open_code: undefined,
|
||||
open_at: undefined,
|
||||
apply_at: undefined,
|
||||
applyCode: undefined,
|
||||
openCode: undefined,
|
||||
openAt: undefined,
|
||||
applyAt: undefined,
|
||||
kind: undefined,
|
||||
ipc_code: undefined,
|
||||
ipcCode: undefined,
|
||||
description: undefined,
|
||||
principal_claim: undefined,
|
||||
principalClaim: undefined,
|
||||
};
|
||||
proxy.resetForm("patentRef");
|
||||
}
|
||||
@ -347,39 +370,36 @@ const handleAdd = () => {
|
||||
title.value = "添加数据";
|
||||
};
|
||||
/** 修改数据 */
|
||||
const handleUpdate = (id) => {
|
||||
const handleUpdate = (row) => {
|
||||
reset();
|
||||
patentDetail({ id }).then((res) => {
|
||||
form.value = res.data;
|
||||
open.value = true;
|
||||
title.value = "修改数据";
|
||||
});
|
||||
const data = cloneDeep(row);
|
||||
// patentDetail({ id }).then((res) => {
|
||||
form.value = data;
|
||||
open.value = true;
|
||||
title.value = "修改数据";
|
||||
// });
|
||||
};
|
||||
|
||||
/** 提交按钮 */
|
||||
function submitForm() {
|
||||
proxy.$refs["patentRef"].validate((valid) => {
|
||||
if (valid) {
|
||||
if (form.value.id != undefined) {
|
||||
patentEdit(form.value).then((response) => {
|
||||
proxy.$modal.msgSuccess("修改成功");
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
} else {
|
||||
patentAdd(form.value).then((response) => {
|
||||
proxy.$modal.msgSuccess("新增成功");
|
||||
open.value = false;
|
||||
getList();
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
const submitForm = async () => {
|
||||
await patentRef.value.validate();
|
||||
if (form.value.id != undefined) {
|
||||
await updateCasPatent({ ...form.value, expertId: expertId.value });
|
||||
ElMessage.success("修改成功");
|
||||
open.value = false;
|
||||
getList();
|
||||
} else {
|
||||
await insertCasPatent({ ...form.value, expertId: expertId.value });
|
||||
ElMessage.success("新增成功");
|
||||
open.value = false;
|
||||
getList();
|
||||
}
|
||||
};
|
||||
/** 取消按钮 */
|
||||
function cancel() {
|
||||
open.value = false;
|
||||
reset();
|
||||
}
|
||||
|
||||
// getList();
|
||||
getList();
|
||||
</script>
|
||||
|
@ -81,7 +81,7 @@
|
||||
type="text"
|
||||
icon="Download"
|
||||
@click="handleShelf(row)"
|
||||
>下架</el-button
|
||||
>{{ row.shelfStatus == 1 ? "下架" : "上架" }}</el-button
|
||||
>
|
||||
<el-button
|
||||
size="small"
|
||||
@ -271,17 +271,19 @@ function resetQuery() {
|
||||
handleQuery();
|
||||
}
|
||||
function handleShelf(row) {
|
||||
let text = row.shelf_status == 2 ? "上架" : "下架";
|
||||
const text = row.shelfStatus == 2 ? "上架" : "下架";
|
||||
ElMessageBox.confirm(`确认要${text}"${row.id}"的数据吗?`)
|
||||
.then(function () {
|
||||
let status = row.shelf_status == 1 ? 2 : 1;
|
||||
return projectShelf({ id: row.id, status });
|
||||
.then(() => {
|
||||
const shelfStatus = row.shelfStatus == 1 ? 2 : 1;
|
||||
return updateTechnologyProject({ id: row.id, shelfStatus });
|
||||
})
|
||||
.then(() => {
|
||||
getList();
|
||||
ElMessage.success(text + "成功");
|
||||
})
|
||||
.catch(() => {});
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
/** 删除按钮操作 */
|
||||
function handleDelete(id) {
|
||||
|
@ -76,7 +76,8 @@
|
||||
</template>
|
||||
<script setup name="CityOptions">
|
||||
import { provinceList, cityList, districtList } from "@/api/config";
|
||||
import { reactive, ref, toRefs } from "vue";
|
||||
|
||||
import { reactive, ref, toRefs, watch } from "vue";
|
||||
|
||||
const props = defineProps({
|
||||
modelValue: Object,
|
||||
@ -138,15 +139,15 @@ const provinceChanged = () => {
|
||||
citySelectList.value = [];
|
||||
districtSelectList.value = [];
|
||||
// 重新请求城市列表
|
||||
modelValue.value.province &&
|
||||
getCityListByProvinceId(modelValue.value.province);
|
||||
// modelValue.value.province &&
|
||||
// getCityListByProvinceId(modelValue.value.province);
|
||||
};
|
||||
// 当市改变时
|
||||
const cityChanged = () => {
|
||||
// 清除县区代码列表
|
||||
modelValue.value.district = undefined;
|
||||
districtSelectList.value = [];
|
||||
modelValue.value.city && getAreaListByCityId(modelValue.value.city);
|
||||
// modelValue.value.city && getAreaListByCityId(modelValue.value.city);
|
||||
};
|
||||
|
||||
const validateForm = async () => {
|
||||
@ -157,15 +158,40 @@ const validateForm = async () => {
|
||||
}
|
||||
};
|
||||
|
||||
watch(modelValue, (val) => {
|
||||
if (val.province) {
|
||||
getCityListByProvinceId(val.province);
|
||||
}
|
||||
if (val.city) {
|
||||
getAreaListByCityId(val.city);
|
||||
}
|
||||
});
|
||||
// watch(
|
||||
// () => {
|
||||
// return {
|
||||
// province: modelValue.value.province,
|
||||
// city: modelValue.value.city,
|
||||
// };
|
||||
// },
|
||||
// (val) => {
|
||||
// console.log("changed city");
|
||||
// if (val.province) {
|
||||
// getCityListByProvinceId(val.province);
|
||||
// }
|
||||
// if (val.city) {
|
||||
// getAreaListByCityId(val.city);
|
||||
// }
|
||||
// },
|
||||
// { deep: true }
|
||||
// );
|
||||
|
||||
watch(
|
||||
() => modelValue.value.province,
|
||||
(val) => {
|
||||
console.log("changed province");
|
||||
getCityListByProvinceId(val);
|
||||
}
|
||||
);
|
||||
|
||||
watch(
|
||||
() => modelValue.value.city,
|
||||
(val) => {
|
||||
console.log("changed city");
|
||||
getAreaListByCityId(val);
|
||||
}
|
||||
);
|
||||
getProvinceList();
|
||||
|
||||
defineExpose({
|
||||
|
@ -108,7 +108,17 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="营业执照:" prop="license">
|
||||
<ImageUpload
|
||||
v-model="modelValue.license"
|
||||
:isShowTip="false"
|
||||
:limit="1"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row v-if="isAdd">
|
||||
<el-col :span="24">
|
||||
<el-form-item label="营业执照:" prop="license">
|
||||
@ -204,6 +214,13 @@ const data = reactive({
|
||||
trigger: ["change", "blur"],
|
||||
},
|
||||
],
|
||||
license: [
|
||||
{
|
||||
required: true,
|
||||
message: "请上传",
|
||||
trigger: ["blur", "change"],
|
||||
},
|
||||
],
|
||||
},
|
||||
});
|
||||
const { rules } = toRefs(data);
|
||||
@ -224,7 +241,7 @@ const validateForm = async () => {
|
||||
const cityFormValid = await cityFormRef.value.validateForm(); // 城市选择表单验证
|
||||
const fieldFormValid = await fieldFormRef.value.validateForm(); // 领域选择表单验证
|
||||
const keywordsFormValid = await keywordsFormRef.value.validateForm(); // 关键词表单验证
|
||||
console.log(cityFormValid);
|
||||
// console.log(cityFormValid);
|
||||
if (isAdd.value) {
|
||||
const directionsFormValid = await directionsFormRef.value.validateForm();
|
||||
return (
|
||||
|
@ -23,7 +23,7 @@
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="手机号:" prop="mobile">
|
||||
<el-input v-model="modelValue.mobile"></el-input>
|
||||
<el-input v-model="modelValue.mobile" maxlength="11"></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -136,8 +136,8 @@
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="性别:" prop="gender">
|
||||
<el-radio v-model="modelValue.gender" :label="1">男</el-radio>
|
||||
<el-radio v-model="modelValue.gender" :label="2">女</el-radio>
|
||||
<el-radio v-model="modelValue.gender" label="1">男</el-radio>
|
||||
<el-radio v-model="modelValue.gender" label="2">女</el-radio>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
@ -7,7 +7,7 @@
|
||||
>
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<el-form-item label="所属领域:" required>
|
||||
<el-form-item label="所属领域:">
|
||||
<el-row type="flex" justify="space-between">
|
||||
<el-col :span="7">
|
||||
<el-form-item prop="industrys">
|
||||
@ -67,7 +67,8 @@
|
||||
|
||||
<script setup>
|
||||
import { listSysIndustry } from "@/api/config";
|
||||
import { reactive, toRefs } from "vue";
|
||||
// import { watch } from "fs";
|
||||
import { reactive, toRefs, watch } from "vue";
|
||||
const props = defineProps({
|
||||
modelValue: Object,
|
||||
labelWidth: {
|
||||
@ -100,19 +101,60 @@ const getIndustryTreeData = async () => {
|
||||
levelI.value = data;
|
||||
};
|
||||
|
||||
// watch(
|
||||
// modelValue,
|
||||
// (val) => {
|
||||
// if (val.industrys[1]) {
|
||||
// // delete val.industrys[2];
|
||||
// levelIII.value = levelII.value.find((el) => el.id === item).children;
|
||||
// }
|
||||
// if (val.industrys[0]) {
|
||||
// // delete val.industrys[1];
|
||||
// // delete val.industrys[2];
|
||||
// // levelII.value = levelI.value.find((el) => {
|
||||
// // return el.id === item;
|
||||
// // }).children;
|
||||
// console.log(123);
|
||||
// }
|
||||
// },
|
||||
// { deep: true, immediate: true }
|
||||
// );
|
||||
|
||||
const levelIChange = async (item) => {
|
||||
delete modelValue.value.industrys[1];
|
||||
delete modelValue.value.industrys[2];
|
||||
levelII.value = levelI.value.find((el) => {
|
||||
return el.id === item;
|
||||
}).children;
|
||||
// levelII.value = levelI.value.find((el) => {
|
||||
// return el.id === item;
|
||||
// }).children;
|
||||
};
|
||||
|
||||
const levelIIChange = async (item) => {
|
||||
delete modelValue.value.industrys[2];
|
||||
levelIII.value = levelII.value.find((el) => el.id === item).children;
|
||||
// levelIII.value = levelII.value.find((el) => el.id === item).children;
|
||||
};
|
||||
getIndustryTreeData();
|
||||
getIndustryTreeData().then(() => {
|
||||
watch(
|
||||
() => modelValue.value.industrys[0],
|
||||
(val) => {
|
||||
// console.log(val);
|
||||
levelII.value =
|
||||
levelI.value.find((el) => {
|
||||
return el.id === val;
|
||||
})?.children ?? [];
|
||||
},
|
||||
{ immediate: true }
|
||||
);
|
||||
watch(
|
||||
() => modelValue.value.industrys[1],
|
||||
(val) => {
|
||||
levelIII.value =
|
||||
levelII.value.find((el) => {
|
||||
return el.id === val;
|
||||
})?.children ?? [];
|
||||
},
|
||||
{ immediate: true }
|
||||
);
|
||||
});
|
||||
</script>
|
||||
<!-- <script>
|
||||
// import { industry } from "@/api/config";
|
||||
|
@ -86,7 +86,7 @@ const identityDict = {
|
||||
};
|
||||
onMounted(() => {
|
||||
identity().then((res) => {
|
||||
console.log(res.data);
|
||||
// console.log(res.data);
|
||||
res.data.forEach((item) => {
|
||||
identityList.value.push({
|
||||
id: item.roleId,
|
||||
@ -117,7 +117,7 @@ function noClicking() {
|
||||
}
|
||||
// item.status -1>未入驻 0>审核中 1>通过 2拒绝
|
||||
function handleStatus(item) {
|
||||
console.log(item);
|
||||
// console.log(item);
|
||||
if (noClicking()) return ElMessageBox.alert("您已有入驻申请");
|
||||
if (item.status === "4" || item.status === "2") {
|
||||
if (item.id == 1) {
|
||||
|
@ -30,8 +30,8 @@
|
||||
<router-view />
|
||||
</div>
|
||||
|
||||
<!-- <div class="box conter1000" v-show="!isShow">
|
||||
<el-row :gutter="10">
|
||||
<div class="box conter1000" v-show="!isShow">
|
||||
<el-row :gutter="10" v-if="false">
|
||||
<el-col :span="5">
|
||||
<el-select
|
||||
v-model="queryParams.value"
|
||||
@ -62,17 +62,18 @@
|
||||
<div class="_l">
|
||||
<el-image
|
||||
style="width: 358px; height: 200px; vertical-align: middle"
|
||||
:src="item.src"
|
||||
:src="item.image"
|
||||
fit="fill"
|
||||
></el-image>
|
||||
</div>
|
||||
<div class="_r">
|
||||
<p class="text_hidden">{{ item.title }}</p>
|
||||
<div class="_time">活动时间:{{ item.time }}</div>
|
||||
<div class="_time">活动时间:{{ item.beginTime }}</div>
|
||||
<div class="_time">收费金额:{{ item.amount }}</div>
|
||||
<div class="_info">
|
||||
<span class="fl"
|
||||
<!-- <span class="fl"
|
||||
><span class="x_blue">{{ item.user }}</span> 人报名</span
|
||||
>
|
||||
> -->
|
||||
<el-button class="fr x_btns" v-if="item.status == 1" disabled
|
||||
>已报名</el-button
|
||||
>
|
||||
@ -109,30 +110,27 @@
|
||||
></webBreadcrumb>
|
||||
<div class="_head">
|
||||
<div class="_l">
|
||||
<!-- src="https://fuss10.elemecdn.com/9/bb/e27858e973f5d7d3904835f46abbdjpeg.jpeg" -->
|
||||
<el-image
|
||||
style="width: 358px; height: 100%; vertical-align: middle"
|
||||
src="https://fuss10.elemecdn.com/9/bb/e27858e973f5d7d3904835f46abbdjpeg.jpeg"
|
||||
:src="selectedActivity.image"
|
||||
fit="cover"
|
||||
></el-image>
|
||||
</div>
|
||||
<div class="_r">
|
||||
<p class="_title text_hidden">
|
||||
订单利润模型——构建企业利润机器人智能感知与控制专场 |
|
||||
合肥高新区科技成果供需对接活动
|
||||
{{ selectedActivity.title }}
|
||||
</p>
|
||||
<p class="_brief text_hidden">
|
||||
活动简介:订单利润模型——构建企业利润机器人智能感知与控制专场 |
|
||||
合肥高新企业利润机 区科技成果
|
||||
供需对接活动订单利润模型——构建企业利润机器人智能感知供需对接活动订单利润模型——构建企业利润机器人智能感知
|
||||
活动简介:{{ selectedActivity.description }}
|
||||
</p>
|
||||
<p class="_classif">活动分类:教育</p>
|
||||
<p class="_time">
|
||||
活动时间:2021-10-14 13:30:00 ~ 2021-10-16 16:30:00
|
||||
活动时间:{{ selectedActivity.beginTime }} ~
|
||||
{{ selectedActivity.finishTime }}
|
||||
</p>
|
||||
<p class="_place">
|
||||
活动地点:安徽省-合肥市-蜀山区 科学大道233号来福酒店1号会议厅
|
||||
</p>
|
||||
<p class="_user">
|
||||
<p class="_place">活动地点:{{ selectedActivity.address }}</p>
|
||||
<p class="_user" style="display: none">
|
||||
<el-button class="x_btns" disabled>已报名</el-button>
|
||||
<span class="_num"><span class="x_blue">16</span> 人报名</span>
|
||||
</p>
|
||||
@ -141,18 +139,13 @@
|
||||
<div class="_info">
|
||||
<div class="_l">
|
||||
<p class="_tit">活动详情</p>
|
||||
<div class="_txt">
|
||||
本项目将生产废水分质处理后,提升进入曝气微电解反应器内,通过铁、碳原料在酸性情况下形成微电池,首先对铜氨络合物破络;其次对油墨等有机物质开环断链,提高废水的可生化性。更突出的是,利用金属离子的活性:铁置换其他金属离子,从而从废水中除去,然后经生化系统处理后,出水各污染物指标稳定达标排放。本项目具有处理效率高、以废治废能耗低、管理简单、出水稳定达标等优点。
|
||||
出水各污染物指标稳定达标排放。本项目具有处理效率高、以废治废能耗低、管理简单出水稳定达标等优点。
|
||||
</div>
|
||||
<div class="_txt">
|
||||
本项目将生产废水分质处理后,提升进入曝气微电解反应器内,通过铁、碳原料在酸性情况下形成微电池,首先对铜氨络合物破络;其次对油墨等有机物质开环断链,提高废水的可生化性。更突出的是,利用金属离子的活性:铁置换其他金属离子,从而从废水中除去,然后经生化系统处理后,出水各污染物指标稳定达标排放。本项目具有处理效率高、以废治废能耗低、管理简单、出水稳定达标等优点。
|
||||
出水各污染物指标稳定达标排放。本项目具有处理效率高、以废治废能耗低、管理简单出水稳定达标等优点。
|
||||
</div>
|
||||
<div class="_txt" v-html="selectedActivity.content"></div>
|
||||
</div>
|
||||
<div class="_r">
|
||||
<WebContact />
|
||||
</div>
|
||||
<div class="_r">联系我</div>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
<webFooter></webFooter>
|
||||
</div>
|
||||
</template>
|
||||
@ -161,61 +154,47 @@ import QrcodeVue from "qrcode.vue";
|
||||
import { banner } from "@/api/website/home/index";
|
||||
import request from "@/utils/request";
|
||||
import webFooter from "@/components/webFooter/index.vue";
|
||||
// import webBreadcrumb from "@/components/webBreadcrumb/index.vue";
|
||||
import { reactive, toRefs } from "vue";
|
||||
import WebContact from "@/components/webContact";
|
||||
import { activitysList } from "@/api/admin/enterprise";
|
||||
import webBreadcrumb from "@/components/webBreadcrumb/index.vue";
|
||||
// import webReleaseActive from "@/components/webReleaseActive/index.vue";
|
||||
|
||||
const dialogVisible = ref(false);
|
||||
const loading = ref(true);
|
||||
const total = ref(1);
|
||||
const state = reactive({
|
||||
banner: "",
|
||||
});
|
||||
|
||||
const queryParams = reactive({});
|
||||
let dataList = ref([]);
|
||||
const isShow = ref(false);
|
||||
|
||||
let breadcrumbTitle = reactive({
|
||||
id: null,
|
||||
title: "",
|
||||
twoTitle: "",
|
||||
});
|
||||
|
||||
/** 查询 */
|
||||
function getList() {
|
||||
loading.value = true;
|
||||
setTimeout(() => {
|
||||
dataList.value = [
|
||||
{
|
||||
id: 1,
|
||||
title:
|
||||
"订单利润模型——构建企业利润机器人智能感知与控制专场 | 合肥高新区科技成果供需对接活动",
|
||||
src: "https://fuss10.elemecdn.com/9/bb/e27858e973f5d7d3904835f46abbdjpeg.jpeg",
|
||||
time: "2021-10-14 13:30:00 ~ 2021-10-16 16:30:00",
|
||||
user: 16,
|
||||
status: 1,
|
||||
},
|
||||
{
|
||||
id: 2,
|
||||
title:
|
||||
"订单利润模型——构建企业利润机器人智能感知与控制专场 | 合肥高新区科技成果供需对接活动",
|
||||
src: "https://fuss10.elemecdn.com/9/bb/e27858e973f5d7d3904835f46abbdjpeg.jpeg",
|
||||
time: "2021-10-14 13:30:00 ~ 2021-10-16 16:30:00",
|
||||
user: 17,
|
||||
status: 2,
|
||||
},
|
||||
{
|
||||
id: 3,
|
||||
title:
|
||||
"订单利润模型——构建企业利润机器人智能感知与控制专场 | 合肥高新区科技成果供需对接活动",
|
||||
src: "https://fuss10.elemecdn.com/9/bb/e27858e973f5d7d3904835f46abbdjpeg.jpeg",
|
||||
time: "2021-10-14 13:30:00 ~ 2021-10-16 16:30:00",
|
||||
user: 18,
|
||||
status: 3,
|
||||
},
|
||||
];
|
||||
loading.value = false;
|
||||
}, 500);
|
||||
activitysList(queryParams).then((resp) => {
|
||||
dataList.value = resp.rows;
|
||||
total.value = resp.total;
|
||||
});
|
||||
}
|
||||
const data = reactive({
|
||||
selectedActivity: {},
|
||||
});
|
||||
const { selectedActivity } = toRefs(data);
|
||||
|
||||
function handleDetail(item) {
|
||||
breadcrumbTitle.id = item.id;
|
||||
breadcrumbTitle.title = "活动报名";
|
||||
breadcrumbTitle.twoTitle = "活动报名详情";
|
||||
selectedActivity.value = dataList.value.find((el) => el.id == item.id);
|
||||
isShow.value = !isShow.value;
|
||||
}
|
||||
|
||||
|
@ -10,6 +10,7 @@
|
||||
<div class="tab">
|
||||
<div
|
||||
v-for="(v, index) in state.tabList"
|
||||
:style="v == '找实验室' ? `display:none` : ''"
|
||||
:class="{ active: state.tabIndex == index }"
|
||||
@click="switchTab(index)"
|
||||
>
|
||||
@ -134,6 +135,7 @@ const router = useRouter();
|
||||
const queryParams = reactive({
|
||||
queryType: undefined,
|
||||
keyword: "",
|
||||
queryType: "1",
|
||||
});
|
||||
const queryRules = reactive({
|
||||
queryType: [{ required: true, trigger: "change", message: "请选择搜索类型" }],
|
||||
@ -169,6 +171,7 @@ const queryTypeList = [
|
||||
{ value: "1", label: "通过标题搜索" },
|
||||
{ value: "2", label: "通过摘要搜索" },
|
||||
{ value: "3", label: "通过主权项搜索" },
|
||||
{ value: "4", label: "通过作者搜索" },
|
||||
],
|
||||
[
|
||||
{ value: "1", label: "通过专家名称搜索" },
|
||||
@ -189,11 +192,12 @@ const handleDetail = async (mode, keyword, queryType) => {
|
||||
path: `/searchList/${mode}`,
|
||||
query: { keyword, queryType },
|
||||
});
|
||||
window.open(routeData.href, "_blank");
|
||||
// window.open(routeData.href, "_blank");
|
||||
router.push(routeData);
|
||||
};
|
||||
|
||||
function handleQuery() {
|
||||
console.log(queryParams.keyword, state.tabIndex);
|
||||
// console.log(queryParams.keyword, state.tabIndex);
|
||||
handleDetail(
|
||||
searchTypeList.value[state.tabIndex],
|
||||
queryParams.keyword,
|
||||
@ -226,7 +230,7 @@ const state = reactive({
|
||||
|
||||
onMounted(() => {
|
||||
banner({ locals: "首页背景" }).then((resp) => {
|
||||
console.log(resp);
|
||||
// console.log(resp);
|
||||
state.banner = resp.data[0].images;
|
||||
});
|
||||
// state.data = {
|
||||
|
@ -5,7 +5,7 @@
|
||||
<div class="login-form">
|
||||
<el-tabs v-model="loginForm.mode" v-if="isLogin == 1">
|
||||
<el-tab-pane label="账号密码登录" name="102"></el-tab-pane>
|
||||
<el-tab-pane label="手机快捷登录" name="101"></el-tab-pane>
|
||||
<!-- <el-tab-pane label="手机快捷登录" name="101"></el-tab-pane> -->
|
||||
</el-tabs>
|
||||
<div v-if="isLogin == 1">
|
||||
<el-form ref="loginRef" :model="loginForm" :rules="loginRules">
|
||||
@ -98,7 +98,7 @@
|
||||
>
|
||||
<el-form-item prop="isCheck">
|
||||
<div style="margin-top: 43px">
|
||||
<div class="text_col">
|
||||
<div class="text_col" style="display: none">
|
||||
<div>其他登录方式</div>
|
||||
<img
|
||||
class="pointer"
|
||||
|
@ -63,8 +63,10 @@ const queryParams = reactive({
|
||||
query: route.query.keyword,
|
||||
});
|
||||
|
||||
function handleQuery(keyword) {
|
||||
queryParams.query = keyword;
|
||||
function handleQuery(state) {
|
||||
// state.keyword = keyword;
|
||||
queryParams.query = state.currentKeyword;
|
||||
queryParams.queryType = state.queryType;
|
||||
getDataList();
|
||||
}
|
||||
|
||||
|
@ -23,19 +23,19 @@
|
||||
<div>{{ state.expertDetail.introduce }}</div>
|
||||
</template>
|
||||
</achievementItem>
|
||||
<div class="btns">
|
||||
<!-- <div class="btns">
|
||||
<div class="order">预约对接</div>
|
||||
<div class="share">一键分享</div>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<div class="detail">
|
||||
<div style="padding: 20px 0">
|
||||
<!-- <div style="padding: 20px 0">
|
||||
<div class="pointTit">技术视频</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<div style="padding: 20px 0">
|
||||
<div class="pointTit">产品详情</div>
|
||||
<div class="pointTit">成果简介</div>
|
||||
</div>
|
||||
<div class="html" v-html="state.expertDetail.introduce"></div>
|
||||
<div class="html" v-html="state.expertDetail.description"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="r">
|
||||
@ -56,6 +56,7 @@ import request from "@/utils/request";
|
||||
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 { useRoute, useRouter } from "vue-router";
|
||||
import { reactive, ref } from "vue";
|
||||
|
||||
@ -123,19 +124,23 @@ function handleDetail(id) {
|
||||
}
|
||||
|
||||
function handleList(mode, keyword) {
|
||||
router.push({ path: `/searchList/${mode}`, query: { keyword } });
|
||||
router.push({
|
||||
path: `/searchList/${mode}`,
|
||||
query: { keyword, queryType: route.query.queryType },
|
||||
});
|
||||
}
|
||||
|
||||
// 首次加载数据,其后跳转页面
|
||||
let flag = true;
|
||||
|
||||
function handleQuery(keyword) {
|
||||
state.keyword = keyword;
|
||||
function handleQuery(state) {
|
||||
// queryParams.query = state.currentKeyword;
|
||||
// queryParams.queryType = state.queryType;
|
||||
if (flag) {
|
||||
getDataList();
|
||||
flag = false;
|
||||
} else {
|
||||
handleList(0, keyword);
|
||||
handleList("achievement", state.currentKeyword);
|
||||
}
|
||||
}
|
||||
|
||||
@ -143,14 +148,15 @@ function getDataList() {
|
||||
loading.value = true;
|
||||
let id = route.params.id;
|
||||
if (!id) return;
|
||||
// achievementDetail(id)
|
||||
// .then((res) => {
|
||||
// if (200 == res.code) {
|
||||
// console.log(res.data);
|
||||
// state.expertDetail = res.data;
|
||||
// loading.value = false;
|
||||
// }
|
||||
// })
|
||||
searchAchievementDetail(id)
|
||||
// achievementDetail(id)
|
||||
.then((res) => {
|
||||
// if (200 == res.code) {
|
||||
console.log(res.data);
|
||||
state.expertDetail = res.data;
|
||||
loading.value = false;
|
||||
// }
|
||||
});
|
||||
// .catch(() => {
|
||||
// loading.value = false;
|
||||
// });
|
||||
|
@ -29,7 +29,7 @@
|
||||
<div class="keywords">
|
||||
<wordcloud
|
||||
v-if="data.keywords"
|
||||
:data="createdData(data.customers ?? [])"
|
||||
:data="createdData(data.keywords ?? [])"
|
||||
></wordcloud>
|
||||
</div>
|
||||
<!-- <collectAndVisit
|
||||
@ -49,7 +49,8 @@
|
||||
import wordcloud from "./wordcloud.vue";
|
||||
// import collectAndVisit from "./collectAndVisit.vue";
|
||||
import { maturityOptions } from "@/utils/parameter.js";
|
||||
import { useRouter } from "vue-router";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
const route = useRoute();
|
||||
|
||||
const router = useRouter();
|
||||
const props = defineProps({
|
||||
@ -62,8 +63,13 @@ const props = defineProps({
|
||||
function handleDetail(id) {
|
||||
let routeData = router.resolve({
|
||||
path: `/searchList/achievement/detail/${id}`,
|
||||
query: {
|
||||
keyword: route.query.keyword,
|
||||
queryType: route.query.queryType,
|
||||
},
|
||||
});
|
||||
window.open(routeData.href, "_blank");
|
||||
router.push(routeData);
|
||||
// window.open(routeData.href, "_blank");
|
||||
}
|
||||
|
||||
function createdData(arr) {
|
||||
|
@ -39,7 +39,7 @@
|
||||
</el-col>
|
||||
</div>
|
||||
<div class="line">
|
||||
研究方向:
|
||||
研究信息:
|
||||
<span>{{ data.research }}</span>
|
||||
</div>
|
||||
<div
|
||||
@ -66,9 +66,10 @@
|
||||
|
||||
<script setup name="ExpertItem">
|
||||
import wordcloud from "./wordcloud.vue";
|
||||
import { useRouter } from "vue-router";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
// import collectAndVisit from "./collectAndVisit.vue";
|
||||
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
const props = defineProps({
|
||||
data: {
|
||||
@ -78,8 +79,15 @@ const props = defineProps({
|
||||
});
|
||||
|
||||
function handleDetail(id) {
|
||||
let routeData = router.resolve({ path: `/searchList/expert/detail/${id}` });
|
||||
window.open(routeData.href, "_blank");
|
||||
let routeData = router.resolve({
|
||||
path: `/searchList/expert/detail/${id}`,
|
||||
query: {
|
||||
keyword: route.query.keyword,
|
||||
queryType: route.query.queryType,
|
||||
},
|
||||
});
|
||||
router.push(routeData);
|
||||
// window.open(routeData.href, "_blank");
|
||||
}
|
||||
|
||||
function createdData(arr) {
|
||||
|
@ -48,7 +48,8 @@
|
||||
import { maturityOptions } from "@/utils/parameter";
|
||||
import wordcloud from "./wordcloud.vue";
|
||||
import collectAndVisit from "./collectAndVisit.vue";
|
||||
import { useRouter } from "vue-router";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
const route = useRoute();
|
||||
const router = useRouter();
|
||||
const props = defineProps({
|
||||
data: {
|
||||
@ -58,8 +59,15 @@ const props = defineProps({
|
||||
});
|
||||
|
||||
function handleDetail(id) {
|
||||
let routeData = router.resolve({ path: `/searchList/patent/detail/${id}` });
|
||||
window.open(routeData.href, "_blank");
|
||||
let routeData = router.resolve({
|
||||
path: `/searchList/patent/detail/${id}`,
|
||||
query: {
|
||||
keyword: route.query.keyword,
|
||||
queryType: route.query.queryType,
|
||||
},
|
||||
});
|
||||
// window.open(routeData.href, "_blank");
|
||||
router.push(routeData);
|
||||
}
|
||||
|
||||
function createdData(arr) {
|
||||
|
@ -8,14 +8,37 @@
|
||||
>
|
||||
<div class="conter1000">
|
||||
<div class="tit">{{ title }}</div>
|
||||
<el-input
|
||||
v-model.trim="state.currentKeyword"
|
||||
placeholder="请输入检索词"
|
||||
>
|
||||
<template #append>
|
||||
<el-button icon="Search" @click="handleQuery">搜索</el-button>
|
||||
</template>
|
||||
</el-input>
|
||||
<el-form :model="state" :rules="queryRules" ref="queryRef">
|
||||
<el-input
|
||||
v-model.trim="state.currentKeyword"
|
||||
placeholder="请输入检索词"
|
||||
>
|
||||
<template #suffix>
|
||||
<el-form-item prop="queryType">
|
||||
<el-select
|
||||
v-model="state.queryType"
|
||||
placeholder="请选择搜索类型"
|
||||
class="search-type-select"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in queryTypeList[route.meta.searchType - 1]"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</template>
|
||||
<template #append>
|
||||
<el-button
|
||||
:disabled="!state.currentKeyword"
|
||||
icon="Search"
|
||||
@click="handleQuery"
|
||||
>搜索</el-button
|
||||
>
|
||||
</template>
|
||||
</el-input>
|
||||
</el-form>
|
||||
</div>
|
||||
</div>
|
||||
<div class="conter1000">
|
||||
@ -30,12 +53,25 @@ import webFooter from "@/components/webFooter/index.vue";
|
||||
import { banner } from "@/api/website/home/index";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
import { reactive, ref } from "vue";
|
||||
import router from "../../../../router";
|
||||
const route = useRoute();
|
||||
// console.log(route.query.queryType);
|
||||
// const queryType = route.query.queryType;
|
||||
|
||||
const loading = ref(true);
|
||||
|
||||
const state = reactive({
|
||||
currentKeyword: "",
|
||||
queryType: route.query.queryType,
|
||||
});
|
||||
// state.queryType = route.query.queryType;
|
||||
// state.queryType = queryType;
|
||||
const queryRules = reactive({
|
||||
queryType: [{ required: true, trigger: "change", message: "请选择搜索类型" }],
|
||||
keyword: [{ required: true, trigger: "blur", message: "请选择搜索关键词" }],
|
||||
});
|
||||
|
||||
const queryRef = ref();
|
||||
const props = defineProps({
|
||||
title: {
|
||||
type: String,
|
||||
@ -49,8 +85,46 @@ const props = defineProps({
|
||||
});
|
||||
const emit = defineEmits();
|
||||
|
||||
function handleQuery() {
|
||||
emit("handleQuery", state.currentKeyword);
|
||||
const queryTypeList = [
|
||||
[
|
||||
{ value: "1", label: "通过企业名称搜索" },
|
||||
{ value: "2", label: "通过企业简介搜索" },
|
||||
{ value: "3", label: "通过关键词搜索" },
|
||||
{ value: "4", label: "通过生产方向搜索" },
|
||||
{ value: "5", label: "通过产品搜索" },
|
||||
],
|
||||
[
|
||||
{
|
||||
value: "1",
|
||||
label: "通过成果名称搜索",
|
||||
},
|
||||
],
|
||||
[],
|
||||
[
|
||||
{ value: "1", label: "通过标题搜索" },
|
||||
{ value: "2", label: "通过摘要搜索" },
|
||||
{ value: "3", label: "通过主权项搜索" },
|
||||
],
|
||||
[
|
||||
{ value: "1", label: "通过专家名称搜索" },
|
||||
{ value: "2", label: "通过个人简介搜索" },
|
||||
{ value: "3", label: "通过关键词搜索" },
|
||||
],
|
||||
[{ value: "1", label: "通过标题搜索" }],
|
||||
[{ value: "1", label: "通过标题搜索" }],
|
||||
];
|
||||
async function handleQuery() {
|
||||
// state.queryType = route.query.queryType;
|
||||
// await queryRef.value.validate();
|
||||
router.replace({
|
||||
path: route.path,
|
||||
query: {
|
||||
...route.query,
|
||||
keyword: state.currentKeyword,
|
||||
queryType: state.queryType,
|
||||
},
|
||||
});
|
||||
emit("handleQuery", state);
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
@ -67,6 +141,9 @@ onMounted(() => {
|
||||
});
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
:deep(.search-type-select) {
|
||||
box-sizing: 0 0 0 0;
|
||||
}
|
||||
.searchContainer {
|
||||
width: 100%;
|
||||
min-height: 100%;
|
||||
|
@ -48,8 +48,9 @@
|
||||
import { maturityOptions } from "@/utils/parameter";
|
||||
import wordcloud from "./wordcloud.vue";
|
||||
import collectAndVisit from "./collectAndVisit.vue";
|
||||
import { useRouter } from "vue-router";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const props = defineProps({
|
||||
data: {
|
||||
type: Object,
|
||||
@ -60,8 +61,13 @@ const props = defineProps({
|
||||
function handleDetail(id) {
|
||||
let routeData = router.resolve({
|
||||
path: `/searchList/serviceDemand/detail/${id}`,
|
||||
query: {
|
||||
keyword: route.query.keyword,
|
||||
queryType: route.query.queryType,
|
||||
},
|
||||
});
|
||||
window.open(routeData.href, "_blank");
|
||||
// window.open(routeData.href, "_blank");
|
||||
router.push(routeData);
|
||||
}
|
||||
|
||||
function createdData(arr) {
|
||||
|
@ -48,8 +48,9 @@
|
||||
import { maturityOptions } from "@/utils/parameter";
|
||||
import wordcloud from "./wordcloud.vue";
|
||||
import collectAndVisit from "./collectAndVisit.vue";
|
||||
import { useRouter } from "vue-router";
|
||||
import { useRoute, useRouter } from "vue-router";
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const props = defineProps({
|
||||
data: {
|
||||
type: Object,
|
||||
@ -60,8 +61,12 @@ const props = defineProps({
|
||||
function handleDetail(id) {
|
||||
let routeData = router.resolve({
|
||||
path: `/searchList/technologyDemand/detail/${id}`,
|
||||
query: {
|
||||
keyword: route.query.keyword,
|
||||
queryType: route.query.queryType,
|
||||
},
|
||||
});
|
||||
window.open(routeData.href, "_blank");
|
||||
router.push(routeData);
|
||||
}
|
||||
|
||||
function createdData(arr) {
|
||||
|
@ -18,7 +18,8 @@
|
||||
<div class="item" v-for="item in searchResults" :key="item.id">
|
||||
<el-row type="flex" style="padding: 40px 20px">
|
||||
<div class="img">
|
||||
<img :src="item.image" alt />
|
||||
<!-- <img :src="item.image" alt /> -->
|
||||
<el-image :src="item.image"></el-image>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="tit" @click="handleDetail(item.id)">
|
||||
@ -34,7 +35,10 @@
|
||||
</div>
|
||||
<div class="line">
|
||||
企业规模:
|
||||
<span>{{ item.kind_title || "后台暂没提供" }}</span>
|
||||
<span>{{
|
||||
enterpriseOptions.find((el) => el.key == item.kind)
|
||||
?.value ?? "后台暂没提供"
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="line">
|
||||
核心产品及应用场景: <span>{{ item.product }}</span>
|
||||
@ -76,6 +80,7 @@
|
||||
<script setup>
|
||||
import WebContact from "@/components/webContact/index.vue";
|
||||
import request from "@/utils/request";
|
||||
import { enterpriseOptions } from "@/utils/parameter";
|
||||
import { search } from "@/api/website/home/index";
|
||||
import { onMounted } from "vue";
|
||||
import searchContainer from "./components/searchContainer.vue";
|
||||
@ -98,9 +103,9 @@ const queryParams = reactive({
|
||||
function handleDetail(id) {
|
||||
let routeData = router.resolve({
|
||||
path: `/searchList/enterprise/detail/${id}`,
|
||||
query: { keyword: queryParams.query },
|
||||
query: { keyword: queryParams.query, queryType: route.query.queryType },
|
||||
});
|
||||
window.open(routeData.href, "_blank");
|
||||
router.push(routeData);
|
||||
}
|
||||
|
||||
const loading = ref(true);
|
||||
@ -160,9 +165,10 @@ function createdData(arr) {
|
||||
// });
|
||||
// }
|
||||
|
||||
function handleQuery(keyword) {
|
||||
function handleQuery(state) {
|
||||
// state.keyword = keyword;
|
||||
queryParams.query = keyword;
|
||||
queryParams.query = state.currentKeyword;
|
||||
queryParams.queryType = state.queryType;
|
||||
getDataList();
|
||||
}
|
||||
function industryChange(industry) {
|
||||
@ -224,7 +230,7 @@ const getDataList = async () => {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
img {
|
||||
:deep(.el-image) {
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
border-radius: 50%;
|
||||
|
@ -21,11 +21,12 @@
|
||||
<div class="item">
|
||||
<el-row type="flex" style="padding: 40px 20px">
|
||||
<div class="img">
|
||||
<img :src="state.companyDetail.image" alt />
|
||||
<el-image :src="state.companyDetail.image"></el-image>
|
||||
<!-- <img :src="state.companyDetail.image" alt /> -->
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="tit">
|
||||
<div style="float: right">
|
||||
<div style="float: right; visibility: hidden">
|
||||
<span>匹配度</span>
|
||||
<el-rate
|
||||
style="display: inline-block"
|
||||
@ -39,7 +40,11 @@
|
||||
</div>
|
||||
<div class="line">
|
||||
企业规模:
|
||||
<span>{{ state.companyDetail.kind_title }}</span>
|
||||
<span>{{
|
||||
enterpriseOptions.find(
|
||||
(el) => el.key == state.companyDetail.kind
|
||||
)?.value ?? "后台暂未提供"
|
||||
}}</span>
|
||||
</div>
|
||||
<div class="line">
|
||||
核心产品及应用场景:
|
||||
@ -58,10 +63,10 @@
|
||||
:data="createdData(state.companyDetail.keywords)"
|
||||
></wordcloud>
|
||||
</div>
|
||||
<div class="btns">
|
||||
<!-- <div class="btns">
|
||||
<div class="order">预约对接</div>
|
||||
<div class="share">一键分享</div>
|
||||
</div>
|
||||
</div> -->
|
||||
</el-row>
|
||||
</div>
|
||||
|
||||
@ -99,7 +104,8 @@
|
||||
<div class="item" v-for="item in state.list" :key="item.id">
|
||||
<el-row type="flex" style="padding: 40px 20px">
|
||||
<div class="img">
|
||||
<img :src="item.image" alt />
|
||||
<!-- <img :src="item.image" alt /> -->
|
||||
<el-image :src="item.image" />
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="tit" @click="handleDetail(item.id)">
|
||||
@ -117,7 +123,14 @@
|
||||
</div>
|
||||
<div class="line">
|
||||
企业规模:
|
||||
<span>{{ item.kind_title || "后台暂没提供" }}</span>
|
||||
<span>{{
|
||||
enterpriseOptions.find((el) => el.key == item.kind)
|
||||
?.value ?? "后台暂未提供"
|
||||
}}</span>
|
||||
<!-- <span>{{
|
||||
enterpriseOptions.find((el) => el.key == item.kind)
|
||||
.value || "后台暂没提供"
|
||||
}}</span> -->
|
||||
</div>
|
||||
<div class="line">
|
||||
核心产品及应用场景:
|
||||
@ -148,11 +161,13 @@
|
||||
import webContact from "@/components/webContact/index.vue";
|
||||
import request from "@/utils/request";
|
||||
import { searchEnterpriseDetail } from "@/api/website/home";
|
||||
import { enterpriseOptions } from "@/utils/parameter";
|
||||
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 { useRoute, useRouter } from "vue-router";
|
||||
import { search } from "../../../api/website/home";
|
||||
const router = useRouter();
|
||||
const route = useRoute();
|
||||
const loading = ref(true);
|
||||
@ -217,26 +232,30 @@ function createdData(arr) {
|
||||
|
||||
function handleDetail(id) {
|
||||
let routeData = router.resolve({
|
||||
path: `/searchList/0/detail/${id}`,
|
||||
query: { keyword: state.keyword },
|
||||
path: `/searchList/enterprise/detail/${id}`,
|
||||
query: { keyword: state.keyword, queryType: route.query.queryType },
|
||||
});
|
||||
window.open(routeData.href, "_blank");
|
||||
// window.open(routeData.href, "_blank");
|
||||
router.push(routeData);
|
||||
}
|
||||
|
||||
function handleList(mode, keyword) {
|
||||
router.push({ path: `/searchList/${mode}`, query: { keyword } });
|
||||
router.push({
|
||||
path: `/searchList/${mode}`,
|
||||
query: { keyword, queryType: route.query.queryType },
|
||||
});
|
||||
}
|
||||
|
||||
// 首次加载数据,其后跳转页面
|
||||
let flag = true;
|
||||
|
||||
function handleQuery(keyword) {
|
||||
state.keyword = keyword;
|
||||
function handleQuery(state) {
|
||||
state.keyword = state.currentKeyword;
|
||||
if (flag) {
|
||||
getDataList();
|
||||
flag = false;
|
||||
} else {
|
||||
handleList(0, keyword);
|
||||
handleList("enterprise", state.currentKeyword);
|
||||
}
|
||||
}
|
||||
|
||||
@ -261,6 +280,17 @@ function getDataList() {
|
||||
console.log(err);
|
||||
loading.value = false;
|
||||
});
|
||||
search({
|
||||
query: route.query.keyword,
|
||||
searchType: 1,
|
||||
queryType: route.query.queryType,
|
||||
}).then((resp) => {
|
||||
const recommendList = resp.list.filter(
|
||||
(el) => el.id != state.companyDetail.id
|
||||
);
|
||||
state.list = recommendList;
|
||||
state.total = resp.total;
|
||||
});
|
||||
// companyProduct(id).then((res) => {
|
||||
// if (200 == res.code) {
|
||||
// state.companyProduct = res.data.data;
|
||||
@ -367,7 +397,7 @@ function getDataList() {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
img {
|
||||
:deep(.el-image) {
|
||||
width: 90px;
|
||||
height: 90px;
|
||||
border-radius: 50%;
|
||||
|
@ -92,8 +92,10 @@ const queryParams = reactive({
|
||||
// return l;
|
||||
// }
|
||||
|
||||
function handleQuery(keyword) {
|
||||
queryParams.query = keyword;
|
||||
function handleQuery(state) {
|
||||
// state.keyword = keyword;
|
||||
queryParams.query = state.currentKeyword;
|
||||
queryParams.queryType = state.queryType;
|
||||
getDataList();
|
||||
}
|
||||
|
||||
|
@ -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="btns">
|
||||
<div class="order">预约对接</div>
|
||||
<div class="share">一键分享</div>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<div class="detail">
|
||||
<div style="padding: 20px 0">
|
||||
@ -32,17 +32,21 @@
|
||||
<div style="padding: 20px 0">
|
||||
<div class="pointTit">研究方向</div>
|
||||
</div>
|
||||
<section v-if="state.expertDetail.researchs">
|
||||
<section v-if="state.expertDetail.research">
|
||||
<div
|
||||
v-for="item in state.expertDetail.researchs"
|
||||
v-for="item in state.expertDetail.research?.split(',') ?? []"
|
||||
class="describe"
|
||||
>
|
||||
{{ item }}
|
||||
</div>
|
||||
</section>
|
||||
<div style="padding: 20px 0">
|
||||
<div class="pointTit">专家视频</div>
|
||||
<!-- <div style="padding: 20px 0">
|
||||
<div class="pointTit">联系方式</div>
|
||||
</div>
|
||||
<div>{{ state.expertDetail.mobile }}</div> -->
|
||||
<!-- <div style="padding: 20px 0">
|
||||
<div class="pointTit">专家视频</div>
|
||||
</div> -->
|
||||
</div>
|
||||
<div v-if="state.expertDetail.id" style="padding: 20px 0">
|
||||
<el-tabs v-model="state.activeName">
|
||||
@ -306,14 +310,14 @@
|
||||
</el-tabs>
|
||||
</div>
|
||||
|
||||
<div style="padding: 20px 0">
|
||||
<!-- <div style="padding: 20px 0">
|
||||
<div class="pointTit">专家推荐</div>
|
||||
</div>
|
||||
<div>
|
||||
<section v-for="item in state.list" :key="item.id">
|
||||
<expertItem :data="item"></expertItem>
|
||||
</section>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="r">
|
||||
<webContact />
|
||||
@ -454,22 +458,25 @@ function handleDetail(id) {
|
||||
window.open(routeData.href, "_blank");
|
||||
}
|
||||
|
||||
function handleList(mode, keyword) {
|
||||
router.push({ path: `/searchList/${mode}`, query: { keyword } });
|
||||
function handleList(mode, query) {
|
||||
router.push({
|
||||
path: `/searchList/${mode}`,
|
||||
query: { query, queryType: route.query.queryType },
|
||||
});
|
||||
}
|
||||
|
||||
// 首次加载数据,其后跳转页面
|
||||
let flag = true;
|
||||
|
||||
function handleQuery(keyword) {
|
||||
function handleQuery(state) {
|
||||
// loading.value = false;
|
||||
// return;
|
||||
state.keyword = keyword;
|
||||
state.keyword = state.currentKeyword;
|
||||
if (flag) {
|
||||
getDataList();
|
||||
flag = false;
|
||||
} else {
|
||||
handleList(0, keyword);
|
||||
handleList("expert", state.currentKeyword);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -87,9 +87,10 @@ const getSearchResult = async () => {
|
||||
const resp = await search(queryParams);
|
||||
console.log(resp);
|
||||
};
|
||||
function handleQuery(keyword) {
|
||||
function handleQuery(state) {
|
||||
// state.keyword = keyword;
|
||||
queryParams.query = keyword;
|
||||
queryParams.query = state.currentKeyword;
|
||||
queryParams.queryType = state.queryType;
|
||||
getDataList();
|
||||
}
|
||||
function industryChange(industry) {
|
||||
|
@ -58,10 +58,10 @@
|
||||
:data="createdData(state.patentDetail.keywords)"
|
||||
></wordcloud>
|
||||
</div>
|
||||
<div class="btns">
|
||||
<!-- <div class="btns">
|
||||
<div class="order">预约对接</div>
|
||||
<div class="share">一键分享</div>
|
||||
</div>
|
||||
</div> -->
|
||||
</el-row>
|
||||
</div>
|
||||
|
||||
@ -178,7 +178,9 @@ const state = reactive({
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
const queryParams = reactive({
|
||||
query: "1313",
|
||||
});
|
||||
// 建议 列表前4条
|
||||
function recommend() {
|
||||
return request({
|
||||
@ -228,19 +230,22 @@ function handleDetail(id) {
|
||||
}
|
||||
|
||||
function handleList(mode, keyword) {
|
||||
router.push({ path: `/searchList/${mode}`, query: { keyword } });
|
||||
router.push({
|
||||
path: `/searchList/${mode}`,
|
||||
query: { keyword, queryType: route.query.queryType },
|
||||
});
|
||||
}
|
||||
|
||||
// 首次加载数据,其后跳转页面
|
||||
let flag = true;
|
||||
|
||||
function handleQuery(keyword) {
|
||||
state.keyword = keyword;
|
||||
function handleQuery(state) {
|
||||
state.keyword = state.currentKeyword;
|
||||
if (flag) {
|
||||
getDataList();
|
||||
flag = false;
|
||||
} else {
|
||||
handleList(0, keyword);
|
||||
handleList("patent", state.currentKeyword);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -64,8 +64,10 @@ const queryParams = reactive({
|
||||
query: route.query.keyword,
|
||||
});
|
||||
|
||||
function handleQuery(keyword) {
|
||||
queryParams.query = keyword;
|
||||
function handleQuery(state) {
|
||||
// state.keyword = keyword;
|
||||
queryParams.query = state.currentKeyword;
|
||||
queryParams.queryType = state.queryType;
|
||||
getDataList();
|
||||
}
|
||||
|
||||
|
@ -62,10 +62,10 @@
|
||||
:data="createdData(state.demandDetail.keywords)"
|
||||
></wordcloud>
|
||||
</div>
|
||||
<div class="btns">
|
||||
<!-- <div class="btns">
|
||||
<div class="order">预约对接</div>
|
||||
<div class="share">一键分享</div>
|
||||
</div>
|
||||
</div> -->
|
||||
</el-row>
|
||||
</div>
|
||||
|
||||
@ -194,19 +194,22 @@ function createdData(arr) {
|
||||
}
|
||||
|
||||
function handleList(mode, keyword) {
|
||||
router.push({ path: `/searchList/${mode}`, query: { keyword } });
|
||||
router.push({
|
||||
path: `/searchList/${mode}`,
|
||||
query: { keyword, queryType: route.query.queryType },
|
||||
});
|
||||
}
|
||||
|
||||
// 首次加载数据,其后跳转页面
|
||||
let flag = true;
|
||||
|
||||
function handleQuery(keyword) {
|
||||
state.keyword = keyword;
|
||||
function handleQuery(state) {
|
||||
state.keyword = state.currentKeyword;
|
||||
if (flag) {
|
||||
getDataList();
|
||||
flag = false;
|
||||
} else {
|
||||
handleList(0, keyword);
|
||||
handleList("serviceDemand", state.currentKeyword);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -63,8 +63,10 @@ const queryParams = reactive({
|
||||
query: route.query.keyword,
|
||||
});
|
||||
|
||||
function handleQuery(keyword) {
|
||||
queryParams.value = keyword;
|
||||
function handleQuery(state) {
|
||||
// state.keyword = keyword;
|
||||
queryParams.query = state.currentKeyword;
|
||||
queryParams.queryType = state.queryType;
|
||||
getDataList();
|
||||
}
|
||||
|
||||
|
@ -62,10 +62,10 @@
|
||||
:data="createdData(state.demandDetail.keywords)"
|
||||
></wordcloud>
|
||||
</div>
|
||||
<div class="btns">
|
||||
<!-- <div class="btns">
|
||||
<div class="order">预约对接</div>
|
||||
<div class="share">一键分享</div>
|
||||
</div>
|
||||
</div> -->
|
||||
</el-row>
|
||||
</div>
|
||||
|
||||
@ -129,19 +129,22 @@ function createdData(arr) {
|
||||
}
|
||||
|
||||
function handleList(mode, keyword) {
|
||||
router.push({ path: `/searchList/${mode}`, query: { keyword } });
|
||||
router.push({
|
||||
path: `/searchList/${mode}`,
|
||||
query: { keyword, queryType: route.query.queryType },
|
||||
});
|
||||
}
|
||||
|
||||
// 首次加载数据,其后跳转页面
|
||||
let flag = true;
|
||||
|
||||
function handleQuery(keyword) {
|
||||
state.keyword = keyword;
|
||||
function handleQuery(state) {
|
||||
state.keyword = state.currentKeyword;
|
||||
if (flag) {
|
||||
getDataList();
|
||||
flag = false;
|
||||
} else {
|
||||
handleList(0, keyword);
|
||||
handleList("technologyDemand", state.currentKeyword);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -296,6 +296,7 @@ function handleShowMore(item) {
|
||||
margin-top: 86px;
|
||||
> ul {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
li {
|
||||
cursor: pointer;
|
||||
width: calc(100% / 6);
|
||||
@ -323,6 +324,8 @@ function handleShowMore(item) {
|
||||
}
|
||||
._liBtn {
|
||||
margin-top: 36px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user