safecheck-client 4.0.2-50 → 4.0.2-51

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/package.json +1 -1
  2. package/src/components/CheckerCount/CheckCountUserList.vue +144 -144
  3. package/src/components/DefectDealMain/DefectListNew.vue +642 -642
  4. package/src/components/Util/RightTreeSafeDep.vue +362 -362
  5. package/src/components/android/AddPlanItem.vue +447 -447
  6. package/src/components/android/AddPlanItemYy.vue +451 -451
  7. package/src/components/android/AddSpecialPlanItem.vue +426 -426
  8. package/src/components/android/AndroidNotifiedDeal.vue +417 -0
  9. package/src/components/android/CurrentCreateYy.vue +1051 -1051
  10. package/src/components/android/DailyworkloadQuery.vue +473 -473
  11. package/src/components/android/Devices.vue +327 -327
  12. package/src/components/android/Devicesm.vue +327 -327
  13. package/src/components/android/PaperFeedbackm.vue +1026 -1026
  14. package/src/components/android/PhoneRecordInfo.vue +113 -113
  15. package/src/components/android/PhoneSellInfo.vue +113 -113
  16. package/src/components/android/PhoneUpDetail.vue +1040 -1040
  17. package/src/components/android/PhoneUpUserinfo.vue +1249 -1249
  18. package/src/components/android/QRCode/QRCodeBinding.vue +300 -300
  19. package/src/components/android/QRCode/QRCodePage.vue +212 -212
  20. package/src/components/android/SafePlanItem.vue +509 -509
  21. package/src/components/android/SafeRightTree.vue +218 -218
  22. package/src/components/android/SafecheckDevices.vue +1340 -1340
  23. package/src/components/android/UploadPage.vue +232 -232
  24. package/src/components/android/examples/SafeListExamples.vue +296 -296
  25. package/src/components/android/old/PaperFeedback.vue +1015 -1015
  26. package/src/components/android/recheck/Recheck.vue +402 -402
  27. package/src/components/android/userinfo/SafecheckUserInfo.vue +776 -776
  28. package/src/components/android/week/CheckResultSimple.vue +251 -251
  29. package/src/components/android/week/FirstWeekCheck.vue +275 -275
  30. package/src/components/android/week/StepHeaderBar.vue +457 -457
  31. package/src/components/android/week/WeekCheck.vue +209 -209
  32. package/src/components/android/week/WeekCheckPaper.vue +219 -219
  33. package/src/components/android/week/WeekCheckPlan.vue +145 -145
  34. package/src/components/checkplan/checkmsg.vue +459 -459
  35. package/src/components/defect/DefectList.vue +507 -507
  36. package/src/components/defect/DefectListWeixiu.vue +484 -484
  37. package/src/components/filialCircle/CircleList.vue +139 -139
  38. package/src/components/inspections/AddInspectPlanItem.vue +325 -325
  39. package/src/components/inspections/AddInspectPlanItems.vue +325 -325
  40. package/src/components/inspections/AddInspectPlanItemss.vue +317 -317
  41. package/src/components/inspections/DisplayInspectionList.vue +1224 -1224
  42. package/src/components/inspections/inspectionOrderV.vue +1853 -1853
  43. package/src/components/inspections/inspectionOrderVs.vue +1853 -1853
  44. package/src/components/inspections/inspectionOrderVss.vue +1856 -1856
  45. package/src/components/inspections/inspectionUserInfo.vue +398 -398
  46. package/src/components/map/PersonTrack.vue +226 -226
  47. package/src/components/paper/RegionalList.vue +220 -220
  48. package/src/components/pc/AnnouncementPC.vue +524 -524
  49. package/src/components/pc/CheckBookArea.vue +146 -146
  50. package/src/components/pc/CheckBookCompany.vue +144 -144
  51. package/src/components/pc/CheckBookDetails.vue +161 -161
  52. package/src/components/pc/CheckBookEntry.vue +60 -60
  53. package/src/components/pc/CheckBookSearchArea.vue +560 -560
  54. package/src/components/pc/CheckBookSearchUnit.vue +229 -229
  55. package/src/components/pc/CheckBookSearchUser.vue +659 -659
  56. package/src/components/pc/CheckBookSearchUserList.vue +674 -674
  57. package/src/components/pc/DefectList.vue +742 -742
  58. package/src/components/pc/DefectMaterialLook.vue +98 -98
  59. package/src/components/pc/DeviceChange.vue +1068 -1068
  60. package/src/components/pc/PaperDefectMain.vue +905 -905
  61. package/src/components/pc/RoleSelectorDep.vue +166 -166
  62. package/src/components/pc/SafeVisitInfo.vue +261 -261
  63. package/src/components/report/HiddenSituation.vue +165 -165
  64. package/src/components/rongcheng/AspiratedOrderV.vue +2377 -2377
  65. package/src/components/rongcheng/CurrentCreateOnline.vue +906 -906
  66. package/src/components/rongcheng/DefectList.vue +560 -560
  67. package/src/components/rongcheng/SafecheckOrderVCli.vue +2641 -2641
  68. package/src/components/safecheckNew/android/AddPlanItem.vue +419 -419
  69. package/src/components/safecheckNew/android/CurrentCreate.vue +1050 -1050
  70. package/src/components/safecheckNew/android/Recheck.vue +379 -379
  71. package/src/components/sendsingle/EquipmentManagement.vue +727 -727
  72. package/src/components/shaoguan/DefectList.vue +473 -473
  73. package/src/components/shaoguan/SafecheckOrderV.vue +2140 -2140
  74. package/src/components/tongcheng/PaperFeedback.vue +1061 -1061
  75. package/src/components/userfile/SecurityAudit.vue +243 -243
  76. package/src/filiale/ALshan/pc/DefectListWeixiu.vue +476 -476
  77. package/src/filiale/ancheng/android/SafecheckOrderV.vue +2703 -2703
  78. package/src/filiale/ancheng/android/SafecheckUserInfo.vue +737 -737
  79. package/src/filiale/ancheng/pc/checkScreen.vue +923 -923
  80. package/src/filiale/ankangyihua/android/AddPlanItem.vue +446 -446
  81. package/src/filiale/ankangyihua/android/SafecheckOrderV.vue +2908 -2908
  82. package/src/filiale/ankangyihua/pc/DefectListWeixiu.vue +491 -491
  83. package/src/filiale/baiyin/android/SafecheckOrderV.vue +2785 -2785
  84. package/src/filiale/baiyin/pc/DefectListNew.vue +597 -597
  85. package/src/filiale/bayan/android/Edit.vue +132 -132
  86. package/src/filiale/bayan/pc/DefectListNew.vue +597 -597
  87. package/src/filiale/bayan/pc/DeviceChange.vue +1838 -1838
  88. package/src/filiale/bayan/pc/HiddenSituation.vue +295 -295
  89. package/src/filiale/dexin/android/CasualSave.vue +1050 -1050
  90. package/src/filiale/dexin/android/SafecheckOrderV.vue +2950 -2950
  91. package/src/filiale/fugou/android/AddPlanItem.vue +413 -413
  92. package/src/filiale/fugou/android/SafecheckOrderV.vue +2796 -2796
  93. package/src/filiale/fugou/pc/CheckBookSearchUser.vue +830 -830
  94. package/src/filiale/fugu/android/SafecheckOrderV.vue +2484 -2484
  95. package/src/filiale/fugu/pc/NewCheckpaper.vue +1287 -1287
  96. package/src/filiale/ganquan/android/AddPlanItem.vue +444 -444
  97. package/src/filiale/ganquan/android/SafecheckOrderV.vue +2485 -2485
  98. package/src/filiale/ganquan/pc/NewCheckpaper.vue +1354 -1354
  99. package/src/filiale/guangxi/pc/DefectListNew.vue +518 -518
  100. package/src/filiale/hanzhong/android/SafecheckOrderV.vue +2683 -2683
  101. package/src/filiale/hanzhong/android/SafecheckUserInfo.vue +786 -786
  102. package/src/filiale/huaran/android/SafecheckOrderV.vue +2803 -2803
  103. package/src/filiale/huatong/android/SafecheckOrderV.vue +2426 -2426
  104. package/src/filiale/huatong/android/SafecheckUserInfo.vue +749 -749
  105. package/src/filiale/huayin/pc/NewCheckpaper.vue +1307 -1307
  106. package/src/filiale/jiaocheng/android/AddPlanItem.vue +435 -435
  107. package/src/filiale/jiaocheng/android/SafecheckUserInfo.vue +737 -737
  108. package/src/filiale/jiaocheng/pc/DefectListNew.vue +576 -576
  109. package/src/filiale/jiaxian/android/AddPlanItem.vue +447 -447
  110. package/src/filiale/jiaxian/android/SafecheckOrderV.vue +2807 -2807
  111. package/src/filiale/jiaxian/android/SafecheckUserInfo.vue +784 -784
  112. package/src/filiale/jinbin/pc/DefectListWeixiu.vue +478 -478
  113. package/src/filiale/jingyang/android/AddPlanItem.vue +458 -458
  114. package/src/filiale/jingyang/android/SafecheckOrderV.vue +2734 -2734
  115. package/src/filiale/jingyang/android/SafecheckUserInfo.vue +781 -781
  116. package/src/filiale/jinhong/android/AndroidDefectDeal.vue +722 -0
  117. package/src/filiale/jinhong/android/PhoneInsurancePurchaseDetail.vue +463 -463
  118. package/src/filiale/jinhong/android.js +13 -12
  119. package/src/filiale/jinhong/pc/PlanManage.vue +927 -927
  120. package/src/filiale/kelai/android/AddPlanItem.vue +488 -488
  121. package/src/filiale/kelai/android/SafecheckUserInfo.vue +774 -774
  122. package/src/filiale/kelai/android/SafecheckUserInfo1.vue +618 -618
  123. package/src/filiale/kelai/pc/DefectListNew.vue +688 -688
  124. package/src/filiale/kelai/pc/FaultLimitGas/FaultLimitGasList.vue +518 -518
  125. package/src/filiale/kelai/pc/NewCheckpaper.vue +1454 -1454
  126. package/src/filiale/liaoyuan/android/AddPlanItem.vue +412 -412
  127. package/src/filiale/liaoyuan/android/CurrentCreate.vue +1066 -1066
  128. package/src/filiale/liaoyuan/android/SafecheckOrderV.vue +2388 -2388
  129. package/src/filiale/liaoyuan/android/SafecheckUserInfo.vue +557 -557
  130. package/src/filiale/liaoyuan/pc/DefectListWeixiu.vue +489 -489
  131. package/src/filiale/liaoyuan/pc/NewCheckpaper.vue +1020 -1020
  132. package/src/filiale/libo/android/CurrentCreate.vue +1091 -1091
  133. package/src/filiale/libo/android.js +15 -15
  134. package/src/filiale/lixian/android/SafecheckOrderV.vue +2404 -2404
  135. package/src/filiale/lixian/android/SafecheckUserInfo.vue +578 -578
  136. package/src/filiale/lixian/pc/NewCheckpaper.vue +1211 -1211
  137. package/src/filiale/meihekou/android/AreaPlan.vue +577 -577
  138. package/src/filiale/meihekou/android/CheckPlanList.vue +198 -198
  139. package/src/filiale/meihekou/android/CheckPlanListArea.vue +190 -190
  140. package/src/filiale/meihekou/android/MeterReading.vue +110 -110
  141. package/src/filiale/meihekou/android/PhoneUpUserinfo.vue +1307 -1307
  142. package/src/filiale/meihekou/android/SafecheckDevices.vue +1343 -1343
  143. package/src/filiale/meihekou/android/SafecheckUserInfo.vue +785 -785
  144. package/src/filiale/meihekou/android.js +22 -22
  145. package/src/filiale/meihekou/pc/CheckPlan.vue +52 -52
  146. package/src/filiale/meihekou/pc/NewCheckpaper.vue +2028 -2028
  147. package/src/filiale/meihekou/pc/NewCheckpaperNew.vue +2051 -2051
  148. package/src/filiale/meihekou/pc/NewCheckpaperTemp.vue +1289 -1289
  149. package/src/filiale/meihekou/pc/SelectCheckPlan.vue +262 -262
  150. package/src/filiale/minsheng/android/SafecheckUserInfo.vue +754 -754
  151. package/src/filiale/minsheng/pc/DefectListNew.vue +535 -535
  152. package/src/filiale/pingxiang/android/SafecheckOrderV.vue +2424 -2424
  153. package/src/filiale/pingxiang/android/SafecheckUserInfo.vue +600 -600
  154. package/src/filiale/pingxiang/pc/DefectListNew.vue +519 -519
  155. package/src/filiale/pingxiang/pc/NewCheckpaper.vue +1294 -1294
  156. package/src/filiale/qianneng/android/AddPlanItem.vue +482 -482
  157. package/src/filiale/qianneng/android/SafecheckOrderV.vue +2785 -2785
  158. package/src/filiale/qianneng/android/SafecheckUserInfo.vue +775 -775
  159. package/src/filiale/qianneng/pc/DefectListNew.vue +576 -576
  160. package/src/filiale/qianneng/pc/NewCheckpaper.vue +1546 -1546
  161. package/src/filiale/qingjian/android/SafecheckOrderV.vue +2844 -2844
  162. package/src/filiale/qingjian/android/SafecheckUserInfo.vue +800 -800
  163. package/src/filiale/qingjian/pc/NewCheckpaper.vue +1871 -1871
  164. package/src/filiale/qingjian/pc/SecurityCheckCoordinates.vue +359 -359
  165. package/src/filiale/qingjian/pc.js +15 -15
  166. package/src/filiale/qingtongxia/android/AddPlanItem.vue +450 -450
  167. package/src/filiale/qingtongxia/android/SafecheckOrderV.vue +2726 -2726
  168. package/src/filiale/qingtongxia/android/SafecheckUserInfo.vue +782 -782
  169. package/src/filiale/qingtongxia/pc/DefectListNew.vue +594 -594
  170. package/src/filiale/rizhao/android/AddPlanItem.vue +446 -446
  171. package/src/filiale/rizhao/android/SafecheckOrderV.vue +2430 -2430
  172. package/src/filiale/rizhao/android/SafecheckUserInfo.vue +640 -640
  173. package/src/filiale/rizhao/pc/DefectList.vue +489 -489
  174. package/src/filiale/rongchuang/android/SafecheckOrderV.vue +2696 -2696
  175. package/src/filiale/rongchuang/android/checkpapermsg.vue +209 -209
  176. package/src/filiale/ruihua/android/SafecheckOrderV.vue +2747 -2747
  177. package/src/filiale/ruihua/android/SafecheckUserInfo.vue +804 -804
  178. package/src/filiale/shanggao/android/SafecheckOrderV.vue +2426 -2426
  179. package/src/filiale/shanxian/android/SafecheckUserInfo.vue +749 -749
  180. package/src/filiale/shanxian/pc/HiddenSituation.vue +121 -121
  181. package/src/filiale/shanxian/pc/NewCheckpaper.vue +1526 -1526
  182. package/src/filiale/shexian/android/AddPlanItem.vue +444 -444
  183. package/src/filiale/shexian/android/SafecheckOrderV.vue +2879 -2879
  184. package/src/filiale/shexian/pc/DefectListNew.vue +593 -593
  185. package/src/filiale/shexian/pc/NewCheckpaper.vue +1469 -1469
  186. package/src/filiale/shimen/android/SafecheckUserInfo.vue +547 -547
  187. package/src/filiale/shimen/pc/DefectList.vue +473 -473
  188. package/src/filiale/shimen/pc/NewCheckpaper.vue +1275 -1275
  189. package/src/filiale/siyang/android/AddPlanItem.vue +450 -450
  190. package/src/filiale/siyang/android/CurrentCreate.vue +1051 -1051
  191. package/src/filiale/siyang/android/PhoneRecordInfo.vue +214 -214
  192. package/src/filiale/siyang/android/SafecheckOrderV.vue +2796 -2796
  193. package/src/filiale/siyang/android/SafecheckUserInfo.vue +789 -789
  194. package/src/filiale/siyang/pc/HiddenSituation.vue +167 -167
  195. package/src/filiale/taiyuan/pc/NewCheckpaper.vue +1976 -1976
  196. package/src/filiale/taiyuan/pc/PlanManage.vue +891 -891
  197. package/src/filiale/taiyuan/pc/checkUserList.vue +798 -798
  198. package/src/filiale/tianke/android/AddPlanItem.vue +455 -455
  199. package/src/filiale/tianke/android/SafecheckOrderV.vue +2431 -2431
  200. package/src/filiale/tianke/android/SafecheckUserInfo.vue +744 -744
  201. package/src/filiale/tongchuan/android/AddPlanItem.vue +483 -483
  202. package/src/filiale/tongchuan/android/PhoneRecordInfo.vue +191 -191
  203. package/src/filiale/tongchuan/android/PhoneSellInfo.vue +113 -113
  204. package/src/filiale/tongchuan/android/SafecheckUserInfo.vue +720 -720
  205. package/src/filiale/tongchuan/pc/CheckBookDetails.vue +209 -209
  206. package/src/filiale/tongchuan/pc/DefectListWeixiu.vue +484 -484
  207. package/src/filiale/tongchuan/pc/HiddenSituation.vue +166 -166
  208. package/src/filiale/weinan/android/AddPlanItem.vue +438 -438
  209. package/src/filiale/weinan/android/CurrentCreate.vue +1171 -1171
  210. package/src/filiale/weinan/android/CurrentCreateOnline.vue +911 -911
  211. package/src/filiale/weinan/android/SafePlanItem.vue +440 -440
  212. package/src/filiale/weinan/android/SafecheckUserInfo.vue +778 -778
  213. package/src/filiale/weinan/pc/DefectListNew.vue +617 -617
  214. package/src/filiale/weinan/pc/DeviceChange.vue +1088 -1088
  215. package/src/filiale/weinan/pc/HiddenSituation.vue +167 -167
  216. package/src/filiale/weinan/pc/checkScreen.vue +1094 -1094
  217. package/src/filiale/weinanct/android/SafecheckOrderV.vue +2730 -2730
  218. package/src/filiale/weinanct/pc/NewCheckpaper.vue +1315 -1315
  219. package/src/filiale/wensu/android/AddPlanItem.vue +495 -495
  220. package/src/filiale/wensu/android/AndroidDefectDeal.vue +464 -464
  221. package/src/filiale/wensu/android/PaperFeedback.vue +1358 -1358
  222. package/src/filiale/wensu/android/SafecheckOrderV.vue +2430 -2430
  223. package/src/filiale/wensu/android/SafecheckUserInfo.vue +627 -627
  224. package/src/filiale/wensu/pc/DefectListNew.vue +735 -735
  225. package/src/filiale/wenxi/android/AddPlanItem.vue +431 -431
  226. package/src/filiale/wenxi/android/SafecheckOrderV.vue +2671 -2671
  227. package/src/filiale/wenxi/android/SafecheckUserInfo.vue +673 -673
  228. package/src/filiale/wenxi/pc/DefectList.vue +653 -653
  229. package/src/filiale/wenxi/pc/NewCheckpaper.vue +1358 -1358
  230. package/src/filiale/wuan/android/SafecheckOrderV.vue +2241 -2241
  231. package/src/filiale/wuan/android/SafecheckUserInfo.vue +596 -596
  232. package/src/filiale/wuan/pc/DefectListWeixiu.vue +506 -506
  233. package/src/filiale/wuan/pc/NewCheckpaper.vue +1169 -1169
  234. package/src/filiale/wuhai/android/SafecheckOrderV.vue +2456 -2456
  235. package/src/filiale/wuhai/android/SafecheckUserInfo.vue +573 -573
  236. package/src/filiale/wuhai/pc/NewCheckpaper.vue +1281 -1281
  237. package/src/filiale/xiangyuanzhongai/android/PhoneUpUserinfo.vue +1251 -1251
  238. package/src/filiale/xinkang/pc/CheckSearchUser.vue +1026 -1026
  239. package/src/filiale/xinkang/pc/DefectListWeixiu.vue +475 -475
  240. package/src/filiale/xinliansihui/pc/PaperList.vue +814 -814
  241. package/src/filiale/xinliansihui/pc/PaperVisitMain.vue +206 -206
  242. package/src/filiale/xinliansihui/pc.js +13 -13
  243. package/src/filiale/yangchunboneng/android/AddPlanItem.vue +496 -496
  244. package/src/filiale/yangchunboneng/android/SafecheckOrderV.vue +2865 -2865
  245. package/src/filiale/yangchunboneng/android/SafecheckUserInfo.vue +887 -887
  246. package/src/filiale/yangchunboneng/pc/DefectListNew.vue +576 -576
  247. package/src/filiale/yongzhou/android/SafecheckOrderV.vue +2774 -2774
  248. package/src/filiale/yongzhou/android/SafecheckUserInfo.vue +776 -776
  249. package/src/filiale/yuansheng/android/SafecheckOrderV.vue +2758 -2758
  250. package/src/filiale/yuansheng/android/SafecheckUserInfo.vue +797 -797
  251. package/src/filiale/yuansheng/pc/DefectListNew.vue +524 -524
  252. package/src/filiale/yuansheng/pc/NewCheckpaper.vue +1371 -1371
  253. package/src/filiale/yuansheng/pc/checkmsg.vue +464 -464
  254. package/src/filiale/yunchengminsheng/android/DailyworkloadQuery.vue +491 -491
  255. package/src/filiale/yunchengminsheng/android/PaperFeedback.vue +1509 -1509
  256. package/src/filiale/yunchengminsheng/android/PhoneSellInfo.vue +113 -113
  257. package/src/filiale/yunchengminsheng/android/SafecheckDevices.vue +1270 -1270
  258. package/src/filiale/yunchengminsheng/android/SafecheckUserInfo.vue +785 -785
  259. package/src/filiale/yunchengminsheng/android.js +15 -15
  260. package/src/filiale/yunchengminsheng/pc/PaperList.vue +811 -811
  261. package/src/filiale/yunchengminsheng/pc.js +15 -15
  262. package/src/filiale/zhongsheng/android/BuyRecords.vue +122 -122
  263. package/src/filiale/zhongsheng/android/SafecheckOrderV.vue +2461 -2461
  264. package/src/filiale/zhongsheng/android/SafecheckUserInfo.vue +690 -690
  265. package/src/filiale/zhongsheng/pc/DefectListWeixiu.vue +514 -514
  266. package/src/filiale/zhongsheng/pc/NewCheckpaper.vue +1322 -1322
  267. package/src/filiale/zhongyi/android/SafecheckOrderV.vue +2431 -2431
  268. package/src/filiale/zhongyi/pc/DefectListNew.vue +514 -514
  269. package/src/filiale/zhoukou/android/SafecheckOrderV.vue +2502 -2502
  270. package/src/filiale/zhoukou/android/SafecheckUserInfo.vue +588 -588
  271. package/src/main.js +32 -33
  272. package/src/safecheck-android.js +1 -0
  273. package/src/safecheck.js +927 -927
