diff --git a/server/app/adminapi/lists/match/MatchOddsLists.php b/server/app/adminapi/lists/match/MatchOddsLists.php index bff359e..199e2bb 100644 --- a/server/app/adminapi/lists/match/MatchOddsLists.php +++ b/server/app/adminapi/lists/match/MatchOddsLists.php @@ -184,7 +184,7 @@ class MatchOddsLists extends BaseAdminDataLists implements ListsExtendInterface public static function formatSourceSite(string $sourceSite): string { $map = [ - 'hg' => '滚球', + 'hg' => '皇冠', 'titan007' => '球探', ]; return $map[$sourceSite] ?? ($sourceSite !== '' ? strtoupper($sourceSite) : '未知平台'); diff --git a/server/app/api/controller/MatchController.php b/server/app/api/controller/MatchController.php index e026efa..3be854c 100644 --- a/server/app/api/controller/MatchController.php +++ b/server/app/api/controller/MatchController.php @@ -866,7 +866,7 @@ class MatchController extends BaseApiController private function getOddsPlatformNameMap(): array { return [ - 'hg' => '滚球', + 'hg' => '皇冠', 'titan007' => '球探', ]; } diff --git a/uniapp/src/components/match-odds-detail/match-odds-detail.vue b/uniapp/src/components/match-odds-detail/match-odds-detail.vue index ae03741..3c5c108 100644 --- a/uniapp/src/components/match-odds-detail/match-odds-detail.vue +++ b/uniapp/src/components/match-odds-detail/match-odds-detail.vue @@ -15,6 +15,11 @@ 赔率加载中... + + {{ loadError }} + 重新加载 + + ([...defaultPlatformOptions]) const sourceSite = ref('') const loading = ref(false) const loaded = ref(false) +const loadError = ref('') const requestSeq = ref(0) +const normalizePlatformLabel = (key: string, label: string) => { + return key === 'hg' ? '皇冠' : label +} + const platforms = computed(() => { const result: WorldCupOddsPlatform[] = [] const seen = new Set() @@ -99,7 +109,10 @@ const platforms = computed(() => { const key = `${platform.platform_key}-${platform.source_match_id || ''}` if (seen.has(key)) return seen.add(key) - result.push(platform) + result.push({ + ...platform, + platform_name: normalizePlatformLabel(platform.platform_key, platform.platform_name), + }) }) }) return result @@ -124,7 +137,7 @@ const mergePlatformOptions = (options: unknown) => { options.forEach((item: any) => { const key = String(item?.key || '').trim() const label = String(item?.label || '').trim() - if (key && label) map.set(key, { key, label }) + if (key && label) map.set(key, { key, label: normalizePlatformLabel(key, label) }) }) } platformOptions.value = Array.from(map.values()) @@ -141,6 +154,7 @@ const fetchOdds = async (force = false) => { const seq = requestSeq.value + 1 requestSeq.value = seq loading.value = true + loadError.value = '' try { const data = await getMatchOdds({ home_team: props.homeTeam.trim(), @@ -157,6 +171,8 @@ const fetchOdds = async (force = false) => { if (seq !== requestSeq.value) return console.error('获取比赛赔率失败', error) oddsList.value = [] + loaded.value = true + loadError.value = '赔率加载失败,请稍后重试' } finally { if (seq === requestSeq.value) loading.value = false } @@ -169,6 +185,11 @@ const switchPlatform = (platformKey: string) => { void fetchOdds(true) } +const retryFetch = () => { + loaded.value = false + void fetchOdds(true) +} + const formatUpdateTime = (timestamp?: number) => { const value = Number(timestamp || 0) if (!value) return '' @@ -185,6 +206,7 @@ watch( () => { loaded.value = false oddsList.value = [] + loadError.value = '' void fetchOdds(true) }, ) diff --git a/uniapp/src/config/index.ts b/uniapp/src/config/index.ts index 29a0424..3a8f9c1 100644 --- a/uniapp/src/config/index.ts +++ b/uniapp/src/config/index.ts @@ -1,7 +1,7 @@ -import { isDevMode } from "@/utils/env"; -const envBaseUrl = import.meta.env.VITE_APP_BASE_URL || ""; +const envBaseUrl = 'https://test-server.sbnews.net/' -let baseUrl = `${envBaseUrl}/`; +let baseUrl = `${envBaseUrl}/` +//#endif /* * 微信小程序在`VITE_APP_BASE_URL`存在或`dev`模式下 @@ -10,14 +10,14 @@ let baseUrl = `${envBaseUrl}/`; */ //#ifdef MP-WEIXIN -baseUrl = isDevMode() || envBaseUrl ? baseUrl : "[baseUrl]"; +baseUrl = envBaseUrl //#endif const config = { - version: "1.9.0", //版本号 + version: '1.9.0', //版本号 baseUrl, //请求接口域名 - urlPrefix: "api", //请求默认前缀 - timeout: 60 * 1000, //请求超时时长 -}; + urlPrefix: 'api', //请求默认前缀 + timeout: 60 * 1000 //请求超时时长 +} -export default config; +export default config diff --git a/uniapp/src/packages_match/components/MatchCenterTabsPanel.vue b/uniapp/src/packages_match/components/MatchCenterTabsPanel.vue index 203f95b..79aa88e 100644 --- a/uniapp/src/packages_match/components/MatchCenterTabsPanel.vue +++ b/uniapp/src/packages_match/components/MatchCenterTabsPanel.vue @@ -266,7 +266,7 @@ const oddsShowTypeOptions: { key: OddsShowType; label: string }[] = [ const defaultOddsPlatformOptions: OddsPlatformOption[] = [ { key: '', label: '全部平台' }, - { key: 'hg', label: '滚球' }, + { key: 'hg', label: '皇冠' }, { key: 'titan007', label: '球探' }, ] @@ -463,9 +463,10 @@ const fetchOdds = async (force = false) => { ) platformOptions.forEach((item: any) => { if (item?.key) { - platformMap.set(String(item.key), { - key: String(item.key), - label: String(item.label || item.key).trim(), + const key = String(item.key) + platformMap.set(key, { + key, + label: key === 'hg' ? '皇冠' : String(item.label || item.key).trim(), }) } }) @@ -694,11 +695,12 @@ onMounted(() => { .content-tabs { padding: 0 24rpx 14rpx; - display: grid; - grid-template-columns: repeat(3, minmax(0, 1fr)); + display: flex; gap: 12rpx; &__item { + flex: 1; + min-width: 0; height: 58rpx; border-radius: 16rpx; background: #f1f5ff; diff --git a/uniapp/vite.config.ts b/uniapp/vite.config.ts index 523520d..35eaa90 100644 --- a/uniapp/vite.config.ts +++ b/uniapp/vite.config.ts @@ -1,4 +1,4 @@ -import { defineConfig } from 'vite' +import { defineConfig, loadEnv } from 'vite' import uni from '@dcloudio/vite-plugin-uni' import tailwindcss from 'tailwindcss' import autoprefixer from 'autoprefixer' @@ -28,37 +28,49 @@ const suppressUniRouterSourcemapWarning = (msg: string) => msg.includes("didn't generate a sourcemap") // https://vitejs.dev/config/ -export default defineConfig({ - plugins: [uni(), uniRouter(), weappTailwindcssDisabled ? undefined : vwt()], - customLogger: { - info(msg) { console.log(msg) }, - warn(msg) { if (suppressUniRouterSourcemapWarning(msg)) return; console.warn(msg) }, - error(msg) { console.error(msg) }, - warnOnce(msg) { if (suppressUniRouterSourcemapWarning(msg)) return; console.warn(msg) }, - infoOnce(msg) { console.log(msg) }, - clearScreen() { }, - hasWarned: false, - hasErrorLogged: false, - }, - build: { - rollupOptions: { - onwarn(warning, warn) { - if ( - warning.message?.includes('plugin (unplugin-uni-router) was used to transform files') && - warning.message?.includes("didn't generate a sourcemap") - ) { - return +export default defineConfig(({ mode }) => { + const env = loadEnv(mode, process.cwd(), '') + + return { + plugins: [uni(), uniRouter(), weappTailwindcssDisabled ? undefined : vwt()], + customLogger: { + info(msg) { console.log(msg) }, + warn(msg) { if (suppressUniRouterSourcemapWarning(msg)) return; console.warn(msg) }, + error(msg) { console.error(msg) }, + warnOnce(msg) { if (suppressUniRouterSourcemapWarning(msg)) return; console.warn(msg) }, + infoOnce(msg) { console.log(msg) }, + clearScreen() { }, + hasWarned: false, + hasErrorLogged: false, + }, + build: { + rollupOptions: { + onwarn(warning, warn) { + if ( + warning.message?.includes('plugin (unplugin-uni-router) was used to transform files') && + warning.message?.includes("didn't generate a sourcemap") + ) { + return + } + warn(warning) } - warn(warning) } + }, + css: { + postcss: { + plugins: postcssPlugin + } + }, + server: { + port: 5177, + proxy: isH5 && env.VITE_APP_BASE_URL + ? { + '/api': { + target: env.VITE_APP_BASE_URL, + changeOrigin: true, + }, + } + : undefined, } - }, - css: { - postcss: { - plugins: postcssPlugin - } - }, - server: { - port: 5177 } })