scd_o.html 64 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057
  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" 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 app_active" 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="">
  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. <div class="network" id="network">
  165. <div class="network_area"></div>
  166. </div>
  167. <!--SCL校验-->
  168. <script type="text/html" id="checktools_scl_tpl">
  169. <div id="node_tree" class="f_l" style="width: 20%;text-align: left;background-color: #F3F5FA;border-radius: 4px;border: 1px solid #DCDEE3;">
  170. <div class="ztree tree"></div>
  171. </div>
  172. <div id="content_div" class="f_l" style="width: 78%;height: 100%;position: relative;background: #fff;margin-left: 1%;">
  173. <div class="f_l stat" style="width: 100%;height: 4rem;line-height: 4rem;">
  174. <span>
  175. <span alert_level="" style="margin: 0 1rem;cursor: pointer;">全部:<b class="alert_level_all">0</b></span>
  176. <span alert_level="error" style="margin: 0 1rem;cursor: pointer;">错误:<b class="alert_level_error">0</b></span>
  177. <span alert_level="waring" style="margin: 0 1rem;cursor: pointer;">告警:<b class="alert_level_waring">0</b></span>
  178. <span alert_level="hint" style="margin: 0 1rem;cursor: pointer;">提示:<b class="alert_level_hint">0</b></span>
  179. <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>
  180. <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>
  181. </span>
  182. </div>
  183. <div class="datalist_header" style="height: 4rem;line-height: 2.6rem;overflow: auto;width: 100%">
  184. <table style="width: 100%;text-align: left;background-color: #423176;"><thead><tr>
  185. <td class="" style="width: 6%;padding-left: 1rem;">装置名称</td>
  186. <td class="" style="width: 14%">装置描述</td>
  187. <td class="" style="width: 8%">等级</td>
  188. <td class="" style="width: 8%">行号</td>
  189. <td class="" style="width: 47%">描述</td>
  190. <td class="" style="width: 15%">标准及条款</td>
  191. </tr></thead></table>
  192. </div>
  193. <div class="f_l datalist" style="width: 100%;"></div>
  194. <div class="f_l pagebar pagination" style="width: 100%;height: 4rem;line-height: 2rem;"></div>
  195. </div>
  196. </script>
  197. <script type="text/html" id="checktools_scl_datalist_tpl">
  198. <table style="width: 100%;text-align: left;table-layout: fixed;">
  199. <tbody>
  200. {{each data}}
  201. <tr class="alert_level_{{$value.alert_level}}" alertid="{{$value.node_id}}">
  202. <td class="" style="width: 6%;padding-left: 1rem;">{{#($value.ied_name||"-")}}</td>
  203. <td class="" style="width: 14%;line-height: 2rem;">{{#($value.ied_desc||"-")}}</td>
  204. <td class="" style="width: 8%">{{alertLevelDesc $value.alert_level}}</td>
  205. <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>
  206. <td class="" style="width: 47%;line-height: 2rem;">{{$value.parse_result}}</td>
  207. <td class="" style="width: 15%;line-height: 2rem;" title="">{{$value.apply_standard}} {{$value.apply_standard_no}}</td>
  208. </tr>
  209. {{/each}}
  210. </tbody>
  211. </table>
  212. </script>
  213. <!--SCD校验-->
  214. <script type="text/html" id="checktools_scd_tpl">
  215. <div class="f_l" style="width: 30%">
  216. <div id="scd_comp_tools" class="f_l" style="width: 100%;height: 5rem;text-align: left;">
  217. <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>
  218. <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>
  219. <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>
  220. </div>
  221. <div id="scd_comp_list" class="f_l" style="width: 100%;height: 90%;text-align: left;background-color: #fbfbfb;border: 1px solid #f2f2f2;">
  222. <table class="datalist_header f_l" style="width: 100%;text-align: center;background-color: #fbfbfb;"><thead><tr>
  223. <td class="text_overflow" style="width: 9%;">选择</td>
  224. <td class="text_overflow" style="width: 40%;">比对SCD</td>
  225. <td class="text_overflow" style="width: 38%;">日期</td>
  226. <td class="text_overflow" style="width: 10%;">操作</td>
  227. </tr></thead></table>
  228. <div class="datalist f_l"></div>
  229. </div>
  230. </div>
  231. <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;">
  232. <div id="node_tree" class="f_l" style="width: 97%;height: 4rem;line-height: 4rem;text-align: left;color: #516380;background: #FFF;margin:1%;">
  233. <div class="f_l" style="text-align: center;width: 49%"><span>基准SCD:</span><b style="color: #09162C">—</b></div>
  234. <div class="f_l" style="width: 2%;color: #516380;font-weight: bold;text-align: center;font-size: 2rem;">|</div>
  235. <div class="f_l" style="text-align: center;width: 49%"><span>比对SCD:</span><b style="color: #09162C">—</b></div>
  236. </div>
  237. <div id="comp_show_area" class="f_l" style="width: 100%;height: 90.5%;margin-left: 0;position: relative;">
  238. <div>请选择比对记录或创建新的比对</div>
  239. </div>
  240. </div>
  241. </script>
  242. <script type="text/html" id="checktools_scd_datalist_tpl">
  243. <table style="width: 100%;text-align: center;">
  244. <tbody>
  245. {{each data}}
  246. <tr style="border-bottom: 1px solid #f0f0f0;">
  247. <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>
  248. <td class="text_overflow" style="width: 40%" title="{{$value.source_name}}与{{$value.target_name}}">{{#($value.name||"-")}}</td>
  249. <td class="text_overflow" style="width: 38%">{{$value.CREATED_TIME}}</td>
  250. <td class="text_overflow" style="width: 10%">
  251. {{if $value.node_state=="1"}}
  252. <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>
  253. {{else}}...{{/if}}
  254. </td>
  255. </tr>
  256. {{/each}}
  257. </tbody>
  258. </table>
  259. </script>
  260. <script type="text/html" id="comp_scd_tpl">
  261. <div class="abs comp_scd" style="left:20%">
  262. <img src="/static/images/comp_scd/version.png">
  263. <div class="scd_font">SCD版本</div>
  264. <div style="margin-top: 1rem;">
  265. <div><img src="/static/images/comp_scd/change_icon_1.png" style="width: 1rem"><b>&nbsp;&nbsp;{{version.target||'无'}}</b></div>
  266. <div><img src="/static/images/comp_scd/allow.png" style="height: 4rem;width: 1rem;"></div>
  267. <div style="color: #000;"><img src="/static/images/comp_scd/change_icon_2.png" style="width: 1rem"><b>&nbsp;&nbsp;{{version.source||'无'}}</b></div>
  268. </div>
  269. </div>
  270. <div class="abs comp_scd" style="left:45%">
  271. <img src="/static/images/comp_scd/crc.png">
  272. <div class="scd_font">CRC</div>
  273. <div style="margin-top: 1rem;">
  274. <div><img src="/static/images/comp_scd/change_icon_1.png" style="width: 1rem"><b>&nbsp;&nbsp;{{crc.target||'无'}}</b></div>
  275. <div><img src="/static/images/comp_scd/allow.png" style="height: 4rem;width: 1rem;"></div>
  276. <div style="color: #000;"><img src="/static/images/comp_scd/change_icon_2.png" style="width: 1rem;"><b>&nbsp;&nbsp;{{crc.source||'无'}}</b></div>
  277. </div>
  278. </div>
  279. <div class="abs comp_scd" style="left:70%">
  280. <img src="/static/images/comp_scd/ied.png">
  281. <div class="scd_font">IED</div>
  282. </div>
  283. <div class="abs" id="ied_change_stat">
  284. <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>
  285. <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>
  286. <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>
  287. </div>
  288. </script>
  289. <script type="text/html" id="comp_scd_ied_tpl">
  290. <div class="f_l comp_ied_list" id="comp_ied_list">
  291. <div style="font-weight: bold;text-align: left;border-bottom: 1px solid #ccc;line-height: 3rem;">【{{opt}}】的设备列表 ({{num}})</div>
  292. <div class="ied_data_list">
  293. {{each list}}
  294. <div class="ied_item text_overflow" title="{{$value.ied_desc}}" ied_name="{{$value.ied_name}}">({{$value.ied_name}}){{$value.ied_desc}}</div>
  295. {{/each}}
  296. </div>
  297. <div class="ied_comp_items">
  298. <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>
  299. <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>
  300. <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>
  301. <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>
  302. <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>
  303. <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>
  304. <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>
  305. <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>
  306. <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>
  307. <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>
  308. <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>
  309. <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>
  310. <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>
  311. <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>
  312. <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>
  313. <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>
  314. <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>
  315. <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>
  316. <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>
  317. <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>
  318. <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>
  319. <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>
  320. <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>
  321. <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>
  322. </div>
  323. </div>
  324. <div class="f_l comp_ied_result_show" id="comp_ied_result_show">
  325. <div id="node_tree" class="f_l" style="width: 98%;height: 4rem;line-height: 4rem;text-align: left;color: #516380;background: #FFF;margin:1%;">
  326. <div class="f_l" style="text-align: center;width: 49%"><span>基准SCD:</span><b style="color: #09162C">—</b></div>
  327. <div class="f_l" style="width: 2%;color: #516380;font-weight: bold;text-align: center;font-size: 2rem;">|</div>
  328. <div class="f_l" style="text-align: center;width: 49%"><span>比对SCD:</span><b style="color: #09162C">—</b></div>
  329. </div>
  330. <div class="comp_show_area" class="f_l">
  331. <div>正在加载数据中...</div>
  332. </div>
  333. </div>
  334. </script>
  335. <script type="text/html" id="comp_ied_result_show_tpl">
  336. <div class="comp_ied_result_split_line"></div>
  337. <div class="iedele source_ied" style="left: 5%"><img src="/static/images/default_ied.png"><div class="ied_name"></div></div>
  338. <div class="iedele target_ied" style="left: 90%"><img src="/static/images/default_ied.png"><div class="ied_name"></div></div>
  339. </script>
  340. <!--SCD校验模板定义结束-->
  341. <script type="text/html" id="main_tpl">
  342. <div class="scd_tools f_l">
  343. <!--工具栏-->
  344. <div class="tools_btns">
  345. <span class="" onclick="PoliceObject.CheckTools('scd','SCD文件一致性校验')">SCD文件一致性校验</span>
  346. <span class="hidden" onclick="PoliceObject.CheckTools('icd_cid','ICD/CID文件一致性校核')">ICD/CID文件一致性校核</span>
  347. <span class="hidden" onclick="PoliceObject.CheckTools('icd_cid_ied','ICD/CID与SCD中IED一致性')">ICD/CID与SCD中IED一致性</span>
  348. <span onclick="PoliceObject.CheckTools('scl','SCL文件校验')">SCL文件校验</span>
  349. <span class="hidden" onclick="PoliceObject.CheckTools('ccd','CCD文件一致性校验')">CCD文件一致性校验</span>
  350. <span class="hidden" onclick="PoliceObject.CheckTools('ccd_scd','CCD与SCD文件一致性校验')">CCD与SCD文件一致性校验</span>
  351. <span class="" onclick="PoliceObject.CheckTools('crc','CRC校验结果')">CRC校验</span>
  352. </div>
  353. </div>
  354. <div class="scd_main f_l">
  355. <div class="scd_filter f_l">
  356. <!--过滤栏-->
  357. <span class="f_l iedNumber" style="font-size: 1.33rem;line-height: 3.6rem;margin-right: 4rem;color: #134BEA">共 <b></b> 台装置</span>
  358. <div class="filter_cond f_l" filter_type="voltage_level" id="voltage_level_select">
  359. <span class="filter_text">电压等级</span>
  360. <i class="fa fa-caret-up"></i>
  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. </div>
  366. <div class="filter_cond f_l" filter_type="device_type" id="device_type_select">
  367. <span class="filter_text">装置类型</span>
  368. <i class="fa fa-caret-up"></i>
  369. </div>
  370. <!--搜索区域-->
  371. <div id="search_panel" class="search_panel f_l" style="width: 24rem;position: relative;">
  372. <div class="search_box" >
  373. <input class="search_input" style="width:65%;font-size:1.33rem;color:#94A3B8" id="search_input" maxlength="40" placeholder="请输入IED编码或者名称"/>
  374. </div>
  375. <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>
  376. </div>
  377. <div class="station_list hidden" id="search_result"></div>
  378. <!--搜索区域结束-->
  379. </div>
  380. <div class="scd_area f_l">
  381. <!--电压等级-->
  382. </div>
  383. </div>
  384. </script>
  385. <script type="text/html" id="ied_list_tpl">
  386. {{each data}}
  387. <div class="f_l ied_list_item" name="{{$value.attr_name}}" id="{{$value.node_id}}">
  388. <img class="f_l" src='/static/images/ied.png'>
  389. <span class="f_l l_c">{{$value.attr_name}}</span>
  390. <span class="f_l">{{$value.attr_desc}}</span>
  391. </div>
  392. {{/each}}
  393. </script>
  394. <script type="text/html" id="ied_detail_tpl">
  395. <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);">
  396. <div><input type="text" class="layui-input fast_find_list" placeholder="快速查找" style="background: #a09eb9;color: #fff;border-color: #45436a;"></div>
  397. <div></div>
  398. </div>
  399. <div class="tools f_l" style="height: 5rem;width:80%;">
  400. <ul class="layui-tab-title" style="text-align: center;border: 0;padding-top: 1rem;">
  401. <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>
  402. <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>
  403. <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>
  404. <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>
  405. <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>
  406. <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>
  407. <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>
  408. </ul>
  409. </div>
  410. <div class="content f_l" style="width:80%">
  411. <div class="hidden" id="ied_info" style="position: relative;height: 100%;">
  412. <div id="ied_strcut_detail" style="height: 60rem;position: relative;"></div>
  413. </div>
  414. <div class="hidden" id="ied_relation" style="position: relative;height: 100%;">
  415. <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;">
  416. <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>
  417. </div>
  418. <div id="ied_strcut_detail" style="height: 60rem;position: relative;"></div>
  419. </div>
  420. <div class="hidden" id="ied_allpoint_info" style="position: relative;height: 100%;">
  421. <div id="ied_strcut_detail" style="height: 60rem;position: relative;"></div>
  422. </div>
  423. <div class="hidden" id="ied_basicinfo" style="position: relative;height: 100%;">
  424. <div id="ied_strcut_detail" style="height: 60rem;position: relative;"></div>
  425. </div>
  426. <div class="hidden" id="ied_dingzhiinfo" style="position: relative;height: 100%;">
  427. <div id="ied_strcut_detail" style="height: 60rem;position: relative;"></div>
  428. </div>
  429. <div class="hidden" id="ied_pointtableinfo" style="position: relative;height: 100%;">
  430. <div id="ied_strcut_detail" style="height: 60rem;position: relative;"></div>
  431. </div>
  432. <div class="hidden" id="ied_sourcexmlinfo" style="position: relative;height: 100%;">
  433. <div id="ied_strcut_detail" style="height: 60rem;position: relative;margin: 1rem;"></div>
  434. </div>
  435. </div>
  436. </script>
  437. <script type="text/html" id="station_list_item_tpl">
  438. {{each data}}
  439. <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>
  440. {{/each}}
  441. </script>
  442. <script type="text/html" id="voltage_level_item_tpl">
  443. {{each data}}
  444. <div class="voltage_level_item" itemid="{{$value.id}}">
  445. <div class="voltage_level_name">{{$value.name}}</div>
  446. <div class="voltage_level_area"></div>
  447. </div>
  448. {{/each}}
  449. </script>
  450. <script type="text/html" id="select_item_tpl">
  451. {{each data}}
  452. <div class="station_list_item text_overflow" value="{{$value.id||$value.code}}">{{#$value.name}}</div>
  453. {{/each}}
  454. </script>
  455. <script type="text/html" id="dingzhi_datasetlist_tpl">
  456. <table class="headertable" style="width: 98%;">
  457. <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>
  458. </table>
  459. <div class="detailtable" style="width: 100%;height: 96%;">
  460. <table style="width: 100%;">
  461. <tbody>
  462. {{each data}}
  463. <tr fcdalist='{{$value.fcdalist}}'><td style="width: 4rem">{{$index+1}}</td>
  464. <td style="width: 4rem">{{$value.accesspoint_name}}</td>
  465. <td style="width: 15rem">{{$value.ld_desc}}({{$value.ld_name}})</td>
  466. <td style="width: 15rem">{{$value.dataset_name}}</td>
  467. <td style="width: 20rem">{{$value.dataset_desc}}</td>
  468. </tr>
  469. {{/each}}
  470. </tbody>
  471. </table>
  472. </div>
  473. </script>
  474. <script type="text/html" id="dingzhi_fcdalist_tpl">
  475. <table class="headertable" style="width: 98%;">
  476. <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>
  477. </table>
  478. <div class="detailtable" style="width: 100%;height: 96%;">
  479. <table style="width: 100%;">
  480. <tbody>
  481. {{each data}}
  482. <tr>
  483. <td style="width: 4rem">{{$index+1}}</td>
  484. <td style="width: 16rem;line-height: 1.2rem;">{{$value.doi_desc}}</td>
  485. <td style="width: 6rem">{{$value.da_maxval||''}}</td>
  486. <td style="width: 6rem">{{$value.da_minval||''}}</td>
  487. <td style="width: 6rem">{{$value.da_units||''}}</td>
  488. <td style="width: 6rem">{{$value.da_stepsize||''}}</td>
  489. <td style="width: 12rem">{{$value.da_datatype||''}}</td>
  490. <td style="width: 15rem">{{$value.short_addr||''}}</td>
  491. </tr>
  492. {{/each}}
  493. </tbody>
  494. </table>
  495. </div>
  496. </script>
  497. <!--信息点表模板-->
  498. <script type="text/html" id="pointtable_datasetlist_tpl">
  499. <table class="headertable" style="width: 98%;">
  500. <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>
  501. </table>
  502. <div class="detailtable" style="width: 100%;height: 96%;">
  503. <table style="width: 100%;">
  504. <tbody>
  505. {{each data}}
  506. <tr fcdalist='{{$value.fcdalist}}'>
  507. <td style="width: 4rem">{{$index+1}}</td>
  508. <td style="width: 4rem">{{$value.accesspoint_name}}</td>
  509. <td style="width: 8rem">{{$value.ld_desc}}({{$value.ld_inst}})</td>
  510. <td style="width: 8rem">{{$value.block_name}}</td>
  511. <td style="width: 12rem">{{$value.block_desc}}</td>
  512. <td style="width: 8rem">{{$value.block_datset}}</td>
  513. <td style="width: 12rem">{{$value.block_rptid}}</td>
  514. <td style="width: 6rem">{{$value.block_intgpd}}</td>
  515. <td style="width: 4rem">{{$value.block_confrev}}</td>
  516. <td style="width: 4rem">{{$value.block_buffered}}</td>
  517. <td style="width: 4rem">{{$value.block_buftime}}</td>
  518. <td style="width: 6rem">{{$value.point_cnt}}</td>
  519. </tr>
  520. {{/each}}
  521. </tbody>
  522. </table>
  523. </div>
  524. </script>
  525. <!--信息点表模板-->
  526. <script type="text/html" id="pointtable_fcdalist_tpl">
  527. <table class="headertable" style="width: 98%;">
  528. <thead><tr><td style="width: 4rem">序号</td><td style="width: 20rem">条目描述</td><td style="width: 8rem">数据类型</td><td style="width: 20rem">内部地址</td></tr></thead>
  529. </table>
  530. <div class="detailtable" style="width: 100%;height: 96%;">
  531. <table style="width: 100%;">
  532. <tbody>
  533. {{each data}}
  534. <tr>
  535. <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>
  536. </tr>
  537. {{/each}}
  538. </tbody>
  539. </table>
  540. </div>
  541. </script>
  542. <!--SV发送列表模板-->
  543. <script type="text/html" id="svsend_datasetlist_tpl">
  544. <table class="headertable" style="width: 98%;">
  545. <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>
  546. </table>
  547. <div class="detailtable" style="width: 100%;height: 96%;">
  548. <table style="width: 100%;">
  549. <tbody>
  550. {{each data}}
  551. <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>
  552. {{/each}}
  553. </tbody>
  554. </table>
  555. </div>
  556. </script>
  557. <!--SV发送列表模板-->
  558. <script type="text/html" id="svsend_fcdalist_tpl">
  559. <table class="headertable" style="width: 98%;">
  560. <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>
  561. </table>
  562. <div class="detailtable" style="width: 100%;height: 96%;">
  563. <table style="width: 100%;">
  564. <tbody>
  565. {{each data}}
  566. <tr>
  567. <td style="width: 4rem">{{$index+1}}</td><td style="width: 15rem">{{$value.do_desc}}</td>
  568. <td style="width: 15rem">{{$value.ld_inst||''}}/{{$value.prefix}}{{$value.ld_inst}}{{$value.ln_class}}{{$value.ln_inst}}.{{$value.do_name}}</td>
  569. <td style="width: 15rem">{{$value.out_ied_name||''}}{{'.'+$value.out_ied_desc||''}}</td>
  570. <td style="width: 15rem">{{$value.out_do_desc||''}}</td>
  571. </tr>
  572. {{/each}}
  573. </tbody>
  574. </table>
  575. </div>
  576. </script>
  577. <!--SV接收模板-->
  578. <script type="text/html" id="svrev_datasetlist_tpl">
  579. <table class="headertable" style="width: 98%;">
  580. <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>
  581. </table>
  582. <div class="detailtable" style="width: 100%;height: 96%;">
  583. <table style="width: 100%;">
  584. <tbody>
  585. {{each data}}
  586. <tr fcdalist="{{$value.info.list}}">
  587. <td style="width: 4rem">{{$index+1}}</td>
  588. <td style="width: 15rem">[{{$value.info.out_ied_name}}]{{$value.info.out_ied_desc}}</td>
  589. <td style="width: 15rem">{{$value.info.out_smv_ctrl_name||''}}</td>
  590. <td style="width: 10rem">{{$value.info.out_dataset_name||''}}</td>
  591. <td style="width: 10rem">{{$value.info.out_smv_ctrl_address.APPID||''}}</td>
  592. </tr>
  593. {{/each}}
  594. </tbody>
  595. </table>
  596. </div>
  597. </script>
  598. <script type="text/html" id="svrev_fcdalist_tpl">
  599. <table class="headertable" style="width: 98%;">
  600. <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>
  601. </table>
  602. <div class="detailtable" style="width: 100%;height: 96%;">
  603. <table style="width: 100%;">
  604. <tbody>
  605. {{each data}}
  606. <tr>
  607. <td style="width: 4rem">{{$index+1}}</td>
  608. <td style="width: 15rem">{{$value.do_desc}}</td>
  609. <td style="width: 15rem">{{$value.int_addr}}</td>
  610. <td style="width: 15rem">{{$value.out_ied_name||''}}{{'.'+$value.out_ied_desc||''}}</td>
  611. <td style="width: 15rem">{{$value.out_do_desc||''}}</td>
  612. </tr>
  613. {{/each}}
  614. </tbody>
  615. </table>
  616. </div>
  617. </script>
  618. <!--GOOSE发送列表模板-->
  619. <script type="text/html" id="goosesend_datasetlist_tpl">
  620. <table class="headertable" style="width: 98%;">
  621. <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>
  622. </table>
  623. <div class="detailtable" style="width: 100%;height: 96%;">
  624. <table style="width: 100%;">
  625. <tbody>
  626. {{each data}}
  627. <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>
  628. {{/each}}
  629. </tbody>
  630. </table>
  631. </div>
  632. </script>
  633. <!--GOOSE发送列表模板-->
  634. <script type="text/html" id="goosesend_fcdalist_tpl">
  635. <table class="headertable" style="width: 98%;">
  636. <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>
  637. </table>
  638. <div class="detailtable" style="width: 100%;height: 96%;">
  639. <table style="width: 100%;">
  640. <tbody>
  641. {{each data}}
  642. <tr>
  643. <td style="width: 4rem">{{$index+1}}</td>
  644. <td style="width: 15rem">{{$value.do_desc}}</td>
  645. <td style="width: 15rem">{{$value.ld_inst||''}}/{{$value.prefix}}{{$value.ld_inst}}{{$value.ln_class}}{{$value.ln_inst}}.{{$value.do_name}}</td>
  646. <td style="width: 15rem">{{$value.out_ied_name||''}}{{'.'+$value.out_ied_desc||''}}</td>
  647. <td style="width: 15rem">{{$value.out_do_desc||''}}</td>
  648. </tr>
  649. {{/each}}
  650. </tbody>
  651. </table>
  652. </div>
  653. </script>
  654. <!--GOOSE接收模板-->
  655. <script type="text/html" id="gooserev_datasetlist_tpl">
  656. <table class="headertable" style="width: 98%;">
  657. <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>
  658. </table>
  659. <div class="detailtable" style="width: 100%;height: 96%;">
  660. <table style="width: 100%;">
  661. <tbody>
  662. {{each data}}
  663. <tr fcdalist="{{$value.info.list}}">
  664. <td style="width: 4rem">{{$index+1}}</td>
  665. <td style="width: 15rem">[{{$value.info.out_ied_name}}]{{$value.info.out_ied_desc}}</td>
  666. <td style="width: 15rem">{{$value.info.out_gse_ctrl_name||''}}</td>
  667. <td style="width: 15rem">{{$value.info.out_dataset_name||''}}</td>
  668. <td style="width: 8rem">{{$value.info.out_gse_ctrl_address.APPID||''}}</td>
  669. </tr>
  670. {{/each}}
  671. </tbody>
  672. </table>
  673. </div>
  674. </script>
  675. <script type="text/html" id="gooserev_fcdalist_tpl">
  676. <table class="headertable" style="width: 98%;">
  677. <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>
  678. </table>
  679. <div class="detailtable" style="width: 100%;height: 96%;">
  680. <table style="width: 100%;">
  681. <tbody>
  682. {{each data}}
  683. <tr>
  684. <td style="width: 4rem">{{$index+1}}</td>
  685. <td style="width: 15rem">{{$value.do_desc}}</td>
  686. <td style="width: 15rem">{{$value.int_addr}}</td>
  687. <td style="width: 15rem">{{$value.out_ied_name||''}}{{'.'+$value.out_ied_desc||''}}</td>
  688. <td style="width: 15rem">{{$value.out_do_desc||''}}</td>
  689. </tr>
  690. {{/each}}
  691. </tbody>
  692. </table>
  693. </div>
  694. </script>
  695. <!--crc校验结果-->
  696. <script type="text/html" id="checktools_crc_tpl">
  697. <div style="width: 96%;height: 6%;margin:0 2%;">
  698. <span>SCD文件CRC:</span><span id="scdcrc" style="margin: 0 1rem;font-weight: bold;">-</span>
  699. <span>SCD校验CRC:</span><span id="scdcrc2" style="margin: 0 1rem;font-weight: bold;">-</span>
  700. <span>校验结果:</span><span id="scdcrcresult" style="margin: 0 1rem;font-weight: bold;">-</span>
  701. </div>
  702. <table style="width: 98%">
  703. <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>
  704. <td style="width: 10rem">校验结果</td></tr></thead>
  705. </table>
  706. <div id="iedcrclist" style="width: 100%;height: 86%;margin: 0"></div>
  707. </script>
  708. <script type="text/html" id="checktools_crc_list_tpl">
  709. <table style="width: 100%">
  710. <tbody>
  711. {{each data}}
  712. <tr>
  713. <td class="" style="width: 6rem">{{$index+1}}</td>
  714. <td class="" style="width: 10rem;">{{$value.iedname}}</td>
  715. <td class="" style="width: 24rem;line-height: 1.2rem;" title="{{$value.ieddesc}}">{{$value.ieddesc}}</td>
  716. <td class="" style="width: 10rem;line-height: 1.2rem;" title="{{$value.manufacturer||''}}">{{$value.manufacturer}}</td>
  717. <td class="" style="width: 10rem;line-height: 1.2rem;" title="{{$value.type||''}}">{{$value.type}}</td>
  718. <td class="" style="width: 10rem;line-height: 1.2rem;">{{$value.iedversion||'-'}}</td>
  719. <td class="" style="width: 10rem">{{$value.ccdcrc||'无'}}</td>
  720. <td class="" style="width: 10rem">{{$value.scdcrc||'无'}}</td>
  721. <td class="" style="width: 10rem">{{$value.checkcrc||'无'}}</td>
  722. <td class="" style="width: 10%">{{if $value.checkcrc!=null && $value.scdcrc==$value.checkcrc}}一致{{else}}<b style="color: red">不一致</b>{{/if}}</td>
  723. </tr>
  724. {{/each}}
  725. </tbody>
  726. </table>
  727. </script>
  728. <script type="text/javascript">
  729. template.helper("FullImgPath",function(imgsrc){
  730. if(imgsrc==null||imgsrc=="") return Global.AccessUrl+ "/static/images/userhead.png";
  731. if (imgsrc.substr(0, 4) != "http") {
  732. var _index = imgsrc.indexOf("static/");
  733. if (_index > -1) return Global.AccessUrl + imgsrc.substr(_index);
  734. }
  735. return imgsrc;
  736. })
  737. template.helper("ts2datetime",function(timestamp){
  738. if(timestamp==null||timestamp=="") return "";
  739. if(timestamp.indexOf("-")>-1 || timestamp.indexOf(":")>-1) return timestamp;
  740. if(timestamp.length>13) timestamp=timestamp.substring(0,13);
  741. else if( timestamp.length==10) timestamp=timestamp*1000;
  742. return new Date(timestamp).Format("yyyy-MM-dd hh:mm:ss");
  743. })
  744. template.helper("replaceStr",function(str,oldstr,newstr){
  745. if($.trim(str)=="") return "";
  746. var reg=new RegExp(oldstr);
  747. return str.replace(reg,newstr);
  748. })
  749. template.helper("alertLevelDesc",function(levelcode){
  750. if($.trim(levelcode)=="") return "";
  751. if(levelcode=="hint") return "提示";
  752. else if(levelcode=="waring") return "警告";
  753. else if(levelcode=="error") return "错误";
  754. return ""
  755. })
  756. var netaddrLoadState=0,iedLoadState=0,apLoadState=0;
  757. var IedList=[];
  758. var NetWork_ApNodes=[];
  759. var IedNetaddrList={};
  760. var myChart = null;
  761. var scdid="";
  762. //当前选中的IED
  763. var selectedIedName="";
  764. var TempScdID=$.trim(window.localStorage.getItem("PoliceObject.TempScdID"));
  765. var TempAreaID=$.trim(window.localStorage.getItem("PoliceObject.TempAreaID"));
  766. $(document).ready(function () {
  767. var token = $.trim(localStorage.getItem("sessionid"));
  768. if (token == "") {
  769. window.location.href = "/";
  770. return false;
  771. }
  772. Global.accessControl();
  773. PoliceObject.AlwaysTimer();
  774. PoliceObject.OnInited=function(){
  775. //加载变电站列表。需要2个回调函数,第一个为load回调,第二个为变电站选择事件回调
  776. PoliceObject.LoadStationList(function(r){
  777. var cur_station_id = $.trim(window.localStorage.getItem("PoliceObject.AreaID"));
  778. if(cur_station_id=="") cur_station_id=r.data[0].id;
  779. //填充当前站的电压等级列表
  780. PoliceObject.LoadVoltageLevelSelect(cur_station_id);
  781. if(cur_station_id==""){
  782. //默认加载第一个站的scd信息
  783. InitLoadScdList(cur_station_id);
  784. }
  785. },function(stationid){
  786. if(TempScdID!="" && stationid!=TempAreaID){
  787. window.localStorage.removeItem("PoliceObject.TempScdID");
  788. window.localStorage.removeItem("PoliceObject.TempAreaID");
  789. }
  790. //更换变电站时需要重新获取电压和间隔信息
  791. PoliceObject.AreaList=null;
  792. PoliceObject.VoltageLevel=null;
  793. PoliceObject.IedList=null;
  794. PoliceObject.ScdList=null;
  795. //填充当前站的电压等级列表
  796. //PoliceObject.LoadVoltageLevelSelect(stationid);
  797. InitLoadScdList(stationid);
  798. });
  799. }
  800. PoliceObject.init();
  801. //scd结构树显示和隐藏控制
  802. $("#scd_tree_btn").off().on('click',function(){
  803. $(this).addClass("hidden");
  804. $("#scd_tree_list").removeClass("hidden");
  805. });
  806. $("#scd_tree_list .title>i").off().on('click',function(){
  807. $("#scd_tree_list").addClass("hidden");
  808. $("#scd_tree_btn").removeClass("hidden");
  809. });
  810. var canvasW=1300;
  811. var isdrag=false;
  812. var data=[];
  813. $("#device_video,#ied_strcut").css({
  814. "top": "0",
  815. "left": "0",
  816. "height": "100%",
  817. "width": "100%",
  818. "background-color":"#324B86EB"
  819. });
  820. });
  821. function InitLoadScdList(stationid){
  822. myChart=null;
  823. //echarts.init(document.getElementById('container_map_ied')).dispose();
  824. $("#scd_list").html("");
  825. $("#network").html("").addClass("hidden");
  826. var container_map_ied=$("#container_map_ied").html(Tools.LoadingText("正在加载数据中..."));
  827. var $scd_info=$("#scd_info");
  828. $scd_info.find(".scd_name").html("");
  829. PoliceObject.AreaID=stationid;
  830. $.getJSON(Global.AccessUrl+"/api/screen/scd/list",{"ischeckinscd": "1","stationid":stationid,"pageno":1},function(r){
  831. PoliceObject.ScdList=r.data;
  832. //判断 是否有临时scd需要可视化查看
  833. var TempScdID=$.trim(window.localStorage.getItem("PoliceObject.TempScdID"));
  834. if(TempScdID==""){
  835. if(r.data==null||r.data.length==0){
  836. //还没有SCD文件
  837. container_map_ied.html(Tools.HintText("该变电站还没有签入任何SCD文件!","red"));
  838. return;
  839. }
  840. }
  841. container_map_ied.html(template('main_tpl',{}));
  842. $("#search_input").keydown(function(event) {
  843. if (event.keyCode == 13) {
  844. $("#search_button").trigger("click");
  845. }
  846. });
  847. $("#search_button").off("click").on("click", function(event) {
  848. event.stopPropagation();
  849. var volId=$.trim($("#voltage_level_select").attr("vid"));
  850. var areaId=$.trim($("#area_select").attr("vid"));
  851. var dtypeId=$.trim($("#device_type_select").attr("vid"));
  852. var searchValue = $.trim($("#search_input").val()).toLocaleLowerCase();
  853. if (searchValue == "" && volId=="" && areaId=="" && dtypeId=="") {
  854. return;
  855. }
  856. if(searchValue != ""){
  857. var $thisParent = $("#search_panel");
  858. var search_result = $("#search_result").removeClass("hidden").css({
  859. "top": $thisParent.position().top + $thisParent.height() + 10 + "px",
  860. "left": $thisParent.position().left + "px",
  861. "width": $thisParent.width() - 2 + "px"
  862. }).html("<div class='nodata'>正在加载数据中...</div>");
  863. var result = [];
  864. for (var k in PoliceObject.IedList) {
  865. if (k.toLocaleLowerCase().indexOf(searchValue) > -1) {
  866. result.push({
  867. "ied_name": k,
  868. "desc": PoliceObject.IedList[k].desc
  869. });
  870. } else if (PoliceObject.IedList[k].desc.indexOf(searchValue) > -1) {
  871. result.push({
  872. "ied_name": k,
  873. "desc": PoliceObject.IedList[k].desc
  874. });
  875. }
  876. }
  877. if (result == 0) {
  878. search_result.html("<div class='nodata'>未搜索到相关数据信息!</div>");
  879. return false;
  880. }
  881. search_result.html(template('search_result_list_tpl', {
  882. "data": result,
  883. "count": result.length
  884. })).find("ul").off("click").on('click', function() {
  885. var $this = $(this);
  886. //选择查询结果IED
  887. DialogObject.Open($("#dialog_public"), {
  888. size: ["150rem", "72rem"],
  889. para: {
  890. "title": $this.attr("ied_name") + "—详细信息",
  891. "ied_id": "",
  892. "ied_name": $this.attr("ied_name"),
  893. },
  894. callback: function(win, p1) {
  895. win.attr("ied_name", p1.ied_name);
  896. win.find(".caption>b").html(p1.title);
  897. var h = (win.height() - win.find(".caption").height() - win.find(".footer").height());
  898. win.find(".dataitemlist").height(h + "px").html(template('ied_detail_tpl', {}));
  899. win.find(".content").height(h - win.find(".tools").height() + "px");
  900. win.find("#ied_list_tree").height(h);
  901. //绑定快速查找
  902. win.find("#ied_list_tree .fast_find_list").off().on("input propertychange", function() {
  903. var v = ($(this).val()).toLocaleLowerCase();
  904. var tarEle = win.find("#ied_list_tree .station_list_item");
  905. if (v == "") tarEle.removeClass("hidden");
  906. else {
  907. tarEle.each(function() {
  908. var $this = $(this);
  909. if ($this.text().toLocaleLowerCase().indexOf(v) > -1) $this.removeClass("hidden");
  910. else $this.addClass("hidden");
  911. })
  912. }
  913. });
  914. PoliceObject.LoadIedGraph(null,PoliceObject.IedList[p1.ied_name]);
  915. }
  916. });
  917. });
  918. var th = search_result.find(".search_result_list_item").height();
  919. if (th > 600) {
  920. search_result.find(".search_result_list_item").slimScroll({
  921. height: (600 * hRate) + "px",
  922. width: "98%",
  923. alwaysVisible: false,
  924. wheelStep: 10,
  925. size: "6px",
  926. color: "#03aee7"
  927. });
  928. }
  929. }else{
  930. PoliceObject.OpenShowIedList("装置查询", {
  931. "area_id": areaId,
  932. "voltage_level_id":volId,
  933. "device_type_id":dtypeId
  934. });
  935. }
  936. });
  937. var data=r.data;
  938. var lst=[];
  939. if(data!=null){
  940. //默认为第一个scd
  941. var scdobj=data[0];
  942. var cur_ScdID=$.trim(window.localStorage.getItem(PoliceObject.AreaID+ ".ScdID"));
  943. if(data.length>0){
  944. for (var i = 0; i < data.length; i++) {
  945. if(cur_ScdID==data[i].id || data[i].enable==1){
  946. scdobj=data[i];
  947. }
  948. var version=i==0?"<span style='color:#502df7;font-weight: bold;'>"+(data[i].version||"在运版")+"</span>":data[i].version;
  949. 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>');
  950. }
  951. }else{
  952. lst.push(Tools.HintText("未签入SCD文件"));
  953. }
  954. PoliceObject.ScdID=scdobj.id;
  955. }else{
  956. lst.push(Tools.HintText("未签入SCD文件"));
  957. }
  958. if(TempScdID!=""){
  959. PoliceObject.ScdID=TempScdID;
  960. }
  961. PoliceObject.LoadVoltageLevelSelect(stationid,function(v,text){
  962. PoliceObject.OpenShowIedList(text, {
  963. "area_id": "",
  964. "voltage_level_id":v,
  965. "device_type_id":""
  966. });
  967. });
  968. PoliceObject.LoadDeviceType(function(v,text){
  969. //根据装置类型过滤IED
  970. PoliceObject.OpenShowIedList(text, {
  971. "area_id": "",
  972. "voltage_level_id":"",
  973. "device_type_id":v
  974. });
  975. });
  976. PoliceObject.LoadIedList();
  977. $scd_info.on("click",function(e){
  978. e.stopPropagation();
  979. var $t=$(this), xy=$t.offset();
  980. $t.find("i").attr("class","fa fa-caret-down");
  981. $("#scd_list").removeClass("hidden").css({
  982. top:xy.top+$t.height()+15,
  983. left:xy.left
  984. });
  985. }).find(".scd_name").html(TempScdID!=""?$.trim("【临时】"+window.localStorage.getItem("PoliceObject.TempScdName")):scdobj.scd_name);
  986. $("#scd_list").html(lst.join("")).children("div").off().on("click",function(){
  987. var t=$(this);
  988. $scd_info.find(".scd_name").html(t.children("span:first").text());
  989. var tmpscdid=t.attr("scdid");
  990. $("#scd_list").addClass("hidden");
  991. $("#scd_info").find("i").attr("class","fa fa-caret-up");
  992. if(PoliceObject.ScdID==tmpscdid){
  993. return;
  994. }
  995. window.localStorage.removeItem("PoliceObject.TempScdID");
  996. window.localStorage.removeItem("PoliceObject.TempAreaID");
  997. PoliceObject.VoltageLevel= []; //电压等级
  998. PoliceObject.AreaList=[]; //间隔列表
  999. PoliceObject.DeviceType=[]; //装置类型列表
  1000. PoliceObject.IedList=[]; //IED装置列表
  1001. PoliceObject.ScdID=tmpscdid;
  1002. window.localStorage.setItem(PoliceObject.AreaID+ ".ScdID",tmpscdid);
  1003. PoliceObject.LoadVoltageLevelSelect(tmpscdid);
  1004. PoliceObject.LoadDeviceType();
  1005. PoliceObject.LoadIedList();
  1006. });
  1007. netaddrLoadState=1;
  1008. iedLoadState=0;
  1009. apLoadState=1;
  1010. //GetSubNetwork();
  1011. //LoadIedNetAddr();
  1012. //LoadIedList();
  1013. })
  1014. }
  1015. function p_drawPoly(canvascontext,point1,point2) {
  1016. //canvascontext.setLineDash([]);
  1017. canvascontext.strokeStyle = "#08b008";
  1018. canvascontext.lineWidth = 1;
  1019. canvascontext.lineJoin = 'round';
  1020. canvascontext.lineCap = 'round';
  1021. canvascontext.beginPath();
  1022. canvascontext.moveTo(point1[0], point1[1]);
  1023. canvascontext.lineTo(point1[0]+10, point1[1]);
  1024. canvascontext.stroke();
  1025. canvascontext.closePath();
  1026. canvascontext.beginPath();
  1027. canvascontext.moveTo(point1[0]+9, point1[1]);
  1028. if(point2[1]<point1[1]) canvascontext.quadraticCurveTo(point1[0]+50,point1[1]-20,point2[0], point2[1]);
  1029. else canvascontext.quadraticCurveTo(point1[0]+50,point1[1]+20,point2[0], point2[1]);
  1030. canvascontext.stroke();
  1031. }
  1032. </script>
  1033. <!--搜索结果列表-->
  1034. <script type="text/html" id="search_result_list_tpl">
  1035. <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>
  1036. <div class="search_result_list_item">
  1037. {{each data}}
  1038. <ul style="padding-bottom: 0.5rem;" ied_name="{{$value.ied_name}}" >
  1039. <li>
  1040. <span style="font-size: 1.4rem;display: inline-block;width: 2rem;height: 2rem;"></span>
  1041. <span class="text_overflow" title="{{$value.desc}}">{{$value.desc}}</span>
  1042. </li>
  1043. </ul>
  1044. {{/each}}
  1045. </div>
  1046. </script>