safecheck-client 3.0.39-7 → 3.0.39-70

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (333) 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 +5 -5
  46. package/publish.bat +7 -7
  47. package/release.bat +5 -5
  48. package/src/App.vue +31 -26
  49. package/src/Widget.vue +13 -13
  50. package/src/android-bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  51. package/src/android-bootstrap/less/.csscomb.json +304 -304
  52. package/src/android-bootstrap/less/.csslintrc +19 -19
  53. package/src/android-bootstrap/less/alerts.less +73 -73
  54. package/src/android-bootstrap/less/badges.less +66 -66
  55. package/src/android-bootstrap/less/bootstrap.less +56 -56
  56. package/src/android-bootstrap/less/breadcrumbs.less +26 -26
  57. package/src/android-bootstrap/less/button-groups.less +247 -247
  58. package/src/android-bootstrap/less/buttons.less +173 -173
  59. package/src/android-bootstrap/less/carousel.less +269 -269
  60. package/src/android-bootstrap/less/close.less +34 -34
  61. package/src/android-bootstrap/less/code.less +69 -69
  62. package/src/android-bootstrap/less/component-animations.less +33 -33
  63. package/src/android-bootstrap/less/grid.less +84 -84
  64. package/src/android-bootstrap/less/input-groups.less +167 -167
  65. package/src/android-bootstrap/less/jumbotron.less +52 -52
  66. package/src/android-bootstrap/less/labels.less +64 -64
  67. package/src/android-bootstrap/less/list-group.less +141 -141
  68. package/src/android-bootstrap/less/media.less +66 -66
  69. package/src/android-bootstrap/less/mixins/alerts.less +14 -14
  70. package/src/android-bootstrap/less/mixins/background-variant.less +9 -9
  71. package/src/android-bootstrap/less/mixins/border-radius.less +18 -18
  72. package/src/android-bootstrap/less/mixins/buttons.less +69 -69
  73. package/src/android-bootstrap/less/mixins/center-block.less +7 -7
  74. package/src/android-bootstrap/less/mixins/clearfix.less +22 -22
  75. package/src/android-bootstrap/less/mixins/forms.less +90 -90
  76. package/src/android-bootstrap/less/mixins/gradients.less +59 -59
  77. package/src/android-bootstrap/less/mixins/grid-framework.less +92 -92
  78. package/src/android-bootstrap/less/mixins/grid.less +122 -122
  79. package/src/android-bootstrap/less/mixins/hide-text.less +21 -21
  80. package/src/android-bootstrap/less/mixins/image.less +33 -33
  81. package/src/android-bootstrap/less/mixins/labels.less +12 -12
  82. package/src/android-bootstrap/less/mixins/list-group.less +30 -30
  83. package/src/android-bootstrap/less/mixins/nav-divider.less +10 -10
  84. package/src/android-bootstrap/less/mixins/nav-vertical-align.less +9 -9
  85. package/src/android-bootstrap/less/mixins/opacity.less +8 -8
  86. package/src/android-bootstrap/less/mixins/pagination.less +24 -24
  87. package/src/android-bootstrap/less/mixins/panels.less +24 -24
  88. package/src/android-bootstrap/less/mixins/progress-bar.less +10 -10
  89. package/src/android-bootstrap/less/mixins/reset-filter.less +8 -8
  90. package/src/android-bootstrap/less/mixins/reset-text.less +18 -18
  91. package/src/android-bootstrap/less/mixins/resize.less +6 -6
  92. package/src/android-bootstrap/less/mixins/responsive-visibility.less +15 -15
  93. package/src/android-bootstrap/less/mixins/size.less +10 -10
  94. package/src/android-bootstrap/less/mixins/tab-focus.less +9 -9
  95. package/src/android-bootstrap/less/mixins/table-row.less +44 -44
  96. package/src/android-bootstrap/less/mixins/text-emphasis.less +9 -9
  97. package/src/android-bootstrap/less/mixins/text-overflow.less +8 -8
  98. package/src/android-bootstrap/less/mixins/vendor-prefixes.less +227 -227
  99. package/src/android-bootstrap/less/mixins.less +40 -40
  100. package/src/android-bootstrap/less/modals.less +151 -151
  101. package/src/android-bootstrap/less/navbar.less +660 -660
  102. package/src/android-bootstrap/less/navs.less +290 -290
  103. package/src/android-bootstrap/less/normalize.less +424 -424
  104. package/src/android-bootstrap/less/pager.less +76 -76
  105. package/src/android-bootstrap/less/pagination.less +89 -89
  106. package/src/android-bootstrap/less/panels.less +274 -274
  107. package/src/android-bootstrap/less/popovers.less +131 -131
  108. package/src/android-bootstrap/less/print.less +101 -101
  109. package/src/android-bootstrap/less/progress-bars.less +87 -87
  110. package/src/android-bootstrap/less/responsive-embed.less +35 -35
  111. package/src/android-bootstrap/less/responsive-utilities.less +194 -194
  112. package/src/android-bootstrap/less/scaffolding.less +161 -161
  113. package/src/android-bootstrap/less/tables.less +262 -262
  114. package/src/android-bootstrap/less/theme.less +291 -291
  115. package/src/android-bootstrap/less/thumbnails.less +36 -36
  116. package/src/android-bootstrap/less/tooltip.less +102 -102
  117. package/src/android-bootstrap/less/type.less +303 -303
  118. package/src/android-bootstrap/less/utilities.less +55 -55
  119. package/src/android-bootstrap/less/variables.less +896 -896
  120. package/src/android-bootstrap/less/wells.less +29 -29
  121. package/src/assets//345/256/232/344/275/215.png +0 -0
  122. package/src/bootstrap/less/.csscomb.json +304 -304
  123. package/src/bootstrap/less/.csslintrc +19 -19
  124. package/src/bootstrap/less/alerts.less +73 -73
  125. package/src/bootstrap/less/badges.less +66 -66
  126. package/src/bootstrap/less/breadcrumbs.less +26 -26
  127. package/src/bootstrap/less/button-groups.less +247 -247
  128. package/src/bootstrap/less/buttons.less +172 -172
  129. package/src/bootstrap/less/carousel.less +269 -269
  130. package/src/bootstrap/less/close.less +34 -34
  131. package/src/bootstrap/less/code.less +69 -69
  132. package/src/bootstrap/less/component-animations.less +33 -33
  133. package/src/bootstrap/less/dropdowns.less +216 -216
  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/pagination.less +89 -89
  175. package/src/bootstrap/less/panels.less +275 -275
  176. package/src/bootstrap/less/popovers.less +131 -131
  177. package/src/bootstrap/less/print.less +101 -101
  178. package/src/bootstrap/less/progress-bars.less +87 -87
  179. package/src/bootstrap/less/responsive-embed.less +35 -35
  180. package/src/bootstrap/less/responsive-utilities.less +194 -194
  181. package/src/bootstrap/less/scaffolding.less +161 -161
  182. package/src/bootstrap/less/theme.less +291 -291
  183. package/src/bootstrap/less/thumbnails.less +36 -36
  184. package/src/bootstrap/less/tooltip.less +102 -102
  185. package/src/bootstrap/less/type.less +303 -303
  186. package/src/bootstrap/less/utilities.less +55 -55
  187. package/src/bootstrap/less/wells.less +29 -29
  188. package/src/components/FileUpload.vue +696 -696
  189. package/src/components/Hello.vue +39 -39
  190. package/src/components/LeftTree.vue +27 -27
  191. package/src/components/android/AndroidDefectDeal.vue +2 -2
  192. package/src/components/android/AttendanceTally.vue +116 -116
  193. package/src/components/android/Blank.vue +10 -10
  194. package/src/components/android/CheckUnplanPage.vue +56 -56
  195. package/src/components/android/Checker.vue +12 -12
  196. package/src/components/android/CheckerAnnual.vue +81 -81
  197. package/src/components/android/CheckerAvarta.vue +82 -82
  198. package/src/components/android/EquipmentInspection.vue +348 -348
  199. package/src/components/android/FootprintMap.vue +120 -120
  200. package/src/components/android/HiddentroubleInvestigation.vue +192 -192
  201. package/src/components/android/MasterMain.vue +77 -77
  202. package/src/components/android/Menu.vue +132 -132
  203. package/src/components/android/NewCheckpaperAndroid.vue +2 -2
  204. package/src/components/android/PaperAlarm.vue +85 -85
  205. package/src/components/android/PaperDeviceNoncivil.vue +214 -214
  206. package/src/components/android/PlumberAnnual.vue +83 -83
  207. package/src/components/android/PlumberAnnualDetail.vue +65 -65
  208. package/src/components/android/PlumberMonthly.vue +84 -84
  209. package/src/components/android/PostMap.vue +83 -83
  210. package/src/components/android/QueryCheckHistory.vue +122 -122
  211. package/src/components/android/QueryCheckHistoryItem.vue +62 -62
  212. package/src/components/android/RepairMain.vue +60 -60
  213. package/src/components/android/Repairman.vue +12 -12
  214. package/src/components/android/SafecheckOrderV.vue +2291 -2291
  215. package/src/components/android/StationMaster.vue +12 -12
  216. package/src/components/android/rejectInspecCheck.vue +322 -0
  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/pc/AddPlanItemYyChange.vue +5 -1
  224. package/src/components/pc/NewCheckpaper.vue +108 -14
  225. package/src/components/pc/PaperDefectMain.vue +1 -1
  226. package/src/components/pc/RoleSelector.vue +172 -172
  227. package/src/components/pc/SafeCheckOrder/SafeCheckOrderList.vue +34 -0
  228. package/src/components/phonestate/MonthlyTraffic.vue +66 -66
  229. package/src/components/phonestate/MonthlyTrafficRouter.vue +15 -15
  230. package/src/components/phonestate/PostMap.vue +82 -82
  231. package/src/components/querycheckpaper/PaperItem.vue +59 -59
  232. package/src/components/rongcheng/AddPlanItem.vue +344 -344
  233. package/src/components/rongcheng/CheckCurrentCreate.vue +1081 -1081
  234. package/src/components/rongcheng/PaperDefectMain.vue +828 -828
  235. package/src/components/rongcheng/PaperStatem.vue +6 -6
  236. package/src/components/rongcheng/PhoneUpUserinfo.vue +1 -0
  237. package/src/components/userfile/MeterFile.vue +145 -145
  238. package/src/components/userfile/MeterModify.vue +46 -46
  239. package/src/components/userfileaudit/MeterAuditFile.vue +129 -129
  240. package/src/filiale/BFshiye/android/AndroidDefectDeal.vue +652 -0
  241. package/src/filiale/BFshiye/android/PhoneUpUserinfo.vue +3 -1
  242. package/src/filiale/BFshiye/android/SafecheckUserInfo.vue +2 -8
  243. package/src/filiale/BFshiye/pc/DefectListNew.vue +637 -0
  244. package/src/filiale/BFshiye/pc/checkUserList.vue +772 -772
  245. package/src/filiale/BFshiye/pc.js +17 -16
  246. package/src/filiale/baiyin/android/SafecheckUserInfo.vue +775 -0
  247. package/src/filiale/baiyin/android.js +12 -11
  248. package/src/filiale/bayan/pc/NewCheckpaper.vue +2 -2
  249. package/src/filiale/bayan/pc/SelectAreaReport.vue +1 -0
  250. package/src/filiale/bayan/pc/SummaryOfSecurityInspectionProgress.vue +7 -7
  251. package/src/filiale/dexin/android/SafecheckOrderV.vue +1 -1
  252. package/src/filiale/dexin/android/SafecheckOrderVTemp.vue +4 -1
  253. package/src/filiale/dexin/pc/PaperList.vue +840 -840
  254. package/src/filiale/hanzhong/pc/CheckHiddenDanger.vue +2 -2
  255. package/src/filiale/hanzhong/pc/CheckNumberStatistics.vue +1 -1
  256. package/src/filiale/hanzhong/pc/CheckSafeDetail.vue +6 -1
  257. package/src/filiale/hanzhong/pc/CheckSafeStatus.vue +1 -1
  258. package/src/filiale/hanzhong/pc/CheckerSafeDetail.vue +1 -1
  259. package/src/filiale/huatong/android/SafecheckOrderV.vue +2 -2
  260. package/src/filiale/jinhuang/android/AddPlanItem.vue +430 -0
  261. package/src/filiale/jinhuang/android/PhoneUpUserinfo.vue +182 -144
  262. package/src/filiale/jinhuang/android.js +2 -1
  263. package/src/filiale/kelai/android/PaperFeedback.vue +1384 -1370
  264. package/src/filiale/kelai/android/PhoneUpUserinfo.vue +1 -1
  265. package/src/filiale/kelai/android/SafecheckOrderV.vue +1 -1
  266. package/src/filiale/kelai/android/SafecheckUserInfo.vue +1 -1
  267. package/src/filiale/kelai/pc/PaperList.vue +13 -0
  268. package/src/filiale/kelai/pc/UserInfoAudit.vue +126 -90
  269. package/src/filiale/liaoyuan/pc/DefectPaperWeiXiu.vue +4 -6
  270. package/src/filiale/liaoyuan/pc/NewCheckpaper.vue +7 -7
  271. package/src/filiale/liaoyuan/pc/checkPlanList.vue +2 -3
  272. package/src/filiale/qingjian/android/PhoneUpUserinfo.vue +1357 -1270
  273. package/src/filiale/qingjian/android/SafecheckDevices.vue +1 -1
  274. package/src/filiale/qingjian/android/SafecheckOrderV.vue +3 -0
  275. package/src/filiale/qingjian/android/SafecheckUserInfo.vue +823 -800
  276. package/src/filiale/qingjian/pc/NewCheckpaper.vue +1919 -1919
  277. package/src/filiale/rongchuang/android/AddPlanItemVisitingWithoutMeeting.vue +454 -0
  278. package/src/filiale/rongchuang/android/AddPlanItemYy.vue +498 -0
  279. package/src/filiale/rongchuang/android/PhoneUpUserinfo.vue +1262 -0
  280. package/src/filiale/rongchuang/android/SafecheckDevices.vue +1 -1
  281. package/src/filiale/rongchuang/android/SafecheckOrderV.vue +3 -2
  282. package/src/filiale/rongchuang/android.js +3 -0
  283. package/src/filiale/rongchuang/pc/NewCheckpaper.vue +13 -1
  284. package/src/filiale/rongchuang/pc/checkPlanList.vue +398 -0
  285. package/src/filiale/rongchuang/pc.js +18 -17
  286. package/src/filiale/shanxian/pc/NewCheckpaper.vue +1 -1
  287. package/src/filiale/siyang/android/PhoneInsurancePurchaseDetail.vue +532 -498
  288. package/src/filiale/tongchuan/android/PhoneUpUserinfo.vue +1340 -1343
  289. package/src/filiale/tongchuan/android/SafecheckDevices.vue +909 -885
  290. package/src/filiale/tongchuan/pc/AMapTrailShowZk.vue +226 -0
  291. package/src/filiale/tongchuan/pc/CheckPlanCountChartAreaByWangGeYuan.vue +137 -0
  292. package/src/filiale/tongchuan/pc/CheckSearchUser.vue +47 -1
  293. package/src/filiale/tongchuan/pc/DefectPaperWeiXiu.vue +46 -0
  294. package/src/filiale/tongchuan/pc/NoCheckplanSafecheck.vue +34 -0
  295. package/src/filiale/tongchuan/pc/PaperDefectMain.vue +34 -0
  296. package/src/filiale/tongchuan/pc/PaperList.vue +44 -10
  297. package/src/filiale/tongchuan/pc/PersonTrack.vue +269 -0
  298. package/src/filiale/tongchuan/pc/SelectCheckPlan.vue +42 -2
  299. package/src/filiale/tongchuan/pc.js +3 -0
  300. package/src/filiale/wensu/android/SafecheckOrderV.vue +2444 -2444
  301. package/src/filiale/wensu/android/SafecheckUserInfo.vue +712 -712
  302. package/src/filiale/wensu/pc/CheckSearchUser.vue +1251 -1251
  303. package/src/filiale/wenxi/pc/PaperList.vue +9 -3
  304. package/src/filiale/wuan/android/SafecheckOrderV.vue +1 -1
  305. package/src/filiale/wuan/android/SafecheckUserInfo.vue +12 -8
  306. package/src/filiale/yangchunboneng/android/AndiroidSecurityAudit.vue +2 -1
  307. package/src/filiale/yangchunboneng/android/CurrentCreate.vue +1191 -1191
  308. package/src/filiale/yangchunboneng/android/SafecheckUserInfo.vue +913 -913
  309. package/src/filiale/yangchunboneng/android.js +21 -21
  310. package/src/filiale/yangchunboneng/pc/CheckBookList.vue +353 -353
  311. package/src/filiale/yangchunboneng/pc/CheckPlanAreaList.vue +3 -3
  312. package/src/filiale/yangchunboneng/pc/CheckSearchUser.vue +1197 -1197
  313. package/src/filiale/yangchunboneng/pc/HiddenSituation.vue +171 -171
  314. package/src/filiale/yangchunboneng/pc/PaperDefectMain.vue +1112 -1112
  315. package/src/filiale/yangchunboneng/pc/PaperList.vue +757 -757
  316. package/src/filiale/yangchunboneng/pc/SelectCheckPlan.vue +331 -331
  317. package/src/filiale/yangchunboneng/pc.js +29 -29
  318. package/src/main.js +33 -33
  319. package/src/plugins/LoadData.js +10 -10
  320. package/src/plugins/LoadParams.js +24 -24
  321. package/src/rongcheng.js +319 -319
  322. package/src/safecheck-android.js +316 -315
  323. package/src/stores/wxconfig.js +10 -10
  324. package/src/utils/getNowDate.js +33 -33
  325. package/test/e2e/custom-assertions/elementCount.js +26 -26
  326. package/test/e2e/nightwatch.conf.js +40 -40
  327. package/test/e2e/runner.js +30 -30
  328. package/test/e2e/specs/test.js +13 -13
  329. package/test/unit/.eslintrc +5 -5
  330. package/test/unit/TestUtil.js +62 -62
  331. package/test/unit/context.html +20 -20
  332. package/test/unit/index.js +13 -13
  333. package/yarn-error.log +0 -140
