From 59a29506851e9184a4275d5ab9bbca843918b49e Mon Sep 17 00:00:00 2001
From: zuoxiao <zuoxiao>
Date: 星期二, 13 五月 2025 17:26:16 +0800
Subject: [PATCH] 更新项目配置,添加梅江项目的相关信息,调整URL格式以提升代码一致性和可读性。
---
pages/login/login.js | 539 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 525 insertions(+), 14 deletions(-)
diff --git a/pages/login/login.js b/pages/login/login.js
index c954612..5100e0d 100644
--- a/pages/login/login.js
+++ b/pages/login/login.js
@@ -1,18 +1,263 @@
-// pages/login/login.js
+const app = getApp();
+const storage = require('../../utils/storage.js');
+const {
+ post
+} = require('../../api/request.js');
+const { PROJECT_CONFIG } = require('../../utils/projectConfig.js');
+const { setBaseUrl } = require('../../api/config.js');
+
Page({
/**
* 椤甸潰鐨勫垵濮嬫暟鎹�
*/
data: {
+ phone: '',
+ verificationCode: '',
+ codeText: '鑾峰彇楠岃瘉鐮�',
+ counting: false,
+ countDown: 60,
+ projectName: '鍢夊唱鍏抽」鐩�', // 榛樿椤圭洰鍚嶇О
+ selectedProject: 'JYG', // 榛樿椤圭洰浠g爜
+ showErrorDialog: false,
+ fromBack: false, // 鏍囪鏄惁鏄粠杩斿洖鎸夐挳杩斿洖鐨�
+ manualNavigate: false // 鏍囪鏄惁鏄�氳繃缂栫▼鏂瑰紡瀵艰埅鐨�
+ },
+ /**
+ * 缁戝畾鎵嬫満鍙疯緭鍏�
+ */
+ bindPhoneInput: function (e) {
+ this.setData({
+ phone: e.detail.value
+ });
+ },
+
+ /**
+ * 缁戝畾楠岃瘉鐮佽緭鍏�
+ */
+ bindCodeInput: function (e) {
+ this.setData({
+ verificationCode: e.detail.value
+ });
+ },
+
+ /**
+ * 鍙戦�侀獙璇佺爜
+ */
+ sendVerificationCode: function () {
+ const {
+ phone,
+ counting
+ } = this.data;
+
+ // 濡傛灉姝e湪鍊掕鏃讹紝鍒欎笉鍏佽鍐嶆鍙戦��
+ if (counting) {
+ return;
+ }
+
+ // 楠岃瘉鎵嬫満鍙锋牸寮�
+ if (!/^1\d{10}$/.test(phone)) {
+ wx.showToast({
+ title: '璇疯緭鍏ユ纭殑鎵嬫満鍙�',
+ icon: 'none'
+ });
+ return;
+ }
+
+
+
+ // 鍙戦�侀獙璇佺爜璇锋眰
+ this.postCode();
+ },
+
+ /**
+ * 寮�濮嬪�掕鏃�
+ */
+ startCountDown: function () {
+ this.setData({
+ counting: true,
+ countDown: 60
+ });
+
+ const timer = setInterval(() => {
+ if (this.data.countDown <= 1) {
+ clearInterval(timer);
+ this.setData({
+ counting: false,
+ codeText: '鑾峰彇楠岃瘉鐮�'
+ });
+ } else {
+ this.setData({
+ countDown: this.data.countDown - 1,
+ codeText: `${this.data.countDown - 1}绉掑悗閲嶅彂`
+ });
+ }
+ }, 1000);
+
+ // 淇濆瓨timer寮曠敤锛屼互渚垮湪椤甸潰鍗歌浇鏃舵竻闄�
+ this.countDownTimer = timer;
+ },
+
+ /**
+ * 鍋滄鍊掕鏃�
+ */
+ stopCountDown: function () {
+ if (this.countDownTimer) {
+ clearInterval(this.countDownTimer);
+ }
+ this.setData({
+ counting: false,
+ codeText: '鑾峰彇楠岃瘉鐮�'
+ });
+ },
+
+ /**
+ * 鐧诲綍
+ */
+ login: function () {
+ const {
+ phone,
+ verificationCode
+ } = this.data;
+
+ // 楠岃瘉鎵嬫満鍙峰拰楠岃瘉鐮�
+ if (!/^1\d{10}$/.test(phone)) {
+ wx.showToast({
+ title: '璇疯緭鍏ユ纭殑鎵嬫満鍙�',
+ icon: 'none'
+ });
+ return;
+ }
+
+ if (!/^\d{6}$/.test(verificationCode)) {
+ wx.showToast({
+ title: '璇疯緭鍏�6浣嶉獙璇佺爜',
+ icon: 'none'
+ });
+ return;
+ }
+
+ // 鏄剧ず鍔犺浇涓�
+ wx.showLoading({
+ title: '鐧诲綍涓�...',
+ mask: true
+ });
+
+ // 鏍囪涓烘墜鍔ㄥ鑸紝纭繚涓嶄細瑙﹀彂杩斿洖閫昏緫
+ console.log('鐧诲綍鎸夐挳鐐瑰嚮锛岃缃甿anualNavigate=true');
+ this.setData({
+ manualNavigate: true
+ });
+
+ this.wsLogin();
+ },
+
+ /**
+ * 璺宠浆鍒版敞鍐岄〉闈�
+ */
+ goToRegister: function () {
+ wx.showToast({
+ title: '娉ㄥ唽鍔熻兘鏆傛湭寮�鏀�',
+ icon: 'none',
+ duration: 2000
+ });
+ },
+
+ /**
+ * 璺宠浆鍒板繕璁板瘑鐮侀〉闈�
+ */
+ goToForgetPassword: function () {
+ wx.showToast({
+ title: '鎵惧洖瀵嗙爜鍔熻兘鏆傛湭寮�鏀�',
+ icon: 'none',
+ duration: 2000
+ });
+ },
+
+ /**
+ * 璺宠浆鍒拌处鍙峰瘑鐮佺櫥褰曢〉闈�
+ */
+ goToAccountLogin: function() {
+ // 鑾峰彇褰撳墠椤圭洰淇℃伅锛屼紶閫掔粰accountLogin椤甸潰
+ const { selectedProject, projectName } = this.data;
+
+ // 璺宠浆鍒拌处鍙峰瘑鐮佺櫥褰曢〉闈�
+ wx.navigateTo({
+ url: `/pages/accountLogin/accountLogin?project=${selectedProject}&projectName=${projectName}`
+ });
},
/**
* 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
*/
- onLoad(options) {
-
+ onLoad: function (options) {
+ console.log('login椤甸潰鍔犺浇锛宱ptions:', options);
+
+ // 璁剧疆椤甸潰鏁版嵁
+ this.setData({
+ fromBack: false, // 鏍囪鏄惁鏄粠杩斿洖鎸夐挳杩斿洖鐨�
+ manualNavigate: false // 鏍囪鏄惁鏄�氳繃缂栫▼鏂瑰紡瀵艰埅鐨�
+ });
+
+ // 浠嶶RL鍙傛暟鑾峰彇椤圭洰淇℃伅
+ if (options && options.project) {
+ const project = options.project;
+ // 鐩存帴浣跨敤浼犲叆鐨勯」鐩悕绉帮紝涓嶅啀鎵嬪姩杞崲
+ const projectName = options.projectName || '榛樿椤圭洰';
+
+ console.log(`浠嶶RL鍙傛暟鑾峰彇椤圭洰淇℃伅: ${project} (${projectName})`);
+
+ this.setData({
+ selectedProject: project,
+ projectName: projectName
+ });
+
+ // 鍚屾鏇存柊鍏ㄥ眬椤圭洰璁剧疆
+ if (getApp().globalData) {
+ getApp().globalData.selectedProject = project;
+
+ // 璁剧疆瀵瑰簲鐨則ag
+ if (project === 'JYG') {
+ getApp().globalData.tag = 'ym';
+ } else if (project === 'MQ') {
+ getApp().globalData.tag = 'mq';
+ }
+
+ // 鏇存柊 BASEURL
+ try {
+ // 浣跨敤瀵煎叆鐨剆etBaseUrl鍑芥暟璁剧疆baseUrl
+ setBaseUrl(project);
+
+ // 浠嶱ROJECT_CONFIG涓幏鍙杝erverUrl
+ const serverUrl = PROJECT_CONFIG[project]?.serverUrl;
+ if (serverUrl) {
+ getApp().globalData.baseUrl = serverUrl;
+ console.log('璁剧疆baseUrl鎴愬姛:', serverUrl);
+ }
+ } catch (e) {
+ console.error('璁剧疆baseUrl澶辫触:', e);
+ }
+ }
+
+ // 妫�鏌ラ」鐩厤缃殑鐧诲綍鏂瑰紡鏄惁涓庡綋鍓嶉〉闈㈠尮閰�
+ const projectConfig = PROJECT_CONFIG[project];
+ if (projectConfig && projectConfig.loginType === 'account') {
+ console.log(`褰撳墠椤圭洰閰嶇疆鐨勭櫥褰曟柟寮忎负account锛岃嚜鍔ㄨ烦杞埌璐﹀彿瀵嗙爜鐧诲綍椤甸潰`);
+
+ // 璁剧疆鎵嬪姩瀵艰埅鏍囪锛岄伩鍏嶈Е鍙戣繑鍥為�昏緫
+ this.setData({ manualNavigate: true });
+
+ // 寤惰繜鎵ц璺宠浆锛岀‘淇濋〉闈㈠畬鍏ㄥ姞杞�
+ setTimeout(() => {
+ wx.redirectTo({
+ url: `/pages/accountLogin/accountLogin?project=${project}&projectName=${projectName}`
+ });
+ }, 100);
+ }
+ } else {
+ console.log('鏈粠URL鑾峰彇鍒伴」鐩俊鎭紝浣跨敤榛樿鍊�');
+ }
},
/**
@@ -33,15 +278,75 @@
* 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌
*/
onHide() {
-
+ // 濡傛灉涓嶆槸閫氳繃缂栫▼鏂瑰紡瀵艰埅锛屽垯鍙兘鏄偣鍑讳簡杩斿洖鎸夐挳
+ // 娉ㄦ剰锛氬湪鏌愪簺鎯呭喌涓嬶紝寰俊鍙兘浼氱洿鎺ヨ皟鐢╫nUnload鑰岃烦杩噊nHide
+ if (!this.data.manualNavigate) {
+ console.log('椤甸潰闅愯棌锛屽彲鑳芥槸鐐瑰嚮浜嗚繑鍥炴寜閽�');
+ this.setData({
+ fromBack: true
+ });
+
+ // 濡傛灉椤甸潰闅愯棌浣嗘湭鐧诲綍锛岃褰曚竴涓椂闂存埑锛屽府鍔╄瘑鍒槸鍚︽槸杩斿洖鎿嶄綔
+ if (!getApp().globalData.isLoggedIn) {
+ this.hideTimestamp = Date.now();
+ }
+ } else {
+ console.log('椤甸潰闅愯棌锛屾槸閫氳繃浠g爜瀵艰埅鐨�');
+ }
},
/**
* 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍗歌浇
*/
onUnload() {
-
+ // 娓呴櫎楠岃瘉鐮佸�掕鏃跺畾鏃跺櫒
+ if (this.countDownTimer) {
+ clearInterval(this.countDownTimer);
+ this.countDownTimer = null;
+ }
+
+ // 璁板綍閫�鍑虹櫥褰曢〉闈㈢殑鎯呭喌
+ console.log('鐧诲綍椤甸潰鍗歌浇锛宖romBack:', this.data.fromBack, 'manualNavigate:', this.data.manualNavigate, '鐧诲綍鐘舵��:', !!getApp().globalData.isLoggedIn);
+
+ // 濡傛灉鏄櫥褰曟垚鍔燂紝涓嶆墽琛岃繑鍥為�昏緫
+ if (getApp().globalData.isLoggedIn) {
+ console.log('鐢ㄦ埛宸茬櫥褰曪紝鏃犻渶鎵ц杩斿洖閫昏緫');
+ return;
+ }
+
+ // 妫�鏌ユ槸鍚︽槸閫氳繃缂栫▼鏂瑰紡鏄庣‘璁剧疆浜嗗鑸�
+ // 濡傛灉娌℃湁鏄庣‘璁剧疆锛屽氨鍋囧畾鏄繑鍥炴搷浣�
+ if (!this.data.manualNavigate) {
+ console.log('椤甸潰鍗歌浇鏃舵湭璁剧疆manualNavigate锛屽亣瀹氭槸杩斿洖鎸夐挳鎿嶄綔');
+
+ // 灏濊瘯浣跨敤wx.navigateBack杩斿洖涓婁竴椤碉紙濡傛灉鍙锛�
+ const pages = getCurrentPages();
+ if (pages.length > 1) {
+ console.log('妫�娴嬪埌鏈変笂涓�椤碉紝浣跨敤navigateBack杩斿洖');
+ wx.navigateBack({
+ delta: 1,
+ success: () => {
+ // 閫氳繃eventChannel鍚戜笂涓�涓〉闈紶閫掓暟鎹�
+ const eventChannel = pages[pages.length - 2].getOpenerEventChannel();
+ if (eventChannel && eventChannel.emit) {
+ eventChannel.emit('fromLogin', { fromLogin: true });
+ }
+ console.log('宸叉垚鍔熻繑鍥炲埌涓婁竴椤甸潰');
+ }
+ });
+ } else {
+ console.log('鏃犱笂涓�椤碉紝浣跨敤澶囩敤杩斿洖鏂瑰紡');
+ // 娌℃湁涓婁竴椤碉紝浣跨敤澶囩敤鏂规硶
+ this.backupReturnToHome();
+ }
+ } else {
+ console.log('閫氳繃缂栫▼鏂瑰紡绂诲紑鐧诲綍椤甸潰');
+ }
},
+
+
+
+
/**
* 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔
@@ -63,13 +368,219 @@
onShareAppMessage() {
},
- /**
- * 鐧诲綍
- */
- login:function(e) {
- console.log("login")
- wx.reLaunch({
- url: 'pages/home/home',
- })
- }
+ //鑾峰彇楠岃瘉鐮�
+ postCode: function () {
+ const params = {
+ url: 'wx/client/send_sms?phoneNumber=' + this.data.phone
+ };
+ post(params)
+ .then((data) => {
+ wx.showToast({
+ title: '楠岃瘉鐮佸凡鍙戦��',
+ icon: 'success',
+ duration: 2000,
+ });
+ this.setData({
+ codeSent: true,
+ });
+ // 寮�濮嬪�掕鏃�
+ this.startCountDown();
+ })
+ .catch((error) => {
+ wx.showToast({
+ title: error.msg,
+ icon: 'none'
+ });
+ console.error('Failed to add item:', error);
+ });
+ },
+ wsLogin() {
+ // 鏍囪涓烘墜鍔ㄥ鑸�
+ console.log('wsLogin璋冪敤锛岃缃甿anualNavigate=true');
+ this.setData({
+ manualNavigate: true
+ });
+
+ wx.login({
+ success: res => {
+ if (res.code) {
+ console.log('寰俊鐧诲綍鎴愬姛锛岃幏鍙栧埌鐨刢ode:', res.code);
+ // 鍙戦�� res.code 鍒板悗鍙版湇鍔″櫒鎹㈠彇 openId, sessionKey, unionId
+ this.verify(res.code)
+ } else {
+ console.log('寰俊鐧诲綍澶辫触锛�' + res.errMsg);
+ // 鐧诲綍澶辫触鏃堕噸缃姸鎬�
+ this.setData({
+ manualNavigate: false
+ });
+ }
+ },
+ fail: err => {
+ console.error('寰俊鐧诲綍API璋冪敤澶辫触:', err);
+ // 鐧诲綍澶辫触锛岄噸缃鑸爣璁�
+ this.setData({
+ manualNavigate: false
+ });
+ }
+ });
+ },
+ //鐢ㄦ埛缁戝畾
+ verify(wxCode) {
+ console.log('verify璋冪敤锛岀‘璁anualNavigate=', this.data.manualNavigate);
+
+ const params = {
+ url: 'wx/client/verify',
+ data: {
+ phoneNumber: this.data.phone,
+ securityCode: this.data.verificationCode,
+ code: wxCode
+ }
+ };
+
+ post(params)
+ .then((data) => {
+ wx.hideLoading();
+
+ console.log('楠岃瘉鎴愬姛锛屽噯澶囦繚瀛樼敤鎴锋暟鎹�');
+
+ // 纭繚鍏ㄥ眬瀵硅薄宸插垵濮嬪寲
+ if (!getApp().globalData) {
+ getApp().globalData = {};
+ }
+
+ // 淇濆瓨浼氳瘽ID鍜屽鎴风ID
+ getApp().globalData.sessionId = String(data.content.sessionId);
+ storage.setItem("sessionId", String(data.content.sessionId));
+ getApp().globalData.clientId = String(data.content.clientId);
+ storage.setItem("clientId", String(data.content.clientId));
+
+
+ // 淇濆瓨鐢ㄦ埛淇℃伅
+ const userInfo = {
+ sessionId: String(data.content.sessionId),
+ clientId: String(data.content.clientId),
+ phone: this.data.phone,
+ token: data.content.token || '',
+ project: this.data.selectedProject
+ };
+
+ // 淇濆瓨鍒板叏灞�鍙橀噺
+ getApp().globalData.userInfo = userInfo;
+ getApp().globalData.isLoggedIn = true;
+
+ // 淇濆瓨鍒版湰鍦板瓨鍌�
+ storage.setItem("userInfo", JSON.stringify(userInfo))
+ .then(() => {
+ console.log('鐢ㄦ埛淇℃伅淇濆瓨鎴愬姛');
+ return storage.setItem("isLoggedIn", "true");
+ })
+ .then(() => {
+ // 淇濆瓨userData淇℃伅锛屽寘鍚玸essionId鍜宼ag
+ const userData = JSON.stringify({
+ sessionId: String(data.content.sessionId),
+ tag: this.data.selectedProject === 'JYG' ? 'ym' : (this.data.selectedProject === 'MQ' ? 'mq' : 'ym'),
+ project: this.data.selectedProject,
+ phone: this.data.phone,
+ clientName: data.content.clientName || '',
+ clientId: String(data.content.clientId)
+ });
+ return storage.setItem("userData", userData);
+ })
+ .then(() => {
+ console.log('鐧诲綍鐘舵�佸拰椤圭洰淇℃伅淇濆瓨鎴愬姛');
+ this.bindSuccess();
+ })
+ .catch(err => {
+ console.warn('淇濆瓨鐢ㄦ埛淇℃伅杩囩▼涓嚭閿欙紝浣嗕笉褰卞搷缁х画鎿嶄綔:', err);
+ this.bindSuccess();
+ });
+ })
+ .catch((error) => {
+ wx.hideLoading();
+ console.error('楠岃瘉璇锋眰澶辫触:', error);
+
+ // 楠岃瘉澶辫触锛岄渶瑕侀噸缃鑸爣璁�
+ console.log('楠岃瘉澶辫触锛岄噸缃甿anualNavigate=false');
+ this.setData({
+ manualNavigate: false
+ });
+
+ wx.showToast({
+ title: error.msg || '楠岃瘉澶辫触',
+ icon: 'error',
+ duration: 3000,
+ });
+ });
+ },
+ bindSuccess: function () {
+ // 璁剧疆鏍囪锛岃〃绀洪�氳繃缂栫▼鏂瑰紡瀵艰埅
+ console.log('缁戝畾鎴愬姛锛屾渶缁堢‘璁anualNavigate=true');
+ this.setData({
+ manualNavigate: true,
+ fromBack: false // 纭繚涓嶄細琚瘑鍒负杩斿洖鎿嶄綔
+ });
+
+ // 璁剧疆鍏ㄥ眬鐧诲綍鐘舵��
+ getApp().globalData.isLoggedIn = true;
+
+
+ wx.showToast({
+ title: '缁戝畾鎴愬姛',
+ icon: 'success',
+ duration: 1500,
+ mask: true,
+ success: () => {
+ // 寤惰繜璺宠浆锛岀‘淇漈oast鏄剧ず瀹屾垚
+ setTimeout(() => {
+ console.log('鐧诲綍鎴愬姛锛屽噯澶囪繑鍥炲埌棣栭〉');
+
+ // 鑾峰彇褰撳墠椤甸潰鏍�
+ const pages = getCurrentPages();
+
+ // 妫�鏌ユ槸鍚︽湁涓婁竴涓〉闈㈠彲杩斿洖
+ if (pages.length > 1) {
+ // 搴旂敤涓�涓妧宸э紝鍏堣缃墠涓�涓〉闈㈢殑鍙傛暟
+ try {
+ if (pages.length > 1) {
+ const prevPage = pages[pages.length - 2];
+ if (prevPage && prevPage.options) {
+ // 璁剧疆 fromLogin 鍙傛暟
+ prevPage.options.fromLogin = 'true';
+
+ // 濡傛灉椤甸潰鏈塷nLoad鏂规硶锛屽垯鍙兘闇�瑕佷紶閫掑弬鏁�
+ if (typeof prevPage.onLoad === 'function') {
+ let newOptions = {...prevPage.options};
+ newOptions.fromLogin = 'true';
+ prevPage.onLoad(newOptions);
+ }
+ }
+ }
+ } catch (e) {
+ console.error('璁剧疆鍓嶄竴椤靛弬鏁板け璐�:', e);
+ }
+
+ // 杩斿洖鍒颁笂涓�涓〉闈�
+ wx.navigateBack({
+ delta: 1,
+ success: () => {
+ console.log('宸叉垚鍔熻繑鍥炲埌涓婁竴椤甸潰');
+ },
+ fail: (err) => {
+ console.error('navigateBack澶辫触:', err);
+ // 濡傛灉杩斿洖澶辫触锛屼娇鐢ㄩ噸瀹氬悜
+ wx.redirectTo({
+ url: '/pages/home/home?fromLogin=true'
+ });
+ }
+ });
+ } else {
+ // 濡傛灉娌℃湁涓婁竴涓〉闈紝鍒欓噸鏂版墦寮�home椤甸潰
+ wx.redirectTo({
+ url: '/pages/home/home?fromLogin=true'
+ });
+ }
+ }, 1500);
+ }
+ });
+ },
})
\ No newline at end of file
--
Gitblit v1.8.0