// ============================================ // 反编译后的可读版本 // 原文件: 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 = []; }, // ==================== 其他模块(样式等)==================== // ... 省略样式相关模块 } ]);