Initial import: H5 front-end and houtai backend (exclude secrets and uploads).
Made-with: Cursor
This commit is contained in:
613
h5/static/js/pages-sub-pages-login-index.a9a3e737.readable.js
Executable file
613
h5/static/js/pages-sub-pages-login-index.a9a3e737.readable.js
Executable file
@@ -0,0 +1,613 @@
|
||||
// ============================================
|
||||
// 反编译后的可读版本
|
||||
// 原文件: 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 = [];
|
||||
},
|
||||
|
||||
// ==================== 其他模块(样式等)====================
|
||||
// ... 省略样式相关模块
|
||||
}
|
||||
]);
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user