sale-client 3.6.68 → 3.6.69
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/build/dev-server.js +1 -1
- package/package.json +1 -1
- package/src/components/chargeNew/BookBill.vue +1 -1
- package/src/components/common/userinfo_detail/ic_detail/UserDeviceQuery.vue +1 -1
- package/src/components/revenue/Common/batchDisable.vue +456 -0
- package/src/filiale/haile/handplanReplicationRate.vue +10 -10
- package/src/filiale/haile/sale.js +0 -2
- package/src/filiale/tongchuan/UserPaperInfoTest.vue +76 -75
- package/src/main.js +1 -1
- package/src/plugins/FileManageService.js +1 -1
- package/src/sale.js +2 -0
- package/src/filiale/haile/BookBill.vue +0 -121
package/build/dev-server.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var path = require('path')
|
|
2
|
-
const [localUrl, serverRul] = ['http://
|
|
2
|
+
const [localUrl, serverRul] = ['http://127.0.0.1:8080/', 'http://192.168.50.4:8400/']
|
|
3
3
|
var merge = require('webpack-merge')
|
|
4
4
|
var baseConfig = require('./webpack.dev.conf')
|
|
5
5
|
var devConfig = {
|
package/package.json
CHANGED
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
await this.$resetpost('rs/logic/editBook', {
|
|
86
86
|
f_book_no: this.data.f_book_no,
|
|
87
87
|
f_userinfo_id: this.data.f_userinfo_id,
|
|
88
|
-
f_zzhh: this.data.f_zzhh == -1 ? 13 : this.data.f_zzhh == 24 ? 1 : this.data.f_zzhh + 1
|
|
88
|
+
f_zzhh: this.data.f_zzhh == -1 ? 13 : this.data.f_zzhh == 24 ? 1 : (parseInt(this.data.f_zzhh) + 1)
|
|
89
89
|
}, {
|
|
90
90
|
resolveMsg: null,
|
|
91
91
|
rejectMsg: '折子打印出错!!'
|
|
@@ -140,7 +140,7 @@ export default {
|
|
|
140
140
|
},
|
|
141
141
|
methods: {
|
|
142
142
|
async search () {
|
|
143
|
-
this.condition = `${this.$refs.paged.$refs.criteria.condition} and
|
|
143
|
+
this.condition = `${this.$refs.paged.$refs.criteria.condition} and f_userfiles_id = '${this.row.f_userfiles_id}'`
|
|
144
144
|
this.model.search(this.condition, this.model)
|
|
145
145
|
let http = new HttpResetClass()
|
|
146
146
|
let res = await http.load('POST', 'rs/sql/singleTable_OrderBy', {
|
|
@@ -0,0 +1,456 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div id="unit" class="flex-row">
|
|
3
|
+
<div class="basic-main" @keyup.enter="search">
|
|
4
|
+
<div class="flex">
|
|
5
|
+
<criteria-paged :model="model" v-ref:paged>
|
|
6
|
+
<criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
|
|
7
|
+
<div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
|
|
8
|
+
<div class="row">
|
|
9
|
+
<div class="col-sm-2 form-group">
|
|
10
|
+
|
|
11
|
+
<label for="startDate" class="font_normal_body" title="开始日期">开始日期</label>
|
|
12
|
+
<datepicker id="startDate" placeholder="开始日期" style="width:60%"
|
|
13
|
+
v-model="model.startDate"
|
|
14
|
+
:value.sync="model.startDate"
|
|
15
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
16
|
+
condition="da.f_operate_date >= '{}' "
|
|
17
|
+
:show-reset-button="true"
|
|
18
|
+
>
|
|
19
|
+
</datepicker>
|
|
20
|
+
</div>
|
|
21
|
+
<div class="col-sm-2 form-group">
|
|
22
|
+
<label for="endDate" class="font_normal_body" title="结束日期"> 至 </label>
|
|
23
|
+
<datepicker id="endDate" placeholder="结束日期" style="width:60%"
|
|
24
|
+
v-model="model.endDate"
|
|
25
|
+
:value.sync="model.endDate"
|
|
26
|
+
condition="da.f_operate_date <= '{}' "
|
|
27
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
28
|
+
:show-reset-button="true"
|
|
29
|
+
>
|
|
30
|
+
</datepicker>
|
|
31
|
+
</div>
|
|
32
|
+
<div class="col-sm-2 form-group">
|
|
33
|
+
<label class="font_normal_body">客户编号</label>
|
|
34
|
+
<input type="text" style="width:60%" class="input_search" v-model="model.f_userinfo_code"
|
|
35
|
+
condition="f_userinfo_code = '{}' " placeholder="客户编号">
|
|
36
|
+
</div>
|
|
37
|
+
<div class="col-sm-2 form-group">
|
|
38
|
+
<label class="font_normal_body">客户名称</label>
|
|
39
|
+
<input type="text" style="width:60%" class="input_search" v-model="model.f_user_name"
|
|
40
|
+
condition="f_user_name = '{}'" placeholder="客户名称">
|
|
41
|
+
</div>
|
|
42
|
+
<div class="span" style="float:right;">
|
|
43
|
+
<button v-if="this.$login.r.includes('批量停用')" class="button_search button_spacing" @click="$parent.$parent.batch_audit()">批量修改</button>
|
|
44
|
+
<button class="button_search button_spacing" @click="search()">查询</button>
|
|
45
|
+
<button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
|
|
46
|
+
<div style="float: right" class="button_spacing" :class="{'button_shrink_top':$parent.$parent.criteriaShow,
|
|
47
|
+
'button_shrink_bottom':!$parent.$parent.criteriaShow}" @click="$parent.$parent.hidden()"></div>
|
|
48
|
+
|
|
49
|
+
</div>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
<div class="row" v-show="$parent.$parent.criteriaShow">
|
|
53
|
+
<res-select-group :initres="$parent.$parent.initres" @re-res="$parent.$parent.getRes"
|
|
54
|
+
v-ref:sel></res-select-group>
|
|
55
|
+
|
|
56
|
+
<div class="col-sm-2 form-group">
|
|
57
|
+
<label class="font_normal_body">客户电话</label>
|
|
58
|
+
<input type="text" style="width:60%" class="input_search" v-model="model.f_user_phone"
|
|
59
|
+
condition="f_user_phone like '%{}%'" placeholder="客户电话">
|
|
60
|
+
</div>
|
|
61
|
+
<div class="col-sm-2 form-group">
|
|
62
|
+
<label class="font_normal_body">客户地址</label>
|
|
63
|
+
<input type="text" style="width:60%" class="input_search" v-model="model.f_address"
|
|
64
|
+
condition="f_address like '%{}%'" placeholder='客户地址'>
|
|
65
|
+
</div>
|
|
66
|
+
|
|
67
|
+
<div class="col-sm-2 form-group">
|
|
68
|
+
<label class="font_normal_body">客户类型</label>
|
|
69
|
+
<v-select :value.sync="model.f_user_type"
|
|
70
|
+
@change="$parent.$parent.userTypeChange()"
|
|
71
|
+
:options='$parent.$parent.usertypes' placeholder='请选择' v-model="model.f_user_type"
|
|
72
|
+
condition="f_user_type = '{}'"
|
|
73
|
+
:value-single="true"
|
|
74
|
+
close-on-select></v-select>
|
|
75
|
+
</div>
|
|
76
|
+
<div class="col-sm-2 form-group">
|
|
77
|
+
<label class="font_normal_body">用气性质</label>
|
|
78
|
+
<v-select :value.sync="model.f_gasproperties" v-model="model.f_gasproperties"
|
|
79
|
+
:options='$parent.$parent.gasproperties' placeholder='请选择'
|
|
80
|
+
condition="f_gasproperties = '{}'"
|
|
81
|
+
close-on-select></v-select>
|
|
82
|
+
</div>
|
|
83
|
+
<div class="col-sm-2 form-group">
|
|
84
|
+
<label class="font_normal_body">停用原因</label>
|
|
85
|
+
<v-select :value.sync="model.f_comments" v-model="model.f_comments"
|
|
86
|
+
:options='$parent.$parent.comments' placeholder='请选择'
|
|
87
|
+
condition="da.f_comments = '{}'"
|
|
88
|
+
close-on-select></v-select>
|
|
89
|
+
</div>
|
|
90
|
+
</div>
|
|
91
|
+
</div>
|
|
92
|
+
</criteria>
|
|
93
|
+
|
|
94
|
+
<data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid>
|
|
95
|
+
<template partial='head'>
|
|
96
|
+
<tr>
|
|
97
|
+
<th>
|
|
98
|
+
<nobr>序号</nobr>
|
|
99
|
+
</th>
|
|
100
|
+
<th>
|
|
101
|
+
<nobr>客户编号</nobr>
|
|
102
|
+
</th>
|
|
103
|
+
<th>
|
|
104
|
+
<nobr>客户姓名</nobr>
|
|
105
|
+
</th>
|
|
106
|
+
<th>
|
|
107
|
+
<nobr>客户电话</nobr>
|
|
108
|
+
</th>
|
|
109
|
+
<th>
|
|
110
|
+
<nobr>客户地址</nobr>
|
|
111
|
+
</th>
|
|
112
|
+
<th>
|
|
113
|
+
<nobr>客户类型</nobr>
|
|
114
|
+
</th>
|
|
115
|
+
<th>
|
|
116
|
+
<nobr>用气性质</nobr>
|
|
117
|
+
</th>
|
|
118
|
+
<th>
|
|
119
|
+
<nobr>停用原因</nobr>
|
|
120
|
+
</th>
|
|
121
|
+
<th>
|
|
122
|
+
<nobr>所属公司</nobr>
|
|
123
|
+
</th>
|
|
124
|
+
<th>
|
|
125
|
+
<nobr>所属部门</nobr>
|
|
126
|
+
</th>
|
|
127
|
+
<th>
|
|
128
|
+
<nobr>操作人</nobr>
|
|
129
|
+
</th>
|
|
130
|
+
</tr>
|
|
131
|
+
</template>
|
|
132
|
+
<template partial='body'>
|
|
133
|
+
<td style="text-align:center">
|
|
134
|
+
<nobr>{{$index+1}}</nobr>
|
|
135
|
+
</td>
|
|
136
|
+
<td style="text-align: center;">
|
|
137
|
+
<nobr>{{row.f_userinfo_code}}</nobr>
|
|
138
|
+
</td>
|
|
139
|
+
<td style="text-align: center;">
|
|
140
|
+
<nobr>{{row.f_user_name}}</nobr>
|
|
141
|
+
</td>
|
|
142
|
+
<td style="text-align: center;">
|
|
143
|
+
<nobr>{{row.f_user_phone}}</nobr>
|
|
144
|
+
</td>
|
|
145
|
+
<td style="text-align: center;">
|
|
146
|
+
<nobr>{{row.f_address}}</nobr>
|
|
147
|
+
</td>
|
|
148
|
+
<td style="text-align: center;">
|
|
149
|
+
<nobr>{{row.f_user_type}}</nobr>
|
|
150
|
+
</td>
|
|
151
|
+
<td style="text-align: center;">
|
|
152
|
+
<nobr>{{row.f_gasproperties}}</nobr>
|
|
153
|
+
</td>
|
|
154
|
+
<td style="text-align: center;">
|
|
155
|
+
<nobr>{{row.f_comments}}</nobr>
|
|
156
|
+
</td>
|
|
157
|
+
<td style="text-align: center;">
|
|
158
|
+
<nobr>{{row.f_orgname}}</nobr>
|
|
159
|
+
</td>
|
|
160
|
+
<td style="text-align: center;">
|
|
161
|
+
<nobr>{{row.f_depname}}</nobr>
|
|
162
|
+
</td>
|
|
163
|
+
<td style="text-align: center;">
|
|
164
|
+
<nobr>{{row.f_operator}}</nobr>
|
|
165
|
+
</td>
|
|
166
|
+
</template>
|
|
167
|
+
<template partial='foot'></template>
|
|
168
|
+
</data-grid>
|
|
169
|
+
</criteria-paged>
|
|
170
|
+
|
|
171
|
+
<modal v-if="tempfalg" :show.sync="tempfalg" v-ref:modal backdrop="false">
|
|
172
|
+
<header slot="modal-header" class="modal-header">
|
|
173
|
+
<h4 class="modal-title">批量停用</h4>
|
|
174
|
+
</header>
|
|
175
|
+
<article slot="modal-body" class="modal-body">
|
|
176
|
+
<validator name='v'>
|
|
177
|
+
<form class="form-horizontal select-overspread">
|
|
178
|
+
<div class="form-group">
|
|
179
|
+
<label class=" col-sm-3 control-label">停用类型:</label>
|
|
180
|
+
<div class="col-sm-4">
|
|
181
|
+
<v-select v-model="f_disable_type"
|
|
182
|
+
placeholder='请选择'
|
|
183
|
+
:value.sync="disableModel.f_disable_type"
|
|
184
|
+
:options='disableTypes'
|
|
185
|
+
:value-single="true"
|
|
186
|
+
close-on-select clear-button>
|
|
187
|
+
</v-select>
|
|
188
|
+
</div>
|
|
189
|
+
</div>
|
|
190
|
+
|
|
191
|
+
<div class="form-group">
|
|
192
|
+
<label class="col-sm-3 control-label">时间周期:</label>
|
|
193
|
+
<div class="form-group col-sm-3">
|
|
194
|
+
<datepicker
|
|
195
|
+
id="startDate1" placeholder="开始日期" style="width:100%"
|
|
196
|
+
v-model="disableModel.startDate"
|
|
197
|
+
:value.sync="disableModel.startDate"
|
|
198
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
199
|
+
:show-reset-button="true"
|
|
200
|
+
>
|
|
201
|
+
</datepicker>
|
|
202
|
+
</div>
|
|
203
|
+
<label class="col-sm-1 control-label"> 至 </label>
|
|
204
|
+
<div class="form-group col-sm-3">
|
|
205
|
+
|
|
206
|
+
<datepicker
|
|
207
|
+
id="endDate1" placeholder="结束日期" style="width:100%"
|
|
208
|
+
v-model="disableModel.endDate"
|
|
209
|
+
:value.sync="disableModel.endDate"
|
|
210
|
+
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
211
|
+
:show-reset-button="true"
|
|
212
|
+
>
|
|
213
|
+
</datepicker>
|
|
214
|
+
</div>
|
|
215
|
+
</div>
|
|
216
|
+
|
|
217
|
+
<div v-if="disableModel.f_disable_type === '欠费'" class="form-group">
|
|
218
|
+
<label class=" col-sm-3 control-label">总金额:</label>
|
|
219
|
+
<div class="col-sm-4">
|
|
220
|
+
<input class="form-control" v-model="disableModel.f_totalcost" rows="3"
|
|
221
|
+
disabled
|
|
222
|
+
placeholder="总金额" />
|
|
223
|
+
</div>
|
|
224
|
+
</div>
|
|
225
|
+
<div class="form-group">
|
|
226
|
+
<label class=" col-sm-3 control-label">备注:</label>
|
|
227
|
+
<div class="col-sm-8">
|
|
228
|
+
<textarea class="form-control" v-model="disableModel.f_comments" rows="3"
|
|
229
|
+
placeholder="备注" ></textarea>
|
|
230
|
+
</div>
|
|
231
|
+
</div>
|
|
232
|
+
</form>
|
|
233
|
+
</validator>
|
|
234
|
+
</article>
|
|
235
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
236
|
+
<button v-show="tempfalg" type="button" class="button_search" @click='confirm()'>确认</button>
|
|
237
|
+
<button v-show="tempfalg" type="button" class="button_clear" @click='close'>取消</button>
|
|
238
|
+
</footer>
|
|
239
|
+
</modal>
|
|
240
|
+
</div>
|
|
241
|
+
</div>
|
|
242
|
+
</div>
|
|
243
|
+
</template>
|
|
244
|
+
|
|
245
|
+
<script>
|
|
246
|
+
import {HttpResetClass, PagedList} from 'vue-client'
|
|
247
|
+
|
|
248
|
+
let readySomething = async function (self) {
|
|
249
|
+
self.$refs.paged.$refs.cri.model.startDate = self.$login.toStandardDateString() + ' 00:00:00'
|
|
250
|
+
self.$refs.paged.$refs.cri.model.endDate = self.$login.toStandardDateString() + ' 23:59:59'
|
|
251
|
+
await self.$LoadParams.loadParam()
|
|
252
|
+
self.initParams()
|
|
253
|
+
}
|
|
254
|
+
export default {
|
|
255
|
+
title: '批量停用',
|
|
256
|
+
data() {
|
|
257
|
+
return {
|
|
258
|
+
gasproperties: [],
|
|
259
|
+
showinfo: false,
|
|
260
|
+
data: {},
|
|
261
|
+
show: false,
|
|
262
|
+
rowdata: {},
|
|
263
|
+
initres: {
|
|
264
|
+
org: [this.$login.f.orgid],
|
|
265
|
+
dep: [],
|
|
266
|
+
user: []
|
|
267
|
+
},
|
|
268
|
+
model: new PagedList('rs/sql/batchDisableQuery', 20, {
|
|
269
|
+
startDate: 'this.model.startDate',
|
|
270
|
+
endDate: 'this.model.endDate'
|
|
271
|
+
}),
|
|
272
|
+
resdata: {
|
|
273
|
+
depresid: [],
|
|
274
|
+
userresid: [],
|
|
275
|
+
f_orgid: this.$login.f.orgid,
|
|
276
|
+
f_depid: '',
|
|
277
|
+
f_operatorid: '',
|
|
278
|
+
operatorid: '',
|
|
279
|
+
depid: '',
|
|
280
|
+
orgname: '',
|
|
281
|
+
depname: '',
|
|
282
|
+
operatorname: ''
|
|
283
|
+
},
|
|
284
|
+
criteriaShow: false,
|
|
285
|
+
orgCondtionStr: '',
|
|
286
|
+
// 下拉框
|
|
287
|
+
meterbrands: [],
|
|
288
|
+
prices: [],
|
|
289
|
+
disableModel: {
|
|
290
|
+
f_disable_type: '欠费',
|
|
291
|
+
startDate: '',
|
|
292
|
+
endDate: '',
|
|
293
|
+
f_totalcost: '',
|
|
294
|
+
f_comments: ''
|
|
295
|
+
},
|
|
296
|
+
tempfalg: false,
|
|
297
|
+
flag: false
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
ready() {
|
|
301
|
+
readySomething(this).then(() => {
|
|
302
|
+
this.$emit('ready')
|
|
303
|
+
}).catch((error) => {
|
|
304
|
+
this.$emit('error', error)
|
|
305
|
+
})
|
|
306
|
+
},
|
|
307
|
+
methods: {
|
|
308
|
+
search() {
|
|
309
|
+
this.$refs.paged.$refs.cri.search()
|
|
310
|
+
},
|
|
311
|
+
batch_audit () {
|
|
312
|
+
this.tempfalg = true
|
|
313
|
+
this.disableModel.startDate = this.$login.toStandardYearMonth() + '-01 00:00:00'
|
|
314
|
+
this.disableModel.endDate = this.$login.toStandardDateString() + ' 23:59:59'
|
|
315
|
+
},
|
|
316
|
+
close () {
|
|
317
|
+
this.tempfalg = false
|
|
318
|
+
},
|
|
319
|
+
confirm () {
|
|
320
|
+
this.tempfalg = false
|
|
321
|
+
let param = {
|
|
322
|
+
f_disable_type: this.disableModel.f_disable_type,
|
|
323
|
+
startDate: this.disableModel.startDate,
|
|
324
|
+
endDate: this.disableModel.endDate,
|
|
325
|
+
f_totalcost: this.disableModel.f_totalcost,
|
|
326
|
+
f_comments: this.disableModel.f_comments,
|
|
327
|
+
f_operator: this.$login.f.name,
|
|
328
|
+
f_operatorid: this.$login.f.id,
|
|
329
|
+
f_orgid: this.$login.f.orgid,
|
|
330
|
+
f_orgname: this.$login.f.orgs,
|
|
331
|
+
f_depid: this.$login.f.depids,
|
|
332
|
+
f_depname: this.$login.f.deps
|
|
333
|
+
}
|
|
334
|
+
this.$resetpost('rs/logic/owe_disable', {data: param}, {
|
|
335
|
+
rejectMsg: '同步失败',
|
|
336
|
+
resolveMsg: '同步成功'
|
|
337
|
+
})
|
|
338
|
+
},
|
|
339
|
+
cancel() {
|
|
340
|
+
this.flag = false
|
|
341
|
+
},
|
|
342
|
+
showmsg(obj) {
|
|
343
|
+
this.rowdata = obj
|
|
344
|
+
this.show = true
|
|
345
|
+
},
|
|
346
|
+
userTypeChange() {
|
|
347
|
+
this.gasproperties = []
|
|
348
|
+
if (this.$refs.paged.$refs.cri.model !== null) {
|
|
349
|
+
this.$refs.paged.$refs.cri.model.f_gasproperties = ''
|
|
350
|
+
this.gasproperties = this.$appdata.getParam(this.$refs.paged.$refs.cri.model.f_user_type)
|
|
351
|
+
} else {
|
|
352
|
+
this.gasproperties = [{label: '全部', value: ''}]
|
|
353
|
+
}
|
|
354
|
+
},
|
|
355
|
+
async arrearsQuery () {
|
|
356
|
+
let param = {
|
|
357
|
+
startDate: this.disableModel.startDate,
|
|
358
|
+
endDate: this.disableModel.endDate,
|
|
359
|
+
f_orgid: this.$login.f.orgid
|
|
360
|
+
}
|
|
361
|
+
await this.$resetpost('rs/sql/sale_owefees', {data: param}, {
|
|
362
|
+
resolveMsg: null,
|
|
363
|
+
rejectMsg: null
|
|
364
|
+
}).then((res) => {
|
|
365
|
+
if (res && res.data) {
|
|
366
|
+
this.disableModel.f_totalcost = res.data[0].f_oughtfee
|
|
367
|
+
}
|
|
368
|
+
})
|
|
369
|
+
},
|
|
370
|
+
initParams() {
|
|
371
|
+
// 初始化气表品牌
|
|
372
|
+
let brandArr = []
|
|
373
|
+
this.$GetSaleParam.getGasbrand().forEach((item) => {
|
|
374
|
+
let temp = {}
|
|
375
|
+
temp.label = item.label
|
|
376
|
+
temp.value = item.value.id
|
|
377
|
+
brandArr.push(temp)
|
|
378
|
+
})
|
|
379
|
+
this.meterbrands = [{label: '全部', value: ''}, ...brandArr]
|
|
380
|
+
// 初始化气表价格
|
|
381
|
+
this.prices = this.$GetSaleParam.getPrice(this.$login.f.orgid)
|
|
382
|
+
},
|
|
383
|
+
selfSearch(args) {
|
|
384
|
+
args.condition = args.condition + this.orgCondtionStr
|
|
385
|
+
this.model.search(args.condition, args.model)
|
|
386
|
+
},
|
|
387
|
+
clear() {
|
|
388
|
+
// 清空部门和人员
|
|
389
|
+
this.$refs.paged.$refs.cri.$refs.sel.$children[1].selectres = []
|
|
390
|
+
// 部门和人员变为全选
|
|
391
|
+
this.$refs.paged.$refs.cri.$refs.sel.$children[1].$children[0].isSelectAll = false
|
|
392
|
+
this.$refs.paged.$refs.cri.$refs.sel.$children[2].$children[0].isSelectAll = false
|
|
393
|
+
Object.keys(this.$refs.paged.$refs.cri.model).forEach((key) => {
|
|
394
|
+
this.$refs.paged.$refs.cri.model[key] = []
|
|
395
|
+
})
|
|
396
|
+
},
|
|
397
|
+
hidden() {
|
|
398
|
+
this.criteriaShow = !this.criteriaShow
|
|
399
|
+
},
|
|
400
|
+
async getRes (condition, obj) {
|
|
401
|
+
this.orgCondtionStr = condition
|
|
402
|
+
this.orgname = obj.orgnames[0]
|
|
403
|
+
this.depname = obj.depnames[0]
|
|
404
|
+
},
|
|
405
|
+
getRes1 (obj) {
|
|
406
|
+
this.resdata.orgname = obj.res[0]
|
|
407
|
+
this.resdata.depresid = obj.resids
|
|
408
|
+
this.resdata.f_orgid = obj.resids
|
|
409
|
+
this.resdata.userresid = obj.resids
|
|
410
|
+
},
|
|
411
|
+
getdep (obj, val) {
|
|
412
|
+
this.resdata.depname = val
|
|
413
|
+
this.resdata.f_depid = obj
|
|
414
|
+
},
|
|
415
|
+
getuser (obj, val) {
|
|
416
|
+
this.resdata.operatorname = val
|
|
417
|
+
this.resdata.f_operatorid = obj
|
|
418
|
+
}
|
|
419
|
+
},
|
|
420
|
+
events: {},
|
|
421
|
+
watch: {
|
|
422
|
+
'disableModel.startDate' (val) {
|
|
423
|
+
if (this.disableModel.f_disable_type === '欠费') {
|
|
424
|
+
this.arrearsQuery()
|
|
425
|
+
}
|
|
426
|
+
},
|
|
427
|
+
'disableModel.endDate' (val) {
|
|
428
|
+
if (this.disableModel.f_disable_type === '欠费') {
|
|
429
|
+
this.arrearsQuery()
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
},
|
|
433
|
+
computed: {
|
|
434
|
+
getCondition() {
|
|
435
|
+
return {
|
|
436
|
+
startDate: this.$refs.paged.$refs.cri.model.startDate,
|
|
437
|
+
endDate: this.$refs.paged.$refs.cri.model.endDate,
|
|
438
|
+
condition: `${this.$refs.paged.$refs.cri.condition}` + this.orgCondtionStr,
|
|
439
|
+
condValue: `${this.model.condValue}`
|
|
440
|
+
}
|
|
441
|
+
},
|
|
442
|
+
usertypes() {
|
|
443
|
+
return [{label: ' 全部 ', value: ''}, ...this.$appdata.getParam('用户类型')]
|
|
444
|
+
},
|
|
445
|
+
disableTypes () {
|
|
446
|
+
return [{label: ' 全部 ', value: ''}, ...this.$appdata.getParam('停用类型')]
|
|
447
|
+
},
|
|
448
|
+
comments () {
|
|
449
|
+
return [{label: ' 全部 ', value: ''}, ...this.$appdata.getParam('停用原因')]
|
|
450
|
+
},
|
|
451
|
+
metertypes() {
|
|
452
|
+
return [{label: ' 全部 ', value: ''}, ...this.$appdata.getParam('气表类型')]
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
</script>
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
<criteria partial='criteria' @condition-changed='$parent.selfSearch' v-ref:cri>
|
|
8
8
|
<div novalidate class="form-horizontal select-overspread container-fluid auto" partial>
|
|
9
9
|
<div class="row">
|
|
10
|
-
|
|
10
|
+
<res-select-group :initres="$parent.$parent.initres" @re-res="$parent.$parent.getRes" v-ref:sel></res-select-group>
|
|
11
11
|
<div class="col-sm-2 form-group">
|
|
12
12
|
<label for="startDate" class="font_normal_body">抄表日期</label>
|
|
13
13
|
<datepicker id="startDate" placeholder="开始日期" style="width:60%"
|
|
@@ -101,9 +101,9 @@
|
|
|
101
101
|
<td style="text-align: center;">
|
|
102
102
|
<nobr>{{row.f_no_hand}}</nobr>
|
|
103
103
|
</td>
|
|
104
|
-
<td style="text-align: center;"
|
|
105
|
-
<nobr>{{row.f_no_hand}}</nobr
|
|
106
|
-
</td
|
|
104
|
+
<!-- <td style="text-align: center;">-->
|
|
105
|
+
<!-- <nobr>{{row.f_no_hand}}</nobr>-->
|
|
106
|
+
<!-- </td>-->
|
|
107
107
|
<td style="text-align: center;">
|
|
108
108
|
<nobr>{{row.f_out_hand}}</nobr>
|
|
109
109
|
</td>
|
|
@@ -117,7 +117,7 @@
|
|
|
117
117
|
<nobr>{{row.f_oughtfee}}</nobr>
|
|
118
118
|
</td>
|
|
119
119
|
<td style="text-align: center;">
|
|
120
|
-
<nobr>{{row.
|
|
120
|
+
<nobr>{{row.f_hand_lv}}</nobr>
|
|
121
121
|
</td>
|
|
122
122
|
</template>
|
|
123
123
|
<template partial='foot'></template>
|
|
@@ -210,6 +210,11 @@ export default {
|
|
|
210
210
|
})
|
|
211
211
|
},
|
|
212
212
|
methods: {
|
|
213
|
+
async getRes (condition, obj) {
|
|
214
|
+
console.log('condition:----------', condition)
|
|
215
|
+
console.log('obj:----------', obj)
|
|
216
|
+
this.orgCondtionStr = condition
|
|
217
|
+
},
|
|
213
218
|
getotherfooter () {
|
|
214
219
|
this.other = []
|
|
215
220
|
this.footer = []
|
|
@@ -280,11 +285,6 @@ export default {
|
|
|
280
285
|
show () {
|
|
281
286
|
this.criteriaShow = true
|
|
282
287
|
},
|
|
283
|
-
async getRes (condition, obj) {
|
|
284
|
-
console.log('condition:----------', condition)
|
|
285
|
-
console.log('obj:----------', obj)
|
|
286
|
-
this.orgCondtionStr = condition
|
|
287
|
-
}
|
|
288
288
|
},
|
|
289
289
|
watch: {
|
|
290
290
|
'model.rows' (val) {
|
|
@@ -19,6 +19,4 @@ export default function () {
|
|
|
19
19
|
Vue.component('file-user-files', (resolve) => { require(['./FilesManage/FileUserFiles'], resolve) })
|
|
20
20
|
// 当前选择用户的用户基本信息
|
|
21
21
|
Vue.component('sale-userinfo', (resolve) => { require(['./leftview/Userinfo'], resolve) })
|
|
22
|
-
// 打印折子
|
|
23
|
-
Vue.component('book-bill', (resolve) => { require(['./BookBill'], resolve) })
|
|
24
22
|
}
|
|
@@ -2,97 +2,98 @@
|
|
|
2
2
|
<div class="auto">
|
|
3
3
|
<form class="form-horizontal select-overspread ">
|
|
4
4
|
<div v-if="!usertype">
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
</div>
|
|
17
|
-
<div class="row">
|
|
18
|
-
<div class="col-sm-8 form-group">
|
|
19
|
-
<label class="font_normal_body" for="f_address_phone">地址电话  </label>
|
|
20
|
-
<input class="input_search" placeholder="地址-电话" style="width:70%" type="text" v-el:addressphone
|
|
21
|
-
v-model="baseinfo.base.f_address_phone" v-next-el="papername">
|
|
5
|
+
<div class="row">
|
|
6
|
+
<div class="col-sm-8 form-group">
|
|
7
|
+
<label class="font_normal_body" for="f_taxpayer_id">纳税人识别号</label>
|
|
8
|
+
<input class="input_search" placeholder="纳税人识别号" style="width:70%" type="text"
|
|
9
|
+
v-model="baseinfo.base.f_taxpayer_id" v-next-el="addressphone">
|
|
10
|
+
</div>
|
|
11
|
+
<div class="col-sm-4 form-group">
|
|
12
|
+
<label class="font_normal_body" for="f_paper_name">名  称</label>
|
|
13
|
+
<input class="input_search" placeholder="名称" style="width:60%" type="text" v-el:papername
|
|
14
|
+
v-model="baseinfo.base.f_paper_name" v-next-el="paperaccount">
|
|
15
|
+
</div>
|
|
22
16
|
</div>
|
|
23
|
-
<div class="
|
|
24
|
-
<
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
17
|
+
<div class="row">
|
|
18
|
+
<div class="col-sm-8 form-group">
|
|
19
|
+
<label class="font_normal_body" for="f_address_phone">地址电话  </label>
|
|
20
|
+
<input class="input_search" placeholder="地址-电话" style="width:70%" type="text" v-el:addressphone
|
|
21
|
+
v-model="baseinfo.base.f_address_phone" v-next-el="papername">
|
|
22
|
+
</div>
|
|
23
|
+
<div class="col-sm-4 form-group">
|
|
24
|
+
<label class="font_normal_body" for="f_paper_type">票据类型</label>
|
|
25
|
+
<v-select :options='papertype'
|
|
26
|
+
:value-single="true"
|
|
27
|
+
:value.sync="baseinfo.base.f_paper_type" close-on-select
|
|
28
|
+
placeholder='票据类型'></v-select>
|
|
29
|
+
</div>
|
|
29
30
|
</div>
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
<div class="row">
|
|
32
|
+
<div class="col-sm-8 form-group">
|
|
33
|
+
<label class="font_normal_body " for="f_paper_account">开户行及账号</label>
|
|
34
|
+
<input class="input_search" placeholder="银行名称" style="width:70%" type="text" v-el:paperaccount
|
|
35
|
+
v-model="baseinfo.base.f_paper_account">
|
|
36
|
+
</div>
|
|
36
37
|
</div>
|
|
37
38
|
</div>
|
|
38
|
-
<div class="row">
|
|
39
|
-
<div class="col-sm-8 form-group">
|
|
40
|
-
<label class="font_normal_body " for="f_paper_account"> 邮  箱 </label>
|
|
41
|
-
<input class="input_search" placeholder="邮箱" style="width:70%" type="text"
|
|
42
|
-
v-model="baseinfo.base.f_email">
|
|
43
|
-
</div>
|
|
44
|
-
</div>
|
|
45
|
-
</div>
|
|
46
39
|
<div v-if="usertype">
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
40
|
+
<div class="row">
|
|
41
|
+
<div class="col-sm-8 form-group">
|
|
42
|
+
<label class="font_normal_body" for="f_paper_name">企业名称</label>
|
|
43
|
+
<input class="input_search" placeholder="名称" style="width:60%" type="text" v-el:papername
|
|
44
|
+
v-model="baseinfo.base.f_paper_name" v-next-el="contactuser">
|
|
45
|
+
</div>
|
|
46
|
+
<div class="col-sm-4 form-group">
|
|
47
|
+
<label class="font_normal_body" for="f_contact_user">企业联系人</label>
|
|
48
|
+
<input class="input_search" placeholder="企业联系人" style="width:60%" type="text" v-el:contactuser
|
|
49
|
+
v-model="baseinfo.base.f_contact_user" v-next-el="addressphone">
|
|
50
|
+
</div>
|
|
51
|
+
|
|
57
52
|
</div>
|
|
53
|
+
<div class="row">
|
|
58
54
|
|
|
59
|
-
|
|
60
|
-
|
|
55
|
+
<div class="col-sm-8 form-group">
|
|
56
|
+
<label class="font_normal_body" for="f_address_phone">联系方式</label>
|
|
57
|
+
<input class="input_search" placeholder="联系方式" style="width:70%" type="text" v-el:addressphone
|
|
58
|
+
v-model="baseinfo.base.f_address_phone" v-next-el="f_address_str">
|
|
59
|
+
</div>
|
|
61
60
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
61
|
+
<div class="col-sm-8 form-group">
|
|
62
|
+
<label class="font_normal_body" for="f_address_str">详细地址</label>
|
|
63
|
+
<input class="input_search" placeholder="详细地址" style="width:70%" type="text" v-el:f_address_str
|
|
64
|
+
v-model="baseinfo.base.f_address_str" v-next-el="taxpayerid">
|
|
65
|
+
</div>
|
|
67
66
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
67
|
+
<div class="col-sm-8 form-group">
|
|
68
|
+
<label class="font_normal_body" for="f_taxpayer_id">纳税人识别号</label>
|
|
69
|
+
<input class="input_search" placeholder="纳税人识别号" style="width:70%" type="text" v-el:taxpayerid
|
|
70
|
+
v-model="baseinfo.base.f_taxpayer_id" v-next-el="addressphone">
|
|
71
|
+
</div>
|
|
73
72
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
73
|
+
<div class="col-sm-4 form-group">
|
|
74
|
+
<label class="font_normal_body" for="f_paper_type">票据类型</label>
|
|
75
|
+
<v-select :options='papertype'
|
|
76
|
+
:value-single="true"
|
|
77
|
+
:value.sync="baseinfo.base.f_paper_type" close-on-select
|
|
78
|
+
placeholder='票据类型'></v-select>
|
|
79
|
+
</div>
|
|
78
80
|
</div>
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
placeholder='票据类型'></v-select>
|
|
81
|
+
<div class="row">
|
|
82
|
+
<div class="col-sm-8 form-group">
|
|
83
|
+
<label class="font_normal_body " for="f_paper_account">开户行及账号</label>
|
|
84
|
+
<input class="input_search" placeholder="银行名称" style="width:70%" type="text" v-el:paperaccount
|
|
85
|
+
v-model="baseinfo.base.f_paper_account">
|
|
86
|
+
</div>
|
|
86
87
|
</div>
|
|
87
|
-
|
|
88
|
+
</div>
|
|
89
|
+
|
|
88
90
|
<div class="row">
|
|
89
91
|
<div class="col-sm-8 form-group">
|
|
90
|
-
<label class="font_normal_body " for="f_paper_account"
|
|
91
|
-
<input class="input_search" placeholder="
|
|
92
|
-
v-model="baseinfo.base.
|
|
92
|
+
<label class="font_normal_body " for="f_paper_account"> 邮  箱 </label>
|
|
93
|
+
<input class="input_search" placeholder="邮箱" style="width:70%" type="text"
|
|
94
|
+
v-model="baseinfo.base.f_email">
|
|
93
95
|
</div>
|
|
94
96
|
</div>
|
|
95
|
-
</div>
|
|
96
97
|
</form>
|
|
97
98
|
</div>
|
|
98
99
|
</template>
|
package/src/main.js
CHANGED
|
@@ -3,7 +3,7 @@ import all from 'vue-client/src/all'
|
|
|
3
3
|
import App from './App'
|
|
4
4
|
import system from 'system-clients/src/system'
|
|
5
5
|
import sale from './sale'
|
|
6
|
-
import wenxi from './filiale/
|
|
6
|
+
import wenxi from './filiale/tongchuan/sale'
|
|
7
7
|
// import FilialeSale from './filiale/yuansheng/sale'
|
|
8
8
|
import address from 'address-client/src/address'
|
|
9
9
|
import ldap from 'ldap-clients/src/ldap'
|
|
@@ -116,7 +116,7 @@ let FileManageService = {
|
|
|
116
116
|
meter.f_show_way = meter.f_show_way ? meter.f_show_way[0] : null
|
|
117
117
|
meter.f_inputtor = meter.f_inputtor.length > 0 ? meter.f_inputtor[0] : null
|
|
118
118
|
meter.f_gongye_type = meter.f_gongye_type ? meter.f_gongye_type[0] : null
|
|
119
|
-
meter.f_userfiles_address = meter.f_userfiles_address ? meter.f_userfiles_address
|
|
119
|
+
meter.f_userfiles_address = meter.f_userfiles_address ? meter.f_userfiles_address : null
|
|
120
120
|
meter.f_install_person = meter.f_install_person.length > 0 ? meter.f_install_person[0] : null
|
|
121
121
|
meter.f_limit_sms = meter.f_limit_sms == '' ? meter.f_limit_sms = 30 : parseInt(meter.f_limit_sms)
|
|
122
122
|
meter.f_card_id = meter.f_card_id ? meter.f_card_id : null
|
package/src/sale.js
CHANGED
|
@@ -367,6 +367,8 @@ export default function () {
|
|
|
367
367
|
Vue.component('card-hand', (resolve) => { require(['./components/revenue/HandManager/CardHand'], resolve) })
|
|
368
368
|
// 机表抄表
|
|
369
369
|
Vue.component('hand-manager', (resolve) => { require(['./components/revenue/HandManager/HandManager'], resolve) })
|
|
370
|
+
// 批量停用
|
|
371
|
+
Vue.component('batch-disable', (resolve) => { require(['./components/revenue/Common/batchDisable'], resolve) })
|
|
370
372
|
|
|
371
373
|
// 抄表册新增
|
|
372
374
|
Vue.component('meter-book-add', (resolve) => { require(['./components/revenue/HandManager/MeterBookAdd'], resolve) })
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="auto form-horizontal" >
|
|
3
|
-
<modal :show.sync="show" v-ref:modal large backdrop="false">
|
|
4
|
-
<header slot="modal-header" class="modal-header">
|
|
5
|
-
<h3 style="color:black" class="modal-title">折子打印</h3>
|
|
6
|
-
</header>
|
|
7
|
-
<article slot="modal-body" class="modal-body">
|
|
8
|
-
<validator name='v'>
|
|
9
|
-
<form class="form-horizontal select-overspread">
|
|
10
|
-
<div class="row" style="display: flex;justify-content: center;" id='normal-bill' v-if="bill.data">
|
|
11
|
-
{{{bill.data}}}
|
|
12
|
-
</div>
|
|
13
|
-
</form>
|
|
14
|
-
</validator>
|
|
15
|
-
</article>
|
|
16
|
-
<footer slot="modal-footer" class="modal-footer">
|
|
17
|
-
<p>将打印在第<input type="number" v-model="data.f_zzhh"/>行</p>
|
|
18
|
-
<button type="button" class="btn btn-success" @click='printmai()'>打印</button>
|
|
19
|
-
<report-print id='normal-bill' :top='top' left='0mm' width='90%' height='80%' :notrepeat="true" :showbtn="false" v-ref:print></report-print>
|
|
20
|
-
<button type="button" class="btn btn-default" @click='cancel()'>取消</button>
|
|
21
|
-
</footer>
|
|
22
|
-
</modal>
|
|
23
|
-
</div>
|
|
24
|
-
</template>
|
|
25
|
-
<script>
|
|
26
|
-
import { DataModel } from 'vue-client'
|
|
27
|
-
|
|
28
|
-
let getBillData = async function (self) {
|
|
29
|
-
console.log('asdfasf', self.data.f_zzhh)
|
|
30
|
-
self.data.content.f_zzhh = `'${self.data.f_zzhh}'`
|
|
31
|
-
self.bill = new DataModel(self.url, self.data.content)
|
|
32
|
-
console.log(self.bill.url)
|
|
33
|
-
let height = self.zzheight - 0.0
|
|
34
|
-
let spacing = self.zzspacing - 0.0
|
|
35
|
-
let pageRow = self.zzpageRow - 0
|
|
36
|
-
let marginTop = self.zzmarginTop - 0
|
|
37
|
-
var hh = self.data.f_zzhh
|
|
38
|
-
if (hh != -1) {
|
|
39
|
-
var top = marginTop + (hh - 1) * height
|
|
40
|
-
if (hh > pageRow) { top = top + spacing }
|
|
41
|
-
self.top = `${top}mm`
|
|
42
|
-
}
|
|
43
|
-
await self.bill.search()
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export default {
|
|
47
|
-
title: '收费发票',
|
|
48
|
-
data () {
|
|
49
|
-
return {
|
|
50
|
-
top: '5mm',
|
|
51
|
-
bill: {},
|
|
52
|
-
zzheight: this.$appdata.getSingleValue('折子行高') ? this.$appdata.getSingleValue('折子行高') : 4.5,
|
|
53
|
-
zzspacing: this.$appdata.getSingleValue('折子中间间距') ? this.$appdata.getSingleValue('折子中间间距') : 23,
|
|
54
|
-
zzpageRow: this.$appdata.getSingleValue('每页折子行数') ? this.$appdata.getSingleValue('每页折子行数') : 23,
|
|
55
|
-
zzmarginTop: this.$appdata.getSingleValue('折子上边距') ? this.$appdata.getSingleValue('折子上边距') : 11
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
props: ['show', 'url', 'data'],
|
|
59
|
-
methods: {
|
|
60
|
-
cancel () {
|
|
61
|
-
this.$dispatch('toggle')
|
|
62
|
-
},
|
|
63
|
-
async printmai () {
|
|
64
|
-
if (this.data.f_zzhh == 1) {
|
|
65
|
-
let msg = await this.$showMessage('请注意,当前折子需要翻页,请确认当前页是新的一页', ['confirm', 'cancel'])
|
|
66
|
-
if (msg == 'confirm') {
|
|
67
|
-
this.print()
|
|
68
|
-
}
|
|
69
|
-
} else {
|
|
70
|
-
this.print()
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
|
-
async print () {
|
|
74
|
-
try {
|
|
75
|
-
let height = this.zzheight - 0.0
|
|
76
|
-
let spacing = this.zzspacing - 0.0
|
|
77
|
-
let pageRow = this.zzpageRow - 0
|
|
78
|
-
let marginTop = this.zzmarginTop - 0
|
|
79
|
-
var hh = this.data.f_zzhh
|
|
80
|
-
if (hh != -1) {
|
|
81
|
-
var top = marginTop + (hh - 1) * height
|
|
82
|
-
if (hh > pageRow) { top = top + spacing }
|
|
83
|
-
this.top = `${top}mm`
|
|
84
|
-
}
|
|
85
|
-
await this.$resetpost('rs/logic/editBook', {
|
|
86
|
-
f_book_no: this.data.f_book_no,
|
|
87
|
-
f_userinfo_id: this.data.f_userinfo_id,
|
|
88
|
-
f_zzhh: this.data.f_zzhh == -1 ? 1 : this.data.f_zzhh == 12 ? 1 : this.data.f_zzhh + 1
|
|
89
|
-
}, {
|
|
90
|
-
resolveMsg: null,
|
|
91
|
-
rejectMsg: '折子打印出错!!'
|
|
92
|
-
})
|
|
93
|
-
this.$refs.print.isPrint = true
|
|
94
|
-
this.$refs.print.print()
|
|
95
|
-
} catch (error) {
|
|
96
|
-
this.$dispatch('refresh')
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
},
|
|
100
|
-
watch: {
|
|
101
|
-
'show' (val) {
|
|
102
|
-
if (val) {
|
|
103
|
-
getBillData(this).then(() => {
|
|
104
|
-
this.$emit('ready')
|
|
105
|
-
}).catch((error) => {
|
|
106
|
-
this.$emit('error', error)
|
|
107
|
-
})
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
},
|
|
111
|
-
events: {
|
|
112
|
-
'print' () {
|
|
113
|
-
// 对票据明细进行更新或插入操作
|
|
114
|
-
this.$dispatch('printok', '发票打印', this.data)
|
|
115
|
-
},
|
|
116
|
-
'print-error' () {
|
|
117
|
-
this.$dispatch('error', '发票打印', this.data, null)
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
</script>
|