Files
integral-resell/h5/static/js/pages-sub-pages-login-index.a9a3e737.readable.js

614 lines
21 KiB
JavaScript
Executable File

// ============================================
// 反编译后的可读版本
// 原文件: pages-sub-pages-login-index.a9a3e737.js
// 页面: 登录页面
// ============================================
(window["webpackJsonp"] = window["webpackJsonp"] || []).push([
["pages-sub-pages-login-index"],
{
// ==================== 模块 fa57: 页面逻辑 ====================
"fa57": function(module, exports, require) {
"use strict";
require("6a54");
var asyncToGenerator = require("f5bd").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var objectWithoutProperties = asyncToGenerator(require("a823"));
var regeneratorRuntime = asyncToGenerator(require("2634"));
var objectSpread = asyncToGenerator(require("9b1b"));
var _asyncToGenerator = asyncToGenerator(require("2fdc"));
require("5c47");
require("0506");
require("4682"); // 第三方登录相关
var excludedFields = ["is_reg", "openid"];
// 表单验证规则
var formRules = {
account: [
{
required: true,
message: "请输入账号",
trigger: ["blur", "change"]
},
{
validator: function(rule, value, callback) {
return uni.$u.test.mobile(value);
},
message: "手机号码不正确",
trigger: ["change", "blur"]
}
],
password: [
{
required: true,
message: "请输入密码",
trigger: ["blur", "change"]
}
]
};
// Vue组件配置
var component = {
// 数据
data: function() {
return {
formRules: formRules,
form: {
account: "", // 账号(手机号)
password: "" // 密码
}
};
},
// 页面准备完成
onReady: function() {
// 设置表单验证规则
this.$refs.uForm.setRules(this.formRules);
},
// 页面加载
onLoad: function() {
// 空方法
},
// 方法
methods: {
// 账号密码登录
accountlogin: function() {
var self = this;
return (0, _asyncToGenerator.default)(
(0, regeneratorRuntime.default)().mark((function asyncFunc() {
var params, response;
return (0, regeneratorRuntime.default)().wrap((function(context) {
while (1) {
switch (context.prev = context.next) {
case 0:
// 构建请求参数
params = (0, objectSpread.default)(
(0, objectSpread.default)({}, self.form),
{},
{ loading: true }
);
// 调用登录API
return context.next = 3, self.$api.accountlogin(params);
case 3:
response = context.sent;
// 登录成功
if (0 == response.code) {
self.$u.toast(response.msg, (function() {
return self.setLogin(response.data);
}));
}
case 5:
case "end":
return context.stop();
}
}
}), asyncFunc);
}))
)();
},
// 微信登录
wechatLogin: function(code) {
var self = this;
return (0, _asyncToGenerator.default)(
(0, regeneratorRuntime.default)().mark((function asyncFunc() {
var params, response, data, isReg, openid, userInfo;
return (0, regeneratorRuntime.default)().wrap((function(context) {
while (1) {
switch (context.prev = context.next) {
case 0:
// 构建请求参数
params = {
code: code,
loading: true
};
// 调用微信登录API
return context.next = 3, self.$api.wechatLogin(params);
case 3:
response = context.sent;
// 登录失败
if (0 != response.code) {
context.next = 11;
break;
}
data = response.data;
isReg = data.is_reg; // 是否已注册
openid = data.openid; // 微信openid
// 排除 is_reg 和 openid 字段,获取用户信息
userInfo = (0, objectWithoutProperties.default)(data, excludedFields);
// 未注册,跳转到绑定手机号页面
if (!isReg) {
context.next = 9;
break;
}
self.toBindPhone(openid);
return context.abrupt("return");
case 9:
// 已注册,登录成功
self.$u.toast(response.msg);
setTimeout((function() {
return self.setLogin(userInfo);
}), 1000);
case 11:
case "end":
return context.stop();
}
}
}), asyncFunc);
}))
)();
},
// 设置登录信息
setLogin: function(data) {
var userinfo, token, contract, userId;
// 获取token
token = null === data || void 0 === data ||
null === (userinfo = data.userinfo) || void 0 === userinfo ?
void 0 : userinfo.token;
// 获取合同签署状态
contract = null === data || void 0 === data ||
null === (userinfo = data.userinfo) || void 0 === userinfo ?
void 0 : userinfo.contract;
// 获取用户ID
userId = null === data || void 0 === data ||
null === (userinfo = data.userinfo) || void 0 === userinfo ?
void 0 : userinfo.id;
// 保存token到store
this.$store.dispatch("setToken", token);
// 保存用户信息到store
this.$store.dispatch("setUser", null === data || void 0 === data ? void 0 : data.userinfo);
// 保存签字状态到store
this.$store.dispatch("setSignature", contract);
// 生成并保存黑名单用户标识
var randomNum = this.$u.random(100, 999);
var blackUserId = "".concat("" + randomNum + userId + Date.now());
this.$store.dispatch("setBlackUser", blackUserId);
// 跳转到首页
this.toPageTab("/pages/index/index");
},
// 处理登录按钮点击
handleLogin: function() {
var self = this;
// 表单验证
this.$refs.uForm.validate((function(valid) {
if (valid) {
console.log("验证通过");
self.accountlogin();
} else {
console.log("验证失败");
}
}));
},
// 跳转到绑定手机号页面
toBindPhone: function(openid) {
this.toPage("/pages/sub-pages/login/bind-phone", {
openid: openid
});
},
// 跳转到注册页面
toRegisterPage: function() {
this.toPageRedirect("/pages/sub-pages/login/register");
},
// 跳转到重置密码页面
toResetPage: function() {
this.toPage("/pages/sub-pages/login/reset-account");
}
}
};
exports.default = component;
},
// ==================== 模块 4682: 第三方登录工具 ====================
"4682": function(module, exports, require) {
"use strict";
require("6a54");
var asyncToGenerator = require("f5bd").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.authLogin = void 0;
exports.getProvider = getProvider;
exports.invokePayment = void 0;
var objectSpread = asyncToGenerator(require("9b1b"));
var regeneratorRuntime = asyncToGenerator(require("2634"));
var _asyncToGenerator = asyncToGenerator(require("2fdc"));
require("bf0f");
require("4626");
require("5ac7");
require("d4b5");
// 获取服务提供商
function getProvider(service, provider) {
return new Promise((function(resolve, reject) {
uni.getProvider({
service: service,
success: function(result) {
console.log(result, provider, 111);
var providerList = result.provider;
// 检查指定的提供商是否存在
if (!providerList.includes(provider)) {
uni.showToast({
title: "服务商不存在",
icon: "none"
});
resolve(false);
return;
}
resolve(true);
}
});
}));
}
// 授权登录
var authLogin = function() {
var func = (0, _asyncToGenerator.default)(
(0, regeneratorRuntime.default)().mark((function asyncFunc(provider) {
var hasProvider;
return (0, regeneratorRuntime.default)().wrap((function(context) {
while (1) {
switch (context.prev = context.next) {
case 0:
// 检查服务提供商
return context.next = 2, getProvider("oauth", provider);
case 2:
hasProvider = context.sent;
if (hasProvider) {
context.next = 5;
break;
}
return context.abrupt("return");
case 5:
// 执行登录
return context.abrupt("return", new Promise((function(resolve, reject) {
uni.login({
provider: provider,
onlyAuthorize: "weixin" == provider, // 微信只授权
success: function(result) {
// Apple登录特殊处理
if ("apple" == provider) {
var appleInfo = result.appleInfo;
result.code = null === appleInfo || void 0 === appleInfo ?
void 0 : appleInfo.user;
}
resolve(result);
},
fail: function(error) {
console.log(error, 2);
reject(error);
}
});
})));
case 6:
case "end":
return context.stop();
}
}
}), asyncFunc);
}))
);
return function(provider) {
return func.apply(this, arguments);
};
}();
exports.authLogin = authLogin;
// 发起支付
var invokePayment = function() {
var func = (0, _asyncToGenerator.default)(
(0, regeneratorRuntime.default)().mark((function asyncFunc(provider, paymentData) {
var hasProvider;
return (0, regeneratorRuntime.default)().wrap((function(context) {
while (1) {
switch (context.prev = context.next) {
case 0:
// 检查支付服务提供商
return context.next = 2, getProvider("payment", provider);
case 2:
hasProvider = context.sent;
if (hasProvider) {
context.next = 5;
break;
}
return context.abrupt("return");
case 5:
// 发起支付
return context.abrupt("return", new Promise((function(resolve, reject) {
uni.requestPayment(
(0, objectSpread.default)(
(0, objectSpread.default)({
provider: provider
}, paymentData),
{},
{
success: function(result) {
console.log(result, "支付成功");
resolve({
code: 1,
errMsg: result.errMsg
});
},
fail: function(error) {
console.log(error, "支付失败");
// 用户取消支付
if ("requestPayment:fail cancel" == error.errMsg) {
uni.showToast({
title: "您已取消支付",
icon: "none"
});
resolve({
code: 0,
errMsg: error.errMsg
});
} else {
reject(false);
}
}
}
)
);
})));
case 6:
case "end":
return context.stop();
}
}
}), asyncFunc);
}))
);
return function(provider, paymentData) {
return func.apply(this, arguments);
};
}();
exports.invokePayment = invokePayment;
},
// ==================== 模块 8461: 渲染函数 ====================
"8461": function(module, exports, require) {
"use strict";
require.d(exports, "b", (function() {
return render;
}));
require.d(exports, "c", (function() {
return staticRenderFns;
}));
require.d(exports, "a", (function() {
return components;
}));
// 组件依赖
var components = {
uForm: require("e8a2").default,
uFormItem: require("dd75").default
};
// 渲染函数
var render = function() {
var vm = this;
var createElement = vm.$createElement;
var createVNode = vm._self._c || createElement;
return createVNode("v-uni-view", {
staticClass: "page-bg white-bg content"
}, [
// 头部区域
createVNode("v-uni-view", {
staticClass: "head"
}, [
createVNode("v-uni-view", {
staticClass: "b-text-42 u-p-b-30 b-text-B-d"
}, [vm._v("现在登录")]),
createVNode("v-uni-text", {
staticClass: "b-text-black-dd"
}, [vm._v("欢迎回来,有好多小伙伴在思念你!")])
], 1),
// 主体区域
createVNode("v-uni-view", {
staticClass: "main relative"
}, [
// 表单
createVNode("u-form", {
ref: "uForm",
staticClass: "u-m-b-30 u-form",
attrs: {
model: vm.form,
"error-type": ["toast", "border-bottom"]
}
}, [
// 账号输入框
createVNode("u-form-item", {
staticClass: "u-m-b-30",
attrs: {
prop: "account",
"border-bottom": false
}
}, [
createVNode("v-uni-view", {
staticClass: "flex-column w-full"
}, [
createVNode("v-uni-view", {
staticClass: "b-text-48 b-text-B-d u-m-b-20"
}, [vm._v("账号")]),
createVNode("v-uni-view", {
staticClass: "b-bg-gray-dd u-p-20 b-radius-12"
}, [
createVNode("v-uni-input", {
staticClass: "b-form-input",
attrs: {
placeholder: "请输入手机号"
},
model: {
value: vm.form.account,
callback: function(value) {
vm.$set(vm.form, "account", value);
},
expression: "form.account"
}
})
], 1)
], 1)
], 1),
// 密码输入框
createVNode("u-form-item", {
staticClass: "u-m-b-30",
attrs: {
prop: "password",
"border-bottom": false
}
}, [
createVNode("v-uni-view", {
staticClass: "flex-column w-full"
}, [
createVNode("v-uni-view", {
staticClass: "b-text-48 b-text-B-d u-m-b-20"
}, [vm._v("密码")]),
createVNode("v-uni-view", {
staticClass: "b-bg-gray-dd u-p-20 b-radius-12 b-flex-x b-flex-space"
}, [
createVNode("v-uni-input", {
staticClass: "b-form-input",
attrs: {
type: "password",
placeholder: "请输入密码"
},
model: {
value: vm.form.password,
callback: function(value) {
vm.$set(vm.form, "password", value);
},
expression: "form.password"
}
}),
// 忘记密码链接
createVNode("v-uni-text", {
staticClass: "b-flex-shrink b-text-theme-d",
on: {
click: function(event) {
arguments[0] = event = vm.$handleEvent(event);
vm.toPage("/pages/sub-pages/login/reset-account");
}
}
}, [vm._v("忘记")])
], 1)
], 1)
], 1)
], 1),
// 登录按钮
createVNode("v-uni-button", {
staticClass: "b-btn b-btn-block b-btn-round disable_btn activeBtn u-m-t-10 u-m-b-30",
on: {
click: function(event) {
arguments[0] = event = vm.$handleEvent(event);
vm.handleLogin.apply(void 0, arguments);
}
}
}, [vm._v("登录")]),
// 注册链接
createVNode("v-uni-view", {
staticClass: "b-text-c b-text-theme-d b-text-24",
on: {
click: function(event) {
arguments[0] = event = vm.$handleEvent(event);
vm.toPage("/pages/sub-pages/login/register");
}
}
}, [vm._v("还没有账号?注册")])
], 1)
], 1);
};
var staticRenderFns = [];
},
// ==================== 其他模块(样式等)====================
// ... 省略样式相关模块
}
]);