文件

1369 行
63 KiB
HTML
可执行文件

<!--[1.9.5]-->
<style>
[v-cloak] {
display: none;
}
* {
margin: 0;
padding: 0;
}
.el-tabs__item {
font-size: 15px;
}
.status {
width: 54px;
height: 24px;
border-radius: 13px;
font-size: 12px;
border: 1px solid #ccc;
cursor: pointer;
position: relative;
transition: 0.3s;
}
.isOpen {
background-color: #4394ff;
border-color: #4394ff;
}
.isOpen:before {
content: '开启';
color: white;
position: absolute;
top: 3px;
left: 7px;
}
.isOpen:after {
content: '';
background-color: white;
width: 16px;
height: 16px;
position: absolute;
top: 4px;
left: 34px;
border-radius: 50%;
}
.isClose:before {
content: '关闭';
color: #999;
position: absolute;
top: 3px;
left: 23px;
}
.isClose:after {
content: '';
background-color: #d2d2d2;
width: 16px;
height: 16px;
position: absolute;
top: 4px;
left: 5px;
border-radius: 50%;
}
.content {
font-size: 14px;
width: 100%;
padding: 10px;
box-sizing: border-box;
border: 1px solid rgba(64, 158, 255, 0.2);
border-radius: 4px;
margin-bottom: 20px;
}
.content:hover {
box-shadow: 0 1px 10px rgba(64, 158, 255, 0.5);
}
.content-list {
display: flex;
align-items: flex-start;
margin: 10px 12px;
flex-wrap: wrap;
}
.title_inner {
width: 100%;
height: 100%;
border-left: 2px solid #4394ff;
box-sizing: border-box;
padding-left: 10px;
display: flex;
font-size: 14px;
align-items: center;
color: #333;
font-weight: bold;
margin-bottom: 10px;
justify-content: space-between;
}
.content-title {
font-size: 13px;
width: 170px;
padding-right: 20px;
line-height: 32px;
}
.el-input {
width: 300px;
}
.content-list-btn {
margin-left: 10px;
}
.el-textarea {
width: calc(100% - 200px);
}
.long {
display: flex;
align-items: center;
}
.long .el-input {
width: 550px;
}
.big .el-input {
width: 370px;
}
.el-input.is-disabled .el-input__inner {
color: #999;
}
.examine {
font-size: 14px;
color: #666;
font-weight: bold;
}
.success {
color: #0BB20C;
}
.loading {
color: #ffd100;
}
.error {
color: red;
}
.content-text {
padding: 5px 15px;
border: 1px solid #eee;
border-radius: 4px;
max-width: 300px;
color: #666;
}
.line {
font-size: 12px;
color: #666;
position: relative;
line-height: 12px;
padding-left: 204px;
}
.line:before {
content: '';
width: 182px;
height: 1px;
background-color: #ccc;
position: absolute;
top: 6px;
left: 15px;
}
.line:after {
content: '';
width: 182px;
height: 1px;
background-color: #ccc;
position: absolute;
top: 6px;
left: 318px;
}
.pay_jurisdiction {
text-align: center;
color: #ccc;
}
</style>
<div id="paySetApp" v-cloak>
<div v-if="pay_jurisdiction" class="pay_jurisdiction">
<span v-if="open_user==1">对不起,您没有配置支付的权限</span>
<span v-if="open_user==2">对不起,您没有给商户支付的权限</span>
<span v-if="open_user==3">对不起,您没有给代理商支付的权限</span>
</div>
<el-tabs v-else v-model="activeTab" @tab-click="changeTab" type="border-card">
<el-tab-pane name="1" label="普通商户模式" v-if="pay_pattern_merchant['general_pay']==1">
<div class="content">
<div class="title_inner">
<span>微信支付设置</span>
<if condition="$authArr['doSetPaySet'] eq true">
<el-button type="primary" size="small" plain @click.native.prevent="saveSet(1)">保存</el-button>
</if>
</div>
<div class="content-list"
v-if="pay_pattern_merchant.close_pay_type && pay_pattern_merchant.close_pay_type == 1">
<label class="content-title">是否启用</label>
<div class="status" :class="paySet.wx_pay_state==1?'isOpen':'isClose'"
@click="openWXPay(1)"></div>
</div>
<div class="content-list">
<label class="content-title">公众号APPID</label>
<el-input placeholder="公众号APPID" type="text" size="small" v-model="paySet.wx_appid"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">APPSECRET</label>
<el-input placeholder="公众号APPSECRET" type="text" size="small" v-model="paySet.wx_appsecret"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">商户号</label>
<el-input placeholder="商户号" type="text" size="small" v-model="paySet.wx_mch_id"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">商户密钥</label>
<el-input placeholder="商户密钥" type="text" size="small" v-model="paySet.wx_secret_key"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">Api证书序列号</label>
<el-input placeholder="Api证书序列号" type="text" size="small" v-model="paySet.wx_serial_no"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">APICLIENT_CERT证书</label>
<div class="long">
<el-input placeholder="APICLIENT_CERT证书" type="text" size="small"
v-model="paySet.apiclient_cert"></el-input>
<div class="content-list-btn">
<el-upload
action="{:U('upload')}"
class="upload-demo"
:on-progress="uploadFileIng"
:on-success="uploadFileSuccess"
:on-error="uploadFileError"
:limit="3"
:show-file-list="false"
accept="pem"
@change.native.prevent="chooseFile(1)"
:file-list="fileList">
<el-button size="small">点击上传<i v-if="chooseFileType==1&&isUploading"
class="el-icon-loading el-icon--right"></i><i v-else
class="el-icon-upload el-icon--right"></i>
</el-button>
</el-upload>
</div>
</div>
</div>
<div class="content-list">
<label class="content-title">APICLIENT_KEY证书</label>
<div class="long">
<el-input placeholder="APICLIENT_KEY证书" type="text" size="small"
v-model="paySet.apiclient_key"></el-input>
<div class="content-list-btn">
<el-upload
action="{:U('upload')}"
class="upload-demo"
:on-progress="uploadFileIng"
:on-success="uploadFileSuccess"
:on-error="uploadFileError"
:limit="3"
:show-file-list="false"
accept="pem"
@change.native.prevent="chooseFile(2)"
:file-list="fileList">
<el-button size="small">点击上传<i v-if="chooseFileType==2&&isUploading"
class="el-icon-loading el-icon--right"></i><i v-else
class="el-icon-upload el-icon--right"></i>
</el-button>
</el-upload>
</div>
</div>
</div>
</div>
<div class="content">
<div class="title_inner">
<span>微信小程序支付设置</span>
<if condition="$authArr['doSetPaySet'] eq true">
<el-button type="primary" size="small" plain @click.native.prevent="saveSet(2)">保存</el-button>
</if>
</div>
<div class="content-list"
v-if="pay_pattern_merchant.close_pay_type && pay_pattern_merchant.close_pay_type == 1">
<label class="content-title">微信支付</label>
<div class="status" :class="paySet.xcx_pay_state==1?'isOpen':'isClose'"
@click="openXCXPay(1)"></div>
</div>
<div class="content-list"
v-if="pay_pattern_merchant.close_pay_type && pay_pattern_merchant.close_pay_type == 1">
<label class="content-title">余额支付</label>
<div class="status" :class="paySet.balance==1?'isOpen':'isClose'"
@click="openBalance"></div>
</div>
<div class="content-list">
<label class="content-title">小程序APPID</label>
<el-input placeholder="小程序APPID" type="text" size="small" v-model="paySet.xcx_appid"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">小程序商户号</label>
<el-input placeholder="小程序商户号" type="text" size="small" v-model="paySet.xcx_mer_id"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">Api证书序列号</label>
<el-input placeholder="小程序证书序列号" type="text" size="small" v-model="paySet.wx_xcx_serial_no"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">小程序商户密钥</label>
<el-input placeholder="小程序商户密钥" type="text" size="small" v-model="paySet.xcx_secret_key"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">XCX_APICLIENT_CERT证书</label>
<div class="long">
<el-input placeholder="XCX_APICLIENT_CERT证书" type="text" size="small"
v-model="paySet.xcx_apiclient_cert"></el-input>
<div class="content-list-btn">
<el-upload
action="{:U('upload')}"
class="upload-demo"
:on-progress="uploadFileIng"
:on-success="uploadFileSuccess"
:on-error="uploadFileError"
:limit="3"
:show-file-list="false"
accept="pem"
@change.native.prevent="chooseFile(3)"
:file-list="fileList">
<el-button size="small">点击上传<i v-if="chooseFileType==3&&isUploading"
class="el-icon-loading el-icon--right"></i><i v-else
class="el-icon-upload el-icon--right"></i>
</el-button>
</el-upload>
</div>
</div>
</div>
<div class="content-list">
<label class="content-title">XCX_APICLIENT_KEY证书</label>
<div class="long">
<el-input placeholder="XCX_APICLIENT_KEY证书" type="text" size="small"
v-model="paySet.xcx_apiclient_key"></el-input>
<div class="content-list-btn">
<el-upload
action="{:U('upload')}"
class="upload-demo"
:on-progress="uploadFileIng"
:on-success="uploadFileSuccess"
:on-error="uploadFileError"
:limit="3"
:show-file-list="false"
accept="pem"
@change.native.prevent="chooseFile(4)"
:file-list="fileList">
<el-button size="small">点击上传<i v-if="chooseFileType==4&&isUploading"
class="el-icon-loading el-icon--right"></i><i v-else
class="el-icon-upload el-icon--right"></i>
</el-button>
</el-upload>
</div>
</div>
</div>
</div>
<div class="content">
<div class="title_inner">
<span>支付宝支付设置</span>
<if condition="$authArr['doSetPaySet'] eq true">
<el-button type="primary" size="small" plain @click.native.prevent="saveSet(3)">保存</el-button>
</if>
</div>
<div class="content-list"
v-if="pay_pattern_merchant.close_pay_type && pay_pattern_merchant.close_pay_type == 1">
<label class="content-title">是否启用</label>
<div class="status" :class="paySet.al_pay_state==1?'isOpen':'isClose'"
@click="openALPay(1)"></div>
</div>
<div class="content-list">
<label class="content-title">支付宝应用ID</label>
<el-input placeholder="支付宝应用ID" type="text" size="small" v-model="paySet.alipay_appid"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">支付宝商户PID</label>
<el-input placeholder="支付宝商户PID" type="text" size="small" v-model="paySet.alipay_sellerid"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">支付宝公钥</label>
<el-input
type="textarea"
autosize
placeholder="支付宝公钥"
v-model="paySet.alipay_public_key">
</el-input>
</div>
<div class="content-list">
<label class="content-title">支付宝商户私钥</label>
<el-input
type="textarea"
autosize
placeholder="支付宝商户私钥"
v-model="paySet.alipay_private_key">
</el-input>
</div>
</div>
</el-tab-pane>
<el-tab-pane name="2" label="服务商模式" v-if="pay_pattern_merchant.service_pay==1">
<div class="content">
<div class="title_inner">
<span>微信支付设置</span>
<if condition="$authArr['doSetPaySet'] eq true">
<el-button type="primary" size="small" plain @click.native.prevent="saveSet(4)">保存</el-button>
</if>
</div>
<div class="content-list"
v-if="pay_pattern_merchant.close_pay_type && pay_pattern_merchant.close_pay_type == 1">
<label class="content-title">是否启用</label>
<div class="status" :class="paySet.wx_pay_state==2?'isOpen':'isClose'"
@click="openWXPay(2)"></div>
</div>
<div class="content-list">
<label class="content-title">公众号APPID</label>
<el-input placeholder="公众号APPID" type="text" size="small" v-model="paySet.wx_sub_appid"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">子商户号</label>
<el-input placeholder="子商户号" type="text" size="small" v-model="paySet.wx_sub_mchid"
clearable></el-input>
</div>
</div>
<div class="content">
<div class="title_inner">
<span>微信小程序支付设置</span>
<if condition="$authArr['doSetPaySet'] eq true">
<el-button type="primary" size="small" plain @click.native.prevent="saveSet(5)">保存</el-button>
</if>
</div>
<div class="content-list"
v-if="pay_pattern_merchant.close_pay_type && pay_pattern_merchant.close_pay_type == 1">
<label class="content-title">微信支付</label>
<div class="status" :class="paySet.xcx_pay_state==2?'isOpen':'isClose'"
@click="openXCXPay(2)"></div>
</div>
<div class="content-list"
v-if="pay_pattern_merchant.close_pay_type && pay_pattern_merchant.close_pay_type == 1">
<label class="content-title">余额支付</label>
<div class="status" :class="paySet.balance==1?'isOpen':'isClose'"
@click="openBalance"></div>
</div>
<div class="content-list">
<label class="content-title">小程序APPID</label>
<el-input placeholder="小程序APPID" type="text" size="small" v-model="paySet.xcx_sub_appid"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">小程序子商户号</label>
<el-input placeholder="小程序子商户号" type="text" size="small" v-model="paySet.xcx_sub_mchid"
clearable></el-input>
</div>
</div>
<div class="content">
<div class="title_inner">
<span>支付宝支付设置</span>
<if condition="$authArr['doSetPaySet'] eq true">
<el-button type="primary" size="small" plain @click.native.prevent="saveSet(6)">保存</el-button>
</if>
</div>
<div class="content-list"
v-if="pay_pattern_merchant.close_pay_type && pay_pattern_merchant.close_pay_type == 1">
<label class="content-title">是否启用</label>
<div class="status" :class="paySet.al_pay_state==2?'isOpen':'isClose'"
@click="openALPay(2)"></div>
</div>
<div class="content-list">
<label class="content-title">支付宝授权商户ID</label>
<div class="big">
<el-input placeholder="支付宝授权商户ID" type="text" size="small" v-model="paySet.alipay_sellerid"
clearable></el-input>
</div>
</div>
<div class="content-list">
<label class="content-title">支付宝TOKEN</label>
<div class="big">
<el-input placeholder="支付宝TOKEN" type="text" size="small" v-model="paySet.alipay_token"
clearable></el-input>
</div>
</div>
</div>
</el-tab-pane>
<el-tab-pane name="3" label="新大陆支付" v-if="entryStatus&&pay_pattern_merchant.new_continent_pay==1">
<template v-if="entry.status==1">
<div class="content">
<div class="title_inner">
<span>微信支付设置</span>
<if condition="$authArr['doSetPaySet']">
<el-button type="primary" size="small" plain @click.native.prevent="saveSet(7)">保存
</el-button>
</if>
</div>
<div class="content-list"
v-if="pay_pattern_merchant.close_pay_type && pay_pattern_merchant.close_pay_type == 1">
<label class="content-title">是否启用</label>
<div class="status" :class="paySet.wx_pay_state==3?'isOpen':'isClose'"
@click="openWXPay(3)"></div>
</div>
<div class="line">公众号支付参数配置</div>
<div class="content-list">
<label class="content-title">公众号APPID</label>
<el-input placeholder="公众号APPID" type="text" size="small" v-model="merchantInfo.wx_appid"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">APPSECRET</label>
<el-input placeholder="公众号APPSECRET" type="text" size="small" v-model="merchantInfo.wx_appkey"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">推荐关注的APPID</label>
<el-input placeholder="推荐关注的APPID" type="text" size="small"
v-model="merchantInfo.wx_publicappid"
clearable></el-input>
</div>
</div>
<div class="content">
<div class="title_inner">
<span>微信小程序支付设置</span>
<if condition="$authArr['doSetPaySet'] eq true">
<el-button type="primary" size="small" plain @click.native.prevent="saveSet(8)">保存
</el-button>
</if>
</div>
<div class="content-list"
v-if="pay_pattern_merchant.close_pay_type && pay_pattern_merchant.close_pay_type == 1">
<label class="content-title">微信支付</label>
<div class="status" :class="paySet.xcx_pay_state==3?'isOpen':'isClose'"
@click="openXCXPay(3)"></div>
</div>
<div class="content-list"
v-if="pay_pattern_merchant.close_pay_type && pay_pattern_merchant.close_pay_type == 1">
<label class="content-title">余额支付</label>
<div class="status" :class="paySet.balance==1?'isOpen':'isClose'"
@click="openBalance"></div>
</div>
<div class="content-list">
<label class="content-title">小程序APPID</label>
<el-input placeholder="小程序APPID" type="text" size="small" v-model="merchantInfo.xcc_appid"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">APPSECRET</label>
<el-input placeholder="小程序APPSECRET" type="text" size="small" v-model="merchantInfo.xcc_appkey"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">推荐关注的APPID</label>
<el-input placeholder="推荐关注的APPID" type="text" size="small"
v-model="merchantInfo.xcc_publicappid"
clearable></el-input>
</div>
</div>
<div class="content"
v-if="pay_pattern_merchant.close_pay_type && pay_pattern_merchant.close_pay_type == 1">
<div class="title_inner">
<span>支付宝支付设置</span>
<if condition="$authArr['doSetPaySet'] eq true">
<el-button type="primary" size="small" plain @click.native.prevent="saveSet(9)">保存
</el-button>
</if>
</div>
<div class="content-list" v-if="pay_pattern_merchant.close_pay_type">
<label class="content-title">是否启用</label>
<div class="status" :class="paySet.al_pay_state==3?'isOpen':'isClose'"
@click="openALPay(3)"></div>
</div>
</div>
</template>
<div class="content">
<template v-if="entry.entry_status==1">
<div class="title_inner">新大陆审核信息</div>
<template v-if="entry.merchant_type==1">
<div class="content-list">
<label class="content-title">状态</label>
<span v-if="entry.mer_status==1" class="examine success">审核通过</span>
<span v-else-if="entry.mer_status==2" class="examine error">审核驳回</span>
<span v-else-if="entry.mer_status==3" class="examine loading">人工审核中</span>
<span v-else class="examine">商户未提交</span>
</div>
<div class="content-list">
<label class="content-title">操作</label>
<div v-if="entry.mer_status==1">
<el-button type="primary" size="small" round plain @click="doApply(3)">查看</el-button>
<el-button size="small" round @click="applyChange">申请修改</el-button>
</div>
<div v-else-if="entry.mer_status==2||entry.mer_status==3">
<el-button type="primary" size="small" round plain @click="searchEntryApply">查询审核状态
</el-button>
<el-button type="primary" size="small" round plain @click="doApply(2)">修改</el-button>
<el-button type="primary" size="small" round plain @click="deleteEntry">删除</el-button>
</div>
<div v-else>
<el-button type="primary" size="small" round plain @click="doApply(2)">修改</el-button>
<el-button type="primary" size="small" round plain @click="deleteEntry">删除</el-button>
</div>
</div>
<div class="content-list" v-if="entry.mer_status==2">
<label class="content-title">驳回原因</label>
<span class="content-text" v-text="entry.hang_air"></span>
</div>
<template>
<div class="content-list">
<label class="content-title">商户名称</label>
<el-input placeholder="商户名称" type="text" size="small" v-model="entry.merc_nm"
clearable disabled></el-input>
</div>
<div class="content-list">
<label class="content-title">经营类目</label>
<el-input placeholder="经营类目" type="text" size="small" v-model="entry.mcc_cd"
clearable disabled></el-input>
</div>
<div class="content-list">
<label class="content-title">地址</label>
<el-input placeholder="地址" type="text" size="small" v-model="entry.citys"
clearable disabled></el-input>
</div>
<div class="content-list">
<label class="content-title">联系人</label>
<el-input placeholder="联系人" type="text" size="small" v-model="entry.stoe_cnt_nm"
clearable disabled></el-input>
</div>
<div class="content-list">
<label class="content-title">联系人电话</label>
<el-input placeholder="联系人电话" type="text" size="small" v-model="entry.stoe_cnt_tel"
clearable disabled></el-input>
</div>
<div class="content-list">
<label class="content-title">法人</label>
<el-input placeholder="法人" type="text" size="small" v-model="entry.crp_nm"
clearable disabled></el-input>
</div>
<div class="content-list">
<label class="content-title">结算人</label>
<el-input placeholder="结算人" type="text" size="small" v-model="entry.bnk_acnm"
clearable disabled></el-input>
</div>
</template>
</template>
<template v-else>
<div class="title_inner ">
<span>操作</span>
<el-button type="primary" size="small" plain @click.native.prevent="saveSet(10)">保存
</el-button>
</div>
<div class="content-list">
<label class="content-title">商户名称</label>
<el-input placeholder="商户名称" type="text" size="small" v-model="entry.merc_nm"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">商户号</label>
<el-input placeholder="商户号" type="text" size="small" v-model="entry.merc_id"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">门店号</label>
<el-input placeholder="门店号" type="text" size="small" v-model="entry.stoe_id"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">设备号</label>
<el-input placeholder="设备号" type="text" size="small" v-model="entry.trm_no"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">支付秘钥</label>
<el-input placeholder="支付秘钥" type="text" size="small" v-model="entry.key"
clearable></el-input>
</div>
</template>
</template>
<template v-else>
<div class="title_inner">新大陆审核信息</div>
<div class="content-list">
<label class="content-title">说明</label>
<span class="content-text">新大陆商户进件能使商户使用支付更快捷更方便,请确认合伙人已经配置好新大陆服务商</span>
</div>
<div class="content-list">
<label class="content-title">操作</label>
<el-button type="primary" size="small" plain @click="doApply(1)">立即去申请</el-button>
<el-button type="primary" size="small" plain @click="dialogFormVisible = true">已申请,直接填写配置参数
</el-button>
</div>
</template>
</div>
</el-tab-pane>
<el-tab-pane name="4" label="云闪付模式" v-if="pay_pattern_merchant.cloud_pay==1">
<div class="content">
<div class="title_inner">
<span>云闪付支付配置</span>
<el-button type="primary" size="small" @click.native.prevent="saveSet(11)">保存</el-button>
</div>
<div class="content-list">
<label class="content-title">商户号</label>
<el-input placeholder="商户号" type="text" size="small" v-model="paySet.cloud_mer_id"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">小程序appId配置</label>
<el-input placeholder="小程序appId" type="text" size="small" v-model="paySet.cloud_xcx_appid"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">公众号appId配置</label>
<el-input placeholder="公众号appId" type="text" size="small" v-model="paySet.cloud_sub_appid"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">微信是否启用</label>
<el-tooltip :content="paySet.wx_pay_state==4?'开启':'关闭'" placement="top">
<div class="status" :class="paySet.wx_pay_state==4?'isOpen':'isClose'"
@click="openWXPay(4)"></div>
</el-tooltip>
</div>
<div class="content-list">
<label class="content-title">小程序是否启用</label>
<el-tooltip :content="paySet.xcx_pay_state==4?'开启':'关闭'" placement="top">
<div class="status" :class="paySet.xcx_pay_state==4?'isOpen':'isClose'"
@click="openXCXPay(4)"></div>
</el-tooltip>
</div>
<div class="content-list">
<label class="content-title">余额支付</label>
<el-tooltip :content="paySet.balance==1?'开启':'关闭'" placement="top">
<div class="status" :class="paySet.balance==1?'isOpen':'isClose'"
@click="openBalance"></div>
</el-tooltip>
</div>
<div class="content-list">
<label class="content-title">支付宝是否启用</label>
<el-tooltip :content="paySet.al_pay_state==4?'开启':'关闭'" placement="top">
<div class="status" :class="paySet.al_pay_state==4?'isOpen':'isClose'"
@click="openALPay(4)"></div>
</el-tooltip>
</div>
</div>
</el-tab-pane>
<!-- 钱客云支付配置 -->
<el-tab-pane name="7" label="钱客云支付模式" v-if="pay_pattern_merchant.qian_ke_pay == 1">
<div class="content">
<div class="title_inner">
<span>钱客云支付配置</span>
<el-button type="primary" size="small" @click.native.prevent="saveSet(14)">保存</el-button>
</div>
<div class="content-list">
<label class="content-title">钱客云商户ID</label>
<el-input placeholder="钱客云商户ID" type="text" size="small" v-model="paySet.qian_ke_mid"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">钱客云商户密钥</label>
<el-input placeholder="钱客云商户密钥" type="text" size="small" v-model="paySet.qian_ke_key"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">钱客云小程序appId配置</label>
<el-input placeholder="商户小程序appId配置" type="text" size="small" v-model="paySet.qian_ke_app_id"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">钱客云公众号appId配置</label>
<el-input placeholder="钱客云公众号appId配置" type="text" size="small" v-model="paySet.qian_ke_public_appid"
clearable></el-input>
</div>
<div class="content-list">
<label class="content-title">微信是否启用</label>
<el-tooltip :content="paySet.wx_pay_state==1?'开启':'关闭'" placement="top">
<div class="status" :class="paySet.wx_pay_state==7?'isOpen':'isClose'"
@click="openWXPay(7)"></div>
</el-tooltip>
</div>
<div class="content-list">
<label class="content-title">小程序是否启用</label>
<el-tooltip :content="paySet.xcx_pay_state==7?'开启':'关闭'" placement="top">
<div class="status" :class="paySet.xcx_pay_state==7?'isOpen':'isClose'"
@click="openXCXPay(7)"></div>
</el-tooltip>
</div>
<div class="content-list">
<label class="content-title">余额支付</label>
<el-tooltip :content="paySet.balance==7?'开启':'关闭'" placement="top">
<div class="status" :class="paySet.balance==1?'isOpen':'isClose'"
@click="openBalance"></div>
</el-tooltip>
</div>
<div class="content-list">
<label class="content-title">支付宝是否启用</label>
<el-tooltip :content="paySet.al_pay_state==7?'开启':'关闭'" placement="top">
<div class="status" :class="paySet.al_pay_state==7?'isOpen':'isClose'"
@click="openALPay(7)"></div>
</el-tooltip>
</div>
</div>
</el-tab-pane>
</el-tabs>
<el-dialog title="配置参数(新大陆)" :modal-append-to-body="false" :visible.sync="dialogFormVisible" width="600px">
<el-form :model="form" :rules="rules" ref="form">
<el-form-item label="商户名称" :label-width="formLabelWidth" prop="merc_nm">
<el-input v-model="form.merc_nm" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="商户号" :label-width="formLabelWidth" prop="merc_id">
<el-input v-model="form.merc_id" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="门店号" :label-width="formLabelWidth" prop="stoe_id">
<el-input v-model="form.stoe_id" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="设备号" :label-width="formLabelWidth" prop="trm_no">
<el-input v-model="form.trm_no" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="支付秘钥" :label-width="formLabelWidth" prop="key">
<el-input v-model="form.key" autocomplete="off"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false">取 消</el-button>
<el-button type="primary" @click="customSettings('form')">确 定</el-button>
</div>
</el-dialog>
</div>
<script>
var entry_status = "{$entry_status}";
var entry = {$entry};
var merchantInfo = {$merchantInfo};
var paySetApp = new Vue({
el: '#paySetApp',
data: function () {
return {
activeTab: '1',
entryStatus: parseInt(entry_status) == 2 ? true : false,
paySet: {},
entry: entry,
fileList: [],
chooseFileType: 0,
showChangeWXPayData: false,
merchantInfo: merchantInfo,
isUploading: false,
pay_pattern_merchant: [], // 商户支付权限
pay_jurisdiction: false,
dialogFormVisible: false,
form: {
merc_nm: '',
merc_id: '',
stoe_id: '',
trm_no: '',
key: '',
},
formLabelWidth: '140px',
rules: {
merc_nm: [
{required: true, message: '请输入商户名称', trigger: 'blur'}
],
merc_id: [
{required: true, message: '请输入新大陆商户号', trigger: 'blur'}
],
stoe_id: [
{required: true, message: '请输入新大陆门店号', trigger: 'blur'}
],
trm_no: [
{required: true, message: '请输入新大陆设备号', trigger: 'blur'}
],
key: [
{required: true, message: '请选择商户支付秘钥', trigger: 'blur'}
],
},
merchant_id: "{$merchant_id}",
open_user: "{$open_user}",//1商户 2代理商 3合伙人
cloudAppId: "",
}
},
methods: {
openBalance: function () {
this.paySet.balance = this.paySet.balance == 1 ? 2 : 1;
},
openWXPay: function (type) {
console.log('openWXPay');
this.paySet.wx_pay_state = this.paySet.wx_pay_state == type ? 0 : type;
},
openALPay: function (type) {
this.paySet.al_pay_state = this.paySet.al_pay_state == type ? 0 : type;
},
openXCXPay: function (type) {
this.paySet.xcx_pay_state = this.paySet.xcx_pay_state == type ? 0 : type;
},
changeTab: function (val) {
console.log(val)
},
uploadFileIng: function (event, file, fileList) {
this.isUploading = true;
this.$loading({
lock: true,
text: '上传中,请等待',
spinner: 'el-icon-loading',
background: 'rgba(255, 255, 255, 0.7)'
});
},
uploadFileSuccess: function (response, file, fileList) {
this.$loading().close();
this.isUploading = false;
if (response.status == 1) {
this.$message({
type: 'success',
message: '上传成功'
});
switch (this.chooseFileType) {
case 1:
this.paySet.apiclient_cert = response.path;
break;
case 2:
this.paySet.apiclient_key = response.path;
break;
case 3:
this.paySet.xcx_apiclient_cert = response.path;
break;
case 4:
this.paySet.xcx_apiclient_key = response.path;
break;
}
} else {
this.$message({
message: '上传失败,请重试',
type: 'error',
duration: 1500
});
}
},
uploadFileError: function (event, file, fileList) {
console.log(event, file, fileList)
this.isUploading = false;
this.$loading().close();
this.$message({
message: '上传失败,请重试',
type: 'error',
duration: 1500
});
},
chooseFile: function (type) {
this.chooseFileType = type;
},
//保存支付设置
saveSet: function (type) {
var that = this;
var data = {};
switch (type) {
case 1:
//普通微信
data = {
wx_pay_state: this.paySet.wx_pay_state,
wx_appid: this.paySet.wx_appid,
wx_appsecret: this.paySet.wx_appsecret,
wx_mch_id: this.paySet.wx_mch_id,
wx_secret_key: this.paySet.wx_secret_key,
wx_serial_no: this.paySet.wx_serial_no,
apiclient_cert: this.paySet.apiclient_cert,
apiclient_key: this.paySet.apiclient_key,
type: 1
};
break;
case 2:
//普通小程序
data = {
xcx_pay_state: this.paySet.xcx_pay_state,
xcx_appid: this.paySet.xcx_appid,
xcx_mer_id: this.paySet.xcx_mer_id,
wx_xcx_serial_no: this.paySet.wx_xcx_serial_no,
xcx_secret_key: this.paySet.xcx_secret_key,
xcx_apiclient_cert: this.paySet.xcx_apiclient_cert,
xcx_apiclient_key: this.paySet.xcx_apiclient_key,
balance: this.paySet.balance,
type: 2
};
break;
case 3:
//普通支付宝
data = {
al_pay_state: this.paySet.al_pay_state,
alipay_appid: this.paySet.alipay_appid,
alipay_sellerid: this.paySet.alipay_sellerid,
alipay_private_key: this.paySet.alipay_private_key,
alipay_public_key: this.paySet.alipay_public_key,
type: 3
};
break;
case 4:
//服务商微信
data = {
wx_pay_state: this.paySet.wx_pay_state,
wx_sub_appid: this.paySet.wx_sub_appid,
wx_sub_mchid: this.paySet.wx_sub_mchid,
type: 4
};
break;
case 5:
//服务商小程序
data = {
xcx_pay_state: this.paySet.xcx_pay_state,
xcx_sub_appid: this.paySet.xcx_sub_appid,
xcx_sub_mchid: this.paySet.xcx_sub_mchid,
balance: this.paySet.balance,
type: 5
};
break;
case 6:
//服务商支付宝
data = {
al_pay_state: this.paySet.al_pay_state,
alipay_sellerid: this.paySet.alipay_sellerid,
alipay_token: this.paySet.alipay_token,
type: 6
};
break;
case 7:
//新大陆微信
data = {
wx_pay_state: this.paySet.wx_pay_state,
wx_appid: this.merchantInfo.wx_appid,
wx_appkey: this.merchantInfo.wx_appkey,
wx_publicappid: this.merchantInfo.wx_publicappid,
type: 7
};
break;
case 8:
//新大陆小程序
data = {
xcx_pay_state: this.paySet.xcx_pay_state,
xcc_appid: this.merchantInfo.xcc_appid,
xcc_appkey: this.merchantInfo.xcc_appkey,
xcc_publicappid: this.merchantInfo.xcc_publicappid,
balance: this.paySet.balance,
type: 8
};
break;
case 9:
//新大陆支付宝
data = {
al_pay_state: this.paySet.al_pay_state,
type: 9
};
break;
case 10:
//新大陆支付宝
data = {
merc_nm: this.entry.merc_nm,
merc_id: this.entry.merc_id,
stoe_id: this.entry.stoe_id,
trm_no: this.entry.trm_no,
key: this.entry.key,
type: 10
};
break;
case 11:
data = {
wx_pay_state: this.paySet.wx_pay_state,
al_pay_state: this.paySet.al_pay_state,
xcx_pay_state: this.paySet.xcx_pay_state,
cloud_mer_id: this.paySet.cloud_mer_id,
cloud_xcx_appid: this.paySet.cloud_xcx_appid,
cloud_sub_appid: this.paySet.cloud_sub_appid,
balance: this.paySet.balance,
type: 11
};
break;
case 12:
data = {
wx_pay_state: this.paySet.wx_pay_state,
al_pay_state: this.paySet.al_pay_state,
xcx_pay_state: this.paySet.xcx_pay_state,
happy_pay_num: this.paySet.happy_pay_num,
happy_pay_appid: this.paySet.happy_pay_appid,
happy_pay_app_secret: this.paySet.happy_pay_app_secret,
balance: this.paySet.balance,
type: 12
}
break;
case 13:
data = {
wx_pay_state: this.paySet.wx_pay_state,
al_pay_state: this.paySet.al_pay_state,
xcx_pay_state: this.paySet.xcx_pay_state,
lakala_pay_num: this.paySet.lakala_pay_num,
lakala_pay_appid: this.paySet.lakala_pay_appid,
balance: this.paySet.balance,
type: 13
}
break;
case 14:
data = {
wx_pay_state: this.paySet.wx_pay_state,
al_pay_state: this.paySet.al_pay_state,
xcx_pay_state: this.paySet.xcx_pay_state,
qian_ke_mid: this.paySet.qian_ke_mid,
qian_ke_key: this.paySet.qian_ke_key,
qian_ke_app_id: this.paySet.qian_ke_app_id,
qian_ke_public_appid: this.paySet.qian_ke_public_appid,
balance: this.paySet.balance,
type: 14
}
break;
default:
this.$message({
type: 'warning',
message: '提交类型不正确'
});
return;
}
data.merchant_id = this.merchant_id;
$.post("{:U('doSetPaySet')}", data, function (res) {
if (res.status == 1) {
that.$message({
type: 'success',
message: res.msg
});
} else {
that.$message({
type: 'error',
message: res.msg
});
}
})
},
//去进件或审核未通过,修改数据
doApply: function (type) {
top.layer.open({
type: 2,
content: "{:U('merchantEntry')}?merchant_id=" + this.merchant_id + "&open_type=" + type,
title: type == 1 ? "新大陆商户进件" : (type == 2 ? "新大陆商户资料修改" : "查看商户进件资料"),
scrollbar: false,
area: ["calc(100% - 160px)", "calc(100% - 65px)"],
shade: 0,
offset: 'rb',
resize: false,
move: false,
})
},
//保存新大陆自定义支付
customSettings: function (form) {
var that = this;
var info = that.form;
info.merchant_id = this.merchant_id;
that.$refs[form].validate((valid) => {
if (valid) {
$.ajax({
url: "{:U('customSettings')}",
type: "post",
data: info,
success: function (res) {
if (res.status == 1) {
that.$message({
type: 'success',
message: res.msg,
});
that.dialogFormVisible = false;
if (that.user_type == 1) {
MenuApp.refreshWindow();
} else {
location.reload();
}
} else {
that.$message({
type: 'error',
message: res.msg
});
}
}
})
} else {
console.log('error submit!!');
return false;
}
});
},
//查询进件审核状态
searchEntryApply: function () {
var that = this;
$.ajax({
url: "{:U('searchEntryApply')}",
type: "post",
data: {
merchant_id: that.merchant_id,
},
success: function (res) {
if (res.status == 1) {
that.entry.mer_status = res.mer_status;
if (res.mer_status == 2) {
that.entry.hang_air = res.mer_text;
}
that.$message({
type: 'success',
message: res.msg
});
} else {
that.$message({
type: 'error',
message: res.msg
});
}
}
})
},
//审核已通过,申请修改新大陆支付
applyChange: function () {
var text = '申请修改新大陆支付配置参数后,请分别开启普通商户或服务商支付的各个支付方式,否则将无法进行支付,确认关闭?';
var that = this;
this.$confirm(text, '温馨提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning '
}).then(() => {
$.ajax({
url: "{:U('applyChange')}",
type: 'post',
dataType: 'json',
data: {
merchant_id: that.merchant_id,
},
success: function (res) {
if (res.status == 1) {
console.log('applyChange');
that.paySet.wx_pay_state = 0;
that.paySet.al_pay_state = 0;
that.paySet.xcx_pay_state = 0;
that.$message({
type: 'success',
message: res.msg,
duration: 1000,
onClose: function () {
that.doApply(2);
}
});
} else {
that.$message({
type: 'error',
message: res.msg
});
}
}
})
}).catch(() => {
});
},
//删除多余数据
deleteEntry: function () {
var that = this;
this.$confirm('请谨慎操作,确定要删除商户新大陆进件配置吗?', '温馨提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning '
}).then(() => {
$.ajax({
url: "{:U('deleteEntry')}",
type: 'post',
dataType: 'json',
data: {
merchant_id: that.merchant_id,
},
success: function (res) {
if (res.status == 1) {
that.$message({
type: 'success',
message: res.msg
});
} else {
that.$message({
type: 'error',
message: res.msg
});
}
}
})
}).catch(() => {
});
},
submitAppId: function (val) {
const that = this;
that.loading = true;
$.ajax({
url: "{:U('submitAppId')}",
type: 'post',
data: {
appId: val
},
dataType: 'json',
success: function (res) {
if (res.code == 1) {
that.$message.success(res.msg);
} else {
that.$message.success(res.msg);
}
that.loading = false;
}
})
}
},
created: function () {
var that = this;
$.ajax({
url: "{:U('get_pay_pattern')}",
type: "post",
data: {
merchant_id: that.merchant_id,
},
success: function (res) {
if (res.general_pay == 1) {
that.activeTab = '1';
} else if (res.service_pay == 1) {
that.activeTab = '2';
} else if (res.new_continent_pay == 1) {
that.activeTab = '3';
} else if (res.cloud_pay == 1) {
that.activeTab = '4';
} else {
that.pay_jurisdiction = true;
that.activeTab = '0';
}
// console.log(that.pay_jurisdiction);
that.pay_pattern_merchant = res;
}
})
},
mounted() {
this.paySet = {$pay};
console.warn(this.paySet)
},
watch: {
'paySet.wx_pay_state': {
handler(n, o) {
console.log(n, o);
},
immediate: true,
},
}
})
</script>