Kaynağa Gözat

部件信息添加安全信息TAB页

李顺 2 yıl önce
ebeveyn
işleme
d747291800

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

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

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

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

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

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

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

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

+ 2 - 2
src/widgets/PipeUnitInfo/css/style.scss

@@ -505,7 +505,7 @@
   }
 
   //设计页面的样式
-  #unitQuality {
+  #unitQuality,#security {
     .baseInfo {
       width: 100%;
 
@@ -923,7 +923,7 @@
   }
 
   //合同与材料信息
-  #unitDesignPaper {
+  #unitDesignPaper,.securityclass {
     .remake {
       position: relative;
       float: left;