Browse Source

管网查询统计增加显示字段,隐患审核相关模块增加修改,应急调度审核台帐相关,

CharlesLeocc 3 years ago
parent
commit
f20ca9b98b
45 changed files with 2155 additions and 192 deletions
  1. 2 2
      src/common/AjaxSend.class.ts
  2. 27 5
      src/configure.ts
  3. 2 2
      src/login/js/login.js
  4. 0 1
      src/widgets/BaseMap/Widget.ts
  5. 10 10
      src/widgets/FieldConfig/config.json
  6. 4 4
      src/widgets/HiddenCoordinate/Widget.ts
  7. 26 7
      src/widgets/HiddenDangerTrendAnalysis/Widget.html
  8. 132 8
      src/widgets/HiddenDangerTrendAnalysis/Widget.ts
  9. 4 3
      src/widgets/HiddenDangerTrendAnalysis/config.json
  10. 34 1
      src/widgets/HiddenDangerTypeAnalysis/Widget.html
  11. 74 13
      src/widgets/HiddenDangerTypeAnalysis/Widget.ts
  12. 1 0
      src/widgets/HiddenDangerTypeAnalysis/config.json
  13. 29 26
      src/widgets/HiddenPageInfo/Widget.html
  14. 343 10
      src/widgets/HiddenPageInfo/Widget.ts
  15. 17 2
      src/widgets/HiddenPageInfo/css/style.scss
  16. 20 0
      src/widgets/HiddenTroubleAudit/Widget.html
  17. 344 0
      src/widgets/HiddenTroubleAudit/Widget.ts
  18. 143 0
      src/widgets/HiddenTroubleAudit/config.json
  19. 80 0
      src/widgets/HiddenTroubleAudit/css/style.scss
  20. 5 3
      src/widgets/HiddenTroubleSearchAll/Widget.html
  21. 12 6
      src/widgets/HiddenTroubleSearchAll/Widget.ts
  22. 4 3
      src/widgets/HiddenTroubleSearchAllAdmin/Widget.html
  23. 12 6
      src/widgets/HiddenTroubleSearchAllAdmin/Widget.ts
  24. 1 1
      src/widgets/HomePage/echartDisplay.class.ts
  25. 1 1
      src/widgets/LengthStatistics/config.json
  26. 1 16
      src/widgets/MaintenanceAuditFirst/Widget.ts
  27. 1 1
      src/widgets/MaintenanceAuditSecond/Widget.ts
  28. 61 0
      src/widgets/MaintenanceInfoManagement/Widget.html
  29. 392 0
      src/widgets/MaintenanceInfoManagement/Widget.ts
  30. 15 0
      src/widgets/MaintenanceInfoManagement/config.json
  31. 58 0
      src/widgets/MaintenanceInfoManagement/css/style.scss
  32. BIN
      src/widgets/MaintenanceInfoManagement/images/people.png
  33. BIN
      src/widgets/MaintenanceInfoManagement/images/planpoint.png
  34. BIN
      src/widgets/MaintenanceInfoManagement/images/popup.png
  35. BIN
      src/widgets/MaintenanceInfoManagement/images/textbg.png
  36. 52 0
      src/widgets/MaintenancePageInfo/Widget.html
  37. 33 3
      src/widgets/MaintenancePageInfo/Widget.ts
  38. 4 4
      src/widgets/MaintenancePageInfo/config.json
  39. 2 2
      src/widgets/MissionSchedule/Widget.html
  40. 36 0
      src/widgets/PlanSearchAdmin/Widget.html
  41. 169 2
      src/widgets/PlanSearchAdmin/Widget.ts
  42. 2 2
      src/widgets/SqlQuery/config.json
  43. 0 46
      src/widgets/UserInfoManagement/Widget.html
  44. 1 1
      src/widgets/VehicleHistoryMonitor/Widget.html
  45. 1 1
      src/widgets/VehicleMonitoring/Widget.html

+ 2 - 2
src/common/AjaxSend.class.ts

