safecheck-client 4.0.2-47 → 4.0.2-48

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 (257) hide show
  1. package/.babelrc +5 -5
  2. package/.editorconfig +9 -9
  3. package/android.html +18 -18
  4. package/build/libs/SafecheckClient-1.15.6-9.jar +0 -0
  5. package/build/tmp/jar/MANIFEST.MF +2 -0
  6. package/config/dev.env.js +6 -6
  7. package/config/index.js +38 -38
  8. package/config/prod.env.js +3 -3
  9. package/config/test.env.js +6 -6
  10. package/docs/AppBase.md +22 -22
  11. package/docs/Busy.md +14 -14
  12. package/docs/CriteriaPaged.md +47 -47
  13. package/docs/DataGrid.md +54 -54
  14. package/docs/DataModel.md +22 -22
  15. package/docs/Dynamic.md +42 -42
  16. package/docs/GetParams.md +11 -11
  17. package/docs/HttpBusy.md +13 -13
  18. package/docs/HttpStore.md +29 -29
  19. package/docs/MessageBox.md +28 -28
  20. package/docs/PagedList.md +29 -29
  21. package/docs/Pager.md +21 -21
  22. package/docs/Project.md +23 -23
  23. package/docs/Route.md +105 -105
  24. package/docs/SafetyCheck/AdjustPlan.md +13 -13
  25. package/docs/SafetyCheck/CheckerPlan.md +12 -12
  26. package/docs/Task.md +46 -46
  27. package/docs/TreeList.md +28 -28
  28. package/docs/TreeMixin.md +18 -18
  29. package/docs/all.md +10 -10
  30. package/docs/list.md +42 -42
  31. package/docs/partial.md +75 -75
  32. package/docs/selector.md +82 -82
  33. package/docs//345/274/200/345/217/221/346/226/207/346/241/243/Snippets.md +28 -28
  34. 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
  35. 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
  36. 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
  37. package/docs//347/225/214/351/235/242/345/210/266/344/275/234/350/247/204/350/214/203.md +54 -54
  38. package/examples/AddressList/App.vue +13 -13
  39. package/examples/AddressList/index.html +11 -11
  40. package/examples/DispatchList/App.vue +10 -10
  41. package/examples/DispatchList/BaseTree.vue +13 -13
  42. package/examples/DispatchList/Init.vue +22 -22
  43. package/examples/DispatchList/Test.vue +20 -20
  44. package/examples/DispatchList/index.html +11 -11
  45. package/examples/DispatchList/main.js +18 -18
  46. package/home.html +16 -16
  47. package/package.json +1 -1
  48. package/publish.bat +7 -7
  49. package/release.bat +5 -5
  50. package/src/Widget.vue +13 -13
  51. package/src/android-bootstrap/fonts/glyphicons-halflings-regular.svg +287 -287
  52. package/src/android-bootstrap/less/.csscomb.json +304 -304
  53. package/src/android-bootstrap/less/.csslintrc +19 -19
  54. package/src/android-bootstrap/less/alerts.less +73 -73
  55. package/src/android-bootstrap/less/badges.less +66 -66
  56. package/src/android-bootstrap/less/bootstrap.less +56 -56
  57. package/src/android-bootstrap/less/breadcrumbs.less +26 -26
  58. package/src/android-bootstrap/less/button-groups.less +247 -247
  59. package/src/android-bootstrap/less/buttons.less +173 -173
  60. package/src/android-bootstrap/less/carousel.less +269 -269
  61. package/src/android-bootstrap/less/close.less +34 -34
  62. package/src/android-bootstrap/less/code.less +69 -69
  63. package/src/android-bootstrap/less/component-animations.less +33 -33
  64. package/src/android-bootstrap/less/grid.less +84 -84
  65. package/src/android-bootstrap/less/input-groups.less +167 -167
  66. package/src/android-bootstrap/less/jumbotron.less +52 -52
  67. package/src/android-bootstrap/less/labels.less +64 -64
  68. package/src/android-bootstrap/less/list-group.less +141 -141
  69. package/src/android-bootstrap/less/media.less +66 -66
  70. package/src/android-bootstrap/less/mixins/alerts.less +14 -14
  71. package/src/android-bootstrap/less/mixins/background-variant.less +9 -9
  72. package/src/android-bootstrap/less/mixins/border-radius.less +18 -18
  73. package/src/android-bootstrap/less/mixins/buttons.less +69 -69
  74. package/src/android-bootstrap/less/mixins/center-block.less +7 -7
  75. package/src/android-bootstrap/less/mixins/clearfix.less +22 -22
  76. package/src/android-bootstrap/less/mixins/forms.less +90 -90
  77. package/src/android-bootstrap/less/mixins/gradients.less +59 -59
  78. package/src/android-bootstrap/less/mixins/grid-framework.less +92 -92
  79. package/src/android-bootstrap/less/mixins/grid.less +122 -122
  80. package/src/android-bootstrap/less/mixins/hide-text.less +21 -21
  81. package/src/android-bootstrap/less/mixins/image.less +33 -33
  82. package/src/android-bootstrap/less/mixins/labels.less +12 -12
  83. package/src/android-bootstrap/less/mixins/list-group.less +30 -30
  84. package/src/android-bootstrap/less/mixins/nav-divider.less +10 -10
  85. package/src/android-bootstrap/less/mixins/nav-vertical-align.less +9 -9
  86. package/src/android-bootstrap/less/mixins/opacity.less +8 -8
  87. package/src/android-bootstrap/less/mixins/pagination.less +24 -24
  88. package/src/android-bootstrap/less/mixins/panels.less +24 -24
  89. package/src/android-bootstrap/less/mixins/progress-bar.less +10 -10
  90. package/src/android-bootstrap/less/mixins/reset-filter.less +8 -8
  91. package/src/android-bootstrap/less/mixins/reset-text.less +18 -18
  92. package/src/android-bootstrap/less/mixins/resize.less +6 -6
  93. package/src/android-bootstrap/less/mixins/responsive-visibility.less +15 -15
  94. package/src/android-bootstrap/less/mixins/size.less +10 -10
  95. package/src/android-bootstrap/less/mixins/tab-focus.less +9 -9
  96. package/src/android-bootstrap/less/mixins/table-row.less +44 -44
  97. package/src/android-bootstrap/less/mixins/text-emphasis.less +9 -9
  98. package/src/android-bootstrap/less/mixins/text-overflow.less +8 -8
  99. package/src/android-bootstrap/less/mixins/vendor-prefixes.less +227 -227
  100. package/src/android-bootstrap/less/mixins.less +40 -40
  101. package/src/android-bootstrap/less/modals.less +151 -151
  102. package/src/android-bootstrap/less/navbar.less +660 -660
  103. package/src/android-bootstrap/less/navs.less +290 -290
  104. package/src/android-bootstrap/less/normalize.less +424 -424
  105. package/src/android-bootstrap/less/pager.less +76 -76
  106. package/src/android-bootstrap/less/pagination.less +89 -89
  107. package/src/android-bootstrap/less/panels.less +274 -274
  108. package/src/android-bootstrap/less/popovers.less +131 -131
  109. package/src/android-bootstrap/less/print.less +101 -101
  110. package/src/android-bootstrap/less/progress-bars.less +87 -87
  111. package/src/android-bootstrap/less/responsive-embed.less +35 -35
  112. package/src/android-bootstrap/less/responsive-utilities.less +194 -194
  113. package/src/android-bootstrap/less/scaffolding.less +161 -161
  114. package/src/android-bootstrap/less/tables.less +262 -262
  115. package/src/android-bootstrap/less/theme.less +291 -291
  116. package/src/android-bootstrap/less/thumbnails.less +36 -36
  117. package/src/android-bootstrap/less/tooltip.less +102 -102
  118. package/src/android-bootstrap/less/type.less +303 -303
  119. package/src/android-bootstrap/less/utilities.less +55 -55
  120. package/src/android-bootstrap/less/variables.less +896 -896
  121. package/src/android-bootstrap/less/wells.less +29 -29
  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/AttendanceTally.vue +116 -116
  192. package/src/components/android/Blank.vue +10 -10
  193. package/src/components/android/CheckUnplanPage.vue +56 -56
  194. package/src/components/android/Checker.vue +12 -12
  195. package/src/components/android/CheckerAnnual.vue +81 -81
  196. package/src/components/android/CheckerAvarta.vue +82 -82
  197. package/src/components/android/EquipmentInspection.vue +348 -348
  198. package/src/components/android/FootprintMap.vue +120 -120
  199. package/src/components/android/HiddentroubleInvestigation.vue +192 -192
  200. package/src/components/android/MasterMain.vue +77 -77
  201. package/src/components/android/Menu.vue +132 -132
  202. package/src/components/android/PaperAlarm.vue +85 -85
  203. package/src/components/android/PaperDeviceNoncivil.vue +214 -214
  204. package/src/components/android/PlumberAnnual.vue +83 -83
  205. package/src/components/android/PlumberAnnualDetail.vue +65 -65
  206. package/src/components/android/PlumberMonthly.vue +84 -84
  207. package/src/components/android/PostMap.vue +83 -83
  208. package/src/components/android/QueryCheckHistory.vue +122 -122
  209. package/src/components/android/QueryCheckHistoryItem.vue +62 -62
  210. package/src/components/android/RepairMain.vue +60 -60
  211. package/src/components/android/Repairman.vue +12 -12
  212. package/src/components/android/StationMaster.vue +12 -12
  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/phonestate/MonthlyTraffic.vue +66 -66
  220. package/src/components/phonestate/MonthlyTrafficRouter.vue +15 -15
  221. package/src/components/phonestate/PostMap.vue +82 -82
  222. package/src/components/querycheckpaper/PaperItem.vue +59 -59
  223. package/src/components/report/CheckPlanAreaList.vue +551 -551
  224. package/src/components/userfile/MeterFile.vue +145 -145
  225. package/src/components/userfile/MeterModify.vue +46 -46
  226. package/src/components/userfileaudit/MeterAuditFile.vue +129 -129
  227. package/src/filiale/jinhong/pc/CheckSearchUser.vue +1120 -1120
  228. package/src/filiale/xinkang/android/SafecheckDevices.vue +1213 -1213
  229. package/src/main.js +33 -33
  230. package/src/plugins/LoadData.js +10 -10
  231. package/src/plugins/LoadParams.js +24 -24
  232. package/src/stores/wxconfig.js +10 -10
  233. package/src/utils/getNowDate.js +33 -33
  234. package/test/e2e/custom-assertions/elementCount.js +26 -26
  235. package/test/e2e/nightwatch.conf.js +40 -40
  236. package/test/e2e/runner.js +30 -30
  237. package/test/e2e/specs/test.js +13 -13
  238. package/test/unit/.eslintrc +5 -5
  239. package/test/unit/TestUtil.js +62 -62
  240. package/test/unit/context.html +20 -20
  241. package/test/unit/index.js +13 -13
  242. package/build/css-loaders.js +0 -34
  243. package/build/dev-android.js +0 -151
  244. package/build/dev-client.js +0 -8
  245. package/build/example-server.js +0 -157
  246. package/build/release.sh +0 -28
  247. package/build/utils.js +0 -71
  248. package/build/webpack.base.conf.js +0 -129
  249. package/build/webpack.baseandroid.conf.js +0 -83
  250. package/build/webpack.dev.conf.js +0 -44
  251. package/build/webpack.devandroid.conf.js +0 -33
  252. package/build/webpack.example.conf.js +0 -49
  253. package/build/webpack.hanwei.conf.js +0 -57
  254. package/build/webpack.hwbase.conf.js +0 -78
  255. package/build/webpack.prod.conf.js +0 -78
  256. package/build/webpack.prodandroid.conf.js +0 -60
  257. package/build/webpack.test.conf.js +0 -31