@@ -1,927 +1,927 @@
1
- <template>
2
- <work-busy :is-busy="isSend"></work-busy>
3
- <div class="binary" style="background-color: #e8f4ff">
4
- <!--左侧安检计划列表******************************************************-->
5
- <div class="binary-left flex flex-column" style="width: 16%">
6
- <div style="height: 9%">
7
- <div class="row auto">
8
- <img style="width: 20px;margin: 0 5px" src="../../../../static/images/searchhover.png" @click="showUserCondition()"/>
9
- <v-select :width="'80%'"
10
- class="select select_list"
11
- :search="false"
12
- :value.sync="currentorder"
13
- v-model="currentorder"
14
- @change="loadCheckPlan"
15
- :options='opt'
16
- close-on-select value-single >
17
- </v-select>
18
- </div>
19
- <div class="row auto safe-div-p"><!--<span style="margin-right: 5px" @click="refresh()" style="cursor:default">测试</span>--><span style="margin-right: 5px" @click="delCheckPlan()" style="cursor:default" v-if="isdelete">删除</span> <span @click="sendCheckPlan()" style="cursor:default">下发</span></div>
20
- </div>
21
- <div class="leftplan-center safe_plan_list">
22
- <div class="row safe-leftplan safe_list_li" :class="{'safe-selectplan':selectPlan.id==row.id}" v-for="row in checkplan.list.data" @click="selectPlanChange(row)">
23
- <table style="width:100%;table-layout:fixed" >
24
- <tr class="safe-planfont">
25
- <td rowspan="6"><input type="checkbox" style="pointer-events:auto" v-show="row.plan_count==0 || row.f_issued=='未下发'" onClick="event.cancelBubble = true" :checked="checkplan.check.isChecked(row.f_check_item_id)" @change="checkplan.check.setCheckes(row.id)"/></td>
26
- <td colspan="6" class="safe_p">{{row.f_plan_name}}</td>
27
- <td colspan="2" style="text-align: center"><img width="20px" style="pointer-events:auto" onClick="event.cancelBubble = true" @click="showUpPlans(row)" src="../../../../static/images/edit.png"/></td>
28
- </tr>
29
- <tr class="safe-bodyfont" style="color:#4792de">
30
- <td colspan="6">{{row.f_issued}}</td>
31
- <td colspan="2" class="safe_p">{{row.f_checker?row.f_checker:'共享'}}</td>
32
- </tr>
33
- <tr class="safe-bodyfont">
34
- <td colspan="4">{{row.f_plan_year}}-{{row.f_plan_month}}</td>
35
- <td colspan="2">总 :</td>
36
- <td colspan="2">{{row.plan_count}}</td>
37
- </tr>
38
- <tr class="safe-bodyfont">
39
- <td colspan="2">未检 :</td>
40
- <td colspan="2">{{row.unchecked}}</td>
41
- <td colspan="2">已检 :</td>
42
- <td colspan="2">{{row.checked}}</td>
43
- </tr>
44
- <tr class="safe-bodyfont" v-if="row.f_create_time">
45
- <td colspan="3">创建时间 :</td>
46
- <td colspan="5" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" :title="row.f_create_time">{{row.f_create_time}}</td>
47
- </tr>
48
- <!-- <tr class="safe-bodyfont" v-if="row.f_safecheck_type">-->
49
- <!-- <td colspan="3">安检类型 :</td>-->
50
- <!-- <td colspan="5" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" :title="row.f_safecheck_type">{{row.f_safecheck_type}}</td>-->
51
- <!-- </tr>-->
52
- <tr class="safe-bodyfont">
53
- <td colspan="3">计划备注 :</td>
54
- <td colspan="5" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" :title="row.f_remark">{{row.f_remark}}</td>
55
- </tr>
56
- </table>
57
- </div>
58
- </div>
59
- <div style="height: 11%">
60
- <div class="row auto leftplan-center" style="padding: 8px">
61
- <div class="col-sm-6" style="">
62
- <span>共{{checkplan.list.count}}条</span>
63
- </div>
64
- <div class="col-sm-6" style="text-align: end">
65
- <span @click="loadMore('checkplan')"><img src="../../../../static/images/doubledown.png"/>&ensp;更多</span>
66
- </div>
67
- </div>
68
- <div class="row auto" style="padding: 10px;text-align: center">
69
- <img src="../../../../static/images/addnew.png" @click="showcCreatePlan()"/>
70
- </div>
71
- </div>
72
- </div>
73
- <!--右侧列表**************************************************************************-->
74
- <div class="binary-right" style="width: 84%;overflow: auto">
75
- <div style="height: 5%">
76
- <div class="col-sm-4">
77
- <label class="font_normal_body">公&emsp;&emsp;司</label>
78
- <right-tree-safe :islist="false" :width="'60%'" @re-res="getRes"></right-tree-safe>
79
- </div>
80
- </div>
81
- <div style="height: 95%">
82
- <div style="height: 50%" class="leftplan-center">
83
- <check-plan-list :selectplan="selectPlan" :userlogin="userlogin" v-ref:item></check-plan-list>
84
- </div>
85
- <div style="height: 50%">
86
- <check-user-list :selectplan="selectPlan" :userlogin="userlogin" v-ref:user></check-user-list>
87
- </div>
88
- </div>
89
- </div>
90
- <modal :show.sync="showCondtion" v-ref:modal :width="'50%'" :backdrop="false">
91
- <div slot="modal-header" class="modal-header">
92
- <h4 class="modal-title">
93
- 计划查询条件
94
- </h4>
95
- </div>
96
- <div slot="modal-body" class="modal-body">
97
- <div class="row">
98
- <div class="form-group col-sm-4" >
99
- <label class="font_normal_body">计划名称:</label>
100
- <input type="text" class="input_search" v-model="planCondition.f_plan_name" @change="setProperty('checkplan','f_plan_name',planCondition.f_plan_name)"
101
- style="width: 60%" placeholder="请选择" />
102
- </div>
103
- <div class="form-group col-sm-4" >
104
- <label class="font_normal_body">计划年份:</label>
105
- <v-select
106
- class="select select_list"
107
- :value.sync="planCondition.f_plan_year"
108
- v-model="planCondition.f_plan_year"
109
- @change="setProperty('checkplan','f_plan_year',planCondition.f_plan_year)"
110
- :search="false"
111
- :options='getConList("yearList")'
112
- placeholder='请选择'
113
- close-on-select
114
- value-single
115
- >
116
- </v-select>
117
- </div>
118
- <div class="form-group col-sm-4" >
119
- <label class="font_normal_body">计划月份:</label>
120
- <v-select
121
- class="select select_list"
122
- :value.sync="planCondition.f_plan_month"
123
- v-model="planCondition.f_plan_month"
124
- @change="setProperty('checkplan','f_plan_month',planCondition.f_plan_month)"
125
- :search="false"
126
- :options='getConList("monthList")'
127
- placeholder='请选择'
128
- close-on-select
129
- value-single>
130
- </v-select>
131
- </div>
132
- <div class="form-group col-sm-4" >
133
- <label class="font_normal_body">是否共享:</label>
134
- <v-select
135
- class="select select_list"
136
- :value.sync="planCondition.isShare"
137
- v-model="planCondition.isShare"
138
- @change="setProperty('checkplan','isAndNot',planCondition.isShare)"
139
- :options='getConList("conIsAndNot")'
140
- :search="false"
141
- placeholder='请选择'
142
- close-on-select
143
- value-single
144
- >
145
- </v-select>
146
- </div>
147
- <div class="form-group col-sm-4" >
148
- <label class="font_normal_body">是否下发:</label>
149
- <v-select
150
- class="select select_list"
151
- :value.sync="planCondition.issued"
152
- v-model="planCondition.issued"
153
- :options='getConList("isAndNot")'
154
- @change="setProperty('checkplan','issude',planCondition.issued)"
155
- placeholder='请选择'
156
- :search="false"
157
- close-on-select
158
- value-single
159
- >
160
- </v-select>
161
- </div>
162
- <div class="form-group col-sm-4" >
163
- <label class="font_normal_body">安&ensp;检&ensp;员:</label>
164
- <v-select
165
- class="select select_list"
166
- :value.sync="planCondition.f_checker"
167
- v-model="planCondition.f_checker"
168
- @change="setProperty('checkplan','checkerid',planCondition.f_checker.id)"
169
- :options='getConList("checker")'
170
- placeholder='请选择'
171
- close-on-select
172
- value-single
173
- >
174
- </v-select>
175
- </div>
176
-
177
- <div class="form-group col-sm-4" >
178
- <label class="font_normal_body">安检类型:</label>
179
- <v-select
180
- class="select select_list"
181
- :value.sync="planCondition.f_safecheck_type"
182
- v-model="planCondition.f_safecheck_type"
183
- @change="setProperty('checkplan','safechecktype',planCondition.f_safecheck_type)"
184
- :options='getConList("safechecktype")'
185
- placeholder='请选择'
186
- :search="false"
187
- close-on-select
188
- value-single
189
- >
190
- </v-select>
191
- </div>
192
- <div class="form-group col-sm-4" >
193
- <label class="font_normal_body">安检部门:</label>
194
- <v-select
195
- class="select select_list"
196
- :value.sync="planCondition.f_department_name"
197
- v-model="planCondition.f_department_name"
198
- @change="setProperty('checkplan','f_department_name',planCondition.f_department_name)"
199
- :options='getConList("departmentname")'
200
- placeholder='请选择'
201
- close-on-select
202
- value-single
203
- >
204
- </v-select>
205
- </div>
206
- <div class="form-group col-sm-4" >
207
- <label class="font_normal_body">创&ensp;建&ensp;人:</label>
208
- <input type="text" class="input_search" v-model="planCondition.f_create_operator" @change="setProperty('checkplan','f_create_operator',planCondition.f_create_operator)"
209
- style="width: 60%" placeholder="创建人" />
210
- </div>
211
- </div>
212
- </div>
213
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
214
- <button class="button_search" @click="loadCheckPlan" style="margin-right: 15px">查询</button>
215
- <button class="button_search" @click="cancel">取消</button>
216
- </div>
217
- </modal>
218
- <modal :show.sync="showCreatePlan" v-ref:modal1 :width="'50%'" :backdrop="false">
219
- <div slot="modal-header" class="modal-header">
220
- <h4 class="modal-title">
221
- 新建计划
222
- </h4>
223
- </div>
224
- <div slot="modal-body" class="modal-body">
225
- <div class="row">
226
- <div class="form-group col-sm-4" >
227
- <label class="font_normal_body">计划名称:</label>
228
- <input type="text" class="input_search" v-model="createPlan.f_plan_name"
229
- style="width: 60%" placeholder="请选择" />
230
- </div>
231
- <div class="form-group col-sm-4" >
232
- <label class="font_normal_body">计划年份:</label>
233
- <v-select
234
- class="select select_list"
235
- :value.sync="createPlan.f_plan_year"
236
- v-model="createPlan.f_plan_year"
237
- :search="false"
238
- :options='yearList'
239
- placeholder='请选择'
240
- close-on-select
241
- value-single
242
- >
243
- </v-select>
244
- </div>
245
- <div class="form-group col-sm-4" >
246
- <label class="font_normal_body">计划月份:</label>
247
- <v-select
248
- class="select select_list"
249
- :value.sync="createPlan.f_plan_month"
250
- v-model="createPlan.f_plan_month"
251
- :search="false"
252
- :options='monthList'
253
- placeholder='请选择'
254
- close-on-select
255
- value-single>
256
- </v-select>
257
- </div>
258
- <div class="form-group col-sm-4" >
259
- <label class="font_normal_body">是否共享:</label>
260
- <v-select
261
- class="select select_list"
262
- :search="false"
263
- :value.sync="createPlan.isShare"
264
- v-model="createPlan.isShare"
265
- :options='isAndNot'
266
- placeholder='请选择'
267
- close-on-select
268
- value-single
269
- >
270
- </v-select>
271
- </div>
272
- <div class="form-group col-sm-4" v-show="createPlan.isShare=='是' && ismulchecker">
273
- <label class="font_normal_body">安&ensp;检&ensp;员:</label>
274
- <v-select
275
- class="select select_list"
276
- :value.sync="createPlan.checkers"
277
- v-model="createPlan.checkers"
278
- :options='checker'
279
- placeholder='请选择'
280
- :multiple="true"
281
- >
282
- </v-select>
283
- </div>
284
- <div class="form-group col-sm-4" v-show="createPlan.isShare=='否'">
285
- <label class="font_normal_body">安&ensp;检&ensp;员:</label>
286
- <v-select
287
- class="select select_list"
288
- :value.sync="createPlan.checker"
289
- v-model="createPlan.checker"
290
- :options='checker'
291
- placeholder='请选择'
292
- close-on-select
293
- value-single
294
- >
295
- </v-select>
296
- </div>
297
-
298
- <div class="form-group col-sm-4" >
299
- <label class="font_normal_body">安检类型:</label>
300
- <v-select
301
- class="select select_list"
302
- :value.sync="createPlan.f_safecheck_type"
303
- v-model="createPlan.f_safecheck_type"
304
- :search="false"
305
- :options='ntoway'
306
- placeholder='请选择'
307
- close-on-select
308
- value-single
309
- >
310
- </v-select>
311
- </div>
312
- <div class="form-group col-sm-12" >
313
- <label class="font_normal_body">计划备注:</label>
314
- <input type="text" class="input_search" v-model="createPlan.f_remark"
315
- style="width: 60%" placeholder="请输入备注" />
316
- </div>
317
- </div>
318
- </div>
319
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
320
- <button class="button_search" style="margin-right: 15px" @click="addNewPlan()">创建计划</button>
321
- <button class="button_search" @click="cancel">取消</button>
322
- </div>
323
- </modal>
324
- <modal :show.sync="showUpPlan" v-ref:modal2 :backdrop="false">
325
- <div slot="modal-header" class="modal-header">
326
- <h4 class="modal-title">
327
- 修改计划
328
- </h4>
329
- </div>
330
- <div slot="modal-body" class="modal-body">
331
- <div class="row">
332
- <div class="form-group col-sm-4" >
333
- <label class="font_normal_body">计划名称:</label>
334
- <input type="text" class="input_search" v-model="upCheckPlan.f_plan_name"
335
- style="width: 60%" />
336
- </div>
337
- <div class="form-group col-sm-4" >
338
- <label class="font_normal_body">计划年份:</label>
339
- <v-select
340
- class="select select_list"
341
- :value.sync="upCheckPlan.f_plan_year"
342
- v-model="upCheckPlan.f_plan_year"
343
- :search="false"
344
- :value="upCheckPlan.f_plan_year"
345
- :options='yearList'
346
- :disabled="true"
347
- close-on-select
348
- value-single>
349
-
350
-
351
- </v-select>
352
- <!-- <datepicker
353
- placeholder='请选择'
354
- style="width:60%"
355
- :disabled-days-of-week="[]"
356
- :format="'yyyy'"
357
- :show-rest-button="reset"
358
- :value.sync="upCheckPlan.f_plan_year"
359
- v-model="upCheckPlan.f_plan_year">
360
- </datepicker>-->
361
- </div>
362
- <div class="form-group col-sm-4" >
363
- <label class="font_normal_body">计划月份:</label>
364
- <v-select
365
- class="select select_list"
366
- :value.sync="upCheckPlan.f_plan_month"
367
- v-model="upCheckPlan.f_plan_month"
368
- :disabled="true"
369
- :options='monthList'
370
- close-on-select
371
- value-single>
372
- </v-select>
373
- </div>
374
- <div class="form-group col-sm-4" >
375
- <label class="font_normal_body">是否共享:</label>
376
- <v-select
377
- class="select select_list"
378
- :search="false"
379
- :value.sync="upCheckPlan.isShare"
380
- v-model="upCheckPlan.isShare"
381
- :options='isAndNot'
382
- placeholder='请选择'
383
- :disabled="true"
384
- close-on-select
385
- value-single
386
- >
387
- </v-select>
388
- </div>
389
- <div class="form-group col-sm-4" v-show="upCheckPlan.isShare=='是' && ismulchecker">
390
- <label class="font_normal_body">安&ensp;检&ensp;员:</label>
391
- <v-select
392
- class="select select_list"
393
- :value.sync="upCheckPlan.checkers"
394
- v-model="upCheckPlan.checkers"
395
- :options='checker'
396
- placeholder='请选择'
397
- :multiple="true"
398
- >
399
- </v-select>
400
- </div>
401
- <div class="form-group col-sm-4" v-show="upCheckPlan.isShare=='否'">
402
- <label class="font_normal_body">安&ensp;检&ensp;员:</label>
403
- <v-select
404
- class="select select_list"
405
- :value.sync="upCheckPlan.checker"
406
- v-model="upCheckPlan.checker"
407
- :options='checker'
408
- close-on-select
409
- value-single
410
- >
411
- </v-select>
412
- </div>
413
-
414
- <div class="form-group col-sm-4">
415
- <label class="font_normal_body">安检类型:</label>
416
- <v-select
417
- class="select select_list"
418
- :value.sync="upCheckPlan.f_safecheck_type"
419
- v-model="upCheckPlan.f_safecheck_type"
420
- :options='ntoway'
421
- close-on-select
422
- :disabled="true"
423
- value-single
424
- >
425
- </v-select>
426
- </div>
427
- <div class="form-group col-sm-12" >
428
- <label class="font_normal_body">计划备注:</label>
429
- <input type="text" class="input_search" v-model="upCheckPlan.f_remark"
430
- style="width: 60%" placeholder="请输入备注" />
431
- </div>
432
- </div>
433
- </div>
434
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
435
- <button class="button_search" style="margin-right: 15px" @click="upPlan()">保存修改</button>
436
- <button class="button_search" @click="cancel">取消</button>
437
- </div>
438
- </modal>
439
- </div>
440
- </template>
441
-
442
- <script>
443
- import {SearchList,HttpResetClass, PagedList} from "vue-client";
444
- import * as Util from "../../../components/Util";
445
- import Vue from "vue";
446
- import AppData from "../../../../src/stores/AppData";
447
-
448
- export default {
449
- name: "PlanManage",
450
- title: '计划管理',
451
- data() {
452
- return {
453
- ismulchecker:this.$appdata.getSingleValue('计划安检员多选')?true:false,
454
- a:'1',
455
- opt:[{label:"按时间降序",value:"按时间降序"},{label:"按时间升序",value:"按时间升序"}],
456
- currentorder:'按时间降序',
457
- isdelete:this.$login.r ? this.$login.r.includes("安检计划删除"):false,
458
- checkplan : new SearchList(true),
459
- selectPlan:{id:''},
460
- upCheckPlan:{
461
- f_plan_name:'',
462
- f_safecheck_type:'',
463
- f_plan_year:'',
464
- f_plan_month:'',
465
- f_checker_id:'',
466
- isShare:'',
467
- f_checker:'',
468
- f_checkerstr:'',
469
- checker:{},
470
- checkers:[],
471
- f_remark:''
472
- },
473
- isSend:false,
474
- createPlan:{
475
- f_plan_name:'',
476
- f_plan_year:'',
477
- f_plan_month:'',
478
- isShare:'否',
479
- f_issued:'否',
480
- f_checker_id:null,
481
- checker:{},
482
- checkers:[],
483
- f_checker:null,
484
- f_checkerstr:null,
485
- f_safecheck_type:'',
486
- f_remark:''
487
- },
488
- planCondition:{},
489
- showCondtion:false,
490
- showCreatePlan:false,
491
- showUpPlan:false,
492
- isAndNot:[{label:'是',value:'是'},{label:'否',value:'否'}],
493
- conIsAndNot:[{label:'是',value:'is null'},{label:'否',value:'is not null'}],
494
- yearList:[{label:2020,value:2020},{label:2021,value:2021},{label:2022,value:2022},{label:2023,value:2023},{label:2024,value:2024},{label:2025,value:2025},{label:2026,value:2026},{label:2027,value:2027},{label:2028,value:2028},{label:2029,value:2029},{label:2030,value:2030}],
495
- monthList:[{label:"1",value:1},{label:"2",value:2},{label:"3",value:3},{label:"4",value:4},{label:"5",value:5},{label:"6",value:6},{label:"7",value:7},{label:"8",value:8},{label:"9",value:9},{label:"10",value:10},{label:"11",value:11},{label:"12",value:12}],
496
- safechecktype:[{label:'年度普检',value:'年度普检'}],
497
- departmentname:this.$appdata.getParam('安检部门'),
498
- checker:[],
499
- checkertCon:[],
500
- userlogin:{
501
- id:this.$login.f.id,
502
- name:this.$login.f.name,
503
- orgid:this.$login.f.orgid,
504
- orgstr:this.$login.f.orgs,
505
- }
506
- //需要测试直接把下面放开即可
507
- /*userlogin:{
508
- id:'141701',
509
- name:'hwq',
510
- orgid:'35526',
511
- orgstr:'西华县天然气有限公司'
512
- }*/
513
- }
514
- },
515
- async ready(){
516
- document.addEventListener('keydown', this.handleEnter, true);
517
- await this.loadpage()
518
- if (!this.userlogin.orgid){
519
- if (this.$login.f.f_orgids){
520
- this.userlogin.orgid = this.$login.f.f_orgids.endsWith('.')?this.$login.f.f_orgids.substring(0,this.$login.f.f_orgids.length-1):this.$login.f.f_orgids
521
- }else {
522
- this.userlogin.orgid = ''
523
- }
524
- }
525
- },
526
- computed: {
527
- ntoway() {
528
- /*/!* return AppData.getParam('安检类型')*!/*/
529
- return this.$appdata.getParam('安检类型')
530
- }
531
- },
532
- methods:{
533
- handleEnter(e) {
534
- if (e.key === 'Enter') {
535
- this.$refs.user.$refs.paged.$refs.criteria.search()
536
- }
537
- },
538
- /* ntoway() {
539
- /!* return AppData.getParam('安检类型')*!/
540
- return Vue.$appdata.getParam('安检类型')
541
- },*/
542
- async loadpage(){
543
- //await this.checkplan.searchList("/api/af-safecheck/sql/预约计划下发", {},{groupitem:"",f_filialeids:"('"+this.userlogin.orgid+"')",orderitem:"f_create_time desc"})
544
- await this.loadCheckPlan()
545
- await this.searchChecker(this.userlogin.id)
546
- },
547
- getRes(obj) {
548
- console.log("----obj"+JSON.stringify(obj.resids))
549
- console.log(obj)
550
- if(obj.resids.length>0 && obj.resids[0]!=this.userlogin.orgid && obj.resids[0]){
551
- this.userlogin.orgid=obj.resids[0]
552
- this.userlogin.orgstr=obj.res[0]
553
- if(this.$refs.item && this.$refs.user){
554
- this.loadpage()
555
- this.selectPlan={id:""}
556
- this.$refs.item.model.rows=[]
557
- this.$refs.user.model.rows=[]
558
- this.$refs.user.loadpage()
559
- }
560
- }
561
- },
562
- getConList(field){
563
- return [{label:'全部',value:''}, ...this[field]]
564
- },
565
- selectPlanChange(plan){
566
- this.selectPlan=plan
567
- //this.upCheckPlan=plan
568
- },
569
- showUserCondition(){
570
- this.showCondtion=true
571
- },
572
- showcCreatePlan(){
573
- this.showCreatePlan=true
574
- this.createPlan.f_plan_year=new Date().getFullYear()
575
- this.createPlan.f_safecheck_type='年度普检'
576
- },
577
- cancel(){
578
- this.showCondtion=false
579
- this.showCreatePlan=false
580
- this.showUpPlan=false
581
- },
582
- //新建计划
583
- async addNewPlan() {
584
- if(!this.validationCreatePlan()){
585
- return
586
- }
587
- this.isSend=true
588
- let res=await new HttpResetClass().load("POST","/api/af-safecheck/sql/getCheckplan", {data: {condition:"f_plan_name='"+this.createPlan.f_plan_name+"'",sortfield:'f_create_time desc'}})
589
- console.log("结果-"+res.data.length)
590
- if(res.data.length>0){
591
- Vue.showMessage("计划名称不能重复!")
592
- this.isSend=false
593
- return
594
- }
595
- if(this.createPlan.isShare=="是"){
596
- if(this.ismulchecker && this.createPlan.checkers.length > 0){
597
- this.createPlan.checkers.forEach((value) => {
598
- this.createPlan.f_checkerstr += `${value.name},`
599
- })
600
- this.createPlan.f_checkerstr = this.createPlan.f_checkerstr.slice(0, -1)
601
- }
602
- this.createPlan.f_checker_id=null
603
- this.createPlan.f_checker=null
604
- }else{
605
- this.createPlan.f_checker_id=this.createPlan.checker.id
606
- this.createPlan.f_checker=this.createPlan.checker.name
607
- }
608
- console.log("this.createPlan.f_checker:"+this.createPlan.f_checker)
609
- this.createPlan.f_plan_type='预约计划'
610
- this.createPlan.f_subcompany=this.userlogin.orgstr
611
- this.createPlan.f_filialeid=this.userlogin.orgid
612
- this.createPlan.f_create_operator=this.userlogin.name
613
- this.createPlan.f_create_time=Util.toStandardTimeString()
614
- await new HttpResetClass().load('POST',"/api/af-safecheck/logic/createCheckPlan", {"data": this.createPlan},{resolveMsg : '新建计划成功!', rejectMsg : '新建计划失败!'})
615
- //await this.loadCheckPlan('',()=>{})
616
- this.createPlan={
617
- f_plan_name:'',
618
- f_plan_year:'',
619
- f_plan_month:'',
620
- isShare:'否',
621
- f_issued:'否',
622
- f_checker_id:null,
623
- checker:{},
624
- checkers:[],
625
- f_checker:null,
626
- f_checkerstr:null,
627
- f_safecheck_type:'',
628
- f_create_operator:''
629
- }
630
- await this.loadCheckPlan()
631
- this.isSend=false
632
-
633
- },
634
- validationCreatePlan(){
635
- if(!this.createPlan.f_plan_name){
636
- Vue.showMessage("请输入安检计划名称!")
637
- return false
638
- }
639
- if(!this.createPlan.f_plan_year){
640
- Vue.showMessage("请选择安检年份!")
641
- return false
642
- }
643
- if(!this.createPlan.f_plan_month){
644
- Vue.showMessage("请选择安检月份!")
645
- return false
646
- }
647
- if(this.createPlan.isShare=="否"){
648
- if(JSON.stringify(this.createPlan.checker)=='{}'){
649
- Vue.showMessage("请选择安检人员!")
650
- return false
651
- }
652
- }else{
653
- this.createPlan.f_checker=''
654
- }
655
- if(!this.createPlan.f_safecheck_type){
656
- Vue.showMessage("请选择安检类型!")
657
- return false
658
- }
659
- return true
660
- },
661
- //查询安检员selectChanged
662
- async searchChecker(){
663
- console.log(this.$login.f.orgid)
664
- debugger
665
- let res=await new HttpResetClass().load('POST', '/rs/search', {
666
- data:{
667
- source: `root.getResourceById($${this.$login.f.orgid}$,$organization$).getSpecialResByType($user$).where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1)`,
668
- userid: this.$login.f.id
669
- }
670
- }, {resolveMsg: null, rejectMsg: null})
671
- res.data.forEach((resRow) => {
672
- this.checker.push({label:resRow.name,value:resRow})
673
- })
674
- },
675
- //设置属性值
676
- setProperty(modulename, property, value) {
677
- console.log(modulename+"新添--"+property+"--"+value)
678
- if(value=='全部'){
679
- this[modulename].search.setField(property, '')
680
- }else{
681
- this[modulename].search.setField(property, value)
682
- }
683
- },
684
- //按条件查询所有安检计划
685
- async loadCheckPlan() {
686
- this.isSend=true
687
- this.checkplan.check.checkescheckes=[]
688
- let fieldValue=''
689
- switch(this.currentorder){
690
- case "按时间降序":
691
- fieldValue='f_create_time desc'
692
- break
693
- case "按时间升序":
694
- fieldValue='f_create_time'
695
- break
696
- }
697
- console.log("--------fieldValue"+fieldValue)
698
- this.cancel()
699
- await this.checkplan.searchList("/api/af-safecheck/sql/预约计划下发",
700
- {"f_plan_name": "f_plan_name like '%{}%'",
701
- "f_plan_year":"f_plan_year={}",
702
- "f_plan_month":"f_plan_month={}",
703
- "checkerid":"f_checker_id='{}'",
704
- "isAndNot":"f_checker {}",
705
- "safechecktype":"f_safecheck_type='{}'",
706
- "issude":"f_issued = '{}'",
707
- "f_create_operator": "f_create_operator like '%{}%'",
708
- "f_department_name": "f_department_name = '{}'",
709
- },
710
- {orderitem:fieldValue,
711
- f_filialeids:"('"+this.userlogin.orgid+"')",
712
- groupitem:""
713
- }
714
- )
715
-
716
- this.isSend=false
717
- },
718
- //加载更多数据
719
- async loadMore(modelname) {
720
- this.isSend=true
721
- await this[modelname].list.loadMore()
722
- this.isSend=false
723
- },
724
- showUpPlans(row){
725
- this.upCheckPlan.id=row.id
726
- this.upCheckPlan.f_safecheck_type=row.f_safecheck_type
727
- this.upCheckPlan.f_plan_name=row.f_plan_name
728
- this.upCheckPlan.f_plan_year=row.f_plan_year
729
- this.upCheckPlan.f_plan_month=row.f_plan_month
730
- this.upCheckPlan.f_checker_id=row.f_checker_id?row.f_checker_id:null
731
- this.upCheckPlan.f_checker=row.f_checker?row.f_checker:null
732
- this.upCheckPlan.isShare=row.f_checker_id?'否':'是'
733
- this.upCheckPlan.f_issued=row.f_issued
734
- this.upCheckPlan.f_remark=row.f_remark
735
- this.upCheckPlan.checker={id:row.f_checker_id,name:row.f_checker}
736
- this.showUpPlan=true
737
- },
738
- async upPlan(){
739
- if(!this.upCheckPlan.f_plan_name){
740
- Vue.showMessage("请输入安检计划名称!")
741
- return false
742
- }
743
- if(!this.upCheckPlan.f_plan_year){
744
- Vue.showMessage("请选择安检年份!")
745
- return false
746
- }
747
- if(!this.upCheckPlan.f_plan_month){
748
- Vue.showMessage("请选择安检月份!")
749
- return false
750
- }
751
- console.log(this.upCheckPlan)
752
-
753
- if(this.upCheckPlan.isShare=="是"){
754
- if(this.ismulchecker && this.upCheckPlan.checkers.length > 0){
755
- this.upCheckPlan.checkers.forEach((value) => {
756
- this.upCheckPlan.f_checkerstr += `${value.name},`
757
- })
758
- this.upCheckPlan.f_checkerstr = this.upCheckPlan.f_checkerstr.slice(0, -1)
759
- }
760
- this.upCheckPlan.f_checker_id=null
761
- this.upCheckPlan.f_checker=null
762
- }else{
763
- this.upCheckPlan.f_checker_id=this.upCheckPlan.checker.id
764
- this.upCheckPlan.f_checker=this.upCheckPlan.checker.name
765
- }
766
- this.isSend=true
767
- let res=await new HttpResetClass().load("POST", "/api/af-safecheck/logic/updateCheckPlan", {
768
- data:{
769
- checkers:this.createPlan.checkers,
770
- f_checkerstr:this.createPlan.f_checkerstr,
771
- f_checker:this.upCheckPlan.f_checker,
772
- f_safecheck_type:this.upCheckPlan.f_safecheck_type,
773
- f_checker_id:this.upCheckPlan.f_checker_id,
774
- f_plan_name:this.upCheckPlan.f_plan_name,
775
- f_plan_year:this.upCheckPlan.f_plan_year,
776
- f_plan_month:this.upCheckPlan.f_plan_month,
777
- f_plan_id:this.upCheckPlan.id,
778
- issued:'否',
779
- f_remark:this.upCheckPlan.f_remark,
780
- }
781
- }, {resolveMsg: null, rejectMsg: null})
782
- if(res.data.code==200){
783
- this.$showMessage("修改成功!")
784
- this.cancel()
785
- await this.loadCheckPlan()
786
- }else{
787
- this.$showMessage("修改失败!")
788
- }
789
- this.isSend=false
790
- },
791
- //下发安检计划
792
- async sendCheckPlan(f){
793
- if(this.checkplan.check.checkes.length<1){
794
- this.$showMessage("请选择要下发的安检计划")
795
- return
796
- }
797
- this.isSend=true
798
- let res=await new HttpResetClass().load("POST", "/api/af-safecheck/logic/NewBespeakCheckPlan", {
799
- data:{
800
- f_issued:'是',
801
- f_issue_time:Util.toStandardTimeString(),
802
- f_send_operator:this.userlogin.name,
803
- param:this.checkplan.check.checkes,
804
- }
805
- }, {resolveMsg: null, rejectMsg: null})
806
- if(res.data.code==200){
807
- //Vue.showMessage("下发成功!其中有"+res.data.repet+"个计划己经是下发状态")
808
- this.$showMessage("下发成功!")
809
- }else{
810
- this.$showMessage("下发失败!")
811
- }
812
- await this.loadCheckPlan()
813
- this.isSend=false
814
- },
815
- //删除安检计划
816
- async delCheckPlan(f){
817
- if(this.checkplan.check.checkes.length<1){
818
- this.$showMessage("请选择要删除的安检计划")
819
- return
820
- }
821
- this.isSend=true
822
- let res=await new HttpResetClass().load("POST", "/api/af-safecheck/logic/deleteCheckPlan", {
823
- data:{
824
- f_operator:this.userlogin.name,//global.login.name,
825
- condition:"",
826
- switchCheckAll:true,
827
- checkAll:false,
828
- param:this.checkplan.check.checkes,
829
- columnName: "f_plan_id"
830
- }
831
- }, {resolveMsg: null, rejectMsg: null})
832
- console.log(JSON.stringify(res))
833
- if(res.data.code==200){
834
- this.$showMessage("删除成功!")
835
- }else{
836
- this.$showMessage("删除失败!")
837
- }
838
- if(this.checkplan.check.checkes.indexOf(this.selectPlan.id)!= -1){
839
- this.selectPlan={id:''}
840
- console.log("包含了清空selectplan")
841
- }
842
- await this.loadCheckPlan()
843
- this.isSend=false
844
- },
845
- async refresh(){
846
- this.$refs.item.$refs.paged.$refs.criteria.search()
847
- this.$refs.user.$refs.paged.$refs.criteria.search()
848
- await this.loadCheckPlan()
849
- },
850
- async refreshPlan(){
851
- this.$refs.item.$refs.paged.$refs.criteria.search()
852
- await this.loadCheckPlan()
853
- }
854
- }
855
- }
856
- </script>
857
-
858
- <style scoped>
859
- .safe-planfont{
860
- font-family: MicrosoftYaHei;
861
- font-size: 15px;
862
- font-weight: normal;
863
- font-stretch: normal;
864
- letter-spacing: 2px;
865
- color: #333333;
866
- line-height: 25px;
867
- }
868
- .safe-bodyfont{
869
- font-family: MicrosoftYaHei;
870
- font-size: 14px;
871
- font-weight: normal;
872
- font-stretch: normal;
873
- letter-spacing: 0px;
874
- color: #999999;
875
- line-height: 30px;
876
- }
877
- .safe-leftplan{
878
- height:auto;
879
- border-bottom:1px solid #ececec;
880
- padding: 10px 5px
881
- }
882
- .leftplan-center{
883
- border-top:1px solid #ececec;
884
- border-bottom:1px solid #ececec;
885
- }
886
- .safe_p{
887
- white-space: nowrap;
888
- overflow: hidden;
889
- text-overflow: ellipsis;
890
- }
891
- .safe-div-p{
892
- color: #4792de;
893
- text-align: end;
894
- padding: 8px 15px;
895
- }
896
- .safe_list_li:hover{
897
- background-color: rgb(245,246,247);
898
- }
899
- .safe-selectplan{
900
- pointer-events: none;
901
- background-color: rgb(216,234,251);
902
- }
903
- .safe_plan_list{
904
- height: 80%;
905
- overflow: scroll;
906
- }
907
-
908
- </style>
909
- <style>
910
- .safe_plan_list::-webkit-scrollbar{
911
- background-color: #F5F5F5;
912
- }
913
-
914
- /*定义滚动条轨道 内阴影+圆角*/
915
- .safe_plan_list::-webkit-scrollbar-track{
916
- -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
917
- border-radius: 10px;
918
- background-color: #F5F5F5;
919
- }
920
-
921
- /*定义滑块 内阴影+圆角*/
922
- .safe_plan_list::-webkit-scrollbar-thumb{
923
- border-radius: 10px;
924
- -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
925
- background-color: #F5F5F5;
926
- }
927
- </style>
1
+ <template>
2
+ <work-busy :is-busy="isSend"></work-busy>
3
+ <div class="binary" style="background-color: #e8f4ff">
4
+ <!--左侧安检计划列表******************************************************-->
5
+ <div class="binary-left flex flex-column" style="width: 16%">
6
+ <div style="height: 9%">
7
+ <div class="row auto">
8
+ <img style="width: 20px;margin: 0 5px" src="../../../../static/images/searchhover.png" @click="showUserCondition()"/>
9
+ <v-select :width="'80%'"
10
+ class="select select_list"
11
+ :search="false"
12
+ :value.sync="currentorder"
13
+ v-model="currentorder"
14
+ @change="loadCheckPlan"
15
+ :options='opt'
16
+ close-on-select value-single >
17
+ </v-select>
18
+ </div>
19
+ <div class="row auto safe-div-p"><!--<span style="margin-right: 5px" @click="refresh()" style="cursor:default">测试</span>--><span style="margin-right: 5px" @click="delCheckPlan()" style="cursor:default" v-if="isdelete">删除</span> <span @click="sendCheckPlan()" style="cursor:default">下发</span></div>
20
+ </div>
21
+ <div class="leftplan-center safe_plan_list">
22
+ <div class="row safe-leftplan safe_list_li" :class="{'safe-selectplan':selectPlan.id==row.id}" v-for="row in checkplan.list.data" @click="selectPlanChange(row)">
23
+ <table style="width:100%;table-layout:fixed" >
24
+ <tr class="safe-planfont">
25
+ <td rowspan="6"><input type="checkbox" style="pointer-events:auto" v-show="row.plan_count==0 || row.f_issued=='未下发'" onClick="event.cancelBubble = true" :checked="checkplan.check.isChecked(row.f_check_item_id)" @change="checkplan.check.setCheckes(row.id)"/></td>
26
+ <td colspan="6" class="safe_p">{{row.f_plan_name}}</td>
27
+ <td colspan="2" style="text-align: center"><img width="20px" style="pointer-events:auto" onClick="event.cancelBubble = true" @click="showUpPlans(row)" src="../../../../static/images/edit.png"/></td>
28
+ </tr>
29
+ <tr class="safe-bodyfont" style="color:#4792de">
30
+ <td colspan="6">{{row.f_issued}}</td>
31
+ <td colspan="2" class="safe_p">{{row.f_checker?row.f_checker:'共享'}}</td>
32
+ </tr>
33
+ <tr class="safe-bodyfont">
34
+ <td colspan="4">{{row.f_plan_year}}-{{row.f_plan_month}}</td>
35
+ <td colspan="2">总 :</td>
36
+ <td colspan="2">{{row.plan_count}}</td>
37
+ </tr>
38
+ <tr class="safe-bodyfont">
39
+ <td colspan="2">未检 :</td>
40
+ <td colspan="2">{{row.unchecked}}</td>
41
+ <td colspan="2">已检 :</td>
42
+ <td colspan="2">{{row.checked}}</td>
43
+ </tr>
44
+ <tr class="safe-bodyfont" v-if="row.f_create_time">
45
+ <td colspan="3">创建时间 :</td>
46
+ <td colspan="5" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" :title="row.f_create_time">{{row.f_create_time}}</td>
47
+ </tr>
48
+ <!-- <tr class="safe-bodyfont" v-if="row.f_safecheck_type">-->
49
+ <!-- <td colspan="3">安检类型 :</td>-->
50
+ <!-- <td colspan="5" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" :title="row.f_safecheck_type">{{row.f_safecheck_type}}</td>-->
51
+ <!-- </tr>-->
52
+ <tr class="safe-bodyfont">
53
+ <td colspan="3">计划备注 :</td>
54
+ <td colspan="5" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;" :title="row.f_remark">{{row.f_remark}}</td>
55
+ </tr>
56
+ </table>
57
+ </div>
58
+ </div>
59
+ <div style="height: 11%">
60
+ <div class="row auto leftplan-center" style="padding: 8px">
61
+ <div class="col-sm-6" style="">
62
+ <span>共{{checkplan.list.count}}条</span>
63
+ </div>
64
+ <div class="col-sm-6" style="text-align: end">
65
+ <span @click="loadMore('checkplan')"><img src="../../../../static/images/doubledown.png"/>&ensp;更多</span>
66
+ </div>
67
+ </div>
68
+ <div class="row auto" style="padding: 10px;text-align: center">
69
+ <img src="../../../../static/images/addnew.png" @click="showcCreatePlan()"/>
70
+ </div>
71
+ </div>
72
+ </div>
73
+ <!--右侧列表**************************************************************************-->
74
+ <div class="binary-right" style="width: 84%;overflow: auto">
75
+ <div style="height: 5%">
76
+ <div class="col-sm-4">
77
+ <label class="font_normal_body">公&emsp;&emsp;司</label>
78
+ <right-tree-safe :islist="false" :width="'60%'" @re-res="getRes"></right-tree-safe>
79
+ </div>
80
+ </div>
81
+ <div style="height: 95%">
82
+ <div style="height: 50%" class="leftplan-center">
83
+ <check-plan-list :selectplan="selectPlan" :userlogin="userlogin" v-ref:item></check-plan-list>
84
+ </div>
85
+ <div style="height: 50%">
86
+ <check-user-list :selectplan="selectPlan" :userlogin="userlogin" v-ref:user></check-user-list>
87
+ </div>
88
+ </div>
89
+ </div>
90
+ <modal :show.sync="showCondtion" v-ref:modal :width="'50%'" :backdrop="false">
91
+ <div slot="modal-header" class="modal-header">
92
+ <h4 class="modal-title">
93
+ 计划查询条件
94
+ </h4>
95
+ </div>
96
+ <div slot="modal-body" class="modal-body">
97
+ <div class="row">
98
+ <div class="form-group col-sm-4" >
99
+ <label class="font_normal_body">计划名称:</label>
100
+ <input type="text" class="input_search" v-model="planCondition.f_plan_name" @change="setProperty('checkplan','f_plan_name',planCondition.f_plan_name)"
101
+ style="width: 60%" placeholder="请选择" />
102
+ </div>
103
+ <div class="form-group col-sm-4" >
104
+ <label class="font_normal_body">计划年份:</label>
105
+ <v-select
106
+ class="select select_list"
107
+ :value.sync="planCondition.f_plan_year"
108
+ v-model="planCondition.f_plan_year"
109
+ @change="setProperty('checkplan','f_plan_year',planCondition.f_plan_year)"
110
+ :search="false"
111
+ :options='getConList("yearList")'
112
+ placeholder='请选择'
113
+ close-on-select
114
+ value-single
115
+ >
116
+ </v-select>
117
+ </div>
118
+ <div class="form-group col-sm-4" >
119
+ <label class="font_normal_body">计划月份:</label>
120
+ <v-select
121
+ class="select select_list"
122
+ :value.sync="planCondition.f_plan_month"
123
+ v-model="planCondition.f_plan_month"
124
+ @change="setProperty('checkplan','f_plan_month',planCondition.f_plan_month)"
125
+ :search="false"
126
+ :options='getConList("monthList")'
127
+ placeholder='请选择'
128
+ close-on-select
129
+ value-single>
130
+ </v-select>
131
+ </div>
132
+ <div class="form-group col-sm-4" >
133
+ <label class="font_normal_body">是否共享:</label>
134
+ <v-select
135
+ class="select select_list"
136
+ :value.sync="planCondition.isShare"
137
+ v-model="planCondition.isShare"
138
+ @change="setProperty('checkplan','isAndNot',planCondition.isShare)"
139
+ :options='getConList("conIsAndNot")'
140
+ :search="false"
141
+ placeholder='请选择'
142
+ close-on-select
143
+ value-single
144
+ >
145
+ </v-select>
146
+ </div>
147
+ <div class="form-group col-sm-4" >
148
+ <label class="font_normal_body">是否下发:</label>
149
+ <v-select
150
+ class="select select_list"
151
+ :value.sync="planCondition.issued"
152
+ v-model="planCondition.issued"
153
+ :options='getConList("isAndNot")'
154
+ @change="setProperty('checkplan','issude',planCondition.issued)"
155
+ placeholder='请选择'
156
+ :search="false"
157
+ close-on-select
158
+ value-single
159
+ >
160
+ </v-select>
161
+ </div>
162
+ <div class="form-group col-sm-4" >
163
+ <label class="font_normal_body">安&ensp;检&ensp;员:</label>
164
+ <v-select
165
+ class="select select_list"
166
+ :value.sync="planCondition.f_checker"
167
+ v-model="planCondition.f_checker"
168
+ @change="setProperty('checkplan','checkerid',planCondition.f_checker.id)"
169
+ :options='getConList("checker")'
170
+ placeholder='请选择'
171
+ close-on-select
172
+ value-single
173
+ >
174
+ </v-select>
175
+ </div>
176
+
177
+ <div class="form-group col-sm-4" >
178
+ <label class="font_normal_body">安检类型:</label>
179
+ <v-select
180
+ class="select select_list"
181
+ :value.sync="planCondition.f_safecheck_type"
182
+ v-model="planCondition.f_safecheck_type"
183
+ @change="setProperty('checkplan','safechecktype',planCondition.f_safecheck_type)"
184
+ :options='getConList("safechecktype")'
185
+ placeholder='请选择'
186
+ :search="false"
187
+ close-on-select
188
+ value-single
189
+ >
190
+ </v-select>
191
+ </div>
192
+ <div class="form-group col-sm-4" >
193
+ <label class="font_normal_body">安检部门:</label>
194
+ <v-select
195
+ class="select select_list"
196
+ :value.sync="planCondition.f_department_name"
197
+ v-model="planCondition.f_department_name"
198
+ @change="setProperty('checkplan','f_department_name',planCondition.f_department_name)"
199
+ :options='getConList("departmentname")'
200
+ placeholder='请选择'
201
+ close-on-select
202
+ value-single
203
+ >
204
+ </v-select>
205
+ </div>
206
+ <div class="form-group col-sm-4" >
207
+ <label class="font_normal_body">创&ensp;建&ensp;人:</label>
208
+ <input type="text" class="input_search" v-model="planCondition.f_create_operator" @change="setProperty('checkplan','f_create_operator',planCondition.f_create_operator)"
209
+ style="width: 60%" placeholder="创建人" />
210
+ </div>
211
+ </div>
212
+ </div>
213
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
214
+ <button class="button_search" @click="loadCheckPlan" style="margin-right: 15px">查询</button>
215
+ <button class="button_search" @click="cancel">取消</button>
216
+ </div>
217
+ </modal>
218
+ <modal :show.sync="showCreatePlan" v-ref:modal1 :width="'50%'" :backdrop="false">
219
+ <div slot="modal-header" class="modal-header">
220
+ <h4 class="modal-title">
221
+ 新建计划
222
+ </h4>
223
+ </div>
224
+ <div slot="modal-body" class="modal-body">
225
+ <div class="row">
226
+ <div class="form-group col-sm-4" >
227
+ <label class="font_normal_body">计划名称:</label>
228
+ <input type="text" class="input_search" v-model="createPlan.f_plan_name"
229
+ style="width: 60%" placeholder="请选择" />
230
+ </div>
231
+ <div class="form-group col-sm-4" >
232
+ <label class="font_normal_body">计划年份:</label>
233
+ <v-select
234
+ class="select select_list"
235
+ :value.sync="createPlan.f_plan_year"
236
+ v-model="createPlan.f_plan_year"
237
+ :search="false"
238
+ :options='yearList'
239
+ placeholder='请选择'
240
+ close-on-select
241
+ value-single
242
+ >
243
+ </v-select>
244
+ </div>
245
+ <div class="form-group col-sm-4" >
246
+ <label class="font_normal_body">计划月份:</label>
247
+ <v-select
248
+ class="select select_list"
249
+ :value.sync="createPlan.f_plan_month"
250
+ v-model="createPlan.f_plan_month"
251
+ :search="false"
252
+ :options='monthList'
253
+ placeholder='请选择'
254
+ close-on-select
255
+ value-single>
256
+ </v-select>
257
+ </div>
258
+ <div class="form-group col-sm-4" >
259
+ <label class="font_normal_body">是否共享:</label>
260
+ <v-select
261
+ class="select select_list"
262
+ :search="false"
263
+ :value.sync="createPlan.isShare"
264
+ v-model="createPlan.isShare"
265
+ :options='isAndNot'
266
+ placeholder='请选择'
267
+ close-on-select
268
+ value-single
269
+ >
270
+ </v-select>
271
+ </div>
272
+ <div class="form-group col-sm-4" v-show="createPlan.isShare=='是' && ismulchecker">
273
+ <label class="font_normal_body">安&ensp;检&ensp;员:</label>
274
+ <v-select
275
+ class="select select_list"
276
+ :value.sync="createPlan.checkers"
277
+ v-model="createPlan.checkers"
278
+ :options='checker'
279
+ placeholder='请选择'
280
+ :multiple="true"
281
+ >
282
+ </v-select>
283
+ </div>
284
+ <div class="form-group col-sm-4" v-show="createPlan.isShare=='否'">
285
+ <label class="font_normal_body">安&ensp;检&ensp;员:</label>
286
+ <v-select
287
+ class="select select_list"
288
+ :value.sync="createPlan.checker"
289
+ v-model="createPlan.checker"
290
+ :options='checker'
291
+ placeholder='请选择'
292
+ close-on-select
293
+ value-single
294
+ >
295
+ </v-select>
296
+ </div>
297
+
298
+ <div class="form-group col-sm-4" >
299
+ <label class="font_normal_body">安检类型:</label>
300
+ <v-select
301
+ class="select select_list"
302
+ :value.sync="createPlan.f_safecheck_type"
303
+ v-model="createPlan.f_safecheck_type"
304
+ :search="false"
305
+ :options='ntoway'
306
+ placeholder='请选择'
307
+ close-on-select
308
+ value-single
309
+ >
310
+ </v-select>
311
+ </div>
312
+ <div class="form-group col-sm-12" >
313
+ <label class="font_normal_body">计划备注:</label>
314
+ <input type="text" class="input_search" v-model="createPlan.f_remark"
315
+ style="width: 60%" placeholder="请输入备注" />
316
+ </div>
317
+ </div>
318
+ </div>
319
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
320
+ <button class="button_search" style="margin-right: 15px" @click="addNewPlan()">创建计划</button>
321
+ <button class="button_search" @click="cancel">取消</button>
322
+ </div>
323
+ </modal>
324
+ <modal :show.sync="showUpPlan" v-ref:modal2 :backdrop="false">
325
+ <div slot="modal-header" class="modal-header">
326
+ <h4 class="modal-title">
327
+ 修改计划
328
+ </h4>
329
+ </div>
330
+ <div slot="modal-body" class="modal-body">
331
+ <div class="row">
332
+ <div class="form-group col-sm-4" >
333
+ <label class="font_normal_body">计划名称:</label>
334
+ <input type="text" class="input_search" v-model="upCheckPlan.f_plan_name"
335
+ style="width: 60%" />
336
+ </div>
337
+ <div class="form-group col-sm-4" >
338
+ <label class="font_normal_body">计划年份:</label>
339
+ <v-select
340
+ class="select select_list"
341
+ :value.sync="upCheckPlan.f_plan_year"
342
+ v-model="upCheckPlan.f_plan_year"
343
+ :search="false"
344
+ :value="upCheckPlan.f_plan_year"
345
+ :options='yearList'
346
+ :disabled="true"
347
+ close-on-select
348
+ value-single>
349
+
350
+
351
+ </v-select>
352
+ <!-- <datepicker
353
+ placeholder='请选择'
354
+ style="width:60%"
355
+ :disabled-days-of-week="[]"
356
+ :format="'yyyy'"
357
+ :show-rest-button="reset"
358
+ :value.sync="upCheckPlan.f_plan_year"
359
+ v-model="upCheckPlan.f_plan_year">
360
+ </datepicker>-->
361
+ </div>
362
+ <div class="form-group col-sm-4" >
363
+ <label class="font_normal_body">计划月份:</label>
364
+ <v-select
365
+ class="select select_list"
366
+ :value.sync="upCheckPlan.f_plan_month"
367
+ v-model="upCheckPlan.f_plan_month"
368
+ :disabled="true"
369
+ :options='monthList'
370
+ close-on-select
371
+ value-single>
372
+ </v-select>
373
+ </div>
374
+ <div class="form-group col-sm-4" >
375
+ <label class="font_normal_body">是否共享:</label>
376
+ <v-select
377
+ class="select select_list"
378
+ :search="false"
379
+ :value.sync="upCheckPlan.isShare"
380
+ v-model="upCheckPlan.isShare"
381
+ :options='isAndNot'
382
+ placeholder='请选择'
383
+ :disabled="true"
384
+ close-on-select
385
+ value-single
386
+ >
387
+ </v-select>
388
+ </div>
389
+ <div class="form-group col-sm-4" v-show="upCheckPlan.isShare=='是' && ismulchecker">
390
+ <label class="font_normal_body">安&ensp;检&ensp;员:</label>
391
+ <v-select
392
+ class="select select_list"
393
+ :value.sync="upCheckPlan.checkers"
394
+ v-model="upCheckPlan.checkers"
395
+ :options='checker'
396
+ placeholder='请选择'
397
+ :multiple="true"
398
+ >
399
+ </v-select>
400
+ </div>
401
+ <div class="form-group col-sm-4" v-show="upCheckPlan.isShare=='否'">
402
+ <label class="font_normal_body">安&ensp;检&ensp;员:</label>
403
+ <v-select
404
+ class="select select_list"
405
+ :value.sync="upCheckPlan.checker"
406
+ v-model="upCheckPlan.checker"
407
+ :options='checker'
408
+ close-on-select
409
+ value-single
410
+ >
411
+ </v-select>
412
+ </div>
413
+
414
+ <div class="form-group col-sm-4">
415
+ <label class="font_normal_body">安检类型:</label>
416
+ <v-select
417
+ class="select select_list"
418
+ :value.sync="upCheckPlan.f_safecheck_type"
419
+ v-model="upCheckPlan.f_safecheck_type"
420
+ :options='ntoway'
421
+ close-on-select
422
+ :disabled="true"
423
+ value-single
424
+ >
425
+ </v-select>
426
+ </div>
427
+ <div class="form-group col-sm-12" >
428
+ <label class="font_normal_body">计划备注:</label>
429
+ <input type="text" class="input_search" v-model="upCheckPlan.f_remark"
430
+ style="width: 60%" placeholder="请输入备注" />
431
+ </div>
432
+ </div>
433
+ </div>
434
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
435
+ <button class="button_search" style="margin-right: 15px" @click="upPlan()">保存修改</button>
436
+ <button class="button_search" @click="cancel">取消</button>
437
+ </div>
438
+ </modal>
439
+ </div>
440
+ </template>
441
+
442
+ <script>
443
+ import {SearchList,HttpResetClass, PagedList} from "vue-client";
444
+ import * as Util from "../../../components/Util";
445
+ import Vue from "vue";
446
+ import AppData from "../../../../src/stores/AppData";
447
+
448
+ export default {
449
+ name: "PlanManage",
450
+ title: '计划管理',
451
+ data() {
452
+ return {
453
+ ismulchecker:this.$appdata.getSingleValue('计划安检员多选')?true:false,
454
+ a:'1',
455
+ opt:[{label:"按时间降序",value:"按时间降序"},{label:"按时间升序",value:"按时间升序"}],
456
+ currentorder:'按时间降序',
457
+ isdelete:this.$login.r ? this.$login.r.includes("安检计划删除"):false,
458
+ checkplan : new SearchList(true),
459
+ selectPlan:{id:''},
460
+ upCheckPlan:{
461
+ f_plan_name:'',
462
+ f_safecheck_type:'',
463
+ f_plan_year:'',
464
+ f_plan_month:'',
465
+ f_checker_id:'',
466
+ isShare:'',
467
+ f_checker:'',
468
+ f_checkerstr:'',
469
+ checker:{},
470
+ checkers:[],
471
+ f_remark:''
472
+ },
473
+ isSend:false,
474
+ createPlan:{
475
+ f_plan_name:'',
476
+ f_plan_year:'',
477
+ f_plan_month:'',
478
+ isShare:'否',
479
+ f_issued:'否',
480
+ f_checker_id:null,
481
+ checker:{},
482
+ checkers:[],
483
+ f_checker:null,
484
+ f_checkerstr:null,
485
+ f_safecheck_type:'',
486
+ f_remark:''
487
+ },
488
+ planCondition:{},
489
+ showCondtion:false,
490
+ showCreatePlan:false,
491
+ showUpPlan:false,
492
+ isAndNot:[{label:'是',value:'是'},{label:'否',value:'否'}],
493
+ conIsAndNot:[{label:'是',value:'is null'},{label:'否',value:'is not null'}],
494
+ yearList:[{label:2020,value:2020},{label:2021,value:2021},{label:2022,value:2022},{label:2023,value:2023},{label:2024,value:2024},{label:2025,value:2025},{label:2026,value:2026},{label:2027,value:2027},{label:2028,value:2028},{label:2029,value:2029},{label:2030,value:2030}],
495
+ monthList:[{label:"1",value:1},{label:"2",value:2},{label:"3",value:3},{label:"4",value:4},{label:"5",value:5},{label:"6",value:6},{label:"7",value:7},{label:"8",value:8},{label:"9",value:9},{label:"10",value:10},{label:"11",value:11},{label:"12",value:12}],
496
+ safechecktype:[{label:'年度普检',value:'年度普检'}],
497
+ departmentname:this.$appdata.getParam('安检部门'),
498
+ checker:[],
499
+ checkertCon:[],
500
+ userlogin:{
501
+ id:this.$login.f.id,
502
+ name:this.$login.f.name,
503
+ orgid:this.$login.f.orgid,
504
+ orgstr:this.$login.f.orgs,
505
+ }
506
+ //需要测试直接把下面放开即可
507
+ /*userlogin:{
508
+ id:'141701',
509
+ name:'hwq',
510
+ orgid:'35526',
511
+ orgstr:'西华县天然气有限公司'
512
+ }*/
513
+ }
514
+ },
515
+ async ready(){
516
+ document.addEventListener('keydown', this.handleEnter, true);
517
+ await this.loadpage()
518
+ if (!this.userlogin.orgid){
519
+ if (this.$login.f.f_orgids){
520
+ this.userlogin.orgid = this.$login.f.f_orgids.endsWith('.')?this.$login.f.f_orgids.substring(0,this.$login.f.f_orgids.length-1):this.$login.f.f_orgids
521
+ }else {
522
+ this.userlogin.orgid = ''
523
+ }
524
+ }
525
+ },
526
+ computed: {
527
+ ntoway() {
528
+ /*/!* return AppData.getParam('安检类型')*!/*/
529
+ return this.$appdata.getParam('安检类型')
530
+ }
531
+ },
532
+ methods:{
533
+ handleEnter(e) {
534
+ if (e.key === 'Enter') {
535
+ this.$refs.user.$refs.paged.$refs.criteria.search()
536
+ }
537
+ },
538
+ /* ntoway() {
539
+ /!* return AppData.getParam('安检类型')*!/
540
+ return Vue.$appdata.getParam('安检类型')
541
+ },*/
542
+ async loadpage(){
543
+ //await this.checkplan.searchList("/api/af-safecheck/sql/预约计划下发", {},{groupitem:"",f_filialeids:"('"+this.userlogin.orgid+"')",orderitem:"f_create_time desc"})
544
+ await this.loadCheckPlan()
545
+ await this.searchChecker(this.userlogin.id)
546
+ },
547
+ getRes(obj) {
548
+ console.log("----obj"+JSON.stringify(obj.resids))
549
+ console.log(obj)
550
+ if(obj.resids.length>0 && obj.resids[0]!=this.userlogin.orgid && obj.resids[0]){
551
+ this.userlogin.orgid=obj.resids[0]
552
+ this.userlogin.orgstr=obj.res[0]
553
+ if(this.$refs.item && this.$refs.user){
554
+ this.loadpage()
555
+ this.selectPlan={id:""}
556
+ this.$refs.item.model.rows=[]
557
+ this.$refs.user.model.rows=[]
558
+ this.$refs.user.loadpage()
559
+ }
560
+ }
561
+ },
562
+ getConList(field){
563
+ return [{label:'全部',value:''}, ...this[field]]
564
+ },
565
+ selectPlanChange(plan){
566
+ this.selectPlan=plan
567
+ //this.upCheckPlan=plan
568
+ },
569
+ showUserCondition(){
570
+ this.showCondtion=true
571
+ },
572
+ showcCreatePlan(){
573
+ this.showCreatePlan=true
574
+ this.createPlan.f_plan_year=new Date().getFullYear()
575
+ this.createPlan.f_safecheck_type='年度普检'
576
+ },
577
+ cancel(){
578
+ this.showCondtion=false
579
+ this.showCreatePlan=false
580
+ this.showUpPlan=false
581
+ },
582
+ //新建计划
583
+ async addNewPlan() {
584
+ if(!this.validationCreatePlan()){
585
+ return
586
+ }
587
+ this.isSend=true
588
+ let res=await new HttpResetClass().load("POST","/api/af-safecheck/sql/getCheckplan", {data: {condition:"f_plan_name='"+this.createPlan.f_plan_name+"'",sortfield:'f_create_time desc'}})
589
+ console.log("结果-"+res.data.length)
590
+ if(res.data.length>0){
591
+ Vue.showMessage("计划名称不能重复!")
592
+ this.isSend=false
593
+ return
594
+ }
595
+ if(this.createPlan.isShare=="是"){
596
+ if(this.ismulchecker && this.createPlan.checkers.length > 0){
597
+ this.createPlan.checkers.forEach((value) => {
598
+ this.createPlan.f_checkerstr += `${value.name},`
599
+ })
600
+ this.createPlan.f_checkerstr = this.createPlan.f_checkerstr.slice(0, -1)
601
+ }
602
+ this.createPlan.f_checker_id=null
603
+ this.createPlan.f_checker=null
604
+ }else{
605
+ this.createPlan.f_checker_id=this.createPlan.checker.id
606
+ this.createPlan.f_checker=this.createPlan.checker.name
607
+ }
608
+ console.log("this.createPlan.f_checker:"+this.createPlan.f_checker)
609
+ this.createPlan.f_plan_type='预约计划'
610
+ this.createPlan.f_subcompany=this.userlogin.orgstr
611
+ this.createPlan.f_filialeid=this.userlogin.orgid
612
+ this.createPlan.f_create_operator=this.userlogin.name
613
+ this.createPlan.f_create_time=Util.toStandardTimeString()
614
+ await new HttpResetClass().load('POST',"/api/af-safecheck/logic/createCheckPlan", {"data": this.createPlan},{resolveMsg : '新建计划成功!', rejectMsg : '新建计划失败!'})
615
+ //await this.loadCheckPlan('',()=>{})
616
+ this.createPlan={
617
+ f_plan_name:'',
618
+ f_plan_year:'',
619
+ f_plan_month:'',
620
+ isShare:'否',
621
+ f_issued:'否',
622
+ f_checker_id:null,
623
+ checker:{},
624
+ checkers:[],
625
+ f_checker:null,
626
+ f_checkerstr:null,
627
+ f_safecheck_type:'',
628
+ f_create_operator:''
629
+ }
630
+ await this.loadCheckPlan()
631
+ this.isSend=false
632
+
633
+ },
634
+ validationCreatePlan(){
635
+ if(!this.createPlan.f_plan_name){
636
+ Vue.showMessage("请输入安检计划名称!")
637
+ return false
638
+ }
639
+ if(!this.createPlan.f_plan_year){
640
+ Vue.showMessage("请选择安检年份!")
641
+ return false
642
+ }
643
+ if(!this.createPlan.f_plan_month){
644
+ Vue.showMessage("请选择安检月份!")
645
+ return false
646
+ }
647
+ if(this.createPlan.isShare=="否"){
648
+ if(JSON.stringify(this.createPlan.checker)=='{}'){
649
+ Vue.showMessage("请选择安检人员!")
650
+ return false
651
+ }
652
+ }else{
653
+ this.createPlan.f_checker=''
654
+ }
655
+ if(!this.createPlan.f_safecheck_type){
656
+ Vue.showMessage("请选择安检类型!")
657
+ return false
658
+ }
659
+ return true
660
+ },
661
+ //查询安检员selectChanged
662
+ async searchChecker(){
663
+ console.log(this.$login.f.orgid)
664
+ debugger
665
+ let res=await new HttpResetClass().load('POST', '/rs/search', {
666
+ data:{
667
+ source: `root.getResourceById($${this.$login.f.orgid}$,$organization$).getSpecialResByType($user$).where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1)`,
668
+ userid: this.$login.f.id
669
+ }
670
+ }, {resolveMsg: null, rejectMsg: null})
671
+ res.data.forEach((resRow) => {
672
+ this.checker.push({label:resRow.name,value:resRow})
673
+ })
674
+ },
675
+ //设置属性值
676
+ setProperty(modulename, property, value) {
677
+ console.log(modulename+"新添--"+property+"--"+value)
678
+ if(value=='全部'){
679
+ this[modulename].search.setField(property, '')
680
+ }else{
681
+ this[modulename].search.setField(property, value)
682
+ }
683
+ },
684
+ //按条件查询所有安检计划
685
+ async loadCheckPlan() {
686
+ this.isSend=true
687
+ this.checkplan.check.checkescheckes=[]
688
+ let fieldValue=''
689
+ switch(this.currentorder){
690
+ case "按时间降序":
691
+ fieldValue='f_create_time desc'
692
+ break
693
+ case "按时间升序":
694
+ fieldValue='f_create_time'
695
+ break
696
+ }
697
+ console.log("--------fieldValue"+fieldValue)
698
+ this.cancel()
699
+ await this.checkplan.searchList("/api/af-safecheck/sql/预约计划下发",
700
+ {"f_plan_name": "f_plan_name like '%{}%'",
701
+ "f_plan_year":"f_plan_year={}",
702
+ "f_plan_month":"f_plan_month={}",
703
+ "checkerid":"f_checker_id='{}'",
704
+ "isAndNot":"f_checker {}",
705
+ "safechecktype":"f_safecheck_type='{}'",
706
+ "issude":"f_issued = '{}'",
707
+ "f_create_operator": "f_create_operator like '%{}%'",
708
+ "f_department_name": "f_department_name = '{}'",
709
+ },
710
+ {orderitem:fieldValue,
711
+ f_filialeids:"('"+this.userlogin.orgid+"')",
712
+ groupitem:""
713
+ }
714
+ )
715
+
716
+ this.isSend=false
717
+ },
718
+ //加载更多数据
719
+ async loadMore(modelname) {
720
+ this.isSend=true
721
+ await this[modelname].list.loadMore()
722
+ this.isSend=false
723
+ },
724
+ showUpPlans(row){
725
+ this.upCheckPlan.id=row.id
726
+ this.upCheckPlan.f_safecheck_type=row.f_safecheck_type
727
+ this.upCheckPlan.f_plan_name=row.f_plan_name
728
+ this.upCheckPlan.f_plan_year=row.f_plan_year
729
+ this.upCheckPlan.f_plan_month=row.f_plan_month
730
+ this.upCheckPlan.f_checker_id=row.f_checker_id?row.f_checker_id:null
731
+ this.upCheckPlan.f_checker=row.f_checker?row.f_checker:null
732
+ this.upCheckPlan.isShare=row.f_checker_id?'否':'是'
733
+ this.upCheckPlan.f_issued=row.f_issued
734
+ this.upCheckPlan.f_remark=row.f_remark
735
+ this.upCheckPlan.checker={id:row.f_checker_id,name:row.f_checker}
736
+ this.showUpPlan=true
737
+ },
738
+ async upPlan(){
739
+ if(!this.upCheckPlan.f_plan_name){
740
+ Vue.showMessage("请输入安检计划名称!")
741
+ return false
742
+ }
743
+ if(!this.upCheckPlan.f_plan_year){
744
+ Vue.showMessage("请选择安检年份!")
745
+ return false
746
+ }
747
+ if(!this.upCheckPlan.f_plan_month){
748
+ Vue.showMessage("请选择安检月份!")
749
+ return false
750
+ }
751
+ console.log(this.upCheckPlan)
752
+
753
+ if(this.upCheckPlan.isShare=="是"){
754
+ if(this.ismulchecker && this.upCheckPlan.checkers.length > 0){
755
+ this.upCheckPlan.checkers.forEach((value) => {
756
+ this.upCheckPlan.f_checkerstr += `${value.name},`
757
+ })
758
+ this.upCheckPlan.f_checkerstr = this.upCheckPlan.f_checkerstr.slice(0, -1)
759
+ }
760
+ this.upCheckPlan.f_checker_id=null
761
+ this.upCheckPlan.f_checker=null
762
+ }else{
763
+ this.upCheckPlan.f_checker_id=this.upCheckPlan.checker.id
764
+ this.upCheckPlan.f_checker=this.upCheckPlan.checker.name
765
+ }
766
+ this.isSend=true
767
+ let res=await new HttpResetClass().load("POST", "/api/af-safecheck/logic/updateCheckPlan", {
768
+ data:{
769
+ checkers:this.createPlan.checkers,
770
+ f_checkerstr:this.createPlan.f_checkerstr,
771
+ f_checker:this.upCheckPlan.f_checker,
772
+ f_safecheck_type:this.upCheckPlan.f_safecheck_type,
773
+ f_checker_id:this.upCheckPlan.f_checker_id,
774
+ f_plan_name:this.upCheckPlan.f_plan_name,
775
+ f_plan_year:this.upCheckPlan.f_plan_year,
776
+ f_plan_month:this.upCheckPlan.f_plan_month,
777
+ f_plan_id:this.upCheckPlan.id,
778
+ issued:'否',
779
+ f_remark:this.upCheckPlan.f_remark,
780
+ }
781
+ }, {resolveMsg: null, rejectMsg: null})
782
+ if(res.data.code==200){
783
+ this.$showMessage("修改成功!")
784
+ this.cancel()
785
+ await this.loadCheckPlan()
786
+ }else{
787
+ this.$showMessage("修改失败!")
788
+ }
789
+ this.isSend=false
790
+ },
791
+ //下发安检计划
792
+ async sendCheckPlan(f){
793
+ if(this.checkplan.check.checkes.length<1){
794
+ this.$showMessage("请选择要下发的安检计划")
795
+ return
796
+ }
797
+ this.isSend=true
798
+ let res=await new HttpResetClass().load("POST", "/api/af-safecheck/logic/NewBespeakCheckPlan", {
799
+ data:{
800
+ f_issued:'是',
801
+ f_issue_time:Util.toStandardTimeString(),
802
+ f_send_operator:this.userlogin.name,
803
+ param:this.checkplan.check.checkes,
804
+ }
805
+ }, {resolveMsg: null, rejectMsg: null})
806
+ if(res.data.code==200){
807
+ //Vue.showMessage("下发成功!其中有"+res.data.repet+"个计划己经是下发状态")
808
+ this.$showMessage("下发成功!")
809
+ }else{
810
+ this.$showMessage("下发失败!")
811
+ }
812
+ await this.loadCheckPlan()
813
+ this.isSend=false
814
+ },
815
+ //删除安检计划
816
+ async delCheckPlan(f){
817
+ if(this.checkplan.check.checkes.length<1){
818
+ this.$showMessage("请选择要删除的安检计划")
819
+ return
820
+ }
821
+ this.isSend=true
822
+ let res=await new HttpResetClass().load("POST", "/api/af-safecheck/logic/deleteCheckPlan", {
823
+ data:{
824
+ f_operator:this.userlogin.name,//global.login.name,
825
+ condition:"",
826
+ switchCheckAll:true,
827
+ checkAll:false,
828
+ param:this.checkplan.check.checkes,
829
+ columnName: "f_plan_id"
830
+ }
831
+ }, {resolveMsg: null, rejectMsg: null})
832
+ console.log(JSON.stringify(res))
833
+ if(res.data.code==200){
834
+ this.$showMessage("删除成功!")
835
+ }else{
836
+ this.$showMessage("删除失败!")
837
+ }
838
+ if(this.checkplan.check.checkes.indexOf(this.selectPlan.id)!= -1){
839
+ this.selectPlan={id:''}
840
+ console.log("包含了清空selectplan")
841
+ }
842
+ await this.loadCheckPlan()
843
+ this.isSend=false
844
+ },
845
+ async refresh(){
846
+ this.$refs.item.$refs.paged.$refs.criteria.search()
847
+ this.$refs.user.$refs.paged.$refs.criteria.search()
848
+ await this.loadCheckPlan()
849
+ },
850
+ async refreshPlan(){
851
+ this.$refs.item.$refs.paged.$refs.criteria.search()
852
+ await this.loadCheckPlan()
853
+ }
854
+ }
855
+ }
856
+ </script>
857
+
858
+ <style scoped>
859
+ .safe-planfont{
860
+ font-family: MicrosoftYaHei;
861
+ font-size: 15px;
862
+ font-weight: normal;
863
+ font-stretch: normal;
864
+ letter-spacing: 2px;
865
+ color: #333333;
866
+ line-height: 25px;
867
+ }
868
+ .safe-bodyfont{
869
+ font-family: MicrosoftYaHei;
870
+ font-size: 14px;
871
+ font-weight: normal;
872
+ font-stretch: normal;
873
+ letter-spacing: 0px;
874
+ color: #999999;
875
+ line-height: 30px;
876
+ }
877
+ .safe-leftplan{
878
+ height:auto;
879
+ border-bottom:1px solid #ececec;
880
+ padding: 10px 5px
881
+ }
882
+ .leftplan-center{
883
+ border-top:1px solid #ececec;
884
+ border-bottom:1px solid #ececec;
885
+ }
886
+ .safe_p{
887
+ white-space: nowrap;
888
+ overflow: hidden;
889
+ text-overflow: ellipsis;
890
+ }
891
+ .safe-div-p{
892
+ color: #4792de;
893
+ text-align: end;
894
+ padding: 8px 15px;
895
+ }
896
+ .safe_list_li:hover{
897
+ background-color: rgb(245,246,247);
898
+ }
899
+ .safe-selectplan{
900
+ pointer-events: none;
901
+ background-color: rgb(216,234,251);
902
+ }
903
+ .safe_plan_list{
904
+ height: 80%;
905
+ overflow: scroll;
906
+ }
907
+
908
+ </style>
909
+ <style>
910
+ .safe_plan_list::-webkit-scrollbar{
911
+ background-color: #F5F5F5;
912
+ }
913
+
914
+ /*定义滚动条轨道 内阴影+圆角*/
915
+ .safe_plan_list::-webkit-scrollbar-track{
916
+ -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
917
+ border-radius: 10px;
918
+ background-color: #F5F5F5;
919
+ }
920
+
921
+ /*定义滑块 内阴影+圆角*/
922
+ .safe_plan_list::-webkit-scrollbar-thumb{
923
+ border-radius: 10px;
924
+ -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
925
+ background-color: #F5F5F5;
926
+ }
927
+ </style>