telephone-clients 3.0.104-10 → 3.0.104-101
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/src/App.vue +54 -54
- package/src/components/android/ImgArea.vue +80 -0
- package/src/components/guoxin/Console.vue +42 -14
- package/src/components/guoxin/call.state.api.js +3 -1
- package/src/components/pc/ComplainWork.vue +3 -0
- package/src/components/pc/NewRepairPaper.vue +378 -370
- package/src/components/pc/RecordListLeft.vue +80 -10
- package/src/components/pc/RepairsWork.vue +33 -3
- package/src/components/pc/RoleSelector.vue +7 -1
- package/src/components/pc/Seekwork.vue +3 -0
- package/src/components/pc/SiteSend.vue +38 -1
- package/src/components/pc/TelLossList.vue +20 -3
- package/src/components/pc/WorkHistory.vue +1 -1
- package/src/components/pc/WorkList.vue +4 -3
- package/src/components/pc/WorkListAllNew.vue +16 -8
- package/src/components/pc/WorkListNew.vue +722 -712
- package/src/components/sendsingle/onlinequeryuser.vue +1 -1
- package/src/components/telcount/TelByOrderMan.vue +22 -4
- package/src/components/telreport/RepairsDetailsReport.vue +2 -2
- package/src/components/telreport/TrafficClassificationReport.vue +13 -13
- package/src/components/telreport/Trafficassess.vue +2 -2
- package/src/components/temp/HandplanInfo.vue +5 -1
- package/src/components/temp/InstructInfo.vue +1 -1
- package/src/components/temp/SecuritycheckInfo.vue +14 -0
- package/src/components/workorder/RepairDetails.vue +8 -2
- package/src/components/workorder/RepairInfo.vue +3 -3
- package/src/components/workorder/RepairPaperAndroid.vue +351 -0
- package/src/components/workorder/ServiceOnlineQuery.vue +306 -0
- package/src/components/workorder/TemporarySingle.vue +346 -302
- package/src/filiale/furuike/pc/QueryVisitHistory.vue +14 -1
- package/src/filiale/furuike/pc/WorkHistory.vue +576 -576
- package/src/filiale/hanzhong/telephone.js +1 -1
- package/src/filiale/jiaocheng/android/createQRcode.vue +204 -0
- package/src/filiale/jiaocheng/android/onlineBuyGas.vue +637 -0
- package/src/filiale/jiaocheng/telephone.js +8 -0
- package/src/filiale/jiaocheng/telephoneAndroid.js +15 -0
- package/src/filiale/lixian/onlineChangeMeter.vue +481 -0
- package/src/filiale/lixian/onlineoperation.vue +606 -0
- package/src/filiale/lixian/onlinequeryuser.vue +509 -0
- package/src/filiale/lixian/telephoneAndroid.js +23 -0
- package/src/filiale/qianneng/android/AppInstallationMaterial.vue +880 -845
- package/src/filiale/qianneng/android/TemporarySingle.vue +537 -537
- package/src/filiale/qianneng/pc/MaterialDetailed.vue +260 -260
- package/src/filiale/qianneng/pc/NewRepairPaper.vue +467 -467
- package/src/filiale/qianneng/pc/RepairsWork.vue +992 -992
- package/src/filiale/qianneng/pc/WorkListAllNew.vue +757 -757
- package/src/filiale/qianneng/pc/changetable.vue +273 -273
- package/src/filiale/qianneng/telephone.js +22 -22
- package/src/filiale/rizhao/pc/IgnitionVentilation.vue +0 -1
- package/src/filiale/rizhao/pc/RepairsWork.vue +0 -1
- package/src/filiale/rizhao/pc/WorkListAllNew.vue +11 -5
- package/src/filiale/rizhao/telephone.js +1 -1
- package/src/filiale/shanxian/android/RepairFirstV.vue +3 -0
- package/src/filiale/shanxian/pc/TelFindUser.vue +310 -0
- package/src/filiale/shanxian/pc/WorkList.vue +2 -2
- package/src/filiale/shanxian/telephone.js +1 -0
- package/src/filiale/shexian/android/AddMyTask.vue +7 -0
- package/src/filiale/shexian/android/RepairFirstV.vue +5 -0
- package/src/filiale/shexian/android/RepairInfo.vue +1 -0
- package/src/filiale/shexian/pc/TelAgentVoiceReport.vue +9 -9
- package/src/filiale/shexian/pc/TelByRepairType.vue +3 -3
- package/src/filiale/shexian/pc/WorkList.vue +4 -1
- package/src/filiale/shexian/pc/WorkListAllNew.vue +14 -1
- package/src/filiale/tongchuan/android/RepairDetails.vue +623 -0
- package/src/filiale/tongchuan/pc/AnalysisMain.vue +7 -7
- package/src/filiale/tongchuan/pc/RepairsWork.vue +8 -0
- package/src/filiale/tongchuan/pc/UserWork.vue +8 -0
- package/src/filiale/tongchuan/telephoneAndroid.js +1 -0
- package/src/filiale/wenxi/android/FaultAll.vue +710 -0
- package/src/filiale/wenxi/android/PhoneUpUserinfo.vue +73 -162
- package/src/filiale/wenxi/android/RepairOrderV.vue +1 -1
- package/src/filiale/wenxi/android/ZHihuanFirst.vue +149 -129
- package/src/filiale/wenxi/pc/DistributeWork.vue +1 -1
- package/src/filiale/wenxi/pc/RecordListLeft.vue +272 -0
- package/src/filiale/wenxi/pc/RepairsWork.vue +143 -64
- package/src/filiale/wenxi/pc/TelAgentVoiceReport.vue +290 -0
- package/src/filiale/wenxi/pc/TelLossList.vue +272 -0
- package/src/filiale/wenxi/telephone.js +4 -0
- package/src/filiale/wenxi/telephoneAndroid.js +2 -1
- package/src/filiale/wuhai/telephone.js +1 -1
- package/src/filiale/yuncheng/android/LdapHelper.js +75 -0
- package/src/filiale/yuncheng/android/Outlay.vue +201 -0
- package/src/filiale/yuncheng/android/RepairInfo.vue +163 -0
- package/src/filiale/yuncheng/android/RepairOrderV.vue +1483 -0
- package/src/filiale/yuncheng/android/RepairUserInfo.vue +390 -0
- package/src/filiale/yuncheng/android/RightTree.vue +218 -0
- package/src/filiale/yuncheng/android/TemporarySingle.vue +522 -0
- package/src/filiale/yuncheng/android/ZHihuanFirst.vue +541 -0
- package/src/filiale/yuncheng/pc/DistributeWork.vue +199 -0
- package/src/filiale/yuncheng/pc/GasWork.vue +773 -0
- package/src/filiale/yuncheng/pc/TelFindUser.vue +31 -11
- package/src/filiale/yuncheng/pc/WorkList.vue +823 -0
- package/src/filiale/yuncheng/pc/WorkListAllNew.vue +781 -0
- package/src/filiale/yuncheng/telephone.js +5 -1
- package/src/filiale/yuncheng/telephoneAndroid.js +19 -0
- package/src/filiale/zhongyi/pc/WorkListAllNew.vue +2 -1
- package/src/main.js +22 -22
- package/src/telephone-android.js +7 -0
- package/src/telephone.js +1 -1
|
@@ -0,0 +1,606 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="" style="height:100%;width: 100%;background: #eff0f0;">
|
|
3
|
+
<!--操作-->
|
|
4
|
+
<div class="auto" style="">
|
|
5
|
+
<div class="row app-row auto" style="padding: 0px; background: aliceblue;">
|
|
6
|
+
<div class="col-xs-4" style="text-align: center;margin: 15px 0;" v-show="parameters.salegas"
|
|
7
|
+
@click="gotobygas(this.item)">
|
|
8
|
+
<div>
|
|
9
|
+
<img src="../../assets/售气1.png" style="width: 40px;height: 40px;margin-bottom: 5px;" alt="">
|
|
10
|
+
</div>
|
|
11
|
+
<label class="input-font" style="padding-right: 0px;">售气</label>
|
|
12
|
+
</div>
|
|
13
|
+
<div class="col-xs-4" style="text-align: center;margin: 15px 0;" v-show="parameters.changetable"
|
|
14
|
+
@click="gotochangemeter(this.item)">
|
|
15
|
+
<div>
|
|
16
|
+
<img src="../../assets/换表1.png" style="width: 40px;height: 40px;margin-bottom: 5px;" alt="">
|
|
17
|
+
</div>
|
|
18
|
+
<label class="input-font" style="padding-right: 0px;">换表</label>
|
|
19
|
+
</div>
|
|
20
|
+
<div class="col-xs-4" style="text-align: center;margin: 15px 0;" v-show="parameters.cardreissue"
|
|
21
|
+
@click="gotomakecard(this.item)">
|
|
22
|
+
<div>
|
|
23
|
+
<img src="../../assets/补卡1.png" style="width: 40px;height: 40px;height:40px;margin-bottom: 5px;" alt="">
|
|
24
|
+
</div>
|
|
25
|
+
<label class="input-font" style="padding-right: 0px;">补卡</label>
|
|
26
|
+
</div>
|
|
27
|
+
<div class="col-xs-4" style="text-align: center;margin: 15px 0;" v-show="parameters.readcard"
|
|
28
|
+
@click="poscard()">
|
|
29
|
+
<div>
|
|
30
|
+
<img src="../../assets/读卡1.png" style="width: 40px;height: 40px;margin-bottom: 5px;" alt="">
|
|
31
|
+
</div>
|
|
32
|
+
<label class="input-font" style="padding-right: 0px;">读卡</label>
|
|
33
|
+
</div>
|
|
34
|
+
<div class="col-xs-4" style="text-align: center;margin: 15px 0;" v-show="parameters.othercharge"
|
|
35
|
+
@click="otherCharge(this.item)">
|
|
36
|
+
<div>
|
|
37
|
+
<img src="../../assets/其他收费1.png" style="width: 40px;height: 40px;margin-bottom: 5px;" alt="">
|
|
38
|
+
</div>
|
|
39
|
+
<label class="input-font" style="padding-right: 0px;">其他收费</label>
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
</div>
|
|
43
|
+
<!--用户信息-->
|
|
44
|
+
<div style="" class="auto">
|
|
45
|
+
<div class="row app-row">
|
|
46
|
+
<div class="col-xs-4">
|
|
47
|
+
<label class="font text-left">表底数</label>
|
|
48
|
+
</div>
|
|
49
|
+
<div class="col-xs-8">
|
|
50
|
+
<input type="number" style="width: 95%;" @blur="getChangeData()" class="search_input input-font text-right"
|
|
51
|
+
v-model="f_meter_base"
|
|
52
|
+
placeholder="请填写表底数">
|
|
53
|
+
</div>
|
|
54
|
+
</div>
|
|
55
|
+
<div class="row app-row" v-show="item.f_userinfo_code">
|
|
56
|
+
<div class="col-xs-4">
|
|
57
|
+
<!--<img src="../../assets/用户姓名.png" style="width: 20px;margin-bottom: 5px" alt="">-->
|
|
58
|
+
<label class="font text-left">用户编号</label>
|
|
59
|
+
</div>
|
|
60
|
+
<div class="col-xs-8">
|
|
61
|
+
<input type="text" style="width: 95%;" class="search_input input-font text-right"
|
|
62
|
+
v-model="item.f_userinfo_code" placeholder="用户编号">
|
|
63
|
+
</div>
|
|
64
|
+
</div>
|
|
65
|
+
<div class="row app-row" v-show="item.f_user_name">
|
|
66
|
+
<div class="col-xs-4">
|
|
67
|
+
<label class="font text-left">用户姓名</label>
|
|
68
|
+
</div>
|
|
69
|
+
<div class="col-xs-8">
|
|
70
|
+
<input type="text" style="width: 95%;" class="search_input input-font text-right" v-model="item.f_user_name"
|
|
71
|
+
placeholder="用户姓名">
|
|
72
|
+
</div>
|
|
73
|
+
</div>
|
|
74
|
+
<div class="row app-row" v-show="item.f_user_phone">
|
|
75
|
+
<div class="col-xs-4">
|
|
76
|
+
<label class="font text-left">用户电话</label>
|
|
77
|
+
</div>
|
|
78
|
+
<div class="col-xs-8">
|
|
79
|
+
<input type="text" style="width: 95%;" class="search_input input-font text-right" v-model="item.f_user_phone"
|
|
80
|
+
placeholder="用户编号">
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
<div class="row app-row" v-show="item.f_user_type">
|
|
84
|
+
<div class="col-xs-4">
|
|
85
|
+
<label class="font text-left">用户类型</label>
|
|
86
|
+
</div>
|
|
87
|
+
<div class="col-xs-8">
|
|
88
|
+
<input type="text" style="width: 95%;" class="search_input input-font text-right" v-model="item.f_user_type"
|
|
89
|
+
placeholder="用户类型">
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
92
|
+
<div class="row app-row" v-show="item.f_address">
|
|
93
|
+
<div class="col-xs-4">
|
|
94
|
+
<label class="font text-left">用户地址</label>
|
|
95
|
+
</div>
|
|
96
|
+
<div class="col-xs-8">
|
|
97
|
+
<input type="text" style="width: 95%;" class="search_input input-font text-right" v-model="item.f_address"
|
|
98
|
+
placeholder="用户姓名">
|
|
99
|
+
</div>
|
|
100
|
+
</div>
|
|
101
|
+
<div class="row app-row" v-show="item.f_meternumber">
|
|
102
|
+
<div class="col-xs-4">
|
|
103
|
+
<label class="font text-left">燃气表号</label>
|
|
104
|
+
</div>
|
|
105
|
+
<div class="col-xs-8">
|
|
106
|
+
<input type="text" style="width: 95%;" class="search_input input-font text-right" v-model="item.f_meternumber"
|
|
107
|
+
placeholder="燃气表号">
|
|
108
|
+
</div>
|
|
109
|
+
</div>
|
|
110
|
+
<div class="row app-row" v-show="item.f_meter_brand">
|
|
111
|
+
<div class="col-xs-4">
|
|
112
|
+
<label class="font text-left">基表品牌</label>
|
|
113
|
+
</div>
|
|
114
|
+
<div class="col-xs-8">
|
|
115
|
+
<input type="text" style="width: 95%;" class="search_input input-font text-right" v-model="item.f_meter_brand"
|
|
116
|
+
placeholder="气表品牌">
|
|
117
|
+
</div>
|
|
118
|
+
</div>
|
|
119
|
+
<div class="row app-row" v-show="item.f_meter_type">
|
|
120
|
+
<div class="col-xs-4">
|
|
121
|
+
<label class="font text-left">基表类型</label>
|
|
122
|
+
</div>
|
|
123
|
+
<div class="col-xs-8">
|
|
124
|
+
<input type="text" style="width: 95%;" class="search_input input-font text-right" v-model="item.f_meter_type"
|
|
125
|
+
placeholder="气表类型">
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
<div class="row app-row" v-show="item.f_collection_type">
|
|
129
|
+
<div class="col-xs-4">
|
|
130
|
+
<label class="font text-left">气表分类</label>
|
|
131
|
+
</div>
|
|
132
|
+
<div class="col-xs-8">
|
|
133
|
+
<input type="text" style="width: 95%;" class="search_input input-font text-right"
|
|
134
|
+
v-model="item.f_collection_type"
|
|
135
|
+
placeholder="气表分类">
|
|
136
|
+
</div>
|
|
137
|
+
</div>
|
|
138
|
+
<div class="row app-row" v-show="item.f_total_gas">
|
|
139
|
+
<div class="col-xs-4">
|
|
140
|
+
<label class="font text-left">累计气量</label>
|
|
141
|
+
</div>
|
|
142
|
+
<div class="col-xs-8">
|
|
143
|
+
<input type="text" style="width: 95%;" class="search_input input-font text-right" v-model="item.f_total_gas"
|
|
144
|
+
placeholder="累计气量">
|
|
145
|
+
</div>
|
|
146
|
+
</div>
|
|
147
|
+
<div class="row app-row" v-show="item.f_total_fee">
|
|
148
|
+
<div class="col-xs-4">
|
|
149
|
+
<label class="font text-left">累计金额</label>
|
|
150
|
+
</div>
|
|
151
|
+
<div class="col-xs-8">
|
|
152
|
+
<input type="text" style="width: 95%;" class="search_input input-font text-right" v-model="item.f_total_fee"
|
|
153
|
+
placeholder="累计金额">
|
|
154
|
+
</div>
|
|
155
|
+
</div>
|
|
156
|
+
|
|
157
|
+
</div>
|
|
158
|
+
<modal :show.sync="model_f" v-ref:modal>
|
|
159
|
+
<div slot="modal-header" class="modal-header">
|
|
160
|
+
<h4 class="modal-title">
|
|
161
|
+
卡信息
|
|
162
|
+
</h4>
|
|
163
|
+
</div>
|
|
164
|
+
<div slot="modal-body" class="modal-body">
|
|
165
|
+
<div class="flex">
|
|
166
|
+
<div class="row">
|
|
167
|
+
<label class="col-sm-2">卡号:</label>
|
|
168
|
+
<span class="col-sm-3">{{ cardinfo.CardID }}</span>
|
|
169
|
+
</div>
|
|
170
|
+
<div class="row">
|
|
171
|
+
<label class="col-sm-2">厂名:</label>
|
|
172
|
+
<span class="col-sm-3">{{ cardinfo.Factory }}</span>
|
|
173
|
+
</div>
|
|
174
|
+
<div class="row">
|
|
175
|
+
<label class="col-sm-2">气量:</label>
|
|
176
|
+
<span class="col-sm-3">{{ cardinfo.Gas }}</span>
|
|
177
|
+
</div>
|
|
178
|
+
<div class="row">
|
|
179
|
+
<label class="col-sm-2">金额:</label>
|
|
180
|
+
<span class="col-sm-3">{{ cardinfo.Money }}</span>
|
|
181
|
+
</div>
|
|
182
|
+
<div class="row">
|
|
183
|
+
<label class="col-sm-2">写卡次数:</label>
|
|
184
|
+
<span class="col-sm-3">{{ cardinfo.Times }}</span>
|
|
185
|
+
</div>
|
|
186
|
+
</div>
|
|
187
|
+
</div>
|
|
188
|
+
<div slot="modal-footer" class="modal-footer">
|
|
189
|
+
<button type="button" name="button" class="col-sm-3 btn btn-primary" @click="cancel()">关闭</button>
|
|
190
|
+
</div>
|
|
191
|
+
</modal>
|
|
192
|
+
</div>
|
|
193
|
+
|
|
194
|
+
</template>
|
|
195
|
+
|
|
196
|
+
<script>
|
|
197
|
+
import Vue from 'vue'
|
|
198
|
+
import * as Util from '../../components/Util'
|
|
199
|
+
import {PagedList, HttpResetClass} from 'vue-client'
|
|
200
|
+
|
|
201
|
+
export default {
|
|
202
|
+
title: '在线操作',
|
|
203
|
+
props: ['item'],
|
|
204
|
+
data() {
|
|
205
|
+
return {
|
|
206
|
+
parameters: {
|
|
207
|
+
"salegas": false,
|
|
208
|
+
"changetable": true,
|
|
209
|
+
"cardreissue": false,
|
|
210
|
+
"readcard": false,
|
|
211
|
+
"othercharge": false
|
|
212
|
+
},
|
|
213
|
+
remanent: {
|
|
214
|
+
f_using_base_old: 0,
|
|
215
|
+
alldue_fee: 0,
|
|
216
|
+
f_remanent_price: 0,
|
|
217
|
+
f_remanent_money: 0,
|
|
218
|
+
f_remanent_gas: 0,
|
|
219
|
+
},
|
|
220
|
+
config: {
|
|
221
|
+
hasPrint: false, // 默认打票
|
|
222
|
+
hasBillManage: false, // 默认不启用发票管理
|
|
223
|
+
billType: '其他费用', // 票据类型(燃气费,其他费用,调用的发票代码不同)
|
|
224
|
+
printType: '普通收据', // 收据/电子票/专用发票/国税发票
|
|
225
|
+
payment: '现金缴费',
|
|
226
|
+
ladderSync: '同步',
|
|
227
|
+
open_way: '指令开户',
|
|
228
|
+
hasArrearsChange: true, // 是否可以有欠费换表
|
|
229
|
+
f_change_operator: false, // 换表人是否必填
|
|
230
|
+
castInt: false,
|
|
231
|
+
dispatch: false, // 是否派工
|
|
232
|
+
showupload: true, //
|
|
233
|
+
approve: false // 是否开启审核
|
|
234
|
+
},
|
|
235
|
+
ispos: false,
|
|
236
|
+
row: {},
|
|
237
|
+
model_f: false,
|
|
238
|
+
cardinfo: {},
|
|
239
|
+
alldue_fee: 0,
|
|
240
|
+
f_operator: Vue.user.name,
|
|
241
|
+
f_orgid : Vue.user.orgid,
|
|
242
|
+
f_meter_base: null,
|
|
243
|
+
f_operator: '管理员',
|
|
244
|
+
// f_orgid: '37710'
|
|
245
|
+
|
|
246
|
+
}
|
|
247
|
+
},
|
|
248
|
+
methods: {
|
|
249
|
+
getChangeData() {
|
|
250
|
+
this.remanent.f_using_base_old = this.f_meter_base
|
|
251
|
+
let _this = this
|
|
252
|
+
let queryparam = {
|
|
253
|
+
condition: `u.f_filialeid in ('${_this.f_orgid}') and 1=1 and f_userinfo_code = '${this.item.f_userinfo_code}' and 1=1`,
|
|
254
|
+
orderitem: "f_userinfo_id desc DESC"
|
|
255
|
+
}
|
|
256
|
+
_this.$resetpost(`${_this.$androidUtil.getProxyUrl()}/rs/sql/sale_getUser`, {data: queryparam}, {
|
|
257
|
+
resolveMsg: null,
|
|
258
|
+
rejectMsg: null
|
|
259
|
+
}).then(async (row) => {
|
|
260
|
+
// this.$resetpost(`rs/sql/sale_getUser`, {data: param}).then((row) => {
|
|
261
|
+
//tag + '参数')
|
|
262
|
+
let item = row.data[0]
|
|
263
|
+
_this.row = item
|
|
264
|
+
// 获取单价信息
|
|
265
|
+
_this.getprice()
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
}).catch((e) => {
|
|
269
|
+
//tag)
|
|
270
|
+
this.$showMessage('参数获取失败!')
|
|
271
|
+
})
|
|
272
|
+
},
|
|
273
|
+
async gotobygas(row) {
|
|
274
|
+
//tag)
|
|
275
|
+
if (row.f_meter_type.includes('卡表')) {
|
|
276
|
+
// 如果是卡表需要判断这个用户是否有未写卡记录
|
|
277
|
+
let http1 = new HttpResetClass()
|
|
278
|
+
let parameter = {
|
|
279
|
+
items: '*',
|
|
280
|
+
tablename: 't_sellinggas',
|
|
281
|
+
condition: ` f_userinfo_id = ${row.f_userinfo_id} and f_write_card = '未写卡'`
|
|
282
|
+
}
|
|
283
|
+
let resp = await http1.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/querySingleTable`, {data: parameter}, {
|
|
284
|
+
resolveMsg: null,
|
|
285
|
+
rejectMsg: null
|
|
286
|
+
})
|
|
287
|
+
//tag)
|
|
288
|
+
if (resp.data.length > 0) {
|
|
289
|
+
this.$showMessage('此用户存在未写卡记录,暂不能缴费!')
|
|
290
|
+
return
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
let _this = this
|
|
294
|
+
let param = {
|
|
295
|
+
condition: `u.f_filialeid in ('${_this.f_orgid}') and 1=1 and f_userinfo_code = '${row.f_userinfo_code}' and 1=1`,
|
|
296
|
+
orderitem: "f_userinfo_id desc DESC"
|
|
297
|
+
}
|
|
298
|
+
_this.$resetpost(`${_this.$androidUtil.getProxyUrl()}/rs/sql/sale_getUser`, {data: param}, {
|
|
299
|
+
resolveMsg: null,
|
|
300
|
+
rejectMsg: null
|
|
301
|
+
}).then((row) => {
|
|
302
|
+
// this.$resetpost(`rs/sql/sale_getUser`, {data: param}).then((row) => {
|
|
303
|
+
//tag + '参数')
|
|
304
|
+
let item = row.data[0]
|
|
305
|
+
let pardate = {
|
|
306
|
+
_this: _this,
|
|
307
|
+
title: '在线购气',
|
|
308
|
+
safe: false
|
|
309
|
+
}
|
|
310
|
+
_this.$dispatch('gotoson', pardate)
|
|
311
|
+
//tag
|
|
312
|
+
_this.$goto('online_buy_gas', {row: item}, 'self')
|
|
313
|
+
}).catch((e) => {
|
|
314
|
+
//tag)
|
|
315
|
+
this.$showMessage('参数获取失败!')
|
|
316
|
+
})
|
|
317
|
+
|
|
318
|
+
},
|
|
319
|
+
async pregasChange() {
|
|
320
|
+
let _that= this
|
|
321
|
+
if (parseInt(this.f_meter_base) < parseInt(this.row.f_meter_base)) {
|
|
322
|
+
await this.$showMessage(`录入旧表底数小于系统就表底数请再次核对!`, ['confirm', 'cancel']).then((res) => {
|
|
323
|
+
if (res === 'confirm') {
|
|
324
|
+
} else {
|
|
325
|
+
this.f_meter_base = ''
|
|
326
|
+
return
|
|
327
|
+
}
|
|
328
|
+
})
|
|
329
|
+
}
|
|
330
|
+
if (this.row.f_meter_type == '气量卡表') {
|
|
331
|
+
let msg = this.calGasCardRemanent()
|
|
332
|
+
if (msg) {
|
|
333
|
+
return
|
|
334
|
+
}
|
|
335
|
+
} else if (this.row.f_meter_type == '金额卡表') {
|
|
336
|
+
// this.$showAlert('金额卡表换表尚在开发中,敬请期待!!', 'warning', 5000)
|
|
337
|
+
// this.$dispatch('refresh')
|
|
338
|
+
this.calMoneyCardRemanent()
|
|
339
|
+
|
|
340
|
+
} else if (this.row.f_meter_type == '物联网表') {
|
|
341
|
+
// this.Iotjisuan()
|
|
342
|
+
}
|
|
343
|
+
let msg = ''
|
|
344
|
+
if (this.row.f_meter_type.includes('机表') || this.row.f_meter_type.includes('物联网表')) {
|
|
345
|
+
let a = this.config.castInt ? parseInt(this.f_meter_base) : this.f_meter_base
|
|
346
|
+
let b = this.config.castInt ? parseInt(this.row.f_meter_base) : this.row.f_meter_base
|
|
347
|
+
if (a > b) {
|
|
348
|
+
msg = (this.row.f_meter_type === '机表' ? '该用户表底数大于上次抄表底数,请确定是否继续生成欠费记录' : '该用户表底数大于上次抄表底数,请确定是否进行结算')
|
|
349
|
+
} else if (this.row.f_capacity && this.row.f_capacity > 0 && (parseInt(this.f_meter_base) < parseInt(this.row.f_meter_base))) {
|
|
350
|
+
msg = '该用户表底数大于上次抄表底数,且已超越最大量程,请确定是否继续生成欠费记录'
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
if ((this.row.f_meter_type.includes('机表') || this.row.f_meter_type.includes('物联网表')) && msg) {
|
|
354
|
+
this.$showMessage(msg, ['confirm', 'cancel']).then((res) => {
|
|
355
|
+
if (res === 'confirm') {
|
|
356
|
+
let url = this.row.f_meter_type.includes('物联网表') ? 'rs/logic/changeMeterWebHand' : 'rs/logic/changeMeterHand'
|
|
357
|
+
let data = {
|
|
358
|
+
downDate: Util.toStandardTimeString(),
|
|
359
|
+
startDate: Util.toStandardDateString(),
|
|
360
|
+
endDate: Util.toStandardDateString(),
|
|
361
|
+
condition: `f_userfiles_id = '${this.row.f_userfiles_id}'`,
|
|
362
|
+
f_operator: Vue.user.name,
|
|
363
|
+
f_operatorid: Vue.user.id,
|
|
364
|
+
f_meternumber: this.row.f_meternumber,
|
|
365
|
+
f_userinfo_id: this.row.f_userinfo_id,
|
|
366
|
+
f_userfiles_id: this.row.f_userfiles_id,
|
|
367
|
+
f_serial_number: '',
|
|
368
|
+
f_meterbase: this.f_meter_base,
|
|
369
|
+
f_meter_brand: this.row.f_meter_brand,
|
|
370
|
+
f_meter_classify: this.row.f_meter_type,
|
|
371
|
+
f_price_id: this.row.f_price_id
|
|
372
|
+
}
|
|
373
|
+
this.$resetpost(url, {data: data}, {resolveMsg: '生成欠费成功', rejectMsg: '生成欠费失败'}).then((res) => {
|
|
374
|
+
console.log(res.data)
|
|
375
|
+
console.log(JSON.stringify(res.data))
|
|
376
|
+
if(res.data.msg==='抄表成功'){
|
|
377
|
+
_that.$showMessage('生成欠费成功')
|
|
378
|
+
this.getChangeData()
|
|
379
|
+
}else{
|
|
380
|
+
_that.$showMessage('生成欠费失败')
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
})
|
|
384
|
+
}
|
|
385
|
+
})
|
|
386
|
+
} else {
|
|
387
|
+
let _this = this
|
|
388
|
+
var pardate = {
|
|
389
|
+
_this: _this,
|
|
390
|
+
title: '在线换表',
|
|
391
|
+
safe: false
|
|
392
|
+
}
|
|
393
|
+
_this.$dispatch('gotoson', pardate)
|
|
394
|
+
//tag
|
|
395
|
+
_this.$goto('online-change-meter', {row: this.row, remanent: this.remanent}, 'self')
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
},
|
|
399
|
+
calGasCardRemanent() {
|
|
400
|
+
let mesg = ''
|
|
401
|
+
// 拿到旧表底数 和【累计购气量+初始底数】比较 这里剩余气量如果是清零补气的就不加,如果是换表补气的就加
|
|
402
|
+
let param = this.row.f_total_gas + this.row.f_initial_base
|
|
403
|
+
|
|
404
|
+
if (this.row.f_remanent_type == 1) {
|
|
405
|
+
param += this.row.f_remanent_gas
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
if (this.f_meter_base > param) {
|
|
409
|
+
msg = '该表可能存在超用,请核实输入后进行换表操作!!'
|
|
410
|
+
this.$showAlert(msg, 'warning', 5000)
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
if (this.row.f_remanent_price > 0) {
|
|
414
|
+
this.row.f_remanent_gas = (param - (this.f_meter_base - 0)).toFixed(4)
|
|
415
|
+
}
|
|
416
|
+
},
|
|
417
|
+
|
|
418
|
+
calMoneyCardRemanent() {
|
|
419
|
+
if (!this.row.f_remanent_money) {
|
|
420
|
+
this.row.f_remanent_money = ''
|
|
421
|
+
}
|
|
422
|
+
},
|
|
423
|
+
|
|
424
|
+
async getprice() {
|
|
425
|
+
let http = new HttpResetClass()
|
|
426
|
+
let param = {
|
|
427
|
+
tablename: 't_detailprice',
|
|
428
|
+
condition: `f_price_name = '1' and f_stairprice_id = '${this.row.f_stairprice_id}'`
|
|
429
|
+
}
|
|
430
|
+
let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/saleSingleTable`, {
|
|
431
|
+
data: param
|
|
432
|
+
}, {
|
|
433
|
+
resolveMsg: null,
|
|
434
|
+
rejectMsg: '获取一阶单价!!'
|
|
435
|
+
})
|
|
436
|
+
if (res.data.length > 0) {
|
|
437
|
+
this.remanent.f_remanent_price = res.data[0].f_price
|
|
438
|
+
}
|
|
439
|
+
this.initData()
|
|
440
|
+
},
|
|
441
|
+
initData() {
|
|
442
|
+
if (this.row.f_meter_type == '物联网表') {
|
|
443
|
+
// 判断是否需要结算
|
|
444
|
+
if (this.row.f_collection_type == '按气量') {
|
|
445
|
+
this.calGasIOTRemanent()
|
|
446
|
+
} else {
|
|
447
|
+
this.calMoneyIOTRemanent()
|
|
448
|
+
}
|
|
449
|
+
} else if (this.row.f_meter_type == '机表') {
|
|
450
|
+
this.validateOwe()
|
|
451
|
+
}
|
|
452
|
+
},
|
|
453
|
+
calGasIOTRemanent() {
|
|
454
|
+
this.remanent.f_remanent_gas = (this.row.f_balance_gas - 0)
|
|
455
|
+
},
|
|
456
|
+
calMoneyIOTRemanent() {
|
|
457
|
+
this.remanent.f_remanent_money = (this.row.f_balance_amount - 0).toFixed(4)
|
|
458
|
+
},
|
|
459
|
+
|
|
460
|
+
async validateOwe() {
|
|
461
|
+
let http = new HttpResetClass()
|
|
462
|
+
// 有欠费是否能换表 如果能则需要获取到欠费金额
|
|
463
|
+
if (this.config.hasArrearsChange) {
|
|
464
|
+
let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/sale_getOwe`, {data: {f_userinfo_id: this.row.f_userinfo_id}}, {
|
|
465
|
+
resolveMsg: null,
|
|
466
|
+
rejectMsg: '获取欠费出错!!'
|
|
467
|
+
})
|
|
468
|
+
let owes = []
|
|
469
|
+
for (let i = 0; i < res.data.length; i++) {
|
|
470
|
+
for (let j = 0; j < res.data[i].rows.length; j++) {
|
|
471
|
+
owes.push(res.data[i].rows[j])
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
console.log('获取到的欠费记录', owes)
|
|
475
|
+
this.alldue_fee = owes.reduce((total, item) => {
|
|
476
|
+
return total + (item.f_oughtfee + item.overdue - item.f_debt_money)
|
|
477
|
+
}, 0)
|
|
478
|
+
this.remanent.alldue_fee = this.alldue_fee
|
|
479
|
+
console.log('总欠费金额为', this.alldue_fee)
|
|
480
|
+
this.books = owes
|
|
481
|
+
} else {
|
|
482
|
+
// 如果 不能 则只需要获取到记录数,采用相对节省资源的查询
|
|
483
|
+
let books = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/singleTable_OrderBy`, {
|
|
484
|
+
data: {
|
|
485
|
+
items: 'f_whether_pay',
|
|
486
|
+
tablename: 't_handplan',
|
|
487
|
+
condition: ` f_user_id = '${this.row.f_user_id}' and f_oughtfee > 0 and f_hand_state = '有效' and f_meter_state='已抄表' `,
|
|
488
|
+
orderitem: ' id desc'
|
|
489
|
+
}
|
|
490
|
+
}, {resolveMsg: null, rejectMsg: null}
|
|
491
|
+
)
|
|
492
|
+
console.log('获取到的欠费记录', books)
|
|
493
|
+
this.books = books
|
|
494
|
+
// 如果是机表验证是否有欠费
|
|
495
|
+
if ((this.row.f_balance - 0) < 0) {
|
|
496
|
+
this.$showAlert('该表有欠费,请到机表缴费界面进行缴费', 'warning', 3000)
|
|
497
|
+
this.$dispatch('button-specifies', {name: '机表收费', value: 'machine-charge'}, this.row)
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
},
|
|
501
|
+
gotochangemeter() {
|
|
502
|
+
//获取用户信息
|
|
503
|
+
if (!this.f_meter_base) {
|
|
504
|
+
this.$showMessage('请填写表底数后在点击换表')
|
|
505
|
+
return
|
|
506
|
+
}
|
|
507
|
+
this.remanent.f_using_base_old = this.f_meter_base
|
|
508
|
+
this.pregasChange()
|
|
509
|
+
},
|
|
510
|
+
otherCharge(row) {
|
|
511
|
+
//tag
|
|
512
|
+
let _this = this
|
|
513
|
+
var pardate = {
|
|
514
|
+
_this: _this,
|
|
515
|
+
title: '其他收费',
|
|
516
|
+
safe: false
|
|
517
|
+
}
|
|
518
|
+
_this.$dispatch('gotoson', pardate)
|
|
519
|
+
//tag
|
|
520
|
+
_this.$goto('other_charge', {row: row}, 'self')
|
|
521
|
+
|
|
522
|
+
},
|
|
523
|
+
poscard() {
|
|
524
|
+
//tag
|
|
525
|
+
if (this.ispos) {
|
|
526
|
+
let fengongsi = this.$appdata.getSingleValue('分公司')
|
|
527
|
+
if (!fengongsi) {
|
|
528
|
+
this.$showMessage('分公司获取失败!')
|
|
529
|
+
return
|
|
530
|
+
}
|
|
531
|
+
let posinfo2 = HostApp.read(fengongsi)
|
|
532
|
+
// let posinfo2 = HostApp.read("XianYang")
|
|
533
|
+
//tag)
|
|
534
|
+
if (posinfo2.code == 200) {
|
|
535
|
+
//tag
|
|
536
|
+
this.cardinfo = posinfo2.msg
|
|
537
|
+
this.model_f = true
|
|
538
|
+
} else {
|
|
539
|
+
this.$showMessage(posinfo2.msg)
|
|
540
|
+
}
|
|
541
|
+
} else {
|
|
542
|
+
this.$showMessage('该设备暂不支持')
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
},
|
|
546
|
+
cancel() {
|
|
547
|
+
//tag
|
|
548
|
+
this.model_f = false
|
|
549
|
+
},
|
|
550
|
+
gotomakecard(row) {
|
|
551
|
+
//tag
|
|
552
|
+
let _this = this
|
|
553
|
+
var pardate = {
|
|
554
|
+
_this: _this,
|
|
555
|
+
title: 'POS补卡',
|
|
556
|
+
safe: false
|
|
557
|
+
}
|
|
558
|
+
_this.$dispatch('gotoson', pardate)
|
|
559
|
+
_this.$goto('pos-onlinemakecard', {item: row}, 'self')
|
|
560
|
+
}
|
|
561
|
+
},
|
|
562
|
+
|
|
563
|
+
ready() {
|
|
564
|
+
// 获取globals里的pos
|
|
565
|
+
// this.ispos = this.$androidUtil.getPreference('pos')
|
|
566
|
+
//tag)
|
|
567
|
+
//tag)
|
|
568
|
+
// 获取配置项
|
|
569
|
+
console.log(Vue.config.telephone.ApproveConfig)
|
|
570
|
+
// if (Vue.config.telephone != undefined) {
|
|
571
|
+
// if (Vue.config.telephone.ApproveConfig != undefined) {
|
|
572
|
+
// this.parameters = Vue.config.telephone.ApproveConfig
|
|
573
|
+
// this.ispos = Vue.config.telephone.ApproveConfig.ispos
|
|
574
|
+
// //tag)
|
|
575
|
+
// } else {
|
|
576
|
+
// //tag
|
|
577
|
+
// }
|
|
578
|
+
// } else {
|
|
579
|
+
// //tag
|
|
580
|
+
// }
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
</script>
|
|
584
|
+
|
|
585
|
+
<style scoped>
|
|
586
|
+
.app-row {
|
|
587
|
+
background-color: white;
|
|
588
|
+
padding: 5px 10px 0 10px;
|
|
589
|
+
border-bottom: 1px solid rgba(235, 235, 235, 0.5);
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
.search_input {
|
|
593
|
+
border: 0;
|
|
594
|
+
outline: none;
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
.font {
|
|
598
|
+
font: 16px PingFang-SC-Medium;
|
|
599
|
+
color: #958e8e;
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
.input-font {
|
|
603
|
+
font: 15px PingFang-SC-Medium;
|
|
604
|
+
color: #333333;
|
|
605
|
+
}
|
|
606
|
+
</style>
|