Forráskód Böngészése

样式优化,添加显示控制

李顺 2 éve
szülő
commit
f6becb0743
34 módosított fájl, 998 hozzáadás és 56 törlés
  1. 22 22
      src/configure.ts
  2. 1 1
      src/widgets/BaseImageOpacity/Widget.html
  3. 4 3
      src/widgets/BaseImageOpacity/css/style.scss
  4. 2 2
      src/widgets/DisplayControlList/Widget.html
  5. 2 2
      src/widgets/DisplayControlList/Widget.ts
  6. 1 1
      src/widgets/LayerUpOrDown/Widget.html
  7. 1 1
      src/widgets/LayerUpOrDown/Widget.ts
  8. 10 2
      src/widgets/LayerUpOrDown/config.json
  9. 4 3
      src/widgets/LayerUpOrDown/css/style.scss
  10. 1 1
      src/widgets/Panel/css/style.scss
  11. 1 1
      src/widgets/PbsTreeManagement/Widget.ts
  12. 8 3
      src/widgets/PbsTreeManagement/css/style.scss
  13. 58 0
      src/widgets/PipeDirectionSwitch/Widget(备份).ts
  14. 8 0
      src/widgets/PipeDirectionSwitch/Widget.html
  15. 85 0
      src/widgets/PipeDirectionSwitch/Widget.ts
  16. 84 0
      src/widgets/PipeDirectionSwitch/config.json
  17. 21 0
      src/widgets/PipeDirectionSwitch/css/style.scss
  18. 235 0
      src/widgets/PipeUnitInfo/Security.ts
  19. 2 2
      src/widgets/PipeUnitInfo/UnitQuality.ts
  20. 41 0
      src/widgets/PipeUnitInfo/Widget.html
  21. 6 0
      src/widgets/PipeUnitInfo/Widget.ts
  22. 34 0
      src/widgets/PipeUnitInfo/config.json
  23. 12 9
      src/widgets/PipeUnitInfo/css/style.scss
  24. 27 0
      src/widgets/PumpMonitor/Widget.html
  25. 83 0
      src/widgets/PumpMonitor/Widget.ts
  26. 189 0
      src/widgets/PumpMonitor/config.json
  27. 53 0
      src/widgets/PumpMonitor/css/style.scss
  28. BIN
      src/widgets/PumpMonitor/images/hei32.gif
  29. BIN
      src/widgets/PumpMonitor/images/hong32.gif
  30. BIN
      src/widgets/PumpMonitor/images/hong32.png
  31. BIN
      src/widgets/PumpMonitor/images/lan32.gif
  32. BIN
      src/widgets/PumpMonitor/images/lan32.png
  33. 2 2
      src/widgets/TopSectionUI/Widget.html
  34. 1 1
      src/widgets/TopSectionUI/css/style.scss

+ 22 - 22
src/configure.ts

@@ -404,28 +404,28 @@ var AppX = {
                 "depend": "BaseWidget",
                 "optional": false
             },
