From 432b788acf901b0720184b8ee8bc81a2e6fa47e0 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 28 九月 2021 18:22:02 +0800
Subject: [PATCH] 2021-09-28

---
 src/menu/components/table/normal-table/columns/index.jsx |   65 ++++++++++++++++++++++----------
 1 files changed, 45 insertions(+), 20 deletions(-)

diff --git a/src/menu/components/table/normal-table/columns/index.jsx b/src/menu/components/table/normal-table/columns/index.jsx
index 338f763..c347313 100644
--- a/src/menu/components/table/normal-table/columns/index.jsx
+++ b/src/menu/components/table/normal-table/columns/index.jsx
@@ -53,7 +53,7 @@
 
     if (index !== undefined) {
       return connectDragSource(
-        connectDropTarget(<th {...restProps} index={index} style={{ cursor: 'move', textAlign: align }}>
+        connectDropTarget(<th {...restProps} index={index} style={{ cursor: 'move', textAlign: align }} onDoubleClick={() => column && this.props.editColumn(column)}>
           <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
             <div className="mk-popover-control">
               {column && ['custom', 'colspan', 'action'].includes(column.type) ?
@@ -71,7 +71,7 @@
       )
     } else if (column) {
       return (
-        <th {...restProps} key={column.uuid}>
+        <th {...restProps} key={column.uuid} onDoubleClick={() => this.props.editColumn(column)}>
           <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={
             <div className="mk-popover-control">
               {column && ['custom', 'colspan'].includes(column.type) ?
@@ -123,9 +123,9 @@
 )
 
 class EditableColumnCell extends Component {
-  updateCard = (vals, action) => {
+  updateCard = (vals, btn) => {
     const { column } = this.props
-    this.props.upComponent({...column, elements: vals}, action)
+    this.props.upComponent({...column, elements: vals}, btn)
   }
 
   shouldComponentUpdate (nextProps, nextState) {
@@ -158,6 +158,7 @@
       return (
         <td style={{...style, minWidth: column.Width || 100}} className={className}>
           {column.field || (column.type === 'index' ? '$Index' : '')}
+          {column.Hide === 'true' ? <Icon style={{marginLeft: '5px', color: 'orange', fontSize: '12px'}} type="close-circle" /> : null}
           {column.marks && column.marks.length ? <Icon className="profile" type="ant-design"/> : null}
         </td>
       )
@@ -179,6 +180,7 @@
 
   state = {
     dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
+    appType: sessionStorage.getItem('appType'),
     tableId: '',
     data: [{uuid: Utils.getuuid()}],
     refresh: false,    // 寮哄埗鍒锋柊
@@ -267,18 +269,19 @@
     })
   }
 
-  updateCol = (col, action) => {
+  updateCol = (col, btn) => {
     let _columns = fromJS(this.state.columns).toJS()
     _columns = this.loopCol(_columns, col)
 
     this.setState({
       columns: _columns,
     }, () => {
-      if (action) {
-        this.props.updatecolumn({...this.props.config, cols: _columns, action})
-      } else {
-        this.props.updatecolumn({...this.props.config, cols: _columns})
+      let config = {...this.props.config, cols: _columns}
+      if (btn) {
+        config.action = config.action.filter(item => item.uuid !== btn.uuid)
       }
+
+      this.props.updatecolumn(config)
     })
   }
 
@@ -302,7 +305,7 @@
       })
       this.updateCol(column)
     } else if (column.type === 'custom') {
-      let newcard = {uuid: Utils.getuuid(), focus: true, eleType: 'text', datatype: 'dynamic'}
+      let newcard = {uuid: Utils.getuuid(), focus: true, eleType: 'text', datatype: 'dynamic', style: {paddingLeft: '4px'}}
   
       // 娉ㄥ唽浜嬩欢-娣诲姞鍏冪礌
       MKEmitter.emit('cardAddElement', [config.uuid, column.uuid], newcard)
@@ -383,22 +386,29 @@
   }
 
   deleteCol = (col) => {
+    const { appType } = this.state
     let _columns = fromJS(this.state.columns).toJS()
-    _columns = this.loopDelCol(_columns, col)
 
-    if (col.type === 'action') {
-      let uuids = []
-      col.elements && col.elements.forEach(c => {
-        uuids.push(c.uuid)
-      })
-      MKEmitter.emit('delButtons', uuids)
-    }
+    _columns = this.loopDelCol(_columns, col)
 
     this.setState({
       columns: _columns
     }, () => {
       this.props.updatecolumn({...this.props.config, cols: _columns})
     })
+
+    if (col.type !== 'action' || appType === 'mob') return
+
+    let uuids = []
+    col.elements && col.elements.forEach(c => {
+      if (appType === 'pc' && c.OpenType !== 'popview') return
+
+      uuids.push(c.uuid)
+    })
+
+    if (uuids.length === 0) return
+    
+    MKEmitter.emit('delButtons', uuids)
   }
 
   updateLineMarks = (vals) => {
@@ -503,6 +513,20 @@
     })
   }
 
+  clear = () => {
+    const _this = this
+
+    confirm({
+      content: '纭畾娓呯┖鏄剧ず鍒楀悧锛�',
+      onOk() {
+        _this.setState({columns: []}, () => {
+          _this.props.updatecolumn({..._this.props.config, cols: []})
+        })
+      },
+      onCancel() {}
+    })
+  }
+
   componentDidMount () {
     MKEmitter.addListener('submitStyle', this.getStyle)
   }
@@ -542,9 +566,10 @@
     return (
       <div className={`normal-table-columns ${config.setting.laypage} ${config.wrap.tableType} ${config.wrap.mode || ''}`} id={tableId}>
         <div className="col-control">
-          <Icon title="澶嶅埗" type="copy" onClick={this.copycolumn} />
+          <Icon title="澶嶅埗鏄剧ず鍒�" type="copy" onClick={this.copycolumn} />
           <MarkColumn columns={fields} type="line" marks={lineMarks} onSubmit={this.updateLineMarks} />
-          <Icon title="鍚屾" type="file-sync" onClick={this.syncfield} />
+          <Icon title="鍚屾瀛楁闆�" type="file-sync" onClick={this.syncfield} />
+          <Icon title="娓呯┖鏄剧ず鍒�" type="delete" onClick={this.clear}/>
         </div>
         <DndProvider>
           <Table

--
Gitblit v1.8.0