地质所 沉降监测网建设项目
zmk
2024-06-21 fd1211cd8d25526bfc4039bfa6547c7859e399bb
javaweb-plus/javaweb-cms/src/main/resources/templates/geo/project/info.html
@@ -13,8 +13,11 @@
            height: 100%;
        }
        .el-card__header{
            height: 40px;
            padding: 8px 20px;
            height: 55px;
            padding: 18px 20px;
            color: #FFFFFF;
            font-weight: 500;
            font-size: 14px;
        }
        #app {
            height: 100%;
@@ -24,13 +27,37 @@
            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;
        }
    </style>
</head>
<body>
    <div id="app"  v-cloak>
        <el-row style="height: 200px;">
            <el-col :span="8">
                <el-card class="box-card" style="height: 320px;">
                <el-card class="box-card  card-blue" style="height: 320px;margin-right: 20px;">
                    <div slot="header" class="clearfix">
                        <span>场地简介</span>
                    </div>
@@ -50,6 +77,7 @@
                            </template>
                            {{project.code}}
                        </el-descriptions-item>
                        <el-descriptions-item>
                            <template slot="label">
                                <i class="el-icon-map-location"></i>
@@ -92,72 +120,230 @@
            </el-col>
            <el-col :span="10" >
                <el-card class="box-card" style="height: 320px;">
                <el-card class="box-card card-yellow" style="height: 320px;margin-right: 20px;">
                    <div slot="header" class="clearfix">
                        <span>场地进度</span>
                        <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>
                    <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" style="height: 320px;">
                <el-card class="box-card card-red" style="height: 320px;">
                    <div slot="header" class="clearfix">
                        <span>场地进度</span>
                        <span>场地进度(%)</span>
                    </div>
                    <div style="">
                        <el-progress  type="dashboard" :percentage="50">
                        </el-progress>
                    <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-yellow"  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" />
    <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 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);
            });
            console.log(vm.project);
            console.log(vm.holeData);
            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";
                    }
                },
            }
        });