From 233709a44a2f5cfff9b8fb955ebcdc6889c0d40b Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 19 十一月 2019 09:12:28 +0800 Subject: [PATCH] 2019-11-19 --- src/locales/en-US/header.js | 57 -- src/components/sidemenu/comtableconfig/dragelement/index.jsx | 66 ++ src/components/sidemenu/comtableconfig/editcard/index.scss | 33 + src/components/sidemenu/comtableconfig/index.scss | 72 ++ src/components/sidemenu/editthdmenu/index.jsx | 3 src/locales/zh-CN/header.js | 57 -- src/api/index.js | 13 src/components/sidemenu/comtableconfig/editable/index.jsx | 6 src/components/sidemenu/comtableconfig/editcard/index.jsx | 87 +++ src/components/sidemenu/comtableconfig/editable/index.scss | 4 src/components/sidemenu/comtableconfig/index.jsx | 761 ++++++++++++++++++++++++-------- src/components/sidemenu/comtableconfig/dragelement/card.jsx | 8 src/locales/zh-CN/comtable.js | 83 +++ src/components/sidemenu/comtableconfig/actionform/index.jsx | 18 src/locales/en-US/comtable.js | 83 +++ src/components/sidemenu/comtableconfig/columnform/index.jsx | 1 16 files changed, 1,008 insertions(+), 344 deletions(-) diff --git a/src/api/index.js b/src/api/index.js index 1f4de91..7e2ef7d 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -21,8 +21,19 @@ return Promise.reject(error) }) +const setCurrentUrl = () => { + if (!!(window.history && window.history.pushState)) { + window.history.replaceState(null, null, window.location.href.split('#')[0] + '#/login') + window.location.reload() + } +} + axios.interceptors.response.use((response) => { - return Promise.resolve(response.data) + if (response.data.ErrCode === 'LoginError') { + setCurrentUrl() + } else { + return Promise.resolve(response.data) + } }, (error) => { return Promise.reject(error) }) diff --git a/src/components/sidemenu/comtableconfig/actionform/index.jsx b/src/components/sidemenu/comtableconfig/actionform/index.jsx index 4beb9ba..45308f8 100644 --- a/src/components/sidemenu/comtableconfig/actionform/index.jsx +++ b/src/components/sidemenu/comtableconfig/actionform/index.jsx @@ -4,6 +4,9 @@ import './index.scss' const btnIcons = [{ + MenuID: '', + text: 'unset' +}, { MenuID: 'plus', text: 'plus' }, { @@ -72,9 +75,9 @@ _options = ['label', 'Ot', 'OpenType', 'pageTemplate', 'icon', 'class'] } else { if (this.state.interType === 'outer') { - _options = ['label', 'OpenType', 'intertype', 'interface', 'func', 'callbackFunc', 'Ot', 'icon', 'class'] + _options = ['label', 'OpenType', 'intertype', 'innerFunc', 'interface', 'outerFunc', 'callbackFunc', 'Ot', 'icon', 'class'] } else { - _options = ['label', 'OpenType', 'intertype', 'func', 'Ot', 'icon', 'class'] + _options = ['label', 'OpenType', 'intertype', 'innerFunc', 'Ot', 'icon', 'class'] } } this.setState({ @@ -92,9 +95,9 @@ if (key === 'intertype') { let _options = null if (value === 'outer') { - _options = ['label', 'OpenType', 'intertype', 'interface', 'func', 'callbackFunc', 'Ot', 'icon', 'class'] + _options = ['label', 'OpenType', 'intertype', 'innerFunc', 'interface', 'outerFunc', 'callbackFunc', 'Ot', 'icon', 'class'] } else { - _options = ['label', 'OpenType', 'intertype', 'func', 'Ot', 'icon', 'class'] + _options = ['label', 'OpenType', 'intertype', 'innerFunc', 'Ot', 'icon', 'class'] } this.setState({ interType: value, @@ -109,7 +112,6 @@ getFields() { const { getFieldDecorator } = this.props.form const fields = [] - console.log(this.state.formlist) this.state.formlist.forEach((item, index) => { if (item.hidden) return @@ -150,7 +152,7 @@ > {item.options.map(option => <Select.Option id={option.MenuID} title={option.text} key={option.MenuID} value={option.MenuID}> - {item.key === 'icon' && <Icon type={option.MenuID} />} {option.text} + {item.key === 'icon' && option.MenuID && <Icon type={option.MenuID} />} {option.text} </Select.Option> )} </Select> @@ -216,9 +218,9 @@ _options = ['label', 'Ot', 'OpenType', 'pageTemplate', 'icon', 'class'] } else { if (_intertype === 'outer') { - _options = ['label', 'OpenType', 'intertype', 'interface', 'func', 'callbackFunc', 'Ot', 'icon', 'class'] + _options = ['label', 'OpenType', 'intertype', 'innerFunc', 'interface', 'outerFunc', 'callbackFunc', 'Ot', 'icon', 'class'] } else { - _options = ['label', 'OpenType', 'intertype', 'func', 'Ot', 'icon', 'class'] + _options = ['label', 'OpenType', 'intertype', 'innerFunc', 'Ot', 'icon', 'class'] } } this.setState({ diff --git a/src/components/sidemenu/comtableconfig/columnform/index.jsx b/src/components/sidemenu/comtableconfig/columnform/index.jsx index 438c092..e356c62 100644 --- a/src/components/sidemenu/comtableconfig/columnform/index.jsx +++ b/src/components/sidemenu/comtableconfig/columnform/index.jsx @@ -104,7 +104,6 @@ </Form.Item> </Col> ) - } }) return fields diff --git a/src/components/sidemenu/comtableconfig/dragelement/card.jsx b/src/components/sidemenu/comtableconfig/dragelement/card.jsx index cb1c735..5cedf7f 100644 --- a/src/components/sidemenu/comtableconfig/dragelement/card.jsx +++ b/src/components/sidemenu/comtableconfig/dragelement/card.jsx @@ -5,7 +5,7 @@ import ItemTypes from './itemtypes' import './index.scss' -const Card = ({ id, type, card, moveCard, findCard, editCard, hasDrop }) => { +const Card = ({ id, type, card, moveCard, findCard, editCard, copyCard, hasDrop }) => { const originalIndex = findCard(id).index const [{ isDragging }, drag] = useDrag({ item: { type: ItemTypes[type], id, originalIndex }, @@ -34,6 +34,11 @@ const edit = () => { editCard(id) } + + const copy = () => { + copyCard(id) + } + return ( <div className="page-card" style={type === 'columns' ? { flex: card.Width, opacity: opacity} : { opacity: opacity}}> <div ref={node => drag(drop(node))}> @@ -77,6 +82,7 @@ } </div> <Icon className="edit" type="edit" onClick={edit} /> + {type === 'action' && <Icon className="edit copy" type="copy" onClick={copy} />} </div> ) } diff --git a/src/components/sidemenu/comtableconfig/dragelement/index.jsx b/src/components/sidemenu/comtableconfig/dragelement/index.jsx index c89134c..9a8425d 100644 --- a/src/components/sidemenu/comtableconfig/dragelement/index.jsx +++ b/src/components/sidemenu/comtableconfig/dragelement/index.jsx @@ -30,6 +30,36 @@ handleMenu(card) } + const copyCard = id => { + const { card } = findCard(id) + let copycard = JSON.parse(JSON.stringify(card)) + copycard.uuid = Utils.getuuid() + copycard.origin = false + let names = cards.map(car => { return car.label }) + let index = 1 + let origin = copycard.label.split('(copy')[0] || 'button' + let label = origin + '(copy)' + while (names.includes(label)) { + label = origin + `(copy${index})` + index++ + } + + copycard.label = label + + let indexes = cards.map(car => { return car.id }) + let newid = 0 + while (indexes.includes(newid)) { + newid++ + } + copycard.id = newid + + const { index: overIndex } = findCard(`${card.id}`) + + const _cards = update(cards, { $splice: [[overIndex + 1, 0, copycard]] }) + setCards(_cards) + handleList({action: _cards}) + } + const hasDrop = (item) => { target = item } @@ -40,31 +70,42 @@ if (item.hasOwnProperty('originalIndex')) { return } + let newcard = {} if (item.type === 'search') { newcard.uuid = Utils.getuuid() newcard.label = 'fieldName' - newcard.field = 'field' + newcard.field = '' newcard.initval = '' newcard.type = item.subType - if (item.subType === 'select') { - newcard.resourceType = 0 - newcard.options = [] - newcard.dataSource = '' - } + newcard.resourceType = '0' + newcard.options = [] + newcard.dataSource = '' + newcard.setAll = 'false' + newcard.linkField = '' + newcard.valueField = '' + newcard.valueText = '' + newcard.orderBy = '' + newcard.orderType = 'asc' + newcard.display = 'dropdown' } else if (item.type === 'action') { newcard.uuid = Utils.getuuid() newcard.label = 'button' - newcard.func = '' - newcard.Ot = 'notRequired' + newcard.innerFunc = '' + newcard.outerFunc = '' + newcard.Ot = 'requiredSgl' newcard.OpenType = item.subType - newcard.icon = 'plus' + newcard.icon = '' newcard.class = 'green' + newcard.intertype = 'inner' + newcard.interface = '' + newcard.callbackFunc = '' + newcard.pageTemplate = '' } else if (item.type === 'columns') { newcard.uuid = Utils.getuuid() newcard.Align = 'left' newcard.label = 'fieldName' - newcard.field = 'field' + newcard.field = '' newcard.Hide = 'false' newcard.IsSort = item.subType newcard.Width = 120 @@ -98,8 +139,8 @@ } }) let columns = [] - if (type === 'columns' && cards.length > 12) { - let number = Math.ceil(cards.length / Math.ceil(cards.length / 12)) + if (type === 'columns' && cards.length > 10) { + let number = Math.ceil(cards.length / Math.ceil(cards.length / 10)) for (let i = 0, len = cards.length; i < len; i += number) { columns.push(cards.slice(i, i + number)) } @@ -117,6 +158,7 @@ card={card} moveCard={moveCard} editCard={editCard} + copyCard={copyCard} findCard={findCard} hasDrop={hasDrop} /> diff --git a/src/components/sidemenu/comtableconfig/editable/index.jsx b/src/components/sidemenu/comtableconfig/editable/index.jsx index 65a30fd..4f10603 100644 --- a/src/components/sidemenu/comtableconfig/editable/index.jsx +++ b/src/components/sidemenu/comtableconfig/editable/index.jsx @@ -9,13 +9,13 @@ <EditableContext.Provider value={form}> <tr {...props} /> </EditableContext.Provider> -); +) const EditableFormRow = Form.create()(EditableRow) class EditableCell extends Component { state = { - editing: false, + editing: false } toggleEdit = () => { @@ -41,7 +41,6 @@ renderCell = form => { this.form = form - // const { children, dataIndex, record, title } = this.props const { children, dataIndex, record } = this.props const { editing } = this.state return editing ? ( @@ -50,7 +49,6 @@ rules: [ { required: true, - // message: `${title} is required.`, message: 'NOT NULL.', }, ], diff --git a/src/components/sidemenu/comtableconfig/editable/index.scss b/src/components/sidemenu/comtableconfig/editable/index.scss index d486ae6..f8f0942 100644 --- a/src/components/sidemenu/comtableconfig/editable/index.scss +++ b/src/components/sidemenu/comtableconfig/editable/index.scss @@ -33,8 +33,4 @@ margin: 0; } } - - // .editable-cell-value-wrap:hover { - // padding: 0px; - // } } diff --git a/src/components/sidemenu/comtableconfig/editcard/index.jsx b/src/components/sidemenu/comtableconfig/editcard/index.jsx new file mode 100644 index 0000000..304fe7a --- /dev/null +++ b/src/components/sidemenu/comtableconfig/editcard/index.jsx @@ -0,0 +1,87 @@ +import React, {Component} from 'react' +import { Row, Col, Icon, Radio } from 'antd' +import './index.scss' + +class EditCardCell extends Component { + constructor(props) { + super(props) + + this.state = { + selected: false, + card: props.card + } + } + + changeSelect = () => { + this.setState({ + selected: !this.state.selected + }) + } + + changeType = (e) => { + console.log(e.target.value) + const { card } = this.state + this.setState({ + card: {...card, type: e.target.value} + }) + } + + render() { + const { card } = this.state + return ( + <div className={'ant-card ant-card-bordered ' + (this.state.selected ? 'selected' : '')} > + <div className="base" onClick={this.changeSelect}> + <Icon type="check" /> + <p>瀛楁鍚�: {card.label}</p> + <p>鎻愮ず鏂囧瓧: {card.field}</p> + </div> + <label>绫诲瀷:</label> + <Radio.Group onChange={this.changeType} value={this.state.card.type} disabled={!this.state.selected}> + <Radio value="text">text</Radio> + <Radio value="select">select</Radio> + <Radio value="date">date</Radio> + </Radio.Group> + </div> + ) + } +} + +class EditCard extends Component { + constructor(props) { + super(props) + + this.state = { + dataSource: props.data, + title: props.title + } + } + + getSelectedCard = () => { + let box = [] + this.state.dataSource.forEach((item, index) => { + if (this.refs['cellCard' + index].state.selected) { + box.push(this.refs['cellCard' + index].state.card) + } + }) + return box + } + + render() { + const { dataSource, title } = this.state + + return ( + <div className="common-modal-edit-card"> + {title && <h4>{title}</h4>} + <Row> + {dataSource.map((item, index) => ( + <Col key={index} span={8}> + <EditCardCell ref={'cellCard' + index} card={item} /> + </Col> + ))} + </Row> + </div> + ) + } +} + +export default EditCard \ No newline at end of file diff --git a/src/components/sidemenu/comtableconfig/editcard/index.scss b/src/components/sidemenu/comtableconfig/editcard/index.scss new file mode 100644 index 0000000..fe6cdd3 --- /dev/null +++ b/src/components/sidemenu/comtableconfig/editcard/index.scss @@ -0,0 +1,33 @@ +.common-modal-edit-card { + margin-left: -10px; + margin-right: -10px; + .ant-col { + padding: 10px; + .ant-card { + padding: 10px; + p { + margin-bottom: 5px; + } + label { + margin-right: 10px; + } + .anticon { + position: absolute; + top: 10px; + right: 10px; + opacity: 0.4; + } + .base { + cursor: pointer; + } + } + .ant-card.selected { + border-color: #1890ff; + box-shadow: 0px 0px 4px #1890ff; + .anticon { + opacity: 1; + color: #1890ff; + } + } + } +} diff --git a/src/components/sidemenu/comtableconfig/index.jsx b/src/components/sidemenu/comtableconfig/index.jsx index 830cc59..1beb384 100644 --- a/src/components/sidemenu/comtableconfig/index.jsx +++ b/src/components/sidemenu/comtableconfig/index.jsx @@ -3,25 +3,27 @@ // import { is, fromJS } from 'immutable' import { DndProvider } from 'react-dnd' import HTML5Backend from 'react-dnd-html5-backend' -import { Button, Card, Modal, Collapse, Input, notification } from 'antd' +import { Button, Card, Modal, Collapse, notification, Spin, Row, Col, Select, List, Icon } from 'antd' import DragElement from './dragelement' import SourceElement from './dragelement/source' import Api from '@/api' import SearchForm from './searchform' import ActionForm from './actionform' import ColumnForm from './columnform' +import EditCard from './editcard' import MenuForm from './menuform' -import zhCN from '@/locales/zh-CN/header.js' -import enUS from '@/locales/en-US/header.js' +import zhCN from '@/locales/zh-CN/comtable.js' +import enUS from '@/locales/en-US/comtable.js' import Utils from '@/utils/utils.js' import './index.scss' const { Panel } = Collapse -const { Search } = Input +const { Option } = Select const HeaderDict = (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS class ComTableConfig extends Component { static propTpyes = { + type: PropTypes.string, menu: PropTypes.any, handleConfig: PropTypes.func, supMenuList: PropTypes.array, @@ -29,162 +31,200 @@ } state = { - dict: HeaderDict, - config: null, - visible: false, - tableVisible: false, - addType: '', - menuformlist: null, - formlist: null, - formtemp: '', - card: null, - searchloading: false, - actionloading: false, - columnsloading: false, + dict: HeaderDict, // 瀛楀吀 + config: null, // 椤甸潰閰嶇疆 + visible: false, // 鎼滅储鏉′欢銆佹寜閽�佹樉绀哄垪锛屾ā鎬佹鏄剧ず鎺у埗 + tableVisible: false, // 鏁版嵁琛ㄥ瓧娈垫ā鎬佹 + addType: '', // 娣诲姞绫诲瀷-鎼滅储鏉′欢鎴栨樉绀哄垪 + tableColumns: [], // 琛ㄦ牸鏄剧ず鍒� + option: {}, // 鎼滅储鏉′欢鍙婃樉绀哄垪锛屽彲閫夋潯浠跺寘鎷琻ormal銆乷thers + loading: false, // 鍔犺浇涓紙鑾峰彇琛ㄦ暟鎹級 + menuformlist: null, // 鍩烘湰淇℃伅琛ㄥ崟瀛楁 + formlist: null, // 鎼滅储鏉′欢銆佹寜閽�佹樉绀哄垪琛ㄥ崟瀛楁 + formtemp: '', // 琛ㄥ崟绫诲瀷锛屾樉绀哄垪銆佹寜閽�佹悳绱㈡潯浠� + card: null, // 缂栬緫鍏冪礌 + searchloading: false, // 鎼滅储鏉′欢鍔犺浇涓� + actionloading: false, // 鎸夐挳鍔犺浇涓� + columnsloading: false, // 鏄剧ず鍒楀姞杞戒腑 + tables: [{ + name: 'SUsers', + label: '鐢ㄦ埛琛�' + }, { + name: 'SMenus', + label: '鑿滃崟琛�' + }, { + name: 'SColumns', + label: '鏄剧ず鍒楄〃' + }, { + name: 'SActions', + label: '鎸夐挳琛�' + }], + selectedTables: [], // 宸查�夎〃鍚� baseconfig: { type: 'system', - search: [{ - id: 0, - uuid: Utils.getuuid(), - label: 'text', - field: 'field', - initval: '', - type: 'text', - resourceType: '0', - setAll: 'false', - options: [], - dataSource: '', - linkField: '', - valueField: '', - valueText: '', - orderBy: '', - orderType: 'asc', - display: 'dropdown' - }, { - id: 1, - uuid: Utils.getuuid(), - label: 'select', - field: 'field', - initval: '', - type: 'select', - resourceType: '0', - setAll: 'false', - options: [], - dataSource: '', - linkField: '', - valueField: '', - valueText: '', - orderBy: '', - orderType: 'asc', - display: 'dropdown' - }, { - id: 2, - uuid: Utils.getuuid(), - label: 'date', - field: 'field', - initval: '', - type: 'dateday', - resourceType: '0', - setAll: 'false', - options: [], - dataSource: '', - linkField: '', - valueField: '', - valueText: '', - orderBy: '', - orderType: 'asc', - display: 'dropdown' - }], - action: [{ - id: 0, - uuid: Utils.getuuid(), - label: 'add', - intertype: 'inner', - interface: '', - func: '', - callbackFunc: '', - Ot: 'notRequired', - OpenType: 'pop', - pageTemplate: '', - icon: 'plus', - class: 'green' - }, { - id: 1, - uuid: Utils.getuuid(), - label: 'update', - intertype: 'inner', - interface: '', - func: '', - callbackFunc: '', - Ot: 'requiredSgl', - OpenType: 'pop', - pageTemplate: '', - icon: 'form', - class: 'purple' - }, { - id: 2, - uuid: Utils.getuuid(), - label: 'delete', - intertype: 'inner', - interface: '', - func: '', - callbackFunc: '', - Ot: 'required', - OpenType: 'prompt', - pageTemplate: '', - icon: 'delete', - class: 'red' - }, { - id: 3, - uuid: Utils.getuuid(), - label: 'freeze', - intertype: 'inner', - interface: '', - func: '', - callbackFunc: '', - Ot: 'requiredOnce', - OpenType: 'exec', - pageTemplate: '', - icon: '', - class: 'default' - }], - columns: [{ - id: 0, - uuid: Utils.getuuid(), - Align: 'left', - label: 'fieldName1', - field: 'field1', - Hide: 'false', - IsSort: 'true', - Width: 120 - }, { - id: 1, - uuid: Utils.getuuid(), - Align: 'left', - label: 'fieldName2', - field: 'field2', - Hide: 'false', - IsSort: 'true', - Width: 120 - }, { - id: 2, - uuid: Utils.getuuid(), - Align: 'left', - label: 'fieldName3', - field: 'field3', - Hide: 'false', - IsSort: 'true', - Width: 120 - }, { - id: 3, - uuid: Utils.getuuid(), - Align: 'left', - label: 'fieldName4', - field: 'field4', - Hide: 'false', - IsSort: 'true', - Width: 120 - }] + search: [ + { + origin: true, + id: 0, + uuid: Utils.getuuid(), + label: 'text', + field: '', + initval: '', + type: 'text', + resourceType: '0', + setAll: 'false', + options: [], + dataSource: '', + linkField: '', + valueField: '', + valueText: '', + orderBy: '', + orderType: 'asc', + display: 'dropdown' + }, { + origin: true, + id: 1, + uuid: Utils.getuuid(), + label: 'select', + field: '', + initval: '', + type: 'select', + resourceType: '0', + setAll: 'false', + options: [], + dataSource: '', + linkField: '', + valueField: '', + valueText: '', + orderBy: '', + orderType: 'asc', + display: 'dropdown' + }, { + origin: true, + id: 2, + uuid: Utils.getuuid(), + label: 'date', + field: '', + initval: '', + type: 'dateday', + resourceType: '0', + setAll: 'false', + options: [], + dataSource: '', + linkField: '', + valueField: '', + valueText: '', + orderBy: '', + orderType: 'asc', + display: 'dropdown' + } + ], + action: [ + { + origin: true, + id: 0, + uuid: Utils.getuuid(), + label: 'add', + intertype: 'inner', + innerFunc: '', + interface: '', + outerFunc: '', + callbackFunc: '', + Ot: 'notRequired', + OpenType: 'pop', + pageTemplate: '', + icon: 'plus', + class: 'green' + }, { + origin: true, + id: 1, + uuid: Utils.getuuid(), + label: 'update', + intertype: 'inner', + innerFunc: '', + interface: '', + outerFunc: '', + callbackFunc: '', + Ot: 'requiredSgl', + OpenType: 'pop', + pageTemplate: '', + icon: 'form', + class: 'purple' + }, { + origin: true, + id: 2, + uuid: Utils.getuuid(), + label: 'delete', + intertype: 'inner', + innerFunc: '', + interface: '', + outerFunc: '', + callbackFunc: '', + Ot: 'required', + OpenType: 'prompt', + pageTemplate: '', + icon: 'delete', + class: 'red' + }, { + origin: true, + id: 3, + uuid: Utils.getuuid(), + label: 'freeze', + intertype: 'inner', + innerFunc: '', + interface: '', + outerFunc: '', + callbackFunc: '', + Ot: 'requiredOnce', + OpenType: 'exec', + pageTemplate: '', + icon: '', + class: 'default' + } + ], + columns: [ + { + origin: true, + id: 0, + uuid: Utils.getuuid(), + Align: 'left', + label: 'fieldName1', + field: '', + Hide: 'false', + IsSort: 'true', + Width: 120 + }, { + origin: true, + id: 1, + uuid: Utils.getuuid(), + Align: 'left', + label: 'fieldName2', + field: '', + Hide: 'false', + IsSort: 'true', + Width: 120 + }, { + origin: true, + id: 2, + uuid: Utils.getuuid(), + Align: 'left', + label: 'fieldName3', + field: '', + Hide: 'false', + IsSort: 'true', + Width: 120 + }, { + origin: true, + id: 3, + uuid: Utils.getuuid(), + Align: 'left', + label: 'fieldName4', + field: '', + Hide: 'false', + IsSort: 'true', + Width: 120 + } + ] }, searchItems: [ { @@ -266,9 +306,30 @@ ] } - handleList = (list) => { + handleList = (listObj) => { let config = this.state.config - this.setState({config: {...config, ...list}}) + if (this.props.type === 'add') { + let key = Object.keys(listObj)[0] + let newlength = listObj[key].length + if (newlength > config[key].length) { + listObj[key] = listObj[key].filter(item => !item.origin) + } + if (newlength > listObj[key].length) { + this.setState({ + [key + 'loading']: true, + config: {...config, ...listObj} + }) + setTimeout(() => { + this.setState({ + [key + 'loading']: false + }) + }, 100) + } else { + this.setState({config: {...config, ...listObj}}) + } + } else { + this.setState({config: {...config, ...listObj}}) + } } handleSearch = (card) => { @@ -493,6 +554,14 @@ }, { type: 'text', + key: 'innerFunc', + label: this.state.dict['header.form.innerFunc'], + initVal: card.innerFunc, + required: false, + readonly: false + }, + { + type: 'text', key: 'interface', label: this.state.dict['header.form.interface'], initVal: card.interface, @@ -501,10 +570,10 @@ }, { type: 'text', - key: 'func', - label: this.state.dict['header.form.func'], - initVal: card.func, - required: true, + key: 'outerFunc', + label: this.state.dict['header.form.outerFunc'], + initVal: card.outerFunc, + required: false, readonly: false }, { @@ -634,15 +703,27 @@ handleSubmit = () => { this.formRef.handleConfirm().then(res => { - console.log(res) let _config = this.state.config - _config[res.type] = _config[res.type].map(item => { - if (item.uuid === res.values.uuid) { - return res.values - } else { - return item - } - }) + + if (this.props.type === 'add') { + _config[res.type] = _config[res.type].map(item => { + if (item.uuid === res.values.uuid) { + return res.values + } else { + return item + } + }) + _config[res.type] = _config[res.type].filter(item => !item.origin) + } else { + _config[res.type] = _config[res.type].map(item => { + if (item.uuid === res.values.uuid) { + return res.values + } else { + return item + } + }) + } + this.setState({ config: _config, [res.type + 'loading']: true, @@ -703,35 +784,52 @@ this.props.handleConfig('') } - queryField = (type, name) => { - if (!name) { + queryField = (type) => { + const {selectedTables, tableColumns, config} = this.state + if (selectedTables.length === 0) { notification.warning({ top: 92, - message: '璇疯緭鍏ヨ〃鍚嶏紒', + message: '璇烽�夋嫨琛ㄥ悕锛�', duration: 10 }) return } + + let columns = new Map() + tableColumns.forEach(table => { + table.columns.forEach(column => { + columns.set(column.field, column) + }) + }) + if (type === 'search') { - Api.getSystemConfig({func: 'sPC_Get_MainMenu'}).then(res => { - if (res.status) { - this.setState({ - tableVisible: true, - addType: type - }) - } else { - notification.warning({ - top: 92, - message: res.message, - duration: 10 - }) + let others = [] + config.search.forEach(item => { + if (columns.has(item.field)) { + columns.set(item.field, item) + } else if (item.field) { + others.push(item) } }) + this.setState({ + addType: type, + tableVisible: true, + option: { + normal: [...columns.values()], + others: others + } + }, () => { + console.log(this.state.option) + }) } + // console.log(tableColumns) + // console.log(columns) + // console.log(config) } addFieldSubmit = () => { - console.log(13) + let cards = this.refs.searchcard.getSelectedCard() + console.log(cards) } cancelFieldSubmit = () => { @@ -743,7 +841,7 @@ UNSAFE_componentWillMount () { let _config = '' - if (!this.props.menu.LongParam) { + if (this.props.type === 'add') { _config = JSON.parse(JSON.stringify((this.state.baseconfig))) } else { _config = this.props.menu.LongParam @@ -794,26 +892,287 @@ }) } + onTableChange = (value) => { + const {tables, selectedTables, tableColumns} = this.state + + let _table = tables.filter(item => item.name === value)[0] + let isSelected = !!selectedTables.filter(cell => cell.name === value)[0] + if (!isSelected) { + this.setState({ + selectedTables: [...selectedTables, _table] + }) + let SUsers = [ + { + field: 'UID', + label: 'UID', + type: 'text' + }, + { + field: 'UserCode', + label: 'UserCode', + type: 'text' + }, + { + field: 'UserName', + label: 'UserName', + type: 'text' + }, + { + field: 'PassWord', + label: 'PassWord', + type: 'text' + }, + { + field: 'FullName', + label: 'FullName', + type: 'text' + }, + { + field: 'RoleID', + label: 'RoleID', + type: 'text' + }, + { + field: 'RoleName', + label: 'RoleName', + type: 'text' + } + ] + let SMenus = [ + { + field: 'RoleID', + label: 'RoleID', + type: 'text' + }, + { + field: 'RoleName', + label: 'RoleName', + type: 'text' + }, + { + field: 'DepartmentCode', + label: 'DepartmentCode', + type: 'text' + }, + { + field: 'Organization', + label: 'Organization', + type: 'text' + }, + { + field: 'CSS', + label: 'CSS', + type: 'text' + }, + { + field: 'HeadImage', + label: 'HeadImage', + type: 'text' + }, + { + field: 'StaffID', + label: 'StaffID', + type: 'text' + }, + { + field: 'Remark', + label: 'Remark', + type: 'text' + }, + { + field: 'Deleted', + label: 'Deleted', + type: 'text' + }, + { + field: 'APICode', + label: 'APICode', + type: 'text' + }, + { + field: 'Status', + label: 'Status', + type: 'text' + }, + { + field: 'Type', + label: 'Type', + type: 'text' + }, + { + field: 'CreateDate', + label: 'CreateDate', + type: 'date' + } + ] + let SColumns = [ + { + field: 'Type', + label: 'Type', + type: 'text' + }, + { + field: 'CreateDate', + label: 'CreateDate', + type: 'date' + }, + { + field: 'CreateUserID', + label: 'CreateUserID', + type: 'text' + }, + { + field: 'CreateUser', + label: 'CreateUser', + type: 'text' + }, + { + field: 'CreateStaff', + label: 'CreateStaff', + type: 'text' + }, + { + field: 'CreateDepartCode', + label: 'CreateDepartCode', + type: 'text' + }, + { + field: 'ModifyDate', + label: 'ModifyDate', + type: 'date' + }, + { + field: 'ModifyUserID', + label: 'ModifyUserID', + type: 'text' + }, + { + field: 'ModifyUser', + label: 'ModifyUser', + type: 'text' + }, + { + field: 'ModifyDepartCode', + label: 'ModifyDepartCode', + type: 'text' + }, + { + field: 'ModifyOrganCode', + label: 'ModifyOrganCode', + type: 'text' + } + ] + let SActions = [ + { + field: 'ModifyDepartCode', + label: 'ModifyDepartCode', + type: 'text' + }, + { + field: 'ModifyOrganCode', + label: 'ModifyOrganCode', + type: 'text' + }, + { + field: 'SubmitDate', + label: 'SubmitDate', + type: 'date' + }, + { + field: 'SubmitUserID', + label: 'SubmitUserID', + type: 'text' + }, + { + field: 'SubmitUser', + label: 'SubmitUser', + type: 'text' + } + ] + Api.getSystemConfig({func: 'sPC_Get_MainMenu'}).then(res => { + if (res.status) { + let _change = { + SUsers: SUsers, + SMenus: SMenus, + SColumns: SColumns, + SActions: SActions + } + this.setState({ + tableColumns: tableColumns.concat([{ + tableName: _table.name, + columns: _change[_table.name] + }]) + }) + } else { + notification.warning({ + top: 92, + message: res.message, + duration: 10 + }) + } + }) + } + } + + deleteTable = (table) => { + const {selectedTables, tableColumns} = this.state + + this.setState({ + selectedTables: selectedTables.filter(item => item.name !== table.name), + tableColumns: tableColumns.filter(item => item.tableName !== table.name) + }) + } + render () { + console.log(this.state.option) return ( <div className="common-table-board"> <DndProvider backend={HTML5Backend}> <div className="tools"> <Collapse accordion defaultActiveKey="0" bordered={false}> - <Panel header="鍩烘湰淇℃伅" key="0"> + <Panel header="鍩烘湰淇℃伅" key="0" id="common-basedata"> <MenuForm dict={this.state.dict} formlist={this.state.menuformlist} wrappedComponentRef={(inst) => this.menuformRef = inst} /> + <div className="ant-col ant-form-item-label"> + <label title="娣诲姞琛ㄥ悕">娣诲姞琛ㄥ悕</label> + </div> + <Select + showSearch + className="tables" + style={{ width: '100%' }} + optionFilterProp="children" + value={'璇烽�夋嫨琛ㄥ悕'} + onChange={this.onTableChange} + showArrow={false} + getPopupContainer={() => document.getElementById('common-basedata')} + filterOption={(input, option) => + option.props.children.toLowerCase().indexOf(input.toLowerCase()) >= 0 + } + > + {this.state.tables.map((table, index) => ( + <Option key={index} value={table.name}>{table.label}</Option> + ))} + </Select> + {this.state.selectedTables.length > 0 && <List + size="small" + bordered + dataSource={this.state.selectedTables} + renderItem={(item, index) => <List.Item key={index} title={item.name + '--' + item.label}> + {item.name + '--' + item.label} + <Icon type="close" onClick={() => this.deleteTable(item)}/> + </List.Item>} + />} </Panel> <Panel header="鎼滅储" key="1"> - <Search placeholder="input table name." onSearch={value => this.queryField('search', value)} enterButton /> <div className="search-element"> {this.state.searchItems.map((item, index) => { return (<SourceElement key={index} content={item}/>) })} </div> + <Button type="primary" block onClick={() => this.queryField('search')}>娣诲姞鎼滅储鏉′欢</Button> </Panel> <Panel header="鎸夐挳" key="2"> <div className="search-element"> @@ -823,12 +1182,12 @@ </div> </Panel> <Panel header="鏄剧ず鍒�" key="3"> - <Search placeholder="input table name." onSearch={value => this.queryField('column', value)} enterButton /> <div className="search-element"> {this.state.columnItems.map((item, index) => { return (<SourceElement key={index} content={item}/>) })} </div> + <Button type="primary" block onClick={() => this.queryField('column')}>娣诲姞鏄剧ず鍒�</Button> </Panel> </Collapse> </div> @@ -914,8 +1273,24 @@ onCancel={this.cancelFieldSubmit} destroyOnClose > - {this.state.addType === 'search' && <div>djfiafadf</div>} + {this.state.addType === 'search' && + <div> + {this.state.option.normal.length > 0 && <EditCard data={this.state.option.normal} ref="searchcard" title="" />} + {this.state.option.others.length > 0 && <Row style={{marginLeft: '-10px', marginRight: '-10px'}}> + <p style={{margin: '10px 0px 0px 10px', color: '#1890ff'}}>鑷畾涔夊瓧娈�</p> + {this.state.option.others.map((item, index) => ( + <Col key={index} span={8} style={{padding: '10px'}}> + <div className="ant-card ant-card-bordered" style={{padding: '10px'}}> + <p>{item.label}</p> + <p>{item.field}</p> + </div> + </Col> + ))} + </Row>} + </div> + } </Modal> + {this.state.loading && <Spin size="large" style={{position: 'fixed', left: '49vw', top: '230px'}} />} </div> ) } diff --git a/src/components/sidemenu/comtableconfig/index.scss b/src/components/sidemenu/comtableconfig/index.scss index 5f6e425..1de9418 100644 --- a/src/components/sidemenu/comtableconfig/index.scss +++ b/src/components/sidemenu/comtableconfig/index.scss @@ -12,6 +12,9 @@ flex: 1; background: #ffffff; border-right: 1px solid #d9d9d9; + height: 100%; + overflow-y: hidden; + padding-bottom: 30px; .ant-collapse-item { border: 0; } @@ -44,12 +47,52 @@ } } } + .tables { + .ant-select-selection-selected-value { + opacity: 0.4!important; + } + } + .ant-list { + margin-top: 20px; + .ant-list-item { + position: relative; + padding-left: 5px; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + width: 100%; + .anticon { + position: absolute; + top: 0px; + right: 0px; + padding: 3px; + cursor: pointer; + } + } + } + } + .tools:hover { + overflow-y: auto; + } + .tools::-webkit-scrollbar { + width: 7px; + } + .tools::-webkit-scrollbar-thumb { + border-radius: 5px; + box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.13); + background: rgba(0, 0, 0, 0.13); + } + .tools::-webkit-scrollbar-track { + box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.05); + border-radius: 3px; + border: 1px solid rgba(0, 0, 0, 0.07); + background: rgba(0, 0, 0, 0); } .setting { position: relative; width: calc(100vw - 235px); height: 100%; - overflow-y: auto; + overflow-y: hidden; background: #ffffff; .ant-card-head { min-height: 44px; @@ -148,13 +191,13 @@ } .action-list { padding: 0px 20px 15px; - min-height: 72px; + min-height: 82px; > .ant-row { min-height: 67px; } .page-card { display: inline-block; - margin: 0px 0px 20px 0px; + margin: 0px 0px 0px 0px; padding: 15px 10px 0 0; position: relative; div { @@ -166,6 +209,9 @@ top: 0px; cursor: pointer; display: none; + } + .edit.copy { + left: 20px; } button { cursor: move; @@ -245,7 +291,21 @@ } } } + .setting:hover { + overflow-y: auto; + } + .setting::-webkit-scrollbar { + width: 7px; + } + .setting::-webkit-scrollbar-thumb { + border-radius: 5px; + box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.13); + background: rgba(0, 0, 0, 0.13); + } + .setting::-webkit-scrollbar-track { + box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.05); + border-radius: 3px; + border: 1px solid rgba(0, 0, 0, 0.07); + background: rgba(0, 0, 0, 0); + } } -// .commontable-edit-modal { -// width: 650px!important; -// } diff --git a/src/components/sidemenu/editthdmenu/index.jsx b/src/components/sidemenu/editthdmenu/index.jsx index 3e1e65d..e566c2c 100644 --- a/src/components/sidemenu/editthdmenu/index.jsx +++ b/src/components/sidemenu/editthdmenu/index.jsx @@ -392,6 +392,7 @@ editMenu: {...editMenu, ...{LongParam: template.baseconfig, PageParam: _PageParam, type: template.type}} }) } + document.getElementById('root').style.overflowY = 'hidden' } // submitMenuConfig = () => { @@ -525,6 +526,7 @@ handleConfig = (type) => { this.setState({tabview: type}) + document.getElementById('root').style.overflowY = 'unset' } UNSAFE_componentWillMount () { @@ -610,6 +612,7 @@ </div>} {this.state.tabview === 'CommonTable' && <ComTableConfig + type={this.state.type} menu={this.state.editMenu} supMenu={this.props.supMenu} supMenuList={this.props.supMenuList} diff --git a/src/locales/en-US/comtable.js b/src/locales/en-US/comtable.js new file mode 100644 index 0000000..0a02cdb --- /dev/null +++ b/src/locales/en-US/comtable.js @@ -0,0 +1,83 @@ +export default { + 'header.confirm': 'Ok', + 'header.submit': 'Submit', + 'header.delete': 'Delete', + 'header.cancel': 'Cancel', + 'header.edit': 'Edit', + 'header.return': 'Back', + 'header.close': 'Close', + 'header.menu.basemsg': '璇峰畬鍠勮彍鍗曞熀鏈俊鎭紒', + 'header.menu.template.change': '鍒囨崲妯℃澘', + 'header.menu.addtitle': 'The new menu', + 'header.menu.editTitle': 'The edit menu', + 'header.menu.menuID': 'Menu ID', + 'header.menu.menuName': 'Menu Name', + 'header.menu.menuNo': 'Menu Parameter', + 'header.menu.supMenu': 'Superior Menu', + 'header.menu.icon': 'Icon', + 'header.menu.openType': 'Open With', + 'header.menu.openType.menu': 'Menu', + 'header.menu.openType.newWindow': 'A new window', + 'header.menu.newpage.service': 'Customer Service', + 'header.form.search.placeholder': '璇锋坊鍔犳悳绱㈡潯浠�', + 'header.form.action.placeholder': '璇锋坊鍔犳寜閽�', + 'header.form.column.placeholder': '璇锋坊鍔犳樉绀哄垪', + 'header.form.name': 'Name', + 'header.form.field': '瀛楁', + 'header.form.func': '鍑芥暟鍚�', + 'header.form.innerFunc': '鍐呴儴鍑芥暟', + 'header.form.outerFunc': '澶栭儴鍑芥暟', + 'header.form.callbackFunc': '鍥炶皟鍑芥暟', + 'header.form.intertype': '鎺ュ彛绫诲瀷', + 'header.form.interface': '鎺ュ彛鍦板潃', + 'header.form.interface.inner': '鍐呴儴', + 'header.form.interface.outer': '澶栭儴', + 'header.form.pageTemplate': '椤甸潰妯℃澘', + 'header.form.type': 'Type', + 'header.form.text': 'Text', + 'header.form.select': 'Select', + 'header.form.link': '鍏宠仈鑿滃崟', + 'header.form.dateday': 'Date(Day)', + 'header.form.datetime': 'Date(Second)', + 'header.form.initval': 'Initial Value', + 'header.form.isRequired': '琛岃缃�', + 'header.form.notRequired': '涓嶉�夋嫨琛�', + 'header.form.requiredSgl': '閫夋嫨鍗曡', + 'header.form.required': '閫夋嫨澶氳', + 'header.form.requiredOnce': '澶氳鎷兼帴', + 'header.form.openType': '鎵撳紑鏂瑰紡', + 'header.form.pop': '寮圭獥', + 'header.form.tab': '鏂版爣绛鹃〉', + 'header.form.newpage': '鏂伴〉闈�', + 'header.form.blank': '褰撳墠椤佃烦杞�', + 'header.form.prompt': '鎻愮ず妗�', + 'header.form.exec': '鐩存帴鎵ц', + 'header.form.icon': '鍥炬爣', + 'header.form.class': '棰滆壊', + 'header.form.align': '瀵归綈鏂瑰紡', + 'header.form.alignLeft': '宸﹀榻�', + 'header.form.alignRight': '鍙冲榻�', + 'header.form.alignCenter': '灞呬腑', + 'header.form.Hide': '鏄惁闅愯棌', + 'header.form.IsSort': '鏄惁鎺掑簭', + 'header.form.columnWidth': '鍒楀', + 'header.form.true': '鏄�', + 'header.form.false': '鍚�', + 'header.form.setAll': '璁剧疆鍏ㄩ儴椤�', + 'header.form.resourceType': '閫夐」鏉ユ簮', + 'header.form.custom': '鑷畾涔�', + 'header.form.datasource': '鏁版嵁婧�', + 'header.form.valueField': '鍊悸峰瓧娈�', + 'header.form.valueText': '鏂囨湰路瀛楁', + 'header.form.orderBy': '鎺掑簭路瀛楁', + 'header.form.orderType': '鎺掑簭鏂瑰紡', + 'header.form.asc': '姝e簭', + 'header.form.desc': '鍊掑簭', + 'header.form.linkField': '鍏宠仈瀛楁', + 'header.form.display': '鏄剧ず鏂瑰紡', + 'header.form.dropdown': '涓嬫媺鑿滃崟', + 'header.form.button': '鎸夐挳', + 'header.form.selectItem.error': '涓嬫媺閫夐」璁剧疆閿欒锛�', + 'form.required.input': 'Please enter the ', + 'form.required.select': '璇烽�夋嫨' +} \ No newline at end of file diff --git a/src/locales/en-US/header.js b/src/locales/en-US/header.js index a94e7c3..e428417 100644 --- a/src/locales/en-US/header.js +++ b/src/locales/en-US/header.js @@ -43,63 +43,6 @@ 'header.menu.thawmenu.target': 'Unfreeze', 'header.menu.thawmenu.itemUnit': 'item', 'header.menu.thawmenu.itemsUnit': 'items', - 'header.form.search.placeholder': '璇锋坊鍔犳悳绱㈡潯浠�', - 'header.form.action.placeholder': '璇锋坊鍔犳寜閽�', - 'header.form.column.placeholder': '璇锋坊鍔犳樉绀哄垪', - 'header.form.name': 'Name', - 'header.form.field': '瀛楁', - 'header.form.func': '鍑芥暟鍚�', - 'header.form.callbackFunc': '鍥炶皟鍑芥暟', - 'header.form.intertype': '鎺ュ彛绫诲瀷', - 'header.form.interface': '鎺ュ彛鍦板潃', - 'header.form.interface.inner': '鍐呴儴', - 'header.form.interface.outer': '澶栭儴', - 'header.form.pageTemplate': '椤甸潰妯℃澘', - 'header.form.type': 'Type', - 'header.form.text': 'Text', - 'header.form.select': 'Select', - 'header.form.link': '鍏宠仈鑿滃崟', - 'header.form.dateday': 'Date(Day)', - 'header.form.datetime': 'Date(Second)', - 'header.form.initval': 'Initial Value', - 'header.form.isRequired': '琛岃缃�', - 'header.form.notRequired': '涓嶉�夋嫨琛�', - 'header.form.requiredSgl': '閫夋嫨鍗曡', - 'header.form.required': '閫夋嫨澶氳', - 'header.form.requiredOnce': '澶氳鎷兼帴', - 'header.form.openType': '鎵撳紑鏂瑰紡', - 'header.form.pop': '寮圭獥', - 'header.form.tab': '鏂版爣绛鹃〉', - 'header.form.newpage': '鏂伴〉闈�', - 'header.form.blank': '褰撳墠椤佃烦杞�', - 'header.form.prompt': '鎻愮ず妗�', - 'header.form.exec': '鐩存帴鎵ц', - 'header.form.icon': '鍥炬爣', - 'header.form.class': '棰滆壊', - 'header.form.align': '瀵归綈鏂瑰紡', - 'header.form.alignLeft': '宸﹀榻�', - 'header.form.alignRight': '鍙冲榻�', - 'header.form.alignCenter': '灞呬腑', - 'header.form.Hide': '鏄惁闅愯棌', - 'header.form.IsSort': '鏄惁鎺掑簭', - 'header.form.columnWidth': '鍒楀', - 'header.form.true': '鏄�', - 'header.form.false': '鍚�', - 'header.form.setAll': '璁剧疆鍏ㄩ儴椤�', - 'header.form.resourceType': '閫夐」鏉ユ簮', - 'header.form.custom': '鑷畾涔�', - 'header.form.datasource': '鏁版嵁婧�', - 'header.form.valueField': '鍊悸峰瓧娈�', - 'header.form.valueText': '鏂囨湰路瀛楁', - 'header.form.orderBy': '鎺掑簭路瀛楁', - 'header.form.orderType': '鎺掑簭鏂瑰紡', - 'header.form.asc': '姝e簭', - 'header.form.desc': '鍊掑簭', - 'header.form.linkField': '鍏宠仈瀛楁', - 'header.form.display': '鏄剧ず鏂瑰紡', - 'header.form.dropdown': '涓嬫媺鑿滃崟', - 'header.form.button': '鎸夐挳', - 'header.form.selectItem.error': '涓嬫媺閫夐」璁剧疆閿欒锛�', 'form.required.input': 'Please enter the ', 'form.required.select': '璇烽�夋嫨' } \ No newline at end of file diff --git a/src/locales/zh-CN/comtable.js b/src/locales/zh-CN/comtable.js new file mode 100644 index 0000000..37d03e6 --- /dev/null +++ b/src/locales/zh-CN/comtable.js @@ -0,0 +1,83 @@ +export default { + 'header.confirm': '纭畾', + 'header.submit': '鎻愪氦', + 'header.delete': '鍒犻櫎', + 'header.cancel': '鍙栨秷', + 'header.edit': '缂栬緫', + 'header.return': '杩斿洖', + 'header.close': '鍏抽棴', + 'header.menu.basemsg': '璇峰畬鍠勮彍鍗曞熀鏈俊鎭紒', + 'header.menu.template.change': '鍒囨崲妯℃澘', + 'header.menu.addtitle': '鏂板缓鑿滃崟', + 'header.menu.editTitle': '缂栬緫鑿滃崟', + 'header.menu.menuID': '鑿滃崟ID', + 'header.menu.menuName': '鑿滃崟鍚嶇О', + 'header.menu.menuNo': '鑿滃崟鍙傛暟', + 'header.menu.supMenu': '涓婄骇鑿滃崟', + 'header.menu.icon': '鍥炬爣', + 'header.menu.openType': '鎵撳紑鏂瑰紡', + 'header.menu.openType.menu': '鑿滃崟', + 'header.menu.openType.newWindow': '鏂扮獥鍙�', + 'header.menu.newpage.service': '瀹㈡湇', + 'header.form.search.placeholder': '璇锋坊鍔犳悳绱㈡潯浠�', + 'header.form.action.placeholder': '璇锋坊鍔犳寜閽�', + 'header.form.column.placeholder': '璇锋坊鍔犳樉绀哄垪', + 'header.form.name': '鍚嶇О', + 'header.form.field': '瀛楁', + 'header.form.func': '鍑芥暟鍚�', + 'header.form.innerFunc': '鍐呴儴鍑芥暟', + 'header.form.outerFunc': '澶栭儴鍑芥暟', + 'header.form.callbackFunc': '鍥炶皟鍑芥暟', + 'header.form.intertype': '鎺ュ彛绫诲瀷', + 'header.form.interface': '鎺ュ彛鍦板潃', + 'header.form.interface.inner': '鍐呴儴', + 'header.form.interface.outer': '澶栭儴', + 'header.form.pageTemplate': '椤甸潰妯℃澘', + 'header.form.type': '绫诲瀷', + 'header.form.text': '鏂囨湰', + 'header.form.select': '閫夋嫨', + 'header.form.link': '鍏宠仈鑿滃崟', + 'header.form.dateday': '鏃ユ湡锛堝ぉ锛�', + 'header.form.datetime': '鏃ユ湡锛堢锛�', + 'header.form.initval': '鍒濆鍊�', + 'header.form.isRequired': '琛岃缃�', + 'header.form.notRequired': '涓嶉�夋嫨琛�', + 'header.form.requiredSgl': '閫夋嫨鍗曡', + 'header.form.required': '閫夋嫨澶氳', + 'header.form.requiredOnce': '澶氳鎷兼帴', + 'header.form.openType': '鎵撳紑鏂瑰紡', + 'header.form.pop': '寮圭獥', + 'header.form.tab': '鏂版爣绛鹃〉', + 'header.form.newpage': '鏂伴〉闈�', + 'header.form.blank': '褰撳墠椤佃烦杞�', + 'header.form.prompt': '鎻愮ず妗�', + 'header.form.exec': '鐩存帴鎵ц', + 'header.form.icon': '鍥炬爣', + 'header.form.class': '棰滆壊', + 'header.form.align': '瀵归綈鏂瑰紡', + 'header.form.alignLeft': '宸﹀榻�', + 'header.form.alignRight': '鍙冲榻�', + 'header.form.alignCenter': '灞呬腑', + 'header.form.Hide': '鏄惁闅愯棌', + 'header.form.IsSort': '鏄惁鎺掑簭', + 'header.form.columnWidth': '鍒楀', + 'header.form.true': '鏄�', + 'header.form.false': '鍚�', + 'header.form.setAll': '璁剧疆鍏ㄩ儴', + 'header.form.resourceType': '閫夐」鏉ユ簮', + 'header.form.custom': '鑷畾涔�', + 'header.form.datasource': '鏁版嵁婧�', + 'header.form.valueField': '鍊悸峰瓧娈�', + 'header.form.valueText': '鏂囨湰路瀛楁', + 'header.form.orderBy': '鎺掑簭路瀛楁', + 'header.form.orderType': '鎺掑簭鏂瑰紡', + 'header.form.asc': '姝e簭', + 'header.form.desc': '鍊掑簭', + 'header.form.linkField': '鍏宠仈瀛楁', + 'header.form.display': '鏄剧ず鏂瑰紡', + 'header.form.dropdown': '涓嬫媺鑿滃崟', + 'header.form.button': '鎸夐挳', + 'header.form.selectItem.error': '涓嬫媺閫夐」璁剧疆閿欒锛�', + 'form.required.input': '璇疯緭鍏�', + 'form.required.select': '璇烽�夋嫨' +} \ No newline at end of file diff --git a/src/locales/zh-CN/header.js b/src/locales/zh-CN/header.js index e9b2a23..dc9ba98 100644 --- a/src/locales/zh-CN/header.js +++ b/src/locales/zh-CN/header.js @@ -43,63 +43,6 @@ 'header.menu.thawmenu.target': '瑙i櫎鍐荤粨', 'header.menu.thawmenu.itemUnit': '椤�', 'header.menu.thawmenu.itemsUnit': '椤�', - 'header.form.search.placeholder': '璇锋坊鍔犳悳绱㈡潯浠�', - 'header.form.action.placeholder': '璇锋坊鍔犳寜閽�', - 'header.form.column.placeholder': '璇锋坊鍔犳樉绀哄垪', - 'header.form.name': '鍚嶇О', - 'header.form.field': '瀛楁', - 'header.form.func': '鍑芥暟鍚�', - 'header.form.callbackFunc': '鍥炶皟鍑芥暟', - 'header.form.intertype': '鎺ュ彛绫诲瀷', - 'header.form.interface': '鎺ュ彛鍦板潃', - 'header.form.interface.inner': '鍐呴儴', - 'header.form.interface.outer': '澶栭儴', - 'header.form.pageTemplate': '椤甸潰妯℃澘', - 'header.form.type': '绫诲瀷', - 'header.form.text': '鏂囨湰', - 'header.form.select': '閫夋嫨', - 'header.form.link': '鍏宠仈鑿滃崟', - 'header.form.dateday': '鏃ユ湡锛堝ぉ锛�', - 'header.form.datetime': '鏃ユ湡锛堢锛�', - 'header.form.initval': '鍒濆鍊�', - 'header.form.isRequired': '琛岃缃�', - 'header.form.notRequired': '涓嶉�夋嫨琛�', - 'header.form.requiredSgl': '閫夋嫨鍗曡', - 'header.form.required': '閫夋嫨澶氳', - 'header.form.requiredOnce': '澶氳鎷兼帴', - 'header.form.openType': '鎵撳紑鏂瑰紡', - 'header.form.pop': '寮圭獥', - 'header.form.tab': '鏂版爣绛鹃〉', - 'header.form.newpage': '鏂伴〉闈�', - 'header.form.blank': '褰撳墠椤佃烦杞�', - 'header.form.prompt': '鎻愮ず妗�', - 'header.form.exec': '鐩存帴鎵ц', - 'header.form.icon': '鍥炬爣', - 'header.form.class': '棰滆壊', - 'header.form.align': '瀵归綈鏂瑰紡', - 'header.form.alignLeft': '宸﹀榻�', - 'header.form.alignRight': '鍙冲榻�', - 'header.form.alignCenter': '灞呬腑', - 'header.form.Hide': '鏄惁闅愯棌', - 'header.form.IsSort': '鏄惁鎺掑簭', - 'header.form.columnWidth': '鍒楀', - 'header.form.true': '鏄�', - 'header.form.false': '鍚�', - 'header.form.setAll': '璁剧疆鍏ㄩ儴', - 'header.form.resourceType': '閫夐」鏉ユ簮', - 'header.form.custom': '鑷畾涔�', - 'header.form.datasource': '鏁版嵁婧�', - 'header.form.valueField': '鍊悸峰瓧娈�', - 'header.form.valueText': '鏂囨湰路瀛楁', - 'header.form.orderBy': '鎺掑簭路瀛楁', - 'header.form.orderType': '鎺掑簭鏂瑰紡', - 'header.form.asc': '姝e簭', - 'header.form.desc': '鍊掑簭', - 'header.form.linkField': '鍏宠仈瀛楁', - 'header.form.display': '鏄剧ず鏂瑰紡', - 'header.form.dropdown': '涓嬫媺鑿滃崟', - 'header.form.button': '鎸夐挳', - 'header.form.selectItem.error': '涓嬫媺閫夐」璁剧疆閿欒锛�', 'form.required.input': '璇疯緭鍏�', 'form.required.select': '璇烽�夋嫨' } \ No newline at end of file -- Gitblit v1.8.0