From 6c63f59aad024e1b127e53d5b7b0d096944801b5 Mon Sep 17 00:00:00 2001 From: hejin Date: Tue, 26 Aug 2025 00:42:42 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E8=AF=95=E5=AE=8C=E6=88=90=E4=B8=AD?= =?UTF-8?q?=E8=8B=B1=E6=96=87=E5=88=87=E6=8D=A2=EF=BC=9B=E5=AE=8C=E6=88=90?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=9B=B4=E6=96=B0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/index.js | 7 ++++ src/assets/images/icon/language.png | Bin 0 -> 2732 bytes src/components/comfirm-popup.vue | 13 ++++-- src/hooks/utils.js | 4 +- src/layouts/default.vue | 37 ++++++++++++++--- src/locale/en.json | 6 ++- src/locale/zh-Hans.json | 6 ++- src/main.js | 1 - src/manifest.json | 4 +- src/pages/index/index.vue | 26 ++++++++++++ src/pages/inquiry/index.vue | 4 +- src/stores/index.js | 59 +++++++++++++++++++++++++++- 12 files changed, 150 insertions(+), 17 deletions(-) create mode 100644 src/assets/images/icon/language.png diff --git a/src/api/index.js b/src/api/index.js index 978e5c7..bb79dfc 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -126,4 +126,11 @@ export const fullTextSearchApi = (params) => { **/ export const appInfoApi = () => { return request.get('/web/footerInfo') +} + +/** + * @function 获取最新的app版本 +**/ +export const newAppApi = () => { + return request.get('/web/getNewApp') } \ No newline at end of file diff --git a/src/assets/images/icon/language.png b/src/assets/images/icon/language.png new file mode 100644 index 0000000000000000000000000000000000000000..8b9f778dc01a8f36b79f51693341ee2e2c91e538 GIT binary patch literal 2732 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 mmCR27XcdwlRXHE~2>3rdNq~Jug#w!Z0000 - 取消 - + + @@ -24,7 +24,10 @@ diff --git a/src/locale/en.json b/src/locale/en.json index c810f08..d3d3082 100644 --- a/src/locale/en.json +++ b/src/locale/en.json @@ -52,7 +52,11 @@ "Reset": "Reset", "Sure": "Sure", "Newdetail": "Newdetail", - "Allloaded": "All loaded" + "Allloaded": "All loaded", + "appUpdate": "Updating", + "confirm": "confirm", + "cancel": "cancel", + "KindReminder": "KindReminder" }, "menu": { "Home": "Home", diff --git a/src/locale/zh-Hans.json b/src/locale/zh-Hans.json index 6461a19..d5f4f4d 100644 --- a/src/locale/zh-Hans.json +++ b/src/locale/zh-Hans.json @@ -52,7 +52,11 @@ "Reset": "重置", "Sure": "确认", "Newdetail": "文章详情", - "Allloaded": "已全部加载" + "Allloaded": "已全部加载", + "appUpdate": "更新中", + "confirm": "确认", + "cancel": "取消", + "KindReminder": "温馨提示" }, "menu": { "Home": "首页", diff --git a/src/main.js b/src/main.js index f2e71b4..f0f90d5 100644 --- a/src/main.js +++ b/src/main.js @@ -30,7 +30,6 @@ const messages = { en, 'zh-Hans': zh, } -uni.setLocale('en') let i18nConfig = { locale: uni.getLocale(),// 获取已设置的语言 messages diff --git a/src/manifest.json b/src/manifest.json index 4edabf8..05bdce1 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -41,7 +41,9 @@ ] }, /* ios打包配置 */ - "ios" : {}, + "ios" : { + "dSYMs" : false + }, /* SDK配置 */ "sdkConfigs" : {}, "icons" : { diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue index d7fe577..0a118b3 100644 --- a/src/pages/index/index.vue +++ b/src/pages/index/index.vue @@ -31,6 +31,12 @@ + + @@ -144,6 +150,7 @@ import { ref } from 'vue'; import { onLoad, onPullDownRefresh } from '@dcloudio/uni-app'; import dayJs from 'dayjs'; + import { useI18n } from 'vue-i18n'; import { homeBannberApi, hotProductApi, @@ -151,6 +158,8 @@ hotNewsApi } from '@/api/index.js'; + const { locale } = useI18n() + const bannerList = ref([]) const getBannerList = () => { return homeBannberApi().then(({data:res}) => { @@ -201,6 +210,16 @@ } } + const language = () => { + let language = uni.getLocale() + let setLanguage = language === 'zh-Hans' ? 'en' : 'zh-Hans' + locale.value = setLanguage + uni.setLocale(setLanguage) + uni.reLaunch({ + url: '/pages/index/index' + }) + } + onPullDownRefresh(async() => { try { await getBannerList() @@ -241,6 +260,8 @@ position: relative; top: -40rpx; .search-box { + display: flex; + align-items: center; ::v-deep .uni-easyinput { border-radius: 32rpx; overflow: hidden; @@ -253,6 +274,11 @@ height: 24rpx; margin-right: 16rpx; } + .language { + width: 40rpx; + height: 40rpx; + margin-left: 20rpx; + } } .panel { width: 100%; diff --git a/src/pages/inquiry/index.vue b/src/pages/inquiry/index.vue index fe13429..35a92f5 100644 --- a/src/pages/inquiry/index.vue +++ b/src/pages/inquiry/index.vue @@ -4,8 +4,8 @@ - - + + diff --git a/src/stores/index.js b/src/stores/index.js index ca8409f..61a560e 100644 --- a/src/stores/index.js +++ b/src/stores/index.js @@ -1,7 +1,13 @@ import { defineStore } from 'pinia'; import { ref } from 'vue'; import { useI18n } from 'vue-i18n'; -import { menuCategoryApi, msgListApi, saveMsg, appInfoApi } from '@/api/index.js'; +import { + menuCategoryApi, + msgListApi, + saveMsg, + appInfoApi, + newAppApi +} from '@/api/index.js'; import { getUuid } from '@/utils/tool.js'; export const useIndex = defineStore('index',()=>{ @@ -161,4 +167,55 @@ export const useScoketMsg = defineStore('scoketMsg', () => { send, msgCallback } +}) + +export const useAppUpdate = defineStore('appUpdate', () => { + const { t } = useI18n() + + const loading = ref(false) + const progress = ref(0) + const callback = ref(null) + + const getAppInfo = () => { + if (loading.value) { + return + } + return newAppApi().then(({data:res}) => { + let appConfig = uni.getSystemInfoSync() + if (String(res.data.version) !== appConfig.appVersion) { + callback.value && callback.value() + loading.value = true + const downloadTask = uni.downloadFile({ + url: res.data.apkUrl, + // url: 'https://114.132.197.85:26035/down/0JjTqTl4atsE.apk', + success: res1 => { + loading.value = false + if (res1.statusCode===200) { + plus.runtime.install(res1.tempFilePath, false, (installSuccess) => { + console.log(installSuccess,'installSuccess'); + }, (installErrorCB) => { + console.log(installErrorCB); + }); + } + }, + complete: () => { + loading.value = false + } + }) + + downloadTask.onProgressUpdate((res1) => { + progress.value = res1.progress + if (res1.progress===100) { + loading.value = false + } + }) + } + }) + } + + return { + getAppInfo, + progress, + callback + } }) \ No newline at end of file