|
@@ -1,6 +1,9 @@
|
|
|
<template>
|
|
|
- <custom-layout class="main" v-loading="loading">
|
|
|
- <div class="w_1700 one">
|
|
|
+ <custom-layout class="main">
|
|
|
+ <div class="loading" v-if="loading">
|
|
|
+ <el-image class="image" :src="load" fit="fill" />
|
|
|
+ </div>
|
|
|
+ <div class="w_1700 one" v-else>
|
|
|
<div class="left">
|
|
|
<div class="titleOne">
|
|
|
<el-image class="image" :src="left" fit="fill" />
|
|
@@ -26,7 +29,8 @@
|
|
|
<span class="textOne">{{ item.source || '暂无来源' }}</span>
|
|
|
</div>
|
|
|
<div class="button">
|
|
|
- <div @click="toView(item, '0')" class="detail">查看详情</div>
|
|
|
+ <div @click="toView(item, '0')" class="detail1">查看详情</div>
|
|
|
+ <div @click="toMate(item, '0')" class="detail2">匹配</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<el-col :span="24" class="page">
|
|
@@ -42,7 +46,7 @@
|
|
|
<div v-else class="leftOne">
|
|
|
<div class="list" v-for="(item, index) in demandList" :key="index">
|
|
|
<div class="title">
|
|
|
- {{ item.name || '暂无供给名称' }}
|
|
|
+ {{ item.name || '暂无需求名称' }}
|
|
|
</div>
|
|
|
<div class="other_1" v-if="user && user.id">
|
|
|
<span>需求企业:</span>
|
|
@@ -61,7 +65,8 @@
|
|
|
<span class="textOne">{{ item.money || '面议' }}</span>
|
|
|
</div>
|
|
|
<div class="button">
|
|
|
- <div @click="toView(item, '1')" class="detail">查看详情</div>
|
|
|
+ <div @click="toView(item, '1')" class="detail1">查看详情</div>
|
|
|
+ <div @click="toMate(item, '1')" class="detail2">匹配</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<el-col :span="24" class="page">
|
|
@@ -70,45 +75,127 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="center"></div>
|
|
|
- <div class="right">
|
|
|
- <div class="titleOne">
|
|
|
- <el-image class="image" :src="left" fit="fill" />
|
|
|
- <div class="title_center">匹配结果</div>
|
|
|
- <el-image class="image" :src="right" fit="fill" />
|
|
|
+ <div class="right" v-if="oneTotal > 0 || twoTotal > 0">
|
|
|
+ <div class="rightOne" v-if="oneTotal > 0">
|
|
|
+ <div class="titleOne">
|
|
|
+ <el-image class="image" :src="left" fit="fill" />
|
|
|
+ <div class="title_center">成果匹配结果</div>
|
|
|
+ <el-image class="image" :src="right" fit="fill" />
|
|
|
+ </div>
|
|
|
+ <div class="rightContent">
|
|
|
+ <div class="list" v-for="(item, index) in oneList" :key="index">
|
|
|
+ <div class="title">
|
|
|
+ {{ item.name || '暂无成果名称' }}
|
|
|
+ </div>
|
|
|
+ <div class="other_1" v-if="user && user.id">
|
|
|
+ <span>技术领域:</span>
|
|
|
+ <span class="textOne">{{ item.field || '暂无技术领域' }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="other_1" v-if="user && user.id">
|
|
|
+ <span>负责人:</span>
|
|
|
+ <span class="textOne">{{ item.person || '暂无负责人' }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="other_1" v-if="user && user.id">
|
|
|
+ <span>所在地:</span>
|
|
|
+ <span class="textOne">{{ getArea(item.area) || '暂无所在地' }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="other_1" v-if="user && user.id">
|
|
|
+ <span>推荐指数:</span>
|
|
|
+ <el-rate size="large" v-model="item._recommend" disabled show-score text-color="#ff9900" :score-template="`${item._recommend} 星`" />
|
|
|
+ </div>
|
|
|
+ <div class="button">
|
|
|
+ <div @click="toView(item, '2')" class="detail1">查看详情</div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-col :span="24" class="page">
|
|
|
+ <el-pagination background layout="prev, pager, next" :total="oneTotal" :page-size="onelimit" v-model:current-page="onecurrentPage" @current-change="onechangePage" @size-change="onesizeChange" />
|
|
|
+ </el-col>
|
|
|
</div>
|
|
|
- <div class="rightOne">
|
|
|
- <div class="list" v-for="(item, index) in list" :key="index">
|
|
|
- <div class="list_1">
|
|
|
- <el-rate size="large" v-model="item.rate" disabled show-score text-color="#ff9900" :score-template="item.score" />
|
|
|
+ <div class="rightOne" v-if="twoTotal > 0 && dataType == '0'">
|
|
|
+ <div class="titleOne">
|
|
|
+ <el-image class="image" :src="left" fit="fill" />
|
|
|
+ <div class="title_center">需求匹配结果</div>
|
|
|
+ <el-image class="image" :src="right" fit="fill" />
|
|
|
+ </div>
|
|
|
+ <div class="rightContent">
|
|
|
+ <div class="list" v-for="(item, index) in twoList" :key="index">
|
|
|
+ <div class="title">
|
|
|
+ {{ item.name || '暂无供给名称' }}
|
|
|
+ </div>
|
|
|
+ <div class="other_1" v-if="user && user.id">
|
|
|
+ <span>需求企业:</span>
|
|
|
+ <span class="textOne">{{ item.company || '暂无需求企业' }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="other_1" v-if="user && user.id">
|
|
|
+ <span>技术领域:</span>
|
|
|
+ <span class="textOne">{{ item.field || '暂无技术领域' }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="other_1" v-if="user && user.id">
|
|
|
+ <span>所在地:</span>
|
|
|
+ <span class="textOne">{{ getArea(item.area) || '暂无所在地' }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="other_1" v-if="user && user.id">
|
|
|
+ <span>投入预算:</span>
|
|
|
+ <span class="textOne">{{ item.money || '面议' }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="other_1" v-if="user && user.id">
|
|
|
+ <span>推荐指数:</span>
|
|
|
+ <el-rate size="large" v-model="item._recommend" disabled show-score text-color="#ff9900" :score-template="`${item._recommend} 星`" />
|
|
|
+ </div>
|
|
|
+ <div class="button">
|
|
|
+ <div @click="toView(item, '1')" class="detail1">查看详情</div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <div class="list_2">
|
|
|
- <div class="tabulation" v-for="(tags, indexs) in item.list" :key="indexs">
|
|
|
- <div class="title">
|
|
|
- {{ tags.name || '暂无供给名称' }}
|
|
|
- </div>
|
|
|
- <div class="other_1" v-if="user && user.id">
|
|
|
- <span>需求企业:</span>
|
|
|
- <span class="textOne">{{ tags.company || '暂无需求企业' }}</span>
|
|
|
- </div>
|
|
|
- <div class="other_1" v-if="user && user.id">
|
|
|
- <span>技术领域:</span>
|
|
|
- <span class="textOne">{{ tags.field || '暂无技术领域' }}</span>
|
|
|
- </div>
|
|
|
- <div class="other_1" v-if="user && user.id">
|
|
|
- <span>所在地:</span>
|
|
|
- <span class="textOne">{{ getArea(tags.area) || '暂无所在地' }}</span>
|
|
|
- </div>
|
|
|
- <div class="other_1" v-if="user && user.id">
|
|
|
- <span>投入预算:</span>
|
|
|
- <span class="textOne">{{ tags.money || '面议' }}</span>
|
|
|
- </div>
|
|
|
- <div class="button">
|
|
|
- <div @click="toView(tags, '1')" class="detail">查看详情</div>
|
|
|
- </div>
|
|
|
+ </div>
|
|
|
+ <el-col :span="24" class="page">
|
|
|
+ <el-pagination background layout="prev, pager, next" :total="twoTotal" :page-size="twolimit" v-model:current-page="twocurrentPage" @current-change="twochangePage" @size-change="twosizeChange" />
|
|
|
+ </el-col>
|
|
|
+ </div>
|
|
|
+ <div class="rightOne" v-if="twoTotal > 0 && dataType == '1'">
|
|
|
+ <div class="titleOne">
|
|
|
+ <el-image class="image" :src="left" fit="fill" />
|
|
|
+ <div class="title_center">供给匹配结果</div>
|
|
|
+ <el-image class="image" :src="right" fit="fill" />
|
|
|
+ </div>
|
|
|
+ <div class="rightContent">
|
|
|
+ <div class="list" v-for="(item, index) in twoList" :key="index">
|
|
|
+ <div class="title">
|
|
|
+ {{ item.name || '暂无供给名称' }}
|
|
|
+ </div>
|
|
|
+ <div class="other_1" v-if="user && user.id">
|
|
|
+ <span>技术领域:</span>
|
|
|
+ <span class="textOne">{{ item.field || '暂无技术领域' }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="other_1" v-if="user && user.id">
|
|
|
+ <span>所属产业:</span>
|
|
|
+ <span class="textOne">{{ item.industry || '暂无所属产业' }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="other_1" v-if="user && user.id">
|
|
|
+ <span>来源:</span>
|
|
|
+ <span class="textOne">{{ item.source || '暂无来源' }}</span>
|
|
|
+ </div>
|
|
|
+ <div class="other_1" v-if="user && user.id">
|
|
|
+ <span>推荐指数:</span>
|
|
|
+ <el-rate size="large" v-model="item._recommend" disabled show-score text-color="#ff9900" :score-template="`${item._recommend} 星`" />
|
|
|
+ </div>
|
|
|
+ <div class="button">
|
|
|
+ <div @click="toView(item, '0')" class="detail1">查看详情</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <el-col :span="24" class="page">
|
|
|
+ <el-pagination background layout="prev, pager, next" :total="twoTotal" :page-size="twolimit" v-model:current-page="twocurrentPage" @current-change="twochangePage" @size-change="twosizeChange" />
|
|
|
+ </el-col>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="right" v-else>
|
|
|
+ <div class="titleOne">
|
|
|
+ <el-image class="image" :src="left" fit="fill" />
|
|
|
+ <div class="title_center">匹配结果</div>
|
|
|
+ <el-image class="image" :src="right" fit="fill" />
|
|
|
</div>
|
|
|
+ <el-empty description="暂无数据" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</custom-layout>
|
|
@@ -118,11 +205,14 @@
|
|
|
// 图片引入
|
|
|
import left from '/images/top-left.png'
|
|
|
import right from '/images/top-right.png'
|
|
|
+import load from '/images/load.gif'
|
|
|
// 接口
|
|
|
import { DemandStore } from '@/store/api/platform/demand'
|
|
|
import { SupplyStore } from '@/store/api/platform/supply'
|
|
|
+import { EsStore } from '@/store/api/es'
|
|
|
const demandStore = DemandStore()
|
|
|
const supplyStore = SupplyStore()
|
|
|
+const esStore = EsStore()
|
|
|
// 用户信息
|
|
|
import { UserStore } from '@/store/user'
|
|
|
const userStore = UserStore()
|
|
@@ -130,32 +220,41 @@ const user = computed(() => userStore.user)
|
|
|
// 列表
|
|
|
const supplyList = ref([])
|
|
|
let supplyskip = 0
|
|
|
-let supplylimit = inject('limit')
|
|
|
+let supplylimit = 6
|
|
|
const supplytotal = ref(0)
|
|
|
|
|
|
const demandList = ref([])
|
|
|
let demandskip = 0
|
|
|
-let demandlimit = inject('limit')
|
|
|
+let demandlimit = 6
|
|
|
const demandtotal = ref(0)
|
|
|
// 加载中
|
|
|
-const loading = ref(false)
|
|
|
+const loading = ref(true)
|
|
|
// 路由
|
|
|
const router = useRouter()
|
|
|
-// 推荐结果
|
|
|
-const list = ref([
|
|
|
- { rate: 5, score: '五星推荐数量:5个', list: [{ name: '供给名称' }] },
|
|
|
- { rate: 4, score: '四星推荐数量:5个', list: [{ name: '供给名称' }] }
|
|
|
- // { rate: 3, score: '三星推荐数量:5个', list: [{ name: '供给名称' }] },
|
|
|
- // { rate: 2, score: '二星推荐数量:5个', list: [{ name: '供给名称' }] },
|
|
|
- // { rate: 1, score: '一星推荐数量:5个', list: [{ name: '供给名称' }] }
|
|
|
-])
|
|
|
+// 推荐的成果
|
|
|
+const oneList = ref([])
|
|
|
+// 推荐的需求或供给
|
|
|
+const twoList = ref([])
|
|
|
+// 类型
|
|
|
+const dataType = ref('0')
|
|
|
+const keyword = ref('')
|
|
|
+
|
|
|
+let oneskip = 0
|
|
|
+let onelimit = 6
|
|
|
+const oneTotal = ref(0)
|
|
|
+
|
|
|
+let twoskip = 0
|
|
|
+let twolimit = 6
|
|
|
+const twoTotal = ref(0)
|
|
|
// 请求
|
|
|
onMounted(async () => {
|
|
|
- loading.value = true
|
|
|
- await searchOther()
|
|
|
- await searchsupply({ supplyskip, supplylimit })
|
|
|
- await searchdemand({ demandskip, demandlimit })
|
|
|
- loading.value = false
|
|
|
+ setTimeout(async () => {
|
|
|
+ loading.value = true
|
|
|
+ await searchOther()
|
|
|
+ await searchsupply({ supplyskip, supplylimit })
|
|
|
+ await searchdemand({ demandskip, demandlimit })
|
|
|
+ loading.value = false
|
|
|
+ }, 5000)
|
|
|
})
|
|
|
const searchOther = async () => {}
|
|
|
// 供给信息
|
|
@@ -168,6 +267,7 @@ const searchsupply = async (query = { supplyskip, supplylimit }) => {
|
|
|
supplyList.value = res.data
|
|
|
supplytotal.value = res.total
|
|
|
}
|
|
|
+ if (res.total > 0) await toMate(res.data[0], '0')
|
|
|
}
|
|
|
// 需求信息
|
|
|
const searchdemand = async (query = { demandskip, demandlimit }) => {
|
|
@@ -189,9 +289,35 @@ const getArea = (data) => {
|
|
|
const toView = (item, type) => {
|
|
|
if (user.value.id) {
|
|
|
if (type == '0') router.push({ path: '/supply/detail', query: { id: item.id || item._id } })
|
|
|
- else router.push({ path: '/demand/detail', query: { id: item.id || item._id } })
|
|
|
+ else if (type == '1') router.push({ path: '/demand/detail', query: { id: item.id || item._id } })
|
|
|
+ else router.push({ path: '/achievement/detail', query: { id: item.id || item._id } })
|
|
|
} else ElMessage({ message: '未登录!', type: 'error' })
|
|
|
}
|
|
|
+const toMate = async (item, type) => {
|
|
|
+ loading.value = true
|
|
|
+ let res
|
|
|
+ let arr
|
|
|
+ dataType.value = type
|
|
|
+ keyword.value = item.name
|
|
|
+ if (type == '0') {
|
|
|
+ // 成果和需求
|
|
|
+ arr = await esStore.achievement({ skip: oneskip, limit: onelimit, keyword: item.name })
|
|
|
+ res = await esStore.demand({ skip: twoskip, limit: twolimit, keyword: item.name })
|
|
|
+ } else {
|
|
|
+ // 成果和供给
|
|
|
+ arr = await esStore.achievement({ skip: oneskip, limit: onelimit, keyword: item.name })
|
|
|
+ res = await esStore.supply({ skip: twoskip, limit: twolimit, keyword: item.name })
|
|
|
+ }
|
|
|
+ if (arr.errcode == '0') {
|
|
|
+ oneList.value = arr.data
|
|
|
+ oneTotal.value = arr.total
|
|
|
+ }
|
|
|
+ if (res.errcode == '0') {
|
|
|
+ twoList.value = res.data
|
|
|
+ twoTotal.value = res.total
|
|
|
+ }
|
|
|
+ loading.value = false
|
|
|
+}
|
|
|
const currentPageone = ref(1)
|
|
|
const currentPagetwo = ref(1)
|
|
|
// 分页
|
|
@@ -212,9 +338,61 @@ const sizeChangetwo = (limits) => {
|
|
|
currentPagetwo.value = 1
|
|
|
searchdemand({ demandskip: 0, demandlimit: demandlimit })
|
|
|
}
|
|
|
+const onecurrentPage = ref(1)
|
|
|
+const twocurrentPage = ref(1)
|
|
|
+// 分页
|
|
|
+const onechangePage = (page = onecurrentPage.value) => {
|
|
|
+ searchOne({ oneskip: (page - 1) * onelimit, onelimit: onelimit })
|
|
|
+}
|
|
|
+const onesizeChange = (limits) => {
|
|
|
+ onelimit = limits
|
|
|
+ onecurrentPage.value = 1
|
|
|
+ searchOne({ oneskip: 0, onelimit: onelimit })
|
|
|
+}
|
|
|
+// 分页
|
|
|
+const twochangePage = (page = twocurrentPage.value) => {
|
|
|
+ searchTwo({ twoskip: (page - 1) * twolimit, twolimit: twolimit })
|
|
|
+}
|
|
|
+const twosizeChange = (limits) => {
|
|
|
+ twolimit = limits
|
|
|
+ twocurrentPage.value = 1
|
|
|
+ searchTwo({ twoskip: 0, twolimit: twolimit })
|
|
|
+}
|
|
|
+// 成果分页查询
|
|
|
+const searchOne = async (query = { oneskip, onelimit }) => {
|
|
|
+ oneskip = query.oneskip
|
|
|
+ onelimit = query.onelimit
|
|
|
+ const info = { skip: query.oneskip, limit: query.onelimit, keyword: keyword.value }
|
|
|
+ let res = await esStore.achievement(info)
|
|
|
+ if (res.errcode == '0') {
|
|
|
+ oneList.value = res.data
|
|
|
+ oneTotal.value = res.total
|
|
|
+ }
|
|
|
+}
|
|
|
+// 需求或供给分页查询
|
|
|
+const searchTwo = async (query = { twoskip, twolimit }) => {
|
|
|
+ twoskip = query.twoskip
|
|
|
+ twolimit = query.twolimit
|
|
|
+ const info = { skip: query.twoskip, limit: query.twolimit, keyword: keyword.value }
|
|
|
+ let res
|
|
|
+ if (dataType.value == '0') res = await esStore.demand(info)
|
|
|
+ else res = await esStore.supply(info)
|
|
|
+ if (res.errcode == '0') {
|
|
|
+ twoList.value = res.data
|
|
|
+ twoTotal.value = res.total
|
|
|
+ }
|
|
|
+}
|
|
|
</script>
|
|
|
<style scoped lang="scss">
|
|
|
.main {
|
|
|
+ .loading {
|
|
|
+ width: 100%;
|
|
|
+ height: 70vh;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: center;
|
|
|
+ background-color: #03a9f4;
|
|
|
+ }
|
|
|
.one {
|
|
|
display: flex;
|
|
|
.left {
|
|
@@ -278,13 +456,13 @@ const sizeChangetwo = (limits) => {
|
|
|
}
|
|
|
}
|
|
|
.button {
|
|
|
+ display: flex;
|
|
|
margin: 30px 0 0 0;
|
|
|
- .detail {
|
|
|
+ .detail1 {
|
|
|
font-size: 16px;
|
|
|
display: block;
|
|
|
margin: 0 auto;
|
|
|
width: 90px;
|
|
|
- height: 28px;
|
|
|
text-align: center;
|
|
|
line-height: 28px;
|
|
|
border-radius: 28px;
|
|
@@ -292,11 +470,23 @@ const sizeChangetwo = (limits) => {
|
|
|
border: 1px solid #2281ee;
|
|
|
cursor: default;
|
|
|
}
|
|
|
- }
|
|
|
- }
|
|
|
- .list:hover {
|
|
|
- .button {
|
|
|
- .detail {
|
|
|
+ .detail2 {
|
|
|
+ font-size: 16px;
|
|
|
+ display: block;
|
|
|
+ margin: 0 auto;
|
|
|
+ width: 90px;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 28px;
|
|
|
+ border-radius: 28px;
|
|
|
+ color: #2281ee;
|
|
|
+ border: 1px solid #2281ee;
|
|
|
+ cursor: default;
|
|
|
+ }
|
|
|
+ .detail1:hover {
|
|
|
+ color: #fff;
|
|
|
+ background-color: #2281ee;
|
|
|
+ }
|
|
|
+ .detail2:hover {
|
|
|
color: #fff;
|
|
|
background-color: #2281ee;
|
|
|
}
|
|
@@ -331,92 +521,78 @@ const sizeChangetwo = (limits) => {
|
|
|
}
|
|
|
}
|
|
|
.rightOne {
|
|
|
- .list {
|
|
|
- .list_1 {
|
|
|
- text-align: right;
|
|
|
- }
|
|
|
- .list_2 {
|
|
|
- display: flex;
|
|
|
- justify-content: space-between;
|
|
|
- flex-wrap: wrap;
|
|
|
- margin: 10px 0;
|
|
|
- background-color: $global-color-fff;
|
|
|
- .tabulation {
|
|
|
- padding-bottom: 20px;
|
|
|
- margin: 0 0 20px 0;
|
|
|
- width: 270px;
|
|
|
- font-size: 12px;
|
|
|
+ .rightContent {
|
|
|
+ display: flex;
|
|
|
+ justify-content: space-between;
|
|
|
+ flex-wrap: wrap;
|
|
|
+ margin: 10px 0;
|
|
|
+ background-color: $global-color-fff;
|
|
|
+ .list {
|
|
|
+ padding-bottom: 20px;
|
|
|
+ margin: 0 0 20px 0;
|
|
|
+ width: 270px;
|
|
|
+ font-size: 12px;
|
|
|
+ color: #666666;
|
|
|
+ border: 1px solid rgb(230, 230, 230);
|
|
|
+ .title {
|
|
|
+ color: #002147;
|
|
|
+ background-color: #c8e0fc;
|
|
|
+ width: 100%;
|
|
|
+ height: 36px;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 36px;
|
|
|
+ font-family: PingFangSC-Medium;
|
|
|
+ font-size: 20px;
|
|
|
+ font-weight: 500;
|
|
|
+ overflow: hidden;
|
|
|
+ text-overflow: ellipsis;
|
|
|
+ display: -webkit-box;
|
|
|
+ -webkit-line-clamp: 1;
|
|
|
+ -webkit-box-orient: vertical;
|
|
|
+ margin-bottom: 16px;
|
|
|
+ padding: 0 10px;
|
|
|
+ }
|
|
|
+ .other_1 {
|
|
|
+ margin-bottom: 10px;
|
|
|
+ padding: 0 20px;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
color: #666666;
|
|
|
- border: 1px solid rgb(230, 230, 230);
|
|
|
- .title {
|
|
|
- color: #002147;
|
|
|
- background-color: #c8e0fc;
|
|
|
- width: 100%;
|
|
|
- height: 36px;
|
|
|
- text-align: center;
|
|
|
- line-height: 36px;
|
|
|
- font-family: PingFangSC-Medium;
|
|
|
- font-size: 20px;
|
|
|
- font-weight: 500;
|
|
|
- overflow: hidden;
|
|
|
- text-overflow: ellipsis;
|
|
|
- display: -webkit-box;
|
|
|
- -webkit-line-clamp: 1;
|
|
|
- -webkit-box-orient: vertical;
|
|
|
- margin-bottom: 16px;
|
|
|
- }
|
|
|
- .other_1 {
|
|
|
- margin-bottom: 16px;
|
|
|
- padding: 0 20px;
|
|
|
- display: flex;
|
|
|
- color: #666666;
|
|
|
- font-size: 16px;
|
|
|
- span:first-child {
|
|
|
- max-width: 80px;
|
|
|
- }
|
|
|
- span:last-child {
|
|
|
- max-width: 148px;
|
|
|
- }
|
|
|
+ font-size: 16px;
|
|
|
+ span:first-child {
|
|
|
+ max-width: 80px;
|
|
|
}
|
|
|
- .button {
|
|
|
- margin: 30px 0 0 0;
|
|
|
- .detail {
|
|
|
- font-size: 16px;
|
|
|
- display: block;
|
|
|
- margin: 0 auto;
|
|
|
- width: 90px;
|
|
|
- height: 28px;
|
|
|
- text-align: center;
|
|
|
- line-height: 28px;
|
|
|
- border-radius: 28px;
|
|
|
- color: #2281ee;
|
|
|
- border: 1px solid #2281ee;
|
|
|
- cursor: default;
|
|
|
- }
|
|
|
+ span:last-child {
|
|
|
+ max-width: 148px;
|
|
|
}
|
|
|
}
|
|
|
- .tabulation:hover {
|
|
|
- .button {
|
|
|
- .detail {
|
|
|
- color: #fff;
|
|
|
- background-color: #2281ee;
|
|
|
- }
|
|
|
+ .button {
|
|
|
+ display: flex;
|
|
|
+ margin: 30px 0 0 0;
|
|
|
+ .detail1 {
|
|
|
+ font-size: 16px;
|
|
|
+ display: block;
|
|
|
+ margin: 0 auto;
|
|
|
+ width: 90px;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 28px;
|
|
|
+ border-radius: 28px;
|
|
|
+ color: #2281ee;
|
|
|
+ border: 1px solid #2281ee;
|
|
|
+ cursor: default;
|
|
|
+ }
|
|
|
+ .detail1:hover {
|
|
|
+ color: #fff;
|
|
|
+ background-color: #2281ee;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- :deep(.el-icon) {
|
|
|
- svg {
|
|
|
- height: 3em !important;
|
|
|
- width: 3em !important;
|
|
|
- }
|
|
|
- }
|
|
|
- :deep(.el-rate__icon) {
|
|
|
- margin: 0 15px !important;
|
|
|
- }
|
|
|
- :deep(.el-rate__text) {
|
|
|
- margin: 0 0 0 25px !important;
|
|
|
- font-size: 20px !important;
|
|
|
+
|
|
|
+ .page {
|
|
|
+ display: flex;
|
|
|
+ justify-content: center;
|
|
|
+ margin: 20px 0;
|
|
|
}
|
|
|
}
|
|
|
}
|