safecheck-client 4.0.0-89 → 4.0.0-90

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