|
@@ -1,25 +1,428 @@
|
|
|
<template>
|
|
|
- <div class="main">
|
|
|
- <el-row>
|
|
|
- <el-col :span="24" class="animate__animated animate__backInRight" v-loading="loading">
|
|
|
- <custom-layout>
|
|
|
- <el-col :span="24" class="one">首页 </el-col>
|
|
|
- </custom-layout>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- </div>
|
|
|
+ <custom-layout class="main">
|
|
|
+ <el-col :span="24" class="one">
|
|
|
+ <el-image class="image" :src="chengguo" fit="fill" />
|
|
|
+ </el-col>
|
|
|
+ <div class="w_1300">
|
|
|
+ <div class="two">
|
|
|
+ <div class="twoSeacher">
|
|
|
+ <div class="twoLeft">
|
|
|
+ <span>行业</span>
|
|
|
+ </div>
|
|
|
+ <div v-if="!oneShow" class="twoRight">
|
|
|
+ <div class="label" v-for="(item, index) in plateList.slice(0, 6)" :key="index">
|
|
|
+ {{ item.label }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div v-else class="twoRight">
|
|
|
+ <div class="label" v-for="(item, index) in plateList" :key="index">
|
|
|
+ {{ item.label }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="button">
|
|
|
+ <span v-if="!oneShow" @click="oneShow = true">
|
|
|
+ <el-icon><ArrowDown /></el-icon>
|
|
|
+ </span>
|
|
|
+ <span v-else @click="oneShow = false">
|
|
|
+ <el-icon><ArrowUp /></el-icon>
|
|
|
+ </span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="twoSeacher">
|
|
|
+ <div class="twoLeft">
|
|
|
+ <span>技术领域</span>
|
|
|
+ </div>
|
|
|
+ <div class="twoRight">
|
|
|
+ <div class="label" v-for="(item, index) in typeList" :key="index">
|
|
|
+ {{ item.label }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="twoSeacher">
|
|
|
+ <div class="twoLeft">
|
|
|
+ <span>成熟度</span>
|
|
|
+ </div>
|
|
|
+ <div class="twoRight">
|
|
|
+ <div class="label" v-for="(item, index) in matureList" :key="index">
|
|
|
+ {{ item.label }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="twoSeacher">
|
|
|
+ <div class="twoLeft">
|
|
|
+ <span>出让方式</span>
|
|
|
+ </div>
|
|
|
+ <div class="twoRight">
|
|
|
+ <div class="label" v-for="(item, index) in sellList" :key="index">
|
|
|
+ {{ item.label }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="twoSeacher">
|
|
|
+ <div class="twoLeft">
|
|
|
+ <span>价格</span>
|
|
|
+ </div>
|
|
|
+ <div class="twoRight">
|
|
|
+ <div class="label" v-for="(item, index) in moneyList" :key="index">
|
|
|
+ {{ item.label }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="twoSeacher">
|
|
|
+ <div class="twoLeft">
|
|
|
+ <span>所在地</span>
|
|
|
+ </div>
|
|
|
+ <div class="twoRight">
|
|
|
+ <div class="label" v-for="(item, index) in cityList.slice(0, 15)" :key="index">
|
|
|
+ {{ item.label }}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="thr">
|
|
|
+ <div class="list" v-for="(item, index) in list" :key="index">
|
|
|
+ <div class="list_1">
|
|
|
+ <el-image class="image" :src="file[index]" fit="fill" />
|
|
|
+ <div class="box">
|
|
|
+ <p class="name textMore">{{ item.name || '暂无' }}</p>
|
|
|
+ </div>
|
|
|
+ <div class="list_2">
|
|
|
+ <div class="other">
|
|
|
+ <el-image class="image" :src="one" fit="fill" />
|
|
|
+ <div class="text">{{ item.technology || '暂无' }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="other">
|
|
|
+ <el-image class="image" :src="two" fit="fill" />
|
|
|
+ <div class="text">{{ item.type || '暂无' }}</div>
|
|
|
+ </div>
|
|
|
+ <div class="other">
|
|
|
+ <el-image class="image" :src="thr" fit="fill" />
|
|
|
+ <div class="text">{{ item.sell || '暂无' }}</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="four">
|
|
|
+ <el-pagination background layout="prev, pager, next" :total="1000" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </custom-layout>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
+// 图片引入
|
|
|
+import chengguo from '/images/chengguo.png'
|
|
|
+import bg_1 from '/images/achievement/tec_bg_1.png'
|
|
|
+import bg_2 from '/images/achievement/tec_bg_2.png'
|
|
|
+import bg_3 from '/images/achievement/tec_bg_3.png'
|
|
|
+import bg_4 from '/images/achievement/tec_bg_4.png'
|
|
|
+import bg_5 from '/images/achievement/tec_bg_6.png'
|
|
|
+import bg_6 from '/images/achievement/tec_bg_8.png'
|
|
|
+import bg_7 from '/images/achievement/tec_bg_9.png'
|
|
|
+import bg_8 from '/images/achievement/tec_bg_10.png'
|
|
|
+import bg_9 from '/images/achievement/tec_bg_7.png'
|
|
|
+import one from '/images/achievement/bg-cgyx-list-icon1.png'
|
|
|
+import two from '/images/achievement/bg-cgyx-list-icon2.png'
|
|
|
+import thr from '/images/achievement/bg-cgyx-list-icon3.png'
|
|
|
+import { getCity } from '@/utils/city'
|
|
|
import { UserStore } from '@/store/user'
|
|
|
const userStore = UserStore()
|
|
|
const user = computed(() => userStore.user)
|
|
|
-// 加载中
|
|
|
-const loading = ref(false)
|
|
|
+const $checkRes = inject('$checkRes')
|
|
|
+// 接口
|
|
|
+import { AchievementStore } from '@/store/api/platform/achievement'
|
|
|
+import { DictDataStore } from '@/store/api/system/dictData'
|
|
|
+const store = AchievementStore()
|
|
|
+const dictDataStore = DictDataStore()
|
|
|
// 路由
|
|
|
const router = useRouter()
|
|
|
+
|
|
|
+// 加载中
|
|
|
+const loading = ref(false)
|
|
|
+const file = ref([bg_1, bg_2, bg_3, bg_4, bg_5, bg_6, bg_7, bg_8, bg_9, bg_1, bg_2, bg_3])
|
|
|
+const list = ref([
|
|
|
+ {
|
|
|
+ name: '合成气乙醇发酵与应用',
|
|
|
+ technology: '工业废水处理与资源化技术',
|
|
|
+ type: '废弃资源综合利用业',
|
|
|
+ sell: '普通许可,合作开发'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '合成气乙醇发酵与应用',
|
|
|
+ technology: '工业废水处理与资源化技术',
|
|
|
+ type: '废弃资源综合利用业',
|
|
|
+ sell: '普通许可,合作开发'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '合成气乙醇发酵与应用',
|
|
|
+ technology: '工业废水处理与资源化技术',
|
|
|
+ type: '废弃资源综合利用业',
|
|
|
+ sell: '普通许可,合作开发'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '合成气乙醇发酵与应用',
|
|
|
+ technology: '工业废水处理与资源化技术',
|
|
|
+ type: '废弃资源综合利用业',
|
|
|
+ sell: '普通许可,合作开发'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '合成气乙醇发酵与应用',
|
|
|
+ technology: '工业废水处理与资源化技术',
|
|
|
+ type: '废弃资源综合利用业',
|
|
|
+ sell: '普通许可,合作开发'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '合成气乙醇发酵与应用',
|
|
|
+ technology: '工业废水处理与资源化技术',
|
|
|
+ type: '废弃资源综合利用业',
|
|
|
+ sell: '普通许可,合作开发'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '合成气乙醇发酵与应用',
|
|
|
+ technology: '工业废水处理与资源化技术',
|
|
|
+ type: '废弃资源综合利用业',
|
|
|
+ sell: '普通许可,合作开发'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '合成气乙醇发酵与应用',
|
|
|
+ technology: '工业废水处理与资源化技术',
|
|
|
+ type: '废弃资源综合利用业',
|
|
|
+ sell: '普通许可,合作开发'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '合成气乙醇发酵与应用',
|
|
|
+ technology: '工业废水处理与资源化技术',
|
|
|
+ type: '废弃资源综合利用业',
|
|
|
+ sell: '普通许可,合作开发'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '合成气乙醇发酵与应用',
|
|
|
+ technology: '工业废水处理与资源化技术',
|
|
|
+ type: '废弃资源综合利用业',
|
|
|
+ sell: '普通许可,合作开发'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '深地工程综合无损检测关键技术与装备',
|
|
|
+ technology: '工业废水处理与资源化技术',
|
|
|
+ type: '废弃资源综合利用业',
|
|
|
+ sell: '普通许可,合作开发'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ name: '合成气乙醇发酵与应用',
|
|
|
+ technology: '工业废水处理与资源化技术',
|
|
|
+ type: '废弃资源综合利用业',
|
|
|
+ sell: '普通许可,合作开发'
|
|
|
+ }
|
|
|
+])
|
|
|
+// 是否展开
|
|
|
+const oneShow = ref(false)
|
|
|
+// 字典表
|
|
|
+const fieldList = ref([])
|
|
|
+const moneyList = ref([])
|
|
|
+const matureList = ref([])
|
|
|
+const sellList = ref([])
|
|
|
+const technologyList = ref([])
|
|
|
+const cityList = ref([])
|
|
|
+const typeList = ref([
|
|
|
+ { label: '不限', value: '-1' },
|
|
|
+ { 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' }
|
|
|
+])
|
|
|
+const plateList = ref([
|
|
|
+ { label: '不限', value: '-1' },
|
|
|
+ { 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' }
|
|
|
+])
|
|
|
+// 请求
|
|
|
+onMounted(async () => {
|
|
|
+ loading.value = true
|
|
|
+ await searchOther()
|
|
|
+
|
|
|
+ await search()
|
|
|
+ loading.value = false
|
|
|
+})
|
|
|
+const search = async () => {}
|
|
|
+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: 'mature', is_use: '0' })
|
|
|
+ if ($checkRes(result)) matureList.value = result.data
|
|
|
+ // 出让方式
|
|
|
+ result = await dictDataStore.query({ code: 'sell', is_use: '0' })
|
|
|
+ if ($checkRes(result)) sellList.value = result.data
|
|
|
+ // 技术分类
|
|
|
+ result = await dictDataStore.query({ code: 'technology', is_use: '0' })
|
|
|
+ if ($checkRes(result)) technologyList.value = result.data
|
|
|
+ // 价格
|
|
|
+ result = await dictDataStore.query({ code: 'money', is_use: '0' })
|
|
|
+ if ($checkRes(result)) moneyList.value = result.data
|
|
|
+ matureList.value.unshift({ value: '-1', label: '不限' })
|
|
|
+ sellList.value.unshift({ value: '-1', label: '不限' })
|
|
|
+ // 城市
|
|
|
+ getCity().then(
|
|
|
+ (response) => (cityList.value = [{ label: '不限', value: '-1' }, ...response.address])
|
|
|
+ )
|
|
|
+}
|
|
|
+// 查看详情
|
|
|
+const toView = async (item) => {
|
|
|
+ router.push({ path: '/industry/detail', query: { id: item.id || item._id } })
|
|
|
+}
|
|
|
</script>
|
|
|
<style scoped lang="scss">
|
|
|
.main {
|
|
|
+ .w_1300 {
|
|
|
+ margin: 0 auto;
|
|
|
+ width: 1300px;
|
|
|
+ }
|
|
|
+ .one {
|
|
|
+ .image {
|
|
|
+ width: 100%;
|
|
|
+ height: 350px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .two {
|
|
|
+ margin: 10px 0;
|
|
|
+ background-color: $global-color-fff;
|
|
|
+ .twoSeacher {
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: stretch;
|
|
|
+ position: relative;
|
|
|
+ border: solid 1px #e5e5e5;
|
|
|
+ border-bottom: 0;
|
|
|
+ font-size: $global-font-size-18;
|
|
|
+ color: #666;
|
|
|
+ min-height: 60px;
|
|
|
+ overflow: hidden;
|
|
|
+ .twoLeft {
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ align-items: center;
|
|
|
+ flex-shrink: 0;
|
|
|
+ width: 110px;
|
|
|
+ text-align: center;
|
|
|
+ color: #000;
|
|
|
+ font-weight: bold;
|
|
|
+ background-color: #fafafa;
|
|
|
+ }
|
|
|
+ .twoRight {
|
|
|
+ display: flex;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ align-items: center;
|
|
|
+ padding: 12px;
|
|
|
+ flex: 1;
|
|
|
+ border-left: solid 1px #e5e5e5;
|
|
|
+ background-color: #fff;
|
|
|
+ .label {
|
|
|
+ color: #313131;
|
|
|
+ margin-bottom: 10px;
|
|
|
+ padding: 8px 10px;
|
|
|
+ border-radius: 3px;
|
|
|
+ background-color: #fff;
|
|
|
+ border: solid 1px transparent;
|
|
|
+ cursor: pointer;
|
|
|
+ }
|
|
|
+ .label:first-child {
|
|
|
+ color: #0a58c2;
|
|
|
+ border: solid 1px #006dd2;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .button {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .twoSeacher:last-child {
|
|
|
+ border: solid 1px #e5e5e5;
|
|
|
+ border-bottom: 1 !important;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .thr {
|
|
|
+ margin: 10px 0;
|
|
|
+ display: flex;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ align-items: center;
|
|
|
+ .list {
|
|
|
+ margin-right: 10px;
|
|
|
+ margin-bottom: 15px;
|
|
|
+ padding-top: 3px;
|
|
|
+ width: 317px;
|
|
|
+ height: 325px;
|
|
|
+ background-color: #fff;
|
|
|
+ box-shadow: 0 2px 5px 0 rgba(159, 158, 158, 0.3);
|
|
|
+ .list_1 {
|
|
|
+ position: relative;
|
|
|
+
|
|
|
+ .image {
|
|
|
+ height: 100%;
|
|
|
+ width: 100%;
|
|
|
+ }
|
|
|
+ .box {
|
|
|
+ display: flex !important;
|
|
|
+ align-items: center;
|
|
|
+ position: absolute;
|
|
|
+ top: 45px;
|
|
|
+ left: 0;
|
|
|
+ padding: 15px 10px;
|
|
|
+ width: 100%;
|
|
|
+ height: 82px;
|
|
|
+ background-color: rgba(0, 25, 79, 0.5);
|
|
|
+ font-size: $global-font-size-18;
|
|
|
+ line-height: 24px;
|
|
|
+ color: #fff;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .list_2 {
|
|
|
+ margin: 10px 13px 0;
|
|
|
+ .other {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin: 0 0 5px 0;
|
|
|
+ .image {
|
|
|
+ width: 25px;
|
|
|
+ height: 25px;
|
|
|
+ margin: 0 5px 0 0;
|
|
|
+ }
|
|
|
+ .text {
|
|
|
+ font-size: $global-font-size-16;
|
|
|
+ line-height: 32px;
|
|
|
+ color: #404040;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .list:nth-child(4n) {
|
|
|
+ margin-right: 0;
|
|
|
+ }
|
|
|
+ .list:hover {
|
|
|
+ box-shadow: 0 2px 5px 0 rgba(159, 158, 158, 0.8);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .four {
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ margin: 20px 0;
|
|
|
+ }
|
|
|
}
|
|
|
</style>
|