Merge branch 'hi-ucs-dev' of http://124.222.94.39:3001/wuhongjian/hi-ucs into hi-ucs-dev

This commit is contained in:
guoyue 2022-06-25 14:01:30 +08:00
commit c6c9d06b85
5 changed files with 933 additions and 442 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

View File

@ -98,7 +98,7 @@ export default {
}, },
axisLine:{ axisLine:{
lineStyle:{ lineStyle:{
color:"#ebebeb" color:"#f5f5f5"
} }
}, },
axisLabel: {//y axisLabel: {//y
@ -134,10 +134,24 @@ export default {
}, },
series: [ series: [
{ {
data: [5, 5, 5, 5, 5, 5],
type: 'bar',
barWidth: 14,
stack: '1',
itemStyle: {
barBorderRadius: [20,20,20,20],
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: 'rgba(178, 189, 255,0)' },
// { offset: 0.5, color: '#188df0' },
{ offset: 1, color: 'rgba(82, 106, 255,0)' }
])
},
},
{
data: [60, 90, 50, 80], data: [60, 90, 50, 80],
type: 'bar', type: 'bar',
barWidth: 14, barWidth: 14,
stack: '1',
itemStyle: { itemStyle: {
barBorderRadius: [20,20,20,20], barBorderRadius: [20,20,20,20],
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
@ -286,10 +300,24 @@ export default {
}, },
series: [ series: [
{ {
data: [5, 5, 5, 5],
type: 'bar',
barWidth: 14,
stack: '1',
itemStyle: {
barBorderRadius: [20,20,20,20],
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: 'rgba(178, 189, 255,0)' },
// { offset: 0.5, color: '#188df0' },
{ offset: 1, color: 'rgba(82, 106, 255,0)' }
])
},
},
{
data: [60, 90, 50, 80], data: [60, 90, 50, 80],
type: 'bar', type: 'bar',
barWidth: 14, barWidth: 14,
stack: '1',
itemStyle: { itemStyle: {
barBorderRadius: [20,20,20,20], barBorderRadius: [20,20,20,20],
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
@ -317,8 +345,8 @@ export default {
type: 'category', type: 'category',
data: ['组件名称1', '组件名称2', '组件名称3', '组件名称4', '组件名称5', '组件名称6'], data: ['组件名称1', '组件名称2', '组件名称3', '组件名称4', '组件名称5', '组件名称6'],
color:['#f5f5f5'], color:['#f5f5f5'],
axisTick:{ axisTick: { //
show:false,//线 show: false, //
}, },
splitLine: { splitLine: {
show: true, show: true,
@ -362,10 +390,24 @@ export default {
}, },
series: [ series: [
{ {
data: [5, 5, 5, 5, 5, 5],
type: 'bar',
barWidth: 14,
stack: '1',
itemStyle: {
barBorderRadius: [20,20,20,20],
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{ offset: 0, color: 'rgba(178, 189, 255,0)' },
// { offset: 0.5, color: '#188df0' },
{ offset: 1, color: 'rgba(82, 106, 255,0)' }
])
},
},
{
data: [60, 90, 50, 80, 50, 80], data: [60, 90, 50, 80, 50, 80],
type: 'bar', type: 'bar',
barWidth: 14, barWidth: 14,
stack: '1',
itemStyle: { itemStyle: {
barBorderRadius: [20,20,20,20], barBorderRadius: [20,20,20,20],
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
@ -374,7 +416,7 @@ export default {
{ offset: 1, color: 'rgba(82, 106, 255,0.8)' } { offset: 1, color: 'rgba(82, 106, 255,0.8)' }
]) ])
}, },
} },
] ]
}; };

View File

