scd_files.html 92 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520
  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/zTreeStyle/global.css">
  18. <link rel="stylesheet" type="text/css" href="/static/css/kmsjsmap.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 type="text/javascript" src="/static/js/ztree/jquery.ztree.all_useicon.js"></script>
  25. <script src="/static/js/global.js" type="text/javascript"></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/jquery.pagination.js" type="text/javascript"></script>
  30. <style type="text/css">
  31. .layui-tab-title .layui-this{color: #fff;background: #134BEA;border-radius: 1rem;}
  32. .layui-tab-title .layui-this::after{border-color:transparent;}
  33. .layui-tab-title li{background: #fff;color: #134BEA}
  34. .file_list table {
  35. border: 0px solid #4a3c6a;
  36. }
  37. .file_list tbody > tr:nth-child(2n) {
  38. background-color: #F6FAFF;
  39. }
  40. #file_list_tools>span{
  41. margin: 0 1rem;
  42. cursor: pointer;
  43. color: #639abb;
  44. padding: 2px 0.5rem;
  45. font-size: 1.3rem;
  46. border-bottom: 1px solid #639abb;
  47. }
  48. #file_list_tools>span:hover{
  49. font-weight: bold;
  50. font-size: 1.5rem;
  51. border-bottom: 2px solid #639abb;
  52. }
  53. #file_list_tools>span.active{
  54. color: #134BEA;
  55. font-weight: bold;
  56. border-bottom: 2px solid #134BEA;
  57. font-size: 1.5rem;
  58. }
  59. .disabled{
  60. cursor: default;
  61. color: #575656;
  62. }
  63. .detail_label{
  64. width: 13%;
  65. text-align: left;
  66. padding-left: 1rem;
  67. color: #43526B;
  68. }
  69. .detail_value{
  70. width: 18%;
  71. text-align: left;
  72. color: #134BEA;
  73. }
  74. </style>
  75. </head>
  76. <body>
  77. <div class="monitor_center" style="width:100%;height: 100%;">
  78. <div class="header">
  79. <div class="header_logo">
  80. <img src="/static/images/logo.jpg">
  81. </div>
  82. <div class="system_middle_title">
  83. <span class="system_big_title">SCD文档管理系统</span>
  84. <span class="orgname f_l text_overflow" id="orgname"></span><span class="stationname hidden" id="stationname"></span>
  85. <div class="scd_info f_l" id="scd_info">
  86. <span class="scd_name text_overflow"></span>
  87. <span style="margin-left: 1rem;margin-right: 1rem;font-size: 1.5rem;float: left;"><i class="fa fa-caret-up"></i></span>
  88. </div>
  89. </div>
  90. <div class="header_background">
  91. <div>
  92. <div class="main_bar" id="main_bar" style="float: left;margin-right: 2rem;">
  93. <div class="app_default accessControl" mark="screen" access-code="pl_menu_screen" onclick="window.location.href='scd_network.html'">
  94. <i class="app_icon fa fa-fw fa-gg"></i>
  95. <span>网络结构图</span>
  96. </div>
  97. <div class="app_default accessControl" mark="screen" access-code="pl_menu_screen" onclick="window.location.href='scd_o.html'">
  98. <i class="app_icon fa fa-fw fa-file-image-o"></i>
  99. <span>SCD可视化</span>
  100. </div>
  101. <div class="app_default accessControl" mark="outin" access-code="pl_menu_outin" onclick="window.location.href='scd_inout.html'">
  102. <i class="app_icon fa fa-fw fa-exchange fa-rotate-90"></i>
  103. <span>签入签出</span>
  104. </div>
  105. <div class="app_default accessControl app_active" mark="scdtools" access-code="pl_menu_scdtools" onclick="window.location.href='scd_files.html'">
  106. <i class="app_icon fa fa-fw fa-file-code-o"></i>
  107. <span>配置文件</span>
  108. </div>
  109. <div class="app_default accessControl" mark="stat" access-code="pl_menu_stat" onclick="window.location.href='scd_stat.html'">
  110. <i class="app_icon fa fa-fw fa-pie-chart"></i>
  111. <span>统计分析</span>
  112. </div>
  113. <div class="app_default accessControl" mark="admin" access-code="pl_menu_admin" onclick="window.location.href='police_o_admin.html'" style="margin-right: 0;">
  114. <i class="app_icon fa fa-fw fa-laptop"></i>
  115. <span>管理后台</span>
  116. </div>
  117. </div>
  118. <div class="app_default" style="color: #7A13E1;">|</div>
  119. <div class="app_default">
  120. <span class="yyyymmdd f_l" style="cursor:default;font-size: 1.4rem;font-family:electronicFont;width: 8rem;">&nbsp</span>
  121. <span class="week f_l" style="cursor:default;font-size: 1.4rem;width: 5rem;">&nbsp</span>
  122. <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>
  123. </div>
  124. <div class="app_default" style="color: #7A13E1;">/</div>
  125. <div class="app_default" style="border-bottom: 0px solid #7A13E1;height: 93%;">
  126. <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>
  127. </div>
  128. <div class="app_default" style="color: #7A13E1;">/</div>
  129. <div class="app_default" style="border-bottom: 0px solid #7A13E1;height: 93%;">
  130. <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>
  131. </div>
  132. </div>
  133. </div>
  134. <div class="user_role hidden" id="login_user_role"></div>
  135. </div>
  136. <div class="body_content">
  137. <!--中间-->
  138. <div class="body_center home_center" id="container_map">
  139. <div id="container_map_ied" style="position: absolute;z-index: 1;height: 100%;width: 77%;left: 20%;top:0;"></div>
  140. </div>
  141. </div>
  142. </div>
  143. <!--SCD列表-->
  144. <div class="scd_list hidden" id="scd_list"></div>
  145. <!--左侧树-->
  146. <!--展开按钮-->
  147. <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>
  148. <!--树-->
  149. <div id="scd_tree_list" class="abs scd_node_tree ">
  150. <div class="title f_l"><span class="f_l">变电站列表</span></div>
  151. <div class="list f_l station_list" style="background-color: transparent;"></div>
  152. </div>
  153. <div id="dialog_public" class="site_device_list dialog_public">
  154. <span class="text_overflow caption"><b></b>
  155. <span class="dlg_close" title="关闭窗口">
  156. <span class="dlg_icon_close"></span>
  157. </span>
  158. </span>
  159. <div class="dataitemlist">
  160. <div id="ln_strcut_detail" style="position: absolute;left: 0;top:0;z-index: 0;height:100%;width: 100%;"></div>
  161. </div>
  162. </div>
  163. <script type="text/html" id="main_tpl">
  164. <div class="scd_tools f_l">
  165. <!--工具栏-->
  166. <div class="tools_btns">
  167. <span chktype="scl" class="disabled small" onclick="CheckTools(this,'scl','SCL校验')">SCL校验</span>
  168. <span chktype="scd" class="disabled small" onclick="CheckTools(this,'scd','SCD一致性校验')">SCD一致性校验</span>
  169. <span chktype="crc" class="disabled small" onclick="CheckTools(this,'crc','CRC校验结果')">CRC校验</span>
  170. <span chktype="cid" class="disabled small" onclick="CheckTools(this,'cid','CID一致性校核')">CID一致性校核</span>
  171. <span chktype="ccd" class="disabled small" onclick="CheckTools(this,'ccd','CCD一致性校验')">CCD一致性校验</span>
  172. <span chktype="ccd_scd" class="disabled small" onclick="CheckTools(this,'ccd_scd','CCD与SCD一致性校验')">CCD与SCD一致性校验</span>
  173. <span chktype="cid_scd" class="disabled" onclick="CheckTools(this,'cid_scd','CID与SCD同源性校验')">CID与SCD同源性校验</span>
  174. </div>
  175. </div>
  176. <div class="scd_filter f_l" style="margin-left: 0;margin-top: 2rem;height: 5.5rem;width: 100%;">
  177. <div id="filetypename" class="filetypename f_l" style="text-align: left;width: 14%;height: 100%;line-height: 5.5rem;font-weight: bold;font-size: 1.67rem;margin-left: 2%;"></div>
  178. <div id="tools" class="f_l" style="width: 58%;height: 100%;line-height: 5.5rem;">
  179. <span class="btn f_r func_attachment_delete hidden" style="width: 10rem;margin-top: 1rem;margin-right: 1.5rem;" onclick="MultDeleteFile(this)"><i class="fa fa-trash"></i>批量删除</span>
  180. <span class="btn f_r func_attachment_download" style="width: 10rem;margin-top: 1rem;margin-right: 1.5rem;" onclick="MultDownloadFile(this)"><i class="fa fa-cloud-download"></i>批量下载</span>
  181. <span class="btn f_r file_upload_btn func_attachment_upload hidden" style="width: 10rem;margin-top: 1rem;margin-right: 1.5rem;"><i class="fa fa-cloud-upload"></i>上传</span>
  182. </div>
  183. <!--过滤栏-->
  184. <!--搜索区域-->
  185. <div id="search_panel" class="search_panel f_r" style="width: 30rem;position: relative;margin-right: 2rem;margin-top: 1rem">
  186. <div class="f_l" >
  187. <input class="search_input" style="width:100%;font-size:1.4rem;border: 1px solid #A38BF3 !important;background: transparent !important;border-radius: 3px;height: 3.2rem;" id="search_input_name" maxlength="40" placeholder="请输入文件名称"/>
  188. </div>
  189. <span class="btn f_r" id="search_button" style="width: 5.6rem;margin-right: 1.5rem;cursor: pointer;"><i class="fa fa-search"></i>搜索</span>
  190. </div>
  191. <div class="station_list hidden" id="search_result"></div>
  192. <!--搜索区域结束-->
  193. </div>
  194. <div id="files_area" class="files_area f_l" style="width: 100%;background: #FFF;color: #999;">
  195. <div id="file_type_tree" class="station_list f_l" style="width: 14%;height: 98%;position: relative;padding: 0;margin-left: 2%;box-shadow: none;background-color: #F3F5FA"></div>
  196. <div class="f_l" style="margin: 1rem 0 0 1.5%;width: 80%;">
  197. <div id="file_list_tools" class="f_l file_list_tools" style="width: 100%;height: 3rem;">
  198. <span class="active" style="margin: 0 1rem;" filetype='1'>管控文件</span><span class="hidden" style="margin: 0 1rem;" filetype='2'>裁剪文件</span><span style="margin: 0 1rem;" filetype='0'>其他文件</span>
  199. </div>
  200. <div id="file_list_header" class="file_list_header f_l" style="height: 4rem;line-height: 3.8rem;overflow: auto;width: 100%;">
  201. <table style="width: 98%;text-align: left;background-color: #F6FAFF;color: #000;border: 1px solid #C8D4E2"><thead><tr>
  202. <td class="text_overflow" style="width: 6%;text-align: center;">
  203. <input type="checkbox" value="" name="select_files">
  204. </td>
  205. <td class="text_overflow" style="width: 15%">文件名称</td>
  206. <td class="text_overflow" style="width: 9%">版本</td>
  207. <td class="text_overflow" style="width: 8%">文件类型</td>
  208. <td class="text_overflow" style="width: 8%">文件大小</td>
  209. <td class="text_overflow" style="width: 15%">存储路径</td>
  210. <td class="text_overflow" style="width: 8%">提交人</td>
  211. <td class="text_overflow" style="width: 12%">提交时间</td>
  212. <td class="text_overflow" style="width: 18%;text-align: center;">操作</td>
  213. </tr></thead></table>
  214. </div>
  215. <div class="f_l file_list" style="width: 100%;height: 83%;"></div>
  216. <div class="f_l pagebar pagination" style="width: 100%;height: 4rem;"></div>
  217. <div id="scd_detail_info" class="scd_detail_info hidden" style="width: 100%;height: 1rem;"></div>
  218. </div>
  219. </div>
  220. </script>
  221. <script type="text/html" id="station_list_item_tpl">
  222. {{each data}}
  223. <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>
  224. {{/each}}
  225. </script>
  226. <script type="text/html" id="select_item_tpl">
  227. {{each data}}
  228. <div class="station_list_item text_overflow" ind="{{$index+1}}" code="{{$value.code}}" value="{{$value.id||$value.code}}">{{#$value.name}}</div>
  229. {{/each}}
  230. </script>
  231. <!--crc校验结果-->
  232. <script type="text/html" id="checktools_crc_tpl">
  233. <div style="width: 96%;height: 6%;margin:0 2%;">
  234. <span>SCD文件CRC:</span><span id="scdcrc" style="margin: 0 1rem;font-weight: bold;">-</span>
  235. <span>SCD校验CRC:</span><span id="scdcrc2" style="margin: 0 1rem;font-weight: bold;">-</span>
  236. <span>校验结果:</span><span id="scdcrcresult" style="margin: 0 1rem;font-weight: bold;">-</span>
  237. </div>
  238. <table style="width: 98%">
  239. <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>
  240. <td style="width: 10rem">校验结果</td></tr></thead>
  241. </table>
  242. <div id="iedcrclist" style="width: 100%;height: 86%;margin: 0"></div>
  243. </script>
  244. <script type="text/html" id="checktools_crc_list_tpl">
  245. <table style="width: 100%">
  246. <tbody>
  247. {{each data}}
  248. <tr>
  249. <td class="" style="width: 6rem">{{$index+1}}</td>
  250. <td class="" style="width: 10rem">{{$value.iedname}}</td>
  251. <td class="" style="width: 24rem;line-height: 1.2rem;" title="{{$value.ieddesc}}">{{$value.ieddesc}}</td>
  252. <td class="" style="width: 10rem;line-height: 1.2rem;" title="{{$value.manufacturer||''}}">{{$value.manufacturer}}</td>
  253. <td class="" style="width: 10rem;line-height: 1.2rem;" title="{{$value.type||''}}">{{$value.type}}</td>
  254. <td class="" style="width: 10rem;line-height: 1.2rem;">{{$value.iedversion||'-'}}</td>
  255. <td class="" style="width: 10rem">{{$value.ccdcrc||'无'}}</td>
  256. <td class="" style="width: 10rem">{{$value.scdcrc||'无'}}</td>
  257. <td class="" style="width: 10rem">{{$value.checkcrc||'无'}}</td>
  258. <td class="" style="width: 10%">{{if $value.checkcrc!=null && $value.scdcrc==$value.checkcrc}}一致{{else}}<b style="color: red">不一致</b>{{/if}}</td>
  259. </tr>
  260. {{/each}}
  261. </tbody>
  262. </table>
  263. </script>
  264. <script type="text/javascript">
  265. template.helper("FullImgPath",function(imgsrc){
  266. if(imgsrc==null||imgsrc=="") return Global.AccessUrl+ "/static/images/userhead.png";
  267. if (imgsrc.substr(0, 4) != "http") {
  268. var _index = imgsrc.indexOf("static/");
  269. if (_index > -1) return Global.AccessUrl + imgsrc.substr(_index);
  270. }
  271. return imgsrc;
  272. })
  273. template.helper("ts2datetime",function(timestamp){
  274. if(timestamp==null||timestamp=="") return "";
  275. if(timestamp.indexOf("-")>-1 || timestamp.indexOf(":")>-1) return timestamp;
  276. if(timestamp.length>13) timestamp=timestamp.substring(0,13);
  277. else if( timestamp.length==10) timestamp=timestamp*1000;
  278. return new Date(timestamp).Format("yyyy-MM-dd hh:mm:ss");
  279. })
  280. template.helper("replaceStr",function(str,oldstr,newstr){
  281. if($.trim(str)=="") return "";
  282. var reg=new RegExp(oldstr);
  283. return str.replace(reg,newstr);
  284. })
  285. template.helper("replaceStrPath",function(str,oldstr,newstr){
  286. if($.trim(str)=="") return "";
  287. oldstr = oldstr==null ? "\\\\":oldstr;
  288. newstr = newstr==null ?"\\\\":newstr;
  289. var reg=new RegExp(oldstr,"gi");
  290. return str.replace(reg,newstr);
  291. })
  292. template.helper("alertLevelDesc",function(levelcode){
  293. if($.trim(levelcode)=="") return "";
  294. if(levelcode=="hint") return "提示";
  295. else if(levelcode=="waring") return "警告";
  296. else if(levelcode=="error") return "错误";
  297. return ""
  298. })
  299. var isCommting=false;
  300. var paginationLoaded=false;
  301. var iedLoadState=0;
  302. var isUploadFileing=false; //是否有文件正在上传
  303. var TempScdID=$.trim(window.localStorage.getItem("PoliceObject.TempScdID"));
  304. var TempAreaID=$.trim(window.localStorage.getItem("PoliceObject.TempAreaID"));
  305. $(document).ready(function () {
  306. var token = $.trim(localStorage.getItem("sessionid"));
  307. if (token == "") {
  308. window.location.href = "/";
  309. return false;
  310. }
  311. Global.accessControl();
  312. PoliceObject.AlwaysTimer();
  313. //$.getJSON(Global.AccessUrl+"/api/getGlobalCode",{"pcode":"file_types"},function(r){
  314. //});
  315. PoliceObject.OnInited=function(){
  316. var container_map_ied=$("#container_map_ied").css({"height":$("#scd_tree_list").height(),"top":"0rem"}).html(template('main_tpl',{}));
  317. $("#files_area").height(container_map_ied.height()-$(".scd_tools").height()-container_map_ied.children(".scd_filter").height()-container_map_ied.children(".scd_filter").css("margin-top").replace("px","")*1);
  318. $("#file_list_tools>span").on('click',function(){
  319. var me=$(this);
  320. $("#file_list_tools>span.active").removeClass("active");
  321. me.addClass("active");
  322. var filetype=me.attr("filetype");
  323. if(filetype=="1"){
  324. $("#tools .btn.func_attachment_delete").addClass("hidden");
  325. $("#tools .btn.func_attachment_upload").addClass("hidden");
  326. }else{
  327. $("#tools .btn.func_attachment_delete").removeClass("hidden");
  328. $("#tools .btn.func_attachment_upload").removeClass("hidden");
  329. }
  330. LoadStationFiles(1,20);
  331. });
  332. //加载变电站列表。需要2个回调函数,第一个为load回调,第二个为变电站选择事件回调
  333. PoliceObject.LoadStationList(function(r){
  334. var cur_station_id = $.trim(window.localStorage.getItem("PoliceObject.AreaID"));
  335. if(cur_station_id=="") cur_station_id=r.data[0].id;
  336. InitLoadScdList(r.data[0].id);
  337. //变电站数据加载完成处理
  338. //InitLoadStationFileList();
  339. },function(stationid){
  340. $("#search_input_name").val("");
  341. if(TempScdID!="" && stationid!=TempAreaID){
  342. window.localStorage.removeItem("PoliceObject.TempScdID");
  343. window.localStorage.removeItem("PoliceObject.TempAreaID");
  344. }
  345. iedLoadState=0;
  346. isLoadIedTreeNode=0;
  347. PoliceObject.IedList=[];
  348. InitLoadScdList(stationid);
  349. //更换变电站时需要重新获取电压和间隔信息
  350. InitLoadStationFileList();
  351. });
  352. }
  353. PoliceObject.init();
  354. $("#search_button").off().on("click",function(){
  355. LoadStationFiles(1,20);
  356. });
  357. //scd结构树显示和隐藏控制
  358. $("#scd_tree_btn").off().on('click',function(){
  359. $(this).addClass("hidden");
  360. $("#scd_tree_list").removeClass("hidden");
  361. });
  362. $("#scd_tree_list .title>i").off().on('click',function(){
  363. $("#scd_tree_list").addClass("hidden");
  364. $("#scd_tree_btn").removeClass("hidden");
  365. });
  366. $("#files_area .file_list").slimScroll({
  367. height: $("#files_area").height()-$(".pagebar").height()-$("#file_list_header").height()-$("#file_list_tools").height()-(20*hRate),
  368. width:$(".file_list_header").width()+"px",
  369. alwaysVisible: false,
  370. wheelStep: 10,
  371. size: "6px",
  372. color: "#03aee7"
  373. });
  374. $("#files_area .file_list_header input[name='select_files']").off().on('click',function(){
  375. var v=$(this).is(":checked");
  376. if(v){
  377. $("#files_area .file_list input[type='checkbox']").prop("checked",true);
  378. var $tools_btns=$("#container_map_ied .scd_tools .tools_btns");
  379. $tools_btns.children("span").addClass("disabled").attr("title","选择文件类型或数量不支持该操作");
  380. }else{
  381. $("#files_area .file_list input[type='checkbox']").prop("checked",false);
  382. clearSelectedFileList();
  383. }
  384. });
  385. layui.use(['form', 'layer', 'upload', "laydate"], function() {
  386. layui.form.render("select");
  387. layui.laydate.render({
  388. elem: "#overdate"
  389. });
  390. //文件上传绑定
  391. var uploadInst = layui.upload.render({
  392. elem: '.file_upload_btn',
  393. url: Global.AccessUrl + '/api/uploadfile',
  394. accept: "file",
  395. size: 1024 * 1024, //文件大小限制为不超过1G
  396. auto:false,
  397. choose: function (obj) {
  398. uploadInst.config.elem.next()[0].value = '';
  399. if(isUploadFileing){
  400. layer.msg("其他文件正在上传中...,请等待其完成后再操作!", {
  401. icon: Global.ICON_HINT
  402. });
  403. return false;
  404. }
  405. obj.preview(function (index, file,path) {
  406. var fix=file.name.split(".");
  407. if(fix.length==1){
  408. layer.msg("该类型文件不允许上传!", {
  409. icon: Global.ICON_ERROR
  410. })
  411. return false;
  412. }
  413. fix=fix[fix.length-1].toLocaleLowerCase();
  414. if (fix=="bat" || fix=="sh" || fix=="sql"|| fix=="exe"){
  415. layer.msg("该类型文件不允许上传!", {
  416. icon: Global.ICON_ERROR
  417. })
  418. return false;
  419. }
  420. if (fix == "rar") {
  421. layer.msg("不支持rar压缩包,请上传zip格式的压缩包!", {
  422. icon: Global.ICON_ERROR
  423. })
  424. return false;
  425. }
  426. obj.upload(index, file) //上传文件操作
  427. });
  428. },
  429. before: function(obj) {
  430. this.data = {
  431. "attachment_type": $("#file_type_tree .station_list_item.active").attr("value"),
  432. "station_id":PoliceObject.AreaID,
  433. "ied_name":$("#file_type_tree .ied_item.active").attr("ied_name")
  434. };
  435. isUploadFileing=true;
  436. this.item.attr("disabled", true);
  437. layer.msg("文件正在上传中...,请等待本文件上传完成再进行其它操作",{time:0});
  438. },
  439. done: function(res) {
  440. isUploadFileing=false;
  441. this.item.attr("disabled", false);
  442. //如果上传失败
  443. if (res.code != 0) {
  444. return layer.msg('文件上传失败:' + res.msg, {
  445. icon: Global.ICON_ERROR
  446. });
  447. }
  448. layer.msg("文件上传成功", {
  449. icon: Global.ICON_OK
  450. });
  451. LoadStationFiles(1,20);
  452. },
  453. error: function() {
  454. //演示失败状态,并实现重传
  455. layer.msg('文件上传失败', {
  456. icon: Global.ICON_ERROR
  457. });
  458. isUploadFileing=false;
  459. this.item.attr("disabled", false);
  460. }
  461. });
  462. });
  463. });
  464. function CheckTools(e,type,desc){
  465. if(!$(e).hasClass('disabled')){
  466. if(type=="scd"||type=="ccd"||type=="cid"||type=="ccd_scd"||type=="cid_scd"){
  467. PoliceObject.CheckTools(type,desc,$.trim(PoliceObject.ScdID),selectedFileList.join(","));
  468. return;
  469. }
  470. var f=[];
  471. $("#files_area .file_list>table input[name='scd_files']").each(function(){
  472. var tm1=$(this);
  473. if(tm1.is(":checked")){
  474. f.push({"fileid":tm1.attr('value'),"scdid":$.trim(tm1.attr("scd_id"))});
  475. }
  476. });
  477. if(type=="scl" && f.length!=1){
  478. layer.msg("该操作仅支持1个SCD文件进行校验!",{icon:Global.ICON_ERROR})
  479. return;
  480. }
  481. if(type=="crc" && f.length!=1){
  482. layer.msg("该操作仅支持1个SCD文件进行校验!",{icon:Global.ICON_ERROR})
  483. return;
  484. }
  485. PoliceObject.CheckTools(type,desc,$.trim(PoliceObject.ScdID));
  486. }
  487. }
  488. function InitLoadScdList(stationid){
  489. $("#scd_list").html("");
  490. var $scd_info=$("#scd_info");
  491. $scd_info.find(".scd_name").html("");
  492. PoliceObject.AreaID=stationid;
  493. $.getJSON(Global.AccessUrl+"/api/screen/scd/list",{"ischeckinscd": "1","stationid":stationid,"pageno":1,"enable":1},function(r){
  494. PoliceObject.ScdList=r.data;
  495. //判断 是否有临时scd需要可视化查看
  496. var TempScdID=$.trim(window.localStorage.getItem("PoliceObject.TempScdID"));
  497. if(TempScdID==""){
  498. if(r.data==null||r.data.length==0){
  499. setTimeout(function(){
  500. $("#file_type_tree .iedlist").remove();
  501. },200);
  502. return;
  503. }
  504. }
  505. var data=r.data;
  506. var lst=[];
  507. if(data!=null){
  508. //默认为第一个scd
  509. var scdobj=data[0];
  510. var cur_ScdID=$.trim(window.localStorage.getItem(PoliceObject.AreaID+ ".ScdID"));
  511. if(data.length>0){
  512. for (var i = 0; i < data.length; i++) {
  513. if(cur_ScdID==data[i].id || ( data[i].enable==1 && i==0)){
  514. scdobj=data[i];
  515. }
  516. var version=i==0?"<span style='color:#502df7;font-weight: bold;'>"+(data[i].version||"在运版")+"</span>":data[i].version;
  517. 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>');
  518. }
  519. }else{
  520. lst.push(Tools.HintText("未签入SCD文件"));
  521. }
  522. PoliceObject.ScdID=scdobj.id;
  523. }else{
  524. lst.push(Tools.HintText("未签入SCD文件"));
  525. }
  526. //判断 是否有临时scd需要可视化查看
  527. if(TempScdID!=""){
  528. PoliceObject.ScdID=TempScdID;
  529. }
  530. clearSelectedFileList();
  531. PoliceObject.LoadIedList();
  532. $scd_info.on("click",function(e){
  533. e.stopPropagation();
  534. var $t=$(this), xy=$t.offset();
  535. $t.find("i").attr("class","fa fa-caret-down");
  536. $("#scd_list").removeClass("hidden").css({
  537. top:xy.top+$t.height()+15,
  538. left:xy.left
  539. });
  540. }).find(".scd_name").html(TempScdID!=""?$.trim("【临时】"+window.localStorage.getItem("PoliceObject.TempScdName")):scdobj.scd_name);
  541. $("#scd_list").html(lst.join("")).children("div").off().on("click",function(){
  542. var t=$(this);
  543. $scd_info.find(".scd_name").html(t.children("span:first").text());
  544. var tmpscdid=t.attr("scdid");
  545. $("#scd_list").addClass("hidden");
  546. $("#scd_info").find("i").attr("class","fa fa-caret-up");
  547. if(PoliceObject.ScdID==tmpscdid){
  548. return;
  549. }
  550. window.localStorage.removeItem("PoliceObject.TempScdID");
  551. window.localStorage.removeItem("PoliceObject.TempAreaID");
  552. PoliceObject.TempScdID="";
  553. PoliceObject.ScdID=tmpscdid;
  554. window.localStorage.setItem(PoliceObject.AreaID+ ".ScdID",tmpscdid);
  555. });
  556. })
  557. }
  558. var selectedFileList=[];//选择的文件列表
  559. function clearSelectedFileList(){
  560. selectedFileList=[];
  561. var $tools_btns=$("#container_map_ied .scd_tools .tools_btns");
  562. $tools_btns.children("span").addClass("disabled").attr("title","选择文件不支持该操作");
  563. if(PoliceObject.ScdID!=""){
  564. $tools_btns.children("span[chktype='scl'],span[chktype='scd'],span[chktype='crc']").removeClass("disabled").attr("title","");
  565. }
  566. }
  567. function selectFile(e,type,scdid,filename){
  568. var $this=$(e);
  569. var $tools_btns=$("#container_map_ied .scd_tools .tools_btns");
  570. $tools_btns.children("span").addClass("disabled").attr("title","选择文件类型或数量不支持该操作");
  571. if(type=="scd"){
  572. if(!$this.is(':checked')) return;//取消选中
  573. if(scdid==-1)return;
  574. $tools_btns.children("span[chktype='scl'],span[chktype='scd'],span[chktype='crc']").removeClass("disabled").attr("title","");
  575. iedLoadState=0;
  576. isLoadIedTreeNode=0;
  577. PoliceObject.ScdID=scdid;
  578. PoliceObject.LoadIedList();
  579. InitLoadStationFileList("file_ccd");
  580. return;
  581. }
  582. if(!$this.is(':checked')) {
  583. for (var i = 0; i < selectedFileList.length; i++) {
  584. if(selectedFileList[i]==$this.val()){
  585. selectedFileList.splice(i,1);
  586. break;
  587. }
  588. }
  589. }
  590. else selectedFileList.push($this.val());
  591. if(selectedFileList.length>2) return;
  592. var newtype="";
  593. for (var i = 0; i < selectedFileList.length; i++) {
  594. var fn=$.trim($("#files_area .file_list input[value='"+selectedFileList[i]+"']").attr("name"));
  595. if(fn=="") continue;
  596. if(newtype!="" && newtype!=fn.replace("_files","")) newtype="";//所选择的2个文件类型不一致
  597. else newtype=fn.replace("_files","");
  598. }
  599. if(newtype=="ccd"){
  600. if(selectedFileList.length==1) $tools_btns.children("span[chktype='ccd_scd']").removeClass("disabled").attr("title","");
  601. if(selectedFileList.length==2) $tools_btns.children("span[chktype='ccd'],span[chktype='ccd_scd']").removeClass("disabled").attr("title","");
  602. return;
  603. }
  604. if(newtype=="cid"){
  605. if(selectedFileList.length==1) $tools_btns.children("span[chktype='cid_scd']").removeClass("disabled").attr("title","");
  606. if(selectedFileList.length==2) $tools_btns.children("span[chktype='cid'],span[chktype='cid_scd']").removeClass("disabled").attr("title","");
  607. return;
  608. }
  609. if(newtype=="icd"){
  610. if(selectedFileList.length==1) $tools_btns.children("span[chktype='icd_scd']").removeClass("disabled").attr("title","");
  611. return;
  612. }
  613. }
  614. function InitLoadStationFileList(defaultExpFiletype){
  615. var ele=$("#files_area");
  616. var fileTypeList=ele.find(".station_list");
  617. fileTypeList.html("");
  618. $.getJSON(Global.AccessUrl+"/api/getGlobalCode",{"pcode":"file_types"},function(r){
  619. if(r.code!=0 || r.data==null){
  620. return;
  621. }
  622. for (var i = 0; i < r.data.length; i++) {
  623. if( (/(icd|ccd|cid)/gi).test(r.data[i]["code"].toLocaleLowerCase())){
  624. r.data[i]["name"]="<span class='f_l'>"+r.data[i].name+"</span><span class='f_r'><i class='fa fa-caret-up'></i></span><span class='f_l iedlist' style='width:100%;'>正在加载装置...</span>";
  625. }else{
  626. r.data[i]["name"]="<span class='f_l'>"+r.data[i]["name"]+"</span>"
  627. }
  628. }
  629. fileTypeList.html(template('select_item_tpl',r)).find(".station_list_item").off().on('click', function(e) {
  630. clearSelectedFileList();
  631. var $t=$(this);
  632. fileTypeList.find(".active").removeClass("active");
  633. $t.addClass("active");
  634. $("#filetypename").html($t.children("span:first").text());
  635. $t.parent().find(".station_list_item[isopen='1']").each(function(){
  636. $(this).find("i.fa-caret-down").attr("class","fa fa-caret-up");
  637. $(this).children("div:first").addClass("hidden");
  638. });
  639. var btnCode=$.trim($t.attr("code"));
  640. if(btnCode=="file_all"){
  641. //全部文件
  642. $("#file_list_tools>span,#tools .file_upload_btn,#tools .func_attachment_delete").addClass("hidden");
  643. }else if(btnCode=="file_ccd"||btnCode=="file_icd"||btnCode=="file_cid"){
  644. $("#tools .file_upload_btn,#tools .func_attachment_delete").addClass("hidden");
  645. $("#file_list_tools>span").removeClass("hidden"); //裁剪文件标签
  646. }else{
  647. $("#file_list_tools>span").removeClass("hidden");
  648. $("#file_list_tools>span[filetype='2']").addClass("hidden"); //裁剪文件标签
  649. }
  650. var iedlist=$t.find(".iedlist");
  651. if(iedlist.length>0){
  652. e.stopPropagation();
  653. if(!iedlist.parent().hasClass("hidden")){
  654. $t.find("i.fa-caret-down").attr("class","fa fa-caret-up");
  655. iedlist.parent().addClass("hidden").parent().attr("isopen","0");
  656. }else{
  657. $t.find("i.fa-caret-down").attr("class","fa fa-caret-down");
  658. iedlist.parent().removeClass("hidden").parent().attr("isopen","1");
  659. }
  660. }
  661. if(btnCode!='file_all') $("#file_list_tools .active").trigger('click');
  662. else LoadStationFiles(1,20);
  663. });
  664. LoadChildrenIedTreeList();
  665. if(defaultExpFiletype==null){
  666. //默认加载第1个
  667. fileTypeList.find(".station_list_item:first").trigger('click');
  668. }else{
  669. //加载指定的文件类型列表
  670. //fileTypeList.find(".station_list_item[code='"+defaultExpFiletype+"']").trigger('click');
  671. }
  672. });
  673. }
  674. var isLoadIedTreeNode=0;
  675. function LoadChildrenIedTreeList(){
  676. if(iedLoadState==1){
  677. if(isLoadIedTreeNode==1) return;
  678. isLoadIedTreeNode=1;
  679. var iedHtml=[];
  680. for (var key in PoliceObject.IedList) {
  681. iedHtml.push('<div title="'+PoliceObject.IedList[key].desc+'" style="width:95%;margin-left:5%;line-height: 3rem;" class="f_l station_list_item ied_item text_overflow" ied_name="'+PoliceObject.IedList[key].ied_name+'"><img style="width:3rem;height:2.5rem;margin-right: 0.5rem;" src=\"/static/images/ied.png\">'+PoliceObject.IedList[key].desc+'</div>');
  682. }
  683. var cnt=$("#file_type_tree .station_list_item").length;
  684. $("#file_type_tree .iedlist").each(function(){
  685. var t=$(this);
  686. //如果分类为file_icd02(竣工图纸)时,需要固定添加2个额外的子类:一次图、二次图
  687. var staticData=[];
  688. if(t.parent().attr("code")=='file_icd02'){
  689. staticData.push('<div style="width:95%;margin-left:5%;line-height: 3rem;" class="f_l station_list_item ied_item text_overflow" ied_name="icd02_10000"><i class="fa fa-file-image-o" style="font-size: 2rem;margin: 0 1rem;"></i><span>一次图</span></div>','<div style="width:95%;margin-left:5%;line-height: 3rem;" class="f_l station_list_item ied_item text_overflow" ied_name="icd02_20000"><i class="fa fa-file-image-o" style="font-size: 2rem;margin: 0 1rem;"></i><span>二次图</span></div>');
  690. }
  691. t.html(staticData.join("")+ iedHtml.join(""));
  692. var h=$("#file_type_tree").height()-t.parent().position().top- (40*(cnt+1-t.parent().attr("ind")*1));
  693. t.slimScroll({
  694. height: h + "px",
  695. width: "100%",
  696. alwaysVisible: false,
  697. wheelStep: 10,
  698. size: "6px",
  699. color: "#03aee7"
  700. });
  701. t.parent().addClass("hidden");
  702. });
  703. $("#file_type_tree .ied_item").off().on("click",function(e){
  704. e.stopPropagation();
  705. $("#file_type_tree .ied_item.active").removeClass("active");
  706. $(this).addClass("active");
  707. LoadStationFiles(1,20);
  708. });
  709. }else{
  710. setTimeout(function(){
  711. if(iedLoadState==1 && isLoadIedTreeNode==1) return;
  712. LoadChildrenIedTreeList();
  713. },1000);
  714. }
  715. }
  716. function LoadStationFiles(pageno,pagesize){
  717. var fileLists=$("#files_area .file_list").html(Tools.LoadingText("正在加载文件数据..."));
  718. var activeEle=$("#file_type_tree .station_list_item.active");
  719. var typeValue = activeEle.attr("value");
  720. if(activeEle.attr("code")=="file_all") typeValue="";
  721. $.getJSON(Global.AccessUrl+"/api/attachment/list",{
  722. "pageno":pageno,
  723. "pagesize":pagesize,
  724. "name":$.trim($("#search_input_name").val()),
  725. "ied_name":$("#file_type_tree .ied_item.active").attr("ied_name"),
  726. "type":typeValue,
  727. "station_id":PoliceObject.AreaID,
  728. "scd_id":PoliceObject.ScdID,
  729. "is_checkin": typeValue==""?"": $("#file_list_tools>span.active").attr("filetype")
  730. },function(r){
  731. if(r.code!=0){
  732. fileLists.html(Tools.LoadingText("加载文件数据失败:"+r.msg,"red"));
  733. return;
  734. }
  735. showFileList(r);
  736. });
  737. }
  738. function showFileList(r){
  739. if(!paginationLoaded){
  740. //生成分页
  741. $("#files_area .pagebar").pagination(r.count, {
  742. num_edge_entries: 2,
  743. num_display_entries: 6,
  744. prev_show_always: false,
  745. next_show_always: false,
  746. prev_text: "&lt;",
  747. next_text: "&gt;",
  748. callback: function(page_index, jq) {
  749. //console.log("page_index:" + page_index)
  750. LoadStationFiles(page_index+1,20);
  751. },
  752. items_per_page: 10
  753. });
  754. paginationLoaded=true;
  755. }
  756. if(r.data==null||r.data.length==0){
  757. $("#files_area .pagebar").addClass("hidden");
  758. $("#files_area .file_list").html(Tools.HintText("未查询到文件记录!","#ffffff"));
  759. return;
  760. }
  761. $("#files_area .pagebar").removeClass("hidden");
  762. var h=template("station_files_item_tpl",r);
  763. $("#files_area .file_list").html(h);
  764. $("#files_area .file_list input[name='scd_files'][scd_id='"+PoliceObject.ScdID+"']").prop("checked",true);
  765. for (var i = 0; i < selectedFileList.length; i++) {
  766. $("#files_area .file_list input[value='"+selectedFileList[i]+"']").prop("checked",true);
  767. }
  768. Global.accessControl();
  769. }
  770. //上传文件
  771. function Upload(e){
  772. if(isCommting){
  773. layer.msg("禁止操作:上一操作还未完成,请稍后再试!");
  774. return;
  775. }
  776. e.stopPropagation();
  777. var $t=$(e), xy=$t.offset();
  778. $("#file_upload_div").removeClass("hidden").css({
  779. top:xy.top+$t.height()+15,
  780. left:xy.left,
  781. width:"70rem",
  782. height:"auto"
  783. });
  784. }
  785. //批量下载
  786. function MultDownloadFile(e){
  787. if(isCommting){
  788. layer.msg("禁止操作:上一操作还未完成,请稍后再试!");
  789. return;
  790. }
  791. var ids=[];
  792. $("#files_area .file_list input[type='checkbox']:checked").each(function(){
  793. ids.push($(this).attr("value"));
  794. });
  795. if(ids.length==0){
  796. layer.msg("请选择至少一个文件!");
  797. return;
  798. }
  799. isCommting=true;
  800. layer.msg("正在打包所选文件,请稍候...");
  801. $.post(Global.AccessUrl+"/api/attachment/download",{"ids":ids.join(",")},function(r){
  802. isCommting=false;
  803. if(r.code!=0){
  804. layer.msg("文件打包失败:"+r.msg);
  805. return;
  806. }
  807. layer.confirm('文件打包成功!<a href="'+r.data+'" style="color: #7472bf;border-bottom: 1px solid #7472bf;cursor:pointer;">下载</a>',{btn: ['关闭']}, function(index) {
  808. layer.close(index);
  809. });
  810. });
  811. }
  812. //批量删除
  813. function MultDeleteFile(e){
  814. if(isCommting){
  815. layer.msg("禁止操作:上一操作还未完成,请稍后再试!");
  816. return;
  817. }
  818. var ids=[];
  819. $("#files_area .file_list input[type='checkbox']:checked").each(function(){
  820. ids.push($(this).attr("value"));
  821. });
  822. if(ids.length==0){
  823. layer.msg("请选择至少一个文件!");
  824. return;
  825. }
  826. layer.confirm('确定删除选择的所有文件吗?', function(index) {
  827. isCommting=true;
  828. $.post(Global.AccessUrl+"/api/attachment/delete",{"ids":ids.join(","),"check_flag":"0"},function(r){
  829. isCommting=false;
  830. if(r.code!=0){
  831. layer.msg("删除文件失败:"+r.msg);
  832. return;
  833. }
  834. layer.msg("文件删除成功");
  835. clearSelectedFileList();
  836. LoadStationFiles(1,20);
  837. });
  838. });
  839. }
  840. //删除单个文件
  841. function DeleteFile(e,fileid,file_suffix,scdid){
  842. e.stopPropagation();
  843. if(isCommting){
  844. layer.msg("禁止操作:上一操作还未完成,请稍后再试!");
  845. return;
  846. }
  847. layer.confirm(file_suffix=="scd"?'当前删除文件为SCD文件,所有相关数据均会被删除且无法恢复,确定删除吗?':'确定删除该文件吗?',{icon:Global.ICON_ASK}, function(index) {
  848. isCommting=true;
  849. $.post(Global.AccessUrl+"/api/attachment/delete",{"id":fileid,"scd_id":scdid,"check_flag":"0"},function(r){
  850. isCommting=false;
  851. if(r.code!=0){
  852. layer.msg("删除文件失败:"+r.msg);
  853. return;
  854. }
  855. layer.msg("文件删除成功");
  856. clearSelectedFileList();
  857. LoadStationFiles(1,20);
  858. });
  859. });
  860. }
  861. function DownloadRec(e,fileid){
  862. e.stopPropagation();
  863. //下载记录
  864. $.post(Global.AccessUrl+"/api/attachment/download/rec",{id:fileid,desc:""},function(r){
  865. })
  866. }
  867. function DetailInfo(evt,station_id,scdid){
  868. var $scd_detail_info=$("#scd_detail_info");
  869. $scd_detail_info.removeClass("hidden").animate({"height":"40rem"},2000);
  870. DialogObject.Open($("#dialog_public"), {
  871. size: ["80rem", "22rem"],
  872. para: {
  873. "title": "详细信息",
  874. "scdid":scdid,
  875. "station_id":station_id
  876. },callback:function(win,para){
  877. win.find(".caption>b").html(para.title);
  878. var h = (win.height() - win.find(".caption").height() - win.find(".footer").height());
  879. var dataitemlist = win.find(".dataitemlist").height(h + "px").html(Tools.HintText("正在加载详细数据..."));
  880. $.getJSON(Global.AccessUrl+"/api/scd/checkin/detail",{"station_id":para.station_id,"scd_id":para.scdid},function(r){
  881. dataitemlist.html("");
  882. if(r.code!=0){
  883. layer.msg("获取详细信息失败:"+r.msg)
  884. return;
  885. }
  886. if(r.data==null){
  887. return;
  888. }
  889. r.data["detail"]=JSON.parse(r.data.job_content);
  890. var h=template('scd_detail_item_tpl',r.data);
  891. dataitemlist.html(h);
  892. });
  893. }
  894. });
  895. }
  896. function toTmpScd(stationid, scddid, scdname, scdpath){
  897. layer.confirm("该文件分析结果不会进行保存,系统会定时自动清除,是否继续?",{icon:Global.ICON_ASK},function(){
  898. //PoliceObject.toTmpScd(stationid, scdname, scdpath);
  899. $.post(Global.AccessUrl+"/api/attachment/scdparse/start",{"station_id":stationid,"scd_name":scdname,"scd_path":scdpath},function(r){
  900. if(r.code!=0){
  901. layer.msg("操作失败:"+r.msg,{icon:Global.ERROR});
  902. return;
  903. }
  904. PoliceObject.CurentParseScdName=scdname;
  905. $.post(Global.AccessUrl+"/api/screen/scd/tmp_parse",{"station_id":stationid,"scd_name":scdname,"scd_path":scdpath},function(r1){
  906. if(r1.code!=0){
  907. layer.msg("操作失败:"+r1.msg,{icon:Global.ERROR});
  908. layer.closeAll();
  909. return;
  910. }
  911. layer.closeAll();
  912. });
  913. });
  914. })
  915. }
  916. </script>
  917. <script type="text/html" id="scd_detail_item_tpl">
  918. <div class="f_l" style="width: 100%">
  919. <span class="f_l detail_label">文件名称:</span><span class="f_l detail_value text_overflow" title="{{scd_name}}">{{scd_name}}</span>
  920. <span class="f_l detail_label">版本\状态:</span><span class="f_l detail_value">{{version}}</span>
  921. <span class="f_l detail_label">签入时间:</span><span class="f_l detail_value">{{finish_date}}</span>
  922. </div>
  923. <div class="f_l" style="width: 100%">
  924. <span class="f_l detail_label">提交人:</span><span class="f_l detail_value">{{username}}</span>
  925. <span class="f_l detail_label">提交时间:</span><span class="f_l detail_value">{{start_date}}</span>
  926. <span class="f_l detail_label">签入类型:</span><span class="f_l detail_value text_overflow">{{detail.checkintype_text}}-{{detail.checkinchildtype_text}}</span>
  927. </div>
  928. <div class="f_l" style="width: 100%">
  929. <span class="f_l detail_label">工作内容:</span><span class="f_l detail_value text_overflow" title="{{detail.workbookno}}">{{detail.workbookno||'无'}}</span>
  930. <span class="f_l detail_label">工作票:</span><span class="f_l detail_value text_overflow">
  931. {{if detail.workbookno_name!=""}}
  932. <a download="{{detail.workbookno_name}}" href="{{detail.workbookno_file}}" style="color: #7575c8;border-bottom: 1px solid;">{{detail.workbookno_name}}</a>
  933. {{else}}
  934. {{/if}}
  935. </span>
  936. <span class="f_l detail_label">一致性确认书:</span><span class="f_l detail_value text_overflow"><a download="{{detail.confirmbook_name}}" href="{{detail.confirmbook_file}}" style="color: #7575c8;border-bottom: 1px solid;">{{detail.confirmbook_name}}</a></span>
  937. </div>
  938. <div class="f_l" style="width: 100%">
  939. <span class="f_l detail_label">SCD校验信息:</span><span class="f_l detail_value" ><a href="javascript:PoliceObject.CheckTools('scl','{{scd_name}}-校验结果',{{scd_id}})" style="color: #7575c8;border-bottom: 1px solid;">查看校验详情</a></span>
  940. <span class="f_l detail_label">一致性校验:</span><span class="f_l detail_value" >
  941. {{if compid!=null && compid>0}}
  942. <a href="javascript:PoliceObject.CheckTools('scd','{{scd_name}}-一致性校验结果',{{scd_id}})" style="color: #7575c8;border-bottom: 1px solid;">查看校验详情</a>
  943. {{else}}
  944. {{/if}}
  945. </span>
  946. </div>
  947. </script>
  948. <script type="text/html" id="station_files_item_tpl">
  949. <table style="width: 98%;text-align: left;line-height: 4rem;"><tbody>
  950. {{each data}}
  951. <tr {{if $value.file_suffix=='scd' && $value.check_flag=='1'}}onclick='DetailInfo(this,{{$value.station_id}},"{{$value.scd_id}}")'{{/if}}>
  952. <td class="text_overflow" style="width: 6%;text-align: center;">
  953. <input class="" type="checkbox" scd_id="{{$value.scd_id||''}}" value="{{$value.id}}" name="{{$value.file_suffix}}_files" onclick="selectFile(this,'{{$value.file_suffix}}','{{$value.scd_id||0}}','{{$value.file_name}}');event.stopPropagation();">
  954. </td>
  955. <td class="text_overflow" style="width: 15%" title="{{$value.file_name}}">
  956. {{if $value.file_suffix=='scd' && $value.check_flag=='1'}}
  957. <span style="color: #9f84ea;cursor: pointer;border-bottom: 1px solid #9f84ea;">{{$value.file_name}}</span>
  958. {{else}}
  959. {{$value.file_name}}
  960. {{/if}}
  961. </td>
  962. <td class="text_overflow" style="width: 9%;{{if $value.version=='在运版'}}color:green{{/if}}">{{$value.version||'&nbsp;'}}</td>
  963. <td class="text_overflow" style="width: 8%">{{$value.type_name||"&nbsp;"}}</td>
  964. <td class="text_overflow" style="width: 8%">
  965. {{$value.file_size||"-"}}
  966. </td>
  967. <td class="text_overflow" style="width: 15%" title="{{$value.save_path}}">{{#$value.save_path||"&nbsp;"}}</td>
  968. <td class="text_overflow" style="width: 8%">
  969. {{$value.username||"-"}}
  970. </td>
  971. <td class="text_overflow" style="width: 12%">{{$value.created_time||"-"}}</td>
  972. <td class="text_overflow" style="width: 18%;text-align: center;">
  973. {{if $value.scd_id>'0' && $value.file_suffix=="scd"}}
  974. <span class="detail_btn accessControl"><span onclick="event.stopPropagation();PoliceObject.toScd('{{$value.station_id}}','{{$value.scd_id}}','{{$value.file_name}}')" style="color: #134BEA;cursor: pointer;border-bottom: 1px solid #134BEA;">可视化查看</span></span>
  975. {{/if}}
  976. <!--非管控SCD文件 可以进行可视化分析-->
  977. {{if $value.scd_id=='0' && $value.file_suffix=="scd"}}
  978. <span class="detail_btn accessControl"><span onclick="toTmpScd('{{$value.station_id}}','','{{$value.file_name}}','{{replaceStrPath $value.save_path}}')" style="color: #134BEA;cursor: pointer;border-bottom: 1px solid #134BEA;">可视化分析</span></span>
  979. {{/if}}
  980. <span class="detail_btn accessControl" access-code="func_attachment_download"><a download="{{$value.file_name}}" href="{{$value.save_path}}" onclick="DownloadRec(event,{{$value.id}})" style="color: #134BEA;cursor: pointer;border-bottom: 1px solid #134BEA;">下载</a></span>
  981. {{if $value.check_flag=='0'}}
  982. <span class="detail_btn accessControl" access-code="func_attachment_delete" onclick="DeleteFile(event,'{{$value.id}}','{{$value.file_suffix}}','{{$value.scd_id}}');" style="cursor: pointer;color: #FF0000;border-bottom: 1px solid #FF0000;">删除</span>
  983. {{/if}}
  984. </td>
  985. </tr>
  986. {{/each}}
  987. </tbody>
  988. </table>
  989. </script>
  990. <!--SCL校验-->
  991. <script type="text/html" id="checktools_scl_tpl">
  992. <div id="node_tree" class="f_l" style="width: 20%;text-align: left;background-color: #F3F5FA;border-radius: 4px;border: 1px solid #DCDEE3;">
  993. <div class="ztree tree"></div>
  994. </div>
  995. <div id="content_div" class="f_l" style="width: 78%;height: 100%;position: relative;background: #fff;margin-left: 1%;">
  996. <div class="f_l stat" style="width: 100%;height: 4rem;line-height: 4rem;">
  997. <span>
  998. <span alert_level="" style="margin: 0 1rem;cursor: pointer;">全部:<b class="alert_level_all">0</b></span>
  999. <span alert_level="error" style="margin: 0 1rem;cursor: pointer;">错误:<b class="alert_level_error">0</b></span>
  1000. <span alert_level="waring" style="margin: 0 1rem;cursor: pointer;">告警:<b class="alert_level_waring">0</b></span>
  1001. <span alert_level="hint" style="margin: 0 1rem;cursor: pointer;">提示:<b class="alert_level_hint">0</b></span>
  1002. <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>
  1003. <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>
  1004. </span>
  1005. </div>
  1006. <div class="datalist_header" style="height: 4rem;line-height: 2.6rem;overflow: auto;width: 100%">
  1007. <table style="width: 100%;text-align: left;background-color: #423176;"><thead><tr>
  1008. <td class="" style="width: 6%;padding-left: 1rem;">装置名称</td>
  1009. <td class="" style="width: 14%">装置描述</td>
  1010. <td class="" style="width: 8%">等级</td>
  1011. <td class="" style="width: 8%">行号</td>
  1012. <td class="" style="width: 47%">描述</td>
  1013. <td class="" style="width: 15%">标准及条款</td>
  1014. </tr></thead></table>
  1015. </div>
  1016. <div class="f_l datalist" style="width: 100%;"></div>
  1017. <div class="f_l pagebar pagination" style="width: 100%;height: 4rem;line-height: 2rem;"></div>
  1018. </div>
  1019. </script>
  1020. <script type="text/html" id="checktools_scl_datalist_tpl">
  1021. <table style="width: 100%;text-align: left;table-layout: fixed;">
  1022. <tbody>
  1023. {{each data}}
  1024. <tr class="alert_level_{{$value.alert_level}}" alertid="{{$value.node_id}}">
  1025. <td class="" style="width: 6%;padding-left: 1rem;">{{#($value.ied_name||"-")}}</td>
  1026. <td class="" style="width: 14%;line-height: 2rem;">{{#($value.ied_desc||"-")}}</td>
  1027. <td class="" style="width: 8%">{{alertLevelDesc $value.alert_level}}</td>
  1028. <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>
  1029. <td class="" style="width: 47%;line-height: 2rem;">{{$value.parse_result}}</td>
  1030. <td class="" style="width: 15%;line-height: 2rem;" title="">{{$value.apply_standard}} {{$value.apply_standard_no}}</td>
  1031. </tr>
  1032. {{/each}}
  1033. </tbody>
  1034. </table>
  1035. </script>
  1036. <!--SCD校验-->
  1037. <script type="text/html" id="checktools_scd_tpl">
  1038. <div class="f_l" style="width: 30%">
  1039. <div id="scd_comp_tools" class="f_l" style="width: 100%;height: 5rem;text-align: left;">
  1040. <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>
  1041. <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>
  1042. <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>
  1043. </div>
  1044. <div id="scd_comp_list" class="f_l" style="width: 100%;height: 90%;text-align: left;background-color: #fbfbfb;border: 1px solid #f2f2f2;">
  1045. <table class="datalist_header f_l" style="width: 100%;text-align: center;background-color: #fbfbfb;"><thead><tr>
  1046. <td class="text_overflow" style="width: 9%;">选择</td>
  1047. <td class="text_overflow" style="width: 40%;">比对SCD</td>
  1048. <td class="text_overflow" style="width: 38%;">日期</td>
  1049. <td class="text_overflow" style="width: 10%;">操作</td>
  1050. </tr></thead></table>
  1051. <div class="datalist f_l"></div>
  1052. </div>
  1053. </div>
  1054. <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;">
  1055. <div id="node_tree" class="f_l" style="width: 97%;height: 4rem;line-height: 4rem;text-align: left;color: #516380;background: #FFF;margin:1%;">
  1056. <div class="f_l" style="text-align: center;width: 49%"><span>基准SCD:</span><b style="color: #09162C">—</b></div>
  1057. <div class="f_l" style="width: 2%;color: #516380;font-weight: bold;text-align: center;font-size: 2rem;">|</div>
  1058. <div class="f_l" style="text-align: center;width: 49%"><span>比对SCD:</span><b style="color: #09162C">—</b></div>
  1059. </div>
  1060. <div id="comp_show_area" class="f_l" style="width: 100%;height: 90.5%;margin-left: 0;position: relative;">
  1061. <div>请选择比对记录或创建新的比对</div>
  1062. </div>
  1063. </div>
  1064. </script>
  1065. <script type="text/html" id="checktools_scd_datalist_tpl">
  1066. <table style="width: 100%;text-align: center;">
  1067. <tbody>
  1068. {{each data}}
  1069. <tr style="border-bottom: 1px solid #f0f0f0;">
  1070. <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>
  1071. <td class="text_overflow" style="width: 40%" title="{{$value.source_name}}与{{$value.target_name}}">{{#($value.name||"-")}}</td>
  1072. <td class="text_overflow" style="width: 38%">{{$value.CREATED_TIME}}</td>
  1073. <td class="text_overflow" style="width: 10%">
  1074. {{if $value.node_state=="1"}}
  1075. <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>
  1076. {{else}}...{{/if}}
  1077. </td>
  1078. </tr>
  1079. {{/each}}
  1080. </tbody>
  1081. </table>
  1082. </script>
  1083. <script type="text/html" id="comp_scd_tpl">
  1084. <div class="abs comp_scd" style="left:20%">
  1085. <img src="/static/images/comp_scd/version.png">
  1086. <div class="scd_font">SCD版本</div>
  1087. <div style="margin-top: 1rem;">
  1088. <div><img src="/static/images/comp_scd/change_icon_1.png" style="width: 1rem"><b>&nbsp;&nbsp;{{version.target||'无'}}</b></div>
  1089. <div><img src="/static/images/comp_scd/allow.png" style="height: 4rem;width: 1rem;"></div>
  1090. <div style="color: #000;"><img src="/static/images/comp_scd/change_icon_2.png" style="width: 1rem"><b>&nbsp;&nbsp;{{version.source||'无'}}</b></div>
  1091. </div>
  1092. </div>
  1093. <div class="abs comp_scd" style="left:45%">
  1094. <img src="/static/images/comp_scd/crc.png">
  1095. <div class="scd_font">CRC</div>
  1096. <div style="margin-top: 1rem;">
  1097. <div><img src="/static/images/comp_scd/change_icon_1.png" style="width: 1rem"><b>&nbsp;&nbsp;{{crc.target||'无'}}</b></div>
  1098. <div><img src="/static/images/comp_scd/allow.png" style="height: 4rem;width: 1rem;"></div>
  1099. <div style="color: #000;"><img src="/static/images/comp_scd/change_icon_2.png" style="width: 1rem;"><b>&nbsp;&nbsp;{{crc.source||'无'}}</b></div>
  1100. </div>
  1101. </div>
  1102. <div class="abs comp_scd" style="left:70%">
  1103. <img src="/static/images/comp_scd/ied.png">
  1104. <div class="scd_font">IED</div>
  1105. </div>
  1106. <div class="abs" id="ied_change_stat">
  1107. <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>
  1108. <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>
  1109. <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>
  1110. </div>
  1111. </script>
  1112. <script type="text/html" id="comp_scd_ied_tpl">
  1113. <div class="f_l comp_ied_list" id="comp_ied_list">
  1114. <div style="font-weight: bold;text-align: left;border-bottom: 1px solid #ccc;line-height: 3rem;">【{{opt}}】的设备列表 ({{num}})</div>
  1115. <div class="ied_data_list">
  1116. {{each list}}
  1117. <div class="ied_item text_overflow" title="{{$value.ied_desc}}" ied_name="{{$value.ied_name}}">({{$value.ied_name}}){{$value.ied_desc}}</div>
  1118. {{/each}}
  1119. </div>
  1120. <div class="ied_comp_items">
  1121. <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>
  1122. <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>
  1123. <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>
  1124. <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>
  1125. <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>
  1126. <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>
  1127. <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>
  1128. <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>
  1129. <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>
  1130. <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>
  1131. <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>
  1132. <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>
  1133. <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>
  1134. <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>
  1135. <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>
  1136. <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>
  1137. <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>
  1138. <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>
  1139. <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>
  1140. <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>
  1141. <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>
  1142. <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>
  1143. <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>
  1144. <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>
  1145. </div>
  1146. </div>
  1147. <div class="f_l comp_ied_result_show" id="comp_ied_result_show">
  1148. <div id="node_tree" class="f_l" style="width: 98%;height: 4rem;line-height: 4rem;text-align: left;color: #516380;background: #FFF;margin:1%;">
  1149. <div class="f_l" style="text-align: center;width: 49%"><span>基准SCD:</span><b style="color: #09162C">—</b></div>
  1150. <div class="f_l" style="width: 2%;color: #516380;font-weight: bold;text-align: center;font-size: 2rem;">|</div>
  1151. <div class="f_l" style="text-align: center;width: 49%"><span>比对SCD:</span><b style="color: #09162C">—</b></div>
  1152. </div>
  1153. <div class="comp_show_area" class="f_l">
  1154. <div>正在加载数据中...</div>
  1155. </div>
  1156. </div>
  1157. </script>
  1158. <script type="text/html" id="comp_ied_result_show_tpl">
  1159. <div class="comp_ied_result_split_line"></div>
  1160. <div class="iedele source_ied" style="left: 5%"><img src="/static/images/default_ied.png"><div class="ied_name"></div></div>
  1161. <div class="iedele target_ied" style="left: 90%"><img src="/static/images/default_ied.png"><div class="ied_name"></div></div>
  1162. </script>
  1163. <!--SCD校验模板定义结束-->
  1164. <!--CCD校验结果模板定义-->
  1165. <script type="text/html" id="comp_ccd_ied_tpl">
  1166. <div class="f_l comp_ied_list" id="comp_ied_list">
  1167. <div style="font-weight: bold;text-align: left;border-bottom: 1px solid #ccc;line-height: 3rem;">当前设备</div>
  1168. <div class="ied_data_list" style="height: 10%;line-height: 2rem;">
  1169. {{each list}}
  1170. <div class="ied_item text_overflow" title="{{$value.ied_desc}}" ied_name="{{$value.ied_name}}">({{$value.ied_name}}){{$value.ied_desc}}</div>
  1171. {{/each}}
  1172. </div>
  1173. <div class="ied_comp_items" style="height: 81%">
  1174. <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>
  1175. <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>
  1176. <div class="f_l node" type='control' num='0'><i class="f_l fa fa-caret-right" /><span class="f_l">控制块</span><span class="f_r num">0</span></div>
  1177. <div class="f_l children hidden" p_type="control" type="scd.ied.goosepub" num='0'><span class="f_l">GOOSE发布</span><span class="f_r num">0</span></div>
  1178. <div class="f_l children hidden" p_type="control" type="scd.ied.goosesub" num='0'><span class="f_l">GOOSE订阅</span><span class="f_r num">0</span></div>
  1179. <div class="f_l children hidden" p_type="control" type="scd.ied.svpub" num='0'><span class="f_l">SV发布</span><span class="f_r num">0</span></div>
  1180. <div class="f_l children hidden" p_type="control" type="scd.ied.svsub" num='0'><span class="f_l">SV订阅</span><span class="f_r num">0</span></div>
  1181. <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>
  1182. <div class="f_l children hidden" p_type="Communication" type="scd.ied.goosepub.Communication" num='0'><span class="f_l">GOOSE发布接入点</span><span class="f_r num">0</span></div>
  1183. <div class="f_l children hidden" p_type="Communication" type="scd.ied.goosesub.Communication" num='0'><span class="f_l">GOOSE订阅接入点</span><span class="f_r num">0</span></div>
  1184. <div class="f_l children hidden" p_type="Communication" type="scd.ied.smvpub.Communication" num='0'><span class="f_l">SV发布接入点</span><span class="f_r num">0</span></div>
  1185. <div class="f_l children hidden" p_type="Communication" type="scd.ied.smvsub.Communication" num='0'><span class="f_l">SV订阅接入点</span><span class="f_r num">0</span></div>
  1186. <div class="f_l node" type='CommParameter' num='0'><i class="f_l fa fa-caret-right" /><span class="f_l">通信参数</span><span class="f_r num">0</span></div>
  1187. <!--<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>-->
  1188. <div class="f_l children hidden" p_type="CommParameter" type="scd.ied.goosepub.Communication.GSE" num='0'><span class="f_l">GOOSE发布通信参数</span><span class="f_r num">0</span></div>
  1189. <div class="f_l children hidden" p_type="CommParameter" type="scd.ied.goosesub.Communication.GSE" num='0'><span class="f_l">GOOSE订阅通信参数</span><span class="f_r num">0</span></div>
  1190. <div class="f_l children hidden" p_type="CommParameter" type="scd.ied.smvpub.Communication.SMV" num='0' num='0'><span class="f_l">SV发布通信参数</span><span class="f_r num">0</span></div>
  1191. <div class="f_l children hidden" p_type="CommParameter" type="scd.ied.smvsub.Communication.SMV" num='0' num='0'><span class="f_l">SV订阅通信参数</span><span class="f_r num">0</span></div>
  1192. <!--
  1193. <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>
  1194. <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>
  1195. <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>
  1196. <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>
  1197. <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>
  1198. <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>
  1199. -->
  1200. <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>
  1201. <div class="f_l children hidden" p_type="config" type="scd.ied.goosepub.FCDA" num='0'><span class="f_l">GOOSE发布虚端子</span><span class="f_r num">0</span></div>
  1202. <div class="f_l children hidden" p_type="config" type="scd.ied.goosesub.FCDA" num='0'><span class="f_l">GOOSE订阅虚端子</span><span class="f_r num">0</span></div>
  1203. <div class="f_l children hidden" p_type="config" type="scd.ied.smvpub.FCDA" num='0'><span class="f_l">SV发布虚端子</span><span class="f_r num">0</span></div>
  1204. <div class="f_l children hidden" p_type="config" type="scd.ied.smvsub.FCDA" num='0'><span class="f_l">SV订阅虚端子</span><span class="f_r num">0</span></div>
  1205. <!--
  1206. <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>
  1207. <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>
  1208. <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>
  1209. <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>
  1210. <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>
  1211. <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>
  1212. <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>
  1213. -->
  1214. </div>
  1215. </div>
  1216. <div class="f_l comp_ied_result_show" id="comp_ied_result_show">
  1217. <div id="node_tree" class="f_l" style="width: 98%;height: 4rem;line-height: 4rem;text-align: left;color: #516380;background: #FFF;margin:1%;">
  1218. <div class="f_l" style="text-align: center;width: 49%"><span>基准CID:</span><b style="color: #09162C">—</b></div>
  1219. <div class="f_l" style="width: 2%;color: #516380;font-weight: bold;text-align: center;font-size: 2rem;">|</div>
  1220. <div class="f_l" style="text-align: center;width: 49%"><span>比对CID:</span><b style="color: #09162C">—</b></div>
  1221. </div>
  1222. <div class="comp_show_area" class="f_l">
  1223. <div>正在加载数据中...</div>
  1224. </div>
  1225. </div>
  1226. </script>
  1227. <script type="text/html" id="dingzhi_datasetlist_tpl">
  1228. <table class="headertable" style="width: 98%;">
  1229. <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>
  1230. </table>
  1231. <div class="detailtable" style="width: 100%;height: 96%;">
  1232. <table style="width: 100%;">
  1233. <tbody>
  1234. {{each data}}
  1235. <tr fcdalist='{{$value.fcdalist}}'><td style="width: 4rem">{{$index+1}}</td>
  1236. <td style="width: 4rem">{{$value.accesspoint_name}}</td>
  1237. <td style="width: 15rem">{{$value.ld_desc}}({{$value.ld_name}})</td>
  1238. <td style="width: 15rem">{{$value.dataset_name}}</td>
  1239. <td style="width: 20rem">{{$value.dataset_desc}}</td>
  1240. </tr>
  1241. {{/each}}
  1242. </tbody>
  1243. </table>
  1244. </div>
  1245. </script>
  1246. <script type="text/html" id="dingzhi_fcdalist_tpl">
  1247. <table class="headertable" style="width: 98%;">
  1248. <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>
  1249. </table>
  1250. <div class="detailtable" style="width: 100%;height: 96%;">
  1251. <table style="width: 100%;">
  1252. <tbody>
  1253. {{each data}}
  1254. <tr>
  1255. <td style="width: 4rem">{{$index+1}}</td>
  1256. <td style="width: 16rem;line-height: 1.2rem;">{{$value.doi_desc}}</td>
  1257. <td style="width: 6rem">{{$value.da_maxval||''}}</td>
  1258. <td style="width: 6rem">{{$value.da_minval||''}}</td>
  1259. <td style="width: 6rem">{{$value.da_units||''}}</td>
  1260. <td style="width: 6rem">{{$value.da_stepsize||''}}</td>
  1261. <td style="width: 12rem">{{$value.da_datatype||''}}</td>
  1262. <td style="width: 15rem">{{$value.short_addr||''}}</td>
  1263. </tr>
  1264. {{/each}}
  1265. </tbody>
  1266. </table>
  1267. </div>
  1268. </script>
  1269. <!--信息点表模板-->
  1270. <script type="text/html" id="pointtable_datasetlist_tpl">
  1271. <table class="headertable" style="width: 98%;">
  1272. <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>
  1273. </table>
  1274. <div class="detailtable" style="width: 100%;height: 96%;">
  1275. <table style="width: 100%;">
  1276. <tbody>
  1277. {{each data}}
  1278. <tr fcdalist='{{$value.fcdalist}}'>
  1279. <td style="width: 4rem">{{$index+1}}</td>
  1280. <td style="width: 4rem">{{$value.accesspoint_name}}</td>
  1281. <td style="width: 8rem">{{$value.ld_desc}}({{$value.ld_inst}})</td>
  1282. <td style="width: 8rem">{{$value.block_name}}</td>
  1283. <td style="width: 12rem">{{$value.block_desc}}</td>
  1284. <td style="width: 8rem">{{$value.block_datset}}</td>
  1285. <td style="width: 12rem">{{$value.block_rptid}}</td>
  1286. <td style="width: 6rem">{{$value.block_intgpd}}</td>
  1287. <td style="width: 4rem">{{$value.block_confrev}}</td>
  1288. <td style="width: 4rem">{{$value.block_buffered}}</td>
  1289. <td style="width: 4rem">{{$value.block_buftime}}</td>
  1290. <td style="width: 6rem">{{$value.point_cnt}}</td>
  1291. </tr>
  1292. {{/each}}
  1293. </tbody>
  1294. </table>
  1295. </div>
  1296. </script>
  1297. <!--信息点表模板-->
  1298. <script type="text/html" id="pointtable_fcdalist_tpl">
  1299. <table class="headertable" style="width: 98%;">
  1300. <thead><tr><td style="width: 4rem">序号</td><td style="width: 20rem">条目描述</td><td style="width: 8rem">数据类型</td><td style="width: 20rem">内部地址</td></tr></thead>
  1301. </table>
  1302. <div class="detailtable" style="width: 100%;height: 96%;">
  1303. <table style="width: 100%;">
  1304. <tbody>
  1305. {{each data}}
  1306. <tr>
  1307. <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>
  1308. </tr>
  1309. {{/each}}
  1310. </tbody>
  1311. </table>
  1312. </div>
  1313. </script>
  1314. <!--SV发送列表模板-->
  1315. <script type="text/html" id="svsend_datasetlist_tpl">
  1316. <table class="headertable" style="width: 98%;">
  1317. <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>
  1318. </table>
  1319. <div class="detailtable" style="width: 100%;height: 96%;">
  1320. <table style="width: 100%;">
  1321. <tbody>
  1322. {{each data}}
  1323. <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>
  1324. {{/each}}
  1325. </tbody>
  1326. </table>
  1327. </div>
  1328. </script>
  1329. <!--SV发送列表模板-->
  1330. <script type="text/html" id="svsend_fcdalist_tpl">
  1331. <table class="headertable" style="width: 98%;">
  1332. <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>
  1333. </table>
  1334. <div class="detailtable" style="width: 100%;height: 96%;">
  1335. <table style="width: 100%;">
  1336. <tbody>
  1337. {{each data}}
  1338. <tr>
  1339. <td style="width: 4rem">{{$index+1}}</td><td style="width: 15rem">{{$value.do_desc}}</td>
  1340. <td style="width: 15rem">{{$value.ld_inst||''}}/{{$value.prefix}}{{$value.ld_inst}}{{$value.ln_class}}{{$value.ln_inst}}.{{$value.do_name}}</td>
  1341. <td style="width: 15rem">{{$value.out_ied_name||''}}{{'.'+$value.out_ied_desc||''}}</td>
  1342. <td style="width: 15rem">{{$value.out_do_desc||''}}</td>
  1343. </tr>
  1344. {{/each}}
  1345. </tbody>
  1346. </table>
  1347. </div>
  1348. </script>
  1349. <!--SV接收模板-->
  1350. <script type="text/html" id="svrev_datasetlist_tpl">
  1351. <table class="headertable" style="width: 98%;">
  1352. <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>
  1353. </table>
  1354. <div class="detailtable" style="width: 100%;height: 96%;">
  1355. <table style="width: 100%;">
  1356. <tbody>
  1357. {{each data}}
  1358. <tr fcdalist="{{$value.info.list}}">
  1359. <td style="width: 4rem">{{$index+1}}</td>
  1360. <td style="width: 15rem">[{{$value.info.out_ied_name}}]{{$value.info.out_ied_desc}}</td>
  1361. <td style="width: 15rem">{{$value.info.out_smv_ctrl_name||''}}</td>
  1362. <td style="width: 10rem">{{$value.info.out_dataset_name||''}}</td>
  1363. <td style="width: 10rem">{{$value.info.out_smv_ctrl_address.APPID||''}}</td>
  1364. </tr>
  1365. {{/each}}
  1366. </tbody>
  1367. </table>
  1368. </div>
  1369. </script>
  1370. <script type="text/html" id="svrev_fcdalist_tpl">
  1371. <table class="headertable" style="width: 98%;">
  1372. <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>
  1373. </table>
  1374. <div class="detailtable" style="width: 100%;height: 96%;">
  1375. <table style="width: 100%;">
  1376. <tbody>
  1377. {{each data}}
  1378. <tr>
  1379. <td style="width: 4rem">{{$index+1}}</td>
  1380. <td style="width: 15rem">{{$value.do_desc}}</td>
  1381. <td style="width: 15rem">{{$value.int_addr}}</td>
  1382. <td style="width: 15rem">{{$value.out_ied_name||''}}{{'.'+$value.out_ied_desc||''}}</td>
  1383. <td style="width: 15rem">{{$value.out_do_desc||''}}</td>
  1384. </tr>
  1385. {{/each}}
  1386. </tbody>
  1387. </table>
  1388. </div>
  1389. </script>
  1390. <!--GOOSE发送列表模板-->
  1391. <script type="text/html" id="goosesend_datasetlist_tpl">
  1392. <table class="headertable" style="width: 98%;">
  1393. <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>
  1394. </table>
  1395. <div class="detailtable" style="width: 100%;height: 96%;">
  1396. <table style="width: 100%;">
  1397. <tbody>
  1398. {{each data}}
  1399. <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>
  1400. {{/each}}
  1401. </tbody>
  1402. </table>
  1403. </div>
  1404. </script>
  1405. <!--GOOSE发送列表模板-->
  1406. <script type="text/html" id="goosesend_fcdalist_tpl">
  1407. <table class="headertable" style="width: 98%;">
  1408. <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>
  1409. </table>
  1410. <div class="detailtable" style="width: 100%;height: 96%;">
  1411. <table style="width: 100%;">
  1412. <tbody>
  1413. {{each data}}
  1414. <tr>
  1415. <td style="width: 4rem">{{$index+1}}</td>
  1416. <td style="width: 15rem">{{$value.do_desc}}</td>
  1417. <td style="width: 15rem">{{$value.ld_inst||''}}/{{$value.prefix}}{{$value.ld_inst}}{{$value.ln_class}}{{$value.ln_inst}}.{{$value.do_name}}</td>
  1418. <td style="width: 15rem">{{$value.out_ied_name||''}}{{'.'+$value.out_ied_desc||''}}</td>
  1419. <td style="width: 15rem">{{$value.out_do_desc||''}}</td>
  1420. </tr>
  1421. {{/each}}
  1422. </tbody>
  1423. </table>
  1424. </div>
  1425. </script>
  1426. <!--GOOSE接收模板-->
  1427. <script type="text/html" id="gooserev_datasetlist_tpl">
  1428. <table class="headertable" style="width: 98%;">
  1429. <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>
  1430. </table>
  1431. <div class="detailtable" style="width: 100%;height: 96%;">
  1432. <table style="width: 100%;">
  1433. <tbody>
  1434. {{each data}}
  1435. <tr fcdalist="{{$value.info.list}}">
  1436. <td style="width: 4rem">{{$index+1}}</td>
  1437. <td style="width: 15rem">[{{$value.info.out_ied_name}}]{{$value.info.out_ied_desc}}</td>
  1438. <td style="width: 15rem">{{$value.info.out_gse_ctrl_name||''}}</td>
  1439. <td style="width: 15rem">{{$value.info.out_dataset_name||''}}</td>
  1440. <td style="width: 8rem">{{$value.info.out_gse_ctrl_address.APPID||''}}</td>
  1441. </tr>
  1442. {{/each}}
  1443. </tbody>
  1444. </table>
  1445. </div>
  1446. </script>
  1447. <script type="text/html" id="gooserev_fcdalist_tpl">
  1448. <table class="headertable" style="width: 98%;">
  1449. <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>
  1450. </table>
  1451. <div class="detailtable" style="width: 100%;height: 96%;">
  1452. <table style="width: 100%;">
  1453. <tbody>
  1454. {{each data}}
  1455. <tr>
  1456. <td style="width: 4rem">{{$index+1}}</td>
  1457. <td style="width: 15rem">{{$value.do_desc}}</td>
  1458. <td style="width: 15rem">{{$value.int_addr}}</td>
  1459. <td style="width: 15rem">{{$value.out_ied_name||''}}{{'.'+$value.out_ied_desc||''}}</td>
  1460. <td style="width: 15rem">{{$value.out_do_desc||''}}</td>
  1461. </tr>
  1462. {{/each}}
  1463. </tbody>
  1464. </table>
  1465. </div>
  1466. </script>
  1467. <script type="text/html" id="ied_detail_tpl">
  1468. <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);">
  1469. <div><input type="text" class="layui-input fast_find_list" placeholder="快速查找" style="background: #a09eb9;color: #fff;border-color: #45436a;"></div>
  1470. <div></div>
  1471. </div>
  1472. <div class="tools f_l" style="height: 5rem;width:80%;">
  1473. <ul class="layui-tab-title" style="text-align: center;border: 0;padding-top: 1rem;">
  1474. <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>
  1475. <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>
  1476. <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>
  1477. <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>
  1478. <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>
  1479. <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>
  1480. <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>
  1481. </ul>
  1482. </div>
  1483. <div class="content f_l" style="width:80%">
  1484. <div class="hidden" id="ied_info" style="position: relative;height: 100%;">
  1485. <div id="ied_strcut_detail" style="height: 60rem;position: relative;"></div>
  1486. </div>
  1487. <div class="hidden" id="ied_relation" style="position: relative;height: 100%;">
  1488. <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;">
  1489. <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>
  1490. </div>
  1491. <div id="ied_strcut_detail" style="height: 60rem;position: relative;"></div>
  1492. </div>
  1493. <div class="hidden" id="ied_allpoint_info" style="position: relative;height: 100%;">
  1494. <div id="ied_strcut_detail" style="height: 60rem;position: relative;"></div>
  1495. </div>
  1496. <div class="hidden" id="ied_basicinfo" style="position: relative;height: 100%;">
  1497. <div id="ied_strcut_detail" style="height: 60rem;position: relative;"></div>
  1498. </div>
  1499. <div class="hidden" id="ied_dingzhiinfo" style="position: relative;height: 100%;">
  1500. <div id="ied_strcut_detail" style="height: 60rem;position: relative;"></div>
  1501. </div>
  1502. <div class="hidden" id="ied_pointtableinfo" style="position: relative;height: 100%;">
  1503. <div id="ied_strcut_detail" style="height: 60rem;position: relative;"></div>
  1504. </div>
  1505. <div class="hidden" id="ied_sourcexmlinfo" style="position: relative;height: 100%;">
  1506. <div id="ied_strcut_detail" style="height: 60rem;position: relative;margin: 1rem;"></div>
  1507. </div>
  1508. </div>
  1509. </script>