Merge branch 'dev-jack' into shenzhen-dev
This commit is contained in:
commit
5dda64433e
58
src/views/projectAdmin/jlw/CIM/BimCoordination.vue
Normal file
58
src/views/projectAdmin/jlw/CIM/BimCoordination.vue
Normal 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>
|
||||||
45
src/views/projectAdmin/jlw/CIM/Model.vue
Normal file
45
src/views/projectAdmin/jlw/CIM/Model.vue
Normal 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>
|
||||||
@ -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;
|
||||||
.topBox {
|
justify-content: space-between;
|
||||||
height: 20%;
|
.chart {
|
||||||
}
|
height: 32%;
|
||||||
.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 {
|
.bim {
|
||||||
height: 33%;
|
padding: 8px;
|
||||||
|
width: 75%;
|
||||||
|
height: 97%;
|
||||||
|
border: 1px solid #0081c3;
|
||||||
}
|
}
|
||||||
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>
|
||||||
|
|||||||
@ -36,24 +36,24 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return { JLineChart: null }
|
return { JLineChart: null }
|
||||||
},
|
},
|
||||||
watch:{
|
watch: {
|
||||||
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],
|
||||||
|
|||||||
@ -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>
|
||||||
|
|||||||
@ -23,7 +23,7 @@
|
|||||||
<div class="info">
|
<div class="info">
|
||||||
<vue-scroll>
|
<vue-scroll>
|
||||||
<div class="info-item" v-for="(item, index) in activityList" :key="index">
|
<div class="info-item" v-for="(item, index) in activityList" :key="index">
|
||||||
{{ `${item.rectifyPeopleAme} 有一条 ${status[item.state]} 的问题` }}
|
{{ `${item.rectifyPeopleAme}有一条${status[item.state]}的问题` }}
|
||||||
</div>
|
</div>
|
||||||
</vue-scroll>
|
</vue-scroll>
|
||||||
<div v-if="!activityList.length">无数据</div>
|
<div v-if="!activityList.length">无数据</div>
|
||||||
|
|||||||
@ -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>
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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: {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user