safecheck-client 3.0.39-82 → 3.0.39-83

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 (275) 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/App.vue +26 -31
  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/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/grid.less +84 -84
  134. package/src/bootstrap/less/input-groups.less +167 -167
  135. package/src/bootstrap/less/jumbotron.less +52 -52
  136. package/src/bootstrap/less/labels.less +64 -64
  137. package/src/bootstrap/less/list-group.less +141 -141
  138. package/src/bootstrap/less/media.less +66 -66
  139. package/src/bootstrap/less/mixins/alerts.less +14 -14
  140. package/src/bootstrap/less/mixins/background-variant.less +9 -9
  141. package/src/bootstrap/less/mixins/border-radius.less +18 -18
  142. package/src/bootstrap/less/mixins/buttons.less +69 -69
  143. package/src/bootstrap/less/mixins/center-block.less +7 -7
  144. package/src/bootstrap/less/mixins/clearfix.less +22 -22
  145. package/src/bootstrap/less/mixins/forms.less +90 -90
  146. package/src/bootstrap/less/mixins/gradients.less +59 -59
  147. package/src/bootstrap/less/mixins/grid-framework.less +92 -92
  148. package/src/bootstrap/less/mixins/grid.less +122 -122
  149. package/src/bootstrap/less/mixins/hide-text.less +21 -21
  150. package/src/bootstrap/less/mixins/image.less +33 -33
  151. package/src/bootstrap/less/mixins/labels.less +12 -12
  152. package/src/bootstrap/less/mixins/list-group.less +30 -30
  153. package/src/bootstrap/less/mixins/nav-divider.less +10 -10
  154. package/src/bootstrap/less/mixins/nav-vertical-align.less +9 -9
  155. package/src/bootstrap/less/mixins/opacity.less +8 -8
  156. package/src/bootstrap/less/mixins/pagination.less +24 -24
  157. package/src/bootstrap/less/mixins/panels.less +24 -24
  158. package/src/bootstrap/less/mixins/progress-bar.less +10 -10
  159. package/src/bootstrap/less/mixins/reset-filter.less +8 -8
  160. package/src/bootstrap/less/mixins/reset-text.less +18 -18
  161. package/src/bootstrap/less/mixins/resize.less +6 -6
  162. package/src/bootstrap/less/mixins/responsive-visibility.less +15 -15
  163. package/src/bootstrap/less/mixins/size.less +10 -10
  164. package/src/bootstrap/less/mixins/tab-focus.less +9 -9
  165. package/src/bootstrap/less/mixins/table-row.less +44 -44
  166. package/src/bootstrap/less/mixins/text-emphasis.less +9 -9
  167. package/src/bootstrap/less/mixins/text-overflow.less +8 -8
  168. package/src/bootstrap/less/mixins/vendor-prefixes.less +227 -227
  169. package/src/bootstrap/less/mixins.less +40 -40
  170. package/src/bootstrap/less/modals.less +151 -151
  171. package/src/bootstrap/less/navbar.less +660 -660
  172. package/src/bootstrap/less/normalize.less +424 -424
  173. package/src/bootstrap/less/pagination.less +89 -89
  174. package/src/bootstrap/less/panels.less +275 -275
  175. package/src/bootstrap/less/popovers.less +131 -131
  176. package/src/bootstrap/less/print.less +101 -101
  177. package/src/bootstrap/less/progress-bars.less +87 -87
  178. package/src/bootstrap/less/responsive-embed.less +35 -35
  179. package/src/bootstrap/less/responsive-utilities.less +194 -194
  180. package/src/bootstrap/less/scaffolding.less +161 -161
  181. package/src/bootstrap/less/theme.less +291 -291
  182. package/src/bootstrap/less/thumbnails.less +36 -36
  183. package/src/bootstrap/less/tooltip.less +102 -102
  184. package/src/bootstrap/less/type.less +303 -303
  185. package/src/bootstrap/less/utilities.less +55 -55
  186. package/src/bootstrap/less/wells.less +29 -29
  187. package/src/components/FileUpload.vue +696 -696
  188. package/src/components/Hello.vue +39 -39
  189. package/src/components/LeftTree.vue +27 -27
  190. package/src/components/android/AttendanceTally.vue +116 -116
  191. package/src/components/android/Blank.vue +10 -10
  192. package/src/components/android/CheckUnplanPage.vue +56 -56
  193. package/src/components/android/Checker.vue +12 -12
  194. package/src/components/android/CheckerAnnual.vue +81 -81
  195. package/src/components/android/CheckerAvarta.vue +82 -82
  196. package/src/components/android/EquipmentInspection.vue +348 -348
  197. package/src/components/android/FootprintMap.vue +120 -120
  198. package/src/components/android/HiddentroubleInvestigation.vue +192 -192
  199. package/src/components/android/MasterMain.vue +77 -77
  200. package/src/components/android/Menu.vue +132 -132
  201. package/src/components/android/PaperAlarm.vue +85 -85
  202. package/src/components/android/PaperDeviceNoncivil.vue +214 -214
  203. package/src/components/android/PlumberAnnual.vue +83 -83
  204. package/src/components/android/PlumberAnnualDetail.vue +65 -65
  205. package/src/components/android/PlumberMonthly.vue +84 -84
  206. package/src/components/android/PostMap.vue +83 -83
  207. package/src/components/android/QueryCheckHistory.vue +122 -122
  208. package/src/components/android/QueryCheckHistoryItem.vue +62 -62
  209. package/src/components/android/RepairMain.vue +60 -60
  210. package/src/components/android/Repairman.vue +12 -12
  211. package/src/components/android/StationMaster.vue +12 -12
  212. package/src/components/android/rejectInspecCheck.vue +322 -322
  213. package/src/components/defects/DefectModal.vue +101 -101
  214. package/src/components/defects/DevicesAndItem.vue +39 -39
  215. package/src/components/issueplan/IssuePlanMain.vue +23 -23
  216. package/src/components/notice/NoticeForm.vue +100 -100
  217. package/src/components/notice/NoticeIssue.vue +20 -20
  218. package/src/components/paper/PicViewer.vue +18 -18
  219. package/src/components/pc/NewCheckpaperTemp.vue +1308 -1308
  220. package/src/components/pc/RoleSelector.vue +172 -172
  221. package/src/components/phonestate/MonthlyTraffic.vue +66 -66
  222. package/src/components/phonestate/MonthlyTrafficRouter.vue +15 -15
  223. package/src/components/phonestate/PostMap.vue +82 -82
  224. package/src/components/querycheckpaper/PaperItem.vue +59 -59
  225. package/src/components/rongcheng/AddPlanItem.vue +344 -344
  226. package/src/components/rongcheng/CheckCurrentCreate.vue +1081 -1081
  227. package/src/components/rongcheng/PaperDefectMain.vue +828 -828
  228. package/src/components/userfile/MeterFile.vue +145 -145
  229. package/src/components/userfile/MeterModify.vue +46 -46
  230. package/src/components/userfileaudit/MeterAuditFile.vue +129 -129
  231. package/src/filiale/BFshiye/android/AndroidDefectDeal.vue +652 -652
  232. package/src/filiale/BFshiye/pc/DefectListNew.vue +637 -637
  233. package/src/filiale/BFshiye/pc/checkUserList.vue +772 -772
  234. package/src/filiale/BFshiye/pc.js +17 -17
  235. package/src/filiale/baiyin/android/SafecheckUserInfo.vue +775 -775
  236. package/src/filiale/baiyin/android.js +12 -12
  237. package/src/filiale/dexin/android/SafecheckDevicesTemp.vue +1419 -1419
  238. package/src/filiale/dexin/android/SafecheckOrderVTemp.vue +1256 -1256
  239. package/src/filiale/dexin/pc/PaperList.vue +857 -857
  240. package/src/filiale/qingjian/android/PhoneUpUserinfo.vue +1357 -1357
  241. package/src/filiale/qingjian/android/SafecheckUserInfo.vue +823 -823
  242. package/src/filiale/qingjian/pc/NewCheckpaper.vue +1919 -1919
  243. package/src/filiale/rongchuang/android/PhoneUpUserinfo.vue +1262 -1262
  244. package/src/filiale/rongchuang/pc/checkPlanList.vue +398 -398
  245. package/src/filiale/rongchuang/pc.js +18 -18
  246. package/src/filiale/shanxian/pc/NewCheckpaper.vue +1526 -1526
  247. package/src/filiale/siyang/android/PhoneInsurancePurchaseDetail.vue +532 -532
  248. package/src/filiale/wensu/android/SafecheckOrderV.vue +2444 -2444
  249. package/src/filiale/wensu/android/SafecheckUserInfo.vue +712 -712
  250. package/src/filiale/wensu/pc/CheckSearchUser.vue +1251 -1251
  251. package/src/filiale/yangchunboneng/android/CurrentCreate.vue +1191 -1191
  252. package/src/filiale/yangchunboneng/android/SafecheckUserInfo.vue +913 -913
  253. package/src/filiale/yangchunboneng/android.js +21 -21
  254. package/src/filiale/yangchunboneng/pc/CheckBookList.vue +353 -353
  255. package/src/filiale/yangchunboneng/pc/CheckSearchUser.vue +1197 -1197
  256. package/src/filiale/yangchunboneng/pc/HiddenSituation.vue +171 -171
  257. package/src/filiale/yangchunboneng/pc/PaperDefectMain.vue +1112 -1112
  258. package/src/filiale/yangchunboneng/pc/PaperList.vue +757 -757
  259. package/src/filiale/yangchunboneng/pc/SelectCheckPlan.vue +331 -331
  260. package/src/filiale/yangchunboneng/pc.js +29 -29
  261. package/src/main.js +33 -33
  262. package/src/plugins/LoadData.js +10 -10
  263. package/src/plugins/LoadParams.js +24 -24
  264. package/src/rongcheng.js +319 -319
  265. package/src/stores/wxconfig.js +10 -10
  266. package/src/utils/getNowDate.js +33 -33
  267. package/test/e2e/custom-assertions/elementCount.js +26 -26
  268. package/test/e2e/nightwatch.conf.js +40 -40
  269. package/test/e2e/runner.js +30 -30
  270. package/test/e2e/specs/test.js +13 -13
  271. package/test/unit/.eslintrc +5 -5
  272. package/test/unit/TestUtil.js +62 -62
  273. package/test/unit/context.html +20 -20
  274. package/test/unit/index.js +13 -13
  275. package/yarn-error.log +140 -0
@@ -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>