@@ -514,7 +514,7 @@ class AjaxSend {
                             if (data.indexOf("singleCheckBox") != -1) {
                                 return (row + 1);
                             } else if(data.indexOf("infoWrite") != -1){
-                                return null;
+                                return "";
                             }
                             else {
                                 return node.textContent
@@ -524,7 +524,7 @@ class AjaxSend {
                             if (data.indexOf("AllCheck") != -1) {
                                 return "序号";
                             } else if(data == "详情"){
-                                return null
+                                return ""
                             }
                             else {
                                 return data

File diff suppressed because it is too large
+ 27 - 5
src/configure.ts


+ 2 - 2
src/login/js/login.js

@@ -1,6 +1,6 @@
 /* CONFIGURE START */
-var HOST_NAME = "112.51.249.202:1111";//"192.168.2.248:1111";//;//;//,//var HOST_NAME = "http://192.168.2.248:1111",
-//var HOST_NAME = "192.168.2.248:1111";
+//var HOST_NAME = "112.51.249.202:1111";//"192.168.2.248:1111";//;//;//,//var HOST_NAME = "http://192.168.2.248:1111",
+var HOST_NAME = "192.168.2.248:1111";
 SYS_ADDR = location.href.trim().toLowerCase().replace(/login\/+$/, ""),
     COOKIE_EXPIRES = 1,
     COOKIE_PATH = location.pathname.trim().toLowerCase().replace(/login\/+$/, "");

+ 0 - 1
src/widgets/BaseMap/Widget.ts

@@ -348,7 +348,6 @@ class BaseMap extends BaseWidget {
                         var layerDefinitions = [];
                         data.layers.forEach((item, index) => {
                             if (item.name == "节点") {
-                                debugger
                                 layerDefinitions[item.id] = "defaultVisibility = 'false'";
                             }
                         });

+ 10 - 10
src/widgets/FieldConfig/config.json

@@ -4,31 +4,31 @@
     "dataList":[
         {
             "dataUser":"高压管线,次高压管线,中压管线,低压管线,预埋管线",
-            "dataList":"管径,类型,修建日期,,平均埋深,材质,运行压力,壁厚,接口方式,设计压力,防腐材料,腐蚀状况,施工单位,竣工日期,维修日期,录入日期,修改日期,维护次数,数据来源,安全评级,状态,埋设方式,隐患情况,巡检人,审核人,采集人,录入人,阴极保护类型,阴极保护测试点数,长度,备注1"
+            "dataList":"特征,地址,管径,类型,修建日期,,平均埋深,材质,运行压力,壁厚,接口方式,设计压力,防腐材料,腐蚀状况,施工单位,竣工日期,维修日期,录入日期,修改日期,维护次数,数据来源,安全评级,状态,埋设方式,隐患情况,巡检人,审核人,采集人,录入人,阴极保护类型,阴极保护测试点数,长度,备注1"
         },
         {
             "dataUser":"调压设备",
-            "dataList":"设备编码,类型,安装地址,运行压力,设计压力,开闭状态,生产厂家,型号,进口压力,切断压力,关闭压力,竣工日期,录入日期,修改日期,维护次数,维修日期,检修次数,检修日期,巡检次数,巡检日期,数据来源,防腐等级,状态,隐患情况,巡检人,审查人,采集人,录入人,X坐标,Y坐标"
+            "dataList":"特征,地址,设备编码,类型,安装地址,运行压力,设计压力,开闭状态,生产厂家,型号,进口压力,切断压力,关闭压力,竣工日期,录入日期,修改日期,维护次数,维修日期,检修次数,检修日期,巡检次数,巡检日期,数据来源,防腐等级,状态,隐患情况,巡检人,审查人,采集人,录入人,X坐标,Y坐标"
         },
         {
             "dataUser":"阀门",
-            "dataList":"设备编码,类型,管径,生产厂家,材质,埋深,阀门型号,竣工日期,维修日期,录入日期,修改日期,维护次数,数据来源,防腐等级,状态,埋设方式,隐患情况,巡检人,审查人,采集人,录入人,X坐标,Y坐标,备注1,阀门性质"
+            "dataList":"特征,地址,设备编码,类型,管径,生产厂家,材质,埋深,阀门型号,竣工日期,维修日期,录入日期,修改日期,维护次数,数据来源,防腐等级,状态,埋设方式,隐患情况,巡检人,审查人,采集人,录入人,X坐标,Y坐标,备注1,阀门性质"
         },
         {
             "dataUser":"SCADA监测点",
-            "dataList":"设备编码,类型,型号,生产厂家,流量,压力变送器型号及编号1,压力2,压力变送器型号及编号2,压力变送器型号及编号3,压力1,数据来源,状态,X坐标,Y坐标,建设时间,点位类型,站点名称,备注1"
+            "dataList":"特征,地址,设备编码,类型,型号,生产厂家,流量,压力变送器型号及编号1,压力2,压力变送器型号及编号2,压力变送器型号及编号3,压力1,数据来源,状态,X坐标,Y坐标,建设时间,点位类型,站点名称,备注1"
         },
         {
             "dataUser":"阴极保护",
-            "dataList":"设备编码,类型,工程名称,管径,材质,极性材质,开路电压,保护电压,保护电流,杂散电流情况,检测片情况,设计压力,保护措施,运行压力,保护起止点,竣工日期,维修日期,录入日期,修改日期,维护次数,数据来源,防腐等级,状态,埋设方式,隐患情况,巡检人,审查人,采集人,录入人,X坐标,Y坐标,备注1"
+            "dataList":"特征,设备编码,类型,工程名称,管径,材质,极性材质,开路电压,保护电压,保护电流,杂散电流情况,检测片情况,设计压力,保护措施,运行压力,保护起止点,竣工日期,维修日期,录入日期,修改日期,维护次数,数据来源,防腐等级,状态,埋设方式,隐患情况,巡检人,审查人,采集人,录入人,X坐标,Y坐标,备注1"
         },
         {
             "dataUser":"套管",
-            "dataList":"自编号,类型,管径,材质,壁厚,埋深,管顶高程,运行压力,保护措施,防腐情况,竣工日期,维修日期,录入日期,修改日期,工程性质,维护次数,数据来源,防腐等级,状态,埋设方式,隐患情况,巡检人,审查人,采集人,录入人,X坐标,Y坐标,备注1"
+            "dataList":"特征,地址,自编号,类型,管径,材质,壁厚,埋深,管顶高程,运行压力,保护措施,防腐情况,竣工日期,维修日期,录入日期,修改日期,工程性质,维护次数,数据来源,防腐等级,状态,埋设方式,隐患情况,巡检人,审查人,采集人,录入人,X坐标,Y坐标,备注1"
         },
         {
             "dataUser":"节点",
-            "dataList":"编号,类型,管径,弯管角度,材质,埋深,管顶高程,运行压力,设计压力,竣工日期,维修日期,录入日期,修改日期,维护次数,数据来源,防腐等级,状态,埋设方式,隐患情况,巡检人,审查人,采集人,录入人,X坐标,Y坐标,施工单位,生产厂家,防腐材料,防腐材料厂家,防腐方式,备注1"
+            "dataList":"特征,地址,编号,类型,管径,弯管角度,材质,埋深,管顶高程,运行压力,设计压力,竣工日期,维修日期,录入日期,修改日期,维护次数,数据来源,防腐等级,状态,埋设方式,隐患情况,巡检人,审查人,采集人,录入人,X坐标,Y坐标,施工单位,生产厂家,防腐材料,防腐材料厂家,防腐方式,备注1"
         },
         {
             "dataUser":"场站",
@@ -36,15 +36,15 @@
         },
         {
             "dataUser":"燃气桩",
-            "dataList":"自编号,X坐标,Y坐标,材质"
+            "dataList":"特征,地址,自编号,X坐标,Y坐标,材质"
         },
         {
             "dataUser":"气源",
-            "dataList":"分类,名称,供气压力,最大供气量,最大瞬量"
+            "dataList":"特征,地址,分类,名称,供气压力,最大供气量,最大瞬量"
         },
         {
             "dataUser":"穿越点",
-            "dataList":"自编号,投用时间,状态,穿跨越物,材质,穿跨方式,涵洞参数"
+            "dataList":"特征,地址,自编号,投用时间,状态,穿跨越物,材质,穿跨方式,涵洞参数"
         }
     ]
 }

+ 4 - 4
src/widgets/HiddenCoordinate/Widget.ts

@@ -98,7 +98,7 @@ class HiddenCoordinate extends BaseWidget {
      */
     initPage(dataInfo) {
         this.popup.setSize(1000, 730);
-        var Obj = this.popup.Show("隐患审核", this.template.split('$$')[1]);
+        var Obj = this.popup.Show("隐患协调处理", this.template.split('$$')[1]);
         let getHtml = this.AppX.runtimeConfig.hiddenPageInfo;
         dataInfo.pipeInfo = dataInfo.pipeInfos;
         dataInfo.deviceInfo = dataInfo.deviceInfos;
@@ -117,7 +117,7 @@ class HiddenCoordinate extends BaseWidget {
         //     dataInfo.dutyFiles2 = undefined;
         //     dataInfo.dutyFiles2 = dataInfo.dutyFiles.concat(dataInfo.dutyVoice);
         //     lookInfo = [getHtml.state.hiddenReport];
-        // } 
+        // }
         getHtml.getLinkHtml(this, Obj.conObj.find('.widget-HiddenCoordinate-pop'), [getHtml.state.hiddenReport,getHtml.state.dispatchAudit,getHtml.state.action,getHtml.state.coordinate], getHtml.state.coordinate, dataInfo);
         Obj.submitObj.off("click").on("click", function () {
             let data = this.getWriteInfo(Obj.conObj);
@@ -148,7 +148,7 @@ class HiddenCoordinate extends BaseWidget {
     HiddenReport(results) {
         if (this.ajaxSend.checkResults(this, results)) {
             this.popup.close();
-            this.toast.show("审核成功");
+            this.toast.show("协调处理成功成功");
             this.getInfoList();
         }
     }
@@ -332,4 +332,4 @@ class HiddenCoordinate extends BaseWidget {
         this.domObj.remove();
         this.afterDestroy();
     }
-}
+}

+ 26 - 7
src/widgets/HiddenDangerTrendAnalysis/Widget.html

@@ -5,6 +5,7 @@
             <select class="input-sm form-control tableType minwidth" id="tableType">
                 <option value='hidden' selected='selected'>隐患报表 </option>
                 <option value='maintenance'>抢维修 </option>
+                <option value='maintenanceScheduler'>应急工单 </option>
             </select>
         </div>
         <div class="form-group  form-inline department_btn groupleft">
@@ -41,7 +42,7 @@
             <div class="example">
                 <div class="HiddenDangerTrendAnalysischart" id="HiddenDangerTrendAnalysischart"></div>
                 <div class="HiddenDangerTrendAnalysis-list" id="HiddenDangerTrendAnalysis-list">
-                    
+
                 </div>
             </div>
         </div>
@@ -57,7 +58,7 @@
 <script src="../../vendor/extentjs/exportexcel.js"></script>
 $$
 <div class="reportname" style="text-align: center;font-weight: 600;">隐患趋势分析报表</div>
-                    <table class="table table-bordered  " border="1" cellspacing="0" cellpadding="0"
+<table class="table table-bordered  " border="1" cellspacing="0" cellpadding="0"
                         style="width: 100%;border:none">
                         <thead>
                             <tr style="border:none;">
@@ -72,10 +73,28 @@ $$
                         </tbody>
                         <tbody class="HiddenDangerTrendAnalysis">
                         </tbody>
-                    </table>
-                        $$
-                        <div class="reportname" style="text-align: center;font-weight: 600;">抢维修趋势分析报表</div>
-                    <table class="table table-bordered  " border="1" cellspacing="0" cellpadding="0"
+</table>
+$$
+<div class="reportname" style="text-align: center;font-weight: 600;">抢维修趋势分析报表</div>
+<table class="table table-bordered  " border="1" cellspacing="0" cellpadding="0"
+                        style="width: 100%;border:none">
+                        <thead>
+                            <tr style="border:none;">
+                                <td class="cxgs" colspan="4" style="border:none;text-align: left;font-weight:bold">部门:全部
+                                </td>
+                                <td class='titcaption' colspan="10"
+                                    style="border:none;text-align: right;font-weight:bold">
+                                    查询时间:</td>
+                            </tr>
+                        </thead>
+                        <tbody class="theadtrendanalysis">
+                        </tbody>
+                        <tbody class="HiddenDangerTrendAnalysis">
+                        </tbody>
+</table>
+$$
+<div class="reportname" style="text-align: center;font-weight: 600;">应急工单趋势分析报表</div>
+<table class="table table-bordered  " border="1" cellspacing="0" cellpadding="0"
                         style="width: 100%;border:none">
                         <thead>
                             <tr style="border:none;">
@@ -90,4 +109,4 @@ $$
                         </tbody>
                         <tbody class="HiddenDangerTrendAnalysis">
                         </tbody>
-                    </table>
+</table>

+ 132 - 8
src/widgets/HiddenDangerTrendAnalysis/Widget.ts

@@ -4,7 +4,7 @@ import AjaxSend = require("common/AjaxSend.class");
 declare var echarts;
 declare function   mothedexport_hiddendangertrend();
 enum displayType{
-    hidden,maintenance
+    hidden,maintenance,maintenanceScheduler
 }
 export = HiddenDangerTrendAnalysis;
 
@@ -127,13 +127,16 @@ class HiddenDangerTrendAnalysis extends BaseWidget {
             }else if($(e.currentTarget).val()=="maintenance"){
                 this.displayType.title='抢维修';
                 this.displayType.type=displayType.maintenance
+            }else if($(e.currentTarget).val()=="maintenanceScheduler"){
+                this.displayType.title='应急工单';
+                this.displayType.type=displayType.maintenanceScheduler
             }
         })
     }
 
       /**
      * 获取查询条件
-     * */ 
+     * */
     getSearchInfo(){
         let hiddendangertypeanalysis_begindate =this.domObj.find('.startdate').val();
         let hiddendangertypeanalysis_enddate = this.domObj.find('.enddate').val();
@@ -161,7 +164,7 @@ class HiddenDangerTrendAnalysis extends BaseWidget {
 
     /**
      * 根据类型查询对应的数据(隐患或者抢维修)
-     * */ 
+     * */
     getSelectTypeList(){
         this.getSearchInfo();
         //查询隐患
@@ -170,12 +173,15 @@ class HiddenDangerTrendAnalysis extends BaseWidget {
             this.domObj.find(".HiddenDangerTrendAnalysis-list").append( _.template(this.template.split('$$')[1]))
              this.ajaxSend.sendAjax(this,this.searchInfo, this.config.getHiddenDangerTypeAnalysis, this.ajaxSend.type.get,this.getHiddenDangerTrendAnalysisCallback.bind(this));
            //this.getHiddenDangerTrendAnalysisCallback(this.config.results);
-       
+
         }
         //查询抢维修
         else if(this.displayType.type==displayType.maintenance){
             this.domObj.find(".HiddenDangerTrendAnalysis-list").append( _.template(this.template.split('$$')[2]))
             this.ajaxSend.sendAjax(this, this.searchInfo, this.config.getMaintenanceTypeAnalysis, this.ajaxSend.type.get,this.getMaintenanceCallback.bind(this));
+        }else if(this.displayType.type==displayType.maintenanceScheduler){
+            this.domObj.find(".HiddenDangerTrendAnalysis-list").append( _.template(this.template.split('$$')[3]))
+            this.ajaxSend.sendAjax(this, this.searchInfo, this.config.getMaintenanceScheduler, this.ajaxSend.type.get,this.getMaintenanceSchedulerCallback.bind(this));
         }
         let departmentName=this.domObj.find('.department option:selected').text();
         departmentName=(departmentName==""||!departmentName?"全部":departmentName);
@@ -415,7 +421,125 @@ class HiddenDangerTrendAnalysis extends BaseWidget {
             this.domObj.find(".HiddenDangerTrendAnalysischart").hide();
         }
     }
+    /**
+     * 处理应急工单数据
+     */
+     getMaintenanceSchedulerCallback(results) {
+        var that = this;
+        if (results.code != 1) {
+            that.toast.Show(results.message);
+            return;
+        }
+        this.html = '';
+        var mouth_nums = [];//统计每月
+        this.chartdata = [];//存储折线或饼状数据
+        this.piechartdata = [];
+        var isnum_data = [];
+        if (results.result.length > 0) {//计算每一类隐患总计
+            var allTatal = 0;
+            for (var i = 0; i < results.result.length; i++) {
+                var info = results.result[i].info;
+                var totalCount = 0;//单类总和
+                for (var j = 0; j < info.length; j++) {
+                    totalCount += info[j].num;
+                    if (mouth_nums.length > j) {
+                        mouth_nums[j] += info[j].num;
+                    } else {
+                        mouth_nums.push(info[j].num);
+                    }
+
+                }
+                if (totalCount != 0) {
+                    this.chartdata.push({ xvalue: results.result[i].troubleTypeName, yvalue: info });
+                    isnum_data.push(results.result[i]);
+                }
 
+                results.result[i].total = totalCount;
+                allTatal += totalCount;
+            }
+            results.total = allTatal;
+            if (isnum_data.length > 0) {
+                results.result = isnum_data;
+                this.addTitle(results.result[0].info);//添加标题
+
+                //趋势统计
+                for (var i = 0; i < results.result.length; i++) {
+                    var reobj = results.result[i];
+                    var info = reobj.info;
+                    var html_percent = '';
+                    var backgroundColor = "#eeeeee";
+                    if (i % 2 == 0) {
+                        backgroundColor = "white"
+                    }
+                    // this.html += '<tr style="background-color:' + backgroundColor + '"><td rowspan="2">'
+                    //     + (i + 1)
+                    //     + '</td><td rowspan="2">'
+                    //     + reobj.troubleTypeName
+                    //     + '<td>数量</td><td>'
+                    //     + reobj.total
+                    //     + '</td>';
+                    // html_percent += '<tr style="background-color:' + backgroundColor + '"><td>比例</td><td>'
+                    //     + (results.total == 0 ? '0.00%' : (reobj.total / results.total * 100).toFixed(2) + '%')
+                    //     + '</td>';
+                    // for (var j = 0; j < info.length; j++) {
+                    //     this.html += '<td>' + info[j].num + '</td>';//个数
+                    //     html_percent += '<td>' + (mouth_nums[j] == 0 ? '0.00%' : (info[j].num / mouth_nums[j] * 100).toFixed(2) + '%') + '</td>';
+                    // }
+                    this.html += '<tr><td rowspan="2">'
+                    + (i + 1)
+                    + '</td><td rowspan="2">'
+                    + reobj.troubleTypeName
+                    + '<td>数量</td><td>'
+                    + reobj.total
+                    + '</td>';
+                html_percent += '<tr><td>比例</td><td>'
+                    + (results.total == 0 ? '0.00%' : (reobj.total / results.total * 100).toFixed(2) + '%')
+                    + '</td>';
+                for (var j = 0; j < info.length; j++) {
+                    this.html += '<td>' + info[j].num + '</td>';//个数
+                    html_percent += '<td>' + (mouth_nums[j] == 0 ? '0.00%' : (info[j].num / mouth_nums[j] * 100).toFixed(2) + '%') + '</td>';
+                }
+                    this.html += '</tr>' + html_percent + "</tr>";
+                }
+            } else {
+                this.addTitle(results.result[0].info);//添加标题
+            }
+
+            //统计每月
+            var totalBackgroundColor = "#eeeeee ";
+            if ((results.result[0].info.length) % 2 == 0) {
+                totalBackgroundColor = "white"
+            }
+            this.html += '<tr><td class="tdcenter" colspan="2" rowspan="2">合计</td><td>数量</td><td>'
+                + results.total
+                + '</td>';
+            var all_html_percent = '';
+            all_html_percent += '<tr><td>比例</td><td>100.00%</td>';
+            for (var i = 0; i < mouth_nums.length; i++) {
+                all_html_percent += '<td>' + (results.total == 0 ? '0.00%' : (mouth_nums[i] / results.total * 100).toFixed(2) + '%') + '</td>';
+                this.html += '<td>' + mouth_nums[i] + '</td>';
+            }
+            this.html += '</tr>' + all_html_percent + "</tr>";
+
+        }
+        this.domObj.find(".HiddenDangerTrendAnalysis").empty().append(this.html);
+      //  this.domObj.find(".cxgs").text("部门:" + this.domObj.find('.department option:selected').text()!=""?this.domObj.find('.department option:selected').text():"全部");
+
+        var myDate = new Date();
+        var mytime = Functions.DateFormat(myDate, "yyyy年MM月dd日 hh:mm:ss");
+        // this.domObj.find(".shenhe").text("审核人:");
+        // this.domObj.find(".zhibiao").text("制表人:" + AppX.appConfig.realname);
+        // this.domObj.find(".shijian").text("制表时间:" + mytime);
+
+        //绘制柱状图
+        if (this.chartdata.length > 0) {
+            this.domObj.find(".HiddenDangerTrendAnalysischart").show();
+            this.configChart("line", "HiddenDangerTrendAnalysischart", this.displayType.title+'趋势分析图(' + this.starttime + '~' + this.endtime + ')');
+        } else {
+            this.domObj.find(".HiddenDangerTrendAnalysischart").hide();
+        }
+
+    }
     /**
      * 添加标题
      */
@@ -449,7 +573,7 @@ class HiddenDangerTrendAnalysis extends BaseWidget {
                 }else if(info[i].monthName){
                     xdata.push(info[i].monthName.trim());//年月为x坐标
                 }
-              
+
             }
         }
 
@@ -459,7 +583,7 @@ class HiddenDangerTrendAnalysis extends BaseWidget {
         var grid = { // 控制图的大小,调整下面这些值就可以,
             x: 60,
             x2: 100,
-            y2: 100,// y2可以控制 X轴跟Zoom控件之间的间隔,避免以为倾斜后造成 label重叠到zoom上            
+            y2: 100,// y2可以控制 X轴跟Zoom控件之间的间隔,避免以为倾斜后造成 label重叠到zoom上
         };
         var legend = {
             left: 'center',
@@ -555,7 +679,7 @@ class HiddenDangerTrendAnalysis extends BaseWidget {
                 itemSize: 24,
                 show: true,
                 right: '15',
-                // iconStyle:{color:'rgb(73, 208, 209)'}, 
+                // iconStyle:{color:'rgb(73, 208, 209)'},
                 feature: {
                     mark: { show: true },
                     magicType: { show: true, type: [] },
@@ -616,4 +740,4 @@ class HiddenDangerTrendAnalysis extends BaseWidget {
         this.domObj.remove();
         this.afterDestroy();
     }
-}
+}

+ 4 - 3
src/widgets/HiddenDangerTrendAnalysis/config.json

@@ -1,7 +1,7 @@
 {
-    "widgetUrl": "widgets/HiddenDangerTypeAnalysis",
-    "tmplateUrl": "widgets/HiddenDangerTypeAnalysis/Widget.html",
-    "styleUrl": "widgets/HiddenDangerTypeAnalysis/css/style.scss",
+    "widgetUrl": "widgets/HiddenDangerTrendAnalysis",
+    "tmplateUrl": "widgets/HiddenDangerTrendAnalysis/Widget.html",
+    "styleUrl": "widgets/HiddenDangerTrendAnalysis/css/style.scss",
     "mapDiv": "myMap",
     "getCompanyList":"/base/department/page",
     "getGroupList": "/base/department/page",
@@ -11,6 +11,7 @@
     "deleteHiddenDangerType": "/troubletype/delete/",
     "updateHiddenDangerType": "/troubletype/update",
     "getMaintenanceTypeAnalysis":"/zmrq/rushrepair/getReportByTime",
+    "getMaintenanceScheduler":"/zmrq/scheduler/getSchedulerQsfx",
     "pagenumber": 1,
     "pagesize": 13,
     "rangeall":"00",

+ 34 - 1
src/widgets/HiddenDangerTypeAnalysis/Widget.html

@@ -5,6 +5,7 @@
             <select class="input-sm form-control tableType minwidth" id="tableType">
                 <option value='hidden' selected='selected'>隐患报表 </option>
                 <option value='maintenance'>抢维修 </option>
+                <option value='maintenanceScheduler'>应急工单 </option>
             </select>
         </div>
         <div class="form-group form-inline">
@@ -116,4 +117,36 @@ $$
             <col width="150">
             <col width="150">
         </colgroup>
-    </table>
+    </table>
+$$
+<!-- 应急工单 -->
+<div class="reportname" style="text-align: center;font-weight: 600;">应急工单类型分析报表</div>
+<table class="table table-bordered  table-striped" style="border:none" border="1" cellspacing="0"
+    cellpadding="0" style="width: 100%;">
+    <thead style="border:none">
+        <tr style="border:none;">
+            <td class="cxgs" colspan="3" style="border:none;text-align: left;font-weight:bold">部门:全部
+            </td>
+            <td class='titcaption' colspan="4"
+                style="border:none;text-align: right;font-weight:bold">查询时间:</td>
+        </tr>
+    </thead>
+    <tbody>
+        <tr class="tit">
+            <th>序号</th>
+            <th>应急工单类型</th>
+            <th>数量(个)</th>
+            <th colspan="4">比例</th>
+        </tr>
+    </tbody>
+    <tbody class="hiddendangertypeanalysis">
+    </tbody>
+</table>
+<table style="width:100%">
+    <colgroup>
+        <col width="150">
+        <col width="150">
+        <col width="150">
+        <col width="150">
+    </colgroup>
+</table>

+ 74 - 13
src/widgets/HiddenDangerTypeAnalysis/Widget.ts

@@ -6,7 +6,7 @@ declare function mothedexport_hiddendangertypeinfo();
 export = HiddenDangerTypeAnalysis;
 
 enum displayType{
-    hidden,maintenance
+    hidden,maintenance,maintenanceScheduler
 }
 
 class HiddenDangerTypeAnalysis extends BaseWidget {
@@ -113,13 +113,16 @@ class HiddenDangerTypeAnalysis extends BaseWidget {
             }else if($(e.currentTarget).val()=="maintenance"){
                 this.displayType.title='抢维修类型';
                 this.displayType.type=displayType.maintenance
+            }else if($(e.currentTarget).val()=="maintenanceScheduler"){
+                this.displayType.title='应急工单';
+                this.displayType.type=displayType.maintenanceScheduler
             }
         })
     }
 
     /**
      * 根据类型查询对应的数据(隐患或者抢维修)
-     * */ 
+     * */
     getSelectTypeList(){
         this.hiddendangertypeanalysis_begindate = this.domObj.find('.hiddendangertypeanalysis_begindate').val();
         this.hiddendangertypeanalysis_enddate = this.domObj.find('.hiddendangertypeanalysis_enddate').val();
@@ -142,12 +145,15 @@ class HiddenDangerTypeAnalysis extends BaseWidget {
             this.domObj.find(".hiddendangertypeinfo-list").append( _.template(this.template.split('$$')[1]))
            this.ajaxSend.sendAjax(this, this.searchInfo, this.config.getHiddenDangerTypeAnalysis, this.ajaxSend.type.get,this.getHiddenDangerTypeAnalysisCallback.bind(this));
         //    this.getHiddenDangerTypeAnalysisCallback(this.config.results);
-       
+
         }
         //查询抢维修
         else if(this.displayType.type==displayType.maintenance){
             this.domObj.find(".hiddendangertypeinfo-list").append( _.template(this.template.split('$$')[2]))
             this.ajaxSend.sendAjax(this, this.searchInfo, this.config.getMaintenanceTypeAnalysis, this.ajaxSend.type.get,this.getMaintenanceCallback.bind(this));
+        }else if(this.displayType.type==displayType.maintenanceScheduler){
+            this.domObj.find(".hiddendangertypeinfo-list").append( _.template(this.template.split('$$')[3]))
+            this.ajaxSend.sendAjax(this, this.searchInfo, this.config.getMaintenanceScheduler, this.ajaxSend.type.get,this.getMaintenanceSchedulerCallback.bind(this));
         }
         let departmentName=this.domObj.find('.department option:selected').text();
         departmentName=(departmentName==""||!departmentName?"全部":departmentName);
@@ -156,7 +162,7 @@ class HiddenDangerTypeAnalysis extends BaseWidget {
 
     /**
      * 获取查询条件
-     * */ 
+     * */
     getSearchInfo(){
 
         this.searchInfo={
@@ -172,7 +178,7 @@ class HiddenDangerTypeAnalysis extends BaseWidget {
 
     /**
      * 处理隐患数据
-     * */ 
+     * */
     getHiddenDangerTypeAnalysisCallback(results) {
         this.chartdata = [];
         this.html = ``;
@@ -197,7 +203,7 @@ class HiddenDangerTypeAnalysis extends BaseWidget {
             if (i % 2 == 0) {
                 backgroundColor = "white"
             }
-            for (var j = 0; j < spanlen; j++) {//设备类型集合                
+            for (var j = 0; j < spanlen; j++) {//设备类型集合
                 var equid_percent = (robj.info[j].number == 0 ? '0.00%' : (robj.info[j].number / robj.total * 100.0).toFixed(2) + '%');
                 if (j == 0) {
                     this.html += '<tr style="background-color:' + backgroundColor + '"> <td rowspan="'
@@ -257,10 +263,10 @@ class HiddenDangerTypeAnalysis extends BaseWidget {
             this.domObj.find('.HiddenDangerTypeAnalysischart').hide();
         }
     }
-  
+
     /**
      * 处理抢维修数据
-     * */ 
+     * */
     getMaintenanceCallback(results) {
         this.chartdata = [];
         this.html = ``;
@@ -280,7 +286,7 @@ class HiddenDangerTypeAnalysis extends BaseWidget {
             var backgroundColor = "#eeeeee";
             if (i % 2 == 0) {
                 backgroundColor = "white"
-            }             
+            }
             this.html += '<tr style="background-color:' + backgroundColor + '"> <td>' + (i + 1)
             + '</td><td>'
             + robj.workOrderTypeName
@@ -316,6 +322,61 @@ class HiddenDangerTypeAnalysis extends BaseWidget {
             this.domObj.find('.HiddenDangerTypeAnalysischart').hide();
         }
     }
+    getMaintenanceSchedulerCallback(results) {
+        this.chartdata = [];
+        this.html = ``;
+        if (results.result.length > 0) {
+            var allTatal = 0;
+            for (var i = 0; i < results.result.length; i++) {
+                var info = results.result[i].info[0];
+                results.result[i].total = info.num;
+                allTatal +=  info.num;
+            }
+            results.total = allTatal;
+        }
+        //赋值
+        for (var i = 0; i < results.result.length; i++) {//抢维修类型集合
+            var robj = results.result[i].info[0];
+            let equid_percent= ((robj.num/ results.total)*100).toFixed(2);
+            var backgroundColor = "#eeeeee";
+            if (i % 2 == 0) {
+                backgroundColor = "white"
+            }
+            this.html += '<tr style="background-color:' + backgroundColor + '"> <td>' + (i + 1)
+            + '</td><td>'
+            + robj.type
+            + '</td><td>'
+            + robj.num
+            + '</td><td colspan="4">'
+            + equid_percent
+            + '%</td></tr>';
+            //隐患类型图例绘制
+            this.chartdata.push({ xvalue: robj.type, yvalue:equid_percent });
+        }
+        //合计
+        var tot = 0;
+        if (results.result.length > 0) {
+            tot = results.total;
+        }
+        var totalBackgroundColor = "#eeeeee ";
+        if ((results.result.length) % 2 == 0) {
+            totalBackgroundColor = "white"
+        }
+        this.html += '<tr  style="background-color:' + totalBackgroundColor + '"><td colspan=2>合计</td><td colspan=5>'
+            + tot + '</td></tr>';
+        this.domObj.find(".hiddendangertypeanalysis").empty().append(this.html);
+        this.domObj.find(".titcaption").text("查询日期:" + this.hiddendangertypeanalysis_begindate + "~" + this.hiddendangertypeanalysis_enddate);
+        var myDate = new Date();
+        var mytime = Functions.DateFormat(myDate, "yyyy年MM月dd日 hh:mm:ss");
+        this.curpage = this.domObj.find('.hiddendangertypeinfo-list').html();
+        //默认绘制饼状图
+        if (this.chartdata.length > 0) {
+            this.domObj.find('.HiddenDangerTypeAnalysischart').show();
+            this.configChart("pie", "HiddenDangerTypeAnalysischart", this.displayType.title+"分析图(" + this.hiddendangertypeanalysis_begindate + '~' + this.hiddendangertypeanalysis_enddate + ')');
+        } else {
+            this.domObj.find('.HiddenDangerTypeAnalysischart').hide();
+        }
+    }
 
     /**
      * 饼状图参数设置
@@ -383,7 +444,7 @@ class HiddenDangerTypeAnalysis extends BaseWidget {
                 type: chartType,
                 data: [],
                 smooth: true,
-                barWidth: 25,//柱图宽度                               
+                barWidth: 25,//柱图宽度
                 label: {
                     normal: {
                         show: true,
@@ -461,7 +522,7 @@ class HiddenDangerTypeAnalysis extends BaseWidget {
                 show: true,
                 right: '15',
                 itemSize: '24',
-                // iconStyle:{color:'rgb(73, 208, 209)'}, 
+                // iconStyle:{color:'rgb(73, 208, 209)'},
                 feature: {
                     mark: { show: true },
                     magicType: { show: true, type: [] },
@@ -511,7 +572,7 @@ class HiddenDangerTypeAnalysis extends BaseWidget {
             }
         this.ajaxSend.sendAjax(this, data, this.config.getGroupList, this.ajaxSend.type.get,this.getGroupListCallback.bind(this));
     }
-    
+
     getGroupListCallback(results) {
         var that = this;
         if (results.code != 1) {
@@ -533,4 +594,4 @@ class HiddenDangerTypeAnalysis extends BaseWidget {
         this.domObj.remove();
         this.afterDestroy();
     }
-}
+}

+ 1 - 0
src/widgets/HiddenDangerTypeAnalysis/config.json

@@ -11,6 +11,7 @@
     "addHiddenDangerType": "/troubletype/add",
     "deleteHiddenDangerType": "/troubletype/delete/",
     "updateHiddenDangerType": "/troubletype/update",
+    "getMaintenanceScheduler":"/zmrq/scheduler/getSchedulerQsfx",
     "pagenumber": 1,
     "pagesize": 13,
     "rangeall":"00",

+ 29 - 26
src/widgets/HiddenPageInfo/Widget.html

@@ -3,7 +3,7 @@
 </form>
 $$
 <!--隐患上报信息(1)-->
-<div class='stateInfo'><span class='titleInfo'>上报信息</span> <span class='spanValue' name='creatTime'></span></div>
+<div class='stateInfo'><span class='titleInfo'>上报信息</span> <span class='spanValue' name='reportTime'></span></div>
 <div class="form-group form-inline">
     <div class='item'>
         <label class=" control-label">隐患名称</label>
@@ -50,13 +50,6 @@ $$
         <textarea class="form-control  troubleInfo" rows="3" name="troubleInfo" placeholder="隐患详情"></textarea>
     </div>
 </div>
-
-<!-- <div class="form-group form-inline selfConduct">
-    <div class='oneItem'>
-        <label class=" control-label">处理详情</label>
-        <textarea class="form-control  discretionInfo" rows="3" name="discretionInfo" placeholder="处理详情"></textarea>
-    </div>
-</div> -->
 <div class="form-group form-inline reportVoice">
     <div class='oneItem fileListHasnotPre'>
         <label class=" control-label">语音</label>
@@ -69,9 +62,17 @@ $$
         <input type="file" class="form-control file reportFile" fileType='file' showname="reportFile" name="file" placeholder="上报附件">
     </div>
 </div>
+<div class="form-group form-inline">
+    <div class='oneItem'>
+        <label class=" control-label">上报历史</label>
+        <div class='form-control reportHisList historyList'>
+
+        </div>
+    </div>
+</div>
 $$
 <!--派工信息(2)-->
-<div class='stateInfo'><span class='titleInfo'>派工审核</span> <span class='spanValue' name='creatTime'></span></div>
+<div class='stateInfo'><span class='titleInfo'>派工审核</span> <span class='spanValue' name='createTime'></span></div>
 <div class="form-group form-inline userSelect hideWrite">
     <div class='item'>
         <label class=" control-label">部门</label>
@@ -110,7 +111,7 @@ $$
 </div>
 $$
 <!--执行信息(3)-->
-<div class='stateInfo'><span class='titleInfo'>隐患处理情况</span> <span class='spanValue' name='creatTime'></span></div>
+<div class='stateInfo'><span class='titleInfo'>隐患处理情况</span> <span class='spanValue' name='createTime'></span></div>
 <div class="form-group form-inline">
     <div class='oneItem'>
         <label class=" control-label">执行信息</label>
@@ -121,7 +122,7 @@ $$
 </div>
 $$
 <!--协调信息(4)-->
-<div class='stateInfo'><span class='titleInfo'>协调情况</span> <span class='spanValue' name='creatTime'></span></div>
+<div class='stateInfo'><span class='titleInfo'>协调情况</span> <span class='spanValue' name='createTime'></span></div>
 <div class="form-group form-inline">
     <div class='oneItem'>
         <label class=" control-label">协调信息</label>
@@ -142,32 +143,34 @@ $$
         <input type="file" class="form-control file reportFile" fileType='file' name="file" placeholder="上报附件">
     </div>
 </div>
-<!-- $$ -->
-<!--审核内容(4)-->
-<!-- <div class='stateInfo'><span class='titleInfo'>处理审核</span> <span class='spanValue' name='creatTime'></span></div>
+$$
+<!--一级审核(5)-->
+<div class='stateInfo'><span class='titleInfo'>隐患审核</span></div>
 <div class="form-group form-inline">
     <div class='oneItem'>
-        <label class=" control-label">是否处理完成</label>
-        <select class="input-sm form-control  handleCheck" name='handleCheck' showname='handleCheckName' data-live-search="true" data-max-options="1" data-style="btn-primary">
-            <option value='0' selected="selected">完成</option>
-            <option value='1'>继续处理</option>
+        <label class=" control-label">审核</label>
+        <select class="input-sm form-control  auditResult" name='auditResult' showname='auditResultName'>
+            <option value="1">通过</option>
+            <option value="0">驳回</option>
         </select>
     </div>
 </div>
-<div class="form-group form-inline">
+<div class="form-group form-inline reportVoice">
     <div class='oneItem'>
         <label class=" control-label">审核意见</label>
-        <textarea class="form-control handleCheckNote" rows="3" name="handleCheckNote" placeholder="班长意见"></textarea>
+        <textarea class="form-control  auditNote" rows="3" name="auditNote" showname='auditNote' placeholder=""></textarea>
     </div>
 </div>
 <div class="form-group form-inline">
-    <div class='oneItem fileListHasnotPre'>
-        <label class=" control-label">审核附件</label>
-        <input type="file" class="form-control file reportFile" fileType='file' name="file" placeholder="上报附件">
+    <div class='oneItem'>
+        <label class=" control-label">审核历史</label>
+        <div class='form-control schedulerAuditOneHisList historyList'>
+
+        </div>
     </div>
-</div> -->
+</div>
 $$
-<!-- 地图上点击查看信息(5) -->
+<!-- 地图上点击查看信息(6) -->
 <div class="HiddenPageInfoPopInfo">
     <div class=${className}>
         <span>隐患名称:${troubleName}</span><br />
@@ -176,4 +179,4 @@ $$
         <span>上报人:${reportUserName}</span><br />
         <span class='hiddenPageInfoPopInfoLook operationLook' index=${index}>${state}</span><br />
     </div>
-</div>
+</div>

+ 343 - 10
src/widgets/HiddenPageInfo/Widget.ts

@@ -21,7 +21,9 @@ class HiddenPageInfo extends BaseWidget {
         /**执行信息*/
         action: 3,
         /**协调信息*/
-        coordinate: 4
+        coordinate: 4,
+        /**处理审核*/
+        finishAudit: 5
     };
 
     actionType = {
@@ -70,7 +72,7 @@ class HiddenPageInfo extends BaseWidget {
                 if (item.type == "text") {
                     if (item.attributes.fileType && item.attributes.fileType.value == 'date' && type == this.actionType.write) {
                         let planBegindate = {
-                            format: 'YYYY-MM-DD', //日期格式  
+                            format: 'YYYY-MM-DD', //日期格式
                             isinitVal: true,
                         }
                         $.jeDate(item, planBegindate);
@@ -300,8 +302,330 @@ class HiddenPageInfo extends BaseWidget {
                 dom.find('.hideCoordinate').remove();
             }
         }
+        //通过类名spanValue对span标签进行初始化
+        for (var item of dom.find(".spanValue")) {
+            if (this.initTag.indexOf(item) == -1) {
+                if (this.initTag.indexOf(item) == -1) {
+                    this.initTag.push(item);
+                    for (var dataItem in data) {
+                        if (dataItem == item.attributes.name.value) {
+                            item.textContent=this.verificationHelper.setNullAndUndefinedEnpty(data[dataItem]);
+                        }
+                    }
+                }
+            }
+        }
+        //---上报历史信息
+        for (var item of dom.find(".reportHisList")) {
+            if (this.initTag.indexOf(item) == -1) {
+                this.initTag.push(item);
+                //本次渲染数据将由执行过程数据和审核数据整理
+                //获取执行数据
+                let processData = data.troubleBaseHis;
+                //let auditData = data['auditList'];
+                let header_action = "<tr><th>隐患名称</th><th>隐患详情</th><th>是否自行处理</th><th>隐患附件</th></tr>";
+                //let header_audit = "<tr><th>审核人</th><th>审核时间</th><th>审核状态</th><th>审核意见</th></tr>";
+                let actionList = [];
+                //let auditList = [];
+                let allHtml = "";
+                if (processData && processData.length > 0) {
+                    processData.forEach(processItem => {
+                        let html = "";
+                        //隐患名称
+                        let auditUser = this.verificationHelper.setNullAndUndefinedEnpty(processItem.troubleName);
+                        let auditUserHtml = "<td title='" + auditUser + "'>" + auditUser + "</td>";
+                        //隐患详情
+                        let reportTimeHtml = "<td title='" + this.verificationHelper.setNullAndUndefinedEnpty(processItem.troubleInfo) + "'>" +
+                            this.verificationHelper.setNullAndUndefinedEnpty(processItem.troubleInfo) + "</td>";
+                            //是否自行处理
+                        let auditResult = this.verificationHelper.setNullAndUndefinedEnpty(processItem.isDiscretionName);
+                        let auditResultHtml = "<td title='" + auditResult + "'>" + auditResult + "</td>";
+                            //隐患附件
+                        //let description = this.verificationHelper.setNullAndUndefinedEnpty(processItem.auditNote);
+                        //let descriptionHtml = "<td title='" + description + "'>" + description + "</td>";
+                        //抢维修上报文件
+                        let fileAndVoice = this.getFileAndVoice(processItem, 'reportFile', 'reportVoiceList');
+                        //执行过程
+                        html = ("<tr>" + auditUserHtml+reportTimeHtml+auditResultHtml + fileAndVoice.file  + "</tr>");
+                        actionList.push({
+                            time: parseInt(this.verificationHelper.setNullAndUndefinedEnpty(processItem.createTime).replace(/[^0-9]*/g, "")),
+                            item: html,
+                            type: "1"
+                        })
+                    })
+                } else {
+                    actionList.push({
+                        time: 9999999999999999999999,
+                        item: "<tr><td colspan='4'>暂无隐患上报历史内容</td></tr>",
+                        type: "1"
+                    })
+                }
+                actionList.forEach((itemB, indexB) => {
+                    // if (itemB.type == '2') {
+                    //     if (indexB == auditList.length - 1) {
+                    //         allHtml += (header_audit + itemB.item);
+                    //     } else {
+                    //         allHtml += (header_audit + itemB.item + header_action);
+                    //     }
+                    // } else {
+                        if (allHtml == "") {
+                            allHtml += (header_action + itemB.item);
+                        } else {
+                            allHtml += itemB.item
+                        }
+                    //}
+                })
+                $(item).append("<table class='table table-bordered'>" + allHtml + "</table>");
+                $(item).find('.tableImg').viewer();
+            }
+        }
     }
 
+    //审核专用
+    initLinkHtml_list(that, dom, data, type,auditList) {
+        //通过input的类型和name属性值对input控件进行初始化
+        for (var item of dom.find("input")) {
+            if (this.initTag.indexOf(item) == -1) {
+                this.initTag.push(item);
+                if (item.type == "text") {
+                    if (item.attributes.fileType && item.attributes.fileType.value == 'date' && type == this.actionType.write) {
+                        let planBegindate = {
+                            format: 'YYYY-MM-DD', //日期格式
+                            isinitVal: true,
+                        }
+                        $.jeDate(item, planBegindate);
+                    } else {
+                        for (var dataItem in auditList) {
+                            if (dataItem == item.name) {
+                                item.value = this.verificationHelper.setNullAndUndefinedEnpty(auditList[dataItem]);
+                                if ((item.value + "").indexOf("00:00:00") != -1) {
+                                    item.value = (item.value + "").replace("00:00:00", "");
+                                }
+                            }
+                        }
+                        if (type == this.actionType.look) {
+                            $(item).attr("readonly", "readonly");
+                            $(item).attr("title", item.value);
+                        }
+                    }
+                }
+                if (item.type == "file" && that) {
+                    let fileInit = false;
+                    if (auditList && type == this.actionType.look) {
+                        for (var dataItem in auditList) {
+                            if (dataItem == item.attributes.showname.value) {
+                                fileInit = true;
+                                let imgHtml = "";
+                                let imgList = [];
+                                let fileHtml = "";
+                                let fileList = [];
+                                let notFile = "未上传附件";
+                                if (auditList[dataItem].length && auditList[dataItem].length > 0) {
+                                    auditList[dataItem].forEach((fileItem, index) => {
+                                        if (this.ajaxSend.isImg(fileItem.path)) {
+                                            imgList.push({ fileName: fileItem.fileName, path: fileItem.path });
+                                        } else {
+                                            fileList.push({ fileName: fileItem.fileName, path: fileItem.path });
+                                        }
+                                    })
+                                }
+                                if (imgList.length > 0) {
+                                    imgList.forEach((imgItem, index) => {
+                                        imgHtml += "<li><img src='" + this.ajaxSend.getIamgeAddress(that, imgItem.path) + "'></li>";
+                                    })
+                                }
+                                if (fileList.length > 0) {
+                                    fileList.forEach((fileItem, index) => {
+                                        fileHtml += "<li><a href=" + this.ajaxSend.getFileAddress(that, fileItem) + " download='" + fileItem.fileName + "'>" + fileItem.fileName + "</li>";
+                                    })
+                                }
+                                $(item).after("<div class='fileInfoList'></div>")
+                                if (fileList.length > 0 || imgList.length > 0) {
+                                    let imgId = item.attributes.showname.value + "_imgList";
+                                    if (imgHtml != "") {
+                                        $(item).parents(".form-group").find(".fileInfoList").append("<div class='fileItemUl'><ul class='fileInfoListItem' id='" + imgId + "'>" + imgHtml + "</ul></div>");
+                                        $(item).parents(".form-group").find(".fileItemUl #" + imgId).viewer();
+                                    }
+                                    if (fileHtml != "") {
+                                        let fileId = item.name + "_fileList";
+                                        $(item).parents(".form-group").find(".fileInfoList").append("<div class='fileItemUl'><ul class='fileInfoListItem' id='" + fileId + "'>" + fileHtml + "</ul></div>")
+                                    }
+                                } else {
+                                    $(item).parents(".form-group").find(".fileInfoList").append("<span class='fileInfoNot'>" + notFile + "</span>")
+                                }
+                                $(item).remove();
+                            }
+                        }
+                    }
+                    if (!fileInit) {
+                        let fileList = [];
+                        for (var dataItem in auditList) {
+                            if (item.attributes.showname && item.attributes.showname.value && dataItem == item.attributes.showname.value && auditList[dataItem]) {
+                                if (auditList[dataItem] instanceof Array) {
+                                    fileList = auditList[dataItem]
+                                } else {
+                                    fileList.push(auditList[dataItem])
+                                }
+                            }
+                        }
+                        if (item.attributes.fileType.value == "file") {
+                            let dom = $(item);
+                            this.ajaxSend.initFileFileInputs(dom, fileList, that);
+                            this.fileDom.push(dom);
+                        } else if (item.attributes.fileType.value == "image") {
+                            let dom = $(item)
+                            this.ajaxSend.initFileImageInputs($(item), fileList, that);
+                            this.fileDom.push(dom);
+                        }
+                    }
+                }
+            }
+        }
+        //通过textarea的name属性值对textarea控件进行初始化
+        for (var item of dom.find("textarea")) {
+            if (this.initTag.indexOf(item) == -1) {
+                this.initTag.push(item);
+                for (var dataItem in auditList) {
+                    if (dataItem == item.name) {
+                        item.value = this.verificationHelper.setNullAndUndefinedEnpty(auditList[dataItem]);
+                    }
+                }
+                if (type == this.actionType.look) {
+                    $(item).attr("readonly", "readonly");
+                    $(item).attr("title", item.value);
+                }
+            }
+        }
+        //通过select的name属性值对textarea控件进行初始化
+        for (var item of dom.find("select")) {
+            if (this.initTag.indexOf(item) == -1) {
+                this.initTag.push(item);
+                let index = 0;
+                let length = 0;
+                for (var dataItem in auditList) {
+                    length++;
+                    if (item.attributes.showname && dataItem == item.attributes.showname.value && type == this.actionType.look) {
+                        $(item).after('<input type="text" class="form-control" readonly="readonly" value="' + this.verificationHelper.setNullAndUndefinedEnpty(auditList[dataItem]) + '">');
+                        let parentDom = $(item).parents('.userSelect');
+                        if (parentDom.length > 0) {
+                            parentDom.find('.item:first-child').remove();
+                            parentDom.find('.item').addClass('oneItem').removeClass('item');
+                        }
+                        $(item).remove();
+                    } else { index++ };
+                }
+                if (index == length && type == this.actionType.look) {
+                    $(item).after('<input type="text" class="form-control" readonly="readonly" >');
+                    $(item).remove();
+                }
+                if (type == this.actionType.look) {
+                    $(item).attr("readonly", "readonly");
+                } else {
+                    if (auditList&&(this.verificationHelper.setNullAndUndefinedEnpty(auditList[item.name]) + "").trim() != "") {
+                        $(item).val(this.verificationHelper.setNullAndUndefinedEnpty(auditList[item.name]));
+                    }
+                }
+            }
+        }
+        //通过类名voice对音频进行初始化
+        for (var item of dom.find(".voice")) {
+            if (this.initTag.indexOf(item) == -1) {
+                this.initTag.push(item);
+                for (var dataItem in auditList) {
+                    let html = "";
+                    if (item.attributes.name.value == dataItem) {
+                        let dataInfo = auditList[dataItem];
+                        if (!dataInfo || !(dataInfo instanceof Array) || dataInfo.length == 0) {
+                            html = "<span class='voiceSpan'>未上传语音</span>"
+                        } else {
+                            dataInfo.forEach(e => {
+                                html += "<audio style='height:30px;width:100%' controlsList='nodownload' oncontextmenu='return false'  controls='controls'><source src='" + this.ajaxSend.getAudioAddress(that, e.path) + "'>您的浏览器不支持 audio 标签。</audio>";
+                            })
+                        }
+                        $(item).empty().append(html);
+                        $(item).attr("readonly", "readonly");
+                    }
+                }
+            }
+        }
+        //通过类名spanValue对span标签进行初始化
+        for (var item of dom.find(".spanValue")) {
+            if (this.initTag.indexOf(item) == -1) {
+                if (this.initTag.indexOf(item) == -1) {
+                    this.initTag.push(item);
+                    for (var dataItem in auditList) {
+                        if (dataItem == item.attributes.name.value) {
+                            item.textContent=this.verificationHelper.setNullAndUndefinedEnpty(auditList[dataItem]);
+                        }
+                    }
+                }
+            }
+        }
+
+        //---审核历史信息
+        for (var item of dom.find(".schedulerAuditOneHisList")) {
+            if (this.initTag.indexOf(item) == -1) {
+                this.initTag.push(item);
+                //本次渲染数据将由执行过程数据和审核数据整理
+                //获取执行数据
+                let processData = data.auditHisList;
+                //let auditData = data['auditList'];
+                let header_action = "<tr><th>审核人</th><th>审核时间</th><th>审核状态</th><th>审核意见</th></tr>";
+                //let header_audit = "<tr><th>审核人</th><th>审核时间</th><th>审核状态</th><th>审核意见</th></tr>";
+                let actionList = [];
+                //let auditList = [];
+                let allHtml = "";
+                if (processData && processData.length > 0) {
+                    processData.forEach(processItem => {
+                        let html = "";
+                        //审核人
+                        let auditUser = this.verificationHelper.setNullAndUndefinedEnpty(processItem.createUserName);
+                        let auditUserHtml = "<td title='" + auditUser + "'>" + auditUser + "</td>";
+                        //审核时间
+                        let reportTimeHtml = "<td title='" + this.verificationHelper.setNullAndUndefinedEnpty(processItem.createTime) + "'>" +
+                            this.verificationHelper.setNullAndUndefinedEnpty(processItem.createTime) + "</td>";
+                        let auditResult = this.verificationHelper.setNullAndUndefinedEnpty(processItem.auditResultName);
+                        let auditResultHtml = "<td title='" + auditResult + "'>" + auditResult + "</td>";
+                            //审核意见
+                        let description = this.verificationHelper.setNullAndUndefinedEnpty(processItem.auditNote);
+                        let descriptionHtml = "<td title='" + description + "'>" + description + "</td>";
+                        //抢维修上报文件
+                        //let fileAndVoice = this.getFileAndVoice(processItem, 'processFiles', 'processVoice');
+                        //执行过程
+                        html = ("<tr>" + auditUserHtml+reportTimeHtml+auditResultHtml + descriptionHtml  + "</tr>");
+                        actionList.push({
+                            time: parseInt(this.verificationHelper.setNullAndUndefinedEnpty(processItem.createTime).replace(/[^0-9]*/g, "")),
+                            item: html,
+                            type: "1"
+                        })
+                    })
+                } else {
+                    actionList.push({
+                        time: 9999999999999999999999,
+                        item: "<tr><td colspan='4'>暂无审核历史内容</td></tr>",
+                        type: "1"
+                    })
+                }
+                actionList.forEach((itemB, indexB) => {
+                    // if (itemB.type == '2') {
+                    //     if (indexB == auditList.length - 1) {
+                    //         allHtml += (header_audit + itemB.item);
+                    //     } else {
+                    //         allHtml += (header_audit + itemB.item + header_action);
+                    //     }
+                    // } else {
+                        if (allHtml == "") {
+                            allHtml += (header_action + itemB.item);
+                        } else {
+                            allHtml += itemB.item
+                        }
+                    //}
+                })
+                $(item).append("<table class='table table-bordered'>" + allHtml + "</table>");
+                $(item).find('.tableImg').viewer();
+            }
+        }
+    }
     /**
     * 根据id字段获取新型
     * @param  id 隐患id
@@ -444,6 +768,10 @@ class HiddenPageInfo extends BaseWidget {
                     case this.state.coordinate:
                         this.getCoordinatePage(that, formDom, item, type, data);
                         break;
+                        //隐患审核
+                    case this.state.finishAudit:
+                        this.getAuditPage(that, formDom, item, type, data);
+                        break;
                 }
             })
         }
@@ -452,7 +780,7 @@ class HiddenPageInfo extends BaseWidget {
         }
     };
 
-    /**部门和人员的联动 
+    /**部门和人员的联动
        * @param that 用于获取全局的一些配置
        * @param dDom 部门下拉框dom
        * @param uDom 用户下拉框dom
@@ -591,19 +919,19 @@ class HiddenPageInfo extends BaseWidget {
                 case item.processId == 1:
                     reportSym.push(data)
                     break;
-                //派工审核   
+                //派工审核
                 case item.processId == 2:
                     checkSym.push(data)
                     break;
-                //执行   
+                //执行
                 case item.processId == 3:
                     organisationalSchemeSym.push(data)
                     break;
-                //协调处理    
+                //协调处理
                 case item.processId == 4:
                     conductSchemeSym.push(data)
                     break;
-                //完成    
+                //完成
                 default:
                     completeSchemeSym.push(data)
                     break;
@@ -695,7 +1023,7 @@ class HiddenPageInfo extends BaseWidget {
      * */
     goPoint(data) {
         if (data && data.locationX && data.locationY) {
-            this.map.setScale(this.config.zoomscale);// 设置到指定缩放级别        
+            this.map.setScale(this.config.zoomscale);// 设置到指定缩放级别
             this.map.centerAt(new Point(parseFloat(data.locationX), parseFloat(data.locationY), this.map.spatialReference));// 设置到指定的显示范围
         }
     }
@@ -713,6 +1041,7 @@ class HiddenPageInfo extends BaseWidget {
         if (data['isDiscretionId'] == 0) {
             dom.find('.selfConduct').hide();
         }
+        //this.initLinkHtml(that, dom, data, type);
         this.initLinkHtml(that, dom, data, type);
     }
 
@@ -730,7 +1059,7 @@ class HiddenPageInfo extends BaseWidget {
         this.initLinkHtml(that, dom, data, type)
     }
 
-    /**执行 
+    /**执行
      * @param that 模块全局
      * @param dom html代码渲染位置
      * @param state 环节
@@ -757,6 +1086,10 @@ class HiddenPageInfo extends BaseWidget {
             dom.find('.hideCoordinate').remove();
         }
     }
+    getAuditPage(that, dom, state, type, data){
+        this.setPageHtml(dom, state);
+        this.initLinkHtml_list(that, dom, data, type,data.auditList[0]);
+    }
 
     /**
      * 销毁对象
@@ -765,4 +1098,4 @@ class HiddenPageInfo extends BaseWidget {
         this.domObj.remove();
         this.afterDestroy();
     }
-}
+}

+ 17 - 2
src/widgets/HiddenPageInfo/css/style.scss

@@ -6,6 +6,21 @@
     audio::-webkit-media-controls {
         overflow: hidden !important
     }
+    .historyList{
+        width: calc(100% - 120px);
+        background-color: #e9ecef;
+        table tr{
+            border: 1px solid #bfc9d2;
+        }
+        .tableImg li{
+            list-style: none;
+        }
+        .tableImg li img{
+            width: 50px;
+            border-radius: 20px;
+            cursor: pointer;
+        }
+    }
     .form-group {
         padding-bottom: 15px;
         position: relative;
@@ -81,7 +96,7 @@
         textarea,
         table,
         input.form-control {
-            width: calc(100% - 120px);
+            width: calc(100% - 0px);
         }
 
         .dropdown-menu {
@@ -241,4 +256,4 @@
         color: rgba(0, 0, 255, 0.7) !important;
         cursor: pointer;
     }
-}
+}

+ 20 - 0
src/widgets/HiddenTroubleAudit/Widget.html

@@ -0,0 +1,20 @@
+<div class="widget-HiddenTroubleAudit box">
+    <div class='tool form-inline'>
+        <div class="form-group">
+            <label class=" control-label">隐患名称</label>
+            <input type="text" autocomplete="off" class="form-control hiddenName" name="hiddenName" placeholder="隐患名称">
+        </div>
+        <div class="form-group">
+            <button id="btn_add" type="button" class="btn_search">
+                查询
+            </button>
+        </div>
+    </div>
+    <div class='tableList  halfpaneltable'>
+        <table class="table table-bordered  table-stiriped " cellspacing="0" id='HiddenTroubleAuditinfodata'>
+        </table>
+    </div>
+</div>
+$$
+<div class='widget-HiddenTroubleAudit-pop'>
+</div>

+ 344 - 0
src/widgets/HiddenTroubleAudit/Widget.ts

@@ -0,0 +1,344 @@
+import BaseWidget = require('core/BaseWidget.class');
+import AjaxSend = require("common/AjaxSend.class");
+import MapSet = require("common/MapSet.class");
+import VerificationHelper = require("common/VerificationHelper.class");
+import GraphicsLayer = require("esri/layers/GraphicsLayer");
+import Graphic = require("esri/graphic");
+import Point = require("esri/geometry/Point");
+import Polyline = require('esri/geometry/Polyline');
+import { data } from 'jquery';
+
+enum operation {
+    create, destroy, clear
+}
+
+export = HiddenTroubleAudit;
+class HiddenTroubleAudit extends BaseWidget {
+    baseClass = "widget-HiddenTroubleAudit";
+    preLayerId = 'HalfPanel' + this.baseClass;
+    clusters = this.preLayerId + 'Clusters';
+    popClass = this.baseClass + 'PopClass';
+    map = null;
+    toast = null;
+    popup = null;
+    loadWait = null;
+    ajaxSend = null;
+    fristSearch = true;
+    dataTable = null;
+    searchInfo = null;
+    verificationHelper = null;
+    selectTableGraphic = null;//点击列表显示的图层
+    selectTablePoint = null;
+    selectTableLine = null;
+    mapSet = null;
+
+    /**
+     * @function 初始化启动
+     */
+    startup() {
+        this.configure();
+        this.initHtml();
+        this.initEvent();
+        this.getInfoList();
+        this.getAllInfo();
+    }
+
+    /**
+     * @function 页面初始化
+     */
+    initHtml() {
+        var html = _.template(this.template.split('$$')[0] + "</div>")();
+        this.setHtml(html);
+        this.ready();
+    }
+
+    configure() {
+        this.toast = this.AppX.runtimeConfig.toast;
+        this.popup = this.AppX.runtimeConfig.popup;
+        this.map = this.AppX.runtimeConfig.map;
+        this.ajaxSend = new AjaxSend();
+        this.loadWait = this.AppX.runtimeConfig.loadWait;
+        this.verificationHelper = new VerificationHelper();
+        this.mapSet = new MapSet();
+        //隐患选中后的颜色设置
+        this.selectTablePoint = this.mapSet.setGraphSymbol("point");
+        this.selectTableLine = this.mapSet.setGraphSymbol("polyline");
+    }
+
+
+
+    /**
+     * 选中列表图层的渲染创建、销毁、清理
+     * @param action 通过枚举operation控制操作
+    */
+    initSelectTableGraphic(action) {
+        if (action == operation.destroy && this.selectTableGraphic) {
+            this.map.removeLayer(this.selectTableGraphic);
+            this.selectTableGraphic = null;
+        }
+        if (action == operation.create && !this.selectTableGraphic) {
+            this.selectTableGraphic = new GraphicsLayer();
+            this.selectTableGraphic.id = this.preLayerId + "selectTableGraphic";
+            this.map.addLayer(this.selectTableGraphic);
+        }
+        if (action == operation.clear && this.selectTableGraphic) {
+            this.selectTableGraphic.clear();
+        }
+    }
+
+    /**
+     * 初始化事件
+     */
+    initEvent() {
+        this.initSelectTableGraphic(operation.create);
+        this.domObj.find(".btn_search").off().click(e => {
+            this.getInfoList();
+        });
+    }
+
+    /**
+     * 初始化班组长审核环节
+     */
+    initPage(dataInfo) {
+        this.popup.setSize(1000, 730);
+        var Obj = this.popup.Show("隐患处理审核", this.template.split('$$')[1]);
+        let getHtml = this.AppX.runtimeConfig.hiddenPageInfo;
+        let dataState=[];
+        dataState.push(getHtml.state.hiddenReport);//1 /**上报信息*/
+
+         if(dataInfo.isDiscretionId != '1'){
+            dataState.push(getHtml.state.dispatchAudit);//2  /**派工审核*/
+            dataState.push(getHtml.state.action);//3执行信息
+         }
+         if(dataInfo.coordinateList && dataInfo.coordinateList.length > 0){
+            dataState.push(getHtml.state.coordinate);//4协调信息
+         }
+         dataState.push(getHtml.state.finishAudit)//5审核
+            getHtml.getLinkHtml(this, Obj.conObj.find('.widget-HiddenTroubleAudit-pop'), dataState, getHtml.state.finishAudit, dataInfo);
+            //getHtml.setDepartmentAndUser(this, Obj.conObj.find('.governPersonDepartment'), Obj.conObj.find('.handleUserId'));
+            //getHtml.setDepartmentAndUser(this, Obj.conObj.find('.governPersonDepartment2'), Obj.conObj.find('.coprocessorId'));
+            Obj.submitObj.off("click").on("click", function () {
+                //let sendData = new FormData();
+                let data = this.getWriteInfo(Obj.conObj);
+                var sendData  ={
+                    "auditNote":data.auditNote,
+                    "auditResult":data.auditResult,
+                    "id":this.dataTable.aExtentData.currentTableData.id
+                }
+                this.ajaxSend.sendAjax(this, sendData, this.config.backTrouble, this.ajaxSend.type.post, this.HiddenReport.bind(this));
+                // for (let item in data) {
+                //     if (item.indexOf("File") != -1 || item.indexOf("file") != -1) {
+                //         let files = data[item];
+                //         if (files && files.length > 0) {
+                //             for (let i = 0; i < files.length; i++) {
+                //                 sendData.append(item, files[i]);
+                //             };
+                //         }
+                //     } else {
+                //         sendData.append(item, data[item]);
+                //     }
+                // }
+                // sendData.append('id', dataInfo.id);
+                // this.ajaxSend.sendFileAjax(this, sendData, this.config.backTrouble, this.ajaxSend.type.post, this.HiddenReport.bind(this));
+            }.bind(this))
+        // }
+    }
+
+    /**
+     * 班组长后的回调
+     * @param results 班组长后的回调
+     */
+    HiddenReport(results) {
+        if (this.ajaxSend.checkResults(this, results)) {
+            this.popup.close();
+            this.toast.show("处理成功");
+            this.getInfoList();
+        }
+    }
+
+    /**
+     * 获取pop表单里面的数据(通过name属性进行json化)
+     * @param obj pop表单的jq对象
+     * */
+    getWriteInfo(obj) {
+        let data = new Object();
+        //获取input里面的数据
+        let dataDom = obj.find('.form-group.form-inline input:not([readonly])')
+        for (var i = 0; i < dataDom.length; i++) {
+            if (dataDom[i].type != 'file') {
+                Object.defineProperty(data, dataDom[i].name, {
+                    configurable: true,
+                    writable: true,
+                    enumerable: true,
+                    value: dataDom[i].value
+                })
+            } else {
+                Object.defineProperty(data, dataDom[i].name, {
+                    configurable: true,
+                    writable: true,
+                    enumerable: true,
+                    value: dataDom[i].dataInfomation
+                });
+            }
+        };
+        //获取textarea里面的数据
+        dataDom = obj.find('.form-group.form-inline textarea:not([readonly])')
+        for (var i = 0; i < dataDom.length; i++) {
+            Object.defineProperty(data, dataDom[i].name, {
+                configurable: true,
+                writable: true,
+                enumerable: true,
+                value: dataDom[i].value
+            })
+        };
+        dataDom = obj.find('.form-group.form-inline select')
+        for (var i = 0; i < dataDom.length; i++) {
+            let optionDom = $(dataDom[i]).find("option:selected");
+            let value = [];
+            for (var i2 = 0; i2 < optionDom.length; i2++) {
+                value.push(optionDom[i2]['value'])
+            };
+            Object.defineProperty(data, dataDom[i].name, {
+                configurable: true,
+                writable: true,
+                enumerable: true,
+                value: value.join(',')
+            })
+        };
+        return data;
+    }
+
+    /**
+       * 获取所有信息
+       * */
+    getAllInfo() {
+        let data = {
+            current: 1,
+            size: 10000,
+            //1派工审核,2现场处理,3协调处理,4完成处理
+            processId: '5',
+            teamUserId: this.AppX.appConfig.userId
+        }
+        this.ajaxSend.sendAjax(this, data, this.config.troubleInfo, this.ajaxSend.type.get, function (results) {
+            if (this.ajaxSend.checkResults(this, results)) {
+                this.allList = results.result.records;
+                this.renderPoint(this.allList);
+            }
+        }.bind(this));
+    }
+
+    /**
+     *根据数据渲染站点
+     *@param results 查询数据
+     * **/
+    renderPoint(data) {
+        this.AppX.runtimeConfig.hiddenPageInfo.addClusters(data, this.clusters, this.popClass, '审核');
+        $('.body').off('click', '.' + this.popClass + " .hiddenPageInfoPopInfoLook").on('click', '.' + this.popClass + " .hiddenPageInfoPopInfoLook", function (e) {
+            let index = parseInt($(e.currentTarget).attr('index'));
+            this.AppX.runtimeConfig.hiddenPageInfo.getInfoByid(data[index].id, this.initPage.bind(this))
+        }.bind(this));
+    }
+
+    /**
+      * 获取查询条件
+      */
+    getSearchInfo() {
+        this.searchInfo = {
+            //1派工审核,2现场处理,3协调处理,4完成处理
+            processId: '5',
+            troubleName: this.domObj.find(".hiddenName").val(),
+            teamUserId: this.AppX.appConfig.userId,
+            "orders[0].asc":false,
+            "orders[0].column":"report_time"
+        }
+    }
+
+    /**
+    * 渲染出隐患列表点选的点和线
+    * */
+    showTrouble() {
+        this.initSelectTableGraphic(operation.clear);
+        let data = this.dataTable.aExtentData.currentTableData;
+        if (data) {
+            if (data.pipeInfos) {
+                for (var item of data.pipeInfos) {
+                    let graphic = new Graphic(new Polyline(JSON.parse(item.geometry)), this.selectTableLine);
+                    this.selectTableGraphic.add(graphic);
+                }
+            }
+            if (data.deviceInfos) {
+                for (var item of data.deviceInfos) {
+                    let graphic = new Graphic(new Point(JSON.parse(item.geometry)), this.selectTablePoint);
+                    this.selectTableGraphic.add(graphic);
+                }
+            }
+        }
+    }
+
+    /**
+    * 渲染出列表点选的点和线
+    * */
+    getInfoList() {
+        this.loadWait.show("正在查询数据,请耐心等待...", this.domObj);
+        let that = this;
+        this.getSearchInfo();
+        this.initSelectTableGraphic(operation.clear);
+        if (that.dataTable) {
+            that.dataTable.ajax.reload();
+            return;
+        };
+        let option = {
+            that: this,
+            dataTable: that.dataTable,
+            elementId: "HiddenTroubleAuditinfodata",
+            url: that.config.troubleInfo,
+            isCheck: false,
+            searchInfo: that.searchInfo,//条件在不断变化,故需要有全局的条件监听
+            displayTitle: ["隐患名称", "所属单位", "隐患地址", "上报人", "详情"],
+            displayField: ["troubleName", "unitName", "address", "reportUserName", "troubleInfo"],
+            extentDisplayTitle: ['审核'],
+            // testData:this.config.dataInfo,
+            extentDisplayContent: [{
+                field: "infoWrite",
+                fieldContent: "<a class='infoWrite opreationName'>审核</a>"
+            }],
+            beforeTrClickEvent: undefined,
+            afterTrClickEvent: function () {
+                this.domObj.off('click', '#HiddenTroubleAuditinfodata tr').on('click', "#HiddenTroubleAuditinfodata tr", e => {
+                    this.showTrouble();
+                    this.AppX.runtimeConfig.hiddenPageInfo.goPoint(this.dataTable.aExtentData.currentTableData);
+                })
+            }.bind(this),
+            drawEvent: function () {
+                this.domObj.off('click', '.infoWrite').on('click', ".infoWrite", e => {
+                    this.AppX.runtimeConfig.hiddenPageInfo.getInfoByid(this.dataTable.aExtentData.currentTableData.id, this.initPage.bind(this))
+                    //this.initPage(this.config.dataInfo.result.records[0]);
+                });
+                this.loadWait.hide();
+            }.bind(this),
+            serachCallBack: function (results) {
+                if (this.fristSearch) {
+                    this.fristSearch = false
+                } else {
+                    if (results.result.records) {
+                        this.renderPoint(results.result.records);
+                    }
+                }
+            }.bind(this),
+            errmassage: "隐患信息查询失败",
+            nullmessage: undefined,
+            exportTitle: "隐患信息"
+        }
+        that.dataTable = this.ajaxSend.DataTables_check(option);
+    }
+
+    /**
+     * 销毁对象
+     */
+    destroy() {
+        this.AppX.runtimeConfig.hiddenPageInfo.clearClusters(this.clusters);
+        this.initSelectTableGraphic(operation.destroy);
+        this.domObj.remove();
+        this.afterDestroy();
+    }
+}

+ 143 - 0
src/widgets/HiddenTroubleAudit/config.json

@@ -0,0 +1,143 @@
+{
+    "widgetUrl": "widgets/HiddenTroubleAudit",
+    "tmplateUrl": "widgets/HiddenTroubleAudit/Widget.html",
+    "styleUrl": "widgets/HiddenTroubleAudit/css/style.css",
+    "getDepartment": "/base/department/page",
+    "getUserList": "/base/user/getUserByDepts/list",
+    "troubleInfo": "/zmrq/trouble/page",
+    "trouble": "/zmrq/trouble",
+    "backTrouble": "/zmrq/trouble/audit",
+    "tolerance": 3,
+    "zoomscale": 2000,
+    "dataInfo":{
+        "code":1,
+        "result":{
+            "records":[
+                {
+                    "troubleName": "隐患测试1",
+                    "reportUserName":"吴一",
+                    "processState":"1",
+                    "locationX":"103.95",
+                    "locationY":"31.24",
+                    "address": "东一路",
+                    "unitName": "建筑局",
+                    "damageTypeName": "中压管线",
+                    "troubleTypeName": "压占",
+                    "troubleTypeId": 1,
+                    "levelId": 1,
+                    "levelName": "严重",
+                    "troubleInfo": "道路改造时压占燃气管道",
+                    "isDiscretionId": 1,
+                    "isDiscretionName": "自行处理",
+                    "discretionInfo": "已更换管道",
+                    "reportFile": [
+                        {
+                            "fileName": "文件1",
+                            "path": "/文件1.doc"
+                        },
+                        {
+                            "fileName": "照片1",
+                            "path": "/照片.png"
+                        }
+                    ],
+                    "reportVoiceList": [
+                        {
+                            "fileName": "语音1",
+                            "path": "/语音.mp4"
+                        }
+                    ],
+                    "governPersonDepartment":"1",
+                    "governPersonDepartmentName":"安全部",
+                    "handleUserid":"2",
+                    "handleUserName":"张三",
+                    "governPersonDepartment2":"1,2",
+                    "governPersonDepartment2Name":"安全部,巡检部",
+                    "coprocessorId":"3,4",
+                    "coprocessorName":"王五、赵六",
+                    "rectifyFile":[
+                        {
+                            "fileName": "文件2",
+                            "path": "/文件2.doc"
+                        },
+                        {
+                            "fileName": "照片2",
+                            "path": "/照片2.png"
+                        }
+                    ],
+                    "dutyPlanNote":"请根据方案执行",
+                    "auditList":[
+                        {
+                            "handleTime":"2021-7-5",
+                            "handleNote":"已将压占处理完成",
+                            "handleFiles":[
+                                {
+                                    "fileName": "文件3",
+                                    "path": "/文件3.doc"
+                                },
+                                {
+                                    "fileName": "照片3",
+                                    "path": "/照片3.png"
+                                }
+                            ],
+                            "handleVoice":[{
+                                "fileName": "语音1",
+                                "path": "/语音.mp4"
+                            }],
+                            "handleCheck":"审核未通过",
+                            "handleCheckNote":"请重新处理",
+                            "handleCheckFiles":[ {
+                                "fileName": "文件4",
+                                "path": "/文件4.doc"
+                            },
+                            {
+                                "fileName": "照片4",
+                                "path": "/照片4.png"
+                            }]
+                        },{
+                            "handleTime":"2021-7-5",
+                            "handleNote":"已将压占处理完成",
+                            "handleFiles":[
+                                {
+                                    "fileName": "文件3",
+                                    "path": "/文件3.doc"
+                                },
+                                {
+                                    "fileName": "照片3",
+                                    "path": "/照片3.png"
+                                }
+                            ],
+                            "handleVoice":[{
+                                "fileName": "语音1",
+                                "path": "/语音.mp4"
+                            }],
+                            "handleCheck":"审核未通过",
+                            "handleCheckNote":"请重新处理",
+                            "handleCheckFiles":[ {
+                                "fileName": "文件4",
+                                "path": "/文件4.doc"
+                            },
+                            {
+                                "fileName": "照片4",
+                                "path": "/照片4.png"
+                            }]
+
+                        }
+                    ],
+                    "coordinateList":[{
+                        "coordinateTime":"2021-07-06",
+                        "coordinateNote":"已完成协调",
+                        "coordinateFiles":[{
+                            "fileName": "文件5",
+                            "path": "/文件5.doc"
+                        },
+                        {
+                            "fileName": "照片6",
+                            "path": "/照片6.png"
+                        }]
+                    }]
+                }
+            ],
+            "total":1
+        }
+    }
+}

+ 80 - 0
src/widgets/HiddenTroubleAudit/css/style.scss

@@ -0,0 +1,80 @@
+.widget-HiddenTroubleAudit {
+    height: 100%;
+    .tool {
+        .form-group {
+            float: left;
+            margin: 4px 0px 4px 4px;
+        }
+        .groupright{
+            display: flex;
+            position: absolute;
+            right: 15px;
+            div{
+                margin-right: 15px;
+                cursor: pointer;
+            }
+        }
+        button{
+            width: 58px;
+            height: 34px;
+            color: white;
+            background: #1A77E0;
+            border-radius: 3px;
+            border: none;
+            cursor: pointer;
+        }
+    }
+    .halfpaneltable {
+        overflow-y: hidden;
+        height: calc(100% - 46px) !important;
+        a.infoWrite{
+            color: rgba(0,0,255,0.7) !important;
+        }
+    }
+    // .hide{
+    //     display: none !important;
+    // }
+    // .selectHidden{
+    //     position: absolute;
+    //     right: 0px;
+    //     top:0px;
+    //     height: 100%;
+    //     width: 400px;
+    //     background: whitesmoke;
+    // }
+    // .hideSelect{
+    //     z-index: 2;
+    //     position: absolute;
+    //     right: 10px;
+    //     top: 4px;
+    //     cursor: pointer;
+    // }
+    // .overTable{
+    //     margin-top: 30px;
+    //     text-align: center;
+    //     height: calc(100% - 40px);
+    //     overflow: auto;
+    //     #selectHiddenTroubleAssigninfodata {
+    //         tr:nth-of-type(odd) {
+    //             background-color: white;
+    //         }
+    //         tr:last-child{
+    //             min-width: 50px;
+    //         }
+    //         td {
+    //             vertical-align: middle;
+    //         }
+
+    //         .graphicListSelect {
+    //             background: #edf4ff !important;
+    //         }
+    //     }
+    // }
+
+}
+
+.widget-HiddenTroubleAudit-pop {
+    width: 100%;
+    height: 100%;
+    overflow: auto;
+}

+ 5 - 3
src/widgets/HiddenTroubleSearchAll/Widget.html

@@ -7,11 +7,13 @@
         <div class="form-group">
             <label class=" control-label">状态</label>
             <select class="input-sm form-control processId minwidth" id="processId">
-                <option selected value=''>全部 </option>
-                <option value='1'>派工审核 </option>
+                <option selected value=''>全部</option>
+                <option value='1'>审核派工</option>
                 <option value='2'>现场处理</option>
                 <option value='3'>协调处理</option>
-                <option value='4'>完成处理 </option>
+                <option value='5'>处理待审核</option>
+                <option value='4'>完成处理</option>
+
             </select>
         </div>
         <div class="form-group">

+ 12 - 6
src/widgets/HiddenTroubleSearchAll/Widget.ts

@@ -121,19 +121,25 @@ class HiddenTroubleSearchAll extends BaseWidget {
         lookInfo.push(getHtml.hiddenReport);
         if(dataInfo.governPersonDepartmentName){
             lookInfo.push(getHtml.dispatchAudit)
-        }else{
-            return lookInfo;
         }
+        // else{
+        //     return lookInfo;
+        // }
         if(dataInfo.handleList&&dataInfo.handleList.length>0){
             lookInfo.push(getHtml.action);
-        }else{
-            return lookInfo;
         }
+        // else{
+        //     return lookInfo;
+        // }
         if(dataInfo.coordinateList&&dataInfo.coordinateList.length>0){
             lookInfo.push(getHtml.coordinate);
-        }else{
-            return lookInfo;
         }
+        if((dataInfo.auditList&&dataInfo.auditList.length>0)||(dataInfo.auditHisList&&dataInfo.auditHisList.length>0)){
+            lookInfo.push(getHtml.finishAudit);
+        }
+        // else{
+        //     return lookInfo;
+        // }
         return lookInfo
     }
 

+ 4 - 3
src/widgets/HiddenTroubleSearchAllAdmin/Widget.html

@@ -7,11 +7,12 @@
         <div class="form-group">
             <label class=" control-label">状态</label>
             <select class="input-sm form-control processId minwidth" id="processId">
-                <option selected value=''>全部 </option>
-                <option value='1'>派工审核 </option>
+                <option selected value=''>全部</option>
+                <option value='1'>审核派工</option>
                 <option value='2'>现场处理</option>
                 <option value='3'>协调处理</option>
-                <option value='4'>完成处理 </option>
+                <option value='4'>完成处理</option>
+                <option value='5'>处理待审核</option>
             </select>
         </div>
         <div class="form-group">

+ 12 - 6
src/widgets/HiddenTroubleSearchAllAdmin/Widget.ts

@@ -121,19 +121,25 @@ class HiddenTroubleSearchAllAdmin extends BaseWidget {
         lookInfo.push(getHtml.hiddenReport);
         if(dataInfo.governPersonDepartmentName){
             lookInfo.push(getHtml.dispatchAudit)
-        }else{
-            return lookInfo;
         }
+        //else{
+        //    return lookInfo;
+        //}
         if(dataInfo.handleList&&dataInfo.handleList.length>0){
             lookInfo.push(getHtml.action);
-        }else{
-            return lookInfo;
         }
+        //else{
+        //    return lookInfo;
+        //}
         if(dataInfo.coordinateList&&dataInfo.coordinateList.length>0){
             lookInfo.push(getHtml.coordinate);
-        }else{
-            return lookInfo;
         }
+        if((dataInfo.auditList&&dataInfo.auditList.length>0)||(dataInfo.auditHisList&&dataInfo.auditHisList.length>0)){
+            lookInfo.push(getHtml.finishAudit);
+        }
+        //else{
+        //    return lookInfo;
+        //}
         return lookInfo
     }
 

+ 1 - 1
src/widgets/HomePage/echartDisplay.class.ts

@@ -159,7 +159,7 @@ class EchartDisplay {
             },
             tooltip: {
                 trigger: 'item',
-                formatter: '{b} : {c} 公里',
+                formatter: '{b} : {c}',
                 backgroundColor: "rgba(50,50,50,0.5)"
             },
             yAxis: {

+ 1 - 1
src/widgets/LengthStatistics/config.json

@@ -6,7 +6,7 @@
     "LayerName": "/exts/TFGeoAPISOE/getLayerInfor",
     "LengthstatisticService": "/exts/TFGeoAPISOE/statistic",
     "fieldIntersect": "/exts/TFGeoAPISOE/fieldIntersect",
-    "VisibleField": ["SUBTYPE ", "LDIAMETER","SDIAMETER","DISTRICT", "MATERIAL","DIAMETER", "JUNCTION", "OCCUPYSURF", "GASCHAR", "ANTIMATERIAL", "DATATYPE", "VENDER", "OWNERDEPT", "MANAGEDEPT"],
+    "VisibleField": ["SUBTYPE", "LDIAMETER","SDIAMETER","DISTRICT", "MATERIAL","DIAMETER", "JUNCTION", "OCCUPYSURF", "GASCHAR", "ANTIMATERIAL", "DATATYPE", "VENDER", "OWNERDEPT", "MANAGEDEPT"],
     "shieldField": ["OBJECTID"],
     "queryAlias": "/exts/TFGeoAPISOE/queryAlias",
     "getuniquevalue": "/exts/TFGeoAPISOE/getFieldUniqueValue",

+ 1 - 16
src/widgets/MaintenanceAuditFirst/Widget.ts

@@ -129,7 +129,7 @@ class MaintenanceAuditFirst extends BaseWidget {
      */
     initPage(data) {
         this.popup.setSize(1000, 730);
-        var Obj = this.popup.Show("一级审核", this.template.split('$$')[1]);
+        var Obj = this.popup.Show("接处警完成审核", this.template.split('$$')[1]);
         let getHtml = this.AppX.runtimeConfig.maintenancePageInfo;
         let dataState=[];
         dataState.push(getHtml.state.maintenanceReport);//1
@@ -167,21 +167,6 @@ class MaintenanceAuditFirst extends BaseWidget {
                     "id":this.dataTable.aExtentData.currentTableData.id
 
             }
-            // delete data[""];
-            // let sendData = new FormData();
-            // for (let item in data) {
-            //     if (item.indexOf("File") != -1||item.indexOf("file") != -1) {
-            //         let files = data[item];
-            //         if (files && files.length > 0) {
-            //             for (let i = 0; i < files.length; i++) {
-            //                 sendData.append(item, files[i]);
-            //             };
-            //         }
-            //     } else {
-            //         sendData.append(item, data[item]);
-            //     }
-            // }
-            // sendData.append('id', this.dataTable.aExtentData.currentTableData.id);
             this.ajaxSend.sendAjax(this, sendData, this.config.rushReport, this.ajaxSend.type.post, this.rushReport.bind(this));
         }.bind(this));
     }

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

@@ -129,7 +129,7 @@ class MaintenanceAuditSecond extends BaseWidget {
      */
     initPage(data) {
         this.popup.setSize(1000, 730);
-        var Obj = this.popup.Show("二级审核", this.template.split('$$')[1]);
+        var Obj = this.popup.Show("销警审核", this.template.split('$$')[1]);
         let getHtml = this.AppX.runtimeConfig.maintenancePageInfo;
         let dataState=[];
         dataState.push(getHtml.state.maintenanceReport);//1

+ 61 - 0
src/widgets/MaintenanceInfoManagement/Widget.html

@@ -0,0 +1,61 @@
+<div class="widget-MaintenanceInfoManagement">
+    <div class="MaintenanceInfoManagement_tit">
+        <div class="form-inline">
+            <div class="form-group">
+                <input type="text" autocomplete="off" class="form-control userCode" name="userCode" placeholder="姓名" />
+
+            </div>
+            <div class="form-group">
+                <button id="btn_search" type="button" class="btn_search">
+                    查询
+                </button>
+            </div>
+            <div class="form-group">
+                <button id="btn_addMaintenanceInfoManagement" type="button" class="btn_addMaintenanceInfoManagement">
+                       新增
+                    </button>
+            </div>
+
+            <div class="form-group">
+                <button id="btn_editMaintenanceInfoManagement" type="button" class="btn_editMaintenanceInfoManagement">
+                        修改
+                </button>
+            </div>
+            <div class="form-group">
+                <button id="btn_deleteMaintenanceInfoManagement" type="button" class="btn_deleteMaintenanceInfoManagement">
+                        删除
+                </button>
+            </div>
+            <!-- <div class="form-group">
+                <button id="btn_editUserMore" type="button" class="btn_editUserMore">
+                           批量修改
+                </button>
+            </div> -->
+            <div class="form-group groupright">
+                <div class="btn_exportExcel">
+                    <img src="./widgets/KeyEquipment/images/export.png" />
+                    <span>导出</span>
+                </div>
+                <!-- <div class="btn_importUserInfoManagement">
+                    <img src="./widgets/KeyEquipment/images/import.png" />
+                    <span>导入</span>
+                </div>
+                <div class="">
+                    <a href='/widgets/UserInfoManagement/绵竹中民燃气用户信息模板.xlsx' download="绵竹中民燃气用户信息模板">
+                        <img src="./widgets/KeyEquipment/images/download.png" />
+                        <span>模板下载</span>
+                    </a>
+                </div> -->
+        </div>
+        </div>
+    </div>
+    <div class="fullpaneltable MaintenanceInfoManagementinfo" id='MaintenanceInfoManagementinfo'>
+        <table class="table table-bordered  table-striped" id='MaintenanceInfoManagementinfodata' cellspacing="0">
+        </table>
+    </div>
+    $$
+    <div class="widget-MaintenanceInfoManagement_addpopup">
+
+    </div>
+    $$
+</div>

+ 392 - 0
src/widgets/MaintenanceInfoManagement/Widget.ts

@@ -0,0 +1,392 @@
+import BaseWidget = require('core/BaseWidget.class');
+import Functions = require('core/Functions.module');
+import AjaxSend = require("common/AjaxSend.class");
+import VerificationHelper = require("common/VerificationHelper.class")
+export = MaintenanceInfoManagement;
+enum action {
+    add, update
+}
+class MaintenanceInfoManagement extends BaseWidget {
+    baseClass = "widget-MaintenanceInfoManagement";
+    map = null;
+    toast = null;
+    popup = null;
+    loadWait = null;
+    dataTable = null;
+    ajaxSend = null;
+    dataTableValue = null;
+    currentData = null;
+    verificationHelper = null;
+    searchInfo = {};
+    title = null;
+
+    /**
+     * @function 初始化启动
+     */
+    startup() {
+        this.configure();
+        this.initHtml();
+        this.initEvent();
+    }
+
+    /**
+     * @function 页面初始化
+     */
+    initHtml() {
+        var html = _.template(this.template.split('$$')[0] + "</div>")();
+        this.setHtml(html);
+        this.ready();
+        this.getAdjustingCounterAccount();
+    }
+
+    configure() {
+        this.toast = this.AppX.runtimeConfig.toast;
+        this.popup = this.AppX.runtimeConfig.popup;
+        this.map = this.AppX.runtimeConfig.map;
+        this.ajaxSend = new AjaxSend();
+        this.verificationHelper = new VerificationHelper();
+        this.loadWait = this.AppX.runtimeConfig.loadWait;
+
+    }
+    planBegindate = {
+        format: 'YYYY-MM-DD hh:mm:ss', //日期格式
+        isinitVal: true
+
+    }
+    /**
+     * 初始化事件
+     */
+    initEvent() {//btn_MaintenanceInfoManagement
+        this.domObj.find(".btn_addMaintenanceInfoManagement").off().click(e => {
+            this.addVehicleGPSInfo();
+        });
+        this.domObj.find(".btn_search").off().click(e => {
+            this.getAdjustingCounterAccount();
+        });
+        this.domObj.find(".btn_editMaintenanceInfoManagement").off().click(e => {
+            this.editVehicleGPSInfo();
+        });
+        this.domObj.find(".btn_deleteMaintenanceInfoManagement").off().click(e => {
+            this.deleteVehicleGPSInfo();
+        });
+        this.domObj.find(".btn_exportExcel").off().click(e => {
+            this.domObj.find(".buttons-excel").trigger("click");
+        });
+
+    }
+    searchInfoCondition(){
+        var acceptUserName = this.domObj.find(".userCode").val();
+        this.searchInfo = {
+            "acceptUserName":acceptUserName
+        };
+    }
+    addVehicleGPSInfo() {
+        this.initPage();
+    }
+    initPage(dataInfo?) {
+        this.popup.setSize(1000, 730);
+        this.title = dataInfo ? "详情" : "新增";
+        let actionInfo = dataInfo ? action.update : action.add;
+        var Obj = this.popup.Show(this.title, this.template.split('$$')[1]);
+        let getHtml = this.AppX.runtimeConfig.maintenancePageInfo;
+        var data = null;
+        if (dataInfo) {
+            data = dataInfo;
+            dataInfo.reportState = true;
+        }
+        let state= getHtml.state.MaintenanceInfoManagement;
+        if(dataInfo){
+            state=null;
+        }
+        getHtml.getLinkHtml_Manage(this, Obj.conObj.find('.widget-MaintenanceInfoManagement_addpopup'), [getHtml.state.MaintenanceInfoManagement], state, data);
+        $.jeDate(Obj.conObj.find(".createTime"), this.planBegindate);
+        // if(!dataInfo){
+        //     Obj.conObj.find(".voicegroup").hide();
+        // }
+        Obj.submitObj.off("click").on("click", function () {
+            if (Obj.conObj.find('.phone').val() == undefined || Obj.conObj.find('.phone').val() == "") {
+                this.toast.show("联系电话不能为空");
+                return;
+            }
+            else {
+                if (!this.verificationHelper.isPhone(Obj.conObj.find('.phone').val(), this.toast, '联系人电话号码输入有误!')) {
+                    return;
+                }
+            }
+            // if(Obj.conObj.find('.alarmPeopleName').val() == undefined || Obj.conObj.find('.alarmPeopleName').val() == ""){
+            //     this.toast.show("报警人姓名不能为空");
+            //     return;
+            // }
+            if(Obj.conObj.find('.address').val() == undefined || Obj.conObj.find('.address').val() == ""){
+                this.toast.show("地址不能为空");
+                return;
+            }
+            if(actionInfo == action.add){
+                let data = this.getWriteInfo(Obj.conObj);
+                let sendData = new FormData();
+                for (let item in data) {
+                    if (item =="report" || item == "handle") {
+                        let files = data[item];
+                        if (files && files.length > 0) {
+                            for (let i = 0; i < files.length; i++) {
+                                sendData.append(item, files[i]);
+                            };
+                        }
+                    } else {
+                        sendData.append(item, data[item]);
+                    }
+                }
+                // if (dataInfo) {
+                //     sendData.append('id', dataInfo.id);
+                // }
+                //sendData.append('constructionState', getHtml.workOrderState.waitConduct);
+                this.ajaxSend.sendFileAjax(this, sendData, this.config.addAdjustingCounterAccountInfo, this.ajaxSend.type.post, this.addAdjustingCounterAccountInfoCallback.bind(this));
+            }else{
+                this.popup.close();
+            }
+
+        }.bind(this));
+    }
+    initPage_edit(dataInfo?) {
+        this.popup.setSize(1000, 730);
+        this.title = "修改";
+        //let actionInfo = dataInfo ? action.update : action.add;
+        var Obj = this.popup.Show(this.title, this.template.split('$$')[1]);
+        let getHtml = this.AppX.runtimeConfig.maintenancePageInfo;
+        var data = null;
+        if (dataInfo) {
+            data = dataInfo;
+            dataInfo.reportState = true;
+        }
+        let state= getHtml.state.MaintenanceInfoManagement;
+        // if(dataInfo){
+        //     state=null;
+        // }
+        getHtml.getLinkHtml_Manage(this, Obj.conObj.find('.widget-MaintenanceInfoManagement_addpopup'), [getHtml.state.MaintenanceInfoManagement], state, data);
+        $.jeDate(Obj.conObj.find(".createTime"), this.planBegindate);
+        // if(!dataInfo){
+        //     Obj.conObj.find(".voicegroup").hide();
+        // }
+        Obj.submitObj.off("click").on("click", function () {
+            if (Obj.conObj.find('.phone').val() == undefined || Obj.conObj.find('.phone').val() == "") {
+                this.toast.show("联系电话不能为空");
+                return;
+            }
+            else {
+                if (!this.verificationHelper.isPhone(Obj.conObj.find('.phone').val(), this.toast, '联系人电话号码输入有误!')) {
+                    return;
+                }
+            }
+            // if(Obj.conObj.find('.alarmPeopleName').val() == undefined || Obj.conObj.find('.alarmPeopleName').val() == ""){
+            //     this.toast.show("报警人姓名不能为空");
+            //     return;
+            // }
+            if(Obj.conObj.find('.address').val() == undefined || Obj.conObj.find('.address').val() == ""){
+                this.toast.show("地址不能为空");
+                return;
+            }
+            //if(actionInfo == action.add){
+                let data = this.getWriteInfo(Obj.conObj);
+                let sendData = new FormData();
+                for (let item in data) {
+                    if (item =="report" || item == "handle") {
+                        let files = data[item];
+                        if (files && files.length > 0) {
+                            for (let i = 0; i < files.length; i++) {
+                                sendData.append(item, files[i]);
+                            };
+                        }
+                    } else {
+                        sendData.append(item, data[item]);
+                    }
+                }
+                // if (dataInfo) {
+                //     sendData.append('id', dataInfo.id);
+                // }
+                sendData.append('id', dataInfo.id);
+                //sendData.append('constructionState', getHtml.workOrderState.waitConduct);
+                this.ajaxSend.sendFileAjax(this, sendData, this.config.updateAdjustingCounterAccountInfo, this.ajaxSend.type.post, this.updateAdjustingCounterAccountInfoCallback.bind(this));
+            //}else{
+            //    this.popup.close();
+            //}
+
+        }.bind(this));
+    }
+     /**
+     * 获取pop表单里面的数据
+     * @param obj pop表单的jq对象
+     * */
+    getWriteInfo(obj) {
+        let data = new Object();
+        //获取input里面的数据
+        let dataDom = obj.find('.form-group.form-inline input:not([readonly])')
+        for (var i = 0; i < dataDom.length; i++) {
+            if (dataDom[i].type != 'file') {
+                if (dataDom[i].fileType == 'date') {
+                    Object.defineProperty(data, dataDom[i].name, {
+                        configurable: true,
+                        writable: true,
+                        enumerable: true,
+                        value: this.ajaxSend.conductAddTime(dataDom[i].value)
+                    })
+                } else {
+                    Object.defineProperty(data, dataDom[i].name, {
+                        configurable: true,
+                        writable: true,
+                        enumerable: true,
+                        value: dataDom[i].value
+                    })
+                };
+            } else {
+                Object.defineProperty(data, dataDom[i].name, {
+                    configurable: true,
+                    writable: true,
+                    enumerable: true,
+                    value: dataDom[i].files
+                })
+            }
+        };
+        //获取textarea里面的数据
+        dataDom = obj.find('.form-group.form-inline textarea:not([readonly])')
+        for (var i = 0; i < dataDom.length; i++) {
+            Object.defineProperty(data, dataDom[i].name, {
+                configurable: true,
+                writable: true,
+                enumerable: true,
+                value: dataDom[i].value
+            })
+        };
+        //获取select里面的数据
+        dataDom = obj.find('.form-group.form-inline select')
+        for (var i = 0; i < dataDom.length; i++) {
+            let selectDom=$(dataDom[i]).find('option:selected');
+            let value=[];
+            if(selectDom&&selectDom.length>0){
+                for(let i=0;i<selectDom.length;i++){
+                    value.push(selectDom[i]['value']);
+                }
+            }
+           let valueString=value.join(',')
+            Object.defineProperty(data, dataDom[i].name, {
+                configurable: true,
+                writable: true,
+                enumerable: true,
+                value: valueString
+            })
+        };
+        return data;
+    }
+    addAdjustingCounterAccountInfoCallback(results) {
+        if (this.ajaxSend.checkResults(this, results)) {
+            this.toast.show("应急调度信息添加成功!")
+            this.getAdjustingCounterAccount();
+        }
+        this.popup.Close();
+    }
+    // updateAdjustingCounterAccountInfoCallback(results){
+
+    // }
+    /**
+     * 修改应急调度信息
+     */
+    editVehicleGPSInfo() {
+        if (!this.dataTable.aExtentData||!this.dataTable.aExtentData.currentTableData) {
+            this.toast.show("请选择应急调度信息进行调整!");
+            return;
+        }
+        this.initPage_edit(this.dataTable.aExtentData.currentTableData);
+        //弹出popup
+
+    }
+
+    //处理时间格式数据选择时间是天的时候在最后追加00:00:00
+    setDate(data){
+        let dateString=["useTime","xjTime"];
+        dateString.forEach(item=>{
+            if(data[item]&&data[item]!=""){
+                let item2=data[item].split(" ");
+                if(item2.length<2){
+                    data[item]=data[item] + "00:00:00"
+                }
+            }
+        });
+        return data;
+    }
+
+    updateAdjustingCounterAccountInfoCallback(results) {
+        if (this.ajaxSend.checkResults(this, results)) {
+            this.toast.show("应急调度信息修改成功!")
+            this.getAdjustingCounterAccount();
+        }
+        this.popup.Close();
+    }
+
+    deleteVehicleGPSInfo() {
+        if (!this.dataTable.aExtentData.checkCurrentData||this.dataTable.aExtentData.checkCurrentData.length == 0) {
+            this.toast.show("请选择需要删除的应急调度信息");
+            return;
+        }
+        this.popup.setSize(300, 200);
+        var Obj = this.popup.ShowMessage("提示", "是否删除选择数据?");
+        Obj.submitObj.off("click").on("click", function () {
+            let data = [];
+            for (let i = 0; i < this.dataTable.aExtentData.checkCurrentData.length; i++) {
+                let item = this.dataTable.aExtentData.checkCurrentData[i];
+                data.push(item.id);
+            }
+            this.ajaxSend.sendAjax(this, data, this.config.deleteAdjustingCounterAccount, this.ajaxSend.type.delete, this.deleteAdjustingCounterAccountCallback.bind(this));
+        }.bind(this));
+    }
+
+    deleteAdjustingCounterAccountCallback(results) {
+        if (this.ajaxSend.checkResults(this, results)) {
+            this.toast.show("应急调度信息删除成功!")
+            this.getAdjustingCounterAccount();
+        }
+        this.popup.Close();
+    }
+
+    getAdjustingCounterAccount() {
+        this.loadWait.show("正在查询数据,请耐心等待...", this.domObj);
+        let that = this;
+        this.searchInfoCondition();
+        if (that.dataTable) {
+            that.dataTable.ajax.reload();
+            return;
+        };
+        let option = {
+            that: this,
+            dataTable: that.dataTable,
+            elementId: "MaintenanceInfoManagementinfodata",
+            url: that.config.getAdjustingCounterAccountList,
+            searchInfo: that.searchInfo,//条件在不断变化,故需要有全局的条件监听
+            displayTitle: ["时间", "接警人姓名", "地址", "电话", "反应情况", "处置情况"],
+            displayField: ["createTime", "acceptUserName", "address", "phone", "reportDescription", "handleDescription"],
+            extentDisplayTitle: ['详情'],
+            extentDisplayContent: [{
+                field: "infoWrite",
+                fieldContent: "<a class='infoWrite'>详情</a>"
+            }],
+            beforeTrClickEvent: undefined,
+            afterTrClickEvent: undefined,
+            drawEvent: function(){
+                that.domObj.off('click', '.infoWrite').on('click', ".infoWrite", e => {
+                    that.initPage(that.dataTable.aExtentData.currentTableData);
+                    //that.getPlanInfo(that.dataTable_all.aExtentData.currentTableData);
+                });
+            }.bind(this),
+            errmassage: "应急调度台账查询失败",
+            nullmessage: undefined,
+            exportTitle: "应急调度台账信息"
+        }
+        that.dataTable = this.ajaxSend.DataTables_check(option);
+    }
+
+    /**
+     * 销毁对象
+     */
+    destroy() {
+        this.domObj.remove();
+        this.afterDestroy();
+    }
+}

+ 15 - 0
src/widgets/MaintenanceInfoManagement/config.json

@@ -0,0 +1,15 @@
+{
+    "widgetUrl": "widgets/MaintenanceInfoManagement",
+    "tmplateUrl": "widgets/MaintenanceInfoManagement/Widget.html",
+    "styleUrl": "widgets/MaintenanceInfoManagement/css/style.css",
+    "getAdjustingCounterAccountList": "/zmrq/schedulerregister/page",
+    "addAdjustingCounterAccountInfo": "/zmrq/schedulerregister/save",
+    "updateAdjustingCounterAccountInfo":"/zmrq/schedulerregister/update",
+    "deleteAdjustingCounterAccount": "/zmrq/schedulerregister/deleteByIds",
+    "getVehicleTypeManagerList": "/zmrqcar/cartype/page",
+    "getAllDepartment":"/base/department/page",
+    "pagenumber": 1,
+    "pagesize": 25,
+    "maxsize": 100000,
+    "zoomscale": 2000
+}

+ 58 - 0
src/widgets/MaintenanceInfoManagement/css/style.scss

@@ -0,0 +1,58 @@
+.widget-MaintenanceInfoManagement {
+    height: 100%;
+    .MaintenanceInfoManagement_tit {
+        .form-group {
+            float: left;
+            margin: 4px 0px 4px 4px;
+        }
+        .groupright{
+            display: flex;
+            position: absolute;
+            right: 15px;
+            div{
+                margin-right: 15px;
+                cursor: pointer;
+            }
+        }
+        button{
+            min-width: 80px;
+            max-width: 100px;
+            height: 34px;
+            color: white;
+            background: #1A77E0;
+            border-radius: 3px;
+            border: none;
+            cursor: pointer;
+        }
+    }
+    .fullpaneltable {
+        overflow-y: hidden;
+        height: calc(100% - 44px) !important;
+        a.infoWrite{
+            color: rgba(0,0,255,0.7) !important;
+        }
+    }
+}
+
+.widget-MaintenanceInfoManagement_addpopup {
+    height: 100%;
+    overflow: auto;
+    .managersmanagement {
+        height: 100%;
+        padding-left: 20px;
+        padding-right: 20px;
+        .progress {
+            display: none
+        }
+        .input-group-btn {
+            padding-top: 1px;
+        }
+        label{
+            width: 80px;
+            text-align: right !important;
+        }
+        input{
+            width: 250px;
+        }
+    }
+}

BIN
src/widgets/MaintenanceInfoManagement/images/people.png


BIN
src/widgets/MaintenanceInfoManagement/images/planpoint.png


BIN
src/widgets/MaintenanceInfoManagement/images/popup.png


BIN
src/widgets/MaintenanceInfoManagement/images/textbg.png


+ 52 - 0
src/widgets/MaintenancePageInfo/Widget.html

@@ -271,3 +271,55 @@ $$
     <span class='maintenancePageInfoPopInfoLook operationLook' index=${index}>${state}</span><br />
     </div>
 </div>
+$$
+<div class='stateInfo'><span class='titleInfo'>台帐信息</span> <span class='' name='createTime'></span></div>
+<div class="form-group form-inline userSelect">
+    <div class='item'>
+        <label class=" control-label">填报时间</label>
+        <input type="text" autocomplete="off" class="form-control createTime" name="createTime"
+        placeholder="地址" >
+    </div>
+    <div class='item'>
+        <label class=" control-label">接警人姓名</label>
+        <input type="text" autocomplete="off" class="form-control acceptUserName" name="acceptUserName"
+        placeholder="接警人姓名" >
+    </div>
+
+</div>
+<div class="form-group form-inline">
+    <div class='item'>
+        <label class=" control-label">电话</label>
+        <input type="text" autocomplete="off" class="form-control  phone" name="phone"
+        placeholder="电话" />
+    </div>
+    <div class='item'>
+        <label class=" control-label">地址</label>
+        <input type="text" autocomplete="off" class="form-control address" name="address"
+        placeholder="地址" >
+    </div>
+</div>
+<div class="form-group form-inline">
+    <div class='oneItem'>
+        <label class=" control-label">反映情况</label>
+        <textarea class="form-control  reportDescription" rows="3" name="reportDescription" showname='reportDescription' placeholder="反映情况"></textarea>
+    </div>
+</div>
+<div class="form-group form-inline hideWrite">
+    <div class='oneItem fileListHasnotPre'>
+        <label class=" control-label">反映情况附件</label>
+        <input type="file" class="form-control file reportDescriptionFile" fileType='file' showname='reportDescriptionFile' name="report" placeholder="反映情况附件">
+    </div>
+</div>
+<div class="form-group form-inline">
+    <div class='oneItem'>
+        <label class=" control-label">处置情况</label>
+        <textarea class="form-control  handleDescription" rows="3" name="handleDescription" showname='handleDescription' placeholder="处置情况"></textarea>
+    </div>
+</div>
+
+<div class="form-group form-inline hideWrite">
+    <div class='oneItem fileListHasnotPre'>
+        <label class=" control-label">处置情况附件</label>
+        <input type="file" class="form-control file handleDescriptionFile" fileType='file' showname='handleDescriptionFile' name="handle" placeholder="处置情况附件">
+    </div>
+</div>

+ 33 - 3
src/widgets/MaintenancePageInfo/Widget.ts

@@ -34,7 +34,9 @@ class MaintenancePageInfo extends BaseWidget {
         /**一级审核 */
         AuditFirst:5,
         /**二级审核 */
-        AuditSecond:6
+        AuditSecond:6,
+        /**台帐管理页面 */
+        MaintenanceInfoManagement:8
     };
 
     /**控制当前状态*/
@@ -1284,8 +1286,8 @@ class MaintenancePageInfo extends BaseWidget {
         let two = "<span state>抢修处理派工</span>";
         let two_2 = "<span state>抢修处理回报</span>";
         let three = "<span state>归档</span>";
-        let four = "<span state>一级审核</span>";
-        let five = "<span state>二级审核</span>";
+        let four = "<span state>接处警完成审核</span>";
+        let five = "<span state>销警审核</span>";
         if(data&&data.workOrderState){
             switch(data.workOrderState){
                 case "1":
@@ -1462,6 +1464,30 @@ class MaintenancePageInfo extends BaseWidget {
         // formDom.find(".precessInfo .complete .glyphicon").remove();
         // formDom.find(".precessInfo .complete").append('<span class="glyphicon glyphicon-ok-sign" aria-hidden="true"></span>');
     };
+    /**台帐展示 */
+    getLinkHtml_Manage(that, dom, states, writeState, data) {
+
+        let formHtml = "";
+        formHtml = _.template(this.template.split('$$')[0])();
+        dom.empty().append(formHtml);
+
+        let formDom = dom.find("#widget-MaintenancePageInfo_form");
+        if (Object.prototype.toString.call(states) == "[object Array]") {
+            states.forEach(item => {
+                let type = (item == writeState ? this.actionType.write : this.actionType.look)
+                switch (item) {
+                    //台帐
+                    case this.state.MaintenanceInfoManagement:
+                        this.getMaintenanceInfoManagementPage(that, formDom, item, type, data);
+                        break;
+                    default:
+                        this.getMaintenanceInfoManagementPage(that, formDom, item, type, data);
+                        break;
+                }
+            })
+        }
+
+    };
     /**一级类型和二级类型的联动
      * @param that 用于获取全局的一些配置
      * @param dDom 部门下拉框dom
@@ -1871,6 +1897,10 @@ class MaintenancePageInfo extends BaseWidget {
         this.setPageHtml(dom, state);
         this.initLinkHtml_list(that, dom, data, type,data.schedulerAuditTowList[0])
     }
+    getMaintenanceInfoManagementPage(that, dom, state, type, data){
+        this.setPageHtml(dom, state);
+        this.initLinkHtml(that, dom, data, type)
+    }
     /**
      * 销毁对象
      */

+ 4 - 4
src/widgets/MaintenancePageInfo/config.json

@@ -25,17 +25,17 @@
                 "name":"第三方挖断管道",
                 "value":1
             },{
-                "name":"室内泄",
+                "name":"室内泄",
                 "value":2
             },{
-                "name":"室外泄",
+                "name":"室外泄",
                 "value":3
             },{
-                "name":"调压器阀井泄",
+                "name":"调压器阀井泄",
                 "value":4
             }]
         },{
-            "name":"非泄处置",
+            "name":"非泄处置",
             "value":2,
             "subtype":[{
                 "name":"无气",

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

@@ -30,11 +30,11 @@
                         新增
                     </button>
                 </div>
-                <div class="form-group">
+                <!-- <div class="form-group">
                     <button title="删除计划" id="btn_deleteplans" type="button" class="btn_deleteplans" data-toggle="modal">
                         删除
                     </button>
-                </div>
+                </div> -->
                 <!-- <div class="form-group">
                     <button title="转移计划" id="btn_transplans" type="button" class="btn btn-default btn-danger btn_transplans" data-toggle="modal">
                         <span class="glyphicon glyphicon-share-alt" aria-hidden="true"></span>转移

+ 36 - 0
src/widgets/PlanSearchAdmin/Widget.html

@@ -42,6 +42,11 @@
                         查询
                     </button>
                 </div>
+                <div class="form-group">
+                    <button type="button" class="btn-edit">
+                        修改接收人
+                    </button>
+                </div>
                 <div class="form-group">
                     <button type="button" class="btn-delete">
                         删除
@@ -132,3 +137,34 @@ $$
            是否删除数据?
     </div>
 </div>
+$$
+<div id="widget-PipeRecordSearchAdmin-edit" >
+    <div class="form-group form-inline userSelect">
+        <div class='item'>
+            <label class=" control-label">部门</label>
+            <select class="input-sm form-control  responsibleDepartment" data-live-search="true"
+                name='responsibleDepartment' showname='responsibleDepartmentName' data-style="btn-primary">
+            </select>
+        </div>
+        <div class='item'>
+            <label class=" control-label">主要人员</label>
+            <select class="input-sm form-control  responsibleUserId" data-live-search="true"
+                name='responsibleUserId' showname='responsibleUserName' data-style="btn-primary">
+            </select>
+        </div>
+    </div>
+    <div class="form-group form-inline userSelect">
+        <div class='item'>
+            <label class=" control-label">部门</label>
+            <select class="input-sm form-control  mdispatchingDepartment" data-live-search="true"
+                name='mdispatchingDepartment' showname='mdispatchingDepartmentName' multiple data-style="btn-primary">
+            </select>
+        </div>
+        <div class='item'>
+            <label class=" control-label">协助人员</label>
+            <select class="input-sm form-control  mdispatchingUserId" data-live-search="true"
+                name='mdispatchingUserId' showname='mdispatchingUserName' multiple data-style="btn-primary">
+            </select>
+        </div>
+    </div>
+</div>

+ 169 - 2
src/widgets/PlanSearchAdmin/Widget.ts

@@ -20,6 +20,7 @@ import geometryEngine = require("esri/geometry/geometryEngine");
 import MapSet = require("common/MapSet.class");
 import AjaxSend = require("common/AjaxSend.class")
 import ArcGISDynamicMapServiceLayer = require('esri/layers/ArcGISDynamicMapServiceLayer');
+import VerificationHelper = require("common/VerificationHelper.class");
 enum selectType {
     all, single
 }
@@ -36,6 +37,7 @@ class PlanSearchAdmin extends BaseWidget {
     toast = null;
     popup = null;
     loadWait = null;
+    verificationHelper = null;
     plan_pontype_layer: GraphicsLayer;//巡检任务计划片区图层
     planLayer: GraphicsLayer;//巡检任务计划片区图层
     plan_ptype_layer: GraphicsLayer;//显示具体巡检任务包含的巡检设备信息图层
@@ -63,7 +65,7 @@ class PlanSearchAdmin extends BaseWidget {
     dataTable_all_searchInfo = {};//巡检查询条件
     dataTable_plan = null;
     dataTable_planInfo = null;
-
+    initTag = [];
 
     /**
      * @function 启动初始化
@@ -83,6 +85,7 @@ class PlanSearchAdmin extends BaseWidget {
         this.popup = this.AppX.runtimeConfig.popup;
         this.map = this.AppX.runtimeConfig.map;
         this.ajaxSend = new AjaxSend();
+        this.verificationHelper = new VerificationHelper();
         this.loadWait = this.AppX.runtimeConfig.loadWait;
         this.mapSet = new MapSet();
         if (this.AppX.appConfig.gisResource.filterMapRQ.config.length > 0) {
@@ -202,9 +205,173 @@ class PlanSearchAdmin extends BaseWidget {
                 }.bind(this));
             }
         }.bind(this));
+        //修改责任人
+        this.domObj.find(".btn-edit").off("click").on("click", function () {
+            // this.clearCurrentTr();
+            // this.getPlanSearch();
+            if (!this.dataTable_all.aExtentData.checkCurrentData) {
+                this.toast.show("请选择数据");
+                return
+            }
+            this.popup.setSize(1000, 730);
+            let title = "修改责任人";
+            var Obj = this.popup.Show(title, this.template.split('$$')[7]);
 
-    }
+        }.bind(this));
 
+    }
+    initLinkHtml(that, dom, data, type) {
+        // if(type == this.actionType.write){
+        //     dom.find(".schedulerExecuteHisList").parent().css("display","none")
+        //     dom.find(".schedulerMaintenanceHisList").parent().css("display","none")
+        //     dom.find(".schedulerAuditOneHisList").parent().css("display","none")
+        //     dom.find(".schedulerAuditTowHisList").parent().css("display","none")
+        // }
+        //通过input的类型和name属性值对input控件进行初始化
+        for (var item of dom.find("input")) {
+            if (this.initTag.indexOf(item) == -1) {
+                this.initTag.push(item);
+                if (item.type == "text") {
+                    if (item.attributes.fileType && item.attributes.fileType.value == 'date' && type == this.actionType.write) {
+                        let planBegindate = {
+                            format: 'YYYY-MM-DD', //日期格式
+                            isinitVal: true,
+                        }
+                        $.jeDate(item, planBegindate);
+                    } else {
+                        for (var dataItem in data) {
+                            if (dataItem == item.name) {
+                                item.value = this.verificationHelper.setNullAndUndefinedEnpty(data[dataItem]);
+                                if ((item.value + "").indexOf("00:00:00") != -1) {
+                                    item.value = (item.value + "").replace("00:00:00", "");
+                                }
+                            }
+                        }
+                        if (type == this.actionType.look) {
+                            $(item).attr("readonly", "readonly");
+                            $(item).attr("title", item.value);
+                        }
+                    }
+                }
+                if (item.type == "file" && that) {
+                    let fileInit = false;
+                    if (data && type == this.actionType.look) {
+                        for (var dataItem in data) {
+                            if (dataItem == item.attributes.showname.value) {
+                                fileInit = true;
+                                let imgHtml = "";
+                                let imgList = [];
+                                let fileHtml = "";
+                                let fileList = [];
+                                let notFile = "未上传附件";
+                                if (data[dataItem].length && data[dataItem].length > 0) {
+                                    data[dataItem].forEach((fileItem, index) => {
+                                        if (this.ajaxSend.isImg(fileItem.path)) {
+                                            imgList.push({ fileName: fileItem.fileName, path: fileItem.path });
+                                        } else {
+                                            fileList.push({ fileName: fileItem.fileName, path: fileItem.path });
+                                        }
+                                    })
+                                }
+                                if (imgList.length > 0) {
+                                    imgList.forEach((imgItem, index) => {
+                                        imgHtml += "<li><img src='" + this.ajaxSend.getIamgeAddress(that, imgItem.path) + "'></li>";
+                                    })
+                                }
+                                if (fileList.length > 0) {
+                                    fileList.forEach((fileItem, index) => {
+                                        fileHtml += "<li><a href=" + this.ajaxSend.getFileAddress(that, fileItem) + " download='" + fileItem.fileName + "'>" + fileItem.fileName + "</li>";
+                                    })
+                                }
+                                $(item).after("<div class='fileInfoList'></div>")
+                                if (fileList.length > 0 || imgList.length > 0) {
+                                    let imgId = item.attributes.showname.value + "_imgList";
+                                    if (imgHtml != "") {
+                                        $(item).parents(".form-group").find(".fileInfoList").append("<div class='fileItemUl'><ul class='fileInfoListItem' id='" + imgId + "'>" + imgHtml + "</ul></div>");
+                                        $(item).parents(".form-group").find(".fileItemUl #" + imgId).viewer();
+                                    }
+                                    if (fileHtml != "") {
+                                        let fileId = item.name + "_fileList";
+                                        $(item).parents(".form-group").find(".fileInfoList").append("<div class='fileItemUl'><ul class='fileInfoListItem' id='" + fileId + "'>" + fileHtml + "</ul></div>")
+                                    }
+                                } else {
+                                    $(item).parents(".form-group").find(".fileInfoList").append("<span class='fileInfoNot'>" + notFile + "</span>")
+                                }
+                                $(item).remove();
+                            }
+                        }
+                    }
+                    if (!fileInit) {
+                        let fileList = [];
+                        for (var dataItem in data) {
+                            if (item.attributes.showname && item.attributes.showname.value && dataItem == item.attributes.showname.value && data[dataItem]) {
+                                if (data[dataItem] instanceof Array) {
+                                    fileList = data[dataItem]
+                                } else {
+                                    fileList.push(data[dataItem])
+                                }
+                            }
+                        }
+                        if (item.attributes.fileType.value == "file") {
+                            let dom = $(item);
+                            this.ajaxSend.initFileFileInputs(dom, fileList, that);
+                            this.fileDom.push(dom);
+                        } else if (item.attributes.fileType.value == "image") {
+                            let dom = $(item)
+                            this.ajaxSend.initFileImageInputs($(item), fileList, that);
+                            this.fileDom.push(dom);
+                        }
+                    }
+                }
+            }
+        }
+        //通过textarea的name属性值对textarea控件进行初始化
+        for (var item of dom.find("textarea")) {
+            if (this.initTag.indexOf(item) == -1) {
+                this.initTag.push(item);
+                for (var dataItem in data) {
+                    if (dataItem == item.name) {
+                        item.value = this.verificationHelper.setNullAndUndefinedEnpty(data[dataItem]);
+                    }
+                }
+                if (type == this.actionType.look) {
+                    $(item).attr("readonly", "readonly");
+                    $(item).attr("title", item.value);
+                }
+            }
+        }
+        //通过select的name属性值对textarea控件进行初始化
+        for (var item of dom.find("select")) {
+            if (this.initTag.indexOf(item) == -1) {
+                this.initTag.push(item);
+                let index = 0;
+                let length = 0;
+                for (var dataItem in data) {
+                    length++;
+                    if (item.attributes.showname && dataItem == item.attributes.showname.value && type == this.actionType.look) {
+                        $(item).after('<input type="text" class="form-control" readonly="readonly" value="' + this.verificationHelper.setNullAndUndefinedEnpty(data[dataItem]) + '">');
+                        let parentDom = $(item).parents('.userSelect');
+                        if (parentDom.length > 0) {
+                            parentDom.find('.item:first-child').remove();
+                            parentDom.find('.item').addClass('oneItem').removeClass('item');
+                        }
+                        $(item).remove();
+                    } else { index++ };
+                }
+                if (index == length && type == this.actionType.look) {
+                    $(item).after('<input type="text" class="form-control" readonly="readonly" >');
+                    $(item).remove();
+                }
+                if (type == this.actionType.look) {
+                    $(item).attr("readonly", "readonly");
+                } else {
+                    if (data&&(this.verificationHelper.setNullAndUndefinedEnpty(data[item.name]) + "").trim() != "") {
+                        $(item).val(this.verificationHelper.setNullAndUndefinedEnpty(data[item.name]));
+                    }
+                }
+            }
+        }
+    }
     /**
      * @function 初始化巡检计划列页面值
      */

+ 2 - 2
src/widgets/SqlQuery/config.json

@@ -10,13 +10,13 @@
     "saveFiled":{
         "气源":["地址","埋设方式","设备编码","埋深","管径","地面高程","材质","管线类别","特征"],
         "场站":["名称","地址","供气能力","气源","设计压力"],
-        "调压设备":["设备编码","地址","材质","规格型号","生产厂家","所属区县","竣工日期"],
+        "调压设备":["设备编码","地址","材质","规格型号","生产厂家","所属区县","竣工日期","特征"],
         "穿越点":["地址","状态","材质","备注"],
         "阀门":["设备编码","材质","规格型号","特征","生产厂家","设施状态","所属区县","竣工日期"],
         "阴极保护":["保护电位","编码","埋深深度","高程","位置","材质","特征","埋设方式"],
         "SCADA监测点":["地址","埋设方式","设备编码","埋深","管径","地面高程","材质","管线类别","特征"],
         "节点":["地址","防腐等级","型号","埋设方式","设备编码","埋深","管径","地面高程","材质","管线类别","特征"],
-        "套管":["地址","防腐等级","型号","埋设方式","设备编码","埋深","管径","地面高程","材质","管线类别","特征"],
+        "套管":["地址","防腐等级","型号","埋设方式","设备编码","埋深","管径","地面高程","材质","管线类别","特征类型"],
         "燃气桩":["地址","埋设方式","设备编码","埋深","管径","地面高程","材质","管线类别","特征"],
         "高压管线":["地址","修建日期","防腐等级","型号","埋设方式","设备编码","埋深","管径","地面高程","材质","管线类别","特征"],
         "次高压管线":["地址","修建日期","防腐等级","型号","埋设方式","设备编码","埋深","管径","地面高程","材质","管线类别","特征"],

+ 0 - 46
src/widgets/UserInfoManagement/Widget.html

@@ -42,52 +42,6 @@
                         <span>模板下载</span>
                     </a>
                 </div>
-
-            <!-- <div class="form-group">
-                <input type="text" autocomplete="off" class="form-control userCode" name="userCode" placeholder="用户编码/地址/用户名/调压器编号">
-                <button id="btn_search" type="button" class="btn btn-sm btn-default btn-success btn_search">
-                    <span class="glyphicon glyphicon-search" aria-hidden="true"></span>查询
-                </button>
-            </div>
-            <div class="form-group">
-                <button id="btn_add" type="button"
-                    class="btn btn-sm btn-default btn-success btn_addUserInfoManagement">
-                    <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>新增
-                </button>
-            </div>
-            <div class="form-group">
-                <button id="btn_add" type="button"
-                    class="btn btn-sm btn-default btn-success btn_importUserInfoManagement">
-                    <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>导入
-                </button>
-            </div>
-            <div class="form-group">
-                <button id="btn_edit" type="button"
-                    class="btn  btn-sm btn-default btn-success btn_editUserInfoManagement">
-                    <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>修改
-                </button>
-            </div>
-            <div class="form-group">
-                <button id="btn_delete" type="button"
-                    class="btn btn-sm btn-default btn-success btn_editUserMore">
-                    <span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>批量修改
-                </button>
-            </div>
-            <div class="form-group">
-                <button id="btn_delete" type="button"
-                    class="btn btn-sm btn-default btn-success btn_deleteUserInfoManagement">
-                    <span class="glyphicon glyphicon-remove" aria-hidden="true"></span>删除
-                </button>
-            </div>
-            <div class="form-group">
-                <button id="btn_delete" type="button"
-                    class="btn btn-sm btn-default btn-success btn_expUserInfoManagement">
-                    <span class="glyphicon glyphicon-export" aria-hidden="true"></span>导出
-                </button>
-            </div>
-            <div class="form-group">
-                <a href="/widgets/UserInfoManagement/绵竹中民燃气用户信息模板.xlsx" download="绵竹中民燃气用户信息模板">导入模板下载</a>
-            </div> -->
         </div>
     </div>
     <div class="fullpaneltable UserInfoManagementinfo" id='UserInfoManagementinfo'>

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

@@ -46,7 +46,7 @@
                                     <span class="right" title='上线时间'>%data</span>
                                 </div>
                                 <div class="foot">
-                                    <span>巡检里程(km):</span><span class="">%data</span>
+                                    <span>参考里程(km):</span><span class="">%data</span>
                                 </div>
                             </div>
                         </div>

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

@@ -49,7 +49,7 @@
                                     <span class="right" title='上线时间'>%data</span>
                                 </div>
                                 <div class="foot">
-                                    <span>巡检里程(km):</span><span class="">%data</span>
+                                    <span>参考里程(km):</span><span class="">%data</span>
                                 </div>
                             </div>
                         </div>