sale-client 3.6.529 → 3.6.531

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.
File without changes
@@ -0,0 +1,2 @@
1
+ #Mon Apr 28 13:42:54 CST 2025
2
+ gradle.version=5.2.1
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sale-client",
3
- "version": "3.6.529",
3
+ "version": "3.6.531",
4
4
  "description": "收费模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -338,10 +338,15 @@
338
338
  if (self.config.hasPrint && !self.$login.r.includes('不打印发票')) {
339
339
  if (self.model.f_print.indexOf('电子发票') == -1) {
340
340
  if (self.$login.r.includes('非民用纸质票据拆分')) {
341
- if (self.row.f_user_type === '非民用') {
341
+ if (self.row.f_user_type === '非民用' && self.model.f_print[0] !== '收费凭证') {
342
342
  self.billData.url = 'rs/report/fmy_card_bill'
343
+ } else if (self.row.f_user_type === '非民用' && self.model.f_print[0] === '收费凭证') {
344
+ self.billData.url = 'rs/report/fmy_card_bill_voucher'
343
345
  }
344
346
  }
347
+ if (self.model.f_print[0] === '收费凭证' && self.row.f_user_type === '民用') {
348
+ self.billData.url = 'rs/report/card_bill_voucher'
349
+ }
345
350
  if (self.config.hasBillManage) {
346
351
  // 启用发票管理,获取票据管理中的票号并存储记录
347
352
  self.row.id = res
@@ -319,10 +319,15 @@
319
319
  if (self.model.f_print.indexOf('电子发票') == -1) {
320
320
  console.log('self.config.hasBillManage', self.config.hasBillManage)
321
321
  if (self.$login.r.includes('非民用纸质票据拆分')) {
322
- if (self.row.f_user_type === '非民用') {
322
+ if (self.row.f_user_type === '非民用' && self.model.f_print[0] !== '收费凭证') {
323
323
  self.billData.url = 'rs/report/fmy_iot_bill'
324
+ } else if (self.row.f_user_type === '非民用' && self.model.f_print[0] === '收费凭证') {
325
+ self.billData.url = 'rs/report/fmy_iot_bill_voucher'
324
326
  }
325
327
  }
328
+ if (self.model.f_print[0] === '收费凭证' && self.row.f_user_type === '民用') {
329
+ self.billData.url = 'rs/report/iot_bill_voucher'
330
+ }
326
331
  if (self.config.hasBillManage) {
327
332
  // 启用发票管理,获取票据管理中的票号并存储记录
328
333
  self.row.id = res.data.id
@@ -227,11 +227,16 @@ let asyncMachineMeterCenter = async function (self) {
227
227
  if (self.config.hasPrint) {
228
228
  if (self.data.f_print.indexOf('电子发票') == -1) {
229
229
  if (self.$login.r.includes('非民用纸质票据拆分')) {
230
- if (self.row.f_user_type === '非民用') {
230
+ if (self.row.f_user_type === '非民用' && self.data.f_print[0] !== '收费凭证') {
231
231
  self.billData.url = 'rs/report/fmy_machine_bill'
232
+ } else if (self.row.f_user_type === '非民用' && self.data.f_print[0] === '收费凭证') {
233
+ self.billData.url = 'rs/report/fmy_machine_bill_voucher'
232
234
  }
233
235
  }
234
236
  if (self.config.hasBillManage) {
237
+ if (self.data.f_print[0] === '收费凭证' && self.row.f_user_type === '民用') {
238
+ self.billData.url = 'rs/report/machine_bill_voucher'
239
+ }
235
240
  // 启用发票管理,获取票据管理中的票号并存储记录
236
241
  self.data.id = res.data
237
242
  self.data.f_bill_type = '机表收费'
@@ -241,9 +246,11 @@ let asyncMachineMeterCenter = async function (self) {
241
246
  // 如果不欠费就用下边的预存收据
242
247
  if (self.$parent.$children[0].selecteds) {
243
248
  console.log('1111111', self.$parent.$children[0].selecteds)
244
- if (self.$parent.$children[0].selectedRows === 0) {
249
+ if (self.$parent.$children[0].selectedRows === 0 && self.data.f_print[0] !== '收费凭证') {
245
250
  console.log('22222222', self.$parent.$children[0].selectedRows)
246
251
  self.billData.url = 'rs/report/pre_sell'
252
+ } else {
253
+ self.billData.url = 'rs/report/pre_sell_voucher'
247
254
  }
248
255
  // 获取选中的handplan的id
249
256
  self.data.handid = ''
@@ -251,8 +258,13 @@ let asyncMachineMeterCenter = async function (self) {
251
258
  self.data.handid = self.data.handid + "','" + row.handplan_id
252
259
  })
253
260
  } else {
254
- console.log('3333333')
255
- self.billData.url = 'rs/report/pre_sell'
261
+ console.log('2131231223123123132212131223123123123212', self.model)
262
+ if (self.data.f_print[0] === '收费凭证') {
263
+ self.billData.url = 'rs/report/pre_sell_voucher'
264
+ } else {
265
+ console.log('3333333')
266
+ self.billData.url = 'rs/report/pre_sell'
267
+ }
256
268
  self.data.handid = ''
257
269
  }
258
270
  self.data.id = res.data
@@ -285,6 +297,7 @@ let asyncMachineMeterCenter = async function (self) {
285
297
  self.$dispatch('success', '机表收费确认', self.row, self.data)
286
298
  }
287
299
  } catch (error) {
300
+ console.error(error)
288
301
  self.$showAlert(error, 'danger', 0)
289
302
  self.$dispatch('refresh')
290
303
  }
@@ -238,6 +238,9 @@ let otherChargeGen = async function (self, parameter) {
238
238
  // }
239
239
  if (self.config.hasPrint && !self.$login.r.includes('不打印发票')) {
240
240
  if (self.model.f_print[0] != '电子发票') {
241
+ if (self.model.f_print[0] === '收费凭证') {
242
+ self.billData.url = 'rs/report/otherCharge_bill_voucher'
243
+ }
241
244
  if (self.config.hasBillManage) {
242
245
  self.row.id = resid.data
243
246
  self.row.f_bill_type = '其他收费'
@@ -226,6 +226,9 @@ let overChargeGen = async function (self) {
226
226
  console.log('超用收费返回id', res)
227
227
  if (self.config.hasPrint && !self.$login.r.includes('不打印发票')) {
228
228
  if (self.model.f_print.indexOf('电子发票') == -1) {
229
+ if (self.model.f_print[0] === '收费凭证') {
230
+ self.billData.url = 'rs/report/overuse_bill_voucher'
231
+ }
229
232
  if (self.config.hasBillManage) {
230
233
  // 启用发票管理,获取票据管理中的票号并存储记录
231
234
  self.row.id = res.data
@@ -0,0 +1,356 @@
1
+ <template>
2
+ <div @keyup.enter="search" class="span">
3
+ <criteria-paged :model="model" class="list_area table_sy" v-ref:paged>
4
+ <criteria @condition-changed='$parent.search' partial='criteria' v-ref:criteria>
5
+ <div class="form-horizontal select-overspread container-fluid auto" novalidate partial>
6
+ <div class="row">
7
+
8
+ <div class="col-sm-2 form-group">
9
+ <label class="font_normal_body">指令类型</label>
10
+ <v-select :options='$parent.$parent.instructType' :value.sync="model.f_instruct_type"
11
+ close-on-select
12
+ condition="f_instruct_type='{}'"
13
+ placeholder='指令类型'
14
+ style="width: 60%"
15
+ v-model="model.f_instruct_type"></v-select>
16
+ </div>
17
+ <div class="col-sm-2 form-group">
18
+ <label class="font_normal_body">指令状态</label>
19
+ <v-select :options='$parent.$parent.instructState' :value.sync="model.f_instruct_state"
20
+ close-on-select
21
+ condition="f_instruct_state='{}'"
22
+ placeholder='指令状态'
23
+ style="width: 60%"
24
+ v-model="model.f_instruct_state"
25
+ ></v-select>
26
+ </div>
27
+
28
+ <div class="col-sm-2 form-group">
29
+ <label class="font_normal_body">开始时间</label>
30
+ <datepicker :format="'yyyy-MM-dd HH:mm:ss'"
31
+ :value.sync="model.f_start_date"
32
+ class="datepicker"
33
+ condition="f_instruct_date > '{}'"
34
+ placeholder="起始时间"
35
+ style="width: 60%"
36
+ v-model="model.f_start_date"
37
+ ></datepicker>
38
+ </div>
39
+ <div class="col-sm-2 form-group">
40
+ <label class="font_normal_body">结束时间</label>
41
+ <datepicker :format="'yyyy-MM-dd HH:mm:ss'"
42
+ :value.sync="model.f_end_date"
43
+ class="datepicker"
44
+ condition="f_instruct_date < '{}'"
45
+ placeholder="结束时间"
46
+ style="width: 60%"
47
+ v-model="model.f_end_date"
48
+ ></datepicker>
49
+ </div>
50
+ <div style="float: right">
51
+ <button @click="search()" class="button_search" v-el:cba>查询</button>
52
+ </div>
53
+ </div>
54
+
55
+ </div>
56
+ </criteria>
57
+ <data-grid :model="model" class="list_area table_sy" partial='list' v-ref:grid>
58
+ <template partial='head'>
59
+ <tr>
60
+ <th style="text-align:center;">
61
+ <nobr>指令类型</nobr>
62
+ </th>
63
+ <th style="text-align:center;">
64
+ <nobr>指令内容</nobr>
65
+ </th>
66
+ <th style="text-align:center;">
67
+ <nobr>指令状态</nobr>
68
+ </th>
69
+ <th style="text-align:center;">
70
+ <nobr>指令生成时间</nobr>
71
+ </th>
72
+ <th style="text-align:center;">
73
+ <nobr>指令发送时间</nobr>
74
+ </th>
75
+ <th style="text-align:center;">
76
+ <nobr>指令上表时间</nobr>
77
+ </th>
78
+ <th style="text-align:center;">
79
+ <nobr>操作人</nobr>
80
+ </th>
81
+ <th style="text-align:center;">
82
+ <nobr>操作时间(记录)</nobr>
83
+ </th>
84
+ <th style="text-align:center;">
85
+ <nobr>操作类型</nobr>
86
+ </th>
87
+ <!-- 查这里-->
88
+ <th style="text-align:center;">
89
+ <nobr>操作状态</nobr>
90
+ </th>
91
+ <th style="text-align:center;">
92
+ <nobr>操作人(记录)</nobr>
93
+ </th>
94
+ <th style="text-align:center;">
95
+ <nobr>操作内容</nobr>
96
+ </th>
97
+ <th style="text-align:center;">
98
+ <nobr>操作/指令状态</nobr>
99
+ </th>
100
+ <!--<th style="text-align:center;"><nobr>发送原因</nobr></th>
101
+ <th style="text-align:center;"><nobr>取消原因</nobr></th>-->
102
+ <th style="text-align:center;">
103
+ <nobr>备注信息</nobr>
104
+ </th>
105
+ <th style="text-align:center;" v-if="['HaiLiSystem','BoGuanSystem'].includes( $parent.$parent.$parent.row.f_alias)">
106
+ <!-- <th style="text-align:center;">-->
107
+ <nobr>写卡操作</nobr>
108
+ </th>
109
+ </tr>
110
+ </template>
111
+ <template partial='body'>
112
+ <tr>
113
+ <td style="text-align:center;">
114
+ <nobr>{{row.f_instruct_type}}</nobr>
115
+ </td>
116
+ <td style="text-align:center;">
117
+ <nobr>{{row.f_instruct_title}}</nobr>
118
+ </td>
119
+ <td style="text-align:center;">
120
+ <nobr>{{row.f_instruct_state}}</nobr>
121
+ </td>
122
+ <td style="text-align:center;">
123
+ <nobr>{{row.f_instruct_date}}</nobr>
124
+ </td>
125
+ <td style="text-align:center;">
126
+ <nobr>{{row.f_send_date}}</nobr>
127
+ </td>
128
+ <td style="text-align:center;">
129
+ <nobr>{{row.f_callback_date}}</nobr>
130
+ </td>
131
+ <td style="text-align:center;">
132
+ <nobr>{{row.f_inputtor}}</nobr>
133
+ </td>
134
+ <td style="text-align:center;">
135
+ <nobr>{{row.f_operate_date}}</nobr>
136
+ </td>
137
+ <td style="text-align:center;">
138
+ <nobr>{{row.f_type}}</nobr>
139
+ </td>
140
+ <!-- 这里-->
141
+ <td style="text-align:center;">
142
+ <nobr>{{$parent.$parent.$parent.stateFlow(row)}}</nobr>
143
+ <!-- <nobr>{{row.f_state}}</nobr>-->
144
+ </td>
145
+ <td style="text-align:center;">
146
+ <nobr>{{row.f_operator}}</nobr>
147
+ </td>
148
+ <td style="text-align:center;">
149
+ <nobr>{{row.f_operator_data}}</nobr>
150
+ </td>
151
+ <td style="text-align:center;" v-if="row.f_instruct_state === '待发送' && row.f_instruct_state !== '取消发送'">
152
+ <nobr>
153
+ {{row.f_instruct_state}}
154
+ <button v-if="$login.r.includes('取消指令')" @click="$parent.$parent.$parent.backSend(row)" class="button_search" style="margin-left:1rem" v-el:cba>取消指令</button>
155
+ </nobr>
156
+ </td>
157
+ <td style="text-align:center;" v-if="row.f_instruct_state !== '待发送' && row.f_instruct_state !== '取消发送'">
158
+ <nobr>
159
+ {{row.f_receive_state}}
160
+
161
+ <button v-if="$login.r.includes('指令重发')" @click="$parent.$parent.$parent.reSend(row)" class="button_search" style="margin-left:1rem" v-el:cba>指令重发</button>
162
+ </nobr>
163
+ </td>
164
+ <td style="text-align:center;" v-if="row.f_instruct_state === '取消发送'">
165
+ <nobr>
166
+ <span title="操作人:{{row.f_cancel_inputtor}},操作原因:{{row.f_comments}}">已取消</span>
167
+ </nobr>
168
+ </td>
169
+ <!-- <td style="text-align:center;"><nobr>{{row.f_info}}</nobr></td>
170
+ <td style="text-align:center;"><nobr>{{row.f_comments}}</nobr></td>-->
171
+ <td style="text-align:center;">
172
+ <nobr><span >{{row.f_info}}</span></nobr>
173
+ </td>
174
+ <th style="text-align:center;" v-if="['HaiLiSystem','BoGuanSystem'].includes( $parent.$parent.$parent.row.f_alias)">
175
+ <!-- <th style="text-align:center;">-->
176
+ <button @click.stop='$parent.$parent.$parent.instructWriteCard(row)'
177
+ class="button_search" type="button"
178
+ v-show="row.f_instruct_type === '远程充值'">写卡</button>
179
+ </th>
180
+ </tr>
181
+ </template>
182
+ </data-grid>
183
+ </criteria-paged>
184
+ <modal :show.sync="handcental" backdrop="false" v-ref:modal>
185
+ <header class="modal-header" slot="modal-header">
186
+ <h4 class="modal-title">取消发送</h4>
187
+ </header>
188
+ <article class="modal-body" slot="modal-body">
189
+ <div class="form-group">
190
+ <label class="font_normal_body" >取消发送原因</label>
191
+ <textarea class="form-control" placeholder="请填写取消发送原因" rows="3" v-model="cancelreason"></textarea>
192
+ </div>
193
+ </article>
194
+ <footer class="modal-footer" slot="modal-footer">
195
+ <button @click='close' class="btn btn-default" type="button" v-show="handcental">取消</button>
196
+ <button @click='confirmcenta()' class="button_search" type="button" v-show="handcental">确认</button>
197
+ </footer>
198
+ </modal>
199
+ </div>
200
+
201
+ </template>
202
+ <script>
203
+ import {HttpResetClass, PagedList} from 'vue-client'
204
+ import Vue from 'vue'
205
+
206
+ export default {
207
+ title: '指令查看',
208
+ name: 'Querylnstruct',
209
+ props: {
210
+ row: {},
211
+ tablename: {
212
+ type: String,
213
+ default: 't_instruct'
214
+ },
215
+ orderitem: {
216
+ type: String,
217
+ default: 'f_instruct_date desc'
218
+ },
219
+ items: {
220
+ type: String,
221
+ default: '*'
222
+ }
223
+ },
224
+ data () {
225
+ return {
226
+ handcental: false,
227
+ cancelreason: '',
228
+ cancelid: '',
229
+ f_userfiles_id: '',
230
+ model: new PagedList('rs/sql/insturctDetailQuery', 30, {f_userfiles_id: this.row.f_userfiles_id}),
231
+ row: null,
232
+ searchshow: false,
233
+ show: false,
234
+ maxId: ''
235
+ }
236
+ },
237
+
238
+ async ready () {
239
+ console.log(this.$login.r)
240
+ await this.$refs.paged.$refs.criteria.search()
241
+ // if (this.row.f_meter_brand === '承德NB物联网表') {
242
+ // // if (true) {
243
+ // let http = new HttpResetClass()
244
+ // let getMax = await http.load('POST', 'rs/sql/querySingleTable', {data: {items: 'max(id) id',
245
+ // tablename: 't_instruct',
246
+ // condition: ` f_userfiles_id='${this.row.f_userfiles_id}' `
247
+ // }}, {resolveMsg: null, rejectMsg: null})
248
+ // this.maxId = getMax.data[0].id
249
+ // }
250
+ },
251
+ watch: {
252
+ 'row' (val) {
253
+ this.f_userfiles_id = val.f_userfiles_id
254
+ if (this.row != null) {
255
+ this.$refs.paged.$refs.criteria.search()
256
+ }
257
+ }
258
+ },
259
+ methods: {
260
+ async instructWriteCard (row) {
261
+ let res = await this.$CardService.instructWriteCard(this.row)
262
+ if (res) {
263
+ let sql = `update t_instruct set f_instruct_state = '执行成功' WHERE id = ${row.id}`
264
+ await this.$resetpost('rs/logic/runSQL', {sql: sql}, {resolveMsg: '操作成功', rejectMsg: '操作失败'})
265
+ await this.$refs.paged.$refs.criteria.search()
266
+ }
267
+ },
268
+ async reSend (param) {
269
+ let data = {
270
+ id: param.id,
271
+ f_user_name: this.row.f_user_name,
272
+ f_userinfo_id: param.f_userinfo_id,
273
+ operateInfo: {
274
+ f_operator: Vue.$login.f.name,
275
+ f_operatorid: Vue.$login.f.id,
276
+ f_orgid: Vue.$login.f.orgid,
277
+ f_orgname: Vue.$login.f.orgs,
278
+ f_depid: Vue.$login.f.depids,
279
+ f_depname: Vue.$login.f.deps,
280
+ f_zoneid: Vue.$login.f.zoneid,
281
+ f_zones: Vue.$login.f.zones
282
+ }
283
+ }
284
+ await this.$resetpost('rs/logic/iotResendInstruct', {data: data}, {resolveMsg: '操作成功', rejectMsg: '操作失败'})
285
+ this.$refs.paged.$refs.criteria.search()
286
+ },
287
+ stateFlow: function (row) {
288
+ console.log(row)
289
+ let state = ''
290
+ if (row.f_instruct_type.includes('阀门控制')) {
291
+ let content = JSON.parse(row.f_instruct_content)
292
+ if (content.isOpen !== null) {
293
+ if (content.isOpen === 1) {
294
+ state = '开阀'
295
+ } else if (content.isOpen === 0) {
296
+ state = '关阀'
297
+ } else {
298
+ state = row.f_state
299
+ }
300
+ return state
301
+ }
302
+ } else {
303
+ return row.f_state
304
+ }
305
+ },
306
+ clickshow () {
307
+ this.searchshow = !this.searchshow
308
+ },
309
+ backSend (megrow) {
310
+ if (megrow.f_inputtor != '系统必需') {
311
+ this.handcental = true
312
+ this.cancelid = megrow.id
313
+ } else {
314
+ this.$showAlert('该指令为系统必需状态,无法取消发送。', 'warning', 3000)
315
+ }
316
+ },
317
+ confirmcenta () {
318
+ let send = {
319
+ id: this.cancelid, // 当前记录ID
320
+ f_cancel_inputtor_id: this.$login.f.id, // 撤销人id
321
+ f_cancel_inputtor: this.$login.f.name, // 撤销人姓名
322
+ f_instruct_state: '取消发送',
323
+ f_comments: this.cancelreason
324
+ }
325
+ let param = {
326
+ tablename: 't_instruct',
327
+ basedata: send
328
+ }
329
+ this.$resetpost('rs/logic/iot_saveTable', param).then(() => {
330
+ // this.params.rows.splice(index, 1)
331
+ console.log('更新成功!')
332
+ })
333
+ this.handcental = false
334
+ this.$refs.paged.$refs.criteria.search()
335
+ },
336
+ search (arg) {
337
+ arg.condition = `${arg.condition} and f_userfiles_id='${this.row.f_userfiles_id}'`
338
+ this.model.search(arg.condition, arg.model)
339
+ }
340
+ },
341
+ computed: {
342
+ instructType () {
343
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('指令类型')]
344
+ },
345
+ instructState () {
346
+ return [{label: '全部', value: ''}, ...this.$appdata.getParam('指令状态')]
347
+ }
348
+ }
349
+ }
350
+ </script>
351
+ <style>
352
+ .form-input-group label {
353
+ text-align: right;
354
+ width: auto;
355
+ }
356
+ </style>
@@ -37,4 +37,6 @@ export default function () {
37
37
  Vue.component('meter-charge-record-query', (resolve) => { require(['./ChargeRecordQuery'], resolve) })
38
38
  // pos对账界面
39
39
  Vue.component('wechat-validate-manage', (resolve) => { require(['./wechatValidateManage.vue'], resolve) })
40
+ // pos对账界面
41
+ Vue.component('query-instruct', (resolve) => { require(['./QueryInstruct.vue'], resolve) })
40
42
  }
@@ -1030,6 +1030,7 @@ export default {
1030
1030
  console.log('下发参数:', param)
1031
1031
  if (this.danhu.info.f_meter_classify === '物联网表' && this.webhand) {
1032
1032
  param.f_meter_base = this.danhu.f_tablebase
1033
+ param.f_input_person = this.$login.f.name
1033
1034
  param.f_hand_date = this.downModel.downDate
1034
1035
  param.f_userfiles_id = param.userfilesid
1035
1036
  this.$resetpost('rs/logic/iotSettlement', {data: param}, {resolveMsg: '单户抄表成功', rejectMsg: '单户抄表失败'}).then((res)=>{