| | |
| | | margin-top: 15px; |
| | | } |
| | | } |
| | | } |
| | | .mk-msg-icon { |
| | | font-size: 16px; |
| | | margin-top: 17px; |
| | | margin-right: 20px; |
| | | margin-left: 0px; |
| | | color: #1CD66C; |
| | | cursor: pointer; |
| | | } |
| | | .mk-msg-icon[data-title] { |
| | | position: relative; |
| | | |
| | | &::before { |
| | | content: " "; |
| | | position: absolute; |
| | | top: 6px; |
| | | left: 2px; |
| | | z-index: -1; |
| | | width: 12px; |
| | | height: 3px; |
| | | display: block; |
| | | background: #fff; |
| | | } |
| | | &::after { |
| | | position: absolute; |
| | | top: -10px; |
| | | left: 15px; |
| | | color: #f5222d; |
| | | font-size: 12px; |
| | | line-height: 16px; |
| | | white-space: nowrap; |
| | | font-weight: 600; |
| | | content: attr(data-title); |
| | | } |
| | | } |
| | |
| | | import React, { Component } from 'react' |
| | | import { MessageFilled } from '@ant-design/icons' |
| | | import { notification } from 'antd' |
| | | import { MessageFilled, CloseOutlined } from '@ant-design/icons' |
| | | |
| | | import MKEmitter from '@/utils/events.js' |
| | | import Api from '@/api' |
| | | // import MKEmitter from '@/utils/events.js' |
| | | |
| | | import './sysmessage.scss' |
| | | |
| | | class SysMessage extends Component { |
| | | state = { |
| | | |
| | | visible: false, |
| | | notices: [] |
| | | } |
| | | |
| | | UNSAFE_componentWillMount () { |
| | | |
| | | } |
| | | |
| | | open = () => { |
| | | let menu = { |
| | | MenuID: 'message_page_id', |
| | | MenuName: '系统消息', |
| | | type: 'SysMessage' |
| | | getMsgList = () => { |
| | | let param = { |
| | | func: 's_get_kei' |
| | | } |
| | | |
| | | MKEmitter.emit('modifyTabs', menu) |
| | | Api.getSystemConfig(param).then(result => { |
| | | if (result.status) { |
| | | let notices = result.data |
| | | |
| | | this.setState({ notices }) |
| | | } else { |
| | | notification.warning({ |
| | | top: 92, |
| | | message: result.message, |
| | | duration: 5 |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | open = () => { |
| | | // let menu = { |
| | | // MenuID: 'message_page_id', |
| | | // MenuName: '系统消息', |
| | | // type: 'SysMessage' |
| | | // } |
| | | |
| | | // MKEmitter.emit('modifyTabs', menu) |
| | | this.setState({ visible: true }) |
| | | } |
| | | |
| | | render() { |
| | | return ( |
| | | const { visible } = this.state |
| | | |
| | | return (<> |
| | | <MessageFilled className="mk-msg-icon" data-title="23" onClick={this.open} /> |
| | | ) |
| | | <div className={'mk-msg-wrap' + (visible ? ' visible' : '')}> |
| | | <div className="title"> |
| | | 系统消息 |
| | | <CloseOutlined /> |
| | | </div> |
| | | <div>list</div> |
| | | </div> |
| | | </>) |
| | | } |
| | | } |
| | | |
New file |
| | |
| | | .mk-msg-icon { |
| | | font-size: 16px; |
| | | margin-top: 17px; |
| | | margin-right: 20px; |
| | | margin-left: 0px; |
| | | color: #1CD66C; |
| | | cursor: pointer; |
| | | } |
| | | .mk-msg-icon[data-title] { |
| | | position: relative; |
| | | |
| | | &::before { |
| | | content: " "; |
| | | position: absolute; |
| | | top: 6px; |
| | | left: 2px; |
| | | z-index: -1; |
| | | width: 12px; |
| | | height: 3px; |
| | | display: block; |
| | | background: #fff; |
| | | } |
| | | &::after { |
| | | position: absolute; |
| | | top: -10px; |
| | | left: 15px; |
| | | color: #f5222d; |
| | | font-size: 12px; |
| | | line-height: 16px; |
| | | white-space: nowrap; |
| | | font-weight: 600; |
| | | content: attr(data-title); |
| | | } |
| | | } |
| | | .mk-msg-wrap { |
| | | position: fixed; |
| | | width: 200px; |
| | | height: 400px; |
| | | top: 92px; |
| | | right: 15px; |
| | | z-index: -1; |
| | | opacity: 0; |
| | | padding: 10px; |
| | | font-size: 13px; |
| | | background-color: #fff; |
| | | background-clip: padding-box; |
| | | color: rgba(0, 0, 0, 0.85); |
| | | border: 0; |
| | | border-radius: 4px; |
| | | -webkit-box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); |
| | | box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); |
| | | pointer-events: auto; |
| | | transition: all 0.2s; |
| | | |
| | | .title { |
| | | text-align: center; |
| | | |
| | | .anticon-close { |
| | | position: absolute; |
| | | right: 10px; |
| | | color: rgba(0, 0, 0, 0.45); |
| | | cursor: pointer; |
| | | transition: color 0.2s; |
| | | } |
| | | .anticon-close:hover { |
| | | color: rgba(0, 0, 0, 0.85); |
| | | } |
| | | } |
| | | } |
| | | .mk-msg-wrap.visible { |
| | | z-index: 3000; |
| | | opacity: 1; |
| | | } |
| | |
| | | } |
| | | |
| | | if (_config.wrap.zHeight) { |
| | | _config.wrap.zoomStyle = {} |
| | | if (_config.wrap.zHeight <= 100) { |
| | | if (_config.wrap.zHeight < 0) { |
| | | _config.wrap.zHeight = `calc(100vh - ${-_config.wrap.zHeight}px)` |
| | | _config.wrap.zoomStyle.maxHeight = `calc(100vh - ${-_config.wrap.zHeight}px)` |
| | | _config.wrap.zoomStyle.minHeight = '100px' |
| | | } else { |
| | | _config.wrap.zHeight = _config.wrap.zHeight + 'vh' |
| | | _config.wrap.zoomStyle.maxHeight = _config.wrap.zHeight + 'vh' |
| | | } |
| | | } else { |
| | | _config.wrap.zoomStyle.maxHeight = _config.wrap.zHeight + 'px' |
| | | } |
| | | |
| | | if (_config.style) { |
| | |
| | | } |
| | | _config.wrap.layout += ' fix-height' |
| | | } else { |
| | | _config.wrap.zHeight = 'none' |
| | | _config.wrap.zoomStyle = null |
| | | } |
| | | |
| | | this.setState({ |
| | |
| | | {config.wrap.pickup === 'true' && this.state.data.length > 0 ? <div className="pickup-wrap"><Switch title="收起" checkedChildren={window.GLOB.dict['open'] || '开'} unCheckedChildren={window.GLOB.dict['shut'] || '关'} checked={pickup} onChange={this.pickupChange} /></div> : null} |
| | | <div className={`data-zoom ${config.wrap.wrapClass}`}> |
| | | {switchable ? <div className={'prev-page ' + (pageIndex === 1 ? 'disabled' : '')} onClick={this.prevPage}><div><div><img src={preImg} alt=""/></div></div></div> : null} |
| | | <Row className={'card-row-list ' + config.wrap.layout} style={{maxHeight: config.wrap.zHeight}}> |
| | | <Row className={'card-row-list ' + config.wrap.layout} style={config.wrap.zoomStyle}> |
| | | {precards.map((item, index) => ( |
| | | <Col key={'pre' + index} className="extend-card" style={item.wStyle} span={item.setting.width || 6}> |
| | | {item.setting.cardRole === 'header' ? <TableHeader card={item} data={extendData} refresh={this.refreshByHeader}> |
| | |
| | | _config.wrap.wrapClass = `${_config.wrap.selStyle} ${_config.wrap.cardType || ''}` |
| | | |
| | | if (_config.wrap.zHeight || _config.wrap.minWidth) { |
| | | _config.wrap.zoomStyle = { |
| | | maxHeight: 'none', |
| | | '--mk-data-zoom-width': _config.wrap.minWidth ? _config.wrap.minWidth + 'px' : '100%' |
| | | } |
| | | |
| | | if (_config.wrap.zHeight) { |
| | | if (_config.wrap.zHeight <= 100) { |
| | | if (_config.wrap.zHeight < 0) { |
| | | _config.wrap.zHeight = `calc(100vh - ${-_config.wrap.zHeight}px)` |
| | | _config.wrap.zoomStyle.maxHeight = `calc(100vh - ${-_config.wrap.zHeight}px)` |
| | | _config.wrap.zoomStyle.minHeight = '100px' |
| | | } else { |
| | | _config.wrap.zHeight = _config.wrap.zHeight + 'vh' |
| | | _config.wrap.zoomStyle.maxHeight = _config.wrap.zHeight + 'vh' |
| | | } |
| | | } else { |
| | | _config.wrap.zoomStyle.maxHeight = _config.wrap.zHeight + 'px' |
| | | } |
| | | _config.wrap.wrapClass += ' fix-height' |
| | | } |
| | | _config.wrap.minWidth = _config.wrap.minWidth ? _config.wrap.minWidth + 'px' : '100%' |
| | | _config.wrap.zoomStyle = { |
| | | maxHeight: _config.wrap.zHeight || 'none', |
| | | '--mk-data-zoom-width': _config.wrap.minWidth |
| | | } |
| | | } else { |
| | | _config.wrap.zoomStyle = null |
| | |
| | | bg_black_style_magenta: {name: '洋红色', color: '#eb2f96'}, |
| | | bg_black_style_grass_green: {name: '草绿色', color: '#aeb303'}, |
| | | bg_black_style_deep_red: {name: '深红色', color: '#c32539'}, |
| | | bg_black_style_deep_blue: {name: '深红色', color: '#1d3661'} |
| | | bg_black_style_deep_blue: {name: '深蓝色', color: '#1d3661'} |
| | | } |
| | | |
| | | class AppCheck extends Component { |
| | |
| | | bg_black_style_magenta: {name: '洋红色', color: '#eb2f96'}, |
| | | bg_black_style_grass_green: {name: '草绿色', color: '#aeb303'}, |
| | | bg_black_style_deep_red: {name: '深红色', color: '#c32539'}, |
| | | bg_black_style_deep_blue: {name: '深红色', color: '#1d3661'} |
| | | bg_black_style_deep_blue: {name: '深蓝色', color: '#1d3661'} |
| | | } |
| | | |
| | | class AppManage extends Component { |
| | |
| | | <PictureController/> |
| | | <Quotecomponent config={config} updateConfig={this.updateConfig}/> |
| | | <StyleCombControlButton menu={config} /> |
| | | <Button className="mk-border-green set-home" disabled={MenuId === appHomeId} onClick={this.setHomeView}><HomeOutlined /> 设为首页</Button> |
| | | <Button className="mk-border-purple" disabled={MenuId === appLoginId} onClick={this.setLoginView}><LoginOutlined /> 设为登录页</Button> |
| | | <Button className="mk-border-green set-home" disabled={MenuId === appHomeId} data-title="当前菜单为应用首页" onClick={this.setHomeView}><HomeOutlined /> 设为首页</Button> |
| | | <Button className="mk-border-purple" disabled={MenuId === appLoginId} data-title="当前菜单为应用登录页" onClick={this.setLoginView}><LoginOutlined /> 设为登录页</Button> |
| | | <ReplaceField type="custom" config={config} updateConfig={this.resetConfig}/> |
| | | <Transfer MenuID={MenuId} /> |
| | | {config ? <Versions MenuId={MenuId} Template="webPage" checklog={this.checklog} updateConfig={this.updateLogConfig}/> : null} |
| | |
| | | height: 20px; |
| | | } |
| | | } |
| | | |
| | | [data-title]:disabled { |
| | | position: relative; |
| | | &::after { |
| | | position: absolute; |
| | | z-index: 20; |
| | | top: -35px; |
| | | left: 50%; |
| | | pointer-events: none; |
| | | opacity: 0; |
| | | transform: translateX(-50%) translateY(-5px); |
| | | transition: opacity .3s, transform .3s; |
| | | padding: 8px; |
| | | background-color: #21242a; |
| | | border-radius: 4px; |
| | | box-shadow: 0 5px 15px rgba(#000, .2); |
| | | color: #fff; |
| | | font-size: 13px; |
| | | line-height: 16px; |
| | | white-space: nowrap; |
| | | content: attr(data-title); |
| | | } |
| | | &:hover { |
| | | &::after { |
| | | opacity: 1; |
| | | transform: translateX(-50%) translateY(0); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .mk-mob-view.userbind { |
| | |
| | | <PictureController/> |
| | | <Quotecomponent config={config} updateConfig={this.updateConfig}/> |
| | | <StyleCombControlButton menu={config} /> |
| | | <Button className="mk-border-green" disabled={MenuId === appHomeId} onClick={this.setHomeView}><HomeOutlined /> 设为首页</Button> |
| | | <Button className="mk-border-purple" disabled={MenuId === appLoginId} onClick={this.setLoginView}><LoginOutlined/> 设为登录页</Button> |
| | | <Button className="mk-border-green" disabled={MenuId === appHomeId} data-title="当前菜单为应用首页" onClick={this.setHomeView}><HomeOutlined /> 设为首页</Button> |
| | | <Button className="mk-border-purple" disabled={MenuId === appLoginId} data-title="当前菜单为应用登录页" onClick={this.setLoginView}><LoginOutlined/> 设为登录页</Button> |
| | | <ReplaceField type="custom" config={config} updateConfig={this.resetConfig}/> |
| | | <Transfer MenuID={MenuId} /> |
| | | {config ? <Versions MenuId={MenuId} Template="webPage" checklog={this.checklog} updateConfig={this.updateLogConfig}/> : null} |
| | |
| | | border: 1px solid rgba(0, 0, 0, 0.07); |
| | | background: rgba(0, 0, 0, 0); |
| | | } |
| | | |
| | | [data-title]:disabled { |
| | | position: relative; |
| | | &::after { |
| | | position: absolute; |
| | | z-index: 20; |
| | | top: -35px; |
| | | left: 50%; |
| | | pointer-events: none; |
| | | opacity: 0; |
| | | transform: translateX(-50%) translateY(-5px); |
| | | transition: opacity .3s, transform .3s; |
| | | padding: 8px; |
| | | background-color: #21242a; |
| | | border-radius: 4px; |
| | | box-shadow: 0 5px 15px rgba(#000, .2); |
| | | color: #fff; |
| | | font-size: 13px; |
| | | line-height: 16px; |
| | | white-space: nowrap; |
| | | content: attr(data-title); |
| | | } |
| | | &:hover { |
| | | &::after { |
| | | opacity: 1; |
| | | transform: translateX(-50%) translateY(0); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .mk-pc-view + .modal-form-board { |
| | | padding-top: 0px; |