From 42fae277ae5ebe794fc070bf38482a919eb661fc Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 25 十一月 2020 14:36:02 +0800
Subject: [PATCH] 2020-11-25

---
 src/templates/sharecomponent/actioncomponent/index.jsx |   38 +++++++++++++++++++++++++-------------
 1 files changed, 25 insertions(+), 13 deletions(-)

diff --git a/src/templates/sharecomponent/actioncomponent/index.jsx b/src/templates/sharecomponent/actioncomponent/index.jsx
index 11d168b..a0190f0 100644
--- a/src/templates/sharecomponent/actioncomponent/index.jsx
+++ b/src/templates/sharecomponent/actioncomponent/index.jsx
@@ -28,8 +28,6 @@
     type: PropTypes.string,          // 鑿滃崟绫诲瀷锛屼富琛ㄦ垨瀛愯〃
     menu: PropTypes.object,          // 鑿滃崟淇℃伅锛堣彍鍗昳d锛岃彍鍗曞弬鏁帮紝鑿滃崟鍚嶇О锛�
     config: PropTypes.object,        // 鑿滃崟閰嶇疆淇℃伅
-    pasteContent: PropTypes.object,  // 绮樿创閰嶇疆淇℃伅
-    usefulFields: PropTypes.array,   // 鑷畾涔夊嚱鏁板彲鐢ㄥ瓧娈�
     tabs: PropTypes.array,           // 鎵�鏈夋爣绛�
     setSubConfig: PropTypes.func,    // 璁剧疆瀛愰厤缃俊鎭�
     updateaction: PropTypes.func     // 鑿滃崟閰嶇疆鏇存柊
@@ -61,10 +59,12 @@
   UNSAFE_componentWillReceiveProps (nextProps) {
     const { actionlist } = this.state
 
-    if (nextProps.pasteContent && nextProps.pasteContent.copyType === 'action') {
-      this.setState({actionlist: [...actionlist, nextProps.pasteContent]})
-      this.handleAction(nextProps.pasteContent)
-    } else if (!is(fromJS(nextProps.config.action), fromJS(this.props.config.action)) && !is(fromJS(nextProps.config.action), fromJS(actionlist))) {
+    if (!is(fromJS(nextProps.config.action), fromJS(this.props.config.action)) && !is(fromJS(nextProps.config.action), fromJS(actionlist))) {
+      let len = nextProps.config.action.length
+      let item = nextProps.config.action[len - 1]
+      if (item.copyType && item.focus) {
+        this.handleAction(item)
+      }
       this.setState({actionlist: fromJS(nextProps.config.action).toJS()})
     }
   }
@@ -138,7 +138,19 @@
    */
   handleAction = (card) => {
     const { menu } = this.props
-    let ableField = this.props.usefulFields.join(', ')
+
+    let usefulFields = sessionStorage.getItem('permFuncField')
+    if (usefulFields) {
+      try {
+        usefulFields = JSON.parse(usefulFields)
+      } catch {
+        usefulFields = []
+      }
+    } else {
+      usefulFields = []
+    }
+
+    let ableField = usefulFields.join(', ')
     let functip = <div>
       <p style={{marginBottom: '5px'}}>{this.state.dict['model.tooltip.func.innerface'].replace('@ableField', ableField)}</p>
       <p>{this.state.dict['model.tooltip.func.outface']}</p>
@@ -172,7 +184,7 @@
     this.setState({
       visible: true,
       card: card,
-      formlist: getActionForm(card, functip, this.props.config, this.props.usefulFields, this.props.type, menulist, this.state.printTemps)
+      formlist: getActionForm(card, functip, this.props.config, usefulFields, this.props.type, menulist, this.state.printTemps)
     })
   }
 
@@ -180,18 +192,18 @@
    * @description 鍙栨秷淇濆瓨锛屽鏋滃厓绱犱负鏂版坊鍏冪礌锛屽垯浠庡簭鍒椾腑鍒犻櫎
    */
   editModalCancel = () => {
-    const { card } = this.state
+    const { config } = this.props
+    const { card, actionlist } = this.state
 
     if (card.focus) {
-      let actionlist = fromJS(this.state.actionlist).toJS()
-
-      actionlist = actionlist.filter(item => item.uuid !== card.uuid)
+      let _actionlist = actionlist.filter(item => item.uuid !== card.uuid)
 
       this.setState({
         card: null,
-        actionlist: actionlist,
+        actionlist: _actionlist,
         visible: false
       })
+      this.props.updateaction({...config, action: _actionlist})
     } else {
       this.setState({
         card: null,

--
Gitblit v1.8.0