safecheck-client 4.0.0-116 → 4.0.0-118

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.
@@ -1,528 +1,535 @@
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
+ <!--<th>-->
158
+ <!--<nobr>查看</nobr>-->
159
+ <!--</th>-->
160
+ </tr>
161
+ </template>
162
+ <template partial='body'>
163
+ <tr>
164
+ <td style="text-align:center;border-right: 1px solid ">{{$index + 1}}</td>
165
+ <!-- <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>-->
166
+ <!-- <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>-->
167
+ <!-- <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>-->
168
+ <!-- <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>-->
169
+ <!-- <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>-->
170
+ <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>
171
+ <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>
172
+ <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>
173
+ <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>
174
+ <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>
175
+ <td style="text-align:center" v-if="$parent.$parent.$parent.nameForSql.includes('f_user_number')">{{row.f_user_number}}</td>
176
+ <td style="text-align:center" v-if="$parent.$parent.$parent.nameForSql.includes('f_issue_time')">{{row.f_issue_time}}</td>
177
+ <td style="text-align:center">{{row.f_plan_total}}</td>
178
+ <td style="text-align:center">{{row.f_weijian}}</td>
179
+ <td style="text-align:center"><nobr>{{row.f_yijian}}</nobr></td>
180
+ <td style="text-align:center"><nobr>{{row.f_ruhu}}</nobr></td>
181
+ <td style="text-align:center">{{row.f_buyu}}</td>
182
+ <td style="text-align:center"><nobr>{{row.f_jujian}}</nobr></td>
183
+ <td style="text-align:center"><nobr>{{row.f_ruhu_bv}}</nobr></td>
184
+ <td style="text-align:center"><nobr>{{row.f_check_bv}}</nobr></td>
185
+ </tr>
186
+ </template>
187
+ <template partial="foot">
188
+ <tr>
189
+ <td style="text-align:center"><strong>合计:</strong></td>
190
+ <td style="text-align:center" :colspan="$parent.$parent.$parent.nameForSql.length"></td>
191
+ <td style="text-align:center"><strong>{{model.sums.f_plan_total}}</strong></td>
192
+ <td style="text-align:center"><strong>{{model.sums.f_weijian}}</strong></td>
193
+ <td style="text-align:center"><nobr><strong>{{model.sums.f_yijian}}</strong></nobr></td>
194
+ <td style="text-align:center"><nobr><strong>{{model.sums.f_ruhu}}</strong></nobr></td>
195
+ <td style="text-align:center"><nobr><strong>{{model.sums.f_buyu}}</strong></nobr></td>
196
+ <td style="text-align:center"><nobr><strong>{{model.sums.f_jujian}}</strong></nobr></td>
197
+ <td style="text-align:center"><strong>{{model.sums.f_plan_total>0?(model.sums.f_ruhu/model.sums.f_plan_total*100).toFixed(2)+'%':0}}</strong></td>
198
+ <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>
199
+ </tr >
200
+ </template>
201
+ </data-grid>
202
+ </criteria-paged>
203
+ </div>
204
+ </template>
205
+
206
+ <script>
207
+ /**
208
+ *阶梯气价查询列表
209
+ */
210
+ import {PagedList} from 'vue-client'
211
+ import { HttpResetClass } from 'vue-client'
212
+ import * as Util from "../../../components/Util";
213
+ import XLSX from 'xlsx'
214
+ export default {
215
+ data () {
216
+ return {
217
+ checker_name:'',
218
+ model: new PagedList('api/af-safecheck/sql/getCheckPlanAreaList', 99999,{},{f_plan_total:'',f_weijian:'',f_yijian:'',f_ruhu:'',f_buyu:'',f_jujian:''}),
219
+ // 公司下拉
220
+ curorgid: [this.$login.f.orgid],
221
+ row: {},
222
+ f_orgid: '',
223
+ nameForSql: [],
224
+ groupNameForSql: '',
225
+ listflag:false,
226
+ nameflag:false,
227
+ criteriaShow: false,
228
+ f_check_start:new Date().getFullYear() + '-01',
229
+ f_check_end:new Date().getFullYear() + '-12',
230
+ planName:[{label: '全部', value: ''}],
231
+ exportExcelField: {
232
+ 'f_weijian':'未检',
233
+ 'f_yijian':'已检',
234
+ 'f_ruhu':'入户',
235
+ 'f_buyu':'到访不遇',
236
+ 'f_jujian':'拒检',
237
+ 'f_ruhu_bv':'安检率',
238
+ 'f_check_bv':'计划完成率'
239
+ }
240
+ }
241
+ },
242
+ props: {
243
+ row: {},
244
+ config: {},
245
+ ispartial: false,
246
+ f_filialeid: {
247
+ type: String
248
+ }
249
+ },
250
+ ready () {
251
+ this.nameForSql = ['f_plan_month', 'f_plan_name','f_checker_name', 'f_issue_time']
252
+ this.groupNameForSql = 'f_plan_month', 'f_plan_name','f_checker_name'
253
+ this.pl()
254
+ // this.search()
255
+
256
+ },
257
+ methods: {
258
+ getchecker(val){
259
+ this.$refs.paged.$refs.cri.model.f_checker_id = ''
260
+ if(val && val.length > 0){
261
+ this.checker_name = ''
262
+ val.forEach(user => {
263
+ this.checker_name += `'${user.name}',`
264
+ })
265
+ this.checker_name = this.checker_name.slice(0,this.checker_name.length-1)
266
+ }else{
267
+ this.checker_name = ''
268
+ }
269
+ },
270
+ exportexcel(){
271
+ //tag
272
+ // 以上四行也可以直接一行搞定,如果不需要对表格数据进行修改的话
273
+ const aa = document.getElementsByClassName("list_area table_sy excelid")[0]
274
+ console.log(aa)
275
+ let workbook = XLSX.utils.table_to_book(document.getElementsByClassName("list_area table_sy excelid")[0])
276
+ try {
277
+ XLSX.writeFile(workbook, '安检情况汇总导出.xlsx');
278
+ } catch(e) {
279
+ //tag;
280
+ }
281
+ },
282
+ // 获取导出列
283
+ getexportExcelField(){
284
+ this.exportExcelField = {
285
+ 'f_weijian':'未检',
286
+ 'f_yijian':'已检',
287
+ 'f_ruhu':'入户',
288
+ 'f_buyu':'到访不遇',
289
+ 'f_jujian':'拒检',
290
+ 'f_ruhu_bv':'安检率',
291
+ 'f_check_bv':'计划完成率',
292
+ 'f_plan_total':'计划总数'
293
+ }
294
+ let forName = this.groupNameForSql.split(",")
295
+ for (let i = 0; i < forName.length; i++) {
296
+ let ff = forName[i]
297
+ if (ff==='f_plan_month') {
298
+ this.exportExcelField.f_plan_month='计划月份'
299
+ }
300
+ if (ff==='f_no_checkplan') {
301
+ this.exportExcelField.f_no_checkplan='计划类型'
302
+ }
303
+ if (ff==='f_plan_name') {
304
+ this.exportExcelField.f_plan_name='计划名称'
305
+ }
306
+ if (ff==='f_checker_name') {
307
+ this.exportExcelField.f_checker_name='安检员'
308
+ }if (ff==='f_residential_area') {
309
+ this.exportExcelField.f_residential_area='小区名称'
310
+ }if (ff==='f_user_number') {
311
+ this.exportExcelField.f_user_number='档案数量'
312
+ }if (ff==='f_issue_time') {
313
+ this.exportExcelField.f_issue_time='下发时间'
314
+ }
315
+ }
316
+ },
317
+ pl() {
318
+ let getGasman = new HttpResetClass()
319
+ getGasman.load('POST', `api/af-safecheck/sql/safe_singleTable_OrderBy`, {
320
+ data: {
321
+ items: "id,f_plan_name",
322
+ tablename: "t_check_plan",
323
+ condition: `f_filialeid = '${this.curorgid}'`,
324
+ orderitem: "id"
325
+ }
326
+ }, {resolveMsg: null, rejectMsg: null}).then((plne) => {
327
+ //tag
328
+ //tag
329
+ //tag
330
+ for (let i = 0; i < plne.data.length; i++) {
331
+ this.planName.push({label: plne.data[i].f_plan_name, value: plne.data[i].id})
332
+ }
333
+ //tag
334
+ })
335
+ },
336
+ hiddenr() {
337
+ this.$parent.isdetail = !this.$parent.isdetail
338
+ },
339
+ hidden() {
340
+ this.criteriaShow = !this.criteriaShow
341
+ },
342
+ search () {
343
+ this.$refs.paged.$refs.cri.search()
344
+ this.$dispatch('search')
345
+ },
346
+ getorg (val) {
347
+ if(val.orgobj[0]){
348
+ this.f_orgid = this.$login.convertToIn(val.orgobj[0].parentid)
349
+ }else{
350
+ this.f_orgid = this.$login.convertToIn(this.$login.f.orgid)
351
+ }
352
+
353
+ },
354
+ selfSearch (args) {
355
+ if (this.f_orgid) {
356
+ args.condition += ` and f_filialeid in ${this.f_orgid} `
357
+ }
358
+ if(this.f_check_start && this.f_check_end){
359
+ if(new Date(this.f_check_start).getFullYear() == new Date(this.f_check_end).getFullYear() ){
360
+ 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}`
361
+ }else {
362
+ args.condition += ` and (
363
+ (f_year = ${new Date(this.f_check_start).getFullYear()} and f_month >= ${new Date(this.f_check_start).getMonth()+1})
364
+ or
365
+ ( f_year > ${new Date(this.f_check_start).getFullYear()} and f_year < ${new Date(this.f_check_end).getFullYear()})
366
+ or
367
+ (f_year = ${new Date(this.f_check_end).getFullYear()} and f_month <= ${new Date(this.f_check_end).getMonth()+1}))`
368
+ }
369
+ } else {
370
+ if(this.f_check_start){
371
+ args.condition += ` and f_year>=${new Date(this.f_check_start).getFullYear()} and f_month>=${new Date(this.f_check_start).getMonth()+1}`
372
+ }
373
+ if(this.f_check_end){
374
+ args.condition += ` and f_year<=${new Date(this.f_check_end).getFullYear()} and f_month<=${new Date(this.f_check_end).getMonth()+1}`
375
+ }
376
+ }
377
+ this.$refs.paged.$refs.grid.$el.scrollTop = 0
378
+ if (this.groupNameForSql=='undefined'){
379
+ //tag
380
+ this.$showMessage("请至少选择一项进行汇总")
381
+ return
382
+ }
383
+ if(this.checker_name){
384
+ args.condition += ` and f_checker_name in (${this.checker_name}) `
385
+ }
386
+ this.model.paramSource = {groupName: `'${this.groupNameForSql}'`}
387
+ this.model.search(args.condition, args.model)
388
+ },
389
+
390
+ // 拼接groupName1
391
+ getGroupName1 () {
392
+ var temp=['f_plan_month','f_no_checkplan','f_residential_area','f_plan_name','f_checker_name','f_user_number','f_issue_time']
393
+ var newtemp=[]
394
+
395
+ for (var i=0;i<temp.length;i++){
396
+ for (var j=0;j<this.nameForSql.length;j++){
397
+ //tag
398
+ if(temp[i]==this.nameForSql[j]){
399
+ newtemp.push(this.nameForSql[j])
400
+ }
401
+ }
402
+ }
403
+ let str = ''
404
+
405
+ for (var i=0;i < newtemp.length - 1; i++) {
406
+ str += newtemp[i] + ','
407
+ }
408
+ str += newtemp[i]
409
+ this.groupNameForSql = str.trim()
410
+ }
411
+ },
412
+ watch: {
413
+ // 'nameForSql' () {
414
+ //
415
+ // this.getGroupName1()
416
+ // },
417
+ 'nameForSql' () {
418
+ var e = document.createEvent("MouseEvents");
419
+ e.initEvent("click", true, true);
420
+ document.getElementById("btnaaa").dispatchEvent(e);
421
+ },
422
+ 'model.rows'(){
423
+ //tag
424
+ if(this.listflag){
425
+ return;
426
+ }
427
+ this.listflag=true
428
+ //tag
429
+ var temp=['f_plan_month','f_no_checkplan','f_residential_area','f_plan_name','f_checker_name','f_user_number','f_issue_time']
430
+ var newtemp=[]
431
+ for (var i=0;i<temp.length;i++){
432
+ for (var j=0;j<this.nameForSql.length;j++){
433
+ //tag
434
+ if(temp[i]==this.nameForSql[j]){
435
+ newtemp.push(this.nameForSql[j])
436
+ }
437
+ }
438
+ }
439
+ if((newtemp.includes('f_user_number')&&newtemp.length==2)||(!newtemp.includes('f_user_number')&&newtemp.length==1)){
440
+ return
441
+ }
442
+ var temp=JSON.parse(JSON.stringify(this.model.rows))
443
+
444
+ //遍历查询结果 为指定列增加样式
445
+ for (var i=0;i<newtemp.length-1;i++){
446
+ if(newtemp[i]=='f_user_number'){
447
+ return;
448
+ }
449
+ //tag
450
+ var ss=''
451
+ for (var j=0;j<temp.length;j++){
452
+ if(j>0&&i>0){
453
+ var flag=false
454
+ for(var t=i-1;t>-1;t--){
455
+ //tag
456
+ //tag
457
+ //tag
458
+ //tag
459
+ if(temp[j-1][newtemp[t]]!=temp[j][newtemp[t]]&&(temp[j][newtemp[t]] !=null && temp[j][newtemp[t]].indexOf('*&') )==-1){
460
+ flag=true
461
+ break
462
+ }
463
+ }
464
+ //tag
465
+ if(flag){
466
+ ss=temp[j][newtemp[i]]
467
+ continue
468
+ }
469
+ }
470
+ if(temp[j][newtemp[i]]==ss){
471
+ temp[j][newtemp[i]]=temp[j][newtemp[i]]+'*&'
472
+ }else {
473
+ ss=temp[j][newtemp[i]]
474
+ }
475
+ }
476
+ }
477
+ //tag
478
+ this.model.rows=JSON.parse(JSON.stringify(temp))
479
+ },
480
+ 'model.rows.length'() {
481
+ // 如果查询无结果,将合计置为0
482
+ if(this.model.rows.length < 1){
483
+ this.model.sums.f_plan_total = 0
484
+ this.model.sums.f_weijian = 0
485
+ this.model.sums.f_yijian = 0
486
+ this.model.sums.f_ruhu = 0
487
+ this.model.sums.f_buyu = 0
488
+ this.model.sums.f_jujian = 0
489
+ }
490
+ }
491
+ },
492
+ computed:{
493
+ exportParameter(){
494
+ // excel 导出条件拼接
495
+ return {
496
+ condition: this.$refs.paged.model.condition,
497
+ groupName: this.groupNameForSql
498
+ }
499
+ }
500
+ }
501
+ }
502
+ </script>
503
+
504
+ <style scoped>
505
+
506
+ .td-0{
507
+ border: 1px solid #000000;
508
+ }
509
+
510
+ .td-1{
511
+ border: none;
512
+ border-top: 1px solid #000000;
513
+ border-left: 1px solid #000000;
514
+ border-right: 1px solid #000000;
515
+ }
516
+
517
+ .td-2{
518
+ border: none;
519
+ border-left: 1px solid #000000;
520
+ border-right: 1px solid #000000;
521
+ }
522
+ .td-4{
523
+ border: none;
524
+ border-top: 1px solid #000000;
525
+ border-left: 1px solid #000000;
526
+ border-right: 1px solid #000000;
527
+ border-bottom: 1px solid #000000;
528
+ }
529
+ .td-3{
530
+ border: none;
531
+ border-left: 1px solid #000000;
532
+ border-right: 1px solid #000000;
533
+ border-bottom: 1px solid #000000;
534
+ }
535
+ </style>