From ab8b53407a4d2213b1b3cdaf3cf649ef6c457dae Mon Sep 17 00:00:00 2001 From: zuoxiao <zuoxiao> Date: 星期一, 28 四月 2025 15:52:19 +0800 Subject: [PATCH] 优化首页项目选择逻辑,添加临时选择变量以支持未确认的项目选择;更新登录页面逻辑,确保从登录页返回时正确刷新数据并处理项目选择确认,提升用户体验。 --- pages/irrigationDetail/irrigationDetail.js | 289 +++++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 248 insertions(+), 41 deletions(-) diff --git a/pages/irrigationDetail/irrigationDetail.js b/pages/irrigationDetail/irrigationDetail.js index 5012c84..fff0558 100644 --- a/pages/irrigationDetail/irrigationDetail.js +++ b/pages/irrigationDetail/irrigationDetail.js @@ -4,52 +4,231 @@ */ data: { planCode: '', + projectName: '', startTime: '', + stopTime: '', isRefreshing: false, - projects: [] + groupList: [], + planId: '', + planStatusText: '', + planStatusClass: '', + failureCount: 0, + realStopTime: '', + originalStatus: '', + currentStatus: null }, /** * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇 */ onLoad: function (options) { - // 妯℃嫙鏁版嵁 - this.setData({ - planCode: 'IRR-2024-001', - startTime: '2024-03-20 08:00', - projects: [{ - id: 1, - name: '绀轰緥椤圭洰', - groups: [ - { - id: 1, - name: '杞亴缁�1', - status: 'pending', - statusText: '寰呯亴婧�', - startTime: '08:00', - endTime: '09:00', - duration: 60 - }, - { - id: 2, - name: '杞亴缁�2', - status: 'in_progress', - statusText: '鐏屾簤涓�', - startTime: '09:00', - endTime: '10:00', - duration: 60 - }, - { - id: 3, - name: '杞亴缁�3', - status: 'completed', - statusText: '宸插畬鎴�', - startTime: '10:00', - endTime: '11:00', - duration: 60 + if (options.planId) { + this.setData({ + planId: options.planId + }); + + // 鑾峰彇鏈�鏂扮姸鎬� + this.fetchPlanLatestState(options.planId).then(res => { + if (res.success) { + const currentStatus = res.content; + this.setData({ + currentStatus: currentStatus, + originalStatus: currentStatus + }); + + // 鏍规嵁鏈�鏂扮姸鎬佽皟鐢ㄧ浉搴旂殑鎺ュ彛 + if (currentStatus === 5) { + this.fetchTerminatedIrrigationData(options.planId); + } else { + this.fetchNormalIrrigationData(options.planId); } - ] - }] + } else { + wx.showToast({ + title: res.msg || '鑾峰彇鐘舵�佸け璐�', + icon: 'none' + }); + } + }).catch(err => { + console.error('鑾峰彇鐘舵�佸け璐ワ細', err); + wx.showToast({ + title: '鑾峰彇鐘舵�佸け璐�', + icon: 'none' + }); + }); + } else { + wx.showToast({ + title: '缂哄皯璁″垝ID', + icon: 'none' + }); + setTimeout(() => { + wx.navigateBack(); + }, 1500); + } + }, + + /** + * 鑾峰彇甯歌鐏屾簤璁″垝璇︾粏鏁版嵁 + */ + fetchNormalIrrigationData: function(planId) { + const { get } = require('../../api/request'); + + const data = { + planId: planId || this.data.planId, + }; + + get({ + url: 'wx/plan/getPublishResults', + isShowLoding: true, + useParams: true, + data: data + }).then(res => { + if (res.success) { + this.processIrrigationData(res.content); + } else { + wx.showToast({ + title: res.msg || '鑾峰彇鏁版嵁澶辫触', + icon: 'none' + }); + } + }).catch(err => { + console.error('璇锋眰澶辫触锛�', err); + wx.showToast({ + title: '璇锋眰澶辫触', + icon: 'none' + }); + }); + }, + + /** + * 鑾峰彇宸茬粓姝㈢亴婧夎鍒掕缁嗘暟鎹� + */ + fetchTerminatedIrrigationData: function(planId) { + const { get } = require('../../api/request'); + + const data = { + planId: planId || this.data.planId, + }; + + get({ + url: 'wx/plan/getTerminateResults', + isShowLoding: true, + useParams: true, + data: data + }).then(res => { + if (res.success) { + this.processIrrigationData(res.content); + } else { + wx.showToast({ + title: res.msg || '鑾峰彇鏁版嵁澶辫触', + icon: 'none' + }); + } + }).catch(err => { + console.error('璇锋眰澶辫触锛�', err); + wx.showToast({ + title: '璇锋眰澶辫触', + icon: 'none' + }); + }); + }, + + /** + * 鑾峰彇璁″垝鏈�鏂扮姸鎬� + */ + fetchPlanLatestState: function(planId) { + const { get } = require('../../api/request'); + + const data = { + planId: planId || this.data.planId, + }; + + return get({ + url: 'wx/plan/getPlanLatestState', + isShowLoding: true, + useParams: true, + data: data + }); + }, + + /** + * 澶勭悊鎺ュ彛杩斿洖鐨勬暟鎹� + */ + processIrrigationData: function(data) { + console.log('鐏屾簤璁″垝璇︽儏鏁版嵁锛�', data); + + // 澶勭悊杞亴缁勭姸鎬� + const statusMap = { + 2: {status: 'pending', statusText: '鏈紑濮�'}, + 3: {status: 'in_progress', statusText: '鐏屾簤涓�'}, + 4: {status: 'completed', statusText: '宸茬粨鏉�'}, + 5: {status: 'terminated', statusText: '涓�斿叧闃�'}, + 6: {status: 'canceled', statusText: '鍙栨秷寮�闃�'} + }; + + // 澶勭悊璁″垝鐘舵�� + let planStatusText = ''; + let planStatusClass = ''; + + // 鏍规嵁璁″垝鐨勭姸鎬佽缃笉鍚岀殑鏂囨湰鍜屾牱寮� + // 娉ㄦ剰锛氭帴鍙h繑鍥炵殑鏄痵tate鑰屼笉鏄痯lanState + console.log('璁″垝鐘舵�佸�硷細', data.state, '绫诲瀷锛�', typeof data.state); + + // 纭繚state鏄暟瀛楃被鍨� + const planState = parseInt(data.state); + + switch(planState) { + case 1: + planStatusText = '鑽夌'; + planStatusClass = 'draft'; + break; + case 2: + planStatusText = '鏈墽琛�'; + planStatusClass = 'published'; + break; + case 3: + planStatusText = '鎵ц涓�'; + planStatusClass = 'executing'; + break; + case 4: + planStatusText = '宸插畬鎴�'; + planStatusClass = 'completed'; + break; + case 5: + planStatusText = '宸茬粓姝�'; + planStatusClass = 'terminated'; + break; + default: + planStatusText = '鏈煡鐘舵��'; + planStatusClass = 'draft'; + console.log('鏈瘑鍒殑璁″垝鐘舵�佸�硷細', planState); + } + + // 杞崲鏁版嵁鏍煎紡 + const groupList = data.groups.map(group => { + const statusInfo = statusMap[group.state] || {status: 'unknown', statusText: '鏈煡鐘舵��'}; + + return { + id: group.groupId, + name: group.groupCode, + status: statusInfo.status, + statusText: statusInfo.statusText, + startTime: group.startTime, + endTime: group.stopTime, + duration: group.duration, + publishResult: group.publishResult || [] + }; + }); + + this.setData({ + planCode: data.planName, + projectName: data.projectName, + startTime: data.planStartTime, + stopTime: data.planStopTime, + realStopTime: data.realStopTime || '', + groupList: groupList, + planStatusText: planStatusText, + planStatusClass: planStatusClass, + failureCount: data.failureCount || 0 }); }, @@ -88,13 +267,41 @@ this.setData({ isRefreshing: true }); - - // 妯℃嫙鍒锋柊鏁版嵁 - setTimeout(() => { + + // 鑾峰彇鏈�鏂扮姸鎬佸苟鍒锋柊鏁版嵁 + this.fetchPlanLatestState(this.data.planId).then(res => { + if (res.success) { + const currentStatus = res.content; + this.setData({ + currentStatus: currentStatus + }); + + if (currentStatus === 5) { + this.fetchTerminatedIrrigationData(this.data.planId); + } else { + this.fetchNormalIrrigationData(this.data.planId); + } + } else { + wx.showToast({ + title: res.msg || '鑾峰彇鐘舵�佸け璐�', + icon: 'none' + }); + } + + // 瀹屾垚鍒锋柊 this.setData({ isRefreshing: false }); - }, 1000); + }).catch(err => { + console.error('鑾峰彇鐘舵�佸け璐ワ細', err); + wx.showToast({ + title: '鑾峰彇鐘舵�佸け璐�', + icon: 'none' + }); + this.setData({ + isRefreshing: false + }); + }); }, /** -- Gitblit v1.8.0