captain-ui
Version:
有赞vue wap业务组件库
161 lines (143 loc) • 4.22 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"));
var _yzAes = _interopRequireDefault(require("@youzan/yz-aes"));
var _ajax = _interopRequireDefault(require("../utils/ajax"));
var _pageMixin = _interopRequireDefault(require("../mixins/page-mixin"));
var _default = {
render: function render() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c('div', {
staticClass: "cap-login__form cap-login__login"
}, [_c('van-cell-group', [_vm.showCountrySelect ? _c('vm-form-item', {
attrs: {
"title": "国家",
"is-link": ""
},
on: {
"click": _vm.doSelectCountry
}
}, [_vm._v("\n " + _vm._s(_vm.country.name) + " " + _vm._s(_vm.country.code) + "\n ")]) : _vm._e(), _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', {
attrs: {
"title": "密码"
}
}, [_c('vm-password', {
attrs: {
"placeholder": "请输入密码"
},
model: {
value: _vm.loginData.password,
callback: function callback($$v) {
_vm.$set(_vm.loginData, "password", $$v);
},
expression: "loginData.password"
}
})], 1)], 1), _c('vm-actions', [_c('template', {
slot: "button"
}, [_c('van-button', {
attrs: {
"type": "danger",
"block": ""
},
on: {
"click": _vm.handleSubmit
}
}, [_vm._v("\n 登录\n ")])], 1), _c('template', {
slot: "tips"
}, [_c('span', {
on: {
"click": _vm.handleForgetPasswordClick
}
}, [_vm._v("忘记密码?")]), _c('span', {
staticClass: "cap-login--pull-right",
on: {
"click": _vm.goRegister
}
}, [_vm._v("\n 去注册\n ")])])], 2)], 1);
},
mixins: [_pageMixin.default],
props: {
source: String,
loginUrl: String,
loginRedirectUrl: String,
loginErrorCallback: Function
},
data: function data() {
return {
loginData: {
phone: this.phone || '',
password: '',
source: this.source
}
};
},
methods: {
handleSubmit: function handleSubmit() {
var _this = this;
this.$emit('logger', {
type: 'login'
});
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.password) {
(0, _toast.default)('请输入密码');
return;
}
loginData.password = _yzAes.default.encrypt(loginData.password);
(0, _ajax.default)({
url: this.loginUrl,
method: 'POST',
data: (0, _extends2.default)({}, loginData, {
country_code: this.country.code
})
}).then(function () {
location.href = _this.loginRedirectUrl;
}, function (res) {
var loginErrorCallback = _this.loginErrorCallback;
if (loginErrorCallback) {
loginErrorCallback(res);
} else {
(0, _toast.default)(res.msg || '登录失败');
}
});
},
handleForgetPasswordClick: function handleForgetPasswordClick() {
this.$emit('typeChange', 'forget-password');
},
goRegister: function goRegister() {
this.$emit('typeChange', 'register-phone');
}
}
};
exports.default = _default;