From b5c96c82c04f57d1d0e1e04d96e99e6d7829881f Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 14 十月 2021 10:59:30 +0800
Subject: [PATCH] 2021-10-14

---
 src/menu/components/card/cardcomponent/menus-wrap/menus/index.jsx |   71 ++++++++++++++++++++++++++++-------
 1 files changed, 57 insertions(+), 14 deletions(-)

diff --git a/src/menu/components/card/cardcomponent/menus-wrap/menus/index.jsx b/src/menu/components/card/cardcomponent/menus-wrap/menus/index.jsx
index 98f4c98..a324cb9 100644
--- a/src/menu/components/card/cardcomponent/menus-wrap/menus/index.jsx
+++ b/src/menu/components/card/cardcomponent/menus-wrap/menus/index.jsx
@@ -1,7 +1,8 @@
 import React, {Component} from 'react'
 import PropTypes from 'prop-types'
-import { fromJS } from 'immutable'
+import { is, fromJS } from 'immutable'
 
+import Utils from '@/utils/utils.js'
 import ColumnForm from './columnform'
 import asyncComponent from '@/utils/asyncComponent'
 import './index.scss'
@@ -20,10 +21,11 @@
     columns: [
       {
         title: '鏍囪瘑',
-        dataIndex: 'name',
+        dataIndex: 'sign',
         inputType: 'input',
         editable: true,
         unique: true,
+        required: false,
         width: '30%'
       },
       {
@@ -33,13 +35,7 @@
         editable: true,
         required: true,
         width: '40%',
-        render: (text) => {
-          if (text === 'image') {
-            return '鍥剧墖'
-          } else {
-            return '鏂囨湰'
-          }
-        },
+        render: (text, record) => record.label,
         options: this.props.menulist
       }
     ]
@@ -55,14 +51,62 @@
 
   columnChange = (values) => {
     const { menus } = this.state
+    values.uuid = Utils.getuuid()
+    let _menus = [...menus, values]
 
-    this.setState({menus: [...menus, values]})
+    this.setState({menus: _menus})
+    this.props.update(_menus)
   }
 
   changeColumns = (columns) => {
-    // const { menus } = this.state
+    const { appType, menulist } = this.props
+    const { menus } = this.state
 
+    let m = {}
+    menus.forEach(item => {
+      m[item.uuid] = item
+    })
+
+    columns = columns.map(col => {
+      let ori = m[col.uuid]
+      if (ori && is(fromJS({...col, $index: 1}), fromJS({...ori, $index: 1}))) return col
+      if (!appType) {
+        let fId = col.menu[0] || ''
+        let sId = col.menu[1] || ''
+        let tId = col.menu[2] || ''
+        let label = ''
+        
+        menulist.forEach(f => {
+          if (!fId || fId !== f.value) return
+          label = f.label
+
+          f.children.forEach(s => {
+            if (!sId || sId !== s.value) return
+            label += ' / ' + s.label
+
+            s.children.forEach(t => {
+              if (!tId || tId !== t.value) return
+              label += ' / ' + t.label
+
+              col.MenuID = t.MenuID
+              col.MenuName = t.MenuName
+              col.MenuNo = t.MenuNo
+              col.tabType = t.type
+              col.label = label
+            })
+          })
+        })
+      } else {
+        menulist.forEach(f => {
+          if (col.menu !== f.value) return
+          col.label = f.label
+        })
+      }
+      return col
+    })
+    
     this.setState({menus: columns})
+    this.props.update(columns)
   }
 
   render() {
@@ -71,9 +115,8 @@
 
     return (
       <div className="menus-box-wrap">
-        <ColumnForm appType={appType} menulist={menulist} columnChange={this.columnChange}/>
-        {/* <div style={{color: '#959595', fontSize: '13px', paddingLeft: '10px'}}>濡傞渶瀵煎嚭搴忓彿锛岃浣跨敤瀛楁 $Index銆�</div> */}
-        <EditTable actions={['edit', 'move', 'del']} type="excelcolumn" data={menus} columns={columns} onChange={this.changeColumns}/>
+        <ColumnForm appType={appType} menus={menus} menulist={menulist} columnChange={this.columnChange}/>
+        <EditTable actions={['edit', 'move', 'copy', 'del']} type={appType + 'cardmenus'} data={menus} columns={columns} onChange={this.changeColumns}/>
       </div>
     )
   }

--
Gitblit v1.8.0