赣州市洪水风险预警系统三维版本
guoshilong
2023-02-09 9f336d37371291446da270e7a20925f63956ae8c
洪水淹没数据接口对接
2 files modified
106 ■■■■■ changed files
widgets/FloodAnalysis/Widget.js 101 ●●●● patch | view | raw | blame | history
widgets/FloodAnalysis/css/style.css 5 ●●●●● patch | view | raw | blame | history
widgets/FloodAnalysis/Widget.js
@@ -24,6 +24,15 @@
        hdDataList: [],
        //洪水分析表格数据
        analysisTableList:[],
        currentHdId:"",
        currentSmxcode:"",
        //api接口
        url:{
            riverwaySelectName:"http://192.168.0.200:82/blade-ycreal/riverway/selectName?name=%E6%B0%B4",
            waterlineSelectName:"http://192.168.0.200:82/blade-ycreal/waterline/selectName",
            childpage:"http://192.168.0.200:82/blade-ycreal/water/childpage",
            getCzByGlCodeByGlQdj:"http://192.168.0.200:82/blade-ycreal/waterline/getCzByGlCodeByGlQdj"
        },
        startup: function startup() {
            var self = this
            this.bindHtmlElement()
@@ -53,6 +62,8 @@
                self.divFloodHistory.show()
            })
            // $('#hd-input').focus(function () {
            //     $("#hd-select").css({"display": ""});
            // })
@@ -61,21 +72,28 @@
            //     $("#hd-select").css({"display": "none"});
            // })
            //
            //
            // $('#hd-select').change(function () {
            //     console.log($('#hd-select').find("option:selected").text(), "----")
            //     $("#hd-input").val($('#hd-select').find("option:selected").text());
            //     $("#hd-select").css({"display": "none"});
            // })
            //
            this.hdSelect.change(function () {
                var selected = JSON.parse($(this).val())
                self.currentHdId = selected.id
                $('#sw-input').val("")
                self.getSmxData(selected.river_code,selected.default_smx)
            })
            this.smxSelect.change(function () {
                var selected =$(this).val()
                self.getPointData(selected)
            })
            $('#sw-input').keypress(function (event) {
                if (event.which == 13){
                    let sw = $('#sw-input').val()
@@ -213,9 +231,8 @@
        //获取河段下拉数据
        getHdData() {
            const self = this
            let url = "http://192.168.0.200:82/blade-ycreal/riverway/selectName?name=%E6%B0%B4"
            $.ajax({
                url: url,
                url: self.url.riverwaySelectName,
                type: 'post',
                dataType: 'json',
                jsonp: 'callback',
@@ -225,7 +242,6 @@
                    let data = res.data
                    self.hdSelect.find("option").remove();//添加新值 删除旧值
                    self.hdSelect.prepend("<option value=''>请选择</option>");//添加第一个option值
                    data.forEach(e => {
                        self.hdSelect.append("<option value='" + JSON.stringify(e) + "'>" + e.riverway + "</option>");
                    })
@@ -236,9 +252,8 @@
        //获取水面线数据
        getSmxData(hdid,defaultId) {
            const self = this
            let url = "http://192.168.0.200:82/blade-ycreal/waterline/selectName"
            $.ajax({
                url: url,
                url: self.url.waterlineSelectName,
                type: 'post',
                dataType: 'json',
                jsonp: 'callback',
@@ -265,10 +280,10 @@
        //获取点数据
        getPointData(smxcode){
            this.currentSmxcode = smxcode
            const self = this
            let url = "http://192.168.0.200:82/blade-ycreal/water/childpage"
            $.ajax({
                url: url,
                url: self.url.childpage,
                type: 'get',
                dataType: 'json',
                jsonp: 'callback',
@@ -281,13 +296,7 @@
                    if (res.code == 200){
                        let data = res.data.records
                        self.analysisTableList = data
                        data.forEach(e=>{
                            e.lng = Number(e.lng).toFixed(4)
                            e.lat = Number(e.lat).toFixed(4)
                            e.water = Number(e.water).toFixed(3)
                        })
                        self.loadPagination(data,"analysis-pagination")
                        self.getSub(self.currentHdId,self.currentSmxcode)
                    }
                }
            });
@@ -361,27 +370,59 @@
         * @param waterline 水面线高度
         * @param number 差值
         */
        calculateSw(waterline,number){
            let sw = this.floatAdd(Number(waterline) , Number(number))
        calculateSw(waterline,sub){
            let sw = this.floatAdd(Number(waterline) , Number(sub))
            return sw
        },
        //获取差值
        getSub(hdid,smxcode){
            const self = this
            console.log(hdid,smxcode)
            $.ajax({
                url: self.url.getCzByGlCodeByGlQdj,
                type: 'get',
                dataType: 'json',
                jsonp: 'callback',
                jsonpCallback: 'data',
                data: {
                    hdId:hdid,
                    smxcode:smxcode
                },
                success: function (res) {
                    if (res.code == 200){
                        let sub = res.data
                        self.analysisTableList.forEach(e=>{
                            e.lng = Number(e.lng).toFixed(4)
                            e.lat = Number(e.lat).toFixed(4)
                            e.sw = self.calculateSw(e.water,sub)
                            e.water = Number(e.water).toFixed(4)
                            e.sw = Number(e.sw).toFixed(4)
                        })
                        self.loadPagination(self.analysisTableList,"analysis-pagination")
                    }
                }
            });
        },
        //防止出现两个小数相加出现很多0的情况
        floatAdd(arg1, arg2) {
        var r1, r2, m;
        try {
            r1 = arg1.toString().split(".")[1].length;
        } catch (e) {
            r1 = 0;
            var r1, r2, m;
            try {
                r1 = arg1.toString().split(".")[1].length;
            } catch (e) {
                r1 = 0;
            }
            try {
                r2 = arg2.toString().split(".")[1].length;
            } catch (e) {
                r2 = 0;
            }
            m = Math.pow(10, Math.max(r1, r2));
            return (arg1 * m + arg2 * m) / m;
        }
        try {
            r2 = arg2.toString().split(".")[1].length;
        } catch (e) {
            r2 = 0;
        }
        m = Math.pow(10, Math.max(r1, r2));
        return (arg1 * m + arg2 * m) / m;
    }
    });
widgets/FloodAnalysis/css/style.css
@@ -126,7 +126,7 @@
/**模糊查询**/
/*!**模糊查询**!*/
/*.hd {*/
/*    position: relative;*/
/*}*/
@@ -145,10 +145,9 @@
/*.hd select {*/
/*    position: absolute;*/
/*    left: 0;*/
/*    left: 66px;*/
/*    width: 167px;*/
/*    height: 106px !important;*/
/*    margin-left: 86px;*/
/*    outline: none;*/
/*    border: 1px solid #999;*/
/*    margin-top: 31px;*/