.
This commit is contained in:
parent
14f1af9d6c
commit
7afa2b8554
BIN
src/assets/images/dataBoard/wisdomBuild/cim+.png
Normal file
BIN
src/assets/images/dataBoard/wisdomBuild/cim+.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 842 KiB |
BIN
src/assets/images/dataBoard/wisdomBuild/main.png
Normal file
BIN
src/assets/images/dataBoard/wisdomBuild/main.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 452 KiB |
@ -1386,6 +1386,7 @@ const routes2 = [
|
||||
{
|
||||
path: '/project/dataBoard/',
|
||||
name: '数据看板',
|
||||
component: resolve => require(['@/views/projectAdmin/dataBoardTwo/dataBoard.vue'], resolve),
|
||||
// component: resolve => require(['@/views/projectAdmin/dataBoard/dataBoard.vue'], resolve),
|
||||
// children: [{
|
||||
// path: 'index',
|
||||
@ -1435,56 +1436,74 @@ const routes2 = [
|
||||
// component: () => import('@/views/projectAdmin/dataBoard/AiAnalysis.vue'),
|
||||
// }
|
||||
// ]
|
||||
|
||||
component: resolve => require(['@/views/projectAdmin/dataBoardTwo/dataBoard.vue'], resolve),
|
||||
children: [{
|
||||
path: 'index',
|
||||
name: '数据看板-首页概览',
|
||||
component: () => import('@/views/projectAdmin/dataBoardTwo/index.vue'),
|
||||
}, {
|
||||
path: 'digitalSite',
|
||||
name: '数据看板-数字工地',
|
||||
component: () => import('@/views/projectAdmin/dataBoardTwo/digitalSite'),
|
||||
}, {
|
||||
path: 'laborManage',
|
||||
name: '数据看板-劳务管理',
|
||||
component: () => import('@/views/projectAdmin/dataBoardTwo/laborManage.vue'),
|
||||
}, {
|
||||
path: 'environment',
|
||||
name: '数据看板-环境监测',
|
||||
component: () => import('@/views/projectAdmin/dataBoardTwo/environment.vue'),
|
||||
},
|
||||
{
|
||||
path: 'material',
|
||||
name: '数据看板-材料管理',
|
||||
component: () => import('@/views/projectAdmin/dataBoardTwo/material.vue'),
|
||||
},
|
||||
{
|
||||
path: 'plan',
|
||||
name: '数据看板-进度计划',
|
||||
component: () => import('@/views/projectAdmin/dataBoardTwo/plan.vue'),
|
||||
},
|
||||
{
|
||||
path: 'secure',
|
||||
name: '数据看板-安全管理',
|
||||
component: () => import('@/views/projectAdmin/dataBoardTwo/secure.vue'),
|
||||
},
|
||||
{
|
||||
path: 'quality',
|
||||
name: '数据看板-质量管理',
|
||||
component: () => import('@/views/projectAdmin/dataBoardTwo/quality.vue'),
|
||||
},
|
||||
{
|
||||
path: 'SixHundred',
|
||||
name: '数据看板-六个百分百',
|
||||
component: () => import('@/views/projectAdmin/dataBoardTwo/AiAnalysisCopy.vue'),
|
||||
},
|
||||
{
|
||||
path: 'AiAnalysis',
|
||||
name: '数据看板-AI数据分析',
|
||||
component: () => import('@/views/projectAdmin/dataBoardTwo/AiAnalysis.vue'),
|
||||
}
|
||||
]
|
||||
path: 'index',
|
||||
name: '数据看板-首页概览',
|
||||
component: () => import('@/views/projectAdmin/dataBoardTwo/index.vue'),
|
||||
}, {
|
||||
path: 'digitalSite',
|
||||
name: '数据看板-数字工地',
|
||||
component: () => import('@/views/projectAdmin/dataBoardTwo/digitalSite'),
|
||||
}, {
|
||||
path: 'laborManage',
|
||||
name: '数据看板-劳务管理',
|
||||
component: () => import('@/views/projectAdmin/dataBoardTwo/laborManage.vue'),
|
||||
}, {
|
||||
path: 'environment',
|
||||
name: '数据看板-环境监测',
|
||||
component: () => import('@/views/projectAdmin/dataBoardTwo/environment.vue'),
|
||||
},
|
||||
{
|
||||
path: 'material',
|
||||
name: '数据看板-材料管理',
|
||||
component: () => import('@/views/projectAdmin/dataBoardTwo/material.vue'),
|
||||
},
|
||||
{
|
||||
path: 'plan',
|
||||
name: '数据看板-进度计划',
|
||||
component: () => import('@/views/projectAdmin/dataBoardTwo/plan.vue'),
|
||||
},
|
||||
{
|
||||
path: 'secure',
|
||||
name: '数据看板-安全管理',
|
||||
component: () => import('@/views/projectAdmin/dataBoardTwo/secure.vue'),
|
||||
},
|
||||
{
|
||||
path: 'quality',
|
||||
name: '数据看板-质量管理',
|
||||
component: () => import('@/views/projectAdmin/dataBoardTwo/quality.vue'),
|
||||
},
|
||||
{
|
||||
path: 'SixHundred',
|
||||
name: '数据看板-六个百分百',
|
||||
component: () => import('@/views/projectAdmin/dataBoardTwo/AiAnalysisCopy.vue'),
|
||||
},
|
||||
{
|
||||
path: 'AiAnalysis',
|
||||
name: '数据看板-AI数据分析',
|
||||
component: () => import('@/views/projectAdmin/dataBoardTwo/AiAnalysis.vue'),
|
||||
},
|
||||
{
|
||||
path: 'contractManage',
|
||||
name: '数据看板-合约管理',
|
||||
component: () => import('@/views/projectAdmin/dataBoardTwo/contractManage.vue'),
|
||||
},
|
||||
{
|
||||
path: 'doublecManage',
|
||||
name: '数据看板-双碳管理',
|
||||
component: () => import('@/views/projectAdmin/dataBoardTwo/doublecManage.vue'),
|
||||
},
|
||||
{
|
||||
path: 'bigScreen',
|
||||
name: '数据看板-监控大屏',
|
||||
component: () => import('@/views/projectAdmin/dataBoardTwo/bigScreen.vue'),
|
||||
},
|
||||
{
|
||||
path: 'cimManage',
|
||||
name: '数据看板-CIM+',
|
||||
component: () => import('@/views/projectAdmin/dataBoardTwo/cimManage.vue'),
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: '/equipmentCenter/',
|
||||
|
||||
@ -1,8 +1,5 @@
|
||||
<template>
|
||||
<div>
|
||||
</div>
|
||||
<div>
|
||||
<img src="@/assets/images/dataBoard/wisdomBuild/cim+.png" style="width: 100%;" alt="">
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
</style>
|
||||
@ -5281,6 +5281,7 @@ img {
|
||||
font-weight: bold;
|
||||
background-image: url('../../../../assets/images/dataBoard/wisdomBuild/tabs-item.png');
|
||||
background-size: 100% 100%;
|
||||
cursor: pointer;
|
||||
&.active {
|
||||
color: #fff;
|
||||
background-image: url('../../../../assets/images/dataBoard/wisdomBuild/tabs-item-active.png');
|
||||
|
||||
@ -1,193 +1,197 @@
|
||||
<template>
|
||||
<!-- 进度管理 -->
|
||||
<div v-if="COMPANY != 'longguang'" class="fullHeight">
|
||||
<!-- <vue-scroll>
|
||||
<img src="@/assets/images/dataBoard/6.png" style="height:auto;width:100%"/>
|
||||
</vue-scroll> -->
|
||||
<div class="aside fullHeight">
|
||||
<div class="blockBox">
|
||||
<div class="blockTitle"><!-- 倒计时 -->{{$t('message.dataBoard.countDown')}}
|
||||
<!-- 配置项目竣工日期 -->
|
||||
<el-tooltip class="configBtn" effect="dark" :content="$t('message.dataBoard.configProjectCompleteDate')" placement="top">
|
||||
<i class="el-icon-s-tools" @click="dialogVisible=true"></i>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
<div class="blockContent">
|
||||
<p>
|
||||
<!-- 项目整体倒计时: -->
|
||||
{{$t('message.dataBoard.projectCountDown')+':'}}
|
||||
</p>
|
||||
<div class="days">
|
||||
<span class="num">{{endDate?leftDays:'--'}}</span><span>
|
||||
<!-- 天 -->
|
||||
{{$t('message.dataBoard.textList')[0]}}
|
||||
</span>
|
||||
</div>
|
||||
<img src="@/assets/images/daysBG.png" class="daysBG">
|
||||
<p class="endDate"><!-- 竣工时间: -->{{$t('message.dataBoard.completeTime')+':'}}{{endDate}}</p>
|
||||
<!-- <div class="numContent">
|
||||
<div class="numBox">
|
||||
<div class="bg1 medium">
|
||||
<span class="num">10</span>
|
||||
</div>
|
||||
<p>完成任务数</p>
|
||||
</div>
|
||||
<div class="numBox">
|
||||
<div class="bg1 medium">
|
||||
<span class="num">10</span>
|
||||
</div>
|
||||
<p>完成率</p>
|
||||
</div>
|
||||
<div class="numBox">
|
||||
<div class="bg1 medium">
|
||||
<span class="num">10</span>
|
||||
</div>
|
||||
<p>延期天数</p>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="blockBox">
|
||||
<div class="blockTitle">
|
||||
<!-- 状态统计 -->
|
||||
{{$t('message.dataBoard.statusStatistics')}}
|
||||
</div>
|
||||
<div class="blockContent">
|
||||
<div class="companyChart" ref="companyChart"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="blockBox">
|
||||
<div class="blockTitle"><!-- 进度预警 -->{{$t('message.dataBoard.progressAlarm')}}
|
||||
<el-select v-model="alarmType" size="mini" class="alarmTypeBox" @change="changeAlarmType">
|
||||
<!-- 按人员 -->
|
||||
<el-option :value="1" :label="$t('message.dataBoard.accordingtoPeople')"></el-option>
|
||||
<!-- 按任务 -->
|
||||
<el-option :value="2" :label="$t('message.dataBoard.accordingtoTask')"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="blockContent">
|
||||
<vue-scroll>
|
||||
<table class="greenTable" v-show="alarmType==1">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
<!-- 人员姓名 -->
|
||||
{{$t('message.dataBoard.peopleName')}}
|
||||
</th>
|
||||
<th>
|
||||
<!-- 超期任务数 -->
|
||||
{{$t('message.dataBoard.extendedTaskNum')}}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(item, index) in alarmList" :key="index">
|
||||
<td>
|
||||
{{ item.personChargeName }}
|
||||
</td>
|
||||
<td>{{ item.num }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="greenTable" v-show="alarmType==2">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
<!-- 任务 -->
|
||||
{{$t('message.dataBoard.task')}}
|
||||
</th>
|
||||
<th>
|
||||
<!-- 负责人 -->
|
||||
{{$t('message.dataBoard.principal')}}
|
||||
</th>
|
||||
<th>
|
||||
<!-- 超期天数 -->
|
||||
{{$t('message.dataBoard.extendedDays')}}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(item, index) in alarmList" :key="index">
|
||||
<td>
|
||||
{{ item.subitemProjectName }}
|
||||
</td>
|
||||
<td>{{ item.personChargeName }}</td>
|
||||
<td>{{ item.overdueDayNum }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div
|
||||
class="placeholderBox placeholderBox2"
|
||||
v-if="alarmList.length == 0"
|
||||
>
|
||||
<img src="@/assets/images/noData3.png" alt="" srcset="" />
|
||||
<p>
|
||||
<!-- 暂无数据 -->
|
||||
{{$t('message.dataBoard.nodata')}}
|
||||
</p>
|
||||
</div>
|
||||
</vue-scroll>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right fullHeight">
|
||||
<div class="blockBox blockBox3" style="height: calc(66.66% - 25px)">
|
||||
<div class="blockTitle">
|
||||
<!-- 甘特图 -->
|
||||
{{$t('message.dataBoard.ganttChart')}}
|
||||
</div>
|
||||
<div class="blockContent">
|
||||
<iframe :src="'doc/ExtGantt/Ext甘特图.html?url='+baseURL+'&projectSn='+$store.state.projectSn+'&token='+$store.state.userInfo.token" id="iframe" class="Extgantt" > </iframe>
|
||||
</div>
|
||||
</div>
|
||||
<div class="blockBox blockBox2">
|
||||
<div class="blockTitle">
|
||||
<!-- 多维计划 -->
|
||||
{{$t('message.dataBoard.manyDimensionsPlan')}}
|
||||
</div>
|
||||
<div class="blockContent" style=" display: flex;align-items: center;">
|
||||
<div class="stageBox">
|
||||
<vue-scroll :ops="ops" ref="stageScroll">
|
||||
<div
|
||||
class="stageItem"
|
||||
v-for="(item, index) in stageList"
|
||||
:key="index"
|
||||
:class="
|
||||
projectData.constructionStage - 1 > index
|
||||
? 'finish'
|
||||
: projectData.constructionStage - 1 == index
|
||||
? 'ongoing'
|
||||
: ''
|
||||
"
|
||||
>
|
||||
<div class="statusImg"></div>
|
||||
<p>{{ item.name }}</p>
|
||||
<div class="line" v-show="stageList.length != index + 1"></div>
|
||||
<div>
|
||||
<!-- 进度管理 -->
|
||||
<div v-if="false && COMPANY != 'longguang'" class="fullHeight">
|
||||
<!-- <vue-scroll>
|
||||
<img src="@/assets/images/dataBoard/6.png" style="height:auto;width:100%"/>
|
||||
</vue-scroll> -->
|
||||
<div class="aside fullHeight">
|
||||
<div class="blockBox">
|
||||
<div class="blockTitle"><!-- 倒计时 -->{{$t('message.dataBoard.countDown')}}
|
||||
<!-- 配置项目竣工日期 -->
|
||||
<el-tooltip class="configBtn" effect="dark" :content="$t('message.dataBoard.configProjectCompleteDate')" placement="top">
|
||||
<i class="el-icon-s-tools" @click="dialogVisible=true"></i>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
<div class="blockContent">
|
||||
<p>
|
||||
<!-- 项目整体倒计时: -->
|
||||
{{$t('message.dataBoard.projectCountDown')+':'}}
|
||||
</p>
|
||||
<div class="days">
|
||||
<span class="num">{{endDate?leftDays:'--'}}</span><span>
|
||||
<!-- 天 -->
|
||||
{{$t('message.dataBoard.textList')[0]}}
|
||||
</span>
|
||||
</div>
|
||||
</vue-scroll>
|
||||
<img src="@/assets/images/daysBG.png" class="daysBG">
|
||||
<p class="endDate"><!-- 竣工时间: -->{{$t('message.dataBoard.completeTime')+':'}}{{endDate}}</p>
|
||||
<!-- <div class="numContent">
|
||||
<div class="numBox">
|
||||
<div class="bg1 medium">
|
||||
<span class="num">10</span>
|
||||
</div>
|
||||
<p>完成任务数</p>
|
||||
</div>
|
||||
<div class="numBox">
|
||||
<div class="bg1 medium">
|
||||
<span class="num">10</span>
|
||||
</div>
|
||||
<p>完成率</p>
|
||||
</div>
|
||||
<div class="numBox">
|
||||
<div class="bg1 medium">
|
||||
<span class="num">10</span>
|
||||
</div>
|
||||
<p>延期天数</p>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="blockBox">
|
||||
<div class="blockTitle">
|
||||
<!-- 状态统计 -->
|
||||
{{$t('message.dataBoard.statusStatistics')}}
|
||||
</div>
|
||||
<div class="blockContent">
|
||||
<div class="companyChart" ref="companyChart"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="blockBox">
|
||||
<div class="blockTitle"><!-- 进度预警 -->{{$t('message.dataBoard.progressAlarm')}}
|
||||
<el-select v-model="alarmType" size="mini" class="alarmTypeBox" @change="changeAlarmType">
|
||||
<!-- 按人员 -->
|
||||
<el-option :value="1" :label="$t('message.dataBoard.accordingtoPeople')"></el-option>
|
||||
<!-- 按任务 -->
|
||||
<el-option :value="2" :label="$t('message.dataBoard.accordingtoTask')"></el-option>
|
||||
</el-select>
|
||||
</div>
|
||||
<div class="blockContent">
|
||||
<vue-scroll>
|
||||
<table class="greenTable" v-show="alarmType==1">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
<!-- 人员姓名 -->
|
||||
{{$t('message.dataBoard.peopleName')}}
|
||||
</th>
|
||||
<th>
|
||||
<!-- 超期任务数 -->
|
||||
{{$t('message.dataBoard.extendedTaskNum')}}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(item, index) in alarmList" :key="index">
|
||||
<td>
|
||||
{{ item.personChargeName }}
|
||||
</td>
|
||||
<td>{{ item.num }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<table class="greenTable" v-show="alarmType==2">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
<!-- 任务 -->
|
||||
{{$t('message.dataBoard.task')}}
|
||||
</th>
|
||||
<th>
|
||||
<!-- 负责人 -->
|
||||
{{$t('message.dataBoard.principal')}}
|
||||
</th>
|
||||
<th>
|
||||
<!-- 超期天数 -->
|
||||
{{$t('message.dataBoard.extendedDays')}}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(item, index) in alarmList" :key="index">
|
||||
<td>
|
||||
{{ item.subitemProjectName }}
|
||||
</td>
|
||||
<td>{{ item.personChargeName }}</td>
|
||||
<td>{{ item.overdueDayNum }}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<div
|
||||
class="placeholderBox placeholderBox2"
|
||||
v-if="alarmList.length == 0"
|
||||
>
|
||||
<img src="@/assets/images/noData3.png" alt="" srcset="" />
|
||||
<p>
|
||||
<!-- 暂无数据 -->
|
||||
{{$t('message.dataBoard.nodata')}}
|
||||
</p>
|
||||
</div>
|
||||
</vue-scroll>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<el-dialog :modal-append-to-body="false" :title="$t('message.dataBoard.configProjectCompleteDate')" :visible.sync="dialogVisible" width="667px">
|
||||
<div style="text-align:center;margin-bottom:30px">
|
||||
<el-date-picker size="medium"
|
||||
v-model="endDate"
|
||||
type="date"
|
||||
:placeholder="$t('message.dataBoard.chooseDate')" value-format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
<!-- <br> -->
|
||||
<el-button type="primary" size="medium" @click="saveDataFn" style="margin-left: 20px">
|
||||
<!-- 保存 -->
|
||||
{{$t('message.dataBoard.save')}}
|
||||
</el-button>
|
||||
<div class="right fullHeight">
|
||||
<div class="blockBox blockBox3" style="height: calc(66.66% - 25px)">
|
||||
<div class="blockTitle">
|
||||
<!-- 甘特图 -->
|
||||
{{$t('message.dataBoard.ganttChart')}}
|
||||
</div>
|
||||
<div class="blockContent">
|
||||
<iframe :src="'doc/ExtGantt/Ext甘特图.html?url='+baseURL+'&projectSn='+$store.state.projectSn+'&token='+$store.state.userInfo.token" id="iframe" class="Extgantt" > </iframe>
|
||||
</div>
|
||||
</div>
|
||||
<div class="blockBox blockBox2">
|
||||
<div class="blockTitle">
|
||||
<!-- 多维计划 -->
|
||||
{{$t('message.dataBoard.manyDimensionsPlan')}}
|
||||
</div>
|
||||
<div class="blockContent" style=" display: flex;align-items: center;">
|
||||
<div class="stageBox">
|
||||
<vue-scroll :ops="ops" ref="stageScroll">
|
||||
<div
|
||||
class="stageItem"
|
||||
v-for="(item, index) in stageList"
|
||||
:key="index"
|
||||
:class="
|
||||
projectData.constructionStage - 1 > index
|
||||
? 'finish'
|
||||
: projectData.constructionStage - 1 == index
|
||||
? 'ongoing'
|
||||
: ''
|
||||
"
|
||||
>
|
||||
<div class="statusImg"></div>
|
||||
<p>{{ item.name }}</p>
|
||||
<div class="line" v-show="stageList.length != index + 1"></div>
|
||||
</div>
|
||||
</vue-scroll>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<el-dialog :modal-append-to-body="false" :title="$t('message.dataBoard.configProjectCompleteDate')" :visible.sync="dialogVisible" width="667px">
|
||||
<div style="text-align:center;margin-bottom:30px">
|
||||
<el-date-picker size="medium"
|
||||
v-model="endDate"
|
||||
type="date"
|
||||
:placeholder="$t('message.dataBoard.chooseDate')" value-format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
<!-- <br> -->
|
||||
<el-button type="primary" size="medium" @click="saveDataFn" style="margin-left: 20px">
|
||||
<!-- 保存 -->
|
||||
{{$t('message.dataBoard.save')}}
|
||||
</el-button>
|
||||
</div>
|
||||
|
||||
</el-dialog>
|
||||
</el-dialog>
|
||||
</div>
|
||||
<!-- <PlanTwo v-else></PlanTwo> -->
|
||||
<img src="@/assets/images/dataBoard/wisdomBuild/main.png" style="width: 100%" alt="" />
|
||||
</div>
|
||||
<PlanTwo v-else></PlanTwo>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import echarts from 'echarts4';;
|
||||
import { getProjectDetail,getProjectExtendInfoApi,editProjectExtendApi } from "@/assets/js/api/baseInfo.js";
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user