safecheck-client 3.0.35-21 → 3.0.35-22

Sign up to get free protection for your applications and to get access to all the features.
Files changed (248) hide show
  1. package/.babelrc +5 -5
  2. package/.editorconfig +9 -9
  3. package/android.html +18 -18
  4. package/config/dev.env.js +6 -6
  5. package/config/index.js +38 -38
  6. package/config/prod.env.js +3 -3
  7. package/config/test.env.js +6 -6
  8. package/docs/AppBase.md +22 -22
  9. package/docs/Busy.md +14 -14
  10. package/docs/CriteriaPaged.md +47 -47
  11. package/docs/DataGrid.md +54 -54
  12. package/docs/DataModel.md +22 -22
  13. package/docs/Dynamic.md +42 -42
  14. package/docs/GetParams.md +11 -11
  15. package/docs/HttpBusy.md +13 -13
  16. package/docs/HttpStore.md +29 -29
  17. package/docs/MessageBox.md +28 -28
  18. package/docs/PagedList.md +29 -29
  19. package/docs/Pager.md +21 -21
  20. package/docs/Project.md +23 -23
  21. package/docs/Route.md +105 -105
  22. package/docs/SafetyCheck/AdjustPlan.md +13 -13
  23. package/docs/SafetyCheck/CheckerPlan.md +12 -12
  24. package/docs/Task.md +46 -46
  25. package/docs/TreeList.md +28 -28
  26. package/docs/TreeMixin.md +18 -18
  27. package/docs/all.md +10 -10
  28. package/docs/list.md +42 -42
  29. package/docs/partial.md +75 -75
  30. package/docs/selector.md +82 -82
  31. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/Snippets.md +28 -28
  32. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/vue-strap/345/217/230/346/233/264/350/256/260/345/275/225.md +7 -7
  33. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/vue/345/217/230/346/233/264/350/256/260/345/275/225.md +13 -13
  34. package/docs//345/274/200/345/217/221/346/226/207/346/241/243//345/274/200/345/217/221/347/216/257/345/242/203/350/256/276/347/275/256.md +77 -77
  35. package/docs//347/225/214/351/235/242/345/210/266/344/275/234/350/247/204/350/214/203.md +54 -54
  36. package/examples/AddressList/App.vue +13 -13
  37. package/examples/AddressList/index.html +11 -11
  38. package/examples/DispatchList/App.vue +10 -10
  39. package/examples/DispatchList/BaseTree.vue +13 -13
  40. package/examples/DispatchList/Init.vue +22 -22
  41. package/examples/DispatchList/Test.vue +20 -20
  42. package/examples/DispatchList/index.html +11 -11
  43. package/examples/DispatchList/main.js +18 -18
  44. package/home.html +16 -16
  45. package/package.json +1 -1
  46. package/publish.bat +7 -7
  47. package/release.bat +5 -5
  48. package/src/Widget.vue +13 -13
  49. package/src/android-bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  50. package/src/android-bootstrap/less/.csscomb.json +304 -304
  51. package/src/android-bootstrap/less/.csslintrc +19 -19
  52. package/src/android-bootstrap/less/alerts.less +73 -73
  53. package/src/android-bootstrap/less/badges.less +66 -66
  54. package/src/android-bootstrap/less/bootstrap.less +56 -56
  55. package/src/android-bootstrap/less/breadcrumbs.less +26 -26
  56. package/src/android-bootstrap/less/button-groups.less +247 -247
  57. package/src/android-bootstrap/less/buttons.less +173 -173
  58. package/src/android-bootstrap/less/carousel.less +269 -269
  59. package/src/android-bootstrap/less/close.less +34 -34
  60. package/src/android-bootstrap/less/code.less +69 -69
  61. package/src/android-bootstrap/less/component-animations.less +33 -33
  62. package/src/android-bootstrap/less/grid.less +84 -84
  63. package/src/android-bootstrap/less/input-groups.less +167 -167
  64. package/src/android-bootstrap/less/jumbotron.less +52 -52
  65. package/src/android-bootstrap/less/labels.less +64 -64
  66. package/src/android-bootstrap/less/list-group.less +141 -141
  67. package/src/android-bootstrap/less/media.less +66 -66
  68. package/src/android-bootstrap/less/mixins/alerts.less +14 -14
  69. package/src/android-bootstrap/less/mixins/background-variant.less +9 -9
  70. package/src/android-bootstrap/less/mixins/border-radius.less +18 -18
  71. package/src/android-bootstrap/less/mixins/buttons.less +69 -69
  72. package/src/android-bootstrap/less/mixins/center-block.less +7 -7
  73. package/src/android-bootstrap/less/mixins/clearfix.less +22 -22
  74. package/src/android-bootstrap/less/mixins/forms.less +90 -90
  75. package/src/android-bootstrap/less/mixins/gradients.less +59 -59
  76. package/src/android-bootstrap/less/mixins/grid-framework.less +92 -92
  77. package/src/android-bootstrap/less/mixins/grid.less +122 -122
  78. package/src/android-bootstrap/less/mixins/hide-text.less +21 -21
  79. package/src/android-bootstrap/less/mixins/image.less +33 -33
  80. package/src/android-bootstrap/less/mixins/labels.less +12 -12
  81. package/src/android-bootstrap/less/mixins/list-group.less +30 -30
  82. package/src/android-bootstrap/less/mixins/nav-divider.less +10 -10
  83. package/src/android-bootstrap/less/mixins/nav-vertical-align.less +9 -9
  84. package/src/android-bootstrap/less/mixins/opacity.less +8 -8
  85. package/src/android-bootstrap/less/mixins/pagination.less +24 -24
  86. package/src/android-bootstrap/less/mixins/panels.less +24 -24
  87. package/src/android-bootstrap/less/mixins/progress-bar.less +10 -10
  88. package/src/android-bootstrap/less/mixins/reset-filter.less +8 -8
  89. package/src/android-bootstrap/less/mixins/reset-text.less +18 -18
  90. package/src/android-bootstrap/less/mixins/resize.less +6 -6
  91. package/src/android-bootstrap/less/mixins/responsive-visibility.less +15 -15
  92. package/src/android-bootstrap/less/mixins/size.less +10 -10
  93. package/src/android-bootstrap/less/mixins/tab-focus.less +9 -9
  94. package/src/android-bootstrap/less/mixins/table-row.less +44 -44
  95. package/src/android-bootstrap/less/mixins/text-emphasis.less +9 -9
  96. package/src/android-bootstrap/less/mixins/text-overflow.less +8 -8
  97. package/src/android-bootstrap/less/mixins/vendor-prefixes.less +227 -227
  98. package/src/android-bootstrap/less/mixins.less +40 -40
  99. package/src/android-bootstrap/less/modals.less +151 -151
  100. package/src/android-bootstrap/less/navbar.less +660 -660
  101. package/src/android-bootstrap/less/navs.less +290 -290
  102. package/src/android-bootstrap/less/normalize.less +424 -424
  103. package/src/android-bootstrap/less/pager.less +76 -76
  104. package/src/android-bootstrap/less/pagination.less +89 -89
  105. package/src/android-bootstrap/less/panels.less +274 -274
  106. package/src/android-bootstrap/less/popovers.less +131 -131
  107. package/src/android-bootstrap/less/print.less +101 -101
  108. package/src/android-bootstrap/less/progress-bars.less +87 -87
  109. package/src/android-bootstrap/less/responsive-embed.less +35 -35
  110. package/src/android-bootstrap/less/responsive-utilities.less +194 -194
  111. package/src/android-bootstrap/less/scaffolding.less +161 -161
  112. package/src/android-bootstrap/less/tables.less +262 -262
  113. package/src/android-bootstrap/less/theme.less +291 -291
  114. package/src/android-bootstrap/less/thumbnails.less +36 -36
  115. package/src/android-bootstrap/less/tooltip.less +102 -102
  116. package/src/android-bootstrap/less/type.less +303 -303
  117. package/src/android-bootstrap/less/utilities.less +55 -55
  118. package/src/android-bootstrap/less/variables.less +896 -896
  119. package/src/android-bootstrap/less/wells.less +29 -29
  120. package/src/androidTest.js +20 -20
  121. package/src/bootstrap/less/.csscomb.json +304 -304
  122. package/src/bootstrap/less/.csslintrc +19 -19
  123. package/src/bootstrap/less/alerts.less +73 -73
  124. package/src/bootstrap/less/badges.less +66 -66
  125. package/src/bootstrap/less/breadcrumbs.less +26 -26
  126. package/src/bootstrap/less/button-groups.less +247 -247
  127. package/src/bootstrap/less/buttons.less +172 -172
  128. package/src/bootstrap/less/carousel.less +269 -269
  129. package/src/bootstrap/less/close.less +34 -34
  130. package/src/bootstrap/less/code.less +69 -69
  131. package/src/bootstrap/less/component-animations.less +33 -33
  132. package/src/bootstrap/less/dropdowns.less +216 -216
  133. package/src/bootstrap/less/forms.less +626 -626
  134. package/src/bootstrap/less/grid.less +84 -84
  135. package/src/bootstrap/less/input-groups.less +167 -167
  136. package/src/bootstrap/less/jumbotron.less +52 -52
  137. package/src/bootstrap/less/labels.less +64 -64
  138. package/src/bootstrap/less/list-group.less +141 -141
  139. package/src/bootstrap/less/media.less +66 -66
  140. package/src/bootstrap/less/mixins/alerts.less +14 -14
  141. package/src/bootstrap/less/mixins/background-variant.less +9 -9
  142. package/src/bootstrap/less/mixins/border-radius.less +18 -18
  143. package/src/bootstrap/less/mixins/buttons.less +69 -69
  144. package/src/bootstrap/less/mixins/center-block.less +7 -7
  145. package/src/bootstrap/less/mixins/clearfix.less +22 -22
  146. package/src/bootstrap/less/mixins/forms.less +90 -90
  147. package/src/bootstrap/less/mixins/gradients.less +59 -59
  148. package/src/bootstrap/less/mixins/grid-framework.less +92 -92
  149. package/src/bootstrap/less/mixins/grid.less +122 -122
  150. package/src/bootstrap/less/mixins/hide-text.less +21 -21
  151. package/src/bootstrap/less/mixins/image.less +33 -33
  152. package/src/bootstrap/less/mixins/labels.less +12 -12
  153. package/src/bootstrap/less/mixins/list-group.less +30 -30
  154. package/src/bootstrap/less/mixins/nav-divider.less +10 -10
  155. package/src/bootstrap/less/mixins/nav-vertical-align.less +9 -9
  156. package/src/bootstrap/less/mixins/opacity.less +8 -8
  157. package/src/bootstrap/less/mixins/pagination.less +24 -24
  158. package/src/bootstrap/less/mixins/panels.less +24 -24
  159. package/src/bootstrap/less/mixins/progress-bar.less +10 -10
  160. package/src/bootstrap/less/mixins/reset-filter.less +8 -8
  161. package/src/bootstrap/less/mixins/reset-text.less +18 -18
  162. package/src/bootstrap/less/mixins/resize.less +6 -6
  163. package/src/bootstrap/less/mixins/responsive-visibility.less +15 -15
  164. package/src/bootstrap/less/mixins/size.less +10 -10
  165. package/src/bootstrap/less/mixins/tab-focus.less +9 -9
  166. package/src/bootstrap/less/mixins/table-row.less +44 -44
  167. package/src/bootstrap/less/mixins/text-emphasis.less +9 -9
  168. package/src/bootstrap/less/mixins/text-overflow.less +8 -8
  169. package/src/bootstrap/less/mixins/vendor-prefixes.less +227 -227
  170. package/src/bootstrap/less/mixins.less +40 -40
  171. package/src/bootstrap/less/modals.less +151 -151
  172. package/src/bootstrap/less/navbar.less +660 -660
  173. package/src/bootstrap/less/normalize.less +424 -424
  174. package/src/bootstrap/less/pager.less +76 -76
  175. package/src/bootstrap/less/pagination.less +89 -89
  176. package/src/bootstrap/less/panels.less +275 -275
  177. package/src/bootstrap/less/popovers.less +131 -131
  178. package/src/bootstrap/less/print.less +101 -101
  179. package/src/bootstrap/less/progress-bars.less +87 -87
  180. package/src/bootstrap/less/responsive-embed.less +35 -35
  181. package/src/bootstrap/less/responsive-utilities.less +194 -194
  182. package/src/bootstrap/less/scaffolding.less +161 -161
  183. package/src/bootstrap/less/theme.less +291 -291
  184. package/src/bootstrap/less/thumbnails.less +36 -36
  185. package/src/bootstrap/less/tooltip.less +102 -102
  186. package/src/bootstrap/less/type.less +303 -303
  187. package/src/bootstrap/less/utilities.less +55 -55
  188. package/src/bootstrap/less/wells.less +29 -29
  189. package/src/components/FileUpload.vue +696 -696
  190. package/src/components/Hello.vue +39 -39
  191. package/src/components/LeftTree.vue +27 -27
  192. package/src/components/android/AddressList.vue +61 -61
  193. package/src/components/android/AttendanceTally.vue +116 -116
  194. package/src/components/android/Blank.vue +10 -10
  195. package/src/components/android/CheckPlanDown.vue +214 -214
  196. package/src/components/android/CheckUnplanPage.vue +56 -56
  197. package/src/components/android/Checker.vue +12 -12
  198. package/src/components/android/CheckerAnnual.vue +81 -81
  199. package/src/components/android/CheckerAvarta.vue +82 -82
  200. package/src/components/android/EquipmentInspection.vue +348 -348
  201. package/src/components/android/FootprintMap.vue +120 -120
  202. package/src/components/android/HiddentroubleInvestigation.vue +192 -192
  203. package/src/components/android/MasterMain.vue +77 -77
  204. package/src/components/android/Menu.vue +132 -132
  205. package/src/components/android/NavBottom.vue +157 -157
  206. package/src/components/android/PaperAlarm.vue +85 -85
  207. package/src/components/android/PaperDeviceNoncivil.vue +214 -214
  208. package/src/components/android/PlumberAnnual.vue +83 -83
  209. package/src/components/android/PlumberAnnualDetail.vue +65 -65
  210. package/src/components/android/PlumberMonthly.vue +84 -84
  211. package/src/components/android/PostMap.vue +83 -83
  212. package/src/components/android/QueryCheckHistory.vue +122 -122
  213. package/src/components/android/QueryCheckHistoryItem.vue +62 -62
  214. package/src/components/android/RepairMain.vue +60 -60
  215. package/src/components/android/Repairman.vue +12 -12
  216. package/src/components/android/StationMaster.vue +12 -12
  217. package/src/components/defects/DefectModal.vue +101 -101
  218. package/src/components/defects/DevicesAndItem.vue +39 -39
  219. package/src/components/issueplan/IssuePlanMain.vue +23 -23
  220. package/src/components/notice/NoticeForm.vue +100 -100
  221. package/src/components/notice/NoticeIssue.vue +20 -20
  222. package/src/components/paper/PicViewer.vue +18 -18
  223. package/src/components/phonestate/MonthlyTraffic.vue +66 -66
  224. package/src/components/phonestate/MonthlyTrafficRouter.vue +15 -15
  225. package/src/components/phonestate/PostMap.vue +82 -82
  226. package/src/components/planmanage/PlanManage.vue +888 -843
  227. package/src/components/querycheckpaper/PaperItem.vue +59 -59
  228. package/src/components/report/CheckPlanAreaList.vue +505 -485
  229. package/src/components/rongcheng/AspiratedUserInfo.vue +407 -407
  230. package/src/components/rongcheng/SafecheckUserInfo.vue +1005 -1005
  231. package/src/components/userfile/MeterFile.vue +145 -145
  232. package/src/components/userfile/MeterModify.vue +46 -46
  233. package/src/components/userfileaudit/MeterAuditFile.vue +129 -129
  234. package/src/filiale/xilan/android/CurrentCreate.vue +1053 -1067
  235. package/src/filiale/xilan/android.js +10 -11
  236. package/src/plugins/LoadData.js +10 -10
  237. package/src/plugins/LoadParams.js +24 -24
  238. package/src/stores/wxconfig.js +10 -10
  239. package/src/utils/getNowDate.js +33 -33
  240. package/test/e2e/custom-assertions/elementCount.js +26 -26
  241. package/test/e2e/nightwatch.conf.js +40 -40
  242. package/test/e2e/runner.js +30 -30
  243. package/test/e2e/specs/test.js +13 -13
  244. package/test/unit/.eslintrc +5 -5
  245. package/test/unit/TestUtil.js +62 -62
  246. package/test/unit/context.html +20 -20
  247. package/test/unit/index.js +13 -13
  248. package/src/filiale/xilan/android/AddPlanItem.vue +0 -461
