From afb39f8ab004b2607bb718edab02e99c7a010114 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 22 三月 2023 14:36:44 +0800
Subject: [PATCH] 2023-03-22

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

diff --git a/src/tabviews/custom/components/carousel/data-card/index.jsx b/src/tabviews/custom/components/carousel/data-card/index.jsx
index 8829c61..4dbe6e2 100644
--- a/src/tabviews/custom/components/carousel/data-card/index.jsx
+++ b/src/tabviews/custom/components/carousel/data-card/index.jsx
@@ -32,11 +32,12 @@
     visible: false
   }
 
+  loaded = false
+
   UNSAFE_componentWillMount () {
     const { data, initdata } = this.props
     let _config = fromJS(this.props.config).toJS()
     let _card = _config.subcards[0]
-    let _cols = new Map()
 
     let _data = null
     let _sync = _config.setting.sync === 'true'
@@ -62,6 +63,7 @@
     }
 
     if (_data) {
+      this.loaded = true
       _data = _data.map((item, index) => {
         item.key = index
         item.$$uuid = item[_config.setting.primaryKey] || ''
@@ -72,21 +74,9 @@
       })
     }
 
-    _config.columns.forEach(item => {
-      if (item.type !== 'number') return
-      _cols.set(item.field, item)
-    })
-
     if (_card.setting.click) {
       _card.style.cursor = 'pointer'
     }
-
-    _card.elements = _card.elements.map(item => {
-      if (item.eleType === 'number' && item.field && _cols.has(item.field) && typeof(item.decimal) !== 'number') {
-        item.decimal = _cols.get(item.field).decimal || 0
-      }
-      return item
-    })
 
     if (!_config.wrap.height) { // 鍏煎
       _config.wrap.height = _config.style.height || '300px'
@@ -129,6 +119,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) {
@@ -153,6 +158,8 @@
         return item
       })
 
+      this.loaded = true
+
       this.setState({sync: false, data: _data}, () => {
         this.openModal()
       })
@@ -174,7 +181,7 @@
     this.timer && this.timer.stop()
   }
 
-  openModal = () => {
+  openModal = (ErrCode) => {
     const { config, data } = this.state
     
     if (config.wrap.display !== 'modal' || !data || data.length === 0) return
@@ -188,6 +195,10 @@
       localStorage.setItem(code, data[0].$$uuid + data.length)
 
       Api.getAppVersion(true)
+
+      if (ErrCode === '-1') {
+        return
+      }
     }
 
     setTimeout(() => {
@@ -256,6 +267,8 @@
         data: [],
         loading: false
       })
+
+      this.loaded = true
       return
     }
 
@@ -276,6 +289,11 @@
 
     let result = await Api.genericInterface(param)
     if (result.status) {
+      this.loaded = true
+      if (config.$cache && config.setting.onload !== 'false') {
+        Api.writeCacheConfig(config.uuid, result.data || '')
+      }
+
       this.setState({
         data: result.data.map((item, index) => {
           item.key = index
@@ -287,7 +305,7 @@
         }),
         loading: false
       }, () => {
-        this.openModal()
+        this.openModal(result.ErrCode)
       })
     } else {
       this.setState({

--
Gitblit v1.8.0