@ -358,6 +358,7 @@ export default {
padding-left: 20px; padding-left: 20px;
margin-top: 20px; margin-top: 20px;
margin-right: 20px; margin-right: 20px;
/* background-image:url("../../../assets/img/排行榜背景图.png"); */
} }
.container-body5{ .container-body5{
width:640px; width:640px;

View File

@ -2,10 +2,13 @@
<!-- 青岛 --> <!-- 青岛 -->
<div class="details-pageconetent" v-if="whoShow1 && whoShow1.itShowQingDao"> <div class="details-pageconetent" v-if="whoShow1 && whoShow1.itShowQingDao">
<home-header></home-header> <home-header></home-header>
<div class="details-pageconetent-left"> <div class="details-pageconetent-left" v-if="Cardsname != '基础设施'">
<detailsPageconetentTree /> <detailsPageconetentTree />
</div> </div>
<div class="top" v-if="Cardsname != '知识库'"> <div class="details-pageconetent-left" v-else>
<detailsPageInfrastructureTree />
</div>
<div class="top" v-if="Cardsname != '知识库' && Cardsname != '基础设施'">
<div class="top-title"> <div class="top-title">
<div <div
v-for="item in titleName" v-for="item in titleName"
@ -143,6 +146,28 @@
<a-empty /> <a-empty />
</div> </div>
</div> </div>
<div class="top" v-else-if="Cardsname === '基础设施'">
<div class="top-title">
<div
v-for="item in titleName"
:key="item.name"
:class="item.name === Cardsname ? 'sel' : ''"
@click="changeCards(item.name)"
>
<span
class="photo"
:style="{
backgroundImage: `url(${item.photo}) `,
backgroundSize: 'cover',
}"
></span>
<span>{{ item.name }}</span>
</div>
</div>
<div class="top-content-father">
<infrastructurePage />
</div>
</div>
<div class="top" v-else> <div class="top" v-else>
<div class="top-title"> <div class="top-title">
<div <div
@ -656,6 +681,10 @@
// import VideoSurveillance from '@/views/home/videoSurveillance' // import VideoSurveillance from '@/views/home/videoSurveillance'
// //
import DetailsPageResource from '@/views/home/components/DetailsPageResource.vue' import DetailsPageResource from '@/views/home/components/DetailsPageResource.vue'
//
import infrastructurePage from '@/views/home/infrastructurePage.vue'
import detailsPageInfrastructureTree from '@/views/home/detailsPageInfrastructureTree.vue'
export default defineComponent({ export default defineComponent({
setup() { setup() {
// const store = useStore() // const store = useStore()
@ -1291,6 +1320,8 @@
// VideoCameraOutlined, // VideoCameraOutlined,
// VideoSurveillance, // VideoSurveillance,
DetailsPageResource, DetailsPageResource,
infrastructurePage,
detailsPageInfrastructureTree,
}, },
beforeUnmount() { beforeUnmount() {
mybus.off('selectCardsitem') mybus.off('selectCardsitem')
@ -1303,7 +1334,7 @@
}) })
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.resultListSearchInput-father { .resultListSearchInput-father {
background: #f3f5f9; background: #f3f5f9;
padding-left: 0.2rem; padding-left: 0.2rem;
padding-top: 0.2rem; padding-top: 0.2rem;
@ -1318,8 +1349,8 @@
margin-top: 0.2rem; margin-top: 0.2rem;
} }
} }
} }
.resultListSearchInput { .resultListSearchInput {
margin-left: 0.1rem; margin-left: 0.1rem;
:deep(.ant-input) { :deep(.ant-input) {
width: 4rem; width: 4rem;
@ -1341,8 +1372,8 @@
:deep(.ant-input-group-addon) { :deep(.ant-input-group-addon) {
left: 0 !important; left: 0 !important;
} }
} }
.button-reset { .button-reset {
border: 0; border: 0;
outline: none; outline: none;
width: 0.8rem; width: 0.8rem;
@ -1355,8 +1386,8 @@
line-height: 0.34rem; line-height: 0.34rem;
margin-left: 2.5rem; margin-left: 2.5rem;
cursor: pointer; cursor: pointer;
} }
.details-pageconetent { .details-pageconetent {
height: 100%; height: 100%;
width: 100%; width: 100%;
display: flex; display: flex;
@ -1659,8 +1690,8 @@
} }
} }
} }
} }
.shrinkTag { .shrinkTag {
width: 0.5rem; width: 0.5rem;
display: flex; display: flex;
justify-content: center; justify-content: center;
@ -1669,12 +1700,12 @@
span { span {
cursor: pointer; cursor: pointer;
} }
} }
.shrink { .shrink {
height: unset !important; height: unset !important;
overflow: unset !important; overflow: unset !important;
} }
.talk-monitor { .talk-monitor {
position: fixed; position: fixed;
bottom: 0.5rem; bottom: 0.5rem;
right: 0.1rem; right: 0.1rem;
@ -1687,8 +1718,8 @@
background: url('~@/assets/home/icon-talk.png'); background: url('~@/assets/home/icon-talk.png');
background-size: cover; background-size: cover;
} }
} }
.top-content-father { .top-content-father {
width: 10.87rem; width: 10.87rem;
padding-left: 0.2rem; padding-left: 0.2rem;
// margin-bottom: .2rem; // margin-bottom: .2rem;
@ -1766,11 +1797,11 @@
.top-content:nth-child(1) { .top-content:nth-child(1) {
margin-top: 0.41rem !important; margin-top: 0.41rem !important;
} }
} }
:deep(.ant-card-grid) { :deep(.ant-card-grid) {
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;
-webkit-line-clamp: 1; -webkit-line-clamp: 1;
} }
</style> </style>

