safecheck-client 3.0.34-7 → 3.0.34-71

Sign up to get free protection for your applications and to get access to all the features.
Files changed (143) hide show
  1. package/package.json +1 -1
  2. package/src/App-/345/215/225/351/241/265/351/235/242/346/211/223/345/214/205/347/224/250.vue +55 -0
  3. package/src/assets/123.png +0 -0
  4. package/src/assets/f8632d3c8c4c1cb68e99da754cab1a7.png +0 -0
  5. package/src/components/LoadData.vue +62 -0
  6. package/src/components/NewDefectList/DefectListNew.vue +1 -0
  7. package/src/components/android/AndroidDefectDeal.vue +1 -0
  8. package/src/components/android/AndroidDefectDealBeforeSafe.vue +502 -0
  9. package/src/components/android/AreaSelect.vue +198 -0
  10. package/src/components/android/BuildingSelect.vue +192 -0
  11. package/src/components/android/CheckPlanSelect.vue +229 -0
  12. package/src/components/android/PaperFeedback.vue +1514 -1481
  13. package/src/components/android/PaperFeedbackTemp.vue +1470 -1470
  14. package/src/components/android/QRCode/QRCodeBinding.vue +300 -0
  15. package/src/components/android/QRCode/QRCodePage.vue +212 -0
  16. package/src/components/android/SafePlanItem.vue +509 -509
  17. package/src/components/android/SafecheckDevices.vue +1298 -1298
  18. package/src/components/android/SafecheckDevicesTemp.vue +1333 -1333
  19. package/src/components/android/SafecheckOrderV.vue +8 -12
  20. package/src/components/android/UserinfoSelect.vue +714 -0
  21. package/src/components/android/examples/SafeListExamples.vue +96 -0
  22. package/src/components/android/examples/UserExamples.vue +130 -0
  23. package/src/components/android/userinfo/SafecheckUserInfo.vue +776 -776
  24. package/src/components/rongcheng/AddPlanItem.vue +4 -0
  25. package/src/components/rongcheng/AspiratedUserInfo.vue +1 -1
  26. package/src/components/rongcheng/CheckSearchUser.vue +40 -14
  27. package/src/components/rongcheng/PaperStatem.vue +6 -1
  28. package/src/components/rongcheng/PhoneDevicesInfo.vue +16 -1
  29. package/src/components/rongcheng/PhoneUpUserinfo.vue +0 -92
  30. package/src/components/rongcheng/SafecheckOrderV.vue +12 -3
  31. package/src/components/rongcheng/SafecheckOrderVCli.vue +9 -0
  32. package/src/components/safecheckNew/android/SafecheckOrderV.vue +2731 -2731
  33. package/src/filiale/baiyin/android/AndroidDefectDeal.vue +4 -4
  34. package/src/filiale/baiyin/android/SafecheckOrderV.vue +2785 -0
  35. package/src/filiale/baiyin/android.js +1 -0
  36. package/src/filiale/baiyin/pc/CheckSearchUser.vue +2 -2
  37. package/src/filiale/baiyin/pc/DefectListNew.vue +3 -3
  38. package/src/filiale/baiyin/pc/PaperList.vue +7 -7
  39. package/src/filiale/bayan/android/PaperFeedback.vue +1651 -1651
  40. package/src/filiale/bayan/android/SafecheckDevices.vue +1303 -1303
  41. package/src/filiale/bayan/android/SafecheckOrderV.vue +52 -29
  42. package/src/filiale/bayan/android/SafecheckUserInfo.vue +863 -863
  43. package/src/filiale/bayan/pc/PaperList.vue +1 -0
  44. package/src/filiale/dexin/android/SafecheckDevices.vue +1305 -1305
  45. package/src/filiale/fugou/pc/CheckBookSearchUser.vue +35 -15
  46. package/src/filiale/hanzhong/android/PaperFeedback.vue +1477 -1477
  47. package/src/filiale/hanzhong/android/SafecheckDevices.vue +1313 -1313
  48. package/src/filiale/hanzhong/android/SafecheckUserInfo.vue +786 -786
  49. package/src/filiale/huaran/android/SafecheckOrderV.vue +2803 -0
  50. package/src/filiale/huaran/android.js +12 -0
  51. package/src/filiale/huaran/pc/CheckBook.vue +313 -0
  52. package/src/filiale/huaran/pc/CheckBookAll.vue +69 -0
  53. package/src/filiale/huaran/pc/CheckBookArea.vue +170 -0
  54. package/src/filiale/huaran/pc/CheckBookCompany.vue +166 -0
  55. package/src/filiale/huaran/pc/CheckBookDetails.vue +196 -0
  56. package/src/filiale/huaran/pc/CheckBookEntry.vue +61 -0
  57. package/src/filiale/huaran/pc/CheckBookList.vue +386 -0
  58. package/src/filiale/huaran/pc/CheckBookSearchArea.vue +564 -0
  59. package/src/filiale/huaran/pc/CheckBookSearchUnit.vue +229 -0
  60. package/src/filiale/huaran/pc/CheckBookSearchUser.vue +604 -0
  61. package/src/filiale/huaran/pc/CheckBookUser.vue +112 -0
  62. package/src/filiale/huaran/pc/PaperList.vue +822 -0
  63. package/src/filiale/huaran/pc/PlanManage.vue +887 -0
  64. package/src/filiale/huaran/pc/checkPlanList.vue +419 -0
  65. package/src/filiale/huaran/pc/checkUserList.vue +867 -0
  66. package/src/filiale/huaran/pc.js +27 -0
  67. package/src/filiale/jiaxian/android/AddPlanItem.vue +447 -0
  68. package/src/filiale/jiaxian/android/PhoneUpUserinfo.vue +1229 -0
  69. package/src/filiale/jiaxian/android/SafecheckDevices.vue +1298 -1298
  70. package/src/filiale/jiaxian/android/SafecheckOrderV.vue +2807 -0
  71. package/src/filiale/jiaxian/android/SafecheckUserInfo.vue +784 -0
  72. package/src/filiale/jiaxian/android.js +4 -0
  73. package/src/filiale/jingyang/android/PaperFeedback.vue +1493 -1493
  74. package/src/filiale/jingyang/android/SafecheckUserInfo.vue +781 -781
  75. package/src/filiale/kelai/pc/CheckPlanAreaList.vue +15 -7
  76. package/src/filiale/pingxiang/android/PaperFeedback.vue +1399 -1399
  77. package/src/filiale/qingjian/android/SafecheckDevices.vue +1269 -1269
  78. package/src/filiale/qingjian/android/SafecheckUserInfo.vue +800 -800
  79. package/src/filiale/qingtongxia/android/AddPlanItem.vue +450 -0
  80. package/src/filiale/qingtongxia/android/CurrentCreate.vue +1053 -0
  81. package/src/filiale/qingtongxia/android/PhoneUpUserinfo.vue +1230 -0
  82. package/src/filiale/qingtongxia/android/SafecheckUserInfo.vue +782 -0
  83. package/src/filiale/qingtongxia/android.js +4 -0
  84. package/src/filiale/rongchuang/android/SafecheckOrderV.vue +2696 -2696
  85. package/src/filiale/ruihua/android/SafecheckOrderV.vue +2747 -0
  86. package/src/filiale/ruihua/android/SafecheckUserInfo.vue +804 -0
  87. package/src/filiale/ruihua/android.js +11 -0
  88. package/src/filiale/shanxian/pc/checkUserList.vue +4 -4
  89. package/src/filiale/shiquan/android/SafecheckDevices.vue +1269 -1269
  90. package/src/filiale/siyang/android/AddPlanItem.vue +446 -0
  91. package/src/filiale/siyang/android/SafecheckUserInfo.vue +789 -789
  92. package/src/filiale/siyang/android.js +1 -0
  93. package/src/filiale/siyang/pc/CheckBookSearchArea.vue +645 -0
  94. package/src/filiale/siyang/pc/CheckPlanAreaList.vue +512 -0
  95. package/src/filiale/siyang/pc/CheckSearchUser.vue +982 -0
  96. package/src/filiale/siyang/pc/HiddenSituation.vue +167 -0
  97. package/src/filiale/siyang/pc/NewCheckpaper.vue +1938 -1938
  98. package/src/filiale/siyang/pc/checkPlanList.vue +367 -0
  99. package/src/filiale/siyang/pc/checkUserList.vue +790 -786
  100. package/src/filiale/siyang/pc.js +21 -16
  101. package/src/filiale/tongchuan/android/Select.vue +421 -0
  102. package/src/filiale/tongchuan/android.js +1 -0
  103. package/src/filiale/tongchuan/pc/CheckPlanCountChartArea.vue +3 -1
  104. package/src/filiale/tongchuan/pc/DefectPaperWeiXiu.vue +6 -2
  105. package/src/filiale/tongchuan/pc/HiddenSituation.vue +3 -1
  106. package/src/filiale/tongchuan/pc/NewCheckpaper.vue +13 -22
  107. package/src/filiale/tongchuan/pc/PaperDefectMain.vue +1 -1
  108. package/src/filiale/tongchuan/pc/SelectCheckPlan.vue +5 -2
  109. package/src/filiale/tongchuan/utils/EventListener.js +29 -0
  110. package/src/filiale/tongchuan/utils/coerceBoolean.js +7 -0
  111. package/src/filiale/weinan/android/SafecheckDevices.vue +1295 -1295
  112. package/src/filiale/weinan/android/SafecheckOrderV.vue +1 -1
  113. package/src/filiale/weinan/pc/CheckBookSearchUserList.vue +75 -62
  114. package/src/filiale/weinan/pc/CheckDetail.vue +11 -11
  115. package/src/filiale/weinan/pc/DefectPaperNew.vue +31 -0
  116. package/src/filiale/weinan/pc/DeviceChange.vue +1088 -0
  117. package/src/filiale/weinan/pc/checkUserList.vue +49 -113
  118. package/src/filiale/weinan/pc.js +1 -0
  119. package/src/filiale/wuan/android/SafecheckOrderV.vue +2241 -2240
  120. package/src/filiale/wuan/android/SafecheckUserInfo.vue +596 -592
  121. package/src/filiale/yangchunboneng/android/PaperFeedback.vue +1731 -1731
  122. package/src/filiale/yangchunboneng/android/SafecheckDevices.vue +1332 -1332
  123. package/src/filiale/yangchunboneng/android/SafecheckUserInfo.vue +887 -887
  124. package/src/filiale/yangchunboneng/pc/CheckBookSearchUser.vue +13 -11
  125. package/src/filiale/yangchunboneng/pc/CheckBookUser.vue +269 -269
  126. package/src/filiale/yangchunboneng/pc/CheckPlanAreaList.vue +96 -30
  127. package/src/filiale/yangchunboneng/pc/CheckSearchUser.vue +10 -10
  128. package/src/filiale/yangchunboneng/pc/DefectPaperNew.vue +1128 -1128
  129. package/src/filiale/yangchunboneng/pc/PaperDefectMain.vue +972 -972
  130. package/src/filiale/yangchunboneng/pc/PaperList.vue +773 -773
  131. package/src/filiale/yongzhou/android/PaperFeedback.vue +1519 -1519
  132. package/src/filiale/yongzhou/android/SafecheckDevices.vue +1294 -1294
  133. package/src/filiale/yongzhou/android/SafecheckUserInfo.vue +776 -776
  134. package/src/filiale/yuansheng/android/SafecheckDevices.vue +11 -1
  135. package/src/filiale/yuansheng/android/SwitchValve.vue +322 -322
  136. package/src/filiale/yuansheng/android.js +17 -17
  137. package/src/filiale/yuansheng/pc/NewCheckpaper.vue +10 -2
  138. package/src/filiale/yunchengminsheng/android/PaperFeedback.vue +1508 -1508
  139. package/src/filiale/yunchengminsheng/android/SafecheckDevices.vue +1270 -1270
  140. package/src/filiale/yunchengminsheng/android/SafecheckUserInfo.vue +784 -784
  141. package/src/main-/345/215/225/351/241/265/351/235/242/346/211/223/345/214/205/347/224/250.js +24 -0
  142. package/src/safecheck-android.js +9 -0
  143. package/src/safecheck-page.js +10 -0