@@ -1,843 +1,888 @@
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
- </table>
53
- </div>
54
- </div>
55
- <div style="height: 11%">
56
- <div class="row auto leftplan-center" style="padding: 8px">
57
- <div class="col-sm-6" style="">
58
- <span>共{{checkplan.list.count}}条</span>
59
- </div>
60
- <div class="col-sm-6" style="text-align: end">
61
- <span @click="loadMore('checkplan')"><img src="../../../static/images/doubledown.png"/>&ensp;更多</span>
62
- </div>
63
- </div>
64
- <div class="row auto" style="padding: 10px;text-align: center">
65
- <img src="../../../static/images/addnew.png" @click="showcCreatePlan()"/>
66
- </div>
67
- </div>
68
- </div>
69
- <!--右侧列表**************************************************************************-->
70
- <div class="binary-right" style="width: 84%;overflow: auto">
71
- <div style="height: 5%">
72
- <div class="col-sm-4">
73
- <label class="font_normal_body">公&emsp;&emsp;司</label>
74
- <right-tree-safe :islist="false" :width="'60%'" @re-res="getRes"></right-tree-safe>
75
- </div>
76
- </div>
77
- <div style="height: 95%">
78
- <div style="height: 50%" class="leftplan-center">
79
- <check-plan-list :selectplan="selectPlan" :userlogin="userlogin" v-ref:item></check-plan-list>
80
- </div>
81
- <div style="height: 50%">
82
- <check-user-list :selectplan="selectPlan" :userlogin="userlogin" v-ref:user></check-user-list>
83
- </div>
84
- </div>
85
- </div>
86
- <modal :show.sync="showCondtion" v-ref:modal :width="'50%'" :backdrop="false">
87
- <div slot="modal-header" class="modal-header">
88
- <h4 class="modal-title">
89
- 计划查询条件
90
- </h4>
91
- </div>
92
- <div slot="modal-body" class="modal-body">
93
- <div class="row">
94
- <div class="form-group col-sm-4" >
95
- <label class="font_normal_body">计划名称:</label>
96
- <input type="text" class="input_search" v-model="planCondition.f_plan_name" @change="setProperty('checkplan','f_plan_name',planCondition.f_plan_name)"
97
- style="width: 60%" placeholder="请选择" />
98
- </div>
99
- <div class="form-group col-sm-4" >
100
- <label class="font_normal_body">计划年份:</label>
101
- <v-select
102
- class="select select_list"
103
- :value.sync="planCondition.f_plan_year"
104
- v-model="planCondition.f_plan_year"
105
- @change="setProperty('checkplan','f_plan_year',planCondition.f_plan_year)"
106
- :search="false"
107
- :options='getConList("yearList")'
108
- placeholder='请选择'
109
- close-on-select
110
- value-single
111
- >
112
- </v-select>
113
- </div>
114
- <div class="form-group col-sm-4" >
115
- <label class="font_normal_body">计划月份:</label>
116
- <v-select
117
- class="select select_list"
118
- :value.sync="planCondition.f_plan_month"
119
- v-model="planCondition.f_plan_month"
120
- @change="setProperty('checkplan','f_plan_month',planCondition.f_plan_month)"
121
- :search="false"
122
- :options='getConList("monthList")'
123
- placeholder='请选择'
124
- close-on-select
125
- value-single>
126
- </v-select>
127
- </div>
128
- <div class="form-group col-sm-4" >
129
- <label class="font_normal_body">是否共享:</label>
130
- <v-select
131
- class="select select_list"
132
- :value.sync="planCondition.isShare"
133
- v-model="planCondition.isShare"
134
- @change="setProperty('checkplan','isAndNot',planCondition.isShare)"
135
- :options='getConList("conIsAndNot")'
136
- :search="false"
137
- placeholder='请选择'
138
- close-on-select
139
- value-single
140
- >
141
- </v-select>
142
- </div>
143
- <div class="form-group col-sm-4" >
144
- <label class="font_normal_body">是否下发:</label>
145
- <v-select
146
- class="select select_list"
147
- :value.sync="planCondition.issued"
148
- v-model="planCondition.issued"
149
- :options='getConList("isAndNot")'
150
- @change="setProperty('checkplan','issude',planCondition.issued)"
151
- placeholder='请选择'
152
- :search="false"
153
- close-on-select
154
- value-single
155
- >
156
- </v-select>
157
- </div>
158
- <div class="form-group col-sm-4" >
159
- <label class="font_normal_body">安&ensp;检&ensp;员:</label>
160
- <v-select
161
- class="select select_list"
162
- :value.sync="planCondition.f_checker"
163
- v-model="planCondition.f_checker"
164
- @change="setProperty('checkplan','checkerid',planCondition.f_checker.id)"
165
- :options='getConList("checker")'
166
- placeholder='请选择'
167
- close-on-select
168
- value-single
169
- >
170
- </v-select>
171
- </div>
172
-
173
- <div class="form-group col-sm-4" >
174
- <label class="font_normal_body">安检类型:</label>
175
- <v-select
176
- class="select select_list"
177
- :value.sync="planCondition.f_safecheck_type"
178
- v-model="planCondition.f_safecheck_type"
179
- @change="setProperty('checkplan','safechecktype',planCondition.f_safecheck_type)"
180
- :options='getConList("safechecktype")'
181
- placeholder='请选择'
182
- :search="false"
183
- close-on-select
184
- value-single
185
- >
186
- </v-select>
187
- </div>
188
- <div class="form-group col-sm-4" >
189
- <label class="font_normal_body">创&ensp;建&ensp;人:</label>
190
- <input type="text" class="input_search" v-model="planCondition.f_create_operator" @change="setProperty('checkplan','f_create_operator',planCondition.f_create_operator)"
191
- style="width: 60%" placeholder="创建人" />
192
- </div>
193
- </div>
194
- </div>
195
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
196
- <button class="button_search" @click="loadCheckPlan" style="margin-right: 15px">查询</button>
197
- <button class="button_search" @click="cancel">取消</button>
198
- </div>
199
- </modal>
200
- <modal :show.sync="showCreatePlan" v-ref:modal1 :width="'50%'" :backdrop="false">
201
- <div slot="modal-header" class="modal-header">
202
- <h4 class="modal-title">
203
- 新建计划
204
- </h4>
205
- </div>
206
- <div slot="modal-body" class="modal-body">
207
- <div class="row">
208
- <div class="form-group col-sm-4" >
209
- <label class="font_normal_body">计划名称:</label>
210
- <input type="text" class="input_search" v-model="createPlan.f_plan_name"
211
- style="width: 60%" placeholder="请选择" />
212
- </div>
213
- <div class="form-group col-sm-4" >
214
- <label class="font_normal_body">计划年份:</label>
215
- <v-select
216
- class="select select_list"
217
- :value.sync="createPlan.f_plan_year"
218
- v-model="createPlan.f_plan_year"
219
- :search="false"
220
- :options='yearList'
221
- placeholder='请选择'
222
- close-on-select
223
- value-single
224
- >
225
- </v-select>
226
- </div>
227
- <div class="form-group col-sm-4" >
228
- <label class="font_normal_body">计划月份:</label>
229
- <v-select
230
- class="select select_list"
231
- :value.sync="createPlan.f_plan_month"
232
- v-model="createPlan.f_plan_month"
233
- :search="false"
234
- :options='monthList'
235
- placeholder='请选择'
236
- close-on-select
237
- value-single>
238
- </v-select>
239
- </div>
240
- <div class="form-group col-sm-4" >
241
- <label class="font_normal_body">是否共享:</label>
242
- <v-select
243
- class="select select_list"
244
- :search="false"
245
- :value.sync="createPlan.isShare"
246
- v-model="createPlan.isShare"
247
- :options='isAndNot'
248
- placeholder='请选择'
249
- close-on-select
250
- value-single
251
- >
252
- </v-select>
253
- </div>
254
- <div class="form-group col-sm-4" v-show="createPlan.isShare==''">
255
- <label class="font_normal_body">安&ensp;检&ensp;员:</label>
256
- <v-select
257
- class="select select_list"
258
- :value.sync="createPlan.checker"
259
- v-model="createPlan.checker"
260
- :options='checker'
261
- placeholder='请选择'
262
- close-on-select
263
- value-single
264
- >
265
- </v-select>
266
- </div>
267
-
268
- <div class="form-group col-sm-4" >
269
- <label class="font_normal_body">安检类型:</label>
270
- <v-select
271
- class="select select_list"
272
- :value.sync="createPlan.f_safecheck_type"
273
- v-model="createPlan.f_safecheck_type"
274
- :search="false"
275
- :options='ntoway'
276
- placeholder='请选择'
277
- close-on-select
278
- value-single
279
- >
280
- </v-select>
281
- </div>
282
- </div>
283
- </div>
284
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
285
- <button class="button_search" style="margin-right: 15px" @click="addNewPlan()">创建计划</button>
286
- <button class="button_search" @click="cancel">取消</button>
287
- </div>
288
- </modal>
289
- <modal :show.sync="showUpPlan" v-ref:modal2 :backdrop="false">
290
- <div slot="modal-header" class="modal-header">
291
- <h4 class="modal-title">
292
- 修改计划
293
- </h4>
294
- </div>
295
- <div slot="modal-body" class="modal-body">
296
- <div class="row">
297
- <div class="form-group col-sm-4" >
298
- <label class="font_normal_body">计划名称:</label>
299
- <input type="text" class="input_search" v-model="upCheckPlan.f_plan_name"
300
- style="width: 60%" />
301
- </div>
302
- <div class="form-group col-sm-4" >
303
- <label class="font_normal_body">计划年份:</label>
304
- <v-select
305
- class="select select_list"
306
- :value.sync="upCheckPlan.f_plan_year"
307
- v-model="upCheckPlan.f_plan_year"
308
- :search="false"
309
- :value="upCheckPlan.f_plan_year"
310
- :options='yearList'
311
-
312
- close-on-select
313
- value-single>
314
-
315
-
316
- </v-select>
317
- <!-- <datepicker
318
- placeholder='请选择'
319
- style="width:60%"
320
- :disabled-days-of-week="[]"
321
- :format="'yyyy'"
322
- :show-rest-button="reset"
323
- :value.sync="upCheckPlan.f_plan_year"
324
- v-model="upCheckPlan.f_plan_year">
325
- </datepicker>-->
326
- </div>
327
- <div class="form-group col-sm-4" >
328
- <label class="font_normal_body">计划月份:</label>
329
- <v-select
330
- class="select select_list"
331
- :value.sync="upCheckPlan.f_plan_month"
332
- v-model="upCheckPlan.f_plan_month"
333
-
334
- :options='monthList'
335
- close-on-select
336
- value-single>
337
- </v-select>
338
- </div>
339
- <div class="form-group col-sm-4" >
340
- <label class="font_normal_body">是否共享:</label>
341
- <v-select
342
- class="select select_list"
343
- :search="false"
344
- :value.sync="upCheckPlan.isShare"
345
- v-model="upCheckPlan.isShare"
346
- :options='isAndNot'
347
- placeholder='请选择'
348
- close-on-select
349
- value-single
350
- >
351
- </v-select>
352
- </div>
353
- <div class="form-group col-sm-4" v-show="upCheckPlan.isShare=='否'">
354
- <label class="font_normal_body">安&ensp;检&ensp;员:</label>
355
- <v-select
356
- class="select select_list"
357
- :value.sync="upCheckPlan.checker"
358
- v-model="upCheckPlan.checker"
359
- :options='checker'
360
- close-on-select
361
- value-single
362
- >
363
- </v-select>
364
- </div>
365
-
366
- <div class="form-group col-sm-4">
367
- <label class="font_normal_body">安检类型:</label>
368
- <v-select
369
- class="select select_list"
370
- :value.sync="upCheckPlan.f_safecheck_type"
371
- v-model="upCheckPlan.f_safecheck_type"
372
- :options='ntoway'
373
- close-on-select
374
- value-single
375
- >
376
- </v-select>
377
- </div>
378
- </div>
379
- </div>
380
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
381
- <button class="button_search" style="margin-right: 15px" @click="upPlan()">保存修改</button>
382
- <button class="button_search" @click="cancel">取消</button>
383
- </div>
384
- </modal>
385
- </div>
386
- </template>
387
-
388
- <script>
389
- import {SearchList,HttpResetClass, PagedList} from "vue-client";
390
- import * as Util from "../Util";
391
- import Vue from "vue";
392
- import AppData from "../../stores/AppData";
393
-
394
- export default {
395
- name: "PlanManage",
396
- title: '计划管理',
397
- data() {
398
- return {
399
- a:'1',
400
- opt:[{label:"按时间降序",value:"按时间降序"},{label:"按时间升序",value:"按时间升序"}],
401
- currentorder:'按时间降序',
402
- isdelete:this.$login.r ? this.$login.r.includes("安检计划删除"):false,
403
- checkplan : new SearchList(true),
404
- selectPlan:{id:''},
405
- upCheckPlan:{
406
- f_plan_name:'',
407
- f_safecheck_type:'',
408
- f_plan_year:'',
409
- f_plan_month:'',
410
- f_checker_id:'',
411
- isShare:'',
412
- f_checker:'',
413
- checker:{}
414
- },
415
- isSend:false,
416
- createPlan:{
417
- f_plan_name:'',
418
- f_plan_year:'',
419
- f_plan_month:'',
420
- isShare:'',
421
- f_issued:'否',
422
- f_checker_id:null,
423
- checker:{},
424
- f_checker:null,
425
- f_safecheck_type:'',
426
- },
427
- planCondition:{},
428
- showCondtion:false,
429
- showCreatePlan:false,
430
- showUpPlan:false,
431
- isAndNot:[{label:'',value:'是'},{label:'否',value:'否'}],
432
- conIsAndNot:[{label:'',value:'is null'},{label:'否',value:'is not null'}],
433
- 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}],
434
- 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}],
435
- safechecktype:[{label:'年度普检',value:'年度普检'}],
436
- checker:[],
437
- checkertCon:[],
438
- userlogin:{
439
- id:this.$login.f.id,
440
- name:this.$login.f.name,
441
- orgid:this.$login.f.orgid,
442
- orgstr:this.$login.f.orgs,
443
- }
444
- //需要测试直接把下面放开即可
445
- /*userlogin:{
446
- id:'141701',
447
- name:'hwq',
448
- orgid:'35526',
449
- orgstr:'西华县天然气有限公司'
450
- }*/
451
- }
452
- },
453
- async ready(){
454
- await this.loadpage()
455
- if (!this.userlogin.orgid){
456
- if (this.$login.f.f_orgids){
457
- 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
458
- }else {
459
- this.userlogin.orgid = ''
460
- }
461
- }
462
- },
463
- computed: {
464
- ntoway() {
465
- /*/!* return AppData.getParam('安检类型')*!/*/
466
- return this.$appdata.getParam('安检类型')
467
- }
468
- },
469
- methods:{
470
- /* ntoway() {
471
- /!* return AppData.getParam('安检类型')*!/
472
- return Vue.$appdata.getParam('安检类型')
473
- },*/
474
- async loadpage(){
475
- //await this.checkplan.searchList("/rs/sql/预约计划下发", {},{groupitem:"",f_filialeids:"('"+this.userlogin.orgid+"')",orderitem:"f_create_time desc"})
476
- await this.loadCheckPlan()
477
- await this.searchChecker(this.userlogin.id)
478
- },
479
- getRes(obj) {
480
- console.log("----obj"+JSON.stringify(obj.resids))
481
- console.log(obj)
482
- if(obj.resids.length>0 && obj.resids[0]!=this.userlogin.orgid && obj.resids[0]){
483
- this.userlogin.orgid=obj.resids[0]
484
- this.userlogin.orgstr=obj.res[0]
485
- if(this.$refs.item && this.$refs.user){
486
- this.loadpage()
487
- this.selectPlan={id:""}
488
- this.$refs.item.model.rows=[]
489
- this.$refs.user.model.rows=[]
490
- this.$refs.user.loadpage()
491
- }
492
- }
493
- },
494
- getConList(field){
495
- return [{label:'全部',value:''}, ...this[field]]
496
- },
497
- selectPlanChange(plan){
498
- this.selectPlan=plan
499
- //this.upCheckPlan=plan
500
- },
501
- showUserCondition(){
502
- this.showCondtion=true
503
- },
504
- showcCreatePlan(){
505
- this.showCreatePlan=true
506
- },
507
- cancel(){
508
- this.showCondtion=false
509
- this.showCreatePlan=false
510
- this.showUpPlan=false
511
- },
512
- //新建计划
513
- async addNewPlan() {
514
- if(!this.validationCreatePlan()){
515
- return
516
- }
517
- this.isSend=true
518
- let res=await new HttpResetClass().load("POST","/rs/sql/getCheckplan", {data: {condition:"f_plan_name='"+this.createPlan.f_plan_name+"'",sortfield:'f_create_time desc'}})
519
- console.log("结果-"+res.data.length)
520
- if(res.data.length>0){
521
- Vue.showMessage("计划名称不能重复!")
522
- this.isSend=false
523
- return
524
- }
525
- if(this.createPlan.isShare=="是"){
526
- this.createPlan.f_checker_id=null
527
- this.createPlan.f_checker=null
528
- }else{
529
- this.createPlan.f_checker_id=this.createPlan.checker.id
530
- this.createPlan.f_checker=this.createPlan.checker.name
531
- }
532
- console.log("this.createPlan.f_checker:"+this.createPlan.f_checker)
533
- this.createPlan.f_plan_type='预约计划'
534
- this.createPlan.f_subcompany=this.userlogin.orgstr
535
- this.createPlan.f_filialeid=this.userlogin.orgid
536
- this.createPlan.f_create_operator=this.userlogin.name
537
- this.createPlan.f_create_time=Util.toStandardTimeString()
538
- await new HttpResetClass().load('POST',"/rs/logic/createCheckPlan", {"data": this.createPlan},{resolveMsg : '新建计划成功!', rejectMsg : '新建计划失败!'})
539
- //await this.loadCheckPlan('',()=>{})
540
- this.createPlan={
541
- f_plan_name:'',
542
- f_plan_year:'',
543
- f_plan_month:'',
544
- isShare:'否',
545
- f_issued:'否',
546
- f_checker_id:null,
547
- checker:{},
548
- f_checker:null,
549
- f_safecheck_type:'',
550
- f_create_operator:''
551
- }
552
- await this.loadCheckPlan()
553
- this.isSend=false
554
-
555
- },
556
- validationCreatePlan(){
557
- if(!this.createPlan.f_plan_name){
558
- Vue.showMessage("请输入安检计划名称!")
559
- return false
560
- }
561
- if(!this.createPlan.f_plan_year){
562
- Vue.showMessage("请选择安检年份!")
563
- return false
564
- }
565
- if(!this.createPlan.f_plan_month){
566
- Vue.showMessage("请选择安检月份!")
567
- return false
568
- }
569
- if(this.createPlan.isShare=="否"){
570
- if(JSON.stringify(this.createPlan.checker)=='{}'){
571
- Vue.showMessage("请选择安检人员!")
572
- return false
573
- }
574
- }else{
575
- this.createPlan.f_checker=''
576
- }
577
- if(!this.createPlan.f_safecheck_type){
578
- Vue.showMessage("请选择安检类型!")
579
- return false
580
- }
581
- return true
582
- },
583
- //查询安检员selectChanged
584
- async searchChecker(id){
585
- let res=await new HttpResetClass().load('POST', '/rs/search', {
586
- data:{
587
- source: `this.getSpecialResByType($user$).where(row.getAttributes().get($rolestr$)!=null ).where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1)`,
588
- userid: this.userlogin.orgid
589
- }
590
- }, {resolveMsg: null, rejectMsg: null})
591
- let arr = []
592
- res.data.forEach((resRow) => {
593
- if (!arr.includes(resRow.name) && resRow.state == '在职'){
594
- arr.push(resRow.name)
595
- this.checker.push({label:resRow.name,value:resRow})
596
- }
597
- })
598
- },
599
- //设置属性值
600
- setProperty(modulename, property, value) {
601
- console.log(modulename+"新添--"+property+"--"+value)
602
- if(value=='全部'){
603
- this[modulename].search.setField(property, '')
604
- }else{
605
- this[modulename].search.setField(property, value)
606
- }
607
- },
608
- //按条件查询所有安检计划
609
- async loadCheckPlan() {
610
- this.isSend=true
611
- this.checkplan.check.checkes=[]
612
- let fieldValue=''
613
- switch(this.currentorder){
614
- case "按时间降序":
615
- fieldValue='f_create_time desc'
616
- break
617
- case "按时间升序":
618
- fieldValue='f_create_time'
619
- break
620
- }
621
- console.log("--------fieldValue"+fieldValue)
622
- this.cancel()
623
- await this.checkplan.searchList("/rs/sql/预约计划下发",
624
- {"f_plan_name": "f_plan_name like '%{}%'",
625
- "f_plan_year":"f_plan_year={}",
626
- "f_plan_month":"f_plan_month={}",
627
- "checkerid":"f_checker_id='{}'",
628
- "isAndNot":"f_checker {}",
629
- "safechecktype":"f_safecheck_type='{}'",
630
- "issude":"f_issued = '{}'",
631
- "f_create_operator": "f_create_operator like '%{}%'"
632
- },
633
- {orderitem:fieldValue,
634
- f_filialeids:"('"+this.userlogin.orgid+"')",
635
- groupitem:""
636
- }
637
- )
638
-
639
- this.isSend=false
640
- },
641
- //加载更多数据
642
- async loadMore(modelname) {
643
- this.isSend=true
644
- await this[modelname].list.loadMore()
645
- this.isSend=false
646
- },
647
- showUpPlans(row){
648
- this.upCheckPlan.id=row.id
649
- this.upCheckPlan.f_safecheck_type=row.f_safecheck_type
650
- this.upCheckPlan.f_plan_name=row.f_plan_name
651
- this.upCheckPlan.f_plan_year=row.f_plan_year
652
- this.upCheckPlan.f_plan_month=row.f_plan_month
653
- this.upCheckPlan.f_checker_id=row.f_checker_id?row.f_checker_id:null
654
- this.upCheckPlan.f_checker=row.f_checker?row.f_checker:null
655
- this.upCheckPlan.isShare=row.f_checker_id?'':'是'
656
- this.upCheckPlan.f_issued=row.f_issued
657
- this.upCheckPlan.checker={id:row.f_checker_id,name:row.f_checker}
658
- this.showUpPlan=true
659
- },
660
- async upPlan(){
661
- if(this.upCheckPlan.f_issued=='已下发'){
662
- this.$showMessage("该计划已下发,无法进行修改!")
663
- return
664
- }
665
- if(!this.upCheckPlan.f_plan_name){
666
- Vue.showMessage("请输入安检计划名称!")
667
- return false
668
- }
669
- if(!this.upCheckPlan.f_plan_year){
670
- Vue.showMessage("请选择安检年份!")
671
- return false
672
- }
673
- if(!this.upCheckPlan.f_plan_month){
674
- Vue.showMessage("请选择安检月份!")
675
- return false
676
- }
677
- console.log(this.upCheckPlan)
678
-
679
- if(this.upCheckPlan.isShare=="是"){
680
- this.upCheckPlan.f_checker_id=null
681
- this.upCheckPlan.f_checker=null
682
- }else{
683
- this.upCheckPlan.f_checker_id=this.upCheckPlan.checker.id
684
- this.upCheckPlan.f_checker=this.upCheckPlan.checker.name
685
- }
686
- this.isSend=true
687
- let res=await new HttpResetClass().load("POST", "/rs/logic/updateCheckPlan", {
688
- data:{
689
- f_checker:this.upCheckPlan.f_checker,
690
- f_safecheck_type:this.upCheckPlan.f_safecheck_type,
691
- f_checker_id:this.upCheckPlan.f_checker_id,
692
- f_plan_name:this.upCheckPlan.f_plan_name,
693
- f_plan_year:this.upCheckPlan.f_plan_year,
694
- f_plan_month:this.upCheckPlan.f_plan_month,
695
- f_plan_id:this.upCheckPlan.id
696
- }
697
- }, {resolveMsg: null, rejectMsg: null})
698
- if(res.data.code==200){
699
- this.$showMessage("修改成功!")
700
- this.cancel()
701
- await this.loadCheckPlan()
702
- }else{
703
- this.$showMessage("修改失败!")
704
- }
705
- this.isSend=false
706
- },
707
- //下发安检计划
708
- async sendCheckPlan(f){
709
- if(this.checkplan.check.checkes.length<1){
710
- this.$showMessage("请选择要下发的安检计划")
711
- return
712
- }
713
- this.isSend=true
714
- let res=await new HttpResetClass().load("POST", "/rs/logic/NewBespeakCheckPlan", {
715
- data:{
716
- f_issued:'',
717
- f_issue_time:Util.toStandardTimeString(),
718
- f_send_operator:this.userlogin.name,
719
- param:this.checkplan.check.checkes,
720
- }
721
- }, {resolveMsg: null, rejectMsg: null})
722
- if(res.data.code==200){
723
- //Vue.showMessage("下发成功!其中有"+res.data.repet+"个计划己经是下发状态")
724
- this.$showMessage("下发成功!")
725
- }else{
726
- this.$showMessage("下发失败!")
727
- }
728
- await this.loadCheckPlan()
729
- this.isSend=false
730
- },
731
- //删除安检计划
732
- async delCheckPlan(f){
733
- if(this.checkplan.check.checkes.length<1){
734
- this.$showMessage("请选择要删除的安检计划")
735
- return
736
- }
737
- this.isSend=true
738
- let res=await new HttpResetClass().load("POST", "/rs/logic/deleteCheckPlan", {
739
- data:{
740
- f_operator:this.userlogin.name,//global.login.name,
741
- condition:"",
742
- switchCheckAll:true,
743
- checkAll:false,
744
- param:this.checkplan.check.checkes,
745
- columnName: "f_plan_id"
746
- }
747
- }, {resolveMsg: null, rejectMsg: null})
748
- console.log(JSON.stringify(res))
749
- if(res.data.code==200){
750
- this.$showMessage("删除成功!")
751
- }else{
752
- this.$showMessage("删除失败!")
753
- }
754
- if(this.checkplan.check.checkes.indexOf(this.selectPlan.id)!= -1){
755
- this.selectPlan={id:''}
756
- console.log("包含了清空selectplan")
757
- }
758
- await this.loadCheckPlan()
759
- this.isSend=false
760
- },
761
- async refresh(){
762
- this.$refs.item.$refs.paged.$refs.criteria.search()
763
- this.$refs.user.$refs.paged.$refs.criteria.search()
764
- await this.loadCheckPlan()
765
- },
766
- async refreshPlan(){
767
- this.$refs.item.$refs.paged.$refs.criteria.search()
768
- await this.loadCheckPlan()
769
- }
770
- }
771
- }
772
- </script>
773
-
774
- <style scoped>
775
- .safe-planfont{
776
- font-family: MicrosoftYaHei;
777
- font-size: 15px;
778
- font-weight: normal;
779
- font-stretch: normal;
780
- letter-spacing: 2px;
781
- color: #333333;
782
- line-height: 25px;
783
- }
784
- .safe-bodyfont{
785
- font-family: MicrosoftYaHei;
786
- font-size: 14px;
787
- font-weight: normal;
788
- font-stretch: normal;
789
- letter-spacing: 0px;
790
- color: #999999;
791
- line-height: 30px;
792
- }
793
- .safe-leftplan{
794
- height:auto;
795
- border-bottom:1px solid #ececec;
796
- padding: 10px 5px
797
- }
798
- .leftplan-center{
799
- border-top:1px solid #ececec;
800
- border-bottom:1px solid #ececec;
801
- }
802
- .safe_p{
803
- white-space: nowrap;
804
- overflow: hidden;
805
- text-overflow: ellipsis;
806
- }
807
- .safe-div-p{
808
- color: #4792de;
809
- text-align: end;
810
- padding: 8px 15px;
811
- }
812
- .safe_list_li:hover{
813
- background-color: rgb(245,246,247);
814
- }
815
- .safe-selectplan{
816
- pointer-events: none;
817
- background-color: rgb(216,234,251);
818
- }
819
- .safe_plan_list{
820
- height: 80%;
821
- overflow: scroll;
822
- }
823
-
824
- </style>
825
- <style>
826
- .safe_plan_list::-webkit-scrollbar{
827
- background-color: #F5F5F5;
828
- }
829
-
830
- /*定义滚动条轨道 内阴影+圆角*/
831
- .safe_plan_list::-webkit-scrollbar-track{
832
- -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
833
- border-radius: 10px;
834
- background-color: #F5F5F5;
835
- }
836
-
837
- /*定义滑块 内阴影+圆角*/
838
- .safe_plan_list::-webkit-scrollbar-thumb{
839
- border-radius: 10px;
840
- -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
841
- background-color: #F5F5F5;
842
- }
843
- </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
+ </table>
53
+ </div>
54
+ </div>
55
+ <div style="height: 11%">
56
+ <div class="row auto leftplan-center" style="padding: 8px">
57
+ <div class="col-sm-6" style="">
58
+ <span>共{{checkplan.list.count}}条</span>
59
+ </div>
60
+ <div class="col-sm-6" style="text-align: end">
61
+ <span @click="loadMore('checkplan')"><img src="../../../static/images/doubledown.png"/>&ensp;更多</span>
62
+ </div>
63
+ </div>
64
+ <div class="row auto" style="padding: 10px;text-align: center">
65
+ <img src="../../../static/images/addnew.png" @click="showcCreatePlan()"/>
66
+ </div>
67
+ </div>
68
+ </div>
69
+ <!--右侧列表**************************************************************************-->
70
+ <div class="binary-right" style="width: 84%;overflow: auto">
71
+ <div style="height: 5%">
72
+ <div class="col-sm-4">
73
+ <label class="font_normal_body">公&emsp;&emsp;司</label>
74
+ <right-tree-safe :islist="false" :width="'60%'" @re-res="getRes"></right-tree-safe>
75
+ </div>
76
+ </div>
77
+ <div style="height: 95%">
78
+ <div style="height: 50%" class="leftplan-center">
79
+ <check-plan-list :selectplan="selectPlan" :userlogin="userlogin" v-ref:item></check-plan-list>
80
+ </div>
81
+ <div style="height: 50%">
82
+ <check-user-list :selectplan="selectPlan" :userlogin="userlogin" v-ref:user></check-user-list>
83
+ </div>
84
+ </div>
85
+ </div>
86
+ <modal :show.sync="showCondtion" v-ref:modal :width="'50%'" :backdrop="false">
87
+ <div slot="modal-header" class="modal-header">
88
+ <h4 class="modal-title">
89
+ 计划查询条件
90
+ </h4>
91
+ </div>
92
+ <div slot="modal-body" class="modal-body">
93
+ <div class="row">
94
+ <div class="form-group col-sm-4" >
95
+ <label class="font_normal_body">计划名称:</label>
96
+ <input type="text" class="input_search" v-model="planCondition.f_plan_name" @change="setProperty('checkplan','f_plan_name',planCondition.f_plan_name)"
97
+ style="width: 60%" placeholder="请选择" />
98
+ </div>
99
+ <div class="form-group col-sm-4" >
100
+ <label class="font_normal_body">计划年份:</label>
101
+ <v-select
102
+ class="select select_list"
103
+ :value.sync="planCondition.f_plan_year"
104
+ v-model="planCondition.f_plan_year"
105
+ @change="setProperty('checkplan','f_plan_year',planCondition.f_plan_year)"
106
+ :search="false"
107
+ :options='getConList("yearList")'
108
+ placeholder='请选择'
109
+ close-on-select
110
+ value-single
111
+ >
112
+ </v-select>
113
+ </div>
114
+ <div class="form-group col-sm-4" >
115
+ <label class="font_normal_body">计划月份:</label>
116
+ <v-select
117
+ class="select select_list"
118
+ :value.sync="planCondition.f_plan_month"
119
+ v-model="planCondition.f_plan_month"
120
+ @change="setProperty('checkplan','f_plan_month',planCondition.f_plan_month)"
121
+ :search="false"
122
+ :options='getConList("monthList")'
123
+ placeholder='请选择'
124
+ close-on-select
125
+ value-single>
126
+ </v-select>
127
+ </div>
128
+ <div class="form-group col-sm-4" >
129
+ <label class="font_normal_body">是否共享:</label>
130
+ <v-select
131
+ class="select select_list"
132
+ :value.sync="planCondition.isShare"
133
+ v-model="planCondition.isShare"
134
+ @change="setProperty('checkplan','isAndNot',planCondition.isShare)"
135
+ :options='getConList("conIsAndNot")'
136
+ :search="false"
137
+ placeholder='请选择'
138
+ close-on-select
139
+ value-single
140
+ >
141
+ </v-select>
142
+ </div>
143
+ <div class="form-group col-sm-4" >
144
+ <label class="font_normal_body">是否下发:</label>
145
+ <v-select
146
+ class="select select_list"
147
+ :value.sync="planCondition.issued"
148
+ v-model="planCondition.issued"
149
+ :options='getConList("isAndNot")'
150
+ @change="setProperty('checkplan','issude',planCondition.issued)"
151
+ placeholder='请选择'
152
+ :search="false"
153
+ close-on-select
154
+ value-single
155
+ >
156
+ </v-select>
157
+ </div>
158
+ <div class="form-group col-sm-4" >
159
+ <label class="font_normal_body">安&ensp;检&ensp;员:</label>
160
+ <v-select
161
+ class="select select_list"
162
+ :value.sync="planCondition.f_checker"
163
+ v-model="planCondition.f_checker"
164
+ @change="setProperty('checkplan','checkerid',planCondition.f_checker.id)"
165
+ :options='getConList("checker")'
166
+ placeholder='请选择'
167
+ close-on-select
168
+ value-single
169
+ >
170
+ </v-select>
171
+ </div>
172
+
173
+ <div class="form-group col-sm-4" >
174
+ <label class="font_normal_body">安检类型:</label>
175
+ <v-select
176
+ class="select select_list"
177
+ :value.sync="planCondition.f_safecheck_type"
178
+ v-model="planCondition.f_safecheck_type"
179
+ @change="setProperty('checkplan','safechecktype',planCondition.f_safecheck_type)"
180
+ :options='getConList("safechecktype")'
181
+ placeholder='请选择'
182
+ :search="false"
183
+ close-on-select
184
+ value-single
185
+ >
186
+ </v-select>
187
+ </div>
188
+ <div class="form-group col-sm-4" >
189
+ <label class="font_normal_body">创&ensp;建&ensp;人:</label>
190
+ <input type="text" class="input_search" v-model="planCondition.f_create_operator" @change="setProperty('checkplan','f_create_operator',planCondition.f_create_operator)"
191
+ style="width: 60%" placeholder="创建人" />
192
+ </div>
193
+ </div>
194
+ </div>
195
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
196
+ <button class="button_search" @click="loadCheckPlan" style="margin-right: 15px">查询</button>
197
+ <button class="button_search" @click="cancel">取消</button>
198
+ </div>
199
+ </modal>
200
+ <modal :show.sync="showCreatePlan" v-ref:modal1 :width="'50%'" :backdrop="false">
201
+ <div slot="modal-header" class="modal-header">
202
+ <h4 class="modal-title">
203
+ 新建计划
204
+ </h4>
205
+ </div>
206
+ <div slot="modal-body" class="modal-body">
207
+ <div class="row">
208
+ <div class="form-group col-sm-4" >
209
+ <label class="font_normal_body">计划名称:</label>
210
+ <input type="text" class="input_search" v-model="createPlan.f_plan_name"
211
+ style="width: 60%" placeholder="请选择" />
212
+ </div>
213
+ <div class="form-group col-sm-4" >
214
+ <label class="font_normal_body">计划年份:</label>
215
+ <v-select
216
+ class="select select_list"
217
+ :value.sync="createPlan.f_plan_year"
218
+ v-model="createPlan.f_plan_year"
219
+ :search="false"
220
+ :options='yearList'
221
+ placeholder='请选择'
222
+ close-on-select
223
+ value-single
224
+ >
225
+ </v-select>
226
+ </div>
227
+ <div class="form-group col-sm-4" >
228
+ <label class="font_normal_body">计划月份:</label>
229
+ <v-select
230
+ class="select select_list"
231
+ :value.sync="createPlan.f_plan_month"
232
+ v-model="createPlan.f_plan_month"
233
+ :search="false"
234
+ :options='monthList'
235
+ placeholder='请选择'
236
+ close-on-select
237
+ value-single>
238
+ </v-select>
239
+ </div>
240
+ <div class="form-group col-sm-4" >
241
+ <label class="font_normal_body">是否共享:</label>
242
+ <v-select
243
+ class="select select_list"
244
+ :search="false"
245
+ :value.sync="createPlan.isShare"
246
+ v-model="createPlan.isShare"
247
+ :options='isAndNot'
248
+ placeholder='请选择'
249
+ close-on-select
250
+ value-single
251
+ >
252
+ </v-select>
253
+ </div>
254
+ <div class="form-group col-sm-4" v-show="createPlan.isShare=='' && ismulchecker">
255
+ <label class="font_normal_body">安&ensp;检&ensp;员:</label>
256
+ <v-select
257
+ class="select select_list"
258
+ :value.sync="createPlan.checkers"
259
+ v-model="createPlan.checkers"
260
+ :options='checker'
261
+ placeholder='请选择'
262
+ :multiple="true"
263
+ >
264
+ </v-select>
265
+ </div>
266
+ <div class="form-group col-sm-4" v-show="createPlan.isShare=='否'">
267
+ <label class="font_normal_body">安&ensp;检&ensp;员:</label>
268
+ <v-select
269
+ class="select select_list"
270
+ :value.sync="createPlan.checker"
271
+ v-model="createPlan.checker"
272
+ :options='checker'
273
+ placeholder='请选择'
274
+ close-on-select
275
+ value-single
276
+ >
277
+ </v-select>
278
+ </div>
279
+
280
+ <div class="form-group col-sm-4" >
281
+ <label class="font_normal_body">安检类型:</label>
282
+ <v-select
283
+ class="select select_list"
284
+ :value.sync="createPlan.f_safecheck_type"
285
+ v-model="createPlan.f_safecheck_type"
286
+ :search="false"
287
+ :options='ntoway'
288
+ placeholder='请选择'
289
+ close-on-select
290
+ value-single
291
+ >
292
+ </v-select>
293
+ </div>
294
+ </div>
295
+ </div>
296
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
297
+ <button class="button_search" style="margin-right: 15px" @click="addNewPlan()">创建计划</button>
298
+ <button class="button_search" @click="cancel">取消</button>
299
+ </div>
300
+ </modal>
301
+ <modal :show.sync="showUpPlan" v-ref:modal2 :backdrop="false">
302
+ <div slot="modal-header" class="modal-header">
303
+ <h4 class="modal-title">
304
+ 修改计划
305
+ </h4>
306
+ </div>
307
+ <div slot="modal-body" class="modal-body">
308
+ <div class="row">
309
+ <div class="form-group col-sm-4" >
310
+ <label class="font_normal_body">计划名称:</label>
311
+ <input type="text" class="input_search" v-model="upCheckPlan.f_plan_name"
312
+ style="width: 60%" />
313
+ </div>
314
+ <div class="form-group col-sm-4" >
315
+ <label class="font_normal_body">计划年份:</label>
316
+ <v-select
317
+ class="select select_list"
318
+ :value.sync="upCheckPlan.f_plan_year"
319
+ v-model="upCheckPlan.f_plan_year"
320
+ :search="false"
321
+ :value="upCheckPlan.f_plan_year"
322
+ :options='yearList'
323
+
324
+ close-on-select
325
+ value-single>
326
+
327
+
328
+ </v-select>
329
+ <!-- <datepicker
330
+ placeholder='请选择'
331
+ style="width:60%"
332
+ :disabled-days-of-week="[]"
333
+ :format="'yyyy'"
334
+ :show-rest-button="reset"
335
+ :value.sync="upCheckPlan.f_plan_year"
336
+ v-model="upCheckPlan.f_plan_year">
337
+ </datepicker>-->
338
+ </div>
339
+ <div class="form-group col-sm-4" >
340
+ <label class="font_normal_body">计划月份:</label>
341
+ <v-select
342
+ class="select select_list"
343
+ :value.sync="upCheckPlan.f_plan_month"
344
+ v-model="upCheckPlan.f_plan_month"
345
+
346
+ :options='monthList'
347
+ close-on-select
348
+ value-single>
349
+ </v-select>
350
+ </div>
351
+ <div class="form-group col-sm-4" >
352
+ <label class="font_normal_body">是否共享:</label>
353
+ <v-select
354
+ class="select select_list"
355
+ :search="false"
356
+ :value.sync="upCheckPlan.isShare"
357
+ v-model="upCheckPlan.isShare"
358
+ :options='isAndNot'
359
+ placeholder='请选择'
360
+ close-on-select
361
+ value-single
362
+ >
363
+ </v-select>
364
+ </div>
365
+ <div class="form-group col-sm-4" v-show="upCheckPlan.isShare=='是' && ismulchecker">
366
+ <label class="font_normal_body">安&ensp;检&ensp;员:</label>
367
+ <v-select
368
+ class="select select_list"
369
+ :value.sync="upCheckPlan.checkers"
370
+ v-model="upCheckPlan.checkers"
371
+ :options='checker'
372
+ placeholder='请选择'
373
+ :multiple="true"
374
+ >
375
+ </v-select>
376
+ </div>
377
+ <div class="form-group col-sm-4" v-show="upCheckPlan.isShare=='否'">
378
+ <label class="font_normal_body">安&ensp;检&ensp;员:</label>
379
+ <v-select
380
+ class="select select_list"
381
+ :value.sync="upCheckPlan.checker"
382
+ v-model="upCheckPlan.checker"
383
+ :options='checker'
384
+ close-on-select
385
+ value-single
386
+ >
387
+ </v-select>
388
+ </div>
389
+
390
+ <div class="form-group col-sm-4">
391
+ <label class="font_normal_body">安检类型:</label>
392
+ <v-select
393
+ class="select select_list"
394
+ :value.sync="upCheckPlan.f_safecheck_type"
395
+ v-model="upCheckPlan.f_safecheck_type"
396
+ :options='ntoway'
397
+ close-on-select
398
+ value-single
399
+ >
400
+ </v-select>
401
+ </div>
402
+ </div>
403
+ </div>
404
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
405
+ <button class="button_search" style="margin-right: 15px" @click="upPlan()">保存修改</button>
406
+ <button class="button_search" @click="cancel">取消</button>
407
+ </div>
408
+ </modal>
409
+ </div>
410
+ </template>
411
+
412
+ <script>
413
+ import {SearchList,HttpResetClass, PagedList} from "vue-client";
414
+ import * as Util from "../Util";
415
+ import Vue from "vue";
416
+ import AppData from "../../stores/AppData";
417
+
418
+ export default {
419
+ name: "PlanManage",
420
+ title: '计划管理',
421
+ data() {
422
+ return {
423
+ ismulchecker:this.$appdata.getSingleValue('计划安检员多选')?true:false,
424
+ a:'1',
425
+ opt:[{label:"按时间降序",value:"按时间降序"},{label:"按时间升序",value:"按时间升序"}],
426
+ currentorder:'按时间降序',
427
+ isdelete:this.$login.r ? this.$login.r.includes("安检计划删除"):false,
428
+ checkplan : new SearchList(true),
429
+ selectPlan:{id:''},
430
+ upCheckPlan:{
431
+ f_plan_name:'',
432
+ f_safecheck_type:'',
433
+ f_plan_year:'',
434
+ f_plan_month:'',
435
+ f_checker_id:'',
436
+ isShare:'',
437
+ f_checker:'',
438
+ f_checkerstr:'',
439
+ checker:{},
440
+ checkers:[]
441
+ },
442
+ isSend:false,
443
+ createPlan:{
444
+ f_plan_name:'',
445
+ f_plan_year:'',
446
+ f_plan_month:'',
447
+ isShare:'',
448
+ f_issued:'',
449
+ f_checker_id:null,
450
+ checker:{},
451
+ checkers:[],
452
+ f_checker:null,
453
+ f_checkerstr:null,
454
+ f_safecheck_type:'',
455
+ },
456
+ planCondition:{},
457
+ showCondtion:false,
458
+ showCreatePlan:false,
459
+ showUpPlan:false,
460
+ isAndNot:[{label:'是',value:'是'},{label:'否',value:'否'}],
461
+ conIsAndNot:[{label:'是',value:'is null'},{label:'否',value:'is not null'}],
462
+ 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}],
463
+ 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}],
464
+ safechecktype:[{label:'年度普检',value:'年度普检'}],
465
+ checker:[],
466
+ checkertCon:[],
467
+ userlogin:{
468
+ id:this.$login.f.id,
469
+ name:this.$login.f.name,
470
+ orgid:this.$login.f.orgid,
471
+ orgstr:this.$login.f.orgs,
472
+ }
473
+ //需要测试直接把下面放开即可
474
+ /*userlogin:{
475
+ id:'141701',
476
+ name:'hwq',
477
+ orgid:'35526',
478
+ orgstr:'西华县天然气有限公司'
479
+ }*/
480
+ }
481
+ },
482
+ async ready(){
483
+ await this.loadpage()
484
+ if (!this.userlogin.orgid){
485
+ if (this.$login.f.f_orgids){
486
+ 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
487
+ }else {
488
+ this.userlogin.orgid = ''
489
+ }
490
+ }
491
+ },
492
+ computed: {
493
+ ntoway() {
494
+ /*/!* return AppData.getParam('安检类型')*!/*/
495
+ return this.$appdata.getParam('安检类型')
496
+ }
497
+ },
498
+ methods:{
499
+ /* ntoway() {
500
+ /!* return AppData.getParam('安检类型')*!/
501
+ return Vue.$appdata.getParam('安检类型')
502
+ },*/
503
+ async loadpage(){
504
+ //await this.checkplan.searchList("/rs/sql/预约计划下发", {},{groupitem:"",f_filialeids:"('"+this.userlogin.orgid+"')",orderitem:"f_create_time desc"})
505
+ await this.loadCheckPlan()
506
+ await this.searchChecker(this.userlogin.id)
507
+ },
508
+ getRes(obj) {
509
+ console.log("----obj"+JSON.stringify(obj.resids))
510
+ console.log(obj)
511
+ if(obj.resids.length>0 && obj.resids[0]!=this.userlogin.orgid && obj.resids[0]){
512
+ this.userlogin.orgid=obj.resids[0]
513
+ this.userlogin.orgstr=obj.res[0]
514
+ if(this.$refs.item && this.$refs.user){
515
+ this.loadpage()
516
+ this.selectPlan={id:""}
517
+ this.$refs.item.model.rows=[]
518
+ this.$refs.user.model.rows=[]
519
+ this.$refs.user.loadpage()
520
+ }
521
+ }
522
+ },
523
+ getConList(field){
524
+ return [{label:'全部',value:''}, ...this[field]]
525
+ },
526
+ selectPlanChange(plan){
527
+ this.selectPlan=plan
528
+ //this.upCheckPlan=plan
529
+ },
530
+ showUserCondition(){
531
+ this.showCondtion=true
532
+ },
533
+ showcCreatePlan(){
534
+ this.showCreatePlan=true
535
+ },
536
+ cancel(){
537
+ this.showCondtion=false
538
+ this.showCreatePlan=false
539
+ this.showUpPlan=false
540
+ },
541
+ //新建计划
542
+ async addNewPlan() {
543
+ if(!this.validationCreatePlan()){
544
+ return
545
+ }
546
+ this.isSend=true
547
+ let res=await new HttpResetClass().load("POST","/rs/sql/getCheckplan", {data: {condition:"f_plan_name='"+this.createPlan.f_plan_name+"'",sortfield:'f_create_time desc'}})
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
+ if(this.ismulchecker && this.createPlan.checkers.length > 0){
556
+ this.createPlan.checkers.forEach((value) => {
557
+ this.createPlan.f_checkerstr += `${value},`
558
+ })
559
+ this.createPlan.f_checkerstr = this.createPlan.f_checkerstr.slice(0, -1)
560
+ }
561
+ this.createPlan.f_checker_id=null
562
+ this.createPlan.f_checker=null
563
+ }else{
564
+ this.createPlan.f_checker_id=this.createPlan.checker.id
565
+ this.createPlan.f_checker=this.createPlan.checker.name
566
+ }
567
+ console.log("this.createPlan.f_checker:"+this.createPlan.f_checker)
568
+ this.createPlan.f_plan_type='预约计划'
569
+ this.createPlan.f_subcompany=this.userlogin.orgstr
570
+ this.createPlan.f_filialeid=this.userlogin.orgid
571
+ this.createPlan.f_create_operator=this.userlogin.name
572
+ this.createPlan.f_create_time=Util.toStandardTimeString()
573
+ await new HttpResetClass().load('POST',"/rs/logic/createCheckPlan", {"data": this.createPlan},{resolveMsg : '新建计划成功!', rejectMsg : '新建计划失败!'})
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
+ checkers:[],
584
+ f_checker:null,
585
+ f_checkerstr:null,
586
+ f_safecheck_type:'',
587
+ f_create_operator:''
588
+ }
589
+ await this.loadCheckPlan()
590
+ this.isSend=false
591
+
592
+ },
593
+ validationCreatePlan(){
594
+ if(!this.createPlan.f_plan_name){
595
+ Vue.showMessage("请输入安检计划名称!")
596
+ return false
597
+ }
598
+ if(!this.createPlan.f_plan_year){
599
+ Vue.showMessage("请选择安检年份!")
600
+ return false
601
+ }
602
+ if(!this.createPlan.f_plan_month){
603
+ Vue.showMessage("请选择安检月份!")
604
+ return false
605
+ }
606
+ if(this.createPlan.isShare=="否"){
607
+ if(JSON.stringify(this.createPlan.checker)=='{}'){
608
+ Vue.showMessage("请选择安检人员!")
609
+ return false
610
+ }
611
+ }else{
612
+ this.createPlan.f_checker=''
613
+ }
614
+ if(!this.createPlan.f_safecheck_type){
615
+ Vue.showMessage("请选择安检类型!")
616
+ return false
617
+ }
618
+ return true
619
+ },
620
+ //查询安检员selectChanged
621
+ async searchChecker(id){
622
+ let res=await new HttpResetClass().load('POST', '/rs/search', {
623
+ data:{
624
+ source: `this.getSpecialResByType($user$).where(row.getAttributes().get($rolestr$)!=null ).where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1)`,
625
+ userid: this.userlogin.orgid
626
+ }
627
+ }, {resolveMsg: null, rejectMsg: null})
628
+ let arr = []
629
+ res.data.forEach((resRow) => {
630
+ if (!arr.includes(resRow.name) && resRow.state == '在职'){
631
+ arr.push(resRow.name)
632
+ this.checker.push({label:resRow.name,value:resRow})
633
+ }
634
+ })
635
+ },
636
+ //设置属性值
637
+ setProperty(modulename, property, value) {
638
+ console.log(modulename+"新添--"+property+"--"+value)
639
+ if(value=='全部'){
640
+ this[modulename].search.setField(property, '')
641
+ }else{
642
+ this[modulename].search.setField(property, value)
643
+ }
644
+ },
645
+ //按条件查询所有安检计划
646
+ async loadCheckPlan() {
647
+ this.isSend=true
648
+ this.checkplan.check.checkescheckes=[]
649
+ let fieldValue=''
650
+ switch(this.currentorder){
651
+ case "按时间降序":
652
+ fieldValue='f_create_time desc'
653
+ break
654
+ case "按时间升序":
655
+ fieldValue='f_create_time'
656
+ break
657
+ }
658
+ console.log("--------fieldValue"+fieldValue)
659
+ this.cancel()
660
+ await this.checkplan.searchList("/rs/sql/预约计划下发",
661
+ {"f_plan_name": "f_plan_name like '%{}%'",
662
+ "f_plan_year":"f_plan_year={}",
663
+ "f_plan_month":"f_plan_month={}",
664
+ "checkerid":"f_checker_id='{}'",
665
+ "isAndNot":"f_checker {}",
666
+ "safechecktype":"f_safecheck_type='{}'",
667
+ "issude":"f_issued = '{}'",
668
+ "f_create_operator": "f_create_operator like '%{}%'"
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
+ if(this.ismulchecker && this.upCheckPlan.checkers.length > 0){
718
+ this.upCheckPlan.checkers.forEach((value) => {
719
+ this.upCheckPlan.f_checkerstr += `${value},`
720
+ })
721
+ this.upCheckPlan.f_checkerstr = this.upCheckPlan.f_checkerstr.slice(0, -1)
722
+ }
723
+ this.upCheckPlan.f_checker_id=null
724
+ this.upCheckPlan.f_checker=null
725
+ }else{
726
+ this.upCheckPlan.f_checker_id=this.upCheckPlan.checker.id
727
+ this.upCheckPlan.f_checker=this.upCheckPlan.checker.name
728
+ }
729
+ this.isSend=true
730
+ let res=await new HttpResetClass().load("POST", "/rs/logic/updateCheckPlan", {
731
+ data:{
732
+ checkers:this.createPlan.checkers,
733
+ f_checkerstr:this.createPlan.f_checkerstr,
734
+ f_checker:this.upCheckPlan.f_checker,
735
+ f_safecheck_type:this.upCheckPlan.f_safecheck_type,
736
+ f_checker_id:this.upCheckPlan.f_checker_id,
737
+ f_plan_name:this.upCheckPlan.f_plan_name,
738
+ f_plan_year:this.upCheckPlan.f_plan_year,
739
+ f_plan_month:this.upCheckPlan.f_plan_month,
740
+ f_plan_id:this.upCheckPlan.id
741
+ }
742
+ }, {resolveMsg: null, rejectMsg: null})
743
+ if(res.data.code==200){
744
+ this.$showMessage("修改成功!")
745
+ this.cancel()
746
+ await this.loadCheckPlan()
747
+ }else{
748
+ this.$showMessage("修改失败!")
749
+ }
750
+ this.isSend=false
751
+ },
752
+ //下发安检计划
753
+ async sendCheckPlan(f){
754
+ if(this.checkplan.check.checkes.length<1){
755
+ this.$showMessage("请选择要下发的安检计划")
756
+ return
757
+ }
758
+ this.isSend=true
759
+ let res=await new HttpResetClass().load("POST", "/rs/logic/NewBespeakCheckPlan", {
760
+ data:{
761
+ f_issued:'是',
762
+ f_issue_time:Util.toStandardTimeString(),
763
+ f_send_operator:this.userlogin.name,
764
+ param:this.checkplan.check.checkes,
765
+ }
766
+ }, {resolveMsg: null, rejectMsg: null})
767
+ if(res.data.code==200){
768
+ //Vue.showMessage("下发成功!其中有"+res.data.repet+"个计划己经是下发状态")
769
+ this.$showMessage("下发成功!")
770
+ }else{
771
+ this.$showMessage("下发失败!")
772
+ }
773
+ await this.loadCheckPlan()
774
+ this.isSend=false
775
+ },
776
+ //删除安检计划
777
+ async delCheckPlan(f){
778
+ if(this.checkplan.check.checkes.length<1){
779
+ this.$showMessage("请选择要删除的安检计划")
780
+ return
781
+ }
782
+ this.isSend=true
783
+ let res=await new HttpResetClass().load("POST", "/rs/logic/deleteCheckPlan", {
784
+ data:{
785
+ f_operator:this.userlogin.name,//global.login.name,
786
+ condition:"",
787
+ switchCheckAll:true,
788
+ checkAll:false,
789
+ param:this.checkplan.check.checkes,
790
+ columnName: "f_plan_id"
791
+ }
792
+ }, {resolveMsg: null, rejectMsg: null})
793
+ console.log(JSON.stringify(res))
794
+ if(res.data.code==200){
795
+ this.$showMessage("删除成功!")
796
+ }else{
797
+ this.$showMessage("删除失败!")
798
+ }
799
+ if(this.checkplan.check.checkes.indexOf(this.selectPlan.id)!= -1){
800
+ this.selectPlan={id:''}
801
+ console.log("包含了清空selectplan")
802
+ }
803
+ await this.loadCheckPlan()
804
+ this.isSend=false
805
+ },
806
+ async refresh(){
807
+ this.$refs.item.$refs.paged.$refs.criteria.search()
808
+ this.$refs.user.$refs.paged.$refs.criteria.search()
809
+ await this.loadCheckPlan()
810
+ },
811
+ async refreshPlan(){
812
+ this.$refs.item.$refs.paged.$refs.criteria.search()
813
+ await this.loadCheckPlan()
814
+ }
815
+ }
816
+ }
817
+ </script>
818
+
819
+ <style scoped>
820
+ .safe-planfont{
821
+ font-family: MicrosoftYaHei;
822
+ font-size: 15px;
823
+ font-weight: normal;
824
+ font-stretch: normal;
825
+ letter-spacing: 2px;
826
+ color: #333333;
827
+ line-height: 25px;
828
+ }
829
+ .safe-bodyfont{
830
+ font-family: MicrosoftYaHei;
831
+ font-size: 14px;
832
+ font-weight: normal;
833
+ font-stretch: normal;
834
+ letter-spacing: 0px;
835
+ color: #999999;
836
+ line-height: 30px;
837
+ }
838
+ .safe-leftplan{
839
+ height:auto;
840
+ border-bottom:1px solid #ececec;
841
+ padding: 10px 5px
842
+ }
843
+ .leftplan-center{
844
+ border-top:1px solid #ececec;
845
+ border-bottom:1px solid #ececec;
846
+ }
847
+ .safe_p{
848
+ white-space: nowrap;
849
+ overflow: hidden;
850
+ text-overflow: ellipsis;
851
+ }
852
+ .safe-div-p{
853
+ color: #4792de;
854
+ text-align: end;
855
+ padding: 8px 15px;
856
+ }
857
+ .safe_list_li:hover{
858
+ background-color: rgb(245,246,247);
859
+ }
860
+ .safe-selectplan{
861
+ pointer-events: none;
862
+ background-color: rgb(216,234,251);
863
+ }
864
+ .safe_plan_list{
865
+ height: 80%;
866
+ overflow: scroll;
867
+ }
868
+
869
+ </style>
870
+ <style>
871
+ .safe_plan_list::-webkit-scrollbar{
872
+ background-color: #F5F5F5;
873
+ }
874
+
875
+ /*定义滚动条轨道 内阴影+圆角*/
876
+ .safe_plan_list::-webkit-scrollbar-track{
877
+ -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
878
+ border-radius: 10px;
879
+ background-color: #F5F5F5;
880
+ }
881
+
882
+ /*定义滑块 内阴影+圆角*/
883
+ .safe_plan_list::-webkit-scrollbar-thumb{
884
+ border-radius: 10px;
885
+ -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
886
+ background-color: #F5F5F5;
887
+ }
888
+ </style>