sale-client 3.6.297 → 3.6.298

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sale-client",
3
- "version": "3.6.297",
3
+ "version": "3.6.298",
4
4
  "description": "收费模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -244,9 +244,21 @@
244
244
  <h4 class="modal-title" align="center">阀控管理</h4>
245
245
  </header>
246
246
  <article slot="modal-body" class="modal-body">
247
+ <div class="form-group" style="padding-left: 8px">
248
+ <label >阀控状态</label>
249
+ <div class="col-sm-3" >
250
+ <select v-model="selectedOption" class="input_search">
251
+ <option value="">请选择</option>
252
+ <option v-for="option in networkValveOptions" :value="option">
253
+ {{ option }}
254
+ </option>
255
+ </select>
256
+ </div>
257
+ </div>
258
+
247
259
  <div class="form-group " style="padding-left: 8px">
248
260
  <label class="font_normal_body" :class="operateReason?'text-info':'text-danger'">操作原因</label>
249
- <textarea class="form-control" style="width:80%" v-model="operateReason" rows="3"
261
+ <textarea class="form-control" style="width:80%" v-model="operateReason" rows="1"
250
262
  placeholder="请填写操作原因"></textarea>
251
263
  </div>
252
264
  </article>
@@ -254,7 +266,6 @@
254
266
  <button type="button" class="button_search btn-ln fr" :disabled="!operateReason" @click='valveoperate(true)'>
255
267
  开阀
256
268
  </button>
257
- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
258
269
  <button type="button" class="btn btn-info btn-ln fr" :disabled="!operateReason" @click='valveoperate(false)'>
259
270
  关阀
260
271
  </button>
@@ -319,6 +330,16 @@ export default {
319
330
  },