@@ -1,757 +1,757 @@
1
- <template>
2
- <div class="flex-row">
3
- <div class="basic-main">
4
- <criteria-paged v-ref:paged :model="model" @sort="sort">
5
- <criteria v-ref:criteria class="search_area" partial='criteria' @condition-changed='$parent.selfSearch'>
6
- <div class="form-horizontal select-overspread container-fluid auto" novalidate partial>
7
- <div class="row">
8
- <div class="form-group col-sm-2">
9
- <label class="font_normal_body">模糊查询</label>
10
- <input v-model="model.f_userinfo" class="input_search"
11
- condition="(f_userinfo_code like '%{}%' or f_user_name like '%{}%' or f_user_phone like '%{}%' or f_meternumber like '%{}%' or f_address like '%{}%' or f_zuhu_phone like '%${}%' or f_rent_phone like '%${}%')"
12
- placeholder="编号 名称 电话 表号 地址" style="width: 60%" type="text">
13
- </div>
14
- <div class="form-group col-sm-2">
15
- <label class="font_normal_body">客户编号</label>
16
- <input v-model="model.f_userinfo_code" class="input_search" condition="f_userinfo_code='{}'"
17
- placeholder="客户编号" style="width: 60%" type="text">
18
- </div>
19
- <div class="form-group col-sm-2">
20
- <label class="font_normal_body">客户名称</label>
21
- <input v-model="model.f_user_name" class="input_search" condition="f_user_name like '%{}%'"
22
- placeholder="客户名称" style="width: 60%" type="text">
23
- </div>
24
- <div class="form-group col-sm-2">
25
- <label class="font_normal_body">客户电话</label>
26
- <input v-model="model.f_user_phone" class="input_search"
27
- condition=" ( f_user_phone like '%{}%' or f_zuhu_phone like '%${}%' or f_rent_phone like '%${}%' )"
28
- placeholder="客户电话" style="width: 60%" type="text">
29
- </div>
30
- <div class="form-group col-sm-2">
31
- <label class="font_normal_body">客户表号</label>
32
- <input v-model="model.f_meternumber" class="input_search" condition="f_meternumber like '%{}%'"
33
- placeholder="客户表号" style="width: 60%" type="text">
34
- </div>
35
- <div class="form-group col-sm-2">
36
- <label class="font_normal_body">详细地址</label>
37
- <input v-model="model.f_address" class="input_search" condition="f_address like '%{}%'"
38
- placeholder="详细地址" style="width: 60%" type="text">
39
- </div>
40
- <div class="form-group col-sm-2" style="width: auto;margin-top:8px;float: right">
41
-
42
- <export-excel-safe
43
- v-if="$parent.$parent.excelStart"
44
- :choose-col="true" :data="$parent.$parent.searchData"
45
- :field="$parent.$parent.excelHeaders" sql-name="查找安检单" sqlurl="rs/logic/SafeExportExcel"
46
- template-name='安检结果明细'></export-excel-safe>
47
- <!-- <export-excel :data="$parent.$parent.getCondition" -->
48
- <!-- :field="$parent.$parent.getfield"-->
49
- <!-- sqlurl="rs/logic/exportfile" sql-name="chargeQuery" template-name='收费查询导出'-->
50
- <!-- :choose-col="true"></export-excel>-->
51
- <!-- <button class="button_spacing button_search" @click="$parent.$parent.showaudio()" v-if="!$parent.$parent.audioshow">录音</button>-->
52
- <button v-if="$parent.$parent.audioshow" class="button_spacing button_search"
53
- @click="$parent.$parent.showaudio()">隐藏
54
- </button>
55
-
56
- <button class="button_spacing button_search" @click="search()">查询</button>
57
- <button class="button_spacing button_search" @click="$parent.$parent.clear()">清空</button>
58
- <div
59
- :class="{ 'button_shrink_top': $parent.$parent.criteriaShow, 'button_shrink_bottom': !$parent.$parent.criteriaShow }"
60
- class="button_spacing" style="float: right" @click="$parent.$parent.hidden()"></div>
61
- </div>
62
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
63
- <label class="font_normal_body">小&emsp;&emsp;区</label>
64
- <input v-model="model.f_residential_area" class="input_search"
65
- condition="f_residential_area like '%{}%'" placeholder="小区" style="width: 60%" type="text">
66
- </div>
67
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
68
- <label class="font_normal_body">安检计划</label>
69
- <input v-model="$parent.$parent.model.f_check_plan.f_plan_name" class="input_search" placeholder="安检计划"
70
- readonly="readonly" style="width: 60%" type="text" @click="$parent.$parent.showChooser">
71
- </div>
72
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
73
- <label class="font_normal_body">开始时间</label>
74
- <datepicker v-model="model.f_check_start" :disabled-days-of-week="[]" :format="'yyyy-MM-dd'"
75
- :show-rest-button="reset" :value.sync="model.f_check_start"
76
- condition="f_offsite_time > ='{} 00:00:00'" placeholder='开始时间' style="width: 60%">
77
- </datepicker>
78
- <!-- <datepicker-->
79
- <!-- class="select_list select"-->
80
- <!-- :value.sync="model.f_check_start"-->
81
- <!-- placeholder='开始时间' style="width: 60%"-->
82
- <!-- :disabled-days-of-week="[]"-->
83
- <!-- :format="'yyyy-MM-dd'"-->
84
- <!-- :show-rest-button="reset"-->
85
- <!-- v-model="model.f_check_start"-->
86
- <!-- condition="f_offsite_time > ='{} 00:00:00'">-->
87
- <!-- </datepicker>-->
88
- </div>
89
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
90
- <label class="font_normal_body">结束时间</label>
91
- <datepicker v-model="model.f_check_end" :disabled-days-of-week="[]" :format="'yyyy-MM-dd'"
92
- :show-rest-button="reset" :value.sync="model.f_check_end" condition="f_offsite_time <= '{} 23:59:59'"
93
- placeholder='结束时间' style="width: 60%">
94
- </datepicker>
95
- </div>
96
-
97
-
98
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
99
-
100
- <label class="font_normal_body">安检类型</label>
101
- <v-select v-model='model.f_safecheck_type' :options='$parent.$parent.safetype' :value-single="true"
102
- :value.sync="model.f_safecheck_type" class="select_list select" close-on-select
103
- condition="f_safecheck_type = '{}'" placeholder='安检类型' style="width: 60%"></v-select>
104
- </div>
105
-
106
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
107
-
108
- <label class="font_normal_body">客户类型</label>
109
- <v-select v-model='model.f_check_type' :options='$parent.$parent.checktype' :value-single="true"
110
- :value.sync="model.f_check_type" class="select_list select" close-on-select
111
- condition="f_check_type = '{}'" placeholder='客户类型' style="width: 60%"></v-select>
112
- </div>
113
-
114
-
115
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
116
- <label class="font_normal_body">安检状态</label>
117
- <v-select id="f_entry" v-model='model.f_entry' :multiple="true"
118
- :options='$parent.$parent.f_entry_status' :value.sync="model.f_entry" class="select_list select"
119
- condition="" placeholder='安检状态' style="width: 60%"></v-select>
120
- </div>
121
-
122
-
123
- <!-- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">-->
124
- <!-- <label class="font_normal_body">安&ensp;检&ensp;员</label>-->
125
- <!-- <v-select :value.sync="model.f_checker_id" v-model='model.f_checker_id'-->
126
- <!-- :value-single="true" style="width: 60%"-->
127
- <!-- class="select_list select"-->
128
- <!-- :options='$parent.$parent.checkersid' placeholder='安检员'-->
129
- <!-- close-on-select-->
130
- <!-- condition="f_checker_id = '{}'"></v-select>-->
131
- <!-- </div>-->
132
- <!-- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">-->
133
- <!-- <label class="font_normal_body" style="margin-right: 2px">公&emsp;&emsp;司</label>-->
134
- <!-- <right-tree @re-res="$parent.$parent.getRes" :initresid="$parent.$parent.$login.f.orgid">-->
135
- <!-- </right-tree>-->
136
- <!-- </div>-->
137
- <div v-show="$parent.$parent.criteriaShow" class="col-sm-4 form-group" style="margin: 0">
138
- <role-selector-safe
139
- v-ref:selector
140
- v-model="model.f_checker_id" :value-close="false" :value-multiple="true"
141
- :value.sync="model.f_checker_id" condition="f_checker_name in {}" role-lable="安&nbsp;检&nbsp;员&nbsp;"
142
- role-name="安检员" @re-res="$parent.$parent.getRes">
143
- </role-selector-safe>
144
- </div>
145
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
146
- <label class="font_normal_body">片&emsp;&emsp;区</label>
147
- <v-select v-model="model.f_slice_area" :options='$parent.$parent.sliceArea' :value-single="true"
148
- :value.sync="model.f_slice_area" class="select_list select" clear-button close-on-select
149
- condition="f_slice_area='{}'" filer-key="name" placeholder='片区/管理站' style="width: 60%"
150
- @change="$parent.$parent.getmeterbook(model.f_slice_area)">
151
- </v-select>
152
- </div>
153
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
154
- <label class="font_normal_body">抄&ensp;表&ensp;册</label>
155
- <v-select v-model="model.f_meter_book_num" :options='$parent.$parent.cbc' :value-single="true"
156
- :value.sync="model.f_meter_book_num" class="select_list select" clear-button close-on-select
157
- condition="f_meter_book_num={}" filer-key="name" placeholder='抄表册' style="width: 60%">
158
- </v-select>
159
- </div>
160
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
161
- <label class="font_normal_body">省&ensp;市&ensp;区</label>
162
- <v-select v-model="model.f_pcd" :options='$parent.$parent.pcds' :value-single="true"
163
- :value.sync="model.f_pcd" class="select_list select" clear-button close-on-select
164
- condition="f_pcd='{}'" filer-key="name" placeholder='请选择' style="width: 60%">
165
- </v-select>
166
- </div>
167
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
168
- <label class="font_normal_body">计划类型</label>
169
- <v-select v-model="model.f_no_checkplan" :options='$parent.$parent.no_checkplans' :value-single="true"
170
- :value.sync="model.f_no_checkplan" class="select_list select" clear-button close-on-select
171
- condition="f_no_checkplan='{}'" filer-key="name" placeholder='请选择' style="width: 60%">
172
- </v-select>
173
- </div>
174
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
175
- <label class="font_normal_body">客户卡号</label>
176
- <input v-model="model.f_card_id" class="input_search" condition="f_card_id like '%{}%'"
177
- placeholder="客户卡号" style="width: 60%" type="text">
178
- </div>
179
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
180
- <label class="font_normal_body">部&emsp;&emsp;门</label>
181
- <v-select v-model="model.f_department_name" :options='$parent.$parent.departmentArr'
182
- :value-single="true" :value.sync="model.f_department_name" class="select_list select" clear-button
183
- close-on-select filer-key="name" placeholder='请选择' style="width: 60%">
184
- </v-select>
185
- </div>
186
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
187
- <label class="font_normal_body">客户评价</label>
188
- <v-select v-model="model.f_client_evaluation" :options='$parent.$parent.evaluations'
189
- :value-single="true" :value.sync="model.f_client_evaluation" class="select_list select" clear-button
190
- close-on-select condition="f_client_evaluation='{}'" placeholder='客户评价' style="width: 60%">
191
- </v-select>
192
- </div>
193
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
194
- <label class="font_normal_body">首次通气开始</label>
195
- <datepicker v-model="model.f_gas_start" :disabled-days-of-week="[]" :format="'yyyy-MM-dd'"
196
- :show-rest-button="reset" :value.sync="model.f_gas_start" condition="f_uservent_date >='{} 00:00:00'"
197
- placeholder='首次通气开始时间' style="width: 60%">
198
- </datepicker>
199
- </div>
200
- <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
201
- <label class="font_normal_body">首次通气结束</label>
202
- <datepicker v-model="model.f_gas_end" :disabled-days-of-week="[]" :format="'yyyy-MM-dd'"
203
- :show-rest-button="reset" :value.sync="model.f_gas_end" condition="f_uservent_date <= '{} 23:59:59'"
204
- placeholder='首次通气结束时间' style="width: 60%">
205
- </datepicker>
206
- </div>
207
- </div>
208
- <modal v-ref:modal :show.sync="$parent.$parent.showModal" backdrop="false">
209
- <div slot="modal-header" class="modal-header">
210
- <h4 class="modal-title">
211
- 选择计划
212
- </h4>
213
- </div>
214
- <div slot="modal-body" class="modal-body">
215
- <plan-chooser v-ref:chooser :f.sync="$parent.$parent.fun"></plan-chooser>
216
- </div>
217
- <div slot="modal-footer" class="modal-footer" style="text-align: center">
218
- <button class="button_search" @click="$parent.$parent.ok">确认</button>
219
- <button class="button_search" @click="$parent.$parent.cancel">取消</button>
220
- </div>
221
- </modal>
222
- </div>
223
- </criteria>
224
- <data-grid v-ref:grid :model="model" class="list_area table_sy" partial='list' style="overflow: hidden">
225
- <template partial='head'>
226
- <tr>
227
- <th>
228
- <nobr>客户编号</nobr>
229
- </th>
230
- <th>
231
- <nobr>客户名称</nobr>
232
- </th>
233
- <th>
234
- <nobr>客户表号</nobr>
235
- </th>
236
- <th>
237
- <nobr>客户电话</nobr>
238
- </th>
239
- <th>
240
- <nobr>客户类型</nobr>
241
- </th>
242
- <th>
243
- <nobr>客户地址</nobr>
244
- </th>
245
- <th>
246
- <nobr>首次通气时间</nobr>
247
- </th>
248
- <th>
249
- <nobr>安检状态</nobr>
250
- </th>
251
- <th>
252
- <data-order field="f_offsite_time" name="安检时间"></data-order>
253
- </th>
254
- <th>
255
- <nobr>安检员</nobr>
256
- </th>
257
- <th>
258
- <nobr>气表型号</nobr>
259
- </th>
260
- <th>
261
- <nobr>气表品牌</nobr>
262
- </th>
263
- <th>
264
- <nobr>电子读数</nobr>
265
- </th>
266
- <th>
267
- <nobr>机械读数</nobr>
268
- </th>
269
- <th>
270
- <nobr>剩余气量</nobr>
271
- </th>
272
- <th>
273
- <nobr>剩余金额</nobr>
274
- </th>
275
- <th>
276
- <nobr>备注</nobr>
277
- </th>
278
- <th>
279
- <nobr>客户评价</nobr>
280
- </th>
281
- <th>
282
- <nobr>操作</nobr>
283
- </th>
284
- <th v-if="$parent.$parent.$parent.audioshow">
285
- <nobr>录音</nobr>
286
- </th>
287
- </tr>
288
- </template>
289
- <template partial='body'>
290
-
291
- <td style="text-align: center">{{ row.f_userinfo_code }}</td>
292
- <td style="text-align: center">{{ row.f_user_name }}</td>
293
- <td style="text-align: center">{{ row.f_meternumber }}</td>
294
- <td style="text-align: center">{{ row.f_user_phone }}</td>
295
- <td style="text-align: center">{{ row.f_check_type }}</td>
296
-
297
- <td style="text-align: center">{{ row.f_address }}</td>
298
- <td style="text-align: center">{{ row.f_uservent_date }}</td>
299
- <td style="text-align: center">{{ row.f_entry_status }}</td>
300
- <td style="text-align: center">{{ row.f_offsite_time }}</td>
301
- <td style="text-align: center">{{ row.f_checker_name }}</td>
302
- <td style="text-align: center">{{ row.f_diaphgram_size }}</td>
303
- <td style="text-align: center">{{ row.f_aliasname }}</td>
304
- <td style="text-align: center">{{ row.f_electronic_read }}</td>
305
- <td style="text-align: center">{{ row.f_mechanical_read }}</td>
306
- <td style="text-align: center">{{ row.f_remaining_gas_volume }}</td>
307
- <td style="text-align: center">{{ row.f_remaining_amount }}</td>
308
- <td style="text-align: center">{{ row.f_repair_approved_note }}</td>
309
- <td style="text-align: center">{{ row.f_client_evaluation }}</td>
310
- <td style="text-align: center">
311
- <button class="button_spacing button_search-1" @click='$parent.$parent.$parent.change(row)'>查看</button>
312
-
313
-
314
- </td>
315
- <td v-if="$parent.$parent.$parent.audioshow" style="text-align: center">
316
- <!-- <button class="button_spacing button_search-1" @click='$parent.$parent.$parent.change(row)'>查看</button>-->
317
- <audio v-if="row.f_recording1_path" controls="controls">
318
- <source :src="'rs/audio/file/' + row.f_recording1_path" type="audio/mpeg">
319
- </audio>
320
- <!--<button type="button" class="button_new-1 button_spacing" data-toggle="dropdown"
321
- @click="$parent.$parent.$parent.print(row)">
322
- 打印
323
- </button>-->
324
- </td>
325
- </template>
326
- </data-grid>
327
- </criteria-paged>
328
- <check-msg v-if="showcheckmsg" :data="checkInfo" :show="showcheckmsg"></check-msg>
329
- </div>
330
- </div>
331
- </template>
332
-
333
- <script>
334
- import { PagedList } from 'vue-client'
335
- import Vue from 'vue'
336
- import co from 'co'
337
- import AppData from '../../../stores/AppData'
338
- import * as Util from '../../Util'
339
- import getNowDate from "../../../utils/getNowDate";
340
- import HttpResetClass from "vue-client/src/plugins/HttpResetClass";
341
- import BenzAMRRecorder from 'benz-amr-recorder'
342
-
343
- //获取json配置文件
344
- let asyncReady = async function (self) {
345
- // 获取配置信息
346
- try {
347
- let res = await Vue.resetget(`/phone/rs/vue`, { data: {} }, { resolveMsg: null, rejectMsg: null })
348
- Vue.config = res.data
349
- } catch (error) {
350
- // 忽略704,文件找不到异常R
351
- if (error.status !== 704) {
352
- throw error
353
- }
354
- }
355
- }
356
-
357
- let select = function* (self) {
358
- let http = new HttpResetClass()
359
- let getGasman = yield http.load('POST', '/rs/search', {
360
- source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1))',
361
- userid: self.$login.f.id
362
- }, { resolveMsg: null, rejectMsg: null })
363
- ////tag
364
- self.checkersid.push({ label: '全部', value: '' })
365
- getGasman.data.forEach((checker) => {
366
- self.checkersid.push({ label: checker.name, value: checker.id })
367
- })
368
- }
369
-
370
- export default {
371
- title: '安检结果查看',
372
- data() {
373
- let model = new PagedList('rs/sql/查找安检单', 20, {
374
- f_plan_id: 'this.f_plan_id',
375
- f_approved: 'this.f_approved',
376
- f_entry_status: 'this.f_entry',
377
- f_no_checkplan: 'this.f_no_checkplan',
378
- f_filialeid: 'this.f_filialeid',
379
- orderitem: "'f_offsite_time desc'"
380
- })
381
- model.f_check_type = ''
382
- model.f_plan_id = ''
383
- model.f_approved = ''
384
- model.f_entry = ''
385
- model.f_no_checkplan = ''
386
- model.f_filialeid = `('${this.$login.f.orgid}')`
387
- //model.f_check_type='民用'
388
- // let searchData={
389
- // f_plan_id: this.model.f_checker_id==undefined?"":this.model.f_checker_id,
390
- // f_approved: this.model.f_approved,
391
- // f_entry_status: this.model.f_entry,
392
- // f_no_checkplan:this.model.f_no_checkplan[0],
393
- // f_filialeid: this.model.f_filialeid,
394
- // //orderitem: this.model.f_offsite_time,
395
- // //condition:this.model.condition
396
- // }
397
- // model.f_subcompany = this.$login.f.f_fengongsi
398
- return {
399
- audioshow: false,
400
- searchData: {
401
- condition: "1=1",
402
- orderitem: "f_offsite_time desc",
403
- f_plan_id: "",
404
- f_approved: '',
405
- f_no_checkplan: '',
406
- f_filialeid: `('${this.$login.f.orgid}')`
407
- },
408
- model: model,
409
- excelHeaders: {
410
- //searchData:searchData,
411
- 'f_userinfo_code': '客户编号',
412
- 'f_user_name': '客户姓名',
413
- 'f_meternumber': '客户表号',
414
- 'f_user_phone': '客户电话',
415
- 'f_check_type': '客户类型',
416
- 'f_residential_area': '小区',
417
- 'f_address': '客户地址',
418
- 'f_uservent_date': '首次通气时间',
419
- 'f_entry_status': '安检状态',
420
- 'f_offsite_time': '安检时间',
421
- 'f_checker_name': '安检员',
422
- 'f_diaphgram_size': '气表型号',
423
- 'f_aliasname': '气表品牌',
424
- 'f_electronic_read': '电子读数',
425
- 'f_mechanical_read': '机械读数',
426
- 'f_remaining_gas_volume': '剩余气量',
427
- 'f_remaining_amount': '剩余金额',
428
- 'f_safecheck_type': '安检类型',
429
- 'f_repair_approved_note': '备注',
430
- 'f_client_evaluation': '评价',
431
- 'f_plan_name': '计划名称',
432
- },
433
- fun: this.$login.f,
434
- pcds: [],
435
- departmentArr: [],
436
- checkerArr: [],
437
- checkersid: [],
438
- safetype: this.$appdata.getParam('安检类型') ? [{
439
- label: '全部',
440
- value: ''
441
- }, ...this.$appdata.getParam('安检类型')] : [{ label: '全部', value: '' }],
442
- criteriaShow: false,
443
- checktype: this.$appdata.getParam('用户类型') ? [{
444
- label: '全部',
445
- value: ''
446
- }, ...this.$appdata.getParam('用户类型')] : [{ label: '全部', value: '' }],
447
- f_check_type: [{ label: '全部', value: '' }, { label: '民用', value: '民用' }, { label: '非民用', value: '非民用' }],
448
- showModal: false,
449
- no_checkplans: this.$appdata.getParam('计划类型') ? [{
450
- label: '全部',
451
- value: ''
452
- }, ...this.$appdata.getParam('计划类型')] : [{ label: '全部', value: '' }],
453
- f_approval_states: this.$appdata.getParam('安检单审核状态') ? [{
454
- label: '全部',
455
- value: ''
456
- }, ...this.$appdata.getParam('安检单审核状态')] : [{ label: '全部', value: '' }],
457
- f_entry_status: this.$appdata.getParam('安检状态') ? [{
458
- label: '全部',
459
- value: ''
460
- }, ...this.$appdata.getParam('安检状态')] : [{ label: '全部', value: '' }],
461
- f_checkplans: this.$appdata.getParam('有无计划') ? [{
462
- label: '全部',
463
- value: ''
464
- }, ...this.$appdata.getParam('有无计划')] : [{ label: '全部', value: '' }],
465
- showcheckmsg: false,
466
- evaluations: [{ label: '全部', value: '' }, { label: '满意', value: '满意' }, {
467
- label: '基本满意',
468
- value: '基本满意'
469
- }, { label: '不满意', value: '不满意' }],
470
- checkInfo: {},
471
- orderDefault: "'f_offsite_time'",
472
- orderFields: {
473
- f_offsite_time: 'no'
474
- },
475
- sliceArea: [],
476
- cbc: []
477
- }
478
- },
479
- methods: {
480
- //获取省市区列表
481
- getPcd(val) {
482
- this.pcds = [{ label: '全部', value: '' }]
483
- new HttpResetClass().load("POST", `/rs/sql/safe_singleTable_OrderBy`,
484
- { data: { items: "*", tablename: "t_pcd", orderitem: "id", condition: `f_orgid in ${val}` } },
485
- { resolveMsg: null, rejectMsg: null }).then((pcdlist) => {
486
- pcdlist.data.forEach((result) => {
487
- this.pcds.push({ label: result.f_pcd, value: result.f_pcd })
488
- })
489
- })
490
- },
491
- getDepartment() {
492
- new HttpResetClass().load('POST', `/rs/sql/tel_singleTable_OrderBy`, {
493
- data: {
494
- items: '*',
495
- tablename: 't_user',
496
- condition: `rolestr like '%安检员%' and state = '在职'`,
497
- orderitem: '1'
498
- }
499
- }, { resolveMsg: null, rejectMsg: null }).then((res) => {
500
- this.checkerArr = res.data
501
- this.departmentArr = []
502
- let tempArr = []
503
- res.data.forEach((user) => {
504
- if (!tempArr.includes(user.f_department_name)) {
505
- tempArr.push(user.f_department_name)
506
- this.departmentArr.push({ label: user.f_department_name, value: user.f_department_name })
507
- }
508
- })
509
- })
510
- },
511
- showaudio() {
512
- //tag
513
- this.audioshow = !this.audioshow
514
- //tag
515
- },
516
- getmeterbook(val) {
517
- this.cbc = []
518
- this.cbc.push({
519
- label: '全部',
520
- value: ''
521
- })
522
- if (val == '') {
523
-
524
- this.cbcs.forEach(res => {
525
- this.cbc.push({
526
- label: res.f_book_name,
527
- value: res.id
528
- })
529
- })
530
- } else {
531
- this.cbcs.forEach(res => {
532
- if (res.f_book_slice_area == val) {
533
- this.cbc.push({
534
- label: res.f_book_name,
535
- value: res.id
536
- })
537
- }
538
- })
539
- }
540
- },
541
- Mreadibook(val) {
542
- ////tag
543
- ////tag
544
- if (val) {
545
- new HttpResetClass().load('POST', `/rs/sql/tel_singleTable_OrderBy`, {
546
- data: {
547
- items: 'name',
548
- tablename: 't_zone',
549
- condition: `parentid in ${val}`,
550
- orderitem: 'id'
551
- }
552
- }, { resolveMsg: null, rejectMsg: null }).then((res) => {
553
- this.sliceArea = []
554
- this.sliceArea.push({
555
- label: '全部',
556
- value: ''
557
- })
558
- res.data.forEach(ress => {
559
- this.sliceArea.push({
560
- label: ress.name,
561
- value: ress.name
562
- })
563
- })
564
-
565
- })
566
- }
567
- },
568
- getAllMeterBook(val) {
569
- ////tag
570
- ////tag
571
- this.cbcs = []
572
- if (val) {
573
- new HttpResetClass().load('POST', `/rs/sql/tel_singleTable_OrderBy`, {
574
- data: {
575
- items: 'f_book_name,f_book_slice_area,id',
576
- tablename: 't_meter_book',
577
- condition: `f_filiale_id in ${val}`,
578
- orderitem: 'id'
579
- }
580
- }, { resolveMsg: null, rejectMsg: null }).then((res) => {
581
- res.data.forEach(ress => {
582
- this.cbcs.push({
583
- id: ress.id,
584
- f_book_name: ress.f_book_name,
585
- f_book_slice_area: ress.f_book_slice_area
586
- })
587
- })
588
- this.cbc = []
589
- this.cbc.push({
590
- label: '全部',
591
- value: ''
592
- })
593
- this.cbcs.forEach(res => {
594
- this.cbc.push({
595
- label: res.f_book_name,
596
- value: res.id
597
- })
598
- })
599
- })
600
- }
601
- },
602
- getRes(obj) {
603
- this.model.f_filialeid = this.$login.convertToIn(obj.resids);
604
- this.searchData.f_filialeid = this.$login.convertToIn(obj.resids);
605
- this.Mreadibook(this.model.f_filialeid)
606
- this.getAllMeterBook(this.model.f_filialeid)
607
- this.getPcd(this.model.f_filialeid)
608
- //this.$refs.paged.$refs.criteria.search()
609
- },
610
-
611
- change(row) {
612
- // Vue.$login = {jwt: row.f_checker_id}
613
- asyncReady(this).then(() => {
614
- ////tag)
615
- row.f_upload_state = '已传'
616
- this.$goto('new-check-paper', { f_plan_id: row.f_check_plan_id, item: row, role: 'view' }, 'self')
617
- }).catch(
618
- (respanse) => {
619
- alert('获取配置文件失败')
620
- })
621
- },
622
- readConfig() {
623
- let gen = asyncReady(this)
624
- return co(gen)
625
- },
626
- showChooser() {
627
- this.showModal = true
628
- },
629
- hidden() {
630
- this.criteriaShow = !this.criteriaShow
631
- },
632
- refresh() {
633
- this.$refs.paged.$refs.criteria.search()
634
- },
635
- ok() {
636
- this.showModal = false
637
- if (this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id) {
638
- this.model.f_plan_id = this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id
639
- this.model.f_check_plan = this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow
640
- }
641
- },
642
- cancel() {
643
- this.showModal = false
644
- this.model.f_check_plan = { f_plan_name: '', id: '' }
645
- this.model.f_plan_id = ''
646
- },
647
- print(row) {
648
- this.showcheckmsg = true
649
- this.checkInfo = row
650
- },
651
-
652
- sort(field, rule) {
653
- // 将所有排序方式设为不排序,实现相互排斥
654
- for (let key in this.orderFields) {
655
- if (key === field) {
656
- this.orderFields[key] = rule
657
- } else {
658
- this.orderFields[key] = 'no'
659
- }
660
- }
661
- // 如果新规则不排序,还原为默认排序
662
- if (rule === 'no') {
663
- this.model.paramSource.orderitem = `'${this.orderDefault}'`
664
- } else {
665
- this.model.paramSource.orderitem = `'${field} ${rule}'`
666
- }
667
- this.search()
668
- },
669
- clear() {
670
- Object.keys(this.$refs.paged.$refs.criteria.model).forEach((key) => {
671
- if (Array.isArray(this.$refs.paged.$refs.criteria.model [key])) {
672
- this.$refs.paged.$refs.criteria.model [key] = [];
673
- } else {
674
- this.$refs.paged.$refs.criteria.model[key] = null;
675
- }
676
- })
677
- this.model.f_plan_id = ''
678
- this.searchData.f_plan_id = ''
679
- this.model.f_check_plan = { f_plan_name: '', id: '' }
680
- this.$refs.paged.$refs.criteria.$refs.selector.clear()
681
- },
682
- search() {
683
- this.$refs.paged.$refs.criteria.search()
684
- },
685
- selfSearch(args) {
686
- if (args.model.f_department_name) {
687
- const matchedCheckers = this.checkerArr
688
- .filter(user => user.f_department_name === args.model.f_department_name)
689
- .map(user => `'${user.name}'`)
690
- if (matchedCheckers.length > 0) {
691
- args.condition += ` and f_checker_name in (${matchedCheckers.join()})`
692
- }
693
- }
694
- ////tag
695
- //args.condition+=" and f_check_type='民用'"
696
- if (args.model.f_entry && args.model.f_entry.length > 0) {
697
- let valuesele = `(`
698
- for (let i = 0; i < args.model.f_entry.length; i++) {
699
- valuesele += `'${args.model.f_entry[i]}',`
700
- }
701
- args.condition += ' and f_entry_status in ' + valuesele.substring(0, valuesele.length - 1) + ')'
702
- }
703
- this.model.search(args.condition, args.model, args.condValue)
704
- }
705
- },
706
-
707
- ready() {
708
- ////tag
709
- this.function = this.f
710
- ////tag
711
-
712
- let gen = select(this)
713
- //this.pianqu()
714
- this.Mreadibook(`('${this.$login.f.orgid}')`)
715
- co(gen)
716
- this.getDepartment()
717
- },
718
- watch: {
719
- 'model.f_no_checkplan'(val) {
720
- if (this.model.f_no_checkplan) {
721
- this.searchData.f_no_checkplan = val
722
- }
723
- if (this.model.f_no_checkplan == '有计划安检') {
724
-
725
- this.showChooser()
726
- }
727
- },
728
- 'model.condition'(val) {
729
- if (val) {
730
- this.searchData.condition = val
731
- }
732
-
733
- },
734
- /*'model.f_entry'(val) {
735
- this.searchData.f_entry_status = val
736
- },*/
737
- 'model.f_plan_id'(val) {
738
- if (val) {
739
- this.searchData.f_plan_id = val
740
- }
741
- },
742
- 'model.f_slice_area'(val) {
743
- },
744
- 'model.f_approved'(val) {
745
- if (val) {
746
- this.searchData.f_approved = val
747
- }
748
- },
749
- },
750
- computed: {
751
- excelStart () {
752
- return this.$login.r.includes('安检结果查看导出')
753
- }
754
- }
755
-
756
- }
757
- </script>
1
+ <template>
2
+ <div class="flex-row">
3
+ <div class="basic-main">
4
+ <criteria-paged v-ref:paged :model="model" @sort="sort">
5
+ <criteria v-ref:criteria class="search_area" partial='criteria' @condition-changed='$parent.selfSearch'>
6
+ <div class="form-horizontal select-overspread container-fluid auto" novalidate partial>
7
+ <div class="row">
8
+ <div class="form-group col-sm-2">
9
+ <label class="font_normal_body">模糊查询</label>
10
+ <input v-model="model.f_userinfo" class="input_search"
11
+ condition="(f_userinfo_code like '%{}%' or f_user_name like '%{}%' or f_user_phone like '%{}%' or f_meternumber like '%{}%' or f_address like '%{}%' or f_zuhu_phone like '%${}%' or f_rent_phone like '%${}%')"
12
+ placeholder="编号 名称 电话 表号 地址" style="width: 60%" type="text">
13
+ </div>
14
+ <div class="form-group col-sm-2">
15
+ <label class="font_normal_body">客户编号</label>
16
+ <input v-model="model.f_userinfo_code" class="input_search" condition="f_userinfo_code='{}'"
17
+ placeholder="客户编号" style="width: 60%" type="text">
18
+ </div>
19
+ <div class="form-group col-sm-2">
20
+ <label class="font_normal_body">客户名称</label>
21
+ <input v-model="model.f_user_name" class="input_search" condition="f_user_name like '%{}%'"
22
+ placeholder="客户名称" style="width: 60%" type="text">
23
+ </div>
24
+ <div class="form-group col-sm-2">
25
+ <label class="font_normal_body">客户电话</label>
26
+ <input v-model="model.f_user_phone" class="input_search"
27
+ condition=" ( f_user_phone like '%{}%' or f_zuhu_phone like '%${}%' or f_rent_phone like '%${}%' )"
28
+ placeholder="客户电话" style="width: 60%" type="text">
29
+ </div>
30
+ <div class="form-group col-sm-2">
31
+ <label class="font_normal_body">客户表号</label>
32
+ <input v-model="model.f_meternumber" class="input_search" condition="f_meternumber like '%{}%'"
33
+ placeholder="客户表号" style="width: 60%" type="text">
34
+ </div>
35
+ <div class="form-group col-sm-2">
36
+ <label class="font_normal_body">详细地址</label>
37
+ <input v-model="model.f_address" class="input_search" condition="f_address like '%{}%'"
38
+ placeholder="详细地址" style="width: 60%" type="text">
39
+ </div>
40
+ <div class="form-group col-sm-2" style="width: auto;margin-top:8px;float: right">
41
+
42
+ <export-excel-safe
43
+ v-if="$parent.$parent.excelStart"
44
+ :choose-col="true" :data="$parent.$parent.searchData"
45
+ :field="$parent.$parent.excelHeaders" sql-name="查找安检单" sqlurl="rs/logic/SafeExportExcel"
46
+ template-name='安检结果明细'></export-excel-safe>
47
+ <!-- <export-excel :data="$parent.$parent.getCondition" -->
48
+ <!-- :field="$parent.$parent.getfield"-->
49
+ <!-- sqlurl="rs/logic/exportfile" sql-name="chargeQuery" template-name='收费查询导出'-->
50
+ <!-- :choose-col="true"></export-excel>-->
51
+ <!-- <button class="button_spacing button_search" @click="$parent.$parent.showaudio()" v-if="!$parent.$parent.audioshow">录音</button>-->
52
+ <button v-if="$parent.$parent.audioshow" class="button_spacing button_search"
53
+ @click="$parent.$parent.showaudio()">隐藏
54
+ </button>
55
+
56
+ <button class="button_spacing button_search" @click="search()">查询</button>
57
+ <button class="button_spacing button_search" @click="$parent.$parent.clear()">清空</button>
58
+ <div
59
+ :class="{ 'button_shrink_top': $parent.$parent.criteriaShow, 'button_shrink_bottom': !$parent.$parent.criteriaShow }"
60
+ class="button_spacing" style="float: right" @click="$parent.$parent.hidden()"></div>
61
+ </div>
62
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
63
+ <label class="font_normal_body">小&emsp;&emsp;区</label>
64
+ <input v-model="model.f_residential_area" class="input_search"
65
+ condition="f_residential_area like '%{}%'" placeholder="小区" style="width: 60%" type="text">
66
+ </div>
67
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
68
+ <label class="font_normal_body">安检计划</label>
69
+ <input v-model="$parent.$parent.model.f_check_plan.f_plan_name" class="input_search" placeholder="安检计划"
70
+ readonly="readonly" style="width: 60%" type="text" @click="$parent.$parent.showChooser">
71
+ </div>
72
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
73
+ <label class="font_normal_body">开始时间</label>
74
+ <datepicker v-model="model.f_check_start" :disabled-days-of-week="[]" :format="'yyyy-MM-dd'"
75
+ :show-rest-button="reset" :value.sync="model.f_check_start"
76
+ condition="f_offsite_time > ='{} 00:00:00'" placeholder='开始时间' style="width: 60%">
77
+ </datepicker>
78
+ <!-- <datepicker-->
79
+ <!-- class="select_list select"-->
80
+ <!-- :value.sync="model.f_check_start"-->
81
+ <!-- placeholder='开始时间' style="width: 60%"-->
82
+ <!-- :disabled-days-of-week="[]"-->
83
+ <!-- :format="'yyyy-MM-dd'"-->
84
+ <!-- :show-rest-button="reset"-->
85
+ <!-- v-model="model.f_check_start"-->
86
+ <!-- condition="f_offsite_time > ='{} 00:00:00'">-->
87
+ <!-- </datepicker>-->
88
+ </div>
89
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
90
+ <label class="font_normal_body">结束时间</label>
91
+ <datepicker v-model="model.f_check_end" :disabled-days-of-week="[]" :format="'yyyy-MM-dd'"
92
+ :show-rest-button="reset" :value.sync="model.f_check_end" condition="f_offsite_time <= '{} 23:59:59'"
93
+ placeholder='结束时间' style="width: 60%">
94
+ </datepicker>
95
+ </div>
96
+
97
+
98
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
99
+
100
+ <label class="font_normal_body">安检类型</label>
101
+ <v-select v-model='model.f_safecheck_type' :options='$parent.$parent.safetype' :value-single="true"
102
+ :value.sync="model.f_safecheck_type" class="select_list select" close-on-select
103
+ condition="f_safecheck_type = '{}'" placeholder='安检类型' style="width: 60%"></v-select>
104
+ </div>
105
+
106
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
107
+
108
+ <label class="font_normal_body">客户类型</label>
109
+ <v-select v-model='model.f_check_type' :options='$parent.$parent.checktype' :value-single="true"
110
+ :value.sync="model.f_check_type" class="select_list select" close-on-select
111
+ condition="f_check_type = '{}'" placeholder='客户类型' style="width: 60%"></v-select>
112
+ </div>
113
+
114
+
115
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
116
+ <label class="font_normal_body">安检状态</label>
117
+ <v-select id="f_entry" v-model='model.f_entry' :multiple="true"
118
+ :options='$parent.$parent.f_entry_status' :value.sync="model.f_entry" class="select_list select"
119
+ condition="" placeholder='安检状态' style="width: 60%"></v-select>
120
+ </div>
121
+
122
+
123
+ <!-- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">-->
124
+ <!-- <label class="font_normal_body">安&ensp;检&ensp;员</label>-->
125
+ <!-- <v-select :value.sync="model.f_checker_id" v-model='model.f_checker_id'-->
126
+ <!-- :value-single="true" style="width: 60%"-->
127
+ <!-- class="select_list select"-->
128
+ <!-- :options='$parent.$parent.checkersid' placeholder='安检员'-->
129
+ <!-- close-on-select-->
130
+ <!-- condition="f_checker_id = '{}'"></v-select>-->
131
+ <!-- </div>-->
132
+ <!-- <div class="form-group col-sm-2" v-show="$parent.$parent.criteriaShow">-->
133
+ <!-- <label class="font_normal_body" style="margin-right: 2px">公&emsp;&emsp;司</label>-->
134
+ <!-- <right-tree @re-res="$parent.$parent.getRes" :initresid="$parent.$parent.$login.f.orgid">-->
135
+ <!-- </right-tree>-->
136
+ <!-- </div>-->
137
+ <div v-show="$parent.$parent.criteriaShow" class="col-sm-4 form-group" style="margin: 0">
138
+ <role-selector-safe
139
+ v-ref:selector
140
+ v-model="model.f_checker_id" :value-close="false" :value-multiple="true"
141
+ :value.sync="model.f_checker_id" condition="f_checker_name in {}" role-lable="安&nbsp;检&nbsp;员&nbsp;"
142
+ role-name="安检员" @re-res="$parent.$parent.getRes">
143
+ </role-selector-safe>
144
+ </div>
145
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
146
+ <label class="font_normal_body">片&emsp;&emsp;区</label>
147
+ <v-select v-model="model.f_slice_area" :options='$parent.$parent.sliceArea' :value-single="true"
148
+ :value.sync="model.f_slice_area" class="select_list select" clear-button close-on-select
149
+ condition="f_slice_area='{}'" filer-key="name" placeholder='片区/管理站' style="width: 60%"
150
+ @change="$parent.$parent.getmeterbook(model.f_slice_area)">
151
+ </v-select>
152
+ </div>
153
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
154
+ <label class="font_normal_body">抄&ensp;表&ensp;册</label>
155
+ <v-select v-model="model.f_meter_book_num" :options='$parent.$parent.cbc' :value-single="true"
156
+ :value.sync="model.f_meter_book_num" class="select_list select" clear-button close-on-select
157
+ condition="f_meter_book_num={}" filer-key="name" placeholder='抄表册' style="width: 60%">
158
+ </v-select>
159
+ </div>
160
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
161
+ <label class="font_normal_body">省&ensp;市&ensp;区</label>
162
+ <v-select v-model="model.f_pcd" :options='$parent.$parent.pcds' :value-single="true"
163
+ :value.sync="model.f_pcd" class="select_list select" clear-button close-on-select
164
+ condition="f_pcd='{}'" filer-key="name" placeholder='请选择' style="width: 60%">
165
+ </v-select>
166
+ </div>
167
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
168
+ <label class="font_normal_body">计划类型</label>
169
+ <v-select v-model="model.f_no_checkplan" :options='$parent.$parent.no_checkplans' :value-single="true"
170
+ :value.sync="model.f_no_checkplan" class="select_list select" clear-button close-on-select
171
+ condition="f_no_checkplan='{}'" filer-key="name" placeholder='请选择' style="width: 60%">
172
+ </v-select>
173
+ </div>
174
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
175
+ <label class="font_normal_body">客户卡号</label>
176
+ <input v-model="model.f_card_id" class="input_search" condition="f_card_id like '%{}%'"
177
+ placeholder="客户卡号" style="width: 60%" type="text">
178
+ </div>
179
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
180
+ <label class="font_normal_body">部&emsp;&emsp;门</label>
181
+ <v-select v-model="model.f_department_name" :options='$parent.$parent.departmentArr'
182
+ :value-single="true" :value.sync="model.f_department_name" class="select_list select" clear-button
183
+ close-on-select filer-key="name" placeholder='请选择' style="width: 60%">
184
+ </v-select>
185
+ </div>
186
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
187
+ <label class="font_normal_body">客户评价</label>
188
+ <v-select v-model="model.f_client_evaluation" :options='$parent.$parent.evaluations'
189
+ :value-single="true" :value.sync="model.f_client_evaluation" class="select_list select" clear-button
190
+ close-on-select condition="f_client_evaluation='{}'" placeholder='客户评价' style="width: 60%">
191
+ </v-select>
192
+ </div>
193
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
194
+ <label class="font_normal_body">首次通气开始</label>
195
+ <datepicker v-model="model.f_gas_start" :disabled-days-of-week="[]" :format="'yyyy-MM-dd'"
196
+ :show-rest-button="reset" :value.sync="model.f_gas_start" condition="f_uservent_date >='{} 00:00:00'"
197
+ placeholder='首次通气开始时间' style="width: 60%">
198
+ </datepicker>
199
+ </div>
200
+ <div v-show="$parent.$parent.criteriaShow" class="form-group col-sm-2">
201
+ <label class="font_normal_body">首次通气结束</label>
202
+ <datepicker v-model="model.f_gas_end" :disabled-days-of-week="[]" :format="'yyyy-MM-dd'"
203
+ :show-rest-button="reset" :value.sync="model.f_gas_end" condition="f_uservent_date <= '{} 23:59:59'"
204
+ placeholder='首次通气结束时间' style="width: 60%">
205
+ </datepicker>
206
+ </div>
207
+ </div>
208
+ <modal v-ref:modal :show.sync="$parent.$parent.showModal" backdrop="false">
209
+ <div slot="modal-header" class="modal-header">
210
+ <h4 class="modal-title">
211
+ 选择计划
212
+ </h4>
213
+ </div>
214
+ <div slot="modal-body" class="modal-body">
215
+ <plan-chooser v-ref:chooser :f.sync="$parent.$parent.fun"></plan-chooser>
216
+ </div>
217
+ <div slot="modal-footer" class="modal-footer" style="text-align: center">
218
+ <button class="button_search" @click="$parent.$parent.ok">确认</button>
219
+ <button class="button_search" @click="$parent.$parent.cancel">取消</button>
220
+ </div>
221
+ </modal>
222
+ </div>
223
+ </criteria>
224
+ <data-grid v-ref:grid :model="model" class="list_area table_sy" partial='list' style="overflow: hidden">
225
+ <template partial='head'>
226
+ <tr>
227
+ <th>
228
+ <nobr>客户编号</nobr>
229
+ </th>
230
+ <th>
231
+ <nobr>客户名称</nobr>
232
+ </th>
233
+ <th>
234
+ <nobr>客户表号</nobr>
235
+ </th>
236
+ <th>
237
+ <nobr>客户电话</nobr>
238
+ </th>
239
+ <th>
240
+ <nobr>客户类型</nobr>
241
+ </th>
242
+ <th>
243
+ <nobr>客户地址</nobr>
244
+ </th>
245
+ <th>
246
+ <nobr>首次通气时间</nobr>
247
+ </th>
248
+ <th>
249
+ <nobr>安检状态</nobr>
250
+ </th>
251
+ <th>
252
+ <data-order field="f_offsite_time" name="安检时间"></data-order>
253
+ </th>
254
+ <th>
255
+ <nobr>安检员</nobr>
256
+ </th>
257
+ <th>
258
+ <nobr>气表型号</nobr>
259
+ </th>
260
+ <th>
261
+ <nobr>气表品牌</nobr>
262
+ </th>
263
+ <th>
264
+ <nobr>电子读数</nobr>
265
+ </th>
266
+ <th>
267
+ <nobr>机械读数</nobr>
268
+ </th>
269
+ <th>
270
+ <nobr>剩余气量</nobr>
271
+ </th>
272
+ <th>
273
+ <nobr>剩余金额</nobr>
274
+ </th>
275
+ <th>
276
+ <nobr>备注</nobr>
277
+ </th>
278
+ <th>
279
+ <nobr>客户评价</nobr>
280
+ </th>
281
+ <th>
282
+ <nobr>操作</nobr>
283
+ </th>
284
+ <th v-if="$parent.$parent.$parent.audioshow">
285
+ <nobr>录音</nobr>
286
+ </th>
287
+ </tr>
288
+ </template>
289
+ <template partial='body'>
290
+
291
+ <td style="text-align: center">{{ row.f_userinfo_code }}</td>
292
+ <td style="text-align: center">{{ row.f_user_name }}</td>
293
+ <td style="text-align: center">{{ row.f_meternumber }}</td>
294
+ <td style="text-align: center">{{ row.f_user_phone }}</td>
295
+ <td style="text-align: center">{{ row.f_check_type }}</td>
296
+
297
+ <td style="text-align: center">{{ row.f_address }}</td>
298
+ <td style="text-align: center">{{ row.f_uservent_date }}</td>
299
+ <td style="text-align: center">{{ row.f_entry_status }}</td>
300
+ <td style="text-align: center">{{ row.f_offsite_time }}</td>
301
+ <td style="text-align: center">{{ row.f_checker_name }}</td>
302
+ <td style="text-align: center">{{ row.f_diaphgram_size }}</td>
303
+ <td style="text-align: center">{{ row.f_aliasname }}</td>
304
+ <td style="text-align: center">{{ row.f_electronic_read }}</td>
305
+ <td style="text-align: center">{{ row.f_mechanical_read }}</td>
306
+ <td style="text-align: center">{{ row.f_remaining_gas_volume }}</td>
307
+ <td style="text-align: center">{{ row.f_remaining_amount }}</td>
308
+ <td style="text-align: center">{{ row.f_repair_approved_note }}</td>
309
+ <td style="text-align: center">{{ row.f_client_evaluation }}</td>
310
+ <td style="text-align: center">
311
+ <button class="button_spacing button_search-1" @click='$parent.$parent.$parent.change(row)'>查看</button>
312
+
313
+
314
+ </td>
315
+ <td v-if="$parent.$parent.$parent.audioshow" style="text-align: center">
316
+ <!-- <button class="button_spacing button_search-1" @click='$parent.$parent.$parent.change(row)'>查看</button>-->
317
+ <audio v-if="row.f_recording1_path" controls="controls">
318
+ <source :src="'rs/audio/file/' + row.f_recording1_path" type="audio/mpeg">
319
+ </audio>
320
+ <!--<button type="button" class="button_new-1 button_spacing" data-toggle="dropdown"
321
+ @click="$parent.$parent.$parent.print(row)">
322
+ 打印
323
+ </button>-->
324
+ </td>
325
+ </template>
326
+ </data-grid>
327
+ </criteria-paged>
328
+ <check-msg v-if="showcheckmsg" :data="checkInfo" :show="showcheckmsg"></check-msg>
329
+ </div>
330
+ </div>
331
+ </template>
332
+
333
+ <script>
334
+ import { PagedList } from 'vue-client'
335
+ import Vue from 'vue'
336
+ import co from 'co'
337
+ import AppData from '../../../stores/AppData'
338
+ import * as Util from '../../Util'
339
+ import getNowDate from "../../../utils/getNowDate";
340
+ import HttpResetClass from "vue-client/src/plugins/HttpResetClass";
341
+ import BenzAMRRecorder from 'benz-amr-recorder'
342
+
343
+ //获取json配置文件
344
+ let asyncReady = async function (self) {
345
+ // 获取配置信息
346
+ try {
347
+ let res = await Vue.resetget(`/phone/rs/vue`, { data: {} }, { resolveMsg: null, rejectMsg: null })
348
+ Vue.config = res.data
349
+ } catch (error) {
350
+ // 忽略704,文件找不到异常R
351
+ if (error.status !== 704) {
352
+ throw error
353
+ }
354
+ }
355
+ }
356
+
357
+ let select = function* (self) {
358
+ let http = new HttpResetClass()
359
+ let getGasman = yield http.load('POST', '/rs/search', {
360
+ source: 'this.getParentByType($department$).getAllChildrens().where(row.getAttributes().get($rolestr$).indexOf($安检员$) != -1))',
361
+ userid: self.$login.f.id
362
+ }, { resolveMsg: null, rejectMsg: null })
363
+ ////tag
364
+ self.checkersid.push({ label: '全部', value: '' })
365
+ getGasman.data.forEach((checker) => {
366
+ self.checkersid.push({ label: checker.name, value: checker.id })
367
+ })
368
+ }
369
+
370
+ export default {
371
+ title: '安检结果查看',
372
+ data() {
373
+ let model = new PagedList('rs/sql/查找安检单', 20, {
374
+ f_plan_id: 'this.f_plan_id',
375
+ f_approved: 'this.f_approved',
376
+ f_entry_status: 'this.f_entry',
377
+ f_no_checkplan: 'this.f_no_checkplan',
378
+ f_filialeid: 'this.f_filialeid',
379
+ orderitem: "'f_offsite_time desc'"
380
+ })
381
+ model.f_check_type = ''
382
+ model.f_plan_id = ''
383
+ model.f_approved = ''
384
+ model.f_entry = ''
385
+ model.f_no_checkplan = ''
386
+ model.f_filialeid = `('${this.$login.f.orgid}')`
387
+ //model.f_check_type='民用'
388
+ // let searchData={
389
+ // f_plan_id: this.model.f_checker_id==undefined?"":this.model.f_checker_id,
390
+ // f_approved: this.model.f_approved,
391
+ // f_entry_status: this.model.f_entry,
392
+ // f_no_checkplan:this.model.f_no_checkplan[0],
393
+ // f_filialeid: this.model.f_filialeid,
394
+ // //orderitem: this.model.f_offsite_time,
395
+ // //condition:this.model.condition
396
+ // }
397
+ // model.f_subcompany = this.$login.f.f_fengongsi
398
+ return {
399
+ audioshow: false,
400
+ searchData: {
401
+ condition: "1=1",
402
+ orderitem: "f_offsite_time desc",
403
+ f_plan_id: "",
404
+ f_approved: '',
405
+ f_no_checkplan: '',
406
+ f_filialeid: `('${this.$login.f.orgid}')`
407
+ },
408
+ model: model,
409
+ excelHeaders: {
410
+ //searchData:searchData,
411
+ 'f_userinfo_code': '客户编号',
412
+ 'f_user_name': '客户姓名',
413
+ 'f_meternumber': '客户表号',
414
+ 'f_user_phone': '客户电话',
415
+ 'f_check_type': '客户类型',
416
+ 'f_residential_area': '小区',
417
+ 'f_address': '客户地址',
418
+ 'f_uservent_date': '首次通气时间',
419
+ 'f_entry_status': '安检状态',
420
+ 'f_offsite_time': '安检时间',
421
+ 'f_checker_name': '安检员',
422
+ 'f_diaphgram_size': '气表型号',
423
+ 'f_aliasname': '气表品牌',
424
+ 'f_electronic_read': '电子读数',
425
+ 'f_mechanical_read': '机械读数',
426
+ 'f_remaining_gas_volume': '剩余气量',
427
+ 'f_remaining_amount': '剩余金额',
428
+ 'f_safecheck_type': '安检类型',
429
+ 'f_repair_approved_note': '备注',
430
+ 'f_client_evaluation': '评价',
431
+ 'f_plan_name': '计划名称',
432
+ },
433
+ fun: this.$login.f,
434
+ pcds: [],
435
+ departmentArr: [],
436
+ checkerArr: [],
437
+ checkersid: [],
438
+ safetype: this.$appdata.getParam('安检类型') ? [{
439
+ label: '全部',
440
+ value: ''
441
+ }, ...this.$appdata.getParam('安检类型')] : [{ label: '全部', value: '' }],
442
+ criteriaShow: false,
443
+ checktype: this.$appdata.getParam('用户类型') ? [{
444
+ label: '全部',
445
+ value: ''
446
+ }, ...this.$appdata.getParam('用户类型')] : [{ label: '全部', value: '' }],
447
+ f_check_type: [{ label: '全部', value: '' }, { label: '民用', value: '民用' }, { label: '非民用', value: '非民用' }],
448
+ showModal: false,
449
+ no_checkplans: this.$appdata.getParam('计划类型') ? [{
450
+ label: '全部',
451
+ value: ''
452
+ }, ...this.$appdata.getParam('计划类型')] : [{ label: '全部', value: '' }],
453
+ f_approval_states: this.$appdata.getParam('安检单审核状态') ? [{
454
+ label: '全部',
455
+ value: ''
456
+ }, ...this.$appdata.getParam('安检单审核状态')] : [{ label: '全部', value: '' }],
457
+ f_entry_status: this.$appdata.getParam('安检状态') ? [{
458
+ label: '全部',
459
+ value: ''
460
+ }, ...this.$appdata.getParam('安检状态')] : [{ label: '全部', value: '' }],
461
+ f_checkplans: this.$appdata.getParam('有无计划') ? [{
462
+ label: '全部',
463
+ value: ''
464
+ }, ...this.$appdata.getParam('有无计划')] : [{ label: '全部', value: '' }],
465
+ showcheckmsg: false,
466
+ evaluations: [{ label: '全部', value: '' }, { label: '满意', value: '满意' }, {
467
+ label: '基本满意',
468
+ value: '基本满意'
469
+ }, { label: '不满意', value: '不满意' }],
470
+ checkInfo: {},
471
+ orderDefault: "'f_offsite_time'",
472
+ orderFields: {
473
+ f_offsite_time: 'no'
474
+ },
475
+ sliceArea: [],
476
+ cbc: []
477
+ }
478
+ },
479
+ methods: {
480
+ //获取省市区列表
481
+ getPcd(val) {
482
+ this.pcds = [{ label: '全部', value: '' }]
483
+ new HttpResetClass().load("POST", `/rs/sql/safe_singleTable_OrderBy`,
484
+ { data: { items: "*", tablename: "t_pcd", orderitem: "id", condition: `f_orgid in ${val}` } },
485
+ { resolveMsg: null, rejectMsg: null }).then((pcdlist) => {
486
+ pcdlist.data.forEach((result) => {
487
+ this.pcds.push({ label: result.f_pcd, value: result.f_pcd })
488
+ })
489
+ })
490
+ },
491
+ getDepartment() {
492
+ new HttpResetClass().load('POST', `/rs/sql/tel_singleTable_OrderBy`, {
493
+ data: {
494
+ items: '*',
495
+ tablename: 't_user',
496
+ condition: `rolestr like '%安检员%' and state = '在职'`,
497
+ orderitem: '1'
498
+ }
499
+ }, { resolveMsg: null, rejectMsg: null }).then((res) => {
500
+ this.checkerArr = res.data
501
+ this.departmentArr = []
502
+ let tempArr = []
503
+ res.data.forEach((user) => {
504
+ if (!tempArr.includes(user.f_department_name)) {
505
+ tempArr.push(user.f_department_name)
506
+ this.departmentArr.push({ label: user.f_department_name, value: user.f_department_name })
507
+ }
508
+ })
509
+ })
510
+ },
511
+ showaudio() {
512
+ //tag
513
+ this.audioshow = !this.audioshow
514
+ //tag
515
+ },
516
+ getmeterbook(val) {
517
+ this.cbc = []
518
+ this.cbc.push({
519
+ label: '全部',
520
+ value: ''
521
+ })
522
+ if (val == '') {
523
+
524
+ this.cbcs.forEach(res => {
525
+ this.cbc.push({
526
+ label: res.f_book_name,
527
+ value: res.id
528
+ })
529
+ })
530
+ } else {
531
+ this.cbcs.forEach(res => {
532
+ if (res.f_book_slice_area == val) {
533
+ this.cbc.push({
534
+ label: res.f_book_name,
535
+ value: res.id
536
+ })
537
+ }
538
+ })
539
+ }
540
+ },
541
+ Mreadibook(val) {
542
+ ////tag
543
+ ////tag
544
+ if (val) {
545
+ new HttpResetClass().load('POST', `/rs/sql/tel_singleTable_OrderBy`, {
546
+ data: {
547
+ items: 'name',
548
+ tablename: 't_zone',
549
+ condition: `parentid in ${val}`,
550
+ orderitem: 'id'
551
+ }
552
+ }, { resolveMsg: null, rejectMsg: null }).then((res) => {
553
+ this.sliceArea = []
554
+ this.sliceArea.push({
555
+ label: '全部',
556
+ value: ''
557
+ })
558
+ res.data.forEach(ress => {
559
+ this.sliceArea.push({
560
+ label: ress.name,
561
+ value: ress.name
562
+ })
563
+ })
564
+
565
+ })
566
+ }
567
+ },
568
+ getAllMeterBook(val) {
569
+ ////tag
570
+ ////tag
571
+ this.cbcs = []
572
+ if (val) {
573
+ new HttpResetClass().load('POST', `/rs/sql/tel_singleTable_OrderBy`, {
574
+ data: {
575
+ items: 'f_book_name,f_book_slice_area,id',
576
+ tablename: 't_meter_book',
577
+ condition: `f_filiale_id in ${val}`,
578
+ orderitem: 'id'
579
+ }
580
+ }, { resolveMsg: null, rejectMsg: null }).then((res) => {
581
+ res.data.forEach(ress => {
582
+ this.cbcs.push({
583
+ id: ress.id,
584
+ f_book_name: ress.f_book_name,
585
+ f_book_slice_area: ress.f_book_slice_area
586
+ })
587
+ })
588
+ this.cbc = []
589
+ this.cbc.push({
590
+ label: '全部',
591
+ value: ''
592
+ })
593
+ this.cbcs.forEach(res => {
594
+ this.cbc.push({
595
+ label: res.f_book_name,
596
+ value: res.id
597
+ })
598
+ })
599
+ })
600
+ }
601
+ },
602
+ getRes(obj) {
603
+ this.model.f_filialeid = this.$login.convertToIn(obj.resids);
604
+ this.searchData.f_filialeid = this.$login.convertToIn(obj.resids);
605
+ this.Mreadibook(this.model.f_filialeid)
606
+ this.getAllMeterBook(this.model.f_filialeid)
607
+ this.getPcd(this.model.f_filialeid)
608
+ //this.$refs.paged.$refs.criteria.search()
609
+ },
610
+
611
+ change(row) {
612
+ // Vue.$login = {jwt: row.f_checker_id}
613
+ asyncReady(this).then(() => {
614
+ ////tag)
615
+ row.f_upload_state = '已传'
616
+ this.$goto('new-check-paper', { f_plan_id: row.f_check_plan_id, item: row, role: 'view' }, 'self')
617
+ }).catch(
618
+ (respanse) => {
619
+ alert('获取配置文件失败')
620
+ })
621
+ },
622
+ readConfig() {
623
+ let gen = asyncReady(this)
624
+ return co(gen)
625
+ },
626
+ showChooser() {
627
+ this.showModal = true
628
+ },
629
+ hidden() {
630
+ this.criteriaShow = !this.criteriaShow
631
+ },
632
+ refresh() {
633
+ this.$refs.paged.$refs.criteria.search()
634
+ },
635
+ ok() {
636
+ this.showModal = false
637
+ if (this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id) {
638
+ this.model.f_plan_id = this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow.id
639
+ this.model.f_check_plan = this.$refs.paged.$refs.criteria.$refs.modal.$children[0].selectedRow
640
+ }
641
+ },
642
+ cancel() {
643
+ this.showModal = false
644
+ this.model.f_check_plan = { f_plan_name: '', id: '' }
645
+ this.model.f_plan_id = ''
646
+ },
647
+ print(row) {
648
+ this.showcheckmsg = true
649
+ this.checkInfo = row
650
+ },
651
+
652
+ sort(field, rule) {
653
+ // 将所有排序方式设为不排序,实现相互排斥
654
+ for (let key in this.orderFields) {
655
+ if (key === field) {
656
+ this.orderFields[key] = rule
657
+ } else {
658
+ this.orderFields[key] = 'no'
659
+ }
660
+ }
661
+ // 如果新规则不排序,还原为默认排序
662
+ if (rule === 'no') {
663
+ this.model.paramSource.orderitem = `'${this.orderDefault}'`
664
+ } else {
665
+ this.model.paramSource.orderitem = `'${field} ${rule}'`
666
+ }
667
+ this.search()
668
+ },
669
+ clear() {
670
+ Object.keys(this.$refs.paged.$refs.criteria.model).forEach((key) => {
671
+ if (Array.isArray(this.$refs.paged.$refs.criteria.model [key])) {
672
+ this.$refs.paged.$refs.criteria.model [key] = [];
673
+ } else {
674
+ this.$refs.paged.$refs.criteria.model[key] = null;
675
+ }
676
+ })
677
+ this.model.f_plan_id = ''
678
+ this.searchData.f_plan_id = ''
679
+ this.model.f_check_plan = { f_plan_name: '', id: '' }
680
+ this.$refs.paged.$refs.criteria.$refs.selector.clear()
681
+ },
682
+ search() {
683
+ this.$refs.paged.$refs.criteria.search()
684
+ },
685
+ selfSearch(args) {
686
+ if (args.model.f_department_name) {
687
+ const matchedCheckers = this.checkerArr
688
+ .filter(user => user.f_department_name === args.model.f_department_name)
689
+ .map(user => `'${user.name}'`)
690
+ if (matchedCheckers.length > 0) {
691
+ args.condition += ` and f_checker_name in (${matchedCheckers.join()})`
692
+ }
693
+ }
694
+ ////tag
695
+ //args.condition+=" and f_check_type='民用'"
696
+ if (args.model.f_entry && args.model.f_entry.length > 0) {
697
+ let valuesele = `(`
698
+ for (let i = 0; i < args.model.f_entry.length; i++) {
699
+ valuesele += `'${args.model.f_entry[i]}',`
700
+ }
701
+ args.condition += ' and f_entry_status in ' + valuesele.substring(0, valuesele.length - 1) + ')'
702
+ }
703
+ this.model.search(args.condition, args.model, args.condValue)
704
+ }
705
+ },
706
+
707
+ ready() {
708
+ ////tag
709
+ this.function = this.f
710
+ ////tag
711
+
712
+ let gen = select(this)
713
+ //this.pianqu()
714
+ this.Mreadibook(`('${this.$login.f.orgid}')`)
715
+ co(gen)
716
+ this.getDepartment()
717
+ },
718
+ watch: {
719
+ 'model.f_no_checkplan'(val) {
720
+ if (this.model.f_no_checkplan) {
721
+ this.searchData.f_no_checkplan = val
722
+ }
723
+ if (this.model.f_no_checkplan == '有计划安检') {
724
+
725
+ this.showChooser()
726
+ }
727
+ },
728
+ 'model.condition'(val) {
729
+ if (val) {
730
+ this.searchData.condition = val
731
+ }
732
+
733
+ },
734
+ /*'model.f_entry'(val) {
735
+ this.searchData.f_entry_status = val
736
+ },*/
737
+ 'model.f_plan_id'(val) {
738
+ if (val) {
739
+ this.searchData.f_plan_id = val
740
+ }
741
+ },
742
+ 'model.f_slice_area'(val) {
743
+ },
744
+ 'model.f_approved'(val) {
745
+ if (val) {
746
+ this.searchData.f_approved = val
747
+ }
748
+ },
749
+ },
750
+ computed: {
751
+ excelStart () {
752
+ return this.$login.r.includes('安检结果查看导出')
753
+ }
754
+ }
755
+
756
+ }
757
+ </script>