删除商户私钥信息
This commit is contained in:
parent
64debcda65
commit
7ec9dc76c7
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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="备注">
|
||||
|
|
|
|||
|
|
@ -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') } // 退款订单列表
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,194 +0,0 @@
|
|||
<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>
|
||||
|
|
@ -1,301 +0,0 @@
|
|||
<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>
|
||||
|
|
@ -1,95 +0,0 @@
|
|||
<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>
|
||||
Loading…
Reference in New Issue