hi-ucs/front/src/views/newHome/components/CapabilityConvergence.vue

328 lines
10 KiB
Vue
Raw Normal View History

2022-06-14 09:32:49 +08:00
<template>
<div class="capability-convergence">
<div class="main">
<div class="top">
能力汇聚
<span class="line"></span>
</div>
<div class="bottom">
<div class="item">
<div class="zj">组件服务</div>
<div
class="name"
v-for="(item, index) in zjList"
:key="item.id"
:class="index == 4 ? 'name-last' : ''"
@click="selectOne(item.id)"
>
{{ index + 1 }}-{{ item.name }}
</div>
<div class="btn" @click="jumpPage('组件服务')">查看更多</div>
</div>
<div class="item">
<div class="yy">应用资源</div>
<div
class="name"
v-for="(item, index) in yyList"
:key="item.id"
:class="index == 4 ? 'name-last' : ''"
@click="selectOne(item.id)"
>
{{ index + 1 }}-{{ item.name }}
</div>
<div class="btn" @click="jumpPage('应用资源')">查看更多</div>
</div>
<div class="item">
<div class="jc">基础设施</div>
2022-06-23 14:17:04 +08:00
<div
class="name"
v-for="(item, index) in jcList"
:key="item.id"
:class="index == 4 ? 'name-last' : ''"
@click="selectOne(item.id)"
>
{{ index + 1 }}-{{ item.name }}
</div>
2022-06-14 09:32:49 +08:00
<div class="btn" @click="jumpPage('基础设施')">查看更多</div>
</div>
<div class="item">
<div class="sj">数据资源</div>
2022-06-23 14:17:04 +08:00
<div
class="name"
v-for="(item, index) in sjList"
:key="item.id"
:class="index == 4 ? 'name-last' : ''"
@click="selectOne(item.id)"
>
{{ index + 1 }}-{{ item.name }}
2022-06-14 09:32:49 +08:00
</div>
<div class="btn" @click="jumpPage('数据资源')">查看更多</div>
</div>
<div class="item">
<div class="zs">知识库</div>
2022-06-22 16:36:04 +08:00
<div
class="name"
v-for="(item, index) in zsList"
:key="item.id"
:class="index == 4 ? 'name-last' : ''"
@click="selectOne(item.id)"
>
{{ index + 1 }}-{{ item.name }}
2022-06-14 09:32:49 +08:00
</div>
<div class="btn" @click="jumpPage('知识库')">查看更多</div>
</div>
</div>
</div>
</div>
</template>
<script setup>
2022-06-23 14:17:04 +08:00
import { pageWithAttrs, getDataResource } from '@/api/home.js'
2022-06-24 19:47:00 +08:00
import { ref, reactive } from 'vue'
2022-06-14 09:32:49 +08:00
import { useRouter } from 'vue-router'
import { useStore } from 'vuex'
2022-06-24 19:47:00 +08:00
import mybus from '@/myplugins/mybus'
2022-06-14 09:32:49 +08:00
const store = useStore()
const router = useRouter()
const zjList = ref([])
2022-06-23 14:17:04 +08:00
const jcList = ref([])
const sjList = ref([])
2022-06-14 09:32:49 +08:00
const yyList = ref([])
2022-06-22 16:36:04 +08:00
// 知识库模块数据
const zsList = ref([])
2022-06-14 09:32:49 +08:00
// const jcList = ref([])
const paramsGetResources = {
districtId: '',
pageNum: 1,
pageSize: 5,
type: '',
name: '',
infoList: [],
orderField: 'total', // total 综合 visits 访问量 applyCount 申请量 score 评分 collectCount 收藏量
orderType: 'DESC', // ASC 升序 DESC 降序
}
2022-06-23 14:17:04 +08:00
console.log('dataShowdev==========================>', whoShow)
// eslint-disable-next-line no-undef
const whoShow1 = ref(whoShow)
2022-06-24 19:47:00 +08:00
const interfaceSuccess = ref(0)
const object = reactive({
yyNum: '',
zjNum: '',
jcNum: '',
sjNum: '',
zsNum: '',
})
2022-06-14 09:32:49 +08:00
const getAppResources = (type, obj) => {
paramsGetResources.type = type
if (type === '数据资源' && !whoShow1.value.itShowBaoTou) {
2022-06-23 14:17:04 +08:00
getDataResource({
serviceName: paramsGetResources.name, //资源名称
orderField: whoShow1.value.itShowQingDao ? 'fbrq' : 'createTime', //排序字段
orderType: paramsGetResources.orderType.toLowerCase(), //排序方式descasc
pageNum: paramsGetResources.pageNum, //页码
pageSize: paramsGetResources.pageSize, //分页大小
}).then((res) => {
console.log('数据资源==================>', res.data.data)
if (whoShow1.value.itShowQingDao) {
res.data.data.data.forEach((val) => {
val.id = val.guid // id
val.name = val.zyname // 名字
val.sjlCount = val.sjcczl // 数据量
val.applyCount = val.syqk // 申请量
val.deptName = val.TGBM // 部门
val.createDate = val.fbrq // 发布时间
})
obj.value = res.data.data.data || []
2022-06-24 19:47:00 +08:00
object.sjNum = res.data.data.rows
2022-06-24 20:08:54 +08:00
// interfaceSuccess.value++
// if (interfaceSuccess.value == 5) {
// mybus.emit('chagneNum', object)
// }
2022-06-23 14:17:04 +08:00
} else if (whoShow1.value.itShowXiHaiAn) {
res.data.data.list.forEach((val) => {
val.id = val.serviceId // id
val.name = val.serviceName // 名字
val.sjlCount = val.requestQuantity // 数据量
val.applyCount = val.requestCount // 申请量
val.deptName = val.departmentName // 部门
val.createTime = val.createTime.split('.')[0]
val.createDate = val.createTime // 发布时间
})
obj.value = res.data.data.list || []
2022-06-24 19:47:00 +08:00
object.sjNum = res.data.data.total
2022-06-24 20:08:54 +08:00
// interfaceSuccess.value++
// if (interfaceSuccess.value == 5) {
// mybus.emit('chagneNum', object)
// }
2022-06-23 14:17:04 +08:00
}
})
} else {
2022-06-24 19:47:00 +08:00
let type = paramsGetResources.type
2022-06-23 14:17:04 +08:00
pageWithAttrs(paramsGetResources).then((res) => {
2022-06-24 19:47:00 +08:00
console.log('object个数======>', type)
2022-06-23 14:17:04 +08:00
obj.value = res.data.data.records
2022-06-24 19:47:00 +08:00
switch (type) {
case '组件服务':
assignmentMethod('zjNum', res)
break
case '应用资源':
assignmentMethod('yyNum', res)
break
case '基础设施':
assignmentMethod('jcNum', res)
break
case '知识库':
assignmentMethod('zsNum', res)
break
}
2022-06-23 14:17:04 +08:00
})
}
2022-06-14 09:32:49 +08:00
}
2022-06-24 19:47:00 +08:00
const assignmentMethod = (type, res) => {
object[type] = res.data.data.total
2022-06-24 20:08:54 +08:00
// interfaceSuccess.value++
// console.log('object个数======>', object, interfaceSuccess.value, type)
// if (interfaceSuccess.value >= 4) {
// mybus.emit('chagneNum', object)
// }
2022-06-24 19:47:00 +08:00
}
2022-06-14 09:32:49 +08:00
getAppResources('组件服务', zjList)
getAppResources('应用资源', yyList)
2022-06-23 14:17:04 +08:00
getAppResources('基础设施', jcList)
getAppResources('数据资源', sjList)
2022-06-22 16:36:04 +08:00
getAppResources('知识库', zsList)
2022-06-14 09:32:49 +08:00
function jumpPage(type) {
// 点击内存入store
store.commit('home/selectCardsData', {
selectCardsnum: type,
})
console.log(
'选中===================>',
store.getters['home/selectCardsnum']
)
// router.push({ path: '/DetailsPageconetent' })
router.push({
path: '/DetailsPageconetent',
query: {
select: type,
},
})
}
const selectOne = (id) => {
console.log('点击===============》', id)
router.push({
path: '/details',
query: {
id: id,
},
})
}
</script>
<style lang="less" scoped>
.capability-convergence {
height: 7.2rem;
background: url('~@/assets/newHome/Convergence-bg.png') no-repeat;
background-size: 100%;
display: flex;
justify-content: center;
.main {
width: 13rem;
margin-top: 1.8rem;
display: flex;
flex-direction: column;
flex-wrap: wrap;
.top {
font-size: 0.3rem;
color: #212121;
text-align: center;
display: flex;
flex-direction: column;
flex-wrap: wrap;
justify-content: center;
align-items: center;
.line {
width: 0.34rem;
height: 0.03rem;
background-color: #0058e1;
margin-top: 0.08rem;
}
}
.bottom {
display: flex;
justify-content: space-between;
margin-top: 0.4rem;
.item {
width: 2.44rem;
height: 3.91rem;
font-size: 0.16rem;
background-color: #fff;
border-radius: 0.02rem;
box-shadow: 0 0.05rem 0.2rem #ccc;
div:nth-of-type(1) {
height: 1.02rem;
line-height: 1.02rem;
font-size: 0.2rem;
color: #fff;
padding-left: 0.15rem;
background-size: 100%;
}
.jc {
background: url('~@/assets/newHome/Convergence-jc.png') no-repeat;
}
.sj {
background: url('~@/assets/newHome/Convergence-sj.png') no-repeat;
}
.zj {
background: url('~@/assets/newHome/Convergence-zj.png') no-repeat;
}
.yy {
background: url('~@/assets/newHome/Convergence-yy.png') no-repeat;
}
.zs {
background: url('~@/assets/newHome/Convergence-zs.png') no-repeat;
}
.name {
height: 0.47rem;
line-height: 0.47rem;
margin: 0 0.16rem;
border-bottom: 0.01rem solid #e9e9e9;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.name:hover {
color: #0058e1;
cursor: pointer;
}
.name-last {
border-bottom: none;
}
.btn {
cursor: pointer;
width: 0.8rem;
height: 0.24rem;
border: 0.01rem solid #0058e1;
font-size: 0.14rem;
color: #0058e1;
border-radius: 0.02rem;
text-align: center;
margin-top: 0.1rem;
margin-left: 0.85rem;
}
.btn:hover {
background: rgba(0, 88, 225, 0.3);
color: #000;
}
}
.item:hover {
border-radius: 0.02rem;
border: 0.01rem solid #0058e1;
box-shadow: 0rem 0.08rem 0.2rem rgba(0, 88, 225, 0.3);
}
}
}
}
</style>