Files
2022-10-31 17:46:09 +08:00

197 lines
5.6 KiB
Vue

<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>
<!-- <el-row :gutter="20">
<el-col
:xs="12"
:sm="6"
:lg="4"
style="margin-top: 20px"
v-for="item in 10"
:key="item"
>
<div style="border: 1px solid #787878">
<div style="text-align: right">
<el-tag type="warning" effect="dark" style="border-radius: 0">
7.8
</el-tag>
</div>
<div style="padding: 10px">
<div class="ellipsis">
高碳当量高强度灰铁材质研发高碳当量高强度灰铁材质研发
</div>
<div
style="
margin: 10px 0;
display: flex;
justify-content: space-between;
"
>
<el-tag type="info" effect="plain">所属领域</el-tag>
<el-tag type="info" effect="plain">普通企业需求</el-tag>
</div>
<div style="margin-bottom: 10px">研发类型:</div>
<div>截止时间:</div>
</div>
<div class="btn_info pointer">查看详情</div>
</div>
</el-col>
</el-row> -->
<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";
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;
}
});
const data = reactive({
queryParams: {
pageNum: 1,
pageSize: 10,
query: route.query.keyword,
searchType: "1",
queryType: queryType,
},
});
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);
dataList.value = resp.list;
total.value = resp.total;
loading.value = false;
}
/** 搜索按钮操作 */
function handleQuery() {
queryParams.value.pageNum = 1;
getList();
}
/** 删除按钮操作 */
// function handleDelete(id) {
// proxy.$modal
// .confirm('是否确认删除订单号为"' + id + '"的数据项?')
// .then(function () {
// return delPost(postIds);
// })
// .then(() => {
// getList();
// proxy.$modal.msgSuccess("删除成功");
// })
// .catch(() => {});
// }
// function handleResults(id) {
// router.push({ path: "./results" });
// }
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>