地质所 沉降监测网建设项目
suerwei
2024-06-22 0b8e43d5f5fd889ffcb715dafdaa6d4511532665
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/project/info.html
@@ -2,176 +2,351 @@
<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">
                <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">
            <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-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="height: 200px;">
            <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>
                    <div style="height: 250px;">
                        <template>
                            <el-table :data="holeData" size="small" style="width: 100%" height="250">
                                <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 style="height: 200px;">
            <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: 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-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 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 options = {
                url: prefix + "/list?projectId=" + projectId,
                modalName: "钻孔",
                columns: [{
                    checkbox: true
                },
                    {
                        field : 'ids',
                        title : '主键',
                        visible: false
                    },
                    {
                        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;
            //场地进度
            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'
                        }
                    },
                ]
            };
            $.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 {
                    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);