| | |
| | | <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"> |
| | | <body> |
| | | <div id="app" v-cloak> |
| | | <el-row style="height: 200px;"> |
| | | <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> |
| | | |
| | | <div class="row"> |
| | | <p class="project-name"> |
| | | <h3>场地信息</h3> |
| | | <!-- <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>--> |
| | | </div> |
| | | <el-descriptions-item> |
| | | <template slot="label"> |
| | | <i class="el-icon-menu"></i> |
| | | 场地编号 |
| | | </template> |
| | | {{project.code}} |
| | | </el-descriptions-item> |
| | | |
| | | <div class="row" style="margin-top: 30px;"> |
| | | <h3>场地钻孔列表</h3> |
| | | </div> |
| | | <div class="row"> |
| | | <div class="col-sm-12 select-table table-striped"> |
| | | <table id="bootstrap-table"></table> |
| | | </div> |
| | | </div> |
| | | <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.leaderName}} |
| | | </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-yellow" style="height: 320px;margin-right: 20px;"> |
| | | <div slot="header" class="clearfix"> |
| | | <span>钻孔进度</span> |
| | | </div> |
| | | <template> |
| | | <el-table :data="holeData" size="small" style="width: 100%"> |
| | | <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> |
| | | |
| | | </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="50"> |
| | | </el-progress> |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | | |
| | | |
| | | |
| | | </el-row> |
| | | <el-row style="height: 200px;"> |
| | | <el-col :span="24"> |
| | | |
| | | <el-card class="box-card card-green" 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: 100%" |
| | | :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-card class="box-card card-green" style="height: 320px;margin-top: 20px">--> |
| | | <!-- <div slot="header" class="clearfix">--> |
| | | <!-- <span>材料信息</span>--> |
| | | <!-- </div>--> |
| | | <!-- <div>--> |
| | | <!-- <template>--> |
| | | <!-- <el-table :data="tubLogs" border size="small" style="width: 100%"--> |
| | | <!-- :header-cell-style="{color: '#4D4D4D',background: '#F7931E',fontWeight: '400'}"--> |
| | | <!-- :row-class-name="tableRowClassName">--> |
| | | <!-- <!– <el-table-column prop="code" label="序号"></el-table-column>–>--> |
| | | <!-- <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>--> |
| | | <!-- </div>--> |
| | | <!-- </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}]]; |
| | | var projectId=[[${projectId}]]; |
| | | var statusDatas = [[${@dict.getType('hole_status')}]]; |
| | | var prefix = ctx + "geo/hole"; |
| | | var prefix2 = ctx + "geo/TubLog"; |
| | | |
| | | $(function() { |
| | | var options = { |
| | | url: prefix + "/list?projectId=" + projectId, |
| | | modalName: "钻孔", |
| | | columns: [ |
| | | { |
| | | field : 'code', |
| | | title : '钻孔编号' |
| | | }, |
| | | { |
| | | field : 'elevation', |
| | | title : '孔口高程(m)' |
| | | }, |
| | | { |
| | | field : 'depth', |
| | | title : '设计孔深(m)' |
| | | }, |
| | | { |
| | | field : 'longitude', |
| | | title : '钻孔经度', |
| | | visible: false |
| | | }, |
| | | { |
| | | field : 'latitude', |
| | | title : '钻孔纬度', |
| | | visible: false |
| | | }, |
| | | { |
| | | field : 'status', |
| | | title : '钻孔状态', |
| | | formatter: function(value, row, index) { |
| | | return $.table.selectDictLabel(statusDatas, value); |
| | | } |
| | | }, |
| | | { |
| | | field : 'footage', |
| | | title : '总进尺(m)', |
| | | }, |
| | | { |
| | | field : 'footageCpl', |
| | | title : '已完成进尺(m)', |
| | | }, |
| | | { |
| | | field : 'rate', |
| | | title : '完成进度(%)', |
| | | formatter: function(value, row, index) { |
| | | if (row.rate !=null){ |
| | | return (row.rate*100).toFixed(2) + "%"; |
| | | }else{ |
| | | return "0%"; |
| | | } |
| | | } |
| | | var url = prefix + "/holelist?projectId=" + projectId; |
| | | $.ajaxSettings.async = false; |
| | | $.get(url,{},function(res){ |
| | | vm.holeData = res.data; |
| | | }); |
| | | vm.project = project; |
| | | 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: [] |
| | | }, |
| | | { |
| | | name: '入库', |
| | | type: 'bar', |
| | | stack: 'Ad', |
| | | emphasis: { |
| | | focus: 'series' |
| | | }, |
| | | data: [] |
| | | }, |
| | | |
| | | ] |
| | | }; |
| | | $.table.init(options); |
| | | |
| | | 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 { |
| | | project: "", |
| | | holeData: [], |
| | | tubLogs:[], |
| | | }; |
| | | }, |
| | | 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); |