From 97e18fa9b628357fa43013cfefc96eec078de25e Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期一, 16 一月 2023 15:58:12 +0800
Subject: [PATCH] 2023-01-16

---
 src/tabviews/custom/components/carousel/data-card/index.jsx |   33 ++++++++++++++++++++++++++++++++-
 1 files changed, 32 insertions(+), 1 deletions(-)

diff --git a/src/tabviews/custom/components/carousel/data-card/index.jsx b/src/tabviews/custom/components/carousel/data-card/index.jsx
index 90a5d5b..90e9116 100644
--- a/src/tabviews/custom/components/carousel/data-card/index.jsx
+++ b/src/tabviews/custom/components/carousel/data-card/index.jsx
@@ -32,6 +32,8 @@
     visible: false
   }
 
+  loaded = false
+
   UNSAFE_componentWillMount () {
     const { data, initdata } = this.props
     let _config = fromJS(this.props.config).toJS()
@@ -62,6 +64,7 @@
     }
 
     if (_data) {
+      this.loaded = true
       _data = _data.map((item, index) => {
         item.key = index
         item.$$uuid = item[_config.setting.primaryKey] || ''
@@ -88,8 +91,12 @@
       return item
     })
 
+    if (!_config.wrap.height) { // 鍏煎
+      _config.wrap.height = _config.style.height || '300px'
+      delete _config.style.height
+    }
+
     _card.style.height = _config.wrap.height
-    _config.style.height = 'auto'
 
     _config.wrap.speed = (_config.wrap.speed || 3) * 1000
 
@@ -125,6 +132,21 @@
         this.loadData('timer')
       })
     }
+
+    if (config.$cache && !this.loaded) {
+      Api.getLCacheConfig(config.uuid).then(res => {
+        if (!res || this.loaded) return
+
+        let _data = res.map((item, index) => {
+          item.key = index
+          item.$$uuid = item[config.setting.primaryKey] || ''
+          item.$Index = index + 1 + ''
+          return item
+        })
+
+        this.setState({data: _data})
+      })
+    }
   }
 
   shouldComponentUpdate (nextProps, nextState) {
@@ -148,6 +170,8 @@
         item.$Index = index + 1
         return item
       })
+
+      this.loaded = true
 
       this.setState({sync: false, data: _data}, () => {
         this.openModal()
@@ -252,6 +276,8 @@
         data: [],
         loading: false
       })
+
+      this.loaded = true
       return
     }
 
@@ -272,6 +298,11 @@
 
     let result = await Api.genericInterface(param)
     if (result.status) {
+      this.loaded = true
+      if (config.$cache) {
+        Api.writeCacheConfig(config.uuid, result.data || '')
+      }
+
       this.setState({
         data: result.data.map((item, index) => {
           item.key = index

--
Gitblit v1.8.0