mirror of
https://gitee.com/hhyykk/ipms-sjy-ui.git
synced 2025-07-26 08:45:08 +08:00
【代码优化】分支合并
This commit is contained in:
@ -10,6 +10,9 @@
|
||||
<el-form-item label="应用名" prop="name">
|
||||
<el-input v-model="formData.name" placeholder="请输入应用名" />
|
||||
</el-form-item>
|
||||
<el-form-item label="应用标识" prop="name">
|
||||
<el-input v-model="formData.appKey" placeholder="请输入应用标识" />
|
||||
</el-form-item>
|
||||
<el-form-item label="开启状态" prop="status">
|
||||
<el-radio-group v-model="formData.status">
|
||||
<el-radio
|
||||
@ -55,16 +58,15 @@ const formType = ref('') // 表单的类型:create - 新增;update - 修改
|
||||
const formData = ref({
|
||||
id: undefined,
|
||||
name: undefined,
|
||||
packageId: undefined,
|
||||
contactName: undefined,
|
||||
contactMobile: undefined,
|
||||
accountCount: undefined,
|
||||
expireTime: undefined,
|
||||
domain: undefined,
|
||||
status: CommonStatusEnum.ENABLE
|
||||
appKey: undefined,
|
||||
status: CommonStatusEnum.ENABLE,
|
||||
remark: undefined,
|
||||
orderNotifyUrl: undefined,
|
||||
refundNotifyUrl: undefined
|
||||
})
|
||||
const formRules = reactive({
|
||||
name: [{ required: true, message: '应用名不能为空', trigger: 'blur' }],
|
||||
appKey: [{ required: true, message: '应用标识不能为空', trigger: 'blur' }],
|
||||
status: [{ required: true, message: '开启状态不能为空', trigger: 'blur' }],
|
||||
orderNotifyUrl: [{ required: true, message: '支付结果的回调地址不能为空', trigger: 'blur' }],
|
||||
refundNotifyUrl: [{ required: true, message: '退款结果的回调地址不能为空', trigger: 'blur' }]
|
||||
@ -123,7 +125,8 @@ const resetForm = () => {
|
||||
status: CommonStatusEnum.ENABLE,
|
||||
remark: undefined,
|
||||
orderNotifyUrl: undefined,
|
||||
refundNotifyUrl: undefined
|
||||
refundNotifyUrl: undefined,
|
||||
appKey: undefined
|
||||
}
|
||||
formRef.value?.resetFields()
|
||||
}
|
||||
|
@ -1,22 +1,22 @@
|
||||
<template>
|
||||
<div>
|
||||
<Dialog v-model="dialogVisible" :title="dialogTitle" @closed="close" width="830px">
|
||||
<Dialog v-model="dialogVisible" :title="dialogTitle" width="830px" @closed="close">
|
||||
<el-form
|
||||
ref="formRef"
|
||||
:model="formData"
|
||||
:formRules="formRules"
|
||||
label-width="100px"
|
||||
v-loading="formLoading"
|
||||
:model="formData"
|
||||
:rules="formRules"
|
||||
label-width="100px"
|
||||
>
|
||||
<el-form-item label-width="180px" label="渠道费率" prop="feeRate">
|
||||
<el-input v-model="formData.feeRate" placeholder="请输入渠道费率" clearable>
|
||||
<el-form-item label="渠道费率" label-width="180px" prop="feeRate">
|
||||
<el-input v-model="formData.feeRate" clearable placeholder="请输入渠道费率">
|
||||
<template #append>%</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label-width="180px" label="开放平台 APPID" prop="config.appId">
|
||||
<el-input v-model="formData.config.appId" placeholder="请输入开放平台 APPID" clearable />
|
||||
<el-form-item label="开放平台 APPID" label-width="180px" prop="config.appId">
|
||||
<el-input v-model="formData.config.appId" clearable placeholder="请输入开放平台 APPID" />
|
||||
</el-form-item>
|
||||
<el-form-item label-width="180px" label="渠道状态" prop="status">
|
||||
<el-form-item label="渠道状态" label-width="180px" prop="status">
|
||||
<el-radio-group v-model="formData.status">
|
||||
<el-radio
|
||||
v-for="dict in getDictOptions(DICT_TYPE.COMMON_STATUS)"
|
||||
@ -27,7 +27,7 @@
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label-width="180px" label="网关地址" prop="config.serverUrl">
|
||||
<el-form-item label="网关地址" label-width="180px" prop="config.serverUrl">
|
||||
<el-radio-group v-model="formData.config.serverUrl">
|
||||
<el-radio label="https://openapi.alipay.com/gateway.do">线上环境</el-radio>
|
||||
<el-radio label="https://openapi-sandbox.dl.alipaydev.com/gateway.do">
|
||||
@ -35,128 +35,148 @@
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label-width="180px" label="算法类型" prop="config.signType">
|
||||
<el-form-item label="算法类型" label-width="180px" prop="config.signType">
|
||||
<el-radio-group v-model="formData.config.signType">
|
||||
<el-radio key="RSA2" label="RSA2">RSA2</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label-width="180px" label="公钥类型" prop="config.mode">
|
||||
<el-form-item label="公钥类型" label-width="180px" prop="config.mode">
|
||||
<el-radio-group v-model="formData.config.mode">
|
||||
<el-radio key="公钥模式" :label="1">公钥模式</el-radio>
|
||||
<el-radio key="证书模式" :label="2">证书模式</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<div v-if="formData.config.mode === 1">
|
||||
<el-form-item label-width="180px" label="应用私钥" prop="config.privateKey">
|
||||
<el-form-item label="应用私钥" label-width="180px" prop="config.privateKey">
|
||||
<el-input
|
||||
type="textarea"
|
||||
:autosize="{ minRows: 8, maxRows: 8 }"
|
||||
v-model="formData.config.privateKey"
|
||||
placeholder="请输入应用私钥"
|
||||
clearable
|
||||
:autosize="{ minRows: 8, maxRows: 8 }"
|
||||
:style="{ width: '100%' }"
|
||||
clearable
|
||||
placeholder="请输入应用私钥"
|
||||
type="textarea"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label-width="180px" label="支付宝公钥" prop="config.alipayPublicKey">
|
||||
<el-form-item label="支付宝公钥" label-width="180px" prop="config.alipayPublicKey">
|
||||
<el-input
|
||||
type="textarea"
|
||||
:autosize="{ minRows: 8, maxRows: 8 }"
|
||||
v-model="formData.config.alipayPublicKey"
|
||||
placeholder="请输入支付宝公钥"
|
||||
clearable
|
||||
:autosize="{ minRows: 8, maxRows: 8 }"
|
||||
:style="{ width: '100%' }"
|
||||
clearable
|
||||
placeholder="请输入支付宝公钥"
|
||||
type="textarea"
|
||||
/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div v-if="formData.config.mode === 2">
|
||||
<el-form-item label-width="180px" label="应用私钥" prop="config.privateKey">
|
||||
<el-form-item label="应用私钥" label-width="180px" prop="config.privateKey">
|
||||
<el-input
|
||||
type="textarea"
|
||||
:autosize="{ minRows: 8, maxRows: 8 }"
|
||||
v-model="formData.config.privateKey"
|
||||
placeholder="请输入应用私钥"
|
||||
clearable
|
||||
:autosize="{ minRows: 8, maxRows: 8 }"
|
||||
:style="{ width: '100%' }"
|
||||
clearable
|
||||
placeholder="请输入应用私钥"
|
||||
type="textarea"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label-width="180px" label="商户公钥应用证书" prop="config.appCertContent">
|
||||
<el-form-item label="商户公钥应用证书" label-width="180px" prop="config.appCertContent">
|
||||
<el-input
|
||||
v-model="formData.config.appCertContent"
|
||||
type="textarea"
|
||||
placeholder="请上传商户公钥应用证书"
|
||||
readonly
|
||||
:autosize="{ minRows: 8, maxRows: 8 }"
|
||||
:style="{ width: '100%' }"
|
||||
placeholder="请上传商户公钥应用证书"
|
||||
readonly
|
||||
type="textarea"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label-width="180px" label="">
|
||||
<el-form-item label="" label-width="180px">
|
||||
<el-upload
|
||||
action=""
|
||||
ref="privateKeyContentFile"
|
||||
:limit="1"
|
||||
:accept="fileAccept"
|
||||
:http-request="appCertUpload"
|
||||
:before-upload="fileBeforeUpload"
|
||||
:http-request="appCertUpload"
|
||||
:limit="1"
|
||||
action=""
|
||||
>
|
||||
<el-button type="primary">
|
||||
<Icon icon="ep:upload" class="mr-5px" /> 点击上传
|
||||
<Icon class="mr-5px" icon="ep:upload" />
|
||||
点击上传
|
||||
</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label-width="180px"
|
||||
label="支付宝公钥证书"
|
||||
label-width="180px"
|
||||
prop="config.alipayPublicCertContent"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.config.alipayPublicCertContent"
|
||||
type="textarea"
|
||||
placeholder="请上传支付宝公钥证书"
|
||||
readonly
|
||||
:autosize="{ minRows: 8, maxRows: 8 }"
|
||||
:style="{ width: '100%' }"
|
||||
placeholder="请上传支付宝公钥证书"
|
||||
readonly
|
||||
type="textarea"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label-width="180px" label="">
|
||||
<el-form-item label="" label-width="180px">
|
||||
<el-upload
|
||||
ref="privateCertContentFile"
|
||||
action=""
|
||||
:limit="1"
|
||||
:accept="fileAccept"
|
||||
:before-upload="fileBeforeUpload"
|
||||
:http-request="alipayPublicCertUpload"
|
||||
:limit="1"
|
||||
action=""
|
||||
>
|
||||
<el-button type="primary">
|
||||
<Icon icon="ep:upload" class="mr-5px" /> 点击上传
|
||||
<Icon class="mr-5px" icon="ep:upload" />
|
||||
点击上传
|
||||
</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item label-width="180px" label="根证书" prop="config.rootCertContent">
|
||||
<el-form-item label="根证书" label-width="180px" prop="config.rootCertContent">
|
||||
<el-input
|
||||
v-model="formData.config.rootCertContent"
|
||||
type="textarea"
|
||||
placeholder="请上传根证书"
|
||||
readonly
|
||||
:autosize="{ minRows: 8, maxRows: 8 }"
|
||||
:style="{ width: '100%' }"
|
||||
placeholder="请上传根证书"
|
||||
readonly
|
||||
type="textarea"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label-width="180px" label="">
|
||||
<el-form-item label="" label-width="180px">
|
||||
<el-upload
|
||||
ref="privateCertContentFile"
|
||||
:limit="1"
|
||||
:accept="fileAccept"
|
||||
action=""
|
||||
:before-upload="fileBeforeUpload"
|
||||
:http-request="rootCertUpload"
|
||||
:limit="1"
|
||||
action=""
|
||||
>
|
||||
<el-button type="primary">
|
||||
<Icon icon="ep:upload" class="mr-5px" /> 点击上传
|
||||
<Icon class="mr-5px" icon="ep:upload" />
|
||||
点击上传
|
||||
</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<el-form-item label-width="180px" label="备注" prop="remark">
|
||||
|
||||
<el-form-item label="接口内容加密方式" label-width="180px" prop="config.encryptType">
|
||||
<el-radio-group v-model="formData.config.encryptType">
|
||||
<el-radio key="NONE" label="">无加密</el-radio>
|
||||
<el-radio key="AES" label="AES">AES</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<div v-if="formData.config.encryptType === 'AES'">
|
||||
<el-form-item label="接口内容加密密钥" label-width="180px" prop="config.encryptKey">
|
||||
<el-input
|
||||
v-model="formData.config.encryptKey"
|
||||
clearable
|
||||
placeholder="请输入接口内容加密密钥"
|
||||
/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
||||
<el-form-item label="备注" label-width="180px" prop="remark">
|
||||
<el-input v-model="formData.remark" :style="{ width: '100%' }" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
@ -195,7 +215,9 @@ const formData = ref<any>({
|
||||
alipayPublicKey: '',
|
||||
appCertContent: '',
|
||||
alipayPublicCertContent: '',
|
||||
rootCertContent: ''
|
||||
rootCertContent: '',
|
||||
encryptType: '',
|
||||
encryptKey: ''
|
||||
}
|
||||
})
|
||||
const formRules = {
|
||||
@ -213,7 +235,8 @@ const formRules = {
|
||||
'config.alipayPublicCertContent': [
|
||||
{ required: true, message: '请上传支付宝公钥证书', trigger: 'blur' }
|
||||
],
|
||||
'config.rootCertContent': [{ required: true, message: '请上传指定根证书', trigger: 'blur' }]
|
||||
'config.rootCertContent': [{ required: true, message: '请上传指定根证书', trigger: 'blur' }],
|
||||
'config.encryptKey': [{ required: true, message: '请输入接口内容加密密钥', trigger: 'blur' }]
|
||||
}
|
||||
const fileAccept = '.crt'
|
||||
const formRef = ref() // 表单 Ref
|
||||
@ -281,7 +304,9 @@ const resetForm = (appId, code) => {
|
||||
alipayPublicKey: '',
|
||||
appCertContent: '',
|
||||
alipayPublicCertContent: '',
|
||||
rootCertContent: ''
|
||||
rootCertContent: '',
|
||||
encryptType: '',
|
||||
encryptKey: ''
|
||||
}
|
||||
}
|
||||
formRef.value?.resetFields()
|
||||
|
@ -1,14 +1,14 @@
|
||||
<template>
|
||||
<div>
|
||||
<Dialog v-model="dialogVisible" :title="dialogTitle" @closed="close" width="800px">
|
||||
<Dialog v-model="dialogVisible" :title="dialogTitle" width="800px">
|
||||
<el-form
|
||||
ref="formRef"
|
||||
v-loading="formLoading"
|
||||
:model="formData"
|
||||
:rules="formRules"
|
||||
label-width="100px"
|
||||
v-loading="formLoading"
|
||||
>
|
||||
<el-form-item label-width="180px" label="渠道状态" prop="status">
|
||||
<el-form-item label="渠道状态" label-width="180px" prop="status">
|
||||
<el-radio-group v-model="formData.status">
|
||||
<el-radio
|
||||
v-for="dict in getDictOptions(DICT_TYPE.COMMON_STATUS)"
|
||||
@ -19,7 +19,7 @@
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label-width="180px" label="备注" prop="remark">
|
||||
<el-form-item label="备注" label-width="180px" prop="remark">
|
||||
<el-input v-model="formData.remark" :style="{ width: '100%' }" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
@ -1,14 +1,14 @@
|
||||
<template>
|
||||
<div>
|
||||
<Dialog v-model="dialogVisible" :title="dialogTitle" @closed="close" width="800px">
|
||||
<Dialog v-model="dialogVisible" :title="dialogTitle" width="800px">
|
||||
<el-form
|
||||
ref="formRef"
|
||||
v-loading="formLoading"
|
||||
:model="formData"
|
||||
:rules="formRules"
|
||||
label-width="100px"
|
||||
v-loading="formLoading"
|
||||
>
|
||||
<el-form-item label-width="180px" label="渠道状态" prop="status">
|
||||
<el-form-item label="渠道状态" label-width="180px" prop="status">
|
||||
<el-radio-group v-model="formData.status">
|
||||
<el-radio
|
||||
v-for="dict in getDictOptions(DICT_TYPE.COMMON_STATUS)"
|
||||
@ -19,7 +19,7 @@
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label-width="180px" label="备注" prop="remark">
|
||||
<el-form-item label="备注" label-width="180px" prop="remark">
|
||||
<el-input v-model="formData.remark" :style="{ width: '100%' }" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
@ -1,35 +1,35 @@
|
||||
<template>
|
||||
<div>
|
||||
<Dialog v-model="dialogVisible" :title="dialogTitle" @close="close" width="800px">
|
||||
<Dialog v-model="dialogVisible" :title="dialogTitle" width="800px">
|
||||
<el-form
|
||||
ref="formRef"
|
||||
v-loading="formLoading"
|
||||
:model="formData"
|
||||
:rules="formRules"
|
||||
label-width="120px"
|
||||
v-loading="formLoading"
|
||||
>
|
||||
<el-form-item label-width="180px" label="渠道费率" prop="feeRate">
|
||||
<el-form-item label="渠道费率" label-width="180px" prop="feeRate">
|
||||
<el-input
|
||||
v-model="formData.feeRate"
|
||||
placeholder="请输入渠道费率"
|
||||
clearable
|
||||
:style="{ width: '100%' }"
|
||||
clearable
|
||||
placeholder="请输入渠道费率"
|
||||
>
|
||||
<template #append>%</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label-width="180px" label="微信 APPID" prop="config.appId">
|
||||
<el-form-item label="微信 APPID" label-width="180px" prop="config.appId">
|
||||
<el-input
|
||||
v-model="formData.config.appId"
|
||||
placeholder="请输入微信 APPID"
|
||||
clearable
|
||||
:style="{ width: '100%' }"
|
||||
clearable
|
||||
placeholder="请输入微信 APPID"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label-width="180px" label="商户号" prop="config.mchId">
|
||||
<el-form-item label="商户号" label-width="180px" prop="config.mchId">
|
||||
<el-input v-model="formData.config.mchId" :style="{ width: '100%' }" />
|
||||
</el-form-item>
|
||||
<el-form-item label-width="180px" label="渠道状态" prop="status">
|
||||
<el-form-item label="渠道状态" label-width="180px" prop="status">
|
||||
<el-radio-group v-model="formData.status">
|
||||
<el-radio
|
||||
v-for="dict in getDictOptions(DICT_TYPE.COMMON_STATUS)"
|
||||
@ -40,95 +40,91 @@
|
||||
</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<el-form-item label-width="180px" label="API 版本" prop="config.apiVersion">
|
||||
<el-form-item label="API 版本" label-width="180px" prop="config.apiVersion">
|
||||
<el-radio-group v-model="formData.config.apiVersion">
|
||||
<el-radio label="v2">v2</el-radio>
|
||||
<el-radio label="v3">v3</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<div v-if="formData.config.apiVersion === 'v2'">
|
||||
<el-form-item label-width="180px" label="商户密钥" prop="config.mchKey">
|
||||
<el-input
|
||||
v-model="formData.config.mchKey"
|
||||
placeholder="请输入商户密钥"
|
||||
clearable
|
||||
/>
|
||||
<el-form-item label="商户密钥" label-width="180px" prop="config.mchKey">
|
||||
<el-input v-model="formData.config.mchKey" clearable placeholder="请输入商户密钥" />
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label-width="180px"
|
||||
label="apiclient_cert.p12 证书"
|
||||
label-width="180px"
|
||||
prop="config.keyContent"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.config.keyContent"
|
||||
type="textarea"
|
||||
placeholder="请上传 apiclient_cert.p12 证书"
|
||||
readonly
|
||||
:autosize="{ minRows: 8, maxRows: 8 }"
|
||||
:style="{ width: '100%' }"
|
||||
placeholder="请上传 apiclient_cert.p12 证书"
|
||||
readonly
|
||||
type="textarea"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label-width="180px" label="">
|
||||
<el-form-item label="" label-width="180px">
|
||||
<el-upload
|
||||
:before-upload="p12FileBeforeUpload"
|
||||
:http-request="keyContentUpload"
|
||||
:limit="1"
|
||||
accept=".p12"
|
||||
action=""
|
||||
:before-upload="p12FileBeforeUpload"
|
||||
:http-request="keyContentUpload"
|
||||
>
|
||||
<el-button type="primary">
|
||||
<Icon icon="ep:upload" class="mr-5px" />
|
||||
<Icon class="mr-5px" icon="ep:upload" />
|
||||
点击上传
|
||||
</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div v-if="formData.config.apiVersion === 'v3'">
|
||||
<el-form-item label-width="180px" label="API V3 密钥" prop="config.apiV3Key">
|
||||
<el-form-item label="API V3 密钥" label-width="180px" prop="config.apiV3Key">
|
||||
<el-input
|
||||
v-model="formData.config.apiV3Key"
|
||||
placeholder="请输入 API V3 密钥"
|
||||
clearable
|
||||
placeholder="请输入 API V3 密钥"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label-width="180px"
|
||||
label="apiclient_key.pem 证书"
|
||||
label-width="180px"
|
||||
prop="config.privateKeyContent"
|
||||
>
|
||||
<el-input
|
||||
v-model="formData.config.privateKeyContent"
|
||||
type="textarea"
|
||||
placeholder="请上传 apiclient_key.pem 证书"
|
||||
readonly
|
||||
:autosize="{ minRows: 8, maxRows: 8 }"
|
||||
:style="{ width: '100%' }"
|
||||
placeholder="请上传 apiclient_key.pem 证书"
|
||||
readonly
|
||||
type="textarea"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label-width="180px" label="" prop="privateKeyContentFile">
|
||||
<el-form-item label="" label-width="180px" prop="privateKeyContentFile">
|
||||
<el-upload
|
||||
ref="privateKeyContentFile"
|
||||
:before-upload="pemFileBeforeUpload"
|
||||
:http-request="privateKeyContentUpload"
|
||||
:limit="1"
|
||||
accept=".pem"
|
||||
action=""
|
||||
:before-upload="pemFileBeforeUpload"
|
||||
:http-request="privateKeyContentUpload"
|
||||
>
|
||||
<el-button type="primary">
|
||||
<Icon icon="ep:upload" class="mr-5px" />
|
||||
<Icon class="mr-5px" icon="ep:upload" />
|
||||
点击上传
|
||||
</el-button>
|
||||
</el-upload>
|
||||
</el-form-item>
|
||||
<el-form-item label-width="180px" label="证书序列号" prop="config.certSerialNo">
|
||||
<el-form-item label="证书序列号" label-width="180px" prop="config.certSerialNo">
|
||||
<el-input
|
||||
v-model="formData.config.certSerialNo"
|
||||
placeholder="请输入证书序列号"
|
||||
clearable
|
||||
placeholder="请输入证书序列号"
|
||||
/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<el-form-item label-width="180px" label="备注" prop="remark">
|
||||
<el-form-item label="备注" label-width="180px" prop="remark">
|
||||
<el-input v-model="formData.remark" :style="{ width: '100%' }" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
@ -182,9 +178,7 @@ const formRules = {
|
||||
'config.privateKeyContent': [
|
||||
{ required: true, message: '请上传 apiclient_key.pem 证书', trigger: 'blur' }
|
||||
],
|
||||
'config.certSerialNo': [
|
||||
{ required: true, message: '请输入证书序列号', trigger: 'blur' }
|
||||
],
|
||||
'config.certSerialNo': [{ required: true, message: '请输入证书序列号', trigger: 'blur' }],
|
||||
'config.apiV3Key': [{ required: true, message: '请上传 api V3 密钥值', trigger: 'blur' }]
|
||||
}
|
||||
const formRef = ref() // 表单 Ref
|
||||
|
@ -3,27 +3,27 @@
|
||||
<!-- 搜索 -->
|
||||
<ContentWrap>
|
||||
<el-form
|
||||
class="-mb-15px"
|
||||
:model="queryParams"
|
||||
ref="queryFormRef"
|
||||
:inline="true"
|
||||
:model="queryParams"
|
||||
class="-mb-15px"
|
||||
label-width="68px"
|
||||
>
|
||||
<el-form-item label="应用名" prop="name">
|
||||
<el-input
|
||||
v-model="queryParams.name"
|
||||
placeholder="请输入应用名"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
class="!w-240px"
|
||||
clearable
|
||||
placeholder="请输入应用名"
|
||||
@keyup.enter="handleQuery"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="开启状态" prop="status">
|
||||
<el-select
|
||||
v-model="queryParams.status"
|
||||
placeholder="请选择开启状态"
|
||||
clearable
|
||||
class="!w-240px"
|
||||
clearable
|
||||
placeholder="请选择开启状态"
|
||||
>
|
||||
<el-option
|
||||
v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)"
|
||||
@ -36,25 +36,25 @@
|
||||
<el-form-item label="创建时间" prop="createTime">
|
||||
<el-date-picker
|
||||
v-model="queryParams.createTime"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
type="daterange"
|
||||
start-placeholder="开始日期"
|
||||
end-placeholder="结束日期"
|
||||
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
|
||||
class="!w-240px"
|
||||
end-placeholder="结束日期"
|
||||
start-placeholder="开始日期"
|
||||
type="daterange"
|
||||
value-format="YYYY-MM-DD HH:mm:ss"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="handleQuery">
|
||||
<Icon icon="ep:search" class="mr-5px" />
|
||||
<Icon class="mr-5px" icon="ep:search" />
|
||||
搜索
|
||||
</el-button>
|
||||
<el-button @click="resetQuery">
|
||||
<Icon icon="ep:refresh" class="mr-5px" />
|
||||
<Icon class="mr-5px" icon="ep:refresh" />
|
||||
重置
|
||||
</el-button>
|
||||
<el-button type="primary" plain @click="openForm('create')" v-hasPermi="['pay:app:create']">
|
||||
<Icon icon="ep:plus" class="mr-5px" />
|
||||
<el-button v-hasPermi="['pay:app:create']" plain type="primary" @click="openForm('create')">
|
||||
<Icon class="mr-5px" icon="ep:plus" />
|
||||
新增
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
@ -64,9 +64,9 @@
|
||||
<!-- 列表 -->
|
||||
<ContentWrap>
|
||||
<el-table v-loading="loading" :data="list">
|
||||
<el-table-column label="应用编号" align="center" prop="id" />
|
||||
<el-table-column label="应用名" align="center" prop="name" />
|
||||
<el-table-column label="开启状态" align="center" prop="status">
|
||||
<el-table-column align="center" label="应用标识" prop="appKey" />
|
||||
<el-table-column align="center" label="应用名" min-width="90" prop="name" />
|
||||
<el-table-column align="center" label="开启状态" prop="status">
|
||||
<template #default="scope">
|
||||
<el-switch
|
||||
v-model="scope.row.status"
|
||||
@ -76,26 +76,28 @@
|
||||
/>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="支付宝配置" align="center">
|
||||
<el-table-column align="center" label="支付宝配置">
|
||||
<el-table-column
|
||||
:label="channel.name"
|
||||
align="center"
|
||||
v-for="channel in alipayChannels"
|
||||
:key="channel.code"
|
||||
:label="channel.name.replace('支付宝', '')"
|
||||
align="center"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
type="success"
|
||||
v-if="isChannelExists(scope.row.channelCodes, channel.code)"
|
||||
@click="openChannelForm(scope.row, channel.code)"
|
||||
circle
|
||||
size="small"
|
||||
type="success"
|
||||
@click="openChannelForm(scope.row, channel.code)"
|
||||
>
|
||||
<Icon icon="ep:check" />
|
||||
</el-button>
|
||||
<el-button
|
||||
v-else
|
||||
type="danger"
|
||||
circle
|
||||
size="small"
|
||||
type="danger"
|
||||
@click="openChannelForm(scope.row, channel.code)"
|
||||
>
|
||||
<Icon icon="ep:close" />
|
||||
@ -103,26 +105,28 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column label="微信配置" align="center">
|
||||
<el-table-column align="center" label="微信配置">
|
||||
<el-table-column
|
||||
:label="channel.name"
|
||||
align="center"
|
||||
v-for="channel in wxChannels"
|
||||
:key="channel.code"
|
||||
:label="channel.name.replace('微信', '')"
|
||||
align="center"
|
||||
>
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
type="success"
|
||||
v-if="isChannelExists(scope.row.channelCodes, channel.code)"
|
||||
@click="openChannelForm(scope.row, channel.code)"
|
||||
circle
|
||||
size="small"
|
||||
type="success"
|
||||
@click="openChannelForm(scope.row, channel.code)"
|
||||
>
|
||||
<Icon icon="ep:check" />
|
||||
</el-button>
|
||||
<el-button
|
||||
v-else
|
||||
type="danger"
|
||||
circle
|
||||
size="small"
|
||||
type="danger"
|
||||
@click="openChannelForm(scope.row, channel.code)"
|
||||
>
|
||||
<Icon icon="ep:close" />
|
||||
@ -130,21 +134,23 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column label="钱包支付配置" align="center">
|
||||
<el-table-column align="center" label="钱包支付配置">
|
||||
<el-table-column :label="PayChannelEnum.WALLET.name" align="center">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
type="success"
|
||||
circle
|
||||
v-if="isChannelExists(scope.row.channelCodes, PayChannelEnum.WALLET.code)"
|
||||
circle
|
||||
size="small"
|
||||
type="success"
|
||||
@click="openChannelForm(scope.row, PayChannelEnum.WALLET.code)"
|
||||
>
|
||||
<Icon icon="ep:check" />
|
||||
</el-button>
|
||||
<el-button
|
||||
v-else
|
||||
type="danger"
|
||||
circle
|
||||
size="small"
|
||||
type="danger"
|
||||
@click="openChannelForm(scope.row, PayChannelEnum.WALLET.code)"
|
||||
>
|
||||
<Icon icon="ep:close" />
|
||||
@ -152,21 +158,23 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column label="模拟支付配置" align="center">
|
||||
<el-table-column align="center" label="模拟支付配置">
|
||||
<el-table-column :label="PayChannelEnum.MOCK.name" align="center">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
type="success"
|
||||
circle
|
||||
v-if="isChannelExists(scope.row.channelCodes, PayChannelEnum.MOCK.code)"
|
||||
circle
|
||||
size="small"
|
||||
type="success"
|
||||
@click="openChannelForm(scope.row, PayChannelEnum.MOCK.code)"
|
||||
>
|
||||
<Icon icon="ep:check" />
|
||||
</el-button>
|
||||
<el-button
|
||||
v-else
|
||||
type="danger"
|
||||
circle
|
||||
size="small"
|
||||
type="danger"
|
||||
@click="openChannelForm(scope.row, PayChannelEnum.MOCK.code)"
|
||||
>
|
||||
<Icon icon="ep:close" />
|
||||
@ -174,21 +182,21 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table-column>
|
||||
<el-table-column label="操作" align="center" min-width="110" fixed="right">
|
||||
<el-table-column align="center" fixed="right" label="操作" min-width="110">
|
||||
<template #default="scope">
|
||||
<el-button
|
||||
v-hasPermi="['pay:app:update']"
|
||||
link
|
||||
type="primary"
|
||||
@click="openForm('update', scope.row.id)"
|
||||
v-hasPermi="['pay:app:update']"
|
||||
>
|
||||
编辑
|
||||
</el-button>
|
||||
<el-button
|
||||
v-hasPermi="['pay:app:delete']"
|
||||
link
|
||||
type="danger"
|
||||
@click="handleDelete(scope.row.id)"
|
||||
v-hasPermi="['pay:app:delete']"
|
||||
>
|
||||
删除
|
||||
</el-button>
|
||||
@ -197,9 +205,9 @@
|
||||
</el-table>
|
||||
<!-- 分页 -->
|
||||
<Pagination
|
||||
:total="total"
|
||||
v-model:page="queryParams.pageNo"
|
||||
v-model:limit="queryParams.pageSize"
|
||||
v-model:page="queryParams.pageNo"
|
||||
:total="total"
|
||||
@pagination="getList"
|
||||
/>
|
||||
</ContentWrap>
|
||||
@ -255,7 +263,7 @@ const wxChannels = [
|
||||
PayChannelEnum.WX_APP,
|
||||
PayChannelEnum.WX_NATIVE,
|
||||
PayChannelEnum.WX_WAP,
|
||||
PayChannelEnum.WX_BAR,
|
||||
PayChannelEnum.WX_BAR
|
||||
]
|
||||
|
||||
/** 查询列表 */
|
||||
|
Reference in New Issue
Block a user