captain-ui
Version:
有赞vue wap业务组件库
185 lines (158 loc) • 4.88 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
require("vant/es/toast/style");
var _toast = _interopRequireDefault(require("vant/es/toast"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
require("vant/es/cell-group/style");
var _cellGroup = _interopRequireDefault(require("vant/es/cell-group"));
require("vant/es/button/style");
var _button = _interopRequireDefault(require("vant/es/button"));
var _actions = _interopRequireDefault(require("./components/actions"));
var _formItem = _interopRequireDefault(require("./components/form-item"));
var _input = _interopRequireDefault(require("./components/input"));
var _index = _interopRequireDefault(require("../../captcha/index"));
var _ajax = _interopRequireDefault(require("./utils/ajax"));
var _default = {
render: function render() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c('div', {
staticClass: "cap-captcha-login"
}, [_c('van-cell-group', [_c('vm-form-item', {
attrs: {
"title": "手机号"
}
}, [_c('vm-input', {
attrs: {
"type": "tel",
"placeholder": "首次登录将为你创建帐号"
},
model: {
value: _vm.loginData.phone,
callback: function callback($$v) {
_vm.$set(_vm.loginData, "phone", $$v);
},
expression: "loginData.phone"
}
})], 1), _c('vm-form-item', {
staticClass: "cap-login__captcha-item",
attrs: {
"title": "验证码"
}
}, [_c('vm-captcha', {
attrs: {
"placeholder": "输入6位验证码",
"button-color": "#07c160",
"captcha-url": _vm.captchaUrl,
"image-captcha-url": _vm.imageCaptchaUrl,
"check-image-captcha-url": _vm.checkImageCaptchaUrl,
"token-url": _vm.tokenUrl,
"phone": _vm.loginData.phone,
"biz": _vm.biz
},
on: {
"statusChange": _vm.handleCaptchaStatusChange
},
model: {
value: _vm.loginData.code,
callback: function callback($$v) {
_vm.$set(_vm.loginData, "code", $$v);
},
expression: "loginData.code"
}
})], 1)], 1), _c('p', {
directives: [{
name: "show",
rawName: "v-show",
value: _vm.captchaStatus === 'disabled',
expression: "captchaStatus === 'disabled'"
}],
staticClass: "cap-captcha-login__tip"
}, [_vm._v("\n 验证码已发送至手机号 +86 " + _vm._s(_vm.loginData.phone) + "\n ")]), _c('vm-actions', [_c('template', {
slot: "button"
}, [_c('van-button', {
attrs: {
"type": "primary",
"block": ""
},
on: {
"click": _vm.handleSubmit
}
}, [_vm._v("\n 登录\n ")])], 1)], 2)], 1);
},
components: {
'van-button': _button.default,
'van-cell-group': _cellGroup.default,
'vm-actions': _actions.default,
'vm-form-item': _formItem.default,
'vm-input': _input.default,
'vm-captcha': _index.default
},
props: {
loginUrl: String,
loginRedirectUrl: String,
captchaUrl: String,
imageCaptchaUrl: String,
checkImageCaptchaUrl: String,
tokenUrl: String,
biz: String,
requestLogin: Function
},
data: function data() {
return {
captchaStatus: '',
loginData: {
phone: '',
code: ''
}
};
},
methods: {
handleSubmit: function handleSubmit() {
var _this = this;
var phoneReg = /^\d{1,20}$/;
var loginData = (0, _extends2.default)({}, this.loginData);
var phone = loginData.phone;
if (!phone) {
(0, _toast.default)('请输入手机号');
return;
}
if (!phoneReg.test(phone)) {
(0, _toast.default)('手机号格式不正确');
return;
}
if (!loginData.code) {
(0, _toast.default)('请输入验证码');
return;
}
if (typeof this.requestLogin === 'function') {
this.requestLogin(loginData);
return;
}
_toast.default.loading();
(0, _ajax.default)({
url: this.loginUrl,
method: 'POST',
data: (0, _extends2.default)({}, loginData)
}).then(function (res) {
_toast.default.clear();
_toast.default.success({
message: '登录成功',
duration: 1000
});
setTimeout(function () {
location.href = _this.loginRedirectUrl;
}, 1500);
}, function (res) {
(0, _toast.default)(res.msg || '网络错误');
});
},
handleCaptchaStatusChange: function handleCaptchaStatusChange(status) {
this.captchaStatus = status;
}
}
};
exports.default = _default;