View File

@ -1,5 +1,422 @@
<!-- 基础设施 -->
<template> <template>
<div>1234567890</div> <div class="infrastructrueBox">
<!-- 选项卡 -->
<div class="infrastructrue-tab">
<div v-for="(item, index) in tabList" :key="index" class="tabBox">
<b class="leftType">{{ item.title }}</b>
<span
v-for="itemContent in item.content"
:key="itemContent"
@click="tabClick(index, itemContent)"
:class="
clickList[index].content.indexOf(itemContent) != -1 ? 'down' : ''
"
>
{{ itemContent }}
</span>
</div>
</div>
<!-- 功能行 -->
<div class="infrastructrue-content">
<!-- 表格数据统计 -->
<div class="contentNum">
<p>
备选
<span>{{ dataSource.length }}</span>
</p>
<i class="boundary"></i>
<p>
已选
<span>22</span>
</p>
</div>
<!-- 右侧 -->
<div class="contentRight">
<!-- 搜索@search="onSearch" -->
<div class="searchInput">
<a-input-search
v-model:value="name"
placeholder="请输入关键词"
enter-button="搜索"
size="large"
@change="onSearch"
/>
<a-button
type="primary"
style="width: 0.8rem; height: 0.36rem; margin-left: 0.7rem"
@click="clean"
>
重置
</a-button>
</div>
<i class="boundary"></i>
<!-- 添加至购物车 -->
<a-button type="primary" @click="addShopCar" class="buttonAdd">
添加至购物车
</a-button>
<!-- 一键申请 -->
<a-button type="primary" @click="apply" class="buttonAdd">
一键申请
</a-button>
</div>
</div>
<!-- 表格 -->
<div class="infrastructrue-table">
<a-table
class="ant-table-striped"
:dataSource="dataSource"
:columns="columns"
:scroll="{ y: 600 }"
:rowClassName="
(record, index) => (index % 2 === 1 ? 'table-striped' : null)
"
:pagination="pagination"
@change="handleTableChange"
:row-selection="{
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
/>
</div>
</div>
</template> </template>
<script></script> <script setup>
<style lang="less" scoped></style> import { ref, onCreated } from 'vue'
const tabList = ref([
{
title: '设施类型',
content: ['视频资源', '云资源', '感知资源'],
},
{
title: '视频细分',
content: [
'云主机',
'算力主机',
'对象存储',
'堡垒机',
'防火墙',
'网闸',
'负载均衡',
'公网IP',
],
},
]) //
const init = () => {
tabList.value.map((item) => {
let params = {
title: item.title,
content: [],
}
clickList.value.push(params)
})
}
let clickList = ref([]) //tab
init()
//tab
const tabClick = (indexFather, name) => {
if (clickList.value[indexFather].content.indexOf(name) != -1) {
// debugger
clickList.value[indexFather].content.splice(
clickList.value[indexFather].content.indexOf(name),
1
)
} else {
// debugger
clickList.value[indexFather].content[0] = name
}
console.log('clickList.value', clickList.value)
// debugger
}
const name = ref('')
//
const onSearch = (name) => {
name.value = name
console.log(name.value)
}
//
const clean = () => {
name.value = ''
}
// onCreated(() => {
// })
// onMounted(() => {
// })
//
const apply = () => {
console.log('一键申请')
}
//
const addShopCar = () => {
console.log('添加至购物车')
}
//
const dataSource = ref([
{
key: '1',
name: '沈腾',
age: 32,
address: '西湖区湖底公园1号',
},
{
key: '2',
name: '沈腾',
age: 42,
address: '西湖区湖底公园1号',
},
{
key: '3',
name: '沈腾',
age: 42,
address: '西湖区湖底公园1号',
},
{
key: '4',
name: '沈腾',
age: 42,
address: '西湖区湖底公园1号',
},
{
key: '5',
name: '沈腾',
age: 42,
address: '西湖区湖底公园1号',
},
{
key: '6',
name: '沈腾',
age: 42,
address: '西湖区湖底公园1号',
},
{
key: '7',
name: '沈腾',
age: 42,
address: '西湖区湖底公园1号',
},
{
key: '8',
name: '沈腾',
age: 42,
address: '西湖区湖底公园1号',
},
{
key: '9',
name: '沈腾',
age: 42,
address: '西湖区湖底公园1号',
},
{
key: '10',
name: '沈腾',
age: 42,
address: '西湖区湖底公园1号',
},
{
key: '11',
name: '沈腾',
age: 42,
address: '西湖区湖底公园1号',
},
{
key: '12',
name: '沈腾',
age: 42,
address: '西湖区湖底公园1号',
},
{
key: '13',
name: '沈腾',
age: 42,
address: '西湖区湖底公园1号',
},
{
key: '14',
name: '沈腾',
age: 42,
address: '西湖区湖底公园1号',
},
{
key: '15',
name: '沈腾',
age: 42,
address: '西湖区湖底公园1号',
},
{
key: '16',
name: '沈腾',
age: 42,
address: '西湖区湖底公园1号',
},
])
const columns = ref([
{
title: '姓名',
dataIndex: 'name',
key: 'name',
},
{
title: '年龄',
dataIndex: 'age',
key: 'age',
},
{
title: '住址',
dataIndex: 'address',
key: 'address',
},
])
// const selectedRowKeys =
const pagination = ref({
total: 0,
pageSize: 10, //10
showSizeChanger: true,
pageSizeOptions: ['5', '15', '30', '45'], //
})
const queryParam = ref({
page: 1, //
size: 10, //
hosName: '',
hosCode: '',
province: '',
city: '',
})
const handleTableChange = (val) => {
pagination.value.current = val.current
pagination.value.pageSize = val.pageSize
this.queryParam.page = val.current
this.queryParam.size = val.pageSize
// this.getTableList()
}
</script>
<style lang="less" scoped>
.infrastructrueBox {
width: 10.87rem;
padding: 0.2rem;
background: #f3f5f9;
.infrastructrue-tab {
background: #ffffff;
padding: 0.2rem;
border-bottom: 0.01rem solid rgba(150, 144, 144, 0.3);
span {
display: inline-block;
height: 0.24rem;
line-height: 0.24rem;
border: 0.01rem solid #cccccc;
border-radius: 0.12rem;
margin-left: 0.1rem;
text-align: center;
color: #666666;
cursor: pointer;
padding: 0 0.08rem;
}
.leftType {
margin: 0.1rem 0;
}
.down {
border: 0.01rem solid #0087ff;
color: #0087ff;
}
.tabBox {
margin-bottom: 0.16rem;
}
.tabBox:last-of-type {
margin-bottom: 0;
}
}
.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);
}
}
.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);
}
.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;
}
}
}
.infrastructrue-table {
.ant-table-striped :deep(.table-striped) td {
background-color: #fafafa;
}
}
}
</style>