From dc49b96b835326a64056da9da0b43eabd2d96e32 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期五, 25 七月 2025 19:37:11 +0800
Subject: [PATCH] 常用取水口列表搜索接口兼容性
---
pages/home/home.js | 1913 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 1,831 insertions(+), 82 deletions(-)
diff --git a/pages/home/home.js b/pages/home/home.js
index 023bfac..a7d4ac1 100644
--- a/pages/home/home.js
+++ b/pages/home/home.js
@@ -4,6 +4,14 @@
get,
post
} = require('../../api/request.js');
+const config = require('../../api/config.js');
+const {
+ PROJECT_CONFIG
+} = require('../../utils/projectConfig.js');
+const {
+ ENV
+} = require('../../api/env.js');
+
Page({
/**
@@ -15,50 +23,98 @@
myItem: {},
waterIntakeName: "",
image: "/images/ic_head_bg.jpg",
- userPhone: "158****0723",
- userName: "寮犱笁",
+ userPhone: "",
+ userName: "璇风偣鍑荤櫥褰�",
scrollViewHeight: 0,
listData: [],
isRefreshing: false,
- isWXRefreshing: false
+ isWXRefreshing: false,
+ errorData: '', //閿欒鍐呭
+ showErrorDialog: false,
+ confirmBtn: {
+ content: '纭'
+ },
+ errorDialogTitle: "鍏抽榾閿欒",
+ showForceConfirm: false, //鏄惁寮哄埗寮�闃�
+ lastIntakeName: "",
+ showProjectDialog: false,
+ selectedProject: '',
+ tempSelectedProject: '', // 娣诲姞涓存椂閫夋嫨鍙橀噺锛岀敤浜庝繚瀛樼敤鎴峰湪瀵硅瘽妗嗕腑閫夋嫨浣嗗皻鏈‘璁ょ殑椤圭洰
+ avatarTapCount: 0,
+ isFromLogin: false,
+ showTipDialog: '',
+ projectConfig: PROJECT_CONFIG, // 娣诲姞椤圭洰閰嶇疆鍒癲ata涓�
+ showInfoDialog: false,
+ projectList: []
},
openValve: function (e) {
+ const app = getApp();
+ // 妫�鏌ュ綋鍓嶉」鐩槸鍚﹂渶瑕佺櫥褰�
+ const currentProject = app.globalData.selectedProject;
+ if (currentProject && PROJECT_CONFIG[currentProject] && PROJECT_CONFIG[currentProject].needLogin) {
+ // 闇�瑕佺櫥褰曠殑椤圭洰锛屾鏌ユ槸鍚﹀凡鐧诲綍
+ if (!app.globalData.isLoggedIn) {
+ // 鏈櫥褰曪紝鏄剧ず鎻愮ず骞堕樆姝㈡搷浣�
+ wx.showToast({
+ title: '璇峰厛鐧诲綍',
+ icon: 'error',
+ duration: 2000
+ });
+
+ // 鑾峰彇椤圭洰閰嶇疆
+ const projectConfig = PROJECT_CONFIG[currentProject];
+ if (projectConfig) {
+ // 璇㈤棶鐢ㄦ埛鏄惁鍓嶅線鐧诲綍
+ wx.showModal({
+ title: '鎻愮ず',
+ content: '鎮ㄩ渶瑕佺櫥褰曞悗鎵嶈兘浣跨敤寮�闃�鍔熻兘锛屾槸鍚︾珛鍗崇櫥褰曪紵',
+ confirmText: '鍓嶅線鐧诲綍',
+ cancelText: '鍙栨秷',
+ success: (res) => {
+ if (res.confirm) {
+ // 鐢ㄦ埛鐐瑰嚮纭锛岀洿鎺ヨ皟鐢╳xLogin鏂规硶
+ this.wxLogin();
+ }
+ }
+ });
+ }
+ return;
+ }
+ }
+
+ // 宸茬櫥褰曟垨涓嶉渶瑕佺櫥褰曠殑椤圭洰锛屾墽琛屽紑闃�鎿嶄綔
wx.navigateTo({
url: '/pages/waterIntake/waterIntake',
})
},
- calculateScrollViewHeight: function () {
- wx.createSelectorQuery().selectAll('.list-item').boundingClientRect((rects) => {
- let totalHeight = rects.reduce((sum, rect) => sum + rect.height, 0);
- this.setData({
- scrollViewHeight: totalHeight,
- });
- }).exec();
- },
- startPullDownRefresh() {
- if (!this.data.isWXRefreshing) {
- var self = this;
- console.log(this.data.isRefreshing);
- this.setData({
- isRefreshing: true
- });
- this.getOpenList();
+ // calculateScrollViewHeight: function () {
+ // wx.createSelectorQuery().selectAll('.list-item').boundingClientRect((rects) => {
+ // let totalHeight = rects.reduce((sum, rect) => sum + rect.height, 0);
+ // this.setData({
+ // scrollViewHeight: totalHeight,
+ // });
+ // }).exec();
+ // },
+ startPullDownRefresh() {
+ if (getApp().globalData.isLoggedIn) {
+ if (!this.data.isWXRefreshing) {
+ var self = this;
+ console.log(this.data.isRefreshing);
+ this.setData({
+ isRefreshing: true
+ });
+ this.getOpenList();
+ }
+ } else {
+ wx.showToast({
+ title: '璇峰厛鐧诲綍',
+ icon: 'error'
+ })
}
- },
- //鑾峰彇鐢ㄦ埛鏁版嵁
- getUserData() {
- get('/items')
- .then((data) => {
- this.setData({
- items: data
- });
- })
- .catch((error) => {
- console.error('Failed to fetch data:', error);
- });
+
},
@@ -67,62 +123,294 @@
* 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
*/
onLoad(options) {
- // 浣跨敤 wx.nextTick 绛夊緟椤甸潰娓叉煋瀹屾垚
- wx.nextTick(() => {
- this.calculateScrollViewHeight();
- });
+ console.log('home椤甸潰onLoad寮�濮嬶紝鍙傛暟:', options);
+
+ // 鍒濆鍖栭」鐩垪琛ㄦ暟鎹�
+ this.initProjectList();
+
//褰撳紑闃�鎴愬姛鍚庤皟鐢ㄥ埛鏂�
- console.log("onLoad锛�" + options.param);
- if (options.param) {
- wx.showToast({
- title: '寮�闃�鎴愬姛',
- icon: 'success',
- duration: 3000
+ if (options.param === "1" || options.param === "2") {
+ this.setData({
+ options: options
})
- this.getOpenList();
}
- this.getUserDataBySession();
+ // 妫�鏌ユ槸鍚︿粠鐧诲綍椤甸潰杩斿洖
+ let fromLogin = false;
+
+ // 妫�鏌RL鍙傛暟
+ if (options && options.fromLogin === 'true') {
+ console.log('妫�娴嬪埌URL鍙傛暟fromLogin=true');
+ fromLogin = true;
+ }
+
+ console.log('home椤甸潰鍔犺浇锛宖romLogin:', fromLogin, '鍙傛暟:', options);
+
+ // 璁剧疆fromLogin鏍囧織
+ if (fromLogin) {
+ console.log('璁剧疆isFromLogin=true');
+ this.setData({
+ isFromLogin: true
+ });
+ }
+
+ // 寤惰繜鎵ц鍓╀綑鐨勫垵濮嬪寲杩囩▼锛屼互纭繚涓存椂鏍囪鍜孶RL鍙傛暟鑳借姝g‘澶勭悊
+ setTimeout(() => {
+ this.initializePage(options, fromLogin);
+ }, 100);
+ },
+
+ // 鍒濆鍖栭」鐩垪琛ㄦ暟鎹�
+ initProjectList() {
+ // 灏哖ROJECT_CONFIG瀵硅薄杞崲涓烘暟缁勶紝鏂逛究鍦ㄨ鍥句腑閬嶅巻
+ const projectList = Object.entries(PROJECT_CONFIG).map(([key, config]) => ({
+ key: key, // 浣跨敤key浣滀负椤圭洰鏍囪瘑(JYG銆丮Q绛�)
+ tag: config.tag, // 淇濈暀tag瀛楁锛堝師閰嶇疆涓凡鏈夌殑鏍囪瘑锛屽ym銆乵q绛夛級
+ displayName: config.displayName, // 鏄剧ず鍚嶇О
+ ...config // 鍏朵粬閰嶇疆灞炴��
+ }));
+
+ // 鑾峰彇褰撳墠宸查�夋嫨鐨勯」鐩紝榛樿涓篔YG
+ let currentSelectedProject = 'JYG';
+
+ // 灏濊瘯浠庡叏灞�鍙橀噺鑾峰彇
+ const app = getApp();
+ if (app && app.globalData && app.globalData.selectedProject) {
+ currentSelectedProject = app.globalData.selectedProject;
+ } else {
+ // 灏濊瘯浠庢湰鍦板瓨鍌ㄨ幏鍙�
+ try {
+ const savedProject = wx.getStorageSync('selectedProject');
+ if (savedProject) {
+ currentSelectedProject = savedProject;
+ }
+ } catch (e) {
+ console.error('浠庢湰鍦板瓨鍌ㄨ幏鍙栭」鐩け璐�:', e);
+ }
+ }
+
+ // 璁剧疆鍒伴〉闈㈡暟鎹腑
+ this.setData({
+ projectList,
+ selectedProject: currentSelectedProject
+ });
+
+ console.log('椤圭洰鍒楄〃宸插垵濮嬪寲:', projectList, '褰撳墠閫変腑椤圭洰:', currentSelectedProject);
+ },
+
+ // 鏂板鐨勫垵濮嬪寲椤甸潰杈呭姪鍑芥暟锛屽垎绂诲嚭onLoad涓殑閫昏緫浠ヤ究寤惰繜鎵ц
+ initializePage(options, fromLogin) {
+ // 妫�鏌ユ槸鍚﹀凡閫夋嫨椤圭洰
+ const {
+ PROJECT_URLS
+ } = require('../../api/config.js');
+
+ // 纭繚鍏ㄥ眬鍙橀噺瀛樺湪
+ getApp().globalData = getApp().globalData || {};
+
+ storage.getItemSafe('selectedProject')
+ .then((project) => {
+ if (project) {
+ this.setData({
+ selectedProject: project
+ });
+
+ // 璁剧疆 baseUrl
+ const serverUrl = PROJECT_CONFIG[project]?.serverUrl;
+ if (serverUrl) {
+ getApp().globalData.baseUrl = serverUrl;
+ getApp().globalData.selectedProject = project;
+ console.log('璁剧疆baseUrl:', serverUrl);
+ }
+
+ // 鏍规嵁椤圭洰璁剧疆瀵瑰簲鐨則ag
+ const projectConfig = PROJECT_CONFIG[project];
+ if (projectConfig) {
+ getApp().globalData.tag = projectConfig.tag;
+
+ // 鏍规嵁椤圭洰鏄惁闇�瑕佺櫥褰曪紝璁剧疆涓嶅悓鐨剈serName
+ if (projectConfig.needLogin === false) {
+ // 涓嶉渶瑕佺櫥褰曠殑椤圭洰锛屾樉绀洪」鐩悕绉�
+ this.setData({
+ userName: projectConfig.displayName
+ });
+ } else {
+ // 闇�瑕佺櫥褰曠殑椤圭洰锛屾樉绀�"璇风偣鍑荤櫥褰�"
+ this.setData({
+ userName: "璇风偣鍑荤櫥褰�"
+ });
+ }
+ }
+
+ // 鏍规嵁椤圭洰璁剧疆瀵瑰簲鐨刼perator鍜宑lientId
+ if (projectConfig && projectConfig.operatorId) {
+ getApp().globalData.operator = projectConfig.operatorId;
+ getApp().globalData.clientId = projectConfig.operatorId;
+ getApp().globalData.isLoggedIn = true;
+ getApp().globalData.sessionId = projectConfig.operatorId;
+
+ // 濡傛灉鏈塿cId锛屼篃璁剧疆
+ if (projectConfig.vcId) {
+ getApp().globalData.vcId = projectConfig.vcId;
+ }
+
+ // 鎸佷箙鍖栧瓨鍌ㄩ」鐩弬鏁�
+ const params = {
+ operator: projectConfig.operatorId,
+ clientId: projectConfig.operatorId,
+ isLoggedIn: true,
+ sessionId: projectConfig.operatorId
+ };
+
+ if (projectConfig.vcId) {
+ params.vcId = projectConfig.vcId;
+ }
+
+ storage.setItem(`${project}_params`, params);
+ }
+
+ // 缁х画鍒濆鍖栭〉闈�
+ this.continueInitPage(options);
+ } else {
+ // 棣栨杩涘叆锛屾樉绀洪」鐩�夋嫨寮圭獥
+ this.setData({
+ showProjectDialog: true
+ });
+ return Promise.reject({
+ type: 'project_not_selected',
+ message: '鏈�夋嫨椤圭洰'
+ }); // 缁堟鍚庣画澶勭悊
+ }
+ })
+ .then(() => {
+ // 缁х画鍒濆鍖栭〉闈�
+ this.continueInitPage(options);
+ })
+ .catch(err => {
+ // 灏嗛敊璇璞¤鑼冨寲
+ const error = typeof err === 'object' ? err : {
+ type: 'unknown',
+ message: String(err)
+ };
+ console.log('鑾峰彇瀛樺偍鏁版嵁涓柇:', error.message);
+
+ // 濡傛灉鏄粠鐧诲綍椤佃繑鍥炴垨宸茬櫥褰曪紝涓嶅啀璺宠浆
+ if (fromLogin) {
+ console.log('浠庣櫥褰曢〉杩斿洖鎴栧凡鐧诲綍锛岀户缁垵濮嬪寲椤甸潰');
+ this.continueInitPage(options);
+ return;
+ }
+
+ // 澶勭悊鏈�夋嫨椤圭洰鐨勬儏鍐�
+ if (error.type === 'project_not_selected') {
+ console.log('鏈�夋嫨椤圭洰锛屾樉绀洪」鐩�夋嫨寮圭獥');
+ this.setData({
+ showProjectDialog: true
+ });
+ return;
+ }
+
+ // 鍏朵粬鏈煡閿欒锛屽皾璇曠户缁垵濮嬪寲椤甸潰
+ console.warn('鏈煡閿欒锛屽皾璇曠户缁垵濮嬪寲椤甸潰:', error);
+ this.continueInitPage(options);
+ });
},
/**
* 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚
*/
onReady() {
- //鍒ゆ柇鏈湴鏄惁淇濆瓨sessionId
- if (storage.isHasKeySync("sessionId")) {
- storage.getItem('sessionId').then((data) => {
- this.setData({
- sessionId: data
- });
- if (sessionId !== "") {}
- }).catch((err) => {
- console.error('Failed to load parameter:', err);
- });
- } else {
- console.log('Failed to load parameter:false');
+ // 妫�鏌ユ槸鍚︽湁options鍜宲aram
+ if (this.data.options && this.data.options.param) {
+ if (this.data.options.param === "1" || this.data.options.param === "2") {
+ this.getOpenList();
+ }
}
- this.getOpenList();
},
/**
* 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず
*/
onShow() {
+ console.log('home椤甸潰onShow寮�濮�');
+ // 鑾峰彇褰撳墠椤甸潰鐨勫弬鏁�
+ const pages = getCurrentPages();
+ const currentPage = pages[pages.length - 1];
+
+ let fromLogin = false;
+
+ // 妫�鏌ユ槸鍚︽湁fromLogin鍙傛暟
+ if (currentPage && currentPage.options && currentPage.options.fromLogin === 'true') {
+ console.log('onShow: 妫�娴嬪埌fromLogin鍙傛暟锛岃缃甶sFromLogin鏍囪');
+ fromLogin = true;
+ this.setData({
+ isFromLogin: true
+ });
+ }
+
+ // 灏濊瘯鑾峰彇eventChannel锛岀敤浜庣洃鍚櫥褰曢〉闈㈠彂鍥炵殑娑堟伅
+ try {
+ const eventChannel = currentPage.getOpenerEventChannel();
+ if (eventChannel && eventChannel.on) {
+ eventChannel.on('fromLogin', (data) => {
+ console.log('onShow: 鎺ユ敹鍒扮櫥褰曢〉闈㈣繑鍥炵殑娑堟伅', data);
+ if (data && data.fromLogin) {
+ fromLogin = true;
+ this.setData({
+ isFromLogin: true
+ });
+
+ // 鐧诲綍鎴愬姛鍚庡埛鏂版暟鎹�
+ console.log('鐧诲綍鎴愬姛鍚庡埛鏂版暟鎹�');
+ this.initData();
+ }
+ });
+ }
+ } catch (e) {
+ console.error('鑾峰彇eventChannel澶辫触:', e);
+ }
+
+ // 鍒濆鍖栧鐞�
+ if (fromLogin || this.data.isFromLogin) {
+ console.log('onShow: 浠庣櫥褰曢〉杩斿洖锛屼笉杩涜鐧诲綍妫�鏌�');
+
+ // 濡傛灉鏄粠鐧诲綍椤佃繑鍥烇紝閲嶆柊鍔犺浇鏁版嵁
+ this.initData();
+ } else {
+ console.log('onShow: 姝e父鏄剧ず椤甸潰');
+ // 寤惰繜妫�鏌ョ櫥褰曠姸鎬侊紝纭繚鑳芥纭瘑鍒复鏃舵爣璁�
+ setTimeout(() => {
+ this.checkLoginStatusIfNeeded();
+ }, 300);
+ }
+ },
+
+ // 妫�鏌ョ櫥褰曠姸鎬侊紙浠呭湪闇�瑕佹椂锛�
+ checkLoginStatusIfNeeded() {
+ // 鍐嶆纭鏄惁浠庣櫥褰曢〉杩斿洖
+ if (this.getFromLogin()) {
+ console.log('妫�娴嬪埌浠庣櫥褰曢〉杩斿洖鐨勬爣璁帮紝涓嶈繘琛岀櫥褰曟鏌�');
+ return;
+ }
+
+ console.log('鎵ц鐧诲綍鐘舵�佹鏌�');
+ this.checkLoginStatus();
},
/**
* 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌
*/
onHide() {
-
+ // 椤甸潰闅愯棌鏃惰�冭檻娓呯悊涓存椂鏍囪
+ this.cleanupTempMarkers();
},
/**
* 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍗歌浇
*/
onUnload() {
-
+ // 椤甸潰鍗歌浇鏃舵竻鐞嗕复鏃舵爣璁�
+ this.cleanupTempMarkers();
},
/**
@@ -163,18 +451,135 @@
})
},
openValveList() {
- // wx.navigateTo({
- // url: '/pages/valveList/valveList',
- // })
- wx.showToast({
- title: '鏆傛湭寮�鏀�',
- icon: 'none'
+ const app = getApp();
+ // 妫�鏌ュ綋鍓嶉」鐩槸鍚﹂渶瑕佺櫥褰�
+ const currentProject = app.globalData.selectedProject;
+ if (currentProject && PROJECT_CONFIG[currentProject] && PROJECT_CONFIG[currentProject].needLogin) {
+ // 闇�瑕佺櫥褰曠殑椤圭洰锛屾鏌ユ槸鍚﹀凡鐧诲綍
+ if (!app.globalData.isLoggedIn) {
+ // 鏈櫥褰曪紝鏄剧ず鎻愮ず骞堕樆姝㈡搷浣�
+ wx.showToast({
+ title: '璇峰厛鐧诲綍',
+ icon: 'error',
+ duration: 2000
+ });
+
+ // 鑾峰彇椤圭洰閰嶇疆
+ const projectConfig = PROJECT_CONFIG[currentProject];
+ if (projectConfig) {
+ // 璇㈤棶鐢ㄦ埛鏄惁鍓嶅線鐧诲綍
+ wx.showModal({
+ title: '鎻愮ず',
+ content: '鎮ㄩ渶瑕佺櫥褰曞悗鎵嶈兘鏌ョ湅寮�鍏抽榾璁板綍锛屾槸鍚︾珛鍗崇櫥褰曪紵',
+ confirmText: '鍓嶅線鐧诲綍',
+ cancelText: '鍙栨秷',
+ success: (res) => {
+ if (res.confirm) {
+ // 鐢ㄦ埛鐐瑰嚮纭锛岀洿鎺ヨ皟鐢╳xLogin鏂规硶
+ this.wxLogin();
+ }
+ }
+ });
+ }
+ return;
+ }
+ }
+
+ // 宸茬櫥褰曟垨涓嶉渶瑕佺櫥褰曠殑椤圭洰锛屾墽琛屾煡鐪嬭褰曟搷浣�
+ wx.navigateTo({
+ url: '/pages/valveList/valveList',
})
},
feedBack() {
wx.showToast({
title: '鏆傛湭寮�鏀�',
icon: 'none'
+ })
+ },
+ //瑙g粦鐢ㄦ埛
+ unbind() {
+ // 妫�鏌ュ綋鍓嶉」鐩槸鍚﹂渶瑕佺櫥褰�
+ const currentProject = getApp().globalData.selectedProject;
+ const projectConfig = PROJECT_CONFIG[currentProject];
+
+ // 濡傛灉褰撳墠椤圭洰閰嶇疆涓轰笉闇�瑕佺櫥褰曪紝鍒欐彁绀虹敤鎴峰苟鎵撳紑椤圭洰閫夋嫨寮圭獥
+ if (projectConfig && !projectConfig.needLogin) {
+ wx.showModal({
+ title: '鍒囨崲椤圭洰',
+ content: '鏄惁纭畾瑙g粦锛�',
+ confirmText: '纭',
+ cancelText: '鍙栨秷',
+ success: (res) => {
+ if (res.confirm) {
+ // 鏄剧ず椤圭洰閫夋嫨寮圭獥
+ this.setData({
+ showProjectDialog: true
+ });
+ }
+ }
+ });
+ return;
+ }
+
+ // 濡傛灉宸茬櫥褰曪紝鏄剧ず瑙g粦纭瀵硅瘽妗�
+ if (getApp().globalData.isLoggedIn) {
+ wx.showModal({
+ title: '瑙g粦纭',
+ content: '纭畾瑕佽В缁戝綋鍓嶈处鍙峰悧锛熻В缁戝悗灏嗘棤娉曚娇鐢ㄧ浉鍏冲姛鑳斤紝闇�閲嶆柊缁戝畾銆�',
+ confirmText: '纭瑙g粦',
+ confirmColor: '#e34d59',
+ cancelText: '鍙栨秷',
+ success: (res) => {
+ if (res.confirm) {
+ this.unBindPost();
+ }
+ }
+ });
+ } else {
+ wx.showToast({
+ title: '杩樻湭缁戝畾',
+ icon: 'error'
+ });
+ }
+ },
+ irrigation() {
+ const app = getApp();
+ // 妫�鏌ュ綋鍓嶉」鐩槸鍚﹂渶瑕佺櫥褰�
+ const currentProject = app.globalData.selectedProject;
+ if (currentProject && PROJECT_CONFIG[currentProject] && PROJECT_CONFIG[currentProject].needLogin) {
+ // 闇�瑕佺櫥褰曠殑椤圭洰锛屾鏌ユ槸鍚﹀凡鐧诲綍
+ if (!app.globalData.isLoggedIn) {
+ // 鏈櫥褰曪紝鏄剧ず鎻愮ず骞堕樆姝㈡搷浣�
+ wx.showToast({
+ title: '璇峰厛鐧诲綍',
+ icon: 'error',
+ duration: 2000
+ });
+
+ // 鑾峰彇椤圭洰閰嶇疆
+ const projectConfig = PROJECT_CONFIG[currentProject];
+ if (projectConfig) {
+ // 璇㈤棶鐢ㄦ埛鏄惁鍓嶅線鐧诲綍
+ wx.showModal({
+ title: '鎻愮ず',
+ content: '鎮ㄩ渶瑕佺櫥褰曞悗鎵嶈兘浣跨敤杞亴鍔熻兘锛屾槸鍚︾珛鍗崇櫥褰曪紵',
+ confirmText: '鍓嶅線鐧诲綍',
+ cancelText: '鍙栨秷',
+ success: (res) => {
+ if (res.confirm) {
+ // 鐢ㄦ埛鐐瑰嚮纭锛岀洿鎺ヨ皟鐢╳xLogin鏂规硶
+ this.wxLogin();
+ }
+ }
+ });
+ }
+ return;
+ }
+ }
+
+ // 宸茬櫥褰曟垨涓嶉渶瑕佺櫥褰曠殑椤圭洰锛屾墽琛岃疆鐏屾搷浣�
+ wx.navigateTo({
+ url: '/pages/irrigation/irrigation',
})
},
handleChange(e) {
@@ -187,7 +592,16 @@
});
},
closeDialog() {
+ console.log("closeDialog");
this.setData({
+ showConfirm: false,
+ showErrorDialog: false,
+ showForceConfirm: false
+ });
+ },
+ cancelDialog() {
+ this.setData({
+ showForceConfirm: false,
showConfirm: false
});
},
@@ -207,13 +621,14 @@
rtuAddr: rtuAddr,
vcNum: vcNum, //铏氭嫙鍗D
orderNo: orderNo,
- operator: app.globalData.sessionId //鎿嶄綔鍛�
+ operator: app.globalData.clientId //鎿嶄綔鍛�
};
console.log("postCloseValaue" + data);
post({
url: "wx/valve/close_wx",
data: data,
- isShowLoding: false
+ isShowLoding: false,
+ timeout: 185000
}).then(response => {
// 澶勭悊鎴愬姛鍝嶅簲
@@ -228,16 +643,22 @@
})
}).catch(error => {
wx.hideLoading();
- if (error.code === "1002") {
- wx.showToast({
- title: '鍏抽榾澶辫触',
- icon: 'error',
- duration: 3000 // 鎻愮ず鐨勬寔缁椂闂达紝鍗曚綅姣
- })
- }
// 澶勭悊閿欒鍝嶅簲
console.error('璇锋眰澶辫触:', error);
-
+ if (error.code === "ECONNABORTED" || error.message?.includes('timeout')) {
+ // 澶勭悊瓒呮椂閿欒
+ this.setData({
+ showErrorDialog: true,
+ errorData: "閫氫俊瓒呮椂锛岃绋嶅悗鍐嶈瘯",
+ errorDialogTitle: "鍏抽榾閿欒"
+ })
+ } else {
+ this.setData({
+ showErrorDialog: true,
+ errorData: error.msg,
+ errorDialogTitle: "鍏抽榾閿欒"
+ })
+ }
});
},
/**
@@ -245,23 +666,90 @@
*/
getOpenList() {
const app = getApp();
+ if (!getApp().globalData.isLoggedIn) {
+ wx.showToast({
+ title: '璇峰厛鐧诲綍',
+ icon: 'error'
+ })
+ this.setData({
+ isRefreshing: false, // 灏唗riggered灞炴�ц缃负false锛岃〃绀轰笅鎷夊埛鏂板凡瀹屾垚
+ isWXRefreshing: false, // 灏唗riggered灞炴�ц缃负false锛岃〃绀轰笅鎷夊埛鏂板凡瀹屾垚
+ });
+ return;
+ }
+ // 妫�鏌ユ槸鍚︿粠鐧诲綍椤佃繑鍥�
+ const fromLogin = this.getFromLogin();
+
+ // 妫�鏌lientId鏄惁瀛樺湪
+ if (!app.globalData.clientId) {
+ console.log('getOpenList: clientId涓嶅瓨鍦紝涓嶆墽琛孉PI璇锋眰');
+
+ // 濡傛灉鏄粠鐧诲綍椤佃繑鍥烇紝灏辨樉绀虹┖鍒楄〃鑰屼笉鏄敊璇彁绀�
+ this.setData({
+ listData: [],
+ isRefreshing: false,
+ isWXRefreshing: false
+ });
+
+ // 濡傛灉涓嶆槸浠庣櫥褰曢〉杩斿洖涓斾笉澶勪簬鍒锋柊鐘舵�侊紝鑰冭檻妫�鏌ョ櫥褰曠姸鎬�
+ if (!fromLogin && !this.data.isRefreshing && !this.data.isWXRefreshing) {
+ console.log('getOpenList: 闈炲埛鏂扮姸鎬佷笅妫�娴嬪埌鏃燾lientId锛屽皾璇曡嚜鍔ㄧ櫥褰�');
+ // 寤惰繜璋冪敤寰俊鐧诲綍锛屽皾璇曡嚜鍔ㄦ仮澶嶄細璇�
+ setTimeout(() => {
+ if (!getApp().globalData.clientId && !this.getFromLogin()) {
+ this.wxLogin();
+ }
+ }, 1000);
+ }
+ return;
+ }
+
+ console.log('getOpenList: 寮�濮嬭幏鍙栧垪琛ㄦ暟鎹�, clientId:', app.globalData.clientId);
+
const params = {
url: 'wx/valve/get',
data: {
- operator: app.globalData.sessionId
+ operator: app.globalData.clientId
}
};
+
get(params).then(data => {
+ console.log('鑾峰彇鍒楄〃鏁版嵁鎴愬姛:', data);
this.setData({
listData: data.content,
isRefreshing: false, // 灏唗riggered灞炴�ц缃负false锛岃〃绀轰笅鎷夊埛鏂板凡瀹屾垚
isWXRefreshing: false, // 灏唗riggered灞炴�ц缃负false锛岃〃绀轰笅鎷夊埛鏂板凡瀹屾垚
- })
+ });
+ this.updateDisplayText();
+
}).catch(err => {
+ console.error('鑾峰彇鍒楄〃鏁版嵁澶辫触:', err);
// 閿欒鍥炶皟
this.setData({
isRefreshing: false, // 灏唗riggered灞炴�ц缃负false锛岃〃绀轰笅鎷夊埛鏂板凡瀹屾垚
- })
+ isWXRefreshing: false, // 灏唗riggered灞炴�ц缃负false锛岃〃绀轰笅鎷夊埛鏂板凡瀹屾垚
+ });
+
+ // 妫�鏌ラ敊璇被鍨�
+ if (err && err.code === '0003') {
+ console.log('浼氳瘽鏃犳晥鎴栬繃鏈燂紝浣嗕笉杩涜璺宠浆');
+
+ // 濡傛灉涓嶆槸浠庣櫥褰曢〉杩斿洖锛屾樉绀洪敊璇彁绀�
+ if (!fromLogin) {
+ wx.showToast({
+ title: '鐧诲綍宸茶繃鏈燂紝璇峰埛鏂伴噸璇�',
+ icon: 'none',
+ duration: 3000
+ });
+ }
+ } else {
+ // 涓�鑸敊璇紝鏄剧ず閿欒淇℃伅
+ wx.showToast({
+ title: err.msg || '鑾峰彇鍒楄〃鏁版嵁澶辫触',
+ icon: 'none',
+ duration: 3000
+ });
+ }
});
},
/**
@@ -277,21 +765,51 @@
//鏍规嵁session鑾峰彇鍐滄埛淇℃伅
getUserDataBySession() {
const app = getApp();
+
+ // 妫�鏌ユ槸鍚︽湁sessionId
+ if (!app.globalData.sessionId) {
+ console.log('getUserDataBySession: sessionId涓嶅瓨鍦紝涓嶆墽琛孉PI璇锋眰');
+ return;
+ }
+
+ console.log('getUserDataBySession: 寮�濮嬭幏鍙栫敤鎴锋暟鎹�, sessionId:', app.globalData.sessionId);
+
const params = {
- url: 'sell/client/simple_info',
+ url: 'wx/client/simple_info',
data: {
sessionId: app.globalData.sessionId
}
};
+
get(params).then(data => {
+ console.log('鑾峰彇鐢ㄦ埛鏁版嵁鎴愬姛:', data);
this.setData({
userName: data.content.clientName,
userPhone: this.maskPhoneNumber(data.content.phone)
- })
+ });
}).catch(err => {
- // 閿欒鍥炶皟
+ console.error('鑾峰彇鐢ㄦ埛鏁版嵁澶辫触:', err);
+ // 閿欒鍥炶皟锛屼絾涓嶈繘琛岄〉闈㈣烦杞�
- })
+ // 妫�鏌ラ敊璇被鍨�
+ if (err && err.code === '0003') {
+ console.log('浼氳瘽鏃犳晥鎴栬繃鏈燂紝浣嗕笉杩涜璺宠浆');
+ // 涓嶅啀鐩存帴璺宠浆鍒扮櫥褰曢〉
+
+ // 娓呴櫎浼氳瘽淇℃伅
+ app.globalData.sessionId = '';
+ app.globalData.isLoggedIn = false;
+
+ // 濡傛灉涓嶆槸浠庣櫥褰曢〉杩斿洖锛屾樉绀洪敊璇彁绀�
+ if (!this.getFromLogin()) {
+ wx.showToast({
+ title: '鐧诲綍宸茶繃鏈燂紝璇烽噸鏂扮櫥褰�',
+ icon: 'none',
+ duration: 3000
+ });
+ }
+ }
+ });
},
maskPhoneNumber(phoneNumber) {
if (phoneNumber.length !== 11) {
@@ -300,8 +818,1239 @@
// 浣跨敤姝e垯琛ㄨ揪寮忔浛鎹腑闂村洓浣嶆暟瀛椾负鏄熷彿
const maskedPhoneNumber = phoneNumber.replace(/^(\d{3})\d{4}(\d{4})$/, "$1****$2");
return maskedPhoneNumber;
- }
+ },
+
+ closeDialog() {
+ this.setData({
+ showErrorDialog: false
+ })
+ },
+ /**
+ * 鎵爜寮�闃�
+ */
+ scenCode() {
+ const app = getApp();
+ // 妫�鏌ュ綋鍓嶉」鐩槸鍚﹂渶瑕佺櫥褰�
+ const currentProject = app.globalData.selectedProject;
+ if (currentProject && PROJECT_CONFIG[currentProject] && PROJECT_CONFIG[currentProject].needLogin) {
+ // 闇�瑕佺櫥褰曠殑椤圭洰锛屾鏌ユ槸鍚﹀凡鐧诲綍
+ if (!app.globalData.isLoggedIn) {
+ // 鏈櫥褰曪紝鏄剧ず鎻愮ず骞堕樆姝㈡壂鐮�
+ wx.showToast({
+ title: '璇峰厛鐧诲綍',
+ icon: 'error',
+ duration: 2000
+ });
+
+ // 鑾峰彇椤圭洰閰嶇疆
+ const projectConfig = PROJECT_CONFIG[currentProject];
+ if (projectConfig) {
+ // 璇㈤棶鐢ㄦ埛鏄惁鍓嶅線鐧诲綍
+ wx.showModal({
+ title: '鎻愮ず',
+ content: '鎮ㄩ渶瑕佺櫥褰曞悗鎵嶈兘浣跨敤鎵爜寮�闃�鍔熻兘锛屾槸鍚︾珛鍗崇櫥褰曪紵',
+ confirmText: '鍓嶅線鐧诲綍',
+ cancelText: '鍙栨秷',
+ success: (res) => {
+ if (res.confirm) {
+ // 鐢ㄦ埛鐐瑰嚮纭锛岀洿鎺ヨ皟鐢╳xLogin鏂规硶
+ this.wxLogin();
+ }
+ }
+ });
+ }
+ return;
+ }
+ }
+
+ // 宸茬櫥褰曟垨涓嶉渶瑕佺櫥褰曠殑椤圭洰锛屾墽琛屾壂鐮佹搷浣�
+ const that = this;
+ wx.scanCode({
+ success(res) {
+ console.log(res.result); // 褰撲笖浠呭綋鎵爜涓洪潪寰俊浜岀淮鐮佹椂锛屼細杩斿洖result
+ if (res.result.startsWith("content://")) {
+ let jsonStr = res.result.replace("content://", "")
+ try {
+
+ that.saveData(jsonStr)
+ } catch (error) {
+ console.error('Error parsing JSON:', error);
+ }
+
+ } else {
+ that.postOppenValva(res.result)
+ }
+
+ },
+ fail(err) {
+ console.error(err);
+ }
+ })
+ },
+ confirmForceDialog() {
+ console.log("confirmForceDialog");
+ this.setData({
+ showForceConfirm: false
+ })
+ this.postOppenValva(this.data.lastIntakeName, true)
+ },
+ /**
+ *
+ * @param {*} intakeName
+ */
+ postOppenValva(intakeName, isforce) {
+ const that = this;
+ wx.showLoading({
+ title: '姝e湪寮�闃�璇风◢鍊�...', // 鍔犺浇鎻愮ず鏂囧瓧
+ mask: true // 鏄惁鏄剧ず閫忔槑钂欏眰锛岄槻姝㈣Е鎽哥┛閫忥紝榛樿涓� false
+ });
+ const app = getApp();
+ that.setData({
+ lastIntakeName: intakeName
+ })
+ const data = {
+ intakeName: intakeName, //鍙栨按鍙D
+ // vcId: vcId, //铏氭嫙鍗D
+ operator: app.globalData.clientId, //鎿嶄綔鍛�
+ forceOpen: !!isforce // 浣跨敤閫昏緫闈炴搷浣滅 !! 鏉ョ‘淇� isForce 鏄竷灏斿��
+ };
+ post({
+ url: "wx/valve/open_wx",
+ data: data,
+ timeout: 180000
+ }).then(response => {
+
+ // 澶勭悊鎴愬姛鍝嶅簲
+ console.log('璇锋眰鎴愬姛:', response);
+ // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
+ wx.hideLoading();
+ //瀹屾垚鍚庡洖鍒伴椤�
+ wx.reLaunch({
+ url: '/pages/home/home?param=true' // 棣栭〉鐨勮矾寰勶紝鏍规嵁瀹為檯鎯呭喌濉啓
+ });
+ }).catch(error => {
+ // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
+ wx.hideLoading();
+ // 澶勭悊閿欒鍝嶅簲
+ console.error('璇锋眰澶辫触:', error);
+ if (error.code === "10005") {
+ that.setData({
+ showForceConfirm: true
+ })
+ } else {
+ that.setData({
+ showErrorDialog: true,
+ errorData: error.msg,
+ errorDialogTitle: "寮�闃�閿欒"
+ })
+ }
+ });
+ },
+ /**
+ * 鎵弿鍚庝繚瀛樼敤鎴穒d鍜宼ag
+ */
+ saveData(userData) {
+ storage.setItem("userData", userData).then(() => {
+ this.initData();
+ }).catch((error) => {});
+
+ },
+ //杩涘叆鐣岄潰鑾峰彇鐣岄潰鏁版嵁
+ initData() {
+ const app = getApp();
+ console.log("initData寮�濮嬶紝tag:", app.globalData.tag);
+
+ // 棣栧厛妫�鏌ユ槸鍚︿粠鐧诲綍椤佃繑鍥�
+ if (this.getFromLogin()) {
+ console.log('initData: 妫�娴嬪埌浠庣櫥褰曢〉杩斿洖鐨勬爣璁帮紝鎵ц瀹屾暣鐨勭敤鎴锋暟鎹幏鍙�');
+
+ // 妫�鏌ユ槸鍚︽湁sessionId鍜宑lientId锛屼紭鍏堜娇鐢ㄥ叏灞�鍙橀噺
+ if (app.globalData.sessionId && app.globalData.clientId) {
+ console.log('initData: 鍏ㄥ眬鍙橀噺涓湁鐧诲綍淇℃伅锛岀洿鎺ヨ幏鍙栫敤鎴锋暟鎹拰寮�闃�鍒楄〃');
+ this.getUserDataBySession();
+ this.getOpenList();
+ return;
+ }
+
+ // 濡傛灉娌℃湁鍏ㄥ眬鍙橀噺锛屽皾璇曚粠鏈湴瀛樺偍涓仮澶�
+ Promise.all([
+ storage.getItemSafe('userData'),
+ storage.getItemSafe('sessionId'),
+ storage.getItemSafe('clientId')
+ ]).then(([userData, sessionId, clientId]) => {
+ if (userData) {
+ try {
+ // 瑙f瀽userData骞惰缃叏灞�鍙橀噺
+ let jsonObj = JSON.parse(userData);
+ app.globalData.sessionId = jsonObj.sessionId;
+ app.globalData.clientId = jsonObj.clientId || clientId;
+ app.globalData.tag = jsonObj.tag;
+ app.globalData.isLoggedIn = true;
+
+ // 鐩存帴浠巙serData璁剧疆鐢ㄦ埛淇℃伅
+ if (jsonObj.clientName && jsonObj.phone) {
+ this.setData({
+ userName: jsonObj.clientName,
+ userPhone: this.maskPhoneNumber(jsonObj.phone)
+ });
+ } else {
+ // 濡傛灉userData涓病鏈夌敤鎴蜂俊鎭紝璋冪敤鎺ュ彛鑾峰彇
+ this.getUserDataBySession();
+ }
+
+ console.log("userData宸插姞杞�:", userData);
+ } catch (e) {
+ console.error('userData瑙f瀽澶辫触:', e);
+ if (sessionId && clientId) {
+ app.globalData.sessionId = sessionId;
+ app.globalData.clientId = clientId;
+ app.globalData.isLoggedIn = true;
+ this.getUserDataBySession();
+ }
+ }
+ } else if (sessionId && clientId) {
+ // 濡傛灉娌℃湁userData浣嗘湁session鍜宑lient ID
+ app.globalData.sessionId = sessionId;
+ app.globalData.clientId = clientId;
+ app.globalData.isLoggedIn = true;
+ this.getUserDataBySession();
+ }
+
+ // 鏃犺濡備綍閮藉皾璇曡幏鍙栧紑闃�鍒楄〃
+ this.getOpenList();
+ }).catch(err => {
+ console.error('鎭㈠鐧诲綍鐘舵�佸け璐�:', err);
+ this.getOpenList();
+ });
+
+ return;
+ }
+
+ // 妫�鏌ュ綋鍓嶉」鐩槸鍚﹂渶瑕佺櫥褰�
+ const currentProject = app.globalData.selectedProject;
+ const projectConfig = PROJECT_CONFIG[currentProject];
+ const needLogin = projectConfig && projectConfig.needLogin;
+
+ // 鏍规嵁椤圭洰鏄惁闇�瑕佺櫥褰曪紝璁剧疆涓嶅悓鐨剈serName
+ if (projectConfig && projectConfig.needLogin === false) {
+ // 涓嶉渶瑕佺櫥褰曠殑椤圭洰锛屾樉绀洪」鐩悕绉�
+ this.setData({
+ userName: projectConfig.displayName
+ });
+ }
+
+ // 灏濊瘯鑾峰彇鐢ㄦ埛鏁版嵁鍜屽凡寮�闃�璁板綍
+ try {
+ // 浼樺厛妫�鏌ュ叏灞�鍙橀噺涓槸鍚︽湁sessionId
+ if (app.globalData.sessionId) {
+ console.log('initData: 浣跨敤鍏ㄥ眬sessionId鑾峰彇鏁版嵁');
+
+ // 鍙湁闇�瑕佺櫥褰曠殑椤圭洰鎵嶈皟鐢╣etUserDataBySession
+ if (needLogin) {
+ console.log('initData: 褰撳墠椤圭洰闇�瑕佺櫥褰曪紝鑾峰彇鐢ㄦ埛鏁版嵁');
+ this.getUserDataBySession();
+ } else {
+ console.log('initData: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰曪紝璺宠繃鑾峰彇鐢ㄦ埛鏁版嵁');
+ }
+
+ this.getOpenList();
+ return;
+ }
+
+ // 妫�鏌ユ槸鍚︽湁瀛樺偍鐨剈serData
+ const hasUserData = storage.isHasKeySync("userData");
+ console.log('initData: 鏄惁瀛樺湪userData:', hasUserData);
+
+ if (hasUserData) {
+ storage.getItemSafe('userData')
+ .then((data) => {
+ console.log('initData: 鎴愬姛璇诲彇userData');
+ if (data) {
+ try {
+ let jsonObj = JSON.parse(data);
+ app.globalData.sessionId = jsonObj.sessionId;
+ app.globalData.tag = jsonObj.tag;
+ console.log("userData宸插姞杞�:", data);
+ } catch (e) {
+ console.error('userData瑙f瀽澶辫触:', e);
+ }
+ }
+
+ // 鍙湁闇�瑕佺櫥褰曠殑椤圭洰鎵嶈皟鐢╣etUserDataBySession
+ if (needLogin) {
+ console.log('initData: 褰撳墠椤圭洰闇�瑕佺櫥褰曪紝鑾峰彇鐢ㄦ埛鏁版嵁');
+ this.getUserDataBySession();
+ } else {
+ console.log('initData: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰曪紝璺宠繃鑾峰彇鐢ㄦ埛鏁版嵁');
+ }
+
+ this.getOpenList();
+ })
+ .catch((err) => {
+ console.error('鍔犺浇userData澶辫触:', err);
+
+ // 鍐嶆妫�鏌ユ槸鍚︿粠鐧诲綍椤佃繑鍥�
+ if (this.getFromLogin()) {
+ console.log('initData:catch: 妫�娴嬪埌浠庣櫥褰曢〉杩斿洖鐨勬爣璁帮紝鍙幏鍙栧紑闃�鍒楄〃');
+ this.getOpenList();
+ } else {
+ // 鍙湁闇�瑕佺櫥褰曠殑椤圭洰鎵嶈皟鐢╣etUserDataBySession
+ if (needLogin) {
+ console.log('initData:catch: 褰撳墠椤圭洰闇�瑕佺櫥褰曪紝鑾峰彇鐢ㄦ埛鏁版嵁');
+ this.getUserDataBySession();
+ } else {
+ console.log('initData:catch: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰曪紝璺宠繃鑾峰彇鐢ㄦ埛鏁版嵁');
+ }
+
+ this.getOpenList();
+ }
+ });
+ } else {
+ console.log('鏈壘鍒皍serData锛岀洿鎺ヨ幏鍙栨暟鎹�');
+
+ // 鍐嶆妫�鏌ユ槸鍚︿粠鐧诲綍椤佃繑鍥�
+ if (this.getFromLogin()) {
+ console.log('initData:else: 妫�娴嬪埌浠庣櫥褰曢〉杩斿洖鐨勬爣璁帮紝鍙幏鍙栧紑闃�鍒楄〃');
+ this.getOpenList();
+ } else {
+ // 鍙湁闇�瑕佺櫥褰曠殑椤圭洰鎵嶈皟鐢╣etUserDataBySession
+ if (needLogin) {
+ console.log('initData:else: 褰撳墠椤圭洰闇�瑕佺櫥褰曪紝鑾峰彇鐢ㄦ埛鏁版嵁');
+ this.getUserDataBySession();
+ } else {
+ console.log('initData:else: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰曪紝璺宠繃鑾峰彇鐢ㄦ埛鏁版嵁');
+ }
+
+ this.getOpenList();
+ }
+ }
+ } catch (e) {
+ console.error('initData鎵ц鍑洪敊:', e);
+
+ // 鍐嶆妫�鏌ユ槸鍚︿粠鐧诲綍椤佃繑鍥�
+ if (this.getFromLogin()) {
+ console.log('initData:error: 妫�娴嬪埌浠庣櫥褰曢〉杩斿洖鐨勬爣璁帮紝鍙幏鍙栧紑闃�鍒楄〃');
+ this.getOpenList();
+ } else {
+ // 鍙湁闇�瑕佺櫥褰曠殑椤圭洰鎵嶈皟鐢╣etUserDataBySession
+ if (needLogin) {
+ console.log('initData:error: 褰撳墠椤圭洰闇�瑕佺櫥褰曪紝鑾峰彇鐢ㄦ埛鏁版嵁');
+ this.getUserDataBySession();
+ } else {
+ console.log('initData:error: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰曪紝璺宠繃鑾峰彇鐢ㄦ埛鏁版嵁');
+ }
+
+ this.getOpenList();
+ }
+ }
+ },
+ // 澶勭悊澶村儚鐐瑰嚮
+ handleAvatarTap() {
+ this.setData({
+ avatarTapCount: this.data.avatarTapCount + 1
+ });
+
+ if (this.data.avatarTapCount >= 5) {
+ this.setData({
+ showProjectDialog: true,
+ avatarTapCount: 0,
+ tempSelectedProject: this.data.selectedProject // 鍒濆鍖栦复鏃堕�夋嫨涓哄綋鍓嶉�夋嫨
+ });
+ }
+ },
+
+ // 澶勭悊寮圭獥鍙鎬у彉鍖�
+ onVisibleChange(e) {
+ // 濡傛灉灏濊瘯鍏抽棴寮圭獥涓旀病鏈夐�夋嫨椤圭洰锛屽垯闃绘鍏抽棴
+ if (!e.detail.visible && !this.data.selectedProject) {
+ return;
+ }
+ this.setData({
+ showProjectDialog: e.detail.visible,
+ // 褰撴樉绀哄璇濇鏃讹紝鍒濆鍖栦复鏃堕�夋嫨涓哄綋鍓嶉�夋嫨
+ tempSelectedProject: e.detail.visible ? this.data.selectedProject : ''
+ });
+ },
+
+ // 澶勭悊椤圭洰閫夋嫨鍙樺寲
+ onProjectChange(event) {
+ console.log('閫夋嫨鐨勯」鐩細', event.detail.value);
+ // 涓嶇珛鍗宠缃埌state锛岃�屾槸瀛樺偍鍒颁复鏃跺彉閲忎腑
+ this.setData({
+ tempSelectedProject: event.detail.value
+ });
+ },
+
+ // 澶勭悊椤圭洰閫夋嫨纭
+ handleProjectConfirm() {
+ // 浠庝复鏃跺彉閲忚幏鍙栭�夋嫨鐨勯」鐩�
+ const selectedProject = this.data.tempSelectedProject || this.data.selectedProject;
+ console.log('寮�濮嬪鐞嗛」鐩�夋嫨纭', selectedProject, this.data.projectList);
+
+ if (!selectedProject) {
+ wx.showToast({
+ title: '璇烽�夋嫨椤圭洰',
+ icon: 'none'
+ });
+ return;
+ }
+
+ // 鑾峰彇褰撳墠宸查�夐」鐩拰鏂伴�夋嫨鐨勯」鐩�
+ const currentProject = getApp().globalData.selectedProject;
+ const newProject = selectedProject;
+ console.log('褰撳墠椤圭洰:', currentProject, '鏂伴�夋嫨椤圭洰:', newProject);
+ console.log('PROJECT_CONFIG 鍐呭:', PROJECT_CONFIG);
+
+ const projectConfig = PROJECT_CONFIG[newProject];
+ console.log('閫夋嫨鐨勯」鐩厤缃�:', projectConfig);
+
+ if (!projectConfig) {
+ wx.showToast({
+ title: '椤圭洰閰嶇疆閿欒',
+ icon: 'none'
+ });
+ return;
+ }
+
+ // 妫�鏌ユ槸鍚﹀垏鎹簡椤圭洰锛堝鏋滃綋鍓嶉」鐩笉鍚屼簬鏂伴�夋嫨鐨勯」鐩級
+ const isProjectChanged = currentProject && currentProject !== newProject;
+
+ // 娣诲姞浜屾纭
+ const confirmText = isProjectChanged ?
+ `纭畾瑕佸皢椤圭洰浠�"${PROJECT_CONFIG[currentProject]?.displayName || '褰撳墠椤圭洰'}"鍒囨崲鍒�"${projectConfig.displayName}"鍚楋紵` :
+ `纭畾閫夋嫨"${projectConfig.displayName}"椤圭洰鍚楋紵`;
+
+ wx.showModal({
+ title: isProjectChanged ? '纭鍒囨崲椤圭洰' : '纭閫夋嫨椤圭洰',
+ content: confirmText,
+ confirmText: isProjectChanged ? '纭鍒囨崲' : '纭',
+ cancelText: '鍙栨秷',
+ success: (res) => {
+ if (res.confirm) {
+ // 鐢ㄦ埛纭閫夋嫨鍚庯紝鏇存柊鐘舵�佸苟缁х画澶勭悊
+ this.setData({
+ selectedProject: newProject
+ });
+ // 鐢ㄦ埛纭閫夋嫨锛岀户缁鐞�
+ this.processProjectSelection(currentProject, newProject, projectConfig, isProjectChanged);
+ } else {
+ // 鐢ㄦ埛鍙栨秷锛屼笉杩涜浠讳綍鎿嶄綔
+ console.log('鐢ㄦ埛鍙栨秷浜嗛」鐩�夋嫨');
+ // 鎭㈠涔嬪墠鐨勯�夋嫨鐘舵��
+ this.setData({
+ tempSelectedProject: this.data.selectedProject
+ });
+ }
+ }
+ });
+ },
+
+ // 澶勭悊椤圭洰閫夋嫨鐨勫悗缁搷浣�
+ processProjectSelection(currentProject, newProject, projectConfig, isProjectChanged) {
+ // 濡傛灉鍒囨崲浜嗛」鐩紝鍏堟竻闄ょ櫥褰曠姸鎬�
+ if (isProjectChanged) {
+ console.log(`姝e湪浠庨」鐩� ${currentProject} 鍒囨崲鍒� ${newProject}锛屽皢娓呴櫎鐧诲綍鐘舵�乣);
+
+ // 娓呴櫎鍏ㄥ眬鐧诲綍鐘舵��
+ getApp().globalData.sessionId = '';
+ getApp().globalData.clientId = '';
+ getApp().globalData.isLoggedIn = false;
+ getApp().globalData.userInfo = null;
+ getApp().globalData.vcId = '';
+ getApp().globalData.operator = '';
+
+ // 娓呴櫎瀛樺偍涓殑鐧诲綍鐘舵��
+ try {
+ // 娓呴櫎鍩烘湰鐧诲綍鏁版嵁
+ wx.removeStorageSync('sessionId');
+ wx.removeStorageSync('clientId');
+ wx.removeStorageSync('userData');
+ wx.removeStorageSync('isLoggedIn');
+
+ // 娓呴櫎涔嬪墠椤圭洰鐨勭壒瀹氭暟鎹�
+ if (currentProject) {
+ wx.removeStorageSync(`${currentProject}_params`);
+ }
+
+ // 娓呴櫎鍏朵粬鍙兘鐨勭紦瀛樻暟鎹�
+ wx.removeStorageSync('_attempted_login_redirect');
+
+ console.log('宸叉竻闄ょ櫥褰曠浉鍏崇殑瀛樺偍鏁版嵁');
+ } catch (e) {
+ console.error('娓呴櫎瀛樺偍鏁版嵁澶辫触:', e);
+ }
+
+ // 閲嶇疆UI鏄剧ず鐘舵��
+ if (projectConfig.needLogin === false) {
+ // 涓嶉渶瑕佺櫥褰曠殑椤圭洰锛屾樉绀洪」鐩悕绉颁綔涓簎serName
+ this.setData({
+ userName: projectConfig.displayName,
+ userPhone: "",
+ listData: []
+ });
+ } else {
+ // 闇�瑕佺櫥褰曠殑椤圭洰锛屾樉绀�"璇风偣鍑荤櫥褰�"
+ this.setData({
+ userName: "璇风偣鍑荤櫥褰�",
+ userPhone: "",
+ listData: []
+ });
+ }
+ }
+
+ // 淇濆瓨椤圭洰閫夋嫨鍒版湰鍦板瓨鍌�
+ storage.setItem('selectedProject', newProject).then(() => {
+ // 璋冪敤setBaseUrl鏉ユ洿鏂板熀纭�URL
+ try {
+ console.log('灏濊瘯璁剧疆鍩虹URL锛岄」鐩�:', newProject);
+ const result = config.setBaseUrl(newProject);
+ console.log('璁剧疆鍩虹URL缁撴灉:', result);
+ } catch (error) {
+ console.error('璁剧疆鍩虹URL鍑洪敊:', error);
+ // 缁х画鎵ц锛屼笉涓柇娴佺▼
+ }
+
+ // 鏇存柊鍏ㄥ眬鍙橀噺
+ getApp().globalData = getApp().globalData || {};
+ getApp().globalData.selectedProject = newProject;
+ getApp().globalData.baseUrl = projectConfig.serverUrl;
+ getApp().globalData.serverId = projectConfig.serverId;
+
+ // 閫氳繃閰嶇疆瀵硅薄缁熶竴璁剧疆椤圭洰鍙傛暟
+ getApp().globalData.tag = projectConfig.tag;
+
+ // 瀵逛簬涓嶉渶瑕佺櫥褰曠殑椤圭洰锛岀洿鎺ヨ缃畂perator鍜宑lientId
+ if (!projectConfig.needLogin && projectConfig.operatorId) {
+ const operatorId = projectConfig.operatorId;
+ getApp().globalData.operator = operatorId;
+ getApp().globalData.clientId = operatorId;
+ getApp().globalData.isLoggedIn = true;
+ getApp().globalData.sessionId = operatorId;
+
+ // 濡傛灉鏈塿cId锛屼篃璁剧疆
+ if (projectConfig.vcId) {
+ getApp().globalData.vcId = projectConfig.vcId;
+ }
+
+ // 鎸佷箙鍖栧瓨鍌ㄩ」鐩弬鏁�
+ const params = {
+ operator: operatorId,
+ clientId: operatorId,
+ isLoggedIn: true,
+ sessionId: operatorId
+ };
+
+ if (projectConfig.vcId) {
+ params.vcId = projectConfig.vcId;
+ }
+
+ storage.setItem(`${newProject}_params`, params);
+ }
+
+ console.log('宸插垏鎹㈠埌椤圭洰:', projectConfig.displayName, '鏈嶅姟鍣�:', projectConfig.serverId, 'tag:', getApp().globalData.tag);
+
+ this.setData({
+ showProjectDialog: false
+ });
+
+ // 鏄剧ず鍒囨崲鎴愬姛鎻愮ず
+ wx.showToast({
+ title: `宸查�夋嫨${projectConfig.displayName}`,
+ icon: 'success',
+ duration: 2000
+ });
+ setTimeout(() => {
+ console.log('椤圭洰宸插垏鎹紝姝e湪鍒濆鍖栨暟鎹�');
+ // 纭繚鏄剧ず姝g‘鐨勭敤鎴峰悕
+ if (!projectConfig.needLogin) {
+ this.setData({
+ userName: projectConfig.displayName
+ });
+ } else {
+ this.setData({
+ userName: "璇风偣鍑荤櫥褰�"
+ });
+ }
+ this.initData();
+ }, 1000);
+
+ }).catch(err => {
+ console.error('淇濆瓨椤圭洰閫夋嫨澶辫触锛�', err);
+ wx.showToast({
+ title: '淇濆瓨澶辫触锛岃閲嶈瘯',
+ icon: 'none',
+ duration: 2000
+ });
+ });
+ },
+
+ // 妫�鏌ョ櫥褰曠姸鎬�
+ checkLoginStatus() {
+ const app = getApp();
+
+ // 妫�鏌ユ槸鍚﹀凡鐧诲綍
+ if (app.globalData.isLoggedIn && app.globalData.sessionId) {
+ console.log('宸蹭粠鍏ㄥ眬鍙橀噺妫�娴嬪埌鐧诲綍鐘舵��');
+ return;
+ }
+
+ // 妫�鏌ユ湰椤甸潰鏄惁姝e湪澶勭悊杩斿洖閫昏緫
+ const fromLogin = this.getFromLogin();
+ if (fromLogin) {
+ console.log('浠庣櫥褰曢〉杩斿洖锛屼笉鍐嶉噸瀹氬悜');
+ return;
+ }
+
+ // 妫�鏌ュ綋鍓嶉」鐩槸鍚﹂渶瑕佺櫥褰�
+ const currentProject = app.globalData.selectedProject;
+ if (currentProject && PROJECT_CONFIG[currentProject] && !PROJECT_CONFIG[currentProject].needLogin) {
+ console.log('褰撳墠椤圭洰涓嶉渶瑕佺櫥褰�:', currentProject);
+ return;
+ }
+
+ // 鑾峰彇褰撳墠椤甸潰璺敱鍜屽弬鏁�
+ const pages = getCurrentPages();
+ const currentPage = pages[pages.length - 1];
+ const currentRoute = currentPage ? currentPage.route : '';
+ const currentOptions = currentPage ? currentPage.options || {} : {};
+
+ console.log('褰撳墠椤甸潰璺敱:', currentRoute, '鍙傛暟:', currentOptions);
+
+ // 妫�鏌RL鍙傛暟涓槸鍚︽湁fromLogin
+ if (currentOptions.fromLogin === 'true') {
+ console.log('URL鍙傛暟涓娴嬪埌fromLogin=true锛屼笉鎵ц璺宠浆');
+ this.setData({
+ isFromLogin: true
+ });
+ return;
+ }
+
+ // 濡傛灉褰撳墠宸插湪鐧诲綍椤碉紝涓嶅啀璺宠浆
+ if (currentRoute === 'pages/login/login' || currentRoute === 'pages/accountLogin/accountLogin') {
+ console.log('褰撳墠宸插湪鐧诲綍椤碉紝涓嶅啀璺宠浆');
+ return;
+ }
+
+ // Promise閾惧鐞嗗瓨鍌ㄦ鏌�
+ Promise.all([
+ storage.getItemSafe('sessionId'),
+ storage.getItemSafe('clientId'),
+ storage.getItemSafe('isLoggedIn')
+ ])
+ .then(([sessionId, clientId, isLoggedIn]) => {
+ if (sessionId) {
+ // 浠庡瓨鍌ㄤ腑鎭㈠鐧诲綍鐘舵��
+ app.globalData.sessionId = sessionId;
+ app.globalData.isLoggedIn = true;
+
+ if (clientId) {
+ app.globalData.clientId = clientId;
+ }
+
+ console.log('宸蹭粠瀛樺偍鎭㈠鐧诲綍鐘舵��');
+ // 宸茬櫥褰曪紝鍒锋柊椤甸潰
+ wx.reLaunch({
+ url: '/pages/home/home'
+ });
+ } else {
+ // 鏍囪褰撳墠椤甸潰姝e湪澶勭悊杩斿洖閫昏緫
+ this.setData({
+ isFromLogin: true
+ });
+
+ // 鏈櫥褰曪紝鍙兘闇�瑕佽烦杞埌鐧诲綍椤甸潰
+ console.log('鏈娴嬪埌鐧诲綍鐘舵�侊紝鍙兘闇�瑕佽烦杞埌鐧诲綍椤�');
+
+ // 鏈�鍚庡啀妫�鏌ヤ竴娆℃槸鍚﹀凡浠庣櫥褰曢〉杩斿洖
+ const finalCheck = this.getFromLogin();
+ if (finalCheck) {
+ console.log('鏈�缁堟鏌�: 宸蹭粠鐧诲綍椤佃繑鍥烇紝涓嶅啀璺宠浆');
+ return;
+ }
+
+ // 妫�鏌ラ」鐩槸鍚﹂渶瑕佺櫥褰�
+ if (currentProject && PROJECT_CONFIG[currentProject] && !PROJECT_CONFIG[currentProject].needLogin) {
+ console.log('鏈�缁堟鏌�: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰�:', currentProject);
+ return;
+ }
+
+ console.log('纭闇�瑕佽烦杞埌鐧诲綍椤�');
+
+ // 璺宠浆鍓嶅啀娆℃鏌ョ櫥褰曢〉闈复鏃舵爣璁�
+ try {
+ wx.setStorageSync('_attempted_login_redirect', 'true');
+ } catch (e) {}
+
+ // 鏍规嵁椤圭洰閰嶇疆鐨刲oginType鍐冲畾璺宠浆鍒板摢涓櫥褰曢〉闈�
+ // 姝ゅ涓嶅仛璺宠浆锛屾敞閲婃帀鍘熸湁浠g爜
+ // const projectInfo = PROJECT_CONFIG[currentProject];
+ // const loginType = projectInfo?.loginType || 'code'; // 榛樿浣跨敤楠岃瘉鐮佺櫥褰�
+
+ // if (loginType === 'account') {
+ // // 璐﹀彿瀵嗙爜鐧诲綍
+ // wx.navigateTo({
+ // url: `/pages/accountLogin/accountLogin?project=${currentProject}`,
+ // success: () => console.log('鎴愬姛璺宠浆鍒拌处鍙峰瘑鐮佺櫥褰曢〉'),
+ // fail: (err) => console.error('璺宠浆鍒拌处鍙峰瘑鐮佺櫥褰曢〉澶辫触:', err)
+ // });
+ // } else {
+ // // 楠岃瘉鐮佺櫥褰�
+ // wx.navigateTo({
+ // url: `/pages/login/login?project=${currentProject}`,
+ // success: () => console.log('鎴愬姛璺宠浆鍒伴獙璇佺爜鐧诲綍椤�'),
+ // fail: (err) => console.error('璺宠浆鍒伴獙璇佺爜鐧诲綍椤靛け璐�:', err)
+ // });
+ // }
+ }
+ })
+ .catch(err => {
+ console.error('妫�鏌ョ櫥褰曠姸鎬佹椂鍑洪敊:', err);
+
+ // 鏍囪褰撳墠椤甸潰姝e湪澶勭悊杩斿洖閫昏緫
+ this.setData({
+ isFromLogin: true
+ });
+
+ // 鍐嶆妫�鏌ユ槸鍚﹀凡浠庣櫥褰曢〉杩斿洖
+ if (this.getFromLogin()) {
+ console.log('閿欒澶勭悊: 宸蹭粠鐧诲綍椤佃繑鍥烇紝涓嶅啀璺宠浆');
+ return;
+ }
+
+ // 妫�鏌ラ」鐩槸鍚﹂渶瑕佺櫥褰�
+ if (currentProject && PROJECT_CONFIG[currentProject] && !PROJECT_CONFIG[currentProject].needLogin) {
+ console.log('閿欒澶勭悊: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰�:', currentProject);
+ return;
+ }
+
+ // 鍑洪敊鏃朵篃璺宠浆鍒扮櫥褰曢〉锛屾牴鎹甽oginType鍐冲畾璺宠浆鐩爣
+ // 姝ゅ涓嶅仛璺宠浆锛屾敞閲婃帀鍘熸湁浠g爜
+ // const projectInfo = PROJECT_CONFIG[currentProject];
+ // const loginType = projectInfo?.loginType || 'code'; // 榛樿浣跨敤楠岃瘉鐮佺櫥褰�
+
+ // if (loginType === 'account') {
+ // // 璐﹀彿瀵嗙爜鐧诲綍
+ // wx.navigateTo({
+ // url: `/pages/accountLogin/accountLogin?project=${currentProject}`,
+ // success: () => console.log('閿欒鍚庢垚鍔熻烦杞埌璐﹀彿瀵嗙爜鐧诲綍椤�'),
+ // fail: (err) => console.error('閿欒鍚庤烦杞埌璐﹀彿瀵嗙爜鐧诲綍椤靛け璐�:', err)
+ // });
+ // } else {
+ // // 楠岃瘉鐮佺櫥褰�
+ // wx.navigateTo({
+ // url: `/pages/login/login?project=${currentProject}`,
+ // success: () => console.log('閿欒鍚庢垚鍔熻烦杞埌楠岃瘉鐮佺櫥褰曢〉'),
+ // fail: (err) => console.error('閿欒鍚庤烦杞埌楠岃瘉鐮佺櫥褰曢〉澶辫触:', err)
+ // });
+ // }
+ });
+ },
+
+ // 杈呭姪鍑芥暟锛氭鏌ユ槸鍚︿粠鐧诲綍椤佃繑鍥�
+ getFromLogin() {
+ // 妫�鏌ュ綋鍓嶉〉闈㈢殑options
+ const pages = getCurrentPages();
+ const currentPage = pages[pages.length - 1];
+ if (currentPage && currentPage.options && currentPage.options.fromLogin === 'true') {
+ console.log('getFromLogin: 妫�娴嬪埌URL鍙傛暟fromLogin=true');
+ // 璁剧疆鏍囧織锛岀‘淇濅笅娆℃鏌ユ椂鑳借瘑鍒�
+ this.setData({
+ isFromLogin: true
+ });
+ return true;
+ }
+ console.log('getFromLogin: 鏈娴嬪埌浠庣櫥褰曢〉杩斿洖鐨勬爣璁�');
+ return false;
+ },
+
+ // 缁х画鍒濆鍖栭〉闈�
+ continueInitPage(options) {
+ console.log('缁х画鍒濆鍖栭〉闈紝options:', options);
+
+ // 妫�鏌ユ槸鍚︿粠鐧诲綍椤佃繑鍥�
+ let fromLogin = false;
+
+ // 浠嶶RL鍙傛暟涓鏌�
+ if (options && options.fromLogin === 'true') {
+ console.log('continueInitPage: 浠嶶RL鍙傛暟妫�娴嬪埌fromLogin=true');
+ fromLogin = true;
+ this.setData({
+ isFromLogin: true
+ });
+ }
+
+ // 浠庨〉闈㈡暟鎹腑妫�鏌�
+ if (this.data.isFromLogin) {
+ console.log('continueInitPage: 浠庨〉闈㈡暟鎹腑妫�娴嬪埌isFromLogin=true');
+ fromLogin = true;
+ }
+ // 褰撳紑闃�鎴愬姛鍚庤皟鐢ㄥ埛鏂�
+ if (options && options.param) {
+ console.log("寮�闃�鎴愬姛鍙傛暟:", options.param);
+ wx.showToast({
+ title: '寮�闃�鎴愬姛',
+ icon: 'success',
+ duration: 3000
+ });
+ this.getOpenList();
+ }
+
+ // 鍒濆鍖栨暟鎹�
+ this.initData();
+
+ // 濡傛灉涓嶆槸浠庣櫥褰曢〉杩斿洖锛屽垯璁剧疆寤惰繜妫�鏌ョ櫥褰曠姸鎬�
+ if (!fromLogin) {
+ console.log('涓嶆槸浠庣櫥褰曢〉杩斿洖锛屽欢杩熸鏌ョ櫥褰曠姸鎬�');
+ setTimeout(() => {
+ // 浠呭湪鏈櫥褰曚笖涓嶆槸浠庣櫥褰曢〉杩斿洖鏃舵鏌ョ櫥褰曠姸鎬�
+ if (!getApp().globalData.isLoggedIn) {
+ console.log('寤惰繜妫�鏌ワ細鏈櫥褰曚笖涓嶆槸浠庣櫥褰曢〉杩斿洖锛屾墽琛岀櫥褰曠姸鎬佹鏌�');
+ this.checkLoginStatus();
+ }
+ }, 500);
+ } else {
+ console.log('浠庣櫥褰曢〉杩斿洖锛屼笉妫�鏌ョ櫥褰曠姸鎬�');
+ }
+ },
+
+ // 寰俊鐧诲綍
+ wxLogin() {
+ // 妫�鏌ュ綋鍓嶉」鐩槸鍚﹂渶瑕佺櫥褰�
+ const currentProject = getApp().globalData.selectedProject;
+ if (currentProject && PROJECT_CONFIG[currentProject]) {
+ const projectConfig = PROJECT_CONFIG[currentProject];
+
+ if (!projectConfig.needLogin) {
+ console.log('wxLogin: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰�:', currentProject);
+ // 涓嶉渶瑕佺櫥褰曠殑椤圭洰锛屾樉绀洪」鐩悕绉�
+ this.setData({
+ userName: projectConfig.displayName
+ });
+ return;
+ }
+ }
+
+ if (!getApp().globalData.isLoggedIn) {
+ wx.showLoading({
+ title: '姝e湪鐧诲綍璇风◢鍊�...',
+ mask: true
+ });
+
+ wx.login({
+ success: (res) => {
+ if (res.code) {
+ // 灏哻ode鍙戦�佸埌鏈嶅姟鍣ㄨ幏鍙杘penid
+ post({
+ url: "wx/client/code_login",
+ data: {
+ code: res.code
+ }
+ }).then(response => {
+ wx.hideLoading();
+ if (response.code === "0001") {
+ if (response.content.client.clientId === "") {
+ // 鏈粦瀹氳处鍙凤紝鏍规嵁椤圭洰閰嶇疆鐨刲oginType璺宠浆鍒扮浉搴旂殑鐧诲綍椤甸潰
+ const projectInfo = PROJECT_CONFIG[this.data.selectedProject];
+ const loginType = projectInfo?.loginType || 'code'; // 榛樿浣跨敤楠岃瘉鐮佺櫥褰�
+
+ if (loginType === 'account') {
+ // 璐﹀彿瀵嗙爜鐧诲綍
+ wx.navigateTo({
+ url: `/pages/accountLogin/accountLogin?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}`
+ });
+ } else {
+ // 楠岃瘉鐮佺櫥褰�
+ wx.navigateTo({
+ url: `/pages/login/login?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}`
+ });
+ }
+ } else {
+ this.setData({
+ userName: response.content.client.clientName,
+ userPhone: response.content.client.userPhone
+ })
+ // 宸叉湁璐﹀彿锛屼繚瀛樻暟鎹苟鍒濆鍖�
+ const sessionId = response.content.client.sessionId;
+ const clientId = response.content.client.clientId;
+
+ // 璁剧疆鍏ㄥ眬鍙橀噺
+ getApp().globalData.sessionId = sessionId;
+ getApp().globalData.clientId = clientId;
+ getApp().globalData.isLoggedIn = true;
+
+ // 璁剧疆姝g‘鐨勯」鐩畉ag
+ const projectConfig = PROJECT_CONFIG[this.data.selectedProject];
+ if (projectConfig) {
+ getApp().globalData.tag = projectConfig.tag;
+ }
+
+ // 淇濆瓨鍒板瓨鍌�
+ storage.setItem("sessionId", sessionId);
+ storage.setItem("clientId", clientId);
+ storage.setItem("isLoggedIn", "true");
+
+ // 淇濆瓨userData淇℃伅锛屽寘鍚玸essionId鍜宼ag
+ const userData = JSON.stringify({
+ sessionId: sessionId,
+ tag: projectConfig ? projectConfig.tag : 'ym',
+ project: this.data.selectedProject,
+ userName: response.content.client.clientName,
+ userPhone: response.content.client.userPhone
+ });
+ storage.setItem("userData", userData)
+ .then(() => {
+ console.log('鐢ㄦ埛鏁版嵁淇濆瓨鎴愬姛锛屽寘鍚」鐩俊鎭�:', this.data.selectedProject, 'tag:', projectConfig ? projectConfig.tag : 'ym');
+ this.initData();
+ })
+ .catch(err => {
+ console.warn('淇濆瓨userData澶辫触锛屼絾缁х画鍒濆鍖�:', err);
+ this.initData();
+ });
+
+ }
+ } else if (response.code === "1003") {
+ // 鏈粦瀹氳处鍙凤紝鏍规嵁椤圭洰閰嶇疆鐨刲oginType璺宠浆鍒扮浉搴旂殑鐧诲綍椤甸潰
+ const projectInfo = PROJECT_CONFIG[this.data.selectedProject];
+ const loginType = projectInfo?.loginType || 'code'; // 榛樿浣跨敤楠岃瘉鐮佺櫥褰�
+
+ if (loginType === 'account') {
+ // 璐﹀彿瀵嗙爜鐧诲綍
+ wx.navigateTo({
+ url: `/pages/accountLogin/accountLogin?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}`
+ });
+ } else {
+ // 楠岃瘉鐮佺櫥褰�
+ wx.navigateTo({
+ url: `/pages/login/login?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}`
+ });
+ }
+ } else {
+ wx.showToast({
+ title: '鐧诲綍澶辫触',
+ icon: 'error',
+ duration: 2000
+ });
+ }
+ }).catch(error => {
+ wx.hideLoading();
+ console.error('鐧诲綍璇锋眰澶辫触:', error);
+ if(error.code==="1003"){
+ // 鏈粦瀹氳处鍙凤紝鏍规嵁椤圭洰閰嶇疆鐨刲oginType璺宠浆鍒扮浉搴旂殑鐧诲綍椤甸潰
+ const projectInfo = PROJECT_CONFIG[this.data.selectedProject];
+ const loginType = projectInfo?.loginType || 'code'; // 榛樿浣跨敤楠岃瘉鐮佺櫥褰�
+
+ if (loginType === 'account') {
+ // 璐﹀彿瀵嗙爜鐧诲綍
+ wx.navigateTo({
+ url: `/pages/accountLogin/accountLogin?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}`
+ });
+ } else {
+ // 楠岃瘉鐮佺櫥褰�
+ wx.navigateTo({
+ url: `/pages/login/login?project=${this.data.selectedProject}&projectName=${projectInfo.displayName}`
+ });
+ }
+ }else{
+ wx.showToast({
+ title: '鐧诲綍澶辫触锛岃閲嶈瘯',
+ icon: 'none'
+ });
+ }
+ });
+ } else {
+ wx.hideLoading();
+ console.log('鐧诲綍澶辫触锛�' + res.errMsg);
+ wx.showToast({
+ title: '寰俊鐧诲綍澶辫触',
+ icon: 'none'
+ });
+ }
+ },
+ fail: (err) => {
+ wx.hideLoading();
+ console.error('寰俊鐧诲綍API璋冪敤澶辫触:', err);
+ wx.showToast({
+ title: '鐧诲綍澶辫触锛岃閲嶈瘯',
+ icon: 'none'
+ });
+ }
+ });
+ }
+ },
+
+ // 杈呭姪鍑芥暟锛氭竻鐞嗕复鏃舵爣璁�
+ cleanupTempMarkers() {
+ // 鍙湁鍦╥sFromLogin涓簍rue鏃舵墠杩涜娓呯悊
+ if (this.data.isFromLogin) {
+ // 閲嶈isFromLogin涓篺alse锛屼絾娣诲姞寤惰繜锛岄伩鍏嶅奖鍝嶅綋鍓嶉〉闈㈢殑杩斿洖閫昏緫
+ setTimeout(() => {
+ this.setData({
+ isFromLogin: false
+ });
+ console.log('閲嶇疆isFromLogin=false');
+ }, 5000);
+ }
+ }, //纭瑙g粦
+ unBindPost() {
+ this.setData({
+ showUnBind: false
+ })
+ wx.showLoading({
+ title: '姝e湪瑙g粦璇风◢鍊�...', // 鍔犺浇鎻愮ず鏂囧瓧
+ mask: true // 鏄惁鏄剧ず閫忔槑钂欏眰锛岄槻姝㈣Е鎽哥┛閫忥紝榛樿涓� false
+ });
+ const data = {
+ sessionId: getApp().globalData.sessionId //鍙栨按鍙D
+ };
+ post({
+ url: 'wx/client/unbind',
+ data: data,
+ useParams: true
+ }).then(response => {
+ // 澶勭悊鎴愬姛鍝嶅簲
+ console.log('璇锋眰鎴愬姛:', response);
+ // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
+ wx.hideLoading();
+ const app = getApp();
+ // 娓呴櫎鍏ㄥ眬鐧诲綍鐘舵��
+ app.globalData.sessionId = '';
+ app.globalData.clientId = '';
+ app.globalData.isLoggedIn = false;
+ app.globalData.userInfo = null;
+
+ // 娓呴櫎瀛樺偍涓殑鐧诲綍鐘舵��
+ const storage = require('../../utils/storage.js');
+ storage.removeItem('sessionId')
+ .then(() => storage.removeItem('clientId'))
+ .then(() => storage.removeItem('userData'))
+ .then(() => storage.removeItem('isLoggedIn'))
+ .then(() => {
+ wx.showToast({
+ title: '瑙g粦鎴愬姛',
+ icon: 'success',
+ duration: 2000
+ });
+
+ // 閲嶇疆UI鏄剧ず鐘舵��
+ this.setData({
+ userName: "璇风偣鍑荤櫥褰�",
+ userPhone: "",
+ listData: []
+ });
+ })
+ .catch(err => {
+ console.error('瑙g粦杩囩▼涓嚭閿�:', err);
+ wx.showToast({
+ title: '瑙g粦澶辫触锛岃閲嶈瘯',
+ icon: 'none',
+ duration: 2000
+ });
+ });
+ }).catch(error => {
+ // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
+ wx.hideLoading();
+ // 澶勭悊閿欒鍝嶅簲
+ console.error('璇锋眰澶辫触:', error);
+ wx.showToast({
+ title: '瑙g粦澶辫触',
+ icon: 'error',
+ duration: 3000
+ })
+ });
+ },
+ onShareAppMessage: function (options) {
+ // 璁剧疆鍒嗕韩鍐呭
+ return {
+ title: '澶х鐏屾簤鍔╂墜', // 鍒嗕韩鏍囬
+ path: '/pages/home/home', // 鍒嗕韩璺緞锛岃璺緞闇�瑕佹槸褰撳墠灏忕▼搴忓瓨鍦ㄧ殑椤甸潰璺緞
+ imageUrl: '/images/logo2.jpg', // 鍒嗕韩鍥炬爣锛屽彲浠ユ槸缃戠粶鍥剧墖璺緞鎴栨湰鍦板浘鐗囪矾寰�
+ success: function (res) {
+ // 鍒嗕韩鎴愬姛鐨勫洖璋冨嚱鏁�
+ },
+ fail: function (res) {
+ // 鍒嗕韩澶辫触鐨勫洖璋冨嚱鏁�
+ }
+ };
+ },
+ //鐐瑰嚮鎻愮ず鎸夐挳
+ infoShow() {
+ this.setData({
+ showInfoDialog: true
+ })
+ },
+ //鎻愮ず绐楃‘璁ゆ寜閽�
+ confirmBtnInfoDialog() {
+ this.setData({
+ showInfoDialog: false
+ })
+ },
+ //寮哄埗鍒犻櫎
+ onDelete(e) {
+ const item = e.currentTarget.dataset.item;
+ const that = this;
+
+ if (this.data.useTestData) {
+ // 娴嬭瘯鏁版嵁妯″紡涓嬶紝妯℃嫙鍒犻櫎鎿嶄綔
+ wx.showLoading({
+ title: '姝e湪寮哄埗鍒犻櫎璇风◢鍊�...',
+ mask: true
+ });
+
+ // 妯℃嫙璇锋眰寤惰繜
+ setTimeout(() => {
+ wx.hideLoading();
+
+ // 浠庡垪琛ㄤ腑绉婚櫎琚垹闄ょ殑椤�
+ const updatedList = this.data.listData.filter(listItem =>
+ listItem.orderNo !== item.orderNo
+ );
+
+ this.setData({
+ listData: updatedList
+ });
+
+ wx.showToast({
+ title: '鍒犻櫎鎴愬姛',
+ icon: 'success',
+ duration: 2000
+ });
+ }, 1500);
+ return;
+ }
+
+ wx.showLoading({
+ title: '姝e湪寮哄埗鍒犻櫎璇风◢鍊�...', // 鍔犺浇鎻愮ず鏂囧瓧
+ mask: true // 鏄惁鏄剧ず閫忔槑钂欏眰锛岄槻姝㈣Е鎽哥┛閫忥紝榛樿涓� false
+ });
+ const data = {
+ vcNum: item.vcNum, //鍙栨按鍙D
+ rtuAddr: item.rtuAddr, //闃�鎺у櫒鍦板潃
+ };
+ post({
+ url: "wx/valve/deleteUnclosed",
+ data: data,
+ timeout: 180000
+ }).then(response => {
+ // 澶勭悊鎴愬姛鍝嶅簲
+ console.log('璇锋眰鎴愬姛:', response);
+ // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
+ wx.hideLoading();
+ //閲嶆柊鑾峰彇鍒楄〃鍒锋柊鏁版嵁
+ this.getOpenList();
+ }).catch(error => {
+ // 鍔犺浇瀹屾垚鍚庨殣钘忓姞杞藉姩鐢�
+ wx.hideLoading();
+ // 澶勭悊閿欒鍝嶅簲
+ console.error('璇锋眰澶辫触:', error);
+ });
+ },
+ //淇敼鎸夐挳鏂囧瓧
+ updateDisplayText() {
+ const updatedList = this.data.listData.map(item => {
+ let displayText = '';
+ if (item.planned) {
+ displayText = '鍙栨秷';
+ } else {
+ displayText = "鍏抽榾"
+ }
+ let deleteText = "鍒犻櫎"
+ let time;
+ if (!item.dt) {
+ time = "鏆傛棤"
+ } else {
+ time = this.extractTime(item.dt)
+ }
+ if (item.waterInstant === null) {
+ item.waterInstant = "鏆傛棤"
+ }
+
+ return {
+ ...item,
+ displayText,
+ deleteText,
+ time
+ }; // 淇濈暀鎵�鏈夊叾浠栧瓧娈碉紝骞舵坊鍔� displayText 瀛楁
+ });
+ // 鏇存柊鍒楄〃鏁版嵁
+ this.setData({
+ listData: updatedList
+ });
+ },
+ //澶勭悊鏃堕棿鍘绘帀骞存湀鏃�
+ extractTime(datetimeString) {
+ const formattedDate = datetimeString.replace(" ", "T");
+ const date = new Date(formattedDate);
+ // 鑾峰彇灏忔椂銆佸垎閽熷拰绉�
+ const hours = date.getHours().toString().padStart(2, '0');
+ const minutes = date.getMinutes().toString().padStart(2, '0');
+ const seconds = date.getSeconds().toString().padStart(2, '0');
+ return `${hours}:${minutes}:${seconds}`;
+ },
+
+ // 鍒囨崲椤圭洰
+ switchProject() {
+ // 鏄剧ず浜屾纭寮圭獥
+ wx.showModal({
+ title: '鍒囨崲椤圭洰',
+ content: '纭畾瑕佸垏鎹㈤」鐩悧锛熷垏鎹㈠悗闇�瑕侀噸鏂扮櫥褰曘��',
+ confirmText: '纭鍒囨崲',
+ confirmColor: '#1890FF',
+ cancelText: '鍙栨秷',
+ success: (res) => {
+ if (res.confirm) {
+ // 鐢ㄦ埛鐐瑰嚮纭锛屾樉绀洪」鐩�夋嫨寮圭獥
+ this.setData({
+ showProjectDialog: true
+ });
+ }
+ }
+ });
+ },
+
+ // 娣诲姞鐢ㄦ埛鐐瑰嚮澶村儚鎴栫敤鎴峰悕鐧诲綍鐨勫鐞嗛�昏緫
+ handleUserTap() {
+ const app = getApp();
+ // 濡傛灉宸茬櫥褰曪紝涓嶉渶瑕佽烦杞埌鐧诲綍椤甸潰
+ if (app.globalData.isLoggedIn) {
+ return;
+ }
+
+ // 妫�鏌ュ綋鍓嶉」鐩槸鍚﹂渶瑕佺櫥褰�
+ const currentProject = app.globalData.selectedProject;
+ if (currentProject && PROJECT_CONFIG[currentProject]) {
+ const projectConfig = PROJECT_CONFIG[currentProject];
+
+ if (!projectConfig.needLogin) {
+ console.log('handleUserTap: 褰撳墠椤圭洰涓嶉渶瑕佺櫥褰�:', currentProject);
+ // 涓嶉渶瑕佺櫥褰曠殑椤圭洰锛屾樉绀洪」鐩悕绉�
+ this.setData({
+ userName: projectConfig.displayName
+ });
+ return;
+ }
+
+ // 鏍规嵁椤圭洰閰嶇疆鐨刲oginType鍐冲畾璺宠浆鍒板摢涓櫥褰曢〉闈�
+ const loginType = projectConfig.loginType || 'code'; // 榛樿浣跨敤楠岃瘉鐮佺櫥褰�
+
+ if (loginType === 'account') {
+ // 璐﹀彿瀵嗙爜鐧诲綍
+ wx.navigateTo({
+ url: `/pages/accountLogin/accountLogin?project=${currentProject}&projectName=${projectConfig.displayName}`
+ });
+ } else {
+ // 楠岃瘉鐮佺櫥褰�
+ wx.navigateTo({
+ url: `/pages/login/login?project=${currentProject}&projectName=${projectConfig.displayName}`
+ });
+ }
+ } else {
+ // 濡傛灉娌℃湁褰撳墠椤圭洰閰嶇疆锛岄粯璁よ烦杞埌楠岃瘉鐮佺櫥褰�
+ wx.navigateTo({
+ url: '/pages/login/login'
+ });
+ }
+ },
})
\ No newline at end of file
--
Gitblit v1.8.0