-            // {
-            //     "subsys": "sys",
-            //     "name": "BaseImageOpacity",
-            //     "discription": "地表透明度",
-            //     "url": "widgets/BaseImageOpacity",
-            //     "main": "Widget",
-            //     "configPath": "",
-            //     "templatePath": "",
-            //     "depend": "BaseWidget",
-            //     "optional": false
-            // },
-            // {
-            //     "subsys": "sys",
-            //     "name": "LayerUpOrDown",
-            //     "discription": "管线抬升",
-            //     "url": "widgets/LayerUpOrDown",
-            //     "main": "Widget",
-            //     "configPath": "",
-            //     "templatePath": "",
-            //     "depend": "BaseWidget",
-            //     "optional": false
-            // },
+            {
+                "subsys": "sys",
+                "name": "BaseImageOpacity",
+                "discription": "地表透明度",
+                "url": "widgets/BaseImageOpacity",
+                "main": "Widget",
+                "configPath": "",
+                "templatePath": "",
+                "depend": "BaseWidget",
+                "optional": false
+            },
+            {
+                "subsys": "sys",
+                "name": "LayerUpOrDown",
+                "discription": "管线抬升",
+                "url": "widgets/LayerUpOrDown",
+                "main": "Widget",
+                "configPath": "",
+                "templatePath": "",
+                "depend": "BaseWidget",
+                "optional": false
+            },
             {
                 "subsys": "sys",
                 "name": "MapScale",

+ 1 - 1
src/widgets/BaseImageOpacity/Widget.html

@@ -9,7 +9,7 @@
         </div>
         <input type="number" id="baseimageopacity" min="0" step="10" max="100"  class="layerUpNumber form-control" value="0"/>
         <div class="input-group-append">
-          <span class="input-group-text" style="color:#006ED4;">%</span>
+          <span class="input-group-text" style="color:#fefefe;">%</span>
         </div>
       </div>
 </div>

+ 4 - 3
src/widgets/BaseImageOpacity/css/style.scss

@@ -20,17 +20,18 @@
         box-shadow: 0px 1px 8px 0px rgba(0, 0, 0, 0.4);
         .input-group-text{
             font-size:0.875rem;
-            color:#666666;
+            color:#fefefe;
             padding:0.275rem 0.45rem;
-            background-color: #fff;
+            background-color:rgba(19, 69, 107, 0.62);
             border: none;
             font-family: Source Han Sans CN;
         }
         input{
             padding: 0 !important;
             box-shadow: unset;
-            color:#006ED4;
+            color:#fefefe;
             border: none;
+            background-color:rgba(19, 69, 107, 0.62);
         }
     }
     .inline{

+ 2 - 2
src/widgets/DisplayControlList/Widget.html

@@ -19,7 +19,7 @@
         </svg>
     </div> -->
     <div class="toolitembody">
-      <div class="form-group divid">
+      <!-- <div class="form-group divid">
         编码显示
       </div>
       <div class="form-group row item">
@@ -48,7 +48,7 @@
       <div class="form-group row item">
         <label class="col-8" for="">视频</label>
         <input type="checkbox" id="videoSwitch" data-type='video' class="col-4 jtoggler pump-jtoggler">
-      </div>
+      </div> -->
       <!-- <div class="form-group row item">
         <label class="col-8" for="">水质监测</label>
         <input type="checkbox" id="waterDeviceSwitch" data-type='waterquality' class="col-4 jtoggler pump-jtoggler">

+ 2 - 2
src/widgets/DisplayControlList/Widget.ts

@@ -74,8 +74,8 @@ class DisplayControlList extends BaseWidget {
         this.viewer.dataSources.add(this._customDataSource);
         this._ajaxSend = new AjaxSend();
         // this.changeEntitySize();
-        this.domObj.find("#gqtj").prop("checked", true);
-        this.scanRegionStatistics();
+        //this.domObj.find("#gqtj").prop("checked", true);
+        //this.scanRegionStatistics();
         //点击高亮对象
         const handler = new Cesium.ScreenSpaceEventHandler(this.viewer.canvas);
         var that=this;

+ 1 - 1
src/widgets/LayerUpOrDown/Widget.html

@@ -14,7 +14,7 @@
     </div>
     <input type="number" id="layerUpNumber" step="1"  class="layerUpNumber form-control" value="0"/>
     <div class="input-group-append dateTool">
-      <span class="input-group-text" style="color:#006ED4"></span>
+      <span class="input-group-text"></span>
     </div>
   </div>
 </div>

+ 1 - 1
src/widgets/LayerUpOrDown/Widget.ts

@@ -30,7 +30,7 @@ class LayerUpOrDown extends BaseWidget {
         this.domObj.find("#layerUpNumber").bind('input propertychange', e => {
             let dom = $(e.currentTarget);
             let height = parseFloat(dom.val().toString());
-            if (!this.verificationHelper.isNumber(height, this.toast)) {
+            if (isNaN(height)) {
                 return;
             }
             this.AppX.appConfig.upDepth=height;

+ 10 - 2
src/widgets/LayerUpOrDown/config.json

@@ -10,6 +10,14 @@
         "key":"geometry",
         "value":"lxfxfw"
     }],
-    "layerList":["NETWORK_SJ_PSWS@sxgk#1","NETWORK_SJ_PSYS@sxgk#1"
-        ,"NETWORK_SJ_PSWS_Node@sxgk#1","NETWORK_SJ_PSYS_Node@sxgk#1","TF_SJ_PSYS_JG_B_3D@sxgk#1","TF_SJ_PSYS_JG_B_3D@sxgk#2","TF_SJ_PSWS_JG_B_3D@sxgk#2","TF_SJ_PSWS_JG_B_3D@sxgk#1"]
+    "layerList":[
+        "NETWORK_SJ_PSWS@sxgk#1",
+        "NETWORK_SJ_PSYS@sxgk#1",
+        "NETWORK_SJ_PSWS_Node@sxgk#1",
+        "NETWORK_SJ_PSYS_Node@sxgk#1",
+        "TF_SJ_PSYS_JG_B_3D@sxgk#1",
+        "TF_SJ_PSYS_JG_B_3D@sxgk#2",
+        "TF_SJ_PSWS_JG_B_3D@sxgk#2",
+        "TF_SJ_PSWS_JG_B_3D@sxgk#1"
+    ]
 }

+ 4 - 3
src/widgets/LayerUpOrDown/css/style.scss

@@ -18,17 +18,18 @@
         height:36px;
         .input-group-text{
             font-size:0.875rem;
-            color:#666666;
+            color:#fefefe;
             padding:0.275rem 0.45rem;
-            background-color: #fff;
+            background-color: rgba(19, 69, 107, 0.62);
             border: none;
             font-family: Source Han Sans CN;
         }
         input{
             padding: 0 !important;
             box-shadow: unset;
-            color:#006ED4;
+            color:#fefefe;
             border: none;
+            background-color: rgba(19, 69, 107, 0.62);
         }
     }
 

+ 1 - 1
src/widgets/Panel/css/style.scss

@@ -95,7 +95,7 @@
         border-top: none;
         background: rgba(19, 69, 107, 0.62);
         overflow-y: auto;
-        color: #333333;
+        color: #fefefe;
         .form-group {
             margin-bottom: 5px;
         }

+ 1 - 1
src/widgets/PbsTreeManagement/Widget.ts

@@ -205,7 +205,7 @@ class PbsTreeManagement extends BaseWidget {
                 showIcon: false,
                 fontCss: (treeId, treeNode) => {
                     if (treeNode.pressureType === "1") {
-                        return { color: "#000000" };//待建
+                        return { color: "#fefefe" };//待建
                     } else if (treeNode.pressureType === "2") {
                         return { color: "#0076FF" };//建设中
                     } else if (treeNode.pressureType === "3") {

+ 8 - 3
src/widgets/PbsTreeManagement/css/style.scss

@@ -67,7 +67,7 @@
         line-height: 40px;
         margin-right: 2px;
         font-size: 1rem;
-        color:#fefefe;
+        color:inherit;
     }
     .ztree li span.button.root_open {
         background-position: -105px -63px;
@@ -81,7 +81,12 @@
         width: 21px;
         height: 25px;
     }
-
+    .ztree li a{
+        color:#fefefe;
+    }
+    a:not([href]):not([tabindex]){
+        color: #fefefe;
+    }
     .ztree li a.curSelectedNode {
         padding-top: 0px;
         background-color: #e5e5e5;
@@ -93,7 +98,7 @@
     .ztree li a:hover {
         padding-top: 0px;
         background-color: transparent;       
-        color: black;
+        color: #fefefe;
         height: 40px;
         opacity: 0.8;
     }

+ 58 - 0
src/widgets/PipeDirectionSwitch/Widget(备份).ts

@@ -0,0 +1,58 @@
+import BaseWidget = require('core/BaseWidget.class');
+declare var InfoWindow;
+declare var videojs;
+/**
+ * 视频监控模块
+ */
+class PipeDirectionSwitch extends BaseWidget {
+    baseClass = "widget-PipeDirectionSwitch";
+    viewer=this.AppX.runtimeConfig.activeView;
+    handler=null;
+    pipeFlowSwitchID="pipeFlowSwitch";
+    /**
+     * 启动
+     */
+    startup() {
+        this.setHtml(this.template.split("$$")[0]);
+        this.loadPipeFlowCheck()
+    }  
+
+    /**
+     * 加载功能按钮
+     */
+    loadPipeFlowCheck(){
+        this.domObj.find('#'+this.pipeFlowSwitchID).jtoggler();
+        $(document).on('jt:toggled', function(event, target) { 
+            let isCheck=$(target).prop('checked');
+            let type=$(target).data("type");
+            if(type=='pipeflow'){
+               this.psPipeDirectionFlow(isCheck);
+            }
+        }.bind(this));
+    }
+    /**
+     * 该方法用于开关管网流向动画
+     * @param open 开/关
+     */
+    psPipeDirectionFlow(open:boolean){
+        const psName="PipeNetWork@sxgk#1";
+        const lxName="排水流向管网";
+        const lxUrl=this.AppX.appConfig.gisResource.geometry.config["lxfxfw"].url;
+        const pslayer=this.viewer.scene.layers.find(psName);
+        if(open){
+            if(pslayer) pslayer.visible=false;
+            const promise=this.viewer.scene.addS3MTilesLayerByScp(lxUrl,{name:lxName});
+            promise.then((layer:Cesium.S3MTilesLayer)=>{
+                layer.textureUVSpeed=new Cesium.Cartesian2(-1,0);
+            })
+        }else{
+            //const lxlayer=this.viewer.scene.layers.find(lxName);
+            this.viewer.scene.layers.remove(lxName, true); 
+            pslayer.visible=true;
+        }
+    }
+    destroy(){
+        this.afterDestroy();
+    }
+}
+export = PipeDirectionSwitch;

+ 8 - 0
src/widgets/PipeDirectionSwitch/Widget.html

@@ -0,0 +1,8 @@
+<div class="widget-PipeDirectionSwitch">
+  <div class="form-inline">
+    <div class="form-group">
+        <label for="">管道流向:</label>
+        <input type="checkbox" id="pipeFlowSwitch" data-type='pipeflow' class="jtoggler pump-jtoggler">
+    </div>
+  </div>  
+</div>

+ 85 - 0
src/widgets/PipeDirectionSwitch/Widget.ts

@@ -0,0 +1,85 @@
+import BaseWidget = require('core/BaseWidget.class');
+declare var InfoWindow;
+declare var videojs;
+/**
+ * 视频监控模块
+ */
+class PipeDirectionSwitch extends BaseWidget {
+    baseClass = "widget-PipeDirectionSwitch";
+    viewer:Cesium.Viewer = this.AppX.runtimeConfig.activeView;
+    handler = null;
+    pipeFlowSwitchID = "pipeFlowSwitch";
+    /**
+     * 启动
+     */
+    startup() {
+        //this.setHtml(this.template.split("$$")[0]);
+        //this.loadPipeFlowCheck()
+    }
+
+    /**
+     * 加载功能按钮
+     */
+    loadPipeFlowCheck() {
+        this.domObj.find('#' + this.pipeFlowSwitchID).jtoggler();
+        $(document).on('jt:toggled', function (event, target) {
+            let isCheck = $(target).prop('checked');
+            let type = $(target).data("type");
+            if (type == 'pipeflow') {
+                this.psPipeDirectionFlow(isCheck);
+            }
+        }.bind(this));
+    }
+    /**
+     * 该方法用于开关管网流向动画
+     * @param open 开/关
+     */
+    psPipeDirectionFlow(open: boolean) {
+        const layers=this.viewer.scene.layers;
+        if (open) {
+            //打开流向
+            this.config.layer_lx.forEach(item => {
+                if(layers.find(item.layerName)){
+                    this.viewer.scene.layers.remove(item.layerName, true);
+                    let lxUrl = this.AppX.appConfig.gisResource[item.key].config[item.value].url;
+                    //lxUrl场景地址;sceneName场景名称;layerName场景中图层的名称
+                    const promise = this.viewer.scene.addLayerService(lxUrl, item.sceneName, item.layerName);
+                    promise.then(layer => {
+                        this.setStyle3D(layer);
+                        layer.textureUVSpeed = new Cesium.Cartesian2(-1.0, 0);
+                    })
+                }
+                
+            })
+        } else {
+            //打开管网
+            this.config.layer.forEach(item => {
+                if(layers.find(item.layerName)){
+                    this.viewer.scene.layers.remove(item.layerName, true);
+                    let lxUrl = this.AppX.appConfig.gisResource[item.key].config[item.value].url;
+                    //lxUrl场景地址;sceneName场景名称;layerName场景中图层的名称
+                    const promise = this.viewer.scene.addLayerService(lxUrl, item.sceneName, item.layerName);
+                    promise.then(layer => {
+                        this.setStyle3D(layer);
+                    })
+                }
+            })
+        }
+    }
+    /**
+     * 该方法用于设置管线抬升高度
+     * @param layer 
+     */
+    setStyle3D(layer) {
+        const upDepth = this.AppX.appConfig.upDepth;
+        let style3d = new Cesium.Style3D();
+        style3d.altitudeMode = 0;
+        style3d.bottomAltitude = upDepth;
+        layer.style3D = style3d;
+        layer.maxVisibleAltitude = this.config.pipeMaxVisibel;
+    }
+    destroy() {
+        this.afterDestroy();
+    }
+}
+export = PipeDirectionSwitch;

+ 84 - 0
src/widgets/PipeDirectionSwitch/config.json

@@ -0,0 +1,84 @@
+{
+    "pipeMaxVisibel":500,
+    "layer_lx": [
+        {
+            "layerName": "NETWORK_SJ_PSWS_Node@sxgk#1",
+            "sceneName": "hnyy_sj_lx",
+            "key": "geometry",
+            "value": "lxfxfw"
+        },
+        {
+            "layerName": "NETWORK_SJ_PSWS@sxgk#1",
+            "sceneName": "hnyy_sj_lx",
+            "key": "geometry",
+            "value": "lxfxfw"
+        },
+        {
+            "layerName": "NETWORK_SJ_PSYS_Node@sxgk#1",
+            "sceneName": "hnyy_sj_lx",
+            "key": "geometry",
+            "value": "lxfxfw"
+        },
+        {
+            "layerName": "NETWORK_SJ_PSYS@sxgk#1",
+            "sceneName": "hnyy_sj_lx",
+            "key": "geometry",
+            "value": "lxfxfw"
+        },
+        {
+            "layerName": "NETWORK_SJ_PSHS_Node@sxgk#1",
+            "sceneName": "hnyy_sj_lx",
+            "key": "geometry",
+            "value": "lxfxfw"
+        },
+        {
+            "layerName": "NETWORK_SJ_PSHS@sxgk#1",
+            "sceneName": "hnyy_sj_lx",
+            "key": "geometry",
+            "value": "lxfxfw"
+        }
+    ],
+    "layer": [
+        {
+            "layerName": "NETWORK_SJ_PSHS_Node@sxgk#1",
+            "sceneName": "hnyy_sj",
+            "key": "scenes",
+            "value": "yyxj01"
+        },
+        {
+            "layerName": "NETWORK_SJ_PSHS@sxgk#1",
+            "sceneName": "hnyy_sj",
+            "key": "scenes",
+            "value": "yyxj01"
+        },
+        {
+            "layerName": "NETWORK_SJ_PSWS_Node@sxgk#1",
+            "sceneName": "hnyy_sj",
+            "key": "scenes",
+            "value": "yyxj01"
+        },
+        {
+            "layerName": "NETWORK_SJ_PSWS@sxgk#1",
+            "sceneName": "hnyy_sj",
+            "key": "scenes",
+            "value": "yyxj01"
+        },
+        {
+            "layerName": "NETWORK_SJ_PSYS_Node@sxgk#1",
+            "sceneName": "hnyy_sj",
+            "key": "scenes",
+            "value": "yyxj01"
+        },
+        {
+            "layerName": "NETWORK_SJ_PSYS@sxgk#1",
+            "sceneName": "hnyy_sj",
+            "key": "scenes",
+            "value": "yyxj01"
+        }
+    ]
+}
+
+
+
+
+

+ 21 - 0
src/widgets/PipeDirectionSwitch/css/style.scss

@@ -0,0 +1,21 @@
+.widget-PipeDirectionSwitch {
+    font-size: 12px;
+    position: absolute;
+    bottom: -13px;
+    font-family: Arial;
+    padding-left: 4px;
+    padding-right: 5px;
+    color: white;
+    z-index: 100;
+    height: 46px;
+    //width: 100%;
+    left: 550px;
+       /**---------开关按钮----------*/
+.jtoggler-control{
+    width:50px;
+    height:18px;
+}
+.jtoggler:checked + .jtoggler-control .jtoggler-handle{
+    left:32px;
+}
+}

+ 235 - 0
src/widgets/PipeUnitInfo/Security.ts

@@ -0,0 +1,235 @@
+/**
+ * 安全信息的显示
+ * 
+*/
+export = Security
+class Security {
+    global = null;
+    domObj = null;
+    apiUrls = null;
+    apiRoot = null;
+    userToken = null;
+    verificationHelper = null;
+    sendAjax = null;
+    header = null;
+    config = null;
+    toast = null;
+    AppX = null;
+    scanSets = [];
+
+    _currentUnit = null;
+    unitDesignPaperID = "security";
+    constructor(global) {
+        this.global = global;
+        this.apiUrls = this.global.apiUrls;
+        this.apiRoot = this.global.apiRoot;
+        this.userToken = this.global.userToken;
+        this.sendAjax = this.global.sendAjax;
+        this.config = this.global.config;
+        this.verificationHelper = this.global.verificationHelper;
+        this.AppX = this.global.AppX;
+        this.toast = this.global.toast;
+        this.header = this.global.header;
+        this._currentUnit = this.global._currentUnit;
+    }
+    /**
+     * 展示安全信息
+     * @param result
+     */
+     showhPages(result) {
+        this.domObj = this.global.domObj.find('#' + this.unitDesignPaperID);
+        let html = this.global.template.split('$$')[7];
+        this.domObj.empty().append(html);
+        this.showMissionPage(null);
+        this.showDangerPage(null);
+        this.showHiddenDangerPage(null);
+    }
+    /**
+     * 展示概述页面
+     * @param result 请求的获取的所有数据
+     * @param info 展示的属性的数据
+     */
+     showMissionPage(designInfos) {
+        let Dhtml="";
+        let index=0;
+        designInfos=this.config.security.mission;
+        designInfos.forEach(item => {
+            if (item.value === null) item.value = "暂无";
+            let titleStr = this.verificationHelper.setNullAndUndefined(item.title);
+            let valueStr = this.verificationHelper.setNullAndUndefined(item.value);
+            let title = "<span class='title' title='" + titleStr + "'>" + titleStr + ":" + "</span>";
+            let value = "<input class='value' title='" + valueStr + "' value='"+valueStr+"' readonly='readonly' />";
+            Dhtml += ("<div class='item'>" + title + value + " </div>");
+            index++;
+        });
+        this.domObj.find('.sgInfoList').empty().append(Dhtml);
+        this.domObj.find('.sgInfoList').removeClass('dataHidden');
+        // this.domObj.find('.noht').addClass('dataHidden');
+    }
+    /**
+     * 危险源
+     * @param infos 
+     */
+    showDangerPage(infos){
+        let Dhtml="";
+        let index=0;
+        infos=this.config.security.danger;
+        infos.forEach(item => {
+            if (item.value === null) item.value = "暂无";
+            let titleStr = this.verificationHelper.setNullAndUndefined(item.title);
+            let valueStr = this.verificationHelper.setNullAndUndefined(item.value);
+            let title = "<span class='title' title='" + titleStr + "'>" + titleStr + ":" + "</span>";
+            let value = "<input class='value' title='" + valueStr + "' value='"+valueStr+"' readonly='readonly' />";
+            Dhtml += ("<div class='item'>" + title + value + " </div>");
+            index++;
+        });
+        this.domObj.find('.wxyInfoList').empty().append(Dhtml);
+        this.domObj.find('.wxyInfoList').removeClass('dataHidden');
+    }
+    /**
+     * 安全隐患
+     * @param infos 
+     */
+    showHiddenDangerPage(infos){
+        let Dhtml="";
+        let index=0;
+        infos=this.config.security.hiddendanger;
+        infos.forEach(item => {
+            if (item.value === null) item.value = "暂无";
+            let titleStr = this.verificationHelper.setNullAndUndefined(item.title);
+            let valueStr = this.verificationHelper.setNullAndUndefined(item.value);
+            let title = "<span class='title' title='" + titleStr + "'>" + titleStr + ":" + "</span>";
+            let value = "<input class='value' title='" + valueStr + "' value='"+valueStr+"' readonly='readonly' />";
+            Dhtml += ("<div class='item'>" + title + value + " </div>");
+            index++;
+            if(index==10&&index!=infos.length){
+                Dhtml+=("<div class='line'></div>");
+                index=0;
+            }
+        });
+        this.domObj.find('.aqInfoList').empty().append(Dhtml);
+        this.domObj.find('.aqInfoList').removeClass('dataHidden');
+    }
+
+
+    /**
+     * 获取合同信息
+     * @param result 请求的获取的所有数据
+    */
+    gethtInfo(result) {
+        this.sendAjax({ pbs: this._currentUnit.code }, this._currentUnit.geoType === "LINE" ? this.apiUrls.pipeContract : this.apiUrls.pointContract, "GET", resp => {
+            const arr = resp.result;
+            if (arr && arr.length > 0) {
+                const projectInfo = arr.map(item => {
+                    return {
+                        title: item.levelname,
+                        value: item.name,
+                        code: item.code
+                    }
+                });
+
+                let prjStr = "";
+                projectInfo.forEach(item => {
+                    prjStr += `
+                        <div class="info-row">
+                            <span class="info-title">${item.title}:</span>
+                            <input class="info-content" title="${item.value}"  value='${item.value}' readonly='readonly' />
+                            <input class="info-code" title="${item.code}" value='${item.code}' />
+                        </div>
+                    `
+                });
+                //获取部件编码
+                let partscode = result.filter(item => {
+                    return item.compare == "pipeid";
+                })
+                partscode = partscode[0].value;
+                if(!partscode){
+                    partscode="/"
+                }
+                prjStr += `
+                <div class="info-row">
+                    <span class="info-title">部件编码:</span>
+                    <input class="info-content" title="${partscode}"  value='${partscode}' />
+                    <input class="info-code" title="${this._currentUnit.code}" value='${this._currentUnit.code}' />
+                </div>
+            `
+                let unit = [
+                    { title: "权属单位:", compare: "ownerunit", value: undefined },
+                    { title: "设计单位:", compare: "designunit", value: undefined },
+                    { title: "施工单位:", compare: "buildunit", value: undefined },
+                    { title: "监理单位:", compare: "supervisionunit", value: undefined }
+                ];
+                for (let item of result) {
+                    for (let un of unit) {
+                        if (item.compare === un.compare) {
+                            un.value = item.value
+                        }
+                    }
+                }
+                let unitStr = "";
+                unit.forEach(item => {
+                    unitStr += `
+                        <div class="info-row">
+                            <span class="info-title">${item.title}</span>
+                            <input  class="info-content inputContent" value='${item.value}' />
+                        </div>
+                    `
+                })
+                let contract = [
+                    { title: "设计合同:", compare: "designcontract", value: undefined, code: undefined },
+                    { title: "施工合同:", compare: "contract", value: undefined, code: undefined }
+                ]
+                for (let item of result) {
+                    for (let un of contract) {
+                        if (item.compare === un.compare) {
+                            un.value = item.value;
+                        }
+                        if (item.compare === "designcontractcode" && un.compare === "designcontract") un.code = item.value;
+                        if (item.compare === "contractcode" && un.compare === "contract") un.code = item.value;
+                    }
+                }
+                let contractStr = "";
+                contract.forEach(item => {
+                    contractStr += `
+                        <div class="info-row">
+                            <span class="info-title">${item.title}</span>
+                            <input class="info-content inputContent" title="${item.value}" value='${item.value}' />
+                        </div>
+                    `
+                })
+                const lastStr = `
+                    ${prjStr}${unitStr}${contractStr}
+                `
+                this.domObj.find('.htInfoList').empty().append(lastStr);
+                this.domObj.find('.htInfoList').removeClass('dataHidden');
+                this.domObj.find('.noht').addClass('dataHidden');
+            } else {
+                this.domObj.find('.noht').removeClass('dataHidden');
+                this.domObj.find('.htInfoList').addClass('dataHidden');
+            }
+        }, 1)
+    }
+
+    /**
+     * 获取材料信息
+    */
+    getclInfo() {
+        this.sendAjax({ pbs: this._currentUnit.code }, this.apiUrls.materialInfo, "GET", resp => {
+            if (resp.result) {
+                let dataFiled = resp.result;
+                let html = "";
+                for (let key in this.config.clInfo) {
+                    let title = this.config.clInfo[key];
+                    let value = this.verificationHelper.setNullAndUndefined(dataFiled[key]);
+                    html += ("<div class='clItem'><span class='clspan' title='" + title + "'>" + title + ":</span><input type='text'  class='clInput' value='" + value + "' /></div>")
+                }
+                this.domObj.find('.clInfoList').empty().append(html);
+                this.domObj.find('.clInfoList').removeClass('dataHidden');
+                this.domObj.find('.nocl').addClass('dataHidden');
+            } else {
+                this.domObj.find('.nocl').removeClass('dataHidden');
+                this.domObj.find('.clInfoList').addClass('dataHidden');
+            }
+        }, 1)
+    }
+}

+ 2 - 2
src/widgets/PipeUnitInfo/UnitQuality.ts

@@ -124,10 +124,10 @@ class UnitQuality {
                     let createUnit;
                     switch(item.curState){
                         case 0:curState="未开始";
-                                stateStyle='color:black';
+                                stateStyle='color:#fefefe';
                                 break;
                         case 1:curState="施工中";
-                                stateStyle='color:black';
+                                stateStyle='color:fefefe';
                                 break;
                         case 2:curState="已完成";
                                 stateStyle='color:#08CA5F';

+ 41 - 0
src/widgets/PipeUnitInfo/Widget.html

@@ -25,6 +25,10 @@
                     <a class="nav-link" href="#unitDocuments" data-toggle='tab' role="tab"
                         aria-controls="unitDocuments">图纸档案</a>
                 </li>
+                <li class="nav-item" role="presentation">
+                    <a class="nav-link" href="#security" data-toggle='tab' role="tab"
+                        aria-controls="security">安全</a>
+                </li>
             </ul>
             <div class="tab-content">
                 <!-- 信息概览 -->
@@ -54,6 +58,9 @@
                 <!-- 质量信息 -->
                 <div id="unitMass" role="tabpanel" class="tab-pane fade">
                 </div>
+                <!-- 安全 -->
+                <div id="security" role="tabpanel" class="tab-pane fade">
+                </div>
             </div>
         </div>
     </div>
@@ -237,4 +244,38 @@ $$
             </table>
         </div>
     </div>
+</div>
+$$
+<!--安全-->
+<div class='baseInfo securityclass'>
+    <div class='htInfo'>
+        <div class='remake'>
+            <div class='remakeColor'></div>
+            <div class='remakeTitle titleValue'>施工任务</div>
+        </div>
+        <!-- <div class='noht'><span>暂无施工任务信息</span></div> -->
+        <div class='sgInfoList dataHidden'>
+
+        </div>
+    </div>
+    <div class='clInfo'>
+        <div class='remake'>
+            <div class='remakeColor'></div>
+            <div class='remakeTitle'>危险源</div>
+        </div>
+        <!-- <div class='nocl'><span>暂危险源信息</span></div> -->
+        <div class='wxyInfoList dataHidden'>
+
+        </div>
+    </div>
+    <div class='clInfo'>
+        <div class='remake'>
+            <div class='remakeColor'></div>
+            <div class='remakeTitle'>安全隐患</div>
+        </div>
+        <!-- <div class='nocl'><span>暂安全隐患信息</span></div> -->
+        <div class='aqInfoList dataHidden'>
+
+        </div>
+    </div>
 </div>

+ 6 - 0
src/widgets/PipeUnitInfo/Widget.ts

@@ -7,6 +7,7 @@ import SmInfo = require('./SmInfo');
 import UnitQuality = require('./UnitQuality');
 import UnitDesignPaper = require('./UnitDesignPaper');
 import UnitDocuments = require('./UnitDocuments');
+import Security = require('./Security');
 interface IUnitInfo {
     baseInfo: any[],
     qrRecords: any[],
@@ -66,6 +67,7 @@ class PipeUnitInfo extends BaseWidget {
     _polylineprimitiveCollection: Cesium.PrimitiveCollection = null;
     unitDesignPaperObj = null;
     unitDocumentsObj = null;
+    securityObj=null;
     viewer: Cesium.Viewer;
     toolTip = null;
     verificationHelper = new VerificationHelper();
@@ -129,6 +131,7 @@ class PipeUnitInfo extends BaseWidget {
         this.unitQualityObj = new UnitQuality(this);
         this.unitDesignPaperObj = new UnitDesignPaper(this);
         this.unitDocumentsObj = new UnitDocuments(this);
+        this.securityObj=new Security(this);
         this.getDirc(() => {
             this.apiUrls.sjfw = this.AppX.appConfig.gisResource.tiplayers.config["sjfw"].url;
             this.apiUrls.bjsmidfw = this.AppX.appConfig.gisResource.tiplayers.config["bjsmidfw"].url;
@@ -1423,6 +1426,7 @@ class PipeUnitInfo extends BaseWidget {
                 this.domObj.find("#" + this.unitQualityID).empty().append("<table class='table'>" + sjhtml + "</table>");
             }
         }, 1)
+        debugger;
         const unitInfo = this._currentUnit;
         // 质量信息初始化
         if (unitInfo.code) {
@@ -1434,6 +1438,8 @@ class PipeUnitInfo extends BaseWidget {
         }
         //档案信息资料
         this.unitDocumentsObj.showDAPage();
+        //安全
+        this.securityObj.showhPages();
         const documentsContainerBody = this.domObj.find('#unitArchival tbody');
         $(documentsContainerBody).empty();
         this.sendAjax(this.selectTarget, this.apiUrls.filesList, "GET", res => {

+ 34 - 0
src/widgets/PipeUnitInfo/config.json

@@ -994,6 +994,40 @@
             "field": "comments"
         }
     ],
+    "security":{
+        "mission":[
+            {"code":"create_date","title":"作业时间","value":"2022/6/20 10:31:36"},
+            {"code":"job_area","title":"作业部位","value":"白羊冲片区"},
+            {"code":"work_remork","title":"作业内容","value":"下雨暂未施工"},
+            {"code":"addr_name","title":"作业地点","value":"湖北省宜昌市伍家岗区伍家乡武铁襄阳房建生活段宜昌单身公寓"},
+            {"code":"project_name","title":"施工单位名称","value":"中国铁建大桥工程局集团有限公司"},
+            {"code":"people_num","title":"作业人员数量","value":"2"},
+            {"code":"xmaqy","title":"现场安全员","value":"王武(大桥局)"},
+            {"code":"jldwry","title":"监理工程师","value":"陆亮(二标段)"},
+            {"code":"is_hight_danger","title":"是否高风险","value":"否"},
+            {"code":"hight_danger_type","title":"高风险类型","value":"无"}
+        ],
+        "danger":[
+            {"code":"source_level","title":"危险源等级","value":"四级"},
+            {"code":"Hazards","title":"危险源类型","value":"淹溺"},
+            {"code":"AccidentType","title":"导致的事故类型","value":"淹溺"},
+            {"code":"ControlMeasure","title":"管控措施","value":"增加安全巡查"},
+            {"code":"Xmaqy","title":"管控人","value":"王武(大桥局)"},
+            {"code":"Xcjlgcs","title":"验收人","value":"陆亮(二标段)"}
+        ],
+        "hiddendanger":[
+            {"code":"create_date","title":"隐患时间","value":"2022/6/19 10:02:30"},
+            {"code":"check_person","title":"上报人","value":"李亮"},
+            {"code":"hd_level","title":"隐患等级","value":"轻微隐患"},
+            {"code":"status","title":"隐患状态","value":"已闭合"},
+            {"code":"resolve_area","title":"隐患部位","value":""},
+            {"code":"description","title":"隐患描述","value":"未佩戴安全帽"},
+            {"code":"measure","title":"整改要求","value":"在现场做好安全防护措施,戴好安全帽"},
+            {"code":"resolve_end_time","title":"整改期限","value":"2022/6/22 0:00:00"},
+            {"code":"resolve_area_duty_person","title":"整改责任人","value":"廖雄庆"},
+            {"code":"dept_name","title":"整改责任单位","value":"中国铁建大桥工程局集团有限公司"}
+        ]
+    },
     "pipe":[
         {
             "title": "雨污合流管线",

+ 12 - 9
src/widgets/PipeUnitInfo/css/style.scss

@@ -305,7 +305,7 @@
 
   //新的样式
   //概述页面的样式
-  #unitInfo {
+  #unitInfo{
     .baseInfo {
       width: 75%;
       position: relative;
@@ -509,7 +509,7 @@
   }
 
   //设计页面的样式
-  #unitQuality {
+  #unitQuality,#security {
     .baseInfo {
       width: 100%;
 
@@ -550,7 +550,7 @@
       .line {
         width: 100%;
         height: 2px;
-        background: rgb(246, 246, 246);
+        background: #3168a7;
         position: relative;
         float: left;
         margin: 20px 0px 6px 0px;
@@ -688,7 +688,8 @@
         float: right;
         width: 100px;
         right: 30px;
-        color:black;
+        color: #fefefe;
+        background: rgba(19, 69, 107, 0.62);
       }
     }
 
@@ -704,7 +705,7 @@
       text-align: center;
       border-bottom: solid;
       border-width: 2px;
-      border-color: rgb(246, 246, 246);
+      border-color: #3168a7;
 
       input[type="text"] {
         border: none;
@@ -717,6 +718,8 @@
       th {
         background: rgba(86, 146, 253, 0.19);
         color: #fefefe;
+        border-bottom-color: #3168a7;
+        border-top-color:#3168a7 ;
       }
 
       tr.even {
@@ -930,7 +933,7 @@
   }
 
   //合同与材料信息
-  #unitDesignPaper {
+  #unitDesignPaper,.securityclass {
     .remake {
       position: relative;
       float: left;
@@ -1004,8 +1007,9 @@
       float: left;
       width: 100%;
       border-top: solid;
-      border-color: rgb(246, 246, 246);
+      border-color: #3168a7;
       margin-top: 20px;
+      border-top-width: 2px;
     }
 
     .clInfoList {
@@ -1104,7 +1108,6 @@
         font-size: 12px;
         font-weight: 500;
         color: #555555;
-        background: #FFFFFF;
         border-radius: 2px;
         margin-left: 4px;
       }
@@ -1149,7 +1152,7 @@
     }
 
     tr.even {
-      background: rgb(246, 246, 246);
+      
     }
   }
 }

+ 27 - 0
src/widgets/PumpMonitor/Widget.html

@@ -0,0 +1,27 @@
+<div class="widget-PumpMonitor">
+  <div class="form-inline">
+    <div class="form-group">
+        <label for="">泵站:</label>
+        <input type="checkbox" data-type='pump' class="jtoggler pump-jtoggler">
+    </div>
+  </div>  
+</div>
+$$
+<div class="widget-flowvideoanalysis ">
+  <video id="pump-video" loop="-1" class="video-js videoanalysis vjs-big-play-centered" controls preload="auto"
+          poster="" data-setup="{}">
+              <source id="videosource"  type="video/mp4">                  
+              <p class="vjs-no-js">
+              To view this video please enable JavaScript, and consider upgrading to a web browser that
+              <a href="http://videojs.com/html5-video-support/" target="_blank">supports HTML5 video</a>
+              </p>
+  </video>
+  
+<script type="text/javascript">
+var myPlayer = videojs('pump-video');
+      videojs("pump-video").ready(function(){
+          var myPlayer = this;
+          myPlayer.play();
+      });
+</script>
+</div>

+ 83 - 0
src/widgets/PumpMonitor/Widget.ts

@@ -0,0 +1,83 @@
+import BaseWidget = require('core/BaseWidget.class');
+declare var InfoWindow;
+declare var videojs;
+/**
+ * 视频监控模块
+ */
+class PumpMonitor extends BaseWidget {
+    baseClass = "widget-PumpMonitor";
+    handler=null;
+    infoWindow:any;
+    gifLayer:any;
+    /**
+     * 启动
+     */
+    startup() {
+        //this.setHtml(this.template.split("$$")[0]);
+        this.ready();
+        //this.loadRideoCheck()
+    }  
+
+    /**
+     * 加载功能按钮
+     */
+    loadRideoCheck(){
+        this.domObj.find('.pump-jtoggler').jtoggler();
+        $(document).on('jt:toggled', function(event, target) { 
+            let isCheck=$(target).prop('checked');
+            let type=$(target).data("type");
+            if(type=='pump'){
+                if(isCheck){
+                    this.addModel();
+                }else{
+                    this.removeAll();
+                }
+            }
+            
+        }.bind(this));
+    }
+
+    /**
+     * 添加模型
+     */
+    addModel() {
+        let viewer=AppX.runtimeConfig.activeView
+        for(var i=0;i<this.config.pumps.length;i++){
+            // let lgtd=this.config.pumps[i].lgtdstr.split('$');
+            // this.config.pumps[i].lgtd=parseFloat(lgtd[0])+parseFloat(lgtd[1])/60.0+parseFloat(lgtd[2])/3600.0;
+            // let lttd=this.config.pumps[i].lttdstr.split('$');
+            // this.config.pumps[i].lttd=parseFloat(lttd[0])+parseFloat(lttd[1])/60.0+parseFloat(lttd[2])/3600.0;
+            this.config.pumps[i].imgdiv=this.config.dicgif[this.config.pumps[i].state];
+        }
+        this.gifLayer = createGifLayer(document.querySelector(this.appConfig.mainContainer),this.config.pumps,viewer,this.addModelClick.bind(this));
+    }
+
+    /**
+     * 删除指定图层
+     */
+    removeAll() {
+        if(this.gifLayer){
+            this.gifLayer.remove();
+        }
+    }
+
+    /**
+     * @function 事件初始化
+     */
+    initEvent() {  
+        var videoUrl=this.config.videourl;  
+        var myPlayer =  videojs("pump-video");  //初始化视频
+        myPlayer.src(videoUrl);  //重置video的src
+        $("#videosource").attr("src",videoUrl);        
+    }
+
+    /**
+     * 添加click事件
+     */
+    addModelClick(evt){
+        // AppX.runtimeConfig.popup.setSize(700,500);
+        // AppX.runtimeConfig.popup.show($(evt.currentTarget).data("name"),this.template.split("$$")[1],true);
+        // this.initEvent();
+    }
+}
+export = PumpMonitor;

+ 189 - 0
src/widgets/PumpMonitor/config.json

@@ -0,0 +1,189 @@
+{
+    "widgetUrl": "widgets/PumpMonitor",
+    "tmplateUrl": "widgets/PumpMonitor/Widget.html",
+    "styleUrl": "widgets/PumpMonitor/css/style.css",
+    "layername":"rideolyn",
+    "dicgif":{
+        "hei":"<img class='gifelement' src='./widgets/PumpMonitor/images/hei32.gif'>",
+        "hong":"<img class='gifelement' src='./widgets/PumpMonitor/images/hong32.png'>",
+        "lan":"<img class='gifelement' src='./widgets/PumpMonitor/images/lan32.png'>"
+    },
+    "pumps_bf":[ {
+        "name":"珍珠山污水泵站",
+        "state":"hong",
+        "imgdiv":"",
+        "lgtdstr":"113$8$49.69",
+        "lttdstr":"29$21$11.15",
+        "lgtd":113.146492,
+        "lttd":29.373322,
+        "height":41.55
+    },
+    {
+        "name":"长山路污水泵站",
+        "state":"hong",
+        "imgdiv":"",
+        "lgtdstr":"113$8$58.49",
+        "lttdstr":"29$21%$36.24",
+        "lgtd":113.146492,
+        "lttd":29.373322,
+        "height":41.55
+    },
+    {
+        "name":"锦绣河山污水泵站",
+        "state":"hong",
+        "imgdiv":"",
+        "lgtdstr":"113$8$37.33",
+        "lttdstr":"29$22$0.72",
+        "lgtd":113.146492,
+        "lttd":29.373322,
+        "height":41.55
+    },
+    {
+        "name":"桐子岭污水泵站",
+        "state":"lan",
+        "imgdiv":"",
+        "lgtdstr":"113$8$52.83",
+        "lttdstr":"29$22$44.20",
+        "lgtd":113.146492,
+        "lttd":29.373322,
+        "height":41.55
+    },
+    {
+        "name":"冷水铺路污水泵站",
+        "state":"hong",
+        "imgdiv":"",
+        "lgtdstr":"113$8$27.08",
+        "lttdstr":"29$23$8.82",
+        "lgtd":113.146492,
+        "lttd":29.373322,
+        "height":41.55
+    },
+    {
+        "name":"春和家园污水泵站",
+        "state":"lan",
+        "imgdiv":"",
+        "lgtdstr":"113$8$43.15",
+        "lttdstr":"29$23$32.39",
+        "lgtd":113.146492,
+        "lttd":29.373322,
+        "height":41.55
+    },
+    {
+        "name":"冷水铺路2号污水泵站",
+        "state":"hong",
+        "imgdiv":"",
+        "lgtdstr":"113$9$19.96",
+        "lttdstr":"29$23$42.10",
+        "lgtd":113.146492,
+        "lttd":29.373322,
+        "height":41.55
+    },
+    {
+        "name":"冷水铺村1号污水泵站",
+        "state":"lan",
+        "imgdiv":"",
+        "lgtdstr":"113$9$24.72",
+        "lttdstr":"29$23$50.33",
+        "lgtd":113.146492,
+        "lttd":29.373322,
+        "height":41.55
+    },
+    {
+        "name":"冷水铺村2号污水泵站",
+        "state":"hong",
+        "imgdiv":"",
+        "lgtdstr":"113$9$42.08",
+        "lttdstr":"29$24$2.07",
+        "lgtd":113.146492,
+        "lttd":29.373322,
+        "height":41.55
+    },
+    {
+        "name":"一体化污水泵站",
+        "state":"hei",
+        "imgdiv":"",
+        "lgtdstr":"113$10$50.30",
+        "lttdstr":"29$24$31.82",
+        "lgtd":113.146492,
+        "lttd":29.373322,
+        "height":41.55
+    },
+    {
+        "name":"一体化污水泵站",
+        "state":"hong",
+        "imgdiv":"",
+        "lgtdstr":"113$10$22.45",
+        "lttdstr":"29$24$47.65",
+        "lgtd":113.146492,
+        "lttd":29.373322,
+        "height":41.55
+    },
+    {
+        "name":"延寿路泵站",
+        "state":"hei",
+        "imgdiv":"",
+        "lgtdstr":"113$7$47.81",
+        "lttdstr":"29$24$36.06",
+        "lgtd":113.146492,
+        "lttd":29.373322,
+        "height":41.55
+    },
+    {
+        "name":"七里山污水泵站",
+        "state":"hei",
+        "imgdiv":"",
+        "lgtdstr":"113$8$19.05",
+        "lttdstr":"29$24$19.81",
+        "lgtd":113.146492,
+        "lttd":29.373322,
+        "height":41.55
+    }],    
+    "pumps":[
+        {"name":"湖滨泵站","lgtdstr":"113$5$23.97","lttdstr":"29$17$38.40","lgtd":113.0899917,"lttd":29.294,"state":"hei","typeName":"现状污水提升泵站","notes":"经度:113$5$23.97,纬度:29$17$38.40","height":41.55,"div":""},
+        {"name":"湖滨社区污水泵站","lgtdstr":"113$5$29.12","lttdstr":"29$18$4.89","lgtd":113.0914222,"lttd":29.30135833,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$5$29.12,纬度:29$18$4.89","height":41.55,"div":""},
+        {"name":"黄河大道污水泵站","lgtdstr":"113$5$19.60","lttdstr":"29$18$26.09","lgtd":113.0887778,"lttd":29.30724722,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$5$19.60,纬度:29$18$26.09","height":41.55,"div":""},
+        {"name":"黄沙湾污水泵站","lgtdstr":"113$4$18.63","lttdstr":"29$19$49.20","lgtd":113.0718417,"lttd":29.33033333,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$4$18.63,纬度:29$19$49.20","height":41.55,"div":""},
+        {"name":"甄璧山污水泵站","lgtdstr":"113$3$59.76","lttdstr":"29$20$9.73","lgtd":113.0666,"lttd":29.33603611,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$3$59.76,纬度:29$20$9.73","height":41.55,"div":""},
+        {"name":"龟山社区污水泵站","lgtdstr":"113$4$48.86","lttdstr":"29$20$6.47","lgtd":113.0802389,"lttd":29.33513056,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$4$48.86,纬度:29$20$6.47","height":41.55,"div":""},
+        {"name":"郭镇合流泵站","lgtdstr":"113$8$16.10","lttdstr":"29$18$30.98","lgtd":113.1378056,"lttd":29.30860556,"state":"hei","typeName":"现状污水提升泵站","notes":"经度:113$8$16.10,纬度:29$18$30.98","height":41.55,"div":""},
+        {"name":"城东南路泵站(合流)","lgtdstr":"113$5$30.46","lttdstr":"29$21$7.44","lgtd":113.0917944,"lttd":29.35206667,"state":"hei","typeName":"现状污水提升泵站","notes":"经度:113$5$30.46,纬度:29$21$7.44","height":41.55,"div":""},
+        {"name":"南津港泵站","lgtdstr":"113$5$31.64","lttdstr":"29$21$40.07","lgtd":113.0921222,"lttd":29.36113056,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$5$31.64,纬度:29$21$40.07","height":41.55,"div":""},
+        {"name":"梅溪桥雨水泵站","lgtdstr":"113$5$30.51","lttdstr":"29$22$13.62","lgtd":113.0918083,"lttd":29.37045,"state":"lan","typeName":"雨水泵站","notes":"经度:113$5$30.51,纬度:29$22$13.62","height":41.55,"div":""},
+        {"name":"街河口雨水泵站","lgtdstr":"113$5$6.40","lttdstr":"29$22$25.97","lgtd":113.0851111,"lttd":29.37388056,"state":"lan","typeName":"雨水泵站","notes":"经度:113$5$6.40,纬度:29$22$25.97","height":41.55,"div":""},
+        {"name":"街河口污水泵站","lgtdstr":"113$5$9.71","lttdstr":"29$22$32.08","lgtd":113.0860306,"lttd":29.37557778,"state":"hei","typeName":"现状污水提升泵站","notes":"经度:113$5$9.71,纬度:29$22$32.08","height":41.55,"div":""},
+        {"name":"马壕污水泵站","lgtdstr":"113$6$20.61","lttdstr":"29$23$8.14","lgtd":113.105725,"lttd":29.38559444,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$6$20.61,纬度:29$23$8.14","height":41.55,"div":""},
+        {"name":"纺城路污水泵站","lgtdstr":"113$7$12.76","lttdstr":"29$23$32.74","lgtd":113.1202111,"lttd":29.39242778,"state":"hei","typeName":"现状污水提升泵站","notes":"经度:113$7$12.76,纬度:29$23$32.74","height":41.55,"div":""},
+        {"name":"西瓜山污水泵站","lgtdstr":"113$6$25.39","lttdstr":"29$23$55.57","lgtd":113.1070528,"lttd":29.39876944,"state":"hei","typeName":"现状污水提升泵站","notes":"经度:113$6$25.39,纬度:29$23$55.57","height":41.55,"div":""},
+        {"name":"东风湖电排站","lgtdstr":"113$7$5.01","lttdstr":"29$24$26.68","lgtd":113.1180583,"lttd":29.40741111,"state":"hei","typeName":"","notes":"经度:113$7$5.01,纬度:29$24$26.68","height":41.55,"div":""},
+        {"name":"七里山社区污水泵站1","lgtdstr":"113$7$59.21","lttdstr":"29$23$56.42","lgtd":113.1331139,"lttd":29.39900556,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$7$59.21,纬度:29$23$56.42","height":41.55,"div":""},
+        {"name":"七里山社区污水泵站2","lgtdstr":"113$8$8.26","lttdstr":"29$24$7.75","lgtd":113.1356278,"lttd":29.40215278,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$8$8.26,纬度:29$24$7.75","height":41.55,"div":""},
+        {"name":"高家组污水泵站","lgtdstr":"113$7$47.02","lttdstr":"29$24$9.78","lgtd":113.1297278,"lttd":29.40271667,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$7$47.02,纬度:29$24$9.78","height":41.55,"div":""},
+        {"name":"七里山污水泵站","lgtdstr":"113$8$20.96","lttdstr":"29$24$19.82","lgtd":113.1391556,"lttd":29.40550556,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$8$20.96,纬度:29$24$19.82","height":41.55,"div":""},
+        {"name":"延寿路泵站","lgtdstr":"113$7$48.40","lttdstr":"29$24$35.64","lgtd":113.1301111,"lttd":29.4099,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$7$48.40,纬度:29$24$35.64","height":41.55,"div":""},
+        {"name":"南湖广场污水泵站","lgtdstr":"113$6$41.51","lttdstr":"29$21$1.78","lgtd":113.1115306,"lttd":29.35049444,"state":"hei","typeName":"现状污水提升泵站","notes":"经度:113$6$41.51,纬度:29$21$1.78","height":41.55,"div":""},
+        {"name":"蛇皮套污水泵站","lgtdstr":"113$7$24.24","lttdstr":"29$20$58.43","lgtd":113.1234,"lttd":29.34956389,"state":"hei","typeName":"现状污水提升泵站","notes":"经度:113$7$24.24,纬度:29$20$58.43","height":41.55,"div":""},
+        {"name":"下王组雨水泵站","lgtdstr":"113$7$47.91","lttdstr":"29$21$57.52","lgtd":113.129975,"lttd":29.36597778,"state":"lan","typeName":"雨水泵站","notes":"经度:113$7$47.91,纬度:29$21$57.52","height":41.55,"div":""},
+        {"name":"下王组污水泵站","lgtdstr":"113$7$51.9","lttdstr":"29$21$57.33","lgtd":113.1310833,"lttd":29.365925,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$7$51.92,纬度:29$21$57.33","height":41.55,"div":""},
+        {"name":"锦绣山河污水泵站","lgtdstr":"113$8$39.37","lttdstr":"29$22$1.40","lgtd":113.1442694,"lttd":29.36705556,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$8$39.37,纬度:29$22$1.40","height":41.55,"div":""},
+        {"name":"桐子岭污水泵站","lgtdstr":"113$8$52.68","lttdstr":"29$22$44.18","lgtd":113.1479667,"lttd":29.37893889,"state":"hei","typeName":"现状污水提升泵站","notes":"经度:113$8$52.68,纬度:29$22$44.18","height":41.55,"div":""},
+        {"name":"冷水铺路1号污水泵站","lgtdstr":"113$8$26.90","lttdstr":"29$23$9.00","lgtd":113.1408056,"lttd":29.38583333,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$8$26.90,纬度:29$23$9.00","height":41.55,"div":""},
+        {"name":"春和家园污水泵站","lgtdstr":"113$8$43.10","lttdstr":"29$23$32.50","lgtd":113.1453056,"lttd":29.39236111,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$8$43.10,纬度:29$23$32.50","height":41.55,"div":""},
+        {"name":"冷水铺路2号污水泵站","lgtdstr":"113$9$1.06","lttdstr":"29$23$30.83","lgtd":113.1502944,"lttd":29.39189722,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$9$1.06,纬度:29$23$30.83","height":41.55,"div":""},
+        {"name":"冷水铺村1号污水泵站","lgtdstr":"113$9$24.76","lttdstr":"29$23$50.52","lgtd":113.1568778,"lttd":29.39736667,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$9$24.76,纬度:29$23$50.52","height":41.55,"div":""},
+        {"name":"冷水铺村2号污水泵站","lgtdstr":"113$9$42.09","lttdstr":"29$24$1.01","lgtd":113.1616917,"lttd":29.40028056,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$9$42.09,纬度:29$24$1.01","height":41.55,"div":""},
+        {"name":"一体化污水泵站(1000)","lgtdstr":"113$10$50.29","lttdstr":"29$24$31.77","lgtd":113.1806361,"lttd":29.408825,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$10$50.29,纬度:29$24$31.77","height":41.55,"div":""},
+        {"name":"一体化污水泵站(2000)","lgtdstr":"113$10$20.68","lttdstr":"29$24$46.81","lgtd":113.1724111,"lttd":29.41300278,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$10$20.68,纬度:29$24$46.81","height":41.55,"div":""},
+        {"name":"理工学院合流泵站","lgtdstr":"113$8$31.98","lttdstr":"29$20$14.44","lgtd":113.1422167,"lttd":29.33734444,"state":"hei","typeName":"现状污水提升泵站","notes":"经度:113$8$31.98,纬度:29$20$14.44","height":41.55,"div":""},
+        {"name":"市第一职业中专学院泵站","lgtdstr":"113$9$7.02","lttdstr":"29$20$35.18","lgtd":113.15195,"lttd":29.34310556,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$9$7.02,纬度:29$20$35.18","height":41.55,"div":""},
+        {"name":"颐养院湿地泵站","lgtdstr":"113$9$30.07","lttdstr":"29$20$1.62","lgtd":113.1583528,"lttd":29.33378333,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$9$30.07,纬度:29$20$1.62","height":41.55,"div":""},
+        {"name":"羊角山泵站","lgtdstr":"113$10$4.18","lttdstr":"29$20$21.94","lgtd":113.1678278,"lttd":29.33942778,"state":"hei","typeName":"现状污水提升泵站","notes":"经度:113$10$4.18,纬度:29$20$21.94","height":41.55,"div":""},
+        {"name":"尾水提升泵站","lgtdstr":"113$10$38.00","lttdstr":"29$20$59.84","lgtd":113.1772222,"lttd":29.34995556,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$10$38.00,纬度:29$20$59.84","height":41.55,"div":""},
+        {"name":"长山路污水泵站","lgtdstr":"113$8$58.39","lttdstr":"29$21$36.58","lgtd":113.1495528,"lttd":29.36016111,"state":"hei","typeName":"现状污水提升泵站","notes":"经度:113$8$58.39,纬度:29$21$36.58","height":41.55,"div":""},
+        {"name":"1#污水泵站","lgtdstr":"113$11$57.8","lttdstr":"29$22$39.46","lgtd":113.1993889,"lttd":29.37762778,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$11$57.80,纬度:29$22$39.46","height":41.55,"div":""},
+        {"name":"2#污水泵站","lgtdstr":"113$11$34.46","lttdstr":"29$21$58.09","lgtd":113.1929056,"lttd":29.36613611,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$11$34.46,纬度:29$21$58.09","height":41.55,"div":""},
+        {"name":"3#污水泵站","lgtdstr":"113$11$19.61","lttdstr":"29$21$45.86","lgtd":113.1887806,"lttd":29.36273889,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$11$19.61,纬度:29$21$45.86","height":41.55,"div":""},
+        {"name":"枣子山路污水泵站","lgtdstr":"113$12$11.14","lttdstr":"29$20$59.72","lgtd":113.2030944,"lttd":29.34992222,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$12$11.14,纬度:29$20$59.72","height":41.55,"div":""},
+        {"name":"岳阳大道污水泵站","lgtdstr":"113$12$39.1","lttdstr":"29$20$39.51","lgtd":113.2108611,"lttd":29.34430833,"state":"hong","typeName":"新建污水提升泵站","notes":"经度:113$12$39.10,纬度:29$20$39.51","height":41.55,"div":""}
+    ],
+    "videourl": "./widgets/PumpMonitor/video/50.mp4"
+}

+ 53 - 0
src/widgets/PumpMonitor/css/style.scss

@@ -0,0 +1,53 @@
+.widget-PumpMonitor {
+    font-size: 12px;
+    position: absolute;
+    bottom: -13px;
+    font-family: Arial;
+    padding-left: 4px;
+    padding-right: 5px;
+    color: white;
+    z-index: 100;
+    height: 46px;
+    //width: 100%;
+    left: 690px;  
+    /**---------开关按钮----------*/
+.jtoggler-control{
+    width:50px;
+    height:18px;
+}
+.jtoggler:checked + .jtoggler-control .jtoggler-handle{
+    left:32px;
+}
+}
+
+.widget-flowvideoanalysis {
+    height: 100%;
+    .videoanalysis{       
+       width: 100%;
+       height: 100%;
+    } 
+    .video-js .vjs-big-play-button{
+       font-size: 3em;
+       line-height: 1.5em;
+       height: 1.5em;
+       width: 1.5em;      
+       display: none;
+       position: absolute;
+       border: 0em solid #fff;       
+       padding: 0;
+       cursor: pointer;
+       opacity: 1;
+       background-color: #2B333F;
+       border-radius: 0.7em;
+       -o-transition: all 0.4s;
+       transition: all 0.4s;
+    }
+}
+
+.gifelement{
+    position: absolute; 
+    width: 32px; 
+    height:32px; 
+    z-index: 2;
+    cursor: pointer;
+}

BIN
src/widgets/PumpMonitor/images/hei32.gif


BIN
src/widgets/PumpMonitor/images/hong32.gif


BIN
src/widgets/PumpMonitor/images/hong32.png


BIN
src/widgets/PumpMonitor/images/lan32.gif


BIN
src/widgets/PumpMonitor/images/lan32.png


+ 2 - 2
src/widgets/TopSectionUI/Widget.html

@@ -2,8 +2,8 @@
     <div class="btn-group toolbarBtns" role="button">
         <button data-type="tckz" class="btn btn-secondary">图层控制</button>
         <button data-type="gclb" class="btn btn-secondary">工程列表</button>
-        <!-- <button data-type="grgzt" class="btn btn-secondary">个人工作台</button>
-        <button data-type="xskz" class="btn btn-secondary">显示控制</button> -->
+        <!-- <button data-type="grgzt" class="btn btn-secondary">个人工作台</button> -->
+        <button data-type="xskz" class="btn btn-secondary">显示控制</button>
         <!-- <button data-type="xzck" class="btn btn-secondary">属性查看</button>
         <button data-type="gcck" class="btn btn-secondary">管材查看</button>
         <button data-type="tjfx" class="btn btn-secondary">统计分析</button> -->

+ 1 - 1
src/widgets/TopSectionUI/css/style.scss

@@ -2,7 +2,7 @@
     position: absolute;
     z-index: 990;
     top: 13px;
-    left:350px;
+    left:620px;
     padding: 0.5px 5px;
     display: flex;
     display:-webkit-flex;