320
331
  data () {
321
332
  return {
333
+ selectedOption: '手动',
334
+ delaySeconds: '',
335
+ networkValveOptions: [
336
+ '手动',
337
+ '自动',
338
+ '1小时后自动',
339
+ '3小时后自动',
340
+ '6小时后自动',
341
+ '12小时后自动',
342
+ ],
322
343
  showModal: false,
323
344
  disableModel: {
324
345
  f_othereason: '',
@@ -503,8 +524,16 @@ export default {
503
524
  this.operateReason = ''
504
525
  },
505
526
  // 开关阀操作
506
- async valveoperate (oper) {
507
- let msg = oper ? '开阀' : '关阀'
527
+ // 开关阀操作
528
+ async valveoperate(oper) {
529
+ let msg = oper ? '开阀' : '关阀';
530
+ let delaySeconds = 0; // 初始化 delaySeconds 变量
531
+ let currentTime = new Date(); // 获取当前时间
532
+ let adjustedTime = new Date(currentTime); // 创建一个新的 Date 对象用于计算延迟后的时间
533
+
534
+ let beijingTime = new Date(currentTime.getTime() + 8 * 60 * 60 * 1000);
535
+ let formattedBeijingTime = beijingTime.toISOString().slice(0, 19).replace('T', ' ');
536
+
508
537
  let datas = {
509
538
  instructType: '阀门控制',
510
539
  instructTitle: `手动${msg}`,
@@ -515,24 +544,68 @@ export default {
515
544
  inputtorid: Vue.$login.f.id,
516
545
  reasonInfo: this.operateReason,
517
546
  meternumberf: this.row.f_meternumber,
518
- contentData: {isOpen: oper ? 1 : 0}
547
+ contentData: { isOpen: oper ? 1 : 0 },
548
+ auto_adjust_option: this.selectedOption,
549
+ delaySeconds: delaySeconds,
550
+ executeDelayedOperation: true,
551
+ f_timestamp: formattedBeijingTime, // 使用北京时间
552
+ f_userfiles_id: this.row.f_userfiles_id,
553
+ f_userinfo_id: this.row.f_userinfo_id,
554
+ };
555
+
556
+ let _this = this;
557
+
558
+ // 计算延迟时间
559
+ switch (_this.selectedOption) {
560
+ case '1小时后自动':
561
+ delaySeconds = 60; // 1小时 = 3600秒
562
+ break;
563
+ case '3小时后自动':
564
+ delaySeconds = 10800; // 3小时 = 10800秒
565
+ break;
566
+ case '6小时后自动':
567
+ delaySeconds = 21600; // 6小时 = 21600秒
568
+ break;
569
+ case '12小时后自动':
570
+ delaySeconds = 43200; // 12小时 = 43200秒
571
+ break;
572
+ default:
573
+ delaySeconds = 0;
519
574
  }
520
- let _this = this
521
- await this.$resetpost('rs/sql/iot_searchInstruct', {data: datas},
522
- {warnMsg: null, resolveMsg: null}).then(res => {
575
+
576
+ adjustedTime.setSeconds(adjustedTime.getSeconds() + delaySeconds);
577
+ let adjustedBeijingTime = new Date(adjustedTime.getTime() + 8 * 60 * 60 * 1000);
578
+ let formattedAdjustedBeijingTime = adjustedBeijingTime.toISOString().slice(0, 19).replace('T', ' ');
579
+
580
+ // 更新 datas 对象
581
+ datas.delaySeconds = delaySeconds;
582
+ datas.f_current_timestamp = formattedAdjustedBeijingTime; // 使用延迟后的北京时间
583
+
584
+ await this.$resetpost('rs/sql/iot_searchInstruct', { data: datas }, { warnMsg: null, resolveMsg: null }).then(res => {
523
585
  if (res.data.length === 0) {
524
- _this.$resetpost('rs/logic/iot_saveInstruct', {data: datas},
525
- {warnMsg: `确定要进行${msg}操作吗?`, resolveMsg: `${msg}成功`, rejectMsg: `${msg}失败`}).then(res => {
526
- _this.valve = false
527
- _this.operateReason = ''
528
- })
586
+ _this.$resetpost('rs/logic/iot_saveInstruct', { data: datas }, {
587
+ warnMsg: `确定要进行${msg}操作吗?`,
588
+ resolveMsg: `${msg}成功`,
589
+ rejectMsg: `${msg}失败`
590
+ }).then(res => {
591
+ _this.valve = false;
592
+ _this.operateReason = '';
593
+ if (_this.selectedOption !== '手动') {
594
+ _this.$showAlert(`阀控状态将在${_this.selectedOption}后自动调整为“自动”`, 'info', 3000);
595
+
596
+ _this.$resetpost('rs/logic/iot_processDelayedOperations', { data: datas }, { warnMsg: null, resolveMsg: null }).then(res => {
597
+ console.log('延时操作逻辑已执行');
598
+ });
599
+ }
600
+ });
529
601
  } else {
530
- this.$showAlert('存在开关阀待发送的指令,系统不生成同样的待发送指令', 'warning', 3000)
531
- _this.valve = false
532
- _this.operateReason = ''
602
+ this.$showAlert('存在开关阀待发送的指令,系统不生成同样的待发送指令', 'warning', 3000);
603
+ _this.valve = false;
604
+ _this.operateReason = '';
533
605
  }
534
- })
606
+ });
535
607
  }
608
+
536
609
  },
537
610
  watch: {
538
611
  'row' () {
@@ -75,7 +75,7 @@
75
75
  </div>
76
76
  <div class="row" v-if="data.f_meter_type.includes('物联网') && data.f_collection_type === '按金额'">
77
77
  <label class = "col-sm-5 " style="color: brown">系统余额</label>
78
- <span class = "col-sm-7" style="color: brown">{{data?data.f_balance_amount:dafault.f_balance_amount}}</span>
78
+ <span class = "col-sm-7" style="color: brown">{{data?data.f_jval:dafault.f_jval}}</span>
79
79
  </div>
80
80
  <div class="row" v-if="data.f_meter_type.includes('物联网') && data.f_collection_type === '按气量'">
81
81
  <label class = "col-sm-5 " style="color: brown">系统余量</label>
@@ -116,7 +116,7 @@
116
116
  <div class="col-sm-6 form-group form-input-group" :class="[!row.f_paper_name ? 'has-error' : '']">
117
117
  <label class="control-label" style="width: 100px">开票名称:</label>
118
118
  <input class="form-control col-sm-2"
119
- v-model="row.f_paper_name" placeholder="开票名称">
119
+ v-model="row.f_paper_name" placeholder="开票名称" :disabled="true">
120
120
  </div>
121
121
  <div class="col-sm-6 form-group form-input-group" :class="[!invoice_is_pax ? 'has-error' : '']">
122
122
  <nobr class="col-sm-4"><label class="control-label" style="width: 100px">是否征税:</label></nobr>
@@ -231,9 +231,10 @@
231
231
  if (!this.row.f_taxpayer_id) {
232
232
  this.row.f_taxpayer_id = this.row.f_idnumber
233
233
  }
234
- if (!this.row.f_paper_name) {
235
- this.row.f_paper_name = this.row.f_user_name
236
- }
234
+ // 要求开票名称跟档案里的用户名一致,所以这里直接赋值,不判断是否有值
235
+ // if (!this.row.f_paper_name) {
236
+ this.row.f_paper_name = this.row.f_user_name
237
+ // }
237
238
  if (!this.row.f_address_phone) {
238
239
  this.row.f_address_phone = this.row.f_address + ' ' + this.row.f_user_phone
239
240
  }
@@ -268,9 +269,10 @@
268
269
  if (!this.row.f_taxpayer_id) {
269
270
  this.row.f_taxpayer_id = this.row.f_idnumber
270
271
  }
271
- if (!this.row.f_paper_name) {
272
- this.row.f_paper_name = this.row.f_user_name
273
- }
272
+ // 要求开票名称跟档案里的用户名一致,所以这里直接赋值,不判断是否有值
273
+ // if (!this.row.f_paper_name) {
274
+ this.row.f_paper_name = this.row.f_user_name
275
+ // }
274
276
  if (!this.row.f_address_phone) {
275
277
  this.row.f_address_phone = this.row.f_address + ' ' + this.row.f_user_phone
276
278
  }
@@ -0,0 +1,350 @@
1
+ <template>
2
+ <div class="auto basic-main" style="height:95%">
3
+ <criteria-paged :model="model" v-ref:paged>
4
+ <criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
5
+ <div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
6
+ <div class="row">
7
+ <div class="form-group col-sm-2">
8
+ <label class="font_normal_body">客户编号</label>
9
+ <input type="text" class="form-control" v-model="model.f_userinfo_code" style="width:60%"
10
+ condition="info.f_userinfo_code = '{}' " placeholder="客户编号"
11
+ >
12
+ </div>
13
+ <div class="form-group col-sm-2">
14
+ <label class="font_normal_body">用户姓名</label>
15
+ <input type="text" class="form-control" v-model="model.f_user_name" style="width:60%"
16
+ condition="info.f_user_name = '{}'" placeholder="用户姓名"
17
+ >
18
+ </div>
19
+ <div class="form-group col-sm-2">
20
+ <label class="font_normal_body">是否有票</label>
21
+ <v-select
22
+ v-model="model.mid"
23
+ placeholder='是否有票'
24
+ :search="false"
25
+ condition="mid.count {} "
26
+ :value.sync="model.mid"
27
+ :options='$parent.$parent.mid'
28
+ close-on-select></v-select>
29
+ </div>
30
+ <div class="row" width="100%">
31
+ <div class="col-sm-4 col-sm-2">
32
+ <label class="font_normal_body">&nbsp;开始时间</label>
33
+ <datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_start_date"
34
+ class="datepicker"
35
+ condition="s.f_operate_date >= '{} 00:00:00'"
36
+ placeholder="起始时间"
37
+ style="width:60%"
38
+ v-model="model.f_start_date"
39
+ ></datepicker>
40
+ </div>
41
+ <div class="col-sm-4 col-sm-2">
42
+ <label class="font_normal_body">结束时间</label>
43
+ <datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_end_date"
44
+ class="datepicker"
45
+ condition="s.f_operate_date <= '{} 23:59:59'"
46
+ placeholder="结束时间"
47
+ style="width:60%"
48
+ v-model="model.f_end_date"
49
+ ></datepicker>
50
+ </div>
51
+ <div style="float: right">
52
+ <button class="button_search" @click="search()">查 询</button>
53
+ <button class="button_search" @click="$parent.$parent.open_eTicket()">开票</button>
54
+ </div>
55
+ </div>
56
+ </div>
57
+ </div>
58
+ </criteria>
59
+ <data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid>
60
+ <template partial='head'>
61
+ <tr>
62
+ <th>
63
+ <input type="checkbox" @click="$parent.$parent.$parent.addOrRemove($parent.$parent.$parent.selectAll)"
64
+ style="width: 22px;height: 22px" :checked="$parent.$parent.$parent.selectAll">
65
+ </th>
66
+ <th>客户编号</th>
67
+ <th>客户姓名</th>
68
+ <th>客户地址</th>
69
+ <th>客户电话</th>
70
+ <th>缴费类型</th>
71
+ <th>实收金额</th>
72
+ <th>收款人</th>
73
+ <th>收款部门</th>
74
+ <th>是否开过票</th>
75
+ <th>缴费时间</th>
76
+ <th>操作</th>
77
+ </tr>
78
+ </template>
79
+ <template partial='body' :model="model">
80
+ <tr>
81
+ <td style="text-align:center">
82
+ <input type="checkbox" v-model="$parent.$parent.$parent.selecteds" :value="row"
83
+ style="width: 22px;height: 22px" @click="$parent.$parent.$parent.checkbox($index, $event)">
84
+ </td>
85
+ <th style="text-align:center">{{ row.f_userinfo_code }}</th>
86
+ <th style="text-align:center">{{ row.f_user_name }}</th>
87
+ <th style="text-align:center">{{ row.f_address }}</th>
88
+ <th style="text-align:center">{{ row.f_phone }}</th>
89
+ <th style="text-align:center">{{ row.f_type }}</th>
90
+ <th style="text-align:center">{{ row.f_collection }}</th>
91
+ <th style="text-align:center">{{ row.f_operator }}</th>
92
+ <th style="text-align:center">{{ row.f_depname }}</th>
93
+ <th style="text-align:center">{{ row.is_bill }}</th>
94
+ <th style="text-align:center">{{ row.f_operate_date }}</th>
95
+ <th>
96
+ <button class="btn btn-link" @click="$parent.$parent.$parent.kp(row)">开具发票</button>
97
+ </th>
98
+ </tr>
99
+ </template>
100
+ </data-grid>
101
+ </criteria-paged>
102
+ </div>
103
+ <modal :show.sync="eticket_msg" v-ref:modal large backdrop="false" :width="900">
104
+ <header slot="modal-header" class="modal-header">
105
+ <button type="button" class="close" @click="eticket_msg = false"><span>&times;</span></button>
106
+ <h4 class="modal-title">发票信息</h4>
107
+ </header>
108
+ <article slot="modal-body" class="modal-body">
109
+ <div class="auto select-overspread form-horizontal">
110
+ <div class="row auto">
111
+ <div class="col-sm-6 form-group form-input-group" :class="[!row.f_paper_name ? 'has-error' : '']">
112
+ <label class="control-label" style="width: 100px">开票名称:</label>
113
+ <input class="form-control col-sm-2"
114
+ v-model="row.f_paper_name" placeholder="开票名称" :disabled="true">
115
+ </div>
116
+ <div class="col-sm-6 form-group form-input-group" :class="[!invoice_is_pax ? 'has-error' : '']">
117
+ <nobr class="col-sm-4">
118
+ <label class="control-label" style="width: 100px">是否征税:</label>
119
+ </nobr>
120
+ <v-select v-model="invoice_is_pax"
121
+ placeholder='请选择'
122
+ :value.sync="invoice_is_pax"
123
+ close-on-select
124
+ :width="60"
125
+ :value-single="true"
126
+ :search="false"
127
+ :options='is_pax' clear-button>
128
+ </v-select>
129
+ </div>
130
+ <div class="col-sm-6 form-group form-input-group" :class="[!row.f_paper_type || !row.f_paper_type === '' ? 'has-error' : '']">
131
+ <label class="control-label" style="width: 100px">发票种类:</label>
132
+ <v-select v-model="row.f_paper_type"
133
+ placeholder='请选择'
134
+ :value.sync="row.f_paper_type"
135
+ close-on-select
136
+ :width="60"
137
+ :value-single="true"
138
+ :search="false"
139
+ :options='invoice_types' clear-button>
140
+ </v-select>
141
+ </div>
142
+ <div class="col-sm-12 form-group form-input-group">
143
+ <label class="control-label" style="width: 100px">开户行及账号:</label>
144
+ <input class="form-control col-sm-2"
145
+ v-model="row.f_paper_account" placeholder="购方开户行及账号">
146
+ </div>
147
+ <div class="col-sm-12 form-group form-input-group" >
148
+ <label class="control-label" style="width: 100px">纳税人识别号:</label>
149
+ <input class="form-control col-sm-2"
150
+ v-model="row.f_taxpayer_id" placeholder="纳税人识别号">
151
+ </div>
152
+ <div class="col-sm-12 form-group form-input-group" :class="[!row.f_address_phone ? 'has-error' : '']">
153
+ <label class="control-label" style="width: 100px">开票地址电话:</label>
154
+ <input class="form-control col-sm-2"
155
+ v-model="row.f_address_phone" placeholder="开票地址">
156
+ </div>
157
+ <div class="col-sm-12 form-group form-input-group">
158
+ <label class="control-label" style="width: 100px">邮箱推送:</label>
159
+ <input class="form-control col-sm-2"
160
+ v-model="row.f_email" placeholder="邮箱推送">
161
+ </div>
162
+ <div class="col-sm-12 form-group form-input-group">
163
+ <label class="control-label" style="width: 100px">备注:</label>
164
+ <input class="form-control col-sm-2"
165
+ v-model="row.f_remarks" placeholder="备注">
166
+ </div>
167
+ </div>
168
+ </div>
169
+ </article>
170
+ <footer slot="modal-footer" class="modal-footer">
171
+ <button type="button" class="btn button_search"
172
+ :disabled="!(row.f_paper_name&&row.f_paper_type&&invoice_is_pax&&row.f_paper_type!== '')"
173
+ @click='confirm'>确认开票
174
+ </button>
175
+ </footer>
176
+ </modal>
177
+ <ticket-print :show="eticket_show" @toggle="eticket_toggle" v-ref:eticketbill></ticket-print>
178
+ </template>
179
+ <script>
180
+ import {HttpResetClass, PagedList} from 'vue-client'
181
+ import * as Util from '../../../Util'
182
+ let asyncReadyGen = async function (self) {
183
+ self.$refs.paged.$refs.cri.model.f_start_date = Util.toStandardDateString().substr(0, 5) + '01-01'
184
+ self.$refs.paged.$refs.cri.model.f_end_date = Util.toStandardDateString()
185
+ await self.search()
186
+ }
187
+ export default {
188
+ title: '发票管理',
189
+ data () {
190
+ return {
191
+ model: new PagedList('rs/sql/open_eTicket_cardQuery', 20,
192
+ {}),
193
+ criteriaShow: false,
194
+ getfield: {},
195
+ f_orgid: '',
196
+ other: [],
197
+ footer: [],
198
+ invoice_types: this.$appdata.getParam('发票种类'),
199
+ invoice_is_pax: '征税',
200
+ is_pax: [{label: '征税', value: '征税'}, {label: '不征税', value: '不征税'}],
201
+ initres: {
202
+ org: [this.$login.f.orgid],
203
+ dep: [],
204
+ user: []
205
+ },
206
+ eticket_show: false,
207
+ selectAll: false,
208
+ selecteds: [],
209
+ orgCondtionStr: '',
210
+ // 合计数据
211
+ sumsmodel: {},
212
+ msg: [],
213
+ orgname: [],
214
+ depname: [],
215
+ eticket_msg: false,
216
+ invoice_show_gas: '否',
217
+ show_gas: [{label: '是', value: '是'}, {label: '否', value: '否'}],
218
+ row: {},
219
+ mid: [{label: '全部', value: ''}, {label: '是', value: ' > 0 '}, {label: '否', value: ' is null'}]
220
+ }
221
+ },
222
+ ready () {
223
+ asyncReadyGen(this)
224
+ },
225
+ methods: {
226
+ search () {
227
+ this.$refs.paged.$refs.cri.search()
228
+ },
229
+ async kp (row) {
230
+ let HttpReset = new HttpResetClass()
231
+ let _row = await HttpReset.load('POST', 'rs/sql/sale_getUser', {
232
+ data: {
233
+ orderitem: 'f_userinfo_code',
234
+ condition: `f_userinfo_code = '${row.f_userinfo_code}'`
235
+ }
236
+ }, {resolveMsg: null, rejectMsg: '获取地址失败!'})
237
+ this.row = _row.data[0]
238
+ this.row.id = row.id
239
+ this.invoice_show_gas = this.row.f_collection_type === '按气量' ? '是' : '否'
240
+ if (!this.row.f_taxpayer_id) {
241
+ this.row.f_taxpayer_id = this.row.f_idnumber
242
+ }
243
+ // 要求开票名称跟档案里的用户名一致,所以这里直接赋值,不判断是否有值
244
+ // if (!this.row.f_paper_name) {
245
+ this.row.f_paper_name = this.row.f_user_name
246
+ // }
247
+ if (!this.row.f_address_phone) {
248
+ this.row.f_address_phone = this.row.f_address + ' ' + this.row.f_user_phone
249
+ }
250
+ this.eticket_msg = true
251
+ },
252
+ async open_eTicket () {
253
+ if ([...new Set(this.selecteds.map(item => item.f_userinfo_code))].length > 1) {
254
+ this.$showAlert('所选择用户不是同一用户!!', 'warning', 2000)
255
+ return
256
+ }
257
+ if (this.selecteds.filter(item => item.is_bill === '是').length >= 1) {
258
+ // await this.$showMessage('选中的有已开过票得记录,确认开票吗?', ['confirm', 'cancel']).then(
259
+ // (response) => {
260
+ // if (response !== 'confirm') {
261
+ //
262
+ // }
263
+ // })
264
+ return this.$showAlert('已结算的记录不能再次结算开票', 'warning', 3000)
265
+ }
266
+ let HttpReset = new HttpResetClass()
267
+ let row = await HttpReset.load('POST', 'rs/sql/sale_getUser', {
268
+ data: {
269
+ orderitem: 'f_userinfo_code',
270
+ condition: `f_userinfo_code = '${[...new Set(this.selecteds.map(item => item.f_userinfo_code))][0]}'`
271
+ }
272
+ }, {resolveMsg: null, rejectMsg: '获取地址失败!'})
273
+ this.row = row.data[0]
274
+ this.invoice_show_gas = this.row.f_collection_type === '按气量' ? '是' : '否'
275
+ if (!this.row.f_taxpayer_id) {
276
+ this.row.f_taxpayer_id = this.row.f_idnumber
277
+ }
278
+ // 要求开票名称跟档案里的用户名一致,所以这里直接赋值,不判断是否有值
279
+ // if (!this.row.f_paper_name) {
280
+ this.row.f_paper_name = this.row.f_user_name
281
+ // }
282
+ if (!this.row.f_address_phone) {
283
+ this.row.f_address_phone = this.row.f_address + ' ' + this.row.f_user_phone
284
+ }
285
+ this.eticket_msg = true
286
+ },
287
+ confirm () {
288
+ this.eticket_msg = false
289
+ this.eticket_show = true
290
+ this.$refs.eticketbill.openETicket(this.selecteds.map(item => item.id), this.row, '结算收费', this.row.f_paper_type, false, this.invoice_is_pax)
291
+ },
292
+ selfSearch (args) {
293
+ this.selecteds = []
294
+ // let f_orgstr = this.orgCondtionStr
295
+ // args.condition = `${args.condition} ` + f_orgstr
296
+ this.model.search(args.condition, args.model)
297
+ },
298
+ eticket_toggle () {
299
+ this.eticket_show = false
300
+ this.search()
301
+ },
302
+ addOrRemove (is) {
303
+ this.selecteds = []
304
+ if (!is) { // 添加本页所有数据到ids中
305
+ this.model.rows.forEach((row) => {
306
+ this.selecteds.push(row)
307
+ })
308
+ this.selectAll = true
309
+ } else { // 从ids中取消所有的数据
310
+ this.model.rows.forEach((row, index) => {
311
+ if (index <= this.maxIndex) {
312
+ this.selecteds.push(row)
313
+ }
314
+ })
315
+ this.selectAll = false
316
+ }
317
+ },
318
+ checkbox (val, event) {
319
+ // this.selecteds = []
320
+ if (event.target.checked === true) {
321
+ // for (let i = 0; i <= val; i++) {
322
+ this.selecteds.push(this.model.rows[val])
323
+ // }
324
+ } else if (event.target.checked === false) {
325
+ // for (let i = 0; i <= val - 1; i++) {
326
+ this.selecteds.splice(this.selecteds.findIndex(item => item.id === this.model.rows[val].id), 1)
327
+ // }
328
+ }
329
+ this.selectAll = (this.selecteds.length === this.model.rows.length)
330
+ }
331
+ },
332
+ computed: {
333
+ getPayee () {
334
+ return this.$GetSaleParam.getPayee()
335
+ },
336
+ getReviewer () {
337
+ return this.$GetSaleParam.getReviewer()
338
+ },
339
+ getDrawer () {
340
+ return this.$GetSaleParam.getDrawer()
341
+ }
342
+ },
343
+ events: {
344
+ 'search' () {
345
+ this.search()
346
+ }
347
+ },
348
+ watch: {}
349
+ }
350
+ </script>
@@ -112,7 +112,7 @@
112
112
  <div class="col-sm-6 form-group form-input-group" :class="[!row.f_paper_name ? 'has-error' : '']">
113
113
  <label class="control-label" style="width: 100px">开票名称:</label>
114
114
  <input class="form-control col-sm-2"
115
- v-model="row.f_paper_name" placeholder="开票名称">
115
+ v-model="row.f_paper_name" placeholder="开票名称" :disabled="true">
116
116
  </div>
117
117
  <div class="col-sm-6 form-group form-input-group" :class="[!invoice_is_pax ? 'has-error' : '']">>
118
118
  <nobr class="col-sm-4"><label class="control-label" style="width: 100px">是否征税:</label></nobr>
@@ -241,9 +241,10 @@ export default {
241
241
  if (!this.row.f_taxpayer_id) {
242
242
  this.row.f_taxpayer_id = this.row.f_idnumber
243
243
  }
244
- if (!this.row.f_paper_name) {
245
- this.row.f_paper_name = this.row.f_user_name
246
- }
244
+ // 要求开票名称跟档案里的用户名一致,所以这里直接赋值,不判断是否有值
245
+ // if (!this.row.f_paper_name) {
246
+ this.row.f_paper_name = this.row.f_user_name
247
+ // }
247
248
  if (!this.row.f_address_phone) {
248
249
  this.row.f_address_phone = this.row.f_address + ' ' + this.row.f_user_phone
249
250
  }
@@ -275,9 +276,10 @@ export default {
275
276
  if (!this.row.f_taxpayer_id) {
276
277
  this.row.f_taxpayer_id = this.row.f_idnumber
277
278
  }
278
- if (!this.row.f_paper_name) {
279
- this.row.f_paper_name = this.row.f_user_name
280
- }
279
+ // 要求开票名称跟档案里的用户名一致,所以这里直接赋值,不判断是否有值
280
+ // if (!this.row.f_paper_name) {
281
+ this.row.f_paper_name = this.row.f_user_name
282
+ // }
281
283
  if (!this.row.f_address_phone) {
282
284
  this.row.f_address_phone = this.row.f_address + ' ' + this.row.f_user_phone
283
285
  }
@@ -113,7 +113,7 @@
113
113
  <div class="col-sm-6 form-group form-input-group" :class="[!row.f_paper_name ? 'has-error' : '']">
114
114
  <label class="control-label" style="width: 100px">开票名称:</label>
115
115
  <input class="form-control col-sm-2"
116
- v-model="row.f_paper_name" placeholder="开票名称">
116
+ v-model="row.f_paper_name" placeholder="开票名称" :disabled="true">
117
117
  </div>
118
118
  <div class="col-sm-6 form-group form-input-group" :class="[!invoice_is_pax ? 'has-error' : '']">
119
119
  <nobr class="col-sm-4"><label class="control-label" style="width: 100px">是否征税:</label></nobr>
@@ -240,9 +240,10 @@ export default {
240
240
  if (!this.row.f_taxpayer_id) {
241
241
  this.row.f_taxpayer_id = this.row.f_idnumber
242
242
  }
243
- if (!this.row.f_paper_name) {
244
- this.row.f_paper_name = this.row.f_user_name
245
- }
243
+ // 要求开票名称跟档案里的用户名一致,所以这里直接赋值,不判断是否有值
244
+ // if (!this.row.f_paper_name) {
245
+ this.row.f_paper_name = this.row.f_user_name
246
+ // }
246
247
  if (!this.row.f_address_phone) {
247
248
  this.row.f_address_phone = this.row.f_address + ' ' + this.row.f_user_phone
248
249
  }
@@ -268,9 +269,10 @@ export default {
268
269
  if (!this.row.f_taxpayer_id) {
269
270
  this.row.f_taxpayer_id = this.row.f_idnumber
270
271
  }
271
- if (!this.row.f_paper_name) {
272
- this.row.f_paper_name = this.row.f_user_name
273
- }
272
+ // 要求开票名称跟档案里的用户名一致,所以这里直接赋值,不判断是否有值
273
+ // if (!this.row.f_paper_name) {
274
+ this.row.f_paper_name = this.row.f_user_name
275
+ // }
274
276
  if (!this.row.f_address_phone) {
275
277
  this.row.f_address_phone = this.row.f_address + ' ' + this.row.f_user_phone
276
278
  }
@@ -48,8 +48,12 @@ export default function () {
48
48
 
49
49
  // 电子发票管理 对接v4 新的表结构
50
50
  Vue.component('e-ticket-manage-query-v4', (resolve) => { require(['./EticketV4/EticketManage'], resolve) })
51
- // 电子发票开票
51
+ // 物联网表结算
52
52
  Vue.component('e-ticket-open-iot-query-v4', (resolve) => { require(['./EticketV4/EticketOpenPage'], resolve) })
53
- // 抄表结算
53
+ // 机表结算
54
54
  Vue.component('e-ticket-open-hand-query-v4', (resolve) => { require(['./EticketV4/EticketOpenJBPage'], resolve) })
55
+ // 卡表结算
56
+ Vue.component('e-ticket-open-card-query-v4', (resolve) => { require(['./EticketV4/EticketOpenCard'], resolve) })
57
+ // 自定义开票
58
+ Vue.component('cust-query-eticket-query-v4', (resolve) => { require(['./EticketV4/CustQueryEticket'], resolve) })
55
59
  }