sale-client 4.2.113 → 4.2.115

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.
@@ -0,0 +1,381 @@
1
+ <template>
2
+ <div id="unit" class="flex-row three" v-show="listpage">
3
+ <div class="binary-left" style="overflow: scroll;width:15%" >
4
+ <mulitinfo :warninginfo="warningInfo" style="height:auto" @deal-msg="dealMsg" :data="row" :card-data="cardInfo" v-ref:info></mulitinfo>
5
+ </div>
6
+ <div class="binary-right" style="width:68%;overflow-y: scroll" >
7
+ <div :style="{height:(row?'auto':'100%')}">
8
+ <!--<div class="auto" v-if="sustainMoney != null">-->
9
+ <!--<h2 style="margin-top: 10px">当前连续收款金额: {{sustainMoney}}</h2>-->
10
+ <!--</div>-->
11
+ <div>
12
+ <charge-list :row="row" @select-oper="showWork" @dblclick="toBusiness" @deal-msg="dealMsg"
13
+ v-ref:list></charge-list>
14
+
15
+ <div class="auto" style="margin-top: 1%;" v-if="row">
16
+ <charge-oper :data.sync="row" :card-info="cardInfo" v-ref:oper></charge-oper>
17
+ </div>
18
+ </div>
19
+ </div>
20
+ </div>
21
+ <div class="binary-right" style="width:22%" >
22
+ <ul class="nav nav-pills span" style="height:auto;margin:8px 0px;padding:4px 0;border-bottom: 1px solid #e7e7e7;" class="nav nav-tabs" >
23
+ <li ><a :style="selectFiled == '其他信息'?'color:#333333!important;':'color:#666666!important;'" :class="{'tel_voiceActive':selectFiled == '其他信息','tel_f_size':selectFiled != '其他信息'}" href="#" @click="setField('其他信息')">其他信息</a></li>
24
+ <li ><a :style="selectFiled == '历史操作'?'color:#333333!important;':'color:#666666!important;'" :class="{'tel_voiceActive':selectFiled == '历史操作','tel_f_size':selectFiled != '历史操作'}" href="#" @click="setField('历史操作')">历史操作</a></li>
25
+ <li v-if="row ?row.f_meter_type=='机表' : false"><a :style="selectFiled == '历史抄表'?'color:#333333!important;':'color:#666666!important;'" :class="{'tel_voiceActive':selectFiled == '历史抄表','tel_f_size':selectFiled != '历史抄表'}" href="#" @click="setField('历史抄表')">历史抄表</a></li>
26
+ </ul>
27
+ <div class="tab-content span" style="overflow-y: auto">
28
+ <otherinfo v-show="worktype === '其他信息'" style="height:auto" @deal-msg="dealMsg" :data="row" :card-data="cardInfo" v-ref:info></otherinfo>
29
+ <card-list v-show="worktype === '历史操作'" :btns="operatebtn" :f_orgid="f_orgid" :userinfoid="row ? row.f_userinfo_code : ''" @list-select-oper="recordCancel"
30
+ v-ref:card></card-list>
31
+ <hand-list v-if="worktype === '历史抄表'" :f_userfiles_id="row ? row.f_userfiles_id : ''" v-ref:hand></hand-list>
32
+ </div>
33
+
34
+ </div>
35
+
36
+ </div>
37
+ <div v-if="!listpage">
38
+ <user-info-detail-manage-new parentname="charge-manage" :f_userfiles_id="rowData.f_userfiles_id" @cancel-main="cancel" @cancel-re="cancelAndRefresh"></user-info-detail-manage-new>
39
+ </div>
40
+ <div v-if="showModal">
41
+ <charge-modal :warninginfo="warningInfo" :row="modalrow" :modal-show.sync="showModal" @close="close" @modalsuccess="modalsuccess"></charge-modal>
42
+ </div>
43
+ </template>
44
+ <script>
45
+ import ChargeOper from './ChargeOper'
46
+ import {HttpResetClass} from "vue-client";
47
+
48
+ export default {
49
+ title: '收费(综合)',
50
+ components: { ChargeOper },
51
+ data () {
52
+ return {
53
+ sustainMoney: null,
54
+ // 页面开关
55
+ listpage: true,
56
+ f_orgid: '',
57
+ row: null,
58
+ cardInfo: null,
59
+ warningInfo: null,
60
+ modalrow: null,
61
+ showModal: false,
62
+ rowData: {},
63
+ dibao_remind: this.$appdata.getSingleValue('低保快到期提醒') ? this.$appdata.getSingleValue('低保快到期提醒') : 0,
64
+ reSearchShowMsy: !!this.$appdata.getSingleValue('收费后验证'),
65
+ reSearchShowBusiness: !!this.$appdata.getSingleValue('业务完成重新加载'),
66
+ shouldNavigateToEvaluation: false, // 标记是否应该导航到评价页面
67
+ activeBusiness: null, // 当前激活的业务
68
+ show: [true],
69
+ selectFiled: '其他信息',
70
+ worktype: '其他信息',
71
+ searchTime: 1000,
72
+ interval: null
73
+ }
74
+ },
75
+ destroyed () {
76
+ if(this.$appdata.getSingleValue('磁条卡读卡间隔')) {
77
+ clearInterval(this.interval)
78
+ }
79
+ },
80
+ ready () {
81
+ if(this.$appdata.getSingleValue('磁条卡读卡间隔')){
82
+ this.searchTime = this.$appdata.getSingleValue('磁条卡读卡间隔')
83
+ this.readCiTiaoCard()
84
+ }
85
+ this.setsustainMoney()
86
+ },
87
+ methods: {
88
+ async readCiTiaoCard () {
89
+ console.log('读磁条卡,开始,不停的循环')
90
+ let data = {}
91
+ let getUser = {data: []}
92
+ let forgid = this.$login.convertToIn([this.$login.f.orgid])
93
+ try {
94
+ this.interval = setInterval(() => {
95
+ // 1秒一轮回
96
+ let http = new HttpResetClass()
97
+ http.load('POST', 'http://127.0.0.1:8003/ReadCard_HEC', data, {
98
+ resolveMsg: null,
99
+ rejectMsg: null
100
+ }).then(async res => {
101
+ if (res.data.CardID !== '') {
102
+ if (res.data.Err === null && res.data.Exception) {
103
+ this.$showAlert(res.data.Exception, 'danger', 2000)
104
+ // clearInterval(interval)
105
+ } else {
106
+ if (res.data.Factory === 'CiTiao') {
107
+ // 获取用户信息
108
+ getUser = await this.$resetpost('api/af-revenue/sql/sale_getUser', {
109
+ data: {
110
+ condition: `u.f_filialeid in ${forgid} and gb.f_meter_type in ('机表','物联网表') and i.f_userinfo_code='${res.data.CardID}'`,
111
+ orderitem: `f_userinfo_id`
112
+ }
113
+ }, {resolveMsg: null, rejectMsg: '读卡失败'})
114
+ this.$refs.list.model.rows = getUser.data
115
+ if (!this.row || (this.row && this.row.f_userinfo_code != getUser.data[0].f_userinfo_code)) {
116
+ await this.toBusiness(getUser.data[0])
117
+ }
118
+ }
119
+ }
120
+ }
121
+ })
122
+ }, this.searchTime * 1000)
123
+ } catch (error) {
124
+ console.log('捕获到异常', error)
125
+ }
126
+ },
127
+ setsustainMoney () {
128
+ this.sustainMoney = window.localStorage.getItem('sustainMoney')
129
+ },
130
+ setField (type) {
131
+ this.selectFiled = type
132
+ this.worktype = type
133
+ },
134
+ async toBusiness (obj) {
135
+ console.log('双击列表的时候传进来的数据:', obj)
136
+ if (!(obj instanceof Event)) {
137
+ // 对此数据进行验证
138
+ if (await this.validateRow(obj)) {
139
+ this.shouldNavigateToEvaluation = false
140
+ // 获取未写卡或者写卡失败记录
141
+ let getUnWriteSell = await this.$SqlService.singleTable('t_sellinggas', `f_state = '有效' and (f_write_card = '未写卡' or (f_write_card = '写卡失败' and f_operate_date >= DATEADD(HOUR, -3, GETDATE()))) and f_userfiles_id = '${obj.f_userfiles_id}'`)
142
+ console.log('获取未写卡记录', getUnWriteSell)
143
+ if (getUnWriteSell.data.length > 1) {
144
+ this.$showAlert('此卡已缴费多次未写卡。请核实后处理!!', 'warning', 5000)
145
+ } else {
146
+ this.row = obj
147
+ this.shouldNavigateToEvaluation = false
148
+ this.row.unWriteSell = getUnWriteSell.data
149
+ this.cardInfo = this.$refs.list.cardInfo
150
+ this.$refs.list.criteriaShow = false
151
+ // 将列表只显示该条数据
152
+ this.$refs.list.refreshRow(obj)
153
+ }
154
+ }
155
+ }
156
+ },
157
+ close () {
158
+ this.showModal = false
159
+ this.warningInfo = null
160
+ this.clean()
161
+ this.$refs.list.search()
162
+ // this.$refs.card.search()
163
+ },
164
+ async validateRow (obj) {
165
+ console.log('查看传进来的参数:', obj)
166
+ this.warningInfo = await this.$resetpost('api/af-revenue/logic/getWarningMsg',
167
+ {data: {
168
+ f_userfiles_id: obj.f_userfiles_id,
169
+ f_userinfo_code: obj.f_userinfo_code,
170
+ f_userinfo_id: obj.f_userinfo_id
171
+ }
172
+ }
173
+ , {resolveMsg: '', rejectMsg: '获取提示失败'})
174
+ if (this.warningInfo.data.warningNum > 0 && obj.f_user_state !== '预备') {
175
+ this.modalrow = obj
176
+ this.showModal = true
177
+ return false
178
+ } else {
179
+ return true
180
+ }
181
+ },
182
+ clean () {
183
+ this.row = null
184
+ this.cardInfo = null
185
+ this.activeBusiness = null
186
+ },
187
+ clearCondition () {
188
+ Object.keys(this.$refs.list.$refs.paged.$refs.cri.model).forEach((key) => {
189
+ console.log('key', key)
190
+ console.log('对应啥数据', this.$refs.list.$refs.paged.$refs.cri.model[key])
191
+ this.$refs.list.$refs.paged.$refs.cri.model[key] = []
192
+ })
193
+ // console.log('清数据。。。', this.$refs.list.$refs.paged.$refs.grid.model.rows)
194
+ // this.$set('$refs.list.$refs.paged.$refs.grid.model.rows', [])
195
+ },
196
+ dealMsg (obj) {
197
+ console.log('==================obj', obj)
198
+ this.listpage = false
199
+ this.rowData = obj
200
+ },
201
+ cancel (obj) {
202
+ this.listpage = true
203
+ },
204
+ cancelAndRefresh (obj) {
205
+ this.listpage = true
206
+ this.clean()
207
+ this.clearCondition()
208
+ this.$refs.list.searchNoData()
209
+ this.$refs.card.search()
210
+ },
211
+ async modalsuccess (obj) {
212
+ this.showModal = false
213
+ let getUnWriteSell = await this.$SqlService.singleTable('t_sellinggas', `f_state = '有效' and (f_write_card = '未写卡' or (f_write_card = '写卡失败' and f_operate_date >= DATEADD(HOUR, -3, GETDATE()))) and f_userfiles_id = '${obj.f_userfiles_id}'`)
214
+ console.log('获取未写卡记录', getUnWriteSell)
215
+ if (getUnWriteSell.data.length > 1) {
216
+ this.$showAlert('此卡已缴费多次未写卡。请核实后处理!!', 'warning', 5000)
217
+ } else {
218
+ this.$refs.list.criteriaShow = false
219
+ this.row = obj
220
+ this.row.unWriteSell = getUnWriteSell.data
221
+ this.cardInfo = this.$refs.list.cardInfo
222
+ this.$refs.list.criteriaShow = false
223
+ // 将列表只显示该条数据
224
+ this.$refs.list.refreshRow(obj)
225
+ // 如果应该导航到评价页面,则执行评价业务
226
+ if (this.shouldNavigateToEvaluation && this.$refs.oper) {
227
+ this.activeBusiness = '评价'
228
+ this.$nextTick(() => {
229
+ this.$refs.oper.business({name: '评价', value: {routeName: 'service-evaluation'}})
230
+ // 执行完后清除标志
231
+ this.shouldNavigateToEvaluation = false;
232
+ }, 100)
233
+ } else {
234
+ // 清除标志(普通业务场景)
235
+ this.shouldNavigateToEvaluation = false;
236
+ }
237
+ }
238
+ },
239
+
240
+ async serRow (obj, evaluationFlag = false) {
241
+ this.shouldNavigateToEvaluation = evaluationFlag;
242
+ let newdata = await this.$resetpost('api/af-revenue/sql/sale_getUser', {
243
+ data: {condition: `i.f_userinfo_code='${obj.f_userinfo_code}' and u.f_filialeid = '${obj.f_filialeid}'`, orderitem: `f_userinfo_id Desc`}
244
+ }, {resolveMsg: null, rejectMsg: '获取用户信息失败'})
245
+ await this.toBusiness(newdata.data[0])
246
+ // this.$refs.list.search()
247
+ if(evaluationFlag){
248
+ this.$refs.oper.business({name: '评价', value: {routeName: 'service-evaluation'}})
249
+ }
250
+ },
251
+ hasEvaluatePermission (name) {
252
+ if (!this.$login.r || !Array.isArray(this.$login.r)) {
253
+ console.warn('权限列表不存在或不是数组')
254
+ return false
255
+ }
256
+ const permissionName = `${name}评价权限`
257
+ return this.$login.r.includes(permissionName)
258
+ }
259
+ },
260
+ events: {
261
+ 'error' (name, row, res) {
262
+ this.clean()
263
+ },
264
+ 'row' (val) {
265
+
266
+ },
267
+
268
+ 'success' (name, row, res) {
269
+ this.setsustainMoney()
270
+ // name === '发卡售气' ? this.$refs.list.toNext(this.index) : null
271
+ if (name === '机表收费确认') {
272
+ this.serRow(row)
273
+ return
274
+ }
275
+ if (name === '卡表收费' && this.reSearchShowMsy) {
276
+ this.$refs.list.$refs.paged.$refs.cri.$refs.readcard.readCard()
277
+ this.$refs.oper.noButton = false
278
+ return
279
+ }
280
+ if (name === '物联网收费' && this.reSearchShowMsy) {
281
+ this.serRow(row)
282
+ return
283
+ }
284
+ if (this.hasEvaluatePermission(this.activeBusiness) && this.reSearchShowBusiness) {
285
+ this.$refs.oper.noButton = false
286
+ this.activeBusiness = null
287
+ this.$showMessage('要进行业务评价吗?', ['confirm', 'cancel']).then((res) => {
288
+ if(res !== 'confirm') {
289
+ if (row) {
290
+ this.serRow(row)
291
+ } else {
292
+ this.serRow(this.row)
293
+ }
294
+ } else {
295
+ this.activeBusiness = '评价'
296
+ if (row) {
297
+ this.serRow(row,true)
298
+ } else {
299
+ this.serRow(this.row,true)
300
+ }
301
+ }
302
+ })
303
+ return
304
+ }
305
+ console.log('成功事件')
306
+ this.clean()
307
+ this.clearCondition()
308
+ this.$refs.list.search()
309
+ // this.clearCondition()
310
+ // this.$refs.card.search()
311
+ // this.$refs.info.$refs.recordstoryinfo.getdata()
312
+ },
313
+ 'clean' (row) {
314
+ // this.$refs.list.singleRefresh(row)
315
+ this.clean()
316
+ },
317
+ 'refresh' () {
318
+ this.setsustainMoney()
319
+ this.clean()
320
+ this.clearCondition()
321
+ this.$refs.list.searchNoData()
322
+ this.$refs.card.search()
323
+ },
324
+ 'resflushvalue' () {
325
+ this.$refs.info.$refs.valueaddinfo.reflush()
326
+ },
327
+ 'resflushrowdata' () {
328
+ this.toBusiness(this.row)
329
+ },
330
+ 'resflushdata' (data) {
331
+ this.toBusiness(data)
332
+ },
333
+ 'refreshrow' (val) {
334
+ console.log(val)
335
+ this.row = val
336
+ this.$refs.list.refreshRow(val)
337
+ // this.$refs.card.search()
338
+ },
339
+ 'cancelclean' (row) {
340
+ this.clean()
341
+ this.$refs.list.searchNoData()
342
+ // this.$refs.card.search()
343
+ },
344
+ 'business-changed' (businessName) {
345
+ console.warn('business-changed', businessName)
346
+ this.activeBusiness = businessName
347
+ }
348
+ },
349
+ watch: {
350
+ 'row' () {
351
+ // this.$refs.tab.$el.click()
352
+ }
353
+ }
354
+ }
355
+ </script>
356
+ <style>
357
+ .basic-main {
358
+ width: 79%;
359
+ }
360
+ .tel_voiceActive{
361
+ font-family: PingFang-SC-Bold;
362
+ font-size: 16px;
363
+ font-weight: normal!important;
364
+ font-stretch: normal!important;
365
+ line-height: 18px;
366
+ letter-spacing: 0px;
367
+ color: #333333!important;
368
+ border-bottom: 3px solid #599fe5;
369
+ padding:10px 10px!important;
370
+ }
371
+ .tel_f_size{
372
+ font-family: PingFang-SC-Medium;
373
+ font-size: 16px;
374
+ font-weight: normal;
375
+ font-stretch: normal;
376
+ line-height: 18px;
377
+ letter-spacing: 0px;
378
+ color: #666666!important;
379
+ padding:10px 10px!important;
380
+ }
381
+ </style>