Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
计全科技
jeepay-ui
提交
7ec9dc76
jeepay-ui
项目概览
计全科技
/
jeepay-ui
通知
11
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
jeepay-ui
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
7ec9dc76
编写于
6月 16, 2021
作者:
Z
zhuxiao
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
删除商户私钥信息
上级
64debcda
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
2 addition
and
632 deletion
+2
-632
jeepay-ui-manager/src/views/mch/AddOrEdit.vue
jeepay-ui-manager/src/views/mch/AddOrEdit.vue
+1
-27
jeepay-ui-manager/src/views/mch/Detail.vue
jeepay-ui-manager/src/views/mch/Detail.vue
+0
-12
jeepay-ui-merchant/src/config/appConfig.js
jeepay-ui-merchant/src/config/appConfig.js
+1
-3
jeepay-ui-merchant/src/views/pay/MchPayPassageAddOrEdit.vue
jeepay-ui-merchant/src/views/pay/MchPayPassageAddOrEdit.vue
+0
-194
jeepay-ui-merchant/src/views/pay/PayConfigList.vue
jeepay-ui-merchant/src/views/pay/PayConfigList.vue
+0
-301
jeepay-ui-merchant/src/views/pay/PayPassageList.vue
jeepay-ui-merchant/src/views/pay/PayPassageList.vue
+0
-95
未找到文件。
jeepay-ui-manager/src/views/mch/AddOrEdit.vue
浏览文件 @
7ec9dc76
...
...
@@ -122,14 +122,6 @@
</a-col>
</a-row>
<a-row
justify=
"space-between"
type=
"flex"
>
<a-col
:span=
"24"
>
<a-form-model-item
label=
"私钥"
prop=
"privateKey"
>
<a-input
v-model=
"saveObject.privateKey"
placeholder=
"请输入私钥"
type=
"textarea"
/>
<a-button
type=
"primary"
ghost
@
click=
"randomKey(false, 128, 0)"
><a-icon
type=
"file-sync"
/>
随机生成私钥
</a-button>
</a-form-model-item>
</a-col>
</a-row>
<a-row
justify=
"space-between"
type=
"flex"
>
<a-col
:span=
"24"
>
<a-form-model-item
label=
"备注"
prop=
"remark"
>
...
...
@@ -233,7 +225,6 @@ export default {
isvNo
:
[{
validator
:
checkIsvNo
,
trigger
:
'
blur
'
}],
contactEmail
:
[{
required
:
false
,
pattern
:
/^
[
a-zA-Z0-9_.-
]
+@
[
a-zA-Z0-9-
]
+
(\.[
a-zA-Z0-9-
]
+
)
*
\.[
a-zA-Z0-9
]{2,6}
$/
,
message
:
'
请输入正确的邮箱地址
'
,
trigger
:
'
blur
'
}],
contactTel
:
[{
required
:
true
,
pattern
:
/^1
\d{10}
$/
,
message
:
'
请输入正确的手机号
'
,
trigger
:
'
blur
'
}],
privateKey
:
[{
required
:
true
,
message
:
'
请输入私钥或点击随机生成私钥
'
}],
newPwd
:
[{
required
:
false
,
trigger
:
'
blur
'
},
{
validator
:
(
rule
,
value
,
callBack
)
=>
{
if
(
!
this
.
sysPassword
.
defaultPass
)
{
...
...
@@ -261,7 +252,7 @@ export default {
methods
:
{
show
:
function
(
recordId
)
{
// 弹层打开事件
this
.
isAdd
=
!
recordId
this
.
saveObject
=
{
'
state
'
:
1
,
'
type
'
:
1
,
'
privateKey
'
:
''
}
// 数据清空
this
.
saveObject
=
{
'
state
'
:
1
,
'
type
'
:
1
}
// 数据清空
if
(
this
.
$refs
.
infoFormModel
!==
undefined
)
{
this
.
$refs
.
infoFormModel
.
resetFields
()
}
...
...
@@ -275,9 +266,6 @@ export default {
that
.
recordId
=
recordId
req
.
getById
(
API_URL_MCH_LIST
,
recordId
).
then
(
res
=>
{
that
.
saveObject
=
res
if
(
!
that
.
saveObject
.
privateKey
)
{
// 解决商户私钥为空无法写入的问题
that
.
saveObject
.
privateKey
=
''
}
})
this
.
visible
=
true
}
else
{
...
...
@@ -334,20 +322,6 @@ export default {
searchFunc
:
function
()
{
// 点击【查询】按钮点击事件
this
.
$refs
.
infoTable
.
refTable
(
true
)
},
randomKey
:
function
(
randomFlag
,
min
,
max
)
{
// 生成随机128位私钥
let
str
=
''
let
range
=
min
const
arr
=
[
'
0
'
,
'
1
'
,
'
2
'
,
'
3
'
,
'
4
'
,
'
5
'
,
'
6
'
,
'
7
'
,
'
8
'
,
'
9
'
,
'
a
'
,
'
b
'
,
'
c
'
,
'
d
'
,
'
e
'
,
'
f
'
,
'
g
'
,
'
h
'
,
'
i
'
,
'
j
'
,
'
k
'
,
'
l
'
,
'
m
'
,
'
n
'
,
'
o
'
,
'
p
'
,
'
q
'
,
'
r
'
,
'
s
'
,
'
t
'
,
'
u
'
,
'
v
'
,
'
w
'
,
'
x
'
,
'
y
'
,
'
z
'
,
'
A
'
,
'
B
'
,
'
C
'
,
'
D
'
,
'
E
'
,
'
F
'
,
'
G
'
,
'
H
'
,
'
I
'
,
'
J
'
,
'
K
'
,
'
L
'
,
'
M
'
,
'
N
'
,
'
O
'
,
'
P
'
,
'
Q
'
,
'
R
'
,
'
S
'
,
'
T
'
,
'
U
'
,
'
V
'
,
'
W
'
,
'
X
'
,
'
Y
'
,
'
Z
'
]
// 随机产生
if
(
randomFlag
)
{
range
=
Math
.
round
(
Math
.
random
()
*
(
max
-
min
))
+
min
}
for
(
var
i
=
0
;
i
<
range
;
i
++
)
{
var
pos
=
Math
.
round
(
Math
.
random
()
*
(
arr
.
length
-
1
))
str
+=
arr
[
pos
]
}
this
.
saveObject
.
privateKey
=
str
},
// 使用默认密码重置是否为true
isResetPass
()
{
if
(
!
this
.
sysPassword
.
defaultPass
)
{
...
...
jeepay-ui-manager/src/views/mch/Detail.vue
浏览文件 @
7ec9dc76
...
...
@@ -87,18 +87,6 @@
</a-descriptions>
</a-col>
</a-row>
<a-row
justify=
"start"
type=
"flex"
>
<a-col
:sm=
"24"
>
<a-form-model-item
label=
"私钥"
>
<a-input
type=
"textarea"
disabled=
"disabled"
style=
"height: 50px"
v-model=
"detailData.privateKey"
/>
</a-form-model-item>
</a-col>
</a-row>
<a-row
justify=
"start"
type=
"flex"
>
<a-col
:sm=
"24"
>
<a-form-model-item
label=
"备注"
>
...
...
jeepay-ui-merchant/src/config/appConfig.js
浏览文件 @
7ec9dc76
...
...
@@ -27,7 +27,5 @@ export const asyncRouteDefine = {
'
MchAppPage
'
:
{
defaultPath
:
'
/apps
'
,
component
:
()
=>
import
(
'
@/views/mchApp/List
'
)
},
// 商户应用列表
'
PayOrderListPage
'
:
{
defaultPath
:
'
/payOrder
'
,
component
:
()
=>
import
(
'
@/views/order/pay/PayOrderList
'
)
},
// 支付订单列表
'
RefundOrderListPage
'
:
{
defaultPath
:
'
/refundOrder
'
,
component
:
()
=>
import
(
'
@/views/order/refund/RefundOrderList
'
)
},
// 退款订单列表
'
PayConfigPage
'
:
{
defaultPath
:
'
/pay/config
'
,
component
:
()
=>
import
(
'
@/views/pay/PayConfigList
'
)
},
// 支付参数配置
'
PayPassagePage
'
:
{
defaultPath
:
'
/pay/passage
'
,
component
:
()
=>
import
(
'
@/views/pay/PayPassageList
'
)
}
// 支付通道配置
'
RefundOrderListPage
'
:
{
defaultPath
:
'
/refundOrder
'
,
component
:
()
=>
import
(
'
@/views/order/refund/RefundOrderList
'
)
}
// 退款订单列表
}
jeepay-ui-merchant/src/views/pay/MchPayPassageAddOrEdit.vue
已删除
100644 → 0
浏览文件 @
64debcda
<
template
>
<a-drawer
:visible=
"visible"
title=
"配置支付通道"
@
close=
"onClose"
:body-style=
"
{ paddingBottom: '80px' }"
:drawer-style="{ backgroundColor: '#f0f2f5' }"
width="40%"
:maskClosable="false"
>
<a-list
:data-source=
"[]"
v-if=
"cardList.length === 0"
/>
<div
v-else
>
<a-row
:gutter=
"[24,24]"
style=
"width:100%"
>
<a-col
v-for=
"(record, key) in cardList"
:key=
"key"
:span=
"24/jeepayCard.span"
>
<div
:style=
"
{'height': jeepayCard.height + 'px'}" class="jeepay-card-content">
<!-- 卡片自定义样式 -->
<div
class=
"jeepay-card-content-header"
:style=
"
{backgroundColor: record.bgColor, height: (jeepayCard.height-50)/2 + 'px'}">
<img
v-if=
"record.icon"
:src=
"record.icon"
:style=
"
{height: (jeepayCard.height-50)/5 + 'px'}">
</div>
<div
class=
"jeepay-card-content-body"
:style=
"
{height: ((jeepayCard.height-50)/2) + 'px'}">
<div
class=
"title"
:style=
"
{height: ((jeepayCard.height-50)/4) + 'px', lineHeight: ((jeepayCard.height-50)/4) + 'px'}">
{{
record
.
ifName
}}
</div>
<a-form
layout=
"inline"
:labelCol=
"
{span:8}" :wrapperCol="{span:14}">
<a-form-item
label=
"费率:"
:validate-status=
"record.error"
:help=
"record.help"
>
<a-input
v-model=
"record.rate"
:disabled=
"!record.state && record.passageId != ''"
suffix=
"%"
/>
</a-form-item>
</a-form>
</div>
<!-- 卡片底部操作栏 -->
<div
class=
"jeepay-card-ops"
>
<a-switch
checked-children=
"启用"
un-checked-children=
"停用"
v-model=
"record.state"
></a-switch>
</div>
</div>
</a-col>
</a-row>
<div
class=
"drawer-btn-center"
>
<a-button
icon=
"close"
:style=
"
{ marginRight: '8px' }" @click="onClose">
取消
</a-button>
<a-button
type=
"primary"
icon=
"check"
v-if=
"$access('ENT_MCH_PAY_PASSAGE_ADD')"
@
click=
"handleOkFunc"
>
保存
</a-button>
</div>
</div>
</a-drawer>
</
template
>
<
script
>
import
JeepayCard
from
'
@/components/JeepayCard/JeepayCard
'
import
{
API_URL_MCH_PAYPASSAGE_LIST
,
req
,
getAvailablePayInterfaceList
}
from
'
@/api/manage
'
export
default
{
components
:
{
JeepayCard
},
props
:
{
callbackFunc
:
{
type
:
Function
,
default
:
()
=>
({})
}
},
data
()
{
return
{
cardList
:
[],
wayCode
:
null
,
// 支付方式代码
visible
:
false
,
// 是否显示弹层/抽屉
jeepayCard
:
{
height
:
300
,
span
:
3
}
}
},
methods
:
{
// 弹层打开事件
show
:
function
(
wayCode
)
{
this
.
wayCode
=
wayCode
this
.
visible
=
true
this
.
cardList
=
[]
this
.
refCardList
()
},
// 请求支付接口定义数据
refCardList
()
{
const
that
=
this
getAvailablePayInterfaceList
(
this
.
wayCode
).
then
(
resData
=>
{
if
(
resData
===
undefined
||
resData
.
length
===
0
)
{
that
.
cardList
=
[]
return
}
const
newItems
=
[]
resData
.
forEach
(
item
=>
{
newItems
.
push
({
passageId
:
item
.
passageId
?
item
.
passageId
:
''
,
ifCode
:
item
.
ifCode
,
ifName
:
item
.
ifName
,
icon
:
item
.
icon
,
bgColor
:
item
.
bgColor
,
rate
:
item
.
rate
,
state
:
item
.
state
===
1
})
})
that
.
cardList
=
newItems
that
.
$forceUpdate
()
})
},
handleOkFunc
:
function
()
{
// 点击【确认】按钮事件
const
that
=
this
const
reqParams
=
[]
try
{
that
.
cardList
.
forEach
(
item
=>
{
item
.
error
=
''
item
.
help
=
''
const
reg
=
/^
(([
1-9
]{1}\d{0,1})
|
(
0
{1}))(\.\d{1,4})?
$/
// 状态开启则费率必填
if
(
item
.
state
)
{
if
(
!
item
.
rate
)
{
item
.
error
=
'
error
'
item
.
help
=
'
请输入费率
'
throw
new
Error
(
'
error
'
)
}
if
(
!
reg
.
test
(
item
.
rate
)
||
item
.
rate
>
100
)
{
item
.
error
=
'
error
'
item
.
help
=
'
最多四位小数
'
throw
new
Error
(
'
error
'
)
}
}
reqParams
.
push
({
id
:
item
.
passageId
,
wayCode
:
that
.
wayCode
,
ifCode
:
item
.
ifCode
,
rate
:
item
.
rate
,
state
:
item
.
state
?
1
:
0
})
})
}
catch
(
e
)
{
if
(
e
.
message
===
'
error
'
)
{
this
.
$forceUpdate
()
return
}
}
// 请求接口
req
.
add
(
API_URL_MCH_PAYPASSAGE_LIST
,
{
'
reqParams
'
:
JSON
.
stringify
(
reqParams
)
}).
then
(
res
=>
{
that
.
$message
.
success
(
'
保存成功
'
)
that
.
visible
=
false
that
.
callbackFunc
()
})
},
onClose
()
{
this
.
visible
=
false
}
}
}
</
script
>
<
style
lang=
"less"
scoped
>
.jeepay-card-content {
width: 100%;
position: relative;
background-color: @jee-card-back;
border-radius: 6px;
overflow:hidden;
}
.jeepay-card-ops {
width: 100%;
height: 50px;
background-color: @jee-card-back;
display: flex;
flex-direction: row;
justify-content: space-around;
align-items: center;
border-top: 1px solid @jee-back;
position: absolute;
bottom: 0;
}
.jeepay-card-content-header {
width: 100%;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
}
.jeepay-card-content-body {
display: flex;
flex-direction: column;
justify-content: start;
align-items: center;
}
.title {
font-size: 16px;
font-family: PingFang SC, PingFang SC-Bold;
font-weight: 700;
color: #1a1a1a;
letter-spacing: 1px;
}
</
style
>
jeepay-ui-merchant/src/views/pay/PayConfigList.vue
已删除
100644 → 0
浏览文件 @
64debcda
<
template
>
<page-header-wrapper>
<JeepayCard
ref=
"infoCard"
:reqCardListFunc=
"reqCardListFunc"
:span=
"jeepayCard.span"
:height=
"jeepayCard.height"
>
<div
slot=
"cardContentSlot"
slot-scope=
"
{record}">
<div
:style=
"
{'height': jeepayCard.height + 'px'}" class="jeepay-card-content">
<!-- 卡片自定义样式 -->
<div
class=
"jeepay-card-content-header"
:style=
"
{backgroundColor: record.bgColor, height: jeepayCard.height/2 + 'px'}">
<img
v-if=
"record.icon"
:src=
"record.icon"
:style=
"
{height: jeepayCard.height/5 + 'px'}">
</div>
<div
class=
"jeepay-card-content-body"
:style=
"
{height: (jeepayCard.height/2 - 50) + 'px'}">
<div
class=
"title"
>
{{
record
.
ifName
}}
</div>
<a-badge
:status=
"record.ifConfigState ===1 ? 'processing' : 'error'"
:text=
"record.ifConfigState ===1 ? '启用' : '未开通'"
></a-badge>
</div>
<!-- 卡片底部操作栏 -->
<div
class=
"jeepay-card-ops"
>
<a
v-if=
"$access('ENT_MCH_PAY_CONFIG_ADD')"
@
click=
"editPayIfConfigFunc(record)"
>
填写参数
<a-icon
key=
"right"
type=
"right"
style=
"fontSize: 13px"
></a-icon></a>
<a
v-else
>
暂无操作
</a>
</div>
</div>
</div>
</JeepayCard>
<a-drawer
title=
"支付参数配置"
width=
"40%"
:closable=
"true"
:visible=
"visible"
@
close=
"onChildrenDrawerClose"
:maskClosable=
"false"
>
<a-form-model
ref=
"infoFormModel"
:model=
"saveObject"
layout=
"vertical"
:rules=
"rules"
>
<a-row
:gutter=
"16"
>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"接口费率"
prop=
"ifRate"
>
<a-input
v-model=
"saveObject.ifRate"
placeholder=
"请输入"
suffix=
"%"
/>
</a-form-model-item>
</a-col>
<a-col
:span=
"12"
>
<a-form-model-item
label=
"状态"
prop=
"state"
>
<a-radio-group
v-model=
"saveObject.state"
>
<a-radio
:value=
"1"
>
启用
</a-radio>
<a-radio
:value=
"0"
>
停用
</a-radio>
</a-radio-group>
</a-form-model-item>
</a-col>
<a-col
:span=
"24"
>
<a-form-model-item
label=
"备注"
prop=
"remark"
>
<a-input
v-model=
"saveObject.remark"
placeholder=
"请输入"
type=
"textarea"
/>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<a-divider
orientation=
"left"
>
<a-tag
color=
"#FF4B33"
>
{{
saveObject
.
ifCode
}}
商户参数配置
</a-tag>
</a-divider>
<a-form-model
ref=
"mchParamFormModel"
:model=
"ifParams"
layout=
"vertical"
:rules=
"ifParamsRules"
>
<a-row
:gutter=
"16"
>
<a-col
v-for=
"(item, key) in mchParams"
:key=
"key"
:span=
"item.type === 'text' ? 12 : 24"
>
<a-form-model-item
:label=
"item.desc"
:prop=
"item.name"
v-if=
"item.type === 'text' || item.type === 'textarea'"
>
<a-input
v-model=
"ifParams[item.name]"
placeholder=
"请输入"
:type=
"item.type"
/>
</a-form-model-item>
<a-form-model-item
:label=
"item.desc"
:prop=
"item.name"
v-else-if=
"item.type === 'radio'"
>
<a-radio-group
v-model=
"ifParams[item.name]"
>
<a-radio
v-for=
"(radioItem, radioKey) in item.values"
:key=
"radioKey"
:value=
"radioItem.value"
>
{{
radioItem
.
title
}}
</a-radio>
</a-radio-group>
</a-form-model-item>
<a-form-model-item
:label=
"item.desc"
:prop=
"item.name"
v-else-if=
"item.type === 'file'"
>
<a-input
v-model=
"ifParams[item.name]"
disabled=
"disabled"
/>
<JeepayUpload
:action=
"action"
@
uploadSuccess=
"uploadSuccess($event, item.name)"
>
<template
slot=
"uploadSlot"
slot-scope=
"
{loading}">
<a-button
style=
"marginTop:5px;"
>
<a-icon
:type=
"loading ? 'loading' : 'upload'"
/>
{{
loading
?
'
正在上传
'
:
'
点击上传
'
}}
</a-button>
</
template
>
</JeepayUpload>
</a-form-model-item>
</a-col>
</a-row>
</a-form-model>
<div
class=
"drawer-btn-center"
>
<a-button
@
click=
"onChildrenDrawerClose"
:style=
"{ marginRight: '8px' }"
icon=
"close"
>
取消
</a-button>
<a-button
type=
"primary"
@
click=
"onSubmit"
icon=
"check"
:loading=
"btnLoading"
>
保存
</a-button>
</div>
</a-drawer>
</page-header-wrapper>
</template>
<
script
>
import
JeepayCard
from
'
@/components/JeepayCard/JeepayCard
'
import
JeepayUpload
from
'
@/components/JeepayUpload/JeepayUpload
'
import
{
API_URL_MCH_PAYCONFIGS_LIST
,
getMcgPayConfigUnique
,
req
,
upload
}
from
'
@/api/manage
'
export
default
{
components
:
{
JeepayCard
,
JeepayUpload
},
data
()
{
return
{
btnLoading
:
false
,
action
:
upload
.
cert
,
// 上传文件地址
visible
:
false
,
// 抽屉开关
mchParams
:
{},
// 支付接口定义描述
saveObject
:
{},
// 保存的对象
ifParams
:
{},
// 参数配置对象
jeepayCard
:
{
// 卡片配置
height
:
300
,
span
:
{
xxl
:
6
,
xl
:
4
,
lg
:
4
,
md
:
3
,
sm
:
2
,
xs
:
1
}
},
rules
:
{
infoId
:
[{
required
:
true
,
trigger
:
'
blur
'
}],
ifCode
:
[{
required
:
true
,
trigger
:
'
blur
'
}],
ifRate
:
[{
required
:
false
,
pattern
:
/^
(([
1-9
]{1}\d{0,1})
|
(
0
{1}))(\.\d{1,4})?
$/
,
message
:
'
请输入0-100之间的数字,最多四位小数
'
,
trigger
:
'
blur
'
}]
},
ifParamsRules
:
{}
}
},
methods
:
{
// 动态生成支付参数表单检验规则
generoterRules
()
{
const
rules
=
{}
let
newItems
=
[]
this
.
mchParams
.
forEach
(
item
=>
{
newItems
=
[]
if
(
item
.
verify
===
'
required
'
)
{
newItems
.
push
({
required
:
true
,
message
:
'
请输入
'
+
item
.
desc
,
trigger
:
'
blur
'
})
rules
[
item
.
name
]
=
newItems
}
})
this
.
ifParamsRules
=
rules
},
// 请求支付接口定义数据
reqCardListFunc
()
{
return
req
.
list
(
API_URL_MCH_PAYCONFIGS_LIST
)
},
// 刷新card列表
refCardList
()
{
this
.
$refs
.
infoCard
.
refCardList
()
},
// 支付参数配置
editPayIfConfigFunc
(
record
)
{
if
(
!
record
)
{
return
}
if
(
record
.
subMchIsvConfig
===
0
)
{
this
.
$error
({
title
:
'
提示
'
,
content
:
'
当前商户为特约商户,请先配置服务商支付参数!
'
})
return
}
this
.
saveObject
=
{}
// 要保存的对象
this
.
ifParams
=
{}
// 参数配置对象
this
.
mchParams
=
{}
// 支付接口定义描述
this
.
saveObject
.
ifCode
=
record
.
ifCode
this
.
saveObject
.
state
=
record
.
ifConfigState
===
0
?
0
:
1
const
that
=
this
// 获取支付参数
getMcgPayConfigUnique
(
that
.
saveObject
.
ifCode
).
then
(
res
=>
{
if
(
res
&&
res
.
ifParams
)
{
that
.
saveObject
=
res
that
.
ifParams
=
JSON
.
parse
(
res
.
ifParams
)
}
})
const
newItems
=
[]
// 重新加载支付接口配置定义描述json
let
radioItems
=
[]
// 存放单选框value title
const
mchParams
=
record
.
mchParams
// 根据商户类型获取接口定义描述
JSON
.
parse
(
mchParams
).
forEach
(
item
=>
{
radioItems
=
[]
if
(
item
.
type
===
'
radio
'
)
{
const
valueItems
=
item
.
values
.
split
(
'
,
'
)
const
titleItems
=
item
.
titles
.
split
(
'
,
'
)
for
(
const
i
in
valueItems
)
{
radioItems
.
push
({
value
:
valueItems
[
i
],
title
:
titleItems
[
i
]
})
}
}
newItems
.
push
({
name
:
item
.
name
,
desc
:
item
.
desc
,
type
:
item
.
type
,
verify
:
item
.
verify
,
values
:
radioItems
})
})
that
.
mchParams
=
newItems
// 重新赋值接口定义描述
that
.
visible
=
true
// 打开支付参数配置抽屉
that
.
generoterRules
()
},
// 表单提交
onSubmit
()
{
const
that
=
this
this
.
$refs
.
infoFormModel
.
validate
(
valid
=>
{
this
.
$refs
.
mchParamFormModel
.
validate
(
valid2
=>
{
if
(
valid
&&
valid2
)
{
// 验证通过
that
.
btnLoading
=
true
const
reqParams
=
{}
reqParams
.
ifCode
=
that
.
saveObject
.
ifCode
reqParams
.
ifRate
=
that
.
saveObject
.
ifRate
reqParams
.
state
=
that
.
saveObject
.
state
reqParams
.
remark
=
that
.
saveObject
.
remark
// 支付参数配置不能为空
if
(
Object
.
keys
(
that
.
ifParams
).
length
===
0
)
{
this
.
$message
.
error
(
'
参数不能为空!
'
)
return
}
reqParams
.
ifParams
=
JSON
.
stringify
(
that
.
ifParams
)
// 请求接口
if
(
Object
.
keys
(
reqParams
).
length
===
0
)
{
this
.
$message
.
error
(
'
参数不能为空!
'
)
return
}
req
.
add
(
API_URL_MCH_PAYCONFIGS_LIST
,
reqParams
).
then
(
res
=>
{
that
.
$message
.
success
(
'
保存成功
'
)
that
.
visible
=
false
that
.
btnLoading
=
false
that
.
refCardList
()
})
}
})
})
},
// 上传文件成功回调方法,参数value为文件地址,name是自定义参数
uploadSuccess
(
value
,
name
)
{
this
.
ifParams
[
name
]
=
value
this
.
$forceUpdate
()
},
onChildrenDrawerClose
()
{
this
.
visible
=
false
}
}
}
</
script
>
<
style
lang=
"less"
scoped
>
.jeepay-card-content {
width: 100%;
position: relative;
background-color: @jee-card-back;
border-radius: 6px;
overflow:hidden;
}
.jeepay-card-ops {
width: 100%;
height: 50px;
background-color: @jee-card-back;
display: flex;
flex-direction: row;
justify-content: space-around;
align-items: center;
border-top: 1px solid @jee-back;
position: absolute;
bottom: 0;
}
.jeepay-card-content-header {
width: 100%;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
}
.jeepay-card-content-body {
display: flex;
flex-direction: column;
justify-content: space-around;
align-items: center;
}
.title {
font-size: 16px;
font-family: PingFang SC, PingFang SC-Bold;
font-weight: 700;
color: #1a1a1a;
letter-spacing: 1px;
}
</
style
>
jeepay-ui-merchant/src/views/pay/PayPassageList.vue
已删除
100644 → 0
浏览文件 @
64debcda
<
template
>
<page-header-wrapper>
<a-card>
<div
class=
"table-page-search-wrapper"
>
<a-form
layout=
"inline"
class=
"table-head-ground"
>
<div
class=
"table-layer"
>
<jeepay-text-up
:placeholder=
"'支付方式代码'"
:msg=
"searchData2.wayCode"
v-model=
"searchData2.wayCode"
/>
<jeepay-text-up
:placeholder=
"'支付方式名称'"
:msg=
"searchData2.wayName"
v-model=
"searchData2.wayName"
/>
<span
class=
"table-page-search-submitButtons"
>
<a-button
type=
"primary"
icon=
"search"
@
click=
"searchFunc(true)"
>
查询
</a-button>
<a-button
style=
"margin-left: 8px"
icon=
"reload"
@
click=
"() => this.searchData2 =
{}">重置
</a-button>
</span>
</div>
</a-form>
</div>
<!-- 列表渲染 -->
<JeepayTable
ref=
"infoTable"
:initData=
"true"
:reqTableDataFunc=
"reqTableDataFunc"
:tableColumns=
"tableColumns"
:searchData=
"searchData2"
:scrollX=
"600"
rowKey=
"wayCode"
>
<template
slot=
"stateSlot"
slot-scope=
"
{record}">
<a-badge
:status=
"record.passageState === 0?'error':'processing'"
:text=
"record.passageState === 0?'禁用':'启用'"
/>
</
template
>
<
template
slot=
"opSlot"
slot-scope=
"{record}"
>
<!-- 操作列插槽 -->
<JeepayTableColumns>
<a-button
type=
"link"
v-if=
"$access('ENT_MCH_PAY_PASSAGE_CONFIG')"
@
click=
"editFunc(record)"
>
配置
</a-button>
</JeepayTableColumns>
</
template
>
</JeepayTable>
</a-card>
<!-- 配置通道页面组件 -->
<MchPayPassageAddOrEdit
ref=
"mchPayPassageAddOrEdit"
:callbackFunc=
"searchFunc"
/>
</page-header-wrapper>
</template>
<
script
>
import
JeepayTable
from
'
@/components/JeepayTable/JeepayTable
'
import
JeepayTableColumns
from
'
@/components/JeepayTable/JeepayTableColumns
'
import
{
API_URL_MCH_PAYPASSAGE_LIST
,
req
,
getAvailablePayInterfaceList
}
from
'
@/api/manage
'
import
MchPayPassageAddOrEdit
from
'
./MchPayPassageAddOrEdit
'
import
JeepayTextUp
from
'
@/components/JeepayTextUp/JeepayTextUp
'
// 文字上移组件
// eslint-disable-next-line no-unused-vars
const
tableColumns
=
[
{
key
:
'
wayCode
'
,
title
:
'
支付方式代码
'
,
dataIndex
:
'
wayCode
'
},
{
key
:
'
wayName
'
,
title
:
'
支付方式名称
'
,
dataIndex
:
'
wayName
'
},
{
key
:
'
passageState
'
,
title
:
'
状态
'
,
scopedSlots
:
{
customRender
:
'
stateSlot
'
}
},
{
key
:
'
op
'
,
title
:
'
操作
'
,
width
:
'
100px
'
,
fixed
:
'
right
'
,
align
:
'
center
'
,
scopedSlots
:
{
customRender
:
'
opSlot
'
}
}
]
export
default
{
name
:
'
MchPassageList
'
,
components
:
{
JeepayTable
,
JeepayTableColumns
,
MchPayPassageAddOrEdit
,
JeepayTextUp
},
data
()
{
return
{
tableColumns
:
tableColumns
,
searchData2
:
{},
visible
:
false
// 抽屉开关
}
},
methods
:
{
// 请求table接口数据
reqTableDataFunc
(
params
)
{
return
req
.
list
(
API_URL_MCH_PAYPASSAGE_LIST
,
params
)
},
searchFunc
(
isToFirst
=
false
)
{
// 点击【查询】按钮点击事件
this
.
$refs
.
infoTable
.
refTable
(
isToFirst
)
},
editFunc
:
function
(
record
)
{
// 配置通道
const
that
=
this
getAvailablePayInterfaceList
(
record
.
wayCode
).
then
(
resData
=>
{
if
(
!
resData
||
resData
.
length
===
0
)
{
that
.
$error
({
title
:
'
提示
'
,
content
:
'
暂无可用支付接口配置
'
})
}
else
{
that
.
$refs
.
mchPayPassageAddOrEdit
.
show
(
record
.
wayCode
)
}
})
},
// 抽屉关闭
onClose
()
{
this
.
visible
=
false
}
}
}
</
script
>
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录