Merge branch 'dev-jack' into shenzhen-dev

This commit is contained in:
Jack 2022-08-23 10:46:01 +08:00
commit 5dda64433e
9 changed files with 251 additions and 93 deletions

View File

@ -0,0 +1,58 @@
<template>
<Card title="BIM协同">
<div class="table">
<div class="row">
<div class="td">规划报批</div>
<div class="td">施工图审查</div>
<div class="td">竣工验收</div>
</div>
<div class="row" v-for="(row, i) in list" :key="i">
<div class="td" :class="{ red: !row[0] }">{{ row[0] ? '符合' : '不符合' }}</div>
<div class="td" :class="{ red: !row[1] }">{{ row[1] ? '符合' : '不符合' }}</div>
<div class="td" :class="{ red: !row[2] }">{{ row[2] ? '已验收' : '未验收' }}</div>
</div>
</div>
</Card>
</template>
<script>
import Card from '../components/Card.vue'
// import { modelReport } from '@/assets/json/jlw/bim.json'
export default {
components: { Card },
mounted() {
console.log(this.list, '收待发放')
},
data() {
// return { modelReport }
const list = new Array(6).fill(0).map((item, index) => new Array(3).fill(0).map(() => (index === 3 ? 0 : 1)))
return {
list
}
},
methods: {}
}
</script>
<style lang="less" scoped>
.table {
width: 100%;
height: 100%;
.row {
margin-bottom: 20px;
font-size: 12px;
display: flex;
.td {
flex: 1;
text-align: center;
&.red {
color: #ff6c7f;
}
}
&:nth-child(1) {
font-size: 14px;
color: #67d4d9;
}
}
}
</style>

View File

@ -0,0 +1,45 @@
<template>
<Card :title="title">
<JNestedRingChart :title="{ y: '35%', text: '33', subTitle: '问题总数' }" :series="series" />
</Card>
</template>
<script>
import Card from '../components/Card.vue'
import JNestedRingChart from '../jChart/pie/JNestedRingChart.vue'
export default {
components: { Card, JNestedRingChart },
props: {
title: {
type: String,
default: ''
}
},
data() {
const data = [
{ value: 45, name: '未查看' },
{ value: 5, name: '已查看' },
{ value: 15, name: '已解决' }
]
if (this.title !== '模型内审') {
data.push({ value: 10, name: '已回复' })
}
return {
series: [
{
roseType: 'area',
radius: ['58%', '54%'],
color: ['#0B1B35', '#244D8F'],
data: [30, 40, 30, 40]
},
{
color: ['#3CABFC', '#FF6C7F', '#6EE4F0', '#557EED'],
data
}
]
}
}
}
</script>
<style lang="less" scoped></style>

View File

