Browse Source

更新代码:修改了多个页面的功能

Xfy
Default User 1 week ago
parent
commit
bf5d489799
  1. 54
      app.js
  2. 5
      pages/collection/index.js
  3. 8
      pages/index/index.js
  4. 5
      pages/qrcode/index.js

54
app.js

@ -5,7 +5,16 @@ App({
globalData: {
userInfo: null,
currentTab: 'index',
sessionStartTime: null
sessionStartTime: null,
// 缓存相关
cachedData: {
userInfo: null,
personnelInfo: null
},
cacheExpireTime: {
userInfo: 0, // 时间戳,0表示无缓存
personnelInfo: 0 // 时间戳,0表示无缓存
}
},
// 事件总线,用于页面间通信
@ -36,6 +45,49 @@ App({
this.globalData.currentTab = tabName;
},
// 缓存管理方法
setCache(key, data, expireTime = 3600000) { // 默认缓存1小时
this.globalData.cachedData[key] = data;
this.globalData.cacheExpireTime[key] = Date.now() + expireTime;
},
getCache(key) {
const now = Date.now();
if (this.globalData.cacheExpireTime[key] > now) {
return this.globalData.cachedData[key];
}
// 缓存过期,清除缓存
this.globalData.cachedData[key] = null;
this.globalData.cacheExpireTime[key] = 0;
return null;
},
// 获取业务员信息(带缓存)
getPersonnelInfo(phoneNumber) {
return new Promise((resolve, reject) => {
// 检查缓存
const cachedData = this.getCache('personnelInfo');
if (cachedData) {
console.log('使用缓存的业务员信息');
resolve(cachedData);
return;
}
// 从服务器获取
api.request('/api/personnel/get', 'POST', { phone: phoneNumber })
.then(res => {
console.log('从服务器获取业务员信息成功:', res);
// 设置缓存,缓存1小时
this.setCache('personnelInfo', res, 3600000);
resolve(res);
})
.catch(err => {
console.error('获取业务员信息失败:', err);
reject(err);
});
});
},
// 记录用户踪迹
recordUserTrace(action, additionalData = {}) {
const traceData = {

5
pages/collection/index.js

@ -44,8 +44,9 @@ Page({
// 如果有电话号码,查询personnel表获取详细信息
if (phoneNumber) {
// 根据电话号码查询personnel表
API.request('/api/personnel/get', 'POST', { phone: phoneNumber }).then(res => {
// 使用全局缓存方法获取业务员信息
const appInstance = getApp();
appInstance.getPersonnelInfo(phoneNumber).then(res => {
console.log('查询personnel表结果:', res);
if (res && res.success && res.data && res.data.length > 0) {
const personnelInfo = res.data[0];

8
pages/index/index.js

@ -482,9 +482,11 @@ Page({
console.log('开始检查手机号是否在personnel表中:', phoneNumber);
API.checkPhoneInPersonnel(phoneNumber).then(isInPersonnel => {
console.log('用户手机号是否在personnel表中:', isInPersonnel);
this.setData({ isInPersonnel });
// 使用全局缓存方法获取业务员信息
const appInstance = getApp();
appInstance.getPersonnelInfo(phoneNumber).then(res => {
console.log('用户手机号是否在personnel表中:', res.success && res.data && res.data.length > 0);
this.setData({ isInPersonnel: res.success && res.data && res.data.length > 0 });
}).catch(err => {
console.error('检查personnel表失败:', err);
this.setData({ isInPersonnel: false });

5
pages/qrcode/index.js

@ -44,8 +44,9 @@ Page({
const phoneNumber = userInfo.phoneNumber || wx.getStorageSync('phoneNumber') || '';
if (phoneNumber) {
// 根据电话号码查询personnel表
API.request('/api/personnel/get', 'POST', { phone: phoneNumber }).then(res => {
// 使用全局缓存方法获取业务员信息
const appInstance = getApp();
appInstance.getPersonnelInfo(phoneNumber).then(res => {
console.log('查询personnel表结果:', res);
if (res && res.success && res.data && res.data.length > 0) {
const personnelInfo = res.data[0];

Loading…
Cancel
Save