Merge branch 'hi-ucs-dev' of http://124.222.94.39:3000/wuhongjian/hi-ucs into hi-ucs-dev
|
@ -1,8 +1,8 @@
|
|||
<!--
|
||||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2022-03-29 16:45:25
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-08-09 09:24:43
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-08-09 18:09:19
|
||||
* @Description: 告诉大家这是什么
|
||||
-->
|
||||
<!DOCTYPE html>
|
||||
|
@ -29,10 +29,11 @@
|
|||
<!-- 站点配置 -->
|
||||
<script>
|
||||
window.SITE_CONFIG = {};
|
||||
// window.SITE_CONFIG['backUrl'] = 'http://15.72.183.90:8001';
|
||||
// window.SITE_CONFIG['previewUrl'] = 'http://15.72.183.90:7008/';
|
||||
// window.SITE_CONFIG['frontUrl'] = 'http://15.72.183.90:7008/document/#/devModelFile/';
|
||||
// window.SITE_CONFIG['apiURL'] = 'http://15.72.183.90:8000/renren-admin';
|
||||
window.SITE_CONFIG['backUrl'] = 'http://15.72.183.90:8001';
|
||||
window.SITE_CONFIG['previewUrl'] = 'http://15.72.183.90:7008/';
|
||||
window.SITE_CONFIG['frontUrl'] = 'http://15.72.183.90:7008/document/#/devModelFile/';
|
||||
window.SITE_CONFIG['apiURL'] = 'http://15.72.183.90:8000/renren-admin';
|
||||
window.SITE_CONFIG['websocketURL'] = '15.72.183.90:8000/renren-admin';
|
||||
window.SITE_CONFIG['POI_URL'] = 'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address';
|
||||
// 包头
|
||||
// window.SITE_CONFIG['backUrl'] = 'http://10.110.205.1:8001';
|
||||
|
@ -54,12 +55,12 @@
|
|||
// window.SITE_CONFIG['apiURL'] = 'http://10.134.135.9:8888/renren-admin';
|
||||
// 开发
|
||||
// window.SITE_CONFIG['backUrl'] = 'http://15.2.21.238:9797';
|
||||
window.SITE_CONFIG['backUrl'] = 'http://localhost:8001';
|
||||
window.SITE_CONFIG['previewUrl'] = 'http://192.168.124.236:9796/';
|
||||
window.SITE_CONFIG['frontUrl'] = 'http://192.168.124.236:9796/document/#/devModelFile/';
|
||||
window.SITE_CONFIG['apiURL'] = 'http://192.168.124.236:8888/renren-admin';
|
||||
window.SITE_CONFIG['websocketURL'] = '192.168.124.236:8888/renren-admin';
|
||||
window.SITE_CONFIG['POI_URL'] = 'http://192.168.124.236:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address';
|
||||
// window.SITE_CONFIG['backUrl'] = 'http://localhost:8001';
|
||||
// window.SITE_CONFIG['previewUrl'] = 'http://192.168.124.236:9796/';
|
||||
// window.SITE_CONFIG['frontUrl'] = 'http://192.168.124.236:9796/document/#/devModelFile/';
|
||||
// window.SITE_CONFIG['apiURL'] = 'http://192.168.124.236:8888/renren-admin';
|
||||
// window.SITE_CONFIG['websocketURL'] = '192.168.124.236:8888/renren-admin';
|
||||
// window.SITE_CONFIG['POI_URL'] = 'http://192.168.124.236:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address';
|
||||
// 穿透版本
|
||||
// window.SITE_CONFIG['backUrl'] = 'http://124.222.94.39:9797';
|
||||
// window.SITE_CONFIG['previewUrl'] = 'http://124.222.94.39:9796/';
|
||||
|
|
|
@ -5,9 +5,9 @@
|
|||
* @LastEditTime: 2022-08-06 10:43:53
|
||||
* @Description: 数据资源参数配置
|
||||
*/
|
||||
const newLocation = 'xihaian'
|
||||
const newLocation = 'qingdao'
|
||||
// const newLocation = 'baotou'
|
||||
// const newLocation = 'xihaian'
|
||||
//const newLocation = 'xihaian'
|
||||
|
||||
// 数据资源数据
|
||||
const whoShow = {}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2022-04-01 19:19:40
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-07-18 16:24:44
|
||||
* @LastEditTime: 2022-08-09 10:37:31
|
||||
* @Description: 告诉大家这是什么
|
||||
*/
|
||||
import request from '@/utils/request'
|
||||
|
@ -370,3 +370,11 @@ export function getDevelopDocTree(params) {
|
|||
params,
|
||||
})
|
||||
}
|
||||
// 能力广场 应用资源
|
||||
export function selectAppList(params) {
|
||||
return request({
|
||||
url: '/resource/selectAppList',
|
||||
method: 'get',
|
||||
params,
|
||||
})
|
||||
}
|
||||
|
|
After Width: | Height: | Size: 122 KiB |
After Width: | Height: | Size: 346 KiB |
After Width: | Height: | Size: 641 B |
After Width: | Height: | Size: 379 B |
After Width: | Height: | Size: 1.3 MiB |
After Width: | Height: | Size: 641 B |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 14 KiB |
After Width: | Height: | Size: 263 B |
After Width: | Height: | Size: 536 B |
After Width: | Height: | Size: 471 KiB |
After Width: | Height: | Size: 784 B |
After Width: | Height: | Size: 883 B |
After Width: | Height: | Size: 898 B |
After Width: | Height: | Size: 692 B |
After Width: | Height: | Size: 38 KiB |
After Width: | Height: | Size: 31 KiB |
After Width: | Height: | Size: 62 KiB |
|
@ -7,14 +7,28 @@
|
|||
:key="`algorithm-${index}`"
|
||||
class="algorithm-card"
|
||||
>
|
||||
<div class="algorithm-card-title">{{ item.name }}</div>
|
||||
<a-image
|
||||
:src="algorithmCardPhoto(item.infoList, item)"
|
||||
:width="525"
|
||||
:height="275"
|
||||
:fallback="imgSrc"
|
||||
:preview="false"
|
||||
></a-image>
|
||||
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.name }}</template>
|
||||
<div class="algorithm-card-title" @click="detailFunction(item.id)">
|
||||
<span>{{ item.name }}</span>
|
||||
<span>{{ item.deptName }}</span>
|
||||
</div>
|
||||
</a-tooltip>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { pageWithAttrs } from '@/api/abilityStatistics'
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { ref, onMounted, onBeforeUnmount } from 'vue'
|
||||
const dataList = ref([])
|
||||
const params = {
|
||||
deptIds: [],
|
||||
|
@ -26,37 +40,78 @@
|
|||
pageSize: 9,
|
||||
type: '组件服务',
|
||||
}
|
||||
let algorithmclass = null
|
||||
const imgSrc = ref(require('@/assets/capacitySquare/algorithm-photo.jpg'))
|
||||
const dataLength = ref(true)
|
||||
const isNoMore = ref(false)
|
||||
let url = ref('')
|
||||
const pageWithAttrsFunction = () => {
|
||||
pageWithAttrs(params).then((res) => {
|
||||
dataList.value = res.data.data.records
|
||||
if (res.data.data.records.length < 9) {
|
||||
dataLength.value = false
|
||||
}
|
||||
})
|
||||
}
|
||||
pageWithAttrsFunction()
|
||||
//图片显示
|
||||
const algorithmCardPhoto = (List, item) => {
|
||||
let obj = List.filter((item) => item.attrType === '应用场景')[0]
|
||||
if (obj && obj.attrValue != '') {
|
||||
console.log(
|
||||
item.name,
|
||||
item.id,
|
||||
obj.attrValue,
|
||||
'----------------------------'
|
||||
)
|
||||
obj = JSON.parse(obj.attrValue)[0].img
|
||||
}
|
||||
return obj || ''
|
||||
}
|
||||
//跳转详情页
|
||||
const detailFunction = (id) => {
|
||||
window.open(window.SITE_CONFIG.previewUrl + `#/details?id=${id}`)
|
||||
}
|
||||
const algorithmFunction = (e) => {
|
||||
var scrollTop = e.currentTarget.scrollTop
|
||||
var windowHeight = e.currentTarget.clientHeight
|
||||
var scrollHeight = e.currentTarget.scrollHeight
|
||||
console.log(scrollTop, windowHeight, scrollHeight, '123')
|
||||
if (
|
||||
scrollTop + windowHeight <= scrollHeight + 1 &&
|
||||
scrollTop + windowHeight >= scrollHeight - 1
|
||||
) {
|
||||
// 当前滚动条已经触底
|
||||
isNoMore.value = true
|
||||
params.pageNum++
|
||||
pageWithAttrs(params).then((res) => {
|
||||
dataList.value.push(...res.data.data.records)
|
||||
if (res.data.data.records.length < 9) {
|
||||
dataLength.value = false
|
||||
}
|
||||
})
|
||||
} else {
|
||||
isNoMore.value = false
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
const algorithmclass = document.querySelector('.algorithm-class')
|
||||
algorithmclass.addEventListener('scroll', (e) => {
|
||||
var scrollTop = e.currentTarget.scrollTop
|
||||
var windowHeight = e.currentTarget.clientHeight
|
||||
var scrollHeight = e.currentTarget.scrollHeight
|
||||
console.log(scrollTop, windowHeight, scrollHeight, '123')
|
||||
if (scrollTop + windowHeight == scrollHeight) {
|
||||
// 当前滚动条已经触底
|
||||
isNoMore.value = true
|
||||
params.pageNum++
|
||||
pageWithAttrs(params).then((res) => {
|
||||
dataList.value.push(...res.data.data.records)
|
||||
})
|
||||
} else {
|
||||
isNoMore.value = false
|
||||
}
|
||||
})
|
||||
algorithmclass = document.querySelector('.algorithm-class')
|
||||
if (dataLength.value) {
|
||||
//监听滚动事件
|
||||
algorithmclass.addEventListener('scroll', algorithmFunction, true)
|
||||
}
|
||||
})
|
||||
onBeforeUnmount(() => {
|
||||
algorithmclass.removeEventListener('scroll', algorithmFunction, true)
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.algorithm {
|
||||
.algorithm-class {
|
||||
margin-top: 0.6rem;
|
||||
margin-bottom: 0.59rem;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 33%);
|
||||
height: 8.8rem;
|
||||
|
@ -67,16 +122,51 @@
|
|||
height: 2.75rem;
|
||||
width: 5.25rem;
|
||||
background: url('~@/assets/capacitySquare/algorithm-bg.png') no-repeat;
|
||||
background-size: 100%;
|
||||
margin-bottom: 0.3rem;
|
||||
background-size: 100% 100%;
|
||||
margin-bottom: 0.4rem;
|
||||
margin-right: 0.65rem;
|
||||
position: relative;
|
||||
:deep(.ant-image) {
|
||||
img {
|
||||
margin-top: 0.15rem;
|
||||
height: 2.45rem;
|
||||
width: 5.05rem;
|
||||
margin-left: 0.1rem;
|
||||
}
|
||||
}
|
||||
.algorithm-card-photo {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
background: url('~@/assets/capacitySquare/algorithm-photo.jpg')
|
||||
no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
.algorithm-card-title {
|
||||
position: absolute;
|
||||
height: 0.6rem;
|
||||
width: 100%;
|
||||
margin-left: 0.08rem;
|
||||
width: 97%;
|
||||
color: #ffffff;
|
||||
font-size: 0.22rem;
|
||||
font-family: alibaba;
|
||||
bottom: 0.15rem;
|
||||
padding-left: 0.22rem;
|
||||
background: url('~@/assets/capacitySquare/algorithm-title-bg.png')
|
||||
no-repeat;
|
||||
background-size: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
span {
|
||||
line-height: 0.24rem;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
cursor: pointer;
|
||||
}
|
||||
span:last-child {
|
||||
font-size: 0.14rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,11 +2,270 @@
|
|||
* @Author: hisense.liangjunhua
|
||||
* @Date: 2022-08-09 09:31:25
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-08-09 09:38:03
|
||||
* @LastEditTime: 2022-08-10 14:29:05
|
||||
* @Description: 应用资源
|
||||
-->
|
||||
<template>
|
||||
<div>应用资源</div>
|
||||
<div class="application">
|
||||
<div class="select">
|
||||
<div class="top" @click="selectFlag = true">
|
||||
{{ typeName }}
|
||||
<div class="light"></div>
|
||||
</div>
|
||||
<div class="bottom" v-show="selectFlag">
|
||||
<span class="light"></span>
|
||||
<div @click="getList('全市')">全市</div>
|
||||
<div @click="getList('市级')">市级</div>
|
||||
<div @click="getList('区级')">区级</div>
|
||||
<div @click="getList('企业')">企业</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item-box">
|
||||
<div class="item" v-for="item in data.list" :key="item.id">
|
||||
<a-image
|
||||
:width="510"
|
||||
:height="270"
|
||||
:preview="false"
|
||||
:src="item.pic"
|
||||
:fallback="item.pic2"
|
||||
/>
|
||||
<div class="bottom" @click="goToView(item.id)">
|
||||
<div class="name">{{ item.name }}</div>
|
||||
<div class="dept">{{ item.deptName || '--' }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup></script>
|
||||
<style lang="less" scoped></style>
|
||||
<script setup>
|
||||
import { onMounted, reactive, onBeforeUnmount, ref, nextTick } from 'vue'
|
||||
import { selectAppList } from '@/api/home'
|
||||
import { useRouter } from 'vue-router'
|
||||
const router = useRouter()
|
||||
const pageNum = ref(1)
|
||||
const flag = ref(true)
|
||||
const type = ref(null)
|
||||
const typeName = ref('全市')
|
||||
const data = reactive({ list: [] })
|
||||
const selectFlag = ref(false)
|
||||
let dom = null
|
||||
const goToView = (id) => {
|
||||
const newpage = router.resolve({
|
||||
path: '/details',
|
||||
query: {
|
||||
id: id,
|
||||
},
|
||||
})
|
||||
window.open(newpage.href, '_blank')
|
||||
}
|
||||
const getList = (str) => {
|
||||
if (str) {
|
||||
dom.scrollTop = 0
|
||||
switch (str) {
|
||||
case '全市':
|
||||
type.value = null
|
||||
typeName.value = '全 市'
|
||||
break
|
||||
case '市级':
|
||||
type.value = 2
|
||||
typeName.value = '市 级'
|
||||
break
|
||||
case '区级':
|
||||
type.value = 3
|
||||
typeName.value = '区 级'
|
||||
break
|
||||
case '企业':
|
||||
type.value = 4
|
||||
typeName.value = '企 业'
|
||||
break
|
||||
}
|
||||
pageNum.value = 1
|
||||
data.list = []
|
||||
}
|
||||
selectAppList({ pageNum: pageNum.value, type: type.value }).then((res) => {
|
||||
if (res.data.data.length < 9) {
|
||||
dom.removeEventListener('scroll', viewMonitor, true)
|
||||
}
|
||||
res.data.data.map((val) => {
|
||||
if (!val.pic) {
|
||||
val.pic = require('@/assets/capacitySquare/yyzy.jpg')
|
||||
}
|
||||
val.pic2 = require('@/assets/capacitySquare/yyzy.jpg')
|
||||
})
|
||||
data.list.push(...res.data.data)
|
||||
selectFlag.value = false
|
||||
nextTick(() => {
|
||||
dom = document.querySelector('.item-box')
|
||||
flag.value = true
|
||||
if (str) {
|
||||
dom.removeEventListener('scroll', viewMonitor, true)
|
||||
dom.addEventListener('scroll', viewMonitor, true)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
getList()
|
||||
const viewMonitor = () => {
|
||||
const clientHeight = dom.clientHeight
|
||||
const scrollTop = dom.scrollTop
|
||||
const scrollHeight = dom.scrollHeight
|
||||
// console.log('滚动条滚动', clientHeight, scrollTop, scrollHeight, dom)
|
||||
if (
|
||||
clientHeight + scrollTop <= scrollHeight + 1 &&
|
||||
clientHeight + scrollTop >= scrollHeight - 1
|
||||
) {
|
||||
console.log('竖向滚动条已经滚动到底部')
|
||||
if (flag.value) {
|
||||
flag.value = false
|
||||
pageNum.value++
|
||||
getList()
|
||||
}
|
||||
}
|
||||
}
|
||||
onMounted(() => {
|
||||
dom = document.querySelector('.item-box')
|
||||
console.log('box============', dom)
|
||||
dom.addEventListener('scroll', viewMonitor, true)
|
||||
})
|
||||
onBeforeUnmount(() => {
|
||||
dom.removeEventListener('scroll', viewMonitor, true)
|
||||
})
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
@font-face {
|
||||
font-family: 'webfont';
|
||||
src: url('~@/assets/capacitySquare/webfont.ttf');
|
||||
}
|
||||
.application {
|
||||
padding: 0 0.15rem;
|
||||
.select {
|
||||
margin: 0.1rem 0 0.1rem 0.2rem;
|
||||
color: #fff;
|
||||
font-size: 0.2rem;
|
||||
font-family: webfont;
|
||||
position: relative;
|
||||
.top {
|
||||
cursor: pointer;
|
||||
width: 3.61rem;
|
||||
height: 0.85rem;
|
||||
font-weight: 600;
|
||||
text-align: center;
|
||||
padding-top: 0.1rem;
|
||||
background: url('~@/assets/capacitySquare/select-bg.png') no-repeat;
|
||||
background-size: 100%;
|
||||
position: relative;
|
||||
.light {
|
||||
width: 0.56rem;
|
||||
height: 3px;
|
||||
position: absolute;
|
||||
top: 0.4rem;
|
||||
left: 1.52rem;
|
||||
background: url('~@/assets/capacitySquare/select-light1.png')
|
||||
no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
}
|
||||
.bottom {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
top: 0.5rem;
|
||||
left: 0.9rem;
|
||||
z-index: 1000;
|
||||
background: rgba(57, 134, 239, 0.68);
|
||||
border: 1px solid #aed5ff;
|
||||
.light {
|
||||
display: inline-block;
|
||||
width: 2.39rem;
|
||||
height: 5px;
|
||||
position: absolute;
|
||||
top: -0.08rem;
|
||||
left: -0.3rem;
|
||||
background: url('~@/assets/capacitySquare/select-light2.png')
|
||||
no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
& > div {
|
||||
width: 1.8rem;
|
||||
height: 0.4rem;
|
||||
line-height: 0.4rem;
|
||||
text-align: center;
|
||||
border-top: 1px solid #aed5ff;
|
||||
}
|
||||
& > div:nth-of-type(1) {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
.item-box {
|
||||
margin-bottom: 0.15rem;
|
||||
height: 8.8rem;
|
||||
padding: 0 0.9rem 0 1rem;
|
||||
overflow-y: scroll;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
flex-wrap: wrap;
|
||||
.item {
|
||||
width: 5.25rem;
|
||||
height: 2.75rem;
|
||||
margin-bottom: 0.3rem;
|
||||
position: relative;
|
||||
background: url('~@/assets/capacitySquare/algorithm-bg.png') no-repeat;
|
||||
background-size: 100%;
|
||||
background-position: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
:deep(.ant-image-img) {
|
||||
width: 99%;
|
||||
height: 99%;
|
||||
margin-left: 0.03rem;
|
||||
object-fit: contain;
|
||||
}
|
||||
.bottom {
|
||||
cursor: pointer;
|
||||
width: 98%;
|
||||
height: 0.6rem;
|
||||
padding-left: 0.3rem;
|
||||
margin-left: 0.05rem;
|
||||
margin-bottom: 0.05rem;
|
||||
background: url('~@/assets/capacitySquare/bt-bg.png') no-repeat;
|
||||
background-size: 100%;
|
||||
color: #fff;
|
||||
font-family: webfont;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
.name {
|
||||
height: 0.44rem;
|
||||
line-height: 0.44rem;
|
||||
font-size: 0.22rem;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
-o-text-overflow: ellipsis;
|
||||
word-break: break-all;
|
||||
}
|
||||
.dept {
|
||||
height: 0.12rem;
|
||||
line-height: 0.04rem;
|
||||
font-size: 0.12rem;
|
||||
color: #bbb;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.item-box::-webkit-scrollbar-track-piece {
|
||||
background: #a5bcdb;
|
||||
border-radius: 0.08rem;
|
||||
}
|
||||
.item-box::-webkit-scrollbar-thumb {
|
||||
height: 3.2rem;
|
||||
background: linear-gradient(to bottom, #47d7f5, #3dc6e3);
|
||||
}
|
||||
.item-box::-webkit-scrollbar {
|
||||
height: 8.8rem;
|
||||
width: 0.08rem;
|
||||
border-radius: 0.08rem;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -0,0 +1,181 @@
|
|||
<!-- 图层服务 -->
|
||||
<template>
|
||||
<div class="algorithm">
|
||||
<div class="algorithm-class">
|
||||
<div
|
||||
v-for="(item, index) in dataList"
|
||||
:key="`algorithm-${index}`"
|
||||
class="algorithm-card"
|
||||
>
|
||||
<a-image
|
||||
:src="algorithmCardPhoto(item.infoList)"
|
||||
:width="525"
|
||||
:height="275"
|
||||
:fallback="imgSrc"
|
||||
:preview="false"
|
||||
></a-image>
|
||||
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.name }}</template>
|
||||
<div class="algorithm-card-title" @click="detailFunction(item.id)">
|
||||
<span>{{ item.name }}</span>
|
||||
<span>{{ item.deptName }}</span>
|
||||
</div>
|
||||
</a-tooltip>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { pageWithAttrs } from '@/api/abilityStatistics'
|
||||
import { ref, onMounted, onBeforeUnmount } from 'vue'
|
||||
const dataList = ref([])
|
||||
let algorithmclass = null
|
||||
const params = {
|
||||
deptIds: [],
|
||||
districtId: '',
|
||||
infoList: [{ attrType: '组件类型', attrValue: '图层服务' }],
|
||||
orderField: 'visits',
|
||||
orderType: 'DESC',
|
||||
pageNum: 1,
|
||||
pageSize: 9,
|
||||
type: '组件服务',
|
||||
}
|
||||
const imgSrc = ref(require('@/assets/capacitySquare/algorithm-photo2.jpg'))
|
||||
const dataLength = ref(true)
|
||||
const isNoMore = ref(false)
|
||||
const pageWithAttrsFunction = () => {
|
||||
pageWithAttrs(params).then((res) => {
|
||||
dataList.value = res.data.data.records
|
||||
if (res.data.data.records.length < 9) {
|
||||
dataLength.value = false
|
||||
}
|
||||
})
|
||||
}
|
||||
pageWithAttrsFunction()
|
||||
//图片显示
|
||||
const algorithmCardPhoto = (List) => {
|
||||
let url = ''
|
||||
List.map((item) => {
|
||||
if (item.attrType === '图层缩略图') {
|
||||
url = item.attrValue
|
||||
}
|
||||
})
|
||||
return url
|
||||
}
|
||||
//跳转详情页
|
||||
const detailFunction = (id) => {
|
||||
window.open(window.SITE_CONFIG.previewUrl + `#/details?id=${id}`)
|
||||
}
|
||||
const layerFunction = (e) => {
|
||||
var scrollTop = e.currentTarget.scrollTop
|
||||
var windowHeight = e.currentTarget.clientHeight
|
||||
var scrollHeight = e.currentTarget.scrollHeight
|
||||
console.log(scrollTop, windowHeight, scrollHeight, '123')
|
||||
if (
|
||||
scrollTop + windowHeight <= scrollHeight + 1 &&
|
||||
scrollTop + windowHeight >= scrollHeight - 1
|
||||
) {
|
||||
// 当前滚动条已经触底
|
||||
isNoMore.value = true
|
||||
params.pageNum++
|
||||
pageWithAttrs(params).then((res) => {
|
||||
dataList.value.push(...res.data.data.records)
|
||||
if (res.data.data.records.length < 9) {
|
||||
dataLength.value = false
|
||||
}
|
||||
})
|
||||
} else {
|
||||
isNoMore.value = false
|
||||
}
|
||||
}
|
||||
onMounted(() => {
|
||||
algorithmclass = document.querySelector('.algorithm-class')
|
||||
if (dataLength.value) {
|
||||
//监听滚动事件
|
||||
algorithmclass.addEventListener('scroll', layerFunction, true)
|
||||
}
|
||||
})
|
||||
onBeforeUnmount(() => {
|
||||
algorithmclass.removeEventListener('scroll', layerFunction, true)
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.algorithm {
|
||||
.algorithm-class {
|
||||
margin-top: 0.6rem;
|
||||
margin-bottom: 0.59rem;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 33%);
|
||||
height: 8.8rem;
|
||||
overflow: auto;
|
||||
margin-left: 1.15rem;
|
||||
margin-right: 0.15rem;
|
||||
.algorithm-card {
|
||||
height: 2.75rem;
|
||||
width: 5.23rem;
|
||||
background: url('~@/assets/capacitySquare/algorithm-bg.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
margin-bottom: 0.4rem;
|
||||
margin-right: 0.65rem;
|
||||
position: relative;
|
||||
:deep(.ant-image) {
|
||||
img {
|
||||
margin-top: 0.15rem;
|
||||
height: 2.45rem;
|
||||
width: 5.05rem;
|
||||
margin-left: 0.1rem;
|
||||
}
|
||||
}
|
||||
.algorithm-card-photo {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
background: url('~@/assets/capacitySquare/algorithm-photo.jpg')
|
||||
no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
.algorithm-card-title {
|
||||
position: absolute;
|
||||
height: 0.6rem;
|
||||
margin-left: 0.08rem;
|
||||
width: 97%;
|
||||
color: #ffffff;
|
||||
font-size: 0.22rem;
|
||||
font-family: alibaba;
|
||||
bottom: 0.15rem;
|
||||
padding-left: 0.22rem;
|
||||
background: url('~@/assets/capacitySquare/algorithm-title-bg.png')
|
||||
no-repeat;
|
||||
background-size: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
span {
|
||||
line-height: 0.24rem;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
cursor: pointer;
|
||||
}
|
||||
span:last-child {
|
||||
font-size: 0.14rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.algorithm-class::-webkit-scrollbar-track-piece {
|
||||
background: #a5bcdb;
|
||||
border-radius: 0.08rem;
|
||||
}
|
||||
.algorithm-class::-webkit-scrollbar-thumb {
|
||||
height: 3.2rem;
|
||||
background: linear-gradient(to bottom, #47d7f5, #3dc6e3);
|
||||
}
|
||||
.algorithm-class::-webkit-scrollbar {
|
||||
height: 8.8rem;
|
||||
width: 0.08rem;
|
||||
border-radius: 0.08rem;
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -1,16 +1,27 @@
|
|||
<!--
|
||||
* @Author: hisense.liangjunhua
|
||||
* @Date: 2022-08-09 11:32:47
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-08-09 15:26:57
|
||||
* @Description: 告诉大家这是什么
|
||||
-->
|
||||
<template>
|
||||
<!-- <home-header></home-header> -->
|
||||
<div class="box">
|
||||
<algorithm v-if="show === 'algorithm'"></algorithm>
|
||||
<layer v-else-if="show === 'layer'"></layer>
|
||||
<application v-else-if="show === 'application'"></application>
|
||||
<div class="capacitySquare">
|
||||
<div class="header">
|
||||
<div class="left">城市云脑通用能力服务平台(UCS)</div>
|
||||
{{ squareType }}
|
||||
<div class="right" @click="backClick">返回集市</div>
|
||||
</div>
|
||||
<div class="light"></div>
|
||||
<div class="box">
|
||||
<algorithm v-if="show === 'algorithm'"></algorithm>
|
||||
<layer v-else-if="show === 'layer'"></layer>
|
||||
<application v-else-if="show === 'application'"></application>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <home-footer></home-footer> -->
|
||||
</template>
|
||||
<script setup>
|
||||
import { ref } from 'vue'
|
||||
// import HomeHeader from '@/views/home/components/header'
|
||||
// import HomeFooter from '@/views/newHome/components/Footer'
|
||||
import algorithm from './components/algorithm.vue'
|
||||
import layer from './components/layer.vue'
|
||||
import application from './components/application.vue'
|
||||
|
@ -18,22 +29,90 @@
|
|||
const router = useRouter()
|
||||
const abilityToType = router.currentRoute.value.query.abilityToType
|
||||
const show = ref('algorithm')
|
||||
const squareType = ref('应用广场')
|
||||
if (abilityToType === '应用资源') {
|
||||
show.value = 'application'
|
||||
squareType.value = '应用广场'
|
||||
} else if (abilityToType === '图层服务') {
|
||||
show.value = 'layer'
|
||||
squareType.value = 'GIS广场'
|
||||
} else if (abilityToType === '智能算法') {
|
||||
show.value = 'algorithm'
|
||||
squareType.value = '算法广场'
|
||||
} else {
|
||||
console.log('no')
|
||||
}
|
||||
// 返回集市
|
||||
const backClick = () => {
|
||||
const newpage = router.resolve({
|
||||
path: '/DetailsPageconetent',
|
||||
query: {
|
||||
select: '组件服务',
|
||||
},
|
||||
})
|
||||
window.location.href = newpage.href
|
||||
}
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
@font-face {
|
||||
font-family: alibaba;
|
||||
font-family: 'webfont';
|
||||
src: url('~@/assets/capacitySquare/webfont.ttf');
|
||||
}
|
||||
.box {
|
||||
// padding-top: 0.64rem;
|
||||
.capacitySquare {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: url('~@/assets/capacitySquare/bg.png') no-repeat;
|
||||
background-size: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
position: relative;
|
||||
.header {
|
||||
width: 100%;
|
||||
height: 0.8rem;
|
||||
background: url('~@/assets/capacitySquare/header-bg.png') no-repeat;
|
||||
background-size: 100%;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
font-family: webfont;
|
||||
font-size: 0.5rem;
|
||||
font-weight: 600;
|
||||
.left {
|
||||
position: absolute;
|
||||
top: 0.05rem;
|
||||
left: 1.5rem;
|
||||
font-size: 0.18rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
.right {
|
||||
width: 1rem;
|
||||
height: 0.3rem;
|
||||
line-height: 0.3rem;
|
||||
position: absolute;
|
||||
top: 0.05rem;
|
||||
right: 0.2rem;
|
||||
font-size: 0.14rem;
|
||||
font-weight: 500;
|
||||
background: url('~@/assets/capacitySquare/backShop.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
.light {
|
||||
position: absolute;
|
||||
top: 0.25rem;
|
||||
left: 6.25rem;
|
||||
z-index: 10;
|
||||
width: 6.64rem;
|
||||
height: 1.64rem;
|
||||
background: url('~@/assets/capacitySquare/header-light.png') no-repeat;
|
||||
background-size: 100%;
|
||||
background-position: center;
|
||||
}
|
||||
.box {
|
||||
flex: 1;
|
||||
// padding: 0.5rem 0;
|
||||
font-family: alibaba;
|
||||
src: url('~@/assets/capacitySquare/webfont.ttf');
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<!--
|
||||
* @Author: hisense.liangjunhua
|
||||
* @Date: 2022-06-08 11:56:28
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-07-19 15:04:02
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-08-09 11:54:40
|
||||
* @Description: 算法详情页头部
|
||||
-->
|
||||
<template>
|
||||
|
@ -54,7 +54,15 @@
|
|||
<template #icon><form-outlined /></template>
|
||||
申请使用
|
||||
</a-button>
|
||||
<a-button type="primary" @click="addShoppingCart()">
|
||||
<a-button
|
||||
type="primary"
|
||||
@click="addShoppingCart()"
|
||||
v-show="
|
||||
props.dataList.infoList.filter(
|
||||
(val) => val.attrType == '外部服务地址'
|
||||
).length === 0
|
||||
"
|
||||
>
|
||||
<template #icon><shopping-cart-outlined /></template>
|
||||
加入申购车
|
||||
</a-button>
|
||||
|
@ -105,30 +113,37 @@
|
|||
// 立即申请
|
||||
function toView() {
|
||||
// window.open(newpage.href, '_blank')
|
||||
console.log('一键申请===================>', props.dataList)
|
||||
localStorage.setItem(
|
||||
'applyList',
|
||||
JSON.stringify([
|
||||
{
|
||||
arr: [
|
||||
{
|
||||
delFlag: props.dataList.delFlag,
|
||||
description: props.dataList.description,
|
||||
resourceId: props.dataList.id,
|
||||
resourceName: props.dataList.name,
|
||||
time: props.dataList.createDate,
|
||||
type: props.dataList.type,
|
||||
componentType: '图层服务',
|
||||
},
|
||||
],
|
||||
deptId: props.dataList.deptId,
|
||||
deptName: props.dataList.deptName,
|
||||
},
|
||||
])
|
||||
)
|
||||
router.push({
|
||||
path: '/apply',
|
||||
})
|
||||
const webUrl = props.dataList.infoList.filter(
|
||||
(val) => val.attrType == '外部服务地址'
|
||||
)[0]?.attrValue
|
||||
if (webUrl) {
|
||||
window.open(webUrl)
|
||||
} else {
|
||||
console.log('一键申请===================>', props.dataList)
|
||||
localStorage.setItem(
|
||||
'applyList',
|
||||
JSON.stringify([
|
||||
{
|
||||
arr: [
|
||||
{
|
||||
delFlag: props.dataList.delFlag,
|
||||
description: props.dataList.description,
|
||||
resourceId: props.dataList.id,
|
||||
resourceName: props.dataList.name,
|
||||
time: props.dataList.createDate,
|
||||
type: props.dataList.type,
|
||||
componentType: '图层服务',
|
||||
},
|
||||
],
|
||||
deptId: props.dataList.deptId,
|
||||
deptName: props.dataList.deptName,
|
||||
},
|
||||
])
|
||||
)
|
||||
router.push({
|
||||
path: '/apply',
|
||||
})
|
||||
}
|
||||
}
|
||||
// 收藏
|
||||
const scFlag2 = ref(true)
|
||||
|
|
|
@ -225,6 +225,19 @@
|
|||
<i></i>
|
||||
</a-tooltip>
|
||||
</div>
|
||||
<div @click="showAbilitySquare" class="abilitySquare">
|
||||
<p></p>
|
||||
<p>能力广场</p>
|
||||
<ul v-show="visibleAbilitySquare">
|
||||
<li
|
||||
v-for="item in abilitySquare"
|
||||
:key="item"
|
||||
@click="abilitySquareFunction(item)"
|
||||
>
|
||||
{{ item }}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 西海岸 -->
|
||||
<div
|
||||
|
@ -1359,6 +1372,40 @@
|
|||
location.reload()
|
||||
console.log('URL发生变化了')
|
||||
})
|
||||
// 能力广场
|
||||
const visibleAbilitySquare = ref(false)
|
||||
let abilitySquare = ref(['应用广场', '算法广场', 'GIS广场'])
|
||||
const showAbilitySquareNum = ref(0)
|
||||
const showAbilitySquare = () => {
|
||||
if (showAbilitySquareNum.value === 0) {
|
||||
showAbilitySquareNum.value = 1
|
||||
visibleAbilitySquare.value = true
|
||||
} else if (showAbilitySquareNum.value === 1) {
|
||||
showAbilitySquareNum.value = 0
|
||||
visibleAbilitySquare.value = false
|
||||
}
|
||||
}
|
||||
let abilitySquareFunctionData = ref('智能算法')
|
||||
const abilitySquareFunction = (e) => {
|
||||
let snumSquare = ref({})
|
||||
if (e === '应用广场') {
|
||||
abilitySquareFunctionData.value = '应用资源'
|
||||
} else if (e === '算法广场') {
|
||||
abilitySquareFunctionData.value = '智能算法'
|
||||
} else if (e === 'GIS广场') {
|
||||
abilitySquareFunctionData.value = '图层服务'
|
||||
}
|
||||
snumSquare.value = {
|
||||
abilityToType: abilitySquareFunctionData.value,
|
||||
}
|
||||
const applypage = router.resolve({
|
||||
path: '/capacitySquare', // 跳转的页面路由
|
||||
query: snumSquare.value,
|
||||
})
|
||||
window.open(applypage.href, '_blank')
|
||||
visibleAbilitySquare.value = false
|
||||
abilitySquareFunctionData.value = '智能算法'
|
||||
}
|
||||
return {
|
||||
listKey,
|
||||
ListContent,
|
||||
|
@ -1399,6 +1446,12 @@
|
|||
getShoppingCartList,
|
||||
whoShow1,
|
||||
applyAll,
|
||||
abilitySquare,
|
||||
visibleAbilitySquare,
|
||||
showAbilitySquare,
|
||||
abilitySquareFunction,
|
||||
abilitySquareFunctionData,
|
||||
showAbilitySquareNum,
|
||||
}
|
||||
},
|
||||
components: {
|
||||
|
@ -1427,6 +1480,10 @@
|
|||
})
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
@font-face {
|
||||
font-family: 'webfont';
|
||||
src: url('~@/assets/capacitySquare/webfont.ttf');
|
||||
}
|
||||
.resultListSearchInput-father {
|
||||
background: #f3f5f9;
|
||||
padding: 0.2rem;
|
||||
|
@ -1852,6 +1909,95 @@
|
|||
background-size: cover;
|
||||
}
|
||||
}
|
||||
.abilitySquare {
|
||||
width: 0.7rem;
|
||||
height: 0.7rem;
|
||||
border-radius: 0.04rem;
|
||||
border: 0.01rem #94aac9 solid;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
// justify-content: center;
|
||||
align-items: center;
|
||||
padding-top: 0.05rem;
|
||||
position: fixed;
|
||||
z-index: 10;
|
||||
bottom: 1.56rem;
|
||||
right: 0.1rem;
|
||||
cursor: pointer;
|
||||
background: #e3edfc;
|
||||
p {
|
||||
margin: 0;
|
||||
}
|
||||
p:nth-child(1) {
|
||||
height: 0.35rem;
|
||||
width: 0.36rem;
|
||||
background: url('~@/assets/home/abilitysquare.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
background-position: center;
|
||||
}
|
||||
ul {
|
||||
background: #ffffff;
|
||||
font-family: webfont;
|
||||
width: 1.35rem;
|
||||
height: 1rem;
|
||||
border-radius: 0.03rem;
|
||||
border: 0.01rem solid #dfd9d9;
|
||||
position: absolute;
|
||||
bottom: 0.9rem;
|
||||
left: -0.62rem;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
li {
|
||||
list-style: none;
|
||||
color: #0061ec;
|
||||
font-size: 0.18rem;
|
||||
padding: 0.02rem;
|
||||
padding-left: 0.4rem;
|
||||
border-bottom: 0.01rem solid #dfd9d9;
|
||||
}
|
||||
li:nth-of-type(1) {
|
||||
background: url('~@/assets/home/appIcon.png') no-repeat;
|
||||
background-position: 0.18rem center;
|
||||
}
|
||||
li:nth-of-type(2) {
|
||||
background: url('~@/assets/home/AiIcon.png') no-repeat;
|
||||
background-position: 0.18rem center;
|
||||
}
|
||||
li:nth-of-type(3) {
|
||||
border-bottom: none;
|
||||
background: url('~@/assets/home/GisIcon.png') no-repeat;
|
||||
background-position: 0.18rem center;
|
||||
}
|
||||
}
|
||||
ul::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0.98rem;
|
||||
right: 0.12rem;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border: 0.13rem solid;
|
||||
border-color: #fff transparent transparent transparent;
|
||||
}
|
||||
ul::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0.99rem;
|
||||
right: 0.12rem;
|
||||
width: 0;
|
||||
height: 0;
|
||||
border: 0.13rem solid;
|
||||
border-color: #dfd9d9 transparent transparent transparent;
|
||||
}
|
||||
@keyframes ulShowTime {
|
||||
0% {
|
||||
transform: scale(0);
|
||||
}
|
||||
100% {
|
||||
transform: scale(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.top-content-father {
|
||||
width: 10.87rem;
|
||||
|
|
|
@ -9,7 +9,10 @@
|
|||
<div class="name">
|
||||
<div class="name-bg" v-if="!whoShow1.itShowXiHaiAn"></div>
|
||||
<div class="name-bg-xihaian" v-else></div>
|
||||
城市云脑通用能力服务平台
|
||||
<div class="name-content">
|
||||
<p>城市云脑通用能力服务平台</p>
|
||||
<p>(United Capacity System)</p>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-for="item in navList"
|
||||
|
@ -360,7 +363,7 @@
|
|||
.name-bg {
|
||||
height: 0.6rem;
|
||||
width: 0.6rem;
|
||||
background: url('~@/assets/newHome/newHome-title-bg.png') no-repeat;
|
||||
background: url('~@/assets/newHome/ucs-2.png') no-repeat;
|
||||
background-size: 100%;
|
||||
margin-right: 0.15rem;
|
||||
}
|
||||
|
@ -372,6 +375,16 @@
|
|||
background-size: 100%;
|
||||
margin-right: 0.15rem;
|
||||
}
|
||||
.name-content {
|
||||
padding-top: 0.14rem;
|
||||
p {
|
||||
font-size: 0.2rem;
|
||||
margin-bottom: 0;
|
||||
&:nth-of-type(2) {
|
||||
font-size: 0.12rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.nav {
|
||||
width: 1.2rem;
|
||||
|
@ -432,6 +445,16 @@
|
|||
box-shadow: 0 0.02rem 0.1rem rgba(0, 0, 0, 0.1);
|
||||
.name {
|
||||
color: #0058e1;
|
||||
.name-bg {
|
||||
height: 0.6rem;
|
||||
width: 0.6rem;
|
||||
background: url('~@/assets/newHome/ucs-1.png') no-repeat;
|
||||
background-size: 100%;
|
||||
margin-right: 0.15rem;
|
||||
}
|
||||
p {
|
||||
color: #0058e1;
|
||||
}
|
||||
}
|
||||
.icon {
|
||||
cursor: pointer;
|
||||
|
|
|
@ -321,10 +321,14 @@
|
|||
</div> -->
|
||||
</div>
|
||||
<div class="right" v-if="selectCardsname !== '基础设施'">
|
||||
<!-- 申购车 -->
|
||||
<div class="shopping" :key="shoppingKey">
|
||||
<template
|
||||
v-if="
|
||||
selectCardsname == '组件服务' ||
|
||||
(selectCardsname == '组件服务' &&
|
||||
item.infoList.filter(
|
||||
(val) => val.attrType == '外部服务地址'
|
||||
).length === 0) ||
|
||||
(selectCardsname == '应用资源' && whoShow1.itShowQingDao)
|
||||
"
|
||||
>
|
||||
|
@ -649,37 +653,46 @@
|
|||
})
|
||||
} else {
|
||||
if (type === 'apply') {
|
||||
console.log('一键申请===================>', item)
|
||||
localStorage.setItem(
|
||||
'applyList',
|
||||
JSON.stringify([
|
||||
{
|
||||
arr: [
|
||||
{
|
||||
delFlag: item.delFlag,
|
||||
description: item.description,
|
||||
resourceId: item.id,
|
||||
resourceName: item.name,
|
||||
time: item.createDate,
|
||||
type: item.type,
|
||||
componentType:
|
||||
(item.infoList.filter(
|
||||
(val) => val.attrType == '组件类型'
|
||||
)[0] &&
|
||||
item.infoList.filter(
|
||||
// 外部服务地址跳转到外部
|
||||
const webUrl = item.infoList.filter(
|
||||
(val) => val.attrType == '外部服务地址'
|
||||
)[0]?.attrValue
|
||||
if (webUrl) {
|
||||
window.open(webUrl)
|
||||
} else {
|
||||
// 内部跳转申请页面
|
||||
console.log('一键申请===================>', item)
|
||||
localStorage.setItem(
|
||||
'applyList',
|
||||
JSON.stringify([
|
||||
{
|
||||
arr: [
|
||||
{
|
||||
delFlag: item.delFlag,
|
||||
description: item.description,
|
||||
resourceId: item.id,
|
||||
resourceName: item.name,
|
||||
time: item.createDate,
|
||||
type: item.type,
|
||||
componentType:
|
||||
(item.infoList.filter(
|
||||
(val) => val.attrType == '组件类型'
|
||||
)[0].attrValue) ||
|
||||
'',
|
||||
},
|
||||
],
|
||||
deptId: item.deptId,
|
||||
deptName: item.deptName,
|
||||
},
|
||||
])
|
||||
)
|
||||
router.push({
|
||||
path: '/apply',
|
||||
})
|
||||
)[0] &&
|
||||
item.infoList.filter(
|
||||
(val) => val.attrType == '组件类型'
|
||||
)[0].attrValue) ||
|
||||
'',
|
||||
},
|
||||
],
|
||||
deptId: item.deptId,
|
||||
deptName: item.deptName,
|
||||
},
|
||||
])
|
||||
)
|
||||
router.push({
|
||||
path: '/apply',
|
||||
})
|
||||
}
|
||||
} else {
|
||||
console.log(
|
||||
'111111111111111111===========>',
|
||||
|
|
|
@ -149,9 +149,10 @@
|
|||
</div>
|
||||
<!-- 单个预览弹窗 -->
|
||||
<a-modal
|
||||
wrapClassName="single-preview-modal"
|
||||
v-model:visible="visible"
|
||||
title="视频预览"
|
||||
:width="950"
|
||||
:width="960"
|
||||
destroyOnClose
|
||||
>
|
||||
<template #footer></template>
|
||||
|
@ -166,7 +167,7 @@
|
|||
wrapClassName="batch-preview-modal"
|
||||
v-model:visible="batchVisible"
|
||||
title="视频批量预览"
|
||||
:width="1250"
|
||||
:width="1060"
|
||||
destroyOnClose
|
||||
@cancel="videoClean"
|
||||
>
|
||||
|
@ -177,9 +178,18 @@
|
|||
:key="item.id"
|
||||
style="width: 100%; height: 100%"
|
||||
>
|
||||
<p></p>
|
||||
<vue3VideoPlay v-bind="item.options" />
|
||||
</div>
|
||||
</div>
|
||||
<a-pagination
|
||||
v-model:current="current"
|
||||
:total="videoTotal"
|
||||
defaultPageSize="4"
|
||||
:showSizeChanger="false"
|
||||
@change="batchPreview"
|
||||
show-less-items
|
||||
/>
|
||||
</a-modal>
|
||||
<a-modal
|
||||
wrapClassName="wrj"
|
||||
|
@ -255,11 +265,13 @@
|
|||
import { getCameraByCondition } from '@/api/file'
|
||||
import { sgcInsert } from '@/api/home'
|
||||
import mybus from '@/myplugins/mybus'
|
||||
const current = ref(1)
|
||||
const videoTotal = ref(0)
|
||||
const router = useRouter()
|
||||
const whoShow1 = ref(whoShow)
|
||||
const options = reactive({
|
||||
width: '900px', //播放器宽度
|
||||
height: '400px', //播放器高度
|
||||
width: '912px', //播放器宽度
|
||||
height: '513px', //播放器高度
|
||||
color: '#409eff', //主题色
|
||||
title: '', //视频名称
|
||||
src: '', //视频源
|
||||
|
@ -579,9 +591,16 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
const batchPreview = async function () {
|
||||
const batchPreview = async function (page) {
|
||||
if (page.layerX) {
|
||||
page = 1
|
||||
}
|
||||
if (selectedList.value.length > 0) {
|
||||
const list = selectedList.value.splice(0, 4)
|
||||
videoTotal.value = selectedList.value.length
|
||||
const arr = JSON.parse(JSON.stringify(selectedList.value))
|
||||
let start = (page - 1) * 4
|
||||
let list = []
|
||||
list = arr.splice(start, 4)
|
||||
const length = list.length
|
||||
videoList.value = []
|
||||
for (let index = 0; index < length; index++) {
|
||||
|
@ -590,8 +609,8 @@
|
|||
}
|
||||
let ob = {
|
||||
options: {
|
||||
width: '600px', //播放器宽度
|
||||
height: '350px', //播放器高度
|
||||
width: '512px', //播放器宽度
|
||||
height: '288px', //播放器高度
|
||||
color: '#409eff', //主题色
|
||||
title: '', //视频名称
|
||||
src: '', //视频源
|
||||
|
@ -651,7 +670,10 @@
|
|||
selectedList.value = []
|
||||
selectedRowKeys.value = []
|
||||
videoList.value = []
|
||||
current.value = 1
|
||||
}
|
||||
// 改变批量预览的分页
|
||||
const changePage = (page) => {}
|
||||
// 一键申请
|
||||
const dept = reactive({})
|
||||
// eslint-disable-next-line no-undef
|
||||
|
@ -712,6 +734,14 @@
|
|||
longitude: mapSearchParam.value.gpsX || '',
|
||||
latitude: mapSearchParam.value.gpsY || '',
|
||||
radius: mapSearchParam.value.radius || '',
|
||||
status: 1,
|
||||
}
|
||||
if (
|
||||
params.regionId === '70be8c5b664f4bcf869d82f2e8335051' &&
|
||||
!params.name &&
|
||||
!params.longitude
|
||||
) {
|
||||
params.status = ''
|
||||
}
|
||||
let paramsFather = ''
|
||||
let i = 1
|
||||
|
@ -1000,6 +1030,20 @@
|
|||
overflow-y: scroll !important;
|
||||
}
|
||||
}
|
||||
.single-preview-modal {
|
||||
.ant-modal-header {
|
||||
background: url(~@/assets/home/video-background.png) no-repeat;
|
||||
background-size: cover;
|
||||
}
|
||||
.ant-modal-title {
|
||||
font-size: 0.16rem;
|
||||
font-weight: 500;
|
||||
color: #ffffff;
|
||||
}
|
||||
.anticon {
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
.batch-preview-modal {
|
||||
.batch-video {
|
||||
width: 100%;
|
||||
|
@ -1007,8 +1051,23 @@
|
|||
grid-template-columns: 50% 50%;
|
||||
grid-template-rows: 50% 50%;
|
||||
justify-content: center;
|
||||
grid-row-gap: 14px;
|
||||
// grid-row-gap: 14px;
|
||||
grid-column-gap: 20px;
|
||||
}
|
||||
.ant-pagination-item-link {
|
||||
background-color: #5580f7;
|
||||
}
|
||||
.ant-modal-header {
|
||||
background: url(~@/assets/home/video-background.png) no-repeat;
|
||||
background-size: cover;
|
||||
}
|
||||
.ant-modal-title {
|
||||
font-size: 0.16rem;
|
||||
font-weight: 500;
|
||||
color: #ffffff;
|
||||
}
|
||||
.anticon {
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -226,6 +226,7 @@
|
|||
longitude: this.mapSearchParam.gpsX || '',
|
||||
latitude: this.mapSearchParam.gpsY || '',
|
||||
radius: this.mapSearchParam.radius || '',
|
||||
status: 1,
|
||||
}
|
||||
let paramsFather = ''
|
||||
let i = 1
|
||||
|
|
|
@ -113,7 +113,7 @@
|
|||
</div>
|
||||
</a-modal>
|
||||
</div>
|
||||
<div @click="showAbilitySquare">
|
||||
<!-- <div @click="showAbilitySquare">
|
||||
<p></p>
|
||||
<p>能力广场</p>
|
||||
<a-modal
|
||||
|
@ -143,7 +143,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
@ -579,7 +579,7 @@
|
|||
}
|
||||
|
||||
.fixedmount {
|
||||
height: 2.3rem;
|
||||
height: 1.5rem;
|
||||
display: flex;
|
||||
position: fixed;
|
||||
bottom: 2.56rem;
|
||||
|
@ -633,8 +633,8 @@
|
|||
.fixedmount div:nth-child(3) p:nth-child(1) {
|
||||
height: 0.24rem;
|
||||
width: 0.24rem;
|
||||
background: url('~@/assets/home/shangjia.png') no-repeat;
|
||||
background-size: contain;
|
||||
background: url('~@/assets/home/abilitysquare.png') no-repeat;
|
||||
background-size: 140% 126%;
|
||||
background-position: center;
|
||||
}
|
||||
</style>
|
||||
|
|