Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
center-finance
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
center-finance
Commits
16cccc19
提交
16cccc19
authored
9月 09, 2021
作者:
lihuihui
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
https://gitlab.ezijing.com/webapp/finance-admin
# 请输入一个提交信息以解释此合并的必要性,尤其是将一个更新后的上游分支 # 合并到主题分支。 # # 以 '#' 开始的行将被忽略,而空的提交说明将终止提交。
上级
3c2cb2b2
1dd71ccd
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
18 个修改的文件
包含
304 行增加
和
189 行删除
+304
-189
base.js
src/api/base.js
+4
-0
AppList.vue
src/components/base/AppList.vue
+2
-2
Aside.vue
src/components/layout/Aside.vue
+1
-1
List.vue
src/modules/channel/views/List.vue
+3
-6
api.js
src/modules/payment/api.js
+11
-3
Channel.vue
src/modules/payment/components/Channel.vue
+27
-13
Collection.vue
src/modules/payment/components/Collection.vue
+24
-11
Confirmed.vue
src/modules/payment/components/Confirmed.vue
+12
-13
Order.vue
src/modules/payment/components/Order.vue
+22
-9
Student.vue
src/modules/payment/components/Student.vue
+23
-9
Ticket.vue
src/modules/payment/components/Ticket.vue
+20
-9
TicketForm.vue
src/modules/payment/components/TicketForm.vue
+0
-0
Toconfirm.vue
src/modules/payment/components/Toconfirm.vue
+9
-10
index.js
src/modules/payment/index.js
+6
-4
Deal.vue
src/modules/payment/views/Deal.vue
+42
-85
Detail.vue
src/modules/payment/views/Detail.vue
+83
-12
List.vue
src/modules/payment/views/List.vue
+0
-0
index.js
src/store/index.js
+15
-2
没有找到文件。
src/api/base.js
浏览文件 @
16cccc19
...
...
@@ -35,3 +35,7 @@ export function getTableColumns(params) {
export
function
updateTableColumns
(
data
)
{
return
httpRequest
.
post
(
'/api/finance/v1/payments/update-title'
,
data
)
}
export
function
getRoles
(
params
)
{
return
httpRequest
.
get
(
'/api/finance/user/get-info'
,
{
params
})
}
src/components/base/AppList.vue
浏览文件 @
16cccc19
...
...
@@ -210,7 +210,7 @@ export default {
},
// 当前列表项
currentColumns
()
{
if
(
this
.
hasColumnsOptions
&&
this
.
customColumns
.
length
)
{
if
(
this
.
hasColumnsOptions
)
{
return
this
.
columns
.
map
(
column
=>
{
const
found
=
this
.
customColumns
.
find
(
item
=>
item
.
prop
===
column
.
prop
)
return
{
...
column
,
visible
:
found
?
found
.
visible
:
true
}
...
...
@@ -235,7 +235,7 @@ export default {
let
params
=
this
.
params
// 翻页参数设置
if
(
this
.
hasPagination
)
{
params
.
page
=
(
this
.
page
.
currentPage
)
.
toString
()
params
.
page
=
this
.
page
.
currentPage
.
toString
()
params
[
'per-page'
]
=
this
.
page
.
size
.
toString
()
}
// 接口请求之前
...
...
src/components/layout/Aside.vue
浏览文件 @
16cccc19
...
...
@@ -42,7 +42,7 @@ export default {
{
name
:
'项目列表'
,
path
:
'/project'
,
icon
:
'el-icon-
box
'
icon
:
'el-icon-
folder
'
}
]
}
...
...
src/modules/channel/views/List.vue
浏览文件 @
16cccc19
...
...
@@ -59,23 +59,20 @@ export default {
{
label
:
'线下'
,
value
:
'2'
}
],
placeholder
:
'渠道类型'
}
],
moreFilters
:
[
},
{
label
:
'合同编码'
,
type
:
'input'
,
prop
:
'contract_code'
,
placeholder
:
'合同编码'
},
{
label
:
'合同状态'
,
type
:
'select'
,
prop
:
'contract_status'
,
options
:
[
{
label
:
'未上传'
,
value
:
'1'
},
{
label
:
'已上传'
,
value
:
'2'
}
]
],
placeholder
:
'合同状态'
}
],
columns
:
[
...
...
src/modules/payment/api.js
浏览文件 @
16cccc19
...
...
@@ -49,7 +49,15 @@ export function payConfirm(data) {
headers
:
{
'Content-Type'
:
'multipart/form-data'
}
})
}
// 获取oss signature
export
function
getSignature
()
{
return
httpRequest
.
get
(
'/api/usercenter/aliyun/get-signature'
)
// 确认足额支付
export
function
confirmPayDetail
(
data
)
{
return
httpRequest
.
post
(
'/api/finance/v1/payments/undo-confirm'
,
data
)
}
// 取消足额支付
export
function
cancelPayDetail
(
data
)
{
return
httpRequest
.
post
(
'/api/finance/v1/payments/undo-confirm'
,
data
)
}
// 取消单条缴费到账
export
function
payCancel
(
data
)
{
return
httpRequest
.
post
(
'/api/finance/v1/payments/undo-details-confirm'
,
data
)
}
src/modules/payment/components/Channel.vue
浏览文件 @
16cccc19
<!-- 支付详情-渠道信息 -->
<
template
>
<table
border=
"1"
width=
"1
200px"
cellspacing=
"0
"
>
<table
border=
"1"
width=
"1
500px"
cellspacing=
"0"
class=
"table
"
>
<tr>
<th>
不含税销售金额
</th>
<td>
{{
dealList
.
sales_amount_excluding_tax
}}
</td>
<td>
{{
dealList
.
sales_amount_excluding_tax
}}
</td>
<th>
渠道代理费提基数
</th>
<td>
{{
dealList
.
channel_agent_fee_base
}}
</td>
<td>
{{
dealList
.
channel_agent_fee_base
}}
</td>
<th>
服务费规则
</th>
<td>
{{
dealList
.
service_fee_rules
}}
</td>
<td>
{{
dealList
.
service_fee_rules
}}
</td>
</tr>
<tr>
<th>
服务费比例
</th>
<td>
{{
dealList
.
service_charge_ratio
}}
</td>
<td>
{{
dealList
.
service_charge_ratio
}}
</td>
<th>
代理服务费
</th>
<td>
{{
dealList
.
agency_service_fee
}}
</td>
<td>
{{
dealList
.
agency_service_fee
}}
</td>
<th>
代理服务费(不含税金额)
</th>
<td>
{{
dealList
.
agency_service_fee_excluding_tax
}}
</td>
<td>
{{
dealList
.
agency_service_fee_excluding_tax
}}
</td>
</tr>
<tr>
<th>
户名
</th>
<td>
{{
dealList
.
channel_account_name
}}
</td>
<td>
{{
dealList
.
channel_account_name
}}
</td>
<th>
账号
</th>
<td>
{{
dealList
.
channel_account
}}
</td>
<td>
{{
dealList
.
channel_account
}}
</td>
<th>
开户行
</th>
<td>
{{
dealList
.
channel_bank_of_deposit
}}
</td>
<td>
{{
dealList
.
channel_bank_of_deposit
}}
</td>
</tr>
<tr>
<th>
渠道税率
</th>
<td
colspan=
"5"
>
{{
dealList
.
channel_tax_rate
}}
</td>
<td
colspan=
"5"
>
{{
dealList
.
channel_tax_rate
}}
</td>
</tr>
</table>
</
template
>
...
...
@@ -38,10 +38,24 @@ export default {
dealList
:
{
type
:
Object
,
default
:
()
=>
{}
}
}
}
</
script
>
<
style
></
style
>
<
style
scoped
>
.table
{
border
:
1px
solid
#000
;
}
th
{
width
:
120px
;
text-align
:
center
;
font-size
:
20px
;
color
:
rgb
(
10
,
1
,
1
);
font-weight
:
normal
;
}
td
{
width
:
120px
;
text-align
:
center
;
}
</
style
>
src/modules/payment/components/Collection.vue
浏览文件 @
16cccc19
<!-- 支付详情-收款信息 -->
<
template
>
<table
border=
"1"
width=
"1
200px"
cellspacing=
"0
"
>
<table
border=
"1"
width=
"1
500px"
cellspacing=
"0"
class=
"table
"
>
<tr>
<th>
应缴金额
</th>
<td>
{{
dealList
.
bill_total
}}
</td>
<td>
{{
dealList
.
bill_total
}}
</td>
<th>
实缴金额
</th>
<td>
{{
dealList
.
amount_need_to_pay
}}
</td>
<td>
{{
dealList
.
amount_need_to_pay
}}
</td>
<th>
待缴金额
</th>
<td>
{{
dealList
.
amount_waiting_for_pay
}}
</td>
<td>
{{
dealList
.
amount_waiting_for_pay
}}
</td>
</tr>
<tr>
<th>
手续费
</th>
<td>
{{
dealList
.
service_charge
}}
</td>
<td>
{{
dealList
.
service_charge
}}
</td>
<th>
到账金额
</th>
<td>
{{
dealList
.
amount_received
}}
</td>
<td>
{{
dealList
.
amount_received
}}
</td>
<th>
待确认金额
</th>
<td>
{{
dealList
.
amount_waiting_for_confirm
}}
</td>
<td>
{{
dealList
.
amount_waiting_for_confirm
}}
</td>
</tr>
<tr>
<th>
首次缴费时间
</th>
<td
>
{{
dealList
.
first_payment_time
}}
</td>
<td
colspan=
"2"
>
{{
dealList
.
first_payment_time
}}
</td>
<th>
末次缴费时间
</th>
<td
colspan=
"
3"
>
{{
dealList
.
final_payment_time
}}
</td>
<td
colspan=
"
2"
>
{{
dealList
.
final_payment_time
}}
</td>
</tr>
</table>
</
template
>
...
...
@@ -37,6 +37,19 @@ export default {
}
</
script
>
<
style
>
<
style
scoped
>
.table
{
border
:
1px
solid
#000
;
}
th
{
width
:
120px
;
text-align
:
center
;
font-size
:
20px
;
color
:
rgb
(
10
,
1
,
1
);
font-weight
:
normal
;
}
td
{
width
:
120px
;
text-align
:
center
;
}
</
style
>
src/modules/payment/components/Confirmed.vue
浏览文件 @
16cccc19
<!-- 支付详情-已确认列表 -->
<
template
>
<app-card>
<app-list
v-bind=
"tableOptions"
ref=
"list"
>
<template
v-slot:table-x
=
"
{ row }">
<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)
"
>
取消到账
</el-button>
<el-button
@
click=
"cancelReceive(row)"
style=
"margin-top: 5px
"
>
取消到账
</el-button>
</
template
>
</app-list>
</app-card>
...
...
@@ -15,7 +15,7 @@
// 组件
import
AppList
from
'@/components/base/AppList.vue'
import
AppCard
from
'@/components/base/AppCard.vue'
import
{
payDetail
,
payC
onfirm
}
from
'../api'
import
{
payDetail
,
payC
ancel
}
from
'../api'
const
payStatusMap
=
{
20
:
'支付待确认'
,
30
:
'部分到账'
,
70
:
'足额支付待确认'
,
80
:
'足额支付'
}
// 接口
export
default
{
...
...
@@ -27,8 +27,7 @@ export default {
},
components
:
{
AppCard
,
AppList
},
data
()
{
return
{
}
return
{}
},
computed
:
{
// 列表配置
...
...
@@ -41,15 +40,15 @@ export default {
},
columns
:
[
{
label
:
'#'
,
type
:
'index'
,
minWidth
:
'50px'
,
fixed
:
'left'
},
{
label
:
'支付凭证'
,
prop
:
'
id
'
,
minWidth
:
100
},
{
label
:
'支付人姓名'
,
prop
:
'name'
,
align
:
'center'
,
minWidth
:
1
0
0
},
{
label
:
'支付凭证'
,
prop
:
'
payment_voucher_filename
'
,
minWidth
:
100
},
{
label
:
'支付人姓名'
,
prop
:
'name'
,
align
:
'center'
,
minWidth
:
1
2
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
0
0
},
{
label
:
'交易流水号'
,
prop
:
'txn_id'
,
align
:
'center'
,
minWidth
:
1
0
0
},
// eslint-disable-next-line object-curly-newline
{
label
:
'支付状态'
,
{
label
:
'其他支付方式'
,
prop
:
'payment_method_others'
,
align
:
'center'
,
minWidth
:
1
5
0
},
{
label
:
'交易流水号'
,
prop
:
'txn_id'
,
align
:
'center'
,
minWidth
:
1
5
0
},
{
label
:
'支付状态'
,
prop
:
'payment_status'
,
align
:
'center'
,
minWidth
:
100
,
...
...
@@ -67,7 +66,7 @@ export default {
// 取消到账
cancelReceive
()
{
const
params
=
{
id
:
this
.
id
}
payC
onfirm
(
params
).
then
(
res
=>
{
payC
ancel
(
params
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
$parent
.
fetchTicketDetail
()
}
...
...
src/modules/payment/components/Order.vue
浏览文件 @
16cccc19
<!-- 支付详情-订单信息 -->
<
template
>
<div>
<table
border=
"1"
width=
"1
200px"
cellspacing=
"0
"
>
<table
border=
"1"
width=
"1
500px"
cellspacing=
"0"
class=
"table
"
>
<tr>
<th>
订单用户名称
</th>
<td>
{{
dealList
.
name
}}
</td>
<td>
{{
dealList
.
name
}}
</td>
<td>
订单编号
</td>
<td>
{{
dealList
.
id
}}
</td>
<td>
{{
dealList
.
id
}}
</td>
<td>
支付状态
</td>
<td>
{{
dealList
.
payment_status
}}
</td>
<td>
{{
dealList
.
payment_status
}}
</td>
</tr>
<tr>
<th>
备注
</th>
<td
colspan=
"5"
>
{{
dealList
.
comment
}}
</td>
<td
colspan=
"5"
>
{{
dealList
.
comment
}}
</td>
</tr>
</table>
</div>
...
...
@@ -24,12 +24,25 @@ export default {
dealList
:
{
type
:
Object
,
default
:
()
=>
{}
}
},
mounted
()
{
}
mounted
()
{}
}
</
script
>
<
style
></
style
>
<
style
scoped
>
.table
{
border
:
1px
solid
#000
;
}
th
{
width
:
120px
;
text-align
:
center
;
font-size
:
20px
;
color
:
rgb
(
10
,
1
,
1
);
font-weight
:
normal
;
}
td
{
width
:
120px
;
text-align
:
center
;
}
</
style
>
src/modules/payment/components/Student.vue
浏览文件 @
16cccc19
<!-- 支付详情-学员信息 -->
<
template
>
<div>
<table
border=
"1"
width=
"1
200px"
cellspacing=
"0
"
>
<table
border=
"1"
width=
"1
500px"
cellspacing=
"0"
class=
"table
"
>
<tr>
<th>
学员姓名
</th>
<td>
{{
dealList
.
name
}}
</td>
<td>
{{
dealList
.
name
}}
</td>
<th>
报名项目
</th>
<td>
{{
dealList
.
project_name
}}
</td>
<td>
{{
dealList
.
project_name
}}
</td>
<td>
所属班次
</td>
<td>
{{
dealList
.
bill_customer_class
}}
</td>
<td>
{{
dealList
.
bill_customer_class
}}
</td>
</tr>
<tr>
<th>
开学时间
</th>
<td>
{{
dealList
.
bill_customer_class_start_time
}}
</td>
<td>
{{
dealList
.
bill_customer_class_start_time
}}
</td>
<th>
学制期限
</th>
<td>
{{
dealList
.
bill_customer_class_length_of_schooling
}}
</td>
<td>
{{
dealList
.
bill_customer_class_length_of_schooling
}}
</td>
<th>
跟进人
</th>
<td>
{{
dealList
.
sales_rep_user_id_name
}}
</td>
<td>
{{
dealList
.
sales_rep_user_id_name
}}
</td>
</tr>
</table>
</div>
...
...
@@ -28,10 +28,24 @@ export default {
dealList
:
{
type
:
Object
,
default
:
()
=>
{}
}
}
}
</
script
>
<
style
></
style
>
<
style
scoped
>
.table
{
border
:
1px
solid
#000
;
}
th
{
width
:
120px
;
text-align
:
center
;
font-size
:
20px
;
color
:
rgb
(
10
,
1
,
1
);
font-weight
:
normal
;
}
td
{
width
:
120px
;
text-align
:
center
;
}
</
style
>
src/modules/payment/components/Ticket.vue
浏览文件 @
16cccc19
<!-- 支付详情-发票表格 -->
<
template
>
<div
class=
"ticketInfo"
>
<table
border=
"1"
width=
"1
200px"
cellspacing=
"0"
class=
"table"
v-for=
"(item, index) in invioceList"
:key=
"index"
>
<table
border=
"1"
width=
"1
500px"
cellspacing=
"0"
class=
"table"
v-for=
"(item, index) in invioceList"
:key=
"index"
>
<tr>
<th
colspan=
"10"
>
发票
{{
item
.
id
}}
</th>
</tr>
...
...
@@ -20,9 +19,9 @@
</tr>
<tr
v-show=
"item.invoice_status === 6"
>
<th>
原发票号码
</th>
<td>
{{
item
.
old_invoice_haoma
}}
</td>
<td>
{{
item
.
old_invoice_haoma
}}
</td>
<th>
原发票代码
</th>
<td>
{{
item
.
old_invoice_daima
}}
</td>
<td>
{{
item
.
old_invoice_daima
}}
</td>
</tr>
<tr>
<th>
含税金额
</th>
...
...
@@ -50,13 +49,13 @@
</tr>
<tr>
<th>
地址
</th>
<td>
{{
item
.
taxpayer_address
}}
</td>
<td>
{{
item
.
taxpayer_address
}}
</td>
<th>
电话
</th>
<td>
{{
item
.
taxpayer_mobile
}}
</td>
<td>
{{
item
.
taxpayer_mobile
}}
</td>
<th>
开户行
</th>
<td>
{{
item
.
taxpayer_bank_name
}}
</td>
<td>
{{
item
.
taxpayer_bank_name
}}
</td>
<th>
银行账号
</th>
<td>
{{
item
.
taxpayer_bank_account
}}
</td>
<td>
{{
item
.
taxpayer_bank_account
}}
</td>
</tr>
<tr>
<th>
邮寄地址
</th>
...
...
@@ -102,8 +101,20 @@ export default {
}
</
script
>
<
style
>
<
style
scoped
>
.table
{
border
:
1px
solid
#000
;
margin-bottom
:
40px
;
}
th
{
width
:
120px
;
text-align
:
center
;
font-size
:
20px
;
color
:
rgb
(
10
,
1
,
1
);
font-weight
:
normal
;
}
td
{
width
:
120px
;
text-align
:
center
;
}
</
style
>
src/modules/payment/components/TicketForm.vue
浏览文件 @
16cccc19
差异被折叠。
点击展开。
src/modules/payment/components/Toconfirm.vue
浏览文件 @
16cccc19
<!-- 待确认列表 -->
<
template
>
<app-card>
<app-list
v-bind=
"tableOptions"
ref=
"list"
>
<template
v-slot:table-x=
"
{ row }">
<router-link
:to=
"
{ name: 'deal', params: { id: row.id } }">
<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>
</
template
>
</app-list>
</
template
>
</app-list>
</app-card>
</template>
<
script
>
...
...
@@ -37,12 +36,12 @@ export default {
columns
:
[
{
label
:
'#'
,
type
:
'index'
,
minWidth
:
'50px'
,
fixed
:
'left'
},
{
label
:
'支付凭证'
,
prop
:
'id'
,
minWidth
:
100
},
{
label
:
'支付人姓名'
,
prop
:
'name'
,
align
:
'center'
,
minWidth
:
1
0
0
},
{
label
:
'支付人姓名'
,
prop
:
'name'
,
align
:
'center'
,
minWidth
:
1
5
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
0
0
},
{
label
:
'交易流水号'
,
prop
:
'txn_id'
,
align
:
'center'
,
minWidth
:
1
0
0
},
{
label
:
'其他支付方式'
,
prop
:
'payment_method_others'
,
align
:
'center'
,
minWidth
:
1
5
0
},
{
label
:
'交易流水号'
,
prop
:
'txn_id'
,
align
:
'center'
,
minWidth
:
1
5
0
},
{
label
:
'支付状态'
,
prop
:
'payment_status'
,
align
:
'center'
,
minWidth
:
100
},
{
label
:
'创建日期'
,
prop
:
'created_time'
,
align
:
'center'
,
minWidth
:
100
},
{
slots
:
'table-x'
,
align
:
'center'
,
minWidth
:
100
}
...
...
src/modules/payment/index.js
浏览文件 @
16cccc19
...
...
@@ -17,15 +17,17 @@ const routes = [
},
{
name
:
'deal'
,
path
:
'deal'
,
path
:
'
payment/:id/
deal'
,
component
:
()
=>
import
(
'./views/Deal.vue'
),
meta
:
{
title
:
'支付详情'
}
meta
:
{
title
:
'支付详情'
},
props
:
true
},
{
name
:
'paydetail'
,
path
:
'pay
detail
'
,
path
:
'pay
ment/:id/view
'
,
component
:
()
=>
import
(
'./views/PayDetail.vue'
),
meta
:
{
title
:
'支付详情'
}
meta
:
{
title
:
'支付详情'
},
props
:
true
}
]
}
...
...
src/modules/payment/views/Deal.vue
浏览文件 @
16cccc19
<
template
>
<div>
<app-card
title=
"支付明细信息"
v-if=
"
false
"
>
<app-card
title=
"支付明细信息"
v-if=
"
id
"
>
<table
border=
"1"
width=
"1200px"
cellspacing=
"0"
>
<tr>
<th>
支付人姓名
</th>
...
...
@@ -36,7 +36,7 @@
</tr>
<tr>
<th>
备注
</th>
<td
colspan=
"7"
>
{{
confirmDetail
.
taxpayer_remark
}}
</td>
<td
colspan=
"7"
>
{{
confirmDetail
.
comment
}}
</td>
</tr>
<tr>
<th>
创建时间
</th>
...
...
@@ -47,47 +47,44 @@
</table>
</app-card>
<app-card>
<el-form
ref=
"formRef"
:model=
"form"
:rules=
"
formRules
"
>
<el-form-item
label=
"支付状态"
label-width=
"80px"
prop=
"payment_status"
>
<el-form
ref=
"formRef"
:model=
"form"
:rules=
"
rules"
label-width=
"80px
"
>
<el-form-item
label=
"支付状态"
prop=
"payment_status"
>
<el-select
v-model=
"form.payment_status"
>
<el-option
label=
"已支付"
:value=
"1"
></el-option>
<el-option
label=
"未支付"
:value=
"2"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"手续费"
label-width=
"80px"
prop=
"service_charge"
>
<el-input
size=
"mini"
v-model=
"form.service_charge"
></el-input>
<el-input
v-model=
"form.service_charge"
></el-input>
</el-form-item>
<el-form-item
label=
"到账时间"
label-width=
"80px"
prop=
"receiving_time"
>
<el-form-item
label=
"到账时间"
prop=
"receiving_time"
>
<el-date-picker
v-model=
"form.receiving_time"
type=
"datetime
range
"
type=
"datetime"
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
label=
"备注"
label-width=
"80px"
prop=
"taxpayer_remark
"
>
<el-input
size=
"mini"
v-model=
"form.remark
"
>
</el-input>
<el-form-item
label=
"备注"
prop=
"comment
"
>
<el-input
type=
"textarea"
v-model=
"form.comment
"
>
</el-input>
</el-form-item>
<el-form-item
label=
"到账凭证"
label-width=
"80px"
prop=
"receiving_voucher_filename"
>
<el-form-item
label=
"到账凭证"
prop=
"receiving_voucher_filename"
>
<el-upload
class=
"upload-demo"
drag
list-type=
"picture-card"
action=
""
multiple
show-file-list
:before-upload=
"beforeUpload"
:auto-upload=
"false"
:on-change=
"handleChange"
:on-remove=
"handleChange"
accept=
"image/*"
>
<img
:src=
"form.receiving_voucher_filename"
alt=
""
/>
<!--
<div
class=
"el-upload__text"
>
拖到此处,或
<em>
点击上传
</em></div>
-->
</el-upload>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
style=
"margin-left: 200px"
@
click=
"dealPay"
>
提交
</el-button>
<el-button
type=
"primary"
@
click=
"dealPay"
>
提交
</el-button>
</el-form-item>
</el-form>
</app-card>
...
...
@@ -97,103 +94,63 @@
<
script
>
import
AppCard
from
'@/components/base/AppCard.vue'
import
{
payConfirm
,
payDetail
}
from
'../api'
// import { splitStrLast } from '@/utils/util'
export
default
{
props
:
{
id
:
{
type
:
String
}
},
components
:
{
AppCard
},
data
()
{
return
{
confirmDetail
:
{},
uploadData
:
{},
id
:
''
,
form
:
{
service_charge
:
''
,
payment_status
:
''
,
receiving_time
:
''
,
taxpayer_remark
:
''
,
comment
:
''
,
receiving_voucher_filename
:
[]
},
rules
:
{
payment_status
:
[{
required
:
true
,
message
:
'请选择支付状态'
,
trigger
:
'change'
}],
service_charge
:
[
{
required
:
true
,
message
:
'请输入手续费'
,
trigger
:
'blur'
},
{
min
:
3
,
max
:
10
,
message
:
'长度在 3 到 10 个字符'
,
trigger
:
'blur'
}
],
taxpayer_remark
:
[
{
required
:
true
,
message
:
'请输入备注'
,
trigger
:
'blur'
},
{
min
:
3
,
max
:
10
,
message
:
'长度在 3 到 10 个字符'
,
trigger
:
'blur'
}
],
service_charge
:
[{
required
:
true
,
message
:
'请输入手续费'
,
trigger
:
'blur'
}],
receiving_time
:
[{
required
:
true
,
message
:
'请选择到账时间'
,
trigger
:
'blur'
}],
comment
:
[{
required
:
true
,
message
:
'请输入备注'
,
trigger
:
'blur'
}],
receiving_voucher_filename
:
[{
required
:
true
,
message
:
'请上传到账凭证'
,
trigger
:
'change'
}]
},
importDisabled
:
false
}
},
computed
:
{
// 列表配置
tableOptions
()
{
return
{
filters
:
[
{
type
:
'select'
,
prop
:
'project'
,
options
:
this
.
payState
,
labelKey
:
'project_name'
,
valueKey
:
'project_id'
,
placeholder
:
'支付状态'
},
{
type
:
'input'
,
prop
:
'spu_name'
,
placeholder
:
'手续费'
},
{
prop
:
'date'
,
slots
:
'filter-date'
},
{
type
:
'input'
,
prop
:
'spu_name'
,
placeholder
:
'备注'
}
]
}
}
},
mounted
()
{
this
.
id
=
this
.
$route
.
params
.
id
// this.getPayDetail()
this
.
id
&&
this
.
getPayDetail
()
},
methods
:
{
beforeUpload
(
file
,
target
)
{
console
.
log
(
file
)
this
.
form
.
receiving_voucher_filename
.
pust
(
file
)
},
handleSuccess
(
res
,
file
,
target
)
{
this
.
fileLoading
=
''
const
_file
=
file
.
raw
this
.
form
.
receiving_voucher_filename
=
_file
.
src
handleChange
(
file
,
fileList
)
{
this
.
form
.
receiving_voucher_filename
=
fileList
},
// 获取支付信息
getPayDetail
()
{
const
params
=
{
id
:
this
.
id
}
payDetail
(
params
).
then
(
res
=>
{
payDetail
({
id
:
this
.
id
}).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
project
=
res
.
data
.
list
[
0
]
this
.
confirmDetail
=
res
.
data
.
list
[
0
].
confirmed_details
[
0
]
const
[
first
=
{}]
=
res
.
data
.
list
this
.
project
=
first
this
.
confirmDetail
=
first
.
confirmed_details
[
0
]
}
})
},
// 确认支付
dealPay
()
{
this
.
$refs
.
formRef
.
validate
(
valid
=>
{
if
(
valid
)
{
const
params
=
Object
.
assign
({
id
:
this
.
id
},
this
.
form
)
console
.
log
(
params
)
payConfirm
(
this
.
form
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
$message
.
success
(
'支付已经到账'
)
history
.
go
(
-
1
)
}
else
{
this
.
$message
.
error
(
'提交失败'
)
}
this
.
$refs
.
formRef
.
validate
().
then
(()
=>
{
const
params
=
Object
.
assign
({
id
:
this
.
id
},
this
.
form
)
// 图片上传
this
.
form
.
receiving_voucher_filename
.
forEach
((
file
,
index
)
=>
{
params
[
`receiving_voucher_filename[
${
index
}
]`
]
=
file
.
raw
})
delete
params
.
receiving_voucher_filename
payConfirm
(
params
)
.
then
(
res
=>
{
this
.
$message
.
success
(
'支付已经到账'
)
history
.
go
(
-
1
)
})
.
catch
(
error
=>
{
this
.
$message
.
error
(
error
.
message
)
})
}
})
}
}
...
...
src/modules/payment/views/Detail.vue
浏览文件 @
16cccc19
<
template
>
<div>
<el-button
@
click=
"fetchTicketDetail"
type=
"danger"
>
财务确认足额支付
</el-button>
<el-button
@
click=
"fetchTicketDetail"
type=
"primary"
>
刷新状态及金额
</el-button>
<template
v-if=
"dealList.payment_status === '70'"
>
<el-button
@
click=
"fetchConfirmTicketDetail('FINANCE')"
type=
"danger"
v-if=
"isFINANCE && dealList.finance_confirm_status === 0"
>
财务确认足额支付
</el-button
>
<el-button
@
click=
"fetchConfirmTicketDetail('BUSINESS')"
type=
"danger"
v-if=
"isBUSINESS && dealList.bussiness_confirm_status === 0"
>
业务确认足额支付
</el-button
>
</
template
>
<
template
v-if=
"dealList.payment_status === '80'"
>
<el-button
@
click=
"fetchCancelTicketDetail('FINANCE')"
type=
"danger"
v-if=
"isFINANCE && dealList.finance_confirm_status === 1"
>
财务取消足额支付
</el-button
>
<el-button
@
click=
"fetchCancelTicketDetail('BUSINESS')"
type=
"danger"
v-if=
"isBUSINESS && dealList.bussiness_confirm_status === 1"
>
业务取消足额支付
</el-button
>
</
template
>
<app-card
title=
"订单信息"
>
<Order
:dealList=
"dealList"
/>
<Order
:dealList=
"dealList"
/>
</app-card>
<app-card
title=
"学员信息"
>
<Student
:dealList=
"dealList"
/>
<Student
:dealList=
"dealList"
/>
</app-card>
<app-card
title=
"收款信息"
>
<Collection
:dealList=
"dealList"
/>
<Collection
:dealList=
"dealList"
/>
</app-card>
<app-card
title=
"发票信息"
>
<Ticket
:dealList=
"dealList"
/>
<Ticket
:dealList=
"dealList"
/>
</app-card>
<app-card
title=
"渠道信息"
>
<Channel
:dealList=
"dealList"
/>
<Channel
:dealList=
"dealList"
/>
</app-card>
<app-card
title=
"支付待确认记录"
>
<Toconfirm
:dealList=
"dealList"
:id=
"this.id"
/>
<Toconfirm
:dealList=
"dealList"
:id=
"this.id"
/>
</app-card>
<app-card
title=
"支付确认记录"
>
<Confirmed
:dealList=
"dealList"
:id=
"this.id"
/>
<Confirmed
:dealList=
"dealList"
:id=
"this.id"
/>
</app-card>
</div>
</template>
...
...
@@ -36,7 +62,7 @@ import Ticket from '../components/Ticket.vue'
import
Channel
from
'../components/Channel.vue'
import
Toconfirm
from
'../components/Toconfirm.vue'
import
Confirmed
from
'../components/Confirmed.vue'
import
{
payDetail
}
from
'../api'
import
{
payDetail
,
confirmPayDetail
,
cancelPayDetail
}
from
'../api'
export
default
{
components
:
{
AppCard
,
Order
,
Student
,
Collection
,
Ticket
,
Channel
,
Toconfirm
,
Confirmed
},
data
()
{
...
...
@@ -45,19 +71,64 @@ export default {
dealList
:
{}
}
},
created
()
{
computed
:
{
roles
()
{
return
this
.
$store
.
state
.
roles
},
isFINANCE
()
{
return
(
this
.
roles
.
includes
(
'finance_manager'
)
||
this
.
roles
.
includes
(
'finance_director'
)
||
this
.
roles
.
includes
(
'developer'
)
)
},
isBUSINESS
()
{
return
(
this
.
roles
.
includes
(
'admissions_director'
)
||
this
.
roles
.
includes
(
'dean_of_admissions'
)
||
this
.
roles
.
includes
(
'developer'
)
)
}
},
beforeMount
()
{
this
.
id
=
this
.
$route
.
params
.
id
// 详情列表
// 获取发票详情信息
this
.
fetchTicketDetail
()
this
.
$store
.
dispatch
(
'getRoles'
)
},
methods
:
{
fetchTicketDetail
()
{
const
params
=
{
id
:
this
.
id
}
payDetail
(
params
).
then
(
(
res
)
=>
{
payDetail
(
params
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
dealList
=
res
.
data
.
list
[
0
]
}
})
},
// 确认
fetchConfirmTicketDetail
(
val
)
{
console
.
log
(
val
)
const
params
=
{
confirm_type
:
val
,
id
:
this
.
id
}
confirmPayDetail
(
params
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
fetchTicketDetail
()
}
})
},
// 取消
fetchCancelTicketDetail
(
val
)
{
const
params
=
{
confirm_type
:
val
,
id
:
this
.
id
}
cancelPayDetail
(
params
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
fetchTicketDetail
()
}
})
}
}
}
...
...
src/modules/payment/views/List.vue
浏览文件 @
16cccc19
差异被折叠。
点击展开。
src/store/index.js
浏览文件 @
16cccc19
import
Vue
from
'vue'
import
Vuex
from
'vuex'
import
{
getUser
,
logout
}
from
'@/api/base'
import
{
getUser
,
logout
,
getRoles
}
from
'@/api/base'
Vue
.
use
(
Vuex
)
export
default
new
Vuex
.
Store
({
state
:
{
user
:
{}
user
:
{},
roles
:
[]
},
mutations
:
{
setUser
(
state
,
user
)
{
state
.
user
=
user
},
setRoles
(
state
,
roles
)
{
state
.
roles
=
roles
}
},
actions
:
{
...
...
@@ -43,6 +47,15 @@ export default new Vuex.Store({
return
false
})
return
isLogin
},
// 获取角色
getRoles
({
commit
})
{
return
getRoles
().
then
(
response
=>
{
const
{
roles
=
[]
}
=
response
.
data
commit
(
'setRoles'
,
roles
)
console
.
log
(
roles
)
return
response
})
}
}
})
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论