@@ -1,551 +1,551 @@
1
- <template>
2
- <div class="flex">
3
- <criteria-paged :model="model" v-ref:paged>
4
- <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
5
- <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
6
- <div class="row">
7
- <!--<div :class="{'form-group col-sm-3':$parent.$parent.$parent.isdetail,'form-group col-sm-2':!$parent.$parent.$parent.isdetail}">
8
- <label class="font_normal_body">组织机构</label>
9
- <res-select restype='organization'
10
- class="select select_list"
11
- style="width: 60%"
12
- @res-select="$parent.$parent.getorg"
13
- :initresid='$parent.$parent.curorgid'>
14
- </res-select>
15
- </div>-->
16
- <div :class="{'col-sm-6':$parent.$parent.$parent.isdetail,'col-sm-4':!$parent.$parent.$parent.isdetail}">
17
- <role-selector-safe
18
- role-name="安检员"
19
- role-lable="安&ensp;检&ensp;员"
20
- @re-res="$parent.$parent.getorg"
21
- :value.sync="model.f_checker_id"
22
- v-model="model.f_checker_id"
23
- condition="f_checker_name like '%{}%'">
24
- </role-selector-safe>
25
- </div>
26
- <div :class="{'form-group col-sm-3':$parent.$parent.$parent.isdetail,'form-group col-sm-2':!$parent.$parent.$parent.isdetail}">
27
- <label class="font_normal_body">小区名称</label>
28
- <input type="text" class="input_search" style="width:60%" v-model="model.f_residential_area" placeholder='小区名称'
29
- condition="f_residential_area like '%{}%'" v-next-el="cx" v-el:qjmc>
30
- </div>
31
- <div :class="{'form-group col-sm-3':$parent.$parent.$parent.isdetail,'form-group col-sm-2':!$parent.$parent.$parent.isdetail}">
32
- <label class="font_normal_body">计划名称</label>
33
- <v-select class="select_list select"
34
- placeholder='计划名称' style="width: 60%"
35
- :search="true"
36
- v-model="model.f_plan_name"
37
- :value.sync="model.f_plan_name"
38
- :options='$parent.$parent.planName'
39
- condition="f_plan_id = '{}'"
40
- :value-single="true"
41
- close-on-select clear-button></v-select>
42
-
43
- </div>
44
- <div :class="{'form-group col-sm-3':$parent.$parent.$parent.isdetail,'form-group col-sm-2':!$parent.$parent.$parent.isdetail}">
45
- <label class="font_normal_body">片&emsp;&emsp;区</label>
46
- <v-select class="select_list select"
47
- placeholder='片区/管理站' style="width: 60%"
48
- :value.sync="model.f_slice_area" v-model="model.f_slice_area"
49
- :options='$parent.$parent.sliceArea'
50
- filer-key="name"
51
- close-on-select clear-button
52
- condition="f_slice_area='{}'"
53
- :value-single="true">
54
- </v-select>
55
- </div>
56
- <!--<div :class="{
57
- 'form-group col-sm-3':$parent.$parent.$parent.isdetail,'form-group col-sm-2':!$parent.$parent.$parent.isdetail}">
58
- <label class="font_normal_body">安&ensp;检&ensp;员</label>
59
- <input type="text" class="input_search" style="width:60%" v-model="model.f_checker_name" placeholder='安检员'
60
- condition="f_checker_name like '%{}%'" v-next-el="cx" v-el:qjmc>
61
- </div>-->
62
- <div class="form-group col-sm-2" v-if="!$parent.$parent.$parent.isdetail"></div>
63
- <div :class="{'form-group col-sm-3':$parent.$parent.$parent.isdetail,'form-group col-sm-2':!$parent.$parent.$parent.isdetail}" style="float:right; padding-right: 25px">
64
- <div class="span" style="float:right;">
65
- <div style="float: right;margin-left:10px" class="button_spacing"
66
- :class="{'button_shrink_left':!$parent.$parent.$parent.isdetail,'button_shrink_right':$parent.$parent.$parent.isdetail}"
67
- @click="$parent.$parent.hiddenr()"></div>
68
- <div class="button_spacing" style="float: right;margin-left:10px"
69
- :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
70
- @click="$parent.$parent.hidden()">
71
- </div>
72
- <!-- <export-excel :data="$parent.$parent.exportParameter"
73
- :field="$parent.$parent.exportExcelField"
74
- sqlurl="api/af-safecheck/logic/exportfile" sql-name="getCheckPlanAreaList"
75
- template-name='安检汇总' :choose-col="true">
76
- </export-excel>-->
77
- <export-excel :data="$parent.$parent.exportParameter"
78
- :field="$parent.$parent.exportExcelField"
79
- sqlurl="api/af-safecheck/logic/exportfile"
80
- sql-name="getCheckPlanAreaList"
81
- template-name='安检汇总' :choose-col="true">
82
- </export-excel>
83
- <button id="btnaaa" style="float: right" class="button_search"
84
- @click="$parent.$parent.getGroupName1(),search(),$parent.$parent.getexportExcelField(),$parent.$parent.$parent.isdetail=false,$parent.$parent.listflag=false"
85
- v-el:cx>查询</button>
86
- </div>
87
- </div>
88
- <div :class="{'form-group col-sm-3':$parent.$parent.$parent.isdetail,'form-group col-sm-2':!$parent.$parent.$parent.isdetail}" v-if="$parent.$parent.criteriaShow">
89
- <label class="font_normal_body">起始时间</label>
90
- <datepicker
91
- :value.sync="$parent.$parent.f_check_start"
92
- placeholder='起始时间' style="width:60%"
93
- :disabled-days-of-week="[]"
94
- :format="'yyyy-MM'"
95
- :select-month="true"
96
- :show-rest-button="reset">
97
- </datepicker>
98
- </div>
99
- <div :class="{'form-group col-sm-3':$parent.$parent.$parent.isdetail,'form-group col-sm-2':!$parent.$parent.$parent.isdetail}" v-if="$parent.$parent.criteriaShow">
100
- <label class="font_normal_body">结束时间</label>
101
- <datepicker
102
- :value.sync="$parent.$parent.f_check_end"
103
- placeholder='结束时间' style="width:60%"
104
- :disabled-days-of-week="[]"
105
- :format="'yyyy-MM'"
106
- :select-month="true"
107
- :show-rest-button="reset">
108
- </datepicker>
109
- </div>
110
- </div>
111
- <div class="row">
112
- <div class="col-sm-12">
113
- <label class="control-label" style="color: #c7254e">汇 总 项</label>
114
- <input type="checkbox" id="f_plan_month" value="f_plan_month" v-model="$parent.$parent.nameForSql"/>
115
- <label for="f_plan_month">计划月份</label>
116
- <input type="checkbox" id="f_no_checkplan" value="f_no_checkplan" v-model="$parent.$parent.nameForSql"/>
117
- <label for="f_no_checkplan">计划类型</label>
118
- <input type="checkbox" id="f_residential_area" value="f_residential_area" v-model="$parent.$parent.nameForSql"/>
119
- <label for="f_residential_area">小区名称</label>
120
- <input type="checkbox" id="f_plan_name" value="f_plan_name" v-model="$parent.$parent.nameForSql"/>
121
- <label for="f_plan_name">计划名称</label>
122
- <input type="checkbox" id="f_checker_name" value="f_checker_name" v-model="$parent.$parent.nameForSql"/>
123
- <label for="f_checker_name">安检员</label>
124
- <input type="checkbox" id="f_user_number" value="f_user_number" v-model="$parent.$parent.nameForSql"/>
125
- <label for="f_checker_name">档案数量</label>
126
- <input type="checkbox" id="f_safecheck_type" value="f_safecheck_type" v-model="$parent.$parent.nameForSql"/>
127
- <label for="f_checker_name">安检类型</label>
128
- </div>
129
- </div>
130
- </div>
131
-
132
- </criteria>
133
- <data-grid id="excelid" :model="model" partial='list' class="list_area table_sy excelid" v-ref:grid>
134
- <template partial='head'>
135
- <tr>
136
- <th>
137
- <nobr>序号</nobr>
138
- </th>
139
- <th v-if="$parent.$parent.$parent.nameForSql.includes('f_plan_month')"><nobr>计划月份</nobr></th>
140
- <th v-if="$parent.$parent.$parent.nameForSql.includes('f_no_checkplan')"><nobr>计划类型</nobr></th>
141
- <th v-if="$parent.$parent.$parent.nameForSql.includes('f_residential_area')"><nobr>小区名称</nobr></th>
142
- <th v-if="$parent.$parent.$parent.nameForSql.includes('f_plan_name')"><nobr>计划名称</nobr></th>
143
- <th v-if="$parent.$parent.$parent.nameForSql.includes('f_checker_name')"><nobr>安检员</nobr></th>
144
- <th v-if="$parent.$parent.$parent.nameForSql.includes('f_user_number')"><nobr>档案数量</nobr></th>
145
- <th v-if="$parent.$parent.$parent.nameForSql.includes('f_safecheck_type')"><nobr>安检类型</nobr></th>
146
- <th>
147
- <nobr>计划总数</nobr>
148
- </th>
149
- <th>
150
- <nobr>未检</nobr>
151
- </th>
152
- <th>
153
- <nobr>已检</nobr>
154
- </th>
155
- <th>
156
- <nobr>入户</nobr>
157
- </th>
158
- <th>
159
- <nobr>到访不遇</nobr>
160
- </th>
161
- <th>
162
- <nobr>拒检</nobr>
163
- </th>
164
- <th>
165
- <nobr>安检率</nobr>
166
- </th>
167
- <!--<th>-->
168
- <!--<nobr>查看</nobr>-->
169
- <!--</th>-->
170
- </tr>
171
- </template>
172
- <template partial='body'>
173
- <tr>
174
- <td style="text-align:center;border-right: 1px solid ">{{$index + 1}}</td>
175
- <!-- <td style="text-align:center" v-if="$parent.$parent.$parent.nameForSql.includes('f_plan_month')">{{row.f_plan_month.indexOf('*&')!=-1?'':row.f_plan_month}}</td>-->
176
- <!-- <td style="text-align:center" v-if="$parent.$parent.$parent.nameForSql.includes('f_no_checkplan')">{{row.f_no_checkplan.indexOf('*&')!=-1?'':row.f_no_checkplan}}</td>-->
177
- <!-- <td style="text-align:center" v-if="$parent.$parent.$parent.nameForSql.includes('f_residential_area')">{{row.f_residential_area.indexOf('*&')!=-1?'':row.f_residential_area}}</td>-->
178
- <!-- <td style="text-align:center" v-if="$parent.$parent.$parent.nameForSql.includes('f_plan_name')">{{row.f_plan_name.indexOf('*&')!=-1?'':row.f_plan_name}}</td>-->
179
- <!-- <td style="text-align:center" v-if="$parent.$parent.$parent.nameForSql && $parent.$parent.$parent.nameForSql.includes('f_checker_name')">{{row.f_checker_name && row.f_checker_name.indexOf('*&')!=-1?'':row.f_checker_name}}</td>-->
180
- <td style="text-align:center" :class="{'td-0':row.f_plan_month==undefined,'td-1':model.rows && model.rows.length!=($index+1)&&row.f_plan_month.indexOf('*&')==-1,'td-2':model.rows && model.rows.length!=($index+1)&&row.f_plan_month.indexOf('*&')!=-1,'td-3':model.rows && model.rows.length==($index+1)&&row.f_plan_month.indexOf('*&')!=-1,'td-4':model.rows && model.rows.length==($index+1)&&row.f_plan_month.indexOf('*&')==-1}" v-if="$parent.$parent.$parent.nameForSql.includes('f_plan_month')">{{row.f_plan_month.indexOf('*&')!=-1?'':row.f_plan_month}}</td>
181
- <td style="text-align:center" :class="{'td-0':row.f_no_checkplan==undefined,'td-1':model.rows && model.rows.length!=($index+1)&&row.f_no_checkplan.indexOf('*&')==-1,'td-2':model.rows && model.rows.length!=($index+1)&&row.f_no_checkplan.indexOf('*&')!=-1,'td-3':model.rows && model.rows.length==($index+1)&&row.f_no_checkplan.indexOf('*&')!=-1,'td-4':model.rows && model.rows.length==($index+1)&&row.f_no_checkplan.indexOf('*&')==-1}" v-if="$parent.$parent.$parent.nameForSql.includes('f_no_checkplan')">{{row.f_no_checkplan.indexOf('*&')!=-1?'':row.f_no_checkplan}}</td>
182
- <td style="text-align:center" :class="{'td-0':row.f_residential_area==undefined,'td-1':model.rows && model.rows.length!=($index+1)&&row.f_residential_area.indexOf('*&')==-1,'td-2':model.rows && model.rows.length!=($index+1)&&row.f_residential_area.indexOf('*&')!=-1,'td-3':model.rows && model.rows.length==($index+1)&&row.f_residential_area.indexOf('*&')!=-1,'td-4':model.rows && model.rows.length==($index+1)&&row.f_residential_area.indexOf('*&')==-1}" v-if="$parent.$parent.$parent.nameForSql.includes('f_residential_area')">{{row.f_residential_area.indexOf('*&')!=-1?'':row.f_residential_area}}</td>
183
- <td style="text-align:center" :class="{'td-0':row.f_plan_name==undefined,'td-1':model.rows && model.rows.length!=($index+1)&&row.f_plan_name.indexOf('*&')==-1,'td-2':model.rows && model.rows.length!=($index+1)&&row.f_plan_name.indexOf('*&')!=-1,'td-3':model.rows && model.rows.length==($index+1)&&row.f_plan_name.indexOf('*&')!=-1,'td-4':model.rows && model.rows.length==($index+1)&&row.f_plan_name.indexOf('*&')==-1}" v-if="$parent.$parent.$parent.nameForSql.includes('f_plan_name')">{{row.f_plan_name.indexOf('*&')!=-1?'':row.f_plan_name}}</td>
184
- <td style="text-align:center" :class="{'td-0':row && !row.f_checker_name,'td-1':model.rows && model.rows.length!=($index+1)&&row.f_checker_name && row.f_checker_name.indexOf('*&')==-1,'td-2':model.rows && model.rows.length!=($index+1)&&row.f_checker_name &&row.f_checker_name.indexOf('*&')!=-1,'td-3':model.rows && model.rows.length==($index+1)&&row.f_checker_name &&row.f_checker_name.indexOf('*&')!=-1,'td-4':model.rows && model.rows.length==($index+1)&&row.f_checker_name &&row.f_checker_name.indexOf('*&')==-1}" v-if="$parent.$parent.$parent.nameForSql && $parent.$parent.$parent.nameForSql.includes('f_checker_name')">{{row.f_checker_name && row.f_checker_name.indexOf('*&')!=-1?'':row.f_checker_name}}</td>
185
- <td style="text-align:center" v-if="$parent.$parent.$parent.nameForSql.includes('f_user_number')">{{row.f_user_number}}</td>
186
- <td style="text-align:center" v-if="$parent.$parent.$parent.nameForSql.includes('f_safecheck_type')">{{row.f_safecheck_type}}</td>
187
- <td style="text-align:center">{{row.f_plan_total}}</td>
188
- <td style="text-align:center">{{row.f_weijian}}</td>
189
- <td style="text-align:center"><nobr>{{row.f_yijian}}</nobr></td>
190
- <td style="text-align:center"><nobr>{{row.f_ruhu}}</nobr></td>
191
- <td style="text-align:center">{{row.f_buyu}}</td>
192
- <td style="text-align:center"><nobr>{{row.f_jujian}}</nobr></td>
193
- <td style="text-align:center"><nobr>{{row.f_check_bv}}</nobr></td>
194
- </tr>
195
- </template>
196
- <template partial="foot">
197
- <tr>
198
- <td style="text-align:center"><strong>合计:</strong></td>
199
- <td style="text-align:center" :colspan="$parent.$parent.$parent.nameForSql.length"></td>
200
- <td style="text-align:center"><strong>{{model.sums.f_plan_total}}</strong></td>
201
- <td style="text-align:center"><strong>{{model.sums.f_weijian}}</strong></td>
202
- <td style="text-align:center"><nobr><strong>{{model.sums.f_yijian}}</strong></nobr></td>
203
- <td style="text-align:center"><nobr><strong>{{model.sums.f_ruhu}}</strong></nobr></td>
204
- <td style="text-align:center"><nobr><strong>{{model.sums.f_buyu}}</strong></nobr></td>
205
- <td style="text-align:center"><nobr><strong>{{model.sums.f_jujian}}</strong></nobr></td>
206
- <td style="text-align:center"><strong>{{model.sums.f_plan_total>0?(model.sums.f_yijian/model.sums.f_plan_total*100).toFixed(2)+'%':0}}</strong></td>
207
- </tr >
208
- </template>
209
- </data-grid>
210
- </criteria-paged>
211
- </div>
212
- </template>
213
-
214
- <script>
215
- /**
216
- *阶梯气价查询列表
217
- */
218
- import {PagedList} from 'vue-client'
219
- import { HttpResetClass } from 'vue-client'
220
- import * as Util from "../Util";
221
- import XLSX from 'xlsx'
222
- export default {
223
- data () {
224
- return {
225
- model: new PagedList('api/af-safecheck/sql/getCheckPlanAreaList', 50,{},{f_plan_total:'',f_weijian:'',f_yijian:'',f_ruhu:'',f_buyu:'',f_jujian:''}),
226
- // 公司下拉
227
- curorgid: [this.$login.f.orgid],
228
- row: {},
229
- f_orgid: '',
230
- nameForSql: [],
231
- sliceArea: [],
232
- groupNameForSql: '',
233
- listflag:false,
234
- nameflag:false,
235
- criteriaShow: false,
236
- f_check_start:new Date().getFullYear() + '-01',
237
- f_check_end:new Date().getFullYear() + '-12',
238
- planName:[{label: '全部', value: ''}],
239
- exportExcelField: {
240
- 'f_weijian':'未检',
241
- 'f_yijian':'已检',
242
- 'f_ruhu':'入户',
243
- 'f_buyu':'到访不遇',
244
- 'f_jujian':'拒检',
245
- 'f_check_bv':'安检率'
246
- }
247
- }
248
- },
249
- props: {
250
- row: {},
251
- config: {},
252
- ispartial: false,
253
- f_filialeid: {
254
- type: String
255
- }
256
- },
257
- ready () {
258
- this.nameForSql = ['f_plan_month', 'f_plan_name','f_checker_name']
259
- this.groupNameForSql = 'f_plan_month', 'f_plan_name','f_checker_name'
260
- this.pl()
261
- // this.search()
262
- this.Mreadibook(this.$login.f.orgid)
263
-
264
- },
265
- methods: {
266
- Mreadibook(val){
267
- if (val){
268
- new HttpResetClass().load('POST',`/api/af-safecheck/sql/safe_singleTable_OrderBy`, {data: {
269
- items: 'name',
270
- tablename: 't_zone',
271
- condition: `parentid = '${val}'`,
272
- orderitem: 'id'
273
- }}, {resolveMsg: null, rejectMsg: null}).then((res) => {
274
- this.sliceArea=[]
275
- this.sliceArea.push({
276
- label:'全部',
277
- value:''
278
- })
279
- res.data.forEach(ress=>{
280
- this.sliceArea.push({
281
- label:ress.name,
282
- value:ress.name
283
- })
284
- })
285
- })
286
- }
287
- },
288
- exportexcel(){
289
- //tag
290
- // 以上四行也可以直接一行搞定,如果不需要对表格数据进行修改的话
291
- const aa = document.getElementsByClassName("list_area table_sy excelid")[0]
292
- console.log(aa)
293
- let workbook = XLSX.utils.table_to_book(document.getElementsByClassName("list_area table_sy excelid")[0])
294
- try {
295
- XLSX.writeFile(workbook, '安检情况汇总导出.xlsx');
296
- } catch(e) {
297
- //tag;
298
- }
299
- },
300
- // 获取导出列
301
- getexportExcelField(){
302
- this.exportExcelField = {
303
- 'f_weijian':'未检',
304
- 'f_yijian':'已检',
305
- 'f_ruhu':'入户',
306
- 'f_buyu':'到访不遇',
307
- 'f_jujian':'拒检',
308
- 'f_check_bv':'安检率',
309
- 'f_plan_total':'计划总数'
310
- }
311
- let forName = this.groupNameForSql.split(",")
312
- for (let i = 0; i < forName.length; i++) {
313
- let ff = forName[i]
314
- if (ff==='f_plan_month') {
315
- this.exportExcelField.f_plan_month='计划月份'
316
- }
317
- if (ff==='f_no_checkplan') {
318
- this.exportExcelField.f_no_checkplan='计划类型'
319
- }
320
- if (ff==='f_plan_name') {
321
- this.exportExcelField.f_plan_name='计划名称'
322
- }
323
- if (ff==='f_checker_name') {
324
- this.exportExcelField.f_checker_name='安检员'
325
- }if (ff==='f_residential_area') {
326
- this.exportExcelField.f_residential_area='小区名称'
327
- }if (ff==='f_user_number') {
328
- this.exportExcelField.f_user_number='档案数量'
329
- }
330
- if (ff==='f_safecheck_type') {
331
- this.exportExcelField.f_safecheck_type='安检类型'
332
- }
333
- }
334
- },
335
- pl() {
336
- let getGasman = new HttpResetClass()
337
- getGasman.load('POST', `api/af-safecheck/sql/safe_singleTable_OrderBy`, {
338
- data: {
339
- items: "id,f_plan_name",
340
- tablename: "t_check_plan",
341
- condition: `f_filialeid = '${this.curorgid}'`,
342
- orderitem: "id"
343
- }
344
- }, {resolveMsg: null, rejectMsg: null}).then((plne) => {
345
- //tag
346
- //tag
347
- //tag
348
- for (let i = 0; i < plne.data.length; i++) {
349
- this.planName.push({label: plne.data[i].f_plan_name, value: plne.data[i].id})
350
- }
351
- //tag
352
- })
353
- },
354
- hiddenr() {
355
- this.$parent.isdetail = !this.$parent.isdetail
356
- },
357
- hidden() {
358
- this.criteriaShow = !this.criteriaShow
359
- },
360
- search () {
361
- this.$refs.paged.$refs.cri.search()
362
- this.$dispatch('search')
363
- },
364
- getorg (val) {
365
- this.f_orgid = this.$login.convertToIn(val.resids)
366
- this.f_filialeid = val[0]
367
-
368
- },
369
- selfSearch (args) {
370
- if (!this.f_orgid) {
371
- this.getorg([this.$login.f.orgid])
372
- args.condition = `f_filialeid in ('${this.$login.f.orgid}') and ${args.condition}`
373
- }
374
- if (this.f_orgid) {
375
- args.condition = `f_filialeid in ${this.f_orgid} and ${args.condition}`
376
- }
377
- if(this.f_check_start && this.f_check_end){
378
- if(new Date(this.f_check_start).getFullYear() == new Date(this.f_check_end).getFullYear() ){
379
- args.condition += ` and f_year>=${new Date(this.f_check_start).getFullYear()} and f_month>=${new Date(this.f_check_start).getMonth()+1} and f_month<=${new Date(this.f_check_end).getMonth()+1}`
380
- }else {
381
- args.condition += ` and (
382
- (f_year = ${new Date(this.f_check_start).getFullYear()} and f_month >= ${new Date(this.f_check_start).getMonth()+1})
383
- or
384
- ( f_year > ${new Date(this.f_check_start).getFullYear()} and f_year < ${new Date(this.f_check_end).getFullYear()})
385
- or
386
- (f_year = ${new Date(this.f_check_end).getFullYear()} and f_month <= ${new Date(this.f_check_end).getMonth()+1}))`
387
- }
388
- } else {
389
- if(this.f_check_start){
390
- args.condition += ` and f_year>=${new Date(this.f_check_start).getFullYear()} and f_month>=${new Date(this.f_check_start).getMonth()+1}`
391
- }
392
- if(this.f_check_end){
393
- args.condition += ` and f_year<=${new Date(this.f_check_end).getFullYear()} and f_month<=${new Date(this.f_check_end).getMonth()+1}`
394
- }
395
- }
396
- this.$refs.paged.$refs.grid.$el.scrollTop = 0
397
- if (this.groupNameForSql=='undefined'){
398
- //tag
399
- this.$showMessage("请至少选择一项进行汇总")
400
- return
401
- }
402
- this.model.paramSource = {groupName: `'${this.groupNameForSql}'`}
403
- this.model.search(args.condition, args.model)
404
- },
405
-
406
- // 拼接groupName1
407
- getGroupName1 () {
408
- var temp=['f_plan_month','f_no_checkplan','f_residential_area','f_plan_name','f_checker_name','f_user_number','f_safecheck_type']
409
- var newtemp=[]
410
-
411
- for (var i=0;i<temp.length;i++){
412
- for (var j=0;j<this.nameForSql.length;j++){
413
- //tag
414
- if(temp[i]==this.nameForSql[j]){
415
- newtemp.push(this.nameForSql[j])
416
- }
417
- }
418
- }
419
- let str = ''
420
-
421
- for (var i=0;i < newtemp.length - 1; i++) {
422
- str += newtemp[i] + ','
423
- }
424
- str += newtemp[i]
425
- this.groupNameForSql = str.trim()
426
- }
427
- },
428
- watch: {
429
- // 'nameForSql' () {
430
- //
431
- // this.getGroupName1()
432
- // },
433
- 'nameForSql' () {
434
- var e = document.createEvent("MouseEvents");
435
- e.initEvent("click", true, true);
436
- document.getElementById("btnaaa").dispatchEvent(e);
437
- },
438
- 'model.rows'(){
439
- //tag
440
- if(this.listflag){
441
- return;
442
- }
443
- this.listflag=true
444
- //tag
445
- var temp=['f_plan_month','f_no_checkplan','f_residential_area','f_plan_name','f_checker_name','f_user_number','f_safecheck_type']
446
- var newtemp=[]
447
- for (var i=0;i<temp.length;i++){
448
- for (var j=0;j<this.nameForSql.length;j++){
449
- //tag
450
- if(temp[i]==this.nameForSql[j]){
451
- newtemp.push(this.nameForSql[j])
452
- }
453
- }
454
- }
455
- if((newtemp.includes('f_user_number')&&newtemp.length==2)||(!newtemp.includes('f_user_number')&&newtemp.length==1)){
456
- return
457
- }
458
- var temp=JSON.parse(JSON.stringify(this.model.rows))
459
-
460
- //遍历查询结果 为指定列增加样式
461
- for (var i=0;i<newtemp.length-1;i++){
462
- if(newtemp[i]=='f_user_number'){
463
- return;
464
- }
465
- //tag
466
- var ss=''
467
- for (var j=0;j<temp.length;j++){
468
- if(j>0&&i>0){
469
- var flag=false
470
- for(var t=i-1;t>-1;t--){
471
- //tag
472
- //tag
473
- //tag
474
- //tag
475
- if(temp[j-1][newtemp[t]]!=temp[j][newtemp[t]]&&(temp[j][newtemp[t]] !=null && temp[j][newtemp[t]].indexOf('*&') )==-1){
476
- flag=true
477
- break
478
- }
479
- }
480
- //tag
481
- if(flag){
482
- ss=temp[j][newtemp[i]]
483
- continue
484
- }
485
- }
486
- if(temp[j][newtemp[i]]==ss){
487
- temp[j][newtemp[i]]=temp[j][newtemp[i]]+'*&'
488
- }else {
489
- ss=temp[j][newtemp[i]]
490
- }
491
- }
492
- }
493
- //tag
494
- this.model.rows=JSON.parse(JSON.stringify(temp))
495
- },
496
- 'model.rows.length'() {
497
- // 如果查询无结果,将合计置为0
498
- if(this.model.rows.length < 1){
499
- this.model.sums.f_plan_total = 0
500
- this.model.sums.f_weijian = 0
501
- this.model.sums.f_yijian = 0
502
- this.model.sums.f_ruhu = 0
503
- this.model.sums.f_buyu = 0
504
- this.model.sums.f_jujian = 0
505
- }
506
- }
507
- },
508
- computed:{
509
- exportParameter(){
510
- // excel 导出条件拼接
511
- return {
512
- condition: this.$refs.paged.model.condition,
513
- groupName: this.groupNameForSql
514
- }
515
- }
516
- }
517
- }
518
- </script>
519
-
520
- <style scoped>
521
-
522
- .td-0{
523
- border: 1px solid #000000;
524
- }
525
-
526
- .td-1{
527
- border: none;
528
- border-top: 1px solid #000000;
529
- border-left: 1px solid #000000;
530
- border-right: 1px solid #000000;
531
- }
532
-
533
- .td-2{
534
- border: none;
535
- border-left: 1px solid #000000;
536
- border-right: 1px solid #000000;
537
- }
538
- .td-4{
539
- border: none;
540
- border-top: 1px solid #000000;
541
- border-left: 1px solid #000000;
542
- border-right: 1px solid #000000;
543
- border-bottom: 1px solid #000000;
544
- }
545
- .td-3{
546
- border: none;
547
- border-left: 1px solid #000000;
548
- border-right: 1px solid #000000;
549
- border-bottom: 1px solid #000000;
550
- }
551
- </style>
1
+ <template>
2
+ <div class="flex">
3
+ <criteria-paged :model="model" v-ref:paged>
4
+ <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
5
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
6
+ <div class="row">
7
+ <!--<div :class="{'form-group col-sm-3':$parent.$parent.$parent.isdetail,'form-group col-sm-2':!$parent.$parent.$parent.isdetail}">
8
+ <label class="font_normal_body">组织机构</label>
9
+ <res-select restype='organization'
10
+ class="select select_list"
11
+ style="width: 60%"
12
+ @res-select="$parent.$parent.getorg"
13
+ :initresid='$parent.$parent.curorgid'>
14
+ </res-select>
15
+ </div>-->
16
+ <div :class="{'col-sm-6':$parent.$parent.$parent.isdetail,'col-sm-4':!$parent.$parent.$parent.isdetail}">
17
+ <role-selector-safe
18
+ role-name="安检员"
19
+ role-lable="安&ensp;检&ensp;员"
20
+ @re-res="$parent.$parent.getorg"
21
+ :value.sync="model.f_checker_id"
22
+ v-model="model.f_checker_id"
23
+ condition="f_checker_name like '%{}%'">
24
+ </role-selector-safe>
25
+ </div>
26
+ <div :class="{'form-group col-sm-3':$parent.$parent.$parent.isdetail,'form-group col-sm-2':!$parent.$parent.$parent.isdetail}">
27
+ <label class="font_normal_body">小区名称</label>
28
+ <input type="text" class="input_search" style="width:60%" v-model="model.f_residential_area" placeholder='小区名称'
29
+ condition="f_residential_area like '%{}%'" v-next-el="cx" v-el:qjmc>
30
+ </div>
31
+ <div :class="{'form-group col-sm-3':$parent.$parent.$parent.isdetail,'form-group col-sm-2':!$parent.$parent.$parent.isdetail}">
32
+ <label class="font_normal_body">计划名称</label>
33
+ <v-select class="select_list select"
34
+ placeholder='计划名称' style="width: 60%"
35
+ :search="true"
36
+ v-model="model.f_plan_name"
37
+ :value.sync="model.f_plan_name"
38
+ :options='$parent.$parent.planName'
39
+ condition="f_plan_id = '{}'"
40
+ :value-single="true"
41
+ close-on-select clear-button></v-select>
42
+
43
+ </div>
44
+ <div :class="{'form-group col-sm-3':$parent.$parent.$parent.isdetail,'form-group col-sm-2':!$parent.$parent.$parent.isdetail}">
45
+ <label class="font_normal_body">片&emsp;&emsp;区</label>
46
+ <v-select class="select_list select"
47
+ placeholder='片区/管理站' style="width: 60%"
48
+ :value.sync="model.f_slice_area" v-model="model.f_slice_area"
49
+ :options='$parent.$parent.sliceArea'
50
+ filer-key="name"
51
+ close-on-select clear-button
52
+ condition="f_slice_area='{}'"
53
+ :value-single="true">
54
+ </v-select>
55
+ </div>
56
+ <!--<div :class="{
57
+ 'form-group col-sm-3':$parent.$parent.$parent.isdetail,'form-group col-sm-2':!$parent.$parent.$parent.isdetail}">
58
+ <label class="font_normal_body">安&ensp;检&ensp;员</label>
59
+ <input type="text" class="input_search" style="width:60%" v-model="model.f_checker_name" placeholder='安检员'
60
+ condition="f_checker_name like '%{}%'" v-next-el="cx" v-el:qjmc>
61
+ </div>-->
62
+ <div class="form-group col-sm-2" v-if="!$parent.$parent.$parent.isdetail"></div>
63
+ <div :class="{'form-group col-sm-3':$parent.$parent.$parent.isdetail,'form-group col-sm-2':!$parent.$parent.$parent.isdetail}" style="float:right; padding-right: 25px">
64
+ <div class="span" style="float:right;">
65
+ <div style="float: right;margin-left:10px" class="button_spacing"
66
+ :class="{'button_shrink_left':!$parent.$parent.$parent.isdetail,'button_shrink_right':$parent.$parent.$parent.isdetail}"
67
+ @click="$parent.$parent.hiddenr()"></div>
68
+ <div class="button_spacing" style="float: right;margin-left:10px"
69
+ :class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
70
+ @click="$parent.$parent.hidden()">
71
+ </div>
72
+ <!-- <export-excel :data="$parent.$parent.exportParameter"
73
+ :field="$parent.$parent.exportExcelField"
74
+ sqlurl="api/af-safecheck/logic/exportfile" sql-name="getCheckPlanAreaList"
75
+ template-name='安检汇总' :choose-col="true">
76
+ </export-excel>-->
77
+ <export-excel :data="$parent.$parent.exportParameter"
78
+ :field="$parent.$parent.exportExcelField"
79
+ sqlurl="api/af-safecheck/logic/exportfile"
80
+ sql-name="getCheckPlanAreaList"
81
+ template-name='安检汇总' :choose-col="true">
82
+ </export-excel>
83
+ <button id="btnaaa" style="float: right" class="button_search"
84
+ @click="$parent.$parent.getGroupName1(),search(),$parent.$parent.getexportExcelField(),$parent.$parent.$parent.isdetail=false,$parent.$parent.listflag=false"
85
+ v-el:cx>查询</button>
86
+ </div>
87
+ </div>
88
+ <div :class="{'form-group col-sm-3':$parent.$parent.$parent.isdetail,'form-group col-sm-2':!$parent.$parent.$parent.isdetail}" v-if="$parent.$parent.criteriaShow">
89
+ <label class="font_normal_body">起始时间</label>
90
+ <datepicker
91
+ :value.sync="$parent.$parent.f_check_start"
92
+ placeholder='起始时间' style="width:60%"
93
+ :disabled-days-of-week="[]"
94
+ :format="'yyyy-MM'"
95
+ :select-month="true"
96
+ :show-rest-button="reset">
97
+ </datepicker>
98
+ </div>
99
+ <div :class="{'form-group col-sm-3':$parent.$parent.$parent.isdetail,'form-group col-sm-2':!$parent.$parent.$parent.isdetail}" v-if="$parent.$parent.criteriaShow">
100
+ <label class="font_normal_body">结束时间</label>
101
+ <datepicker
102
+ :value.sync="$parent.$parent.f_check_end"
103
+ placeholder='结束时间' style="width:60%"
104
+ :disabled-days-of-week="[]"
105
+ :format="'yyyy-MM'"
106
+ :select-month="true"
107
+ :show-rest-button="reset">
108
+ </datepicker>
109
+ </div>
110
+ </div>
111
+ <div class="row">
112
+ <div class="col-sm-12">
113
+ <label class="control-label" style="color: #c7254e">汇 总 项</label>
114
+ <input type="checkbox" id="f_plan_month" value="f_plan_month" v-model="$parent.$parent.nameForSql"/>
115
+ <label for="f_plan_month">计划月份</label>
116
+ <input type="checkbox" id="f_no_checkplan" value="f_no_checkplan" v-model="$parent.$parent.nameForSql"/>
117
+ <label for="f_no_checkplan">计划类型</label>
118
+ <input type="checkbox" id="f_residential_area" value="f_residential_area" v-model="$parent.$parent.nameForSql"/>
119
+ <label for="f_residential_area">小区名称</label>
120
+ <input type="checkbox" id="f_plan_name" value="f_plan_name" v-model="$parent.$parent.nameForSql"/>
121
+ <label for="f_plan_name">计划名称</label>
122
+ <input type="checkbox" id="f_checker_name" value="f_checker_name" v-model="$parent.$parent.nameForSql"/>
123
+ <label for="f_checker_name">安检员</label>
124
+ <input type="checkbox" id="f_user_number" value="f_user_number" v-model="$parent.$parent.nameForSql"/>
125
+ <label for="f_checker_name">档案数量</label>
126
+ <input type="checkbox" id="f_safecheck_type" value="f_safecheck_type" v-model="$parent.$parent.nameForSql"/>
127
+ <label for="f_checker_name">安检类型</label>
128
+ </div>
129
+ </div>
130
+ </div>
131
+
132
+ </criteria>
133
+ <data-grid id="excelid" :model="model" partial='list' class="list_area table_sy excelid" v-ref:grid>
134
+ <template partial='head'>
135
+ <tr>
136
+ <th>
137
+ <nobr>序号</nobr>
138
+ </th>
139
+ <th v-if="$parent.$parent.$parent.nameForSql.includes('f_plan_month')"><nobr>计划月份</nobr></th>
140
+ <th v-if="$parent.$parent.$parent.nameForSql.includes('f_no_checkplan')"><nobr>计划类型</nobr></th>
141
+ <th v-if="$parent.$parent.$parent.nameForSql.includes('f_residential_area')"><nobr>小区名称</nobr></th>
142
+ <th v-if="$parent.$parent.$parent.nameForSql.includes('f_plan_name')"><nobr>计划名称</nobr></th>
143
+ <th v-if="$parent.$parent.$parent.nameForSql.includes('f_checker_name')"><nobr>安检员</nobr></th>
144
+ <th v-if="$parent.$parent.$parent.nameForSql.includes('f_user_number')"><nobr>档案数量</nobr></th>
145
+ <th v-if="$parent.$parent.$parent.nameForSql.includes('f_safecheck_type')"><nobr>安检类型</nobr></th>
146
+ <th>
147
+ <nobr>计划总数</nobr>
148
+ </th>
149
+ <th>
150
+ <nobr>未检</nobr>
151
+ </th>
152
+ <th>
153
+ <nobr>已检</nobr>
154
+ </th>
155
+ <th>
156
+ <nobr>入户</nobr>
157
+ </th>
158
+ <th>
159
+ <nobr>到访不遇</nobr>
160
+ </th>
161
+ <th>
162
+ <nobr>拒检</nobr>
163
+ </th>
164
+ <th>
165
+ <nobr>安检率</nobr>
166
+ </th>
167
+ <!--<th>-->
168
+ <!--<nobr>查看</nobr>-->
169
+ <!--</th>-->
170
+ </tr>
171
+ </template>
172
+ <template partial='body'>
173
+ <tr>
174
+ <td style="text-align:center;border-right: 1px solid ">{{$index + 1}}</td>
175
+ <!-- <td style="text-align:center" v-if="$parent.$parent.$parent.nameForSql.includes('f_plan_month')">{{row.f_plan_month.indexOf('*&')!=-1?'':row.f_plan_month}}</td>-->
176
+ <!-- <td style="text-align:center" v-if="$parent.$parent.$parent.nameForSql.includes('f_no_checkplan')">{{row.f_no_checkplan.indexOf('*&')!=-1?'':row.f_no_checkplan}}</td>-->
177
+ <!-- <td style="text-align:center" v-if="$parent.$parent.$parent.nameForSql.includes('f_residential_area')">{{row.f_residential_area.indexOf('*&')!=-1?'':row.f_residential_area}}</td>-->
178
+ <!-- <td style="text-align:center" v-if="$parent.$parent.$parent.nameForSql.includes('f_plan_name')">{{row.f_plan_name.indexOf('*&')!=-1?'':row.f_plan_name}}</td>-->
179
+ <!-- <td style="text-align:center" v-if="$parent.$parent.$parent.nameForSql && $parent.$parent.$parent.nameForSql.includes('f_checker_name')">{{row.f_checker_name && row.f_checker_name.indexOf('*&')!=-1?'':row.f_checker_name}}</td>-->
180
+ <td style="text-align:center" :class="{'td-0':row.f_plan_month==undefined,'td-1':model.rows && model.rows.length!=($index+1)&&row.f_plan_month.indexOf('*&')==-1,'td-2':model.rows && model.rows.length!=($index+1)&&row.f_plan_month.indexOf('*&')!=-1,'td-3':model.rows && model.rows.length==($index+1)&&row.f_plan_month.indexOf('*&')!=-1,'td-4':model.rows && model.rows.length==($index+1)&&row.f_plan_month.indexOf('*&')==-1}" v-if="$parent.$parent.$parent.nameForSql.includes('f_plan_month')">{{row.f_plan_month.indexOf('*&')!=-1?'':row.f_plan_month}}</td>
181
+ <td style="text-align:center" :class="{'td-0':row.f_no_checkplan==undefined,'td-1':model.rows && model.rows.length!=($index+1)&&row.f_no_checkplan.indexOf('*&')==-1,'td-2':model.rows && model.rows.length!=($index+1)&&row.f_no_checkplan.indexOf('*&')!=-1,'td-3':model.rows && model.rows.length==($index+1)&&row.f_no_checkplan.indexOf('*&')!=-1,'td-4':model.rows && model.rows.length==($index+1)&&row.f_no_checkplan.indexOf('*&')==-1}" v-if="$parent.$parent.$parent.nameForSql.includes('f_no_checkplan')">{{row.f_no_checkplan.indexOf('*&')!=-1?'':row.f_no_checkplan}}</td>
182
+ <td style="text-align:center" :class="{'td-0':row.f_residential_area==undefined,'td-1':model.rows && model.rows.length!=($index+1)&&row.f_residential_area.indexOf('*&')==-1,'td-2':model.rows && model.rows.length!=($index+1)&&row.f_residential_area.indexOf('*&')!=-1,'td-3':model.rows && model.rows.length==($index+1)&&row.f_residential_area.indexOf('*&')!=-1,'td-4':model.rows && model.rows.length==($index+1)&&row.f_residential_area.indexOf('*&')==-1}" v-if="$parent.$parent.$parent.nameForSql.includes('f_residential_area')">{{row.f_residential_area.indexOf('*&')!=-1?'':row.f_residential_area}}</td>
183
+ <td style="text-align:center" :class="{'td-0':row.f_plan_name==undefined,'td-1':model.rows && model.rows.length!=($index+1)&&row.f_plan_name.indexOf('*&')==-1,'td-2':model.rows && model.rows.length!=($index+1)&&row.f_plan_name.indexOf('*&')!=-1,'td-3':model.rows && model.rows.length==($index+1)&&row.f_plan_name.indexOf('*&')!=-1,'td-4':model.rows && model.rows.length==($index+1)&&row.f_plan_name.indexOf('*&')==-1}" v-if="$parent.$parent.$parent.nameForSql.includes('f_plan_name')">{{row.f_plan_name.indexOf('*&')!=-1?'':row.f_plan_name}}</td>
184
+ <td style="text-align:center" :class="{'td-0':row && !row.f_checker_name,'td-1':model.rows && model.rows.length!=($index+1)&&row.f_checker_name && row.f_checker_name.indexOf('*&')==-1,'td-2':model.rows && model.rows.length!=($index+1)&&row.f_checker_name &&row.f_checker_name.indexOf('*&')!=-1,'td-3':model.rows && model.rows.length==($index+1)&&row.f_checker_name &&row.f_checker_name.indexOf('*&')!=-1,'td-4':model.rows && model.rows.length==($index+1)&&row.f_checker_name &&row.f_checker_name.indexOf('*&')==-1}" v-if="$parent.$parent.$parent.nameForSql && $parent.$parent.$parent.nameForSql.includes('f_checker_name')">{{row.f_checker_name && row.f_checker_name.indexOf('*&')!=-1?'':row.f_checker_name}}</td>
185
+ <td style="text-align:center" v-if="$parent.$parent.$parent.nameForSql.includes('f_user_number')">{{row.f_user_number}}</td>
186
+ <td style="text-align:center" v-if="$parent.$parent.$parent.nameForSql.includes('f_safecheck_type')">{{row.f_safecheck_type}}</td>
187
+ <td style="text-align:center">{{row.f_plan_total}}</td>
188
+ <td style="text-align:center">{{row.f_weijian}}</td>
189
+ <td style="text-align:center"><nobr>{{row.f_yijian}}</nobr></td>
190
+ <td style="text-align:center"><nobr>{{row.f_ruhu}}</nobr></td>
191
+ <td style="text-align:center">{{row.f_buyu}}</td>
192
+ <td style="text-align:center"><nobr>{{row.f_jujian}}</nobr></td>
193
+ <td style="text-align:center"><nobr>{{row.f_check_bv}}</nobr></td>
194
+ </tr>
195
+ </template>
196
+ <template partial="foot">
197
+ <tr>
198
+ <td style="text-align:center"><strong>合计:</strong></td>
199
+ <td style="text-align:center" :colspan="$parent.$parent.$parent.nameForSql.length"></td>
200
+ <td style="text-align:center"><strong>{{model.sums.f_plan_total}}</strong></td>
201
+ <td style="text-align:center"><strong>{{model.sums.f_weijian}}</strong></td>
202
+ <td style="text-align:center"><nobr><strong>{{model.sums.f_yijian}}</strong></nobr></td>
203
+ <td style="text-align:center"><nobr><strong>{{model.sums.f_ruhu}}</strong></nobr></td>
204
+ <td style="text-align:center"><nobr><strong>{{model.sums.f_buyu}}</strong></nobr></td>
205
+ <td style="text-align:center"><nobr><strong>{{model.sums.f_jujian}}</strong></nobr></td>
206
+ <td style="text-align:center"><strong>{{model.sums.f_plan_total>0?(model.sums.f_yijian/model.sums.f_plan_total*100).toFixed(2)+'%':0}}</strong></td>
207
+ </tr >
208
+ </template>
209
+ </data-grid>
210
+ </criteria-paged>
211
+ </div>
212
+ </template>
213
+
214
+ <script>
215
+ /**
216
+ *阶梯气价查询列表
217
+ */
218
+ import {PagedList} from 'vue-client'
219
+ import { HttpResetClass } from 'vue-client'
220
+ import * as Util from "../Util";
221
+ import XLSX from 'xlsx'
222
+ export default {
223
+ data () {
224
+ return {
225
+ model: new PagedList('api/af-safecheck/sql/getCheckPlanAreaList', 50,{},{f_plan_total:'',f_weijian:'',f_yijian:'',f_ruhu:'',f_buyu:'',f_jujian:''}),
226
+ // 公司下拉
227
+ curorgid: [this.$login.f.orgid],
228
+ row: {},
229
+ f_orgid: '',
230
+ nameForSql: [],
231
+ sliceArea: [],
232
+ groupNameForSql: '',
233
+ listflag:false,
234
+ nameflag:false,
235
+ criteriaShow: false,
236
+ f_check_start:new Date().getFullYear() + '-01',
237
+ f_check_end:new Date().getFullYear() + '-12',
238
+ planName:[{label: '全部', value: ''}],
239
+ exportExcelField: {
240
+ 'f_weijian':'未检',
241
+ 'f_yijian':'已检',
242
+ 'f_ruhu':'入户',
243
+ 'f_buyu':'到访不遇',
244
+ 'f_jujian':'拒检',
245
+ 'f_check_bv':'安检率'
246
+ }
247
+ }
248
+ },
249
+ props: {
250
+ row: {},
251
+ config: {},
252
+ ispartial: false,
253
+ f_filialeid: {
254
+ type: String
255
+ }
256
+ },
257
+ ready () {
258
+ this.nameForSql = ['f_plan_month', 'f_plan_name','f_checker_name']
259
+ this.groupNameForSql = 'f_plan_month', 'f_plan_name','f_checker_name'
260
+ this.pl()
261
+ // this.search()
262
+ this.Mreadibook(this.$login.f.orgid)
263
+
264
+ },
265
+ methods: {
266
+ Mreadibook(val){
267
+ if (val){
268
+ new HttpResetClass().load('POST',`/api/af-safecheck/sql/safe_singleTable_OrderBy`, {data: {
269
+ items: 'name',
270
+ tablename: 't_zone',
271
+ condition: `parentid = '${val}'`,
272
+ orderitem: 'id'
273
+ }}, {resolveMsg: null, rejectMsg: null}).then((res) => {
274
+ this.sliceArea=[]
275
+ this.sliceArea.push({
276
+ label:'全部',
277
+ value:''
278
+ })
279
+ res.data.forEach(ress=>{
280
+ this.sliceArea.push({
281
+ label:ress.name,
282
+ value:ress.name
283
+ })
284
+ })
285
+ })
286
+ }
287
+ },
288
+ exportexcel(){
289
+ //tag
290
+ // 以上四行也可以直接一行搞定,如果不需要对表格数据进行修改的话
291
+ const aa = document.getElementsByClassName("list_area table_sy excelid")[0]
292
+ console.log(aa)
293
+ let workbook = XLSX.utils.table_to_book(document.getElementsByClassName("list_area table_sy excelid")[0])
294
+ try {
295
+ XLSX.writeFile(workbook, '安检情况汇总导出.xlsx');
296
+ } catch(e) {
297
+ //tag;
298
+ }
299
+ },
300
+ // 获取导出列
301
+ getexportExcelField(){
302
+ this.exportExcelField = {
303
+ 'f_weijian':'未检',
304
+ 'f_yijian':'已检',
305
+ 'f_ruhu':'入户',
306
+ 'f_buyu':'到访不遇',
307
+ 'f_jujian':'拒检',
308
+ 'f_check_bv':'安检率',
309
+ 'f_plan_total':'计划总数'
310
+ }
311
+ let forName = this.groupNameForSql.split(",")
312
+ for (let i = 0; i < forName.length; i++) {
313
+ let ff = forName[i]
314
+ if (ff==='f_plan_month') {
315
+ this.exportExcelField.f_plan_month='计划月份'
316
+ }
317
+ if (ff==='f_no_checkplan') {
318
+ this.exportExcelField.f_no_checkplan='计划类型'
319
+ }
320
+ if (ff==='f_plan_name') {
321
+ this.exportExcelField.f_plan_name='计划名称'
322
+ }
323
+ if (ff==='f_checker_name') {
324
+ this.exportExcelField.f_checker_name='安检员'
325
+ }if (ff==='f_residential_area') {
326
+ this.exportExcelField.f_residential_area='小区名称'
327
+ }if (ff==='f_user_number') {
328
+ this.exportExcelField.f_user_number='档案数量'
329
+ }
330
+ if (ff==='f_safecheck_type') {
331
+ this.exportExcelField.f_safecheck_type='安检类型'
332
+ }
333
+ }
334
+ },
335
+ pl() {
336
+ let getGasman = new HttpResetClass()
337
+ getGasman.load('POST', `api/af-safecheck/sql/safe_singleTable_OrderBy`, {
338
+ data: {
339
+ items: "id,f_plan_name",
340
+ tablename: "t_check_plan",
341
+ condition: `f_filialeid = '${this.curorgid}'`,
342
+ orderitem: "id"
343
+ }
344
+ }, {resolveMsg: null, rejectMsg: null}).then((plne) => {
345
+ //tag
346
+ //tag
347
+ //tag
348
+ for (let i = 0; i < plne.data.length; i++) {
349
+ this.planName.push({label: plne.data[i].f_plan_name, value: plne.data[i].id})
350
+ }
351
+ //tag
352
+ })
353
+ },
354
+ hiddenr() {
355
+ this.$parent.isdetail = !this.$parent.isdetail
356
+ },
357
+ hidden() {
358
+ this.criteriaShow = !this.criteriaShow
359
+ },
360
+ search () {
361
+ this.$refs.paged.$refs.cri.search()
362
+ this.$dispatch('search')
363
+ },
364
+ getorg (val) {
365
+ this.f_orgid = this.$login.convertToIn(val.resids)
366
+ this.f_filialeid = val[0]
367
+
368
+ },
369
+ selfSearch (args) {
370
+ if (!this.f_orgid) {
371
+ this.getorg([this.$login.f.orgid])
372
+ args.condition = `f_filialeid in ('${this.$login.f.orgid}') and ${args.condition}`
373
+ }
374
+ if (this.f_orgid) {
375
+ args.condition = `f_filialeid in ${this.f_orgid} and ${args.condition}`
376
+ }
377
+ if(this.f_check_start && this.f_check_end){
378
+ if(new Date(this.f_check_start).getFullYear() == new Date(this.f_check_end).getFullYear() ){
379
+ args.condition += ` and f_year>=${new Date(this.f_check_start).getFullYear()} and f_month>=${new Date(this.f_check_start).getMonth()+1} and f_month<=${new Date(this.f_check_end).getMonth()+1}`
380
+ }else {
381
+ args.condition += ` and (
382
+ (f_year = ${new Date(this.f_check_start).getFullYear()} and f_month >= ${new Date(this.f_check_start).getMonth()+1})
383
+ or
384
+ ( f_year > ${new Date(this.f_check_start).getFullYear()} and f_year < ${new Date(this.f_check_end).getFullYear()})
385
+ or
386
+ (f_year = ${new Date(this.f_check_end).getFullYear()} and f_month <= ${new Date(this.f_check_end).getMonth()+1}))`
387
+ }
388
+ } else {
389
+ if(this.f_check_start){
390
+ args.condition += ` and f_year>=${new Date(this.f_check_start).getFullYear()} and f_month>=${new Date(this.f_check_start).getMonth()+1}`
391
+ }
392
+ if(this.f_check_end){
393
+ args.condition += ` and f_year<=${new Date(this.f_check_end).getFullYear()} and f_month<=${new Date(this.f_check_end).getMonth()+1}`
394
+ }
395
+ }
396
+ this.$refs.paged.$refs.grid.$el.scrollTop = 0
397
+ if (this.groupNameForSql=='undefined'){
398
+ //tag
399
+ this.$showMessage("请至少选择一项进行汇总")
400
+ return
401
+ }
402
+ this.model.paramSource = {groupName: `'${this.groupNameForSql}'`}
403
+ this.model.search(args.condition, args.model)
404
+ },
405
+
406
+ // 拼接groupName1
407
+ getGroupName1 () {
408
+ var temp=['f_plan_month','f_no_checkplan','f_residential_area','f_plan_name','f_checker_name','f_user_number','f_safecheck_type']
409
+ var newtemp=[]
410
+
411
+ for (var i=0;i<temp.length;i++){
412
+ for (var j=0;j<this.nameForSql.length;j++){
413
+ //tag
414
+ if(temp[i]==this.nameForSql[j]){
415
+ newtemp.push(this.nameForSql[j])
416
+ }
417
+ }
418
+ }
419
+ let str = ''
420
+
421
+ for (var i=0;i < newtemp.length - 1; i++) {
422
+ str += newtemp[i] + ','
423
+ }
424
+ str += newtemp[i]
425
+ this.groupNameForSql = str.trim()
426
+ }
427
+ },
428
+ watch: {
429
+ // 'nameForSql' () {
430
+ //
431
+ // this.getGroupName1()
432
+ // },
433
+ 'nameForSql' () {
434
+ var e = document.createEvent("MouseEvents");
435
+ e.initEvent("click", true, true);
436
+ document.getElementById("btnaaa").dispatchEvent(e);
437
+ },
438
+ 'model.rows'(){
439
+ //tag
440
+ if(this.listflag){
441
+ return;
442
+ }
443
+ this.listflag=true
444
+ //tag
445
+ var temp=['f_plan_month','f_no_checkplan','f_residential_area','f_plan_name','f_checker_name','f_user_number','f_safecheck_type']
446
+ var newtemp=[]
447
+ for (var i=0;i<temp.length;i++){
448
+ for (var j=0;j<this.nameForSql.length;j++){
449
+ //tag
450
+ if(temp[i]==this.nameForSql[j]){
451
+ newtemp.push(this.nameForSql[j])
452
+ }
453
+ }
454
+ }
455
+ if((newtemp.includes('f_user_number')&&newtemp.length==2)||(!newtemp.includes('f_user_number')&&newtemp.length==1)){
456
+ return
457
+ }
458
+ var temp=JSON.parse(JSON.stringify(this.model.rows))
459
+
460
+ //遍历查询结果 为指定列增加样式
461
+ for (var i=0;i<newtemp.length-1;i++){
462
+ if(newtemp[i]=='f_user_number'){
463
+ return;
464
+ }
465
+ //tag
466
+ var ss=''
467
+ for (var j=0;j<temp.length;j++){
468
+ if(j>0&&i>0){
469
+ var flag=false
470
+ for(var t=i-1;t>-1;t--){
471
+ //tag
472
+ //tag
473
+ //tag
474
+ //tag
475
+ if(temp[j-1][newtemp[t]]!=temp[j][newtemp[t]]&&(temp[j][newtemp[t]] !=null && temp[j][newtemp[t]].indexOf('*&') )==-1){
476
+ flag=true
477
+ break
478
+ }
479
+ }
480
+ //tag
481
+ if(flag){
482
+ ss=temp[j][newtemp[i]]
483
+ continue
484
+ }
485
+ }
486
+ if(temp[j][newtemp[i]]==ss){
487
+ temp[j][newtemp[i]]=temp[j][newtemp[i]]+'*&'
488
+ }else {
489
+ ss=temp[j][newtemp[i]]
490
+ }
491
+ }
492
+ }
493
+ //tag
494
+ this.model.rows=JSON.parse(JSON.stringify(temp))
495
+ },
496
+ 'model.rows.length'() {
497
+ // 如果查询无结果,将合计置为0
498
+ if(this.model.rows.length < 1){
499
+ this.model.sums.f_plan_total = 0
500
+ this.model.sums.f_weijian = 0
501
+ this.model.sums.f_yijian = 0
502
+ this.model.sums.f_ruhu = 0
503
+ this.model.sums.f_buyu = 0
504
+ this.model.sums.f_jujian = 0
505
+ }
506
+ }
507
+ },
508
+ computed:{
509
+ exportParameter(){
510
+ // excel 导出条件拼接
511
+ return {
512
+ condition: this.$refs.paged.model.condition,
513
+ groupName: this.groupNameForSql
514
+ }
515
+ }
516
+ }
517
+ }
518
+ </script>
519
+
520
+ <style scoped>
521
+
522
+ .td-0{
523
+ border: 1px solid #000000;
524
+ }
525
+
526
+ .td-1{
527
+ border: none;
528
+ border-top: 1px solid #000000;
529
+ border-left: 1px solid #000000;
530
+ border-right: 1px solid #000000;
531
+ }
532
+
533
+ .td-2{
534
+ border: none;
535
+ border-left: 1px solid #000000;
536
+ border-right: 1px solid #000000;
537
+ }
538
+ .td-4{
539
+ border: none;
540
+ border-top: 1px solid #000000;
541
+ border-left: 1px solid #000000;
542
+ border-right: 1px solid #000000;
543
+ border-bottom: 1px solid #000000;
544
+ }
545
+ .td-3{
546
+ border: none;
547
+ border-left: 1px solid #000000;
548
+ border-right: 1px solid #000000;
549
+ border-bottom: 1px solid #000000;
550
+ }
551
+ </style>