@@ -0,0 +1,887 @@
1
+ <template>
2
+ <div class="binary" style="background-color: #e8f4ff">
3
+ <work-busy :is-busy="isSend"></work-busy>
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"
9
+ @click="showUserCondition()"/>
10
+ <v-select :width="'80%'" class="select select_list" :search="false" :value.sync="currentorder"
11
+ v-model="currentorder" @change="loadCheckPlan" :options='opt' close-on-select value-single>
12
+ </v-select>
13
+ </div>
14
+ <div class="row auto safe-div-p">
15
+ <span style="margin-right: 5px;cursor:default" @click="delCheckPlan()" v-if="isdelete">删除</span> <span
16
+ @click="sendCheckPlan()" style="cursor:default">下发</span></div>
17
+ </div>
18
+ <div class="leftplan-center safe_plan_list">
19
+ <div class="row safe-leftplan safe_list_li" :class="{ 'safe-selectplan': selectPlan.id == row.id }"
20
+ v-for="row in checkplan.list.data" @click="selectPlanChange(row)">
21
+ <table style="width:100%;table-layout:fixed">
22
+ <tr class="safe-planfont">
23
+ <td rowspan="6"><input type="checkbox" style="pointer-events:auto"
24
+ v-show="row.plan_count == 0 || row.f_issued == '未下发'"
25
+ onClick="event.cancelBubble = true"
26
+ :checked="checkplan.check.isChecked(row.f_check_item_id)"
27
+ @change="checkplan.check.setCheckes(row.id)"/></td>
28
+ <td colspan="6" class="safe_p">{{ row.f_plan_name }}</td>
29
+ <td colspan="2" style="text-align: center"><img width="20px" style="pointer-events:auto"
30
+ onClick="event.cancelBubble = true"
31
+ @click="showUpPlans(row)"
32
+ src="../../../../static/images/edit.png"/></td>
33
+ </tr>
34
+ <tr class="safe-bodyfont" style="color:#4792de">
35
+ <td colspan="6">{{ row.f_issued }}</td>
36
+ <td colspan="2" class="safe_p">{{ row.f_checker ? row.f_checker : '共享' }}</td>
37
+ </tr>
38
+ <tr class="safe-bodyfont">
39
+ <td colspan="4">{{ row.f_plan_year }}-{{ row.f_plan_month }}</td>
40
+ <td colspan="2">总 :</td>
41
+ <td colspan="2">{{ row.plan_count }}</td>
42
+ </tr>
43
+ <tr class="safe-bodyfont">
44
+ <td colspan="2">未检 :</td>
45
+ <td colspan="2">{{ row.unchecked }}</td>
46
+ <td colspan="2">已检 :</td>
47
+ <td colspan="2">{{ row.checked }}</td>
48
+ </tr>
49
+ <tr class="safe-bodyfont" v-if="row.f_create_time">
50
+ <td colspan="3">创建时间 :</td>
51
+ <td colspan="5" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;"
52
+ :title="row.f_create_time">{{ row.f_create_time }}
53
+ </td>
54
+ </tr>
55
+ <tr class="safe-bodyfont" v-if="row.f_safecheck_type">
56
+ <td colspan="3">安检类型 :</td>
57
+ <td colspan="5" style="white-space: nowrap;overflow: hidden;text-overflow: ellipsis;"
58
+ :title="row.f_safecheck_type">{{ row.f_safecheck_type }}
59
+ </td>
60
+ </tr>
61
+ </table>
62
+ </div>
63
+ </div>
64
+ <div style="height: 11%">
65
+ <div class="row auto leftplan-center" style="padding: 8px">
66
+ <div class="col-sm-6" style="">
67
+ <span>共{{ checkplan.list.count }}条</span>
68
+ </div>
69
+ <div class="col-sm-6" style="text-align: end">
70
+ <span @click="loadMore('checkplan')"><img src="../../../../static/images/doubledown.png"/>&ensp;更多</span>
71
+ </div>
72
+ </div>
73
+ <div class="row auto" style="padding: 10px;text-align: center">
74
+ <img src="../../../../static/images/addnew.png" @click="showcCreatePlan()"/>
75
+ </div>
76
+ </div>
77
+ </div>
78
+ <!--右侧列表**************************************************************************-->
79
+ <div class="binary-right" style="width: 84%;overflow: auto">
80
+ <div style="height: 5%">
81
+ <div class="col-sm-4">
82
+ <label class="font_normal_body">公&emsp;&emsp;司</label>
83
+ <right-tree-safe :islist="false" :width="'60%'" @re-res="getRes"></right-tree-safe>
84
+ </div>
85
+ </div>
86
+ <div style="height: 95%">
87
+ <div style="height: 50%" class="leftplan-center">
88
+ <check-plan-list :selectplan="selectPlan" :userlogin="userlogin" v-ref:item></check-plan-list>
89
+ </div>
90
+ <div style="height: 50%">
91
+ <check-user-list :selectplan="selectPlan" :userlogin="userlogin" v-ref:user></check-user-list>
92
+ </div>
93
+ </div>
94
+ </div>
95
+ <modal :show.sync="showCondtion" v-ref:modal :width="'50%'" :backdrop="false">
96
+ <div slot="modal-header" class="modal-header">
97
+ <h4 class="modal-title">
98
+ 任务查询条件
99
+ </h4>
100
+ </div>
101
+ <div slot="modal-body" class="modal-body">
102
+ <div class="row">
103
+ <div class="form-group col-sm-4">
104
+ <label class="font_normal_body">任务名称:</label>
105
+ <input type="text" class="input_search" v-model="planCondition.f_plan_name"
106
+ @change="setProperty('checkplan', 'f_plan_name', planCondition.f_plan_name)" style="width: 60%"
107
+ placeholder='请输入'/>
108
+ </div>
109
+ <div class="form-group col-sm-4">
110
+ <label class="font_normal_body">任务年份:</label>
111
+ <v-select class="select select_list" :value.sync="planCondition.f_plan_year"
112
+ v-model="planCondition.f_plan_year"
113
+ @change="setProperty('checkplan', 'f_plan_year', planCondition.f_plan_year)" :search="false"
114
+ :options='getConList("yearList")' placeholder='请选择' close-on-select value-single>
115
+ </v-select>
116
+ </div>
117
+ <div class="form-group col-sm-4">
118
+ <label class="font_normal_body">任务月份:</label>
119
+ <v-select class="select select_list" :value.sync="planCondition.f_plan_month"
120
+ v-model="planCondition.f_plan_month"
121
+ @change="setProperty('checkplan', 'f_plan_month', planCondition.f_plan_month)" :search="false"
122
+ :options='getConList("monthList")' placeholder='请选择' close-on-select value-single>
123
+ </v-select>
124
+ </div>
125
+ <div class="form-group col-sm-4">
126
+ <label class="font_normal_body">是否共享:</label>
127
+ <v-select class="select select_list" :value.sync="planCondition.isShare" v-model="planCondition.isShare"
128
+ @change="setProperty('checkplan', 'isAndNot', planCondition.isShare)"
129
+ :options='getConList("conIsAndNot")'
130
+ :search="false" placeholder='请选择' close-on-select value-single>
131
+ </v-select>
132
+ </div>
133
+ <div class="form-group col-sm-4">
134
+ <label class="font_normal_body">是否下发:</label>
135
+ <v-select class="select select_list" :value.sync="planCondition.issued" v-model="planCondition.issued"
136
+ :options='getConList("isAndNot")'
137
+ @change="setProperty('checkplan', 'issude', planCondition.issued)"
138
+ placeholder='请选择' :search="false" close-on-select value-single>
139
+ </v-select>
140
+ </div>
141
+ <div class="form-group col-sm-4">
142
+ <label class="font_normal_body">安&ensp;检&ensp;员:</label>
143
+ <v-select class="select select_list" :value.sync="planCondition.f_checker" v-model="planCondition.f_checker"
144
+ @change="setProperty('checkplan', 'checkerid', planCondition.f_checker.id)"
145
+ :options='getConList("checker")'
146
+ placeholder='请选择' close-on-select value-single>
147
+ </v-select>
148
+ </div>
149
+
150
+ <div class="form-group col-sm-4">
151
+ <label class="font_normal_body">安检类型:</label>
152
+ <v-select class="select select_list" :value.sync="planCondition.f_safecheck_type"
153
+ v-model="planCondition.f_safecheck_type"
154
+ @change="setProperty('checkplan', 'safechecktype', planCondition.f_safecheck_type)"
155
+ :options='getConList("safechecktype")' placeholder='请选择' :search="false" close-on-select
156
+ value-single>
157
+ </v-select>
158
+ </div>
159
+ <div class="form-group col-sm-4">
160
+ <label class="font_normal_body">创&ensp;建&ensp;人:</label>
161
+ <input type="text" class="input_search" v-model="planCondition.f_create_operator"
162
+ @change="setProperty('checkplan', 'f_create_operator', planCondition.f_create_operator)"
163
+ style="width: 60%"
164
+ placeholder="创建人"/>
165
+ </div>
166
+ </div>
167
+ </div>
168
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
169
+ <button class="button_search" @click="loadCheckPlan" style="margin-right: 15px">查询</button>
170
+ <button class="button_search" @click="cancel">取消</button>
171
+ </div>
172
+ </modal>
173
+ <modal :show.sync="showCreatePlan" v-ref:modal1 :width="'50%'" :backdrop="false">
174
+ <div slot="modal-header" class="modal-header">
175
+ <h4 class="modal-title">
176
+ 新建任务
177
+ </h4>
178
+ </div>
179
+ <div slot="modal-body" class="modal-body">
180
+ <div class="row">
181
+ <div class="form-group col-sm-4">
182
+ <label class="font_normal_body">任务名称:</label>
183
+ <input type="text" class="input_search" v-model="createPlan.f_plan_name" style="width: 60%"
184
+ placeholder='请输入'/>
185
+ </div>
186
+ <div class="form-group col-sm-4">
187
+ <label class="font_normal_body">任务年份:</label>
188
+ <v-select class="select select_list" :value.sync="createPlan.f_plan_year" v-model="createPlan.f_plan_year"
189
+ :search="false" :options='yearList' placeholder='请选择' close-on-select value-single>
190
+ </v-select>
191
+ </div>
192
+ <div class="form-group col-sm-4">
193
+ <label class="font_normal_body">任务月份:</label>
194
+ <v-select class="select select_list" :value.sync="createPlan.f_plan_month" v-model="createPlan.f_plan_month"
195
+ :search="false" :options='monthList' placeholder='请选择' close-on-select value-single>
196
+ </v-select>
197
+ </div>
198
+ <div class="form-group col-sm-4">
199
+ <label class="font_normal_body">所属计划:</label>
200
+ <v-select class="select select_list" :value.sync="createPlan.f_total_task"
201
+ v-model="createPlan.f_total_task" :search="false" :options='totalTaskList'
202
+ placeholder='请选择'
203
+ close-on-select value-single>
204
+ </v-select>
205
+ </div>
206
+ <div class="form-group col-sm-4">
207
+ <label class="font_normal_body">是否共享:</label>
208
+ <v-select class="select select_list" :search="false" :value.sync="createPlan.isShare"
209
+ v-model="createPlan.isShare" :options='isAndNot' placeholder='请选择' close-on-select
210
+ value-single>
211
+ </v-select>
212
+ </div>
213
+ <div class="form-group col-sm-4" v-show="createPlan.isShare == '否'">
214
+ <label class="font_normal_body">部&ensp;&ensp;&ensp;&ensp;门:</label>
215
+ <v-select class="select select_list" :search="false" :value.sync="createPlan.f_department_id"
216
+ v-model="createPlan.f_department_id" :options='departments' @change="departmentChange"
217
+ placeholder='请选择'
218
+ close-on-select value-single>
219
+ </v-select>
220
+ </div>
221
+ <div class="form-group col-sm-4" v-show="createPlan.isShare == '否'">
222
+ <label class="font_normal_body">安&ensp;检&ensp;员:</label>
223
+ <v-select class="select select_list" :value.sync="createPlan.checker" v-model="createPlan.checker"
224
+ :options='checker' placeholder='请选择' close-on-select value-single>
225
+ </v-select>
226
+ </div>
227
+
228
+ <div class="form-group col-sm-4">
229
+ <label class="font_normal_body">安检类型:</label>
230
+ <v-select class="select select_list" :value.sync="createPlan.f_safecheck_type"
231
+ v-model="createPlan.f_safecheck_type" :search="false" :options='ntoway' placeholder='请选择'
232
+ close-on-select
233
+ value-single>
234
+ </v-select>
235
+ </div>
236
+ <div class="form-group col-sm-4">
237
+ <label class="font_normal_body">共享公司:</label>
238
+ <v-select class="select select_list" :value.sync="createPlan.f_share_type" v-model="createPlan.f_share_type"
239
+ :search="false" :options='isAndNot' placeholder='请选择' close-on-select value-single>
240
+ </v-select>
241
+ </div>
242
+ <div class="form-group col-sm-4" v-if="createPlan.f_share_type == '是'">
243
+ <label class="font_normal_body">分公司名称:</label>
244
+ <v-select class="select select_list" :value.sync="createPlan.f_share_company_name"
245
+ v-model="createPlan.f_share_company_name" :search="false" :options='companyNameList'
246
+ placeholder='请选择'
247
+ close-on-select value-single>
248
+ </v-select>
249
+ </div>
250
+ </div>
251
+ </div>
252
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
253
+ <button class="button_search" style="margin-right: 15px" @click="addNewPlan()">创建任务</button>
254
+ <button class="button_search" @click="cancel">取消</button>
255
+ </div>
256
+ </modal>
257
+ <modal :show.sync="showUpPlan" v-ref:modal2 :backdrop="false">
258
+ <div slot="modal-header" class="modal-header">
259
+ <h4 class="modal-title">
260
+ 修改任务
261
+ </h4>
262
+ </div>
263
+ <div slot="modal-body" class="modal-body">
264
+ <div class="row">
265
+ <div class="form-group col-sm-4">
266
+ <label class="font_normal_body">任务名称:</label>
267
+ <input type="text" class="input_search" v-model="upCheckPlan.f_plan_name" style="width: 60%"/>
268
+ </div>
269
+ <div class="form-group col-sm-4">
270
+ <label class="font_normal_body">任务年份:</label>
271
+ <v-select class="select select_list" :value.sync="upCheckPlan.f_plan_year" v-model="upCheckPlan.f_plan_year"
272
+ :search="false" :value="upCheckPlan.f_plan_year" :options='yearList' close-on-select value-single>
273
+ </v-select>
274
+ </div>
275
+ <div class="form-group col-sm-4">
276
+ <label class="font_normal_body">任务月份:</label>
277
+ <v-select class="select select_list" :value.sync="upCheckPlan.f_plan_month"
278
+ v-model="upCheckPlan.f_plan_month" :options='monthList' close-on-select value-single>
279
+ </v-select>
280
+ </div>
281
+ <div class="form-group col-sm-4">
282
+ <label class="font_normal_body">是否共享:</label>
283
+ <v-select class="select select_list" :search="false" :value.sync="upCheckPlan.isShare"
284
+ v-model="upCheckPlan.isShare" :options='isAndNot' placeholder='请选择' close-on-select
285
+ value-single>
286
+ </v-select>
287
+ </div>
288
+ <div class="form-group col-sm-4" v-show="upCheckPlan.isShare == '否'">
289
+ <label class="font_normal_body">安&ensp;检&ensp;员:</label>
290
+ <v-select class="select select_list" :value.sync="upCheckPlan.checker" v-model="upCheckPlan.checker"
291
+ :options='checker' close-on-select value-single>
292
+ </v-select>
293
+ </div>
294
+
295
+ <div class="form-group col-sm-4">
296
+ <label class="font_normal_body">安检类型:</label>
297
+ <v-select class="select select_list" :value.sync="upCheckPlan.f_safecheck_type"
298
+ v-model="upCheckPlan.f_safecheck_type" :options='ntoway' close-on-select value-single>
299
+ </v-select>
300
+ </div>
301
+ </div>
302
+ </div>
303
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
304
+ <button class="button_search" style="margin-right: 15px" @click="upPlan()">保存修改</button>
305
+ <button class="button_search" @click="cancel">取消</button>
306
+ </div>
307
+ </modal>
308
+ </div>
309
+ </template>
310
+
311
+ <script>
312
+ import {SearchList, HttpResetClass, PagedList} from "vue-client";
313
+ import * as Util from "../../Util";
314
+ import Vue from "vue";
315
+
316
+ export default {
317
+ name: "PlanManage",
318
+ title: '任务管理',
319
+ data() {
320
+ return {
321
+ a: '1',
322
+ totalTaskList: [],
323
+ departments: [],
324
+ companyNameList: [],
325
+ opt: [{label: "按时间降序", value: "按时间降序"}, {label: "按时间升序", value: "按时间升序"}],
326
+ currentorder: '按时间降序',
327
+ isdelete: this.$login.r ? this.$login.r.includes("安检任务删除") : false,
328
+ checkplan: new SearchList(true),
329
+ selectPlan: {id: ''},
330
+ upCheckPlan: {
331
+ f_plan_name: '',
332
+ f_safecheck_type: '',
333
+ f_plan_year: '',
334
+ f_plan_month: '',
335
+ f_checker_id: '',
336
+ isShare: '',
337
+ f_checker: '',
338
+ checker: {}
339
+ },
340
+ isSend: false,
341
+ createPlan: {
342
+ f_plan_name: '',
343
+ f_total_task_id:'',
344
+ f_plan_year: '',
345
+ f_department_id: '',
346
+ f_plan_month: '',
347
+ isShare: '否',
348
+ f_share_type: '否',
349
+ f_share_company_name: '',
350
+ f_total_task: '',
351
+ f_issued: '否',
352
+ f_checker_id: null,
353
+ checker: {},
354
+ f_checker: null,
355
+ f_safecheck_type: '',
356
+ },
357
+ planCondition: {},
358
+ showCondtion: false,
359
+ showCreatePlan: false,
360
+ showUpPlan: false,
361
+ isAndNot: [{label: '是', value: '是'}, {label: '否', value: '否'}],
362
+ conIsAndNot: [{label: '是', value: 'is null'}, {label: '否', value: 'is not null'}],
363
+ yearList: [{label: 2020, value: 2020}, {label: 2021, value: 2021}, {label: 2022, value: 2022}, {
364
+ label: 2023,
365
+ value: 2023
366
+ }, {label: 2024, value: 2024}, {label: 2025, value: 2025}, {label: 2026, value: 2026}, {
367
+ label: 2027,
368
+ value: 2027
369
+ }, {label: 2028, value: 2028}, {label: 2029, value: 2029}, {label: 2030, value: 2030}],
370
+ monthList: [{label: "1", value: 1}, {label: "2", value: 2}, {label: "3", value: 3}, {
371
+ label: "4",
372
+ value: 4
373
+ }, {label: "5", value: 5}, {label: "6", value: 6}, {label: "7", value: 7}, {label: "8", value: 8}, {
374
+ label: "9",
375
+ value: 9
376
+ }, {label: "10", value: 10}, {label: "11", value: 11}, {label: "12", value: 12}],
377
+ safechecktype: [{label: '年度普检', value: '年度普检'}],
378
+ checker: [],
379
+ checkertCon: [],
380
+ userlogin: {
381
+ id: this.$login.f.id,
382
+ name: this.$login.f.name,
383
+ orgid: this.$login.f.orgid,
384
+ orgstr: this.$login.f.orgs,
385
+ }
386
+ //需要测试直接把下面放开即可
387
+ /*userlogin:{
388
+ id:'141701',
389
+ name:'hwq',
390
+ orgid:'35526',
391
+ orgstr:'西华县天然气有限公司'
392
+ }*/
393
+ }
394
+ },
395
+ async ready() {
396
+ await this.loadpage()
397
+ if (!this.userlogin.orgid) {
398
+ if (this.$login.f.f_orgids) {
399
+ 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
400
+ } else {
401
+ this.userlogin.orgid = ''
402
+ }
403
+ }
404
+ },
405
+ computed: {
406
+ ntoway() {
407
+ /*/!* return AppData.getParam('安检类型')*!/*/
408
+ return this.$appdata.getParam('安检类型')
409
+ }
410
+ },
411
+ methods: {
412
+ async departmentChange(val) {
413
+ let res = await new HttpResetClass().load('POST', `/rs/sql/tel_singleTable_OrderBy`, {
414
+ data: {
415
+ items: '*',
416
+ tablename: 't_user',
417
+ condition: `parentid = '${val}'`,
418
+ orderitem: '1'
419
+ }
420
+ }, {resolveMsg: null, rejectMsg: null})
421
+ this.checker = []
422
+ this.checker.push({
423
+ label: '请选择',
424
+ value: ''
425
+ })
426
+ res.data.forEach(ress => {
427
+ this.checker.push({
428
+ label: ress.name,
429
+ value: {name: ress.name, id: ress.id}
430
+ })
431
+ })
432
+ },
433
+ async loadpage() {
434
+ await this.loadCheckPlan()
435
+ await this.loadTotalTaskList()
436
+ await this.loadDepartments()
437
+ await this.loadCompanyNameList()
438
+ },
439
+ async loadCompanyNameList() {
440
+ let res = await new HttpResetClass().load('POST', `/rs/sql/tel_singleTable_OrderBy`, {
441
+ data: {
442
+ items: '*',
443
+ tablename: 't_organization',
444
+ condition: `1=1`,
445
+ orderitem: '1'
446
+ }
447
+ }, {resolveMsg: null, rejectMsg: null})
448
+ this.companyNameList = []
449
+ this.companyNameList.push({
450
+ label: '请选择',
451
+ value: ''
452
+ })
453
+ res.data.forEach(ress => {
454
+ this.companyNameList.push({
455
+ label: ress.name,
456
+ value: ress.name
457
+ })
458
+ })
459
+ },
460
+ async loadDepartments() {
461
+ let res = await new HttpResetClass().load('POST', `/rs/sql/tel_singleTable_OrderBy`, {
462
+ data: {
463
+ items: '*',
464
+ tablename: 't_department',
465
+ condition: `id in (select parentid from t_user group by parentid)`,
466
+ orderitem: '1'
467
+ }
468
+ }, {resolveMsg: null, rejectMsg: null})
469
+ this.departments = []
470
+ this.departments.push({
471
+ label: '请选择',
472
+ value: ''
473
+ })
474
+ res.data.forEach(ress => {
475
+ this.departments.push({
476
+ label: ress.name,
477
+ value: ress.id
478
+ })
479
+ })
480
+ },
481
+ async loadTotalTaskList() {
482
+ let res = await new HttpResetClass().load('POST', `/rs/sql/tel_singleTable_OrderBy`, {
483
+ data: {
484
+ items: '*',
485
+ tablename: 't_total_task',
486
+ // condition: `1=1 and f_company_branch = '${this.$login.f.orgid}'`,
487
+ condition: `1=1`,
488
+ orderitem: 'id'
489
+ }
490
+ }, {resolveMsg: null, rejectMsg: null})
491
+ this.totalTaskList = []
492
+ this.totalTaskList.push({
493
+ label: '请选择',
494
+ value: ''
495
+ })
496
+ res.data.forEach(ress => {
497
+ this.totalTaskList.push({
498
+ label: ress.f_plan_name,
499
+ value: ress
500
+ })
501
+ })
502
+ },
503
+ getRes(obj) {
504
+ console.log("----obj" + JSON.stringify(obj.resids))
505
+ console.log(obj)
506
+ if (obj.resids.length > 0 && obj.resids[0] != this.userlogin.orgid && obj.resids[0]) {
507
+ this.userlogin.orgid = obj.resids[0]
508
+ this.userlogin.orgstr = obj.res[0]
509
+ if (this.$refs.item && this.$refs.user) {
510
+ this.loadpage()
511
+ this.selectPlan = {id: ""}
512
+ this.$refs.item.model.rows = []
513
+ this.$refs.user.model.rows = []
514
+ this.$refs.user.loadpage()
515
+ }
516
+ }
517
+ },
518
+ getConList(field) {
519
+ return [{label: '全部', value: ''}, ...this[field]]
520
+ },
521
+ selectPlanChange(plan) {
522
+ this.selectPlan = plan
523
+ //this.upCheckPlan=plan
524
+ },
525
+ showUserCondition() {
526
+ this.showCondtion = true
527
+ },
528
+ showcCreatePlan() {
529
+ this.showCreatePlan = true
530
+ },
531
+ cancel() {
532
+ this.showCondtion = false
533
+ this.showCreatePlan = false
534
+ this.showUpPlan = false
535
+ },
536
+ //新建任务
537
+ async addNewPlan() {
538
+ if (!this.validationCreatePlan()) {
539
+ return
540
+ }
541
+ this.isSend = true
542
+ let res = await new HttpResetClass().load("POST", "/rs/sql/getCheckplan", {
543
+ data: {
544
+ condition: "f_plan_name='" + this.createPlan.f_plan_name + "'",
545
+ sortfield: 'f_create_time desc'
546
+ }
547
+ })
548
+ console.log("结果-" + res.data.length)
549
+ if (res.data.length > 0) {
550
+ Vue.showMessage("任务名称不能重复!")
551
+ this.isSend = false
552
+ return
553
+ }
554
+ if (this.createPlan.isShare == "是") {
555
+ this.createPlan.f_checker_id = null
556
+ this.createPlan.f_checker = null
557
+ } else {
558
+ this.createPlan.f_checker_id = this.createPlan.checker.id
559
+ this.createPlan.f_checker = this.createPlan.checker.name
560
+ }
561
+ if (this.createPlan.f_total_task){
562
+ this.createPlan.f_total_task_id = this.createPlan.f_total_task.id
563
+ }
564
+ console.log("this.createPlan.f_checker:" + this.createPlan.f_checker)
565
+ this.createPlan.f_plan_type = '预约计划'
566
+ this.createPlan.f_subcompany = this.userlogin.orgstr
567
+ this.createPlan.f_filialeid = this.userlogin.orgid
568
+ this.createPlan.f_create_operator = this.userlogin.name
569
+ this.createPlan.f_create_time = Util.toStandardTimeString()
570
+ await new HttpResetClass().load('POST', "/rs/logic/createCheckPlan", {"data": this.createPlan}, {
571
+ resolveMsg: '新建任务成功!',
572
+ rejectMsg: '新建任务失败!'
573
+ })
574
+ //await this.loadCheckPlan('',()=>{})
575
+ this.createPlan = {
576
+ f_plan_name: '',
577
+ f_plan_year: '',
578
+ f_plan_month: '',
579
+ isShare: '否',
580
+ f_issued: '否',
581
+ f_checker_id: null,
582
+ checker: {},
583
+ f_checker: null,
584
+ f_safecheck_type: '',
585
+ f_create_operator: ''
586
+ }
587
+ await this.loadCheckPlan()
588
+ this.isSend = false
589
+
590
+ },
591
+ validationCreatePlan() {
592
+ if (!this.createPlan.f_plan_name) {
593
+ Vue.showMessage("请输入安检任务名称!")
594
+ return false
595
+ }
596
+ if (!this.createPlan.f_plan_year) {
597
+ Vue.showMessage("请选择安检年份!")
598
+ return false
599
+ }
600
+ if (!this.createPlan.f_plan_month) {
601
+ Vue.showMessage("请选择安检月份!")
602
+ return false
603
+ }
604
+ if (this.createPlan.isShare == "否") {
605
+ if (JSON.stringify(this.createPlan.checker) == '{}') {
606
+ Vue.showMessage("请选择安检人员!")
607
+ return false
608
+ }
609
+ } else {
610
+ this.createPlan.f_checker = ''
611
+ }
612
+ if (!this.createPlan.f_safecheck_type) {
613
+ Vue.showMessage("请选择安检类型!")
614
+ return false
615
+ }
616
+ return true
617
+ },
618
+ //查询安检员selectChanged
619
+ async searchChecker(id) {
620
+ let res = await new HttpResetClass().load('POST', '/rs/search', {
621
+ data: {
622
+ source: `this.getSpecialResByType($user$).where(row.getAttributes().get($rolestr$)!=null ).where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1)`,
623
+ userid: this.userlogin.orgid
624
+ }
625
+ }, {resolveMsg: null, rejectMsg: null})
626
+ let arr = []
627
+ res.data.forEach((resRow) => {
628
+ if (!arr.includes(resRow.name) && resRow.state == '在职') {
629
+ arr.push(resRow.name)
630
+ this.checker.push({label: resRow.name, value: resRow})
631
+ }
632
+ })
633
+ },
634
+ //设置属性值
635
+ setProperty(modulename, property, value) {
636
+ console.log(modulename + "新添--" + property + "--" + value)
637
+ if (value == '全部') {
638
+ this[modulename].search.setField(property, '')
639
+ } else {
640
+ this[modulename].search.setField(property, value)
641
+ }
642
+ },
643
+ //按条件查询所有安检任务
644
+ async loadCheckPlan() {
645
+ this.isSend = true
646
+ this.checkplan.check.checkes = []
647
+ let fieldValue = ''
648
+ switch (this.currentorder) {
649
+ case "按时间降序":
650
+ fieldValue = 'f_create_time desc'
651
+ break
652
+ case "按时间升序":
653
+ fieldValue = 'f_create_time'
654
+ break
655
+ }
656
+ console.log("--------fieldValue" + fieldValue)
657
+ this.cancel()
658
+ await this.checkplan.searchList("/rs/sql/预约计划下发",
659
+ {
660
+ "f_plan_name": "f_plan_name like '%{}%'",
661
+ "f_plan_year": "f_plan_year={}",
662
+ "f_plan_month": "f_plan_month={}",
663
+ "checkerid": "f_checker_id='{}'",
664
+ "isAndNot": "f_checker {}",
665
+ "safechecktype": "f_safecheck_type='{}'",
666
+ "issude": "f_issued = '{}'",
667
+ "f_create_operator": "f_create_operator like '%{}%'"
668
+ },
669
+ {
670
+ orderitem: fieldValue,
671
+ f_filialeids: "('" + this.userlogin.orgid + "')",
672
+ groupitem: ""
673
+ }
674
+ )
675
+
676
+ this.isSend = false
677
+ },
678
+ //加载更多数据
679
+ async loadMore(modelname) {
680
+ this.isSend = true
681
+ await this[modelname].list.loadMore()
682
+ this.isSend = false
683
+ },
684
+ showUpPlans(row) {
685
+ this.upCheckPlan.id = row.id
686
+ this.upCheckPlan.f_safecheck_type = row.f_safecheck_type
687
+ this.upCheckPlan.f_plan_name = row.f_plan_name
688
+ this.upCheckPlan.f_plan_year = row.f_plan_year
689
+ this.upCheckPlan.f_plan_month = row.f_plan_month
690
+ this.upCheckPlan.f_checker_id = row.f_checker_id ? row.f_checker_id : null
691
+ this.upCheckPlan.f_checker = row.f_checker ? row.f_checker : null
692
+ this.upCheckPlan.isShare = row.f_checker_id ? '否' : '是'
693
+ this.upCheckPlan.f_issued = row.f_issued
694
+ this.upCheckPlan.checker = {id: row.f_checker_id, name: row.f_checker}
695
+ this.showUpPlan = true
696
+ },
697
+ async upPlan() {
698
+ if (this.upCheckPlan.f_issued == '已下发') {
699
+ this.$showMessage("该任务已下发,无法进行修改!")
700
+ return
701
+ }
702
+ if (!this.upCheckPlan.f_plan_name) {
703
+ Vue.showMessage("请输入安检任务名称!")
704
+ return false
705
+ }
706
+ if (!this.upCheckPlan.f_plan_year) {
707
+ Vue.showMessage("请选择安检年份!")
708
+ return false
709
+ }
710
+ if (!this.upCheckPlan.f_plan_month) {
711
+ Vue.showMessage("请选择安检月份!")
712
+ return false
713
+ }
714
+ console.log(this.upCheckPlan)
715
+
716
+ if (this.upCheckPlan.isShare == "是") {
717
+ this.upCheckPlan.f_checker_id = null
718
+ this.upCheckPlan.f_checker = null
719
+ } else {
720
+ this.upCheckPlan.f_checker_id = this.upCheckPlan.checker.id
721
+ this.upCheckPlan.f_checker = this.upCheckPlan.checker.name
722
+ }
723
+ this.isSend = true
724
+ let res = await new HttpResetClass().load("POST", "/rs/logic/updateCheckPlan", {
725
+ data: {
726
+ f_checker: this.upCheckPlan.f_checker,
727
+ f_safecheck_type: this.upCheckPlan.f_safecheck_type,
728
+ f_checker_id: this.upCheckPlan.f_checker_id,
729
+ f_plan_name: this.upCheckPlan.f_plan_name,
730
+ f_plan_year: this.upCheckPlan.f_plan_year,
731
+ f_plan_month: this.upCheckPlan.f_plan_month,
732
+ f_plan_id: this.upCheckPlan.id
733
+ }
734
+ }, {resolveMsg: null, rejectMsg: null})
735
+ if (res.data.code == 200) {
736
+ this.$showMessage("修改成功!")
737
+ this.cancel()
738
+ await this.loadCheckPlan()
739
+ } else {
740
+ this.$showMessage("修改失败!")
741
+ }
742
+ this.isSend = false
743
+ },
744
+ //下发安检任务
745
+ async sendCheckPlan(f) {
746
+ if (this.checkplan.check.checkes.length < 1) {
747
+ this.$showMessage("请选择要下发的安检任务")
748
+ return
749
+ }
750
+ this.isSend = true
751
+ let res = await new HttpResetClass().load("POST", "/rs/logic/NewBespeakCheckPlan", {
752
+ data: {
753
+ f_issued: '是',
754
+ f_issue_time: Util.toStandardTimeString(),
755
+ f_send_operator: this.userlogin.name,
756
+ param: this.checkplan.check.checkes,
757
+ }
758
+ }, {resolveMsg: null, rejectMsg: null})
759
+ if (res.data.code == 200) {
760
+ //Vue.showMessage("下发成功!其中有"+res.data.repet+"个任务己经是下发状态")
761
+ this.$showMessage("下发成功!")
762
+ } else {
763
+ this.$showMessage("下发失败!")
764
+ }
765
+ await this.loadCheckPlan()
766
+ this.isSend = false
767
+ },
768
+ //删除安检任务
769
+ async delCheckPlan(f) {
770
+ if (this.checkplan.check.checkes.length < 1) {
771
+ this.$showMessage("请选择要删除的安检任务")
772
+ return
773
+ }
774
+ this.isSend = true
775
+ let res = await new HttpResetClass().load("POST", "/rs/logic/deleteCheckPlan", {
776
+ data: {
777
+ f_operator: this.userlogin.name,//global.login.name,
778
+ condition: "",
779
+ switchCheckAll: true,
780
+ checkAll: false,
781
+ param: this.checkplan.check.checkes,
782
+ columnName: "f_plan_id"
783
+ }
784
+ }, {resolveMsg: null, rejectMsg: null})
785
+ console.log(JSON.stringify(res))
786
+ if (res.data.code == 200) {
787
+ this.$showMessage("删除成功!")
788
+ } else {
789
+ this.$showMessage("删除失败!")
790
+ }
791
+ if (this.checkplan.check.checkes.indexOf(this.selectPlan.id) != -1) {
792
+ this.selectPlan = {id: ''}
793
+ console.log("包含了清空selectplan")
794
+ }
795
+ await this.loadCheckPlan()
796
+ this.isSend = false
797
+ },
798
+ async refresh() {
799
+ this.$refs.item.$refs.paged.$refs.criteria.search()
800
+ this.$refs.user.$refs.paged.$refs.criteria.search()
801
+ await this.loadCheckPlan()
802
+ },
803
+ async refreshPlan() {
804
+ this.$refs.item.$refs.paged.$refs.criteria.search()
805
+ await this.loadCheckPlan()
806
+ }
807
+ }
808
+ }
809
+ </script>
810
+
811
+ <style scoped>
812
+ .safe-planfont {
813
+ font-family: MicrosoftYaHei;
814
+ font-size: 15px;
815
+ font-weight: normal;
816
+ font-stretch: normal;
817
+ letter-spacing: 2px;
818
+ color: #333333;
819
+ line-height: 25px;
820
+ }
821
+
822
+ .safe-bodyfont {
823
+ font-family: MicrosoftYaHei;
824
+ font-size: 14px;
825
+ font-weight: normal;
826
+ font-stretch: normal;
827
+ letter-spacing: 0px;
828
+ color: #999999;
829
+ line-height: 30px;
830
+ }
831
+
832
+ .safe-leftplan {
833
+ height: auto;
834
+ border-bottom: 1px solid #ececec;
835
+ padding: 10px 5px
836
+ }
837
+
838
+ .leftplan-center {
839
+ border-top: 1px solid #ececec;
840
+ border-bottom: 1px solid #ececec;
841
+ }
842
+
843
+ .safe_p {
844
+ white-space: nowrap;
845
+ overflow: hidden;
846
+ text-overflow: ellipsis;
847
+ }
848
+
849
+ .safe-div-p {
850
+ color: #4792de;
851
+ text-align: end;
852
+ padding: 8px 15px;
853
+ }
854
+
855
+ .safe_list_li:hover {
856
+ background-color: rgb(245, 246, 247);
857
+ }
858
+
859
+ .safe-selectplan {
860
+ pointer-events: none;
861
+ background-color: rgb(216, 234, 251);
862
+ }
863
+
864
+ .safe_plan_list {
865
+ height: 80%;
866
+ overflow: scroll;
867
+ }
868
+ </style>
869
+ <style>
870
+ .safe_plan_list::-webkit-scrollbar {
871
+ background-color: #F5F5F5;
872
+ }
873
+
874
+ /*定义滚动条轨道 内阴影+圆角*/
875
+ .safe_plan_list::-webkit-scrollbar-track {
876
+ -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
877
+ border-radius: 10px;
878
+ background-color: #F5F5F5;
879
+ }
880
+
881
+ /*定义滑块 内阴影+圆角*/
882
+ .safe_plan_list::-webkit-scrollbar-thumb {
883
+ border-radius: 10px;
884
+ -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);
885
+ background-color: #F5F5F5;
886
+ }
887
+ </style>