safecheck-client 3.0.33-103 → 3.0.33-106
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.
- package/package.json +1 -1
- package/src/components/map/checkScreen.vue +886 -886
- package/src/filiale/bayan/android/CheckPlanDown.vue +249 -0
- package/src/filiale/bayan/android/SafecheckOrderV.vue +1 -0
- package/src/filiale/bayan/android/SafecheckUserInfo.vue +28 -0
- package/src/filiale/bayan/android.js +18 -17
- package/src/filiale/bayan/pc/CheckDetail.vue +205 -0
- package/src/filiale/bayan/pc/CheckPlan.vue +59 -0
- package/src/filiale/bayan/pc/CheckPlanAreaList.vue +565 -0
- package/src/filiale/bayan/pc/CheckSearchUser.vue +1065 -0
- package/src/filiale/bayan/pc/DefectListNew.vue +597 -597
- package/src/filiale/bayan/pc/DefectPaperNew.vue +17 -4
- package/src/filiale/bayan/pc/HiddenSituation.vue +256 -0
- package/src/filiale/bayan/pc/NewCheckpaper.vue +1988 -1964
- package/src/filiale/bayan/pc/PaperList.vue +31 -4
- package/src/filiale/bayan/pc/PlanManage.vue +960 -939
- package/src/filiale/bayan/pc/SelectCheckPlan.vue +333 -0
- package/src/filiale/bayan/pc.js +5 -0
- package/src/filiale/tianke/pc/checkScreen.vue +786 -786
- package/src/filiale/wenxi/android/SafecheckUserInfo.vue +672 -672
@@ -0,0 +1,249 @@
|
|
1
|
+
<template>
|
2
|
+
<div class="auto">
|
3
|
+
|
4
|
+
<div class="auto">
|
5
|
+
<criteria-paged :model="model" v-ref:paged>
|
6
|
+
<criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
|
7
|
+
<div partial>
|
8
|
+
<div class="row app-row">
|
9
|
+
<div class="col-xs-4">
|
10
|
+
<img src="../../../assets/档案信息.png" style="width: 20px;margin-bottom: 5px" alt="">
|
11
|
+
<label for="f_plan_name" class="font text-left">计划名称:</label>
|
12
|
+
</div>
|
13
|
+
<div class="col-xs-8">
|
14
|
+
<input id="f_plan_name" class="search_input input-font" v-model="model.f_plan_name"
|
15
|
+
condition="f_plan_name like '%{}%'" />
|
16
|
+
</div>
|
17
|
+
</div>
|
18
|
+
<div class="row text-center" style="margin-top: 20px;">
|
19
|
+
<button type="button" class="btn btn-lg btn-font btn-color" style="width: 45%;"
|
20
|
+
@click="search">查询</button>
|
21
|
+
</div>
|
22
|
+
<!--<div class="row app-btn">-->
|
23
|
+
<!--<button class="btn btn-primary col-xs-6" type="button" @click="search"><span class="glyphicon glyphicon-search" style="margin-right: 20px;">查询</span></button>-->
|
24
|
+
<!--</div>-->
|
25
|
+
<div style="height:30px;"></div>
|
26
|
+
</div>
|
27
|
+
</criteria>
|
28
|
+
<list :model="model" partial='list'>
|
29
|
+
<div partial>
|
30
|
+
<div class="auto app-text" style="margin-top: 5px;">
|
31
|
+
<div class="panel" style="padding: 10px 10px 5px 10px;">
|
32
|
+
<div class="panel-body panel-self">
|
33
|
+
<div class="row">
|
34
|
+
<p class="panel-title col-xs-4 text-left font">计划名称</p>
|
35
|
+
<p class="panel-title col-xs-8 text-left input-font">{{ row.f_plan_name }}</p>
|
36
|
+
</div>
|
37
|
+
<div class="row">
|
38
|
+
<p class="panel-title col-xs-4 text-left font">计划时间</p>
|
39
|
+
<p class="panel-title col-xs-8 text-left input-font">{{ row.f_plan_year }}/{{ row.f_plan_month }}</p>
|
40
|
+
</div>
|
41
|
+
<!--<div class="row">-->
|
42
|
+
<!--<p class="panel-title col-xs-4 text-left font">生成人员</p>-->
|
43
|
+
<!--<p class="panel-title col-xs-8 text-left input-font">{{ row.f_create_operator }}/{{row.f_plan_month}}</p>-->
|
44
|
+
<!--</div>-->
|
45
|
+
<!--<div class="row">-->
|
46
|
+
<!--<p class="panel-title col-xs-4 text-left font">下发人员</p>-->
|
47
|
+
<!--<p class="panel-title col-xs-8 text-left input-font">{{ row.f_send_operator }}/{{row.f_plan_month}}</p>-->
|
48
|
+
<!--</div>-->
|
49
|
+
<div class="row text-right">
|
50
|
+
<button type="button" class="btn yybtn-color"
|
51
|
+
v-on:click.stop.prevent='$parent.$parent.$parent.downloadHand(row)'
|
52
|
+
v-if="$parent.$parent.$parent.isDown(row)">下载</button>
|
53
|
+
</div>
|
54
|
+
</div>
|
55
|
+
</div>
|
56
|
+
|
57
|
+
</div>
|
58
|
+
</div>
|
59
|
+
</list>
|
60
|
+
</criteria-paged>
|
61
|
+
</div>
|
62
|
+
<!--<div class="row text-center" style="margin-top: 20px;">-->
|
63
|
+
<!--<button type="' 正在进行共享计划下载,请确认!' btn-lg btn-font btn-color" style="width: 45%;" @click="downHand()">共享计划下载</button>-->
|
64
|
+
<!--<!–<button type="button" class="btn btn-lg btn-font btn-color" style="width: 45%;" @click="database()">数据库导出</button>–>-->
|
65
|
+
<!--</div>-->
|
66
|
+
<!-- <div class="auto" style="padding-top: 20px;" v-if='show'>
|
67
|
+
<p class="text-warning" style="padding: 0 10px">正在下载抄表单...</p>
|
68
|
+
</div> -->
|
69
|
+
<!-- <hand-info v-if="show" :data="handinfo"></hand-info> -->
|
70
|
+
<!-- <div class="auto" v-if="!show">
|
71
|
+
<p class="text-warning" style="padding: 0 10px">
|
72
|
+
暂无可操作的抄表信息
|
73
|
+
</p>
|
74
|
+
</div> -->
|
75
|
+
</div>
|
76
|
+
<!-- <back-page :need-back='true' @flag="$back()"></back-page>-->
|
77
|
+
</template>
|
78
|
+
<script>
|
79
|
+
|
80
|
+
import { PagedList,HttpResetClass } from 'vue-client'
|
81
|
+
|
82
|
+
import Vue from 'vue'
|
83
|
+
|
84
|
+
|
85
|
+
export default {
|
86
|
+
title: '共享计划下载',
|
87
|
+
data() {
|
88
|
+
return {
|
89
|
+
model: new PagedList(`${this.$androidUtil.getProxyUrl()}/rs/sql/getShareCheckPlan`, 5, { f_fengongsi: `'${Vue.user.orgid}'` }),
|
90
|
+
checkPlanInfo: [],
|
91
|
+
condition: ' and 1=1 ',
|
92
|
+
localcheckPlanInfo: []
|
93
|
+
}
|
94
|
+
},
|
95
|
+
async ready() {
|
96
|
+
|
97
|
+
await this.init()
|
98
|
+
this.getlocalCheckPlan()
|
99
|
+
},
|
100
|
+
methods: {
|
101
|
+
selfSearch(args) {
|
102
|
+
args.condition += this.condition
|
103
|
+
this.model.search(args.condition, args.model)
|
104
|
+
},
|
105
|
+
async init() {
|
106
|
+
this.condition = ' and 1=1 '
|
107
|
+
let classes_arr = await new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/tel_singleTable_OrderBy`, {
|
108
|
+
data: {
|
109
|
+
items: 'name', tablename: 't_parameter', condition: `id in (select processid from t_paramvalue where name = '${Vue.user.name}') and name like '%组'`, orderitem: 'id'
|
110
|
+
}
|
111
|
+
})
|
112
|
+
let classes_str = classes_arr.data.map(item => { return `'${item.name}'` }).join()
|
113
|
+
if (classes_arr.data && classes_arr.data.length >0){
|
114
|
+
this.condition += ` and f_class in (${classes_str})`
|
115
|
+
}
|
116
|
+
let outlets_arr = await new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/tel_singleTable_OrderBy`, {
|
117
|
+
data: {
|
118
|
+
items: 'name', tablename: 't_parameter', condition: `id in (select processid from t_paramvalue where name in (${classes_str})) and name like '%厅%'`, orderitem: 'id'
|
119
|
+
}
|
120
|
+
})
|
121
|
+
if (outlets_arr.data && outlets_arr.data.length >0){
|
122
|
+
this.condition += ` and f_outlets in (${outlets_arr.data.map(outlets => { return `'${outlets.name.substring(3)}'` }).join()})`
|
123
|
+
}
|
124
|
+
},
|
125
|
+
reload() {
|
126
|
+
//tag
|
127
|
+
this.$refs.paged.loadPage(this.$refs.paged.model.pageIndex)
|
128
|
+
},
|
129
|
+
getlocalCheckPlan() {
|
130
|
+
let value = this.$androidUtil.path({ alias: 'getLocalCheckPlan', data: {} })
|
131
|
+
//tag
|
132
|
+
this.localcheckPlanInfo = value.data
|
133
|
+
// this.$androidUtil.path({alias: 'getLocalCheckPlan', data:{}}).then((value)=>{
|
134
|
+
// //tag
|
135
|
+
// this.localcheckPlanInfo = value.data
|
136
|
+
// })
|
137
|
+
},
|
138
|
+
downloadHand(row) {
|
139
|
+
HostApp.__this__ = this
|
140
|
+
this.$showMessage('正在进行共享计划下载,请确认!', ['confirm', 'cancel']).then((res) => {
|
141
|
+
if (res === 'confirm') {
|
142
|
+
HostApp.logicWithHint({
|
143
|
+
'logic': 'DownCheckPlanInfo',
|
144
|
+
'callback': 'javascript: HostApp.__this__.downloadHandCallback()',
|
145
|
+
'data': { id: row.id },
|
146
|
+
'backresult': 1
|
147
|
+
})
|
148
|
+
}
|
149
|
+
})
|
150
|
+
},
|
151
|
+
downloadHandCallback(jo) {
|
152
|
+
// 安卓端
|
153
|
+
//tag
|
154
|
+
if (jo.state == 'ok') {
|
155
|
+
let result = JSON.parse(jo.result)
|
156
|
+
if (result.state == 0) {
|
157
|
+
if (result.data.length > 0) {
|
158
|
+
this.getlocalCheckPlan()
|
159
|
+
this.$showMessage('下载成功,您可前往计划导航进行查看!')
|
160
|
+
} else {
|
161
|
+
this.$showMessage('无可下载的共享计划!')
|
162
|
+
}
|
163
|
+
} else {
|
164
|
+
this.$showMessage('下载失败!')
|
165
|
+
}
|
166
|
+
} else {
|
167
|
+
this.$showMessage('下载失败,请重试!')
|
168
|
+
}
|
169
|
+
}
|
170
|
+
},
|
171
|
+
computed: {
|
172
|
+
isDown() {
|
173
|
+
return function (row) {
|
174
|
+
for (let info of this.localcheckPlanInfo) {
|
175
|
+
if (info.id == row.id) {
|
176
|
+
return false
|
177
|
+
}
|
178
|
+
}
|
179
|
+
return true
|
180
|
+
}
|
181
|
+
}
|
182
|
+
}
|
183
|
+
}
|
184
|
+
</script>
|
185
|
+
<style>
|
186
|
+
.bg {
|
187
|
+
background-color: blue;
|
188
|
+
height: 1px;
|
189
|
+
border: 0;
|
190
|
+
}
|
191
|
+
|
192
|
+
.app-row {
|
193
|
+
background-color: white;
|
194
|
+
padding: 10px 10px 0 10px;
|
195
|
+
border-bottom: 1px solid rgba(235, 235, 235, 0.5);
|
196
|
+
}
|
197
|
+
|
198
|
+
.search_input {
|
199
|
+
border: 0;
|
200
|
+
outline: none;
|
201
|
+
}
|
202
|
+
|
203
|
+
.font {
|
204
|
+
font: 15px PingFang-SC-Medium;
|
205
|
+
color: #666666;
|
206
|
+
}
|
207
|
+
|
208
|
+
.input-font {
|
209
|
+
font: 15px PingFang-SC-Medium;
|
210
|
+
color: #333333;
|
211
|
+
}
|
212
|
+
|
213
|
+
.btn-font {
|
214
|
+
font: 600 16px PingFang-SC-Bold;
|
215
|
+
color: #499EDF;
|
216
|
+
}
|
217
|
+
|
218
|
+
.btn-color {
|
219
|
+
background-color: #FFFFFF;
|
220
|
+
border-radius: 10px;
|
221
|
+
border: 1px solid #499EDF;
|
222
|
+
}
|
223
|
+
|
224
|
+
.app-text {
|
225
|
+
font-size: 12px;
|
226
|
+
}
|
227
|
+
|
228
|
+
.panel-self {
|
229
|
+
border-radius: 10px;
|
230
|
+
border: 1px solid #499EDF;
|
231
|
+
background-color: #F8F8F8;
|
232
|
+
}
|
233
|
+
|
234
|
+
.yybtn-color {
|
235
|
+
background-color: #499edf;
|
236
|
+
border-radius: 4px;
|
237
|
+
border: 1px solid #499EDF;
|
238
|
+
color: #FFFFFF;
|
239
|
+
font: 14px PingFang-SC-Bold;
|
240
|
+
}
|
241
|
+
|
242
|
+
.qxbtn-color {
|
243
|
+
background-color: #FFFFFF;
|
244
|
+
border-radius: 4px;
|
245
|
+
color: #499edf;
|
246
|
+
font: 14px PingFang-SC-Bold;
|
247
|
+
border: 1px solid #499EDF;
|
248
|
+
}
|
249
|
+
</style>
|
@@ -1981,6 +1981,7 @@
|
|
1981
1981
|
this.$set('data.f_off_valve_reason', this.item.f_plan_meters[0].f_off_valve_reason)
|
1982
1982
|
this.$set('data.f_lgql_value', this.item.f_plan_meters[0].f_lgql_value)
|
1983
1983
|
this.$set('data.f_lgje_value', this.item.f_plan_meters[0].f_lgje_value)
|
1984
|
+
this.$set('data.f_table_state', this.item.f_plan_meters[0].f_table_state)
|
1984
1985
|
// this.$set('data.f_user_inhome_time', this.item.f_user_inhome_time)
|
1985
1986
|
// this.$set('data.f_user_check_time', this.item.f_user_check_time)
|
1986
1987
|
// this.$set('data.f_user_spare_phone', this.item.f_user_spare_phone)
|
@@ -34,6 +34,14 @@
|
|
34
34
|
v-model="userinfo.f_user_phone"/>
|
35
35
|
|
36
36
|
</div>
|
37
|
+
<div class="col-xs-12" style="padding: 2px 0">
|
38
|
+
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>表具状态:</b></p>
|
39
|
+
<p class="panel-title text-left input-font" style="width: 79%">{{ userinfo.f_table_state }}</p>
|
40
|
+
</div>
|
41
|
+
<div class="col-xs-12" style="padding: 2px 0">
|
42
|
+
<p class="panel-title col-xs-5 text-left font" style="width: 21%;float: left"><b>是否限购:</b></p>
|
43
|
+
<p class="panel-title text-left input-font" style="width: 79%">{{limitGas}}</p>
|
44
|
+
</div>
|
37
45
|
<!-- <div class="col-xs-12" style="padding: 2px 0" v-if="updateuserphone&&(userinfo.planmeterss.f_aliasname=='机表')">-->
|
38
46
|
<!-- <p class="panel-title text-left font" style="width: 23%;float: left"><b>机表表号:</b></p>-->
|
39
47
|
<!-- <input class="panel-title text-left input-font" style="width: 53%" value="{{ userinfo.f_meter_no }}" v-model="userinfo.f_meter_no"/>-->
|
@@ -294,6 +302,7 @@ export default {
|
|
294
302
|
// //tag)
|
295
303
|
this.$set('beforephone', this.userinfo.f_user_phone)
|
296
304
|
this.$set('gmlist', [])
|
305
|
+
this.$set('limitGas', "")
|
297
306
|
//tag
|
298
307
|
if (Vue.config.safecheck != undefined) {
|
299
308
|
if (Vue.config.safecheck.SafecheckUserinfo != undefined) {
|
@@ -312,8 +321,27 @@ export default {
|
|
312
321
|
//tag + ':' + JSON.stringify(this.userinfo[i]))
|
313
322
|
}
|
314
323
|
this.safecheckStateReady()
|
324
|
+
this.limitgas()
|
315
325
|
},
|
316
326
|
methods: {
|
327
|
+
limitgas(){
|
328
|
+
//查询用户是否被限制购气
|
329
|
+
let http = new HttpResetClass()
|
330
|
+
http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/tel_singleTable_OrderBy`, {
|
331
|
+
data: {
|
332
|
+
items: '*',
|
333
|
+
tablename: 't_userproperties ts',
|
334
|
+
condition: `ts.f_userinfo_id='${this.userinfo.f_userinfoid}' and ts.f_parameter_key ='blackList' and ts.f_state='有效'`,
|
335
|
+
orderitem: 'ts.id'
|
336
|
+
}
|
337
|
+
}).then((res) => {
|
338
|
+
if (res.data.length > 0) {
|
339
|
+
this.limitGas="是"
|
340
|
+
}else{
|
341
|
+
this.limitGas="否"
|
342
|
+
}
|
343
|
+
})
|
344
|
+
},
|
317
345
|
openPaper(userinfo_id) {
|
318
346
|
this.$parent.$parent.$goto('edit', {row: userinfo_id})
|
319
347
|
},
|
@@ -1,17 +1,18 @@
|
|
1
|
-
// 分公司特殊组件页面注册
|
2
|
-
import Vue from "vue";
|
3
|
-
|
4
|
-
// 手机特殊目录注册到该文件中
|
5
|
-
let specialComp = {
|
6
|
-
'current-create': (resolve) => { require(['./android/CurrentCreate'], resolve) },
|
7
|
-
'add-plan-item': (resolve) => { require(['./android/AddPlanItem'], resolve) },
|
8
|
-
'paper-feedback': (resolve) => { require(['./android/PaperFeedback'], resolve) },
|
9
|
-
'safecheck-devices': (resolve) => { require(['./android/SafecheckDevices'], resolve) },
|
10
|
-
'PhoneUpUserinfo': (resolve) => { require(['./android/PhoneUpUserinfo'], resolve) },
|
11
|
-
'safecheck-userinfo': (resolve) => { require(['./android/SafecheckUserInfo'], resolve) },
|
12
|
-
'safecheck-order-v': (resolve) => { require(['./android/SafecheckOrderV'], resolve) },
|
13
|
-
'
|
14
|
-
}
|
15
|
-
|
16
|
-
|
17
|
-
|
1
|
+
// 分公司特殊组件页面注册
|
2
|
+
import Vue from "vue";
|
3
|
+
|
4
|
+
// 手机特殊目录注册到该文件中
|
5
|
+
let specialComp = {
|
6
|
+
'current-create': (resolve) => { require(['./android/CurrentCreate'], resolve) },
|
7
|
+
'add-plan-item': (resolve) => { require(['./android/AddPlanItem'], resolve) },
|
8
|
+
'paper-feedback': (resolve) => { require(['./android/PaperFeedback'], resolve) },
|
9
|
+
'safecheck-devices': (resolve) => { require(['./android/SafecheckDevices'], resolve) },
|
10
|
+
'PhoneUpUserinfo': (resolve) => { require(['./android/PhoneUpUserinfo'], resolve) },
|
11
|
+
'safecheck-userinfo': (resolve) => { require(['./android/SafecheckUserInfo'], resolve) },
|
12
|
+
'safecheck-order-v': (resolve) => { require(['./android/SafecheckOrderV'], resolve) },
|
13
|
+
'check-plan-down': (resolve) => { require(['./android/CheckPlanDown'], resolve) },
|
14
|
+
'edit': (resolve) => { require(['./android/Edit'], resolve) }
|
15
|
+
}
|
16
|
+
|
17
|
+
exports.specialComp = specialComp
|
18
|
+
|
@@ -0,0 +1,205 @@
|
|
1
|
+
<template>
|
2
|
+
<div>
|
3
|
+
<criteria-paged :model="model" v-ref:paged>
|
4
|
+
<criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:criteria>
|
5
|
+
<div partial>
|
6
|
+
<!-- <p class="text-center" style="padding: 7px;"><b>安检计划项明细</b></p>-->
|
7
|
+
<ul class="nav nav-tabs">
|
8
|
+
<li role="presentation" class="active"><a style=" color: #5ac0d9 !important;">安检计划项明细</a></li>
|
9
|
+
</ul>
|
10
|
+
<div class="row">
|
11
|
+
<div class="form-group col-sm-4" >
|
12
|
+
<label class="font_normal_body">安检状态</label>
|
13
|
+
<v-select style="width:60% "
|
14
|
+
class="select select_list"
|
15
|
+
:value.sync="$parent.$parent.f_state"
|
16
|
+
v-model="$parent.$parent.f_state"
|
17
|
+
:options='$parent.$parent.checkState'
|
18
|
+
placeholder='安检状态'
|
19
|
+
close-on-select
|
20
|
+
value-single
|
21
|
+
>
|
22
|
+
</v-select>
|
23
|
+
</div>
|
24
|
+
<div class="form-group col-sm-4" >
|
25
|
+
<v-select style="width:60% "
|
26
|
+
v-if="$parent.$parent.f_state=='未入户'"
|
27
|
+
class="select select_list"
|
28
|
+
:value.sync="$parent.$parent.f_noruhu"
|
29
|
+
v-model="$parent.$parent.f_noruhu"
|
30
|
+
:options='$parent.$parent.noChecks'
|
31
|
+
placeholder='请选择状态'
|
32
|
+
:multiple="true"
|
33
|
+
>
|
34
|
+
</v-select>
|
35
|
+
</div>
|
36
|
+
<div class="form-group col-sm-4 button-range" >
|
37
|
+
<button class="button_search" style="margin-right: 10px" @click="search()">查询</button>
|
38
|
+
<export-excel-safe :data="$parent.$parent.exportParameter"
|
39
|
+
:field="$parent.$parent.excelHeaders"
|
40
|
+
sqlurl="rs/logic/SafeExportExcel" sql-name="planItem"
|
41
|
+
template-name='安检计划明细' :choose-col="true">
|
42
|
+
</export-excel-safe>
|
43
|
+
<!--<export-excel-safe-->
|
44
|
+
<!--:data="{condition: $parent.$parent.condition}"-->
|
45
|
+
<!--:field="$parent.$parent.getfield"-->
|
46
|
+
<!--sqlurl="rs/logic/saleExport" sql-name="getGasUser" :template-name="$parent.$parent.pricename+'气价使用人'"-->
|
47
|
+
<!--:choose-col="true"></export-excel-safe>-->
|
48
|
+
|
49
|
+
</div>
|
50
|
+
</div>
|
51
|
+
</div>
|
52
|
+
</criteria>
|
53
|
+
<data-grid :model="model" partial='list' class="table_sy">
|
54
|
+
|
55
|
+
<template partial='head'>
|
56
|
+
<tr>
|
57
|
+
<th><nobr>计划名称</nobr></th>
|
58
|
+
<th><nobr>用户编号</nobr></th>
|
59
|
+
<th><nobr>用户名称</nobr></th>
|
60
|
+
<th><nobr>小区名称</nobr></th>
|
61
|
+
<th><nobr>地址</nobr></th>
|
62
|
+
<th><nobr>安检状态</nobr></th>
|
63
|
+
<th><nobr>是否安检</nobr></th>
|
64
|
+
</tr>
|
65
|
+
</template>
|
66
|
+
<template partial='body'>
|
67
|
+
<td style="text-align: center"><nobr>{{row.f_plan_name}}</nobr></td>
|
68
|
+
<td style="text-align: center"><nobr>{{row.f_userinfo_code}}</nobr></td>
|
69
|
+
<td style="text-align: center"><nobr>{{row.f_user_name}}</nobr></td>
|
70
|
+
<td style="text-align: center"><nobr>{{row.f_residential_area}}</nobr></td>
|
71
|
+
<td style="text-align: center"><nobr>{{row.f_address}}</nobr></td>
|
72
|
+
<td style="text-align: center"><nobr>{{row.f_last_check_state}}</nobr></td>
|
73
|
+
<td style="text-align: center"><nobr>{{row.f_state}}</nobr></td>
|
74
|
+
</template>
|
75
|
+
</data-grid>
|
76
|
+
</criteria-paged>
|
77
|
+
</div>
|
78
|
+
</template>
|
79
|
+
|
80
|
+
<script>
|
81
|
+
import { PagedList } from 'vue-client'
|
82
|
+
|
83
|
+
export default {
|
84
|
+
title: '安检计划项列表',
|
85
|
+
data () {
|
86
|
+
return {
|
87
|
+
model: new PagedList('rs/sql/planItem', 20),
|
88
|
+
checkState:[{label:'全部',value:''},{label:'入户',value:'入户'},{label:'未入户',value:'未入户'}],
|
89
|
+
noChecks:[{label:'未检',value:'未检'},{label:'到访不遇',value:'到访不遇'},{label:'拒检',value:'拒检'}],
|
90
|
+
excelHeaders: {
|
91
|
+
//用户编号 用户名称 用户电话 安检次数 用户类型 小区名称 地址 安检日期 安检状态 安检结果
|
92
|
+
|
93
|
+
'f_userinfo_code': '用户编号',
|
94
|
+
'f_user_name': '用户名称',
|
95
|
+
'f_user_phone': '用户电话',
|
96
|
+
//'count_item':'安检次数',
|
97
|
+
'f_user_type': '用户类型',
|
98
|
+
'f_residential_area': '小区名称',
|
99
|
+
'f_address':'地址',
|
100
|
+
'f_last_check_date':'安检日期',
|
101
|
+
'f_last_check_state': '安检状态',
|
102
|
+
'f_state':'是否已检',
|
103
|
+
'f_last_check_result':'安检结果'
|
104
|
+
},
|
105
|
+
f_state:'',
|
106
|
+
f_noruhu:''
|
107
|
+
}
|
108
|
+
},
|
109
|
+
props: [ 'check','checkstatus','checkstart','checkend' ],
|
110
|
+
watch: {
|
111
|
+
'check' (val) {
|
112
|
+
let condition
|
113
|
+
//tag
|
114
|
+
condition = `tt.f_checker_name='${this.check.f_checker}' and i.f_state!='作废' and c.f_issued='是'`
|
115
|
+
if(this.checkstatus){
|
116
|
+
condition += ` and cp.f_entry_status = '${this.checkstatus}'`
|
117
|
+
}
|
118
|
+
if (this.checkstart) {
|
119
|
+
condition += ` AND f_plan_year >= ${this.checkstart.substr(0,4)} `
|
120
|
+
condition += ` AND f_plan_month >= ${this.checkstart.substr(5,2)} `
|
121
|
+
}
|
122
|
+
if (this.checkend) {
|
123
|
+
condition += ` AND f_plan_year <= ${this.checkend.substr(0,4)} `
|
124
|
+
condition += ` AND f_plan_month <= ${this.checkend.substr(5,2)} `
|
125
|
+
}
|
126
|
+
this.f_noruhu=[]
|
127
|
+
this.f_state=''
|
128
|
+
this.model.search(condition, {})
|
129
|
+
|
130
|
+
}
|
131
|
+
},
|
132
|
+
|
133
|
+
ready () {
|
134
|
+
//tag
|
135
|
+
if (this.check) {
|
136
|
+
let condition
|
137
|
+
//tag
|
138
|
+
condition = `tt.f_checker_name='${this.check.f_checker}' and i.f_state!='作废' and c.f_issued='是'`
|
139
|
+
if(this.checkstatus){
|
140
|
+
condition += ` and cp.f_entry_status = '${this.checkstatus}'`
|
141
|
+
}
|
142
|
+
if (this.checkstart) {
|
143
|
+
condition += ` AND f_plan_year >= ${this.checkstart.substr(0,4)} `
|
144
|
+
condition += ` AND f_plan_month >= ${this.checkstart.substr(5,2)} `
|
145
|
+
}
|
146
|
+
if (this.checkend) {
|
147
|
+
condition += ` AND f_plan_year <= ${this.checkend.substr(0,4)} `
|
148
|
+
condition += ` AND f_plan_month <= ${this.checkend.substr(5,2)} `
|
149
|
+
}
|
150
|
+
|
151
|
+
this.model.search(condition, {})
|
152
|
+
}
|
153
|
+
},
|
154
|
+
methods:{
|
155
|
+
selfSearch(args){
|
156
|
+
if (this.check) {
|
157
|
+
args.condition = `tt.f_checker_name='${this.check.f_checker}' and i.f_state!='作废' and c.f_issued='是'`
|
158
|
+
if(this.checkstatus){
|
159
|
+
args.condition += ` and cp.f_entry_status = '${this.checkstatus}'`
|
160
|
+
}
|
161
|
+
if (this.checkstart) {
|
162
|
+
args.condition += ` AND f_plan_year >= ${this.checkstart.substr(0,4)} `
|
163
|
+
args.condition += ` AND f_plan_month >= ${this.checkstart.substr(5,2)} `
|
164
|
+
}
|
165
|
+
if (this.checkend) {
|
166
|
+
args.condition += ` AND f_plan_year <= ${this.checkend.substr(0,4)} `
|
167
|
+
args.condition += ` AND f_plan_month <= ${this.checkend.substr(5,2)} `
|
168
|
+
}
|
169
|
+
if( this.f_state){
|
170
|
+
if(this.f_state=='入户'){
|
171
|
+
args.condition=args.condition+" and i.f_state='已检' and f_last_check_state='入户'"
|
172
|
+
}else if(this.f_state=='未入户'){
|
173
|
+
if(this.f_noruhu && this.f_noruhu.length==1){
|
174
|
+
args.condition += this.f_noruhu[0]=='未检'?" and i.f_state='未检'":` and i.f_state='已检' and f_last_check_state='${this.f_noruhu[0]}'`
|
175
|
+
}else if(this.f_noruhu && this.f_noruhu.length==2){
|
176
|
+
if(this.f_noruhu.indexOf('未检')!=-1){
|
177
|
+
if(this.f_noruhu.indexOf('到访不遇')!=-1){
|
178
|
+
args.condition=args.condition+" and (i.f_state='未检' or (i.f_state='已检' and f_last_check_state='到访不遇'))"
|
179
|
+
}else{
|
180
|
+
args.condition=args.condition+" and (i.f_state='未检' or (i.f_state='已检' and f_last_check_state='拒检'))"
|
181
|
+
}
|
182
|
+
}else{
|
183
|
+
args.condition=args.condition+" and (i.f_state='已检' and (f_last_check_state='到访不遇' or f_last_check_state='拒检'))"
|
184
|
+
}
|
185
|
+
}else{
|
186
|
+
args.condition=args.condition+" and (i.f_state='未检' or (i.f_state='已检' and (f_last_check_state='到访不遇' or f_last_check_state='拒检')))"
|
187
|
+
}
|
188
|
+
|
189
|
+
}
|
190
|
+
|
191
|
+
}
|
192
|
+
this.model.search(args.condition, args.model)
|
193
|
+
}
|
194
|
+
}
|
195
|
+
},
|
196
|
+
computed: {
|
197
|
+
// 导出到Excel的条件构造
|
198
|
+
exportParameter() {
|
199
|
+
return {
|
200
|
+
condition: this.$refs.paged.model.condition
|
201
|
+
}
|
202
|
+
}
|
203
|
+
},
|
204
|
+
}
|
205
|
+
</script>
|
@@ -0,0 +1,59 @@
|
|
1
|
+
<template>
|
2
|
+
<div id="unit" class="flex-row" :class="{'binary':showItem}">
|
3
|
+
<!-- <section>-->
|
4
|
+
|
5
|
+
<div :class="{'basic-main':!showItem,'binary-left':showItem}" >
|
6
|
+
<select-check-plan @select-changed="selected" :style="style" :style2="style2" @checkstatus-changed="checkstatusChange" v-ref:check></select-check-plan>
|
7
|
+
</div>
|
8
|
+
<div class="binary-right" v-show="showItem">
|
9
|
+
<div class="flex">
|
10
|
+
<check-detail v-if='$refs.check && $refs.check.selected' :check='$refs.check.selected' :checkstatus="checkstatus" :checkstart="$refs.check.f_check_start" :checkend="$refs.check.f_check_end"
|
11
|
+
v-ref:detail></check-detail>
|
12
|
+
</div>
|
13
|
+
</div>
|
14
|
+
|
15
|
+
<!-- </section>-->
|
16
|
+
</div>
|
17
|
+
</template>
|
18
|
+
|
19
|
+
<script>
|
20
|
+
import SelectCheckPlan from './SelectCheckPlan'
|
21
|
+
import CheckDetail from './CheckDetail'
|
22
|
+
|
23
|
+
export default {
|
24
|
+
title: '安检员考核',
|
25
|
+
props: ['f'],
|
26
|
+
components: {SelectCheckPlan, CheckDetail},
|
27
|
+
data() {
|
28
|
+
return {
|
29
|
+
showItem: false,
|
30
|
+
checkstatus: null,
|
31
|
+
style:'col-sm-2 form-group',
|
32
|
+
style2:'col-sm-4 form-group'
|
33
|
+
}
|
34
|
+
},
|
35
|
+
methods: {
|
36
|
+
selected(row) {
|
37
|
+
// //tag
|
38
|
+
this.showItem = true
|
39
|
+
},
|
40
|
+
checkstatusChange(val){
|
41
|
+
this.checkstatus = val
|
42
|
+
}
|
43
|
+
}
|
44
|
+
}
|
45
|
+
</script>
|
46
|
+
<style>
|
47
|
+
.form-input-group label {
|
48
|
+
text-align: right;
|
49
|
+
width: auto;
|
50
|
+
}
|
51
|
+
|
52
|
+
.datapanel {
|
53
|
+
color: #333;
|
54
|
+
background-color: white;
|
55
|
+
box-shadow: darkgrey 0.5px 0.5px 0.5px 0.5px;
|
56
|
+
padding: 5px 7px 5px 7px;
|
57
|
+
border-radius: 10px;
|
58
|
+
}
|
59
|
+
</style>
|