From a4ef35bb323b5f8300f15a4eb604d61ff39a194a Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期四, 17 十二月 2020 17:35:39 +0800 Subject: [PATCH] 2020-12-17 --- src/templates/zshare/modalform/index.jsx | 2 src/components/header/index.jsx | 8 + src/tabviews/zshare/mutilform/index.scss | 7 + src/templates/formtabconfig/index.jsx | 2 src/templates/modalconfig/index.jsx | 2 src/tabviews/home/index.jsx | 5 src/tabviews/custom/index.scss | 6 src/menu/components/card/data-card/wrapsetting/index.jsx | 2 src/tabviews/custom/components/card/data-card/index.scss | 25 +++ src/templates/modalconfig/dragelement/card.jsx | 5 src/templates/treepageconfig/index.scss | 3 src/templates/formtabconfig/index.scss | 3 src/tabviews/custom/components/card/data-card/index.jsx | 15 ++ src/tabviews/custom/components/card/prop-card/index.scss | 20 +++ src/tabviews/custom/components/card/table-card/index.jsx | 2 src/tabviews/custom/components/card/prop-card/index.jsx | 15 ++ src/templates/calendarconfig/index.scss | 3 src/templates/modalconfig/index.scss | 10 + src/tabviews/zshare/calendar/index.jsx | 58 +++++---- src/menu/stylecontroller/index.jsx | 18 +++ src/store/reducer.js | 7 + src/tabviews/home/index.scss | 10 + src/menu/components/card/cardcomponent/index.jsx | 18 ++- src/menu/components/card/data-card/index.jsx | 14 ++ src/templates/subtableconfig/index.scss | 3 src/tabviews/zshare/mutilform/index.jsx | 14 +- src/templates/comtableconfig/index.scss | 3 src/tabviews/custom/index.jsx | 9 + src/menu/modalconfig/index.jsx | 2 src/menu/components/card/data-card/wrapsetting/settingform/index.jsx | 35 +++++ src/mob/colorsketch/index.scss | 4 src/menu/components/card/prop-card/index.jsx | 16 ++ src/views/login/index.jsx | 2 33 files changed, 279 insertions(+), 69 deletions(-) diff --git a/src/components/header/index.jsx b/src/components/header/index.jsx index ab1c8c7..12a849a 100644 --- a/src/components/header/index.jsx +++ b/src/components/header/index.jsx @@ -238,6 +238,14 @@ let mainMenu = menulist[0] || '' let _menu = null + if (mainMenu === '') { // 鏄惁鏄剧ず渚ц竟鏍忔帶鍒� + let _url = window.location.href.split('#')[0] + localStorage.setItem(_url + '-sideHidden', 'true') + } else { + let _url = window.location.href.split('#')[0] + localStorage.removeItem(_url + '-sideHidden') + } + if (sessionStorage.getItem('ThirdMenu')) { // 鏄惁涓烘墦寮�鏂伴〉闈� let ThirdMenuId = sessionStorage.getItem('ThirdMenu') _menu = thdMenuList.filter(item => item.MenuID === ThirdMenuId)[0] // 閫氳繃url涓璵enuid绛涢�夊嚭閫変腑鐨勪富鑿滃崟 diff --git a/src/menu/components/card/cardcomponent/index.jsx b/src/menu/components/card/cardcomponent/index.jsx index 8d6d660..f99c712 100644 --- a/src/menu/components/card/cardcomponent/index.jsx +++ b/src/menu/components/card/cardcomponent/index.jsx @@ -1,7 +1,7 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' import { is, fromJS } from 'immutable' -import { Modal, Popover, Icon, Switch } from 'antd' +import { Modal, Popover, Icon, Switch, Col } from 'antd' import asyncComponent from '@/utils/asyncComponent' import zhCN from '@/locales/zh-CN/model.js' @@ -16,6 +16,7 @@ class CardBoxComponent extends Component { static propTpyes = { + offset: PropTypes.any, // 鍋忕Щ閲� MenuType: PropTypes.any, // 鑿滃崟绫诲瀷 cards: PropTypes.object, // 鍗$墖琛岄厤缃俊鎭� card: PropTypes.object, // 鍗$墖閰嶇疆淇℃伅 @@ -172,7 +173,7 @@ const { card, side } = this.state let _style = null - let options = ['height', 'background', 'border', 'padding', 'margin'] + let options = ['height', 'background', 'border', 'padding', 'margin', 'shadow'] if (side === 'front') { _style = card.style ? fromJS(card.style).toJS() : {} } else if (side === 'back') { @@ -204,16 +205,21 @@ } render() { - const { cards, MenuType } = this.props + const { cards, MenuType, offset } = this.props const { card, elements, side, settingVisible, dict } = this.state - let _style = card.style + let _style = {...card.style} + + if (_style.shadow) { + _style.boxShadow = '0 0 4px ' + _style.shadow + } + if (side === 'back') { _style = {...card.backStyle, height: card.style.height} } return ( - <div className={'ant-col ant-col-' + (card.setting.width || 6)}> + <Col span={card.setting.width || 6} offset={offset || 0}> <div className="card-item" style={_style}> <CardCellComponent cards={cards} cardCell={card} side={side} elements={elements} updateElement={this.updateCard}/> <div className="card-control"> @@ -251,7 +257,7 @@ wrappedComponentRef={(inst) => this.settingRef = inst} /> </Modal> - </div> + </Col> ) } } diff --git a/src/menu/components/card/data-card/index.jsx b/src/menu/components/card/data-card/index.jsx index 9b07350..9180af2 100644 --- a/src/menu/components/card/data-card/index.jsx +++ b/src/menu/components/card/data-card/index.jsx @@ -246,6 +246,18 @@ const { menu } = this.props const { card } = this.state + let offset = 0 + if (card.wrap.cardFloat && card.wrap.cardFloat !== 'left') { + let _width = 0 + card.subcards.forEach(card => { + _width += card.setting.width + }) + offset = _width < 24 ? 24 - _width : 0 + if (card.wrap.cardFloat === 'center') { + offset = Math.floor(offset / 2) + } + } + return ( <div className="menu-data-card-edit-box" style={{...card.style, minHeight: card.wrap.minHeight}}> <NormalHeader defaultshow="hidden" config={card} updateComponent={this.updateComponent}/> @@ -262,7 +274,7 @@ <Icon type="tool" /> </Popover> <ActionComponent config={card} setSubConfig={this.setSubConfig} updateaction={this.updateComponent}/> - {card.subcards.map(subcard => (<CardComponent key={subcard.uuid} MenuType={menu ? menu.MenuType : ''} cards={card} card={subcard} updateElement={this.updateCard} deleteElement={this.deleteCard}/>))} + {card.subcards.map((subcard, index) => (<CardComponent key={subcard.uuid} offset={!index ? offset : 0} MenuType={menu ? menu.MenuType : ''} cards={card} card={subcard} updateElement={this.updateCard} deleteElement={this.deleteCard}/>))} <div style={{clear: 'both'}}></div> {card.wrap.pagestyle !== 'switch' && card.setting.laypage === 'true' ? <Pagination total={85} showTotal={total => `鍏� ${total} 鏉} pageSize={20} defaultCurrent={1}/> : null} </div> diff --git a/src/menu/components/card/data-card/wrapsetting/index.jsx b/src/menu/components/card/data-card/wrapsetting/index.jsx index bd9c89a..3f448f5 100644 --- a/src/menu/components/card/data-card/wrapsetting/index.jsx +++ b/src/menu/components/card/data-card/wrapsetting/index.jsx @@ -61,7 +61,7 @@ wrapClassName="popview-modal" title={config.type === 'table' ? '琛ㄦ牸璁剧疆' : '鍗$墖璁剧疆'} visible={visible} - width={700} + width={800} maskClosable={false} okText={dict['model.submit']} onOk={this.verifySubmit} diff --git a/src/menu/components/card/data-card/wrapsetting/settingform/index.jsx b/src/menu/components/card/data-card/wrapsetting/settingform/index.jsx index fe1be9d..2ae6842 100644 --- a/src/menu/components/card/data-card/wrapsetting/settingform/index.jsx +++ b/src/menu/components/card/data-card/wrapsetting/settingform/index.jsx @@ -165,6 +165,41 @@ </Col> : null} {config.subtype !== 'tablecard' ? <Col span={12}> <Form.Item label={ + <Tooltip placement="topLeft" title="璁剧疆涓哄眳涓榻愭垨鍙冲榻愶紝鍙湪鍗$墖涓�1琛屾椂鏈夋晥銆�"> + <Icon type="question-circle" /> + 鍗$墖鎺掑垪 + </Tooltip> + }> + {getFieldDecorator('cardFloat', { + initialValue: wrap.cardFloat || 'left' + })( + <Radio.Group style={{whiteSpace: 'nowrap'}}> + <Radio key="left" value="left"> 宸﹀榻� </Radio> + <Radio key="center" value="center"> 灞呬腑 </Radio> + <Radio key="right" value="right"> 鍙冲榻� </Radio> + </Radio.Group> + )} + </Form.Item> + </Col> : null} + {config.subtype !== 'tablecard' ? <Col span={12}> + <Form.Item label={ + <Tooltip placement="topLeft" title="榧犳爣鎮诞浜庡崱鐗囦笂鏂规椂锛屽崱鐗囨斁澶�1.1鍊嶃��"> + <Icon type="question-circle" /> + 鍗$墖鏀惧ぇ + </Tooltip> + }> + {getFieldDecorator('scale', { + initialValue: wrap.scale || 'false' + })( + <Radio.Group> + <Radio key="false" value="false"> 鍚� </Radio> + <Radio key="true" value="true"> 鏄� </Radio> + </Radio.Group> + )} + </Form.Item> + </Col> : null} + {config.subtype !== 'tablecard' ? <Col span={12}> + <Form.Item label={ <Tooltip placement="topLeft" title="鍗$墖澶栬竟妗嗙殑鏈�灏忛珮搴︼紝鎺у埗鏁版嵁鍔犺浇鏃剁粍浠剁殑鍗犱綅銆�"> <Icon type="question-circle" /> 鏈�灏忛珮搴� diff --git a/src/menu/components/card/prop-card/index.jsx b/src/menu/components/card/prop-card/index.jsx index 0bf9bf8..a089c19 100644 --- a/src/menu/components/card/prop-card/index.jsx +++ b/src/menu/components/card/prop-card/index.jsx @@ -82,7 +82,7 @@ name: card.name, subtype: card.subtype, setting: { interType: 'system' }, - wrap: { name: card.name, width: 24, title: '', addable: 'false', switch: 'false', datatype: 'dynamic' }, + wrap: { name: card.name, width: 24, title: '', addable: 'false', switch: 'false', datatype: 'static' }, style: { marginLeft: '0px', marginRight: '0px', marginTop: '8px', marginBottom: '8px' }, headerStyle: { fontSize: '16px', borderBottomWidth: '1px', borderBottomColor: '#e8e8e8' }, columns: [], @@ -226,6 +226,18 @@ const { menu } = this.props const { card } = this.state + let offset = 0 + if (card.wrap.cardFloat && card.wrap.cardFloat !== 'left') { + let _width = 0 + card.subcards.forEach(card => { + _width += card.setting.width + }) + offset = _width < 24 ? 24 - _width : 0 + if (card.wrap.cardFloat === 'center') { + offset = Math.floor(offset / 2) + } + } + return ( <div className="menu-prop-card-edit-box" style={{...card.style, minHeight: card.wrap.minHeight}}> <NormalHeader defaultshow="hidden" config={card} updateComponent={this.updateComponent}/> @@ -240,7 +252,7 @@ } trigger="hover"> <Icon type="tool" /> </Popover> - {card.subcards.map(subcard => (<CardComponent key={subcard.uuid} MenuType={menu ? menu.MenuType : ''} cards={card} card={subcard} updateElement={this.updateCard} deleteElement={this.deleteCard}/>))} + {card.subcards.map((subcard, index) => (<CardComponent key={subcard.uuid} offset={!index ? offset : 0} MenuType={menu ? menu.MenuType : ''} cards={card} card={subcard} updateElement={this.updateCard} deleteElement={this.deleteCard}/>))} </div> ) } diff --git a/src/menu/modalconfig/index.jsx b/src/menu/modalconfig/index.jsx index 5f4be1f..2c9c5ab 100644 --- a/src/menu/modalconfig/index.jsx +++ b/src/menu/modalconfig/index.jsx @@ -199,7 +199,7 @@ _formfields = config.fields } - _inputfields = _formfields.filter(item => item.type === 'text' || item.type === 'number') + _inputfields = _formfields.filter(item => item.type === 'text' || item.type === 'number' || item.type === 'color') _tabfields = _formfields.filter(item => card.field !== item.field && item.hidden !== 'true' && ['text', 'number', 'select', 'link'].includes(item.type)) _tabfields.unshift({field: '', text: '鍘熻〃鍗�'}) diff --git a/src/menu/stylecontroller/index.jsx b/src/menu/stylecontroller/index.jsx index 2a89594..dd478b6 100644 --- a/src/menu/stylecontroller/index.jsx +++ b/src/menu/stylecontroller/index.jsx @@ -168,6 +168,13 @@ this.updateStyle({backgroundColor: val}) } + /** + * @description 淇敼闃村奖棰滆壊 锛岄鑹叉帶浠� + */ + changeShadowColor = (val) => { + this.updateStyle({shadow: val}) + } + imgChange = (list) => { if (list[0] && list[0].response) { this.setState({ @@ -503,6 +510,17 @@ </Form.Item> </Col> </Panel> : null} + {options.includes('shadow') ? <Panel header="闃村奖" key="shadow"> + <Col span={24}> + <Form.Item + colon={false} + label={<Icon title="闃村奖棰滆壊" type="bg-colors" />} + labelCol={{xs: { span: 24 }, sm: { span: 4 }}} wrapperCol={ {xs: { span: 24 }, sm: { span: 20 }} } + > + <ColorSketch value={card.shadow || 'transparent'} onChange={this.changeShadowColor} /> + </Form.Item> + </Col> + </Panel> : null} {options.includes('margin') ? <Panel header="澶栬竟璺�" key="margin"> <Col span={24}> <Form.Item diff --git a/src/mob/colorsketch/index.scss b/src/mob/colorsketch/index.scss index 96900ce..0cb58e9 100644 --- a/src/mob/colorsketch/index.scss +++ b/src/mob/colorsketch/index.scss @@ -3,6 +3,7 @@ width: 100%; .color-sketch-block-box { + // border-radius: 4px; display: inline-block; width: calc(100% - 160px); height: 100%; @@ -12,13 +13,14 @@ .color-sketch-block-inner { display: inline-block; cursor: pointer; - border-radius: 2px; + border-radius: 4px; box-shadow: 0 0 0 1px rgba(0, 0, 0, .1); width: 100%; height: 100%; } .color-sketch-value { display: inline-block; + font-size: 13px; width: 160px; padding-left: 10px; height: 25px; diff --git a/src/store/reducer.js b/src/store/reducer.js index 19f9032..a203f8b 100644 --- a/src/store/reducer.js +++ b/src/store/reducer.js @@ -2,6 +2,8 @@ import moment from 'moment' import * as Type from './action-type' +let _mainMenu = null +let _url = window.location.href.split('#')[0] let _collapse = localStorage.getItem('collapse') === 'true' let _level = 10 let _Mlevel = sessionStorage.getItem('Member_Level') @@ -15,10 +17,13 @@ _level = 30 } } +if (localStorage.getItem(_url + '-sideHidden') === 'true') { + _mainMenu = '' +} let defaultState = { menuTree: null, // 鑿滃崟缁撴瀯鏍� - mainMenu: null, // 宸查�変富鑿滃崟 + mainMenu: _mainMenu, // 宸查�変富鑿滃崟 tabviews: [], // 瀵艰埅鏍� collapse: _collapse, // 鏄惁鏀惰捣渚ц竟鏍忓鑸� isiframe: false, // 鏄惁涓篿frame绐楀彛 diff --git a/src/tabviews/custom/components/card/data-card/index.jsx b/src/tabviews/custom/components/card/data-card/index.jsx index 373bcd7..0e5a924 100644 --- a/src/tabviews/custom/components/card/data-card/index.jsx +++ b/src/tabviews/custom/components/card/data-card/index.jsx @@ -319,12 +319,21 @@ _total = config.setting.pageSize * pageIndex switchable = true } + let offset = 0 + if (config.wrap.cardFloat && config.wrap.cardFloat !== 'left') { + if (data && card.setting.width * data.length < 24) { + offset = 24 - card.setting.width * data.length + if (config.wrap.cardFloat === 'center') { + offset = Math.floor(offset / 2) + } + } + } return ( <div className="custom-data-card-box" style={{...config.style, minHeight: config.wrap.minHeight}}> {loading ? <div className="loading-mask"> - <div className="ant-spin-blur"></div> + {data ? <div className="ant-spin-blur"></div> : null} <Spin /> </div> : null } @@ -340,11 +349,11 @@ getexceloutparam={this.getexceloutparam} /> : null } - <div className="data-zoom"> + <div className={`data-zoom ${config.wrap.cardType} ${config.wrap.scale}`}> {switchable ? <div className={'prev-page ' + (pageIndex === 1 ? 'disabled' : '')} onClick={this.prevPage}><div><div><img src={preImg} alt=""/></div></div></div> : null} {data && data.length > 0 ? <div className="card-row-list"> {data.map((item, index) => ( - <Col className={activeKey === index ? 'active' : (selectKeys.indexOf(index) > -1 ? 'selected' : '')} key={index} span={card.setting.width} onClick={() => {this.changeCard(index, item)}}> + <Col className={activeKey === index ? 'active' : (selectKeys.indexOf(index) > -1 ? 'selected' : '')} key={index} span={card.setting.width} offset={!index ? offset : 0} onClick={() => {this.changeCard(index, item)}}> <CardItem card={card} cards={config} data={item} updateStatus={this.updateStatus}/> </Col> ))} diff --git a/src/tabviews/custom/components/card/data-card/index.scss b/src/tabviews/custom/components/card/data-card/index.scss index 5d1f123..72029b8 100644 --- a/src/tabviews/custom/components/card/data-card/index.scss +++ b/src/tabviews/custom/components/card/data-card/index.scss @@ -18,6 +18,26 @@ display: flex; position: relative; } + .data-zoom.radio, .data-zoom.checkbox { + .card-row-list { + >.ant-col:not(.active):not(.selected):hover { + >.card-item-box { + border-color: #69c0ff!important; + box-shadow: 0 0 4px #69c0ff!important; + } + } + } + } + .data-zoom.true { + .card-row-list { + >.ant-col:hover { + >.card-item-box { + z-index: 1; + transform: scale(1.1); + } + } + } + } .prev-page { width: 20px; div { @@ -50,16 +70,17 @@ flex: 10; .card-item-box { + position: relative; background-color: #ffffff; transition: all 0.3s; } >.active >.card-item-box { border-color: #1890ff!important; - box-shadow: 0 0 3px #1890ff; + box-shadow: 0 0 4px #1890ff; } >.selected >.card-item-box { border-color: #69c0ff!important; - box-shadow: 0 0 1px #69c0ff; + box-shadow: 0 0 4px #69c0ff; } } .card-item-box { diff --git a/src/tabviews/custom/components/card/prop-card/index.jsx b/src/tabviews/custom/components/card/prop-card/index.jsx index 1e01bd4..f072388 100644 --- a/src/tabviews/custom/components/card/prop-card/index.jsx +++ b/src/tabviews/custom/components/card/prop-card/index.jsx @@ -64,7 +64,9 @@ _cols.set(item.field, item) }) + let _width = 0 _config.subcards.forEach(card => { + _width += card.setting.width card.elements = card.elements.map(item => { if (item.field && _cols.has(item.field)) { item.col = _cols.get(item.field) @@ -78,6 +80,15 @@ return item }) }) + + let offset = 0 + if (_config.wrap.cardFloat && _config.wrap.cardFloat !== 'left' && _config.subcards[0] && _width < 24) { + offset = 24 - _width + if (_config.wrap.cardFloat === 'center') { + offset = Math.floor(offset / 2) + } + _config.subcards[0].offset = offset + } this.setState({ sync: _sync, @@ -252,9 +263,9 @@ <Spin /> </div> : null } - <div className="card-row-list"> + <div className={`card-row-list ${config.wrap.cardType} ${config.wrap.scale}`}> {config.subcards.map((item, index) => ( - <Col className={activeKey === index ? 'active' : ''} key={index} span={item.setting.width || 6} onClick={() => {this.changeCard(index, item)}}> + <Col className={activeKey === index ? 'active' : ''} key={index} span={item.setting.width || 6} offset={item.offset || 0} onClick={() => {this.changeCard(index, item)}}> <CardItem card={item} cards={config} data={data} updateStatus={this.updateStatus}/> </Col> ))} diff --git a/src/tabviews/custom/components/card/prop-card/index.scss b/src/tabviews/custom/components/card/prop-card/index.scss index dae2885..ba16fac 100644 --- a/src/tabviews/custom/components/card/prop-card/index.scss +++ b/src/tabviews/custom/components/card/prop-card/index.scss @@ -19,14 +19,32 @@ } >.active >.card-item-box { border-color: #1890ff!important; - box-shadow: 0 0 3px #1890ff; + box-shadow: 0 0 4px #1890ff; + } + } + .card-row-list.radio, .card-row-list.checkbox { + >.ant-col:not(.active):not(.selected):hover { + >.card-item-box { + border-color: #69c0ff!important; + box-shadow: 0 0 4px #69c0ff!important; + } + } + } + .card-row-list.true { + >.ant-col:hover { + >.card-item-box { + z-index: 1; + transform: scale(1.1); + } } } .card-item-box { + position: relative; background-position: center center; background-repeat: no-repeat; background-size: cover; + transition: all 0.3s; } .loading-mask { diff --git a/src/tabviews/custom/components/card/table-card/index.jsx b/src/tabviews/custom/components/card/table-card/index.jsx index 75f6167..140a11c 100644 --- a/src/tabviews/custom/components/card/table-card/index.jsx +++ b/src/tabviews/custom/components/card/table-card/index.jsx @@ -299,7 +299,7 @@ <div className="custom-table-card-box" style={{...config.style, height: config.wrap.height}}> {loading ? <div className="loading-mask"> - <div className="ant-spin-blur"></div> + {data ? <div className="ant-spin-blur"></div> : null} <Spin /> </div> : null } diff --git a/src/tabviews/custom/index.jsx b/src/tabviews/custom/index.jsx index f396e05..a295a88 100644 --- a/src/tabviews/custom/index.jsx +++ b/src/tabviews/custom/index.jsx @@ -263,6 +263,11 @@ item.subcards.forEach(card => { let _hasheight = card.style.height && card.style.height !== 'auto' + if (card.style.shadow) { // 鍗$墖闃村奖 + card.style.boxShadow = '0 0 4px ' + card.style.shadow + delete card.style.shadow + } + card.elements = card.elements.filter(cell => { if (cell.eleType === 'button') { cell.logLabel = item.name + '-' + cell.label @@ -688,8 +693,8 @@ const { debug, loadingview, viewlost, config, loading } = this.state return ( - <div className="custom-page-wrap" id={this.state.ContainerId} style={config ? config.style : null}> - {(loadingview || loading) ? <Spin size="large" /> : null} + <div className={'custom-page-wrap ' + (loadingview || loading ? 'loading' : '')} id={this.state.ContainerId} style={config ? config.style : null}> + {(loadingview || loading) ? <Spin className="view-spin" size="large" /> : null} <Row>{this.getComponents()}</Row> {debug && MenuNo && options.sysType !== 'cloud' && menuType !== 'HS' ? <Button icon="copy" diff --git a/src/tabviews/custom/index.scss b/src/tabviews/custom/index.scss index b8b53a5..4e7b7e6 100644 --- a/src/tabviews/custom/index.scss +++ b/src/tabviews/custom/index.scss @@ -44,4 +44,8 @@ opacity: 0.8; } } - +.custom-page-wrap.loading { + .ant-spin-spinning:not(.view-spin) { + display: none; + } +} diff --git a/src/tabviews/home/index.jsx b/src/tabviews/home/index.jsx index 6104d7a..26fbcd0 100644 --- a/src/tabviews/home/index.jsx +++ b/src/tabviews/home/index.jsx @@ -16,6 +16,7 @@ state = { loading: true, + background: sessionStorage.getItem('home_background'), view: '' } @@ -56,10 +57,10 @@ } render() { - const { loading, view } = this.state + const { loading, view, background } = this.state if (loading) { - return (<Spin className="home-box-spin" size="large" />) + return (<div className="home-loading-view" style={{background: background}}><Spin className="home-box-spin" size="large" /></div>) } else if (view === 'custom') { return (<CustomPage MenuID={this.props.MenuID}/>) } else { diff --git a/src/tabviews/home/index.scss b/src/tabviews/home/index.scss index 0a6c007..6e0f295 100644 --- a/src/tabviews/home/index.scss +++ b/src/tabviews/home/index.scss @@ -1,5 +1,9 @@ -.home-box-spin { +.home-loading-view { position: relative; - left: 50%; - top: 30vh; + height: 100%; + .home-box-spin { + position: relative; + left: 50%; + top: 30vh; + } } \ No newline at end of file diff --git a/src/tabviews/zshare/calendar/index.jsx b/src/tabviews/zshare/calendar/index.jsx index 75ffdf7..fa32a93 100644 --- a/src/tabviews/zshare/calendar/index.jsx +++ b/src/tabviews/zshare/calendar/index.jsx @@ -92,8 +92,17 @@ const { calendar } = this.props let datalist = [] - let levels = { red: 1, orange: 2, yellow: 3, green: 4, cyan: 5, blue: 6, purple: 7, gray: 8 } - let colors = { red: '#d0021b', orange: '#f5a623', yellow: '#f8e71c', green: '#7ed321', cyan: '#50e3c2', blue: '#1890ff', purple: '#bd10e0', gray: '#9b9b9b' } + let colors = { + transparent: 'rgba(0, 0, 0, 0)', + red: 'rgba(208, 2, 27, 1)', + orange: 'rgba(245, 166, 35, 1)', + yellow: 'rgba(248, 231, 28, 1)', + green: 'rgba(126, 211, 33, 1)', + cyan: 'rgba(80, 227, 194, 1)', + blue: 'rgba(24, 144, 255, 1)', + purple: 'rgba(189, 16, 224, 1)', + gray: 'rgba(155, 155, 155, 1)' + } data && data.forEach(item => { let startTime = item[calendar.startfield] @@ -107,8 +116,7 @@ let equal = endTime.substr(0, 4) === startTime.substr(0, 4) datalist.push({ - color: colors[color] || '', - level: color && levels[color] ? levels[color] : 100, + color: colors[color] || color, remark: item[calendar.remarkfield], startMonth: startTime.substr(0, 4) + startTime.substr(5, 2), endMonth: endTime.substr(0, 4) + endTime.substr(5, 2), @@ -119,21 +127,6 @@ }) }) - if (datalist.length > 0) { - datalist.sort((a, b) => a.level - b.level) - } - - let styles = [ - {background: '#d0021b', color: '#ffffff'}, - {background: '#f5a623', color: '#ffffff'}, - {background: '#f8e71c', color: '#ffffff'}, - {background: '#7ed321', color: '#ffffff'}, - {background: '#50e3c2', color: '#ffffff'}, - {background: '#1890ff', color: '#ffffff'}, - {background: '#bd10e0', color: '#ffffff'}, - {background: '#9b9b9b', color: '#ffffff'}, - ] - return datelist.map(month => { month.subData = [] datalist.forEach(item => { @@ -141,9 +134,7 @@ month.subData.push(item) } }) - if (month.subData[0]) { - month.style = styles[month.subData[0].level - 1] || null - } + month.style = this.getStyle(month.subData[0]) month.sublist = month.sublist.map(week => { week.sublist = week.sublist.map(day => { if (!day) return null @@ -154,16 +145,29 @@ day.subData.push(item) } }) - - if (day.subData[0]) { - day.style = styles[day.subData[0].level - 1] || null - } + day.style = this.getStyle(day.subData[0]) return day }) return week }) return month }) + } + + getStyle = (item ) => { + if (!item || !item.color) return null + let style = {background: item.color} + + if (/rgb/ig.test(item.color)) { + try { + let colors = item.color.match(/\d+/g) + if ((colors[0] * 0.299 + colors[1] * 0.578 + colors[2] * 0.114) * colors[3] < 192) { + style.color = '#ffffff' + } + } catch {} + } + + return style } getDateList = (selectYear) => { @@ -309,7 +313,7 @@ <tr key={cell.week}> {cell.sublist.map((d, i) => ( <td key={i}> - {d ? <div className={'day-wrap ' + d.class} style={d.style || null} onClick={() => this.triggerDay(d)}> + {d ? <div className="day-wrap" style={d.style || null} onClick={() => this.triggerDay(d)}> {d.subData.length > 0 ? <Popover mouseEnterDelay={0.3} overlayClassName="calendar-day-pop" content={ <div> {d.subData.map((data, index) => ( diff --git a/src/tabviews/zshare/mutilform/index.jsx b/src/tabviews/zshare/mutilform/index.jsx index c0c29d5..5688593 100644 --- a/src/tabviews/zshare/mutilform/index.jsx +++ b/src/tabviews/zshare/mutilform/index.jsx @@ -6,15 +6,17 @@ import Api from '@/api' import options from '@/store/options.js' -import { formRule, calendarColors } from '@/utils/option.js' +import { formRule } from '@/utils/option.js' import Utils from '@/utils/utils.js' -import FileUpload from '../fileupload' import CustomSwitch from './customSwitch' +import asyncComponent from '@/utils/asyncComponent' import CheckCard from './checkCard' import './index.scss' const {MonthPicker} = DatePicker const { TextArea } = Input +const FileUpload = asyncComponent(() => import('../fileupload')) +const ColorSketch = asyncComponent(() => import('@/mob/colorsketch')) class MainSearch extends Component { static propTpyes = { @@ -836,7 +838,7 @@ </Tooltip> : item.label }> {getFieldDecorator(item.field, { - initialValue: item.initval, + initialValue: item.initval || 'transparent', rules: [ { required: item.required === 'true', @@ -844,11 +846,7 @@ } ] })( - <Select disabled={item.readonly === 'true'}> - {calendarColors.map(option => - <Select.Option key={option.name} style={{background: option.value, color: '#ffffff'}} value={option.name}>{option.name}</Select.Option> - )} - </Select> + <ColorSketch /> )} </Form.Item> </Col> diff --git a/src/tabviews/zshare/mutilform/index.scss b/src/tabviews/zshare/mutilform/index.scss index eff2b51..ac212f9 100644 --- a/src/tabviews/zshare/mutilform/index.scss +++ b/src/tabviews/zshare/mutilform/index.scss @@ -74,6 +74,13 @@ text-overflow:ellipsis; white-space:nowrap; } + .color-sketch-block { + margin-top: 7px; + overflow: hidden; + .color-sketch-block-box { + min-width: 100px; + } + } p { color: #1890ff; border-bottom: 1px solid #d9d9d9; diff --git a/src/templates/calendarconfig/index.scss b/src/templates/calendarconfig/index.scss index 1628a90..cdffc0f 100644 --- a/src/templates/calendarconfig/index.scss +++ b/src/templates/calendarconfig/index.scss @@ -15,6 +15,9 @@ height: 100%; overflow-y: hidden; padding-bottom: 30px; + .ant-collapse-borderless { + background-color: #ffffff; + } .ant-collapse-item { position: relative; border: 0; diff --git a/src/templates/comtableconfig/index.scss b/src/templates/comtableconfig/index.scss index a64c17c..a3e3eba 100644 --- a/src/templates/comtableconfig/index.scss +++ b/src/templates/comtableconfig/index.scss @@ -15,6 +15,9 @@ height: 100%; overflow-y: hidden; padding-bottom: 30px; + .ant-collapse-borderless { + background-color: #ffffff; + } .ant-collapse-item { position: relative; border: 0; diff --git a/src/templates/formtabconfig/index.jsx b/src/templates/formtabconfig/index.jsx index 1098f5c..e99bdf9 100644 --- a/src/templates/formtabconfig/index.jsx +++ b/src/templates/formtabconfig/index.jsx @@ -439,7 +439,7 @@ _formfields = [..._formfields, ...group.sublist] }) - _inputfields = _formfields.filter(item => item.type === 'text' || item.type === 'number') + _inputfields = _formfields.filter(item => item.type === 'text' || item.type === 'number' || item.type === 'color') _tabfields = _formfields.filter(item => card.field !== item.field && item.hidden !== 'true' && ['text', 'number', 'select', 'link'].includes(item.type)) _tabfields.unshift({field: '', text: '鍘熻〃鍗�'}) diff --git a/src/templates/formtabconfig/index.scss b/src/templates/formtabconfig/index.scss index dca4801..a05ad70 100644 --- a/src/templates/formtabconfig/index.scss +++ b/src/templates/formtabconfig/index.scss @@ -15,6 +15,9 @@ height: 100%; overflow-y: auto; padding-bottom: 30px; + .ant-collapse-borderless { + background-color: #ffffff; + } .ant-collapse-item { position: relative; border: 0; diff --git a/src/templates/modalconfig/dragelement/card.jsx b/src/templates/modalconfig/dragelement/card.jsx index 6c17b89..8228abe 100644 --- a/src/templates/modalconfig/dragelement/card.jsx +++ b/src/templates/modalconfig/dragelement/card.jsx @@ -4,6 +4,7 @@ import moment from 'moment' import CheckCard from '../checkCard' +import ColorSketch from '@/mob/colorsketch' import './index.scss' const { MonthPicker } = DatePicker @@ -84,8 +85,10 @@ formItem = (<Input style={{marginTop: '4px'}} value={card.initval} />) } else if (card.type === 'number') { formItem = (<InputNumber value={card.initval} precision={card.decimal} />) - } else if (card.type === 'multiselect' || card.type === 'select' || card.type === 'link' || card.type === 'color') { + } else if (card.type === 'multiselect' || card.type === 'select' || card.type === 'link') { formItem = (<Select value={selectval}></Select>) + } else if (card.type === 'color') { + formItem = (<ColorSketch value={card.initval || 'transparent'}/>) } else if (card.type === 'date') { formItem = (<DatePicker value={card.initval ? moment().subtract(card.initval, 'days') : null} />) } else if (card.type === 'datemonth') { diff --git a/src/templates/modalconfig/index.jsx b/src/templates/modalconfig/index.jsx index 7ada148..0b11fa9 100644 --- a/src/templates/modalconfig/index.jsx +++ b/src/templates/modalconfig/index.jsx @@ -276,7 +276,7 @@ _formfields = config.fields } - _inputfields = _formfields.filter(item => item.type === 'text' || item.type === 'number') + _inputfields = _formfields.filter(item => item.type === 'text' || item.type === 'number' || item.type === 'color') _tabfields = _formfields.filter(item => card.field !== item.field && item.hidden !== 'true' && ['text', 'number', 'select', 'link'].includes(item.type)) _tabfields.unshift({field: '', text: '鍘熻〃鍗�'}) diff --git a/src/templates/modalconfig/index.scss b/src/templates/modalconfig/index.scss index a69c04f..8d3e188 100644 --- a/src/templates/modalconfig/index.scss +++ b/src/templates/modalconfig/index.scss @@ -15,6 +15,9 @@ height: 100%; overflow-y: auto; padding-bottom: 30px; + .ant-collapse-borderless { + background-color: #ffffff; + } .ant-collapse-item { border: 0; } @@ -242,6 +245,13 @@ width: 100%; margin-top: 4px; } + .color-sketch-block { + margin-top: 7px; + overflow: hidden; + .color-sketch-block-box { + min-width: 100px; + } + } } .ant-form-item-control-wrapper::after { content: ''; diff --git a/src/templates/subtableconfig/index.scss b/src/templates/subtableconfig/index.scss index d81d245..2012d7c 100644 --- a/src/templates/subtableconfig/index.scss +++ b/src/templates/subtableconfig/index.scss @@ -15,6 +15,9 @@ height: 100%; overflow-y: hidden; padding-bottom: 30px; + .ant-collapse-borderless { + background-color: #ffffff; + } .ant-collapse-item { position: relative; border: 0; diff --git a/src/templates/treepageconfig/index.scss b/src/templates/treepageconfig/index.scss index 8784403..bf89c4a 100644 --- a/src/templates/treepageconfig/index.scss +++ b/src/templates/treepageconfig/index.scss @@ -15,6 +15,9 @@ height: 100%; overflow-y: hidden; padding-bottom: 30px; + .ant-collapse-borderless { + background-color: #ffffff; + } .ant-collapse-item { position: relative; border: 0; diff --git a/src/templates/zshare/modalform/index.jsx b/src/templates/zshare/modalform/index.jsx index b0080fa..25fd8a5 100644 --- a/src/templates/zshare/modalform/index.jsx +++ b/src/templates/zshare/modalform/index.jsx @@ -28,7 +28,7 @@ datemonth: ['initval', 'readonly', 'required', 'hidden', 'readin', 'entireLine', 'tooltip'], datetime: ['initval', 'readonly', 'required', 'hidden', 'readin', 'entireLine', 'tooltip'], textarea: ['initval', 'readonly', 'required', 'hidden', 'readin', 'fieldlength', 'maxRows', 'encryption', 'interception', 'tooltip'], - color: ['readonly', 'required', 'hidden', 'readin', 'entireLine', 'tooltip'], + color: ['initval', 'readonly', 'required', 'hidden', 'readin', 'entireLine', 'tooltip'], hint: ['label', 'type', 'blacklist', 'message'], funcvar: [], linkMain: ['readonly', 'required', 'hidden', 'fieldlength', 'entireLine', 'tooltip'] diff --git a/src/views/login/index.jsx b/src/views/login/index.jsx index 5bcfbb5..464f851 100644 --- a/src/views/login/index.jsx +++ b/src/views/login/index.jsx @@ -298,6 +298,8 @@ webSite: res.WebSite || '' } + sessionStorage.setItem('home_background', res.index_background_color) + // url鏍囬 document.title = systemMsg.platTitle -- Gitblit v1.8.0