From 4c775de9de07291b345fd5c975a87230ddedd5ca Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期三, 20 五月 2020 09:27:13 +0800 Subject: [PATCH] 2020-05-20 --- src/templates/sharecomponent/columncomponent/markcolumn/markform/index.scss | 21 - src/assets/img/avatar.png | 0 src/templates/sharecomponent/columncomponent/markcolumn/markform/index.jsx | 224 ------------ src/templates/zshare/formconfig.jsx | 102 +++++ src/tabviews/zshare/normalTable/index.jsx | 2 src/templates/sharecomponent/cardcomponent/index.scss | 25 + src/templates/comtableconfig/index.jsx | 23 src/assets/css/table.scss | 19 + src/templates/subtableconfig/index.jsx | 11 src/locales/zh-CN/model.js | 2 /dev/null | 40 -- src/templates/sharecomponent/columncomponent/markcolumn/index.jsx | 3 src/tabviews/zshare/actionList/index.jsx | 4 src/templates/sharecomponent/tablecomponent/index.jsx | 2 src/templates/sharecomponent/cardcomponent/carddetailform/index.jsx | 92 ++++- src/templates/sharecomponent/tabscomponent/tabdragelement/index.jsx | 2 src/components/sidemenu/index.jsx | 2 src/templates/sharecomponent/cardcomponent/index.jsx | 134 ++++++- src/templates/sharecomponent/columncomponent/markcolumn/index.scss | 5 src/utils/option.js | 211 ++++++++++++ src/templates/sharecomponent/chartgroupcomponent/chartform/index.jsx | 36 + src/templates/sharecomponent/cardcomponent/dragdetail/index.jsx | 3 src/templates/sharecomponent/chartgroupcomponent/index.jsx | 13 23 files changed, 618 insertions(+), 358 deletions(-) diff --git a/src/assets/css/table.scss b/src/assets/css/table.scss index 86566c2..8e126af 100644 --- a/src/assets/css/table.scss +++ b/src/assets/css/table.scss @@ -1,4 +1,23 @@ .mingke-table { + .ant-cascader-menu { + min-width: 120px; + height: 300px; + } + .ant-cascader-menu + .ant-cascader-menu { + min-width: 130px; + .ant-cascader-menu-item { + padding: 0; + div { + padding: 5px 12px; + .anticon { + font-size: 18px; + } + } + } + .ant-cascader-menu-item:hover { + background: unset; + } + } // dust-red .background.dust-red-1 { color: rgba(0, 0, 0, 0.85); diff --git a/src/assets/img/avatar.png b/src/assets/img/avatar.png new file mode 100644 index 0000000..f8d98ea --- /dev/null +++ b/src/assets/img/avatar.png Binary files differ diff --git a/src/components/sidemenu/index.jsx b/src/components/sidemenu/index.jsx index 23b2740..5ef00d0 100644 --- a/src/components/sidemenu/index.jsx +++ b/src/components/sidemenu/index.jsx @@ -325,7 +325,7 @@ exitEdit={this.exitEdit} /> } - {this.props.editLevel === 'level3' && this.state.subMenulist ? + {this.props.editLevel === 'level3' && this.state.subMenulist && this.state.editMenu ? <EditThdMenu menulist={this.state.editMenu.children} supMenuList={this.state.subMenulist} diff --git a/src/locales/zh-CN/model.js b/src/locales/zh-CN/model.js index ce036eb..654bb1d 100644 --- a/src/locales/zh-CN/model.js +++ b/src/locales/zh-CN/model.js @@ -232,7 +232,7 @@ 'header.form.easyCode': '鍔╄鐮�', 'header.modal.form.edit': '琛ㄥ崟-缂栬緫', 'model.searchCriteria': '鎼滅储鏉′欢', - 'model.action': 'Button', + 'model.action': '鎸夐挳', 'header.modal.action.copy': '鎸夐挳-澶嶅埗', 'header.modal.form.copy': '琛ㄥ崟-澶嶅埗', 'header.modal.column.edit': '鏄剧ず鍒�-缂栬緫', diff --git a/src/tabviews/zshare/actionList/index.jsx b/src/tabviews/zshare/actionList/index.jsx index c5774d2..b045b7a 100644 --- a/src/tabviews/zshare/actionList/index.jsx +++ b/src/tabviews/zshare/actionList/index.jsx @@ -2441,7 +2441,8 @@ */ handleCancel = () => { this.setState({ - visible: false + visible: false, + confirmLoading: false }) } @@ -2507,6 +2508,7 @@ }, onCancel() { _this.setState({ + loadingUuid: '', running: false }) } diff --git a/src/tabviews/zshare/normalTable/index.jsx b/src/tabviews/zshare/normalTable/index.jsx index b74047b..14ab88f 100644 --- a/src/tabviews/zshare/normalTable/index.jsx +++ b/src/tabviews/zshare/normalTable/index.jsx @@ -98,6 +98,8 @@ if (mark.signType === 'line') { lineMarks.push(mark) return false + } else if (mark.signType === 'card') { + return false } return true }) diff --git a/src/templates/comtableconfig/index.jsx b/src/templates/comtableconfig/index.jsx index 33d5f0b..ead8d41 100644 --- a/src/templates/comtableconfig/index.jsx +++ b/src/templates/comtableconfig/index.jsx @@ -14,15 +14,9 @@ import { getMainMenuForm } from '@/templates/zshare/formconfig' import asyncComponent from '@/utils/asyncComponent' -import TableComponent from '@/templates/sharecomponent/tablecomponent' -import FieldsComponent from '@/templates/sharecomponent/fieldscomponent' -import ChartGroupComponent from '@/templates/sharecomponent/chartgroupcomponent' import SearchComponent from '@/templates/sharecomponent/searchcomponent' import ActionComponent from '@/templates/sharecomponent/actioncomponent' import ColumnComponent from '@/templates/sharecomponent/columncomponent' -import TabsComponent from '@/templates/sharecomponent/tabscomponent' -import ChartComponent from '@/templates/sharecomponent/chartcomponent' -import CardComponent from '@/templates/sharecomponent/cardcomponent' import MenuForm from '@/templates/zshare/menuform' import EditComponent from '@/templates/zshare/editcomponent' @@ -34,6 +28,12 @@ const { confirm } = Modal const CommonDict = (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS const SettingComponent = asyncComponent(() => import('@/templates/sharecomponent/settingcomponent')) +const TableComponent = asyncComponent(() => import('@/templates/sharecomponent/tablecomponent')) +const FieldsComponent = asyncComponent(() => import('@/templates/sharecomponent/fieldscomponent')) +const ChartGroupComponent = asyncComponent(() => import('@/templates/sharecomponent/chartgroupcomponent')) +const ChartComponent = asyncComponent(() => import('@/templates/sharecomponent/chartcomponent')) +const CardComponent = asyncComponent(() => import('@/templates/sharecomponent/cardcomponent')) +const TabsComponent = asyncComponent(() => import('@/templates/sharecomponent/tabscomponent')) class ComTableConfig extends Component { static propTpyes = { @@ -550,6 +550,10 @@ param.timestamp = moment().format('YYYY-MM-DD HH:mm:ss') + '.000' param.secretkey = Utils.encrypt(param.LText, param.timestamp) + if (openEdition) { // 鐗堟湰绠$悊 + param.open_edition = openEdition + } + // 鏈夋寜閽垨鏍囩鍒犻櫎鏃讹紝鍏堣繘琛屽垹闄ゆ搷浣� // 鍒犻櫎鎴愬姛鍚庯紝淇濆瓨椤甸潰閰嶇疆 new Promise(resolve => { @@ -654,10 +658,6 @@ if (resp === false) return let localParam = fromJS(param).toJS() - if (openEdition) { - param.open_edition = openEdition - } - Api.getSystemConfig(param).then(response => { if (response.status) { let _FMenu = originMenu.fstMenuList.filter(fstM => fstM.MenuID === res.fstMenuId)[0] @@ -690,6 +690,8 @@ delete localParam.PageParam delete localParam.Template delete localParam.Sort + delete localParam.EasyCode + delete localParam.open_edition Api.getLocalConfig(localParam) } else { @@ -1268,7 +1270,6 @@ <TableComponent config={config} containerId="main-basedata" - selectedTables={config.tables || []} updatetable={this.updatetable} /> </Panel> diff --git a/src/templates/sharecomponent/cardcomponent/carddetailform/index.jsx b/src/templates/sharecomponent/cardcomponent/carddetailform/index.jsx index d469a9a..8b42d52 100644 --- a/src/templates/sharecomponent/cardcomponent/carddetailform/index.jsx +++ b/src/templates/sharecomponent/cardcomponent/carddetailform/index.jsx @@ -15,6 +15,7 @@ state = { formlist: null, + oriformlist: null, columns: null, actions: [] } @@ -22,37 +23,49 @@ UNSAFE_componentWillMount () { const { card } = this.props - let columns = this.props.formlist.filter(item => item.key === 'field')[0].options + let columns = [] let actions = [] - if (card.actions) { - actions = this.props.formlist.filter(item => item.key === 'actions')[0].options - } + + let formlist = this.props.formlist.filter(item => !item.forbid) + formlist.forEach(item => { + if (item.key === 'field') { + columns = JSON.parse(JSON.stringify(item.options)) + } else if (item.key === 'actions') { + actions = JSON.parse(JSON.stringify(item.options)) + } + }) this.setState({ columns: columns, actions: actions, - formlist: this.props.formlist.map(item => { + oriformlist: formlist, + formlist: formlist.map(item => { if (item.key === 'content' && card.datatype === 'dynamic') { item.hidden = true } else if (item.key === 'field' && card.datatype === 'static') { item.hidden = true + } else if (item.key === 'field' && card.elemType === 'avatar') { + item.options = columns.filter(option => option.type === card.type) + } else if (item.key === 'widthType' && card.elemType === 'avatar' && card.type === 'picture') { + item.hidden = false + } else if (item.key === 'size' && card.elemType === 'avatar' && card.type === 'icon') { + item.hidden = false + } else if (item.key === 'width' && card.elemType === 'avatar' && card.type === 'picture') { + item.hidden = false } - return item }) }) } - componentDidMount () { - - } - typeChange = (key, value) => { + const { card } = this.props + const { columns, oriformlist } = this.state + if (key === 'datatype') { this.setState({ - formlist: this.props.formlist.map(item => { + formlist: oriformlist.map(item => { item.hidden = false - if (item.key === 'content' && value === 'dynamic') { item.hidden = true } else if (item.key === 'field' && value === 'static') { @@ -62,9 +75,41 @@ return item }) }) - // if (this.props.form.getFieldValue('fieldlength') !== undefined) { - // this.props.form.setFieldsValue({fieldlength: fieldlength}) - // } + } else if (key === 'type') { + this.setState({ + formlist: oriformlist.map(item => { + if (item.key === 'field') { + item.options = columns.filter(option => option.type === value) + } else if (item.key === 'widthType') { + item.hidden = value !== 'picture' + } else if (item.key === 'width') { + item.hidden = value !== 'picture' + item.max = card.widthType === 'ratio' ? 100 : 500 + } else if (item.key === 'size') { + item.hidden = value !== 'icon' + } + + return item + }) + }, () => { + if (this.props.form.getFieldValue('field') !== undefined) { + this.props.form.setFieldsValue({field: ''}) + } + }) + } else if (key === 'widthType') { + this.setState({ + formlist: oriformlist.map(item => { + if (item.key === 'width') { + item.max = value === 'ratio' ? 100 : 500 + } + + return item + }) + }, () => { + if (this.props.form.getFieldValue('width') !== undefined) { + this.props.form.setFieldsValue({width: 32}) + } + }) } } @@ -124,8 +169,7 @@ message: this.props.dict['form.required.input'] + item.label + '!' } ] - })(item.unlimit ? <InputNumber /> : - <InputNumber min={item.min} max={item.max} precision={item.decimal} />)} + })(<InputNumber min={item.min} max={item.max} precision={0} />)} </Form.Item> </Col> ) @@ -219,13 +263,21 @@ if (this.props.card.uuid) { values.uuid = this.props.card.uuid } + values.elemType = this.props.card.elemType - if (values.field && !values.content) { - values.content = columns.filter(col => col.value === values.field)[0].text + if (['detail', 'header'].includes(values.elemType)) { + if (values.field && !values.content) { + values.content = columns.filter(col => col.value === values.field)[0].text + } } - if (values.actions) { + if (['bottom', 'header'].includes(values.elemType) && values.actions) { values.actions = values.actions.map(item => actions.filter(action => action.value === item)[0]) } + if (['avatar'].includes(values.elemType)) { + if (values.type === 'icon') { + values.icon = columns.filter(col => col.value === values.field)[0].icon + } + } resolve(values) } else { diff --git a/src/templates/sharecomponent/cardcomponent/chartcompile/index.jsx b/src/templates/sharecomponent/cardcomponent/chartcompile/index.jsx deleted file mode 100644 index 611b19c..0000000 --- a/src/templates/sharecomponent/cardcomponent/chartcompile/index.jsx +++ /dev/null @@ -1,258 +0,0 @@ -import React, {Component} from 'react' -import PropTypes from 'prop-types' -import { fromJS } from 'immutable' -import { Drawer, Form, Button, Col, Row, Select, Icon, Radio, Tooltip, Input, InputNumber } from 'antd' - -import { getChartOptionForm } from '@/templates/zshare/formconfig' -import './index.scss' - -class LineChartDrawerForm extends Component { - static propTpyes = { - dict: PropTypes.object, - plot: PropTypes.object, - config: PropTypes.object, - plotchange: PropTypes.func - } - - state = { - view: 'normal', - visible: false, - plot: null, - formlist: null - } - - showDrawer = () => { - const { config, plot } = this.props - - this.setState({ - visible: true, - plot: fromJS(plot).toJS(), - formlist: getChartOptionForm(plot, config.columns, config.setting) - }) - } - - onSubmit = () => { - this.props.form.validateFieldsAndScroll((err, values) => { - if (!err) { - this.setState({ - visible: false - }) - this.props.plotchange(values) - } - }) - } - - radioChange = (e, key) => { - const { formlist } = this.state - let val = e.target.value - - if (key === 'datatype') { - this.setState({ - formlist: formlist.map(item => { - if (['Yaxis'].includes(item.key)) { - item.hidden = val === 'statistics' - } else if (['InfoType', 'InfoValue', 'InfoDefNumber'].includes(item.key)) { - item.hidden = val !== 'statistics' - } - return item - }) - }) - } - } - - getFields() { - const { formlist } = this.state - const { getFieldDecorator } = this.props.form - const fields = [] - - if (!formlist) { - return fields - } - - formlist.forEach((item, index) => { - if (item.hidden || item.forbid) return - - if (item.type === 'text') { - fields.push( - <Col span={12} key={index}> - <Form.Item label={item.tooltip ? - <Tooltip placement="topLeft" title={item.tooltip}> - <Icon type="question-circle" /> - {item.label} - </Tooltip> : item.label - }> - {getFieldDecorator(item.key, { - initialValue: item.initVal, - rules: [ - { - required: !!item.required, - message: this.props.dict['form.required.input'] + item.label + '!' - } - ] - })(<Input placeholder="" autoComplete="off" disabled={item.readonly}/>)} - </Form.Item> - </Col> - ) - } else if (item.type === 'number') { - fields.push( - <Col span={12} key={index}> - <Form.Item label={item.tooltip ? - <Tooltip placement="topLeft" title={item.tooltip}> - <Icon type="question-circle" /> - {item.label} - </Tooltip> : item.label - }> - {getFieldDecorator(item.key, { - initialValue: item.initVal, - rules: [ - { - required: !!item.required, - message: this.props.dict['form.required.input'] + item.label + '!' - } - ] - })(<InputNumber min={item.min} max={item.max} precision={item.decimal} />)} - </Form.Item> - </Col> - ) - } else if (item.type === 'select') { // 涓嬫媺 - fields.push( - <Col span={12} key={index}> - <Form.Item label={item.tooltip ? - <Tooltip placement="topLeft" title={item.tooltip}> - <Icon type="question-circle" /> - {item.label} - </Tooltip> : item.label - }> - {getFieldDecorator(item.key, { - initialValue: item.initVal, - rules: [ - { - required: !!item.required, - message: this.props.dict['form.required.select'] + item.label + '!' - } - ] - })( - <Select mode={item.multi ? 'multiple' : ''}> - {item.options.map((option, index) => - <Select.Option key={index} value={option.field}> - {option.label} - </Select.Option> - )} - </Select> - )} - </Form.Item> - </Col> - ) - } else if (item.type === 'radio') { - fields.push( - <Col span={12} key={index}> - <Form.Item label={item.tooltip ? - <Tooltip placement="topLeft" title={item.tooltip}> - <Icon type="question-circle" /> - {item.label} - </Tooltip> : item.label - }> - {getFieldDecorator(item.key, { - initialValue: item.initVal, - rules: [ - { - required: !!item.required, - message: this.props.dict['form.required.select'] + item.label + '!' - } - ] - })( - <Radio.Group disabled={item.readonly} onChange={(e) => this.radioChange(e, item.key)}> - {item.options.map(option => { - return ( - <Radio key={option.value} value={option.value}>{option.text}</Radio> - ) - })} - </Radio.Group> - )} - </Form.Item> - </Col> - ) - } - }) - return fields - } - - changeView = () => { - let _view = this.state.view === 'normal' ? 'custom' : 'normal' - - if (_view === 'custom') { - this.props.form.validateFieldsAndScroll((err, values) => { - if (!err) { - let _plot = {...this.state.plot, ...values} - - this.setState({ - plot: _plot, - view: _view - }) - } - }) - } - this.setState({view: _view}) - } - - render() { - const { view } = this.state - const formItemLayout = { - labelCol: { - xs: { span: 24 }, - sm: { span: 6 } - }, - wrapperCol: { - xs: { span: 24 }, - sm: { span: 18 } - } - } - - return ( - <div className="line-chart-drawer-form"> - <Icon type="edit" onClick={this.showDrawer} /> - <Drawer - title="鍥捐〃缂栬緫" - className="chart-drawer-form" - width={720} - onClose={() => this.setState({ visible: false })} - visible={this.state.visible} - bodyStyle={{ paddingBottom: 80 }} - > - {view !== 'custom' ? <Form {...formItemLayout}> - <Row gutter={16}>{this.getFields()}</Row> - <Row gutter={16}> - <Button onClick={this.changeView} style={{border: 0, boxShadow: 'unset',float: 'right', color: '#1890ff', marginRight: 12, cursor: 'pointer'}}>鑷畾涔夎缃�<Icon style={{marginLeft: 5}} type="right" /></Button> - </Row> - </Form> : null} - {/* <Form {...formItemLayout}> - <Row gutter={16}> - <Button onClick={this.changeView} style={{border: 0, boxShadow: 'unset',float: 'right', color: '#1890ff', marginRight: 12, cursor: 'pointer'}}>鑷畾涔夎缃�<Icon style={{marginLeft: 5}} type="right" /></Button> - </Row> - </Form> */} - <div - style={{ - position: 'absolute', - right: 0, - bottom: 0, - width: '100%', - borderTop: '1px solid #e9e9e9', - padding: '10px 16px', - background: '#fff', - textAlign: 'right', - }} - > - <Button onClick={() => this.setState({ visible: false })} style={{ marginRight: 8 }}> - 鍙栨秷 - </Button> - <Button onClick={() => this.onSubmit()} type="primary"> - 鎻愪氦 - </Button> - </div> - </Drawer> - </div> - ); - } -} - -export default Form.create()(LineChartDrawerForm) \ No newline at end of file diff --git a/src/templates/sharecomponent/cardcomponent/chartcompile/index.scss b/src/templates/sharecomponent/cardcomponent/chartcompile/index.scss deleted file mode 100644 index e7c7964..0000000 --- a/src/templates/sharecomponent/cardcomponent/chartcompile/index.scss +++ /dev/null @@ -1,40 +0,0 @@ -.line-chart-drawer-form { - position: absolute; - right: 20px; - top: 40px; - - > .anticon-edit { - color: #1890ff; - font-size: 16px; - margin-right: 5px; - } -} - -.chart-drawer-form { - .ant-drawer-body { - max-height: calc(100vh - 60px); - overflow-y: auto; - - .anticon-question-circle { - color: #c49f47; - margin-right: 3px; - } - .ant-input-number { - width: 100%; - } - } - .ant-drawer-body::-webkit-scrollbar { - width: 7px; - } - .ant-drawer-body::-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); - } - .ant-drawer-body::-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); - } -} diff --git a/src/templates/sharecomponent/cardcomponent/dragdetail/index.jsx b/src/templates/sharecomponent/cardcomponent/dragdetail/index.jsx index ce0e89e..09e8c20 100644 --- a/src/templates/sharecomponent/cardcomponent/dragdetail/index.jsx +++ b/src/templates/sharecomponent/cardcomponent/dragdetail/index.jsx @@ -32,7 +32,8 @@ let marginLeft = 0 if (cardObj.subelement.includes('avatar')) { - marginLeft = 48 + marginLeft = cardObj.avatar.width || cardObj.avatar.size || 32 + marginLeft += 16 } return ( diff --git a/src/templates/sharecomponent/cardcomponent/index.jsx b/src/templates/sharecomponent/cardcomponent/index.jsx index baed22f..ab53003 100644 --- a/src/templates/sharecomponent/cardcomponent/index.jsx +++ b/src/templates/sharecomponent/cardcomponent/index.jsx @@ -10,6 +10,7 @@ import DragDetail from './dragdetail' import CardDetailForm from './carddetailform' +import avatar from '@/assets/img/avatar.png' import './index.scss' const { confirm } = Modal @@ -62,7 +63,8 @@ const { config } = this.props if (!_cell) { _cell = { - datatype: 'dynamic' + datatype: 'dynamic', + elemType: 'detail' } } @@ -97,9 +99,12 @@ text: col.label } }) - let _actions = config.action.filter(item => item.position === 'grid') + let _actions = config.action.filter(item => item.Ot && item.Ot !== 'notRequired' && !['excelIn', 'excelOut'].includes(item.OpenType)) + let actionIds = [] _actions = _actions.map(item => { + actionIds.push(item.uuid) + return { value: item.uuid, icon: item.icon, @@ -112,7 +117,6 @@ _cell.field = '' } if (_cell.actions.length > 0) { - let actionIds = _actions.map(item => item.value) _cell.actions = _cell.actions.filter(item => actionIds.includes(item.value)) } @@ -120,6 +124,74 @@ cardcell: _cell, modaltype: 'header', formlist: getCardDetailForm(_cell, _columns, 'header', _actions) + }) + } + + editBottom = () => { + const { config, card } = this.props + + let _actions = config.action.filter(item => item.Ot && item.Ot !== 'notRequired' && !['excelIn', 'excelOut'].includes(item.OpenType)) + + let actionIds = [] + _actions = _actions.map(item => { + actionIds.push(item.uuid) + + return { + value: item.uuid, + icon: item.icon, + text: item.label + } + }) + + let _cell = fromJS(card.bottom).toJS() + + if (_cell.actions.length > 0) { + _cell.actions = _cell.actions.filter(item => actionIds.includes(item.value)) + } + + this.setState({ + cardcell: _cell, + modaltype: 'bottom', + formlist: getCardDetailForm(_cell, [], 'bottom', _actions) + }) + } + + editAvatar = () => { + const { config, card } = this.props + + let _columns = [] + config.columns.forEach(col => { + if (['picture'].includes(col.type)) { + _columns.push({ + type: 'picture', + uuid: col.uuid, + value: col.field, + text: col.label + }) + } else if (['text', 'number'].includes(col.type) && col.marks) { + let mark = col.marks.filter(_mark => _mark.signType === 'icon' && _mark.icon)[0] + if (mark) { + _columns.push({ + type: 'icon', + uuid: col.uuid, + value: col.field, + text: col.label, + icon: mark.icon + }) + } + } + }) + + let _cell = fromJS(card.avatar).toJS() + if (_columns.filter(col => col.value === _cell.field && col.type === _cell.type).length === 0) { + _cell.field = '' + _cell.content = '' + } + + this.setState({ + cardcell: _cell, + modaltype: 'avatar', + formlist: getCardDetailForm(_cell, _columns, 'avatar') }) } @@ -146,18 +218,26 @@ }) this.plotChange({details: _details}) } else if (modaltype === 'header') { - let _header = fromJS(this.props.card.header).toJS() - _header.content = res.content - _header.datatype = res.datatype - _header.field = res.field - _header.actions = res.actions - this.setState({ cardcell: null, modaltype: '', formlist: null }) - this.plotChange({header: _header}) + this.plotChange({header: res}) + } else if (modaltype === 'bottom') { + this.setState({ + cardcell: null, + modaltype: '', + formlist: null + }) + this.plotChange({bottom: res}) + } else if (modaltype === 'avatar') { + this.setState({ + cardcell: null, + modaltype: '', + formlist: null + }) + this.plotChange({avatar: res}) } }) } @@ -195,15 +275,19 @@ const { card } = this.props const { dict, modaltype, cardcell } = this.state let _width = '100%' - if (card.actions.length > 0) { - _width = Math.floor((100 / card.actions.length) * 10000) / 10000 + '%' + if (card.bottom && card.bottom.actions.length > 0) { + _width = Math.floor((100 / card.bottom.actions.length) * 10000) / 10000 + '%' } - + let outclass = card.widthType === 'ratio' ? ' ant-col ant-col-' + card.cardWidth : '' + if (card.background && card.background[1]) { + outclass += ' background ' + card.background[1] + } + console.log(card) return ( - <div className="line-card-edit-box"> + <div className="line-card-edit-box mingke-table"> {card.title ? <p className="chart-title">{card.title}</p> : null} <div - className={'ant-card ant-card-bordered chart-card' + (card.widthType === 'ratio' ? ' ant-col ant-col-' + card.cardWidth : '')} + className={'ant-card ant-card-bordered chart-card ' + outclass} style={card.widthType === 'absolute' ? { width: card.cardWidth } : null} > {card.subelement.includes('header') ? @@ -211,9 +295,9 @@ <Icon className="edit" title="Edit" type="edit" onClick={this.editHeader} /> <div className="ant-card-head-wrapper"> <div className="ant-card-head-title">{card.header.content}</div> - <div className="ant-card-extra"> - <span>Action</span> - </div> + {card.header.actions && card.header.actions.length > 0 ? <div className="ant-card-extra"> + <span>{card.header.actions.length === 1 ? card.header.actions[0].text : 'Action'}</span> + </div> : null} </div> </div> : null } @@ -223,8 +307,9 @@ {card.subelement.includes('avatar') ? <div className="ant-card-meta-avatar"> <Icon className="edit" title="Edit" type="edit" onClick={this.editAvatar} /> - <span className="ant-avatar ant-avatar-circle ant-avatar-image" style={{width: 32, height: 32}}> - <img src={card.avatar.content || 'https://zos.alipayobjects.com/rmsportal/ODTLcjxAfvqbxHnVXCYX.png'} alt=""/> + <span className="ant-avatar ant-avatar-circle ant-avatar-image" style={{width: card.avatar.width || card.avatar.size || 32}}> + {card.avatar.type === 'picture' ? <img src={avatar} alt=""/> : null} + {card.avatar.type === 'icon' ? <Icon className="avatar-icon" style={{fontSize: card.avatar.size + 'px'}} type={card.avatar.icon} /> : null} </span> </div> : null } @@ -236,12 +321,13 @@ /> </div> </div> : null} - {card.subelement.includes('actions') ? + {card.subelement.includes('bottom') ? <ul className="ant-card-actions"> - <Icon className="edit" title="Edit" type="edit" onClick={this.editAction} /> - {card.actions.map((item, i) => (<li key={i} style={{width: _width}}> + <Icon className="edit" title="Edit" type="edit" onClick={this.editBottom} /> + {card.bottom.actions.map((item, i) => (<li key={i} style={{width: _width}}> <span> - <Icon type={item.icon || 'dash'}/> + {['icon', 'all'].includes(card.bottom.show) ? <Icon type={item.icon || 'dash'}/> : null} + {['text', 'all'].includes(card.bottom.show) ? item.text : null} </span> </li>))} </ul> : null diff --git a/src/templates/sharecomponent/cardcomponent/index.scss b/src/templates/sharecomponent/cardcomponent/index.scss index 09bd16e..7119cf9 100644 --- a/src/templates/sharecomponent/cardcomponent/index.scss +++ b/src/templates/sharecomponent/cardcomponent/index.scss @@ -27,6 +27,10 @@ .ant-card-meta { position: relative; + + .avatar-icon { + color: rgba(0, 0, 0, 0.45); + } >.anticon-plus { color: #26C281; position: absolute; @@ -64,7 +68,6 @@ img { width: 100%; - height: 100%; } } } @@ -134,4 +137,24 @@ } } } + .ant-card.chart-card.background { + .ant-card-meta-title { + color: unset; + } + .ant-card-meta-description { + color: unset; + } + .ant-card-head { + color: unset; + .ant-card-head-title { + color: unset; + } + } + .ant-card-actions { + background: transparent; + li { + color: unset; + } + } + } } diff --git a/src/templates/sharecomponent/chartgroupcomponent/chartform/index.jsx b/src/templates/sharecomponent/chartgroupcomponent/chartform/index.jsx index b42e6de..47f4fce 100644 --- a/src/templates/sharecomponent/chartgroupcomponent/chartform/index.jsx +++ b/src/templates/sharecomponent/chartgroupcomponent/chartform/index.jsx @@ -121,7 +121,7 @@ { uuid: 'card3', url: card3, - subelement: ['content', 'avatar', 'header', 'actions'] + subelement: ['content', 'avatar', 'header', 'bottom'] } ] } @@ -157,8 +157,11 @@ _selectlegend = _legends[0] } } else if (_type === 'card') { - _legends = syslegends[_type] - _selectlegend = _legends.filter(item => item.uuid === card.cardType)[0] + _legends = syslegends.card + + if (card.subelement) { + _selectlegend = _legends.filter(item => JSON.stringify(item.subelement) === JSON.stringify(card.subelement))[0] + } if (!_selectlegend) { _selectlegend = _legends[0] @@ -177,6 +180,8 @@ item.hidden = false } else if (item.key === 'over' && _type === 'card') { item.hidden = false + } else if (item.key === 'bgfield') { + item.hidden = _type !== 'card' } return item }) @@ -223,6 +228,8 @@ item.hidden = false } else if (item.key === 'over' && value === 'card') { item.hidden = false + } else if (item.key === 'bgfield') { + item.hidden = value !== 'card' } return item }) @@ -421,16 +428,29 @@ if (!result.details) { result.details = [ - {bold: 'true', uuid: 'cardtitle', content: 'Card title', datatype: 'static', align: 'left'}, - {bold: 'false', uuid: 'carddescription', content: 'Card content', datatype: 'static', align: 'left'} + {elemType: 'detail', bold: 'true', uuid: 'cardtitle', content: 'Card title', datatype: 'static', align: 'left'}, + {elemType: 'detail',bold: 'false', uuid: 'carddescription', content: 'Card content', datatype: 'static', align: 'left'} ] - result.actions = [{icon: 'edit'}, {icon: 'plus'}] + result.bottom = { + elemType: 'bottom', + show: 'icon', + actions: [] + } result.header = { + elemType: 'header', content: 'Card title', datatype: 'static', actions: [] } - result.avatar = {content: 'https://zos.alipayobjects.com/rmsportal/ODTLcjxAfvqbxHnVXCYX.png', datatype: 'static', width: 32, height: 32} + result.avatar = { + elemType: 'avatar', + content: '', + type: 'picture', + field: '', + size: 14, + widthType: 'absolute', + width: 32 + } } } @@ -457,7 +477,7 @@ } } return ( - <Form {...formItemLayout} className="chart-edit-form" id="chartwinter"> + <Form {...formItemLayout} className="chart-edit-form mingke-table" id="chartwinter"> <Row gutter={24}>{this.getFields()}</Row> {legends ? <Row gutter={24} className="chart-model-image"> {legends.map(item => <Col span={6} key={item.uuid}> diff --git a/src/templates/sharecomponent/chartgroupcomponent/index.jsx b/src/templates/sharecomponent/chartgroupcomponent/index.jsx index d67cd4d..ea90177 100644 --- a/src/templates/sharecomponent/chartgroupcomponent/index.jsx +++ b/src/templates/sharecomponent/chartgroupcomponent/index.jsx @@ -77,6 +77,8 @@ * @description 娣诲姞鎴栦慨鏀瑰浘琛� */ handleChart = (item) => { + const { config } = this.props + let _type = 'editChart' if (!item) { _type = 'addChart' @@ -91,10 +93,19 @@ } } + let _columns = config.columns.filter(col => ['text', 'number'].includes(col.type) && col.marks && col.marks.filter(_mark => _mark.signType === 'card').length > 0) + _columns = _columns.map(col => { + return { + uuid: col.uuid, + value: col.field, + text: col.label + } + }) + this.setState({ card: item, modaltype: _type, - formlist: getChartViewForm(item, this.props.sysRoles) + formlist: getChartViewForm(item, this.props.sysRoles, _columns) }) } diff --git a/src/templates/sharecomponent/columncomponent/markcolumn/index.jsx b/src/templates/sharecomponent/columncomponent/markcolumn/index.jsx index 3d09f4f..52db5a5 100644 --- a/src/templates/sharecomponent/columncomponent/markcolumn/index.jsx +++ b/src/templates/sharecomponent/columncomponent/markcolumn/index.jsx @@ -87,6 +87,9 @@ _outerclass = 'font ' + record.color[1] } else if (record.signType === 'background') { _outerclass = 'background ' + record.color[1] + } else if (record.signType === 'card') { + _outerclass = 'background ' + record.color[1] + content = '鏁堟灉鍦ㄥ崱鐗囦腑鍙' } else if (record.signType === 'icon') { if (record.position === 'front') { content = <div><Icon className={'font ' + record.color[1]} type={record.icon} /> {content} </div> diff --git a/src/templates/sharecomponent/columncomponent/markcolumn/index.scss b/src/templates/sharecomponent/columncomponent/markcolumn/index.scss index 61a4432..3502583 100644 --- a/src/templates/sharecomponent/columncomponent/markcolumn/index.scss +++ b/src/templates/sharecomponent/columncomponent/markcolumn/index.scss @@ -1,4 +1,9 @@ #mark-column-box-modal { + .ant-form-item-label .anticon-question-circle { + color: #c49f47; + position: relative; + left: -3px; + } table tr td { word-wrap: break-word; word-break: break-word; diff --git a/src/templates/sharecomponent/columncomponent/markcolumn/markform/index.jsx b/src/templates/sharecomponent/columncomponent/markcolumn/markform/index.jsx index 84ceeb4..6b9bfbf 100644 --- a/src/templates/sharecomponent/columncomponent/markcolumn/markform/index.jsx +++ b/src/templates/sharecomponent/columncomponent/markcolumn/markform/index.jsx @@ -1,8 +1,9 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' -import { Form, Row, Col, Select, Button, Input, InputNumber, Radio, Icon, Cascader } from 'antd' -import './index.scss' +import { Form, Row, Col, Select, Button, Input, InputNumber, Radio, Icon, Cascader, Tooltip } from 'antd' +import { minkeColorSystem } from '@/utils/option.js' +import './index.scss' class UniqueForm extends Component { static propTpyes = { @@ -18,216 +19,7 @@ originField: this.props.card, signType: 'background', selectIcon: '', - options: [ - { - value: 'DustRed', - label: '钖勬毊', - children: [ - { value: 'dust-red-1', label: 'dust-red-1' }, - { value: 'dust-red-2', label: 'dust-red-2' }, - { value: 'dust-red-3', label: 'dust-red-3' }, - { value: 'dust-red-4', label: 'dust-red-4' }, - { value: 'dust-red-5', label: 'dust-red-5' }, - { value: 'dust-red-6', label: 'dust-red-6' }, - { value: 'dust-red-7', label: 'dust-red-7' }, - { value: 'dust-red-8', label: 'dust-red-8' }, - { value: 'dust-red-9', label: 'dust-red-9' }, - { value: 'dust-red-10', label: 'dust-red-10' } - ] - }, - { - value: 'Volcano', - label: '鐏北', - children: [ - { value: 'volcano-1', label: 'volcano-1' }, - { value: 'volcano-2', label: 'volcano-2' }, - { value: 'volcano-3', label: 'volcano-3' }, - { value: 'volcano-4', label: 'volcano-4' }, - { value: 'volcano-5', label: 'volcano-5' }, - { value: 'volcano-6', label: 'volcano-6' }, - { value: 'volcano-7', label: 'volcano-7' }, - { value: 'volcano-8', label: 'volcano-8' }, - { value: 'volcano-9', label: 'volcano-9' }, - { value: 'volcano-10', label: 'volcano-10' } - ], - }, - { - value: 'SunsetOrange', - label: '鏃ユ毊', - children: [ - { value: 'orange-1', label: 'orange-1' }, - { value: 'orange-2', label: 'orange-2' }, - { value: 'orange-3', label: 'orange-3' }, - { value: 'orange-4', label: 'orange-4' }, - { value: 'orange-5', label: 'orange-5' }, - { value: 'orange-6', label: 'orange-6' }, - { value: 'orange-7', label: 'orange-7' }, - { value: 'orange-8', label: 'orange-8' }, - { value: 'orange-9', label: 'orange-9' }, - { value: 'orange-10', label: 'orange-10' } - ] - }, - { - value: 'CalendulaGold', - label: '閲戠洀鑺�', - children: [ - { value: 'gold-1', label: 'gold-1' }, - { value: 'gold-2', label: 'gold-2' }, - { value: 'gold-3', label: 'gold-3' }, - { value: 'gold-4', label: 'gold-4' }, - { value: 'gold-5', label: 'gold-5' }, - { value: 'gold-6', label: 'gold-6' }, - { value: 'gold-7', label: 'gold-7' }, - { value: 'gold-8', label: 'gold-8' }, - { value: 'gold-9', label: 'gold-9' }, - { value: 'gold-10', label: 'gold-10' } - ] - }, - { - value: 'SunriseYellow', - label: '鏃ュ嚭', - children: [ - { value: 'yellow-1', label: 'yellow-1' }, - { value: 'yellow-2', label: 'yellow-2' }, - { value: 'yellow-3', label: 'yellow-3' }, - { value: 'yellow-4', label: 'yellow-4' }, - { value: 'yellow-5', label: 'yellow-5' }, - { value: 'yellow-6', label: 'yellow-6' }, - { value: 'yellow-7', label: 'yellow-7' }, - { value: 'yellow-8', label: 'yellow-8' }, - { value: 'yellow-9', label: 'yellow-9' }, - { value: 'yellow-10', label: 'yellow-10' } - ] - }, - { - value: 'Lime', - label: '闈掓煚', - children: [ - { value: 'lime-1', label: 'lime-1' }, - { value: 'lime-2', label: 'lime-2' }, - { value: 'lime-3', label: 'lime-3' }, - { value: 'lime-4', label: 'lime-4' }, - { value: 'lime-5', label: 'lime-5' }, - { value: 'lime-6', label: 'lime-6' }, - { value: 'lime-7', label: 'lime-7' }, - { value: 'lime-8', label: 'lime-8' }, - { value: 'lime-9', label: 'lime-9' }, - { value: 'lime-10', label: 'lime-10' } - ] - }, - { - value: 'PolarGreen', - label: '鏋佸厜缁�', - children: [ - { value: 'green-1', label: 'green-1' }, - { value: 'green-2', label: 'green-2' }, - { value: 'green-3', label: 'green-3' }, - { value: 'green-4', label: 'green-4' }, - { value: 'green-5', label: 'green-5' }, - { value: 'green-6', label: 'green-6' }, - { value: 'green-7', label: 'green-7' }, - { value: 'green-8', label: 'green-8' }, - { value: 'green-9', label: 'green-9' }, - { value: 'green-10', label: 'green-10' } - ] - }, - { - value: 'Cyan', - label: '鏄庨潚', - children: [ - { value: 'cyan-1', label: 'cyan-1' }, - { value: 'cyan-2', label: 'cyan-2' }, - { value: 'cyan-3', label: 'cyan-3' }, - { value: 'cyan-4', label: 'cyan-4' }, - { value: 'cyan-5', label: 'cyan-5' }, - { value: 'cyan-6', label: 'cyan-6' }, - { value: 'cyan-7', label: 'cyan-7' }, - { value: 'cyan-8', label: 'cyan-8' }, - { value: 'cyan-9', label: 'cyan-9' }, - { value: 'cyan-10', label: 'cyan-10' } - ] - }, - { - value: 'DaybreakBlue', - label: '鎷傛檽钃�', - children: [ - { value: 'blue-1', label: 'blue-1' }, - { value: 'blue-2', label: 'blue-2' }, - { value: 'blue-3', label: 'blue-3' }, - { value: 'blue-4', label: 'blue-4' }, - { value: 'blue-5', label: 'blue-5' }, - { value: 'blue-6', label: 'blue-6' }, - { value: 'blue-7', label: 'blue-7' }, - { value: 'blue-8', label: 'blue-8' }, - { value: 'blue-9', label: 'blue-9' }, - { value: 'blue-10', label: 'blue-10' } - ] - }, - { - value: 'GeekBlue', - label: '鏋佸钃�', - children: [ - { value: 'geekblue-1', label: 'geekblue-1' }, - { value: 'geekblue-2', label: 'geekblue-2' }, - { value: 'geekblue-3', label: 'geekblue-3' }, - { value: 'geekblue-4', label: 'geekblue-4' }, - { value: 'geekblue-5', label: 'geekblue-5' }, - { value: 'geekblue-6', label: 'geekblue-6' }, - { value: 'geekblue-7', label: 'geekblue-7' }, - { value: 'geekblue-8', label: 'geekblue-8' }, - { value: 'geekblue-9', label: 'geekblue-9' }, - { value: 'geekblue-10', label: 'geekblue-10' } - ] - }, - { - value: 'GoldenPurple', - label: '閰辩传', - children: [ - { value: 'purple-1', label: 'purple-1' }, - { value: 'purple-2', label: 'purple-2' }, - { value: 'purple-3', label: 'purple-3' }, - { value: 'purple-4', label: 'purple-4' }, - { value: 'purple-5', label: 'purple-5' }, - { value: 'purple-6', label: 'purple-6' }, - { value: 'purple-7', label: 'purple-7' }, - { value: 'purple-8', label: 'purple-8' }, - { value: 'purple-9', label: 'purple-9' }, - { value: 'purple-10', label: 'purple-10' } - ] - }, - { - value: 'Magenta', - label: '娉曞紡娲嬬孩', - children: [ - { value: 'magenta-1', label: 'magenta-1' }, - { value: 'magenta-2', label: 'magenta-2' }, - { value: 'magenta-3', label: 'magenta-3' }, - { value: 'magenta-4', label: 'magenta-4' }, - { value: 'magenta-5', label: 'magenta-5' }, - { value: 'magenta-6', label: 'magenta-6' }, - { value: 'magenta-7', label: 'magenta-7' }, - { value: 'magenta-8', label: 'magenta-8' }, - { value: 'magenta-9', label: 'magenta-9' }, - { value: 'magenta-10', label: 'magenta-10' } - ] - }, - { - value: 'Gray', - label: '涓�ц壊', - children: [ - { value: 'gray-1', label: 'gray-1' }, - { value: 'gray-2', label: 'gray-2' }, - { value: 'gray-3', label: 'gray-3' }, - { value: 'gray-4', label: 'gray-4' }, - { value: 'gray-5', label: 'gray-5' }, - { value: 'gray-6', label: 'gray-6' }, - { value: 'gray-7', label: 'gray-7' }, - { value: 'gray-8', label: 'gray-8' }, - { value: 'gray-9', label: 'gray-9' }, - { value: 'gray-10', label: 'gray-10' } - ] - } - ] + options: minkeColorSystem } UNSAFE_componentWillMount() { @@ -458,7 +250,12 @@ </Form.Item> </Col> : null} <Col span={6}> - <Form.Item label={'鏍囪鏂瑰紡'}> + <Form.Item label={ + <Tooltip placement="topLeft" title="鍗$墖绫诲瀷锛屽湪鍗$墖鍥捐〃涓捣鏁�"> + <Icon type="question-circle" /> + {'鏍囪'} + </Tooltip> + }> {getFieldDecorator('signType', { initialValue: 'background', rules: [ @@ -473,6 +270,7 @@ <Select.Option value="background">鍗曞厓鏍硷紙鑳屾櫙锛�</Select.Option> <Select.Option value="line">琛�</Select.Option> <Select.Option value="icon">鍥炬爣</Select.Option> + <Select.Option value="card">鍗$墖</Select.Option> </Select> )} </Form.Item> diff --git a/src/templates/sharecomponent/columncomponent/markcolumn/markform/index.scss b/src/templates/sharecomponent/columncomponent/markcolumn/markform/index.scss index 7e88473..4b38df3 100644 --- a/src/templates/sharecomponent/columncomponent/markcolumn/markform/index.scss +++ b/src/templates/sharecomponent/columncomponent/markcolumn/markform/index.scss @@ -1,26 +1,7 @@ #model-mark-form-box { .ant-select-dropdown-menu-item { .anticon { - font-size: 16px; - } - } - .ant-cascader-menu { - min-width: 120px; - height: 300px; - } - .ant-cascader-menu + .ant-cascader-menu { - min-width: 130px; - .ant-cascader-menu-item { - padding: 0; - div { - padding: 5px 12px; - .anticon { - font-size: 18px; - } - } - } - .ant-cascader-menu-item:hover { - background: unset; + font-size: 18px; } } } \ No newline at end of file diff --git a/src/templates/sharecomponent/tablecomponent/index.jsx b/src/templates/sharecomponent/tablecomponent/index.jsx index 1b606a1..60df7df 100644 --- a/src/templates/sharecomponent/tablecomponent/index.jsx +++ b/src/templates/sharecomponent/tablecomponent/index.jsx @@ -217,7 +217,7 @@ */ deleteTable = (table) => { const { config } = this.props - const {selectedTables, tableFields} = this.state + const { selectedTables, tableFields } = this.state let _tables = selectedTables.filter(item => item.TbName !== table.TbName) let _fields = tableFields.filter(item => item.tableName !== table.TbName) diff --git a/src/templates/sharecomponent/tabscomponent/tabdragelement/index.jsx b/src/templates/sharecomponent/tabscomponent/tabdragelement/index.jsx index 92bb326..291c771 100644 --- a/src/templates/sharecomponent/tabscomponent/tabdragelement/index.jsx +++ b/src/templates/sharecomponent/tabscomponent/tabdragelement/index.jsx @@ -94,7 +94,7 @@ <Icon className="edit close" type="close" onClick={() => deleteMenu(card)} /> </div> } key={`${index}`}> - 銆妠card.label}銆嬫爣绛惧唴瀹� + 銆妠card.label}銆嬫爣绛� </TabPane> ))} </Tabs> diff --git a/src/templates/subtableconfig/index.jsx b/src/templates/subtableconfig/index.jsx index 40f6165..0776283 100644 --- a/src/templates/subtableconfig/index.jsx +++ b/src/templates/subtableconfig/index.jsx @@ -14,13 +14,9 @@ import { getSubMenuForm } from '@/templates/zshare/formconfig' import asyncComponent from '@/utils/asyncComponent' -import TableComponent from '@/templates/sharecomponent/tablecomponent' -import FieldsComponent from '@/templates/sharecomponent/fieldscomponent' -import ChartGroupComponent from '@/templates/sharecomponent/chartgroupcomponent' import SearchComponent from '@/templates/sharecomponent/searchcomponent' import ActionComponent from '@/templates/sharecomponent/actioncomponent' import ColumnComponent from '@/templates/sharecomponent/columncomponent' -import ChartComponent from '@/templates/sharecomponent/chartcomponent' import MenuForm from '@/templates/zshare/menuform' import EditComponent from '@/templates/zshare/editcomponent' @@ -31,7 +27,13 @@ const { Panel } = Collapse const { confirm } = Modal const CommonDict = (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS + const SettingComponent = asyncComponent(() => import('@/templates/sharecomponent/settingcomponent')) +const TableComponent = asyncComponent(() => import('@/templates/sharecomponent/tablecomponent')) +const FieldsComponent = asyncComponent(() => import('@/templates/sharecomponent/fieldscomponent')) +const ChartGroupComponent = asyncComponent(() => import('@/templates/sharecomponent/chartgroupcomponent')) +const ChartComponent = asyncComponent(() => import('@/templates/sharecomponent/chartcomponent')) +// const CardComponent = asyncComponent(() => import('@/templates/sharecomponent/cardcomponent')) class SubTableConfig extends Component { static propTpyes = { @@ -1017,7 +1019,6 @@ <TableComponent config={config} containerId="subtable-basedata" - selectedTables={config.tables || []} updatetable={this.updatetable} /> </Panel> diff --git a/src/templates/zshare/formconfig.jsx b/src/templates/zshare/formconfig.jsx index 4b47bd8..9d5a4b2 100644 --- a/src/templates/zshare/formconfig.jsx +++ b/src/templates/zshare/formconfig.jsx @@ -1217,7 +1217,7 @@ * @param {object} card // 鎼滅储鏉′欢瀵硅薄 * @param {Array} roleList // 瑙掕壊鍒楄〃-榛戝悕鍗� */ -export function getChartViewForm (card, roleList = []) { +export function getChartViewForm (card, roleList = [], _columns) { let _charts = [{ value: 'line', text: '鎶樼嚎鍥�' @@ -1332,6 +1332,16 @@ value: 'roll', text: '婊氬姩' }] + }, + { + type: 'select', + key: 'bgfield', + label: '鑳屾櫙鎺у埗', + initVal: card.bgfield || '', + required: false, + readonly: false, + hidden: true, + options: _columns }, { type: 'multiselect', @@ -2092,6 +2102,7 @@ label: '鏁版嵁绫诲瀷', initVal: card.datatype || 'dynamic', required: true, + forbid: !['detail', 'header'].includes(_type), options: [{ value: 'dynamic', text: '鍔ㄦ��' @@ -2101,11 +2112,27 @@ }] }, { + type: 'radio', + key: 'type', + label: '绫诲瀷', + initVal: card.type || 'picture', + required: true, + forbid: !['avatar'].includes(_type), + options: [{ + value: 'picture', + text: '鍥剧墖' + }, { + value: 'icon', + text: '鍥炬爣' + }] + }, + { type: 'text', key: 'content', label: '鍐呭', initVal: card.content || '', - required: true + required: true, + forbid: !['detail', 'header'].includes(_type), }, { type: 'select', @@ -2113,6 +2140,7 @@ label: '瀛楁', initVal: card.field || '', required: true, + forbid: !['detail', 'header', 'avatar'].includes(_type), options: _columns }, { @@ -2121,7 +2149,7 @@ label: '鍔犵矖', initVal: card.bold || 'false', required: true, - forbid: _type !== 'detail', + forbid: !['detail'].includes(_type), options: [{ value: 'true', text: '鏄�' @@ -2136,7 +2164,7 @@ label: '瀹藉害', initVal: card.width || '', required: false, - forbid: _type !== 'detail', + forbid: !['detail'].includes(_type), options: [{ value: '', text: '100%' @@ -2150,13 +2178,51 @@ }, { type: 'radio', + key: 'widthType', + label: '瀹藉害璁剧疆', + initVal: card.widthType || 'absolute', + required: false, + forbid: !['avatar'].includes(_type), + hidden: true, + options: [{ + value: 'ratio', + text: '姣斾緥' + }, { + value: 'absolute', + text: '缁濆鍊�' + }] + }, + { + type: 'number', + key: 'width', + label: '瀹藉害鍊�', + initVal: card.width || 32, + min: 1, + max: card.widthType === 'ratio' ? 100 : 500, + required: false, + hidden: true, + forbid: !['avatar'].includes(_type) + }, + { + type: 'number', + key: 'size', + label: '瀛椾綋澶у皬', + initVal: card.size || 14, + min: 12, + max: 500, + required: false, + hidden: true, + forbid: !['avatar'].includes(_type) + }, + { + type: 'radio', key: 'align', label: '瀵归綈', - initVal: card.align || '', + initVal: card.align || 'left', required: false, - forbid: _type !== 'detail', + forbid: !['detail'].includes(_type), options: [{ - value: '', + value: 'left', text: '宸�' }, { value: 'align-center', @@ -2167,13 +2233,31 @@ }] }, { + type: 'radio', + key: 'show', + label: '鏄剧ず', + initVal: card.show || '', + required: false, + forbid: !['bottom'].includes(_type), + options: [{ + value: 'icon', + text: '鍥炬爣' + }, { + value: 'text', + text: '鏂囧瓧' + }, { + value: 'all', + text: '鍏ㄩ儴' + }] + }, + { type: 'multiselect', key: 'actions', label: '鎸夐挳缁�', tooltip: '', - initVal: card.actions || [], + initVal: card.actions ? card.actions.map(cell => cell.value) : [], required: false, - forbid: _type !== 'header', + forbid: !['header', 'bottom'].includes(_type), options: _actions }, ] diff --git a/src/utils/option.js b/src/utils/option.js index 5195b72..f951a1d 100644 --- a/src/utils/option.js +++ b/src/utils/option.js @@ -293,4 +293,215 @@ text: '鐧藉簳绱' }] +export const minkeColorSystem = [ + { + value: 'DustRed', + label: '钖勬毊', + children: [ + { value: 'dust-red-1', label: 'dust-red-1' }, + { value: 'dust-red-2', label: 'dust-red-2' }, + { value: 'dust-red-3', label: 'dust-red-3' }, + { value: 'dust-red-4', label: 'dust-red-4' }, + { value: 'dust-red-5', label: 'dust-red-5' }, + { value: 'dust-red-6', label: 'dust-red-6' }, + { value: 'dust-red-7', label: 'dust-red-7' }, + { value: 'dust-red-8', label: 'dust-red-8' }, + { value: 'dust-red-9', label: 'dust-red-9' }, + { value: 'dust-red-10', label: 'dust-red-10' } + ] + }, + { + value: 'Volcano', + label: '鐏北', + children: [ + { value: 'volcano-1', label: 'volcano-1' }, + { value: 'volcano-2', label: 'volcano-2' }, + { value: 'volcano-3', label: 'volcano-3' }, + { value: 'volcano-4', label: 'volcano-4' }, + { value: 'volcano-5', label: 'volcano-5' }, + { value: 'volcano-6', label: 'volcano-6' }, + { value: 'volcano-7', label: 'volcano-7' }, + { value: 'volcano-8', label: 'volcano-8' }, + { value: 'volcano-9', label: 'volcano-9' }, + { value: 'volcano-10', label: 'volcano-10' } + ], + }, + { + value: 'SunsetOrange', + label: '鏃ユ毊', + children: [ + { value: 'orange-1', label: 'orange-1' }, + { value: 'orange-2', label: 'orange-2' }, + { value: 'orange-3', label: 'orange-3' }, + { value: 'orange-4', label: 'orange-4' }, + { value: 'orange-5', label: 'orange-5' }, + { value: 'orange-6', label: 'orange-6' }, + { value: 'orange-7', label: 'orange-7' }, + { value: 'orange-8', label: 'orange-8' }, + { value: 'orange-9', label: 'orange-9' }, + { value: 'orange-10', label: 'orange-10' } + ] + }, + { + value: 'CalendulaGold', + label: '閲戠洀鑺�', + children: [ + { value: 'gold-1', label: 'gold-1' }, + { value: 'gold-2', label: 'gold-2' }, + { value: 'gold-3', label: 'gold-3' }, + { value: 'gold-4', label: 'gold-4' }, + { value: 'gold-5', label: 'gold-5' }, + { value: 'gold-6', label: 'gold-6' }, + { value: 'gold-7', label: 'gold-7' }, + { value: 'gold-8', label: 'gold-8' }, + { value: 'gold-9', label: 'gold-9' }, + { value: 'gold-10', label: 'gold-10' } + ] + }, + { + value: 'SunriseYellow', + label: '鏃ュ嚭', + children: [ + { value: 'yellow-1', label: 'yellow-1' }, + { value: 'yellow-2', label: 'yellow-2' }, + { value: 'yellow-3', label: 'yellow-3' }, + { value: 'yellow-4', label: 'yellow-4' }, + { value: 'yellow-5', label: 'yellow-5' }, + { value: 'yellow-6', label: 'yellow-6' }, + { value: 'yellow-7', label: 'yellow-7' }, + { value: 'yellow-8', label: 'yellow-8' }, + { value: 'yellow-9', label: 'yellow-9' }, + { value: 'yellow-10', label: 'yellow-10' } + ] + }, + { + value: 'Lime', + label: '闈掓煚', + children: [ + { value: 'lime-1', label: 'lime-1' }, + { value: 'lime-2', label: 'lime-2' }, + { value: 'lime-3', label: 'lime-3' }, + { value: 'lime-4', label: 'lime-4' }, + { value: 'lime-5', label: 'lime-5' }, + { value: 'lime-6', label: 'lime-6' }, + { value: 'lime-7', label: 'lime-7' }, + { value: 'lime-8', label: 'lime-8' }, + { value: 'lime-9', label: 'lime-9' }, + { value: 'lime-10', label: 'lime-10' } + ] + }, + { + value: 'PolarGreen', + label: '鏋佸厜缁�', + children: [ + { value: 'green-1', label: 'green-1' }, + { value: 'green-2', label: 'green-2' }, + { value: 'green-3', label: 'green-3' }, + { value: 'green-4', label: 'green-4' }, + { value: 'green-5', label: 'green-5' }, + { value: 'green-6', label: 'green-6' }, + { value: 'green-7', label: 'green-7' }, + { value: 'green-8', label: 'green-8' }, + { value: 'green-9', label: 'green-9' }, + { value: 'green-10', label: 'green-10' } + ] + }, + { + value: 'Cyan', + label: '鏄庨潚', + children: [ + { value: 'cyan-1', label: 'cyan-1' }, + { value: 'cyan-2', label: 'cyan-2' }, + { value: 'cyan-3', label: 'cyan-3' }, + { value: 'cyan-4', label: 'cyan-4' }, + { value: 'cyan-5', label: 'cyan-5' }, + { value: 'cyan-6', label: 'cyan-6' }, + { value: 'cyan-7', label: 'cyan-7' }, + { value: 'cyan-8', label: 'cyan-8' }, + { value: 'cyan-9', label: 'cyan-9' }, + { value: 'cyan-10', label: 'cyan-10' } + ] + }, + { + value: 'DaybreakBlue', + label: '鎷傛檽钃�', + children: [ + { value: 'blue-1', label: 'blue-1' }, + { value: 'blue-2', label: 'blue-2' }, + { value: 'blue-3', label: 'blue-3' }, + { value: 'blue-4', label: 'blue-4' }, + { value: 'blue-5', label: 'blue-5' }, + { value: 'blue-6', label: 'blue-6' }, + { value: 'blue-7', label: 'blue-7' }, + { value: 'blue-8', label: 'blue-8' }, + { value: 'blue-9', label: 'blue-9' }, + { value: 'blue-10', label: 'blue-10' } + ] + }, + { + value: 'GeekBlue', + label: '鏋佸钃�', + children: [ + { value: 'geekblue-1', label: 'geekblue-1' }, + { value: 'geekblue-2', label: 'geekblue-2' }, + { value: 'geekblue-3', label: 'geekblue-3' }, + { value: 'geekblue-4', label: 'geekblue-4' }, + { value: 'geekblue-5', label: 'geekblue-5' }, + { value: 'geekblue-6', label: 'geekblue-6' }, + { value: 'geekblue-7', label: 'geekblue-7' }, + { value: 'geekblue-8', label: 'geekblue-8' }, + { value: 'geekblue-9', label: 'geekblue-9' }, + { value: 'geekblue-10', label: 'geekblue-10' } + ] + }, + { + value: 'GoldenPurple', + label: '閰辩传', + children: [ + { value: 'purple-1', label: 'purple-1' }, + { value: 'purple-2', label: 'purple-2' }, + { value: 'purple-3', label: 'purple-3' }, + { value: 'purple-4', label: 'purple-4' }, + { value: 'purple-5', label: 'purple-5' }, + { value: 'purple-6', label: 'purple-6' }, + { value: 'purple-7', label: 'purple-7' }, + { value: 'purple-8', label: 'purple-8' }, + { value: 'purple-9', label: 'purple-9' }, + { value: 'purple-10', label: 'purple-10' } + ] + }, + { + value: 'Magenta', + label: '娉曞紡娲嬬孩', + children: [ + { value: 'magenta-1', label: 'magenta-1' }, + { value: 'magenta-2', label: 'magenta-2' }, + { value: 'magenta-3', label: 'magenta-3' }, + { value: 'magenta-4', label: 'magenta-4' }, + { value: 'magenta-5', label: 'magenta-5' }, + { value: 'magenta-6', label: 'magenta-6' }, + { value: 'magenta-7', label: 'magenta-7' }, + { value: 'magenta-8', label: 'magenta-8' }, + { value: 'magenta-9', label: 'magenta-9' }, + { value: 'magenta-10', label: 'magenta-10' } + ] + }, + { + value: 'Gray', + label: '涓�ц壊', + children: [ + { value: 'gray-1', label: 'gray-1' }, + { value: 'gray-2', label: 'gray-2' }, + { value: 'gray-3', label: 'gray-3' }, + { value: 'gray-4', label: 'gray-4' }, + { value: 'gray-5', label: 'gray-5' }, + { value: 'gray-6', label: 'gray-6' }, + { value: 'gray-7', label: 'gray-7' }, + { value: 'gray-8', label: 'gray-8' }, + { value: 'gray-9', label: 'gray-9' }, + { value: 'gray-10', label: 'gray-10' } + ] + } +] + export const queryTableSql = 'select TbName,Remark from (select TbName,Remark from sDataDictb where appkey= @appkey@ and Deleted=0 union select a.TbName,Remark from (select TbName,Remark from sDataDictb where appkey= \'\' and Deleted=0 ) a left join (select TbName from sDataDictb where appkey= @appkey@ and Deleted=0 ) b on a.TbName=b.TbName where b.TbName is null ) t' -- Gitblit v1.8.0