From 032f821c77485c1178de18f78092ddedd25d2fb2 Mon Sep 17 00:00:00 2001
From: zuoxiao <zuoxiao>
Date: 星期三, 09 四月 2025 15:26:58 +0800
Subject: [PATCH] 添加删除功能到灌溉计划页面,用户可通过点击删除按钮确认删除相应的轮灌计划;更新样式以增强用户体验。
---
pages/login/login.js | 326 ++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 265 insertions(+), 61 deletions(-)
diff --git a/pages/login/login.js b/pages/login/login.js
index a4dd503..6d237be 100644
--- a/pages/login/login.js
+++ b/pages/login/login.js
@@ -17,7 +17,9 @@
countDown: 60,
projectName: '鍢夊唱鍏抽」鐩�', // 榛樿椤圭洰鍚嶇О
selectedProject: 'JYG', // 榛樿椤圭洰浠g爜
- showErrorDialog: false
+ showErrorDialog: false,
+ fromBack: false, // 鏍囪鏄惁鏄粠杩斿洖鎸夐挳杩斿洖鐨�
+ manualNavigate: false // 鏍囪鏄惁鏄�氳繃缂栫▼鏂瑰紡瀵艰埅鐨�
},
/**
@@ -61,8 +63,7 @@
return;
}
- // 寮�濮嬪�掕鏃�
- this.startCountDown();
+
// 鍙戦�侀獙璇佺爜璇锋眰
this.postCode();
@@ -140,40 +141,14 @@
title: '鐧诲綍涓�...',
mask: true
});
- this.wsLogin();
-
-
- // 鍙戦�佺櫥褰曡姹�
- post('/api/loginByCode', {
- phone: phone,
- code: verificationCode,
- projectCode: this.data.selectedProject
- }).then(res => {
- wx.hideLoading();
-
- if (res.code === 0 && res.data) {
- // 淇濆瓨鐢ㄦ埛淇℃伅鍜宼oken
- storage.setUserInfo(res.data);
- storage.setToken(res.data.token);
-
- // 璺宠浆鍒伴椤�
- wx.switchTab({
- url: '/pages/index/index'
- });
- } else {
- wx.showToast({
- title: res.msg || '鐧诲綍澶辫触锛岃閲嶈瘯',
- icon: 'none'
- });
- }
- }).catch(err => {
- wx.hideLoading();
- console.error('鐧诲綍澶辫触', err);
- wx.showToast({
- title: '缃戠粶寮傚父锛岃閲嶈瘯',
- icon: 'none'
- });
+
+ // 鏍囪涓烘墜鍔ㄥ鑸紝纭繚涓嶄細瑙﹀彂杩斿洖閫昏緫
+ console.log('鐧诲綍鎸夐挳鐐瑰嚮锛岃缃甿anualNavigate=true');
+ this.setData({
+ manualNavigate: true
});
+
+ this.wsLogin();
},
/**
@@ -202,20 +177,67 @@
* 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
*/
onLoad: function (options) {
- // 鑾峰彇閫夋嫨鐨勯」鐩�
- if (options.project) {
+ console.log('login椤甸潰鍔犺浇锛宱ptions:', options);
+
+ // 璁剧疆椤甸潰鏁版嵁
+ this.setData({
+ fromBack: false, // 鏍囪鏄惁鏄粠杩斿洖鎸夐挳杩斿洖鐨�
+ manualNavigate: false // 鏍囪鏄惁鏄�氳繃缂栫▼鏂瑰紡瀵艰埅鐨�
+ });
+
+ // 鑾峰彇閫夋嫨鐨勯」鐩� - 浼樺厛浣跨敤URL鍙傛暟
+ if (options && options.project) {
+ const project = options.project;
+ const projectName = project === 'JYG' ? '鍢夊唱鍏抽」鐩�' :
+ project === 'MQ' ? '姘戝嫟椤圭洰' :
+ project === 'TEST' ? '娴嬭瘯椤圭洰' : '鏈煡椤圭洰';
+
+ console.log(`浠嶶RL鍙傛暟鑾峰彇椤圭洰淇℃伅: ${project} (${projectName})`);
+
this.setData({
- selectedProject: options.project,
- projectName: options.project === 'JYG' ? '鍢夊唱鍏抽」鐩�' : '姘戝嫟椤圭洰'
+ 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 {
+ const { PROJECT_URLS } = require('../../api/config.js');
+ getApp().globalData.baseUrl = PROJECT_URLS[project];
+ } catch (e) {
+ console.error('璁剧疆baseUrl澶辫触:', e);
+ }
+ }
+
+ // 淇濆瓨椤圭洰閫夋嫨鍒版湰鍦板瓨鍌紝纭繚椤圭洰淇℃伅涓�鑷�
+ storage.setItem('selectedProject', project)
+ .then(() => console.log('鎴愬姛淇濆瓨椤圭洰閫夋嫨鍒板瓨鍌�'))
+ .catch(err => console.error('淇濆瓨椤圭洰閫夋嫨鍒板瓨鍌ㄥけ璐�:', err));
} else {
- // 灏濊瘯浠庢湰鍦板瓨鍌ㄨ幏鍙栧凡閫夋嫨鐨勯」鐩�
- storage.getItem('selectedProject').then(project => {
+ // 浠庢湰鍦板瓨鍌ㄨ幏鍙栧凡閫夋嫨鐨勯」鐩�
+ storage.getItemSafe('selectedProject').then(project => {
if (project) {
+ const projectName = project === 'JYG' ? '鍢夊唱鍏抽」鐩�' :
+ project === 'MQ' ? '姘戝嫟椤圭洰' :
+ project === 'TEST' ? '娴嬭瘯椤圭洰' : '鏈煡椤圭洰';
+ console.log(`浠庡瓨鍌ㄨ幏鍙栭」鐩俊鎭�: ${project} (${projectName})`);
+
this.setData({
selectedProject: project,
- projectName: project === 'JYG' ? '鍢夊唱鍏抽」鐩�' : '姘戝嫟椤圭洰'
+ projectName: projectName
});
+ } else {
+ console.log('鏈壘鍒板凡閫夋嫨鐨勯」鐩紝浣跨敤榛樿椤圭洰');
}
}).catch(err => {
console.error('鑾峰彇宸查�夋嫨椤圭洰澶辫触:', err);
@@ -241,7 +263,21 @@
* 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌
*/
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爜瀵艰埅鐨�');
+ }
},
/**
@@ -253,6 +289,78 @@
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: () => console.log('navigateBack鎴愬姛'),
+ fail: (err) => {
+ console.error('navigateBack澶辫触:', err);
+ // 濡傛灉navigateBack澶辫触锛屽皾璇時eLaunch
+ this.backupReturnToHome();
+ }
+ });
+ } else {
+ console.log('鏃犱笂涓�椤碉紝浣跨敤澶囩敤杩斿洖鏂瑰紡');
+ // 娌℃湁涓婁竴椤碉紝浣跨敤澶囩敤鏂规硶
+ this.backupReturnToHome();
+ }
+ } else {
+ console.log('閫氳繃缂栫▼鏂瑰紡绂诲紑鐧诲綍椤甸潰');
+ }
+ },
+
+ // 澶囩敤鐨勮繑鍥為椤垫柟娉�
+ backupReturnToHome() {
+ console.log('浣跨敤澶囩敤鏂规硶杩斿洖棣栭〉');
+
+ // 灏濊瘯浣跨敤switchTab锛堝鏋滈椤靛湪tabBar涓級
+ const useReLaunch = () => {
+ console.log('浣跨敤reLaunch杩斿洖棣栭〉');
+ wx.reLaunch({
+ url: '/pages/home/home?fromLogin=true',
+ success: () => console.log('reLaunch鎴愬姛杩斿洖棣栭〉'),
+ fail: (err) => {
+ console.error('reLaunch杩斿洖棣栭〉澶辫触:', err);
+ // 鏈�鍚庣殑澶囩敤鏂规锛氫娇鐢╮edirectTo
+ setTimeout(() => {
+ console.log('寤惰繜浣跨敤redirectTo灏濊瘯杩斿洖棣栭〉');
+ wx.redirectTo({
+ url: '/pages/home/home?fromLogin=true',
+ success: () => console.log('redirectTo鎴愬姛杩斿洖棣栭〉'),
+ fail: (err) => console.error('鎵�鏈夎繑鍥炴柟娉曢兘澶辫触:', err)
+ });
+ }, 100);
+ }
+ });
+ };
+
+ // 鍏堝皾璇曚娇鐢╯witchTab锛堟煇浜涚増鏈彲鑳藉皢棣栭〉璁剧疆涓簍abBar锛�
+ wx.switchTab({
+ url: '/pages/home/home',
+ success: () => console.log('switchTab鎴愬姛杩斿洖棣栭〉'),
+ fail: (err) => {
+ console.log('switchTab澶辫触锛堝彲鑳介椤典笉鍦╰abBar涓級:', err);
+ useReLaunch();
+ }
+ });
},
/**
@@ -290,8 +398,8 @@
this.setData({
codeSent: true,
});
- // 鍚姩鍊掕鏃�
- this.startCountdown();
+ // 寮�濮嬪�掕鏃�
+ this.startCountDown();
})
.catch((error) => {
wx.showToast({
@@ -302,20 +410,39 @@
});
},
wsLogin() {
+ // 鏍囪涓烘墜鍔ㄥ鑸�
+ console.log('wsLogin璋冪敤锛岃缃甿anualNavigate=true');
+ this.setData({
+ manualNavigate: true
+ });
+
wx.login({
success: res => {
if (res.code) {
- console.log('鐧诲綍鎴愬姛锛岃幏鍙栧埌鐨刢ode:', res.code);
+ console.log('寰俊鐧诲綍鎴愬姛锛岃幏鍙栧埌鐨刢ode:', res.code);
// 鍙戦�� res.code 鍒板悗鍙版湇鍔″櫒鎹㈠彇 openId, sessionKey, unionId
this.verify(res.code)
} else {
- console.log('鐧诲綍澶辫触锛�' + res.errMsg);
+ 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: {
@@ -324,34 +451,111 @@
code: wxCode
}
};
+
post(params)
.then((data) => {
wx.hideLoading();
- 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))
- this.bindSuccess();
+
+ 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));
+
+ // 璁剧疆褰撳墠椤圭洰鐨則ag
+ const tag = this.data.selectedProject === 'JYG' ? 'ym' :
+ this.data.selectedProject === 'MQ' ? 'mq' :
+ this.data.selectedProject === 'TEST' ? 'test' : 'unknown';
+ getApp().globalData.tag = tag;
+
+ // 淇濆瓨鐢ㄦ埛淇℃伅
+ const userInfo = {
+ sessionId: String(data.content.sessionId),
+ clientId: String(data.content.clientId),
+ phone: this.data.phone,
+ token: data.content.token || '',
+ project: this.data.selectedProject,
+ tag: tag
+ };
+
+ // 淇濆瓨鍒板叏灞�鍙橀噺
+ 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: tag
+ });
+ 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,
+ title: error.msg || '楠岃瘉澶辫触',
icon: 'error',
duration: 3000,
});
- console.error('Failed to add item:', error);
});
},
bindSuccess: function () {
- if (!this.data.isButtonEnabled) return;
+ // 璁剧疆鏍囪锛岃〃绀洪�氳繃缂栫▼鏂瑰紡瀵艰埅
+ console.log('缁戝畾鎴愬姛锛屾渶缁堢‘璁anualNavigate=true');
+ this.setData({
+ manualNavigate: true,
+ fromBack: false // 纭繚涓嶄細琚瘑鍒负杩斿洖鎿嶄綔
+ });
+
+ // 璁剧疆鍏ㄥ眬鐧诲綍鐘舵��
+ getApp().globalData.isLoggedIn = true;
+
+
wx.showToast({
title: '缁戝畾鎴愬姛',
- icon: 'success'
- });
- // 璺宠浆鍒� TabBar 椤甸潰
- wx.redirectTo({
- url: '/pages/home/home' // 杩欓噷濉啓浣犳兂瑕佽烦杞殑 TabBar 椤甸潰璺緞
+ icon: 'success',
+ duration: 1500,
+ mask: true,
+ success: () => {
+ // 寤惰繜璺宠浆锛岀‘淇漈oast鏄剧ず瀹屾垚
+ setTimeout(() => {
+ console.log('鐧诲綍鎴愬姛锛屽噯澶囪烦杞埌棣栭〉');
+ // 璺宠浆鍒伴椤碉紝浣跨敤reLaunch鑰屼笉鏄痳edirectTo
+ wx.redirectTo({
+ url: '/pages/home/home'
+ });
+ }, 1500);
+ }
});
},
})
\ No newline at end of file
--
Gitblit v1.8.0