This commit is contained in:
parent
7e368dc111
commit
ff61ee72b1
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name" : "学业邑规划",
|
"name" : "学业邑规划",
|
||||||
"appid" : "__UNI__1BAACAB",
|
"appid" : "__UNI__A612028",
|
||||||
"description" : "",
|
"description" : "",
|
||||||
"versionName" : "1.0.0",
|
"versionName" : "1.0.0",
|
||||||
"versionCode" : "100",
|
"versionCode" : "100",
|
||||||
|
|
|
||||||
|
|
@ -218,18 +218,42 @@ async function initPageData() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 内部页面跳转(兼容 TabBar 页面带参数)
|
||||||
|
* switchTab 不支持 query 参数,通过 globalData 传递
|
||||||
|
*/
|
||||||
|
function navigateToInternal(url) {
|
||||||
|
if (!url) return
|
||||||
|
// 解析路径和参数
|
||||||
|
const [path, queryStr] = url.split('?')
|
||||||
|
const query = {}
|
||||||
|
if (queryStr) {
|
||||||
|
queryStr.split('&').forEach(pair => {
|
||||||
|
const [key, val] = pair.split('=')
|
||||||
|
if (key) query[key] = decodeURIComponent(val || '')
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
uni.navigateTo({
|
||||||
|
url,
|
||||||
|
fail: () => {
|
||||||
|
// TabBar 页面:通过 globalData 传递参数
|
||||||
|
if (Object.keys(query).length > 0) {
|
||||||
|
getApp().globalData = getApp().globalData || {}
|
||||||
|
getApp().globalData.tabPageParams = query
|
||||||
|
}
|
||||||
|
uni.switchTab({ url: path })
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理Banner点击
|
* 处理Banner点击
|
||||||
*/
|
*/
|
||||||
function handleBannerClick(item) {
|
function handleBannerClick(item) {
|
||||||
if (!item.linkUrl) return
|
if (!item.linkUrl) return
|
||||||
if (item.linkType === 1) {
|
if (item.linkType === 1) {
|
||||||
uni.navigateTo({
|
navigateToInternal(item.linkUrl)
|
||||||
url: item.linkUrl,
|
|
||||||
fail: () => {
|
|
||||||
uni.switchTab({ url: item.linkUrl })
|
|
||||||
}
|
|
||||||
})
|
|
||||||
} else if (item.linkType === 2) {
|
} else if (item.linkType === 2) {
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url: `/pages/webview/index?url=${encodeURIComponent(item.linkUrl)}`
|
url: `/pages/webview/index?url=${encodeURIComponent(item.linkUrl)}`
|
||||||
|
|
@ -251,12 +275,7 @@ function handleCardClick(item) {
|
||||||
}
|
}
|
||||||
// actionType === 1: 跳转页面
|
// actionType === 1: 跳转页面
|
||||||
if (!item.linkUrl) return
|
if (!item.linkUrl) return
|
||||||
uni.navigateTo({
|
navigateToInternal(item.linkUrl)
|
||||||
url: item.linkUrl,
|
|
||||||
fail: () => {
|
|
||||||
uni.switchTab({ url: item.linkUrl })
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,7 @@
|
||||||
* tab 超出屏幕时可横向滚动
|
* tab 超出屏幕时可横向滚动
|
||||||
*/
|
*/
|
||||||
import { ref, computed, onMounted } from 'vue'
|
import { ref, computed, onMounted } from 'vue'
|
||||||
import { onLoad } from '@dcloudio/uni-app'
|
import { onLoad, onShow } from '@dcloudio/uni-app'
|
||||||
import { getTeamInfo } from '@/api/team.js'
|
import { getTeamInfo } from '@/api/team.js'
|
||||||
import Loading from '@/components/Loading/index.vue'
|
import Loading from '@/components/Loading/index.vue'
|
||||||
import Navbar from '@/components/Navbar/index.vue'
|
import Navbar from '@/components/Navbar/index.vue'
|
||||||
|
|
@ -90,6 +90,19 @@ onLoad((query) => {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// switchTab 不支持 query 参数,通过 globalData 传递
|
||||||
|
onShow(() => {
|
||||||
|
const app = getApp()
|
||||||
|
if (app.globalData && app.globalData.tabPageParams) {
|
||||||
|
const params = app.globalData.tabPageParams
|
||||||
|
if (params.tab !== undefined) {
|
||||||
|
activeIndex.value = Number(params.tab) || 0
|
||||||
|
}
|
||||||
|
// 读取后清除,避免重复触发
|
||||||
|
delete app.globalData.tabPageParams
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
// 当前选中项
|
// 当前选中项
|
||||||
const currentItem = computed(() => {
|
const currentItem = computed(() => {
|
||||||
return items.value[activeIndex.value] || {}
|
return items.value[activeIndex.value] || {}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user