Merge branch 'hi-ucs-dev' of http://192.168.124.50:3000/wuhongjian/hi-ucs into hi-ucs-dev

# Conflicts:
#	front/src/views/home/infrastructurePage.vue
This commit is contained in:
a0049873 2022-10-13 17:09:20 +08:00
commit cfe88605cc
11 changed files with 946 additions and 782 deletions

View File

@ -2,16 +2,16 @@
* @Author: hisense.wuhongjian
* @Date: 2022-08-25 14:37:49
* @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-10-12 15:25:01
* @LastEditTime: 2022-10-13 14:49:32
* @Description: 告诉大家这是什么
*/
var _global = {}
var CONFIGITEM = {
// version: 'qingdao', // 青岛
// version: 'xihaian', // 西海岸
// version: 'test', // 测试
version: 'test', // 测试
// version: 'frp', // 内网穿透
version: 'xihaian', // 开发
// version: 'xihaian', // 开发
vNum: 'v0.8.7.2',
configData: {
// 青岛市大数据局

View File

@ -67,10 +67,19 @@
</div>
<InfrastructureModal v-model="dataForm" :dataForm="dataForm" @update="updateDataForm" type="基础设施"
:modalType="modalType" ref="jcssDom"></InfrastructureModal>
<el-form-item label="基础设施总数" >
<el-input v-model="dataForm.infrastructureCount" onkeyup="value=value.replace(/[^\d]/g,0)" placeholder="请输入基础设施总数"></el-input>
</el-form-item>
<combine-ability v-model="dataForm" :dataForm="dataForm" @update="updateDataForm" type="数据资源" ref="sjzyDom"
:getDataParams="getListParams['数据资源']"></combine-ability>
<el-form-item label="数据资源总数" >
<el-input v-model="dataForm.dataSourceCount" onkeyup="value=value.replace(/[^\d]/g,0)" placeholder="请输入基础设施总数"></el-input>
</el-form-item>
<combine-ability v-model="dataForm" :dataForm="dataForm" @update="updateDataForm" type="组件服务" ref="zjfwDom"
:getDataParams="getListParams['组件服务']"></combine-ability>
<el-form-item label="组件服务总数" >
<el-input v-model="dataForm.componentCount" onkeyup="value=value.replace(/[^\d]/g,0)" placeholder="请输入基础设施总数"></el-input>
</el-form-item>
</div>
<!-- 更多能力 -->
@ -195,6 +204,9 @@ export default {
painKeyTextObj: getDescJson('痛点'),
solutionKeyTextObj: getDescJson('方案'),
dataForm: {
infrastructureCount:null,
dataSourceCount:null,
componentCount:null,
name: '',
applicationArea: '',
description: '',

View File

@ -25,6 +25,7 @@
<el-form :inline="true">
<!--起始日期 @keyup.enter.native="getDataList()"-->
<el-form-item>
<span>日期</span>
<el-date-picker
v-model="value1"
type="datetimerange"
@ -38,6 +39,7 @@
</el-form-item>
<!--审核状态-->
<el-form-item>
<span>审核状态</span>
<el-select
v-model="examineStatus"
placeholder="请选审核状态"
@ -51,6 +53,7 @@
<!--部门-->
<el-form-item>
<span>部门名称</span>
<el-select
v-model="abilityDepartment"
placeholder="请选择部门"
@ -67,6 +70,7 @@
<!--类型-->
<el-form-item>
<span>类型</span>
<el-select v-model="abilityType" placeholder="请选择类型" clearable>
<el-option label="全部" value=""></el-option>
<el-option
@ -109,7 +113,7 @@
? 'departmentStyle'
: ''
]"
@click="handleChose(1)"
@click="handleChose(3)"
>
能力上架统计
</span>
@ -119,7 +123,7 @@
? 'departmentStyle'
: ''
]"
@click="handleChose(2)"
@click="handleChose(4)"
>
能力使用统计
</span>
@ -144,7 +148,7 @@
style="width: 100%"
v-show="this.departmentId === 1"
>
<el-table-column prop="name" label="部门名称" min-width="100%">
<el-table-column prop="name" label="上架部门" min-width="100%">
</el-table-column>
<el-table-column label="组件">
<el-table-column prop="znsf" label="智能算法" min-width="100%">
@ -177,7 +181,7 @@
style="width: 100%"
v-show="this.departmentId === 2"
>
<el-table-column prop="name" label="部门名称" min-width="100%">
<el-table-column prop="name" label="申请部门" min-width="100%">
</el-table-column>
<el-table-column label="组件">
<el-table-column prop="znsf" label="智能算法" min-width="100%">
@ -211,11 +215,15 @@
style="width: 100%"
v-show="this.departmentId === 3 || this.departmentId === 4"
>
<el-table-column prop="deptName" label="部门" min-width="100%">
<el-table-column v-if="this.departmentId === 3" prop="deptName" label="上架部门" min-width="100%">
</el-table-column>
<el-table-column v-if="this.departmentId === 4" prop="deptName" label="申请部门" min-width="100%">
</el-table-column>
<el-table-column prop="resourceName" label="资源名称" min-width="100%">
</el-table-column>
<el-table-column prop="type" label="类型" min-width="100%"> </el-table-column>
<el-table-column v-if="this.departmentId === 4" prop="resourceDeptName" label="提供部门" min-width="100%">
</el-table-column>
<el-table-column prop="createDate" label="日期" min-width="100%"> </el-table-column>
<el-table-column prop="approveStatus" label="状态" min-width="100%">
</el-table-column>
@ -390,7 +398,7 @@ export default {
{ name: '页面开发组件', value: 4 },
{ name: '应用资源', value: 5 }
], //
detailFlag: true, //
detailFlag: false, //
startDate: '', //
endDate: '' //
}
@ -410,7 +418,15 @@ export default {
// this.value1.unshift(date2)
},
mounted () {
this.getFirstTree()
// this.getFirstTree()
if (this.departmentId === 1) {
this.handleChose(3)
// this.departmentId = 1;
} else if (this.departmentId === 2) {
this.handleChose(4)
// this.departmentId = 2;
} else {
}
},
computed: {
...mapState(['departmentSelects'])
@ -786,12 +802,14 @@ export default {
// this.getUsedTree()
}
} else if (index === 3) {
this.detailFlag = false
if (this.choseId === 0) {
this.getOneDetail()
} else {
// this.getUsedTree()
}
} else if (index === 4) {
this.detailFlag = false
if (this.choseId === 0) {
this.getTwoDetail()
} else {
@ -879,7 +897,7 @@ export default {
this.value1 = []
this.startDate = ''
this.endDate = ''
this.examineStatus = '全部'
this.examineStatus = ''
this.abilityDepartment = ''
this.abilityType = ''
if (this.departmentId === 1) {

View File

@ -2,16 +2,16 @@
* @Author: hisense.wuhongjian
* @Date: 2020-07-07 16:03:23
* @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-10-12 15:29:29
* @LastEditTime: 2022-10-13 13:50:44
* @Description: 系统静态参数配置
*/
var _global = {}
var CONFIGITEM = {
// version: 'qingdao', //
// version: 'xihaian', // 西
version: 'dev', //
// version: 'dev', //
// version: 'zhanTingDev', // dev (2022-09-13:)
//version: 'test', //
version: 'test', //
//version: 'frp', // 穿
vNum: 'v0.8.7.2',
configData: {

View File

@ -2,7 +2,7 @@
* @Author: hisense.wuhongjian
* @Date: 2020-07-07 16:03:23
* @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-08-29 09:55:56
* @LastEditTime: 2022-10-13 15:29:31
* @Description: 数据资源参数配置
*/
// eslint-disable-next-line no-undef
@ -51,10 +51,10 @@ if (newLocation !== 'baotou' && newLocation !== 'xihaian') {
right: '海信网络科技股份有限公司',
},
address: [
{
name: '鲁IC备00000000号',
value: '政府标识码3702000106',
},
// {
// name: 'IC00000000',
// value: '3702000106',
// },
{
name: '版权所有:青岛市大数据发展管理局',
value: '地址山东省青岛市香港中路17号市级机关办公楼',
@ -523,6 +523,11 @@ else if (newLocation === 'xihaian') {
},
],
}
xhaHasPermissionUser.list = ['xihaian01', 'xihaian02', 'xihaian03', 'xihaian04', 'admin']
xhaHasPermissionUser.list = [
'xihaian01',
'xihaian02',
'xihaian03',
'xihaian04',
'admin',
]
}

View File

@ -15,11 +15,26 @@
></div>
<div class="name">{{ item.type }}</div>
<div class="organization-value">
<span class="num">{{ item.amount }}</span>
<a-tooltip
placement="top"
v-if="
useName === 'admin' &&
(item.type === '已上架部门数' ||
item.type === '用户量' ||
item.type === '资源申请量')
"
>
<template #title>点击查看详情</template>
<span class="hover-click num" @click="showDetail(item.type)">
{{ item.amount }}
</span>
</a-tooltip>
<span v-else class="num">
{{ item.amount }}
</span>
<span class="organization">{{ item.organization }}</span>
</div>
</div>
<div class="shuxian"></div>
</div>
</div>
@ -27,20 +42,24 @@
</template>
<script setup>
import { ref } from 'vue'
import { useStore } from 'vuex'
import { totalResourceAggregation } from '@/api/abilityStatistics.js'
let photo = ref([
require('../../../assets/abilityStatistics/Volume-of-covered-sectors.png'),
require('../../../assets/abilityStatistics/pingtaifangwenliang.png'),
require('../../../assets/abilityStatistics/yonghuliang.png'),
require('../../../assets/abilityStatistics/Volume-of-covered-sectors.png'),
require('../../../assets/abilityStatistics/ziyuanhuijusnum.png'),
require('../../../assets/abilityStatistics/ziyuanshenqingliang.png'),
])
let dataList = ref([])
const store = useStore()
//
const useName = ref(store.getters['user/username'])
///whole_amount
function snum() {
totalResourceAggregation().then((res) => {
dataList.value = res.data.data;
console.log('res.data.data------------>', res.data.data);
dataList.value = res.data.data
console.log('res.data.data------------>', res.data.data)
res.data.data.map((item, index) => {
console.log('dataList', dataList.value)
@ -68,6 +87,22 @@
})
}
snum()
const showDetail = function (type) {
switch (type) {
case '已上架部门数':
window.open(window.SITE_CONFIG.backUrl + '/#/sys-dept', '_blank')
break
case '用户量':
window.open(window.SITE_CONFIG.backUrl + '/#/sys-user', '_blank')
break
case '资源申请量':
window.open(
window.SITE_CONFIG.backUrl + '/#/abilityStatistics-index',
'_blank'
)
break
}
}
</script>
<style lang="less" scoped>
@font-face {
@ -84,6 +119,9 @@
font-size: 32px;
font-weight: 600;
}
.hover-click {
cursor: pointer;
}
.ability-total {
background: #f1f4fb;
font-size: 18px;

View File

@ -1,3 +1,10 @@
<!--
* @Author: hisense.wuhongjian
* @Date: 2022-07-05 12:53:04
* @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-10-13 15:29:14
* @Description: 告诉大家这是什么
-->
<template>
<div class="footer">
<div class="fotter-son">
@ -18,10 +25,10 @@
<script setup>
import { reactive } from 'vue'
let dataList = reactive([
{
name: '鲁IC备00000000号',
value: '政府标识码3702000106',
},
// {
// name: 'IC00000000',
// value: '3702000106',
// },
{
name: '版权所有:青岛市大数据发展管理局',
value: '地址山东省青岛市香港中路17号市级机关办公楼',

View File

@ -105,7 +105,7 @@
}}
</div>
</div>
<div class="remove" @click="removeFunction(val)"></div>
<div class="remove" v-if="item.arr.length>1" @click="removeFunction(val)"></div>
</div>
</template>
</div>

View File

@ -386,7 +386,9 @@
:wrapper-col="{ span: 14, offset: 4 }"
style="text-align: center; margin-top: 0.4rem"
>
<a-button @click="resetFields" type="primary" danger>取消</a-button>
<a-button @click="appointmentRoom = false" type="primary" danger>
取消
</a-button>
<a-button
style="margin-left: 10px"
type="primary"
@ -2117,104 +2119,236 @@
}
</script>
<style lang="less" scoped>
.infrastructrueBox {
padding: 0.2rem;
background: #ffffff;
border-bottom: 0.01rem solid rgba(150, 144, 144, 0.3);
.infrastructrue-tab {
span {
display: inline-block;
height: 0.24rem;
font-size: 0.14rem;
line-height: 0.24rem;
border: 0;
border-radius: 0.12rem;
margin-left: 0.1rem;
text-align: center;
color: #666666;
cursor: pointer;
padding: 0 0.08rem;
}
.leftType {
margin: 0.2rem 0;
margin-right: 0.06rem;
}
.down {
background: #0087ff;
color: #ffffff;
}
.tabBox {
padding-bottom: 0.16rem;
}
}
.infrastructrue-content {
display: flex;
justify-content: space-between;
padding: 0.14rem 0.2rem 0.1rem;
.infrastructrueBox {
padding: 0.2rem;
background: #ffffff;
border-bottom: 0.01rem solid rgba(150, 144, 144, 0.3);
.contentNum {
position: relative;
display: flex;
p {
.infrastructrue-tab {
span {
display: inline-block;
height: 0.24rem;
font-size: 0.14rem;
line-height: 0.24rem;
border: 0;
border-radius: 0.12rem;
margin-left: 0.1rem;
text-align: center;
color: #666666;
padding: 0;
margin: 0;
cursor: pointer;
padding: 0 0.08rem;
}
span {
color: #0087ff;
font-size: 0.2rem;
font-weight: 500;
.leftType {
margin: 0.2rem 0;
margin-right: 0.06rem;
}
.down {
background: #0087ff;
color: #ffffff;
}
.tabBox {
padding-bottom: 0.16rem;
}
}
.infrastructrue-content {
display: flex;
justify-content: space-between;
padding: 0.14rem 0.2rem 0.1rem;
background: #ffffff;
.contentNum {
position: relative;
display: flex;
p {
color: #666666;
padding: 0;
margin: 0;
span {
color: #0087ff;
font-size: 0.2rem;
font-weight: 500;
}
}
p:first-of-type {
padding-right: 0.16rem;
margin-right: 0.16rem;
}
.boundary {
position: absolute;
left: 0.9rem;
top: 0.07rem;
display: block;
width: 0.02rem;
border-radius: 0.01rem;
height: 0.2rem;
background: rgba(150, 144, 144, 0.3);
}
}
p:first-of-type {
padding-right: 0.16rem;
margin-right: 0.16rem;
}
.contentRight {
position: relative;
display: flex;
justify-content: space-between;
.boundary {
position: absolute;
left: 0.9rem;
top: 0.07rem;
display: block;
width: 0.02rem;
border-radius: 0.01rem;
height: 0.2rem;
background: rgba(150, 144, 144, 0.3);
.boundary {
position: absolute;
left: 3.74rem;
top: 0.07rem;
display: block;
width: 0.02rem;
border-radius: 0.01rem;
height: 0.2rem;
background: rgba(150, 144, 144, 0.3);
}
.searchInput {
display: flex;
margin-right: 0.2rem;
.ant-input-search {
max-width: 4rem;
}
:deep(.ant-input) {
width: 2rem;
height: 0.36rem;
font-size: 0.14rem;
color: #b2b2b2;
background: #f5f5f5;
}
:deep(.ant-input-group-addon) {
display: inline-block;
margin-left: 0.1rem;
.ant-input-search-button {
width: 0.8rem;
height: 0.36rem;
background: #0558e1;
border-radius: 0.04rem;
font-size: 0.14rem;
}
}
:deep(.ant-btn) {
background: #0558e1;
border-radius: 0.04rem;
}
}
.buttonAdd {
background: #0558e1;
border-radius: 0.04rem;
height: 0.36rem;
border-color: #0558e1;
margin-left: 0.1rem;
}
}
}
.contentRight {
position: relative;
display: flex;
justify-content: space-between;
.boundary {
position: absolute;
left: 3.74rem;
top: 0.07rem;
display: block;
width: 0.02rem;
border-radius: 0.01rem;
height: 0.2rem;
background: rgba(150, 144, 144, 0.3);
.infrastructrue-table {
.ant-table-striped :deep(.table-striped) td {
background-color: #fafafa;
}
}
.map-contain {
// width: 9.46rem;
height: 4.1rem;
margin-left: 0.16rem;
position: relative;
}
}
.roomBackground {
background: #0058e1;
color: #ffffff;
}
.nullBackground {
background: #f3f5f9;
color: #0087ff;
}
:deep(.ant-form-item-control-input-content) {
margin-left: 0.15rem;
}
:deep(.ant-col) {
.ant-form-item {
margin-bottom: 0;
}
}
.jinggaoD {
display: flex;
align-items: center;
}
.jinggaoNull {
display: none;
}
.imgJinggao {
width: 0.2rem;
height: 0.2rem;
background: url('~@/assets/home/jingao.png') no-repeat;
background-size: 100%;
}
.introduction {
:deep(.ant-form-item-control) {
margin-left: -2.1rem;
}
}
.roomBox {
.leftMake {
float: left;
margin-left: -1rem;
margin-top: -0.5rem;
font-size: 0.2rem;
cursor: pointer;
.leftTop {
width: 0.6rem;
height: 1.75rem;
border-top-left-radius: 0.08rem;
border-bottom-left-radius: 0.08rem;
padding: 0.13rem;
text-align: center;
}
.leftBottom {
width: 0.6rem;
height: 1.75rem;
border-top-left-radius: 0.08rem;
border-bottom-left-radius: 0.08rem;
padding: 0.2rem 0.13rem 0.1rem 0.1rem;
text-align: center;
}
}
.roomSearch {
display: flex;
align-items: center;
.searchInput {
display: flex;
margin-right: 0.2rem;
margin-left: 0.2rem;
.ant-input-search {
max-width: 4rem;
}
// .ant-input-search {
// max-width: 4rem;
// }
:deep(.ant-input) {
width: 2rem;
height: 0.36rem;
@ -2231,408 +2365,276 @@
width: 0.8rem;
height: 0.36rem;
background: #0558e1;
border-radius: 0.04rem;
border-radius: 0.06rem;
font-size: 0.14rem;
}
}
:deep(.ant-btn) {
background: #0558e1;
border-radius: 0.04rem;
}
}
.buttonAdd {
background: #0558e1;
border-radius: 0.04rem;
height: 0.36rem;
border-color: #0558e1;
margin-left: 0.1rem;
}
}
}
.infrastructrue-table {
.ant-table-striped :deep(.table-striped) td {
background-color: #fafafa;
}
}
.map-contain {
// width: 9.46rem;
height: 4.1rem;
margin-left: 0.16rem;
position: relative;
}
}
.roomBackground {
background: #0058e1;
color: #ffffff;
}
.nullBackground {
background: #f3f5f9;
color: #0087ff;
}
:deep(.ant-form-item-control-input-content) {
margin-left: 0.15rem;
}
:deep(.ant-col) {
.ant-form-item {
margin-bottom: 0;
}
}
.jinggaoD {
display: flex;
align-items: center;
}
.jinggaoNull {
display: none;
}
.imgJinggao {
width: 0.2rem;
height: 0.2rem;
background: url('~@/assets/home/jingao.png') no-repeat;
background-size: 100%;
}
.introduction {
:deep(.ant-form-item-control) {
margin-left: -2.1rem;
}
}
.roomBox {
.leftMake {
float: left;
margin-left: -1rem;
margin-top: -0.5rem;
font-size: 0.2rem;
cursor: pointer;
.leftTop {
width: 0.6rem;
height: 1.75rem;
border-top-left-radius: 0.08rem;
border-bottom-left-radius: 0.08rem;
padding: 0.13rem;
text-align: center;
}
.leftBottom {
width: 0.6rem;
height: 1.75rem;
border-top-left-radius: 0.08rem;
border-bottom-left-radius: 0.08rem;
padding: 0.2rem 0.13rem 0.1rem 0.1rem;
text-align: center;
}
}
.roomSearch {
display: flex;
align-items: center;
.searchInput {
display: flex;
margin-right: 0.2rem;
margin-left: 0.2rem;
// .ant-input-search {
// max-width: 4rem;
// }
:deep(.ant-input) {
width: 2rem;
height: 0.36rem;
font-size: 0.14rem;
color: #b2b2b2;
background: #f5f5f5;
}
:deep(.ant-input-group-addon) {
display: inline-block;
margin-left: 0.1rem;
.ant-input-search-button {
width: 0.8rem;
height: 0.36rem;
background: #0558e1;
border-radius: 0.06rem;
font-size: 0.14rem;
}
}
}
:deep(.ant-btn) {
border-radius: 0.06rem;
.roomTableList {
display: flex;
justify-content: space-between;
align-items: center;
margin: 0.4rem 0 0.2rem 0;
.roomTime {
display: flex;
align-items: center;
:deep(.ant-space-vertical) {
flex-direction: inherit;
margin-left: 0.2rem;
}
}
}
}
.roomTableList {
display: flex;
justify-content: space-between;
align-items: center;
margin: 0.4rem 0 0.2rem 0;
.roomTime {
.roomItem {
width: 10.3rem;
height: 2rem;
border-top: 1px #d5d4d4 solid;
display: flex;
align-items: center;
:deep(.ant-space-vertical) {
flex-direction: inherit;
margin-left: 0.2rem;
.leftImg {
width: 2.4rem;
height: 1.75rem;
margin: 0 0.3rem 0 0.15rem;
// background: url('~@/assets/home/yyzy_square.png') no-repeat;
background-size: 100%;
img {
width: 100%;
height: 100%;
}
}
}
}
.roomItem {
width: 10.3rem;
height: 2rem;
border-top: 1px #d5d4d4 solid;
display: flex;
align-items: center;
.rightContent {
height: 1.75rem;
width: 5.8rem;
.leftImg {
width: 2.4rem;
height: 1.75rem;
margin: 0 0.3rem 0 0.15rem;
.topContent {
font-size: 0.2rem;
color: #000;
font-weight: 600;
}
// background: url('~@/assets/home/yyzy_square.png') no-repeat;
background-size: 100%;
img {
width: 100%;
height: 100%;
.centerContent {
display: flex;
justify-content: space-between;
font-size: 0.14rem;
margin: 0.15rem 0 0.2rem 0;
}
}
}
.rightContent {
height: 1.75rem;
width: 5.8rem;
:deep(.ant-pagination) {
float: right;
}
.topContent {
font-size: 0.2rem;
color: #000;
font-weight: 600;
}
.centerContent {
display: flex;
justify-content: space-between;
font-size: 0.14rem;
margin: 0.15rem 0 0.2rem 0;
}
:deep(.ant-pagination) {
text-align: end;
}
}
:deep(.ant-pagination) {
float: right;
}
:deep(.ant-pagination) {
text-align: end;
}
}
</style>
<style lang="less">
.wrj {
.ant-modal-body {
height: 700px !important;
overflow-y: auto;
}
}
.modalClass {
.ant-modal-body {
height: 4rem !important;
overflow-y: scroll !important;
}
.ant-modal-title {
font-weight: 600;
}
.ant-modal-content {
.ant-modal-header {
border-bottom: 0 !important;
.wrj {
.ant-modal-body {
height: 700px !important;
overflow-y: auto;
}
}
}
.appModal {
.ant-modal-body {
height: 4.8rem !important;
overflow-y: scroll !important;
}
.modalClass {
.ant-modal-body {
height: 4rem !important;
overflow-y: scroll !important;
}
.ant-modal-title {
font-weight: 600;
}
.ant-modal-title {
font-weight: 600;
}
.ant-modal-content {
.ant-modal-header {
border-bottom: 0 !important;
.ant-modal-content {
.ant-modal-header {
border-bottom: 0 !important;
}
}
}
}
.single-preview-modal {
.ant-modal-header {
background: url(~@/assets/home/video-background.png) no-repeat;
background-size: cover;
.appModal {
.ant-modal-body {
height: 4.8rem !important;
overflow-y: scroll !important;
}
.ant-modal-title {
font-weight: 600;
}
.ant-modal-content {
.ant-modal-header {
border-bottom: 0 !important;
}
}
}
.ant-modal-title {
font-size: 0.16rem;
font-weight: 500;
color: #ffffff;
.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;
}
}
.anticon {
color: #ffffff;
}
}
.batch-preview-modal {
.batch-video {
width: 100%;
display: grid;
grid-template-columns: 50% 50%;
grid-template-rows: 50% 50%;
justify-content: center;
grid-row-gap: 10px;
grid-column-gap: 10px;
}
.batch-preview-modal {
.batch-video {
width: 100%;
display: grid;
grid-template-columns: 50% 50%;
grid-template-rows: 50% 50%;
justify-content: center;
grid-row-gap: 10px;
grid-column-gap: 10px;
.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;
}
}
.ant-pagination-item-link {
background-color: #5580f7;
/*禁用video的controls要慎重不要轻易隐藏掉会导致点击视频不能播放*/
video::-webkit-media-controls {
display: none !important;
}
.ant-modal-header {
background: url(~@/assets/home/video-background.png) no-repeat;
background-size: cover;
.video-cover {
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
background: transparent;
z-index: 99999999;
cursor: pointer;
}
.ant-modal-title {
font-size: 0.16rem;
font-weight: 500;
color: #ffffff;
.batch-video-cover {
position: absolute;
left: 0;
top: 0;
background: transparent;
height: 288px;
z-index: 99999999;
width: 512px;
margin-top: 14px;
cursor: pointer;
}
.anticon {
color: #ffffff;
.waterMark {
position: absolute;
z-index: 99999999;
color: #0058e1;
font-size: 22px;
font-weight: bold;
opacity: 0.4;
transform: rotate(-25deg);
width: 470px;
}
}
/*禁用video的controls要慎重不要轻易隐藏掉会导致点击视频不能播放*/
video::-webkit-media-controls {
display: none !important;
}
//
.waterMark-left-top {
left: 50px;
top: 100px;
text-align: left;
}
.video-cover {
position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
background: transparent;
z-index: 99999999;
cursor: pointer;
}
//
.waterMark-right-top {
right: 50px;
top: 100px;
text-align: right;
}
.batch-video-cover {
position: absolute;
left: 0;
top: 0;
background: transparent;
height: 288px;
z-index: 99999999;
width: 512px;
margin-top: 14px;
cursor: pointer;
}
//
.waterMark-left-bottom {
left: 50px;
bottom: 100px;
text-align: left;
}
.waterMark {
position: absolute;
z-index: 99999999;
color: #0058e1;
font-size: 22px;
font-weight: bold;
opacity: 0.4;
transform: rotate(-25deg);
width: 470px;
}
//
.waterMark-right-bottom {
right: 50px;
bottom: 100px;
text-align: right;
}
//
.waterMark-left-top {
left: 50px;
top: 100px;
text-align: left;
}
//
.batch-waterMark {
position: absolute;
z-index: 99999999;
color: #0058e1;
font-size: 14px;
opacity: 0.4;
transform: rotate(-25deg);
width: 200px;
}
//
.waterMark-right-top {
right: 50px;
top: 100px;
text-align: right;
}
//
.batch-waterMark-left-top {
left: 30px;
top: 50px;
text-align: left;
}
//
.waterMark-left-bottom {
left: 50px;
bottom: 100px;
text-align: left;
}
//
.batch-waterMark-right-top {
text-align: right;
right: 30px;
top: 80px;
}
//
.waterMark-right-bottom {
right: 50px;
bottom: 100px;
text-align: right;
}
//
.batch-waterMark-left-bottom {
left: 30px;
bottom: 50px;
text-align: left;
}
//
.batch-waterMark {
position: absolute;
z-index: 99999999;
color: #0058e1;
font-size: 14px;
opacity: 0.4;
transform: rotate(-25deg);
width: 200px;
}
//
.batch-waterMark-left-top {
left: 30px;
top: 50px;
text-align: left;
}
//
.batch-waterMark-right-top {
text-align: right;
right: 30px;
top: 80px;
}
//
.batch-waterMark-left-bottom {
left: 30px;
bottom: 50px;
text-align: left;
}
//
.batch-waterMark-right-bottom {
right: 20px;
bottom: 30px;
text-align: right;
}
//
.batch-waterMark-right-bottom {
right: 20px;
bottom: 30px;
text-align: right;
}
</style>

View File

@ -5,8 +5,13 @@
<div class="top">
<div class="top-title">
全部
<div v-for="(item, index) in titleName" :key="index" class="tabAll" @click="changeCards(index)"
:class="{ sel: index == number }">
<div
v-for="item in titleName"
:key="item.index"
class="tabAll"
@click="changeCards(item.index)"
:class="{ sel: item.index === number }"
>
<span>
{{ item.name === '赋能场景' ? '典型赋能场景' : '打包模式' }}
</span>
@ -15,26 +20,55 @@
<div class="resultListSearchInput-father" v-if="number === 0">
<div class="resultListSearchInput-son">
模糊搜索
<a-input-search v-model:value="searchValue" placeholder="请输入关键词" enter-button="搜索" size="large"
@search="getIntegrationList" @change="onSearch" class="resultListSearchInput" />
<a-input-search
v-model:value="searchValue"
placeholder="请输入关键词"
enter-button="搜索"
size="large"
@search="getIntegrationList"
@change="onSearch"
class="resultListSearchInput"
/>
<button class="button-reset" @click="resetAction()">重置</button>
<div class="hengxian"></div>
</div>
</div>
<div v-loading="loadingData">
<searchResultList v-if="number === 0" v-show="resourceList.data && resourceList.data.length > 0"
:resourceList="resourceList" :resourceTotal="resourceTotal" @saveSearchCodition="saveSearchCodition"
ref="searchResultListDom" :selectCardsname="number == 0 ? '融合服务' : '赋能场景'" />
<CanAssignCase v-else v-show="resourceList.data && resourceList.data.length > 0" :resourceList="resourceList"
@saveSearchCodition="saveSearchCodition" :resourceTotal="resourceTotal"
:selectCardsname="number == 0 ? '融合服务' : '赋能场景'" />
<searchResultList
v-if="number === 0"
v-show="resourceList.data && resourceList.data.length > 0"
:resourceList="resourceList"
:resourceTotal="resourceTotal"
@saveSearchCodition="saveSearchCodition"
ref="searchResultListDom"
:selectCardsname="number == 0 ? '融合服务' : '赋能场景'"
/>
<CanAssignCase
v-else
v-show="resourceList.data && resourceList.data.length > 0"
:resourceList="resourceList"
@saveSearchCodition="saveSearchCodition"
:resourceTotal="resourceTotal"
:selectCardsname="number == 0 ? '融合服务' : '赋能场景'"
/>
<div class="pagination">
<a-pagination v-if="resourceList.data && resourceList.data.length > 0" v-model:current="currentPage"
v-model:pageSize="currentPageSize" show-size-changer show-less-items show-quick-jumper
:total="resourceTotal" :page-size-options="pageSizeOptions" @change="pageChange"
@showSizeChange="onShowSizeChange" />
<a-pagination
v-if="resourceList.data && resourceList.data.length > 0"
v-model:current="currentPage"
v-model:pageSize="currentPageSize"
show-size-changer
show-less-items
show-quick-jumper
:total="resourceTotal"
:page-size-options="pageSizeOptions"
@change="pageChange"
@showSizeChange="onShowSizeChange"
/>
</div>
<div v-if="resourceList.data && resourceList.data.length <= 0" style="margin-top: 2rem">
<div
v-if="resourceList.data && resourceList.data.length <= 0"
style="margin-top: 2rem"
>
<a-empty />
</div>
</div>
@ -43,357 +77,382 @@
<home-footer></home-footer>
</template>
<script>
import HomeFooter from '@/views/newHome/components/Footer'
import mybus from '@/myplugins/mybus'
import { defineComponent, reactive, ref, toRefs, onMounted, nextTick } from 'vue'
import { getIntegrationServicesList } from '@/api/home.js'
import { useRouter } from 'vue-router'
import HomeHeader from '@/views/home/components/header'
import searchResultList from '@/views/home/components/searchResultList.vue'
import CanAssignCase from '@/views/home/components/CanAssignCase.vue'
import { message } from 'ant-design-vue'
import HomeFooter from '@/views/newHome/components/Footer'
import mybus from '@/myplugins/mybus'
import {
defineComponent,
reactive,
ref,
toRefs,
onMounted,
nextTick,
} from 'vue'
import { getIntegrationServicesList } from '@/api/home.js'
import { useRouter } from 'vue-router'
import HomeHeader from '@/views/home/components/header'
import searchResultList from '@/views/home/components/searchResultList.vue'
import CanAssignCase from '@/views/home/components/CanAssignCase.vue'
import { message } from 'ant-design-vue'
export default defineComponent({
beforeRouteLeave(to, from, next) {
console.log('to---integrationServices--beforeRouteLeave------->', to)
console.log('from---integrationServices--beforeRouteLeave------->', from)
console.log('next---integrationServices--beforeRouteLeave------->', next)
if (to.name !== 'packagingDetails' && to.name !== 'integrationServicesDetails') {
localStorage.removeItem('integrationServices')
}
next()
},
setup() {
//
const loading = ref(true)
const currentPage = ref(1)
const currentPageSize = ref(10)
const pageSizeOptions = ref(['2', '5', '10', '20', '50'])
const router = useRouter()
const select = router.currentRoute.value.query.select
const searchValue = ref('')
const Cardsname = ref(select)
const resourceList = reactive({ data: [] })
const resourceTotal = ref(0)
const loadingData = ref(false)
//
const titleName = ref([
{
name: '打包模式',
},
{
name: '赋能场景',
},
])
const number = ref(0)
//
const paramsGetResources = {
page: currentPage.value,
limit: currentPageSize.value,
type: titleName.value[number.value].name,
name: searchValue.value,
orderField: 'create_date',
orderType: 'DESC', // ASC DESC
}
const searchResultListDom = ref(null)
const storageSearchInfo = JSON.parse(localStorage.getItem('integrationServices'))
//
const handleSetSearchData = () => {
if (storageSearchInfo) {
number.value = storageSearchInfo.type == '打包模式' ? 0 : 1;
//
searchValue.value = storageSearchInfo.name;
currentPage.value = storageSearchInfo.page;
currentPageSize.value = storageSearchInfo.limit;
paramsGetResources.limit = storageSearchInfo.limit;
paramsGetResources.page = storageSearchInfo.page;
paramsGetResources.type = storageSearchInfo.type;
// 使
nextTick(() => {
searchResultListDom.value && searchResultListDom.value.changeCondition && searchResultListDom.value.changeCondition({
value: storageSearchInfo.orderField,
orderType: storageSearchInfo.orderType,
}, true)
export default defineComponent({
beforeRouteLeave(to, from, next) {
console.log('to---integrationServices--beforeRouteLeave------->', to)
console.log('from---integrationServices--beforeRouteLeave------->', from)
console.log('next---integrationServices--beforeRouteLeave------->', next)
if (
to.name !== 'packagingDetails' &&
to.name !== 'integrationServicesDetails'
) {
localStorage.removeItem('integrationServices')
}
next()
},
setup() {
//
const loading = ref(true)
const currentPage = ref(1)
const currentPageSize = ref(10)
const pageSizeOptions = ref(['2', '5', '10', '20', '50'])
const router = useRouter()
const select = router.currentRoute.value.query.select
const searchValue = ref('')
const Cardsname = ref(select)
const resourceList = reactive({ data: [] })
const resourceTotal = ref(0)
const loadingData = ref(false)
//
const titleName = ref([
{
name: '赋能场景',
index: 1,
},
{
name: '打包模式',
index: 0,
},
])
let number = ref(1)
//
const paramsGetResources = {
page: currentPage.value,
limit: currentPageSize.value,
type: titleName.value[number.value].name,
name: searchValue.value,
orderField: 'create_date',
orderType: 'DESC', // ASC DESC
}
const searchResultListDom = ref(null)
const storageSearchInfo = JSON.parse(
localStorage.getItem('integrationServices')
)
//
const handleSetSearchData = () => {
if (storageSearchInfo) {
number.value = storageSearchInfo.type == '打包模式' ? 1 : 0
//
searchValue.value = storageSearchInfo.name
currentPage.value = storageSearchInfo.page
currentPageSize.value = storageSearchInfo.limit
paramsGetResources.limit = storageSearchInfo.limit
paramsGetResources.page = storageSearchInfo.page
paramsGetResources.type = storageSearchInfo.type
// 使
nextTick(() => {
searchResultListDom.value &&
searchResultListDom.value.changeCondition &&
searchResultListDom.value.changeCondition(
{
value: storageSearchInfo.orderField,
orderType: storageSearchInfo.orderType,
},
true
)
})
getIntegrationList()
}
}
const changeCards = (val) => {
//
number.value = val
paramsGetResources.type = titleName.value[number.value].name
resetAction()
}
//
const onSearch = () => {
currentPage.value = 1
getIntegrationList()
}
//
const resetAction = () => {
//
searchValue.value = ''
//
currentPage.value = 1
currentPageSize.value = 10
//
paramsGetResources.page = 1
paramsGetResources.limit = 10
paramsGetResources.orderField = 'create_date'
paramsGetResources.orderType = 'DESC'
mybus.emit('resetAction', {
type: titleName.value[number.value].name,
})
getIntegrationList()
}
}
const changeCards = (val) => {
//
number.value = val;
paramsGetResources.type = titleName.value[number.value].name;
resetAction()
}
//
const onSearch = () => {
currentPage.value = 1
getIntegrationList()
}
//
const resetAction = () => {
//
searchValue.value = ''
//
currentPage.value = 1
currentPageSize.value = 10
//
paramsGetResources.page = 1
paramsGetResources.limit = 10
paramsGetResources.orderField = 'create_date'
paramsGetResources.orderType = 'DESC'
mybus.emit('resetAction', {
type: titleName.value[number.value].name,
})
getIntegrationList()
}
//
const getIntegrationList = () => {
loadingData.value = true
paramsGetResources.name = searchValue.value;
console.log('paramsGetResources------参数下发------>', paramsGetResources);
getIntegrationServicesList(paramsGetResources).then(
(res) => {
loadingData.value = false
if (res.data.code !== 0) {
return message.error(res.data.msg)
//
const getIntegrationList = () => {
loadingData.value = true
paramsGetResources.name = searchValue.value
console.log(
'paramsGetResources------参数下发------>',
paramsGetResources
)
getIntegrationServicesList(paramsGetResources).then(
(res) => {
loadingData.value = false
if (res.data.code !== 0) {
return message.error(res.data.msg)
}
resourceList.data = res.data.data.list || []
resourceTotal.value = res.data.data.total || 0
},
(err) => {
loadingData.value = false
message.error(err)
}
resourceList.data = res.data.data.list || []
resourceTotal.value = res.data.data.total || 0
},
(err) => {
loadingData.value = false
message.error(err)
}
)
}
mybus.on('paramsGetResources', (ids) => {
if (ids && ids.length > 0) {
paramsGetResources.deptIds = ids
} else {
delete paramsGetResources.deptIds
)
}
getIntegrationList()
})
mybus.on('changePage', (page) => {
paramsGetResources.page = page
getIntegrationList()
})
mybus.on('paramsGetResources', (ids) => {
if (ids && ids.length > 0) {
paramsGetResources.deptIds = ids
} else {
delete paramsGetResources.deptIds
}
getIntegrationList()
})
mybus.on('changeSelcted', () => {
getIntegrationList()
})
mybus.on('changePage', (page) => {
paramsGetResources.page = page
getIntegrationList()
})
mybus.on('refresh', () => {
paramsGetResources.page = 1
currentPage.value = 1
getIntegrationList()
})
mybus.on('changeCondition', (condition) => {
paramsGetResources.orderField = condition.orderField
paramsGetResources.orderType = condition.orderType
getIntegrationList()
})
mybus.on('changeSelcted', () => {
getIntegrationList()
})
const pageChange = (val) => {
currentPage.value = val
paramsGetResources.page = val
getIntegrationList() //
}
mybus.on('refresh', () => {
paramsGetResources.page = 1
currentPage.value = 1
getIntegrationList()
})
mybus.on('changeCondition', (condition) => {
paramsGetResources.orderField = condition.orderField
paramsGetResources.orderType = condition.orderType
getIntegrationList()
})
//
const onShowSizeChange = (current, pageSize) => {
currentPage.value = current
currentPageSize.value = pageSize
paramsGetResources.page = current
paramsGetResources.limit = pageSize
getIntegrationList()
}
const pageChange = (val) => {
currentPage.value = val
paramsGetResources.page = val
getIntegrationList() //
}
//
const saveSearchCodition = (n) => {
console.log('融合服务-----存储查询条件到本地------->', paramsGetResources);
localStorage.setItem(
'integrationServices',
JSON.stringify(paramsGetResources)
)
}
onMounted(() => {
if (storageSearchInfo) {
handleSetSearchData()
} else {
//
const onShowSizeChange = (current, pageSize) => {
currentPage.value = current
currentPageSize.value = pageSize
paramsGetResources.page = current
paramsGetResources.limit = pageSize
getIntegrationList()
}
})
return {
searchValue,
currentPage,
resourceList,
resourceTotal,
pageChange,
Cardsname,
getIntegrationList,
resetAction,
onSearch,
currentPageSize,
pageSizeOptions,
loading,
titleName,
changeCards,
number,
loadingData,
onShowSizeChange,
saveSearchCodition,
searchResultListDom,
}
},
components: {
HomeHeader,
HomeFooter,
searchResultList,
CanAssignCase,
},
beforeUnmount() {
mybus.off('paramsGetResources')
mybus.off('changeCondition')
mybus.off('refresh')
mybus.off('changePage')
},
})
//
const saveSearchCodition = (n) => {
console.log(
'融合服务-----存储查询条件到本地------->',
paramsGetResources
)
localStorage.setItem(
'integrationServices',
JSON.stringify(paramsGetResources)
)
}
onMounted(() => {
if (storageSearchInfo) {
handleSetSearchData()
} else {
getIntegrationList()
}
})
return {
searchValue,
currentPage,
resourceList,
resourceTotal,
pageChange,
Cardsname,
getIntegrationList,
resetAction,
onSearch,
currentPageSize,
pageSizeOptions,
loading,
titleName,
changeCards,
number,
loadingData,
onShowSizeChange,
saveSearchCodition,
searchResultListDom,
}
},
components: {
HomeHeader,
HomeFooter,
searchResultList,
CanAssignCase,
},
beforeUnmount() {
mybus.off('paramsGetResources')
mybus.off('changeCondition')
mybus.off('refresh')
mybus.off('changePage')
},
})
</script>
<style lang="less" scoped>
.resultListSearchInput-father {
background: #f3f5f9;
padding: 0.2rem;
.resultListSearchInput-father {
background: #f3f5f9;
padding: 0.2rem;
.resultListSearchInput-son {
background: #fff;
padding: 0.2rem 0.2rem 0rem 0.3rem;
.resultListSearchInput-son {
background: #fff;
padding: 0.2rem 0.2rem 0rem 0.3rem;
.hengxian {
width: 100%;
height: 0.01rem;
background: rgba(150, 144, 144, 0.3);
margin-top: 0.2rem;
.hengxian {
width: 100%;
height: 0.01rem;
background: rgba(150, 144, 144, 0.3);
margin-top: 0.2rem;
}
}
}
}
.resultListSearchInput {
margin-left: 0.1rem;
.resultListSearchInput {
margin-left: 0.1rem;
:deep(.ant-input) {
width: 4rem;
height: 0.36rem;
background: #fff;
border-radius: 0.04rem;
:deep(.ant-input) {
width: 4rem;
height: 0.36rem;
background: #fff;
border-radius: 0.04rem;
}
:deep(.ant-input-search-button) {
width: 0.8rem;
height: 0.36rem;
background: #0087ff;
border-radius: 0.04rem !important;
font-size: 0.14rem;
font-weight: 400;
color: #fff;
line-height: 0.34rem;
margin-left: 0.1rem;
}
:deep(.ant-input-group-addon) {
left: 0 !important;
}
}
:deep(.ant-input-search-button) {
.button-reset {
border: 0;
outline: none;
width: 0.8rem;
height: 0.36rem;
background: #0087ff;
border-radius: 0.04rem !important;
background: #e1edfa;
border-radius: 0.04rem;
font-size: 0.14rem;
font-weight: 400;
color: #fff;
color: #0087ff;
line-height: 0.34rem;
margin-left: 0.1rem;
margin-left: 2.5rem;
cursor: pointer;
}
:deep(.ant-input-group-addon) {
left: 0 !important;
}
}
.button-reset {
border: 0;
outline: none;
width: 0.8rem;
height: 0.36rem;
background: #e1edfa;
border-radius: 0.04rem;
font-size: 0.14rem;
font-weight: 400;
color: #0087ff;
line-height: 0.34rem;
margin-left: 2.5rem;
cursor: pointer;
}
.details-pageconetent {
height: 100%;
width: 100%;
display: flex;
justify-content: center;
align-items: center;
margin-top: 0.67rem;
position: relative;
background: rgba(245, 243, 243, 0.3);
.details-pageconetent-left {
max-height: 6.9rem;
position: absolute;
width: 2.5rem;
top: 0.17rem;
left: 2.5rem;
margin-right: 0.17rem;
overflow: auto;
}
.top {
min-height: 7.2rem;
position: relative;
width: 11.5rem;
.details-pageconetent {
height: 100%;
width: 100%;
display: flex;
padding-top: 0.2rem;
flex-direction: column;
font-size: 0.16rem;
justify-content: left;
background: #f3f5f9;
justify-content: center;
align-items: center;
margin-top: 0.67rem;
position: relative;
background: rgba(245, 243, 243, 0.3);
.pagination {
background: #f3f5f9;
padding-bottom: 0.6rem;
.details-pageconetent-left {
max-height: 6.9rem;
position: absolute;
width: 2.5rem;
top: 0.17rem;
left: 2.5rem;
margin-right: 0.17rem;
overflow: auto;
}
.top-title {
padding: 0.2rem;
.top {
min-height: 7.2rem;
position: relative;
width: 11.5rem;
display: flex;
font-size: 18px;
padding-top: 0.2rem;
flex-direction: column;
font-size: 0.16rem;
justify-content: left;
background: #f3f5f9;
.tabAll {
.pagination {
background: #f3f5f9;
padding-bottom: 0.6rem;
}
.top-title {
padding: 0.2rem;
display: flex;
font-size: 18px;
color: #000000;
margin-right: 35px;
cursor: pointer;
}
.tabAll:nth-child(1) {
margin-left: 20px;
}
.tabAll {
font-size: 18px;
color: #000000;
margin-right: 35px;
cursor: pointer;
}
.sel {
font-weight: 600;
color: #0087ff;
border-bottom: 0.02rem solid #0087ff;
.tabAll:nth-child(1) {
margin-left: 20px;
}
.sel {
font-weight: 600;
color: #0087ff;
border-bottom: 0.02rem solid #0087ff;
}
}
}
}
}
:deep(.ant-card-grid) {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
-webkit-line-clamp: 1;
word-break: break-all;
}
:deep(.ant-card-grid) {
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
-webkit-line-clamp: 1;
word-break: break-all;
}
</style>

View File

@ -96,6 +96,21 @@
>
{{ i == 0 ? '基础设施' : i == 1 ? '组件服务' : '数据资源' }}
</div>
<div
class="data-count"
style="font-size: 0.14rem; text-align: right; margin-bottom: 0.2rem"
>
<span style="color: #909399">
{{
i == 0
? infrastructureCount
: i == 1
? componentCount
: dataSourceCount
}}条数据示例数据如下
</span>
</div>
<div class="bottom" style="display: flex; align-items: flex-start">
<div class="title" :class="'title' + i"></div>
<div class="table-box">
@ -171,6 +186,9 @@
const solution = ref([])
const step = ref([])
const bgImg = ref('')
const dataSourceCount = ref(0)
const infrastructureCount = ref(0)
const componentCount = ref(0)
const id = router.currentRoute.value.query.id
document.documentElement.style.transition = 'all 0.3s ease'
document.documentElement.scrollTop = 0
@ -283,6 +301,9 @@
return message.error(res.data.msg)
}
detailInfoObj.value = res.data.data || {}
dataSourceCount.value = res.data.data.dataSourceCount || 0
infrastructureCount.value = res.data.data.infrastructureCount|| 0
componentCount.value = res.data.data.componentCount || 0
//
let fuseAttrList = res.data.data.fuseAttrList || []
//
@ -667,6 +688,8 @@
// width: 100%;
font-size: 16px;
}
.data-count {
}
}
.name-box {