| | |
| | | <html lang="zh" xmlns:th="http://www.thymeleaf.org" > |
| | | <head> |
| | | <th:block th:include="include :: header('基本信息')" /> |
| | | <th:block th:include="include :: datetimepicker-css" /> |
| | | <!-- <link th:href="@{/js/elementUI/index.css}" rel="stylesheet" />--> |
| | | <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css"> |
| | | <script th:src="@{/js/jquery.min.js}"></script> |
| | | <script th:src="@{/js/vue.min.js}"></script> |
| | | <!-- <script th:src="@{/js/elementUI/index.js}"></script>--> |
| | | <script src="https://unpkg.com/element-ui/lib/index.js"></script> |
| | | <style type="text/css"> |
| | | * { |
| | | padding: 0px; |
| | | margin: 0px; |
| | | box-sizing: border-box; |
| | | user-select: none; |
| | | } |
| | | |
| | | html, |
| | | body { |
| | | height: 100%; |
| | | } |
| | | |
| | | #container { |
| | | .el-card__header{ |
| | | height: 55px; |
| | | padding: 18px 20px; |
| | | color: #FFFFFF; |
| | | font-weight: 500; |
| | | font-size: 14px; |
| | | } |
| | | #app { |
| | | height: 100%; |
| | | padding: 20px; |
| | | } |
| | | |
| | | .basic-info { |
| | | border-collapse: collapse; |
| | | width: 100%; |
| | | |
| | | .el-progress-circle{ |
| | | width: 180px !important; |
| | | height: 180px !important; |
| | | } |
| | | .card1{ |
| | | height: 320px;margin-right: 20px; |
| | | } |
| | | .card-blue .el-card__header{ |
| | | height: 40px; |
| | | padding: 8px 20px; |
| | | background: #1894F6; |
| | | } |
| | | .card-yellow .el-card__header{ |
| | | height: 40px; |
| | | padding: 8px 20px; |
| | | background: #F7931E; |
| | | } |
| | | .card-red .el-card__header{ |
| | | height: 40px; |
| | | padding: 8px 20px; |
| | | background: #FF0000; |
| | | } |
| | | .card-green .el-card__header{ |
| | | height: 40px; |
| | | padding: 8px 20px; |
| | | background: #67C23A; |
| | | } |
| | | |
| | | .basic-info td { |
| | | border: 1px solid #8080807a; |
| | | padding: 8px 0px 8px 5px; |
| | | } |
| | | |
| | | .project-name{ |
| | | font-size: 16px; |
| | | } |
| | | |
| | | .map-model{ |
| | | margin-top: 10px; |
| | | text-align: right; |
| | | } |
| | | |
| | | .map-model button{ |
| | | background-color: rgb(66,139,202); |
| | | height: 30px; |
| | | line-height: 30px; |
| | | color: white; |
| | | padding: 0px 10px; |
| | | border-width: 0px; |
| | | border-radius: 3px; |
| | | } |
| | | </style> |
| | | </head> |
| | | <body class="white-bg"> |
| | | <div id="container"> |
| | | <p class="project-name"> |
| | | <span class="name-label">场地名称:</span> |
| | | <span class="name-val" th:text="${project.fullName}"></span> |
| | | </p> |
| | | <table class="basic-info"> |
| | | <tr> |
| | | <td>建设单位:</td> |
| | | <td colspan="3" th:text="${project.companyName}"></td> |
| | | <td>劳务单位:</td> |
| | | <td colspan="3" th:text="${project.laborUnit}"></td> |
| | | </tr> |
| | | <tr> |
| | | <td>建设地点:</td> |
| | | <td colspan="7" th:text="${project.address}"></td> |
| | | </tr> |
| | | <tr> |
| | | <td>场地名称:</td> |
| | | <td colspan="5" th:text="${project.fullName}"></td> |
| | | <td>场地编号:</td> |
| | | <td th:text="${project.code}"></td> |
| | | </tr> |
| | | <tr> |
| | | <td>钻孔个数:</td> |
| | | <td th:text="${project.holeNum}"></td> |
| | | <td>开始时间:</td> |
| | | <td th:text="${#dates.format(project.createTime,'yyyy-MM-dd')}"></td> |
| | | <td>终止时间:</td> |
| | | <td th:text="${#dates.format(project.endTime,'yyyy-MM-dd')}"></td> |
| | | <td>负责人:</td> |
| | | <td th:text="${project.leaderName}"></td> |
| | | </tr> |
| | | </table> |
| | | <!-- <div class="map-model">--> |
| | | <!-- <button onclick="map()" type="button">地图模式</button>--> |
| | | <!-- </div>--> |
| | | <body> |
| | | <div id="app" v-cloak> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-card class="box-card card-blue" style="height: 320px;margin-right: 20px;"> |
| | | <div slot="header" class="clearfix"> |
| | | <span>场地简介</span> |
| | | </div> |
| | | <el-descriptions class="margin-top" title="" :column="1" size="small" border> |
| | | <el-descriptions-item> |
| | | <template slot="label"> |
| | | <i class="el-icon-s-tools"></i> |
| | | 项目名称 |
| | | </template> |
| | | {{project.fullName}} |
| | | </el-descriptions-item> |
| | | |
| | | <el-descriptions-item> |
| | | <template slot="label"> |
| | | <i class="el-icon-menu"></i> |
| | | 场地编号 |
| | | </template> |
| | | {{project.code}} |
| | | </el-descriptions-item> |
| | | |
| | | <el-descriptions-item> |
| | | <template slot="label"> |
| | | <i class="el-icon-map-location"></i> |
| | | 所在区域 |
| | | </template> |
| | | {{project.district}} |
| | | </el-descriptions-item> |
| | | |
| | | <el-descriptions-item> |
| | | <template slot="label"> |
| | | <i class="el-icon-location"></i> |
| | | 场地位置 |
| | | </template> |
| | | {{project.address}} |
| | | </el-descriptions-item> |
| | | <el-descriptions-item> |
| | | <template slot="label"> |
| | | <i class="el-icon-user"></i> |
| | | 负责人: |
| | | </template> |
| | | {{project.leader}} |
| | | </el-descriptions-item> |
| | | <el-descriptions-item> |
| | | <template slot="label"> |
| | | <i class="el-icon-s-operation"></i> |
| | | 当前进度 |
| | | </template> |
| | | {{project.rate}} |
| | | </el-descriptions-item> |
| | | <el-descriptions-item> |
| | | <template slot="label"> |
| | | <i class="el-icon-price-tag"></i> |
| | | 劳务单位 |
| | | </template> |
| | | {{project.laborUnit}} |
| | | </el-descriptions-item> |
| | | |
| | | </el-descriptions> |
| | | </el-card> |
| | | </el-col> |
| | | |
| | | <el-col :span="10" > |
| | | <el-card class="box-card card-blue" style="height: 320px;margin-right: 20px;"> |
| | | <div slot="header" class="clearfix"> |
| | | <span>钻孔分布图</span> |
| | | </div> |
| | | <div> |
| | | <el-image :src="src" |
| | | :preview-src-list="srcList"> |
| | | <div slot="placeholder" class="image-slot"> |
| | | 加载中<span class="dot">...</span> |
| | | </div> |
| | | </el-image> |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | | |
| | | <el-col :span="6" > |
| | | <el-card class="box-card card-red" style="height: 320px;"> |
| | | <div slot="header" class="clearfix"> |
| | | <span>场地进度(%)</span> |
| | | </div> |
| | | <div> |
| | | <div style="padding-left: 20%;"> |
| | | <el-progress type="dashboard" color="#FF0000" :percentage=holeProcess> |
| | | </el-progress> |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | | |
| | | </el-row> |
| | | |
| | | <el-row style="margin-top: 10px;"> |
| | | <el-col :span="24" > |
| | | <el-card class="box-card card-blue" style="height: 400px;"> |
| | | <div slot="header" class="clearfix"> |
| | | <span>钻孔进度</span> |
| | | </div> |
| | | <div style="height: 320px;"> |
| | | <template> |
| | | <el-table :data="holeData" size="small" style="width: 99%" height="320"> |
| | | <el-table-column prop="code" label="编号"></el-table-column> |
| | | <el-table-column prop="type" label="类型"></el-table-column> |
| | | <el-table-column prop="footage" label="总进尺(m)"></el-table-column> |
| | | <el-table-column prop="footageCpl" label="已完成(m)"></el-table-column> |
| | | <el-table-column label="进度(%)"> |
| | | <template slot-scope="scope"> |
| | | <el-progress :percentage=(scope.row.rate*100).toFixed(0) ></el-progress> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | </el-table> |
| | | </template> |
| | | |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | | |
| | | </el-row> |
| | | |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-card class="box-card card-blue" style="height: 320px;margin-top: 20px"> |
| | | <div slot="header" class="clearfix"> |
| | | <span>材料统计</span> |
| | | </div> |
| | | <el-col :span="10" style="height: 320px;"> |
| | | <template> |
| | | <el-table :data="tubLogs" border size="small" style="width: 99%" |
| | | :header-cell-style="{color: '#4D4D4D',background: '#F7931E',fontWeight: '400'}" |
| | | :row-class-name="tableRowClassName"> |
| | | <el-table-column prop="tubName" label="名称"></el-table-column> |
| | | <el-table-column prop="inboundNumber" label="入库数量"></el-table-column> |
| | | <el-table-column prop="outboundNumber" label="出库数量"></el-table-column> |
| | | <el-table-column prop="unit" label="单位"></el-table-column> |
| | | </el-table> |
| | | </template> |
| | | </el-col> |
| | | <el-col :span="14" style="height: 320px;"> |
| | | <div id="column-chart" style="height: 250px; width: 100%;"></div> |
| | | </el-col> |
| | | </el-card> |
| | | |
| | | |
| | | </el-col> |
| | | |
| | | </el-row> |
| | | </div> |
| | | |
| | | |
| | | <th:block th:include="include :: footer" /> |
| | | <th:block th:include="include :: datetimepicker-js" /> |
| | | |
| | | <script th:src="@{/ajax/libs/report/echarts/echarts-all.js}"></script> |
| | | |
| | | <script th:inline="javascript"> |
| | | var project =[[${project}]]; |
| | | |
| | | function map(){ |
| | | parent.$.modal.openTab("项目地图",ctx+"/geo/projectwork/map?id=" + project.ids); |
| | | } |
| | | var winURL = window.location.protocol + "//" + window.location.host + "/bjfw/profile"; |
| | | console.log(winURL) |
| | | |
| | | var projectUrl = winURL + project.url; |
| | | var arrayImg= new Array(); |
| | | arrayImg.push(projectUrl); |
| | | |
| | | var projectId=[[${projectId}]]; |
| | | var statusDatas = [[${@dict.getType('hole_status')}]]; |
| | | var prefix = ctx + "geo/hole"; |
| | | var prefix2 = ctx + "geo/TubLog"; |
| | | |
| | | $(function() { |
| | | //场地钻孔列表 |
| | | var url = prefix + "/holelist?projectId=" + projectId; |
| | | $.ajaxSettings.async = false; |
| | | $.get(url,{},function(res){ |
| | | vm.holeData = res.data; |
| | | }); |
| | | vm.project = project; |
| | | //场地进度 |
| | | var url2 = prefix + "/holeProcess?projectId=" + projectId; |
| | | $.ajaxSettings.async = false; |
| | | $.get(url2,{},function(res){ |
| | | vm.holeProcess = res.data==null ? 0 :(res.data*100).toFixed(0); |
| | | }); |
| | | |
| | | vm.src = projectUrl; |
| | | vm.srcList = arrayImg; |
| | | tubLogs(); |
| | | }); |
| | | |
| | | function tubLogs() { |
| | | const chart = echarts.init(document.getElementById("column-chart")); |
| | | const option = { |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | axisPointer: { |
| | | type: 'shadow' |
| | | } |
| | | }, |
| | | legend: {}, |
| | | grid: { |
| | | left: '3%', |
| | | right: '4%', |
| | | bottom: '3%', |
| | | containLabel: true |
| | | }, |
| | | xAxis: [ |
| | | { |
| | | type: 'category', |
| | | data: [] |
| | | } |
| | | ], |
| | | yAxis: [ |
| | | { |
| | | type: 'value' |
| | | } |
| | | ], |
| | | series: [ |
| | | { |
| | | name: '出库', |
| | | type: 'bar', |
| | | emphasis: { |
| | | focus: 'series' |
| | | }, |
| | | data: [], |
| | | itemStyle: { |
| | | // 修改柱子的颜色 |
| | | color: '#e2b507' |
| | | } |
| | | }, |
| | | { |
| | | name: '入库', |
| | | type: 'bar', |
| | | stack: 'Ad', |
| | | emphasis: { |
| | | focus: 'series' |
| | | }, |
| | | data: [], |
| | | itemStyle: { |
| | | // 修改柱子的颜色 |
| | | color: '#2992c6' |
| | | } |
| | | }, |
| | | |
| | | ] |
| | | }; |
| | | |
| | | let url = prefix2 + "/countTubLogDate/" + projectId; |
| | | $.ajaxSettings.async = false; |
| | | $.get(url,{},function(res){ |
| | | vm.tubLogs = res.data; |
| | | |
| | | res.data.forEach(function(value, index, array) { |
| | | const tubName = value.tubName; |
| | | const inboundNumber = value.inboundNumber; |
| | | const outboundNumber = value.outboundNumber; |
| | | const unit = value.unit; |
| | | option.xAxis[0].data[index] = tubName; |
| | | option.series[0].data[index] = outboundNumber; |
| | | option.series[1].data[index] = inboundNumber; |
| | | }); |
| | | chart.setOption(option, true); |
| | | |
| | | }) |
| | | $.ajaxSettings.async = false; |
| | | } |
| | | |
| | | var vm = new Vue({ |
| | | el: "#app", |
| | | data() { |
| | | return { |
| | | holeProcess:"", |
| | | project: "", |
| | | holeData: [], |
| | | tubLogs:[], |
| | | src:"", |
| | | srcList:[], |
| | | }; |
| | | }, |
| | | methods: { |
| | | tableRowClassName({ row, rowIndex }) { |
| | | if (rowIndex % 2 == 0) { |
| | | return ""; |
| | | } else { |
| | | return "warning-row"; |
| | | } |
| | | }, |
| | | } |
| | | }); |
| | | |
| | | // |
| | | // function map(){ |
| | | // parent.$.modal.openTab("项目地图",ctx+"/geo/projectwork/map?id=" + project.ids); |
| | | // } |
| | | </script> |
| | | </body> |
| | | </html> |