From cd61abe1a07a7104eede687231a2f10d2c579527 Mon Sep 17 00:00:00 2001 From: gongfuxiang Date: Wed, 25 Sep 2024 09:55:41 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E8=AE=BE=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App.vue | 3 +++ pages/design/design.vue | 47 +++++++++++++++++++++++++++++++++-------- 2 files changed, 41 insertions(+), 9 deletions(-) diff --git a/App.vue b/App.vue index d84f414e..b22c7698 100644 --- a/App.vue +++ b/App.vue @@ -182,6 +182,9 @@ // 商品数据缓存key cache_goods_data_key: 'cache_goods_data_key', + // 页面设计数据缓存key + cache_design_data_key: 'cache_design_data_key', + // 默认用户头像 default_user_head_src: '/static/images/common/user.png', diff --git a/pages/design/design.vue b/pages/design/design.vue index 34db42c5..48d62e67 100644 --- a/pages/design/design.vue +++ b/pages/design/design.vue @@ -35,7 +35,8 @@ theme_view: app.globalData.get_theme_value_view(), data_bottom_line_status: false, data_list_loding_status: 1, - data_list_loding_msg: '', + data_list_loding_msg: '', + load_status: 0, params: null, data: null, layout_data: [], @@ -77,23 +78,45 @@ methods: { // 获取数据 - get_data() { + get_data(params = {}) { + // 还没有数据则读取缓存 + var cache_key = app.globalData.data.cache_design_data_key; + if (this.load_status == 0) { + // 本地缓存数据 + var upd_data = uni.getStorageSync(cache_key) || null; + if (upd_data != null) { + // 先使用缓存数据展示 + this.setData(upd_data); + + // 已有本地缓存则直接取远程有效数据(默认首次取的是远程缓存数据) + params['is_cache'] = 0; + } + } uni.request({ url: app.globalData.get_request_url("index", "design"), method: 'POST', - data: this.params, + data: {...this.params, ...params}, dataType: 'json', success: res => { uni.stopPullDownRefresh(); if (res.data.code == 0) { - var data = res.data.data; - this.setData({ + var data = res.data.data; + var upd_data = { data: (data.data || null) != null && data.data.length != 0 ? data.data : null, layout_data: data.layout_data || [], data_list_loding_msg: '', data_list_loding_status: 0, data_bottom_line_status: true - }); + }; + this.setData(upd_data); + + // 存储缓存 + uni.setStorageSync(cache_key, upd_data); + + // 是否需要重新加载数据 + if (parseInt(data.is_result_data_cache || 0) == 1) { + this.get_data({ is_cache: 0 }); + } if ((this.data || null) != null) { // 基础自定义分享 @@ -112,7 +135,7 @@ title: this.data.name }); } - + // 分享菜单处理 app.globalData.page_share_handle(this.share_info); } else { @@ -121,13 +144,19 @@ data_list_loding_status: 2, data_list_loding_msg: res.data.msg }); - } + } + + // 非首次状态 + this.setData({ + load_status: 1 + }); }, fail: () => { uni.stopPullDownRefresh(); this.setData({ data_bottom_line_status: false, - data_list_loding_status: 2, + data_list_loding_status: 2, + load_status: 1, data_list_loding_msg: this.$t('common.internet_error_tips') }); app.globalData.showToast(this.$t('common.internet_error_tips'));