hookehuyr

refactor(ui): 集中管理弱网络提示文本和弹窗配置

将分散在各处的弱网络提示文本和弹窗配置统一管理到uiText.js
更新相关文件引用新的统一配置
......@@ -13,6 +13,7 @@ import { saveCurrentPagePath, hasAuth, silentAuth, navigateToAuth } from '@/util
import Taro from '@tarojs/taro'
import { refresh_offline_booking_cache, has_offline_booking_cache } from '@/composables/useOfflineBookingCache'
import { is_usable_network, get_network_type } from '@/utils/network'
import { weak_network_text, get_weak_network_modal_use_cache_options } from '@/utils/uiText'
let has_shown_network_modal = false
......@@ -78,12 +79,7 @@ const App = createApp({
if (has_offline_booking_cache()) {
try {
const modal_res = await Taro.showModal({
title: '网络连接不畅',
content: '当前网络信号较弱,可使用已缓存的预约记录进入离线模式',
confirmText: '预约记录',
cancelText: '知道了',
})
const modal_res = await Taro.showModal(get_weak_network_modal_use_cache_options())
if (modal_res?.confirm) {
await Taro.reLaunch({ url: '/pages/offlineBookingList/index' })
return true
......@@ -93,7 +89,7 @@ const App = createApp({
}
} else {
try {
await Taro.showToast({ title: '网络连接不畅', icon: 'none', duration: 2000 })
await Taro.showToast({ title: weak_network_text.toast_title, icon: 'none', duration: 2000 })
} catch (e) {
return is_none_network
}
......
<!--
* @Date: 2024-01-16 10:06:47
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2026-01-13 16:21:40
* @LastEditTime: 2026-01-13 21:33:58
* @FilePath: /xyxBooking-weapp/src/pages/bookingCode/index.vue
* @Description: 预约码页面
-->
......@@ -43,8 +43,7 @@ import icon_5 from '@/assets/images/我的01@2x.png'
import { useGo } from '@/hooks/useGo'
import { has_offline_booking_cache } from '@/composables/useOfflineBookingCache'
import { is_usable_network } from '@/utils/network'
const go = useGo();
import { get_weak_network_modal_no_cache_options } from '@/utils/uiText'
useDidShow(() => {
Taro.getNetworkType({
......@@ -58,12 +57,7 @@ useDidShow(() => {
}
try {
await Taro.showModal({
title: '网络连接不畅',
content: '当前网络信号较弱,暂无法使用小程序,请到网络更好的地方重试。',
confirmText: '知道了',
showCancel: false,
})
await Taro.showModal(get_weak_network_modal_no_cache_options())
} catch (e) {
console.error('show weak network modal failed:', e)
}
......@@ -75,12 +69,7 @@ useDidShow(() => {
return
}
try {
await Taro.showModal({
title: '网络连接不畅',
content: '当前网络信号较弱,暂无法使用小程序,请到网络更好的地方重试。',
confirmText: '知道了',
showCancel: false,
})
await Taro.showModal(get_weak_network_modal_no_cache_options())
} catch (e) {
console.error('show weak network modal failed:', e)
}
......
<!--
* @Date: 2023-06-21 10:23:09
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2026-01-13 15:51:31
* @LastEditTime: 2026-01-13 21:23:30
* @FilePath: /xyxBooking-weapp/src/pages/index/index.vue
* @Description: 预约页首页
-->
......@@ -9,10 +9,10 @@
<view class="index-page" :class="{ 'is-offline': is_offline }">
<view v-if="is_offline" class="offline-banner mx-6 mt-4 rounded-xl px-4 py-3">
<view class="flex items-center">
<IconFont name="tips" size="18" />
<text class="ml-2 font-medium">离线模式</text>
<IconFont name="tips" size="14" />
<text class="ml-2 font-medium">离线提示</text>
</view>
<view class="mt-1 text-sm opacity-80">网络不佳,已启用本地显示</view>
<view class="mt-1 text-sm opacity-80">{{ weak_network_banner_desc }}</view>
</view>
<view class="index-content">
<view style="height: 28vh;">
......@@ -54,10 +54,10 @@
<script setup>
import Taro, { useDidShow, useShareAppMessage } from '@tarojs/taro'
import { IconFont } from '@nutui/icons-vue-taro'
// import { showSuccessToast, showFailToast } from 'vant'; // NutUI 或 Taro API
import { ref } from 'vue'
import { useGo } from '@/hooks/useGo'
import { get_network_type, is_usable_network } from '@/utils/network'
import { weak_network_text } from '@/utils/uiText'
import icon_1 from '@/assets/images/立即预约@2x.png'
import icon_3 from '@/assets/images/首页02@2x.png'
import icon_4 from '@/assets/images/二维码icon.png'
......@@ -65,6 +65,7 @@ import icon_5 from '@/assets/images/我的01@2x.png'
const go = useGo();
const is_offline = ref(false)
const weak_network_banner_desc = weak_network_text.banner_desc
const refresh_offline_state = async () => {
const network_type = await get_network_type()
......@@ -79,7 +80,7 @@ const toBooking = () => { // 跳转到预约须知
// 如果是离线模式,不跳转
if (is_offline.value) {
Taro.showToast({
title: '当前为离线模式,无法预约',
title: weak_network_text.offline_mode_no_booking_toast,
icon: 'none'
})
return
......
......@@ -41,6 +41,7 @@ import { is_usable_network, get_network_type } from '@/utils/network'
import icon_booking from '@/assets/images/预约记录@2x.png'
import icon_visitor from '@/assets/images/我的01@2x.png'
import icon_invite from '@/assets/images/二维码@2x2.png'
import { weak_network_text, get_weak_network_modal_go_offline_records_options } from '@/utils/uiText'
const go = useGo();
......@@ -52,18 +53,13 @@ const on_menu_tap = async (item) => {
const is_weak_network = !is_usable_network(network_type)
if (is_weak_network) {
if (has_offline_booking_cache()) {
const modal_res = await Taro.showModal({
title: '网络连接不畅',
content: '当前网络信号较弱,是否进入离线预约记录?',
confirmText: '离线记录',
cancelText: '知道了',
})
const modal_res = await Taro.showModal(get_weak_network_modal_go_offline_records_options())
if (modal_res?.confirm) {
go('/pages/offlineBookingList/index')
}
return
}
Taro.showToast({ title: '网络连接不畅', icon: 'none', duration: 2000 })
Taro.showToast({ title: weak_network_text.toast_title, icon: 'none', duration: 2000 })
return
}
}
......
<!--
* @Date: 2026-01-08 13:02:27
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2026-01-08 13:02:39
* @LastEditTime: 2026-01-13 21:25:38
* @FilePath: /xyxBooking-weapp/src/pages/weakNetwork/index.vue
* @Description: 弱网络提示页面
-->
......@@ -11,8 +11,8 @@
<view class="icon-wrapper">
<IconFont name="mask-close" size="60" color="#A67939" />
</view>
<view class="title">网络连接不畅</view>
<view class="desc">当前网络信号较弱,已自动为您切换至离线模式</view>
<view class="title">{{ weak_network_title }}</view>
<view class="desc">{{ weak_network_desc }}</view>
<view class="offline-entry" @tap="toOfflineCode">
<view class="circle-btn">
......@@ -34,20 +34,18 @@ import { IconFont } from '@nutui/icons-vue-taro'
import { useGo } from '@/hooks/useGo'
import { onMounted } from 'vue'
import { has_offline_booking_cache } from '@/composables/useOfflineBookingCache'
import { weak_network_text, get_weak_network_modal_no_cache_options } from '@/utils/uiText'
import icon_invite from '@/assets/images/二维码@2x2.png'
const go = useGo();
const weak_network_title = weak_network_text.title
const weak_network_desc = weak_network_text.offline_page_desc
onMounted(async () => {
if (has_offline_booking_cache()) return
try {
await Taro.showModal({
title: '网络连接不畅',
content: '当前网络信号较弱,暂无法使用小程序,请到网络更好的地方重试。',
confirmText: '知道了',
showCancel: false,
})
await Taro.showModal(get_weak_network_modal_no_cache_options())
} catch (e) {
console.error('show weak network modal failed:', e)
}
......
/*
* @Date: 2022-09-19 14:11:06
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2026-01-13 16:15:35
* @LastEditTime: 2026-01-13 21:29:43
* @FilePath: /xyxBooking-weapp/src/utils/request.js
* @Description: 简单axios封装,后续按实际处理
*/
......@@ -12,6 +12,7 @@ import Taro from '@tarojs/taro'
// import { strExist } from './tools'
import { refreshSession, saveCurrentPagePath, navigateToAuth } from './authRedirect'
import { has_offline_booking_cache } from '@/composables/useOfflineBookingCache'
import { get_weak_network_modal_no_cache_options } from '@/utils/uiText'
// import { ProgressStart, ProgressEnd } from '@/components/axios-progress/progress';
// import store from '@/store'
......@@ -125,12 +126,7 @@ const handle_request_timeout = async () => {
// 否则提示用户检查网络连接
try {
await Taro.showModal({
title: '网络连接不畅',
content: '当前网络信号较弱,暂无法使用小程序,请到网络更好的地方重试。',
confirmText: '知道了',
showCancel: false,
})
await Taro.showModal(get_weak_network_modal_no_cache_options())
} catch (e) {
console.error('show weak network modal failed:', e)
}
......
/*
* @Date: 2026-01-13 21:28:45
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2026-01-13 21:31:17
* @FilePath: /xyxBooking-weapp/src/utils/uiText.js
* @Description: 弱网络提示文本
*/
export const weak_network_text = {
title: '网络连接不畅',
toast_title: '网络连接不畅',
banner_desc: '网络开小差啦!请检查网络设置,或更换位置后重新尝试~',
offline_page_desc: '当前网络信号较弱,已自动为您切换至离线模式',
modal_no_cache_content: '当前网络信号较弱,暂无法使用小程序,请检查网络设置,或更换位置后重新尝试~',
modal_use_cache_content: '当前网络信号较弱,可使用已缓存的预约记录进入离线模式',
modal_go_offline_records_content: '当前网络信号较弱,是否进入离线预约记录?',
offline_mode_no_booking_toast: '当前为离线模式,无法预约',
confirm_ok: '知道了',
confirm_booking_records: '预约记录',
confirm_offline_records: '离线记录',
}
/**
* @description: 获取弱网络提示弹窗配置(无缓存)
* @returns {Object}
*/
export const get_weak_network_modal_no_cache_options = () => {
return {
title: weak_network_text.title,
content: weak_network_text.modal_no_cache_content,
confirmText: weak_network_text.confirm_ok,
showCancel: false,
}
}
/**
* @description: 获取弱网络提示弹窗配置(有缓存)
* @returns {Object}
*/
export const get_weak_network_modal_use_cache_options = () => {
return {
title: weak_network_text.title,
content: weak_network_text.modal_use_cache_content,
confirmText: weak_network_text.confirm_booking_records,
cancelText: weak_network_text.confirm_ok,
}
}
/**
* @description: 获取弱网络提示弹窗配置(进入离线预约记录)
* @returns {Object}
*/
export const get_weak_network_modal_go_offline_records_options = () => {
return {
title: weak_network_text.title,
content: weak_network_text.modal_go_offline_records_content,
confirmText: weak_network_text.confirm_offline_records,
cancelText: weak_network_text.confirm_ok,
}
}