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
|
* @Author: hisense.wuhongjian
|
||||||
* @Date: 2022-03-29 16:45:25
|
* @Date: 2022-03-29 16:45:25
|
||||||
* @LastEditors: hisense.liangjunhua
|
* @LastEditors: hisense.wuhongjian
|
||||||
* @LastEditTime: 2022-08-09 09:24:43
|
* @LastEditTime: 2022-08-09 18:09:19
|
||||||
* @Description: 告诉大家这是什么
|
* @Description: 告诉大家这是什么
|
||||||
-->
|
-->
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
|
@ -29,10 +29,11 @@
|
||||||
<!-- 站点配置 -->
|
<!-- 站点配置 -->
|
||||||
<script>
|
<script>
|
||||||
window.SITE_CONFIG = {};
|
window.SITE_CONFIG = {};
|
||||||
// window.SITE_CONFIG['backUrl'] = 'http://15.72.183.90:8001';
|
window.SITE_CONFIG['backUrl'] = 'http://15.72.183.90:8001';
|
||||||
// window.SITE_CONFIG['previewUrl'] = 'http://15.72.183.90:7008/';
|
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['frontUrl'] = 'http://15.72.183.90:7008/document/#/devModelFile/';
|
||||||
// window.SITE_CONFIG['apiURL'] = 'http://15.72.183.90:8000/renren-admin';
|
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['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';
|
// 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['apiURL'] = 'http://10.134.135.9:8888/renren-admin';
|
||||||
// 开发
|
// 开发
|
||||||
// window.SITE_CONFIG['backUrl'] = 'http://15.2.21.238:9797';
|
// window.SITE_CONFIG['backUrl'] = 'http://15.2.21.238:9797';
|
||||||
window.SITE_CONFIG['backUrl'] = 'http://localhost:8001';
|
// window.SITE_CONFIG['backUrl'] = 'http://localhost:8001';
|
||||||
window.SITE_CONFIG['previewUrl'] = 'http://192.168.124.236:9796/';
|
// 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['frontUrl'] = 'http://192.168.124.236:9796/document/#/devModelFile/';
|
||||||
window.SITE_CONFIG['apiURL'] = 'http://192.168.124.236:8888/renren-admin';
|
// 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['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['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['backUrl'] = 'http://124.222.94.39:9797';
|
||||||
// window.SITE_CONFIG['previewUrl'] = 'http://124.222.94.39:9796/';
|
// window.SITE_CONFIG['previewUrl'] = 'http://124.222.94.39:9796/';
|
||||||
|
|
|
@ -5,9 +5,9 @@
|
||||||
* @LastEditTime: 2022-08-06 10:43:53
|
* @LastEditTime: 2022-08-06 10:43:53
|
||||||
* @Description: 数据资源参数配置
|
* @Description: 数据资源参数配置
|
||||||
*/
|
*/
|
||||||
const newLocation = 'xihaian'
|
const newLocation = 'qingdao'
|
||||||
// const newLocation = 'baotou'
|
// const newLocation = 'baotou'
|
||||||
// const newLocation = 'xihaian'
|
//const newLocation = 'xihaian'
|
||||||
|
|
||||||
// 数据资源数据
|
// 数据资源数据
|
||||||
const whoShow = {}
|
const whoShow = {}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author: hisense.wuhongjian
|
* @Author: hisense.wuhongjian
|
||||||
* @Date: 2022-04-01 19:19:40
|
* @Date: 2022-04-01 19:19:40
|
||||||
* @LastEditors: hisense.liangjunhua
|
* @LastEditors: hisense.liangjunhua
|
||||||
* @LastEditTime: 2022-07-18 16:24:44
|
* @LastEditTime: 2022-08-09 10:37:31
|
||||||
* @Description: 告诉大家这是什么
|
* @Description: 告诉大家这是什么
|
||||||
*/
|
*/
|
||||||
import request from '@/utils/request'
|
import request from '@/utils/request'
|
||||||
|
@ -370,3 +370,11 @@ export function getDevelopDocTree(params) {
|
||||||
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}`"
|
:key="`algorithm-${index}`"
|
||||||
class="algorithm-card"
|
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>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { pageWithAttrs } from '@/api/abilityStatistics'
|
import { pageWithAttrs } from '@/api/abilityStatistics'
|
||||||
import { ref, onMounted } from 'vue'
|
import { ref, onMounted, onBeforeUnmount } from 'vue'
|
||||||
const dataList = ref([])
|
const dataList = ref([])
|
||||||
const params = {
|
const params = {
|
||||||
deptIds: [],
|
deptIds: [],
|
||||||
|
@ -26,37 +40,78 @@
|
||||||
pageSize: 9,
|
pageSize: 9,
|
||||||
type: '组件服务',
|
type: '组件服务',
|
||||||
}
|
}
|
||||||
|
let algorithmclass = null
|
||||||
|
const imgSrc = ref(require('@/assets/capacitySquare/algorithm-photo.jpg'))
|
||||||
|
const dataLength = ref(true)
|
||||||
const isNoMore = ref(false)
|
const isNoMore = ref(false)
|
||||||
|
let url = ref('')
|
||||||
const pageWithAttrsFunction = () => {
|
const pageWithAttrsFunction = () => {
|
||||||
pageWithAttrs(params).then((res) => {
|
pageWithAttrs(params).then((res) => {
|
||||||
dataList.value = res.data.data.records
|
dataList.value = res.data.data.records
|
||||||
|
if (res.data.data.records.length < 9) {
|
||||||
|
dataLength.value = false
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
pageWithAttrsFunction()
|
pageWithAttrsFunction()
|
||||||
onMounted(() => {
|
//图片显示
|
||||||
const algorithmclass = document.querySelector('.algorithm-class')
|
const algorithmCardPhoto = (List, item) => {
|
||||||
algorithmclass.addEventListener('scroll', (e) => {
|
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 scrollTop = e.currentTarget.scrollTop
|
||||||
var windowHeight = e.currentTarget.clientHeight
|
var windowHeight = e.currentTarget.clientHeight
|
||||||
var scrollHeight = e.currentTarget.scrollHeight
|
var scrollHeight = e.currentTarget.scrollHeight
|
||||||
console.log(scrollTop, windowHeight, scrollHeight, '123')
|
console.log(scrollTop, windowHeight, scrollHeight, '123')
|
||||||
if (scrollTop + windowHeight == scrollHeight) {
|
if (
|
||||||
|
scrollTop + windowHeight <= scrollHeight + 1 &&
|
||||||
|
scrollTop + windowHeight >= scrollHeight - 1
|
||||||
|
) {
|
||||||
// 当前滚动条已经触底
|
// 当前滚动条已经触底
|
||||||
isNoMore.value = true
|
isNoMore.value = true
|
||||||
params.pageNum++
|
params.pageNum++
|
||||||
pageWithAttrs(params).then((res) => {
|
pageWithAttrs(params).then((res) => {
|
||||||
dataList.value.push(...res.data.data.records)
|
dataList.value.push(...res.data.data.records)
|
||||||
|
if (res.data.data.records.length < 9) {
|
||||||
|
dataLength.value = false
|
||||||
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
isNoMore.value = false
|
isNoMore.value = false
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
algorithmclass = document.querySelector('.algorithm-class')
|
||||||
|
if (dataLength.value) {
|
||||||
|
//监听滚动事件
|
||||||
|
algorithmclass.addEventListener('scroll', algorithmFunction, true)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
onBeforeUnmount(() => {
|
||||||
|
algorithmclass.removeEventListener('scroll', algorithmFunction, true)
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
.algorithm {
|
.algorithm {
|
||||||
.algorithm-class {
|
.algorithm-class {
|
||||||
|
margin-top: 0.6rem;
|
||||||
|
margin-bottom: 0.59rem;
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(3, 33%);
|
grid-template-columns: repeat(3, 33%);
|
||||||
height: 8.8rem;
|
height: 8.8rem;
|
||||||
|
@ -67,16 +122,51 @@
|
||||||
height: 2.75rem;
|
height: 2.75rem;
|
||||||
width: 5.25rem;
|
width: 5.25rem;
|
||||||
background: url('~@/assets/capacitySquare/algorithm-bg.png') no-repeat;
|
background: url('~@/assets/capacitySquare/algorithm-bg.png') no-repeat;
|
||||||
background-size: 100%;
|
background-size: 100% 100%;
|
||||||
margin-bottom: 0.3rem;
|
margin-bottom: 0.4rem;
|
||||||
margin-right: 0.65rem;
|
margin-right: 0.65rem;
|
||||||
position: relative;
|
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 {
|
.algorithm-card-title {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
height: 0.6rem;
|
height: 0.6rem;
|
||||||
width: 100%;
|
margin-left: 0.08rem;
|
||||||
|
width: 97%;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
font-size: 0.22rem;
|
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
|
* @Author: hisense.liangjunhua
|
||||||
* @Date: 2022-08-09 09:31:25
|
* @Date: 2022-08-09 09:31:25
|
||||||
* @LastEditors: hisense.liangjunhua
|
* @LastEditors: hisense.liangjunhua
|
||||||
* @LastEditTime: 2022-08-09 09:38:03
|
* @LastEditTime: 2022-08-10 14:29:05
|
||||||
* @Description: 应用资源
|
* @Description: 应用资源
|
||||||
-->
|
-->
|
||||||
<template>
|
<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>
|
</template>
|
||||||
<script setup></script>
|
<script setup>
|
||||||
<style lang="less" scoped></style>
|
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>
|
<template>
|
||||||
<!-- <home-header></home-header> -->
|
<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">
|
<div class="box">
|
||||||
<algorithm v-if="show === 'algorithm'"></algorithm>
|
<algorithm v-if="show === 'algorithm'"></algorithm>
|
||||||
<layer v-else-if="show === 'layer'"></layer>
|
<layer v-else-if="show === 'layer'"></layer>
|
||||||
<application v-else-if="show === 'application'"></application>
|
<application v-else-if="show === 'application'"></application>
|
||||||
</div>
|
</div>
|
||||||
<!-- <home-footer></home-footer> -->
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref } from 'vue'
|
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 algorithm from './components/algorithm.vue'
|
||||||
import layer from './components/layer.vue'
|
import layer from './components/layer.vue'
|
||||||
import application from './components/application.vue'
|
import application from './components/application.vue'
|
||||||
|
@ -18,22 +29,90 @@
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const abilityToType = router.currentRoute.value.query.abilityToType
|
const abilityToType = router.currentRoute.value.query.abilityToType
|
||||||
const show = ref('algorithm')
|
const show = ref('algorithm')
|
||||||
|
const squareType = ref('应用广场')
|
||||||
if (abilityToType === '应用资源') {
|
if (abilityToType === '应用资源') {
|
||||||
show.value = 'application'
|
show.value = 'application'
|
||||||
|
squareType.value = '应用广场'
|
||||||
} else if (abilityToType === '图层服务') {
|
} else if (abilityToType === '图层服务') {
|
||||||
show.value = 'layer'
|
show.value = 'layer'
|
||||||
|
squareType.value = 'GIS广场'
|
||||||
} else if (abilityToType === '智能算法') {
|
} else if (abilityToType === '智能算法') {
|
||||||
show.value = 'algorithm'
|
show.value = 'algorithm'
|
||||||
|
squareType.value = '算法广场'
|
||||||
} else {
|
} else {
|
||||||
console.log('no')
|
console.log('no')
|
||||||
}
|
}
|
||||||
|
// 返回集市
|
||||||
|
const backClick = () => {
|
||||||
|
const newpage = router.resolve({
|
||||||
|
path: '/DetailsPageconetent',
|
||||||
|
query: {
|
||||||
|
select: '组件服务',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
window.location.href = newpage.href
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
@font-face {
|
@font-face {
|
||||||
|
font-family: 'webfont';
|
||||||
|
src: url('~@/assets/capacitySquare/webfont.ttf');
|
||||||
|
}
|
||||||
|
.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;
|
font-family: alibaba;
|
||||||
src: url('~@/assets/capacitySquare/webfont.ttf');
|
src: url('~@/assets/capacitySquare/webfont.ttf');
|
||||||
}
|
}
|
||||||
.box {
|
|
||||||
// padding-top: 0.64rem;
|
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
<!--
|
<!--
|
||||||
* @Author: hisense.liangjunhua
|
* @Author: hisense.liangjunhua
|
||||||
* @Date: 2022-06-08 11:56:28
|
* @Date: 2022-06-08 11:56:28
|
||||||
* @LastEditors: hisense.liangjunhua
|
* @LastEditors: hisense.wuhongjian
|
||||||
* @LastEditTime: 2022-07-19 15:04:02
|
* @LastEditTime: 2022-08-09 11:54:40
|
||||||
* @Description: 算法详情页头部
|
* @Description: 算法详情页头部
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
|
@ -54,7 +54,15 @@
|
||||||
<template #icon><form-outlined /></template>
|
<template #icon><form-outlined /></template>
|
||||||
申请使用
|
申请使用
|
||||||
</a-button>
|
</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>
|
<template #icon><shopping-cart-outlined /></template>
|
||||||
加入申购车
|
加入申购车
|
||||||
</a-button>
|
</a-button>
|
||||||
|
@ -105,6 +113,12 @@
|
||||||
// 立即申请
|
// 立即申请
|
||||||
function toView() {
|
function toView() {
|
||||||
// window.open(newpage.href, '_blank')
|
// window.open(newpage.href, '_blank')
|
||||||
|
const webUrl = props.dataList.infoList.filter(
|
||||||
|
(val) => val.attrType == '外部服务地址'
|
||||||
|
)[0]?.attrValue
|
||||||
|
if (webUrl) {
|
||||||
|
window.open(webUrl)
|
||||||
|
} else {
|
||||||
console.log('一键申请===================>', props.dataList)
|
console.log('一键申请===================>', props.dataList)
|
||||||
localStorage.setItem(
|
localStorage.setItem(
|
||||||
'applyList',
|
'applyList',
|
||||||
|
@ -130,6 +144,7 @@
|
||||||
path: '/apply',
|
path: '/apply',
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
}
|
||||||
// 收藏
|
// 收藏
|
||||||
const scFlag2 = ref(true)
|
const scFlag2 = ref(true)
|
||||||
const goTOCollection = () => {
|
const goTOCollection = () => {
|
||||||
|
|
|
@ -225,6 +225,19 @@
|
||||||
<i></i>
|
<i></i>
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
</div>
|
</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>
|
||||||
<!-- 西海岸 -->
|
<!-- 西海岸 -->
|
||||||
<div
|
<div
|
||||||
|
@ -1359,6 +1372,40 @@
|
||||||
location.reload()
|
location.reload()
|
||||||
console.log('URL发生变化了')
|
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 {
|
return {
|
||||||
listKey,
|
listKey,
|
||||||
ListContent,
|
ListContent,
|
||||||
|
@ -1399,6 +1446,12 @@
|
||||||
getShoppingCartList,
|
getShoppingCartList,
|
||||||
whoShow1,
|
whoShow1,
|
||||||
applyAll,
|
applyAll,
|
||||||
|
abilitySquare,
|
||||||
|
visibleAbilitySquare,
|
||||||
|
showAbilitySquare,
|
||||||
|
abilitySquareFunction,
|
||||||
|
abilitySquareFunctionData,
|
||||||
|
showAbilitySquareNum,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
|
@ -1427,6 +1480,10 @@
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
@font-face {
|
||||||
|
font-family: 'webfont';
|
||||||
|
src: url('~@/assets/capacitySquare/webfont.ttf');
|
||||||
|
}
|
||||||
.resultListSearchInput-father {
|
.resultListSearchInput-father {
|
||||||
background: #f3f5f9;
|
background: #f3f5f9;
|
||||||
padding: 0.2rem;
|
padding: 0.2rem;
|
||||||
|
@ -1852,6 +1909,95 @@
|
||||||
background-size: cover;
|
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 {
|
.top-content-father {
|
||||||
width: 10.87rem;
|
width: 10.87rem;
|
||||||
|
|
|
@ -9,7 +9,10 @@
|
||||||
<div class="name">
|
<div class="name">
|
||||||
<div class="name-bg" v-if="!whoShow1.itShowXiHaiAn"></div>
|
<div class="name-bg" v-if="!whoShow1.itShowXiHaiAn"></div>
|
||||||
<div class="name-bg-xihaian" v-else></div>
|
<div class="name-bg-xihaian" v-else></div>
|
||||||
城市云脑通用能力服务平台
|
<div class="name-content">
|
||||||
|
<p>城市云脑通用能力服务平台</p>
|
||||||
|
<p>(United Capacity System)</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
v-for="item in navList"
|
v-for="item in navList"
|
||||||
|
@ -360,7 +363,7 @@
|
||||||
.name-bg {
|
.name-bg {
|
||||||
height: 0.6rem;
|
height: 0.6rem;
|
||||||
width: 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%;
|
background-size: 100%;
|
||||||
margin-right: 0.15rem;
|
margin-right: 0.15rem;
|
||||||
}
|
}
|
||||||
|
@ -372,6 +375,16 @@
|
||||||
background-size: 100%;
|
background-size: 100%;
|
||||||
margin-right: 0.15rem;
|
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 {
|
.nav {
|
||||||
width: 1.2rem;
|
width: 1.2rem;
|
||||||
|
@ -432,6 +445,16 @@
|
||||||
box-shadow: 0 0.02rem 0.1rem rgba(0, 0, 0, 0.1);
|
box-shadow: 0 0.02rem 0.1rem rgba(0, 0, 0, 0.1);
|
||||||
.name {
|
.name {
|
||||||
color: #0058e1;
|
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 {
|
.icon {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
|
|
@ -321,10 +321,14 @@
|
||||||
</div> -->
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
<div class="right" v-if="selectCardsname !== '基础设施'">
|
<div class="right" v-if="selectCardsname !== '基础设施'">
|
||||||
|
<!-- 申购车 -->
|
||||||
<div class="shopping" :key="shoppingKey">
|
<div class="shopping" :key="shoppingKey">
|
||||||
<template
|
<template
|
||||||
v-if="
|
v-if="
|
||||||
selectCardsname == '组件服务' ||
|
(selectCardsname == '组件服务' &&
|
||||||
|
item.infoList.filter(
|
||||||
|
(val) => val.attrType == '外部服务地址'
|
||||||
|
).length === 0) ||
|
||||||
(selectCardsname == '应用资源' && whoShow1.itShowQingDao)
|
(selectCardsname == '应用资源' && whoShow1.itShowQingDao)
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
|
@ -649,6 +653,14 @@
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
if (type === 'apply') {
|
if (type === 'apply') {
|
||||||
|
// 外部服务地址跳转到外部
|
||||||
|
const webUrl = item.infoList.filter(
|
||||||
|
(val) => val.attrType == '外部服务地址'
|
||||||
|
)[0]?.attrValue
|
||||||
|
if (webUrl) {
|
||||||
|
window.open(webUrl)
|
||||||
|
} else {
|
||||||
|
// 内部跳转申请页面
|
||||||
console.log('一键申请===================>', item)
|
console.log('一键申请===================>', item)
|
||||||
localStorage.setItem(
|
localStorage.setItem(
|
||||||
'applyList',
|
'applyList',
|
||||||
|
@ -680,6 +692,7 @@
|
||||||
router.push({
|
router.push({
|
||||||
path: '/apply',
|
path: '/apply',
|
||||||
})
|
})
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
console.log(
|
console.log(
|
||||||
'111111111111111111===========>',
|
'111111111111111111===========>',
|
||||||
|
|
|
@ -149,9 +149,10 @@
|
||||||
</div>
|
</div>
|
||||||
<!-- 单个预览弹窗 -->
|
<!-- 单个预览弹窗 -->
|
||||||
<a-modal
|
<a-modal
|
||||||
|
wrapClassName="single-preview-modal"
|
||||||
v-model:visible="visible"
|
v-model:visible="visible"
|
||||||
title="视频预览"
|
title="视频预览"
|
||||||
:width="950"
|
:width="960"
|
||||||
destroyOnClose
|
destroyOnClose
|
||||||
>
|
>
|
||||||
<template #footer></template>
|
<template #footer></template>
|
||||||
|
@ -166,7 +167,7 @@
|
||||||
wrapClassName="batch-preview-modal"
|
wrapClassName="batch-preview-modal"
|
||||||
v-model:visible="batchVisible"
|
v-model:visible="batchVisible"
|
||||||
title="视频批量预览"
|
title="视频批量预览"
|
||||||
:width="1250"
|
:width="1060"
|
||||||
destroyOnClose
|
destroyOnClose
|
||||||
@cancel="videoClean"
|
@cancel="videoClean"
|
||||||
>
|
>
|
||||||
|
@ -177,9 +178,18 @@
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
style="width: 100%; height: 100%"
|
style="width: 100%; height: 100%"
|
||||||
>
|
>
|
||||||
|
<p></p>
|
||||||
<vue3VideoPlay v-bind="item.options" />
|
<vue3VideoPlay v-bind="item.options" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<a-pagination
|
||||||
|
v-model:current="current"
|
||||||
|
:total="videoTotal"
|
||||||
|
defaultPageSize="4"
|
||||||
|
:showSizeChanger="false"
|
||||||
|
@change="batchPreview"
|
||||||
|
show-less-items
|
||||||
|
/>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
<a-modal
|
<a-modal
|
||||||
wrapClassName="wrj"
|
wrapClassName="wrj"
|
||||||
|
@ -255,11 +265,13 @@
|
||||||
import { getCameraByCondition } from '@/api/file'
|
import { getCameraByCondition } from '@/api/file'
|
||||||
import { sgcInsert } from '@/api/home'
|
import { sgcInsert } from '@/api/home'
|
||||||
import mybus from '@/myplugins/mybus'
|
import mybus from '@/myplugins/mybus'
|
||||||
|
const current = ref(1)
|
||||||
|
const videoTotal = ref(0)
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const whoShow1 = ref(whoShow)
|
const whoShow1 = ref(whoShow)
|
||||||
const options = reactive({
|
const options = reactive({
|
||||||
width: '900px', //播放器宽度
|
width: '912px', //播放器宽度
|
||||||
height: '400px', //播放器高度
|
height: '513px', //播放器高度
|
||||||
color: '#409eff', //主题色
|
color: '#409eff', //主题色
|
||||||
title: '', //视频名称
|
title: '', //视频名称
|
||||||
src: '', //视频源
|
src: '', //视频源
|
||||||
|
@ -579,9 +591,16 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const batchPreview = async function () {
|
const batchPreview = async function (page) {
|
||||||
|
if (page.layerX) {
|
||||||
|
page = 1
|
||||||
|
}
|
||||||
if (selectedList.value.length > 0) {
|
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
|
const length = list.length
|
||||||
videoList.value = []
|
videoList.value = []
|
||||||
for (let index = 0; index < length; index++) {
|
for (let index = 0; index < length; index++) {
|
||||||
|
@ -590,8 +609,8 @@
|
||||||
}
|
}
|
||||||
let ob = {
|
let ob = {
|
||||||
options: {
|
options: {
|
||||||
width: '600px', //播放器宽度
|
width: '512px', //播放器宽度
|
||||||
height: '350px', //播放器高度
|
height: '288px', //播放器高度
|
||||||
color: '#409eff', //主题色
|
color: '#409eff', //主题色
|
||||||
title: '', //视频名称
|
title: '', //视频名称
|
||||||
src: '', //视频源
|
src: '', //视频源
|
||||||
|
@ -651,7 +670,10 @@
|
||||||
selectedList.value = []
|
selectedList.value = []
|
||||||
selectedRowKeys.value = []
|
selectedRowKeys.value = []
|
||||||
videoList.value = []
|
videoList.value = []
|
||||||
|
current.value = 1
|
||||||
}
|
}
|
||||||
|
// 改变批量预览的分页
|
||||||
|
const changePage = (page) => {}
|
||||||
// 一键申请
|
// 一键申请
|
||||||
const dept = reactive({})
|
const dept = reactive({})
|
||||||
// eslint-disable-next-line no-undef
|
// eslint-disable-next-line no-undef
|
||||||
|
@ -712,6 +734,14 @@
|
||||||
longitude: mapSearchParam.value.gpsX || '',
|
longitude: mapSearchParam.value.gpsX || '',
|
||||||
latitude: mapSearchParam.value.gpsY || '',
|
latitude: mapSearchParam.value.gpsY || '',
|
||||||
radius: mapSearchParam.value.radius || '',
|
radius: mapSearchParam.value.radius || '',
|
||||||
|
status: 1,
|
||||||
|
}
|
||||||
|
if (
|
||||||
|
params.regionId === '70be8c5b664f4bcf869d82f2e8335051' &&
|
||||||
|
!params.name &&
|
||||||
|
!params.longitude
|
||||||
|
) {
|
||||||
|
params.status = ''
|
||||||
}
|
}
|
||||||
let paramsFather = ''
|
let paramsFather = ''
|
||||||
let i = 1
|
let i = 1
|
||||||
|
@ -1000,6 +1030,20 @@
|
||||||
overflow-y: scroll !important;
|
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-preview-modal {
|
||||||
.batch-video {
|
.batch-video {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
@ -1007,8 +1051,23 @@
|
||||||
grid-template-columns: 50% 50%;
|
grid-template-columns: 50% 50%;
|
||||||
grid-template-rows: 50% 50%;
|
grid-template-rows: 50% 50%;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
grid-row-gap: 14px;
|
// grid-row-gap: 14px;
|
||||||
grid-column-gap: 20px;
|
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>
|
</style>
|
||||||
|
|
|
@ -226,6 +226,7 @@
|
||||||
longitude: this.mapSearchParam.gpsX || '',
|
longitude: this.mapSearchParam.gpsX || '',
|
||||||
latitude: this.mapSearchParam.gpsY || '',
|
latitude: this.mapSearchParam.gpsY || '',
|
||||||
radius: this.mapSearchParam.radius || '',
|
radius: this.mapSearchParam.radius || '',
|
||||||
|
status: 1,
|
||||||
}
|
}
|
||||||
let paramsFather = ''
|
let paramsFather = ''
|
||||||
let i = 1
|
let i = 1
|
||||||
|
|
|
@ -113,7 +113,7 @@
|
||||||
</div>
|
</div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
</div>
|
</div>
|
||||||
<div @click="showAbilitySquare">
|
<!-- <div @click="showAbilitySquare">
|
||||||
<p></p>
|
<p></p>
|
||||||
<p>能力广场</p>
|
<p>能力广场</p>
|
||||||
<a-modal
|
<a-modal
|
||||||
|
@ -143,7 +143,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
</div>
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -579,7 +579,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.fixedmount {
|
.fixedmount {
|
||||||
height: 2.3rem;
|
height: 1.5rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 2.56rem;
|
bottom: 2.56rem;
|
||||||
|
@ -633,8 +633,8 @@
|
||||||
.fixedmount div:nth-child(3) p:nth-child(1) {
|
.fixedmount div:nth-child(3) p:nth-child(1) {
|
||||||
height: 0.24rem;
|
height: 0.24rem;
|
||||||
width: 0.24rem;
|
width: 0.24rem;
|
||||||
background: url('~@/assets/home/shangjia.png') no-repeat;
|
background: url('~@/assets/home/abilitysquare.png') no-repeat;
|
||||||
background-size: contain;
|
background-size: 140% 126%;
|
||||||
background-position: center;
|
background-position: center;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|