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