safecheck-client 3.0.35-8 → 3.0.35-9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (27) hide show
  1. package/package.json +1 -1
  2. package/src/App.vue +31 -31
  3. package/src/components/android/AddPlanItemYy.vue +451 -451
  4. package/src/components/android/CivilCurrentCreate.vue +1031 -1031
  5. package/src/components/android/examples/SafeListExamples.vue +296 -296
  6. package/src/components/android/examples/UserExamples.vue +136 -136
  7. package/src/components/rongcheng/AspiratedAreaPlan.vue +574 -574
  8. package/src/components/rongcheng/PhoneUpUserinfo.vue +1236 -1236
  9. package/src/filiale/bayan/android/AddPlanItem.vue +441 -441
  10. package/src/filiale/bayan/android/PaperFeedback.vue +1669 -1669
  11. package/src/filiale/bayan/android/PhoneUpUserinfo.vue +1380 -1380
  12. package/src/filiale/bayan/android/SafecheckOrderV.vue +2922 -2922
  13. package/src/filiale/bayan/android/SafecheckUserInfo.vue +872 -872
  14. package/src/filiale/bayan/pc/CheckPlanAreaList.vue +607 -607
  15. package/src/filiale/bayan/pc/HiddenSituation.vue +295 -295
  16. package/src/filiale/bayan/pc/NewCheckpaper.vue +1992 -1992
  17. package/src/filiale/bayan/pc/PaperList.vue +900 -900
  18. package/src/filiale/bayan/pc/SelectCheckPlan.vue +391 -391
  19. package/src/filiale/shanxian/android/SafecheckOrderV.vue +2979 -2979
  20. package/src/filiale/siyang/android/AddPlanItem.vue +450 -450
  21. package/src/filiale/tongchuan/android/SafecheckDevices.vue +1207 -1207
  22. package/src/filiale/tongchuan/android/SafecheckOrderV.vue +3035 -3035
  23. package/src/filiale/tongchuan/pc/CheckSearchUser.vue +1053 -1053
  24. package/src/filiale/tongchuan/pc/checkUserList.vue +639 -639
  25. package/src/filiale/xilan/android.js +11 -11
  26. package/src/filiale/yangchunboneng/pc/CheckPlanAreaList.vue +642 -642
  27. package/src/safecheck-android.js +307 -307
