UNPKG

captain-ui

Version:

有赞vue wap业务组件库

354 lines (321 loc) 9.52 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.default = void 0; require("vant/es/dialog/style"); var _dialog = _interopRequireDefault(require("vant/es/dialog")); require("vant/es/popup/style"); var _popup = _interopRequireDefault(require("vant/es/popup")); var _password = _interopRequireDefault(require("./components/password")); var _payList = _interopRequireDefault(require("./components/pay-list")); var _qrcode = _interopRequireDefault(require("./components/qrcode")); var _confirm = _interopRequireDefault(require("./components/confirm")); var _url = _interopRequireDefault(require("../../common/url")); var _default2 = { render: function render() { var _vm = this; var _h = _vm.$createElement; var _c = _vm._self._c || _h; return _c('div', { staticClass: "cap-pay" }, [_c('van-popup', { attrs: { "position": "bottom" }, model: { value: _vm.showPayView, callback: function callback($$v) { _vm.showPayView = $$v; }, expression: "showPayView" } }, [_c('cap-paylist', { attrs: { "pay-ways": _vm.payWays, "loading-pay-way": _vm.loadingPayWay, "on-pay-item-click": _vm.onPayItemClick } })], 1), _c('van-popup', { staticClass: "cap-pay__password-container", attrs: { "close-on-click-overlay": false }, model: { value: _vm.showPassword, callback: function callback($$v) { _vm.showPassword = $$v; }, expression: "showPassword" } }, [_c('cap-password', { attrs: { "close": _vm.closePassword, "on-confirm": _vm.onPasswordConfirm, "account": _vm.account, "pay-way": _vm.selectedPayWay, "loading": _vm.loadingPayWay.need_password && _vm.showPassword } })], 1), _c('van-popup', { attrs: { "close-on-click-overlay": false }, model: { value: _vm.showConfirm, callback: function callback($$v) { _vm.showConfirm = $$v; }, expression: "showConfirm" } }, [_c('cap-confirm', { attrs: { "close": _vm.closeConfirm, "on-confirm": _vm.onConfirmAccept, "pay-way": _vm.selectedPayWay, "loading": _vm.loadingPayWay.need_confirm && _vm.showConfirm } })], 1), _vm.showQrcodePay ? _c('cap-qrcode-pay', { attrs: { "qrcode-url": _vm.qrcodeUrl, "on-btn-clicked": _vm.onQrcodeBtnClick }, on: { "input": _vm.onCloseQrcodePay } }) : _vm._e()], 1); }, name: 'cap-pay', components: { 'cap-password': _password.default, 'cap-paylist': _payList.default, 'cap-qrcode-pay': _qrcode.default, 'cap-confirm': _confirm.default, 'van-popup': _popup.default }, props: { value: Boolean, account: { type: String, default: '' }, payWays: { type: Array, required: true }, loadingPayWay: { type: Object, default: function _default() { return {}; } }, onPayWaySelected: { type: Function, validator: function validator(value) { return typeof value === 'function'; } }, changePasswordUrl: { type: String, default: _url.default.wap + '/buyer/auth/changePassword?redirect_uri=' + encodeURIComponent(window.location.href) }, showQrcodePay: { type: Boolean, default: false }, qrcodeUrl: { type: String, default: '' }, onCloseQrcodePay: { type: Function, validator: function validator(value) { return typeof value === 'function'; }, default: function _default() { return function () {}; } }, onQrcodeBtnClick: { type: Function, validator: function validator(value) { return typeof value === 'function'; }, default: function _default() { return function () {}; } }, showAfterPayConfirm: { type: Boolean, default: false }, showPassword: { type: Boolean, default: false }, showChangePriceConfirm: { type: Boolean, default: false }, changePriceMsg: { type: String, default: '' }, newPrice: { type: Number, default: -1 }, payRiskAdvice: { type: Object, default: function _default() { return { show: false, riskAdvice: '银行卡支付异常,请更换支付方式。如果有疑问,请联系客服。', contactServiceUrl: 'https://help.youzan.com/online/mars/index?from=mars_mp&access_token=', onConfirmClick: function onConfirmClick() {}, onCancelClick: function onCancelClick() {} }; } } }, data: function data() { return { showConfirm: false, selectedPayWay: {}, showPayView: this.value }; }, watch: { value: function value(val) { // 如果只有一种支付方式的话,立刻唤起支付,不再显示弹层 if (val && this.payWays.length === 1) { this.$emit('input', false); this.onPayItemClick(this.payWays[0]); } else { this.showPayView = val; } }, showPayView: function showPayView(val) { this.$emit('input', val); }, showAfterPayConfirm: function showAfterPayConfirm(val) { if (val) { this.startShowAfterPayConfirm(); } }, showChangePriceConfirm: function showChangePriceConfirm(val) { if (val) { this.startShowChangePriceConfirm(); } }, 'payRiskAdvice.show': function payRiskAdviceShow(val) { if (val) { this.startShowPayRiskAdviceConfirm(); } } }, methods: { closePassword: function closePassword() { this.$emit('update:show-password', false); }, closeConfirm: function closeConfirm() { this.showConfirm = false; }, onPayItemClick: function onPayItemClick(payWay) { var _this = this; this.selectedPayWay = payWay; if (payWay.need_password) { this.$emit('update:show-password', true); return; } if (payWay.need_confirm) { this.showConfirm = true; return; } if (payWay.pay_channel === 'CASH_ON_DELIVERY') { _dialog.default.confirm({ title: '下单提醒', message: this.getCODMessage(payWay.pay_channel_name) }).then(function (action) { _this.onPayWaySelected({ payWay: payWay }); }, function (error) { console.log(error); }); return; } this.onPayWaySelected({ payWay: payWay }); }, getCODMessage: function getCODMessage(payName) { var message = ''; switch (payName) { case '到店付款': message = '你正在选择到店付款,下单后请自行到店领取并付款。'; break; // 货到付款 default: message = '你正在选择货到付款,下单后由商家发货,送货上门并收款。'; } return message; }, onPasswordConfirm: function onPasswordConfirm(password) { this.onPayWaySelected({ payWay: this.selectedPayWay, password: password }); }, onConfirmAccept: function onConfirmAccept() { this.onPayWaySelected({ payWay: this.selectedPayWay }); }, startShowAfterPayConfirm: function startShowAfterPayConfirm() { var _this2 = this; _dialog.default.confirm({ title: '微信支付确认', message: '若你已付款成功,请点击“已完成支付”;若付款时遇到问题,可选择“其他支付方式”', confirmButtonText: '已完成支付', cancelButtonText: '其他支付方式' }).then(function (action) { _this2.$emit('update:show-after-pay-confirm', false); _this2.$emit('confirm:pay-result', action); }).catch(function (action) { _this2.$emit('update:show-after-pay-confirm', false); _this2.$emit('cancel:pay-result', action); }); }, startShowChangePriceConfirm: function startShowChangePriceConfirm() { var _this3 = this; _dialog.default.confirm({ title: '改价提醒', message: this.changePriceMsg }).then(function (action) { _this3.onPayWaySelected({ payWay: _this3.selectedPayWay, accept_price: 1, new_price: _this3.newPrice }); _this3.$emit('confirm:change-price', action); }).catch(function (action) { _this3.$emit('cancel:change-price', action); }); }, startShowPayRiskAdviceConfirm: function startShowPayRiskAdviceConfirm() { var _this4 = this; _dialog.default.confirm({ message: this.payRiskAdvice.riskAdvice, confirmButtonText: '更换支付方式', cancelButtonText: '联系客服' }).then(function (action) { _this4.payRiskAdvice.onConfirmClick(); _this4.$emit('update:pay-risk-advice-show', false); }).catch(function (action) { window.location.href = _this4.payRiskAdvice.contactServiceUrl; _this4.$emit('update:pay-risk-advice-show', false); _this4.payRiskAdvice.onCancelClick(); }); } } }; exports.default = _default2;