|
@@ -0,0 +1,451 @@
|
|
|
+<template>
|
|
|
+ <div id="index">
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24" class="main animate__animated animate__backInRight">
|
|
|
+ <el-col :span="24" class="idemand">
|
|
|
+ <el-image class="image" :src="demand" fit="fill" />
|
|
|
+ </el-col>
|
|
|
+ <div class="w_1200">
|
|
|
+ <el-col :span="24" class="one">
|
|
|
+ <el-row class="one_1" v-for="(val, indexs) in searchList" :key="indexs">
|
|
|
+ <el-col :span="3" class="left">{{ val.title }}</el-col>
|
|
|
+ <el-col :span="21" class="right">
|
|
|
+ <a-button
|
|
|
+ class="title"
|
|
|
+ v-for="(item, index) in val.list"
|
|
|
+ :key="index"
|
|
|
+ type="link"
|
|
|
+ size="samll"
|
|
|
+ >
|
|
|
+ {{ item.label }}
|
|
|
+ </a-button>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" class="two">
|
|
|
+ <el-col
|
|
|
+ :span="24"
|
|
|
+ class="list"
|
|
|
+ v-for="(item, index) in list"
|
|
|
+ :key="index"
|
|
|
+ @click="toView(item)"
|
|
|
+ >
|
|
|
+ <el-col :span="4" class="left">
|
|
|
+ <el-image class="image" :src="item.url" fit="fill" />
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="20" class="right">
|
|
|
+ <el-col :span="24" class="right_1">
|
|
|
+ <div class="name">{{ item.name }}</div>
|
|
|
+ <el-tag :type="[item.status == '0' ? 'success' : 'info']">{{
|
|
|
+ getDict(item.status, 'status')
|
|
|
+ }}</el-tag>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" class="right_2">
|
|
|
+ <el-tag v-for="(val, indexs) in item.tags" :key="indexs" type="primary">{{
|
|
|
+ val
|
|
|
+ }}</el-tag>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" class="right_3">
|
|
|
+ <el-col :span="4" class="info">
|
|
|
+ 法定代表人:<span>{{ item.representative || '暂无' }}</span>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="4" class="info">
|
|
|
+ 成立日期:{{ item.create_time || '暂无' }}
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8" class="info">
|
|
|
+ 统一社会信用代码:{{ item.code || '暂无' }}
|
|
|
+ </el-col>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" class="right_3">
|
|
|
+ <el-col :span="8" class="info">电话:{{ item.phone || '暂无' }}</el-col>
|
|
|
+ <el-col :span="8" class="info">邮箱:{{ item.email || '暂无' }}</el-col>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" class="right_3"> 地址:{{ item.address || '暂无' }} </el-col>
|
|
|
+ </el-col>
|
|
|
+ </el-col>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="24" class="thr">
|
|
|
+ <el-pagination
|
|
|
+ background
|
|
|
+ layout="total, prev, pager, next"
|
|
|
+ :page-sizes="[10, 20, 50, 100, 200]"
|
|
|
+ :total="total"
|
|
|
+ :page-size="limit"
|
|
|
+ v-model:current-page="currentPage"
|
|
|
+ @current-change="changePage"
|
|
|
+ @size-change="sizeChange"
|
|
|
+ >
|
|
|
+ </el-pagination>
|
|
|
+ </el-col>
|
|
|
+ </div>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script setup>
|
|
|
+const $checkRes = inject('$checkRes')
|
|
|
+import { get } from 'lodash-es'
|
|
|
+// 接口
|
|
|
+import { DemandStore } from '@/store/api/platform/demand'
|
|
|
+import { DictDataStore } from '@/store/api/system/dictData'
|
|
|
+const store = DemandStore()
|
|
|
+const dictDataStore = DictDataStore()
|
|
|
+// 图片引入
|
|
|
+import demand from '@/assets/innovation.png'
|
|
|
+// 图片引入
|
|
|
+import science from '@/assets/bg.png'
|
|
|
+// 路由
|
|
|
+const router = useRouter()
|
|
|
+// 加载中
|
|
|
+const loading = ref(false)
|
|
|
+// 列表
|
|
|
+const list = ref([
|
|
|
+ {
|
|
|
+ name: '努比亚技术有限公司 ',
|
|
|
+ url: science,
|
|
|
+ tags: ['战略投资', '国家高新技术企业', '创新型中小企业', '国家级专利奖'],
|
|
|
+ code: ' 914403007320587423',
|
|
|
+ phone: '075************',
|
|
|
+ type: '0',
|
|
|
+ representative: '倪飞',
|
|
|
+ email: 'xie.giang@nubia.com',
|
|
|
+ person: '1万人以上',
|
|
|
+ address: '深圳市南山区桃源街道福光社区留仙大道3370号南山智园崇文园区2号楼1801',
|
|
|
+ create_time: '2001-09-12',
|
|
|
+ status: '0'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '努比亚技术有限公司 ',
|
|
|
+ url: science,
|
|
|
+ tags: ['战略投资', '国家高新技术企业', '创新型中小企业', '国家级专利奖'],
|
|
|
+ code: ' 914403007320587423',
|
|
|
+ phone: '075************',
|
|
|
+ type: '0',
|
|
|
+ representative: '倪飞',
|
|
|
+ email: 'xie.giang@nubia.com',
|
|
|
+ person: '1万人以上',
|
|
|
+ address: '深圳市南山区桃源街道福光社区留仙大道3370号南山智园崇文园区2号楼1801',
|
|
|
+ create_time: '2001-09-12',
|
|
|
+ status: '0'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '努比亚技术有限公司 ',
|
|
|
+ url: science,
|
|
|
+ tags: ['战略投资', '国家高新技术企业', '创新型中小企业', '国家级专利奖'],
|
|
|
+ code: ' 914403007320587423',
|
|
|
+ phone: '075************',
|
|
|
+ type: '0',
|
|
|
+ representative: '倪飞',
|
|
|
+ email: 'xie.giang@nubia.com',
|
|
|
+ person: '1万人以上',
|
|
|
+ address: '深圳市南山区桃源街道福光社区留仙大道3370号南山智园崇文园区2号楼1801',
|
|
|
+ create_time: '2001-09-12',
|
|
|
+ status: '0'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '努比亚技术有限公司 ',
|
|
|
+ url: science,
|
|
|
+ tags: ['战略投资', '国家高新技术企业', '创新型中小企业', '国家级专利奖'],
|
|
|
+ code: ' 914403007320587423',
|
|
|
+ phone: '075************',
|
|
|
+ type: '0',
|
|
|
+ representative: '倪飞',
|
|
|
+ email: 'xie.giang@nubia.com',
|
|
|
+ person: '1万人以上',
|
|
|
+ address: '深圳市南山区桃源街道福光社区留仙大道3370号南山智园崇文园区2号楼1801',
|
|
|
+ create_time: '2001-09-12',
|
|
|
+ status: '0'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '努比亚技术有限公司 ',
|
|
|
+ url: science,
|
|
|
+ tags: ['战略投资', '国家高新技术企业', '创新型中小企业', '国家级专利奖'],
|
|
|
+ code: ' 914403007320587423',
|
|
|
+ phone: '075************',
|
|
|
+ type: '0',
|
|
|
+ representative: '倪飞',
|
|
|
+ email: 'xie.giang@nubia.com',
|
|
|
+ person: '1万人以上',
|
|
|
+ address: '深圳市南山区桃源街道福光社区留仙大道3370号南山智园崇文园区2号楼1801',
|
|
|
+ create_time: '2001-09-12',
|
|
|
+ status: '0'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '努比亚技术有限公司 ',
|
|
|
+ url: science,
|
|
|
+ tags: ['战略投资', '国家高新技术企业', '创新型中小企业', '国家级专利奖'],
|
|
|
+ code: ' 914403007320587423',
|
|
|
+ phone: '075************',
|
|
|
+ type: '0',
|
|
|
+ representative: '倪飞',
|
|
|
+ email: 'xie.giang@nubia.com',
|
|
|
+ person: '1万人以上',
|
|
|
+ address: '深圳市南山区桃源街道福光社区留仙大道3370号南山智园崇文园区2号楼1801',
|
|
|
+ create_time: '2001-09-12',
|
|
|
+ status: '0'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '努比亚技术有限公司 ',
|
|
|
+ url: science,
|
|
|
+ tags: ['战略投资', '国家高新技术企业', '创新型中小企业', '国家级专利奖'],
|
|
|
+ code: ' 914403007320587423',
|
|
|
+ phone: '075************',
|
|
|
+ type: '0',
|
|
|
+ representative: '倪飞',
|
|
|
+ email: 'xie.giang@nubia.com',
|
|
|
+ person: '1万人以上',
|
|
|
+ address: '深圳市南山区桃源街道福光社区留仙大道3370号南山智园崇文园区2号楼1801',
|
|
|
+ create_time: '2001-09-12',
|
|
|
+ status: '0'
|
|
|
+ }
|
|
|
+])
|
|
|
+let skip = 0
|
|
|
+let limit = inject('limit')
|
|
|
+const total = ref(20)
|
|
|
+// 字典表
|
|
|
+const fieldList = ref([])
|
|
|
+const statusList = ref([])
|
|
|
+const searchList = ref([
|
|
|
+ {
|
|
|
+ title: '注册资本',
|
|
|
+ list: [
|
|
|
+ { value: '0', label: '0~100万' },
|
|
|
+ { value: '1', label: '100~200万' },
|
|
|
+ { value: '2', label: '200~500万' },
|
|
|
+ { value: '3', label: '500~1000万' },
|
|
|
+ { value: '4', label: '1000万以上' }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '成立时间',
|
|
|
+ list: [
|
|
|
+ { value: '0', label: '成立1年内' },
|
|
|
+ { value: '1', label: '1~2年成立' },
|
|
|
+ { value: '2', label: '2~3年成立' },
|
|
|
+ { value: '3', label: '3~5年成立' },
|
|
|
+ { value: '4', label: '5年以上' }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '省份地区',
|
|
|
+ list: [
|
|
|
+ { value: '0', label: '北京市' },
|
|
|
+ { value: '1', label: '天津市' },
|
|
|
+ { value: '2', label: '河北省' },
|
|
|
+ { value: '3', label: '山西省' },
|
|
|
+ { value: '4', label: '内蒙古自治区' },
|
|
|
+ { value: '5', label: '辽宁省' },
|
|
|
+ { value: '6', label: '吉林省' },
|
|
|
+ { value: '7', label: '上海市' },
|
|
|
+ { value: '8', label: '江苏省' },
|
|
|
+ { value: '9', label: '浙江省' },
|
|
|
+ { value: '10', label: '安徽省' },
|
|
|
+ { value: '11', label: '福建省' },
|
|
|
+ { value: '0', label: '江西省' },
|
|
|
+ { value: '1', label: '山东省' },
|
|
|
+ { value: '2', label: '河南省' },
|
|
|
+ { value: '3', label: '湖北省' },
|
|
|
+ { value: '4', label: '湖南省' },
|
|
|
+ { value: '5', label: '广东省' },
|
|
|
+ { value: '6', label: '广西壮族自治区' },
|
|
|
+ { value: '7', label: '海南省' },
|
|
|
+ { value: '8', label: '重庆市' },
|
|
|
+ { value: '9', label: '四川省' },
|
|
|
+ { value: '10', label: '贵州省' },
|
|
|
+ { value: '11', label: '云南省' }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title: '行业分类',
|
|
|
+ list: [
|
|
|
+ { value: '0', label: '农、林、牧、渔业' },
|
|
|
+ { value: '1', label: '采矿业' },
|
|
|
+ { value: '2', label: '制造业' },
|
|
|
+ { value: '3', label: '电力、热力、燃气及水生产和供应业' },
|
|
|
+ { value: '4', label: '建筑业' },
|
|
|
+ { value: '5', label: '批发和零售业' }
|
|
|
+ ]
|
|
|
+ }
|
|
|
+])
|
|
|
+// 查看
|
|
|
+const toView = (item) => {
|
|
|
+ router.push({ path: '/demand/detail', query: { id: item.id || item._id } })
|
|
|
+}
|
|
|
+// 请求
|
|
|
+onMounted(async () => {
|
|
|
+ loading.value = true
|
|
|
+ await searchOther()
|
|
|
+ await search({ skip, limit })
|
|
|
+ loading.value = false
|
|
|
+})
|
|
|
+const searchOther = async () => {
|
|
|
+ let result
|
|
|
+ // 技术领域
|
|
|
+ result = await dictDataStore.query({ code: 'field', is_use: '0' })
|
|
|
+ if ($checkRes(result)) fieldList.value = result.data
|
|
|
+ // 企业状态
|
|
|
+ result = await dictDataStore.query({ code: 'companyStatus', is_use: '0' })
|
|
|
+ if ($checkRes(result)) statusList.value = result.data
|
|
|
+}
|
|
|
+const search = async (query = { skip: 0, limit }) => {
|
|
|
+ // const info = {
|
|
|
+ // skip: query.skip,
|
|
|
+ // limit: query.limit,
|
|
|
+ // ...searchForm.value,
|
|
|
+ // is_use: '0',
|
|
|
+ // status: '1'
|
|
|
+ // }
|
|
|
+ // const res = await store.query(info)
|
|
|
+ // if (res.errcode == '0') {
|
|
|
+ // list.value = res.data
|
|
|
+ // total.value = res.total
|
|
|
+ // }
|
|
|
+}
|
|
|
+// 字典数据转换
|
|
|
+const getDict = (data, model) => {
|
|
|
+ let res
|
|
|
+ if (model == 'field') res = fieldList.value.find((f) => f.value == data)
|
|
|
+ else if (model == 'status') res = statusList.value.find((f) => f.value == data)
|
|
|
+ return get(res, 'label')
|
|
|
+}
|
|
|
+// 地区显示
|
|
|
+const getArea = (data) => {
|
|
|
+ if (data) return data.join(',')
|
|
|
+}
|
|
|
+const currentPage = ref(1)
|
|
|
+// 分页
|
|
|
+const changePage = (page = currentPage.value) => {
|
|
|
+ search({ skip: (page - 1) * limit, limit: limit })
|
|
|
+}
|
|
|
+const sizeChange = (limits) => {
|
|
|
+ limit = limits
|
|
|
+ currentPage.value = 1
|
|
|
+ search({ skip: 0, limit: limit })
|
|
|
+}
|
|
|
+</script>
|
|
|
+<style lang="scss" scoped>
|
|
|
+.main {
|
|
|
+ background: rgb(248, 248, 248);
|
|
|
+
|
|
|
+ .idemand {
|
|
|
+ .image {
|
|
|
+ width: 100%;
|
|
|
+ height: 200px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .one {
|
|
|
+ background: #ffffff;
|
|
|
+ border-radius: 10px;
|
|
|
+ padding: 15px;
|
|
|
+ margin: 10px 0 0 0;
|
|
|
+
|
|
|
+ .one_1 {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ padding: 10px 0;
|
|
|
+ border-bottom: #9d9898 1px dashed;
|
|
|
+
|
|
|
+ .left {
|
|
|
+ background: #778cb3;
|
|
|
+ border-radius: 15px;
|
|
|
+ line-height: 26px;
|
|
|
+ color: #fff;
|
|
|
+ text-align: center;
|
|
|
+ overflow: hidden;
|
|
|
+ white-space: nowrap;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ font-family: PingFangSC-Medium;
|
|
|
+ }
|
|
|
+
|
|
|
+ .right {
|
|
|
+ .title {
|
|
|
+ color: #666;
|
|
|
+ font-size: 14px;
|
|
|
+ line-height: 15px;
|
|
|
+ margin: 0 10px;
|
|
|
+ display: inline-block;
|
|
|
+ overflow: hidden;
|
|
|
+ text-decoration: none;
|
|
|
+ }
|
|
|
+
|
|
|
+ .title:hover {
|
|
|
+ color: #2374ff;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .two {
|
|
|
+ margin-top: 20px;
|
|
|
+ background: #ffffff;
|
|
|
+ border-radius: 10px;
|
|
|
+ padding: 15px;
|
|
|
+
|
|
|
+ .list {
|
|
|
+ display: flex;
|
|
|
+ margin: 5px 0 0 0;
|
|
|
+ padding: 5px;
|
|
|
+ border-radius: 8px;
|
|
|
+ border: 1px solid #f4f4f4;
|
|
|
+ .left {
|
|
|
+ text-align: center;
|
|
|
+ .image {
|
|
|
+ width: 150px;
|
|
|
+ height: 150px;
|
|
|
+ border-radius: 10px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .right {
|
|
|
+ padding: 5px;
|
|
|
+ .right_1 {
|
|
|
+ display: flex;
|
|
|
+ align-content: center;
|
|
|
+ .name {
|
|
|
+ word-break: break-all;
|
|
|
+ font-size: 18px;
|
|
|
+ font-family:
|
|
|
+ PingFangSC-Regular,
|
|
|
+ PingFang SC;
|
|
|
+ font-weight: 500;
|
|
|
+ line-height: 24px;
|
|
|
+ width: 175px;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ display: -webkit-box;
|
|
|
+ -webkit-line-clamp: 2;
|
|
|
+ -webkit-box-orient: vertical;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .right_2 {
|
|
|
+ grid-gap: 0.5rem;
|
|
|
+ gap: 0.5rem;
|
|
|
+ display: flex;
|
|
|
+ margin: 10px 0;
|
|
|
+ }
|
|
|
+ .right_3 {
|
|
|
+ display: flex;
|
|
|
+ margin: 10px 0;
|
|
|
+ font-size: 14px;
|
|
|
+ font-family:
|
|
|
+ PingFangSC-Regular,
|
|
|
+ PingFang SC;
|
|
|
+ color: #666;
|
|
|
+ .info {
|
|
|
+ span {
|
|
|
+ color: #2171f6;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .thr {
|
|
|
+ display: flex;
|
|
|
+ flex-direction: row-reverse;
|
|
|
+ padding: 20px;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|