@@ -1,1236 +1,1236 @@
1
- <template>
2
- <work-busy :is-busy="excessive"></work-busy>
3
- <div style="height: 100%">
4
- <div class="panel auto" v-if="false">
5
- <div class="panel-heading" @click="selectVal('基本信息')" style="background-color: #ffffff">
6
- <span class="spanboder">
7
- <img src="../../assets/person.png" style="width: 22px;margin-right: 8px;">基本信息
8
- <img class="butt3" :src="imgback('基本信息')">
9
- </span>
10
- </div>
11
- <div class="panel-body " id="upuserinfo_sel" v-show="headername == '基本信息'">
12
- <div class="row auto" style="margin: 5px 0">
13
- <label class="righttxt">用户编号:</label>
14
- <input type="text" class="form-control rightipt" v-model="userinfo.baseinfo.base.f_userinfo_code" readonly />
15
- </div>
16
- <div class="row auto" style="margin: 5px 0">
17
- <label class="righttxt">用户名称:</label><input type="text" class="form-control rightipt"
18
- v-model="userinfo.baseinfo.base.f_user_name" readonly />
19
- </div>
20
- <div class="row auto" style="margin: 5px 0">
21
- <label class="righttxt">用户状态:</label><input type="text" class="form-control rightipt" readonly
22
- v-model="userinfo.baseinfo.base.f_user_state" />
23
- </div>
24
- <div class="row auto" style="margin: 5px 0">
25
- <label class="righttxt">用户电话:</label><input type="text" class="form-control rightipt"
26
- v-model="userinfo.baseinfo.base.f_user_phone" />
27
- </div>
28
- <div class="row auto" style="margin: 5px 0">
29
- <label class="righttxt">租户姓名:</label><input type="text" class="form-control rightipt"
30
- v-model="userinfo.baseinfo.base.f_rent_name" />
31
- </div>
32
- <div class="row auto" style="margin: 5px 0">
33
- <label class="righttxt">租户电话:</label><input type="text" class="form-control rightipt"
34
- v-model="userinfo.baseinfo.base.f_zuhu_phone" />
35
- </div>
36
- <div class="row auto" style="margin: 5px 0">
37
- <label class="righttxt">建档日期:</label><input type="text" class="form-control rightipt"
38
- v-model="userinfo.baseinfo.base.f_createfile_date" readonly />
39
- </div>
40
- <!-- <div class="row auto" style="margin: 5px 0">
41
- <label class="righttxt">开户日期:</label><input type="text" class="form-control rightipt" v-model="userinfo.baseinfo.base.f_open_date" readonly />
42
- </div>-->
43
- <div class="row auto" style="margin: 5px 0">
44
- <label class="righttxt">地址类型:</label>
45
- <div class="rightipt" style="display: flex;justify-content: space-around;margin-top: 5px">
46
- <div><input type="radio" v-model="addressType" name="addressType" @change="changeAddressType"
47
- id="phone_addressType1" value="普通地址" /><label style="font-weight: normal;padding-left: 2px"
48
- for="phone_addressType1">普通地址</label></div>
49
- <div><input type="radio" v-model="addressType" name="addressType" @change="changeAddressType"
50
- id="phone_addressType2" value="特殊地址" /><label style="font-weight: normal;padding-left: 2px"
51
- for="phone_addressType2">特殊地址</label></div>
52
- </div>
53
- <!--<input type="text" style="width: 75%;float:right" class="form-control" v-model="row.f_devices_type" />-->
54
- <!--<input type="text" class="form-control rightipt" readonly v-model="userinfo.addressinfo.f_pcd" />-->
55
- <!--<v-select :value.sync="userinfo.addressinfo.f_iscity" class="input-font" style="margin-left: 5%;"
56
- :width="'60%'"
57
- v-model="userinfo.addressinfo.f_iscity"
58
- :options='cityTypes' placeholder='地区类型' close-on-select clear-button value-single @change="area_change()"></v-select>-->
59
- </div>
60
- <div class="row auto" style="margin: 5px 0">
61
- <label class="righttxt">地区类型:</label>
62
- <!--<input type="text" style="width: 75%;float:right" class="form-control" v-model="row.f_devices_type" />-->
63
- <input type="text" class="form-control rightipt" readonly v-model="userinfo.addressinfo.f_iscity" />
64
- <!--<v-select :value.sync="userinfo.addressinfo.f_iscity" class="input-font" style="margin-left: 5%;"
65
- :width="'60%'"
66
- :disabled="true"
67
- v-model="userinfo.addressinfo.f_iscity"
68
- :options='cityTypes' placeholder='地区类型' close-on-select clear-button value-single ></v-select>-->
69
- </div>
70
- <div class="row auto" style="margin: 5px 0">
71
- <label class="righttxt">省&ensp;市&ensp;区:</label>
72
- <!--<input type="text" style="width: 75%;float:right" class="form-control" v-model="row.f_devices_type" />-->
73
- <!--<input type="text" class="form-control rightipt" readonly v-model="userinfo.addressinfo.f_pcd" />-->
74
- <v-select :value.sync="selectPcd" class="input-font" style="margin-left: 5%;" :width="'60%'"
75
- v-model="selectPcd" :options='pcds' placeholder='请选择省市区' close-on-select clear-button value-single
76
- @change="pcd_change()"></v-select>
77
- </div>
78
- <div class="row auto" style="margin: 5px 0">
79
- <label class="righttxt">街道名称:</label>
80
- <!--<input type="text" readonly class="form-control rightipt" v-model="userinfo.addressinfo.f_street" />-->
81
- <v-select :value.sync="selectStreet" class="input-font" style="margin-left: 5%;" :width="'60%'"
82
- v-model="selectStreet" :options='streets' placeholder='请选择街道' close-on-select clear-button value-single
83
- @change="street_change()"></v-select>
84
- </div>
85
- <div class="row auto" style="margin: 5px 0">
86
- <label class="righttxt">集收单位:</label>
87
- <!--<input type="text" readonly class="form-control rightipt" v-model="userinfo.addressinfo.f_residential_area" />-->
88
- <v-select :value.sync="selectArea" class="input-font" style="margin-left: 5%;" :width="'60%'"
89
- v-model="selectArea" :timeout="500" @select-search="select_search" :options='area' placeholder='请选择集收单位'
90
- close-on-select clear-button value-single @change="area_change()"></v-select>
91
- </div>
92
- <!--<div class="row auto" style="margin: 5px 0" v-show="addressType=='特殊地址'">
93
- <label class="righttxt">集收单位:</label>
94
- &lt;!&ndash;<input type="text" readonly class="form-control rightipt" v-model="userinfo.addressinfo.f_residential_area" />&ndash;&gt;
95
- <v-select :value.sync="selectArea" class="input-font" style="margin-left: 5%;"
96
- :width="'60%'"
97
- v-model="selectArea"
98
- @select-search="select_search"
99
- :options='area' placeholder='请选择集收单位' close-on-select clear-button value-single @change="area_changeTC()"></v-select>
100
- </div>-->
101
- <div class="row auto" style="margin: 5px 0" v-show="addressType == '普通地址'">
102
- <label class="righttxt">楼&ensp;&ensp;&ensp;&ensp;号:</label><input type="text" @change="changeNewAddress"
103
- class="form-control rightipt" v-model="userinfo.addressinfo.f_building" />
104
- </div>
105
- <div class="row auto" style="margin: 5px 0" v-show="addressType == '普通地址'">
106
- <label class="righttxt">单&ensp;&ensp;&ensp;&ensp;元:</label><input type="text" @change="changeNewAddress"
107
- class="form-control rightipt" v-model="userinfo.addressinfo.f_unit" />
108
- </div>
109
- <div class="row auto" style="margin: 5px 0" v-show="addressType == '普通地址'">
110
- <label class="righttxt">楼&ensp;&ensp;&ensp;&ensp;层:</label><input type="text" @change="changeNewAddress"
111
- class="form-control rightipt" v-model="userinfo.addressinfo.f_floor" />
112
- </div>
113
- <div class="row auto" style="margin: 5px 0" v-show="addressType == '普通地址'">
114
- <label class="righttxt">门&ensp;牌&ensp;号:</label><input type="text" @change="changeNewAddress"
115
- class="form-control rightipt" v-model="userinfo.addressinfo.f_room" />
116
- </div>
117
- <div class="row auto" style="margin: 5px 0">
118
- <label class="righttxt">详细地址:</label><input type="text" class="form-control rightipt" readonly
119
- v-model="userinfo_old.addressinfo.f_address" />
120
- </div>
121
- <div class="row auto" style="margin: 5px 0">
122
- <label class="righttxt">新&ensp;地&ensp;址:</label>
123
- <!--<input type="text" class="form-control rightipt" readonly v-model="getaddress()" />-->
124
- <textarea :readonly="addressType == '普通地址'" class="form-control rightipt" : style="height: 80px"
125
- v-model="userinfo.addressinfo.f_address"></textarea>
126
- </div>
127
-
128
- <!--<div class="row auto" style="margin: 5px 0" v-show="addressType=='特殊地址'">
129
- <label class="righttxt">新&ensp;地&ensp;址:</label>&lt;!&ndash;<input type="text" class="form-control rightipt" v-model="userinfo.addressinfo.f_address" />&ndash;&gt;
130
- <textarea class="form-control rightipt" style="height: 80px" v-model="getAddressTS"></textarea>
131
- </div>-->
132
-
133
- <div class="row auto" style="margin: 5px 0">
134
- <label class="righttxt">备&ensp;&ensp;&ensp;&ensp;注:</label><textarea class="form-control rightipt"
135
- style="height: 150px" v-model="userinfo.baseinfo.base.f_remark"></textarea>
136
- <!--<input type="text" class="form-control rightipt" v-model="userinfo.baseinfo.base.f_remark" />-->
137
- </div>
138
- </div>
139
- </div>
140
- <div class="panel auto" v-if="false">
141
- <div class="panel-heading" @click="selectVal('表具信息')" style="background-color: #ffffff">
142
- <span class="spanboder">
143
- <img src="../../assets/person.png" style="width: 22px;margin-right: 8px;">表具信息
144
- <img class="butt3" :src="imgback('表具信息')">
145
- </span>
146
- </div>
147
- <div class="panel-body " v-show="headername == '表具信息'">
148
- <div class="row auto" style="margin: 5px 0">
149
- <label class="righttxt">表&ensp;&ensp;&ensp;&ensp;号:</label>
150
- <input type="text" :readonly="userinfo.meterinfo[0].f_meter_classify != '机表'" class="form-control rightipt"
151
- style="width: 45%" v-model="userinfo.meterinfo[0].f_meternumber" />
152
- <button type="button"
153
- :disabled="!(userinfo.meterinfo[0].f_meter_classify == '机表' || userinfo.meterinfo[0].f_meter_classify == '金额卡表' || userinfo.meterinfo[0].f_meter_classify == '气量卡表')"
154
- name="button" class="btn btn-primary" style="width: 15%" @click="scan">扫码
155
- </button>
156
- </div>
157
-
158
- <div class="row auto" style="margin: 5px 0">
159
- <label class="righttxt">通&ensp;气&ensp;人:</label>
160
- <input type="text" class="form-control rightipt" v-model="userinfo.meterinfo[0].f_gas_person" />
161
- </div>
162
- <div class="row auto" style="margin: 5px 0">
163
- <label class="righttxt">通气时间:</label>
164
- <datepicker class="rightipt" :value.sync="userinfo.meterinfo[0].f_gas_date"
165
- v-model="userinfo.meterinfo[0].f_gas_date" :disabled-days-of-Week="[]" :format="'yyyy-MM-dd'"
166
- :show-reset-button="reset">
167
- </datepicker>
168
- </div>
169
- <div class="row auto" style="margin: 5px 0" v-show="showBox">
170
- <label class="righttxt">调&ensp;压&ensp;箱:</label>
171
- <v-select class="rightipt" :value.sync="userinfo.meterinfo[0].f_adjustable_id"
172
- v-model="userinfo.meterinfo[0].f_adjustable_id" placeholder='请选择' :width='wid' readonly
173
- :options="boxOptions" close-on-select value-single></v-select>
174
- </div>
175
- <div class="row auto" style="margin: 5px 0">
176
- <label class="righttxt">是否直通:</label>
177
- <v-select :value.sync="userinfo.meterinfo[0].f_if_direct" class="input-font" style="margin-left: 5%;"
178
- :width="'60%'" v-model="userinfo.meterinfo[0].f_if_direct" :options='directOptions' placeholder='是否直通'
179
- close-on-select clear-button value-single>
180
- </v-select>
181
- </div>
182
- <div class="row auto" style="margin: 5px 0">
183
- <label class="righttxt">表&ensp;封&ensp;号:</label>
184
- <input type="text" class="form-control rightipt" v-model="userinfo.meterinfo[0].f_metertitles" />
185
- </div>
186
- <div class="row auto" style="margin: 5px 0">
187
- <label class="righttxt">表&ensp;位&ensp;置:</label>
188
- <!--<input type="text" class="form-control rightipt" v-model="userinfo.meterinfo[0].f_position" readonly/>-->
189
- <v-select class="rightipt" :value.sync="userinfo.meterinfo[0].f_position"
190
- v-model="userinfo.meterinfo[0].f_position" placeholder='请选择' :width='wid' readonly :options="wz_types"
191
- close-on-select value-single></v-select>
192
- </div>
193
- <div class="row auto" style="margin: 5px 0">
194
- <label class="righttxt">表&ensp;&ensp;&ensp;&ensp;向:</label>
195
- <!--<input type="text" class="form-control rightipt" v-model="userinfo.meterinfo[0].f_position" readonly/>-->
196
- <v-select class="rightipt" :value.sync="userinfo.meterinfo[0].f_aroundmeter"
197
- v-model="userinfo.meterinfo[0].f_aroundmeter" placeholder='请选择' :width='wid' readonly
198
- :options="aroundmeters" close-on-select value-single></v-select>
199
- </div>
200
- <div class="row auto" style="margin: 5px 0">
201
- <label class="righttxt">气表类型:</label>
202
- <input type="text" class="form-control rightipt" v-model="userinfo.meterinfo[0].f_meter_classify" readonly />
203
- </div>
204
- <div class="row auto" style="margin: 5px 0">
205
- <label class="righttxt">表前阀状态:</label>
206
- <!--<input type="text" class="form-control rightipt" v-model="userinfo.meterinfo[0].f_position" readonly/>-->
207
- <v-select class="rightipt" :value.sync="userinfo.meterinfo[0].f_bqf_state"
208
- v-model="userinfo.meterinfo[0].f_bqf_state" placeholder='请选择' :width='wid' readonly :options="bqf_states"
209
- close-on-select value-single></v-select>
210
- </div>
211
- <!-- <div class="row auto" style="margin: 5px 0">
212
- <div style="display: flex;justify-content: center;">
213
- <button v-if="userinfo.meterinfo[0].f_meter_classify=='机表'" class="col-sm-3 btn btn-primary" @click="upUserState()">机表关阀停用</button>
214
- </div>
215
- </div>-->
216
- </div>
217
- </div>
218
- <div class="panel auto">
219
- <div class="panel-heading" @click="selectVal('用气设备信息')" style="background-color: #ffffff">
220
- <span class="spanboder"><img src="../../assets/list.png" style="width: 22px;margin-right: 8px;">用气设备信息<img
221
- class="butt3" :src="imgback('用气设备信息')"></span>
222
- </div>
223
- <div class="panel-body" v-show="headername == '用气设备信息'">
224
- <div class="row" v-for="(idx, row) in model"
225
- style="border:2px solid #A2C2EB; border-top:10px solid #A2C2EB; box-shadow: #00b3ee;margin-bottom: 10px">
226
- <div class="row auto" style="margin: 5px 0">
227
- <label class="righttxt">设备类型:</label>
228
- <!--<input type="text" class="form-control rightipt" readonly v-model="row.f_devices_type" />-->
229
- <v-select class="rightipt" :value.sync="row.f_devices_type" v-model="row.f_devices_type" placeholder='请选择'
230
- @change="getServiceLife(idx, row.f_devices_type)" :width='wid' readonly :options="devices_types"
231
- close-on-select value-single></v-select>
232
- </div>
233
- <div class="row auto" style="margin: 5px 0">
234
- <label class="righttxt">设备品牌:</label>
235
- <input type="text" class="form-control rightipt" v-model="row.f_brand" />
236
- </div>
237
- <div class="row auto" style="margin: 5px 0">
238
- <label class="righttxt">设备型号:</label><input type="text" class="form-control rightipt"
239
- v-model="row.f_devices_model" />
240
- </div>
241
- <div class="row auto" style="margin: 5px 0" v-if="false">
242
- <label class="righttxt">生产日期:</label>
243
- <datepicker class="rightipt" :value.sync="row.f_make_date" v-model="row.f_make_date"
244
- :disabled-days-of-Week="[]" :format="'yyyy-MM-dd'" :show-reset-button="reset" readonly="readonly">
245
- </datepicker>
246
- </div>
247
- <div class="row auto" style="margin: 5px 0">
248
- <label class="righttxt">安装日期:</label>
249
- <datepicker class="rightipt" @change="countExpireFate(idx, row.f_input_date)" :value.sync="row.f_input_date"
250
- v-model="row.f_input_date" :disabled-days-of-Week="[]" :format="'yyyy-MM-dd'" :show-reset-button="reset"
251
- readonly="readonly">
252
- </datepicker>
253
- </div>
254
- <div class="row auto" style="margin: 5px 0">
255
- <label class="righttxt">使用年限:</label><input type="number" class="form-control rightipt"
256
- v-model="row.f_service_life" readonly />
257
- </div>
258
- <div class="row auto" style="margin: 5px 0">
259
- <label class="righttxt">到期日期:</label>
260
- <input type="text" class="form-control rightipt" v-model="row.f_expire_date" readonly />
261
- </div>
262
- <div class="row auto" style="margin: 5px 0">
263
- <label class="righttxt">安&ensp;装&ensp;人:</label><input type="text" class="form-control rightipt"
264
- v-model="row.f_input_person" />
265
- </div>
266
- <div class="row auto" style="margin: 5px 0">
267
- <label class="righttxt">设备数量:</label><input type="number" class="form-control rightipt"
268
- v-model="row.f_devices_num" />
269
- </div>
270
- <div class="row auto" style="margin: 5px 0">
271
- <label class="righttxt">管道类型:</label>
272
- <!--<input type="text" class="form-control rightipt" readonly v-model="row.f_devices_type" />-->
273
- <v-select class="rightipt" :value.sync="row.f_pipe_type" v-model="row.f_pipe_type" placeholder='请选择'
274
- :width='wid' readonly :options="pipe_types" close-on-select value-single></v-select>
275
- </div>
276
- <div class="row auto" style="margin: 5px 0">
277
- <label class="righttxt">安装日期:</label>
278
- <datepicker class="rightipt" @change="countExpireFate_pipe(idx, row.f_pipeinstall_date, row.f_pipe_type)"
279
- :value.sync="row.f_pipeinstall_date" v-model="row.f_pipeinstall_date" :disabled-days-of-Week="[]"
280
- :format="'yyyy-MM-dd'" :show-reset-button="reset" readonly="readonly">
281
- </datepicker>
282
- </div>
283
- <div class="row auto" style="margin: 5px 0">
284
- <label class="righttxt">到期日期:</label>
285
- <input type="text" class="form-control rightipt" v-model="row.f_pipeexpire_date" readonly />
286
- </div>
287
- <!--<div class="row auto" style="margin: 5px 0">
288
- <label class="righttxt">设备状态:</label><input type="text" class="form-control rightipt" readonly v-model="row.f_userinfodevices_state" />
289
- </div>-->
290
- <!--<div class="row auto" style="margin: 5px 0">
291
- <label class="righttxt">购买方式:</label><input type="text" class="form-control rightipt" readonly v-model="row.watchpurchase" />
292
- </div>-->
293
- <div style="display: flex;justify-content: center;margin-bottom: 3px"
294
- v-if="$index > this.userinfo_old.devicesinfo.length - 1 || this.userinfo_old.devicesinfo.length == 0">
295
- <button class="btn btn-warning" @click="delDevices($index)">删除设备</button>
296
- </div>
297
- </div>
298
- <div style="display: flex;justify-content: space-around;">
299
- <button class="col-sm-3 btn btn-primary" @click="addDevices($index)">新增设备</button>
300
- </div>
301
- </div>
302
- </div>
303
- <div class="panel auto">
304
- <div class="panel-body">
305
- <div style="display: flex;justify-content: center;">
306
- <!-- <button class="col-sm-3 btn btn-primary" :disabled="enable" @click="isNeedAudit ? editUserInfo() : editUserInfoNoAudit()">{{isNeedAudit ? '上传审核' : '上传'}}</button>-->
307
- <button class="col-sm-3 btn btn-primary" :disabled="enable" @click="editUserInfo()">上传</button>
308
- </div>
309
- </div>
310
- </div>
311
- </div>
312
- </template>
313
-
314
- <script>
315
- import { HttpResetClass } from 'vue-client'
316
- import * as Util from "../Util";
317
- import Vue from 'vue'
318
- import { toStandardDateString } from "../Util";
319
-
320
- export default {
321
- title: '设备查看',
322
- data() {
323
- return {
324
- model: [],
325
- devicemodel:[],
326
- show: false,
327
- row: Object,
328
- userinfo: Object,
329
- userinfo_old: Object,
330
- wid: "60%",
331
- aroundmeters: [],
332
- devices_types: [],
333
- device_type: [{label: '调压器', value: '调压器'}, {label: '报警器', value: '报警器'}, {label: '切断阀', value: '切断阀'}],
334
- pipe_types: Vue.$appdata.getParam('管道类型')?Vue.$appdata.getParam('管道类型'):[{label: '包覆管', value: '包覆管'}, {label: '波纹管', value: '波纹管'}],
335
- wz_types: [],
336
- cityTypes: [{ label: '市区', value: '市区' }, { label: '城镇', value: '城镇' }],
337
- bqf_states: [{ label: '开阀', value: '开阀' }, { label: '关阀', value: '关阀' }],
338
- pcds: [],
339
- streets: [],
340
- update: false,
341
- headername: '用气设备信息',
342
- excessive: false,
343
- area: [],
344
- enable: false,
345
- f_meterno_path: Vue.nopic,
346
- selectArea: { id: '' },
347
- selectPcd: { id: '' },
348
- selectStreet: { id: '' },
349
- changemeterno: false,//是否修改了机表表号
350
- approveChange: false,//是否需要进行信息变更审核
351
- newAddress: '',
352
- addressType: '',
353
- //需要审核的字段
354
- checkField: {
355
- checkUserinfoField: [
356
- 'f_user_name'
357
- ],
358
- checkUserFilesField: [
359
- 'f_meternumber'
360
- ],
361
- checkAddressField: [
362
- 'f_pcd_id',
363
- 'f_street_id',
364
- 'f_residential_area_id',
365
- 'f_building',
366
- 'f_unit',
367
- 'f_floor',
368
- 'f_room',
369
- 'f_slice_area',
370
- 'f_special',
371
- 'f_address'
372
- ],
373
- },
374
- boxOptions: [],
375
- showBox: false,
376
- directOptions: [{ label: '是', value: '是' }, { label: '否', value: '否' }],
377
- deviceBrandOption: {},
378
- isNeedAudit: this.$appdata.getSingleValue('信息变更是否需要审核') == 'false' ? false : true
379
- }
380
- },
381
- props: {
382
- user: {
383
- type: Object
384
- },
385
- f_userinfo_id: '',
386
- f_source: ''
387
- },
388
- methods: {
389
- deleteDevice(idx) {
390
- this.$showMessage('删除后不可恢复,确认删除吗?', ['confirm', 'cancel']).then((res) => {
391
- if (res === 'confirm') {
392
- this.devicemodel.splice(idx, 1)
393
- }
394
- })
395
- },
396
- pushDevices() {
397
- let obj = {
398
- "f_operator": Vue.user.name,
399
- "f_operate_date": Util.toStandardTimeString(),
400
- "f_operatorid": Vue.user.id,
401
- "f_devices_type":null,
402
- "f_manufactor":null,
403
- "f_devices_no":null,
404
- "f_devices_model":null,
405
- "f_instaler_person":null,
406
- "f_make_date":null,
407
- "f_input_date":null,
408
- "f_devices_num":null,
409
- "f_firstcheck_date":null,
410
- "f_rate_flow":null,
411
- "f_expire_date":null,
412
- "f_nextcheck_date":null,
413
- "f_pressure_range":null,
414
- "f_import_pressure":null
415
- }
416
- this.devicemodel.push(obj)
417
- },
418
- countExpireFate_pipe(index, dateTime, type) {
419
- let old = new Date(dateTime)
420
- let newYear = old.getFullYear() + Number(this.$appdata.getSingleValue(type + '-年限') || 0)
421
- let month = old.getMonth() + 1
422
- let date = old.getDate()
423
- this.model[index].f_pipeexpire_date = newYear + '-' + (month < 10 ? '0' + month : month) + '-' + (date < 10 ? '0' + date : date)
424
- },
425
- countExpireFate(index, dateTime) {
426
- let old = new Date(dateTime)
427
- let newYear = old.getFullYear() + Number(this.model[index].f_service_life)
428
- let month = old.getMonth() + 1
429
- let date = old.getDate()
430
- this.model[index].f_expire_date = newYear + '-' + (month < 10 ? '0' + month : month) + '-' + (date < 10 ? '0' + date : date)
431
- },
432
- getServiceLife(index, type) {
433
- const year = this.$appdata.getSingleValue(type + '-' + this.userinfo.meterinfo[0].f_user_type + '-年限') || 0
434
- this.model[index].f_service_life = year
435
- },
436
- dateAddYear(dateTime, year) {
437
- let old = new Date(dateTime)
438
- let newYear = old.getFullYear() + Number(year)
439
- let month = old.getMonth() + 1
440
- let date = old.getDate()
441
- return newYear + '-' + (month < 10 ? '0' + month : month) + '-' + (date < 10 ? '0' + date : date)
442
- },
443
- scan() {
444
- HostApp.__this__ = this,
445
- HostApp.scanCode({ callback: "javascript:HostApp.__this__.getCode();" })
446
- },
447
- getCode() {
448
- var datapa = HostApp.getCode().data;
449
- //tag
450
- this.userinfo.meterinfo[0].f_meternumber = datapa
451
- },
452
- //数据检查
453
- checkVal() {
454
- //检查一些必要信息是否未填
455
- this.approveChange = false
456
- this.changemeterno = false
457
- let checked = { ischeck: true, msg: '' }
458
- //tag
459
- //tag
460
- //tag
461
- if (!this.userinfo.baseinfo.base.f_user_name) {
462
- checked = { ischeck: false, msg: '请输入用户名称!' }
463
- }
464
- if (!this.selectPcd.id) {
465
- checked = { ischeck: false, msg: '请选择省市区!' }
466
- }
467
- if (!this.selectStreet.id) {
468
- checked = { ischeck: false, msg: '请选择街道!' }
469
- }
470
- if (!this.userinfo.addressinfo.f_address) {
471
- checked = { ischeck: false, msg: '新地址不能为空!' }
472
- }
473
- if (this.addressType == '普通地址') {
474
- if (!this.selectArea.id) {
475
- checked = { ischeck: false, msg: '请选择集收单位!' }
476
- }
477
- if (!this.userinfo.addressinfo.f_room) {
478
- checked = { ischeck: false, msg: '新输入门牌号!' }
479
- }
480
- }
481
- if (this.userinfo.meterinfo[0].f_meter_classify == '机表' && this.userinfo_old.meterinfo[0].f_meternumber) {
482
-
483
- //tag
484
- //tag
485
- if (this.userinfo.meterinfo[0].f_meternumber) {
486
- if (this.userinfo.meterinfo[0].f_meternumber != this.userinfo_old.meterinfo[0].f_meternumber) {
487
- if (!this.f_meterno_path || this.f_meterno_path == Vue.nopic) {
488
- checked = { ischeck: false, msg: '请拍摄表号照片!' }
489
- } else {
490
- //用来标识当前有修改机表表号,后台需要进行照片上传
491
- this.changemeterno = true
492
- }
493
- }
494
- } else {
495
- checked = { ischeck: false, msg: '请输入表号!' }
496
- }
497
- }
498
- //检查本次修改信息中是否包含需要审核的内容
499
- for (let check in this.checkField) {
500
- //tag
501
- if (typeof check != 'function') {
502
- for (let i = 0; i < this.checkField[check].length; i++) {
503
- //tag
504
- if (check == 'checkUserinfoField') {
505
- //tag
506
- //tag
507
- if (this.userinfo.baseinfo.base[this.checkField[check][i]] != this.userinfo_old.baseinfo.base[this.checkField[check][i]]) {
508
- //tag
509
- this.approveChange = true
510
- }
511
- } else if (check == 'checkUserFilesField') {
512
- //tag
513
- //tag
514
- if (this.userinfo.meterinfo[0][this.checkField[check][i]] != this.userinfo_old.meterinfo[0][this.checkField[check][i]]) {
515
- //tag
516
- this.approveChange = true
517
- }
518
- } else if (check == 'checkAddressField') {
519
- //tag
520
- //tag
521
- if (this.userinfo.addressinfo[this.checkField[check][i]] != this.userinfo_old.addressinfo[this.checkField[check][i]]) {
522
- //tag
523
- this.approveChange = true
524
- }
525
- }
526
- }
527
- }
528
- }
529
- //tag
530
- return checked
531
- },
532
- select_search(text) {
533
- //tag
534
- if (this.selectStreet.id) {
535
- let pcdText = text ? `and f_street_id=${this.selectStreet.id} and f_residential_area like '%${text}%'` : `and f_street_id=${this.selectStreet.id}`
536
- new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
537
- data: {
538
- items: "*",
539
- tablename: "t_area",
540
- orderitem: "id",
541
- condition: `f_orgid = '${Vue.user.orgid}' ${pcdText} `
542
- }
543
- }, { resolveMsg: null, rejectMsg: null }).then((res) => {
544
- //tag)
545
- if (res.data.length > 0) {
546
- this.area = []
547
- res.data.forEach((result) => {
548
- this.area.push({ label: result.f_residential_area, value: result })
549
- })
550
- }
551
- })
552
- } else {
553
- this.area = []
554
- }
555
- },
556
- cameraCallBack(prop, fileName) {
557
- HostApp.__this__.$set(prop, fileName + '?' + Math.random())
558
- //tag
559
- HostApp.__callback__ = null
560
- HostApp.__this__ = null
561
- },
562
- takePic(prop, title) {
563
- HostApp.__callback__ = this.cameraCallBack
564
- HostApp.__this__ = this
565
- //tag
566
- let fileName
567
- if (!this[prop] || this[prop].includes("nopic.png")) {
568
- fileName = Util.guid() + '-' + prop + '.jpg'
569
- } else {
570
- fileName = Util.getFileName(this[prop])
571
- }
572
- HostApp._open_a_page({
573
- type: 'boomerang',
574
- page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
575
- param: {
576
- file: fileName,
577
- requestCode: 111,
578
- callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");',
579
- watermark: title + '\t时间:' + Util.toStandardTimeString() + '\t' + Vue.user.name
580
- }
581
- })
582
- },
583
- delfile(prop, fileName) {
584
- if (fileName == Vue.nopic)
585
- return
586
- else {
587
- HostApp.delfile(fileName)
588
- this[prop] = Vue.nopic
589
- }
590
- },
591
- editUserInfoNoAudit() {
592
- let checked = this.checkVal()
593
- if (!checked.ischeck) {
594
- this.$showMessage(checked.msg)
595
- return
596
- }
597
- for (let i = 0; i < this.model.length; i++) {
598
- this.model[i].f_user_id = this.userinfo.meterinfo[0].f_user_id
599
- }
600
- this.$showMessage('确定是否修改上传用户信息?', ['confirm', 'cancel']).then((res) => {
601
- if (res === 'confirm') {
602
- this.excessive = true
603
- let userinfoms = Object.assign({}, this.userinfo_old.baseinfo.base)
604
- // userinfoms.f_user_name=row.f_user_name
605
- userinfoms.f_user_phone = this.userinfo.baseinfo.base.f_user_phone
606
- userinfoms.f_rent_name = this.userinfo.baseinfo.base.f_rent_name
607
- userinfoms.f_zuhu_phone = this.userinfo.baseinfo.base.f_zuhu_phone
608
- userinfoms.f_operator_record = Vue.user.name
609
- userinfoms.f_operatorid_record = Vue.user.id
610
- userinfoms.f_remark = this.userinfo.baseinfo.base.f_remark
611
- userinfoms.f_orgid_record = Vue.user.orgid
612
- userinfoms.f_orgname_record = Vue.user.orgs
613
- userinfoms.f_depid_record = Vue.user.depids
614
- userinfoms.f_depname_record = Vue.user.deps
615
- this.userinfo_old.meterinfo[0].f_gas_person = this.userinfo.meterinfo[0].f_gas_person
616
- this.userinfo_old.meterinfo[0].f_gas_date = this.userinfo.meterinfo[0].f_gas_date
617
- this.userinfo_old.meterinfo[0].f_adjustable_id = this.userinfo.meterinfo[0].f_adjustable_id
618
- this.userinfo_old.meterinfo[0].f_metertitles = this.userinfo.meterinfo[0].f_metertitles
619
- this.userinfo_old.meterinfo[0].f_position = this.userinfo.meterinfo[0].f_position
620
- this.userinfo_old.meterinfo[0].f_aroundmeter = this.userinfo.meterinfo[0].f_aroundmeter
621
- this.userinfo_old.meterinfo[0].f_bqf_state = this.userinfo.meterinfo[0].f_bqf_state
622
- this.userinfo_old.meterinfo[0].f_if_direct = this.userinfo.meterinfo[0].f_if_direct
623
- userinfoms.userfiles = []
624
- this.userinfo_old.meterinfo[0].devicesinfo = this.model
625
- userinfoms.userfiles.push(this.userinfo_old.meterinfo[0])
626
- new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/filemanage_fileSave`, {
627
- data: {
628
- userinfo: userinfoms,
629
- modifyReason: this.f_source ? `${this.f_source}维护档案信息` : '',
630
- address: {
631
- id: this.userinfo_old.addressinfo.id,
632
- oldid: this.userinfo_old.addressinfo.id,
633
- f_address: this.userinfo_old.addressinfo.f_address ? this.userinfo_old.addressinfo.f_address : this.userinfo.addressinfo.f_address
634
- }
635
- }
636
- }, { resolveMsg: null, rejectMsg: null }).then((res1) => {
637
- if (res1.data.status == 200) {
638
- let data = this.userinfo.addressinfo
639
- data.f_address = this.userinfo_old.addressinfo.f_address ? this.userinfo_old.addressinfo.f_address : this.userinfo.addressinfo.f_address
640
- //
641
- data.f_operator = Vue.user.name
642
- new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/address_updateuseraddress`, { data: data }).then((res2) => {
643
- this.$showMessage("修改用户地址信息成功!")
644
- }).catch(error => {
645
- this.$showMessage("修改用户地址信息!")
646
- })
647
- this.$showMessage("修改用户信息成功!")
648
- this.enable = true
649
- this.excessive = false
650
- }
651
- }).catch((msg) => {
652
- this.$showMessage("修改用户信息失败,请检查手机网络状况!")
653
- this.excessive = false
654
- })
655
- }
656
- })
657
- },
658
- editUserInfo() {
659
- this.$showMessage('确定是否修改上传审核用户信息?', ['confirm', 'cancel']).then((res) => {
660
- if (res === 'confirm') {
661
- for (let i = 0; i < this.model.length; i++) {
662
- this.model[i].f_user_id = this.userinfo.meterinfo[0].f_user_id
663
- }
664
- this.excessive = true
665
- let userinfoms = Object.assign({}, this.userinfo_old.baseinfo.base)
666
- //userinfoms.f_user_name=row.f_user_name
667
- userinfoms.f_user_phone = this.userinfo.baseinfo.base.f_user_phone
668
- userinfoms.f_rent_name = this.userinfo.baseinfo.base.f_rent_name
669
- userinfoms.f_zuhu_phone = this.userinfo.baseinfo.base.f_zuhu_phone
670
- userinfoms.f_operator_record = Vue.user.name
671
- userinfoms.f_operatorid_record = Vue.user.id
672
- userinfoms.f_remark = this.userinfo.baseinfo.base.f_remark
673
- userinfoms.f_orgid_record = Vue.user.orgid
674
- userinfoms.f_orgname_record = Vue.user.orgs
675
- userinfoms.f_depid_record = Vue.user.depids
676
- userinfoms.f_depname_record = Vue.user.deps
677
- this.userinfo_old.meterinfo[0].f_gas_person = this.userinfo.meterinfo[0].f_gas_person
678
- this.userinfo_old.meterinfo[0].f_gas_date = this.userinfo.meterinfo[0].f_gas_date
679
- this.userinfo_old.meterinfo[0].f_adjustable_id = this.userinfo.meterinfo[0].f_adjustable_id
680
- this.userinfo_old.meterinfo[0].f_metertitles = this.userinfo.meterinfo[0].f_metertitles
681
- this.userinfo_old.meterinfo[0].f_position = this.userinfo.meterinfo[0].f_position
682
- this.userinfo_old.meterinfo[0].f_aroundmeter = this.userinfo.meterinfo[0].f_aroundmeter
683
- this.userinfo_old.meterinfo[0].f_bqf_state = this.userinfo.meterinfo[0].f_bqf_state
684
- this.userinfo_old.meterinfo[0].f_if_direct = this.userinfo.meterinfo[0].f_if_direct
685
- userinfoms.userfiles = []
686
- this.userinfo_old.meterinfo[0].devicesinfo = this.model
687
- for (let i = 0; i < this.devicemodel.length; i++){
688
- this.userinfo_old.meterinfo[0].devicesinfo.push(this.devicemodel[i])
689
- }
690
- userinfoms.userfiles.push(this.userinfo_old.meterinfo[0])
691
- //tag)
692
- new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/filemanage_fileSave`, {
693
- data: {
694
- userinfo: userinfoms,
695
- modifyReason: this.f_source ? `${this.f_source}维护档案信息` : '',
696
- address: { id: this.userinfo_old.addressinfo.id, oldid: this.userinfo_old.addressinfo.id }
697
- }
698
- }, { resolveMsg: null, rejectMsg: null }).then((res1) => {
699
- if (res1.data.status == 200) {
700
- //本次修改信息包含需要审核信息
701
- // if (this.approveChange) {
702
- // //tag
703
- // let res2 = this.$androidUtil.bzLogic('safe_upUserinfoApprove', {
704
- // row: {
705
- // f_time: Util.toStandardTimeString(),
706
- // f_modifier: Vue.user.name,//Vue.user.name
707
- // f_modifier_id: Vue.user.id,//Vue.user.id
708
- // f_modify_type: '用户档案',
709
- // f_userinfoid: this.userinfo.baseinfo.base.f_userinfo_id,
710
- // f_userinfo_code: this.userinfo.baseinfo.base.f_userinfo_code,
711
- // f_approved: '未审核',
712
- // filialestr: Vue.user.orgid,//Vue.user.orgid
713
- // version: 1,
714
- // f_user_name: this.userinfo.baseinfo.base.f_user_name,
715
- // f_user_phone: this.userinfo.baseinfo.base.f_user_phone,
716
- // f_street: this.userinfo.addressinfo.f_street,
717
- // f_building: this.userinfo.addressinfo.f_building,
718
- // f_unit: this.userinfo.addressinfo.f_unit,
719
- // f_floor: this.userinfo.addressinfo.f_floor,
720
- // f_room: this.userinfo.addressinfo.f_room,
721
- // f_building_suffix: this.userinfo.addressinfo.f_special == 1 ? null : this.userinfo.addressinfo.f_building_suffix,
722
- // f_unit_suffix: this.userinfo.addressinfo.f_special == 1 ? null : this.userinfo.addressinfo.f_unit_suffix,
723
- // f_floor_suffix: this.userinfo.addressinfo.f_special == 1 ? null : this.userinfo.addressinfo.f_floor_suffix,
724
- // f_room_suffix: this.userinfo.addressinfo.f_special == 1 ? null : this.userinfo.addressinfo.f_room_suffix,
725
- // f_residential_area: this.userinfo.addressinfo.f_residential_area,
726
- // f_address: this.userinfo.addressinfo.f_address,
727
- // f_pcd: this.userinfo.addressinfo.f_pcd,
728
- // f_pcd_id: this.userinfo.addressinfo.f_pcd_id,
729
- // f_street_id: this.userinfo.addressinfo.f_street_id,
730
- // f_residential_area_id: this.userinfo.addressinfo.f_residential_area_id,
731
- // f_used_name: this.userinfo.baseinfo.base.f_used_name,
732
- // f_rent_phone: this.userinfo.baseinfo.base.f_rent_phone,
733
- // f_slice_area: this.userinfo.addressinfo.f_slice_area,
734
- // f_remark: this.userinfo.baseinfo.base.f_remark,
735
- // f_source: this.f_source,
736
- // f_meterno_path: this.f_meterno_path,
737
- // f_iscity: this.userinfo.addressinfo.f_iscity,
738
- // f_special: this.userinfo.addressinfo.f_special,
739
- // f_meternumber: this.userinfo.meterinfo[0].f_meternumber,
740
- // changemeterno: this.changemeterno
741
- // },
742
- // tablename: 't_modify_userinfo'
743
- // })
744
- // //tag)
745
- // if (res2.code == 200) {
746
- // this.$showMessage("变更用户信息成功,需要审核的信息已提交审核,等待管理员处理!")
747
- // this.enable = true
748
- // this.excessive = false
749
- // } else {
750
- // this.$showMessage("上传审核信息失败,请检查图片和网络状况是否正常!")
751
- // this.excessive = false
752
- // }
753
- // } else {
754
- // this.$showMessage("修改用户信息成功!")
755
- // this.enable = true
756
- // this.excessive = false
757
- // }
758
- this.$showMessage("修改用户信息成功!")
759
- this.enable = true
760
- this.excessive = false
761
- }
762
- }).catch((msg) => {
763
- this.$showMessage("修改用户信息失败,请检查手机网络状况!")
764
- this.excessive = false
765
- })
766
-
767
- }
768
- })
769
- },
770
- imgback(header) {
771
- if (this.headername == header) {
772
- return require('../../assets/xiangxia1.png')
773
- } else {
774
- return require('../../assets/xiangyou1.png')
775
- }
776
- this.headername = header
777
- },
778
- selectVal(header) {
779
- if (this.headername == header) {
780
- this.headername = ''
781
- } else {
782
- this.headername = header
783
- }
784
-
785
- },
786
- changeNewAddress() {
787
- this.userinfo.addressinfo.f_address = this.addressType == '普通地址' ? this.getAddress : this.getAddressTS
788
- },
789
- area_change() {
790
- //tag
791
- this.userinfo.addressinfo.f_residential_area = this.selectArea.f_residential_area
792
- this.userinfo.addressinfo.f_residential_area_id = this.selectArea.id
793
- this.userinfo.addressinfo.f_slice_area = this.selectArea.f_slice_area
794
- this.changeNewAddress()
795
- //this.userinfo.addressinfo.f_residential_area=this.f_residential_area.f_residential_area
796
- },
797
- async street_change() {
798
- //tag
799
- if (this.selectStreet.id) {
800
- //如果街道改变--给街道赋值!
801
- this.userinfo.addressinfo.f_street = this.selectStreet.f_street
802
- this.userinfo.addressinfo.f_street_id = this.selectStreet.id
803
- this.userinfo.addressinfo.f_iscity = this.selectStreet.f_iscity
804
- //清空当前选中小区的值
805
- this.userinfo.addressinfo.f_residential_area = ''
806
- this.userinfo.addressinfo.f_residential_area_id = ''
807
- this.userinfo.addressinfo.f_slice_area = ''
808
- this.selectArea = { id: '' }
809
- this.area = []
810
- let pcdText = ` and f_street_id=${this.selectStreet.id}`
811
- let res = await new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
812
- data: {
813
- items: "*",
814
- tablename: "t_area",
815
- orderitem: "id",
816
- condition: `f_orgid = '${Vue.user.orgid}' ${pcdText} `
817
- }
818
- }, { resolveMsg: null, rejectMsg: null })
819
- ////tag)
820
- res.data.forEach((result) => {
821
- this.area.push({ label: result.f_residential_area, value: result })
822
- })
823
- } else {
824
- this.area = []
825
- }
826
-
827
- this.changeNewAddress()
828
- },
829
- async pcd_change() {
830
- //tag
831
- if (this.selectPcd.id) {
832
- //tag
833
- //如果省市区改变-重新赋值
834
- this.userinfo.addressinfo.f_pcd = this.selectPcd.f_pcd
835
- this.userinfo.addressinfo.f_pcd_id = this.selectPcd.id
836
- //清空 选中的街道和集收单位
837
- this.selectStreet = { id: '' }
838
- this.userinfo.addressinfo.f_street = ''
839
- this.userinfo.addressinfo.f_street_id = ''
840
- this.userinfo.addressinfo.f_iscity = ''
841
- this.selectArea = { id: '' }
842
- this.userinfo.addressinfo.f_residential_area = ''
843
- this.userinfo.addressinfo.f_residential_area_id = ''
844
- this.userinfo.addressinfo.f_slice_area = ''
845
- this.streets = []
846
- let pcdText = `and f_pcd_id=${this.selectPcd.id}`
847
- let streetlist = await new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
848
- data: {
849
- items: "*",
850
- tablename: "t_street",
851
- orderitem: "id",
852
- condition: `f_orgid = '${Vue.user.orgid}' ${pcdText}`
853
- }
854
- }, { resolveMsg: null, rejectMsg: null })
855
- streetlist.data.forEach((result) => {
856
- this.streets.push({ label: result.f_street, value: result })
857
- })
858
- } else {
859
- this.streets = []
860
- }
861
- this.changeNewAddress()
862
- },
863
- upUserState() {
864
- //tag)
865
- if (this.userinfo.meterinfo[0].f_table_state == '正常') {
866
- let data = {
867
- f_userfiles_id: {
868
- f_userfiles_id: this.userinfo.meterinfo[0].f_userfiles_id,
869
- f_table_state: '停用',
870
- version: this.userinfo.meterinfo[0].version
871
- },
872
- f_userfile_id: this.userinfo.meterinfo[0].f_userfiles_id,
873
- f_user_id: this.userinfo.meterinfo[0].f_user_id,
874
- f_userinfo_id: this.userinfo.meterinfo[0].f_userinfo_id,
875
- f_user_name: this.userinfo.baseinfo.base.f_user_name,
876
- f_comments: '安检时发现问题关闭阀门',
877
- f_othereason: '',
878
- f_operat_type: '停用',
879
- f_describe: `${Vue.user.name}对客户${this.userinfo.baseinfo.base.f_user_name}进行表具停用操作`,
880
- f_state: '有效',
881
- f_operator: Vue.user.name,//${Vue.$login.f.name}
882
- f_operatorid: Vue.user.id,
883
- f_orgid: Vue.user.orgid,
884
- f_orgname: Vue.user.orgs,
885
- f_depid: Vue.user.depids,
886
- f_depname: Vue.user.deps,
887
- f_zoneid: Vue.user.zoneid,
888
- f_zones: Vue.user.zones
889
- }
890
- new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/rs/entity/t_disable`,
891
- data, { resolveMsg: null, rejectMsg: null }).then((row) => {
892
- this.$showMessage('已成功关阀停气!')
893
- this.userinfo.meterinfo[0].f_table_state = '停用'
894
- })
895
- } else {
896
- this.$showMessage('该用户已被关阀停用,请勿重复操作!')
897
- }
898
-
899
- },
900
- addDevices() {
901
- //Vue.user.name
902
- let obj = {
903
- "f_operator": Vue.user.name,
904
- "f_picture": null,
905
- "f_pipe_type": null,
906
- "f_pipeinstall_date": null,
907
- "f_pipe_connection": null,
908
- "f_expire_date": null,
909
- "f_pipeexpire_date": null,
910
- "f_comments": null,
911
- "f_operate_date": Util.toStandardTimeString(),
912
- "f_operatorid": Vue.user.id,
913
- "f_service_life": '',
914
- "f_devices_num": null,
915
- "f_process_id": null,
916
- "f_devices_type": null,
917
- "f_make_date": null,
918
- "f_input_date": null,
919
- "f_state": "有效",
920
- "f_brand": null,
921
- "f_devices_model": null,
922
- "f_devices_no": null,
923
- "img": { "content": null, "filename": null }
924
- }
925
- this.model.push(obj)
926
- },
927
- delDevices(idx) {
928
- //tag
929
- this.$showMessage('删除后不可恢复,确认删除吗?', ['confirm', 'cancel']).then((res) => {
930
- if (res === 'confirm') {
931
- this.model.splice(idx, 1)
932
- }
933
- })
934
- },
935
- async getAreaList(text) {
936
- if (this.selectStreet.id) {
937
- this.area = []
938
- let pcdText = text ? `and f_street_id=${this.selectStreet.id} and f_residential_area like '%${text}%'` : `and f_street_id=${this.selectStreet.id}`
939
- let res = await new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
940
- data: {
941
- items: "*",
942
- tablename: "t_area",
943
- orderitem: "id",
944
- condition: `f_orgid = '${Vue.user.orgid}' ${pcdText}`
945
- }
946
- }, { resolveMsg: null, rejectMsg: null })
947
- ////tag)
948
- res.data.forEach((result) => {
949
- this.area.push({ label: result.f_residential_area, value: result })
950
- })
951
- //tag
952
- this.area.push({
953
- label: this.userinfo.addressinfo.f_residential_area,
954
- value: {
955
- id: this.userinfo.addressinfo.f_residential_area_id,
956
- f_residential_area: this.userinfo.addressinfo.f_residential_area
957
- }
958
- })
959
- } else {
960
- this.area = []
961
- }
962
-
963
- },
964
- async getStreetList() {
965
- if (this.selectPcd.id) {
966
- //tag
967
- this.streets = []
968
- let pcdText = `and f_pcd_id=${this.selectPcd.id}`
969
- let streetlist = await new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
970
- data: {
971
- items: "*",
972
- tablename: "t_street",
973
- orderitem: "id",
974
- condition: `f_orgid = '${Vue.user.orgid}' ${pcdText}`
975
- }
976
- }, { resolveMsg: null, rejectMsg: null })
977
- streetlist.data.forEach((result) => {
978
- //如果第一次进来有地址id 就拿下地址区域
979
- if (this.selectStreet.id && this.selectStreet.id == result.id) {
980
- //tag)
981
- this.userinfo.addressinfo.f_iscity = result.f_iscity
982
- }
983
- this.streets.push({ label: result.f_street, value: result })
984
- })
985
- } else {
986
- this.streets = []
987
- }
988
- },
989
- changeAddressType(val) {
990
- //tag
991
- if (this.addressType == '普通地址') {
992
- this.userinfo.addressinfo.f_special = null
993
- } else if (this.addressType == '特殊地址') {
994
- this.userinfo.addressinfo.f_special = 1
995
- this.userinfo.addressinfo.f_building = null
996
- this.userinfo.addressinfo.f_unit = null
997
- this.userinfo.addressinfo.f_floor = null
998
- this.userinfo.addressinfo.f_room = null
999
- }
1000
- this.changeNewAddress()
1001
- }
1002
-
1003
- },
1004
- computed: {
1005
- getAddress() {
1006
- return (this.userinfo.addressinfo.f_pcd ? this.userinfo.addressinfo.f_pcd : '') +
1007
- (this.userinfo.addressinfo.f_street ? this.userinfo.addressinfo.f_street : '') +
1008
- (this.userinfo.addressinfo.f_residential_area ? this.userinfo.addressinfo.f_residential_area : '') +
1009
- (this.userinfo.addressinfo.f_building ? this.userinfo.addressinfo.f_building + (this.userinfo.addressinfo.f_building_suffix ? this.userinfo.addressinfo.f_building_suffix : '') : '') +
1010
- (this.userinfo.addressinfo.f_unit ? this.userinfo.addressinfo.f_unit + (this.userinfo.addressinfo.f_unit_suffix ? this.userinfo.addressinfo.f_unit_suffix : '') : '') +
1011
- (this.userinfo.addressinfo.f_floor ? this.userinfo.addressinfo.f_floor + (this.userinfo.addressinfo.f_floor_suffix ? this.userinfo.addressinfo.f_floor_suffix : '') : '') +
1012
- (this.userinfo.addressinfo.f_room ? this.userinfo.addressinfo.f_room + (this.userinfo.addressinfo.f_room_suffix ? this.userinfo.addressinfo.f_room_suffix : '') : '')
1013
- },
1014
- getAddressTS() {
1015
- return (this.userinfo.addressinfo.f_pcd ? this.userinfo.addressinfo.f_pcd : '') +
1016
- (this.userinfo.addressinfo.f_street ? this.userinfo.addressinfo.f_street : '') +
1017
- (this.userinfo.addressinfo.f_residential_area ? this.userinfo.addressinfo.f_residential_area : '')
1018
- }
1019
- },
1020
- watch: {
1021
-
1022
- /*'selectPcd.id' (val) {
1023
- //tag
1024
- if(this.selectPcd.id){
1025
- this.getStreetList()
1026
- }
1027
- },
1028
- 'selectStreet.id' (val) {
1029
- //tag
1030
- if(this.selectStreet.id){
1031
- this.getAreaList()
1032
- }
1033
- }*/
1034
- },
1035
- async ready() {
1036
- /*//tag)
1037
-
1038
- //tag)
1039
- //tag)*/
1040
- //this.f_userinfo_id=1102260
1041
- //this.f_userinfo_id=1997541
1042
- if (!this.f_userinfo_id) {
1043
- this.$showMessage("未检测到用户!")
1044
- this.enable = true
1045
- return
1046
- }
1047
- try {
1048
-
1049
- this.devices_types = Vue.$appdata.getParam('设备类型')
1050
- console.log('this.devices_types=', JSON.stringify(this.devices_types))
1051
- for (const devices_type of this.devices_types) {
1052
- console.log('Vue.$appdata.getParam(`档案设备信息-${devices_type.label}品牌`)=', JSON.stringify(Vue.$appdata.getParam(`档案设备信息-${devices_type.label}品牌`)))
1053
- this.deviceBrandOption[devices_type.label] = Vue.$appdata.getParam(`档案设备信息-${devices_type.label}品牌`) || []
1054
- }
1055
- console.log('this.deviceBrandOption=', JSON.stringify(this.deviceBrandOption))
1056
- this.wz_types = Vue.$appdata.getParam('安装位置')
1057
- this.aroundmeters = Vue.$appdata.getParam('左右表')
1058
-
1059
- ////tag)
1060
- this.excessive = true
1061
- //Vue.user.orgid ${this.f_userinfo_id} 10101 ${Vue.user.orgid}
1062
-
1063
- let pcdlist = await new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
1064
- data: {
1065
- items: "*",
1066
- tablename: "t_pcd",
1067
- orderitem: "id",
1068
- condition: `f_orgid = '${Vue.user.orgid}'`
1069
- }
1070
- }, { resolveMsg: null, rejectMsg: null })
1071
- //tag)
1072
- pcdlist.data.forEach((result) => {
1073
- this.pcds.push({ label: result.f_pcd, value: result })
1074
- })
1075
- ////tag)
1076
- let res = await new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/rs/logic/filemanage_getFilesDetail`, {
1077
- //f_userinfo_code:'12381344',
1078
- f_userinfo_id: this.f_userinfo_id
1079
- }, { resolveMsg: null, rejectMsg: null })
1080
- //tag
1081
- //tag
1082
- this.userinfo = res.data
1083
- this.userinfo_old = JSON.parse(JSON.stringify(res.data))
1084
- this.model = this.userinfo.meterinfo[0].devicesinfo.concat(this.userinfo.meterinfo[0].devicesinfonew)
1085
- //已经超期
1086
- let now = Util.toStandardDateString()
1087
- let overdue = this.model.filter(item => item.f_expire_date <= now).map(item => item.f_devices_type).join(',')
1088
- //临近超期
1089
-
1090
- const advent_time = (this.$appdata.getSingleValue('设备超期提醒') || 7) * 1000 * 60 * 60 * 24
1091
- const nowTime = new Date().getTime()
1092
- const adventTimeLimit = nowTime + advent_time
1093
- const advent = this.model
1094
- .filter(item => {
1095
- const expireTime = new Date(item.f_expire_date).getTime()
1096
- return expireTime >= nowTime && expireTime <= adventTimeLimit
1097
- })
1098
- .map(item => {
1099
- const expireTime = new Date(item.f_expire_date).getTime()
1100
- const daysLeft = Math.round((expireTime - nowTime) / (1000 * 60 * 60 * 24))
1101
- return `${item.f_devices_type}设备还有${daysLeft >= 0 ? daysLeft : 0}天超期`
1102
- })
1103
- .join(',')
1104
- if (overdue && advent) {
1105
- this.$showMessage(`${overdue}设备已过期,${advent}`)
1106
- } else if (advent) {
1107
- this.$showMessage(`${advent}`)
1108
- } else if (overdue) {
1109
- this.$showMessage(`${overdue}设备已过期`)
1110
- }
1111
- this.selectArea.id = this.userinfo.addressinfo.f_residential_area_id
1112
- this.selectPcd.id = this.userinfo.addressinfo.f_pcd_id
1113
- this.selectPcd.f_pcd = this.userinfo.addressinfo.f_pcd
1114
- this.selectStreet.id = this.userinfo.addressinfo.f_street_id
1115
- this.selectStreet.f_street = this.userinfo.addressinfo.f_street
1116
- await this.getStreetList()
1117
- await this.getAreaList()
1118
- this.excessive = false
1119
- this.addressType = this.userinfo.addressinfo.f_special == 1 ? '特殊地址' : '普通地址'
1120
- //this.userinfo.addressinfo.f_special=1
1121
- //tag
1122
- } catch (e) {
1123
- this.excessive = false
1124
- this.enable = true
1125
- this.$showMessage('获取用户信息出错,请检查网络状况!')
1126
- }
1127
- new HttpResetClass().load('get', `${this.$androidUtil.getProxyUrl()}/rs/vue/UserAddress.json`, { data: {} }, {
1128
- resolveMsg: null,
1129
- rejectMsg: null
1130
- }).then((addressUnit) => {
1131
- //tag
1132
- //tag
1133
- //tag
1134
- //tag
1135
- this.userinfo.addressinfo.f_building_suffix = addressUnit.data.f_building_suffix
1136
- this.userinfo.addressinfo.f_unit_suffix = addressUnit.data.f_unit_suffix
1137
- this.userinfo.addressinfo.f_floor_suffix = addressUnit.data.f_floor_suffix
1138
- this.userinfo.addressinfo.f_room_suffix = addressUnit.data.f_room_suffix
1139
- }).catch((msg) => {
1140
- //tag)
1141
- })
1142
- this.showBox = this.$appdata.getSingleValue('档案审核是否显示调压箱') == '是' ? true : false
1143
- console.log(this.showBox)
1144
- if (this.showBox) {
1145
- // 获取调压箱
1146
- new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/rs/sql/adjustableboxQuery`, { data: { condition: '1 = 1' } }, {
1147
- resolveMsg: null,
1148
- rejectMsg: null
1149
- }).then((res) => {
1150
- const boxOptions = []
1151
- for (const data of res.data) {
1152
- const one = {
1153
- label: data.f_adjustable_id + data.f_adjustable_name,
1154
- value: Number(data.f_adjustable_id)
1155
- }
1156
- boxOptions.push(one)
1157
- }
1158
- this.boxOptions = JSON.parse(JSON.stringify(boxOptions))
1159
- console.log(this.boxOptions)
1160
- }).catch((msg) => {
1161
- //tag)
1162
- })
1163
- }
1164
- }
1165
- }
1166
- </script>
1167
- <style lang="less" scoped>
1168
- .butt3 {
1169
- float: right;
1170
- width: 12px;
1171
- margin: 1% 2% 0 0;
1172
- }
1173
-
1174
- .rightipt {
1175
- width: 60%;
1176
- float: left;
1177
- margin-left: 5%;
1178
- }
1179
-
1180
- .righttxt {
1181
- border: none;
1182
- margin-left: 5px;
1183
- /*border-left: 5px solid #A2C2EB;*/
1184
- float: left;
1185
- width: 25%;
1186
- margin-bottom: 3px;
1187
- text-align: left;
1188
- word-wrap: break-word;
1189
- white-space: normal;
1190
- }
1191
-
1192
- .tit1 {
1193
- background-image: url('../../assets/用户姓名.png');
1194
- background-repeat: no-repeat;
1195
- background-position: center;
1196
- }
1197
-
1198
- .spanboder {
1199
- border-bottom: 2px solid #499edf;
1200
- padding-bottom: 8px
1201
- }
1202
-
1203
- #upuserinfo_sel /deep/ ul {
1204
- width: 100% !important;
1205
- left: 0 !important;
1206
- }
1207
-
1208
- .btn-photo {
1209
- border: 0;
1210
- border-radius: 7px;
1211
- background-color: #7dc1f4;
1212
- font: 15px PingFang-SC-Bold;
1213
- height: 20%;
1214
- }
1215
-
1216
- .panel-self {
1217
- border-radius: 10px;
1218
- border: 1px solid #499EDF;
1219
- background-color: #F8F8F8;
1220
- }
1221
-
1222
- .div-photo {
1223
- width: auto;
1224
- height: auto;
1225
- /* margin-top: 10px; */
1226
- position: absolute;
1227
- bottom: 10px;
1228
- right: 10px;
1229
- }
1230
- </style>
1231
- <style lang="less">
1232
- #upuserinfo_sel ul {
1233
- width: 100% !important;
1234
- left: 0 !important;
1235
- }
1236
- </style>
1
+ <template>
2
+ <work-busy :is-busy="excessive"></work-busy>
3
+ <div style="height: 100%">
4
+ <div class="panel auto" v-if="false">
5
+ <div class="panel-heading" @click="selectVal('基本信息')" style="background-color: #ffffff">
6
+ <span class="spanboder">
7
+ <img src="../../assets/person.png" style="width: 22px;margin-right: 8px;">基本信息
8
+ <img class="butt3" :src="imgback('基本信息')">
9
+ </span>
10
+ </div>
11
+ <div class="panel-body " id="upuserinfo_sel" v-show="headername == '基本信息'">
12
+ <div class="row auto" style="margin: 5px 0">
13
+ <label class="righttxt">用户编号:</label>
14
+ <input type="text" class="form-control rightipt" v-model="userinfo.baseinfo.base.f_userinfo_code" readonly />
15
+ </div>
16
+ <div class="row auto" style="margin: 5px 0">
17
+ <label class="righttxt">用户名称:</label><input type="text" class="form-control rightipt"
18
+ v-model="userinfo.baseinfo.base.f_user_name" readonly />
19
+ </div>
20
+ <div class="row auto" style="margin: 5px 0">
21
+ <label class="righttxt">用户状态:</label><input type="text" class="form-control rightipt" readonly
22
+ v-model="userinfo.baseinfo.base.f_user_state" />
23
+ </div>
24
+ <div class="row auto" style="margin: 5px 0">
25
+ <label class="righttxt">用户电话:</label><input type="text" class="form-control rightipt"
26
+ v-model="userinfo.baseinfo.base.f_user_phone" />
27
+ </div>
28
+ <div class="row auto" style="margin: 5px 0">
29
+ <label class="righttxt">租户姓名:</label><input type="text" class="form-control rightipt"
30
+ v-model="userinfo.baseinfo.base.f_rent_name" />
31
+ </div>
32
+ <div class="row auto" style="margin: 5px 0">
33
+ <label class="righttxt">租户电话:</label><input type="text" class="form-control rightipt"
34
+ v-model="userinfo.baseinfo.base.f_zuhu_phone" />
35
+ </div>
36
+ <div class="row auto" style="margin: 5px 0">
37
+ <label class="righttxt">建档日期:</label><input type="text" class="form-control rightipt"
38
+ v-model="userinfo.baseinfo.base.f_createfile_date" readonly />
39
+ </div>
40
+ <!-- <div class="row auto" style="margin: 5px 0">
41
+ <label class="righttxt">开户日期:</label><input type="text" class="form-control rightipt" v-model="userinfo.baseinfo.base.f_open_date" readonly />
42
+ </div>-->
43
+ <div class="row auto" style="margin: 5px 0">
44
+ <label class="righttxt">地址类型:</label>
45
+ <div class="rightipt" style="display: flex;justify-content: space-around;margin-top: 5px">
46
+ <div><input type="radio" v-model="addressType" name="addressType" @change="changeAddressType"
47
+ id="phone_addressType1" value="普通地址" /><label style="font-weight: normal;padding-left: 2px"
48
+ for="phone_addressType1">普通地址</label></div>
49
+ <div><input type="radio" v-model="addressType" name="addressType" @change="changeAddressType"
50
+ id="phone_addressType2" value="特殊地址" /><label style="font-weight: normal;padding-left: 2px"
51
+ for="phone_addressType2">特殊地址</label></div>
52
+ </div>
53
+ <!--<input type="text" style="width: 75%;float:right" class="form-control" v-model="row.f_devices_type" />-->
54
+ <!--<input type="text" class="form-control rightipt" readonly v-model="userinfo.addressinfo.f_pcd" />-->
55
+ <!--<v-select :value.sync="userinfo.addressinfo.f_iscity" class="input-font" style="margin-left: 5%;"
56
+ :width="'60%'"
57
+ v-model="userinfo.addressinfo.f_iscity"
58
+ :options='cityTypes' placeholder='地区类型' close-on-select clear-button value-single @change="area_change()"></v-select>-->
59
+ </div>
60
+ <div class="row auto" style="margin: 5px 0">
61
+ <label class="righttxt">地区类型:</label>
62
+ <!--<input type="text" style="width: 75%;float:right" class="form-control" v-model="row.f_devices_type" />-->
63
+ <input type="text" class="form-control rightipt" readonly v-model="userinfo.addressinfo.f_iscity" />
64
+ <!--<v-select :value.sync="userinfo.addressinfo.f_iscity" class="input-font" style="margin-left: 5%;"
65
+ :width="'60%'"
66
+ :disabled="true"
67
+ v-model="userinfo.addressinfo.f_iscity"
68
+ :options='cityTypes' placeholder='地区类型' close-on-select clear-button value-single ></v-select>-->
69
+ </div>
70
+ <div class="row auto" style="margin: 5px 0">
71
+ <label class="righttxt">省&ensp;市&ensp;区:</label>
72
+ <!--<input type="text" style="width: 75%;float:right" class="form-control" v-model="row.f_devices_type" />-->
73
+ <!--<input type="text" class="form-control rightipt" readonly v-model="userinfo.addressinfo.f_pcd" />-->
74
+ <v-select :value.sync="selectPcd" class="input-font" style="margin-left: 5%;" :width="'60%'"
75
+ v-model="selectPcd" :options='pcds' placeholder='请选择省市区' close-on-select clear-button value-single
76
+ @change="pcd_change()"></v-select>
77
+ </div>
78
+ <div class="row auto" style="margin: 5px 0">
79
+ <label class="righttxt">街道名称:</label>
80
+ <!--<input type="text" readonly class="form-control rightipt" v-model="userinfo.addressinfo.f_street" />-->
81
+ <v-select :value.sync="selectStreet" class="input-font" style="margin-left: 5%;" :width="'60%'"
82
+ v-model="selectStreet" :options='streets' placeholder='请选择街道' close-on-select clear-button value-single
83
+ @change="street_change()"></v-select>
84
+ </div>
85
+ <div class="row auto" style="margin: 5px 0">
86
+ <label class="righttxt">集收单位:</label>
87
+ <!--<input type="text" readonly class="form-control rightipt" v-model="userinfo.addressinfo.f_residential_area" />-->
88
+ <v-select :value.sync="selectArea" class="input-font" style="margin-left: 5%;" :width="'60%'"
89
+ v-model="selectArea" :timeout="500" @select-search="select_search" :options='area' placeholder='请选择集收单位'
90
+ close-on-select clear-button value-single @change="area_change()"></v-select>
91
+ </div>
92
+ <!--<div class="row auto" style="margin: 5px 0" v-show="addressType=='特殊地址'">
93
+ <label class="righttxt">集收单位:</label>
94
+ &lt;!&ndash;<input type="text" readonly class="form-control rightipt" v-model="userinfo.addressinfo.f_residential_area" />&ndash;&gt;
95
+ <v-select :value.sync="selectArea" class="input-font" style="margin-left: 5%;"
96
+ :width="'60%'"
97
+ v-model="selectArea"
98
+ @select-search="select_search"
99
+ :options='area' placeholder='请选择集收单位' close-on-select clear-button value-single @change="area_changeTC()"></v-select>
100
+ </div>-->
101
+ <div class="row auto" style="margin: 5px 0" v-show="addressType == '普通地址'">
102
+ <label class="righttxt">楼&ensp;&ensp;&ensp;&ensp;号:</label><input type="text" @change="changeNewAddress"
103
+ class="form-control rightipt" v-model="userinfo.addressinfo.f_building" />
104
+ </div>
105
+ <div class="row auto" style="margin: 5px 0" v-show="addressType == '普通地址'">
106
+ <label class="righttxt">单&ensp;&ensp;&ensp;&ensp;元:</label><input type="text" @change="changeNewAddress"
107
+ class="form-control rightipt" v-model="userinfo.addressinfo.f_unit" />
108
+ </div>
109
+ <div class="row auto" style="margin: 5px 0" v-show="addressType == '普通地址'">
110
+ <label class="righttxt">楼&ensp;&ensp;&ensp;&ensp;层:</label><input type="text" @change="changeNewAddress"
111
+ class="form-control rightipt" v-model="userinfo.addressinfo.f_floor" />
112
+ </div>
113
+ <div class="row auto" style="margin: 5px 0" v-show="addressType == '普通地址'">
114
+ <label class="righttxt">门&ensp;牌&ensp;号:</label><input type="text" @change="changeNewAddress"
115
+ class="form-control rightipt" v-model="userinfo.addressinfo.f_room" />
116
+ </div>
117
+ <div class="row auto" style="margin: 5px 0">
118
+ <label class="righttxt">详细地址:</label><input type="text" class="form-control rightipt" readonly
119
+ v-model="userinfo_old.addressinfo.f_address" />
120
+ </div>
121
+ <div class="row auto" style="margin: 5px 0">
122
+ <label class="righttxt">新&ensp;地&ensp;址:</label>
123
+ <!--<input type="text" class="form-control rightipt" readonly v-model="getaddress()" />-->
124
+ <textarea :readonly="addressType == '普通地址'" class="form-control rightipt" : style="height: 80px"
125
+ v-model="userinfo.addressinfo.f_address"></textarea>
126
+ </div>
127
+
128
+ <!--<div class="row auto" style="margin: 5px 0" v-show="addressType=='特殊地址'">
129
+ <label class="righttxt">新&ensp;地&ensp;址:</label>&lt;!&ndash;<input type="text" class="form-control rightipt" v-model="userinfo.addressinfo.f_address" />&ndash;&gt;
130
+ <textarea class="form-control rightipt" style="height: 80px" v-model="getAddressTS"></textarea>
131
+ </div>-->
132
+
133
+ <div class="row auto" style="margin: 5px 0">
134
+ <label class="righttxt">备&ensp;&ensp;&ensp;&ensp;注:</label><textarea class="form-control rightipt"
135
+ style="height: 150px" v-model="userinfo.baseinfo.base.f_remark"></textarea>
136
+ <!--<input type="text" class="form-control rightipt" v-model="userinfo.baseinfo.base.f_remark" />-->
137
+ </div>
138
+ </div>
139
+ </div>
140
+ <div class="panel auto" v-if="false">
141
+ <div class="panel-heading" @click="selectVal('表具信息')" style="background-color: #ffffff">
142
+ <span class="spanboder">
143
+ <img src="../../assets/person.png" style="width: 22px;margin-right: 8px;">表具信息
144
+ <img class="butt3" :src="imgback('表具信息')">
145
+ </span>
146
+ </div>
147
+ <div class="panel-body " v-show="headername == '表具信息'">
148
+ <div class="row auto" style="margin: 5px 0">
149
+ <label class="righttxt">表&ensp;&ensp;&ensp;&ensp;号:</label>
150
+ <input type="text" :readonly="userinfo.meterinfo[0].f_meter_classify != '机表'" class="form-control rightipt"
151
+ style="width: 45%" v-model="userinfo.meterinfo[0].f_meternumber" />
152
+ <button type="button"
153
+ :disabled="!(userinfo.meterinfo[0].f_meter_classify == '机表' || userinfo.meterinfo[0].f_meter_classify == '金额卡表' || userinfo.meterinfo[0].f_meter_classify == '气量卡表')"
154
+ name="button" class="btn btn-primary" style="width: 15%" @click="scan">扫码
155
+ </button>
156
+ </div>
157
+
158
+ <div class="row auto" style="margin: 5px 0">
159
+ <label class="righttxt">通&ensp;气&ensp;人:</label>
160
+ <input type="text" class="form-control rightipt" v-model="userinfo.meterinfo[0].f_gas_person" />
161
+ </div>
162
+ <div class="row auto" style="margin: 5px 0">
163
+ <label class="righttxt">通气时间:</label>
164
+ <datepicker class="rightipt" :value.sync="userinfo.meterinfo[0].f_gas_date"
165
+ v-model="userinfo.meterinfo[0].f_gas_date" :disabled-days-of-Week="[]" :format="'yyyy-MM-dd'"
166
+ :show-reset-button="reset">
167
+ </datepicker>
168
+ </div>
169
+ <div class="row auto" style="margin: 5px 0" v-show="showBox">
170
+ <label class="righttxt">调&ensp;压&ensp;箱:</label>
171
+ <v-select class="rightipt" :value.sync="userinfo.meterinfo[0].f_adjustable_id"
172
+ v-model="userinfo.meterinfo[0].f_adjustable_id" placeholder='请选择' :width='wid' readonly
173
+ :options="boxOptions" close-on-select value-single></v-select>
174
+ </div>
175
+ <div class="row auto" style="margin: 5px 0">
176
+ <label class="righttxt">是否直通:</label>
177
+ <v-select :value.sync="userinfo.meterinfo[0].f_if_direct" class="input-font" style="margin-left: 5%;"
178
+ :width="'60%'" v-model="userinfo.meterinfo[0].f_if_direct" :options='directOptions' placeholder='是否直通'
179
+ close-on-select clear-button value-single>
180
+ </v-select>
181
+ </div>
182
+ <div class="row auto" style="margin: 5px 0">
183
+ <label class="righttxt">表&ensp;封&ensp;号:</label>
184
+ <input type="text" class="form-control rightipt" v-model="userinfo.meterinfo[0].f_metertitles" />
185
+ </div>
186
+ <div class="row auto" style="margin: 5px 0">
187
+ <label class="righttxt">表&ensp;位&ensp;置:</label>
188
+ <!--<input type="text" class="form-control rightipt" v-model="userinfo.meterinfo[0].f_position" readonly/>-->
189
+ <v-select class="rightipt" :value.sync="userinfo.meterinfo[0].f_position"
190
+ v-model="userinfo.meterinfo[0].f_position" placeholder='请选择' :width='wid' readonly :options="wz_types"
191
+ close-on-select value-single></v-select>
192
+ </div>
193
+ <div class="row auto" style="margin: 5px 0">
194
+ <label class="righttxt">表&ensp;&ensp;&ensp;&ensp;向:</label>
195
+ <!--<input type="text" class="form-control rightipt" v-model="userinfo.meterinfo[0].f_position" readonly/>-->
196
+ <v-select class="rightipt" :value.sync="userinfo.meterinfo[0].f_aroundmeter"
197
+ v-model="userinfo.meterinfo[0].f_aroundmeter" placeholder='请选择' :width='wid' readonly
198
+ :options="aroundmeters" close-on-select value-single></v-select>
199
+ </div>
200
+ <div class="row auto" style="margin: 5px 0">
201
+ <label class="righttxt">气表类型:</label>
202
+ <input type="text" class="form-control rightipt" v-model="userinfo.meterinfo[0].f_meter_classify" readonly />
203
+ </div>
204
+ <div class="row auto" style="margin: 5px 0">
205
+ <label class="righttxt">表前阀状态:</label>
206
+ <!--<input type="text" class="form-control rightipt" v-model="userinfo.meterinfo[0].f_position" readonly/>-->
207
+ <v-select class="rightipt" :value.sync="userinfo.meterinfo[0].f_bqf_state"
208
+ v-model="userinfo.meterinfo[0].f_bqf_state" placeholder='请选择' :width='wid' readonly :options="bqf_states"
209
+ close-on-select value-single></v-select>
210
+ </div>
211
+ <!-- <div class="row auto" style="margin: 5px 0">
212
+ <div style="display: flex;justify-content: center;">
213
+ <button v-if="userinfo.meterinfo[0].f_meter_classify=='机表'" class="col-sm-3 btn btn-primary" @click="upUserState()">机表关阀停用</button>
214
+ </div>
215
+ </div>-->
216
+ </div>
217
+ </div>
218
+ <div class="panel auto">
219
+ <div class="panel-heading" @click="selectVal('用气设备信息')" style="background-color: #ffffff">
220
+ <span class="spanboder"><img src="../../assets/list.png" style="width: 22px;margin-right: 8px;">用气设备信息<img
221
+ class="butt3" :src="imgback('用气设备信息')"></span>
222
+ </div>
223
+ <div class="panel-body" v-show="headername == '用气设备信息'">
224
+ <div class="row" v-for="(idx, row) in model"
225
+ style="border:2px solid #A2C2EB; border-top:10px solid #A2C2EB; box-shadow: #00b3ee;margin-bottom: 10px">
226
+ <div class="row auto" style="margin: 5px 0">
227
+ <label class="righttxt">设备类型:</label>
228
+ <!--<input type="text" class="form-control rightipt" readonly v-model="row.f_devices_type" />-->
229
+ <v-select class="rightipt" :value.sync="row.f_devices_type" v-model="row.f_devices_type" placeholder='请选择'
230
+ @change="getServiceLife(idx, row.f_devices_type)" :width='wid' readonly :options="devices_types"
231
+ close-on-select value-single></v-select>
232
+ </div>
233
+ <div class="row auto" style="margin: 5px 0">
234
+ <label class="righttxt">设备品牌:</label>
235
+ <input type="text" class="form-control rightipt" v-model="row.f_brand" />
236
+ </div>
237
+ <div class="row auto" style="margin: 5px 0">
238
+ <label class="righttxt">设备型号:</label><input type="text" class="form-control rightipt"
239
+ v-model="row.f_devices_model" />
240
+ </div>
241
+ <div class="row auto" style="margin: 5px 0" v-if="false">
242
+ <label class="righttxt">生产日期:</label>
243
+ <datepicker class="rightipt" :value.sync="row.f_make_date" v-model="row.f_make_date"
244
+ :disabled-days-of-Week="[]" :format="'yyyy-MM-dd'" :show-reset-button="reset" readonly="readonly">
245
+ </datepicker>
246
+ </div>
247
+ <div class="row auto" style="margin: 5px 0">
248
+ <label class="righttxt">安装日期:</label>
249
+ <datepicker class="rightipt" @change="countExpireFate(idx, row.f_input_date)" :value.sync="row.f_input_date"
250
+ v-model="row.f_input_date" :disabled-days-of-Week="[]" :format="'yyyy-MM-dd'" :show-reset-button="reset"
251
+ readonly="readonly">
252
+ </datepicker>
253
+ </div>
254
+ <div class="row auto" style="margin: 5px 0">
255
+ <label class="righttxt">使用年限:</label><input type="number" class="form-control rightipt"
256
+ v-model="row.f_service_life" readonly />
257
+ </div>
258
+ <div class="row auto" style="margin: 5px 0">
259
+ <label class="righttxt">到期日期:</label>
260
+ <input type="text" class="form-control rightipt" v-model="row.f_expire_date" readonly />
261
+ </div>
262
+ <div class="row auto" style="margin: 5px 0">
263
+ <label class="righttxt">安&ensp;装&ensp;人:</label><input type="text" class="form-control rightipt"
264
+ v-model="row.f_input_person" />
265
+ </div>
266
+ <div class="row auto" style="margin: 5px 0">
267
+ <label class="righttxt">设备数量:</label><input type="number" class="form-control rightipt"
268
+ v-model="row.f_devices_num" />
269
+ </div>
270
+ <div class="row auto" style="margin: 5px 0">
271
+ <label class="righttxt">管道类型:</label>
272
+ <!--<input type="text" class="form-control rightipt" readonly v-model="row.f_devices_type" />-->
273
+ <v-select class="rightipt" :value.sync="row.f_pipe_type" v-model="row.f_pipe_type" placeholder='请选择'
274
+ :width='wid' readonly :options="pipe_types" close-on-select value-single></v-select>
275
+ </div>
276
+ <div class="row auto" style="margin: 5px 0">
277
+ <label class="righttxt">安装日期:</label>
278
+ <datepicker class="rightipt" @change="countExpireFate_pipe(idx, row.f_pipeinstall_date, row.f_pipe_type)"
279
+ :value.sync="row.f_pipeinstall_date" v-model="row.f_pipeinstall_date" :disabled-days-of-Week="[]"
280
+ :format="'yyyy-MM-dd'" :show-reset-button="reset" readonly="readonly">
281
+ </datepicker>
282
+ </div>
283
+ <div class="row auto" style="margin: 5px 0">
284
+ <label class="righttxt">到期日期:</label>
285
+ <input type="text" class="form-control rightipt" v-model="row.f_pipeexpire_date" readonly />
286
+ </div>
287
+ <!--<div class="row auto" style="margin: 5px 0">
288
+ <label class="righttxt">设备状态:</label><input type="text" class="form-control rightipt" readonly v-model="row.f_userinfodevices_state" />
289
+ </div>-->
290
+ <!--<div class="row auto" style="margin: 5px 0">
291
+ <label class="righttxt">购买方式:</label><input type="text" class="form-control rightipt" readonly v-model="row.watchpurchase" />
292
+ </div>-->
293
+ <div style="display: flex;justify-content: center;margin-bottom: 3px"
294
+ v-if="$index > this.userinfo_old.devicesinfo.length - 1 || this.userinfo_old.devicesinfo.length == 0">
295
+ <button class="btn btn-warning" @click="delDevices($index)">删除设备</button>
296
+ </div>
297
+ </div>
298
+ <div style="display: flex;justify-content: space-around;">
299
+ <button class="col-sm-3 btn btn-primary" @click="addDevices($index)">新增设备</button>
300
+ </div>
301
+ </div>
302
+ </div>
303
+ <div class="panel auto">
304
+ <div class="panel-body">
305
+ <div style="display: flex;justify-content: center;">
306
+ <!-- <button class="col-sm-3 btn btn-primary" :disabled="enable" @click="isNeedAudit ? editUserInfo() : editUserInfoNoAudit()">{{isNeedAudit ? '上传审核' : '上传'}}</button>-->
307
+ <button class="col-sm-3 btn btn-primary" :disabled="enable" @click="editUserInfo()">上传</button>
308
+ </div>
309
+ </div>
310
+ </div>
311
+ </div>
312
+ </template>
313
+
314
+ <script>
315
+ import { HttpResetClass } from 'vue-client'
316
+ import * as Util from "../Util";
317
+ import Vue from 'vue'
318
+ import { toStandardDateString } from "../Util";
319
+
320
+ export default {
321
+ title: '设备查看',
322
+ data() {
323
+ return {
324
+ model: [],
325
+ devicemodel:[],
326
+ show: false,
327
+ row: Object,
328
+ userinfo: Object,
329
+ userinfo_old: Object,
330
+ wid: "60%",
331
+ aroundmeters: [],
332
+ devices_types: [],
333
+ device_type: [{label: '调压器', value: '调压器'}, {label: '报警器', value: '报警器'}, {label: '切断阀', value: '切断阀'}],
334
+ pipe_types: Vue.$appdata.getParam('管道类型')?Vue.$appdata.getParam('管道类型'):[{label: '包覆管', value: '包覆管'}, {label: '波纹管', value: '波纹管'}],
335
+ wz_types: [],
336
+ cityTypes: [{ label: '市区', value: '市区' }, { label: '城镇', value: '城镇' }],
337
+ bqf_states: [{ label: '开阀', value: '开阀' }, { label: '关阀', value: '关阀' }],
338
+ pcds: [],
339
+ streets: [],
340
+ update: false,
341
+ headername: '用气设备信息',
342
+ excessive: false,
343
+ area: [],
344
+ enable: false,
345
+ f_meterno_path: Vue.nopic,
346
+ selectArea: { id: '' },
347
+ selectPcd: { id: '' },
348
+ selectStreet: { id: '' },
349
+ changemeterno: false,//是否修改了机表表号
350
+ approveChange: false,//是否需要进行信息变更审核
351
+ newAddress: '',
352
+ addressType: '',
353
+ //需要审核的字段
354
+ checkField: {
355
+ checkUserinfoField: [
356
+ 'f_user_name'
357
+ ],
358
+ checkUserFilesField: [
359
+ 'f_meternumber'
360
+ ],
361
+ checkAddressField: [
362
+ 'f_pcd_id',
363
+ 'f_street_id',
364
+ 'f_residential_area_id',
365
+ 'f_building',
366
+ 'f_unit',
367
+ 'f_floor',
368
+ 'f_room',
369
+ 'f_slice_area',
370
+ 'f_special',
371
+ 'f_address'
372
+ ],
373
+ },
374
+ boxOptions: [],
375
+ showBox: false,
376
+ directOptions: [{ label: '是', value: '是' }, { label: '否', value: '否' }],
377
+ deviceBrandOption: {},
378
+ isNeedAudit: this.$appdata.getSingleValue('信息变更是否需要审核') == 'false' ? false : true
379
+ }
380
+ },
381
+ props: {
382
+ user: {
383
+ type: Object
384
+ },
385
+ f_userinfo_id: '',
386
+ f_source: ''
387
+ },
388
+ methods: {
389
+ deleteDevice(idx) {
390
+ this.$showMessage('删除后不可恢复,确认删除吗?', ['confirm', 'cancel']).then((res) => {
391
+ if (res === 'confirm') {
392
+ this.devicemodel.splice(idx, 1)
393
+ }
394
+ })
395
+ },
396
+ pushDevices() {
397
+ let obj = {
398
+ "f_operator": Vue.user.name,
399
+ "f_operate_date": Util.toStandardTimeString(),
400
+ "f_operatorid": Vue.user.id,
401
+ "f_devices_type":null,
402
+ "f_manufactor":null,
403
+ "f_devices_no":null,
404
+ "f_devices_model":null,
405
+ "f_instaler_person":null,
406
+ "f_make_date":null,
407
+ "f_input_date":null,
408
+ "f_devices_num":null,
409
+ "f_firstcheck_date":null,
410
+ "f_rate_flow":null,
411
+ "f_expire_date":null,
412
+ "f_nextcheck_date":null,
413
+ "f_pressure_range":null,
414
+ "f_import_pressure":null
415
+ }
416
+ this.devicemodel.push(obj)
417
+ },
418
+ countExpireFate_pipe(index, dateTime, type) {
419
+ let old = new Date(dateTime)
420
+ let newYear = old.getFullYear() + Number(this.$appdata.getSingleValue(type + '-年限') || 0)
421
+ let month = old.getMonth() + 1
422
+ let date = old.getDate()
423
+ this.model[index].f_pipeexpire_date = newYear + '-' + (month < 10 ? '0' + month : month) + '-' + (date < 10 ? '0' + date : date)
424
+ },
425
+ countExpireFate(index, dateTime) {
426
+ let old = new Date(dateTime)
427
+ let newYear = old.getFullYear() + Number(this.model[index].f_service_life)
428
+ let month = old.getMonth() + 1
429
+ let date = old.getDate()
430
+ this.model[index].f_expire_date = newYear + '-' + (month < 10 ? '0' + month : month) + '-' + (date < 10 ? '0' + date : date)
431
+ },
432
+ getServiceLife(index, type) {
433
+ const year = this.$appdata.getSingleValue(type + '-' + this.userinfo.meterinfo[0].f_user_type + '-年限') || 0
434
+ this.model[index].f_service_life = year
435
+ },
436
+ dateAddYear(dateTime, year) {
437
+ let old = new Date(dateTime)
438
+ let newYear = old.getFullYear() + Number(year)
439
+ let month = old.getMonth() + 1
440
+ let date = old.getDate()
441
+ return newYear + '-' + (month < 10 ? '0' + month : month) + '-' + (date < 10 ? '0' + date : date)
442
+ },
443
+ scan() {
444
+ HostApp.__this__ = this,
445
+ HostApp.scanCode({ callback: "javascript:HostApp.__this__.getCode();" })
446
+ },
447
+ getCode() {
448
+ var datapa = HostApp.getCode().data;
449
+ //tag
450
+ this.userinfo.meterinfo[0].f_meternumber = datapa
451
+ },
452
+ //数据检查
453
+ checkVal() {
454
+ //检查一些必要信息是否未填
455
+ this.approveChange = false
456
+ this.changemeterno = false
457
+ let checked = { ischeck: true, msg: '' }
458
+ //tag
459
+ //tag
460
+ //tag
461
+ if (!this.userinfo.baseinfo.base.f_user_name) {
462
+ checked = { ischeck: false, msg: '请输入用户名称!' }
463
+ }
464
+ if (!this.selectPcd.id) {
465
+ checked = { ischeck: false, msg: '请选择省市区!' }
466
+ }
467
+ if (!this.selectStreet.id) {
468
+ checked = { ischeck: false, msg: '请选择街道!' }
469
+ }
470
+ if (!this.userinfo.addressinfo.f_address) {
471
+ checked = { ischeck: false, msg: '新地址不能为空!' }
472
+ }
473
+ if (this.addressType == '普通地址') {
474
+ if (!this.selectArea.id) {
475
+ checked = { ischeck: false, msg: '请选择集收单位!' }
476
+ }
477
+ if (!this.userinfo.addressinfo.f_room) {
478
+ checked = { ischeck: false, msg: '新输入门牌号!' }
479
+ }
480
+ }
481
+ if (this.userinfo.meterinfo[0].f_meter_classify == '机表' && this.userinfo_old.meterinfo[0].f_meternumber) {
482
+
483
+ //tag
484
+ //tag
485
+ if (this.userinfo.meterinfo[0].f_meternumber) {
486
+ if (this.userinfo.meterinfo[0].f_meternumber != this.userinfo_old.meterinfo[0].f_meternumber) {
487
+ if (!this.f_meterno_path || this.f_meterno_path == Vue.nopic) {
488
+ checked = { ischeck: false, msg: '请拍摄表号照片!' }
489
+ } else {
490
+ //用来标识当前有修改机表表号,后台需要进行照片上传
491
+ this.changemeterno = true
492
+ }
493
+ }
494
+ } else {
495
+ checked = { ischeck: false, msg: '请输入表号!' }
496
+ }
497
+ }
498
+ //检查本次修改信息中是否包含需要审核的内容
499
+ for (let check in this.checkField) {
500
+ //tag
501
+ if (typeof check != 'function') {
502
+ for (let i = 0; i < this.checkField[check].length; i++) {
503
+ //tag
504
+ if (check == 'checkUserinfoField') {
505
+ //tag
506
+ //tag
507
+ if (this.userinfo.baseinfo.base[this.checkField[check][i]] != this.userinfo_old.baseinfo.base[this.checkField[check][i]]) {
508
+ //tag
509
+ this.approveChange = true
510
+ }
511
+ } else if (check == 'checkUserFilesField') {
512
+ //tag
513
+ //tag
514
+ if (this.userinfo.meterinfo[0][this.checkField[check][i]] != this.userinfo_old.meterinfo[0][this.checkField[check][i]]) {
515
+ //tag
516
+ this.approveChange = true
517
+ }
518
+ } else if (check == 'checkAddressField') {
519
+ //tag
520
+ //tag
521
+ if (this.userinfo.addressinfo[this.checkField[check][i]] != this.userinfo_old.addressinfo[this.checkField[check][i]]) {
522
+ //tag
523
+ this.approveChange = true
524
+ }
525
+ }
526
+ }
527
+ }
528
+ }
529
+ //tag
530
+ return checked
531
+ },
532
+ select_search(text) {
533
+ //tag
534
+ if (this.selectStreet.id) {
535
+ let pcdText = text ? `and f_street_id=${this.selectStreet.id} and f_residential_area like '%${text}%'` : `and f_street_id=${this.selectStreet.id}`
536
+ new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
537
+ data: {
538
+ items: "*",
539
+ tablename: "t_area",
540
+ orderitem: "id",
541
+ condition: `f_orgid = '${Vue.user.orgid}' ${pcdText} `
542
+ }
543
+ }, { resolveMsg: null, rejectMsg: null }).then((res) => {
544
+ //tag)
545
+ if (res.data.length > 0) {
546
+ this.area = []
547
+ res.data.forEach((result) => {
548
+ this.area.push({ label: result.f_residential_area, value: result })
549
+ })
550
+ }
551
+ })
552
+ } else {
553
+ this.area = []
554
+ }
555
+ },
556
+ cameraCallBack(prop, fileName) {
557
+ HostApp.__this__.$set(prop, fileName + '?' + Math.random())
558
+ //tag
559
+ HostApp.__callback__ = null
560
+ HostApp.__this__ = null
561
+ },
562
+ takePic(prop, title) {
563
+ HostApp.__callback__ = this.cameraCallBack
564
+ HostApp.__this__ = this
565
+ //tag
566
+ let fileName
567
+ if (!this[prop] || this[prop].includes("nopic.png")) {
568
+ fileName = Util.guid() + '-' + prop + '.jpg'
569
+ } else {
570
+ fileName = Util.getFileName(this[prop])
571
+ }
572
+ HostApp._open_a_page({
573
+ type: 'boomerang',
574
+ page: 'com.aofeng.hybrid.android.peripheral.CameraActivity',
575
+ param: {
576
+ file: fileName,
577
+ requestCode: 111,
578
+ callback: 'javascript:HostApp.__callback__("' + prop + '", "%s");',
579
+ watermark: title + '\t时间:' + Util.toStandardTimeString() + '\t' + Vue.user.name
580
+ }
581
+ })
582
+ },
583
+ delfile(prop, fileName) {
584
+ if (fileName == Vue.nopic)
585
+ return
586
+ else {
587
+ HostApp.delfile(fileName)
588
+ this[prop] = Vue.nopic
589
+ }
590
+ },
591
+ editUserInfoNoAudit() {
592
+ let checked = this.checkVal()
593
+ if (!checked.ischeck) {
594
+ this.$showMessage(checked.msg)
595
+ return
596
+ }
597
+ for (let i = 0; i < this.model.length; i++) {
598
+ this.model[i].f_user_id = this.userinfo.meterinfo[0].f_user_id
599
+ }
600
+ this.$showMessage('确定是否修改上传用户信息?', ['confirm', 'cancel']).then((res) => {
601
+ if (res === 'confirm') {
602
+ this.excessive = true
603
+ let userinfoms = Object.assign({}, this.userinfo_old.baseinfo.base)
604
+ // userinfoms.f_user_name=row.f_user_name
605
+ userinfoms.f_user_phone = this.userinfo.baseinfo.base.f_user_phone
606
+ userinfoms.f_rent_name = this.userinfo.baseinfo.base.f_rent_name
607
+ userinfoms.f_zuhu_phone = this.userinfo.baseinfo.base.f_zuhu_phone
608
+ userinfoms.f_operator_record = Vue.user.name
609
+ userinfoms.f_operatorid_record = Vue.user.id
610
+ userinfoms.f_remark = this.userinfo.baseinfo.base.f_remark
611
+ userinfoms.f_orgid_record = Vue.user.orgid
612
+ userinfoms.f_orgname_record = Vue.user.orgs
613
+ userinfoms.f_depid_record = Vue.user.depids
614
+ userinfoms.f_depname_record = Vue.user.deps
615
+ this.userinfo_old.meterinfo[0].f_gas_person = this.userinfo.meterinfo[0].f_gas_person
616
+ this.userinfo_old.meterinfo[0].f_gas_date = this.userinfo.meterinfo[0].f_gas_date
617
+ this.userinfo_old.meterinfo[0].f_adjustable_id = this.userinfo.meterinfo[0].f_adjustable_id
618
+ this.userinfo_old.meterinfo[0].f_metertitles = this.userinfo.meterinfo[0].f_metertitles
619
+ this.userinfo_old.meterinfo[0].f_position = this.userinfo.meterinfo[0].f_position
620
+ this.userinfo_old.meterinfo[0].f_aroundmeter = this.userinfo.meterinfo[0].f_aroundmeter
621
+ this.userinfo_old.meterinfo[0].f_bqf_state = this.userinfo.meterinfo[0].f_bqf_state
622
+ this.userinfo_old.meterinfo[0].f_if_direct = this.userinfo.meterinfo[0].f_if_direct
623
+ userinfoms.userfiles = []
624
+ this.userinfo_old.meterinfo[0].devicesinfo = this.model
625
+ userinfoms.userfiles.push(this.userinfo_old.meterinfo[0])
626
+ new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/filemanage_fileSave`, {
627
+ data: {
628
+ userinfo: userinfoms,
629
+ modifyReason: this.f_source ? `${this.f_source}维护档案信息` : '',
630
+ address: {
631
+ id: this.userinfo_old.addressinfo.id,
632
+ oldid: this.userinfo_old.addressinfo.id,
633
+ f_address: this.userinfo_old.addressinfo.f_address ? this.userinfo_old.addressinfo.f_address : this.userinfo.addressinfo.f_address
634
+ }
635
+ }
636
+ }, { resolveMsg: null, rejectMsg: null }).then((res1) => {
637
+ if (res1.data.status == 200) {
638
+ let data = this.userinfo.addressinfo
639
+ data.f_address = this.userinfo_old.addressinfo.f_address ? this.userinfo_old.addressinfo.f_address : this.userinfo.addressinfo.f_address
640
+ //
641
+ data.f_operator = Vue.user.name
642
+ new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/address_updateuseraddress`, { data: data }).then((res2) => {
643
+ this.$showMessage("修改用户地址信息成功!")
644
+ }).catch(error => {
645
+ this.$showMessage("修改用户地址信息!")
646
+ })
647
+ this.$showMessage("修改用户信息成功!")
648
+ this.enable = true
649
+ this.excessive = false
650
+ }
651
+ }).catch((msg) => {
652
+ this.$showMessage("修改用户信息失败,请检查手机网络状况!")
653
+ this.excessive = false
654
+ })
655
+ }
656
+ })
657
+ },
658
+ editUserInfo() {
659
+ this.$showMessage('确定是否修改上传审核用户信息?', ['confirm', 'cancel']).then((res) => {
660
+ if (res === 'confirm') {
661
+ for (let i = 0; i < this.model.length; i++) {
662
+ this.model[i].f_user_id = this.userinfo.meterinfo[0].f_user_id
663
+ }
664
+ this.excessive = true
665
+ let userinfoms = Object.assign({}, this.userinfo_old.baseinfo.base)
666
+ //userinfoms.f_user_name=row.f_user_name
667
+ userinfoms.f_user_phone = this.userinfo.baseinfo.base.f_user_phone
668
+ userinfoms.f_rent_name = this.userinfo.baseinfo.base.f_rent_name
669
+ userinfoms.f_zuhu_phone = this.userinfo.baseinfo.base.f_zuhu_phone
670
+ userinfoms.f_operator_record = Vue.user.name
671
+ userinfoms.f_operatorid_record = Vue.user.id
672
+ userinfoms.f_remark = this.userinfo.baseinfo.base.f_remark
673
+ userinfoms.f_orgid_record = Vue.user.orgid
674
+ userinfoms.f_orgname_record = Vue.user.orgs
675
+ userinfoms.f_depid_record = Vue.user.depids
676
+ userinfoms.f_depname_record = Vue.user.deps
677
+ this.userinfo_old.meterinfo[0].f_gas_person = this.userinfo.meterinfo[0].f_gas_person
678
+ this.userinfo_old.meterinfo[0].f_gas_date = this.userinfo.meterinfo[0].f_gas_date
679
+ this.userinfo_old.meterinfo[0].f_adjustable_id = this.userinfo.meterinfo[0].f_adjustable_id
680
+ this.userinfo_old.meterinfo[0].f_metertitles = this.userinfo.meterinfo[0].f_metertitles
681
+ this.userinfo_old.meterinfo[0].f_position = this.userinfo.meterinfo[0].f_position
682
+ this.userinfo_old.meterinfo[0].f_aroundmeter = this.userinfo.meterinfo[0].f_aroundmeter
683
+ this.userinfo_old.meterinfo[0].f_bqf_state = this.userinfo.meterinfo[0].f_bqf_state
684
+ this.userinfo_old.meterinfo[0].f_if_direct = this.userinfo.meterinfo[0].f_if_direct
685
+ userinfoms.userfiles = []
686
+ this.userinfo_old.meterinfo[0].devicesinfo = this.model
687
+ for (let i = 0; i < this.devicemodel.length; i++){
688
+ this.userinfo_old.meterinfo[0].devicesinfo.push(this.devicemodel[i])
689
+ }
690
+ userinfoms.userfiles.push(this.userinfo_old.meterinfo[0])
691
+ //tag)
692
+ new HttpResetClass().load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/filemanage_fileSave`, {
693
+ data: {
694
+ userinfo: userinfoms,
695
+ modifyReason: this.f_source ? `${this.f_source}维护档案信息` : '',
696
+ address: { id: this.userinfo_old.addressinfo.id, oldid: this.userinfo_old.addressinfo.id }
697
+ }
698
+ }, { resolveMsg: null, rejectMsg: null }).then((res1) => {
699
+ if (res1.data.status == 200) {
700
+ //本次修改信息包含需要审核信息
701
+ // if (this.approveChange) {
702
+ // //tag
703
+ // let res2 = this.$androidUtil.bzLogic('safe_upUserinfoApprove', {
704
+ // row: {
705
+ // f_time: Util.toStandardTimeString(),
706
+ // f_modifier: Vue.user.name,//Vue.user.name
707
+ // f_modifier_id: Vue.user.id,//Vue.user.id
708
+ // f_modify_type: '用户档案',
709
+ // f_userinfoid: this.userinfo.baseinfo.base.f_userinfo_id,
710
+ // f_userinfo_code: this.userinfo.baseinfo.base.f_userinfo_code,
711
+ // f_approved: '未审核',
712
+ // filialestr: Vue.user.orgid,//Vue.user.orgid
713
+ // version: 1,
714
+ // f_user_name: this.userinfo.baseinfo.base.f_user_name,
715
+ // f_user_phone: this.userinfo.baseinfo.base.f_user_phone,
716
+ // f_street: this.userinfo.addressinfo.f_street,
717
+ // f_building: this.userinfo.addressinfo.f_building,
718
+ // f_unit: this.userinfo.addressinfo.f_unit,
719
+ // f_floor: this.userinfo.addressinfo.f_floor,
720
+ // f_room: this.userinfo.addressinfo.f_room,
721
+ // f_building_suffix: this.userinfo.addressinfo.f_special == 1 ? null : this.userinfo.addressinfo.f_building_suffix,
722
+ // f_unit_suffix: this.userinfo.addressinfo.f_special == 1 ? null : this.userinfo.addressinfo.f_unit_suffix,
723
+ // f_floor_suffix: this.userinfo.addressinfo.f_special == 1 ? null : this.userinfo.addressinfo.f_floor_suffix,
724
+ // f_room_suffix: this.userinfo.addressinfo.f_special == 1 ? null : this.userinfo.addressinfo.f_room_suffix,
725
+ // f_residential_area: this.userinfo.addressinfo.f_residential_area,
726
+ // f_address: this.userinfo.addressinfo.f_address,
727
+ // f_pcd: this.userinfo.addressinfo.f_pcd,
728
+ // f_pcd_id: this.userinfo.addressinfo.f_pcd_id,
729
+ // f_street_id: this.userinfo.addressinfo.f_street_id,
730
+ // f_residential_area_id: this.userinfo.addressinfo.f_residential_area_id,
731
+ // f_used_name: this.userinfo.baseinfo.base.f_used_name,
732
+ // f_rent_phone: this.userinfo.baseinfo.base.f_rent_phone,
733
+ // f_slice_area: this.userinfo.addressinfo.f_slice_area,
734
+ // f_remark: this.userinfo.baseinfo.base.f_remark,
735
+ // f_source: this.f_source,
736
+ // f_meterno_path: this.f_meterno_path,
737
+ // f_iscity: this.userinfo.addressinfo.f_iscity,
738
+ // f_special: this.userinfo.addressinfo.f_special,
739
+ // f_meternumber: this.userinfo.meterinfo[0].f_meternumber,
740
+ // changemeterno: this.changemeterno
741
+ // },
742
+ // tablename: 't_modify_userinfo'
743
+ // })
744
+ // //tag)
745
+ // if (res2.code == 200) {
746
+ // this.$showMessage("变更用户信息成功,需要审核的信息已提交审核,等待管理员处理!")
747
+ // this.enable = true
748
+ // this.excessive = false
749
+ // } else {
750
+ // this.$showMessage("上传审核信息失败,请检查图片和网络状况是否正常!")
751
+ // this.excessive = false
752
+ // }
753
+ // } else {
754
+ // this.$showMessage("修改用户信息成功!")
755
+ // this.enable = true
756
+ // this.excessive = false
757
+ // }
758
+ this.$showMessage("修改用户信息成功!")
759
+ this.enable = true
760
+ this.excessive = false
761
+ }
762
+ }).catch((msg) => {
763
+ this.$showMessage("修改用户信息失败,请检查手机网络状况!")
764
+ this.excessive = false
765
+ })
766
+
767
+ }
768
+ })
769
+ },
770
+ imgback(header) {
771
+ if (this.headername == header) {
772
+ return require('../../assets/xiangxia1.png')
773
+ } else {
774
+ return require('../../assets/xiangyou1.png')
775
+ }
776
+ this.headername = header
777
+ },
778
+ selectVal(header) {
779
+ if (this.headername == header) {
780
+ this.headername = ''
781
+ } else {
782
+ this.headername = header
783
+ }
784
+
785
+ },
786
+ changeNewAddress() {
787
+ this.userinfo.addressinfo.f_address = this.addressType == '普通地址' ? this.getAddress : this.getAddressTS
788
+ },
789
+ area_change() {
790
+ //tag
791
+ this.userinfo.addressinfo.f_residential_area = this.selectArea.f_residential_area
792
+ this.userinfo.addressinfo.f_residential_area_id = this.selectArea.id
793
+ this.userinfo.addressinfo.f_slice_area = this.selectArea.f_slice_area
794
+ this.changeNewAddress()
795
+ //this.userinfo.addressinfo.f_residential_area=this.f_residential_area.f_residential_area
796
+ },
797
+ async street_change() {
798
+ //tag
799
+ if (this.selectStreet.id) {
800
+ //如果街道改变--给街道赋值!
801
+ this.userinfo.addressinfo.f_street = this.selectStreet.f_street
802
+ this.userinfo.addressinfo.f_street_id = this.selectStreet.id
803
+ this.userinfo.addressinfo.f_iscity = this.selectStreet.f_iscity
804
+ //清空当前选中小区的值
805
+ this.userinfo.addressinfo.f_residential_area = ''
806
+ this.userinfo.addressinfo.f_residential_area_id = ''
807
+ this.userinfo.addressinfo.f_slice_area = ''
808
+ this.selectArea = { id: '' }
809
+ this.area = []
810
+ let pcdText = ` and f_street_id=${this.selectStreet.id}`
811
+ let res = await new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
812
+ data: {
813
+ items: "*",
814
+ tablename: "t_area",
815
+ orderitem: "id",
816
+ condition: `f_orgid = '${Vue.user.orgid}' ${pcdText} `
817
+ }
818
+ }, { resolveMsg: null, rejectMsg: null })
819
+ ////tag)
820
+ res.data.forEach((result) => {
821
+ this.area.push({ label: result.f_residential_area, value: result })
822
+ })
823
+ } else {
824
+ this.area = []
825
+ }
826
+
827
+ this.changeNewAddress()
828
+ },
829
+ async pcd_change() {
830
+ //tag
831
+ if (this.selectPcd.id) {
832
+ //tag
833
+ //如果省市区改变-重新赋值
834
+ this.userinfo.addressinfo.f_pcd = this.selectPcd.f_pcd
835
+ this.userinfo.addressinfo.f_pcd_id = this.selectPcd.id
836
+ //清空 选中的街道和集收单位
837
+ this.selectStreet = { id: '' }
838
+ this.userinfo.addressinfo.f_street = ''
839
+ this.userinfo.addressinfo.f_street_id = ''
840
+ this.userinfo.addressinfo.f_iscity = ''
841
+ this.selectArea = { id: '' }
842
+ this.userinfo.addressinfo.f_residential_area = ''
843
+ this.userinfo.addressinfo.f_residential_area_id = ''
844
+ this.userinfo.addressinfo.f_slice_area = ''
845
+ this.streets = []
846
+ let pcdText = `and f_pcd_id=${this.selectPcd.id}`
847
+ let streetlist = await new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
848
+ data: {
849
+ items: "*",
850
+ tablename: "t_street",
851
+ orderitem: "id",
852
+ condition: `f_orgid = '${Vue.user.orgid}' ${pcdText}`
853
+ }
854
+ }, { resolveMsg: null, rejectMsg: null })
855
+ streetlist.data.forEach((result) => {
856
+ this.streets.push({ label: result.f_street, value: result })
857
+ })
858
+ } else {
859
+ this.streets = []
860
+ }
861
+ this.changeNewAddress()
862
+ },
863
+ upUserState() {
864
+ //tag)
865
+ if (this.userinfo.meterinfo[0].f_table_state == '正常') {
866
+ let data = {
867
+ f_userfiles_id: {
868
+ f_userfiles_id: this.userinfo.meterinfo[0].f_userfiles_id,
869
+ f_table_state: '停用',
870
+ version: this.userinfo.meterinfo[0].version
871
+ },
872
+ f_userfile_id: this.userinfo.meterinfo[0].f_userfiles_id,
873
+ f_user_id: this.userinfo.meterinfo[0].f_user_id,
874
+ f_userinfo_id: this.userinfo.meterinfo[0].f_userinfo_id,
875
+ f_user_name: this.userinfo.baseinfo.base.f_user_name,
876
+ f_comments: '安检时发现问题关闭阀门',
877
+ f_othereason: '',
878
+ f_operat_type: '停用',
879
+ f_describe: `${Vue.user.name}对客户${this.userinfo.baseinfo.base.f_user_name}进行表具停用操作`,
880
+ f_state: '有效',
881
+ f_operator: Vue.user.name,//${Vue.$login.f.name}
882
+ f_operatorid: Vue.user.id,
883
+ f_orgid: Vue.user.orgid,
884
+ f_orgname: Vue.user.orgs,
885
+ f_depid: Vue.user.depids,
886
+ f_depname: Vue.user.deps,
887
+ f_zoneid: Vue.user.zoneid,
888
+ f_zones: Vue.user.zones
889
+ }
890
+ new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/rs/entity/t_disable`,
891
+ data, { resolveMsg: null, rejectMsg: null }).then((row) => {
892
+ this.$showMessage('已成功关阀停气!')
893
+ this.userinfo.meterinfo[0].f_table_state = '停用'
894
+ })
895
+ } else {
896
+ this.$showMessage('该用户已被关阀停用,请勿重复操作!')
897
+ }
898
+
899
+ },
900
+ addDevices() {
901
+ //Vue.user.name
902
+ let obj = {
903
+ "f_operator": Vue.user.name,
904
+ "f_picture": null,
905
+ "f_pipe_type": null,
906
+ "f_pipeinstall_date": null,
907
+ "f_pipe_connection": null,
908
+ "f_expire_date": null,
909
+ "f_pipeexpire_date": null,
910
+ "f_comments": null,
911
+ "f_operate_date": Util.toStandardTimeString(),
912
+ "f_operatorid": Vue.user.id,
913
+ "f_service_life": '',
914
+ "f_devices_num": null,
915
+ "f_process_id": null,
916
+ "f_devices_type": null,
917
+ "f_make_date": null,
918
+ "f_input_date": null,
919
+ "f_state": "有效",
920
+ "f_brand": null,
921
+ "f_devices_model": null,
922
+ "f_devices_no": null,
923
+ "img": { "content": null, "filename": null }
924
+ }
925
+ this.model.push(obj)
926
+ },
927
+ delDevices(idx) {
928
+ //tag
929
+ this.$showMessage('删除后不可恢复,确认删除吗?', ['confirm', 'cancel']).then((res) => {
930
+ if (res === 'confirm') {
931
+ this.model.splice(idx, 1)
932
+ }
933
+ })
934
+ },
935
+ async getAreaList(text) {
936
+ if (this.selectStreet.id) {
937
+ this.area = []
938
+ let pcdText = text ? `and f_street_id=${this.selectStreet.id} and f_residential_area like '%${text}%'` : `and f_street_id=${this.selectStreet.id}`
939
+ let res = await new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
940
+ data: {
941
+ items: "*",
942
+ tablename: "t_area",
943
+ orderitem: "id",
944
+ condition: `f_orgid = '${Vue.user.orgid}' ${pcdText}`
945
+ }
946
+ }, { resolveMsg: null, rejectMsg: null })
947
+ ////tag)
948
+ res.data.forEach((result) => {
949
+ this.area.push({ label: result.f_residential_area, value: result })
950
+ })
951
+ //tag
952
+ this.area.push({
953
+ label: this.userinfo.addressinfo.f_residential_area,
954
+ value: {
955
+ id: this.userinfo.addressinfo.f_residential_area_id,
956
+ f_residential_area: this.userinfo.addressinfo.f_residential_area
957
+ }
958
+ })
959
+ } else {
960
+ this.area = []
961
+ }
962
+
963
+ },
964
+ async getStreetList() {
965
+ if (this.selectPcd.id) {
966
+ //tag
967
+ this.streets = []
968
+ let pcdText = `and f_pcd_id=${this.selectPcd.id}`
969
+ let streetlist = await new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
970
+ data: {
971
+ items: "*",
972
+ tablename: "t_street",
973
+ orderitem: "id",
974
+ condition: `f_orgid = '${Vue.user.orgid}' ${pcdText}`
975
+ }
976
+ }, { resolveMsg: null, rejectMsg: null })
977
+ streetlist.data.forEach((result) => {
978
+ //如果第一次进来有地址id 就拿下地址区域
979
+ if (this.selectStreet.id && this.selectStreet.id == result.id) {
980
+ //tag)
981
+ this.userinfo.addressinfo.f_iscity = result.f_iscity
982
+ }
983
+ this.streets.push({ label: result.f_street, value: result })
984
+ })
985
+ } else {
986
+ this.streets = []
987
+ }
988
+ },
989
+ changeAddressType(val) {
990
+ //tag
991
+ if (this.addressType == '普通地址') {
992
+ this.userinfo.addressinfo.f_special = null
993
+ } else if (this.addressType == '特殊地址') {
994
+ this.userinfo.addressinfo.f_special = 1
995
+ this.userinfo.addressinfo.f_building = null
996
+ this.userinfo.addressinfo.f_unit = null
997
+ this.userinfo.addressinfo.f_floor = null
998
+ this.userinfo.addressinfo.f_room = null
999
+ }
1000
+ this.changeNewAddress()
1001
+ }
1002
+
1003
+ },
1004
+ computed: {
1005
+ getAddress() {
1006
+ return (this.userinfo.addressinfo.f_pcd ? this.userinfo.addressinfo.f_pcd : '') +
1007
+ (this.userinfo.addressinfo.f_street ? this.userinfo.addressinfo.f_street : '') +
1008
+ (this.userinfo.addressinfo.f_residential_area ? this.userinfo.addressinfo.f_residential_area : '') +
1009
+ (this.userinfo.addressinfo.f_building ? this.userinfo.addressinfo.f_building + (this.userinfo.addressinfo.f_building_suffix ? this.userinfo.addressinfo.f_building_suffix : '') : '') +
1010
+ (this.userinfo.addressinfo.f_unit ? this.userinfo.addressinfo.f_unit + (this.userinfo.addressinfo.f_unit_suffix ? this.userinfo.addressinfo.f_unit_suffix : '') : '') +
1011
+ (this.userinfo.addressinfo.f_floor ? this.userinfo.addressinfo.f_floor + (this.userinfo.addressinfo.f_floor_suffix ? this.userinfo.addressinfo.f_floor_suffix : '') : '') +
1012
+ (this.userinfo.addressinfo.f_room ? this.userinfo.addressinfo.f_room + (this.userinfo.addressinfo.f_room_suffix ? this.userinfo.addressinfo.f_room_suffix : '') : '')
1013
+ },
1014
+ getAddressTS() {
1015
+ return (this.userinfo.addressinfo.f_pcd ? this.userinfo.addressinfo.f_pcd : '') +
1016
+ (this.userinfo.addressinfo.f_street ? this.userinfo.addressinfo.f_street : '') +
1017
+ (this.userinfo.addressinfo.f_residential_area ? this.userinfo.addressinfo.f_residential_area : '')
1018
+ }
1019
+ },
1020
+ watch: {
1021
+
1022
+ /*'selectPcd.id' (val) {
1023
+ //tag
1024
+ if(this.selectPcd.id){
1025
+ this.getStreetList()
1026
+ }
1027
+ },
1028
+ 'selectStreet.id' (val) {
1029
+ //tag
1030
+ if(this.selectStreet.id){
1031
+ this.getAreaList()
1032
+ }
1033
+ }*/
1034
+ },
1035
+ async ready() {
1036
+ /*//tag)
1037
+
1038
+ //tag)
1039
+ //tag)*/
1040
+ //this.f_userinfo_id=1102260
1041
+ //this.f_userinfo_id=1997541
1042
+ if (!this.f_userinfo_id) {
1043
+ this.$showMessage("未检测到用户!")
1044
+ this.enable = true
1045
+ return
1046
+ }
1047
+ try {
1048
+
1049
+ this.devices_types = Vue.$appdata.getParam('设备类型')
1050
+ console.log('this.devices_types=', JSON.stringify(this.devices_types))
1051
+ for (const devices_type of this.devices_types) {
1052
+ console.log('Vue.$appdata.getParam(`档案设备信息-${devices_type.label}品牌`)=', JSON.stringify(Vue.$appdata.getParam(`档案设备信息-${devices_type.label}品牌`)))
1053
+ this.deviceBrandOption[devices_type.label] = Vue.$appdata.getParam(`档案设备信息-${devices_type.label}品牌`) || []
1054
+ }
1055
+ console.log('this.deviceBrandOption=', JSON.stringify(this.deviceBrandOption))
1056
+ this.wz_types = Vue.$appdata.getParam('安装位置')
1057
+ this.aroundmeters = Vue.$appdata.getParam('左右表')
1058
+
1059
+ ////tag)
1060
+ this.excessive = true
1061
+ //Vue.user.orgid ${this.f_userinfo_id} 10101 ${Vue.user.orgid}
1062
+
1063
+ let pcdlist = await new HttpResetClass().load("POST", `${this.$androidUtil.getProxyUrl()}/rs/sql/safe_singleTable_OrderBy`, {
1064
+ data: {
1065
+ items: "*",
1066
+ tablename: "t_pcd",
1067
+ orderitem: "id",
1068
+ condition: `f_orgid = '${Vue.user.orgid}'`
1069
+ }
1070
+ }, { resolveMsg: null, rejectMsg: null })
1071
+ //tag)
1072
+ pcdlist.data.forEach((result) => {
1073
+ this.pcds.push({ label: result.f_pcd, value: result })
1074
+ })
1075
+ ////tag)
1076
+ let res = await new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/rs/logic/filemanage_getFilesDetail`, {
1077
+ //f_userinfo_code:'12381344',
1078
+ f_userinfo_id: this.f_userinfo_id
1079
+ }, { resolveMsg: null, rejectMsg: null })
1080
+ //tag
1081
+ //tag
1082
+ this.userinfo = res.data
1083
+ this.userinfo_old = JSON.parse(JSON.stringify(res.data))
1084
+ this.model = this.userinfo.meterinfo[0].devicesinfo.concat(this.userinfo.meterinfo[0].devicesinfonew)
1085
+ //已经超期
1086
+ let now = Util.toStandardDateString()
1087
+ let overdue = this.model.filter(item => item.f_expire_date <= now).map(item => item.f_devices_type).join(',')
1088
+ //临近超期
1089
+
1090
+ const advent_time = (this.$appdata.getSingleValue('设备超期提醒') || 7) * 1000 * 60 * 60 * 24
1091
+ const nowTime = new Date().getTime()
1092
+ const adventTimeLimit = nowTime + advent_time
1093
+ const advent = this.model
1094
+ .filter(item => {
1095
+ const expireTime = new Date(item.f_expire_date).getTime()
1096
+ return expireTime >= nowTime && expireTime <= adventTimeLimit
1097
+ })
1098
+ .map(item => {
1099
+ const expireTime = new Date(item.f_expire_date).getTime()
1100
+ const daysLeft = Math.round((expireTime - nowTime) / (1000 * 60 * 60 * 24))
1101
+ return `${item.f_devices_type}设备还有${daysLeft >= 0 ? daysLeft : 0}天超期`
1102
+ })
1103
+ .join(',')
1104
+ if (overdue && advent) {
1105
+ this.$showMessage(`${overdue}设备已过期,${advent}`)
1106
+ } else if (advent) {
1107
+ this.$showMessage(`${advent}`)
1108
+ } else if (overdue) {
1109
+ this.$showMessage(`${overdue}设备已过期`)
1110
+ }
1111
+ this.selectArea.id = this.userinfo.addressinfo.f_residential_area_id
1112
+ this.selectPcd.id = this.userinfo.addressinfo.f_pcd_id
1113
+ this.selectPcd.f_pcd = this.userinfo.addressinfo.f_pcd
1114
+ this.selectStreet.id = this.userinfo.addressinfo.f_street_id
1115
+ this.selectStreet.f_street = this.userinfo.addressinfo.f_street
1116
+ await this.getStreetList()
1117
+ await this.getAreaList()
1118
+ this.excessive = false
1119
+ this.addressType = this.userinfo.addressinfo.f_special == 1 ? '特殊地址' : '普通地址'
1120
+ //this.userinfo.addressinfo.f_special=1
1121
+ //tag
1122
+ } catch (e) {
1123
+ this.excessive = false
1124
+ this.enable = true
1125
+ this.$showMessage('获取用户信息出错,请检查网络状况!')
1126
+ }
1127
+ new HttpResetClass().load('get', `${this.$androidUtil.getProxyUrl()}/rs/vue/UserAddress.json`, { data: {} }, {
1128
+ resolveMsg: null,
1129
+ rejectMsg: null
1130
+ }).then((addressUnit) => {
1131
+ //tag
1132
+ //tag
1133
+ //tag
1134
+ //tag
1135
+ this.userinfo.addressinfo.f_building_suffix = addressUnit.data.f_building_suffix
1136
+ this.userinfo.addressinfo.f_unit_suffix = addressUnit.data.f_unit_suffix
1137
+ this.userinfo.addressinfo.f_floor_suffix = addressUnit.data.f_floor_suffix
1138
+ this.userinfo.addressinfo.f_room_suffix = addressUnit.data.f_room_suffix
1139
+ }).catch((msg) => {
1140
+ //tag)
1141
+ })
1142
+ this.showBox = this.$appdata.getSingleValue('档案审核是否显示调压箱') == '是' ? true : false
1143
+ console.log(this.showBox)
1144
+ if (this.showBox) {
1145
+ // 获取调压箱
1146
+ new HttpResetClass().load('post', `${this.$androidUtil.getProxyUrl()}/rs/sql/adjustableboxQuery`, { data: { condition: '1 = 1' } }, {
1147
+ resolveMsg: null,
1148
+ rejectMsg: null
1149
+ }).then((res) => {
1150
+ const boxOptions = []
1151
+ for (const data of res.data) {
1152
+ const one = {
1153
+ label: data.f_adjustable_id + data.f_adjustable_name,
1154
+ value: Number(data.f_adjustable_id)
1155
+ }
1156
+ boxOptions.push(one)
1157
+ }
1158
+ this.boxOptions = JSON.parse(JSON.stringify(boxOptions))
1159
+ console.log(this.boxOptions)
1160
+ }).catch((msg) => {
1161
+ //tag)
1162
+ })
1163
+ }
1164
+ }
1165
+ }
1166
+ </script>
1167
+ <style lang="less" scoped>
1168
+ .butt3 {
1169
+ float: right;
1170
+ width: 12px;
1171
+ margin: 1% 2% 0 0;
1172
+ }
1173
+
1174
+ .rightipt {
1175
+ width: 60%;
1176
+ float: left;
1177
+ margin-left: 5%;
1178
+ }
1179
+
1180
+ .righttxt {
1181
+ border: none;
1182
+ margin-left: 5px;
1183
+ /*border-left: 5px solid #A2C2EB;*/
1184
+ float: left;
1185
+ width: 25%;
1186
+ margin-bottom: 3px;
1187
+ text-align: left;
1188
+ word-wrap: break-word;
1189
+ white-space: normal;
1190
+ }
1191
+
1192
+ .tit1 {
1193
+ background-image: url('../../assets/用户姓名.png');
1194
+ background-repeat: no-repeat;
1195
+ background-position: center;
1196
+ }
1197
+
1198
+ .spanboder {
1199
+ border-bottom: 2px solid #499edf;
1200
+ padding-bottom: 8px
1201
+ }
1202
+
1203
+ #upuserinfo_sel /deep/ ul {
1204
+ width: 100% !important;
1205
+ left: 0 !important;
1206
+ }
1207
+
1208
+ .btn-photo {
1209
+ border: 0;
1210
+ border-radius: 7px;
1211
+ background-color: #7dc1f4;
1212
+ font: 15px PingFang-SC-Bold;
1213
+ height: 20%;
1214
+ }
1215
+
1216
+ .panel-self {
1217
+ border-radius: 10px;
1218
+ border: 1px solid #499EDF;
1219
+ background-color: #F8F8F8;
1220
+ }
1221
+
1222
+ .div-photo {
1223
+ width: auto;
1224
+ height: auto;
1225
+ /* margin-top: 10px; */
1226
+ position: absolute;
1227
+ bottom: 10px;
1228
+ right: 10px;
1229
+ }
1230
+ </style>
1231
+ <style lang="less">
1232
+ #upuserinfo_sel ul {
1233
+ width: 100% !important;
1234
+ left: 0 !important;
1235
+ }
1236
+ </style>