scd_network.html 64 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045
  1. <!DOCTYPE html>
  2. <!--[if IE 8]>
  3. <html lang="en" class="ie8 no-js"> <![endif]-->
  4. <!--[if IE 9]>
  5. <html lang="en" class="ie9 no-js"> <![endif]-->
  6. <html>
  7. <head>
  8. <meta charset="utf-8"/>
  9. <title>SCD文档管理系统</title>
  10. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  11. <meta content="width=device-width, initial-scale=1.0" name="viewport"/>
  12. <meta http-equiv="Content-type" content="text/html; charset=utf-8">
  13. <link rel="stylesheet" type="text/css" href="/static/css/sub_bureau.css">
  14. <link rel="stylesheet" type="text/css" href="/static/css/common.css"/>
  15. <link rel="stylesheet" type="text/css" href="/static/css/font-awesome.min.css"/>
  16. <link rel="stylesheet" type="text/css" href="/static/layui_2/css/layui.css" media="all"/>
  17. <link rel="stylesheet" type="text/css" href="/static/css/kmsjsmap.css"/>
  18. <link rel="stylesheet" type="text/css" href="/static/css/zTreeStyle/global.css">
  19. <script src="/static/js/jquery.min.js" type="text/javascript"></script>
  20. <script src="/static/js/echarts.min.js" type="text/javascript"></script>
  21. <script src="/static/js/template.js" type="text/javascript"></script>
  22. <script src="/static/js/police_o.js" type="text/javascript"></script>
  23. <script src="/static/layui_2/layui.js" type="text/javascript"></script>
  24. <script src="/static/js/global.js" type="text/javascript"></script>
  25. <script type="text/javascript" src="/static/js/ztree/jquery.ztree.all_useicon.js"></script>
  26. <script src="/static/js/jquery.slimscroll.min.js" type="text/javascript"></script>
  27. <script src="/static/js/TweenMax.js" type="text/javascript"></script>
  28. <script src="/static/js/mqtt.min.js" type="text/javascript"></script>
  29. <script src="/static/js/kmsjsmap.js" type="text/javascript"></script>
  30. <script src="/static/js/jquery.pagination.js" type="text/javascript"></script>
  31. <style type="text/css">
  32. .layui-tab-title .layui-this{color: #fff;background: #134BEA;border-radius: 1rem;}
  33. .layui-tab-title .layui-this::after{border-color:transparent;}
  34. .layui-tab-title li{background: #fff;color: #134BEA}
  35. .tree .tree-plus.ace-icon:first-child, .tree .tree-minus.ace-icon:first-child{
  36. border: 1px solid #7B929D;
  37. background-color: #134BEA;
  38. }
  39. .tree .tree-plus.ace-icon:first-child::before, .tree .tree-minus.ace-icon:first-child::before{
  40. border-top: 1px solid #A8B9C4;
  41. }
  42. .tree .tree-plus.ace-icon:first-child::after{
  43. border-left: 1px solid #A8B9C4;
  44. }
  45. </style>
  46. </head>
  47. <body>
  48. <div class="monitor_center" style="width:100%;height: 100%;">
  49. <div class="header">
  50. <div class="header_logo">
  51. <img src="/static/images/logo.jpg">
  52. </div>
  53. <div class="system_middle_title">
  54. <span class="system_big_title">SCD文档管理系统</span>
  55. <span class="orgname f_l text_overflow" id="orgname"></span><span class="stationname hidden" id="stationname"></span>
  56. <div class="scd_info f_l" id="scd_info">
  57. <span class="scd_name text_overflow"></span>
  58. <span style="margin-left: 1rem;margin-right: 1rem;font-size: 1.5rem;float: left;"><i class="fa fa-caret-up"></i></span>
  59. </div>
  60. </div>
  61. <div class="header_background">
  62. <div>
  63. <div class="main_bar" id="main_bar" style="float: left;margin-right: 2rem;">
  64. <div class="app_default accessControl app_active" mark="screen" access-code="pl_menu_screen" onclick="window.location.href='scd_network.html'">
  65. <i class="app_icon fa fa-fw fa-gg"></i>
  66. <span>网络结构图</span>
  67. </div>
  68. <div class="app_default accessControl" mark="screen" access-code="pl_menu_screen" onclick="window.location.href='scd_o.html'">
  69. <i class="app_icon fa fa-fw fa-file-image-o"></i>
  70. <span>SCD可视化</span>
  71. </div>
  72. <div class="app_default accessControl" mark="outin" access-code="pl_menu_outin" onclick="window.location.href='scd_inout.html'">
  73. <i class="app_icon fa fa-fw fa-exchange fa-rotate-90"></i>
  74. <span>签入签出</span>
  75. </div>
  76. <div class="app_default accessControl" mark="scdtools" access-code="pl_menu_scdtools" onclick="window.location.href='scd_files.html'">
  77. <i class="app_icon fa fa-fw fa-file-code-o"></i>
  78. <span>配置文件</span>
  79. </div>
  80. <div class="app_default accessControl" mark="stat" access-code="pl_menu_stat" onclick="window.location.href='scd_stat.html'">
  81. <i class="app_icon fa fa-fw fa-pie-chart"></i>
  82. <span>统计分析</span>
  83. </div>
  84. <div class="app_default accessControl" mark="admin" access-code="pl_menu_admin" onclick="window.location.href='police_o_admin.html'" style="margin-right: 0;">
  85. <i class="app_icon fa fa-fw fa-laptop"></i>
  86. <span>管理后台</span>
  87. </div>
  88. </div>
  89. <div class="app_default" style="color: #7A13E1;">|</div>
  90. <div class="app_default">
  91. <span class="yyyymmdd f_l" style="cursor:default;font-size: 1.4rem;font-family:electronicFont;width: 8rem;">&nbsp</span>
  92. <span class="week f_l" style="cursor:default;font-size: 1.4rem;width: 5rem;">&nbsp</span>
  93. <span class="hour_minute f_l" style="cursor:default;letter-spacing: 0.3rem;font-size: 1.4rem;color: #516380;font-family:electronicFont;width: 8rem;">&nbsp;</span>
  94. </div>
  95. <div class="app_default" style="color: #7A13E1;">/</div>
  96. <div class="app_default" style="border-bottom: 0px solid #7A13E1;height: 93%;">
  97. <a style="font-size: 1.4rem;cursor: pointer;" href="/" title="当前登录人员"><i class="fa fa-user" style="color: #00CEFB;font-size: 1.8rem;margin-right: 0.5rem;"></i><span id="login_user_name"></span></a>
  98. </div>
  99. <div class="app_default" style="color: #7A13E1;">/</div>
  100. <div class="app_default" style="border-bottom: 0px solid #7A13E1;height: 93%;">
  101. <a style="font-size: 1.6rem;cursor: pointer;" href="/" title="退出"><i class="layui-icon layui-icon-logout" style="background-color: transparent !important;color: #00CEFB;"></i></a>
  102. </div>
  103. </div>
  104. </div>
  105. <div class="user_role hidden" id="login_user_role"></div>
  106. </div>
  107. <div class="body_content">
  108. <!--中间-->
  109. <div class="body_center home_center" id="container_map">
  110. <div id="container_map_ied" style="position: absolute;z-index: 1;height: 100%;width: 77%;left: 20%;top:0;"></div>
  111. </div>
  112. </div>
  113. </div>
  114. <!--SCD列表-->
  115. <div class="scd_list hidden" id="scd_list"></div>
  116. <!--电压等级列表-->
  117. <div class="station_list hidden" id="voltage_level_list"></div>
  118. <!--间隔列表-->
  119. <div class="station_list hidden" id="area_list">
  120. <div></div>
  121. </div>
  122. <!--设备类型列表-->
  123. <div class="station_list hidden" id="device_type_list"></div>
  124. <!--左侧树-->
  125. <!--展开按钮-->
  126. <div id="scd_tree_btn" title="显示SCD结构树" class="abs scd_node_tree_btn hidden"><i class="fa fa-caret-right" style="color: #fff"></i></div>
  127. <!--树-->
  128. <div id="scd_tree_list" class="abs scd_node_tree ">
  129. <div class="title f_l"><span class="f_l">变电站列表</span></div>
  130. <div class="list f_l station_list" style="background-color: transparent;"></div>
  131. </div>
  132. <!--IED结构关系图窗口-->
  133. <div id="device_video" class="site_device_list hidden" style="height: 64rem;width: 48rem;">
  134. <span class="text_overflow caption" style="position: relative;color: #fff;height: 5%;line-height: 4rem;"><b></b><i class="fa fa-times" title="关闭窗口" onclick="$('#device_video').addClass('hidden')" style="font-size: 2.4rem;"></i></span>
  135. <div class="dataitemlist" style="padding:0;height:85%;width: 100%; text-align: center;overflow: hidden;position: relative;">
  136. <canvas id="canvas" style="position: absolute;left: 0;top:0;z-index: 1;background-color: transparent;height:100%;width: 100%;"></canvas>
  137. <div id="dataitemlist" style="position: absolute;left: 0;top:0;z-index: 0;height:100%;width: 100%;"></div>
  138. </div>
  139. <span class="caption" style="position: relative;color: #fff;height: 10%;background-color: #ffffff45;">
  140. <span style="float: left;width: 4%;font-size: 1.8rem;text-align: center;background-color: #425280;padding: 1rem;">关联IED</span>
  141. <span style="float: left;width: 93%;overflow: auto;height: 6rem;" class="ref_ied_list"></span>
  142. </span>
  143. </div>
  144. <div id="ied_strcut" class="site_device_list hidden" style="height: 64rem;width: 48rem;">
  145. <span class="text_overflow caption" style="position: relative;color: #fff;height: 5%;line-height: 4rem;"><b></b><i class="fa fa-times" title="关闭窗口" onclick="$('#ied_strcut').addClass('hidden');$('#showLnList').remove();" style="font-size: 2.4rem;"></i></span>
  146. <div class="dataitemlist" style="padding:0;height:85%;width: 100%; text-align: center;overflow: hidden;position: relative;">
  147. <div id="ied_strcut_detail" style="position: absolute;left: 0;top:0;z-index: 0;height:100%;width: 100%;overflow: auto;"></div>
  148. </div>
  149. <span class="caption" style="position: relative;color: #fff;height: 10%;background-color: #ffffff45;">
  150. <span style="float: left;width: 4%;font-size: 1.8rem;text-align: center;background-color: #425280;padding: 1rem;">关联IED</span>
  151. <span style="float: left;width: 93%;overflow: auto;height: 6rem;" class="ref_ied_list"></span>
  152. </span>
  153. </div>
  154. <div id="dialog_public" class="site_device_list dialog_public">
  155. <span class="text_overflow caption"><b></b>
  156. <span class="dlg_close" title="关闭窗口">
  157. <span class="dlg_icon_close"></span>
  158. </span>
  159. </span>
  160. <div class="dataitemlist">
  161. <div id="ln_strcut_detail" style="position: absolute;left: 0;top:0;z-index: 0;height:100%;width: 100%;"></div>
  162. </div>
  163. </div>
  164. <!--SCL校验-->
  165. <script type="text/html" id="checktools_scl_tpl">
  166. <div id="node_tree" class="f_l" style="width: 20%;text-align: left;background-color: #F3F5FA;border-radius: 4px;border: 1px solid #DCDEE3;">
  167. <div class="ztree tree"></div>
  168. </div>
  169. <div id="content_div" class="f_l" style="width: 78%;height: 100%;position: relative;background: #fff;margin-left: 1%;">
  170. <div class="f_l stat" style="width: 100%;height: 4rem;line-height: 4rem;">
  171. <span>
  172. <span alert_level="" style="margin: 0 1rem;cursor: pointer;">全部:<b class="alert_level_all">0</b></span>
  173. <span alert_level="error" style="margin: 0 1rem;cursor: pointer;">错误:<b class="alert_level_error">0</b></span>
  174. <span alert_level="waring" style="margin: 0 1rem;cursor: pointer;">告警:<b class="alert_level_waring">0</b></span>
  175. <span alert_level="hint" style="margin: 0 1rem;cursor: pointer;">提示:<b class="alert_level_hint">0</b></span>
  176. <span class="btn f_l accessControl func_scdcomp_exportexcel" access-code="func_scdcomp_exportexcel" isall="1" style="width: 12rem;margin-top: 0.3rem;margin-left: 1.5rem;text-align: center;"><i class="fa fa-file-excel-o"></i>导出所有结果</span>
  177. <span class="btn f_l accessControl func_scdcomp_exportexcel" access-code="func_scdcomp_exportexcel" isall="0" style="width: 15rem;margin-top: 0.3rem;margin-left: 1.5rem;text-align: center;"><i class="fa fa-file-excel-o"></i>导出当前节点结果</span>
  178. </span>
  179. </div>
  180. <div class="datalist_header" style="height: 4rem;line-height: 2.6rem;overflow: auto;width: 100%">
  181. <table style="width: 100%;text-align: left;background-color: #423176;"><thead><tr>
  182. <td class="" style="width: 6%;padding-left: 1rem;">装置名称</td>
  183. <td class="" style="width: 14%">装置描述</td>
  184. <td class="" style="width: 8%">等级</td>
  185. <td class="" style="width: 8%">行号</td>
  186. <td class="" style="width: 47%">描述</td>
  187. <td class="" style="width: 15%">标准及条款</td>
  188. </tr></thead></table>
  189. </div>
  190. <div class="f_l datalist" style="width: 100%;"></div>
  191. <div class="f_l pagebar pagination" style="width: 100%;height: 4rem;line-height: 2rem;"></div>
  192. </div>
  193. </script>
  194. <script type="text/html" id="checktools_scl_datalist_tpl">
  195. <table style="width: 100%;text-align: left;table-layout: fixed;">
  196. <tbody>
  197. {{each data}}
  198. <tr class="alert_level_{{$value.alert_level}}" alertid="{{$value.node_id}}">
  199. <td class="" style="width: 6%;padding-left: 1rem;">{{#($value.ied_name||"-")}}</td>
  200. <td class="" style="width: 14%;line-height: 2rem;">{{#($value.ied_desc||"-")}}</td>
  201. <td class="" style="width: 8%">{{alertLevelDesc $value.alert_level}}</td>
  202. <td class="" style="width: 8%;line-height: 2rem;"><a style="color: #8080f0;text-decoration: underline;cursor: pointer;" href="javascript:PoliceObject.OpenToXml({{$value.scd_id}},{{$value.line_no}},'{{$value.parse_result}}')">{{$value.line_no}}</a></td>
  203. <td class="" style="width: 47%;line-height: 2rem;">{{$value.parse_result}}</td>
  204. <td class="" style="width: 15%;line-height: 2rem;" title="">{{$value.apply_standard}} {{$value.apply_standard_no}}</td>
  205. </tr>
  206. {{/each}}
  207. </tbody>
  208. </table>
  209. </script>
  210. <!--SCD校验-->
  211. <script type="text/html" id="checktools_scd_tpl">
  212. <div class="f_l" style="width: 30%">
  213. <div id="scd_comp_tools" class="f_l" style="width: 100%;height: 5rem;text-align: left;">
  214. <span class="btn f_l accessControl func_scdcomp_new" access-code="func_scdcomp_new" style="width: 10rem;margin-left: 1.5rem;text-align: center;"><i class="fa fa-plus"></i>新的比对</span>
  215. <span class="btn f_l accessControl func_scdcomp_start" access-code="func_scdcomp_start" style="width: 10rem;margin-left: 1.5rem;text-align: center;"><i class="fa fa-check"></i>重新比对</span>
  216. <span class="btn f_l accessControl func_scdcomp_exportexcel" access-code="func_scdcomp_exportexcel" style="width: 12rem;margin-left: 1.5rem;text-align: center;"><i class="fa fa-file-excel-o"></i>导出所有结果</span>
  217. </div>
  218. <div id="scd_comp_list" class="f_l" style="width: 100%;height: 90%;text-align: left;background-color: #fbfbfb;border: 1px solid #f2f2f2;">
  219. <table class="datalist_header f_l" style="width: 100%;text-align: center;background-color: #fbfbfb;"><thead><tr>
  220. <td class="text_overflow" style="width: 9%;">选择</td>
  221. <td class="text_overflow" style="width: 40%;">比对SCD</td>
  222. <td class="text_overflow" style="width: 38%;">日期</td>
  223. <td class="text_overflow" style="width: 10%;">操作</td>
  224. </tr></thead></table>
  225. <div class="datalist f_l"></div>
  226. </div>
  227. </div>
  228. <div id="content_div" class="f_l" style="width: 68%;margin-left: 1.5%;height: 98%;position: relative;background: #fff;border: 1px solid #C8D4E2;border-radius:0.5rem;background: #F3F5FA;">
  229. <div id="node_tree" class="f_l" style="width: 97%;height: 4rem;line-height: 4rem;text-align: left;color: #516380;background: #FFF;margin:1%;">
  230. <div class="f_l" style="text-align: center;width: 49%"><span>基准SCD:</span><b style="color: #09162C">—</b></div>
  231. <div class="f_l" style="width: 2%;color: #516380;font-weight: bold;text-align: center;font-size: 2rem;">|</div>
  232. <div class="f_l" style="text-align: center;width: 49%"><span>比对SCD:</span><b style="color: #09162C">—</b></div>
  233. </div>
  234. <div id="comp_show_area" class="f_l" style="width: 100%;height: 90.5%;margin-left: 0;position: relative;">
  235. <div>请选择比对记录或创建新的比对</div>
  236. </div>
  237. </div>
  238. </script>
  239. <script type="text/html" id="checktools_scd_datalist_tpl">
  240. <table style="width: 100%;text-align: center;">
  241. <tbody>
  242. {{each data}}
  243. <tr style="border-bottom: 1px solid #f0f0f0;">
  244. <td class="text_overflow" style="width: 9%;">{{if $value.node_state=="1"}}<input type="radio" name="comp_selected" value="{{$value.id}}">{{else}}&nbsp;{{/if}}</td>
  245. <td class="text_overflow" style="width: 40%" title="{{$value.source_name}}与{{$value.target_name}}">{{#($value.name||"-")}}</td>
  246. <td class="text_overflow" style="width: 38%">{{$value.CREATED_TIME}}</td>
  247. <td class="text_overflow" style="width: 10%">
  248. {{if $value.node_state=="1"}}
  249. <span onclick="PoliceObject.CheckTools_Scd_Comp_Detail(this,'{{$value.id}}','{{$value.source_name}}','{{$value.target_name}}','{{$value.source_id}}','{{$value.target_id}}')" style="cursor: pointer;border-bottom: 1px solid #9784d0;color: #9784d0;">查看</span>
  250. {{else}}...{{/if}}
  251. </td>
  252. </tr>
  253. {{/each}}
  254. </tbody>
  255. </table>
  256. </script>
  257. <script type="text/html" id="comp_scd_tpl">
  258. <div class="abs comp_scd" style="left:20%">
  259. <img src="/static/images/comp_scd/version.png">
  260. <div class="scd_font">SCD版本</div>
  261. <div style="margin-top: 1rem;">
  262. <div><img src="/static/images/comp_scd/change_icon_1.png" style="width: 1rem"><b>&nbsp;&nbsp;{{version.target||'无'}}</b></div>
  263. <div><img src="/static/images/comp_scd/allow.png" style="height: 4rem;width: 1rem;"></div>
  264. <div style="color: #000;"><img src="/static/images/comp_scd/change_icon_2.png" style="width: 1rem"><b>&nbsp;&nbsp;{{version.source||'无'}}</b></div>
  265. </div>
  266. </div>
  267. <div class="abs comp_scd" style="left:45%">
  268. <img src="/static/images/comp_scd/crc.png">
  269. <div class="scd_font">CRC</div>
  270. <div style="margin-top: 1rem;">
  271. <div><img src="/static/images/comp_scd/change_icon_1.png" style="width: 1rem"><b>&nbsp;&nbsp;{{crc.target||'无'}}</b></div>
  272. <div><img src="/static/images/comp_scd/allow.png" style="height: 4rem;width: 1rem;"></div>
  273. <div style="color: #000;"><img src="/static/images/comp_scd/change_icon_2.png" style="width: 1rem;"><b>&nbsp;&nbsp;{{crc.source||'无'}}</b></div>
  274. </div>
  275. </div>
  276. <div class="abs comp_scd" style="left:70%">
  277. <img src="/static/images/comp_scd/ied.png">
  278. <div class="scd_font">IED</div>
  279. </div>
  280. <div class="abs" id="ied_change_stat">
  281. <div class="change_btn f_l" style="color: #134BEA" change_type='i' change_num="{{ied.addnum||'0'}}"><span class="abs linkpointer">&nbsp;</span><img src="/static/images/comp_scd/add.png"> 新增({{ied.addnum||'0'}})</div>
  282. <div class="change_btn f_l" style="color: #FFBC11" change_type='u' change_num="{{ied.editnum||'0'}}"><span class="abs linkpointer">&nbsp;</span><img src="/static/images/comp_scd/edit.png"> 更改({{ied.editnum||'0'}})</div>
  283. <div class="change_btn f_l" style="color: #FF0000" change_type='d' change_num="{{ied.delnum||'0'}}"><span class="abs linkpointer">&nbsp;</span><img src="/static/images/comp_scd/del.png"> 删除({{ied.delnum||'0'}})</div>
  284. </div>
  285. </script>
  286. <script type="text/html" id="comp_scd_ied_tpl">
  287. <div class="f_l comp_ied_list" id="comp_ied_list">
  288. <div style="font-weight: bold;text-align: left;border-bottom: 1px solid #ccc;line-height: 3rem;">【{{opt}}】的设备列表 ({{num}})</div>
  289. <div class="ied_data_list">
  290. {{each list}}
  291. <div class="ied_item text_overflow" title="{{$value.ied_desc}}" ied_name="{{$value.ied_name}}">({{$value.ied_name}}){{$value.ied_desc}}</div>
  292. {{/each}}
  293. </div>
  294. <div class="ied_comp_items">
  295. <div class="f_l node" type='ied' num='0'><i class="f_l fa fa-caret-right" /><span class="f_l">装置信息</span><span class="f_r num">0</span></div>
  296. <div class="f_l children hidden" p_type="ied" type="scd.ied" num='0'><span class="f_l">基本信息</span><span class="f_r num">0</span></div>
  297. <div class="f_l node" type='Communication' num='0'><i class="f_l fa fa-caret-right" /><span class="f_l">通信参数</span><span class="f_r num">0</span></div>
  298. <div class="f_l children hidden" p_type="Communication" type="scd.ied.Communication" num='0'><span class="f_l">通信接入点</span><span class="f_r num">0</span></div>
  299. <div class="f_l children hidden" p_type="Communication" type="scd.ied.Communication.S1" num='0'><span class="f_l">站控层通信参数</span><span class="f_r num">0</span></div>
  300. <div class="f_l children hidden" p_type="Communication" type="scd.ied.Communication.GSE" num='0'><span class="f_l">GOOSE 通信参数</span><span class="f_r num">0</span></div>
  301. <div class="f_l children hidden" p_type="Communication" type="scd.ied.Communication.SMV" num='0' num='0'><span class="f_l">SV 通信参数</span><span class="f_r num">0</span></div>
  302. <div class="f_l node" type='Point' num='0'><i class="f_l fa fa-caret-right" /><span class="f_l">测点信息</span><span class="f_r num">0</span></div>
  303. <div class="f_l children hidden" p_type="Point" type="scd.ied.YX" num='0'><span class="f_l">遥信</span><span class="f_r num">0</span></div>
  304. <div class="f_l children hidden" p_type="Point" type="scd.ied.YK" num='0'><span class="f_l">遥控</span><span class="f_r num">0</span></div>
  305. <div class="f_l children hidden" p_type="Point" type="scd.ied.YC" num='0'><span class="f_l">遥测</span><span class="f_r num">0</span></div>
  306. <div class="f_l children hidden" p_type="Point" type="scd.ied.YM" num='0'><span class="f_l">遥脉</span><span class="f_r num">0</span></div>
  307. <div class="f_l children hidden" p_type="Point" type="scd.ied.DZ" num='0'><span class="f_l">定值</span><span class="f_r num">0</span></div>
  308. <div class="f_l node" type='config' num='0'><i class="f_l fa fa-caret-right"/><span class="f_l">回路配置</span><span class="f_r num">0</span></div>
  309. <div class="f_l children hidden" p_type="config" type="scd.ied.FCDA" num='0'><span class="f_l">发布虚端子</span><span class="f_r num">0</span></div>
  310. <div class="f_l children hidden" p_type="config" type="scd.ied.ExtRef" num='0'><span class="f_l">定阅虚端子</span><span class="f_r num">0</span></div>
  311. <div class="f_l children hidden" p_type="config" type="scd.ied.Relation" num='0'><span class="f_l">虚回路信息</span><span class="f_r num">0</span></div>
  312. <div class="f_l node" type='model' num='0'><i class="f_l fa fa-caret-right"/><span class="f_l">建模信息</span><span class="f_r num">0</span></div>
  313. <div class="f_l children hidden" p_type="model" type="scd.ied.DatSet" num='0'><span class="f_l">数据集</span><span class="f_r num">0</span></div>
  314. <div class="f_l children hidden" p_type="model" type="scd.ied.DatSetMeber" num='0'><span class="f_l">数据集成员</span><span class="f_r num">0</span></div>
  315. <div class="f_l children hidden" p_type="model" type="scd.ied.GSEControl" num='0'><span class="f_l">GOOSE控制块</span><span class="f_r num">0</span></div>
  316. <div class="f_l children hidden" p_type="model" type="scd.ied.SampledValueControl" num='0'><span class="f_l">SV控制块</span><span class="f_r num">0</span></div>
  317. <div class="f_l children hidden" p_type="model" type="scd.ied.ReportControl" num='0'><span class="f_l">报告控制块</span><span class="f_r num">0</span></div>
  318. <div class="f_l children hidden" p_type="model" type="scd.ied.LogControl" num='0'><span class="f_l">日志控制块</span><span class="f_r num">0</span></div>
  319. </div>
  320. </div>
  321. <div class="f_l comp_ied_result_show" id="comp_ied_result_show">
  322. <div id="node_tree" class="f_l" style="width: 98%;height: 4rem;line-height: 4rem;text-align: left;color: #516380;background: #FFF;margin:1%;">
  323. <div class="f_l" style="text-align: center;width: 49%"><span>基准SCD:</span><b style="color: #09162C">—</b></div>
  324. <div class="f_l" style="width: 2%;color: #516380;font-weight: bold;text-align: center;font-size: 2rem;">|</div>
  325. <div class="f_l" style="text-align: center;width: 49%"><span>比对SCD:</span><b style="color: #09162C">—</b></div>
  326. </div>
  327. <div class="comp_show_area" class="f_l">
  328. <div>正在加载数据中...</div>
  329. </div>
  330. </div>
  331. </script>
  332. <script type="text/html" id="comp_ied_result_show_tpl">
  333. <div class="comp_ied_result_split_line"></div>
  334. <div class="iedele source_ied" style="left: 5%"><img src="/static/images/default_ied.png"><div class="ied_name"></div></div>
  335. <div class="iedele target_ied" style="left: 90%"><img src="/static/images/default_ied.png"><div class="ied_name"></div></div>
  336. </script>
  337. <!--SCD校验模板定义结束-->
  338. <script type="text/html" id="main_tpl">
  339. <div class="scd_tools f_l">
  340. <!--工具栏-->
  341. <div class="tools_btns">
  342. <span class="" onclick="PoliceObject.CheckTools('scd','SCD文件一致性校验')">SCD文件一致性校验</span>
  343. <span class="hidden" onclick="PoliceObject.CheckTools('icd_cid','ICD/CID文件一致性校核')">ICD/CID文件一致性校核</span>
  344. <span class="hidden" onclick="PoliceObject.CheckTools('icd_cid_ied','ICD/CID与SCD中IED一致性')">ICD/CID与SCD中IED一致性</span>
  345. <span onclick="PoliceObject.CheckTools('scl','SCL文件校验')">SCL文件校验</span>
  346. <span class="hidden" onclick="PoliceObject.CheckTools('ccd','CCD文件一致性校验')">CCD文件一致性校验</span>
  347. <span class="hidden" onclick="PoliceObject.CheckTools('ccd_scd','CCD与SCD文件一致性校验')">CCD与SCD文件一致性校验</span>
  348. <span class="" onclick="PoliceObject.CheckTools('crc','CRC校验结果')">CRC校验</span>
  349. </div>
  350. </div>
  351. <div class="scd_filter f_l hidden">
  352. <!--过滤栏-->
  353. <span class="f_l iedNumber" style="font-size: 1.6rem;line-height: 3.6rem;margin-right: 4rem;">共 <b></b> 台装置</span>
  354. <div class="filter_cond f_l" filter_type="voltage_level" id="voltage_level_select">
  355. <span class="filter_text">电压等级</span>
  356. <i class="fa fa-caret-up"></i>
  357. <span class="rect_left_top"></span>
  358. <span class="rect_left_bottom"></span>
  359. <span class="rect_right_top"></span>
  360. <span class="rect_right_bottom"></span>
  361. </div>
  362. <div class="filter_cond f_l" filter_type="area" id="area_select">
  363. <span class="filter_text">间隔</span>
  364. <i class="fa fa-caret-up"></i>
  365. <span class="rect_left_top"></span>
  366. <span class="rect_left_bottom"></span>
  367. <span class="rect_right_top"></span>
  368. <span class="rect_right_bottom"></span>
  369. </div>
  370. <div class="filter_cond f_l" filter_type="device_type" id="device_type_select">
  371. <span class="filter_text">装置类型</span>
  372. <i class="fa fa-caret-up"></i>
  373. <span class="rect_left_top"></span>
  374. <span class="rect_left_bottom"></span>
  375. <span class="rect_right_top"></span>
  376. <span class="rect_right_bottom"></span>
  377. </div>
  378. <!--搜索区域-->
  379. <div id="search_panel" class="search_panel f_l" style="width: 24rem;position: relative;">
  380. <span class="rect_left_top"></span>
  381. <span class="rect_left_bottom"></span>
  382. <span class="rect_right_top"></span>
  383. <span class="rect_right_bottom"></span>
  384. <div class="search_box" >
  385. <input class="search_input" style="width:65%;font-size:1.4rem;color: #BAC5E1" id="search_input" maxlength="40" placeholder="请输入IED编码或者名称"/>
  386. </div>
  387. <span class="search_botton" id="search_button" style="font-size:1.8rem;width:4rem;margin-top: -3.2rem;height: 3.2rem;line-height: 3.2rem;"><i class="fa fa-search"></i></span>
  388. </div>
  389. <div class="station_list hidden" id="search_result"></div>
  390. <!--搜索区域结束-->
  391. </div>
  392. <div class="network" id="network">
  393. <div class="network_area"></div>
  394. </div>
  395. </script>
  396. <script type="text/html" id="ied_list_tpl">
  397. {{each data}}
  398. <div class="f_l ied_list_item" name="{{$value.attr_name}}" id="{{$value.node_id}}">
  399. <img class="f_l" src='/static/images/ied.png'>
  400. <span class="f_l l_c" style="color: #ccc">{{$value.attr_name}}</span>
  401. <span class="f_l">{{$value.attr_desc}}</span>
  402. </div>
  403. {{/each}}
  404. </script>
  405. <script type="text/html" id="ied_detail_tpl">
  406. <div id="ied_list_tree" class="station_list f_l" style="width:19%;height: 100%;text-align: left;position: static;box-shadow: 0px 0px 0px 0px rgba(163,139,243,0.56);">
  407. <div><input type="text" class="layui-input fast_find_list" placeholder="快速查找" style="background: #a09eb9;color: #fff;border-color: #45436a;"></div>
  408. <div></div>
  409. </div>
  410. <div class="tools f_l" style="height: 5rem;width:80%;">
  411. <ul class="layui-tab-title" style="text-align: center;border: 0;padding-top: 1rem;">
  412. <li class="layui-this" onclick="PoliceObject.LoadIedGraph(this,PoliceObject.GetIedData($(this).parents('.site_device_list').attr('ied_name'),$(this).parents('.site_device_list').attr('scd_id')))">装置关联关系</li>
  413. <li class="" onclick="PoliceObject.LoadIedCtrlRelation(this,PoliceObject.GetIedData($(this).parents('.site_device_list').attr('ied_name'),$(this).parents('.site_device_list').attr('scd_id')))">输入输出控制块</li>
  414. <li class="" onclick="PoliceObject.LoadIedAllPointRelation(this,PoliceObject.GetIedData($(this).parents('.site_device_list').attr('ied_name'),$(this).parents('.site_device_list').attr('scd_id')))">虚端子关系</li>
  415. <li class="" onclick="PoliceObject.LoadIedStrcut(this,PoliceObject.GetIedData($(this).parents('.site_device_list').attr('ied_name'),$(this).parents('.site_device_list').attr('scd_id')))">基础信息</li>
  416. <li class="" onclick="PoliceObject.LoadIedDingzhiTable(this,PoliceObject.GetIedData($(this).parents('.site_device_list').attr('ied_name'),$(this).parents('.site_device_list').attr('scd_id')))">定值条目</li>
  417. <li class="" onclick="PoliceObject.LoadIedPointTable(this,PoliceObject.GetIedData($(this).parents('.site_device_list').attr('ied_name'),$(this).parents('.site_device_list').attr('scd_id')))">信息点表</li>
  418. <li class="" onclick="PoliceObject.LoadIedSourceXML(this,PoliceObject.GetIedData($(this).parents('.site_device_list').attr('ied_name'),$(this).parents('.site_device_list').attr('scd_id')))">源文件</li>
  419. </ul>
  420. </div>
  421. <div class="content f_l" style="width:80%">
  422. <div class="hidden" id="ied_info" style="position: relative;height: 100%;">
  423. <div id="ied_strcut_detail" style="height: 60rem;position: relative;"></div>
  424. </div>
  425. <div class="hidden" id="ied_relation" style="position: relative;height: 100%;">
  426. <div class="abs tools layui-tab-title" style="margin: 0 !important;width: 98% !important;border: 0 !important;margin-left: 1% !important;text-align: left;top: 1%;border-bottom: 1px solid #ccc !important;border-radius: 0 !important;">
  427. <li class="layui-this ref_map">关联图</li><li class="sv_send">SV发送</li><li class="sv_revice">SV接收</li><li class="goose_send">GOOSE发送</li><li class="goose_revice">GOOSE接收</li>
  428. </div>
  429. <div id="ied_strcut_detail" style="height: 60rem;position: relative;"></div>
  430. </div>
  431. <div class="hidden" id="ied_allpoint_info" style="position: relative;height: 100%;">
  432. <div id="ied_strcut_detail" style="height: 60rem;position: relative;"></div>
  433. </div>
  434. <div class="hidden" id="ied_basicinfo" style="position: relative;height: 100%;">
  435. <div id="ied_strcut_detail" style="height: 60rem;position: relative;"></div>
  436. </div>
  437. <div class="hidden" id="ied_dingzhiinfo" style="position: relative;height: 100%;">
  438. <div id="ied_strcut_detail" style="height: 60rem;position: relative;"></div>
  439. </div>
  440. <div class="hidden" id="ied_pointtableinfo" style="position: relative;height: 100%;">
  441. <div id="ied_strcut_detail" style="height: 60rem;position: relative;"></div>
  442. </div>
  443. <div class="hidden" id="ied_sourcexmlinfo" style="position: relative;height: 100%;">
  444. <div id="ied_strcut_detail" style="height: 60rem;position: relative;margin: 1rem;"></div>
  445. </div>
  446. </div>
  447. </script>
  448. <script type="text/html" id="station_list_item_tpl">
  449. {{each data}}
  450. <div class="station_list_item" stationid="{{$value.id}}"><i style="height: 1px;" class="f_l fa-fw"><i class="hidden fa fa-dot-circle-o"></i></i>{{$value.area_name}}</div>
  451. {{/each}}
  452. </script>
  453. <script type="text/html" id="voltage_level_item_tpl">
  454. {{each data}}
  455. <div class="voltage_level_item" itemid="{{$value.id}}">
  456. <div class="voltage_level_name">{{$value.name}}</div>
  457. <div class="voltage_level_area"></div>
  458. </div>
  459. {{/each}}
  460. </script>
  461. <script type="text/html" id="select_item_tpl">
  462. {{each data}}
  463. <div class="station_list_item text_overflow" value="{{$value.id||$value.code}}">{{#$value.name}}</div>
  464. {{/each}}
  465. </script>
  466. <script type="text/html" id="dingzhi_datasetlist_tpl">
  467. <table class="headertable" style="width: 98%;">
  468. <thead><tr><td style="width: 4rem">序号</td><td style="width: 4rem">访问点</td><td style="width: 15rem">逻辑设备(Inst)</td><td style="width: 15rem">数据集名称</td><td style="width: 20rem">数据集描述</td></tr></thead>
  469. </table>
  470. <div class="detailtable" style="width: 100%;height: 96%;">
  471. <table style="width: 100%;">
  472. <tbody>
  473. {{each data}}
  474. <tr fcdalist='{{$value.fcdalist}}'><td style="width: 4rem">{{$index+1}}</td>
  475. <td style="width: 4rem">{{$value.accesspoint_name}}</td>
  476. <td style="width: 15rem">{{$value.ld_desc}}({{$value.ld_name}})</td>
  477. <td style="width: 15rem">{{$value.dataset_name}}</td>
  478. <td style="width: 20rem">{{$value.dataset_desc}}</td>
  479. </tr>
  480. {{/each}}
  481. </tbody>
  482. </table>
  483. </div>
  484. </script>
  485. <script type="text/html" id="dingzhi_fcdalist_tpl">
  486. <table class="headertable" style="width: 98%;">
  487. <thead><tr><td style="width: 4rem">序号</td><td style="width: 16rem">条目描述</td><td style="width: 6rem">最大值</td><td style="width: 6rem">最小值</td><td style="width: 6rem">单位</td><td style="width: 6rem">步长</td><td style="width: 12rem">数据类型</td><td style="width: 15rem">内部地址</td></tr></thead>
  488. </table>
  489. <div class="detailtable" style="width: 100%;height: 96%;">
  490. <table style="width: 100%;">
  491. <tbody>
  492. {{each data}}
  493. <tr>
  494. <td style="width: 4rem">{{$index+1}}</td>
  495. <td style="width: 16rem;line-height: 1.2rem;">{{$value.doi_desc}}</td>
  496. <td style="width: 6rem">{{$value.da_maxval||''}}</td>
  497. <td style="width: 6rem">{{$value.da_minval||''}}</td>
  498. <td style="width: 6rem">{{$value.da_units||''}}</td>
  499. <td style="width: 6rem">{{$value.da_stepsize||''}}</td>
  500. <td style="width: 12rem">{{$value.da_datatype||''}}</td>
  501. <td style="width: 15rem">{{$value.short_addr||''}}</td>
  502. </tr>
  503. {{/each}}
  504. </tbody>
  505. </table>
  506. </div>
  507. </script>
  508. <!--信息点表模板-->
  509. <script type="text/html" id="pointtable_datasetlist_tpl">
  510. <table class="headertable" style="width: 98%;">
  511. <thead><tr><td style="width: 4rem">序号</td><td style="width: 4rem">访问点</td><td style="width: 8rem">逻辑设备(Inst)</td><td style="width: 8rem">控制块名称</td><td style="width: 12rem">控制块描述</td><td style="width: 8rem">数据集名称</td><td style="width: 12rem">RptID</td><td style="width: 6rem">完整性周期</td><td style="width: 4rem">配置版本</td><td style="width: 4rem">是否缓存</td><td style="width: 4rem">缓存时间</td><td style="width: 6rem">信息点数量</td></tr></thead>
  512. </table>
  513. <div class="detailtable" style="width: 100%;height: 96%;">
  514. <table style="width: 100%;">
  515. <tbody>
  516. {{each data}}
  517. <tr fcdalist='{{$value.fcdalist}}'>
  518. <td style="width: 4rem">{{$index+1}}</td>
  519. <td style="width: 4rem">{{$value.accesspoint_name}}</td>
  520. <td style="width: 8rem">{{$value.ld_desc}}({{$value.ld_inst}})</td>
  521. <td style="width: 8rem">{{$value.block_name}}</td>
  522. <td style="width: 12rem">{{$value.block_desc}}</td>
  523. <td style="width: 8rem">{{$value.block_datset}}</td>
  524. <td style="width: 12rem">{{$value.block_rptid}}</td>
  525. <td style="width: 6rem">{{$value.block_intgpd}}</td>
  526. <td style="width: 4rem">{{$value.block_confrev}}</td>
  527. <td style="width: 4rem">{{$value.block_buffered}}</td>
  528. <td style="width: 4rem">{{$value.block_buftime}}</td>
  529. <td style="width: 6rem">{{$value.point_cnt}}</td>
  530. </tr>
  531. {{/each}}
  532. </tbody>
  533. </table>
  534. </div>
  535. </script>
  536. <!--信息点表模板-->
  537. <script type="text/html" id="pointtable_fcdalist_tpl">
  538. <table class="headertable" style="width: 98%;">
  539. <thead><tr><td style="width: 4rem">序号</td><td style="width: 20rem">条目描述</td><td style="width: 8rem">数据类型</td><td style="width: 20rem">内部地址</td></tr></thead>
  540. </table>
  541. <div class="detailtable" style="width: 100%;height: 96%;">
  542. <table style="width: 100%;">
  543. <tbody>
  544. {{each data}}
  545. <tr>
  546. <td style="width: 4rem">{{$index+1}}</td><td style="width: 20rem">{{$value.doi_desc}}</td><td style="width: 8rem">{{$value.da_datatype||''}}</td><td style="width: 20rem">{{$value.short_addr||''}}</td>
  547. </tr>
  548. {{/each}}
  549. </tbody>
  550. </table>
  551. </div>
  552. </script>
  553. <!--SV发送列表模板-->
  554. <script type="text/html" id="svsend_datasetlist_tpl">
  555. <table class="headertable" style="width: 98%;">
  556. <thead><tr><td style="width: 4rem">序号</td><td style="width: 10rem">控制块名称</td><td style="width: 8rem">数据集</td><td style="width: 15rem">APPID</td><td style="width: 15rem">MAC地址</td><td style="width: 6rem">VLAN-ID</td></tr></thead>
  557. </table>
  558. <div class="detailtable" style="width: 100%;height: 96%;">
  559. <table style="width: 100%;">
  560. <tbody>
  561. {{each data}}
  562. <tr ctrl_id="{{$value.node_id}}"><td style="width: 4rem">{{$index+1}}</td><td style="width: 10rem">{{$value.attr_name}}</td><td style="width: 8rem">[{{$value.attr_dat_set}}]{{$value.datset_desc}}</td><td style="width: 15rem">{{$value.address.APPID}}</td><td style="width: 15rem">{{$value.address.MAC_Address}}</td><td style="width: 6rem">{{$value.address.VLAN_ID}}</td></tr>
  563. {{/each}}
  564. </tbody>
  565. </table>
  566. </div>
  567. </script>
  568. <!--SV发送列表模板-->
  569. <script type="text/html" id="svsend_fcdalist_tpl">
  570. <table class="headertable" style="width: 98%;">
  571. <thead><tr><td style="width: 4rem">序号</td><td style="width: 15rem">内部端子描述</td><td style="width: 15rem">内部端子地址</td><td style="width: 15rem">外部IED名称</td><td style="width: 15rem">外部端子描述</td></tr></thead>
  572. </table>
  573. <div class="detailtable" style="width: 100%;height: 96%;">
  574. <table style="width: 100%;">
  575. <tbody>
  576. {{each data}}
  577. <tr>
  578. <td style="width: 4rem">{{$index+1}}</td><td style="width: 15rem">{{$value.do_desc}}</td>
  579. <td style="width: 15rem">{{$value.ld_inst||''}}/{{$value.prefix}}{{$value.ld_inst}}{{$value.ln_class}}{{$value.ln_inst}}.{{$value.do_name}}</td>
  580. <td style="width: 15rem">{{$value.out_ied_name||''}}{{'.'+$value.out_ied_desc||''}}</td>
  581. <td style="width: 15rem">{{$value.out_do_desc||''}}</td>
  582. </tr>
  583. {{/each}}
  584. </tbody>
  585. </table>
  586. </div>
  587. </script>
  588. <!--SV接收模板-->
  589. <script type="text/html" id="svrev_datasetlist_tpl">
  590. <table class="headertable" style="width: 98%;">
  591. <thead><tr><td style="width: 4rem">序号</td><td style="width: 15rem">输入IED</td><td style="width: 15rem">控制块名称</td><td style="width: 10rem">数据集</td><td style="width: 10rem">APPID</td></tr></thead>
  592. </table>
  593. <div class="detailtable" style="width: 100%;height: 96%;">
  594. <table style="width: 100%;">
  595. <tbody>
  596. {{each data}}
  597. <tr fcdalist="{{$value.info.list}}">
  598. <td style="width: 4rem">{{$index+1}}</td>
  599. <td style="width: 15rem">[{{$value.info.out_ied_name}}]{{$value.info.out_ied_desc}}</td>
  600. <td style="width: 15rem">{{$value.info.out_smv_ctrl_name||''}}</td>
  601. <td style="width: 10rem">{{$value.info.out_dataset_name||''}}</td>
  602. <td style="width: 10rem">{{$value.info.out_smv_ctrl_address.APPID||''}}</td>
  603. </tr>
  604. {{/each}}
  605. </tbody>
  606. </table>
  607. </div>
  608. </script>
  609. <script type="text/html" id="svrev_fcdalist_tpl">
  610. <table class="headertable" style="width: 98%;">
  611. <thead><tr><td style="width: 4rem">序号</td><td style="width: 15rem">内部端子描述</td><td style="width: 15rem">内部端子地址</td><td style="width: 15rem">外部IED名称</td><td style="width: 15rem">外部端子描述</td></tr></thead>
  612. </table>
  613. <div class="detailtable" style="width: 100%;height: 96%;">
  614. <table style="width: 100%;">
  615. <tbody>
  616. {{each data}}
  617. <tr>
  618. <td style="width: 4rem">{{$index+1}}</td>
  619. <td style="width: 15rem">{{$value.do_desc}}</td>
  620. <td style="width: 15rem">{{$value.int_addr}}</td>
  621. <td style="width: 15rem">{{$value.out_ied_name||''}}{{'.'+$value.out_ied_desc||''}}</td>
  622. <td style="width: 15rem">{{$value.out_do_desc||''}}</td>
  623. </tr>
  624. {{/each}}
  625. </tbody>
  626. </table>
  627. </div>
  628. </script>
  629. <!--GOOSE发送列表模板-->
  630. <script type="text/html" id="goosesend_datasetlist_tpl">
  631. <table class="headertable" style="width: 98%;">
  632. <thead><tr><td style="width: 4rem">序号</td><td style="width: 10rem">控制块名称</td><td style="width: 10rem">数据集</td><td style="width: 6rem">APPID</td><td style="width: 10rem">MAC地址</td><td style="width: 10rem">VLAN-ID</td></tr></thead>
  633. </table>
  634. <div class="detailtable" style="width: 100%;height: 96%;">
  635. <table style="width: 100%;">
  636. <tbody>
  637. {{each data}}
  638. <tr ctrl_id="{{$value.node_id}}"><td style="width: 4rem">{{$index+1}}</td><td style="width: 10rem">{{$value.attr_name}}</td><td style="width: 10rem">[{{$value.attr_dat_set}}]{{$value.datset_desc}}</td><td style="width: 6rem">{{$value.address.APPID}}</td><td style="width: 10rem">{{$value.address.MAC_Address}}</td><td style="width: 10rem">{{$value.address.VLAN_ID}}</td></tr>
  639. {{/each}}
  640. </tbody>
  641. </table>
  642. </div>
  643. </script>
  644. <!--GOOSE发送列表模板-->
  645. <script type="text/html" id="goosesend_fcdalist_tpl">
  646. <table class="headertable" style="width: 98%;">
  647. <thead><tr><td style="width: 4rem">序号</td><td style="width: 15rem">内部端子描述</td><td style="width: 15rem">内部端子地址</td><td style="width: 15rem">外部IED名称</td><td style="width: 15rem">外部端子描述</td></tr></thead>
  648. </table>
  649. <div class="detailtable" style="width: 100%;height: 96%;">
  650. <table style="width: 100%;">
  651. <tbody>
  652. {{each data}}
  653. <tr>
  654. <td style="width: 4rem">{{$index+1}}</td>
  655. <td style="width: 15rem">{{$value.do_desc}}</td>
  656. <td style="width: 15rem">{{$value.ld_inst||''}}/{{$value.prefix}}{{$value.ld_inst}}{{$value.ln_class}}{{$value.ln_inst}}.{{$value.do_name}}</td>
  657. <td style="width: 15rem">{{$value.out_ied_name||''}}{{'.'+$value.out_ied_desc||''}}</td>
  658. <td style="width: 15rem">{{$value.out_do_desc||''}}</td>
  659. </tr>
  660. {{/each}}
  661. </tbody>
  662. </table>
  663. </div>
  664. </script>
  665. <!--GOOSE接收模板-->
  666. <script type="text/html" id="gooserev_datasetlist_tpl">
  667. <table class="headertable" style="width: 98%;">
  668. <thead><tr><td style="width: 4rem">序号</td><td style="width: 15rem">输入IED</td><td style="width: 15rem">控制块名称</td><td style="width: 15rem">数据集</td><td style="width: 8rem">APPID</td></tr></thead>
  669. </table>
  670. <div class="detailtable" style="width: 100%;height: 96%;">
  671. <table style="width: 100%;">
  672. <tbody>
  673. {{each data}}
  674. <tr fcdalist="{{$value.info.list}}">
  675. <td style="width: 4rem">{{$index+1}}</td>
  676. <td style="width: 15rem">[{{$value.info.out_ied_name}}]{{$value.info.out_ied_desc}}</td>
  677. <td style="width: 15rem">{{$value.info.out_gse_ctrl_name||''}}</td>
  678. <td style="width: 15rem">{{$value.info.out_dataset_name||''}}</td>
  679. <td style="width: 8rem">{{$value.info.out_gse_ctrl_address.APPID||''}}</td>
  680. </tr>
  681. {{/each}}
  682. </tbody>
  683. </table>
  684. </div>
  685. </script>
  686. <script type="text/html" id="gooserev_fcdalist_tpl">
  687. <table class="headertable" style="width: 98%;">
  688. <thead><tr><td style="width: 4rem">序号</td><td style="width: 15rem">内部端子描述</td><td style="width: 15rem">内部端子地址</td><td style="width: 15rem">外部IED名称</td><td style="width: 15rem">外部端子描述</td></tr></thead>
  689. </table>
  690. <div class="detailtable" style="width: 100%;height: 96%;">
  691. <table style="width: 100%;">
  692. <tbody>
  693. {{each data}}
  694. <tr>
  695. <td style="width: 4rem">{{$index+1}}</td>
  696. <td style="width: 15rem">{{$value.do_desc}}</td>
  697. <td style="width: 15rem">{{$value.int_addr}}</td>
  698. <td style="width: 15rem">{{$value.out_ied_name||''}}{{'.'+$value.out_ied_desc||''}}</td>
  699. <td style="width: 15rem">{{$value.out_do_desc||''}}</td>
  700. </tr>
  701. {{/each}}
  702. </tbody>
  703. </table>
  704. </div>
  705. </script>
  706. <!--crc校验结果-->
  707. <script type="text/html" id="checktools_crc_tpl">
  708. <div style="width: 96%;height: 6%;margin:0 2%;">
  709. <span>SCD文件CRC:</span><span id="scdcrc" style="margin: 0 1rem;font-weight: bold;">-</span>
  710. <span>SCD校验CRC:</span><span id="scdcrc2" style="margin: 0 1rem;font-weight: bold;">-</span>
  711. <span>校验结果:</span><span id="scdcrcresult" style="margin: 0 1rem;font-weight: bold;">-</span>
  712. </div>
  713. <table style="width: 98%">
  714. <thead><tr><td style="width: 6rem">序号</td><td style="width: 10rem">装置名称</td><td style="width: 24rem;">装置描述</td><td style="width: 10rem">厂家</td><td style="width: 10rem">型号</td><td style="width: 10rem">IED版本</td><td style="width: 10rem">CCD CRC</td><td style="width: 10rem">SCD CRC</td><td style="width: 10rem">校验CRC</td>
  715. <td style="width: 10rem">校验结果</td></tr></thead>
  716. </table>
  717. <div id="iedcrclist" style="width: 100%;height: 86%;margin: 0"></div>
  718. </script>
  719. <script type="text/html" id="checktools_crc_list_tpl">
  720. <table style="width: 100%">
  721. <tbody>
  722. {{each data}}
  723. <tr>
  724. <td class="" style="width: 6rem">{{$index+1}}</td>
  725. <td class="" style="width: 10rem;">{{$value.iedname}}</td>
  726. <td class="" style="width: 24rem;line-height: 1.2rem;" title="{{$value.ieddesc}}">{{$value.ieddesc}}</td>
  727. <td class="" style="width: 10rem;line-height: 1.2rem;" title="{{$value.manufacturer||''}}">{{$value.manufacturer}}</td>
  728. <td class="" style="width: 10rem;line-height: 1.2rem;" title="{{$value.type||''}}">{{$value.type}}</td>
  729. <td class="" style="width: 10rem;line-height: 1.2rem;">{{$value.iedversion||'-'}}</td>
  730. <td class="" style="width: 10rem">{{$value.ccdcrc||'无'}}</td>
  731. <td class="" style="width: 10rem">{{$value.scdcrc||'无'}}</td>
  732. <td class="" style="width: 10rem">{{$value.checkcrc||'无'}}</td>
  733. <td class="" style="width: 10rem">{{if $value.checkcrc!=null && $value.scdcrc==$value.checkcrc}}一致{{else}}<b style="color: red">不一致</b>{{/if}}</td>
  734. </tr>
  735. {{/each}}
  736. </tbody>
  737. </table>
  738. </script>
  739. <script type="text/javascript">
  740. template.helper("FullImgPath",function(imgsrc){
  741. if(imgsrc==null||imgsrc=="") return Global.AccessUrl+ "/static/images/userhead.png";
  742. if (imgsrc.substr(0, 4) != "http") {
  743. var _index = imgsrc.indexOf("static/");
  744. if (_index > -1) return Global.AccessUrl + imgsrc.substr(_index);
  745. }
  746. return imgsrc;
  747. })
  748. template.helper("ts2datetime",function(timestamp){
  749. if(timestamp==null||timestamp=="") return "";
  750. if(timestamp.indexOf("-")>-1 || timestamp.indexOf(":")>-1) return timestamp;
  751. if(timestamp.length>13) timestamp=timestamp.substring(0,13);
  752. else if( timestamp.length==10) timestamp=timestamp*1000;
  753. return new Date(timestamp).Format("yyyy-MM-dd hh:mm:ss");
  754. })
  755. template.helper("replaceStr",function(str,oldstr,newstr){
  756. if($.trim(str)=="") return "";
  757. var reg=new RegExp(oldstr);
  758. return str.replace(reg,newstr);
  759. })
  760. template.helper("alertLevelDesc",function(levelcode){
  761. if($.trim(levelcode)=="") return "";
  762. if(levelcode=="hint") return "提示";
  763. else if(levelcode=="waring") return "警告";
  764. else if(levelcode=="error") return "错误";
  765. return ""
  766. })
  767. var netaddrLoadState=0,iedLoadState=0,apLoadState=0;
  768. var IedList=[];
  769. var NetWork_ApNodes=[];
  770. var IedNetaddrList={};
  771. var myChart = null;
  772. var scdid="";
  773. //当前选中的IED
  774. var selectedIedName="";
  775. var TempScdID=$.trim(window.localStorage.getItem("PoliceObject.TempScdID"));
  776. var TempAreaID=$.trim(window.localStorage.getItem("PoliceObject.TempAreaID"));
  777. $(document).ready(function () {
  778. var token = $.trim(localStorage.getItem("sessionid"));
  779. if (token == "") {
  780. window.location.href = "/";
  781. return false;
  782. }
  783. Global.accessControl();
  784. PoliceObject.AlwaysTimer();
  785. PoliceObject.OnInited=function(){
  786. layer.msg("正在加载SCD数据中...",{"icon":Global.ICON_LOADING})
  787. //加载变电站列表。需要2个回调函数,第一个为load回调,第二个为变电站选择事件回调
  788. PoliceObject.LoadStationList(function(r){
  789. var cur_station_id = $.trim(window.localStorage.getItem("PoliceObject.AreaID"));
  790. if(cur_station_id=="") cur_station_id=r.data[0].id;
  791. //填充当前站的电压等级列表
  792. PoliceObject.LoadVoltageLevelSelect(cur_station_id);
  793. if(cur_station_id==""){
  794. //默认加载第一个站的scd信息
  795. InitLoadScdList(cur_station_id);
  796. }
  797. },function(stationid){
  798. if(TempScdID!="" && stationid!=TempAreaID){
  799. window.localStorage.removeItem("PoliceObject.TempScdID");
  800. window.localStorage.removeItem("PoliceObject.TempAreaID");
  801. }
  802. //更换变电站时需要重新获取电压和间隔信息
  803. PoliceObject.AreaList=null;
  804. PoliceObject.VoltageLevel=null;
  805. PoliceObject.IedList=null;
  806. PoliceObject.ScdList=null;
  807. //填充当前站的电压等级列表
  808. //PoliceObject.LoadVoltageLevelSelect(stationid);
  809. InitLoadScdList(stationid);
  810. });
  811. }
  812. PoliceObject.init();
  813. //scd结构树显示和隐藏控制
  814. $("#scd_tree_btn").off().on('click',function(){
  815. $(this).addClass("hidden");
  816. $("#scd_tree_list").removeClass("hidden");
  817. });
  818. $("#scd_tree_list .title>i").off().on('click',function(){
  819. $("#scd_tree_list").addClass("hidden");
  820. $("#scd_tree_btn").removeClass("hidden");
  821. });
  822. var canvasW=1300;
  823. var isdrag=false;
  824. var data=[];
  825. $("#device_video,#ied_strcut").css({
  826. "top": "0",
  827. "left": "0",
  828. "height": "100%",
  829. "width": "100%",
  830. "background-color":"#324B86EB"
  831. });
  832. });
  833. function InitLoadScdList(stationid){
  834. myChart=null;
  835. //echarts.init(document.getElementById('container_map_ied')).dispose();
  836. $("#scd_list").html("");
  837. $("#network").html("");
  838. var container_map_ied=$("#container_map_ied").html(Tools.LoadingText("正在加载数据中..."));
  839. var $scd_info=$("#scd_info");
  840. $scd_info.find(".scd_name").html("");
  841. PoliceObject.AreaID=stationid;
  842. $.getJSON(Global.AccessUrl+"/api/screen/scd/list",{"ischeckinscd": "1","stationid":stationid,"pageno":1},function(r){
  843. PoliceObject.ScdList=r.data;
  844. //判断 是否有临时scd需要可视化查看
  845. var TempScdID=$.trim(window.localStorage.getItem("PoliceObject.TempScdID"));
  846. if(TempScdID==""){
  847. if(r.data==null||r.data.length==0){
  848. //还没有SCD文件
  849. container_map_ied.html(Tools.HintText("该站还没有签入任何SCD文件!","red"));
  850. return;
  851. }
  852. }
  853. container_map_ied.html(template('main_tpl',{}));
  854. $("#search_input").keydown(function(event) {
  855. if (event.keyCode == 13) {
  856. $("#search_button").trigger("click");
  857. }
  858. });
  859. $("#search_button").off("click").on("click", function(event) {
  860. event.stopPropagation();
  861. var volId=$.trim($("#voltage_level_select").attr("vid"));
  862. var areaId=$.trim($("#area_select").attr("vid"));
  863. var dtypeId=$.trim($("#device_type_select").attr("vid"));
  864. var searchValue = $.trim($("#search_input").val()).toLocaleLowerCase();
  865. if (searchValue == "" && volId=="" && areaId=="" && dtypeId=="") {
  866. return;
  867. }
  868. if(searchValue != ""){
  869. var $thisParent = $("#search_panel");
  870. var search_result = $("#search_result").removeClass("hidden").css({
  871. "top": $thisParent.position().top + $thisParent.height() + 10 + "px",
  872. "left": $thisParent.position().left + "px",
  873. "width": $thisParent.width() - 2 + "px"
  874. }).html("<div class='nodata'>正在加载数据中...</div>");
  875. var result = [];
  876. for (var k in PoliceObject.IedList) {
  877. if (k.toLocaleLowerCase().indexOf(searchValue) > -1) {
  878. result.push({
  879. "ied_name": k,
  880. "desc": PoliceObject.IedList[k].desc
  881. });
  882. } else if (PoliceObject.IedList[k].desc.indexOf(searchValue) > -1) {
  883. result.push({
  884. "ied_name": k,
  885. "desc": PoliceObject.IedList[k].desc
  886. });
  887. }
  888. }
  889. if (result == 0) {
  890. search_result.html("<div class='nodata'>未搜索到相关数据信息!</div>");
  891. return false;
  892. }
  893. search_result.html(template('search_result_list_tpl', {
  894. "data": result,
  895. "count": result.length
  896. })).find("ul").off("click").on('click', function() {
  897. var $this = $(this);
  898. //选择查询结果IED
  899. DialogObject.Open($("#dialog_public"), {
  900. size: ["150rem", "88rem"],
  901. para: {
  902. "title": $this.attr("ied_name") + "—详细信息",
  903. "ied_id": "",
  904. "ied_name": $this.attr("ied_name"),
  905. },
  906. callback: function(win, p1) {
  907. win.attr("ied_name", p1.ied_name);
  908. win.find(".caption>b").html(p1.title);
  909. var h = (win.height() - win.find(".caption").height() - win.find(".footer").height());
  910. win.find(".dataitemlist").height(h + "px").html(template('ied_detail_tpl', {}));
  911. win.find(".content").height(h - win.find(".tools").height() + "px");
  912. PoliceObject.LoadIedGraph(null,PoliceObject.IedList[p1.ied_name]);
  913. }
  914. });
  915. });
  916. var th = search_result.find(".search_result_list_item").height();
  917. if (th > 600) {
  918. search_result.find(".search_result_list_item").slimScroll({
  919. height: (600 * hRate) + "px",
  920. width: "98%",
  921. alwaysVisible: false,
  922. wheelStep: 10,
  923. size: "6px",
  924. color: "#03aee7"
  925. });
  926. }
  927. }else{
  928. PoliceObject.OpenShowIedList("装置查询", {
  929. "area_id": areaId,
  930. "voltage_level_id":volId,
  931. "device_type_id":dtypeId
  932. });
  933. }
  934. });
  935. var data=r.data;
  936. var lst=[];
  937. if(data!=null){
  938. //默认为第一个scd
  939. var scdobj=data[0];
  940. var cur_ScdID=$.trim(window.localStorage.getItem(PoliceObject.AreaID+ ".ScdID"));
  941. if(data.length>0){
  942. for (var i = 0; i < data.length; i++) {
  943. if(cur_ScdID==data[i].id || data[i].enable==1){
  944. scdobj=data[i];
  945. }
  946. var version=i==0?"<span style='color:#502df7;font-weight: bold;'>"+(data[i].version||"在运版")+"</span>":data[i].version;
  947. lst.push('<div class="f_l" scdid="'+data[i].id+'" style="cursor:pointer;color: #516380;"><span class="f_l text_overflow" style="color: #516380;font-weight: bold;width: 20rem;" title="'+data[i].scd_name+'">'+data[i].scd_name+'</span><span class="f_l" style="margin:0 1rem;width: 18rem;">版本号:'+version+'</span><span class="f_l" style="margin:0 1rem;width: 14rem;">签入人:'+data[i].user_name+'</span><span class="f_l" style="margin:0 1rem;width: 22rem;">签入时间:'+data[i].CREATED_TIME+'</span></div>');
  948. }
  949. }else{
  950. lst.push(Tools.HintText("未签入SCD文件"));
  951. }
  952. PoliceObject.ScdID=scdobj.id;
  953. }else{
  954. lst.push(Tools.HintText("未签入SCD文件"));
  955. }
  956. //判断 是否有临时scd需要可视化查看
  957. if(TempScdID!=""){
  958. PoliceObject.ScdID=TempScdID;
  959. }
  960. PoliceObject.NetWork_ApNodes=null;
  961. PoliceObject.LoadVoltageLevelSelect(stationid);
  962. PoliceObject.LoadDeviceType();
  963. PoliceObject.LoadIedList();
  964. $scd_info.on("click",function(e){
  965. e.stopPropagation();
  966. var $t=$(this), xy=$t.offset();
  967. $t.find("i").attr("class","fa fa-caret-down");
  968. $("#scd_list").removeClass("hidden").css({
  969. top:xy.top+$t.height()+15,
  970. left:xy.left
  971. });
  972. }).find(".scd_name").html(TempScdID!=""?$.trim("【临时】"+window.localStorage.getItem("PoliceObject.TempScdName")):scdobj.scd_name);
  973. $("#scd_list").html(lst.join("")).children("div").off().on("click",function(){
  974. var t=$(this);
  975. $scd_info.find(".scd_name").html(t.children("span:first").text());
  976. var tmpscdid=t.attr("scdid");
  977. $("#scd_list").addClass("hidden");
  978. $("#scd_info").find("i").attr("class","fa fa-caret-up");
  979. if(PoliceObject.ScdID==tmpscdid){
  980. return;
  981. }
  982. netaddrLoadState=0;
  983. $("#network").html("")
  984. window.localStorage.removeItem("PoliceObject.TempScdID");
  985. window.localStorage.removeItem("PoliceObject.TempAreaID");
  986. PoliceObject.TempScdID="";
  987. PoliceObject.VoltageLevel= []; //电压等级
  988. PoliceObject.AreaList=[]; //间隔列表
  989. PoliceObject.DeviceType=[]; //装置类型列表
  990. PoliceObject.IedList=[]; //IED装置列表
  991. PoliceObject.NetWork_ApNodes=null;
  992. PoliceObject.ScdID=tmpscdid;
  993. window.localStorage.setItem(PoliceObject.AreaID+ ".ScdID",tmpscdid);
  994. PoliceObject.LoadVoltageLevelSelect(PoliceObject.AreaID);
  995. PoliceObject.LoadDeviceType();
  996. PoliceObject.LoadIedList();
  997. });
  998. netaddrLoadState=1;
  999. iedLoadState=0;
  1000. apLoadState=1;
  1001. //GetSubNetwork();
  1002. //LoadIedNetAddr();
  1003. //LoadIedList();
  1004. })
  1005. }
  1006. function p_drawPoly(canvascontext,point1,point2) {
  1007. //canvascontext.setLineDash([]);
  1008. canvascontext.strokeStyle = "#08b008";
  1009. canvascontext.lineWidth = 1;
  1010. canvascontext.lineJoin = 'round';
  1011. canvascontext.lineCap = 'round';
  1012. canvascontext.beginPath();
  1013. canvascontext.moveTo(point1[0], point1[1]);
  1014. canvascontext.lineTo(point1[0]+10, point1[1]);
  1015. canvascontext.stroke();
  1016. canvascontext.closePath();
  1017. canvascontext.beginPath();
  1018. canvascontext.moveTo(point1[0]+9, point1[1]);
  1019. if(point2[1]<point1[1]) canvascontext.quadraticCurveTo(point1[0]+50,point1[1]-20,point2[0], point2[1]);
  1020. else canvascontext.quadraticCurveTo(point1[0]+50,point1[1]+20,point2[0], point2[1]);
  1021. canvascontext.stroke();
  1022. }
  1023. </script>
  1024. <!--搜索结果列表-->
  1025. <script type="text/html" id="search_result_list_tpl">
  1026. <div style="color: #51637F;padding: 0rem;font-size: 1.2rem;border-bottom: 1px solid #d9e3ec;">为您找到<span style="padding:0 5px;color:#134BEA;font-weight: bold;">{{count}}</span>个相关结果</div>
  1027. <div class="search_result_list_item">
  1028. {{each data}}
  1029. <ul style="padding-bottom: 0.5rem;" ied_name="{{$value.ied_name}}" >
  1030. <li>
  1031. <span style="font-size: 1.4rem;display: inline-block;width: 2rem;height: 2rem;"></span>
  1032. <span class="text_overflow" title="{{$value.desc}}">{{$value.desc}}</span>
  1033. </li>
  1034. </ul>
  1035. {{/each}}
  1036. </div>
  1037. </script>