You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
<script>import { FetchLibcodeBycode,FetchInitFondsList } from '@/api/user'
export default { globalData: { appid: '', libcode: '', // 全局libcode
fondsName: '' // 新增:馆藏名称,全局使用
}, onLaunch() { this.initAppIdAndLibcode() }, methods: { // 初始化:拿appid → 请求接口拿libcode,存入globalData
async initAppIdAndLibcode() { // #ifdef MP-WEIXIN
try { // 1、全局获取appid
const accountInfo = wx.getAccountInfoSync() const appid = accountInfo.miniProgram.appId this.globalData.appid = appid
// 优先读本地缓存libcode,减少接口请求
let cacheLibcode = uni.getStorageSync('GLOBAL_LIBCODE') if(cacheLibcode){ this.globalData.libcode = cacheLibcode console.log('使用缓存libcode:', cacheLibcode) // ✅ 缓存有libcode,直接去拿 fondsName
await this.getFondsName(cacheLibcode) return }
// 2、调用接口 FetchLibcodeBycode,传入appid获取libcode
const res = await FetchLibcodeBycode({ code: 'vx_mini_appId', value: appid }) if(res.code === 200 && res.data){ const libcode = res.data this.globalData.libcode = libcode uni.setStorageSync('GLOBAL_LIBCODE', libcode) console.log('接口获取全局libcode成功:', libcode)
// ✅拿到libcode之后,调用FetchInitFondsList获取馆藏名称
await this.getFondsName(libcode)
}else{ console.error('FetchLibcodeBycode 获取libcode失败', res) } } catch(e){ console.error('初始化appid/libcode异常', e) } // #endif
}, /** * 根据libcode获取馆藏名称 fondsName */ async getFondsName(libcode) { try { // 优先读缓存
let cacheFondsName = uni.getStorageSync('GLOBAL_FONDS_NAME') if (cacheFondsName) { this.globalData.fondsName = cacheFondsName console.log('使用缓存 fondsName:', cacheFondsName) return } // 调用接口,传入libcode
const fondRes = await FetchInitFondsList({ 'fondsNo': libcode }) // console.log('FetchInitFondsList返回结果', fondRes)
if (fondRes.code === 200 && fondRes.data) { const fondsName = fondRes.data.fondsName || '' this.globalData.fondsName = fondsName uni.setStorageSync('GLOBAL_FONDS_NAME', fondsName) console.log('获取馆藏名称成功:', fondsName) } else { console.error('FetchInitFondsList 获取馆藏失败', fondRes) } } catch (err) { console.error('getFondsName异常', err) } },
// 退出登录 待用
// logout(){
// // 1. 清除登录缓存
// uni.removeStorageSync('wx_login_code')
// uni.removeStorageSync('READER_CARD_LIST')
// uni.removeStorageSync('CURRENT_READER_CARD')
// // 2.清除libcode缓存,强制重新拉取
// uni.removeStorageSync('GLOBAL_LIBCODE')
// uni.removeStorageSync('GLOBAL_FONDS_NAME') // 也要清空馆藏缓存
// getApp().globalData.libcode = ''
// getApp().globalData.fondsName = ''
// // 跳转登录页
// uni.reLaunch({url:'/pages/login/login'})
// }
// 刷新libcode 待用
// refreshLibcode(){
// uni.removeStorageSync('GLOBAL_LIBCODE')
// uni.removeStorageSync('GLOBAL_FONDS_NAME') // 清空馆藏
// getApp().globalData.libcode = ''
// getApp().globalData.fondsName = ''
// uni.showToast({title:"已重置libcode,将重新获取",icon:"none"})
// // 重新执行App.vue里面的初始化方法
// getApp().$options.methods.initAppIdAndLibcode()
// }
}}</script>
|