2 changed files with 973 additions and 67 deletions
@ -0,0 +1,484 @@ |
|||
<template> |
|||
<div class="config-offline-wrap"> |
|||
<el-form> |
|||
<GuipDialog :dialogVisible="addPayDialogVisible" :title="addPayTitle" :show-close-button="false" |
|||
:show-cancel-button="showCancelButton" @confirm="addPayment" @cancel="handleCancel" |
|||
@close="handleClose" @dialogVisibleChange="dialogVisibleChange" :confirmText="addPayconfirmText" width="700px"> |
|||
<!-- 自定义内容 --> |
|||
<div> |
|||
<!-- 淘宝 --> |
|||
<div class="taobaopay" v-if="addPayType==payTypeTaoBao"> |
|||
<div class="beforeNotice"> |
|||
<h4 class="flex"> <img src="@/assets/site/siteSemInfo_Icon.svg" alt=""> 前期准备事项</h4> |
|||
<p class="mt12 flex"> |
|||
请确保使用要添加的淘宝主账号登录并授权 |
|||
</p> |
|||
<p class="mt10 flex"> |
|||
如未购买"快乐帮手"服务或已过期,会跳转到购买服务页面 |
|||
</p> |
|||
</div> |
|||
</div> |
|||
|
|||
<!-- 微信 --> |
|||
<div class="weixinpay" v-else-if="addPayType==payTypeWeixin"> |
|||
<div class="beforeNotice"> |
|||
<h4 class="flex"> <img src="@/assets/site/siteSemInfo_Icon.svg" alt=""> 前期准备事项</h4> |
|||
<p class="mt12">1.申请公司微信支付。<a href="https://zhic.yuque.com/staff-chwecz/xhk8nt/ggkqm3" target="_blank"><img src="@/assets/site/form_qua_ic.svg" alt="">常见问题</a> </p> |
|||
<p class="mt12 flex"> |
|||
2.前往<a href="https://pay.weixin.qq.com/" |
|||
class="flex" target="_blank"> |
|||
<img src="@/assets/site/form_linkActive.svg" alt="">微信商户平台</a> |
|||
</p> |
|||
<p> 在产品中心开通Native支付,如需使用微信版,开通JSAPI支付。</p> |
|||
</div> |
|||
<el-form> |
|||
<GuipFormItem column="column" class="mb24" label="1. 公司简称"> |
|||
<span class="desc" slot="formRight">请输入公司简称,便于您区分账号所属公司</span> |
|||
<GuipInput slot="formDom" ref="GuipInput" column="column" v-model="company_short_name" prop="company_short_name" placeholder="6字以内"> |
|||
</GuipInput> |
|||
</GuipFormItem> |
|||
<GuipFormItem column="column" class="mb24" label="2. 支付商户号(mch_id)"> |
|||
<span class="desc" slot="formRight"><a href='https://pay.weixin.qq.com/' target='_blank'>微信支付平台</a>>账户中心>商户信息>微信支付商户号</span> |
|||
<GuipInput slot="formDom" ref="GuipInput" column="column" v-model="mch_id" prop="mch_id" placeholder="请输入商户号"> |
|||
</GuipInput> |
|||
</GuipFormItem> |
|||
<GuipFormItem column="column" class="mb24" label="3. 微信支付秘钥"> |
|||
<span class="desc" slot="formRight"><a href='https://pay.weixin.qq.com/' target='_blank'>微信支付平台</a>>账号中心>账户设置>API安全>APIv2密钥;<p class="mt10">注意,支付密钥不能设置为纯数字</p></span> |
|||
<GuipInput slot="formDom" ref="GuipInput" column="column" v-model="apiv2" prop="apiv2" placeholder="请输入微信支付秘钥"> |
|||
</GuipInput> |
|||
</GuipFormItem> |
|||
<GuipFormItem column="column" class="mb24" label="4. 公众号APPID"> |
|||
<span class="desc" slot="formRight"><a href='https://mp.weixin.qq.com/' target='_blank'>公众平台</a>>设置与开发>基本配置>公众号开发信息>开发者ID(APPID)</span> |
|||
<GuipInput slot="formDom" ref="GuipInput" column="column" v-model="appid" prop="appid" placeholder="请输入公众号APPID"> |
|||
</GuipInput> |
|||
</GuipFormItem> |
|||
</el-form> |
|||
</div> |
|||
|
|||
<!-- 支付宝 --> |
|||
<div class="alipay" v-if="addPayType==payTypeAlipay"> |
|||
<el-tabs v-model="isPayPublic" @tab-click="handleClick"> |
|||
<el-tab-pane label="我有公司,使用本公司支付宝" name="0"> |
|||
<el-form> |
|||
<GuipFormItem column="column" class="mb24" label="1. 公司简称"> |
|||
<span class="desc" slot="formRight">请输入公司简称,便于您区分账号所属公司</span> |
|||
<GuipInput slot="formDom" ref="GuipInput" column="column" v-model="company_short_name" prop="company_short_name" placeholder="6字以内"></GuipInput> |
|||
</GuipFormItem> |
|||
<GuipFormItem column="column" class="mb24" label="2. 公司支付宝账号"> |
|||
<span class="desc" slot="formRight">仅支持已签约 “当面付” 功能的公司支付宝</span> |
|||
<GuipInput slot="formDom" ref="GuipInput" column="column" v-model="alipay_account" prop="mch_id" placeholder="请输入公司支付宝账号"></GuipInput> |
|||
</GuipFormItem> |
|||
</el-form> |
|||
</el-tab-pane> |
|||
<el-tab-pane label="我无公司,申请平台代收款" name="1" v-if="isExistSelfSupplys===false"> |
|||
<div class="beforeNotice"> |
|||
<h4 class="flex"> <img src="@/assets/site/siteSemInfo_Icon.svg" alt=""> 须知</h4> |
|||
<p class="mt12">使用平台“支付宝支付”,平台收取5%的服务费</p> |
|||
<p class="mt12 flex">使用平台“支付宝支付”,真实姓名必须和支付宝账号实名认证姓名统一</p> |
|||
</div> |
|||
<el-form> |
|||
<GuipFormItem column="column" class="mb24" label="1. 收款人姓名"> |
|||
<span class="desc" slot="formRight">请输入支付宝绑定的银行卡的持卡人姓名</span> |
|||
<GuipInput slot="formDom" ref="GuipInput" column="column" v-model="receive_payment_name" prop="company_short_name" placeholder="6字以内"></GuipInput> |
|||
</GuipFormItem> |
|||
<GuipFormItem column="column" class="mb24" label="2. 收款支付宝账号"> |
|||
<span class="desc" slot="formRight">请输入有效账号</span> |
|||
<GuipInput slot="formDom" ref="GuipInput" column="column" v-model="receive_payment_account" prop="mch_id" placeholder="请输入有效收款支付宝账号"></GuipInput> |
|||
</GuipFormItem> |
|||
</el-form> |
|||
</el-tab-pane> |
|||
</el-tabs> |
|||
</div> |
|||
<!-- 拼多多 --> |
|||
<div class="pddpay" v-if="addPayType==payTypePdd"> |
|||
<div class="beforeNotice"> |
|||
<h4 class="flex"> <img src="@/assets/site/siteSemInfo_Icon.svg" alt=""> 前期准备事项</h4> |
|||
<p class="mt12 flex">主账号登录并授权。<a :href="pddAuthUrl" class="flex" target="_blank"><img src="@/assets/site/form_linkActive.svg" alt="">去授权</a></p> |
|||
<p class="mt12 flex gray">如未购买"快乐帮手"服务或已过期,会跳转到购买服务页面。</p> |
|||
<p class="mt5 flex gray">授权成功后会进入"快乐帮手"烽火台,复制右上角名称填入下方保存。</p> |
|||
</div> |
|||
<el-form> |
|||
<GuipFormItem column="column" class="mb24" label="账号名称"> |
|||
<!-- <span class="desc" slot="formRight">账号名称</span> --> |
|||
<GuipInput slot="formDom" ref="GuipInput" column="column" v-model="pdd_shop_name" prop="company_short_name" placeholder="请输入账号名称"></GuipInput> |
|||
</GuipFormItem> |
|||
</el-form> |
|||
</div> |
|||
<!-- 京东 --> |
|||
<div class="jdpay" v-if="addPayType==payTypeJingdong"> |
|||
<div class="beforeNotice"> |
|||
<h4 class="flex"> <img src="@/assets/site/siteSemInfo_Icon.svg" alt=""> 前期准备事项</h4> |
|||
<p class="mt12 flex">请确保使用要添加的京东主账号登录并授权</p> |
|||
<p class="mt10 flex">如未购买"快乐论文检测服务"服务或已过期,会跳转到购买服务页面</p> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</GuipDialog> |
|||
</el-form> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import GuipInput from '@/components/GuipInput.vue'; |
|||
import GuipFormItem from '@/components/GuipFormItem.vue'; |
|||
import GuipDialog from '@/components/GuipDialog.vue'; |
|||
|
|||
// 收款方式 |
|||
const PAY_TYPE_TAOBAO = 0; // 淘宝 |
|||
const PAY_TYPE_WEIXIN = 2; // 微信 |
|||
const PAY_TYPE_ALIPAY = 3; // 支付宝 |
|||
const PAY_TYPE_JINGDONG = 4; // 京东 |
|||
const PAY_TYPE_PDD = 11; // 拼多多 |
|||
|
|||
export default { |
|||
// 站点设置 |
|||
name: 'addPay', |
|||
props: { |
|||
// 收款方式 |
|||
payType: { |
|||
type: [String, Number], |
|||
default: '-1', |
|||
// validator: value => ['success', 'warning', 'error', 'info'].includes(value) |
|||
}, |
|||
// 可见性 |
|||
visible: { |
|||
type: Boolean, |
|||
default: false |
|||
}, |
|||
authToken: { |
|||
type: String, |
|||
default: '' |
|||
}, |
|||
}, |
|||
components: { |
|||
GuipInput, |
|||
GuipFormItem, |
|||
GuipDialog, |
|||
}, |
|||
data() { |
|||
return { |
|||
// 收款方式 |
|||
payTypeTaoBao: PAY_TYPE_TAOBAO, |
|||
payTypeWeixin: PAY_TYPE_WEIXIN, |
|||
payTypeAlipay: PAY_TYPE_ALIPAY, |
|||
payTypeJingdong: PAY_TYPE_JINGDONG, |
|||
payTypePdd: PAY_TYPE_PDD, |
|||
|
|||
paytypeDesc: { |
|||
payTypeTaoBao: '淘宝/天猫店铺', |
|||
payTypeWeixin: '微信收款', |
|||
payTypeAlipay: '支付宝收款', |
|||
payTypeJingdong: '京东店铺', |
|||
payTypePdd: '拼多多店铺' |
|||
}, |
|||
|
|||
token: '', |
|||
// 添加收款方式类型 |
|||
addPayType: -1, |
|||
|
|||
// 添加收款方式弹框 |
|||
addPayDialogVisible: false, |
|||
// 控制是否显示取消按钮 |
|||
showCancelButton: true, |
|||
// 控制是否显示关闭按钮 |
|||
showCloseButton: true, |
|||
// 添加收款方式弹框标题 |
|||
addPayTitle: '', |
|||
|
|||
// 添加收款方式确认按钮文本 |
|||
addPayconfirmText: '确定', |
|||
// 淘宝授权url |
|||
taobaoAuthUrl: '', |
|||
// 公司简称 |
|||
company_short_name: '', |
|||
// 商户号 |
|||
mch_id: '', |
|||
// 微信支付秘钥 |
|||
apiv2: '', |
|||
// 公众号APPID |
|||
appid: '', |
|||
// 支付宝账号 |
|||
alipay_account: '', |
|||
// 是否存在自供货 存在自供货 则不支持支付宝代收款 |
|||
isExistSelfSupplys: false, |
|||
// 代收款 收款账号 |
|||
receive_payment_account: '', |
|||
// 代收款 收款人姓名 |
|||
receive_payment_name: '', |
|||
// 是否是平台支付 0平台支付 1自营支付 |
|||
isPayPublic: '0', |
|||
// 拼多多授权url |
|||
pddAuthUrl: '', |
|||
// 拼多多店铺名称 |
|||
pdd_shop_name: '', |
|||
// 京东授权url |
|||
jdAuthUrl: '', |
|||
|
|||
// localSiteInfo: { ...this.siteInfo } |
|||
} |
|||
}, |
|||
computed: { |
|||
// ...mapState(['pageTitle']) // 从Vuex映射showSidebar状态到组件的计算属性中 |
|||
}, |
|||
mounted() { |
|||
// store.commit('SET_PAGETITLE', '营销推广'); |
|||
this.getAddablePays() |
|||
}, |
|||
methods: { |
|||
updateDialogByPayType() { |
|||
if (this.addPayType > -1) { |
|||
// 设置标题 |
|||
let typeDesc = ''; |
|||
// 根据addPayType找到对应的描述 |
|||
for (let key in this.paytypeDesc) { |
|||
if (this[key] === this.addPayType) { |
|||
typeDesc = this.paytypeDesc[key]; |
|||
break; |
|||
} |
|||
} |
|||
this.addPayTitle = '添加' + typeDesc; |
|||
// 设置确认按钮文本 |
|||
if (this.addPayType === this.payTypeTaoBao || this.addPayType === this.payTypeJingdong) { |
|||
this.addPayconfirmText = '去授权'; |
|||
} else { |
|||
this.addPayconfirmText = '确定'; |
|||
} |
|||
} |
|||
}, |
|||
resetForm() { |
|||
// 重置所有表单字段 |
|||
this.company_short_name = ''; |
|||
this.mch_id = ''; |
|||
this.apiv2 = ''; |
|||
this.appid = ''; |
|||
this.alipay_account = ''; |
|||
this.receive_payment_account = ''; |
|||
this.receive_payment_name = ''; |
|||
this.pdd_shop_name = ''; |
|||
this.isPayPublic = '0'; // 重置支付宝标签页 |
|||
}, |
|||
// 获取可添加的收款方式 |
|||
getAddablePays() { |
|||
this.$http('POST', '/agentnew/ajax_get_addable_pays', { |
|||
// 参数名: 参数值, |
|||
},{ |
|||
headers:{ |
|||
'Auth': this.token |
|||
} |
|||
}).then(response => { |
|||
this.tableLoading = false |
|||
this.$nextTick(() => { |
|||
if(response.data[PAY_TYPE_TAOBAO]) { |
|||
this.taobaoAuthUrl = response.data[PAY_TYPE_TAOBAO].authurl |
|||
} |
|||
|
|||
if (response.data[PAY_TYPE_ALIPAY]) { |
|||
this.isExistSelfSupplys = response.data[PAY_TYPE_ALIPAY].is_exist_self_supplys |
|||
} |
|||
|
|||
if (response.data[PAY_TYPE_PDD]) { |
|||
this.pddAuthUrl = response.data[PAY_TYPE_PDD].authurl |
|||
} |
|||
|
|||
if (response.data[PAY_TYPE_JINGDONG]) { |
|||
this.jdAuthUrl = response.data[PAY_TYPE_JINGDONG].authurl |
|||
} |
|||
|
|||
}) |
|||
}).catch(error => { |
|||
console.error(error, 'error') |
|||
}) |
|||
}, |
|||
// 弹框相关方法---start |
|||
showAddPaymentMethodDialog(type, type_desc) { |
|||
console.log(type, 'type'); |
|||
this.addPayDialogVisible = true; |
|||
this.addPayTitle = '添加' + type_desc; |
|||
this.addPayType = type; |
|||
if (type == PAY_TYPE_TAOBAO || type == PAY_TYPE_JINGDONG) { |
|||
this.addPayconfirmText = '去授权'; |
|||
} |
|||
}, |
|||
// 确认按钮事件 |
|||
addPayment() { |
|||
if (this.addPayType == PAY_TYPE_TAOBAO) { |
|||
window.open(this.taobaoAuthUrl, '_blank'); |
|||
|
|||
} else if (this.addPayType == PAY_TYPE_WEIXIN) { |
|||
this.$http('POST', '/agentnew/ajax_add_weixinpay', { |
|||
company_short_name: this.company_short_name, |
|||
mch_id: this.mch_id, |
|||
apiv2: this.apiv2, |
|||
appid: this.appid |
|||
}, { |
|||
headers: { |
|||
'Auth': this.token |
|||
} |
|||
}).then(response => { |
|||
this.$nextTick(() => { |
|||
if (response.status) { |
|||
this.init(); |
|||
this.$Message.success(response.info); |
|||
|
|||
} else { |
|||
this.$Message.error(response.info); |
|||
} |
|||
}) |
|||
}).catch(error => { |
|||
console.error(error, 'error') |
|||
}) |
|||
|
|||
} else if (this.addPayType == PAY_TYPE_ALIPAY) { |
|||
this.$http('POST', '/agentnew/ajax_add_alipay', { |
|||
company_short_name: this.company_short_name, |
|||
alipay_account: this.alipay_account, |
|||
is_pay_public: this.isPayPublic, |
|||
receive_payment_account: this.receive_payment_account, |
|||
receive_payment_name: this.receive_payment_name |
|||
}, { |
|||
headers: { |
|||
'Auth': this.token |
|||
} |
|||
}).then(response => { |
|||
this.$nextTick(() => { |
|||
if (response.status) { |
|||
if (this.isPayPublic == 1) { |
|||
this.init(); |
|||
this.$Message.success(response.info); |
|||
} else { |
|||
window.open(response.data.authurl, '_blank'); |
|||
} |
|||
|
|||
} else { |
|||
this.$Message.error(response.info); |
|||
} |
|||
}) |
|||
}).catch(error => { |
|||
console.error(error, 'error') |
|||
}) |
|||
} else if (this.addPayType == PAY_TYPE_PDD) { |
|||
this.$http('POST', '/agentnew/ajax_add_pddpay', { |
|||
shop_name: this.pdd_shop_name, |
|||
}, { |
|||
headers: { |
|||
'Auth': this.token |
|||
} |
|||
}).then(response => { |
|||
this.$nextTick(() => { |
|||
if (response.status) { |
|||
this.init(); |
|||
this.$Message.success(response.info); |
|||
} else { |
|||
this.$Message.error(response.info); |
|||
} |
|||
}) |
|||
}).catch(error => { |
|||
console.error(error, 'error') |
|||
}) |
|||
} else if (this.addPayType == PAY_TYPE_JINGDONG) { |
|||
window.open(this.jdAuthUrl, '_blank'); |
|||
} |
|||
this.init(); |
|||
}, |
|||
// 取消按钮事件 |
|||
handleCancel() { |
|||
this.init(); |
|||
}, |
|||
// 关闭弹框事件 |
|||
handleClose() { |
|||
this.init(); |
|||
}, |
|||
dialogVisibleChange(data) { |
|||
console.log(data, 'data098908090'); |
|||
}, |
|||
handleClick(tab, event) { |
|||
console.log(tab, event); |
|||
}, |
|||
init() { |
|||
this.addPayDialogVisible = false; |
|||
this.$emit('update:visible', false); |
|||
this.resetForm(); // 重置表单 |
|||
}, |
|||
},watch: { |
|||
visible(newVal) { |
|||
this.addPayDialogVisible = newVal; |
|||
}, |
|||
payType(newVal) { |
|||
this.addPayType = newVal; |
|||
this.updateDialogByPayType(); |
|||
this.resetForm(); // 切换支付方式时重置表单 |
|||
}, |
|||
authToken(newVal) { |
|||
this.token = newVal; |
|||
} |
|||
} |
|||
|
|||
} |
|||
</script> |
|||
<style scoped lang="scss"> |
|||
.beforeNotice { |
|||
|
|||
h4 { |
|||
margin: 0; |
|||
gap: 8px; |
|||
} |
|||
|
|||
margin-bottom: 18px; |
|||
text-align: left; |
|||
box-sizing: border-box; |
|||
padding: 20px 14px; |
|||
border-radius: 4px; |
|||
/* middle/middle_blue_1 */ |
|||
background: #F2F7FF; |
|||
/* middle/middle_blue_3 */ |
|||
border: 1px solid #BFDAFF; |
|||
|
|||
div { |
|||
margin-top: 2px; |
|||
padding-left: 23px; |
|||
|
|||
p { |
|||
color: #8A9099; |
|||
} |
|||
|
|||
} |
|||
|
|||
p { |
|||
color: #1E2226; |
|||
|
|||
i { |
|||
font-style: normal; |
|||
} |
|||
|
|||
&:last-child { |
|||
display: flex; |
|||
align-items: stretch; |
|||
|
|||
b { |
|||
font-weight: normal; |
|||
color: #8A9099; |
|||
display: inline-flex; |
|||
|
|||
img { |
|||
margin-left: 4px; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
|
|||
a { |
|||
text-decoration: none; |
|||
color: #006AFF; |
|||
margin-right: 10px; |
|||
|
|||
img { |
|||
margin-left: 5px; |
|||
margin-right: 5px; |
|||
} |
|||
} |
|||
} |
|||
|
|||
a { |
|||
color: #006AFF; |
|||
text-decoration: none; |
|||
} |
|||
</style> |
Loading…
Reference in new issue