赣州市洪水风险预警系统三维版本
guoshilong
2023-02-20 e45a4000a1bf7e377aff9ea086886d08ada78048
洪水淹没-评估分析弹窗修改为竖版
8 files modified
1 files added
438 ■■■■ changed files
corelib/common/popup/css/style.css 104 ●●●●● patch | view | raw | blame | history
corelib/common/popup/evaluateAnalysis copy.html 99 ●●●●● patch | view | raw | blame | history
corelib/common/popup/evaluateAnalysis.html 81 ●●●● patch | view | raw | blame | history
corelib/common/popup/js/evaluateAnalysis.js 78 ●●●●● patch | view | raw | blame | history
index.html 2 ●●● patch | view | raw | blame | history
widgets/FloodAnalysis/Widget copy4.html 2 ●●● patch | view | raw | blame | history
widgets/FloodAnalysis/Widget copy5.js 11 ●●●● patch | view | raw | blame | history
widgets/FloodAnalysis/Widget.js 47 ●●●● patch | view | raw | blame | history
widgets/FloodAnalysis/css/style.css 14 ●●●● patch | view | raw | blame | history
corelib/common/popup/css/style.css
@@ -805,67 +805,95 @@
/**损失分析**/
.evaluate-analysis {
    height: 628px;
    height: 744px;
    margin: 15px;
}
.evaluate-box {
    display: flex;
    height: 61%;
    height: 100%;
}
.evaluate-bottom {
.evaluate-box-top{
    height: 49%;
}
.evaluate-box-middle{
    height: 46%;
}
.evaluate-box-bottom{
    display: flex;
    justify-content: flex-end;
}
.evaluate-bottom > input {
    width: 120px;
    height: 40px;
    background-color: white;
    border-radius: 11px;
}
.evaluate-bottom > input:hover {
.evaluate-box-bottom input{
    width: 86px;
    height: 25px;
    background-color: #bbbaba;
    border: none;
    color: white;
    background-color: #0db2ef;
    border-radius: 5px;
}
.export-img {
    margin-right: 1%;
.evaluate-box-bottom input:hover{
    background: #094895
}
.evaluate-box-left {
    width: 70%;
.export-img{
    margin-right: 10px;
}
.evaluate-box-right {
    width: 70%;
    height: 100%;
.row-1{
    display: flex;
    margin-bottom: 5px;
}
.evaluate-box-top {
.row-2{
    display: flex;
}
.list-echarts-button{
    width: 100%;
    height: 60px;
}
.evaluate-box-middle {
    width: 96%;
    height: 90%;
    padding: 0px 10px 0px 10px;
}
.evaluate-box-top-left {
    text-align: center;
    display: flex;
    font-size: 13px;
    flex-direction: row-reverse;
}
.evaluate-box-top {
    display: flex;
.list-echarts-button input{
    width: 55px;
    height: 20px;
    border: none;
    background-color: rgb(187, 186, 186);
    color: white;
    border-radius: 5px;
}
.choose-button {
    background: #094895 !important;
    border: none;
    color: white;
}
.unchoose-button {
    background: rgb(187, 186, 186) !important;
    border: none;
    color: white;
}
.evaluate-box-middle table {
    width: 100%;
}
.table-title{
    display: flex;
    height: 33px;
}
.table-label{
    width: 145%;
    font-size: 19px;
    text-align: right;
    font-weight: bold;
}
.evaluate-table-caption {
@@ -986,14 +1014,6 @@
.flood-analysis-pagination .jump-btn {
    width: 38px !important;
}
.column-1 {
    width: 65%;
}
.column-2 {
    width: 180px;
    margin-left: 20px;
}
.evaluate-echarts {
corelib/common/popup/evaluateAnalysis copy.html
New file
@@ -0,0 +1,99 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>评估分析</title>
    <link rel="stylesheet" href="./css/style.css">
    <link rel="stylesheet" href="">
</head>
<body>
<div class="evaluate-analysis">
    <div class="evaluate-box">
        <div class="evaluate-box-left">
            <div class="flood-image-box">
                <div class="flood-image-top">
                    <img id="show-img" src="">
                </div>
                <div class="description">
                    <!--已经与数据联动,此处可删可不删-->
                    该站位于古亭水园滩段,河段长4556m,预计会造成受灾户数125户,受灾人口625人,受灾面积47.999km²,房屋价值189.999万元
                </div>
            </div>
        </div>
        <div class="evaluate-box-right">
            <div class="evaluate-box-top">
                <div class="evaluate-box-top-left">
                    <div class="column-1">
                        <div>
                            <span>淹没面积:</span><span class="house">暂无数据</span>
                        </div>
                        <div>
                            <span>淹没耕地面积:</span><span class="area">暂无数据</span>
                        </div>
                    </div>
                    <div class="column-2">
                        <div>
                            <span>影响人口:</span><span class="people">暂无数据</span>
                        </div>
                        <div>
                            <span>淹没GDP:</span><span class="money">暂无数据</span>
                        </div>
                    </div>
                </div>
                <div class="evaluate-box-top-right">
                    <label>
                        <input id="list" type="radio" name="value" value="list" checked='checked'>列表
                    </label>
                    <label>
                        <input id="echarts" type="radio" name="value" value="echarts">图表
                    </label>
                </div>
            </div>
            <div class="evaluate-box-middle">
                <div class="evaluate-table">
                    <table>
                        <caption class="evaluate-table-caption table-caption">洪水淹没统计</caption>
                        <thead class="evaluate-table-thead table-thead">
                        <tr>
                            <th>
                                <div>水深等级</div>
                            </th>
                            <th>
                                <div>淹没面积(km²)</div>
                            </th>
                            <th>
                                <div>淹没耕地面积(km²)</div>
                            </th>
                            <th>
                                <div>影响人口(万人)</div>
                            </th>
                            <th>
                                <div>淹没区GDP(亿元)</div>
                            </th>
                        </tr>
                        </thead>
                        <tbody id="evaluate-tbody" class="table-tbody evaluate-tbody"></tbody>
                    </table>
                    <div class="flood-analysis-pagination Pagination" id="evaluate-pagination"></div>
                </div>
                <div class="evaluate-echarts" id="evaluate-echarts"></div>
            </div>
        </div>
    </div>
    <div class="evaluate-bottom">
        <input id="export-img" class="export-img" type="button" value="导出成果图"/>
        <input id="save-btn" class="save-btn" type="button" value="保存"/>
    </div>
</div>
<script src="../../../libs/jquery/jquery-3.3.1.min.js"></script>
<script src="../../../libs/jquery.pagination.js"></script>
<script src="../../../libs/layer/layer.js"></script>
<script src="../../../libs/echarts/v4/echarts.min.js"></script>
<script src="js/evaluateAnalysis.js"></script>
</body>
</html>
corelib/common/popup/evaluateAnalysis.html
@@ -9,10 +9,10 @@
<body>
<div class="evaluate-analysis">
    <div class="evaluate-box">
        <div class="evaluate-box-left">
        <div class="evaluate-box-top">
            <div class="flood-image-box">
                <div class="flood-image-top">
                    <img id="show-img" src="">
                    <img style="width: 100%;height: 100%" id="show-img" src="..\widgets\FloodAnalysis\image\floodAnalysisEvaluate-2.png">
                </div>
                <div class="description">
                    <!--已经与数据联动,此处可删可不删-->
@@ -20,40 +20,44 @@
                </div>
            </div>
        </div>
        <div class="evaluate-box-right">
            <div class="evaluate-box-top">
                <div class="evaluate-box-top-left">
                    <div class="column-1">
                        <div>
                            <span>淹没面积:</span><span class="house">暂无数据</span>
                        </div>
                        <div>
                            <span>淹没耕地面积:</span><span class="area">暂无数据</span>
                        </div>
                    </div>
                    <div class="column-2">
                        <div>
                            <span>影响人口:</span><span class="people">暂无数据</span>
                        </div>
                        <div>
                            <span>淹没GDP:</span><span class="money">暂无数据</span>
                        </div>
                    </div>
                </div>
                <div class="evaluate-box-top-right">
                    <label>
                        <input id="list" type="radio" name="value" value="list" checked='checked'>列表
                    </label>
                    <label>
                        <input id="echarts" type="radio" name="value" value="echarts">图表
                    </label>
                </div>
        <hr style="margin-bottom: 11px;"/>
        <div class="evaluate-box-middle">
            <div  class="evaluate-middle-first" style="display: flex">
<!--                <div>-->
<!--                    <div class="row-1">-->
<!--                        <div style="width: 150px">-->
<!--                            <span>淹没面积:</span><span class="house">暂无数据</span>-->
<!--                        </div>-->
<!--                        <div style="width: 205px">-->
<!--                            <span>淹没耕地面积:</span><span class="area">暂无数据</span>-->
<!--                        </div>-->
<!--                    </div>-->
<!--                    <div class="row-2">-->
<!--                        <div style="width: 150px">-->
<!--                            <span>影响人口:</span><span class="people">暂无数据</span>-->
<!--                        </div>-->
<!--                        <div>-->
<!--                            <span>淹没GDP:</span><span class="money">暂无数据</span>-->
<!--                        </div>-->
<!--                    </div>-->
<!--                </div>-->
            </div>
            <div class="evaluate-box-middle">
            <div class="evaluate-middle-second">
                <div class="evaluate-table">
                    <table>
                        <caption class="evaluate-table-caption table-caption">洪水淹没统计</caption>
<!--                            <caption class="evaluate-table-caption table-caption">洪水淹没统计</caption>-->
                        <div class="table-title">
                            <div class="table-label">洪水淹没统计</div>
                            <div class="list-echarts-button">
                                <label>
                                    <input id="echarts" class="echarts" type="button" value="图表"/>
                                </label>
                                <label>
                                    <input id="list" class="list" type="button" value="列表"/>
                                </label>
                            </div>
                        </div>
                        <thead class="evaluate-table-thead table-thead">
                        <tr>
                            <th>
@@ -75,16 +79,15 @@
                        </thead>
                        <tbody id="evaluate-tbody" class="table-tbody evaluate-tbody"></tbody>
                    </table>
                    <div class="flood-analysis-pagination Pagination" id="evaluate-pagination"></div>
<!--                    <div class="flood-analysis-pagination Pagination" id="evaluate-pagination"></div>-->
                </div>
                <div class="evaluate-echarts" id="evaluate-echarts"></div>
            </div>
        </div>
    </div>
    <div class="evaluate-bottom">
        <input id="export-img" class="export-img" type="button" value="导出成果图"/>
        <input id="save-btn" class="save-btn" type="button" value="保存"/>
        <div class="evaluate-box-bottom">
            <input id="export-img" class="export-img" type="button" value="导出成果图"/>
            <input id="save-btn" class="save-btn" type="button" value="保存"/>
        </div>
    </div>
</div>
corelib/common/popup/js/evaluateAnalysis.js
@@ -22,22 +22,30 @@
    //初始化
    init()
    // change事件
    $('input[type=radio][name=value]').change(function () {
        if (this.value == 'list') {
            $('.evaluate-echarts').hide()
            // $('.evaluate-box-top-left').css('visibility', 'visible')
            $('.evaluate-table').show()
            $('.flood-analysis-pagination').show()
        } else {
            $('.evaluate-table').hide()
            // $('.evaluate-box-top-left').css('visibility', 'hidden')
            $('.flood-analysis-pagination').hide()
            recharts_z()
            loadEcharts()
            $('.evaluate-echarts').show()
        }
    });
    $('#list').click(function () {
        $('.evaluate-echarts').hide()
        $('.evaluate-table').show()
        $('.flood-analysis-pagination').show()
        $('.list').addClass('choose-button')
        $('.list').removeClass('unchoose-button')
        $('.echarts').addClass('unchoose-button')
        $('.echarts').removeClass('choose-button')
    })
    $('#echarts').click(function () {
        $('.evaluate-table').hide()
        $('.flood-analysis-pagination').hide()
        recharts_z()
        loadEcharts()
        $('.evaluate-echarts').show()
        $('.echarts').addClass('choose-button')
        $('.echarts').removeClass('unchoose-button')
        $('.list').addClass('unchoose-button')
        $('.list').removeClass('choose-button')
    })
    //淹没图弹窗事件
    $('#create-flood-image').click(function () {
@@ -144,13 +152,13 @@
            legend: {},
            xAxis: [
                {
                    type: 'value',
                    type: 'category',
                    axisTick: {show: false},
                }
            ],
            yAxis: [
                {
                    type: 'category',
                    type: 'value',
                    data: nameData
                }
            ],
@@ -199,8 +207,8 @@
    }
    function recharts_z() {
        var width = $(window).width() * 0.45;
        var height = ($(window).height() - 50) - 80;
        var width = $(window).width() * 0.8;
        var height = $(window).height() - 400
        $('#evaluate-echarts').empty();
        $('#evaluate-echarts').removeAttr("_echarts_instance_").empty();
@@ -240,8 +248,13 @@
    function init() {
        $('#show-img').prop('src', 'image/floodAnalysisEvaluate-2.png')
        loadSumData()
        $('.list').addClass('choose-button')
        $('.list').removeClass('unchoose-button')
        $('.echarts').addClass('unchoose-button')
        $('.echarts').removeClass('choose-button')
        loadPagination()
        loadSumData()
    }
    function loadTable(listData) {
@@ -281,11 +294,22 @@
            money = floatAdd(money, evaluateData[i].value)
        }
        $(".house").html(house + '户')
        $(".people").html(people + '人')
        $(".area").html(area + 'km²')
        $(".money").html(money + '万元')
        $('.description').html("该站位于" + hd.riverway + ",靠近"+hd.stnm.trim()+"水文站,起始距为"+hd.gl_qdj+",河段长" + hd.river_length + "m,预计会造成受灾户数" + house + "户,受灾人口" + people + "人,受灾面积" + area + "km²,房屋价值" + money + "万元")
        let table = '<tr>' +
            '<td><div>合计</div></td>' +
            '<td><div>' + house + '</div></td>' +
            '<td><div>' + people + '</div></td>' +
            '<td><div>' + area + '</div></td>' +
            '<td><div>' + money + '</div></td>' +
            '</tr>'
        $('#evaluate-tbody').append(table)
        // $(".house").html(house + '户')
        // $(".people").html(people + '人')
        // $(".area").html(area + 'km²')
        // $(".money").html(money + '万元')
        $('.description').html("该站位于" + hd.riverway + ",靠近"+hd.stnm.trim()+"水文站,起始距为"+hd.gl_qdj+"m,河段长" + hd.river_length + "m,预计会造成受灾户数" + house + "户,受灾人口" + people + "人,受灾面积" + area + "km²,房屋价值" + money + "万元")
    }
    function loadPagination() {
@@ -356,7 +380,7 @@
            point:data.point
        }
        $.ajax({
            url: 'http://localhost:82/blade-ycreal/inundationResult/save',
            url: 'http://192.168.0.207:82/blade-ycreal/inundationResult/save',
            type: 'post',
            dataType: 'json',
            jsonp: 'callback',
index.html
@@ -137,7 +137,7 @@
                background: #303336 url('images/3d-2-03.png');
                border: 1px solid #303336;
                background-size: cover;
                z-index:6;
                z-index:1;
                cursor:pointer;
                right: 13px;
                bottom: 240px;
widgets/FloodAnalysis/Widget copy4.html
@@ -76,7 +76,7 @@
            <div class="evaluate-box-top">
                <div class="flood-image-box">
                    <div class="flood-image-top">
                        <img id="show-img" src=../../widgets/FloodAnalysis/images/floodAnalysisEvaluate-2.png>
                        <img style="width: 100%;height: 100%" id="show-img" src="..\widgets\FloodAnalysis\image\floodAnalysisEvaluate-2.png">
                    </div>
                    <div class="description">
                        <!--已经与数据联动,此处可删可不删-->
widgets/FloodAnalysis/Widget copy5.js
@@ -87,6 +87,13 @@
                population: 100,
                area: 8.551,
                value: 39.789
            },
            {
                name: ">3.0",
                house: 70,
                population: 350,
                area: 24.6,
                value: 20.4
            }
        ],
        startup: function startup() {
@@ -675,13 +682,13 @@
            var url = './corelib/common/popup/evaluateAnalysis.html'
            var top = ($(window).height() - 550) / 2;
            var top = ($(window).height() - 600) / 2;
            var left = ($(window).width() - 400 - 340) / 2 + 340;
            layer.open({
                title: '评估分析',
                type: 2,
                maxmin: false, //开启最大化最小化按钮
                area: ['900px', '600px'],
                area: ['900px', '500px'],
                skin: 'floodAnalysis',
                offset: [top,left],
                content: url + "?parentData=" + encodeURIComponent(JSON.stringify(parentData)),//使用encodeURIComponent转码,避免中文字符乱码,避免url截取错误
widgets/FloodAnalysis/Widget.js
@@ -54,6 +54,7 @@
        currentSmxcode: "",
        //水文站最近的点
        currentNearPoint:null,
        evaluateLayerIndex:"",
        //收起框打开状态
        isOpen: true,
        //api接口
@@ -62,7 +63,7 @@
            waterlineSelectName: "http://localhost:82/blade-ycreal/waterline/selectName",
            childpage: "http://localhost:82/blade-ycreal/water/childpage",
            getCzByGlCodeByGlQdj: "http://localhost:82/blade-ycreal/waterline/getCzByGlCodeByGlQdj",
            getHistoryList: "http://localhost:82/blade-ycreal/inundationResult/list",
            getHistoryList: "http://192.168.0.207:82/blade-ycreal/inundationResult/list",
            saveHistoryData: "http://localhost:82/blade-ycreal/inundationResult/save",
            getCoordinatesMinQdj: "http://localhost:82/blade-ycreal/water/getCoordinatesMinQdj",
        },
@@ -682,29 +683,58 @@
            var url = './corelib/common/popup/evaluateAnalysis.html'
            var top = ($(window).height() - 600) / 2;
            var left = ($(window).width() - 400 - 340) / 2 + 340;
            var top = ($(window).height() - 764) / 2;
            var left = ($(window).width() -465);
            layer.open({
                title: '评估分析',
                type: 2,
                maxmin: false, //开启最大化最小化按钮
                area: ['900px', '500px'],
                maxmin: true, //开启最大化最小化按钮
                area: ['465px', '818px'],
                skin: 'floodAnalysis',
                offset: [top,left],
                content: url + "?parentData=" + encodeURIComponent(JSON.stringify(parentData)),//使用encodeURIComponent转码,避免中文字符乱码,避免url截取错误
                id: "floodAnalysisLayer",
                closeBtn: 1,
                shade: 0,
                move:false,
                maxmin: true,
                //设置默认不在左下角
                minStack:false,
                min: function(layero,index){
                    setTimeout(function(){
                        layero.css({
                            // 'width':'206px',
                            'top': '83px',
                            'left':'inherit',
                            'right':'0px',
                        })
                    })
                    //显示最大化icon
                    $('.layui-layer-max').css("display","")
                },
                restore: function() {
                    //隐藏最大化icon
                    $('.layui-layer-max').css("display","none")
                },
                success:function (layero,index) {
                    //绑定父子之间的关系,用于数据传递,缺少则无法传递
                    var body = layer.getChildFrame("body", index);
                    //得到iframe页的窗口对象
                    var iframeWin = window[layero.find('iframe')[0]['name']];
                    self.evaluateLayerIndex = index
                    if (isAnalysis){
                        iframeWin.$('#save-btn').show()
                    }else {
                        iframeWin.$('#save-btn').hide()
                    }
                    if ($('.layui-layer-max').hasClass('layui-layer-maxmin')){
                        $('.layui-layer-max').css("display","")
                    }else {
                        $('.layui-layer-max').css("display","none")
                    }
                }
            });
        },
@@ -812,6 +842,13 @@
        // 洪水淹没效果
        drawWater(flag) {
            //关闭分析窗口
            if (this.evaluateLayerIndex){
                layer.close(this.evaluateLayerIndex)
                this.evaluateLayerIndex = ""
            }
            //地图定位
            // this.map.camera.flyTo({
            //     destination: Cesium.Cartesian3.fromDegrees(115.93791, 25.989108, 5000),
widgets/FloodAnalysis/css/style.css
@@ -364,15 +364,16 @@
/**分析窗口**/
.evaluate-analysis{
    width: 840px;
    width: 465px;
    height: 808px;
    position: fixed;
    top: 10%;
    right: 0%;
    background: white;
    height: 628px;
    margin: 15px;
    border-radius: 4px;
    border: 1px solid white;
    z-index: 100;
}
.evaluate-title{
@@ -385,6 +386,14 @@
    color: white;
}
.evaluate-back-icon{
    background-image: url("../images/fold_up.png");
    width: 35px;
    height: 100%;
    position: relative;
    left: 88%;
}
.evaluate-lable{
    width: 70px;
    position: absolute;
@@ -393,6 +402,7 @@
.evaluate-box-top{
    height: 30%;
    width: 450px;
}
.evaluate-box-middle{