sale-client 3.7.53 → 3.7.55
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 +3 -3
- package/src/filiale/jingwei/CustQueryEticket.vue +338 -0
- package/src/filiale/jingwei/EticketRecordList.vue +432 -0
- package/src/filiale/jingwei/sale.js +5 -1
- package/src/filiale/kelai/CardMeterCenter.vue +52 -10
- package/src/filiale/kelai/IOTMeterCenter.vue +52 -10
- package/src/filiale/kelai/NoCardMeterCenter.vue +52 -9
- package/src/filiale/tongchuan/FileUserFiles.vue +2 -28
- package/src/filiale/tongchuan/MeterinfoTest.vue +1 -2
- package/src/filiale/tongchuan/UserGeneralInfoTest.vue +1 -1
- package/src/filiale/tongchuan/UserMeterInfoTest.vue +2 -3
- package/src/main.js +1 -1
- package/.gradle/5.2.1/fileChanges/last-build.bin +0 -0
- package/.gradle/5.2.1/fileHashes/fileHashes.lock +0 -0
- package/.gradle/5.2.1/gc.properties +0 -0
- package/.gradle/8.10/checksums/checksums.lock +0 -0
- package/.gradle/8.10/dependencies-accessors/gc.properties +0 -0
- package/.gradle/8.10/executionHistory/executionHistory.bin +0 -0
- package/.gradle/8.10/executionHistory/executionHistory.lock +0 -0
- package/.gradle/8.10/fileChanges/last-build.bin +0 -0
- package/.gradle/8.10/fileHashes/fileHashes.bin +0 -0
- package/.gradle/8.10/fileHashes/fileHashes.lock +0 -0
- package/.gradle/8.10/gc.properties +0 -0
- package/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/.gradle/buildOutputCleanup/cache.properties +0 -2
- package/.gradle/file-system.probe +0 -0
- package/.gradle/vcs-1/gc.properties +0 -0
package/build/dev-server.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var path = require('path')
|
|
2
2
|
var checkVersion = require('./versionCheck.js')
|
|
3
3
|
checkVersion()
|
|
4
|
-
const [ serverRul, localUrl, v4Url ] = ['http://
|
|
4
|
+
const [ serverRul, localUrl, v4Url ] = ['http://192.168.50.67:30785/', 'http://localhost:8080/', 'http://192.168.50.67:30785']
|
|
5
5
|
var merge = require('webpack-merge')
|
|
6
6
|
var baseConfig = require('./webpack.dev.conf')
|
|
7
7
|
var devConfig = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sale-client",
|
|
3
|
-
"version": "3.7.
|
|
3
|
+
"version": "3.7.55",
|
|
4
4
|
"description": "收费模块前台组件",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"qrcodejs2": "^0.0.2",
|
|
25
25
|
"vue": "^1.0.17",
|
|
26
26
|
"webpack-dev-server": "^2.11.5",
|
|
27
|
-
"vue-client": "1.
|
|
27
|
+
"vue-client": "1.25.38",
|
|
28
28
|
"yarn": "^1.22.10"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"karma-spec-reporter": "0.0.31",
|
|
77
77
|
"karma-webpack": "^2.0.2",
|
|
78
78
|
"ldap-clients": "3.0.96",
|
|
79
|
-
"system-clients": "
|
|
79
|
+
"system-clients": "4.0.12",
|
|
80
80
|
"less": "^2.7.3",
|
|
81
81
|
"manage-client": "3.1.8-88",
|
|
82
82
|
"mkdirp": "^0.5.1",
|
|
@@ -0,0 +1,338 @@
|
|
|
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="col-sm-2 form-group">
|
|
8
|
+
<label class="font_normal_body">组织机构</label>
|
|
9
|
+
<res-select restype='organization'
|
|
10
|
+
@res-select="$parent.$parent.getorg"
|
|
11
|
+
is-mul="false"
|
|
12
|
+
:initresid='$parent.$parent.curorgid'>
|
|
13
|
+
</res-select>
|
|
14
|
+
</div>
|
|
15
|
+
<div class="form-group col-sm-2">
|
|
16
|
+
<label class="font_normal_body">客户编号</label>
|
|
17
|
+
<input type="text" class="form-control" v-model="model.f_userinfo_code" style="width:60%"
|
|
18
|
+
condition="f_userinfo_code = '{}' " placeholder="客户编号"
|
|
19
|
+
>
|
|
20
|
+
</div>
|
|
21
|
+
<div class="form-group col-sm-2">
|
|
22
|
+
<label class="font_normal_body">用户姓名</label>
|
|
23
|
+
<input type="text" class="form-control" v-model="model.f_user_name" style="width:60%"
|
|
24
|
+
condition="f_user_name = '{}'" placeholder="用户姓名"
|
|
25
|
+
>
|
|
26
|
+
</div>
|
|
27
|
+
<div style="float: right">
|
|
28
|
+
<button class="button_search" @click="search()">查 询</button>
|
|
29
|
+
<!--<button class="button_search" @click="$parent.$parent.open_eTicket()">开票</button>-->
|
|
30
|
+
<div
|
|
31
|
+
:class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
|
|
32
|
+
@click="$parent.$parent.criteriaShow=!$parent.$parent.criteriaShow"
|
|
33
|
+
class="button_spacing"
|
|
34
|
+
style="float: right"></div>
|
|
35
|
+
</div>
|
|
36
|
+
</div>
|
|
37
|
+
<div class="row" v-show="$parent.$parent.criteriaShow">
|
|
38
|
+
<div class="form-group col-sm-2" >
|
|
39
|
+
<label class="font_normal_body">业务类型</label>
|
|
40
|
+
<v-select id="f_charge_type"
|
|
41
|
+
style="width:60%"
|
|
42
|
+
v-model="model.f_type"
|
|
43
|
+
placeholder='业务类型'
|
|
44
|
+
condition="f_type ='{}'"
|
|
45
|
+
:value.sync="model.f_type"
|
|
46
|
+
:options='$parent.$parent.chargetypes'
|
|
47
|
+
close-on-select clear-button>
|
|
48
|
+
</v-select>
|
|
49
|
+
</div>
|
|
50
|
+
<div class="form-group col-sm-2">
|
|
51
|
+
<label for="startDate" class="font_normal_body">开始日期</label>
|
|
52
|
+
<datepicker id="startDate" placeholder="开始日期"
|
|
53
|
+
v-model="model.startDate"
|
|
54
|
+
:value.sync="model.startDate"
|
|
55
|
+
:disabled-days-of-Week="[]"
|
|
56
|
+
format="yyyy-MM-dd"
|
|
57
|
+
condition="f_operate_date >='{} 00:00:00'"
|
|
58
|
+
style="width:60%"
|
|
59
|
+
>
|
|
60
|
+
</datepicker>
|
|
61
|
+
</div>
|
|
62
|
+
<div class="form-group col-sm-2">
|
|
63
|
+
<label for="endDate" class="font_normal_body">结束日期</label>
|
|
64
|
+
<datepicker id="endDate" placeholder="结束日期"
|
|
65
|
+
v-model="model.endDate"
|
|
66
|
+
:value.sync="model.endDate"
|
|
67
|
+
:disabled-days-of-Week="[]"
|
|
68
|
+
format="yyyy-MM-dd"
|
|
69
|
+
condition="f_operate_date <='{} 23:59:59'"
|
|
70
|
+
style="width:60%"
|
|
71
|
+
>
|
|
72
|
+
</datepicker>
|
|
73
|
+
</div>
|
|
74
|
+
</div>
|
|
75
|
+
</div>
|
|
76
|
+
</criteria>
|
|
77
|
+
<data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid>
|
|
78
|
+
<template partial='head'>
|
|
79
|
+
<tr>
|
|
80
|
+
<th>序号</th>
|
|
81
|
+
<th>客户编号</th>
|
|
82
|
+
<th>用户姓名</th>
|
|
83
|
+
<th>用户地址</th>
|
|
84
|
+
<th>气量</th>
|
|
85
|
+
<th>应交金额</th>
|
|
86
|
+
<th>实收金额</th>
|
|
87
|
+
<th>收费类型</th>
|
|
88
|
+
<th>收费时间</th>
|
|
89
|
+
<th>操作</th>
|
|
90
|
+
</tr>
|
|
91
|
+
</template>
|
|
92
|
+
<template partial='body' >
|
|
93
|
+
<td style="text-align:center">{{$index+1}}</td>
|
|
94
|
+
<td style="text-align:center">{{row.f_userinfo_code}}</td>
|
|
95
|
+
<td style="text-align:center">{{row.f_user_name}}</td>
|
|
96
|
+
<td style="text-align:center">{{row.f_address}}</td>
|
|
97
|
+
<td style="text-align:center">{{row.f_pregas}}</td>
|
|
98
|
+
<td style="text-align:center">{{row.f_preamount}}</td>
|
|
99
|
+
<td style="text-align:center">{{row.f_collection}}</td>
|
|
100
|
+
<td style="text-align:center">{{row.f_type}}</td>
|
|
101
|
+
<td style="text-align:center">{{row.f_operate_date}}</td>
|
|
102
|
+
<td>
|
|
103
|
+
<button class="btn btn-link" @click="$parent.$parent.$parent.kp(row)">开具发票</button>
|
|
104
|
+
</td>
|
|
105
|
+
</template>
|
|
106
|
+
<template partial='foot'></template>
|
|
107
|
+
</data-grid>
|
|
108
|
+
</criteria-paged>
|
|
109
|
+
</div>
|
|
110
|
+
<modal :show.sync="eticket_msg" v-ref:modal large backdrop="false" :width="900">
|
|
111
|
+
<header slot="modal-header" class="modal-header">
|
|
112
|
+
<button type="button" class="close" @click="eticket_msg = false"><span>×</span></button>
|
|
113
|
+
<h4 class="modal-title">发票信息</h4>
|
|
114
|
+
</header>
|
|
115
|
+
<article slot="modal-body" class="modal-body">
|
|
116
|
+
<div class="auto select-overspread form-horizontal">
|
|
117
|
+
<div class="row auto">
|
|
118
|
+
<div class="col-sm-6 form-group form-input-group" :class="[!row.f_paper_name ? 'has-error' : '']">
|
|
119
|
+
<label class="control-label" style="width: 100px">开票名称:</label>
|
|
120
|
+
<input class="form-control col-sm-2"
|
|
121
|
+
v-model="row.f_paper_name" placeholder="开票名称">
|
|
122
|
+
</div>
|
|
123
|
+
<div class="col-sm-6 form-group form-input-group" :class="[!invoice_is_pax ? 'has-error' : '']">
|
|
124
|
+
<nobr class="col-sm-4"><label class="control-label" style="width: 100px">是否征税:</label></nobr>
|
|
125
|
+
<v-select v-model="invoice_is_pax"
|
|
126
|
+
placeholder='请选择'
|
|
127
|
+
:value.sync="invoice_is_pax"
|
|
128
|
+
close-on-select
|
|
129
|
+
:width="60"
|
|
130
|
+
:value-single="true"
|
|
131
|
+
:search="false"
|
|
132
|
+
:options='is_pax' clear-button>
|
|
133
|
+
</v-select>
|
|
134
|
+
</div>
|
|
135
|
+
<div class="col-sm-6 form-group form-input-group" :class="[!row.f_paper_type || row.f_paper_type === '' ? 'has-error' : '']">
|
|
136
|
+
<label class="control-label" style="width: 100px">发票种类:</label>
|
|
137
|
+
<v-select v-model="row.f_paper_type"
|
|
138
|
+
placeholder='请选择'
|
|
139
|
+
:value.sync="row.f_paper_type"
|
|
140
|
+
close-on-select
|
|
141
|
+
:width="60"
|
|
142
|
+
:value-single="true"
|
|
143
|
+
:search="false"
|
|
144
|
+
:options='invoice_types' clear-button>
|
|
145
|
+
</v-select>
|
|
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_paper_account" placeholder="购方开户行及账号">
|
|
151
|
+
</div>
|
|
152
|
+
<div class="col-sm-12 form-group form-input-group" >
|
|
153
|
+
<label class="control-label" style="width: 100px">纳税人识别号:</label>
|
|
154
|
+
<input class="form-control col-sm-2"
|
|
155
|
+
v-model="row.f_taxpayer_id" placeholder="纳税人识别号">
|
|
156
|
+
</div>
|
|
157
|
+
<div class="col-sm-12 form-group form-input-group" :class="[!row.f_address_phone ? 'has-error' : '']">
|
|
158
|
+
<label class="control-label" style="width: 100px">开票地址电话:</label>
|
|
159
|
+
<input class="form-control col-sm-2"
|
|
160
|
+
v-model="row.f_address_phone" 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_email" placeholder="邮箱推送">
|
|
166
|
+
</div>
|
|
167
|
+
<div class="col-sm-12 form-group form-input-group">
|
|
168
|
+
<label class="control-label" style="width: 100px">备注:</label>
|
|
169
|
+
<input class="form-control col-sm-2"
|
|
170
|
+
v-model="row.f_remarks" placeholder="备注">
|
|
171
|
+
</div>
|
|
172
|
+
</div>
|
|
173
|
+
</div>
|
|
174
|
+
</article>
|
|
175
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
176
|
+
<button type="button" class="btn button_search"
|
|
177
|
+
:disabled="!(row.f_paper_name&&row.f_paper_type&&invoice_is_pax&&row.f_paper_type!== '')"
|
|
178
|
+
@click='confirm'>确认开票
|
|
179
|
+
</button>
|
|
180
|
+
</footer>
|
|
181
|
+
</modal>
|
|
182
|
+
<ticket-print :show="eticket_show" @toggle="eticket_toggle" v-ref:eticketbill></ticket-print>
|
|
183
|
+
</template>
|
|
184
|
+
|
|
185
|
+
<script>
|
|
186
|
+
/**
|
|
187
|
+
*发票冲红管理
|
|
188
|
+
*/
|
|
189
|
+
import {HttpResetClass, PagedList} from 'vue-client'
|
|
190
|
+
import Vue from 'vue'
|
|
191
|
+
export default {
|
|
192
|
+
title: '结算开票',
|
|
193
|
+
data () {
|
|
194
|
+
return {
|
|
195
|
+
criteriaShow: false,
|
|
196
|
+
f_filialeids: Vue.$login.f.orgids,
|
|
197
|
+
model: new PagedList('rs/sql/openSellelent', 50, {}),
|
|
198
|
+
f_outlets: Vue.$login.f.f_parentname,
|
|
199
|
+
f_filiale: Vue.$login.f.f_fengongsi,
|
|
200
|
+
f_operator: Vue.$login.f.name,
|
|
201
|
+
f_orgstr: Vue.$login.f.orgpathstr,
|
|
202
|
+
invoice_types: this.$appdata.getParam('发票种类'),
|
|
203
|
+
invoice_is_pax: '征税',
|
|
204
|
+
is_pax: [{label: '征税', value: '征税'}, {label: '不征税', value: '不征税'}],
|
|
205
|
+
selecteds: [],
|
|
206
|
+
eticket_show: false,
|
|
207
|
+
eticket_msg: false,
|
|
208
|
+
invoice_show_gas: '否',
|
|
209
|
+
show_gas: [{label: '是', value: '是'}, {label: '否', value: '否'}],
|
|
210
|
+
row: {},
|
|
211
|
+
disabled: false,
|
|
212
|
+
printstyle: this.$appdata.getParam('打印电子格式') ? this.$appdata.getParam('打印电子格式') : [{label: '电子发票', value: '电子发票'}],
|
|
213
|
+
mid: [{label: '全部', value: ''}, {label: '是', value: ' > 0 '}, {label: '否', value: ' is null'}],
|
|
214
|
+
curorgid: [this.$login.f.orgid]
|
|
215
|
+
}
|
|
216
|
+
},
|
|
217
|
+
ready () {
|
|
218
|
+
const day = this.$login.toStandardDateString()
|
|
219
|
+
this.$refs.paged.$refs.cri.model.startDate = day
|
|
220
|
+
this.$refs.paged.$refs.cri.model.endDate = day
|
|
221
|
+
},
|
|
222
|
+
methods: {
|
|
223
|
+
async kp (row) {
|
|
224
|
+
let HttpReset = new HttpResetClass()
|
|
225
|
+
let _row = await HttpReset.load('POST', 'rs/sql/sale_getUser', {
|
|
226
|
+
data: {
|
|
227
|
+
orderitem: 'f_userinfo_code',
|
|
228
|
+
condition: `f_userinfo_code = '${row.f_userinfo_code}'`
|
|
229
|
+
}
|
|
230
|
+
}, {resolveMsg: null, rejectMsg: '获取地址失败!'})
|
|
231
|
+
this.row = _row.data[0]
|
|
232
|
+
this.row.id = row.id
|
|
233
|
+
this.row.f_type = row.f_type
|
|
234
|
+
this.invoice_show_gas = this.row.f_collection_type === '按气量' ? '是' : '否'
|
|
235
|
+
if (!this.row.f_taxpayer_id) {
|
|
236
|
+
this.row.f_taxpayer_id = this.row.f_idnumber
|
|
237
|
+
}
|
|
238
|
+
if (!this.row.f_paper_name) {
|
|
239
|
+
this.row.f_paper_name = this.row.f_user_name
|
|
240
|
+
}
|
|
241
|
+
if (!this.row.f_address_phone) {
|
|
242
|
+
this.row.f_address_phone = this.row.f_address + ' ' + this.row.f_user_phone
|
|
243
|
+
}
|
|
244
|
+
this.eticket_msg = true
|
|
245
|
+
},
|
|
246
|
+
closeEticket () {
|
|
247
|
+
this.eticket_msg = false
|
|
248
|
+
this.disabled = false
|
|
249
|
+
},
|
|
250
|
+
getorg (val) {
|
|
251
|
+
this.f_orgid = this.$login.convertToIn(val)
|
|
252
|
+
this.f_filialeids = val[0]
|
|
253
|
+
},
|
|
254
|
+
cancel () {
|
|
255
|
+
this.show = false
|
|
256
|
+
this.info = {}
|
|
257
|
+
},
|
|
258
|
+
async open_eTicket () {
|
|
259
|
+
if (this.selecteds.length > 1) {
|
|
260
|
+
this.$showAlert('选中条数大于一条,请重新修改!!', 'warning', 2000)
|
|
261
|
+
return
|
|
262
|
+
}
|
|
263
|
+
let HttpReset = new HttpResetClass()
|
|
264
|
+
let row = await HttpReset.load('POST', 'rs/sql/sale_getUser', {
|
|
265
|
+
data: {
|
|
266
|
+
orderitem: 'f_userinfo_code',
|
|
267
|
+
condition: `f_userinfo_code = '${[...new Set(this.selecteds.map(item => item.f_userinfo_code))][0]}'`
|
|
268
|
+
}
|
|
269
|
+
}, {resolveMsg: null, rejectMsg: '获取地址失败!'})
|
|
270
|
+
this.row = row.data[0]
|
|
271
|
+
this.invoice_show_gas = this.row.f_collection_type === '按气量' ? '是' : '否'
|
|
272
|
+
if (!this.row.f_taxpayer_id) {
|
|
273
|
+
this.row.f_taxpayer_id = this.row.f_idnumber
|
|
274
|
+
}
|
|
275
|
+
if (!this.row.f_paper_name) {
|
|
276
|
+
this.row.f_paper_name = this.row.f_user_name
|
|
277
|
+
}
|
|
278
|
+
if (!this.row.f_address_phone) {
|
|
279
|
+
this.row.f_address_phone = this.row.f_address + ' ' + this.row.f_user_phone
|
|
280
|
+
}
|
|
281
|
+
if (this.selecteds.map(item => item.f_type).toString() === '其他收费') {
|
|
282
|
+
this.disabled = true
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
this.eticket_msg = true
|
|
286
|
+
},
|
|
287
|
+
confirm () {
|
|
288
|
+
// this.row.f_print = this.invoice_is_pax
|
|
289
|
+
this.row.invoice_is_pax = this.invoice_is_pax
|
|
290
|
+
this.eticket_msg = false
|
|
291
|
+
this.disabled = false
|
|
292
|
+
this.eticket_show = true
|
|
293
|
+
this.$refs.eticketbill.openETicket(this.row.id, this.row, this.row.f_type, this.row.f_paper_type, false, this.invoice_is_pax)
|
|
294
|
+
},
|
|
295
|
+
eticket_toggle () {
|
|
296
|
+
this.eticket_show = false
|
|
297
|
+
this.search()
|
|
298
|
+
},
|
|
299
|
+
async selfSearch (args) {
|
|
300
|
+
if (!this.f_orgid) {
|
|
301
|
+
this.getorg([this.$login.f.orgid])
|
|
302
|
+
}
|
|
303
|
+
const base = (args.condition && String(args.condition).trim()) ? args.condition : '1=1'
|
|
304
|
+
args.condition = ` f_orgid='${this.f_filialeids}' and ${base}`
|
|
305
|
+
|
|
306
|
+
await this.model.search(args.condition, this.model)
|
|
307
|
+
this.addOrRemove(true)
|
|
308
|
+
},
|
|
309
|
+
search () {
|
|
310
|
+
this.$refs.paged.$refs.cri.search()
|
|
311
|
+
this.$dispatch('refresh')
|
|
312
|
+
},
|
|
313
|
+
addOrRemove (is) {
|
|
314
|
+
this.selecteds = []
|
|
315
|
+
if (!is) { // 添加本页所有数据到ids中
|
|
316
|
+
this.model.rows.forEach((row) => {
|
|
317
|
+
this.selecteds.push(row)
|
|
318
|
+
})
|
|
319
|
+
this.selectAll = true
|
|
320
|
+
} else { // 从ids中取消所有的数据
|
|
321
|
+
this.selecteds = []
|
|
322
|
+
this.selectAll = false
|
|
323
|
+
}
|
|
324
|
+
console.log('selectdde', this.selecteds)
|
|
325
|
+
}
|
|
326
|
+
},
|
|
327
|
+
computed: {
|
|
328
|
+
chargetypes () {
|
|
329
|
+
return [{label: '全部', value: ''}, ...this.$appdata.getParam('收费类型')]
|
|
330
|
+
}
|
|
331
|
+
},
|
|
332
|
+
watch: {
|
|
333
|
+
selecteds () {
|
|
334
|
+
console.log('框框的长度', this.selecteds.length)
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
</script>
|
|
@@ -0,0 +1,432 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="auto basic-main" style="height:95%">
|
|
3
|
+
<criteria-paged :model="model" v-ref:paged @sort="sort">
|
|
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="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="f_user_name = '{}'" placeholder="用户姓名"
|
|
17
|
+
>
|
|
18
|
+
</div>
|
|
19
|
+
<div class="form-group col-sm-2">
|
|
20
|
+
<label class="font_normal_body">客户地址</label>
|
|
21
|
+
<input type="text" class="form-control" v-model="model.f_buy_address_phone" style="width:60%"
|
|
22
|
+
condition="f_buy_address_phone like '%{}%'" placeholder="客户地址"
|
|
23
|
+
>
|
|
24
|
+
</div>
|
|
25
|
+
<div class="form-group col-sm-2">
|
|
26
|
+
<label class="font_normal_body">票据状态</label>
|
|
27
|
+
<v-select id="f_bill_state"
|
|
28
|
+
style="width:60%"
|
|
29
|
+
v-model="model.f_bill_state"
|
|
30
|
+
placeholder='票据状态'
|
|
31
|
+
condition="f_bill_state ='{}'"
|
|
32
|
+
:value.sync="model.f_bill_state"
|
|
33
|
+
:options='$parent.$parent.eticktypes'
|
|
34
|
+
:search="false"
|
|
35
|
+
close-on-select clear-button>
|
|
36
|
+
</v-select>
|
|
37
|
+
</div>
|
|
38
|
+
<div style="float: right">
|
|
39
|
+
<button class="button_search" @click="search()">查 询</button>
|
|
40
|
+
<button class="button_clear button_spacing" @click="$parent.$parent.clear()">清空</button>
|
|
41
|
+
<export-excel :data="$parent.$parent.getCondition"
|
|
42
|
+
:field="$parent.$parent.fields"
|
|
43
|
+
sqlurl="rs/logic/saleExport" sql-name="eticket_query"
|
|
44
|
+
template-name='发票记录导出'
|
|
45
|
+
:choose-col="true">
|
|
46
|
+
</export-excel>
|
|
47
|
+
<div
|
|
48
|
+
:class="{'button_shrink_top':$parent.$parent.criteriaShow,'button_shrink_bottom':!$parent.$parent.criteriaShow}"
|
|
49
|
+
@click="$parent.$parent.criteriaShow=!$parent.$parent.criteriaShow"
|
|
50
|
+
class="button_spacing"
|
|
51
|
+
style="float: right"></div>
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
<div class="row" v-show="$parent.$parent.criteriaShow">
|
|
55
|
+
<div class="form-group col-sm-2">
|
|
56
|
+
<label class="font_normal_body">开票日期</label>
|
|
57
|
+
<datepicker id="f_operate_datestarthate" placeholder="开始日期"
|
|
58
|
+
v-model="model.f_operate_datestarthate"
|
|
59
|
+
:value.sync="model.f_operate_datestarthate"
|
|
60
|
+
format="yyyy-MM-dd"
|
|
61
|
+
condition="f_operate_date >= '{} 00:00:00'"
|
|
62
|
+
style="width:60%">
|
|
63
|
+
</datepicker>
|
|
64
|
+
</div>
|
|
65
|
+
<div class="form-group col-sm-2">
|
|
66
|
+
<label class="font_normal_body"> 至 </label>
|
|
67
|
+
<datepicker id="f_operate_dateendDate" placeholder="结束日期"
|
|
68
|
+
v-model="model.f_operate_dateendDate"
|
|
69
|
+
:value.sync="model.f_operate_dateendDate"
|
|
70
|
+
format="yyyy-MM-dd"
|
|
71
|
+
condition=" f_operate_date <= '{} 23:59:59'"
|
|
72
|
+
style="width:60%">
|
|
73
|
+
</datepicker>
|
|
74
|
+
</div>
|
|
75
|
+
<div class="col-sm-2 form-group flex-row" style="white-space: nowrap">
|
|
76
|
+
<label class="font_normal_body">发票金额</label>
|
|
77
|
+
<div class="row">
|
|
78
|
+
<input type="text" style="width:27%" class="input_search" v-model="model.f_collection_small"
|
|
79
|
+
condition="f_total_money >= {} " placeholder="">
|
|
80
|
+
<label class="font_normal_body"> ≤ x ≤ </label>
|
|
81
|
+
<input type="text" style="width:27%" class="input_search" v-model="model.f_collection_big"
|
|
82
|
+
condition="f_total_money <= {} " placeholder="">
|
|
83
|
+
</div>
|
|
84
|
+
</div>
|
|
85
|
+
<div class="form-group col-sm-2">
|
|
86
|
+
<label class="font_normal_body">开票人 </label>
|
|
87
|
+
<input type="text" class="form-control" v-model="model.f_operator" style="width:60%"
|
|
88
|
+
condition="f_operator = '{}' " placeholder="开票人"
|
|
89
|
+
>
|
|
90
|
+
</div>
|
|
91
|
+
<div class="form-group col-sm-2">
|
|
92
|
+
<label class="font_normal_body">收款人 </label>
|
|
93
|
+
<input type="text" class="form-control" v-model="model.sell_operator" style="width:60%"
|
|
94
|
+
condition="(s.sell_operator = '{}' or other.sell_operator = '{}') " placeholder="收款人"
|
|
95
|
+
>
|
|
96
|
+
</div>
|
|
97
|
+
<div class="col-sm-2 form-group">
|
|
98
|
+
<label class="font_normal_body">用户类型</label>
|
|
99
|
+
<v-select :value.sync="model.f_user_type"
|
|
100
|
+
:options='$parent.$parent.usertypes'
|
|
101
|
+
placeholder='请选择' v-model="model.f_user_type"
|
|
102
|
+
condition="(s.f_user_type = '{}' or uf.f_user_type = '{}') "
|
|
103
|
+
close-on-select></v-select>
|
|
104
|
+
</div>
|
|
105
|
+
</div>
|
|
106
|
+
<div class="row" v-show="$parent.$parent.criteriaShow">
|
|
107
|
+
<div class="form-group col-sm-2">
|
|
108
|
+
<label class="font_normal_body">发票号码 </label>
|
|
109
|
+
<input type="text" class="form-control" v-model="model.f_bill_number" style="width:60%"
|
|
110
|
+
condition="f_bill_number = '{}'" placeholder="发票号码"
|
|
111
|
+
>
|
|
112
|
+
</div>
|
|
113
|
+
<div class="form-group col-sm-2">
|
|
114
|
+
<label class="font_normal_body">发票类型</label>
|
|
115
|
+
<v-select id="f_invoice_category"
|
|
116
|
+
style="width:60%"
|
|
117
|
+
v-model="model.f_invoice_category"
|
|
118
|
+
placeholder='票据状态'
|
|
119
|
+
condition="f_invoice_category ='{}'"
|
|
120
|
+
:value.sync="model.f_invoice_category"
|
|
121
|
+
:options='$parent.$parent.eticketcategory'
|
|
122
|
+
:search="false"
|
|
123
|
+
close-on-select clear-button>
|
|
124
|
+
</v-select>
|
|
125
|
+
</div>
|
|
126
|
+
</div>
|
|
127
|
+
</div>
|
|
128
|
+
</criteria>
|
|
129
|
+
<data-grid :model="model" partial='list' class="list_area table_sy" v-ref:grid>
|
|
130
|
+
<template partial='head'>
|
|
131
|
+
<tr>
|
|
132
|
+
<th>
|
|
133
|
+
<nobr>客户编号</nobr>
|
|
134
|
+
</th>
|
|
135
|
+
<th>
|
|
136
|
+
<nobr>客户姓名</nobr>
|
|
137
|
+
</th>
|
|
138
|
+
<th>
|
|
139
|
+
<nobr>客户地址电话</nobr>
|
|
140
|
+
</th>
|
|
141
|
+
<th>
|
|
142
|
+
<nobr>用户类型</nobr>
|
|
143
|
+
</th>
|
|
144
|
+
<th>
|
|
145
|
+
<data-order field="f_total_money" name="实收金额"
|
|
146
|
+
:order.sync="$parent.$parent.$parent.orderFields.f_collection"></data-order>
|
|
147
|
+
</th>
|
|
148
|
+
<th>
|
|
149
|
+
<data-order field="f_total_money" name="开票金额"
|
|
150
|
+
:order.sync="$parent.$parent.$parent.orderFields.f_total_money"></data-order>
|
|
151
|
+
</th>
|
|
152
|
+
<th>
|
|
153
|
+
<nobr>不含税金额</nobr>
|
|
154
|
+
</th>
|
|
155
|
+
<th>
|
|
156
|
+
<nobr>发票种类</nobr>
|
|
157
|
+
</th>
|
|
158
|
+
<th>
|
|
159
|
+
<nobr>发票类型</nobr>
|
|
160
|
+
</th>
|
|
161
|
+
<th>
|
|
162
|
+
<nobr>发票代码</nobr>
|
|
163
|
+
</th>
|
|
164
|
+
<th>
|
|
165
|
+
<nobr>发票流水号</nobr>
|
|
166
|
+
</th>
|
|
167
|
+
<th>
|
|
168
|
+
<nobr>发票号码</nobr>
|
|
169
|
+
</th>
|
|
170
|
+
<th>
|
|
171
|
+
<nobr>发票状态</nobr>
|
|
172
|
+
</th>
|
|
173
|
+
<th>
|
|
174
|
+
<nobr>失败原因</nobr>
|
|
175
|
+
</th>
|
|
176
|
+
<th>
|
|
177
|
+
<nobr>业务类型</nobr>
|
|
178
|
+
</th>
|
|
179
|
+
<th>
|
|
180
|
+
<nobr>开票描述</nobr>
|
|
181
|
+
</th>
|
|
182
|
+
<th>
|
|
183
|
+
<nobr>收费时间</nobr>
|
|
184
|
+
</th>
|
|
185
|
+
<th>
|
|
186
|
+
<nobr>开票时间</nobr>
|
|
187
|
+
</th>
|
|
188
|
+
<th>
|
|
189
|
+
<nobr>开票人</nobr>
|
|
190
|
+
</th>
|
|
191
|
+
<th>
|
|
192
|
+
<nobr>收款人</nobr>
|
|
193
|
+
</th>
|
|
194
|
+
<th>
|
|
195
|
+
<nobr>查看发票</nobr>
|
|
196
|
+
</th>
|
|
197
|
+
<th>
|
|
198
|
+
<nobr>操作</nobr>
|
|
199
|
+
</th>
|
|
200
|
+
</tr>
|
|
201
|
+
</template>
|
|
202
|
+
<template partial='body' :model="model">
|
|
203
|
+
<tr>
|
|
204
|
+
<th style="text-align:center">{{ row.f_userinfo_code }}</th>
|
|
205
|
+
<th style="text-align:center">{{ row.f_user_name }}</th>
|
|
206
|
+
<th style="text-align:center">{{ row.f_buy_address_phone }}</th>
|
|
207
|
+
<th style="text-align:center">{{ row.f_user_type }}</th>
|
|
208
|
+
<th style="text-align:center">{{ row.f_collection }}</th>
|
|
209
|
+
<th style="text-align:center">{{ row.f_total_money }}</th>
|
|
210
|
+
<th style="text-align:center">{{ row.f_tax_money }}</th>
|
|
211
|
+
<th style="text-align:center">{{ row.f_invoice_category }}</th>
|
|
212
|
+
<th style="text-align:center">{{ row.f_invoice_type === '0' ? '蓝票' : '红票'}}</th>
|
|
213
|
+
<th style="text-align:center">{{ row.f_bill_code }}</th>
|
|
214
|
+
<th style="text-align:center">{{ row.f_fpqqlsh }}</th>
|
|
215
|
+
<th style="text-align:center">{{ row.f_bill_number }}</th>
|
|
216
|
+
<th style="text-align:center">{{ row.f_bill_state }}</th>
|
|
217
|
+
<th style="text-align:center">{{ row.f_remessage }}</th>
|
|
218
|
+
<th style="text-align:center">{{ row.f_charge_type }}</th>
|
|
219
|
+
<th style="text-align:center">{{ row.f_sign_result }}</th>
|
|
220
|
+
<th style="text-align:center">{{ row.sell_operate_date }}</th>
|
|
221
|
+
<th style="text-align:center">{{ row.f_operate_date }}</th>
|
|
222
|
+
<th style="text-align:center">{{ row.f_operator }}</th>
|
|
223
|
+
<th style="text-align:center">{{ row.sell_operator }}</th>
|
|
224
|
+
<th style="text-align:center">
|
|
225
|
+
<button class="btn btn-link" v-if="row.f_bill_url"
|
|
226
|
+
@click="$parent.$parent.$parent.watch_ch(row.f_bill_url)">
|
|
227
|
+
查看发票
|
|
228
|
+
</button>
|
|
229
|
+
</th>
|
|
230
|
+
<th style="text-align:center">
|
|
231
|
+
<template v-if="row.f_invoice_source !== '外部录入'">
|
|
232
|
+
<button class="btn btn-link" v-if="row.f_bill_state==='开票成功' && row.f_invoice_type === '0'"
|
|
233
|
+
@click="$parent.$parent.$parent.fp_ch(row)">发票冲红
|
|
234
|
+
</button>
|
|
235
|
+
<button class="btn btn-link" v-if="row.f_bill_state==='待开票'"
|
|
236
|
+
@click="$parent.$parent.$parent.kp(row)">开票
|
|
237
|
+
</button>
|
|
238
|
+
<button class="btn btn-link" v-if="row.f_bill_state==='开票失败'"
|
|
239
|
+
@click="$parent.$parent.$parent.Rekp(row)">重新开票
|
|
240
|
+
</button>
|
|
241
|
+
<!-- <button class="btn btn-link" v-if="['查询失败','等待查询'].includes(row.f_bill_state)"-->
|
|
242
|
+
<!-- @click="$parent.$parent.$parent.fp_search(row)">电票查询-->
|
|
243
|
+
<!-- </button>-->
|
|
244
|
+
</template>
|
|
245
|
+
</th>
|
|
246
|
+
</tr>
|
|
247
|
+
</template>
|
|
248
|
+
</data-grid>
|
|
249
|
+
</criteria-paged>
|
|
250
|
+
</div>
|
|
251
|
+
<modal v-if="show" :show.sync="show" v-ref:modal backdrop="false">
|
|
252
|
+
<header slot="modal-header" class="modal-header">
|
|
253
|
+
<h4 class="modal-title">撤销原因</h4>
|
|
254
|
+
</header>
|
|
255
|
+
<article slot="modal-body" class="modal-body">
|
|
256
|
+
<validator name='v'>
|
|
257
|
+
<form class="form-horizontal select-overspread">
|
|
258
|
+
<div class="form-group" :class="[$v.f_cancel_reason.required ? 'has-error' : 'has-success']">
|
|
259
|
+
<label class=" col-sm-3 control-label">冲红备注:</label>
|
|
260
|
+
<div class="col-sm-8">
|
|
261
|
+
<textarea class="form-control" v-model="bz" rows="3"
|
|
262
|
+
placeholder="请填写冲红备注" v-validate:bz='{required: true}'></textarea>
|
|
263
|
+
</div>
|
|
264
|
+
</div>
|
|
265
|
+
</form>
|
|
266
|
+
</validator>
|
|
267
|
+
</article>
|
|
268
|
+
<footer slot="modal-footer" class="modal-footer">
|
|
269
|
+
<button v-show="show" type="button" class="button_search" @click='confirm()' :disabled="!$v.valid ">确认</button>
|
|
270
|
+
<button v-show="show" type="button" class="button_clear" @click='close'>取消</button>
|
|
271
|
+
</footer>
|
|
272
|
+
</modal>
|
|
273
|
+
<ticket-print :show="eticket_show" @toggle="eticket_toggle" v-ref:eticketbill></ticket-print>
|
|
274
|
+
</template>
|
|
275
|
+
<script>
|
|
276
|
+
|
|
277
|
+
import {PagedList} from 'vue-client'
|
|
278
|
+
|
|
279
|
+
export default {
|
|
280
|
+
title: '发票管理',
|
|
281
|
+
data () {
|
|
282
|
+
return {
|
|
283
|
+
model: new PagedList('rs/sql/eticket_query', 20, {orderitem: this.orderitem ? '"' + this.orderitem + ' "' : `'f_operate_date desc'`}),
|
|
284
|
+
criteriaShow: false,
|
|
285
|
+
eticket_show: false,
|
|
286
|
+
orgCondtionStr: '',
|
|
287
|
+
showsum_show: false,
|
|
288
|
+
invoice_types: this.$appdata.getParam('发票种类'),
|
|
289
|
+
eticktypes: [{label: '开票成功', value: '开票成功'}, {label: '等待查询', value: '等待查询'}, {
|
|
290
|
+
label: '开票失败',
|
|
291
|
+
value: '开票失败'
|
|
292
|
+
}, {
|
|
293
|
+
label: '冲红失败',
|
|
294
|
+
value: '冲红失败'
|
|
295
|
+
}, {label: '冲红', value: '冲红'}, {label: '撤销', value: '撤销'}],
|
|
296
|
+
eticketcategory: [{label: '数电普票', value: '数电普票'}, {label: '数电专票', value: '数电专票'},{label: '电子发票', value: '电子发票'},
|
|
297
|
+
{label: '普通收据', value: '普通收据'}, {label: '专用发票', value: '专用发票'}],
|
|
298
|
+
show: false,
|
|
299
|
+
bz: '',
|
|
300
|
+
row: {},
|
|
301
|
+
orderFields: {
|
|
302
|
+
f_operate_date: 'desc',
|
|
303
|
+
f_collection: 'no',
|
|
304
|
+
f_total_money: 'no'
|
|
305
|
+
},
|
|
306
|
+
// 排序
|
|
307
|
+
orderitem: ' f_operate_date desc ',
|
|
308
|
+
fields: {
|
|
309
|
+
'f_userinfo_code': '客户编号',
|
|
310
|
+
'f_user_name': '客户姓名',
|
|
311
|
+
'f_buy_address_phone': '用户地址',
|
|
312
|
+
'f_user_type': '用户类型',
|
|
313
|
+
'f_collection': '实收金额',
|
|
314
|
+
'f_total_money': '开票金额',
|
|
315
|
+
'f_tax_money': '不含税金额',
|
|
316
|
+
'f_invoice_category': '发票种类',
|
|
317
|
+
'f_invoice_type': '发票类型',
|
|
318
|
+
'f_bill_code': '发票代码',
|
|
319
|
+
'f_fpqqlsh': '发票流水号',
|
|
320
|
+
'f_bill_number': '发票号码',
|
|
321
|
+
'f_bill_state': '发票状态',
|
|
322
|
+
'f_remessage': '失败原因',
|
|
323
|
+
'f_charge_type': '业务类型',
|
|
324
|
+
'sell_operate_date': '收费时间',
|
|
325
|
+
'f_operate_date': '开票时间',
|
|
326
|
+
'f_operator': '开票人',
|
|
327
|
+
'sell_operator': '收款人'
|
|
328
|
+
},
|
|
329
|
+
install_show: false
|
|
330
|
+
}
|
|
331
|
+
},
|
|
332
|
+
ready () {
|
|
333
|
+
},
|
|
334
|
+
methods: {
|
|
335
|
+
async Rekp (row) {
|
|
336
|
+
console.log('重开参数' + JSON.stringify(row))
|
|
337
|
+
this.eticket_show = true
|
|
338
|
+
row.f_paper_name = row.f_user_name
|
|
339
|
+
row.f_email = row.f_mail_push
|
|
340
|
+
row.f_taxpayer_id = row.f_pay_id
|
|
341
|
+
row.f_address_phone = row.f_buy_address_phone
|
|
342
|
+
row.f_paper_accoun = row.f_buy_openbank
|
|
343
|
+
await this.$refs.eticketbill.openETicket(row.f_sell_id, row, row.f_charge_type, row.f_invoice_category, true)
|
|
344
|
+
},
|
|
345
|
+
search () {
|
|
346
|
+
this.$refs.paged.$refs.cri.search()
|
|
347
|
+
},
|
|
348
|
+
clear () {
|
|
349
|
+
this.$refs.paged.$refs.cri.model = {}
|
|
350
|
+
},
|
|
351
|
+
selfSearch (args) {
|
|
352
|
+
this.model.search(args.condition, args.model)
|
|
353
|
+
},
|
|
354
|
+
sort (field, rule) {
|
|
355
|
+
// 将所有排序方式设为不排序,实现相互排斥
|
|
356
|
+
for (let key in this.orderFields) {
|
|
357
|
+
if (key === field) {
|
|
358
|
+
this.orderFields[key] = rule
|
|
359
|
+
} else {
|
|
360
|
+
this.orderFields[key] = 'no'
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
// 如果新规则不排序,还原为默认排序
|
|
364
|
+
if (rule === 'no') {
|
|
365
|
+
this.model.paramSource.orderitem = `'${this.orderitem}'`
|
|
366
|
+
} else {
|
|
367
|
+
this.model.paramSource.orderitem = `'${field} ${rule}'`
|
|
368
|
+
}
|
|
369
|
+
this.search()
|
|
370
|
+
},
|
|
371
|
+
async confirm () {
|
|
372
|
+
this.eticket_show = true
|
|
373
|
+
await this.$refs.eticketbill.rushRedInvoice({id: this.row.f_sell_id, eticket_id: this.row.id, bz: this.bz})
|
|
374
|
+
},
|
|
375
|
+
async fp_search (row) {
|
|
376
|
+
this.eticket_show = true
|
|
377
|
+
await this.$refs.eticketbill.fp_search(row, row.id)
|
|
378
|
+
},
|
|
379
|
+
watch_ch (src) {
|
|
380
|
+
this.eticket_show = true
|
|
381
|
+
this.$refs.eticketbill.watch_ch(src)
|
|
382
|
+
},
|
|
383
|
+
fp_ch (row) {
|
|
384
|
+
this.row = row
|
|
385
|
+
this.show = true
|
|
386
|
+
this.bz = `对应正数发票代码:${row.f_bill_code},号码:${row.f_bill_number}。`
|
|
387
|
+
},
|
|
388
|
+
close () {
|
|
389
|
+
this.show = false
|
|
390
|
+
this.install_show = false
|
|
391
|
+
},
|
|
392
|
+
kp (row) {
|
|
393
|
+
this.eticket_show = true
|
|
394
|
+
this.$refs.eticketbill.openETicket(row.f_sell_id, row, row.f_charge_type)
|
|
395
|
+
},
|
|
396
|
+
eticket_toggle () {
|
|
397
|
+
this.eticket_show = false
|
|
398
|
+
this.show = false
|
|
399
|
+
this.row = {}
|
|
400
|
+
this.bz = ''
|
|
401
|
+
}
|
|
402
|
+
},
|
|
403
|
+
computed: {
|
|
404
|
+
usertypes () {
|
|
405
|
+
return [{label: ' 全部 ', value: ''}, ...this.$appdata.getParam('用户类型')]
|
|
406
|
+
},
|
|
407
|
+
getCondition () {
|
|
408
|
+
return {
|
|
409
|
+
condition: `${this.$refs.paged.$refs.cri.condition}` + this.orgCondtionStr,
|
|
410
|
+
orderitem: this.orderitem ? `${this.orderitem}` : " f_operate_date desc"
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
},
|
|
414
|
+
events: {
|
|
415
|
+
'search' () {
|
|
416
|
+
this.search()
|
|
417
|
+
}
|
|
418
|
+
},
|
|
419
|
+
watch: {}
|
|
420
|
+
}
|
|
421
|
+
</script>
|
|
422
|
+
<style scoped>
|
|
423
|
+
th {
|
|
424
|
+
text-align: center;
|
|
425
|
+
padding: 2px;
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
td {
|
|
429
|
+
text-align: center;
|
|
430
|
+
padding: 2px;
|
|
431
|
+
}
|
|
432
|
+
</style>
|
|
@@ -17,5 +17,9 @@ export default function () {
|
|
|
17
17
|
// 当前选择用户的表具基本信息
|
|
18
18
|
Vue.component('user-meterinfodetail', (resolve) => { require(['./meterinfodetail'], resolve) })
|
|
19
19
|
// 电子发票开票
|
|
20
|
-
Vue.component('e-ticket-
|
|
20
|
+
Vue.component('e-ticket-manage-query-v4', (resolve) => { require(['./EticketManage'], resolve) })
|
|
21
|
+
// 电子发票记录查看
|
|
22
|
+
Vue.component('e-ticket-record-list-query-v4', (resolve) => { require(['./EticketRecordList'], resolve) })
|
|
23
|
+
// 收费开票
|
|
24
|
+
Vue.component('cust-query-eticket-query-v4', (resolve) => { require(['./CustQueryEticket'], resolve) })
|
|
21
25
|
}
|
|
@@ -442,9 +442,9 @@
|
|
|
442
442
|
})
|
|
443
443
|
console.log('获取限购值', getLimit)
|
|
444
444
|
self.hasLimit = getLimit.data.hasLimit
|
|
445
|
-
// 如果选择了"城边村补贴"
|
|
445
|
+
// 如果选择了"城边村补贴",标记忽略限购(但不改变hasLimit,保持限购值可用)
|
|
446
446
|
if (self.hasLimit && self.model.f_payment && self.model.f_payment.includes && self.model.f_payment.includes('城边村补贴')) {
|
|
447
|
-
self.
|
|
447
|
+
self.ignoreLimitBySubsidy = true
|
|
448
448
|
self.limitmoney = false
|
|
449
449
|
self.limitgas = false
|
|
450
450
|
self.maxgas = 99999999
|
|
@@ -574,7 +574,8 @@
|
|
|
574
574
|
garbage_money: 0,
|
|
575
575
|
totalCharge: 0,
|
|
576
576
|
accountperiod: '',
|
|
577
|
-
canPay: false
|
|
577
|
+
canPay: false,
|
|
578
|
+
ignoreLimitBySubsidy: false // 标记是否因城边村补贴而忽略限购
|
|
578
579
|
}
|
|
579
580
|
},
|
|
580
581
|
props: ['row', 'cardData'],
|
|
@@ -633,13 +634,20 @@
|
|
|
633
634
|
},
|
|
634
635
|
'model.f_payment' (val) {
|
|
635
636
|
// 如果选择了"城边村补贴",忽略限购
|
|
636
|
-
if (
|
|
637
|
-
this.hasLimit
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
637
|
+
if (val && val.includes && val.includes('城边村补贴')) {
|
|
638
|
+
if (this.hasLimit) {
|
|
639
|
+
this.ignoreLimitBySubsidy = true
|
|
640
|
+
this.limitmoney = false
|
|
641
|
+
this.limitgas = false
|
|
642
|
+
this.maxgas = 99999999
|
|
643
|
+
this.maxmoney = 99999999
|
|
644
|
+
this.$resetValidation()
|
|
645
|
+
}
|
|
646
|
+
} else {
|
|
647
|
+
// 切换到其他付款方式,重新获取限购值
|
|
648
|
+
if (this.ignoreLimitBySubsidy) {
|
|
649
|
+
this.queryLimit()
|
|
650
|
+
}
|
|
643
651
|
}
|
|
644
652
|
if (val == '免交') {
|
|
645
653
|
this.mjshow = true
|
|
@@ -675,6 +683,40 @@
|
|
|
675
683
|
}
|
|
676
684
|
},
|
|
677
685
|
methods: {
|
|
686
|
+
// 查询限购
|
|
687
|
+
async queryLimit () {
|
|
688
|
+
let limit_param = {
|
|
689
|
+
f_userinfo_id: this.row.f_userinfo_id,
|
|
690
|
+
f_user_id: this.row.f_user_id,
|
|
691
|
+
f_stairprice_id: this.row.f_stairprice_id
|
|
692
|
+
}
|
|
693
|
+
let getLimit = await this.$resetpost('rs/logic/sale_getLimitGas', {data: limit_param}, {
|
|
694
|
+
resolveMsg: null,
|
|
695
|
+
rejectMsg: '获取限购值失败!!'
|
|
696
|
+
})
|
|
697
|
+
console.log('重新获取限购值', getLimit)
|
|
698
|
+
this.hasLimit = getLimit.data.hasLimit
|
|
699
|
+
this.ignoreLimitBySubsidy = false
|
|
700
|
+
if (this.hasLimit) {
|
|
701
|
+
if (getLimit.data.f_limit_value || getLimit.data.f_limit_amount) {
|
|
702
|
+
if (getLimit.data.f_limit_value < 0 || getLimit.data.f_limit_amount < 0) {
|
|
703
|
+
this.maxmoney = 0
|
|
704
|
+
this.limitmoney = true
|
|
705
|
+
this.$showAlert(`${getLimit.data.msg}\n限购原因:${getLimit.data.limitMessage}`, 'warning', 3000)
|
|
706
|
+
} else {
|
|
707
|
+
if (getLimit.data.f_limit_value) {
|
|
708
|
+
this.maxgas = (getLimit.data.f_limit_value - 0)
|
|
709
|
+
this.limitgas = true
|
|
710
|
+
}
|
|
711
|
+
if (getLimit.data.f_limit_amount) {
|
|
712
|
+
this.maxmoney = (getLimit.data.f_limit_amount - 0)
|
|
713
|
+
this.limitmoney = true
|
|
714
|
+
}
|
|
715
|
+
}
|
|
716
|
+
}
|
|
717
|
+
}
|
|
718
|
+
this.$resetValidation()
|
|
719
|
+
},
|
|
678
720
|
// 查询垃圾费
|
|
679
721
|
async getList () {
|
|
680
722
|
let res = await this.$resetpost('rs/logic/queryGarbageCharges', {f_userfiles_id: this.row.f_userfiles_id}, {resolveMsg: null, rejectMsg: '查询垃圾费异常'})
|
|
@@ -430,9 +430,9 @@
|
|
|
430
430
|
let getLimit = await self.$resetpost('rs/logic/sale_getLimitGas', {data: limit_param}, {resolveMsg: null, rejectMsg: '获取限购值失败!!'})
|
|
431
431
|
console.log('获取限购值', getLimit)
|
|
432
432
|
self.hasLimit = getLimit.data.hasLimit
|
|
433
|
-
// 如果选择了"城边村补贴"
|
|
433
|
+
// 如果选择了"城边村补贴",标记忽略限购
|
|
434
434
|
if (self.hasLimit && self.model.f_payment && self.model.f_payment.includes && self.model.f_payment.includes('城边村补贴')) {
|
|
435
|
-
self.
|
|
435
|
+
self.ignoreLimitBySubsidy = true
|
|
436
436
|
self.limitmoney = false
|
|
437
437
|
self.limitgas = false
|
|
438
438
|
self.maxgas = 99999999
|
|
@@ -535,7 +535,8 @@
|
|
|
535
535
|
garbage_money: 0,
|
|
536
536
|
totalCharge: 0,
|
|
537
537
|
accountperiod: '',
|
|
538
|
-
canPay : false
|
|
538
|
+
canPay : false,
|
|
539
|
+
ignoreLimitBySubsidy: false // 标记是否因城边村补贴而忽略限购
|
|
539
540
|
}
|
|
540
541
|
},
|
|
541
542
|
props: ['row'],
|
|
@@ -594,13 +595,20 @@
|
|
|
594
595
|
},
|
|
595
596
|
'model.f_payment' (val) {
|
|
596
597
|
// 如果选择了"城边村补贴",忽略限购
|
|
597
|
-
if (
|
|
598
|
-
this.hasLimit
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
598
|
+
if (val && val.includes && val.includes('城边村补贴')) {
|
|
599
|
+
if (this.hasLimit) {
|
|
600
|
+
this.ignoreLimitBySubsidy = true
|
|
601
|
+
this.limitmoney = false
|
|
602
|
+
this.limitgas = false
|
|
603
|
+
this.maxgas = 99999999
|
|
604
|
+
this.maxmoney = 99999999
|
|
605
|
+
this.$resetValidation()
|
|
606
|
+
}
|
|
607
|
+
} else {
|
|
608
|
+
// 切换到其他付款方式,重新获取限购值
|
|
609
|
+
if (this.ignoreLimitBySubsidy) {
|
|
610
|
+
this.queryLimit()
|
|
611
|
+
}
|
|
604
612
|
}
|
|
605
613
|
if (val == '免交') {
|
|
606
614
|
this.mjshow = true
|
|
@@ -633,6 +641,40 @@
|
|
|
633
641
|
}
|
|
634
642
|
},
|
|
635
643
|
methods: {
|
|
644
|
+
// 查询限购
|
|
645
|
+
async queryLimit () {
|
|
646
|
+
let limit_param = {
|
|
647
|
+
f_userinfo_id: this.row.f_userinfo_id,
|
|
648
|
+
f_user_id: this.row.f_user_id,
|
|
649
|
+
f_stairprice_id: this.row.f_stairprice_id
|
|
650
|
+
}
|
|
651
|
+
let getLimit = await this.$resetpost('rs/logic/sale_getLimitGas', {data: limit_param}, {
|
|
652
|
+
resolveMsg: null,
|
|
653
|
+
rejectMsg: '获取限购值失败!!'
|
|
654
|
+
})
|
|
655
|
+
console.log('重新获取限购值', getLimit)
|
|
656
|
+
this.hasLimit = getLimit.data.hasLimit
|
|
657
|
+
this.ignoreLimitBySubsidy = false
|
|
658
|
+
if (this.hasLimit) {
|
|
659
|
+
if (getLimit.data.f_limit_value || getLimit.data.f_limit_amount) {
|
|
660
|
+
if (getLimit.data.f_limit_value < 0 || getLimit.data.f_limit_amount < 0) {
|
|
661
|
+
this.maxmoney = 0
|
|
662
|
+
this.limitmoney = true
|
|
663
|
+
this.$showAlert(`${getLimit.data.msg}\n限购原因:${getLimit.data.limitMessage}`, 'warning', 3000)
|
|
664
|
+
} else {
|
|
665
|
+
if (getLimit.data.f_limit_value) {
|
|
666
|
+
this.maxgas = (getLimit.data.f_limit_value - 0)
|
|
667
|
+
this.limitgas = true
|
|
668
|
+
}
|
|
669
|
+
if (getLimit.data.f_limit_amount) {
|
|
670
|
+
this.maxmoney = (getLimit.data.f_limit_amount - 0)
|
|
671
|
+
this.limitmoney = true
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
}
|
|
676
|
+
this.$resetValidation()
|
|
677
|
+
},
|
|
636
678
|
// 查询垃圾费
|
|
637
679
|
async getList () {
|
|
638
680
|
let res = await this.$resetpost('rs/logic/queryGarbageCharges', {f_userfiles_id: this.row.f_userfiles_id}, {resolveMsg: null, rejectMsg: '查询垃圾费异常'})
|
|
@@ -318,9 +318,9 @@
|
|
|
318
318
|
let getLimit = await self.$resetpost('rs/logic/sale_getLimitGas', {data: limit_param}, {resolveMsg: null, newly: true, rejectMsg: '获取限购值失败!!'})
|
|
319
319
|
console.log('获取限购值', getLimit)
|
|
320
320
|
self.hasLimit = getLimit.data.hasLimit
|
|
321
|
-
// 如果选择了"城边村补贴"
|
|
321
|
+
// 如果选择了"城边村补贴",标记忽略限购
|
|
322
322
|
if (self.hasLimit && self.model.f_payment && self.model.f_payment.includes && self.model.f_payment.includes('城边村补贴')) {
|
|
323
|
-
self.
|
|
323
|
+
self.ignoreLimitBySubsidy = true
|
|
324
324
|
self.limitmoney = false
|
|
325
325
|
self.limitgas = false
|
|
326
326
|
self.maxgas = 99999999
|
|
@@ -417,6 +417,7 @@
|
|
|
417
417
|
limitgas: false,
|
|
418
418
|
mulPrint: false,
|
|
419
419
|
clickConfirm: false, // 控制确认按钮只能点击一次
|
|
420
|
+
ignoreLimitBySubsidy: false, // 标记是否因城边村补贴而忽略限购
|
|
420
421
|
// 下拉框值
|
|
421
422
|
paytype: this.$appdata.getParam('付款方式'),
|
|
422
423
|
printstyle: this.$appdata.getParam('打印格式'),
|
|
@@ -452,6 +453,41 @@
|
|
|
452
453
|
}
|
|
453
454
|
},
|
|
454
455
|
methods: {
|
|
456
|
+
// 查询限购
|
|
457
|
+
async queryLimit () {
|
|
458
|
+
let limit_param = {
|
|
459
|
+
f_userinfo_id: this.row.f_userinfo_id,
|
|
460
|
+
f_user_id: this.row.f_user_id,
|
|
461
|
+
f_stairprice_id: this.row.f_stairprice_id
|
|
462
|
+
}
|
|
463
|
+
let getLimit = await this.$resetpost('rs/logic/sale_getLimitGas', {data: limit_param}, {
|
|
464
|
+
resolveMsg: null,
|
|
465
|
+
newly: true,
|
|
466
|
+
rejectMsg: '获取限购值失败!!'
|
|
467
|
+
})
|
|
468
|
+
console.log('重新获取限购值', getLimit)
|
|
469
|
+
this.hasLimit = getLimit.data.hasLimit
|
|
470
|
+
this.ignoreLimitBySubsidy = false
|
|
471
|
+
if (this.hasLimit) {
|
|
472
|
+
if (getLimit.data.f_limit_value || getLimit.data.f_limit_amount) {
|
|
473
|
+
if (getLimit.data.f_limit_value < 0 || getLimit.data.f_limit_amount < 0) {
|
|
474
|
+
this.maxmoney = 0
|
|
475
|
+
this.limitmoney = true
|
|
476
|
+
this.$showAlert(`${getLimit.data.msg}\n限购原因:${getLimit.data.limitMessage}`, 'warning', 3000)
|
|
477
|
+
} else {
|
|
478
|
+
if (getLimit.data.f_limit_value) {
|
|
479
|
+
this.maxgas = (getLimit.data.f_limit_value - 0)
|
|
480
|
+
this.limitgas = true
|
|
481
|
+
}
|
|
482
|
+
if (getLimit.data.f_limit_amount) {
|
|
483
|
+
this.maxmoney = (getLimit.data.f_limit_amount - 0)
|
|
484
|
+
this.limitmoney = true
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
this.$resetValidation()
|
|
490
|
+
},
|
|
455
491
|
// 根据收款金额计算划价信息
|
|
456
492
|
// 需要配置 calculatePreByCollection = true
|
|
457
493
|
async calculatePreByCollection () {
|
|
@@ -656,13 +692,20 @@
|
|
|
656
692
|
},
|
|
657
693
|
'model.f_payment' (val) {
|
|
658
694
|
// 如果选择了"城边村补贴",忽略限购
|
|
659
|
-
if (
|
|
660
|
-
this.hasLimit
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
695
|
+
if (val && val.includes && val.includes('城边村补贴')) {
|
|
696
|
+
if (this.hasLimit) {
|
|
697
|
+
this.ignoreLimitBySubsidy = true
|
|
698
|
+
this.limitmoney = false
|
|
699
|
+
this.limitgas = false
|
|
700
|
+
this.maxgas = 99999999
|
|
701
|
+
this.maxmoney = 99999999
|
|
702
|
+
this.$resetValidation()
|
|
703
|
+
}
|
|
704
|
+
} else {
|
|
705
|
+
// 切换到其他付款方式,重新获取限购值
|
|
706
|
+
if (this.ignoreLimitBySubsidy) {
|
|
707
|
+
this.queryLimit()
|
|
708
|
+
}
|
|
666
709
|
}
|
|
667
710
|
let _payment = this.$appdata.getSingleValue('需要输入业务单号的付款方式') || ''
|
|
668
711
|
if (val == '免交' || _payment.includes(val)) {
|
|
@@ -135,7 +135,7 @@
|
|
|
135
135
|
</div>
|
|
136
136
|
<div :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
|
|
137
137
|
class="form-group">
|
|
138
|
-
<label class="font_normal_body"
|
|
138
|
+
<label class="font_normal_body">开户时间</label>
|
|
139
139
|
<datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_start_date"
|
|
140
140
|
class="datepicker"
|
|
141
141
|
condition="f_open_date >= '{} 00:00:00' "
|
|
@@ -155,28 +155,6 @@
|
|
|
155
155
|
v-model="model.f_end_date"
|
|
156
156
|
></datepicker>
|
|
157
157
|
</div>
|
|
158
|
-
<div :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
|
|
159
|
-
class="form-group">
|
|
160
|
-
<label class="font_normal_body">表档案开户时间</label>
|
|
161
|
-
<datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_start_date"
|
|
162
|
-
class="datepicker"
|
|
163
|
-
condition="f_open_date_uf >= '{} 00:00:00' "
|
|
164
|
-
placeholder="起始时间"
|
|
165
|
-
style="width:60%"
|
|
166
|
-
v-model="model.f_start_date"
|
|
167
|
-
></datepicker>
|
|
168
|
-
</div>
|
|
169
|
-
<div :class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
|
|
170
|
-
class="form-group" >
|
|
171
|
-
<label class="font_normal_body" >  至  </label>
|
|
172
|
-
<datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_end_date"
|
|
173
|
-
class="datepicker"
|
|
174
|
-
condition="f_open_date_uf <= '{} 23:59:59' "
|
|
175
|
-
placeholder="结束时间"
|
|
176
|
-
style="width:60%"
|
|
177
|
-
v-model="model.f_end_date"
|
|
178
|
-
></datepicker>
|
|
179
|
-
</div>
|
|
180
158
|
<div
|
|
181
159
|
:class="{'col-sm-2':!$parent.$parent.createFile,'col-sm-4':$parent.$parent.createFile}"
|
|
182
160
|
class="form-group">
|
|
@@ -440,10 +418,7 @@
|
|
|
440
418
|
<nobr>发卡状态</nobr>
|
|
441
419
|
</th>
|
|
442
420
|
<th v-if="!$parent.$parent.$parent.createFile">
|
|
443
|
-
<nobr
|
|
444
|
-
</th>
|
|
445
|
-
<th v-if="!$parent.$parent.$parent.createFile">
|
|
446
|
-
<nobr>表档案开户时间</nobr>
|
|
421
|
+
<nobr>开户时间</nobr>
|
|
447
422
|
</th>
|
|
448
423
|
<th v-if="!$parent.$parent.$parent.createFile">
|
|
449
424
|
<nobr>建档人</nobr>
|
|
@@ -505,7 +480,6 @@
|
|
|
505
480
|
<td style="text-align: center;">{{row.f_price_name}}</td>
|
|
506
481
|
<td style="text-align: center;">{{row.f_whether_hairpin}}</td>
|
|
507
482
|
<td style="text-align: center;" v-if="!$parent.$parent.$parent.createFile">{{row.f_open_date}}</td>
|
|
508
|
-
<td style="text-align: center;" v-if="!$parent.$parent.$parent.createFile">{{row.f_open_date_uf}}</td>
|
|
509
483
|
<td style="text-align: center;" v-if="!$parent.$parent.$parent.createFile">{{row.f_createfile_person}}</td>
|
|
510
484
|
<td style="text-align: center;" v-if="!$parent.$parent.$parent.createFile">{{row.f_userfiles_address}}</td>
|
|
511
485
|
<td style="text-align: center;" v-if="!$parent.$parent.$parent.createFile">{{row.f_feed_method}}</td>
|
|
@@ -179,7 +179,6 @@
|
|
|
179
179
|
<datepicker style="width:60%" placeholder="通气日期"
|
|
180
180
|
v-model="row.f_gas_date"
|
|
181
181
|
v-ref:f_gas_date
|
|
182
|
-
:disabled ="isedit"
|
|
183
182
|
:value.sync="row.f_gas_date"
|
|
184
183
|
:format="'yyyy-MM-dd HH:mm:ss'"
|
|
185
184
|
:show-reset-button="reset"
|
|
@@ -472,7 +471,7 @@ let meterBookGen = function * (self) {
|
|
|
472
471
|
finalDate: ''
|
|
473
472
|
}
|
|
474
473
|
},
|
|
475
|
-
props: ['f_filialeid', 'meter', 'isdecimal', 'valid', 'f_userinfo_id'
|
|
474
|
+
props: ['f_filialeid', 'meter', 'isdecimal', 'valid', 'f_userinfo_id'],
|
|
476
475
|
ready () {
|
|
477
476
|
console.log('看看meter里面的数据', this.meter, this.row)
|
|
478
477
|
console.log('--------------====================', this.meter.f_aroundmeter, this.row.f_aroundmeter)
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
<div style="height: auto;width: 100%">
|
|
19
19
|
<file-user-meter-info :meterinfo="data.meterinfo" :f_filialeid="f_filialeid" :metervalid.sync="meterInfo"
|
|
20
|
-
:f_userinfo_id="data.baseinfo.base.f_userinfo_id"
|
|
20
|
+
:f_userinfo_id="data.baseinfo.base.f_userinfo_id" v-ref:meter></file-user-meter-info>
|
|
21
21
|
</div>
|
|
22
22
|
|
|
23
23
|
<div style="height: auto;width: 100%">
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
<button class="button_search" style="width: max-content" @click="showDevices($index, row)">用气设备信息</button>
|
|
10
10
|
</div>
|
|
11
11
|
<file-meter-info :meter="row" :f_filialeid="f_filialeid" :usertype="usertype" :gasproperties="gasproperties" @self-valid='valida'
|
|
12
|
-
@delete-meter="deleteMeter($index)" :f_userinfo_id="f_userinfo_id"
|
|
12
|
+
@delete-meter="deleteMeter($index)" :f_userinfo_id="f_userinfo_id"></file-meter-info>
|
|
13
13
|
|
|
14
14
|
</div>
|
|
15
15
|
<div class="panel panel-default auto text-center" @click="addMeter()" style="cursor: pointer;">
|
|
@@ -46,8 +46,7 @@ export default {
|
|
|
46
46
|
twoWay: true
|
|
47
47
|
},
|
|
48
48
|
f_filialeid: {},
|
|
49
|
-
f_userinfo_id: {}
|
|
50
|
-
isedit: ''
|
|
49
|
+
f_userinfo_id: {}
|
|
51
50
|
},
|
|
52
51
|
ready () {
|
|
53
52
|
console.log('表具信息,,,,', this.meterinfo)
|
package/src/main.js
CHANGED
|
@@ -2,7 +2,7 @@ import Vue from 'vue'
|
|
|
2
2
|
import all from 'vue-client/src/all'
|
|
3
3
|
import App from './App'
|
|
4
4
|
import system from 'system-clients/src/system'
|
|
5
|
-
import FilialeSale from './filiale/
|
|
5
|
+
import FilialeSale from './filiale/shiquan/sale'
|
|
6
6
|
import sale from './sale'
|
|
7
7
|
import address from 'address-client/src/address'
|
|
8
8
|
import ldap from 'ldap-clients/src/ldap'
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
File without changes
|