| | |
| | | import PropTypes from 'prop-types' |
| | | import { is, fromJS } from 'immutable' |
| | | import { Popover, message } from 'antd' |
| | | import { EditOutlined, ToolOutlined, DeleteOutlined, FontColorsOutlined } from '@ant-design/icons' |
| | | import { EditOutlined, ToolOutlined, DeleteOutlined, FontColorsOutlined, PlusCircleOutlined } from '@ant-design/icons' |
| | | |
| | | import asyncComponent from '@/utils/asyncComponent' |
| | | import asyncIconComponent from '@/utils/asyncIconComponent' |
| | | import { resetStyle, getTables, checkComponent } from '@/utils/utils-custom.js' |
| | | import MKEmitter from '@/utils/events.js' |
| | | import getWrapForm from './options' |
| | | import Utils from '@/utils/utils.js' |
| | | import './index.scss' |
| | | |
| | | const SettingComponent = asyncIconComponent(() => import('@/menu/datasource')) |
| | | const NormalForm = asyncIconComponent(() => import('@/components/normalform')) |
| | | const SearchComponent = asyncComponent(() => import('@/templates/sharecomponent/searchcomponent')) |
| | | const CopyComponent = asyncIconComponent(() => import('@/menu/components/share/copycomponent')) |
| | | const UserComponent = asyncIconComponent(() => import('@/menu/components/share/usercomponent')) |
| | | const NormalHeader = asyncComponent(() => import('@/menu/components/share/normalheader')) |
| | | const CalendarBoard = asyncComponent(() => import('./board')) |
| | | |
| | | class NormalCalendarComponent extends Component { |
| | | static propTpyes = { |
| | |
| | | name: card.name, |
| | | subtype: card.subtype, |
| | | setting: { interType: 'system' }, |
| | | wrap: { title: '', name: card.name, width: card.width || 24 }, |
| | | wrap: { title: '', name: card.name, width: card.width || 24, levels: ['day', 'month'] }, |
| | | style: { marginLeft: '0px', marginRight: '0px', marginTop: '0px', marginBottom: '0px' }, |
| | | headerStyle: { fontSize: '16px', borderBottomWidth: '1px', borderBottomColor: '#e8e8e8' }, |
| | | search: [], |
| | | columns: [], |
| | | scripts: [], |
| | | } |
| | |
| | | card.name = card.wrap.name |
| | | if (!window.GLOB.styling || !card.errors) { // 样式修改时不做筛查 |
| | | card.$c_ds = true |
| | | card.$c_sc = true |
| | | |
| | | card.errors = checkComponent(card) |
| | | |
| | |
| | | card.$tables = getTables(card) |
| | | } |
| | | } |
| | | |
| | | |
| | | this.setState({ |
| | | card: card |
| | | }) |
| | |
| | | this.updateComponent(_card) |
| | | } |
| | | |
| | | addSearch = () => { |
| | | const { card } = this.state |
| | | |
| | | MKEmitter.emit('plusSearch', card.uuid, {uuid: Utils.getuuid(), focus: true, label: 'label', type: 'text', match: '='}, 'simple') |
| | | } |
| | | |
| | | getWrapForms = () => { |
| | | const { card } = this.state |
| | | |
| | |
| | | } |
| | | |
| | | updateWrap = (res) => { |
| | | delete res.quick |
| | | const { card } = this.state |
| | | |
| | | if (res.hmode) { |
| | | res.mode = res.hmode |
| | | delete res.hmode |
| | | res.show = card.wrap.show || 'true' |
| | | res.advanceType = card.wrap.advanceType || 'modal' |
| | | res.advanceWidth = card.wrap.advanceWidth || 1000 |
| | | res.drawerPlacement = card.wrap.drawerPlacement || 'right' |
| | | res.searchRatio = card.wrap.searchRatio || 6 |
| | | res.searchLwidth = card.wrap.searchLwidth !== undefined ? card.wrap.searchLwidth : 33.3 |
| | | res.borderRadius = card.wrap.borderRadius || 0 |
| | | res.resetContrl = card.wrap.resetContrl || 'init' |
| | | |
| | | if (res.colorField && res.signs) { |
| | | res.signs = res.signs.map(item => { |
| | | try { |
| | | let colors = item.color.match(/\d+/g) |
| | | if ((colors[0] * 0.299 + colors[1] * 0.578 + colors[2] * 0.114) * colors[3] < 192) { |
| | | item.fontColor = '#ffffff' |
| | | } else { |
| | | item.fontColor = '' |
| | | } |
| | | } catch (e) { |
| | | item.fontColor = '' |
| | | } |
| | | |
| | | return item |
| | | }) |
| | | } |
| | | |
| | | this.updateComponent({...this.state.card, wrap: res}) |
| | | |
| | | this.updateComponent({...card, wrap: res}) |
| | | } |
| | | |
| | | render() { |
| | |
| | | |
| | | return ( |
| | | <div className="menu-calendar-edit-box" style={_style} id={card.uuid}> |
| | | <NormalHeader hideSearch="true" config={card} updateComponent={this.updateComponent}/> |
| | | <Popover overlayClassName="mk-popover-control-wrap" mouseLeaveDelay={0.2} mouseEnterDelay={0.2} content={ |
| | | <div className="mk-popover-control"> |
| | | <NormalForm title="日历设置" width={800} update={this.updateWrap} getForms={this.getWrapForms}> |
| | | <PlusCircleOutlined className="plus" title="添加搜索" onClick={this.addSearch}/> |
| | | <NormalForm title="日历设置" width={850} update={this.updateWrap} getForms={this.getWrapForms}> |
| | | <EditOutlined style={{color: '#1890ff'}} title="编辑"/> |
| | | </NormalForm> |
| | | <CopyComponent type="calendar" card={card}/> |
| | | <FontColorsOutlined className="style" title="调整样式" onClick={this.changeStyle}/> |
| | | <UserComponent config={card}/> |
| | | <DeleteOutlined className="close" title="删除组件" onClick={() => this.props.deletecomponent(card.uuid)} /> |
| | | <SettingComponent config={card} updateConfig={this.updateComponent} /> |
| | | </div> |
| | | } trigger="hover"> |
| | | <ToolOutlined /> |
| | | </Popover> |
| | | <NormalHeader hideSearch="true" config={card} updateComponent={this.updateComponent}/> |
| | | <SearchComponent config={card} updatesearch={this.updateComponent}/> |
| | | <CalendarBoard config={card} /> |
| | | <div className="component-name"> |
| | | <div className="center"> |
| | | <div className="title" onDoubleClick={() => { |