From 7adf0212cd71a8ec604f65ba2c2e9bdfc5dec22d Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 13 一月 2023 10:31:38 +0800
Subject: [PATCH] 2023-01-13

---
 src/tabviews/custom/components/card/data-card/index.jsx |   49 +++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 45 insertions(+), 4 deletions(-)

diff --git a/src/tabviews/custom/components/card/data-card/index.jsx b/src/tabviews/custom/components/card/data-card/index.jsx
index b489eaa..121091a 100644
--- a/src/tabviews/custom/components/card/data-card/index.jsx
+++ b/src/tabviews/custom/components/card/data-card/index.jsx
@@ -111,7 +111,7 @@
     }
 
     let selected = 'false'
-    if (_config.wrap.selected === 'always' || _config.wrap.selected === 'init') {
+    if (_config.wrap.selected === 'always' || _config.wrap.selected === 'init' || _config.wrap.selected === 'sign') {
       selected = _config.wrap.selected
     } else {
       _config.wrap.selected = 'false'
@@ -342,17 +342,58 @@
   }
 
   checkTopLine = (id) => {
-    const { config, data } = this.state
+    const { config, data, selected } = this.state
+
+    if (!data || data.length === 0) {
+      this.setState({
+        activeKey: '',
+        selectKeys: [],
+        selectedData: []
+      })
+  
+      MKEmitter.emit('resetSelectLine', config.uuid, '', '')
+      if (config.setting.$hasSyncModule) {
+        MKEmitter.emit('syncBalconyData', config.uuid, [], false)
+      }
+      return
+    }
+
+    if (selected === 'sign') {
+      let index = ''
+      let keys = []
+      let items = []
+      let last = ''
+      data.forEach((item, i) => {
+        if (!item.$disabled && item.selected === 'true') {
+          items.push(item)
+          keys.push(i)
+          index = i
+          last = item
+        }
+      })
+
+      this.setState({
+        activeKey: index,
+        selectKeys: keys,
+        selectedData: items
+      })
+  
+      MKEmitter.emit('resetSelectLine', config.uuid, last ? last.$$uuid : '', last)
+      if (config.setting.$hasSyncModule) {
+        MKEmitter.emit('syncBalconyData', config.uuid, items, data.length === keys.length)
+      }
+      return
+    }
 
     let index = 0
-    if (id && data) {
+    if (id) {
       index = data.findIndex(item => item.$$uuid === id)
       if (index === -1) {
         index = 0
       }
     }
 
-    if (!data || data.length === 0 || data[index].$disabled) {
+    if (data[index].$disabled) {
       this.setState({
         activeKey: '',
         selectKeys: [],

--
Gitblit v1.8.0