From c98e45bfac25e9110ad0383faac54a54d98ea9d5 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 18 十一月 2021 20:47:04 +0800
Subject: [PATCH] 2021-11-18

---
 src/templates/sharecomponent/columncomponent/index.jsx |   46 ++++++++++++++++++++++++++++++----------------
 1 files changed, 30 insertions(+), 16 deletions(-)

diff --git a/src/templates/sharecomponent/columncomponent/index.jsx b/src/templates/sharecomponent/columncomponent/index.jsx
index a37af66..357dfd8 100644
--- a/src/templates/sharecomponent/columncomponent/index.jsx
+++ b/src/templates/sharecomponent/columncomponent/index.jsx
@@ -1,7 +1,8 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
 import { is, fromJS } from 'immutable'
-import { Icon, Tooltip, Modal, notification, Switch, message } from 'antd'
+import { Tooltip, Modal, notification, Switch, message } from 'antd'
+import { QuestionCircleOutlined, CopyOutlined } from '@ant-design/icons'
 
 import zhCN from '@/locales/zh-CN/model.js'
 import enUS from '@/locales/en-US/model.js'
@@ -12,6 +13,7 @@
 import GridBtnForm from './gridbtnform'
 import DragElement from './dragcolumn'
 import MarkColumn from './markcolumn'
+import MKEmitter from '@/utils/events.js'
 import './index.scss'
 
 const { confirm } = Modal
@@ -26,7 +28,7 @@
   state = {
     dict: sessionStorage.getItem('lang') !== 'en-US' ? zhCN : enUS,
     columnlist: null,    // 鏄剧ず鍒�
-    showField: false,    // 鏄剧ず鍒楀瓧娈�
+    showField: true,     // 鏄剧ず鍒楀瓧娈�
     modaltype: '',       // 妯℃�佹鎺у埗
     card: null           // 缂栬緫涓厓绱�
   }
@@ -38,18 +40,6 @@
     this.setState({
       columnlist: fromJS(this.props.config.columns).toJS()
     })
-  }
-
-  /**
-   * @description 鐩戝惉鍒版樉绀哄垪澶嶅埗鏃讹紝瑙﹀彂鏄剧ず鍒楃紪杈�
-   */
-  UNSAFE_componentWillReceiveProps (nextProps) {
-    const { config } = this.props
-    const { columnlist } = this.state
-
-    if (!is(fromJS(nextProps.config.columns), fromJS(config.columns)) && !is(fromJS(nextProps.config.columns), fromJS(columnlist))) {
-      this.setState({columnlist: fromJS(nextProps.config.columns).toJS()})
-    }
   }
 
   /**
@@ -460,8 +450,31 @@
     })
   }
 
+  plusColumns = (MenuId, items) => {
+    const { config } = this.props
+    const { columnlist } = this.state
+
+    if (MenuId !== config.uuid) return
+
+    let list = [...columnlist, ...items]
+
+    if (list[0] && list[0].origin) {
+      list = list.filter(col => !col.origin)
+    }
+
+    this.setState({
+      columnlist: list
+    }, () => {
+      this.props.updatecolumn({...config, columns: list})
+    })
+  }
+
   shouldComponentUpdate (nextProps, nextState) {
     return !is(fromJS(this.props), fromJS(nextProps)) || !is(fromJS(this.state), fromJS(nextState))
+  }
+
+  componentDidMount () {
+    MKEmitter.addListener('plusColumns', this.plusColumns)
   }
 
   /**
@@ -471,6 +484,7 @@
     this.setState = () => {
       return
     }
+    MKEmitter.removeListener('plusColumns', this.plusColumns)
   }
 
   render() {
@@ -480,10 +494,10 @@
     return (
       <div className="model-table-column-list">
         <Tooltip placement="bottomLeft" overlayClassName="middle" title={dict['model.tooltip.column.guide']}>
-          <Icon type="question-circle" />
+          <QuestionCircleOutlined style={{color: '#c49f47', position: 'relative', left: '-15px', top: '5px'}} />
         </Tooltip>
         {columnlist && columnlist.length > 0 ?
-          <Icon className="column-copy" title="copy" type="copy" onClick={this.copycolumn} /> : null
+          <CopyOutlined className="column-copy" title="copy" onClick={this.copycolumn} /> : null
         }
         <Switch checkedChildren={dict['model.switch.open']} unCheckedChildren={dict['model.switch.close']} defaultChecked={this.state.showField} onChange={this.onFieldChange} />
         <DragElement

--
Gitblit v1.8.0