From fb805f6ff1d167951e94198b6e9fc320649e8643 Mon Sep 17 00:00:00 2001 From: zuoxiao <zuoxiao> Date: 星期五, 11 四月 2025 17:57:20 +0800 Subject: [PATCH] Merge branch 'doing' of http://8.140.179.55:20000/r/wm/pipIrr into doing --- pages/irrigation/irrigation.js | 464 +++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 378 insertions(+), 86 deletions(-) diff --git a/pages/irrigation/irrigation.js b/pages/irrigation/irrigation.js index 248efcc..18aac0c 100644 --- a/pages/irrigation/irrigation.js +++ b/pages/irrigation/irrigation.js @@ -13,7 +13,12 @@ currentList: [], // 褰撳墠鏄剧ず鐨勫垪琛� isRefreshing: false, // 鏄惁姝e湪鍒锋柊 isWXRefreshing: false, // 寰俊鍘熺敓涓嬫媺鍒锋柊鐘舵�� - projectId: null // Added to store projectId + projectId: null, // Added to store projectId + // 娣诲姞鍒嗛〉鐩稿叧鏁版嵁 + pageCurr: 1, // 褰撳墠椤电爜锛屼粠1寮�濮� + pageSize: 10, // 姣忛〉璁板綍鏁� + hasMoreData: true, // 鏄惁杩樻湁鏇村鏁版嵁 + loadingMore: false // 鏄惁姝e湪鍔犺浇鏇村 }, /** @@ -26,59 +31,116 @@ projectId: options.projectId }); } - this.loadIrrigationData(); - this.loadCompletedIrrigationData(); + + // 璁剧疆鍔犺浇鐘舵�� + wx.showLoading({ + title: '鍔犺浇涓�', + mask: true + }); + + // 榛樿鍏堝姞杞藉綋鍓嶇亴婧夎鍒� + this.loadIrrigationData() + .then(() => { + wx.hideLoading(); + }) + .catch(() => { + wx.hideLoading(); + }); }, /** * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず */ - onShow: function () { - this.loadIrrigationData(); - this.loadCompletedIrrigationData(); - }, + // onShow: function () { + // // 璁剧疆椤甸潰涓哄姞杞戒腑鐘舵�� + // wx.showLoading({ + // title: '鍔犺浇涓�', + // mask: true + // }); + + // // 鍏堝姞杞藉綋鍓嶉〉闈㈡墍闇�鐨勬暟鎹� + // const currentTab = this.data.currentTab; + // if (currentTab === 0) { + // // 褰撳墠鏍囩鏄�"褰撳墠鐏屾簤璁″垝"锛屽姞杞借繖涓� + // this.loadIrrigationData() + // .then(() => { + // wx.hideLoading(); + // }) + // .catch(() => { + // wx.hideLoading(); + // }); + // } else { + // // 褰撳墠鏍囩鏄�"鍘嗗彶璁″垝" + // // 鍙姞杞界涓�椤垫暟鎹紝淇濈暀鍒嗛〉鐘舵�� + // if (this.data.completedList.length === 0) { + // // 濡傛灉鍘嗗彶鍒楄〃涓虹┖锛岄噸缃垎椤电姸鎬� + // this.setData({ + // pageCurr: 1, + // hasMoreData: true + // }); + // } + + // this.loadCompletedIrrigationData() + // .then(() => { + // wx.hideLoading(); + // }) + // .catch(() => { + // wx.hideLoading(); + // }); + // } + // }, /** * 鍔犺浇杞亴鏁版嵁 */ loadIrrigationData: function () { - get({ - url: '/wx/plan/getNotCompletePlans' - }).then(res => { - if (res.success) { - const activeList = res.content.map(item => ({ - id: item.planId, - title: item.planName, - projectName: item.projectName || '鏈垎閰嶉」鐩�', - status: item.planState, - planStartTime: item.planStartTime, - planStopTime: item.planStopTime, - duration: item.duration, - startupMode: item.startupMode - })); + return new Promise((resolve, reject) => { + get({ + url: '/wx/plan/getNotCompletePlans' + }).then(res => { + if (res.success) { + const activeList = res.content.map(item => { + // 纭繚灏唒lanState杞崲涓哄瓧绗︿覆 + const planState = String(item.planState); + return { + id: item.planId, + title: item.planName, + projectName: item.projectName || '鏈垎閰嶉」鐩�', + status: planState, + planStartTime: item.planStartTime, + planStopTime: item.planStopTime, + duration: item.duration, + startupMode: item.startupMode + }; + }); - console.log('杞亴璁″垝鏁版嵁锛�', activeList); + console.log('杞亴璁″垝鏁版嵁锛�', activeList); + this.setData({ + activeList: activeList, + currentList: this.data.currentTab === 0 ? activeList : this.data.completedList, + isRefreshing: false, + isWXRefreshing: false + }); + resolve(); + } else { + wx.showToast({ + title: res.msg || '鍔犺浇澶辫触', + icon: 'none' + }); + reject(); + } + }).catch(err => { + console.error('鍔犺浇澶辫触:', err); + wx.showToast({ + title: '鍔犺浇澶辫触', + icon: 'none' + }); this.setData({ - activeList: activeList, - currentList: this.data.currentTab === 0 ? activeList : this.data.completedList, isRefreshing: false, isWXRefreshing: false }); - } else { - wx.showToast({ - title: res.msg || '鍔犺浇澶辫触', - icon: 'none' - }); - } - }).catch(err => { - wx.showToast({ - title: '鍔犺浇澶辫触', - icon: 'none' - }); - this.setData({ - isRefreshing: false, - isWXRefreshing: false + reject(); }); }); }, @@ -87,43 +149,85 @@ * 鍔犺浇宸插畬鎴愮殑杞亴鏁版嵁 */ loadCompletedIrrigationData: function () { - get({ - url: '/wx/plan/getCompletedPlans' - }).then(res => { - if (res.success) { - const completedList = res.content.map(item => ({ - id: item.planId, - title: item.planName, - projectName: item.projectName || '鏈垎閰嶉」鐩�', - status: item.planState, - planStartTime: item.planStartTime, - planStopTime: item.planStopTime, - duration: item.duration, - startupMode: item.startupMode - })); + // 濡傛灉姝e湪鍔犺浇鎴栨病鏈夋洿澶氭暟鎹紝鍒欎笉鍐嶈姹� + if (this.data.loadingMore && !this.data.hasMoreData) { + return Promise.resolve(); + } + + // 璁剧疆鍔犺浇鐘舵�� + this.setData({ + loadingMore: true + }); + + return new Promise((resolve, reject) => { + get({ + url: '/wx/plan/getCompletedPlans', + data: { + pageCurr: this.data.pageCurr, + pageSize: this.data.pageSize + } + }).then(res => { + if (res.success) { + const newCompletedList = res.content.obj ? res.content.obj.map(item => { + // 纭繚灏唒lanState杞崲涓哄瓧绗︿覆 + const planState = String(item.planState); + return { + id: item.planId, + title: item.planName, + projectName: item.projectName || '鏈垎閰嶉」鐩�', + status: planState, + planStartTime: item.planStartTime, + planStopTime: item.planStopTime, + duration: item.duration, + startupMode: item.startupMode + }; + }) : []; - console.log('宸插畬鎴愯疆鐏岃鍒掓暟鎹細', completedList); + console.log('宸插畬鎴愯疆鐏岃鍒掓暟鎹細', newCompletedList); + + // 鑾峰彇鍒嗛〉淇℃伅 + const pageInfo = { + itemTotal: res.content.itemTotal || 0, // 鎬昏褰曟暟 + pageCurr: res.content.pageCurr || 1, // 褰撳墠椤电爜 + pageSize: res.content.pageSize || 20, // 姣忛〉澶у皬 + pageTotal: res.content.pageTotal || 1 // 鎬婚〉鏁� + }; + + console.log('鍒嗛〉淇℃伅锛�', pageInfo); + // 鍒ゆ柇鏄惁杩樻湁鏇村鏁版嵁 - 褰撳墠椤靛皬浜庢�婚〉鏁� + const hasMoreData = pageInfo.pageCurr < pageInfo.pageTotal; + + // 鍚堝苟鏁版嵁锛岀涓�椤电洿鎺ユ浛鎹紝涔嬪悗鐨勯〉闈㈣拷鍔� + const completedList = this.data.pageCurr === 1 ? + newCompletedList : [...this.data.completedList, ...newCompletedList]; + + this.setData({ + completedList: completedList, + currentList: this.data.currentTab === 1 ? completedList : this.data.activeList, + isRefreshing: false, + isWXRefreshing: false, + loadingMore: false, + hasMoreData: hasMoreData + }); + resolve(); + } else { + this.setData({ + loadingMore: false + }); + // 涓嶆樉绀烘彁绀猴紝鍥犱负鍙兘鏄湪鍚庡彴鍔犺浇 + console.error('鍘嗗彶璁″垝鍔犺浇澶辫触:', res.msg); + reject(); + } + }).catch(err => { + console.error('鍘嗗彶璁″垝鍔犺浇澶辫触:', err); this.setData({ - completedList: completedList, - currentList: this.data.currentTab === 1 ? completedList : this.data.activeList, isRefreshing: false, - isWXRefreshing: false + isWXRefreshing: false, + loadingMore: false }); - } else { - wx.showToast({ - title: res.msg || '鍔犺浇澶辫触', - icon: 'none' - }); - } - }).catch(err => { - wx.showToast({ - title: '鍔犺浇澶辫触', - icon: 'none' - }); - this.setData({ - isRefreshing: false, - isWXRefreshing: false + // 涓嶆樉绀烘彁绀猴紝鍥犱负鍙兘鏄湪鍚庡彴鍔犺浇 + reject(); }); }); }, @@ -140,10 +244,58 @@ const activeList = this.data.activeList || []; const completedList = this.data.completedList || []; - this.setData({ - currentTab: index, - currentList: index === 0 ? activeList : completedList - }); + // 鍒囨崲鏍囩椤垫椂锛岀洿鎺ヤ娇鐢ㄥ凡鍔犺浇鐨勬暟鎹紝涓嶉噸鏂拌姹� + if (index === 1) { + // 鍒囨崲鍒板巻鍙茶鍒掓爣绛� + this.setData({ + currentTab: index, + currentList: completedList + }); + + // 濡傛灉鍘嗗彶鍒楄〃涓虹┖锛屾墠杩涜鍔犺浇 + if (completedList.length === 0) { + wx.showLoading({ + title: '鍔犺浇涓�', + mask: true + }); + + this.setData({ + pageCurr: 1, + hasMoreData: true, + loadingMore: true // 鏄剧ず鍔犺浇鎸囩ず鍣� + }); + + this.loadCompletedIrrigationData() + .then(() => { + wx.hideLoading(); + }) + .catch(() => { + wx.hideLoading(); + }); + } + } else { + // 鍒囨崲鍒板綋鍓嶇亴婧夎鍒掓爣绛� + this.setData({ + currentTab: index, + currentList: activeList + }); + + // 濡傛灉褰撳墠鐏屾簤璁″垝鍒楄〃涓虹┖锛屾墠杩涜鍔犺浇 + if (activeList.length === 0) { + wx.showLoading({ + title: '鍔犺浇涓�', + mask: true + }); + + this.loadIrrigationData() + .then(() => { + wx.hideLoading(); + }) + .catch(() => { + wx.hideLoading(); + }); + } + } }, /** @@ -153,9 +305,22 @@ const id = e.currentTarget.dataset.id; const status = e.currentTarget.dataset.status; + console.log('鐐瑰嚮椤圭洰鐘舵��:', status, '绫诲瀷:', typeof status); + + // 鍒ゆ柇璁″垝鐘舵�侊紝濡傛灉鏄�1(鏈彂甯�)锛屽垯鎻愮ず鐢ㄦ埛 + if (status === '1' || status === 1) { + wx.showModal({ + title: '鎻愮ず', + content: '褰撳墠璁″垝鏈彂甯冿紝璇峰彂甯冨悗鏌ョ湅', + showCancel: false, + confirmText: '纭' + }); + return; + } + // 瀵艰埅鍒扮亴婧夎鎯呴〉闈紝骞朵紶閫掑弬鏁� wx.navigateTo({ - url: `/pages/irrigationDetail/irrigationDetail?id=${id}&fromList=true` + url: `/pages/irrigationDetail/irrigationDetail?planId=${id}&fromList=true` }); }, @@ -213,17 +378,87 @@ content: '纭畾瑕佺粓姝㈣杞亴璁″垝鍚楋紵', success: (res) => { if (res.confirm) { - // 杩欓噷搴旇璋冪敤API缁堟杞亴璁″垝 - wx.showToast({ - title: '宸茬粓姝�', - icon: 'success' - }); - // 鍒锋柊鏁版嵁 - this.loadIrrigationData(); + this.postStop(id) } } }); }, + + /** + * 鐐瑰嚮鍒犻櫎鎸夐挳 + */ + onDelete: function (e) { + const id = e.currentTarget.dataset.id; + wx.showModal({ + title: '纭鍒犻櫎', + content: '纭畾瑕佸垹闄よ杞亴璁″垝鍚楋紵', + success: (res) => { + if (res.confirm) { + // 璋冪敤鍒犻櫎鎺ュ彛 + post({ + url: '/wx/plan/deletePlan', + data: { + planId: id, + operatorId: app.globalData.clientId + }, + isShowLoding: true + }).then(res => { + if (res.success) { + wx.showToast({ + title: '鍒犻櫎鎴愬姛', + icon: 'success' + }); + // 鍒锋柊鏁版嵁 + this.loadIrrigationData(); + } else { + wx.showToast({ + title: res.msg || '鍒犻櫎澶辫触', + icon: 'none' + }); + } + }).catch(err => { + console.error('鍒犻櫎澶辫触锛�', err); + wx.showToast({ + title: '鍒犻櫎澶辫触', + icon: 'none' + }); + }); + } + } + }); + }, + + //缁堟杞亴璁″垝 + postStop(planID){ + post({ + url: '/wx/plan/terminatePlan', + data: { + planId: planID, + operatorId: app.globalData.clientId + }, + isShowLoding: true + }).then(res => { + if (res.success) { + wx.showToast({ + title: '缁堟鎴愬姛', + icon: 'success' + }); + // 鍒锋柊鏁版嵁 + this.loadIrrigationData(); + } else { + wx.showToast({ + title: res.msg || '缁堟澶辫触', + icon: 'none' + }); + } + }).catch(err => { + console.error('缁堟澶辫触锛�', err); + wx.showToast({ + title: '缁堟澶辫触', + icon: 'none' + }); + }); + }, /** * 鐐瑰嚮绔嬪嵆鎵ц鎸夐挳 @@ -272,8 +507,27 @@ this.setData({ isRefreshing: true }); - this.loadIrrigationData(); - this.loadCompletedIrrigationData(); + + // 鏍规嵁褰撳墠鏍囩椤靛彧鍒锋柊瀵瑰簲鐨勬暟鎹� + const currentTab = this.data.currentTab; + if (currentTab === 0) { + // 褰撳墠鏍囩鏄�"褰撳墠鐏屾簤璁″垝"锛屽彧鍒锋柊杩欎釜 + this.loadIrrigationData() + .finally(() => { + this.setData({ isRefreshing: false }); + }); + } else { + // 褰撳墠鏍囩鏄�"鍘嗗彶璁″垝"锛屽皢鍒嗛〉閲嶇疆鍒扮涓�椤靛苟鍒锋柊 + this.setData({ + pageCurr: 1, + hasMoreData: true + }); + + this.loadCompletedIrrigationData() + .finally(() => { + this.setData({ isRefreshing: false }); + }); + } } }, @@ -284,7 +538,45 @@ this.setData({ isWXRefreshing: true }); - this.loadIrrigationData(); - this.loadCompletedIrrigationData(); + + // 鏍规嵁褰撳墠鏍囩椤靛彧鍒锋柊瀵瑰簲鐨勬暟鎹� + const currentTab = this.data.currentTab; + if (currentTab === 0) { + // 褰撳墠鏍囩鏄�"褰撳墠鐏屾簤璁″垝"锛屽彧鍒锋柊杩欎釜 + this.loadIrrigationData() + .finally(() => { + this.setData({ isWXRefreshing: false }); + }); + } else { + // 褰撳墠鏍囩鏄�"鍘嗗彶璁″垝"锛屽皢鍒嗛〉閲嶇疆鍒扮涓�椤靛苟鍒锋柊 + this.setData({ + pageCurr: 1, + hasMoreData: true + }); + + this.loadCompletedIrrigationData() + .finally(() => { + this.setData({ isWXRefreshing: false }); + }); + } + }, + + /** + * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁� + */ + onReachBottom: function() { + console.log('瑙﹀簳鍔犺浇鏇村, 褰撳墠鏍囩:', this.data.currentTab); + // 褰撳墠鏄凡瀹屾垚鍒楄〃涓旇繕鏈夋洿澶氭暟鎹椂鍔犺浇鏇村 + if (this.data.currentTab === 1 && this.data.hasMoreData && !this.data.loadingMore) { + this.setData({ + pageCurr: this.data.pageCurr + 1 + }); + + // 鍔犺浇鏇村鍘嗗彶鏁版嵁 + this.loadCompletedIrrigationData() + .catch(err => { + console.error('鍔犺浇鏇村鍘嗗彶鏁版嵁澶辫触:', err); + }); + } } }) \ No newline at end of file -- Gitblit v1.8.0