614 lines
21 KiB
JavaScript
Executable File
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 = [];
|
|
},
|
|
|
|
// ==================== 其他模块(样式等)====================
|
|
// ... 省略样式相关模块
|
|
}
|
|
]);
|
|
|
|
|
|
|