inspectionScope.html 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671
  1. <style>
  2. .bigBoxBg{
  3. background-color: rgb(249,249,249);
  4. padding: 8px 0
  5. }
  6. .leftBox{
  7. border: 1px rgb(234,234,234) solid;
  8. background-color: white;
  9. padding: 11px;
  10. margin-top: 7px;
  11. min-height: 565px;
  12. /* height: 565px; */
  13. }
  14. .leftBox.minHeight264{
  15. min-height: 264px!important;
  16. }
  17. .leftBox i{
  18. font-size: 14px;
  19. color: #007AFF;
  20. }
  21. .leftBox .list{
  22. height: 30px;
  23. line-height: 30px;
  24. padding: 0 4px;
  25. cursor: pointer;
  26. }
  27. .leftBox .listCliI{
  28. color:rgb(0,83,149)
  29. }
  30. .leftBox .listCli{
  31. background-color: rgb(230,238,244);
  32. }
  33. .leftBox .list span{
  34. font-size: 14px;
  35. display: inline-block;
  36. margin-left: 4px
  37. }
  38. .rightBox{
  39. border: 1px rgb(234,234,234) solid;
  40. background-color: white;
  41. padding: 11px;
  42. margin-top: 7px;
  43. min-height: 565px;
  44. /* height: 565px; */
  45. }
  46. .btn_box{
  47. margin-top: 8px;
  48. width: 100%;
  49. display: flex;
  50. justify-content:center
  51. }
  52. .btnAdd{
  53. width: 60px!important;
  54. height: 34px!important;
  55. background-color: rgb(0,83,149)!important;
  56. border:1px rgb(0,83,149) solid;
  57. color: white;
  58. font-size: 14px;
  59. margin-top: 8px
  60. }
  61. .btnReturn{
  62. width: 100px!important;
  63. height: 34px!important;
  64. background-color: white!important;
  65. border:1px #666666 solid;
  66. color: #666666;
  67. font-size: 14px;
  68. margin-top: 8px;
  69. margin-left: 8px
  70. }
  71. .emergencyIptSize{
  72. width: 100%;
  73. margin-top: 8px
  74. }
  75. .guanbiIco{
  76. display: inline-block;
  77. color: #999999;
  78. margin-top: 10px;
  79. margin-left: 9px;
  80. font-size: 16px!important;
  81. cursor: pointer;
  82. }
  83. .contentName{
  84. text-align: center
  85. }
  86. .fonsize{
  87. display: flex;
  88. justify-content: space-between;
  89. align-items: center;
  90. font-size: 14px;
  91. margin-top: 8px;
  92. }
  93. /* 事件分类开始 */
  94. /* 公共css,需要复用 */
  95. .iconfont {
  96. font-size: 14px;
  97. }
  98. .nav-pills>li>a {
  99. border-radius: 0px;
  100. color: #333;
  101. }
  102. .nav-pills>li.active>a,
  103. .nav-pills>li.active>a:hover,
  104. .nav-pills>li.active>a:focus {
  105. background-color: #006bbf;
  106. color: white !important;
  107. }
  108. .panel-tabs,
  109. .tabbable {
  110. /* padding: 14px; */
  111. background-color: white;
  112. }
  113. .tab-content>.tab-pane,
  114. .pill-content>.pill-pane {
  115. padding: 14px;
  116. border-bottom: 1px solid #eeeeee;
  117. border-left: 1px solid #eeeeee;
  118. border-right: 1px solid #eeeeee;
  119. border-radius: 0px 0px 8px 8px;
  120. }
  121. .nav-tabs>li.active a,
  122. .nav-tabs>li.active a:hover,
  123. .nav-tabs>li.active a:focus {
  124. background-color: #006bc0;
  125. color: white;
  126. }
  127. .nav-tabs {
  128. border-top: 1px solid #eeeeee;
  129. border-bottom: 1px solid #eeeeee;
  130. border-left: 1px solid #eeeeee;
  131. border-right: 1px solid #eeeeee;
  132. border-radius: 8px 8px 0 0;
  133. height: 47px;
  134. }
  135. .nav-tabs>li {
  136. border-right: 1px solid #eeeeee;
  137. }
  138. .nav-tabs>li:last-child {
  139. border-right: none;
  140. }
  141. /* 独立css */
  142. .mainDiv {
  143. /* background: red; */
  144. /* padding: 14px; */
  145. /* height: 50px; */
  146. overflow: hidden;
  147. /* zoom: 1; */
  148. }
  149. .mainDivLeft {
  150. border-radius: 8px;
  151. border: 1px solid #eeeeee;
  152. width: 288px;
  153. float: left;
  154. min-height: 541px;
  155. }
  156. .mainDivRight {
  157. margin-left: 302px;
  158. border-radius: 8px;
  159. border: 1px solid #eeeeee;
  160. /* min-height: 541px; */
  161. }
  162. .mainDiv-head {
  163. height: 30px;
  164. line-height: 30px;
  165. background: #f5f5f5;
  166. font-size: 16px;
  167. color: #606367;
  168. border-radius: 8px 8px 0 0;
  169. padding-left: 10px;
  170. padding-right: 4px;
  171. }
  172. .mainDivLeft-span {
  173. border: 1px solid;
  174. /* padding: 15px 0px 15px 0px; */
  175. padding-left: 15px;
  176. padding-right: 15px;
  177. padding-top: 4px;
  178. padding-bottom: 4px;
  179. height: 28px;
  180. line-height: 28px;
  181. border-radius: 4px;
  182. margin-right: 10px;
  183. font-size: 14px;
  184. }
  185. .mainDiv-head-right {
  186. display: inline-block;
  187. float: right;
  188. }
  189. .edit-left {
  190. display: inline-block;
  191. /* float: left; */
  192. margin-left: 10px;
  193. }
  194. .span-1 {
  195. border-color: #006bc0;
  196. color: #006bc0;
  197. }
  198. .span-2 {
  199. border: none;
  200. color: white;
  201. background-color: #006bc0;
  202. }
  203. .span-3 {
  204. border: none;
  205. color: white;
  206. background-color: #fc4c58;
  207. }
  208. .mainDiv-body {
  209. border-radius: 8px;
  210. border: 1px solid #eeeeee;
  211. margin: 14px;
  212. /* padding-top: 14px; */
  213. /* height: 402px; */
  214. /* overflow: auto; */
  215. }
  216. .mainDiv-body-1 {
  217. height: 50px;
  218. line-height: 50px;
  219. font-size: 16px;
  220. color: #606367;
  221. padding: 0px 14px;
  222. border-bottom: 1px solid #eeeeee;
  223. }
  224. .mainDiv-body-2 {
  225. height: 70px;
  226. line-height: 70px;
  227. font-size: 14px;
  228. color: #606367;
  229. padding: 0px 30px;
  230. border-bottom: 1px solid #eeeeee;
  231. }
  232. .mainDiv-body-2:last-child {
  233. border-bottom: none;
  234. }
  235. /* .fixHeight {
  236. height: 450px;
  237. overflow: auto;
  238. } */
  239. .mainDiv-body-3 {
  240. height: 50px;
  241. line-height: 50px;
  242. font-size: 14px;
  243. color: #606367;
  244. padding: 0px 30px;
  245. border-bottom: 1px solid #eeeeee;
  246. }
  247. .mainDiv-body-3:last-child {
  248. border-bottom: none;
  249. }
  250. .btn{
  251. margin-left: 5px
  252. }
  253. .mainDiv-body-img {
  254. height: 90px;
  255. border-radius: 4px;
  256. margin: 14px;
  257. margin-bottom: 0px;
  258. overflow: hidden;
  259. }
  260. .mainDiv-body-noList {
  261. height: 180px;
  262. display: flex;
  263. flex-direction: column;
  264. justify-content: center;
  265. align-items: center;
  266. }
  267. .form-control {
  268. display: inline-block;
  269. }
  270. .mainDivLeft-span-1 {
  271. border: 1px solid;
  272. padding-left: 15px;
  273. padding-right: 15px;
  274. /* padding-top: 4px; */
  275. /* padding-bottom: 4px; */
  276. height: 28px;
  277. line-height: 28px;
  278. border-radius: 4px;
  279. margin-right: 10px;
  280. font-size: 14px;
  281. display: inline-block;
  282. }
  283. .mainDivLeft-span-2 {
  284. border: 1px solid;
  285. padding-left: 15px;
  286. padding-right: 15px;
  287. /* padding-top: 4px; */
  288. /* padding-bottom: 4px; */
  289. height: 28px;
  290. line-height: 28px;
  291. border-radius: 4px;
  292. margin-right: 10px;
  293. font-size: 14px;
  294. display: inline-block;
  295. }
  296. .mainDivLeft-span-edit-1 {
  297. border: 1px solid;
  298. padding-left: 8px;
  299. padding-right: 8px;
  300. /* padding-top: 4px; */
  301. /* padding-bottom: 4px; */
  302. height: 22px;
  303. line-height: 22px;
  304. border-radius: 2px;
  305. margin-right: 10px;
  306. font-size: 12px;
  307. display: inline-block;
  308. }
  309. .mainDivLeft-span-edit-2 {
  310. border: 1px solid;
  311. padding-left: 8px;
  312. padding-right: 8px;
  313. /* padding-top: 4px; */
  314. /* padding-bottom: 4px; */
  315. height: 22px;
  316. line-height: 22px;
  317. border-radius: 2px;
  318. margin-right: 10px;
  319. font-size: 12px;
  320. display: inline-block;
  321. }
  322. /* tab内容css */
  323. .tab-mainDiv {
  324. border: 1px solid #eeeeee;
  325. border-radius: 8px;
  326. /* min-height: 360px; */
  327. }
  328. .tab-mainDiv-head {
  329. text-align: center;
  330. border-bottom: 1px solid #eeeeee;
  331. height: 34px;
  332. line-height: 34px;
  333. font-size: 14px;
  334. color: #93989e;
  335. }
  336. .tab-mainDiv-body {
  337. padding: 14px;
  338. min-height: 280px;
  339. max-height: 320px;
  340. overflow: auto;
  341. /* padding-top: 14px; */
  342. /* padding-bottom: 14px; */
  343. }
  344. .tab-mainDiv-body-lineDiv-50 {
  345. /* display: inline-block; */
  346. font-size: 14px;
  347. color: #93989e;
  348. margin-right: 14px;
  349. width: 47%;
  350. padding-left: 14px;
  351. }
  352. .tab-mainDiv-body-lineDiv-100 {
  353. /* display: inline-block; */
  354. font-size: 14px;
  355. color: #93989e;
  356. margin-right: 14px;
  357. width: 96%;
  358. padding-left: 14px;
  359. }
  360. .tab-mainDiv-body-lable {
  361. padding-bottom: 10px;
  362. /* width: 370px; */
  363. }
  364. .tab-mainDiv-body-content {
  365. padding-bottom: 10px;
  366. /* width: 370px; */
  367. }
  368. .tab-mainDiv-body-content>textarea {
  369. min-height: 68px;
  370. width: 100%;
  371. }
  372. .tab-mainDiv-foot {
  373. /* margin: 14px auto; */
  374. border-top: 1px solid #eeeeee;
  375. text-align: center;
  376. padding: 7px;
  377. }
  378. .tab-mainDiv-body-button-1 {
  379. display: inline-block;
  380. width: 80px;
  381. height: 34px;
  382. line-height: 34px;
  383. font-size: 14px;
  384. color: white;
  385. text-align: center;
  386. background-color: #006bc0;
  387. border-radius: 4px;
  388. margin-right: 14px;
  389. }
  390. .tab-mainDiv-body-button-2 {
  391. display: inline-block;
  392. width: 80px;
  393. height: 34px;
  394. line-height: 34px;
  395. font-size: 14px;
  396. color: #93989e;
  397. text-align: center;
  398. background-color: #f5f5f5;
  399. border-radius: 4px;
  400. box-sizing: border-box;
  401. border: 1px solid #eeeeee;
  402. }
  403. .tree-control .tree-view {
  404. width: inherit;
  405. z-index: 9999;
  406. }
  407. .userGroupType label:nth-child(2){
  408. margin-left: 26px;
  409. margin-bottom: 20px;
  410. }
  411. .userGroupType label input{
  412. margin-right: 5px;
  413. }
  414. .group,.user{
  415. margin-bottom: 140px;
  416. }
  417. /* 事件分类结束 */
  418. .inspection_btns{
  419. height: 60px;
  420. display: flex;
  421. justify-content: center;
  422. align-items: center;
  423. }
  424. .inspection_name{
  425. display: flex;
  426. justify-content: space-between;
  427. align-items: center;
  428. }
  429. </style>
  430. <section id="page-title">
  431. <div class="row">
  432. <div class="col-sm-8">
  433. <h1 class="mainTitle">巡检范围设置
  434. <i tooltip='巡检范围设置' tooltip-placement="right" class="fa ti-help-alt margin-left-10 fontcolor-five pointfont"></i>
  435. </h1>
  436. </div>
  437. </div>
  438. </section>
  439. <div ng-controller="inspectionScope">
  440. <div class="col-xs-12 bigBoxBg">
  441. <div class="col-xs-3">
  442. <!-- <div class="fonsize">
  443. <span>巡检范围设置</span>
  444. <div class="mainDiv-head-right">
  445. <div class="btn btn_search" ng-click="addType1(output)" ng-show="xinzeng">新增</div>
  446. <div class="btn btn_remove" ng-class="isMousedown?'btn_removeMousedown':''" ng-mousedown="changeRemoveClass()" ng-click="remove1(output)" ng-show="shanchu">删除</div>
  447. </div>
  448. </div> -->
  449. <div class="mainDiv-head">
  450. <!-- <span>巡检范围设置</span> -->
  451. <label style="font-size:14px;cursor: pointer;"><input id="c_all" type="checkbox" ng-click="selectAll()" style="margin-right: 2px;position: relative;top: 2px;">全选</label>
  452. <div class="mainDiv-head-right">
  453. <div class="btn btn_search" ng-click="addType1('add')" ng-show="xinzeng">新增</div>
  454. <div class="btn btn_search" ng-click="addType1('edit')" ng-show="xinzeng">修改</div>
  455. <div class="btn btn_remove" ng-class="isMousedown?'btn_removeMousedown':''" ng-click="remove1(output)" ng-show="shanchu">删除</div>
  456. </div>
  457. </div>
  458. <div class="leftBox">
  459. <!-- <span ng-if="!selectedInspection.isShowZtree">...加载中...</span> -->
  460. <z-tree set-fn="setDirectiveFn(params)" ng-if="selectedInspection.isShowZtree" id="z-tree" class="ztree" select-inspection-type="selectedInspection.tree" copy-inspection-type="copyInspection.tree" state-model="stateModel" changecate="changecateObj.changecate" cachehttp="cacheHttp.value"></z-tree>
  461. <!-- <abn-tree tree-data="my_1data" tree-control="my_tree" on-select="my_tree_1handler(branch)" expand-level="2" icon-leaf="iconfont icon-fenlei" icon-expand="ti-plus" icon-collapse="ti-minus"></abn-tree> -->
  462. </div>
  463. </div>
  464. <div class="col-xs-6">
  465. <div class="inspection_name">
  466. <div>策略名称<span class="red">*</span>:<input style="width: 220px;" ng-model="modelName" class="form-control" placeholder="策略名称..." /></div>
  467. <div style="display: flex;align-items:center;">
  468. 每日通知:
  469. <label class="margin-right-15" style="cursor: pointer;" ng-repeat="item in everyDay.everyDayNotices"><input type="checkbox" name="inspectionMsgRules" ng-model="item.checked" style="position: relative;top:2px;margin-right:2px;">{{item.name}}</label>
  470. <timepicker ng-model="everyDay.time" show-meridian="ismeridian"></timepicker>
  471. </div>
  472. </div>
  473. <div class="rightBox">
  474. <!-- 巡检范围开始 -->
  475. <div ng-if="leftListName=='巡检范围'">
  476. <div class="mainDiv">
  477. <!-- 谁固定谁在前 -->
  478. <div class="mainDivLeft">
  479. <div class="mainDiv-head">
  480. <span>已选中的巡检范围</span>
  481. <div class="mainDiv-head-right">
  482. <!-- <div class="btn btn_search" ng-click="addType1(output)" ng-show="xinzeng">新增</div> -->
  483. <!-- <div class="btn btn_remove" ng-class="isMousedown?'btn_removeMousedown':''" ng-mousedown="changeRemoveClass()" ng-click="remove1(output)" ng-show="shanchu">删除</div> -->
  484. </div>
  485. </div>
  486. <div class="mainDiv-body fixHeight" ng-if="copyInspection.tree.length">
  487. <div class="box-tree">
  488. <!-- <span ng-if="doing_async">...加载中...</span> -->
  489. <!-- <abn-tree tree-data="my_1data" tree-control="my_tree" on-select="my_tree_1handler(branch)" expand-level="2" icon-leaf="iconfont icon-fenlei" icon-expand="ti-plus" icon-collapse="ti-minus"></abn-tree> -->
  490. <z-tree-copy id="z-tree-copy" class="ztree" copy-inspection-type="copyInspection.tree" changecate="changecateObj.changecate" selectedchangecategory="selectedchangecategory.value"></z-tree-copy>
  491. </div>
  492. </div>
  493. </div>
  494. <div class="mainDivRight" ng-if="changecateObj.changecate && copyInspection.tree.length">
  495. <div class="mainDiv-head">
  496. <span>默认组和默认人</span>
  497. </div>
  498. <div class="mainDiv-body" style="padding: 16px;height:182px;">
  499. <div class="tab-mainDiv-body-lineDiv-50">
  500. <div class="tab-mainDiv-body-lable">线下巡检默认组:</div>
  501. <ui-select class="tab-mainDiv-body-content" ng-model="group_user.offlineGroup"
  502. theme="bootstrap">
  503. <ui-select-match allow-clear placeholder="">
  504. {{$select.selected.groupName}}
  505. </ui-select-match>
  506. <ui-select-choices repeat="item in groupList | filter: $select.search">
  507. <div ng-bind-html="item.groupName | highlight: $select.search"></div>
  508. </ui-select-choices>
  509. </ui-select>
  510. </div>
  511. <div class="tab-mainDiv-body-lineDiv-50">
  512. <div class="tab-mainDiv-body-lable">线上巡检默认人:</div>
  513. <ui-select class="tab-mainDiv-body-content" ng-model="group_user.onlineUser"
  514. theme="bootstrap">
  515. <ui-select-match allow-clear placeholder="">
  516. {{$select.selected.name}}
  517. </ui-select-match>
  518. <ui-select-choices repeat="item in userList | filter: $select.search">
  519. <div ng-bind-html="item.name | highlight: $select.search"></div>
  520. </ui-select-choices>
  521. </ui-select>
  522. </div>
  523. </div>
  524. <!-- <div class="tab-mainDiv-foot">
  525. <div class="btn btn_search" ng-click="submit1change()" ng-show="bianji">
  526. 保存设置
  527. </div>
  528. </div> -->
  529. </div>
  530. <div class="mainDivRight" ng-if="!(changecateObj.changecate && copyInspection.tree.length)">
  531. <div class="mainDiv-head">
  532. <span>默认组和默认人</span>
  533. </div>
  534. <div class="mainDiv-body">
  535. <div class="mainDiv-body-noList">
  536. <img src="./assets/images/place/icon_quesheng.png" alt="">
  537. <p class="handlefont">请选择巡检范围</p>
  538. </div>
  539. </div>
  540. <!-- <div class="mainDiv-head">
  541. <span>通知规则</span>
  542. </div>
  543. <div class="mainDiv-body" style="padding: 16px;">
  544. <div>
  545. <label>通知人:</label>
  546. <ui-select class="tab-mainDiv-body-content" ng-model="notice.user"
  547. theme="bootstrap" multiple>
  548. <ui-select-match placeholder="">
  549. {{$item.name}}
  550. </ui-select-match>
  551. <ui-select-choices repeat="item in incidentManageruserList | filter: $select.search">
  552. <div ng-bind-html="item.name | highlight: $select.search"></div>
  553. </ui-select-choices>
  554. </ui-select>
  555. </div>
  556. <div style="margin-top: 8px;">
  557. <label>通知选项:</label>
  558. <div ng-repeat="item in notice.inspectionMsgRules">
  559. <label style="cursor: pointer;"><input type="checkbox" name="inspectionMsgRules" ng-model="item.checked" style="position: relative;top:2px;margin-right:2px;">{{item.name}}</label>
  560. </div>
  561. </div>
  562. </div> -->
  563. </div>
  564. <div class="mainDivRight">
  565. <div class="mainDiv-head">
  566. <span>通知规则</span>
  567. </div>
  568. <div class="mainDiv-body" style="padding: 16px;">
  569. <div>
  570. <label>通知人:</label>
  571. <ui-select class="tab-mainDiv-body-content" ng-model="notice.user"
  572. theme="bootstrap" multiple>
  573. <ui-select-match placeholder="">
  574. {{$item.name}}
  575. </ui-select-match>
  576. <ui-select-choices repeat="item in incidentManageruserList | filter: $select.search">
  577. <div ng-bind-html="item.name | highlight: $select.search"></div>
  578. </ui-select-choices>
  579. </ui-select>
  580. </div>
  581. <div style="margin-top: 8px;">
  582. <label>通知选项:</label>
  583. <div ng-repeat="item in notice.inspectionMsgRules">
  584. <label style="cursor: pointer;"><input type="checkbox" name="inspectionMsgRules" ng-model="item.checked" style="position: relative;top:2px;margin-right:2px;">{{item.name}}</label>
  585. </div>
  586. </div>
  587. </div>
  588. </div>
  589. </div>
  590. </div>
  591. <!-- 巡检范围结束 -->
  592. </div>
  593. <div class="inspection_btns col-xs-12">
  594. <div class="btn btn_search" ng-click="submit1change_prev()" ng-show="xinzeng">上一步</div>
  595. <div class="btn btn_search" ng-click="submit1change()" ng-show="xinzeng">开始计划</div>
  596. <div class="btn btn_search" ng-click="submit1change_save()" ng-show="xinzeng">暂存</div>
  597. <div class="btn btn_remove" ng-class="isMousedown?'btn_removeMousedown':''" ng-click="closeModel()" ng-show="shanchu">关闭</div>
  598. </div>
  599. </div>
  600. <div class="col-xs-3">
  601. <div class="mainDiv-head">
  602. <span>巡检范围策略模板</span>
  603. </div>
  604. <div class="leftBox minHeight264">
  605. <div class="list" ng-repeat="v in listDataTop" ng-click="leftListCli($index,v)" ng-class="{'listCli':$index==leftListIdx}">
  606. <i class="iconfont icon-liebiao1" ng-class="{'listCliI':$index==leftListIdx}"></i>
  607. <span>{{v.modelName}}</span>
  608. </div>
  609. </div>
  610. <div class="mainDiv-head">
  611. <span>往期巡检范围策略</span>
  612. </div>
  613. <div class="leftBox minHeight264">
  614. <div class="list" ng-repeat="v in listDataBottom" ng-click="leftListCli($index,v)" ng-class="{'listCli':$index==leftListIdx}">
  615. <i class="iconfont icon-liebiao1" ng-class="{'listCliI':$index==leftListIdx}"></i>
  616. <span>{{v.modelName}}</span>
  617. </div>
  618. </div>
  619. </div>
  620. </div>
  621. </div>