From b6c698c8833836971184a0a9c2645a15f8174d37 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 08 五月 2025 16:31:18 +0800
Subject: [PATCH] Merge branch 'master' into positec

---
 src/menu/components/table/normal-table/index.jsx |   92 +++++++++++++++++++++++++++++++--------------
 1 files changed, 63 insertions(+), 29 deletions(-)

diff --git a/src/menu/components/table/normal-table/index.jsx b/src/menu/components/table/normal-table/index.jsx
index 4b011c7..5cadab2 100644
--- a/src/menu/components/table/normal-table/index.jsx
+++ b/src/menu/components/table/normal-table/index.jsx
@@ -66,8 +66,8 @@
         columns: [],
         cols: [
           { origin: true, uuid: Utils.getuuid(), Align: 'left', label: 'label1', field: '', Hide: 'false', type: 'text', Width: 120 },
-          { origin: true, uuid: Utils.getuuid(), Align: 'left', label: 'label2', field: '', Hide: 'false', IsSort: 'true', type: 'text', Width: 120 },
-          { origin: true, uuid: Utils.getuuid(), Align: 'left', label: 'label3', field: '', Hide: 'false', IsSort: 'true', type: 'text', Width: 120 },
+          { origin: true, uuid: Utils.getuuid(), Align: 'left', label: 'label2', field: '', Hide: 'false', IsSort: 'false', type: 'text', Width: 120 },
+          { origin: true, uuid: Utils.getuuid(), Align: 'left', label: 'label3', field: '', Hide: 'false', IsSort: 'false', type: 'text', Width: 120 },
         ],
         scripts: [],
         isNew: true
@@ -92,6 +92,7 @@
 
   componentDidMount () {
     MKEmitter.addListener('completeSave', this.completeSave)
+    MKEmitter.addListener('addColumns', this.addColumns)
   }
 
   shouldComponentUpdate (nextProps, nextState) {
@@ -106,6 +107,7 @@
       return
     }
     MKEmitter.removeListener('completeSave', this.completeSave)
+    MKEmitter.removeListener('addColumns', this.addColumns)
   }
 
   completeSave = () => {
@@ -159,6 +161,10 @@
       if (card.errors.length === 0) {
         card.$tables = getTables(card)
       }
+
+      delete card.$c_ds
+      delete card.$c_ac
+      delete card.$c_cl
     }
 
     this.setState({
@@ -210,18 +216,28 @@
     this.updateComponent(_card)
   }
 
-  addColumns = () => {
-    let card = fromJS(this.state.card).toJS()
+  addColumns = (id) => {
+    const { card } = this.state
 
-    card.cols.push({ focus: true, uuid: Utils.getuuid(), label: 'label', field: '', type: 'text' })
+    if (id && id !== card.uuid) return
 
-    this.setState({card})
+    let _card = fromJS(card).toJS()
+
+    _card.cols.push({ focus: true, uuid: Utils.getuuid(), label: 'label', field: '', type: 'text' })
+
+    this.setState({card: _card})
   }
 
   addSearch = () => {
     const { card } = this.state
 
-    MKEmitter.emit('plusSearch', card.uuid, {uuid: Utils.getuuid(), focus: true, label: 'label', type: 'text', match: '='}, 'simple')
+    let ratio = 6
+
+    if (card.search.length) {
+      ratio = card.search[card.search.length - 1].ratio
+    }
+
+    MKEmitter.emit('plusSearch', card.uuid, {uuid: Utils.getuuid(), focus: true, label: 'label', type: 'text', match: '=', ratio}, 'simple')
   }
 
   addButton = () => {
@@ -272,11 +288,11 @@
   }
 
   getWrapForms = () => {
-    const { wrap, action, columns, cols } = this.state.card
+    const { card } = this.state
 
-    let _actions = [...action]
+    let _actions = []
 
-    cols.forEach(col => {
+    card.cols.forEach(col => {
       if (col.type === 'custom') {
         col.elements.forEach(cell => {
           if (cell.eleType !== 'button') return
@@ -286,7 +302,7 @@
       }
     })
 
-    return getWrapForm(wrap, _actions, columns)
+    return getWrapForm(card.wrap, _actions, card.columns, card.action, card.supNodes || [], card.uuid)
   }
 
   updateWrap = (res) => {
@@ -305,26 +321,44 @@
     res.borderRadius = card.wrap.borderRadius || 0
     res.resetContrl = card.wrap.resetContrl || 'init'
 
-    this.updateComponent({...card, wrap: res})
+    let _card = {...card, wrap: res}
+
+    if (res.supNodes) {
+      _card.supNodes = res.supNodes
+      _card.supNodes = _card.supNodes.map(item => {
+        item.componentId = item.nodes[item.nodes.length - 1]
+        return item
+      })
+
+      delete res.supNodes
+    } else {
+      delete _card.supNodes
+    }
+
+    this.updateComponent(_card)
   }
 
   updatecolumn = (config) => {
     config.absFields = []
-    config.cols.forEach(col => {
-      if (col.type === 'number') {
-        if (col.format === 'abs') {
-          config.absFields.push(col.field)
-        }
-      } else if (col.type === 'colspan' && col.subcols) {
-        col.subcols.forEach(scol => {
-          if (scol.type === 'number') {
-            if (scol.format === 'abs') {
-              config.absFields.push(scol.field)
-            }
+    config.hasExtend = false
+    config.parCtrl = false
+    let mapCol = (cols) => {
+      cols.forEach(col => {
+        if (col.type === 'number') {
+          if (col.format === 'abs') {
+            config.absFields.push(col.field)
           }
-        })
-      }
-    })
+        } else if (col.type === 'extend') {
+          config.hasExtend = true
+          if (col.supField) {
+            config.parCtrl = true
+          }
+        } else if (col.type === 'colspan' && col.subcols) {
+          mapCol(col.subcols)
+        }
+      })
+    }
+    mapCol(config.cols)
 
     if (config.absFields.length) {
       config.absFields = Array.from(new Set(config.absFields))
@@ -365,10 +399,10 @@
         <NormalHeader hideSearch="true" config={card} updateComponent={this.updateComponent}/>
         <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
           <div className="mk-popover-control">
-            <PlusOutlined className="plus" title="娣诲姞鍒�" onClick={this.addColumns}/>
+            <PlusOutlined className="plus" title="娣诲姞鍒�" onClick={() => this.addColumns()}/>
             {appType !== 'mob' ? <PlusCircleOutlined className="plus" title="娣诲姞鎼滅储" onClick={this.addSearch}/> : null}
             <PlusSquareOutlined className="plus" title="娣诲姞鎸夐挳" onClick={this.addButton}/>
-            <NormalForm title="琛ㄦ牸璁剧疆" width={800} update={this.updateWrap} getForms={this.getWrapForms}>
+            <NormalForm title="琛ㄦ牸璁剧疆" width={850} update={this.updateWrap} getForms={this.getWrapForms}>
               <EditOutlined style={{color: '#1890ff'}} title="缂栬緫"/>
             </NormalForm>
             <CopyComponent type="normaltable" card={card}/>
@@ -383,7 +417,7 @@
         </Popover>
         {appType !== 'mob' ? <SearchComponent config={card} updatesearch={this.updateComponent}/> : null}
         <ActionComponent config={card} setSubConfig={this.setSubConfig} updateaction={this.updateComponent}/>
-        <ColumnComponent config={card} updatecolumn={this.updateComponent}/>
+        <ColumnComponent config={card} updatecolumn={this.updatecolumn}/>
         <div className="component-name">
           <div className="center">
             <div className="title" onDoubleClick={() => {

--
Gitblit v1.8.0