Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
center-finance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
center-finance
Commits
681bf916
提交
681bf916
authored
9月 10, 2021
作者:
lihuihui
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
https://gitlab.ezijing.com/webapp/finance-admin
上级
3e2978c9
b4019734
隐藏空白字符变更
内嵌
并排
正在显示
14 个修改的文件
包含
330 行增加
和
339 行删除
+330
-339
api.js
src/modules/payment/api.js
+1
-1
Channel.vue
src/modules/payment/components/Channel.vue
+2
-1
Collection.vue
src/modules/payment/components/Collection.vue
+2
-1
Confirmed.vue
src/modules/payment/components/Confirmed.vue
+23
-20
MoreSelect.vue
src/modules/payment/components/MoreSelect.vue
+0
-81
Order.vue
src/modules/payment/components/Order.vue
+17
-3
Student.vue
src/modules/payment/components/Student.vue
+2
-1
Ticket.vue
src/modules/payment/components/Ticket.vue
+1
-7
TicketForm.vue
src/modules/payment/components/TicketForm.vue
+68
-49
Toconfirm.vue
src/modules/payment/components/Toconfirm.vue
+19
-15
Deal.vue
src/modules/payment/views/Deal.vue
+22
-30
Detail.vue
src/modules/payment/views/Detail.vue
+20
-14
List.vue
src/modules/payment/views/List.vue
+63
-41
PayDetail.vue
src/modules/payment/views/PayDetail.vue
+90
-75
没有找到文件。
src/modules/payment/api.js
浏览文件 @
681bf916
...
...
@@ -37,7 +37,7 @@ export function updateTableTitle(data) {
}
// 开具发票
export
function
createNewTicket
(
data
)
{
return
httpRequest
.
ge
t
(
'/api/finance/v1/invoices/create'
,
data
)
return
httpRequest
.
pos
t
(
'/api/finance/v1/invoices/create'
,
data
)
}
// 作废发票
export
function
cancelTicket
(
data
)
{
...
...
src/modules/payment/components/Channel.vue
浏览文件 @
681bf916
<!-- 支付详情-渠道信息 -->
<
template
>
<table
border=
"1"
width=
"1500px"
cellspacing=
"0"
class=
"table"
>
<table
border=
"1"
cellspacing=
"0"
class=
"table"
>
<tr>
<th>
不含税销售金额
</th>
<td>
{{
dealList
.
sales_amount_excluding_tax
}}
</td>
...
...
@@ -46,6 +46,7 @@ export default {
<
style
scoped
>
.table
{
border
:
1px
solid
#000
;
width
:
100%
;
}
th
{
width
:
120px
;
...
...
src/modules/payment/components/Collection.vue
浏览文件 @
681bf916
<!-- 支付详情-收款信息 -->
<
template
>
<table
border=
"1"
width=
"1500px"
cellspacing=
"0"
class=
"table"
>
<table
border=
"1"
cellspacing=
"0"
class=
"table"
>
<tr>
<th>
应缴金额
</th>
<td>
{{
dealList
.
bill_total
}}
</td>
...
...
@@ -40,6 +40,7 @@ export default {
<
style
scoped
>
.table
{
border
:
1px
solid
#000
;
width
:
100%
;
}
th
{
width
:
120px
;
...
...
src/modules/payment/components/Confirmed.vue
浏览文件 @
681bf916
...
...
@@ -3,10 +3,8 @@
<app-card>
<app-list
v-bind=
"tableOptions"
ref=
"list"
>
<template
v-slot:table-x=
"
{ row }">
<router-link
:to=
"
{ name: 'paydetail', params: { id: row.id } }">
<el-button>
查看
</el-button>
</router-link>
<el-button
@
click=
"cancelReceive(row)"
style=
"margin-top: 5px"
>
取消到账
</el-button>
<el-button
@
click=
"toPayDetail(row)"
>
查看
</el-button>
<el-button
@
click=
"cancelReceive(row)"
>
取消到账
</el-button>
</
template
>
</app-list>
</app-card>
...
...
@@ -15,14 +13,13 @@
// 组件
import
AppList
from
'@/components/base/AppList.vue'
import
AppCard
from
'@/components/base/AppCard.vue'
import
{
pay
Detail
,
pay
Cancel
}
from
'../api'
import
{
payCancel
}
from
'../api'
const
payStatusMap
=
{
20
:
'支付待确认'
,
30
:
'部分到账'
,
70
:
'足额支付待确认'
,
80
:
'足额支付'
}
// 接口
export
default
{
props
:
{
id
:
{
type
:
String
,
default
:
''
dealList
:
{
type
:
Object
}
},
components
:
{
AppCard
,
AppList
},
...
...
@@ -33,20 +30,16 @@ export default {
// 列表配置
tableOptions
()
{
return
{
remote
:
{
httpRequest
:
payDetail
,
// 获取订单列表
params
:
{
id
:
this
.
id
},
beforeRequest
:
this
.
beforeRequest
},
data
:
this
.
dealList
.
confirmed_details
,
columns
:
[
{
label
:
'#'
,
type
:
'index'
,
minWidth
:
'50px'
,
fixed
:
'left'
},
{
label
:
'支付凭证'
,
prop
:
'
payment_voucher_filename
'
,
minWidth
:
100
},
{
label
:
'支付人姓名'
,
prop
:
'name'
,
align
:
'center'
,
minWidth
:
1
2
0
},
{
label
:
'支付凭证'
,
prop
:
'
id
'
,
minWidth
:
100
},
{
label
:
'支付人姓名'
,
prop
:
'name'
,
align
:
'center'
,
minWidth
:
1
0
0
},
{
label
:
'支付金额'
,
prop
:
'amount'
,
align
:
'center'
,
minWidth
:
100
},
{
label
:
'支付时间'
,
prop
:
'payment_time'
,
align
:
'center'
,
minWidth
:
100
},
{
label
:
'支付方式'
,
prop
:
'payment_method'
,
align
:
'center'
,
minWidth
:
100
},
{
label
:
'其他支付方式'
,
prop
:
'payment_method_others'
,
align
:
'center'
,
minWidth
:
1
5
0
},
{
label
:
'交易流水号'
,
prop
:
'txn_id'
,
align
:
'center'
,
minWidth
:
1
5
0
},
{
label
:
'其他支付方式'
,
prop
:
'payment_method_others'
,
align
:
'center'
,
minWidth
:
1
0
0
},
{
label
:
'交易流水号'
,
prop
:
'txn_id'
,
align
:
'center'
,
minWidth
:
1
0
0
},
{
label
:
'支付状态'
,
prop
:
'payment_status'
,
...
...
@@ -64,11 +57,21 @@ export default {
},
methods
:
{
// 取消到账
cancelReceive
()
{
const
params
=
{
id
:
this
.
id
}
cancelReceive
(
row
)
{
const
params
=
{
id
:
row
.
id
}
payCancel
(
params
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
$parent
.
fetchTicketDetail
()
this
.
$parent
.
$parent
.
fetchTicketDetail
()
}
})
},
// 查看
toPayDetail
(
row
)
{
this
.
$router
.
push
({
name
:
'paydetail'
,
params
:
{
row
:
row
,
dealList
:
this
.
dealList
}
})
}
...
...
src/modules/payment/components/MoreSelect.vue
deleted
100644 → 0
浏览文件 @
3e2978c9
<!-- 更多筛选 -->
<
template
>
<el-form
ref=
"ruleForm"
:model=
"form"
:rules=
"rules"
>
<el-form-item
label=
"跟进人"
prop=
"follow"
>
<el-select
v-model=
"form.follow"
>
<el-option
v-for=
"(item,index) in followList"
:key=
"index"
:label=
"item.label"
:value=
"item.value"
>
{{
item
.
label
}}
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"发票类型"
prop=
"ticketType"
>
<el-select
v-model=
"form.ticketType"
>
<el-option
v-for=
"(item,index) in TicketTypeList"
:key=
"index"
:label=
"item.label"
:value=
"item.value"
>
{{
item
.
label
}}
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"允许开具发票"
prop=
"status"
>
<el-radio-group
v-model=
"form.status"
>
<el-radio>
开启
</el-radio>
<el-radio>
关闭
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"首次缴费时间"
prop=
"firstDate"
>
<el-date-picker
v-model=
"form.firstDate"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
</el-date-picker>
</el-form-item>
<el-form-item
label=
"末次缴费时间"
prop=
"lastDate"
>
<el-date-picker
v-model=
"form.lastDate"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
value-format=
"yyyy-MM-dd HH:mm:ss"
size=
'small'
style=
"width:360px;"
>
</el-date-picker>
</el-form-item>
<el-form-item>
<el-button
@
click=
"$emit('moreSelectVisible')"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"onSubmit"
>
确认
</el-button>
</el-form-item>
</el-form>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
form
:
{
follow
:
''
,
ticketType
:
''
,
status
:
''
,
firstDate
:
''
,
lastDate
:
''
},
rules
:
[
{},
{}
]
}
},
methods
:
{
onSubmit
()
{
this
.
$refs
.
ruleForm
.
validate
(
valid
=>
{
if
(
valid
)
{
this
.
$emit
(
'createTicket'
,
this
.
form
)
}
})
}
}
}
</
script
>
<
style
></
style
>
src/modules/payment/components/Order.vue
浏览文件 @
681bf916
<!-- 支付详情-订单信息 -->
<
template
>
<div>
<table
border=
"1"
width=
"1500px"
cellspacing=
"0"
class=
"table"
>
<table
border=
"1"
cellspacing=
"0"
class=
"table"
>
<tr>
<th>
订单用户名称
</th>
<td>
{{
dealList
.
name
}}
</td>
<td>
订单编号
</td>
<td>
{{
dealList
.
id
}}
</td>
<td>
支付状态
</td>
<td>
{{
dealList
.
payment_status
}}
</td>
<td>
{{
getStatus
(
val
)
}}
</td>
</tr>
<tr>
<th>
备注
</th>
...
...
@@ -26,12 +26,26 @@ export default {
default
:
()
=>
{}
}
},
mounted
()
{}
methods
:
{
getStatus
(
val
)
{
val
=
this
.
dealList
.
payment_status
if
(
val
===
'20'
)
{
return
'支付待确认'
}
else
if
(
val
===
'30'
)
{
return
'部分到账'
}
else
if
(
val
===
'70'
)
{
return
'足额待支付'
}
else
if
(
val
===
'80'
)
{
return
'足额支付'
}
}
}
}
</
script
>
<
style
scoped
>
.table
{
width
:
100%
;
border
:
1px
solid
#000
;
}
th
{
...
...
src/modules/payment/components/Student.vue
浏览文件 @
681bf916
<!-- 支付详情-学员信息 -->
<
template
>
<div>
<div
v-bind=
"$attrs"
>
<table
border=
"1"
width=
"1500px"
cellspacing=
"0"
class=
"table"
>
<tr>
<th>
学员姓名
</th>
...
...
@@ -36,6 +36,7 @@ export default {
<
style
scoped
>
.table
{
border
:
1px
solid
#000
;
width
:
100%
;
}
th
{
width
:
120px
;
...
...
src/modules/payment/components/Ticket.vue
浏览文件 @
681bf916
...
...
@@ -85,13 +85,6 @@ export default {
},
data
()
{
return
{
// list: [
// { id: 'sdada', age: 'dnjscf' },
// { id: 'sdada', age: 'dnjscf' },
// { id: 'sdada', age: 'dnjscf' },
// { id: 'sdada', age: 'dnjscf' }
// ]
invioceList
:
[]
}
},
...
...
@@ -103,6 +96,7 @@ export default {
<
style
scoped
>
.table
{
width
:
100%
;
border
:
1px
solid
#000
;
margin-bottom
:
40px
;
}
...
...
src/modules/payment/components/TicketForm.vue
浏览文件 @
681bf916
...
...
@@ -5,35 +5,35 @@
<table
border=
"1"
width=
"860px"
cellspacing=
"0"
class=
"table"
>
<tr>
<th>
客户姓名
</th>
<td>
{{
detailList
.
name
}}
</td>
<td>
{{
row
.
payer_
name
}}
</td>
<th>
客户编号
</th>
<td>
{{
detailList
.
customer_id
}}
</td>
<td>
{{
row
.
customer_id
}}
</td>
<th>
订单编号
</th>
<td>
{{
detailList
.
id
}}
</td>
<td>
{{
row
.
id
}}
</td>
</tr>
<tr>
<th>
支付状态
</th>
<td>
{{
detailList
.
payment_status
}}
</td>
<td>
{{
getStatus
(
val
)
}}
</td>
<th>
报名项目
</th>
<td>
{{
detailList
.
project_id
}}
</td>
<td>
{{
row
.
project
}}
</td>
<th>
应缴金额
</th>
<td>
{{
detailList
.
bill_total
}}
</td>
<td>
{{
row
.
bill_total
}}
</td>
</tr>
<tr>
<th>
实缴金额
</th>
<td>
{{
detailList
.
amount_need_to_pay
}}
</td>
<td>
{{
row
.
amount_need_to_pay
}}
</td>
<th>
交易流水号
</th>
<td>
{{
detailList
.
txn_id_list
}}
</td>
<td>
{{
row
.
txn_id_list
}}
</td>
<th>
缴费时间
</th>
<td>
{{
detailList
.
final_payment_time
}}
</td>
<td>
{{
row
.
final_payment_time
}}
</td>
</tr>
</table>
<el-form
label-width=
"120px"
ref=
"ruleForm"
:model=
"form"
:rules=
"rules"
>
<div
class=
"type"
style=
"border: 1px solid #ccc; margin-bottom: 10px"
>
<el-form-item
label=
"开票类型"
prop=
"invoice_color_type"
>
<el-radio-group
v-model=
"form.invoice_color_type"
>
<el-radio
:label=
"1"
>
红字发票
</el-radio>
<el-radio
:label=
"2"
checked
>
蓝字发票
</el-radio>
<el-radio
:label=
"1"
disabled
>
红字发票
</el-radio>
<el-radio
:label=
"2"
>
蓝字发票
</el-radio>
</el-radio-group>
</el-form-item>
</div>
...
...
@@ -41,9 +41,9 @@
<el-form-item
label=
"抬头类型"
prop=
"taxpayer_type"
>
<!-- change事件 -->
<el-radio-group
v-model=
"form.taxpayer_type"
>
<el-radio
:label=
"1"
>
企业
</el-radio>
<el-radio
:label=
"2"
>
非营利单位
</el-radio>
<el-radio
:label=
"3"
>
个人
</el-radio>
<el-radio
:label=
"1"
>
个人
</el-radio>
<el-radio
:label=
"2"
>
企业
</el-radio>
<el-radio
:label=
"3"
>
非营利单位
</el-radio>
</el-radio-group>
</el-form-item>
</div>
...
...
@@ -57,18 +57,18 @@
<el-option
label=
"普通纸质发票"
:value=
"1"
></el-option>
<el-option
label=
"普通电子发票"
:value=
"2"
></el-option>
<!-- 纸质专票企业可以开 -->
<el-option
label=
"专用纸质发票"
:value=
"3"
v-show=
"form.
people_type === 1
"
></el-option>
<el-option
label=
"专用纸质发票"
:value=
"3"
v-show=
"form.
taxpayer_type === 2
"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"纳税人名称"
prop=
"taxpayer_name"
>
<el-input
v-model=
"form.taxpayer_name"
></el-input>
</el-form-item>
<!-- 企业发票显示税号 -->
<el-form-item
label=
"纳税人识别号"
prop=
"taxpayer_identifier"
v-show=
"form.
people_type === 1
"
>
<el-form-item
label=
"纳税人识别号"
prop=
"taxpayer_identifier"
v-show=
"form.
taxpayer_type === 2
"
>
<el-input
v-model=
"form.taxpayer_identifier"
></el-input>
</el-form-item>
<!-- 企业纸质显示 -->
<div
v-show=
"form.
people_type === 1 && form.invioce_type === 3
"
>
<div
v-show=
"form.
taxpayer_type === 2 && form.invioce_type === '3'
"
>
<el-form-item
label=
"地址"
prop=
"taxpayer_address"
>
<el-input
v-model=
"form.taxpayer_address"
></el-input>
</el-form-item>
...
...
@@ -89,7 +89,7 @@
<span>
请填写邮箱地址,方便接收电子发票
</span>
</el-form-item>
<!-- 电子发票显示邮箱 -->
<el-form-item
label=
"邮寄地址"
prop=
"recipient_address"
v-show=
"form.invioce_type ===
2
"
>
<el-form-item
label=
"邮寄地址"
prop=
"recipient_address"
v-show=
"form.invioce_type ===
'2'
"
>
<el-input
v-model=
"form.recipient_address"
></el-input>
</el-form-item>
<el-form-item
label=
"收件人名称"
prop=
"recipient_name"
>
...
...
@@ -121,43 +121,47 @@ export default {
id
:
{
type
:
String
,
default
:
''
},
row
:
{
type
:
Object
,
default
:
()
=>
{}
}
},
data
()
{
return
{
detailList
:
{},
form
:
{
toticket
_type
:
2
,
people_type
:
1
,
ticket
_type
:
''
,
invoice_color
_type
:
2
,
taxpayer_type
:
''
,
invoice
_type
:
''
,
taxpayer_name
:
''
,
taxpayer_identifier
:
''
,
taxpayer_
num
:
''
,
address
:
''
,
phon
e
:
''
,
bank
:
''
,
account
:
''
,
mail
_address
:
''
,
taxpayer_
address
:
''
,
taxpayer_mobile
:
''
,
taxpayer_bank_nam
e
:
''
,
taxpayer_bank_account
:
''
,
taxpayer_remark
:
''
,
recipient
_address
:
''
,
recipient_name
:
''
,
recipient_
phon
e
:
''
,
follow
:
''
recipient_
mobil
e
:
''
,
sales_rep_user_id_name
:
''
},
rules
:
{
toticket_type
:
[{
required
:
true
,
message
:
'请选择开
票类型'
,
trigger
:
'change'
}],
people_type
:
[{
required
:
true
,
message
:
'请选择抬头类型'
,
trigger
:
'change
'
}],
invioce_type
:
[{
required
:
true
,
message
:
'请选择发票类型'
,
trigger
:
'change'
}],
taxpayer_name
:
[{
required
:
true
,
message
:
'请输入纳税人名称'
,
trigger
:
'blur'
}]
,
taxpayer_identifier
:
[{
required
:
true
,
message
:
'请输入纳税人识别号'
,
trigger
:
'blur'
}],
address
:
[{
required
:
true
,
message
:
'请输入地址'
,
trigger
:
'blur'
}
],
taxpayer_address
:
[{
required
:
true
,
message
:
'请输入
地址'
,
trigger
:
'blur'
}],
taxpayer_mobile
:
[{
required
:
true
,
message
:
'请输入电话'
,
trigger
:
'blur'
}],
taxpayer_bank_name
:
[{
required
:
true
,
message
:
'请输入开户行'
,
trigger
:
'blur'
}],
taxpayer_bank_account
:
[{
required
:
true
,
message
:
'请输入银行账号'
,
trigger
:
'blur'
}],
account
:
[{
required
:
true
,
message
:
'请输入活动名称
'
,
trigger
:
'blur'
}],
mail_address
:
[{
required
:
true
,
message
:
'请输入邮箱地址'
,
trigger
:
'blur'
}],
recipient_name
:
[{
required
:
true
,
message
:
'请输入收件人名称'
,
trigger
:
'blur'
}],
recipient_
phone
:
[{
required
:
true
,
message
:
'请输入收件人手机号'
,
trigger
:
'blur'
}],
follow
:
[{
required
:
true
,
message
:
'请输入跟进人'
,
trigger
:
'blur'
}]
invioce_type
:
[{
message
:
'请选择发
票类型'
,
trigger
:
'change'
}],
taxpayer_name
:
[{
message
:
'请输入纳税人名称'
,
trigger
:
'blur
'
}],
taxpayer_identifier
:
[
{
message
:
'请输入纳税人识别号'
,
trigger
:
'blur'
}
,
{
min
:
19
,
max
:
19
,
message
:
'长度在 19 个字符'
,
trigger
:
'blur'
}
],
taxpayer_address
:
[{
message
:
'请输入纳税人
地址'
,
trigger
:
'blur'
}],
taxpayer_mobile
:
[{
message
:
'请输入电话'
,
trigger
:
'blur'
}],
taxpayer_bank_name
:
[{
message
:
'请输入开户行'
,
trigger
:
'blur'
}],
taxpayer_bank_account
:
[{
message
:
'请输入银行账号'
,
trigger
:
'blur'
}],
taxpayer_remark
:
[{
message
:
'请输入备注
'
,
trigger
:
'blur'
}],
recipient_address
:
[{
message
:
'请输入邮箱地址'
,
trigger
:
'blur'
}],
recipient_name
:
[{
message
:
'请输入收件人名称'
,
trigger
:
'blur'
}],
recipient_
mobile
:
[{
message
:
'请输入收件人手机号'
,
trigger
:
'blur'
}],
sales_rep_user_id_name
:
[{
message
:
'请输入跟进人'
,
trigger
:
'blur'
}]
}
}
},
...
...
@@ -167,11 +171,13 @@ export default {
methods
:
{
getPayDetail
()
{
const
params
=
{
id
:
this
.
id
}
payDetail
(
params
)
.
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
payDetail
(
params
)
.
then
(
res
=>
{
this
.
detailList
=
res
.
data
.
list
[
0
]
}
})
})
.
catch
(
error
=>
{
this
.
$message
.
error
(
error
.
message
)
})
},
// 提交开票信息
onSubmit
()
{
...
...
@@ -180,10 +186,22 @@ export default {
this
.
$emit
(
'createTicket'
,
this
.
form
)
}
})
},
getStatus
(
val
)
{
val
=
this
.
row
.
payment_status
if
(
val
===
'20'
)
{
return
'支付待确认'
}
else
if
(
val
===
'30'
)
{
return
'部分到账'
}
else
if
(
val
===
'70'
)
{
return
'足额待支付'
}
else
if
(
val
===
'80'
)
{
return
'足额支付'
}
}
},
watch
:
{
'form.
people
_type'
:
function
(
oldVal
,
val
)
{
'form.
taxpayer
_type'
:
function
(
oldVal
,
val
)
{
if
(
val
!==
oldVal
)
{
this
.
form
.
invioce_type
=
''
}
...
...
@@ -196,6 +214,7 @@ export default {
.table
{
border
:
1px
solid
#000
;
margin-bottom
:
20px
;
width
:
100%
;
}
th
{
width
:
50px
;
...
...
src/modules/payment/components/Toconfirm.vue
浏览文件 @
681bf916
...
...
@@ -3,9 +3,7 @@
<app-card>
<app-list
v-bind=
"tableOptions"
ref=
"list"
>
<template
v-slot:table-x=
"
{ row }">
<router-link
:to=
"
{ name: 'deal', params: { id: row.id } }">
<el-button>
处理
</el-button>
</router-link>
<el-button
@
click=
"toDeal(row)"
>
处理
</el-button>
</
template
>
</app-list>
</app-card>
...
...
@@ -15,24 +13,18 @@
import
AppList
from
'@/components/base/AppList.vue'
import
AppCard
from
'@/components/base/AppCard.vue'
// 接口
import
{
payDetail
}
from
'../api'
export
default
{
// props: {
// id: {
// type: String,
// default: ''
// }
// },
components
:
{
AppCard
,
AppList
},
props
:
{
dealList
:
{
type
:
Object
}
},
computed
:
{
// 列表配置
tableOptions
()
{
return
{
remote
:
{
httpRequest
:
payDetail
,
// 获取订单列表
params
:
{},
beforeRequest
:
this
.
beforeRequest
},
data
:
this
.
dealList
.
waiting_for_confirm_details
,
columns
:
[
{
label
:
'#'
,
type
:
'index'
,
minWidth
:
'50px'
,
fixed
:
'left'
},
{
label
:
'支付凭证'
,
prop
:
'id'
,
minWidth
:
100
},
...
...
@@ -48,6 +40,18 @@ export default {
]
}
}
},
methods
:
{
toDeal
(
row
)
{
// console.log(row)
this
.
$router
.
push
({
name
:
'deal'
,
params
:
{
dealList
:
this
.
dealList
,
row
:
row
}
})
}
}
}
</
script
>
src/modules/payment/views/Deal.vue
浏览文件 @
681bf916
<
template
>
<div>
<app-card
title=
"支付明细信息"
v-if=
"id"
>
<table
border=
"1"
width=
"1
200px
"
cellspacing=
"0"
>
<app-card
title=
"支付明细信息"
>
<table
border=
"1"
width=
"1
00%
"
cellspacing=
"0"
>
<tr>
<th>
支付人姓名
</th>
<td>
{{
confirmDetail
.
name
}}
</td>
<td>
{{
row
.
payer_
name
}}
</td>
<th>
费用类型
</th>
<td>
{{
confirmDetail
.
type
}}
</td>
<td>
{{
row
.
type
}}
</td>
<th>
支付金额
</th>
<td>
{{
confirmDetail
.
amount
}}
</td>
<td>
{{
row
.
amount
}}
</td>
<th>
支付状态
</th>
<td>
{{
confirmDetail
.
payment_status
}}
</td>
<td>
{{
row
.
payment_status
}}
</td>
</tr>
<tr>
<th>
支付方式
</th>
<td>
{{
confirmDetail
.
payment_method
}}
</td>
<td>
{{
row
.
payment_method
}}
</td>
<th>
其他支付方式
</th>
<td>
{{
confirmDetail
.
payment_method_others
}}
</td>
<td>
{{
row
.
payment_method_others
}}
</td>
<th>
支付时间
</th>
<td
colspan=
"3"
>
{{
confirmDetail
.
payment_time
}}
</td>
<td
colspan=
"3"
>
{{
row
.
payment_time
}}
</td>
</tr>
<tr>
<td></td>
<td
colspan=
"7"
>
<img
:src=
"
confirmDetail
.payment_voucher_filename"
alt=
""
/>
<img
:src=
"
row
.payment_voucher_filename"
alt=
""
/>
</td>
</tr>
<tr>
<th>
项目
</th>
<td>
{{
projec
t
.
project_id
}}
</td>
<td>
{{
dealLis
t
.
project_id
}}
</td>
<th>
销售
</th>
<td>
{{
projec
t
.
sales_rep_user_id_name
}}
</td>
<td>
{{
dealLis
t
.
sales_rep_user_id_name
}}
</td>
<th>
渠道
</th>
<td
colspan=
"3"
>
{{
projec
t
.
channel_id
}}
</td>
<td
colspan=
"3"
>
{{
dealLis
t
.
channel_id
}}
</td>
</tr>
<tr>
<th>
备注
</th>
<td
colspan=
"7"
>
{{
confirmDetail
.
comment
}}
</td>
<td
colspan=
"7"
>
{{
row
.
comment
}}
</td>
</tr>
<tr>
<th>
创建时间
</th>
<td
colspan=
"3"
>
{{
confirmDetail
.
created_time
}}
</td>
<td
colspan=
"3"
>
{{
row
.
created_time
}}
</td>
<th>
更新时间
</th>
<td
colspan=
"3"
>
{{
confirmDetail
.
updated_time
}}
</td>
<td
colspan=
"3"
>
{{
row
.
updated_time
}}
</td>
</tr>
</table>
</app-card>
...
...
@@ -93,14 +93,14 @@
<
script
>
import
AppCard
from
'@/components/base/AppCard.vue'
import
{
payConfirm
,
payDetail
}
from
'../api'
import
{
payConfirm
}
from
'../api'
export
default
{
props
:
{
id
:
{
type
:
String
}
},
components
:
{
AppCard
},
data
()
{
return
{
confirmDetail
:
{},
row
:
[],
dealList
:
[],
form
:
{
service_charge
:
''
,
payment_status
:
''
,
...
...
@@ -118,22 +118,14 @@ export default {
}
},
mounted
()
{
this
.
id
&&
this
.
getPayDetail
()
this
.
row
=
this
.
$route
.
params
.
row
this
.
dealList
=
this
.
$route
.
params
.
dealList
console
.
log
(
this
.
dealList
)
},
methods
:
{
handleChange
(
file
,
fileList
)
{
this
.
form
.
receiving_voucher_filename
=
fileList
},
// 获取支付信息
getPayDetail
()
{
payDetail
({
id
:
this
.
id
}).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
const
[
first
=
{}]
=
res
.
data
.
list
this
.
project
=
first
this
.
confirmDetail
=
first
.
confirmed_details
[
0
]
}
})
},
// 确认支付
dealPay
()
{
this
.
$refs
.
formRef
.
validate
().
then
(()
=>
{
...
...
src/modules/payment/views/Detail.vue
浏览文件 @
681bf916
...
...
@@ -44,10 +44,10 @@
<Channel
:dealList=
"dealList"
/>
</app-card>
<app-card
title=
"支付待确认记录"
>
<Toconfirm
:dealList=
"dealList"
:id=
"this.id"
/>
<Toconfirm
:dealList=
"dealList"
/>
</app-card>
<app-card
title=
"支付确认记录"
>
<Confirmed
:dealList=
"dealList"
:id=
"this.id"
/>
<Confirmed
:dealList=
"dealList"
/>
</app-card>
</div>
</template>
...
...
@@ -99,11 +99,13 @@ export default {
methods
:
{
fetchTicketDetail
()
{
const
params
=
{
id
:
this
.
id
}
payDetail
(
params
)
.
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
payDetail
(
params
)
.
then
(
res
=>
{
this
.
dealList
=
res
.
data
.
list
[
0
]
}
})
})
.
catch
(
error
=>
{
this
.
$message
.
error
(
error
.
message
)
})
},
// 确认
fetchConfirmTicketDetail
(
val
)
{
...
...
@@ -112,11 +114,13 @@ export default {
confirm_type
:
val
,
id
:
this
.
id
}
confirmPayDetail
(
params
)
.
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
confirmPayDetail
(
params
)
.
then
(
res
=>
{
this
.
fetchTicketDetail
()
}
})
})
.
catch
(
error
=>
{
this
.
$message
.
error
(
error
.
message
)
})
},
// 取消
fetchCancelTicketDetail
(
val
)
{
...
...
@@ -124,11 +128,13 @@ export default {
confirm_type
:
val
,
id
:
this
.
id
}
cancelPayDetail
(
params
)
.
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
cancelPayDetail
(
params
)
.
then
(
res
=>
{
this
.
fetchTicketDetail
()
}
})
})
.
catch
(
error
=>
{
this
.
$message
.
error
(
error
.
message
)
})
}
}
}
...
...
src/modules/payment/views/List.vue
浏览文件 @
681bf916
...
...
@@ -2,16 +2,16 @@
<app-card>
<app-list
v-bind=
"tableOptions"
ref=
"list"
@
selection-change=
"handleSelectionChange"
>
<!-- 允许开具发票 -->
<template
v-slot:
ticket_typ
e=
"
{ params }">
<template
v-slot:
can_add_invoic
e=
"
{ params }">
<el-radio-group
v-model=
"params.can_add_invoice"
>
<el-radio
label=
"1"
>
开启
</el-radio>
<el-radio
label=
"2"
>
关闭
</el-radio>
<el-radio
:
label=
"1"
>
开启
</el-radio>
<el-radio
:
label=
"2"
>
关闭
</el-radio>
</el-radio-group>
</
template
>
<!-- 首次缴费时间 -->
<
template
v-slot:firstDate=
"{ params }"
>
<el-date-picker
v-model=
"params.first
Dat
e"
v-model=
"params.first
_payment_tim
e"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
...
...
@@ -25,7 +25,7 @@
<!-- 末次缴费时间 -->
<
template
v-slot:lastDate=
"{ params }"
>
<el-date-picker
v-model=
"params.
lastDat
e"
v-model=
"params.
final_payment_tim
e"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
...
...
@@ -67,7 +67,7 @@
</app-list>
<!-- 开具发票 -->
<el-dialog
title=
"开具发票"
:visible
.
sync=
"ticketVisible"
width=
"900px"
append-to-body
:destroy-on-close=
"true"
>
<TicketForm
:id=
"id"
@
close=
"ticketVisible = false"
@
createTicket=
"handleCreateTicket"
/>
<TicketForm
:id=
"id"
@
close=
"ticketVisible = false"
@
createTicket=
"handleCreateTicket"
:row=
"row"
/>
</el-dialog>
<!-- 开票二维码 -->
<ShareQrcode
:visible
.
sync=
"codeVisible"
:value=
"shareUrl"
/>
...
...
@@ -87,6 +87,7 @@ export default {
components
:
{
AppCard
,
AppList
,
TicketForm
,
ShareQrcode
},
data
()
{
return
{
row
:
{},
id
:
''
,
shareUrl
:
''
,
conditionList
:
{
...
...
@@ -228,12 +229,12 @@ export default {
},
{
label
:
'首次缴费时间'
,
prop
:
'first
Dat
e'
,
prop
:
'first
_payment_tim
e'
,
slots
:
'firstDate'
},
{
label
:
'末次缴费时间'
,
prop
:
'
lastDat
e'
,
prop
:
'
final_payment_tim
e'
,
slots
:
'lastDate'
}
],
...
...
@@ -298,8 +299,20 @@ export default {
this
.
fetchCondition
()
// 获取过滤条件
},
methods
:
{
beforeRequest
(
params
,
isReset
)
{
if
(
params
.
first_payment_time
)
{
const
[
firstTimeFrom
,
firstTimeTo
]
=
params
.
first_payment_time
params
.
first_payment_time_from
=
firstTimeFrom
params
.
first_payment_time_to
=
firstTimeTo
}
if
(
params
.
final_payment_time
)
{
const
[
finalTimeFrom
,
finalTimeTo
]
=
params
.
final_payment_time
params
.
final_payment_time_from
=
finalTimeFrom
params
.
final_payment_time_to
=
finalTimeTo
}
return
params
},
callback
(
data
)
{
// eslint-disable-next-line array-callback-return
data
.
forEach
(
item
=>
{
item
.
project
=
this
.
findName
(
this
.
conditionList
.
project_id
,
item
.
project_id
,
'project_id'
,
'name'
)
item
.
paymentStatuView
=
this
.
findName
(
this
.
conditionList
.
payment_status
,
item
.
payment_status
,
'key'
,
'value'
)
...
...
@@ -310,12 +323,14 @@ export default {
},
// 开具发票
createPop
(
row
)
{
console
.
log
(
row
)
this
.
row
=
row
this
.
id
=
row
.
id
this
.
ticketVisible
=
true
},
// 作废发票
disabledTicket
(
row
)
{
this
.
$confirm
(
'确定要作废此发票吗?作废后不可恢复'
,
'提示'
,
{
this
.
$confirm
(
'确定要作废此发票吗?作废后不可恢复
,注意:开具的纸质发票需要您登录税控服务器上作废
'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
...
...
@@ -325,11 +340,14 @@ export default {
},
// 作废发票
fetchDisabled
(
row
)
{
cancelTicket
(
row
.
id
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
const
params
=
{
payment_id
:
row
.
id
}
cancelTicket
(
params
)
.
then
(
res
=>
{
this
.
$refs
.
list
.
refetch
()
}
})
})
.
catch
(
error
=>
{
this
.
$message
.
error
(
error
.
message
)
})
},
qrCode
(
row
)
{
this
.
shareUrl
=
`
${
import
.
meta
.
env
.
VITE_SHARE_URL
}
/h5/payment/invoice?id=
${
row
.
id
}
`
...
...
@@ -337,11 +355,13 @@ export default {
},
// 获取过滤条件
fetchCondition
()
{
getCondition
()
.
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
getCondition
()
.
then
(
res
=>
{
this
.
conditionList
=
res
.
data
}
})
})
.
catch
(
error
=>
{
this
.
$message
.
error
(
error
.
message
)
})
},
// 选中
handleSelectionChange
(
val
)
{
...
...
@@ -349,51 +369,54 @@ export default {
},
// 开具发票
handleCreateTicket
(
val
)
{
createNewTicket
(
val
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
const
params
=
Object
.
assign
({
payment_id
:
this
.
id
},
this
.
form
)
createNewTicket
(
params
)
.
then
(
res
=>
{
this
.
$message
.
success
(
'开票成功'
)
this
.
ticketVisible
=
false
this
.
$refs
.
list
.
refetch
()
// 刷新订单列表
}
})
})
.
catch
(
error
=>
{
this
.
$message
.
error
(
error
.
message
)
})
},
// 是否允许开具发票
handleStatus
(
row
)
{
const
params
=
{
id
:
row
.
id
,
can_add_invoice
:
row
.
can_add_invoice
}
allowCreate
(
params
)
.
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
allowCreate
(
params
)
.
then
(
res
=>
{
this
.
$message
.
success
(
'更新状态成功'
)
this
.
$refs
.
list
.
refetch
()
// 刷新订单列表
}
else
{
this
.
$message
.
error
(
'更新状态失败'
)
}
})
}
)
.
catch
(
error
=>
{
this
.
$message
.
error
(
error
.
message
)
})
},
// 确认作废
confirmDisabledTicket
()
{
cancelTicket
()
.
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
cancelTicket
()
.
then
(
res
=>
{
this
.
disabledTicketVisible
=
false
this
.
$message
.
success
(
'发票已作废'
)
this
.
$refs
.
list
.
refetch
()
// 刷新订单列表
}
else
{
this
.
$message
.
error
(
'该发票无作废失败'
)
}
})
}
)
.
catch
(
error
=>
{
this
.
$message
.
error
(
error
.
message
)
})
},
// 退费
backTicket
(
row
)
{
// 改变退费状态
const
params
=
{
id
:
row
.
id
}
drawBack
(
params
)
.
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
drawBack
(
params
)
.
then
(
res
=>
{
this
.
$refs
.
list
.
refetch
()
// 刷新订单列表
this
.
$message
.
success
(
'退费成功'
)
}
else
{
this
.
$message
.
error
(
'退费失败'
)
}
})
}
)
.
catch
(
error
=>
{
this
.
$message
.
error
(
error
.
message
)
})
},
// 导出
exportSelect
()
{
...
...
@@ -416,7 +439,6 @@ export default {
})
const
ws
=
XLSX
.
utils
.
aoa_to_sheet
(
excelList
)
ws
[
'!cols'
]
=
[
{
wpx
:
200
},
{
wpx
:
200
},
{
wpx
:
200
},
{
wpx
:
200
},
...
...
src/modules/payment/views/PayDetail.vue
浏览文件 @
681bf916
<
template
>
<el-card>
<table
border=
"1"
width=
"1200px"
cellspacing=
"0"
>
<tr>
<th>
支付人姓名
</th>
<td>
{{
confirmDetail
.
name
}}
</td>
<th>
费用类型
</th>
<td>
{{
confirmDetail
.
type
}}
</td>
<th>
支付金额
</th>
<td>
{{
confirmDetail
.
amount
}}
</td>
<th>
支付状态
</th>
<td>
{{
confirmDetail
.
payment_status
}}
</td>
</tr>
<tr>
<th>
项目
</th>
<td>
{{
project
.
project_id
}}
</td>
<th>
销售
</th>
<td>
{{
project
.
sales_rep_user_id_name
}}
</td>
<th>
渠道
</th>
<td
colspan=
"3"
>
{{
project
.
channel_id
}}
</td>
</tr>
<tr>
<th>
支付方式
</th>
<td>
{{
confirmDetail
.
payment_method
}}
</td>
<th>
其他支付方式
</th>
<td>
{{
confirmDetail
.
payment_method_others
}}
</td>
<th>
支付时间
</th>
<td
colspan=
"3"
>
{{
confirmDetail
.
payment_time
}}
</td>
</tr>
<tr>
<th>
到账金额
</th>
<td>
{{
confirmDetail
.
amount_received
}}
</td>
<th>
手续费
</th>
<td>
{{
confirmDetail
.
service_charge
}}
</td>
<th>
到账时间
</th>
<td
colspan=
"3"
>
{{
confirmDetail
.
receiving_time
}}
</td>
</tr>
<tr>
<th>
支付凭证
</th>
<td
colspan=
"7"
>
<img
:src=
"confirmDetail.payment_voucher_filename"
alt=
""
>
</td>
</tr>
<tr>
<th>
到账凭证
</th>
<td
colspan=
"7"
>
<img
:src=
"confirmDetail.receiving_voucher_filename"
alt=
""
>
</td>
</tr>
<tr>
<th>
备注
</th>
<td
colspan=
"7"
>
{{
confirmDetail
.
taxpayer_remark
}}
</td>
</tr>
<tr>
<th>
创建时间
</th>
<td
colspan=
"3"
>
{{
confirmDetail
.
created_time
}}
</td>
<th>
更新时间
</th>
<td
colspan=
"3"
>
{{
confirmDetail
.
updated_time
}}
</td>
<el-card>
<table
border=
"1"
width=
"100%"
cellspacing=
"0"
>
<tr>
<th>
支付人姓名
</th>
<td>
{{
row
.
payer_name
}}
</td>
<th>
费用类型
</th>
<td>
{{
getPayType
(
val
)
}}
</td>
<th>
支付金额
</th>
<td>
{{
row
.
amount
}}
</td>
<th>
支付状态
</th>
<td>
{{
row
.
payment_status
}}
</td>
</tr>
</table>
</el-card>
<tr>
<th>
项目
</th>
<td>
{{
dealList
.
project_id
}}
</td>
<th>
销售
</th>
<td>
{{
dealList
.
sales_rep_user_id_name
}}
</td>
<th>
渠道
</th>
<td
colspan=
"3"
>
{{
dealList
.
channel_id
}}
</td>
</tr>
<tr>
<th>
支付方式
</th>
<td>
{{
row
.
payment_method
}}
</td>
<th>
其他支付方式
</th>
<td>
{{
row
.
payment_method_others
}}
</td>
<th>
支付时间
</th>
<td
colspan=
"3"
>
{{
row
.
payment_time
}}
</td>
</tr>
<tr>
<th>
到账金额
</th>
<td>
{{
dealList
.
amount_received
}}
</td>
<th>
手续费
</th>
<td>
{{
dealList
.
service_charge
}}
</td>
<th>
到账时间
</th>
<td
colspan=
"3"
>
{{
row
.
payment_time
}}
</td>
</tr>
<tr>
<th>
支付凭证
</th>
<td
colspan=
"7"
>
<img
:src=
"row.payment_voucher_filename"
alt=
""
/>
</td>
</tr>
<tr>
<th>
到账凭证
</th>
<td
colspan=
"7"
>
<img
:src=
"row.receiving_voucher_filename"
alt=
""
/>
</td>
</tr>
<tr>
<th>
备注
</th>
<td
colspan=
"7"
>
{{
row
.
comment
}}
</td>
</tr>
<tr>
<th>
创建时间
</th>
<td
colspan=
"3"
>
{{
row
.
created_time
}}
</td>
<th>
更新时间
</th>
<td
colspan=
"3"
>
{{
row
.
updated_time
}}
</td>
</tr>
</table>
</el-card>
</
template
>
<
script
>
import
{
payDetail
}
from
'../api'
export
default
{
data
()
{
return
{
confirmDetail
:
{},
project
:
{},
id
:
''
row
:
{},
dealList
:
{}
}
},
mounted
()
{
this
.
id
=
this
.
$route
.
params
.
id
this
.
getPayDetail
()
this
.
row
=
this
.
$route
.
params
.
row
this
.
dealList
=
this
.
$route
.
params
.
dealList
},
methods
:
{
getPayDetail
()
{
const
params
=
{
id
:
this
.
id
}
payDetail
(
params
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
project
=
res
.
data
.
list
[
0
]
this
.
confirmDetail
=
res
.
data
.
list
[
0
].
confirmed_details
[
0
]
}
})
getPayType
(
val
)
{
val
=
this
.
row
.
type
if
(
val
===
'20'
)
{
return
'支付待确认'
}
else
if
(
val
===
'30'
)
{
return
'部分到账'
}
else
if
(
val
===
'70'
)
{
return
'足额待支付'
}
else
if
(
val
===
'80'
)
{
return
'足额支付'
}
}
}
}
</
script
>
<
style
>
<
style
scoped
>
.table
{
border
:
1px
solid
rgb
(
235
,
232
,
232
);
}
th
{
width
:
120px
;
text-align
:
center
;
font-size
:
20px
;
color
:
rgb
(
10
,
1
,
1
);
font-weight
:
normal
;
}
td
{
width
:
120px
;
text-align
:
center
;
}
</
style
>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论