@ -1,7 +1,21 @@
<template> <template>
<!-- CIM --> <!-- CIM -->
<div class="container"> <div class="container">
<div class="leftBox"> <div class="charts">
<div class="chart">
<BimCoordination />
</div>
<div class="chart">
<Model title="模型内审" />
</div>
<div class="chart">
<Model title="模型外审" />
</div>
</div>
<div class="bim">
<iframe src="/bim.html" frameborder="0" width="100%" height="100%" id="iframe" @load="load"></iframe>
</div>
<!-- <div class="leftBox">
<div class="leftTop"> <div class="leftTop">
<leftTop title="模型" /> <leftTop title="模型" />
</div> </div>
@ -19,23 +33,27 @@
<div class="rightCenter"> <div class="rightCenter">
<rightCenter title="设计变更" /> <rightCenter title="设计变更" />
</div> </div>
</div> </div> -->
</div> </div>
</template> </template>
<script> <script>
import leftTop from './leftTop' // import leftTop from './leftTop'
import leftCenter from './leftCenter' // import leftCenter from './leftCenter'
import rightTop from './rightTop' // import rightTop from './rightTop'
import rightCenter from './rightCenter' // import rightCenter from './rightCenter'
import BimCoordination from './BimCoordination'
import Model from './Model'
import { projectJlwBimListApi, getJlwTokenApi } from '@/assets/js/api/project' import { projectJlwBimListApi, getJlwTokenApi } from '@/assets/js/api/project'
export default { export default {
components: { components: {
leftTop, // leftTop,
leftCenter, // leftCenter,
rightTop, // rightTop,
rightCenter // rightCenter
BimCoordination,
Model
}, },
mounted() { mounted() {
this.iframe = document.getElementById('iframe') this.iframe = document.getElementById('iframe')
@ -76,59 +94,81 @@ export default {
<style lang="less" scoped> <style lang="less" scoped>
.container { .container {
position: relative; width: 100%;
height: 100%;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
width: 100%; .charts {
height: 100%; width: 23%;
background-color: #07162b; height: calc(100% - 8px);
background-image: url('~@/assets/images/projectImg/Bimbgc.png'); display: flex;
flex-direction: column;
justify-content: space-between;
.chart {
height: 32%;
} }
.topBox {
height: 20%;
} }
.leftBox { .bim {
position: relative; padding: 8px;
width: 25%; width: 75%;
height: 100%; height: 97%;
margin-right: 15px; border: 1px solid #0081c3;
margin-left: 15px;
.leftTop {
height: 33%;
margin-bottom: 15px;
} }
.leftCenter {
height: 33%;
margin-bottom: 15px;
}
.leftBottom {
height: 33%;
}
z-index: 2;
}
.centerBox {
position: absolute;
margin-right: 15px;
padding-left: 6px;
width: 100%;
height: 100%;
line-height: 30px;
font-size: 18px;
color: #6ee4f0;
} }
// .container {
// position: relative;
// display: flex;
// justify-content: space-between;
// width: 100%;
// height: 100%;
// background-color: #07162b;
// background-image: url('~@/assets/images/projectImg/Bimbgc.png');
// }
// .topBox {
// height: 20%;
// }
// .leftBox {
// position: relative;
// width: 25%;
// height: 100%;
// margin-right: 15px;
// margin-left: 15px;
// .leftTop {
// height: 33%;
// margin-bottom: 15px;
// }
// .leftCenter {
// height: 33%;
// margin-bottom: 15px;
// }
// .leftBottom {
// height: 33%;
// }
// z-index: 2;
// }
// .centerBox {
// position: absolute;
// margin-right: 15px;
// padding-left: 6px;
// width: 100%;
// height: 100%;
// line-height: 30px;
// font-size: 18px;
// color: #6ee4f0;
// }
.rightBox { // .rightBox {
position: relative; // position: relative;
width: 25%; // width: 25%;
height: 100%; // height: 100%;
.rightTop { // .rightTop {
height: 33%; // height: 33%;
margin-bottom: 15px; // margin-bottom: 15px;
} // }
.rightCenter { // .rightCenter {
height: 33%; // height: 33%;
margin-bottom: 15px; // margin-bottom: 15px;
} // }
z-index: 2; // z-index: 2;
} // }
</style> </style>

View File

@ -40,20 +40,20 @@ export default {
xData: { xData: {
handler(newVal, oldVal) { handler(newVal, oldVal) {
if (newVal != oldVal) { if (newVal != oldVal) {
this.createChart(); this.createChart()
} }
}, },
deep: true, deep: true,
immediate:true, immediate: true
}, },
series: { series: {
handler(newVal, oldVal) { handler(newVal, oldVal) {
if (newVal != oldVal) { if (newVal != oldVal) {
this.createChart(); this.createChart()
} }
}, },
deep: true, deep: true,
immediate:true, immediate: true
} }
}, },
methods: { methods: {
@ -62,6 +62,7 @@ export default {
const fmtSeries = (series => { const fmtSeries = (series => {
return series.map(item => ({ return series.map(item => ({
name: item.name,
type: 'line', type: 'line',
smooth: true, smooth: true,
data: item.data, data: item.data,
@ -88,6 +89,12 @@ export default {
fontWeight: 'normal' fontWeight: 'normal'
} }
}, },
legend: {
left: 20,
textStyle: {
color: '#fff'
}
},
grid: { grid: {
top: grid[0], top: grid[0],
right: grid[1], right: grid[1],

View File

@ -14,10 +14,10 @@
</div> </div>
<div class="centerBox"> <div class="centerBox">
<div class="rightTop"> <div class="rightTop">
<rightTop title="检查统计" /> <rightTop title="安全问题" />
</div> </div>
<div class="rightBottom"> <div class="rightBottom">
<rightBottom title="隐患趋势" /> <rightBottom title="问题趋势" />
</div> </div>
</div> </div>
</div> </div>

View File

@ -17,7 +17,7 @@
</div> </div>
</div> --> </div> -->
<JNestedRingChart :title="{ text: totalNum, subTitle: '问题总数', y: '35%' }" :series="series" :legend="legend" /> <JNestedRingChart :title="{ text: totalNum, subTitle: '问题总数', y: '35%' }" :series="series" />
</Card> </Card>
</template> </template>
@ -38,12 +38,18 @@ export default {
const totals = res.result.total const totals = res.result.total
this.series = [ this.series = [
{ {
color: ['#FE6C7F', '#786FF0', '#5CE2F6'], color: ['#3DACFE', '#6DE4F0', '#FE6C7F'],
data: [ data: [
{ value: totals.weekInspectNum, name: '周检' }, { value: totals.weekInspectNum, name: '周检' },
{ value: totals.monthInspectNum, name: '月检' }, { value: totals.monthInspectNum, name: '月检' },
{ value: totals.otherInspectNum, name: '其他' } { value: totals.otherInspectNum, name: '其他' }
] ]
},
{
roseType: 'area',
radius: ['58%', '54%'],
color: ['#0B1B35', '#244D8F'],
data: [30, 40, 30, 40]
} }
] ]
this.totalNum = totals.totalNum this.totalNum = totals.totalNum
@ -57,16 +63,16 @@ export default {
} }
}, },
computed: { computed: {
legend() { // legend() {
const data = (this.series[0] || []).data || [] // const data = (this.series[0] || []).data || []
const formatter = name => { // const formatter = name => {
const value = ((data.filter(item => item.name === name) || [])[0] || {}).value // const value = ((data.filter(item => item.name === name) || [])[0] || {}).value
return `${name} ${value}` // return `${name} ${value}`
} // }
return { // return {
formatter // formatter
} // }
} // }
} }
} }
</script> </script>

View File

@ -76,7 +76,6 @@ export default {
margin-bottom: 5px; margin-bottom: 5px;
padding-bottom: 5px; padding-bottom: 5px;
color: #6ee4f0; color: #6ee4f0;
border-bottom: 1px solid #fff;
} }
&.tbody { &.tbody {
height: calc(100% - 42px); height: calc(100% - 42px);

View File

@ -17,9 +17,10 @@ export default {
}, },
data() { data() {
return { return {
xData: ['地理老师', '地理老师', '地理老师', '地理老师', '地理老师', '地理老师', '地理老师', '地理老师', '地理老师', '地理老师'], xData: new Array(10).fill('12-24'),
series: [ series: [
{ {
name: '新增隐患',
data: [100, 235, 232, 532, 112, 532, 449, 269, 998, 33], data: [100, 235, 232, 532, 112, 532, 449, 269, 998, 33],
areaColor: ['rgba(250, 201, 21, .3)', 'rgba(250, 201, 21, .1)'], areaColor: ['rgba(250, 201, 21, .3)', 'rgba(250, 201, 21, .1)'],
emphasis: { emphasis: {
@ -29,6 +30,7 @@ export default {
} }
}, },
{ {
name: '消除隐患',
data: [22, 432, 44, 55, 123, 433, 369, 269, 436, 203], data: [22, 432, 44, 55, 123, 433, 369, 269, 436, 203],
areaColor: ['rgba(255, 108, 127, .3)', 'rgba(255, 108, 127, .1)'], areaColor: ['rgba(255, 108, 127, .3)', 'rgba(255, 108, 127, .1)'],
emphasis: { emphasis: {
@ -38,6 +40,7 @@ export default {
} }
}, },
{ {
name: '未消除隐患',
data: [655, 111, 224, 152, 65, 541, 334, 556, 326, 203], data: [655, 111, 224, 152, 65, 541, 334, 556, 326, 203],
areaColor: ['rgba(102, 212, 224, .3)', 'rgba(102, 212, 224, .1)'], areaColor: ['rgba(102, 212, 224, .3)', 'rgba(102, 212, 224, .1)'],
emphasis: { emphasis: {