From 265102e3b6c9865f0e9f1e035e7b1aba281dc8c1 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期二, 03 十二月 2019 15:33:16 +0800 Subject: [PATCH] 2019-12-03 --- src/views/login/loginform.jsx | 15 +- src/assets/css/minkeicon.css | 6 src/tabviews/datamanage/search/index.scss | 3 src/tabviews/datamanage/table/index.jsx | 2 src/templates/comtableconfig/index.jsx | 22 ++- src/tabviews/datamanage/index.jsx | 6 src/locales/en-US/main.js | 1 src/locales/zh-CN/comtable.js | 2 src/tabviews/commontable/index.jsx | 31 +++++ src/tabviews/commontable/mainTable/index.jsx | 58 +++++++++-- src/tabviews/datamanage/action/index.scss | 4 src/locales/en-US/comtable.js | 2 src/tabviews/commontable/mainSearch/index.scss | 1 src/templates/comtableconfig/actionform/index.jsx | 67 ++++++++++++- public/index.html | 4 src/locales/zh-CN/main.js | 1 src/tabviews/datamanage/search/index.jsx | 2 src/templates/comtableconfig/source.jsx | 12 ++ src/templates/comtableconfig/index.scss | 9 + src/tabviews/datamanage/action/index.jsx | 4 src/views/login/index.scss | 5 package.json | 2 src/tabviews/commontable/mainTable/index.scss | 21 ++++ src/tabviews/datamanage/table/index.scss | 2 src/views/login/index.jsx | 5 25 files changed, 231 insertions(+), 56 deletions(-) diff --git a/package.json b/package.json index 53dddf9..0010623 100644 --- a/package.json +++ b/package.json @@ -158,5 +158,5 @@ ] ] }, - "homepage": "." + "homepage": "./build" } diff --git a/public/index.html b/public/index.html index 3396e4d..94431c0 100644 --- a/public/index.html +++ b/public/index.html @@ -6,9 +6,9 @@ <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta name="theme-color" content="#000000" /> <meta name="description" content="minkesoft" /> - <link rel="apple-touch-icon" href="logo.png" /> <link rel="manifest" href="%PUBLIC_URL%/manifest.json" /> - <script src="./options.js"></script> + <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo.png" /> + <script src="%PUBLIC_URL%/options.js"></script> <title>MinkeSoft</title> </head> <body> diff --git a/src/assets/css/minkeicon.css b/src/assets/css/minkeicon.css index 6754a86..2199fdc 100644 --- a/src/assets/css/minkeicon.css +++ b/src/assets/css/minkeicon.css @@ -2,8 +2,8 @@ font-family: 'anticonicon'; src: url('../font/minkeicon.eot?httt7e'); src: url('../font/minkeicon.eot?httt7e#iefix') format('embedded-opentype'), - url('../font/minkeicon.ttf?httt7e') format('truetype'), - url('../font/minkeicon.woff?httt7e') format('woff'), + /* url('../font/minkeicon.ttf?httt7e') format('truetype'), + url('../font/minkeicon.woff?httt7e') format('woff'), */ url('../font/minkeicon.svg?httt7e#minkeicon') format('svg'); font-weight: normal; font-style: normal; @@ -13,7 +13,7 @@ [class^="anticon-"], [class*=" anticon-"] { /* use !important to prevent issues with browser extensions that change fonts */ font-family: 'anticonicon' !important; - speak: none; + /* speak: none; */ font-style: normal; font-weight: normal; font-variant: normal; diff --git a/src/locales/en-US/comtable.js b/src/locales/en-US/comtable.js index 49ea82b..041f45d 100644 --- a/src/locales/en-US/comtable.js +++ b/src/locales/en-US/comtable.js @@ -70,6 +70,8 @@ 'header.form.popform': '寮圭獥锛堣〃鍗曪級', 'header.form.popview': '寮圭獥锛堥〉闈級', 'header.form.tab': '鏂版爣绛鹃〉', + 'header.form.excelIn': 'Excel瀵煎叆', + 'header.form.excelOut': 'Excel瀵煎嚭', 'header.form.newpage': '鏂伴〉闈�', 'header.form.newpage.inner': '鏂伴〉闈紙鍐呴儴锛�', 'header.form.newpage.outer': '鏂伴〉闈紙澶栭儴锛�', diff --git a/src/locales/en-US/main.js b/src/locales/en-US/main.js index 42097e4..404b8bf 100644 --- a/src/locales/en-US/main.js +++ b/src/locales/en-US/main.js @@ -16,6 +16,7 @@ 'main.action.primarykey.required': 'Primary key not set!', 'main.action.primarykey.repetition': 'There are multiple primary keys!', 'main.action.primarykey.repetitionbid': 'There are multiple BID!', + 'main.column.operation': '鎿嶄綔', 'form.required.input': 'Please input ', 'form.required.select': 'Please select ' } \ No newline at end of file diff --git a/src/locales/zh-CN/comtable.js b/src/locales/zh-CN/comtable.js index 4fa55f7..2a5e95c 100644 --- a/src/locales/zh-CN/comtable.js +++ b/src/locales/zh-CN/comtable.js @@ -70,6 +70,8 @@ 'header.form.popform': '寮圭獥锛堣〃鍗曪級', 'header.form.popview': '寮圭獥锛堥〉闈級', 'header.form.tab': '鏂版爣绛鹃〉', + 'header.form.excelIn': 'Excel瀵煎叆', + 'header.form.excelOut': 'Excel瀵煎嚭', 'header.form.newpage': '鏂伴〉闈�', 'header.form.newpage.inner': '鏂伴〉闈紙鍐呴儴锛�', 'header.form.newpage.outer': '鏂伴〉闈紙澶栭儴锛�', diff --git a/src/locales/zh-CN/main.js b/src/locales/zh-CN/main.js index aa3cd16..d5d3dd5 100644 --- a/src/locales/zh-CN/main.js +++ b/src/locales/zh-CN/main.js @@ -17,6 +17,7 @@ 'main.action.primarykey.required': '鏈缃富閿紒', 'main.action.primarykey.repetition': '瀛樺湪澶氫釜涓婚敭锛�', 'main.action.primarykey.repetitionbid': '瀛樺湪澶氫釜BID锛�', + 'main.column.operation': '鎿嶄綔', 'form.required.input': '璇疯緭鍏�', 'form.required.select': '璇烽�夋嫨' } \ No newline at end of file diff --git a/src/tabviews/commontable/index.jsx b/src/tabviews/commontable/index.jsx index f20d6af..d092828 100644 --- a/src/tabviews/commontable/index.jsx +++ b/src/tabviews/commontable/index.jsx @@ -102,11 +102,27 @@ } }) + let _actions = config.action.filter(item => item.position === 'toolbar') + let _operation = config.action.filter(item => item.position === 'grid') + + if (_operation.length > 0) { + _columns.push({ + Align: 'center', + uuid: Utils.getuuid(), + IsSort: 'false', + Width: 120, + type: 'operation', + style: 'button', + label: this.state.dict['main.column.operation'], + operations: _operation + }) + } + this.setState({ config: config, setting: config.setting, searchlist: config.search, - actions: config.action, + actions: _actions, columns: _columns, arr_field: _arrField.join(','), search: _search ? 'where (' + _search + ')' : '', @@ -210,8 +226,7 @@ let LText = `select top ${pageSize} ${arr_field} from (select ${arr_field} ,ROW_NUMBER() over(order by ${orderColumn} ${orderType}) as rows from ${setting.dataresource} ${search}) tmptable where rows > ${pageSize * (pageIndex - 1)} order by tmptable.rows` let DateCount = `select count(1) as total from ${setting.dataresource} ${search}` - console.log(LText) - console.log(DateCount) + param.LText = Utils.formatOptions(LText) param.DateCount = Utils.formatOptions(DateCount) let result = await Api.genericInterface(param) @@ -226,6 +241,16 @@ }) } else { this.setState({ + data: [1,2,3,4,5,6,7,8,9,10].map((item, index) => { + let cell = {} + this.state.config.columns.forEach(column => { + if (!column.field) return + cell[column.field] = 'test' + item + }) + cell.key = index + return cell + }), + total: 329, loading: false }) notification.error({ diff --git a/src/tabviews/commontable/mainSearch/index.scss b/src/tabviews/commontable/mainSearch/index.scss index d3c9e05..703756e 100644 --- a/src/tabviews/commontable/mainSearch/index.scss +++ b/src/tabviews/commontable/mainSearch/index.scss @@ -10,6 +10,7 @@ } .ant-form-item-label { width: 100px; + text-overflow: ellipsis; } .daterange .ant-calendar-picker-input { padding: 4px 20px 4px 5px; diff --git a/src/tabviews/commontable/mainTable/index.jsx b/src/tabviews/commontable/mainTable/index.jsx index 92f7b68..b17fb94 100644 --- a/src/tabviews/commontable/mainTable/index.jsx +++ b/src/tabviews/commontable/mainTable/index.jsx @@ -1,7 +1,7 @@ import React, {Component} from 'react' import PropTypes from 'prop-types' // import { is, fromJS } from 'immutable' -import { Table, message, Affix } from 'antd' +import { Table, message, Affix, Button } from 'antd' import './index.scss' export default class MainTable extends Component { @@ -38,15 +38,16 @@ sorter: item.field && item.IsSort === 'true', width: item.Width || 120, render: (text, record) => { - let content = '' - if (item.field) { - content = record[item.field] || '' - } - return ( - <div className="content" style={{ minWidth: (item.Width || 120) + 'px' }}> - {content} - </div> - ) + return this.getContent(item, record) + // let content = '' + // if (item.field) { + // content = record[item.field] || '' + // } + // return ( + // <div className="content" style={{ minWidth: (item.Width || 120) + 'px' }}> + // {content} + // </div> + // ) } } _columns.push(cell) @@ -56,6 +57,43 @@ this.setState({columns: _columns}) } + getContent = (item, record) => { + if (item.type === 'operation') { + return ( + <div className={item.style} style={{ minWidth: (item.Width || 120) + 'px' }}> + {item.operations.map(btn => { + return <Button + className={'mk-btn mk-' + btn.class} + icon={btn.icon} + key={btn.uuid} + onClick={(e) => {this.actionTrigger(e, btn, record)}} + >{btn.label}</Button> + })} + </div> + ) + } else { + let content = '' + if (item.field) { + content = record[item.field] || '' + } + return ( + // <div className="content" style={{ minWidth: (item.Width || 120) + 'px' }}> + <div> + <div className={'background'}></div> + <div className="content" style={{ minWidth: (item.Width || 120) + 'px' }}> + {content} + </div> + </div> + ) + } + } + + actionTrigger = (e, btn, record) => { + e.stopPropagation() + console.log(btn) + console.log(record) + } + copycontent = (e, content) => { // 琛ㄦ牸涓唴瀹瑰鍒� e.stopPropagation() diff --git a/src/tabviews/commontable/mainTable/index.scss b/src/tabviews/commontable/mainTable/index.scss index 2556ca0..510e56b 100644 --- a/src/tabviews/commontable/mainTable/index.scss +++ b/src/tabviews/commontable/mainTable/index.scss @@ -11,6 +11,14 @@ min-width: 60px; max-width: 60px; } + // .ant-table-tbody > tr td:not(.ant-table-selection-column) { + // padding: 0!important; + // } + // .ant-table-tbody > tr td .content { + // padding: 12px 8px; + // height: 100%; + // background: lightblue; + // } .ant-table-tbody > tr.ant-table-row-selected td { background-color: #c4ebfd; } @@ -34,7 +42,20 @@ border-right: 0; } .ant-table-tbody > tr > td.ant-table-column-has-actions { + position: relative; + .background { + position: absolute; + top: 0px; + left: 0px; + right: 0px; + bottom: 0px; + } + .background.lightblue { + background: lightblue; + } .content { + position: relative; + z-index: 1; word-wrap: break-word; word-break: break-word; } diff --git a/src/tabviews/datamanage/modules/action/index.jsx b/src/tabviews/datamanage/action/index.jsx similarity index 98% rename from src/tabviews/datamanage/modules/action/index.jsx rename to src/tabviews/datamanage/action/index.jsx index 83dfd8f..871db03 100644 --- a/src/tabviews/datamanage/modules/action/index.jsx +++ b/src/tabviews/datamanage/action/index.jsx @@ -313,7 +313,7 @@ } return ( <Modal - wrapClassName='action-modal' + wrapClassName='datamanage-action-modal' title={this.state.execAction.MenuName || ''} visible={this.state.visible} width={document.body.clientWidth * this.state.execAction.PopWidth} @@ -401,7 +401,7 @@ render() { return ( <Affix offsetTop={48}> - <div className="button-list" id={this.props.MenuNo + 'mainaction'}> + <div className="datamanage-button-list" id={this.props.MenuNo + 'mainaction'}> {this.props.actions.map((item, index) => { return ( <Button diff --git a/src/tabviews/datamanage/modules/action/index.scss b/src/tabviews/datamanage/action/index.scss similarity index 94% rename from src/tabviews/datamanage/modules/action/index.scss rename to src/tabviews/datamanage/action/index.scss index d5333a3..e57aa6f 100644 --- a/src/tabviews/datamanage/modules/action/index.scss +++ b/src/tabviews/datamanage/action/index.scss @@ -1,4 +1,4 @@ -.button-list { +.datamanage-button-list { padding: 10px 20px 5px; background: #ffffff; button { @@ -10,7 +10,7 @@ } } // 璁剧疆妯℃�佹鏍峰紡锛岃瀹氭渶澶ф渶灏忛珮搴︼紝閲嶇疆婊氬姩鏉� -.action-modal { +.datamanage-action-modal { .ant-modal { max-width: 95vw; } diff --git a/src/tabviews/datamanage/index.jsx b/src/tabviews/datamanage/index.jsx index dea5447..49bdb4b 100644 --- a/src/tabviews/datamanage/index.jsx +++ b/src/tabviews/datamanage/index.jsx @@ -6,9 +6,9 @@ import MutilForm from '@/components/mutilform' import {refreshTabView} from '@/store/action' import Api from '@/api' -import DataSearch from './modules/search' -import DataAction from './modules/action' -import DataTable from './modules/table' +import DataSearch from './search' +import DataAction from './action' +import DataTable from './table' import Loading from '@/components/loading' import zhCN from '@/locales/zh-CN/main.js' import enUS from '@/locales/en-US/main.js' diff --git a/src/tabviews/datamanage/modules/search/index.jsx b/src/tabviews/datamanage/search/index.jsx similarity index 98% rename from src/tabviews/datamanage/modules/search/index.jsx rename to src/tabviews/datamanage/search/index.jsx index ca0d657..138ad05 100644 --- a/src/tabviews/datamanage/modules/search/index.jsx +++ b/src/tabviews/datamanage/search/index.jsx @@ -186,7 +186,7 @@ render() { return ( - <Form className="ant-advanced-search-form main-search" onSubmit={this.handleSearch}> + <Form className="ant-advanced-search-form datamanage-search" onSubmit={this.handleSearch}> <Row gutter={24}>{this.getFields()}</Row> </Form> ) diff --git a/src/tabviews/datamanage/modules/search/index.scss b/src/tabviews/datamanage/search/index.scss similarity index 75% rename from src/tabviews/datamanage/modules/search/index.scss rename to src/tabviews/datamanage/search/index.scss index 34418e4..91cf85c 100644 --- a/src/tabviews/datamanage/modules/search/index.scss +++ b/src/tabviews/datamanage/search/index.scss @@ -1,4 +1,4 @@ -.ant-advanced-search-form.main-search { +.ant-advanced-search-form.datamanage-search { padding: 0px 24px 20px; border-bottom: 1px solid #d9d9d9; .ant-form-item { @@ -10,5 +10,6 @@ } .ant-form-item-label { width: 100px; + text-overflow: ellipsis; } } \ No newline at end of file diff --git a/src/tabviews/datamanage/modules/table/index.jsx b/src/tabviews/datamanage/table/index.jsx similarity index 98% rename from src/tabviews/datamanage/modules/table/index.jsx rename to src/tabviews/datamanage/table/index.jsx index ff79406..b49715f 100644 --- a/src/tabviews/datamanage/modules/table/index.jsx +++ b/src/tabviews/datamanage/table/index.jsx @@ -117,7 +117,7 @@ } } return ( - <div className="main-table"> + <div className="datamanage-table"> {this.state.fixed && <Affix offsetTop={105} className="fix-header"> <Table bordered={true} diff --git a/src/tabviews/datamanage/modules/table/index.scss b/src/tabviews/datamanage/table/index.scss similarity index 98% rename from src/tabviews/datamanage/modules/table/index.scss rename to src/tabviews/datamanage/table/index.scss index 39babb8..17d535f 100644 --- a/src/tabviews/datamanage/modules/table/index.scss +++ b/src/tabviews/datamanage/table/index.scss @@ -1,4 +1,4 @@ -.main-table { +.datamanage-table { padding: 0 20px 110px; table { max-width: 100%; diff --git a/src/templates/comtableconfig/actionform/index.jsx b/src/templates/comtableconfig/actionform/index.jsx index c9c3d81..3ab322e 100644 --- a/src/templates/comtableconfig/actionform/index.jsx +++ b/src/templates/comtableconfig/actionform/index.jsx @@ -68,6 +68,7 @@ formlist: null, openType: null, interType: null, + position: null, reqOptionSgl: [{ MenuID: 'requiredSgl', text: this.props.dict['header.form.requiredSgl'] @@ -91,13 +92,21 @@ }, { MenuID: 'requiredOnce', text: this.props.dict['header.form.requiredOnce'] - }] + }], + // [{ + // MenuID: 'toolbar', + // text: this.state.dict['header.form.toolbar'] + // }, { + // MenuID: 'grid', + // text: this.state.dict['header.form.grid'] + // }] } UNSAFE_componentWillMount () { let _opentype = this.props.formlist.filter(form => form.key === 'OpenType')[0].initVal let _intertype = this.props.formlist.filter(form => form.key === 'intertype')[0].initVal + let _position = this.props.formlist.filter(form => form.key === 'position')[0].initVal let _options = null if (_opentype === 'innerpage') { // 鏂伴〉闈紙鍐呴儴锛夛紝鍙�夋ā鏉� _options = ['label', 'Ot', 'OpenType', 'pageTemplate', 'icon', 'class', 'position'] @@ -105,9 +114,15 @@ _options = ['label', 'Ot', 'OpenType', 'url', 'icon', 'class', 'position'] } else if (_opentype === 'blank' || _opentype === 'tab' || _opentype === 'popview') { _options = ['label', 'Ot', 'OpenType', 'icon', 'class', 'position'] + } else if (_opentype === 'excelIn' || _opentype === 'excelOut') { + if (_intertype === 'outer') { + _options = ['label', 'OpenType', 'intertype', 'innerFunc', 'interface', 'outerFunc', 'callbackFunc', 'icon', 'class', 'execSuccess', 'execError', 'method'] + } else { + _options = ['label', 'OpenType', 'intertype', 'innerFunc', 'icon', 'class', 'execSuccess', 'execError', 'sql'] + } } else { if (_intertype === 'outer') { - _options = ['label', 'position', 'OpenType', 'intertype', 'innerFunc', 'interface', 'outerFunc', 'callbackFunc', 'Ot', 'icon', 'class', 'execSuccess', 'execError', 'method'] + _options = ['label', 'position', 'OpenType', 'intertype', 'innerFunc', 'interface', 'outerFunc', 'callbackFunc', 'Ot', 'icon', 'class', 'execSuccess', 'execError', 'method'] } else { _options = ['label', 'position', 'OpenType', 'intertype', 'innerFunc', 'Ot', 'icon', 'class', 'execSuccess', 'execError', 'sql'] } @@ -115,13 +130,14 @@ this.setState({ openType: _opentype, interType: _intertype, + position: _position, formlist: this.props.formlist.map(item => { if (item.key === 'class') { item.options = btnClasses } else if (item.key === 'icon') { item.options = btnIcons } else if (item.key === 'Ot') { - if (_opentype === 'innerpage') { + if (_opentype === 'innerpage' || _position === 'grid') { item.options = this.state.reqOptionSgl } else if (['outerpage', 'blank', 'tab', 'pop', 'popview'].includes(_opentype)) { item.options = this.state.reqOptions @@ -135,6 +151,7 @@ }) } + // 鎵撳紑鏂瑰紡鎴栨樉绀轰綅缃彉鍖� openTypeChange = (key, value) => { if (key === 'OpenType') { let _options = null @@ -144,6 +161,12 @@ _options = ['label', 'Ot', 'OpenType', 'url', 'icon', 'class', 'position'] } else if (value === 'blank' || value === 'tab' || value === 'popview') { _options = ['label', 'Ot', 'OpenType', 'icon', 'class', 'position'] + } else if (value === 'excelIn' || value === 'excelOut') { + if (this.state.interType === 'outer') { + _options = ['label', 'OpenType', 'intertype', 'innerFunc', 'interface', 'outerFunc', 'callbackFunc', 'icon', 'class', 'execSuccess', 'execError', 'method'] + } else { + _options = ['label', 'OpenType', 'intertype', 'innerFunc', 'icon', 'class', 'execSuccess', 'execError', 'sql'] + } } else { if (this.state.interType === 'inner') { _options = ['label', 'position', 'OpenType', 'intertype', 'innerFunc', 'Ot', 'icon', 'class', 'execSuccess', 'execError', 'sql'] @@ -161,7 +184,7 @@ } } if (item.key === 'Ot') { - if (value === 'innerpage') { + if (value === 'innerpage' || this.state.position === 'grid') { item.options = this.state.reqOptionSgl item.initVal = 'requiredSgl' item.hidden = true @@ -176,8 +199,37 @@ return item }) }, () => { - if (!['innerpage', 'outerpage', 'blank', 'tab', 'pop', 'popview'].includes(value)) return + if (['excelIn', 'excelOut'].includes(value)) return + this.setState({ + formlist: this.state.formlist.map(item => { + if (item.key === 'Ot') { + item.hidden = false + } + return item + }) + }) + }) + } else if (key === 'position') { + this.setState({ + position: value, + formlist: this.state.formlist.map(item => { + if (item.key === 'Ot') { + if (this.state.openType === 'innerpage' || value === 'grid') { + item.options = this.state.reqOptionSgl + item.initVal = 'requiredSgl' + item.hidden = true + } else if (['outerpage', 'blank', 'tab', 'pop', 'popview'].includes(this.state.openType)) { + item.options = this.state.reqOptions + item.initVal = 'requiredSgl' + item.hidden = true + } else { + item.options = this.state.reqOptionsMutil + } + } + return item + }) + }, () => { this.setState({ formlist: this.state.formlist.map(item => { if (item.key === 'Ot') { @@ -309,6 +361,11 @@ values.id = this.props.card.id values.uuid = this.props.card.uuid + if (values.OpenType === 'excelIn' || values.OpenType === 'excelOut') { + values.position = 'toolbar' + values.Ot = 'notRequired' + } + if (values.innerFunc === '' && values.sql === '') { notification.warning({ top: 92, diff --git a/src/templates/comtableconfig/index.jsx b/src/templates/comtableconfig/index.jsx index b4c1cd9..97e9a88 100644 --- a/src/templates/comtableconfig/index.jsx +++ b/src/templates/comtableconfig/index.jsx @@ -479,6 +479,12 @@ MenuID: 'tab', text: this.state.dict['header.form.tab'] }, { + MenuID: 'excelIn', + text: this.state.dict['header.form.excelIn'] + }, { + MenuID: 'excelOut', + text: this.state.dict['header.form.excelOut'] + }, { MenuID: 'blank', text: this.state.dict['header.form.blank'] }, { @@ -543,14 +549,6 @@ readonly: false }, { - type: 'select', - key: 'Ot', - label: this.state.dict['header.form.isRequired'], - initVal: card.Ot || 'requiredSgl', - required: true, - options: [] - }, - { type: 'text', key: 'callbackFunc', label: this.state.dict['header.form.callbackFunc'], @@ -574,6 +572,14 @@ }, { type: 'select', + key: 'Ot', + label: this.state.dict['header.form.isRequired'], + initVal: card.Ot || 'requiredSgl', + required: true, + options: [] + }, + { + type: 'select', key: 'execSuccess', label: this.state.dict['header.form.execSuccess'], initVal: card.execSuccess || 'never', diff --git a/src/templates/comtableconfig/index.scss b/src/templates/comtableconfig/index.scss index f2e117c..c7a4b83 100644 --- a/src/templates/comtableconfig/index.scss +++ b/src/templates/comtableconfig/index.scss @@ -13,7 +13,8 @@ background: #ffffff; border-right: 1px solid #d9d9d9; height: 100%; - overflow-y: auto; + overflow-y: hidden; + // overflow-y: auto; padding-bottom: 30px; .ant-collapse-item { position: relative; @@ -28,6 +29,8 @@ .ant-collapse-header { padding: 11px 16px 10px 40px; border-bottom: 1px solid #d9d9d9; + background: #1890ff; + color: #ffffff; } .ant-collapse-content-box { .ant-form-item { @@ -85,7 +88,9 @@ } } } - + .tools:hover { + overflow-y: auto; + } .tools::-webkit-scrollbar { width: 7px; } diff --git a/src/templates/comtableconfig/source.jsx b/src/templates/comtableconfig/source.jsx index 16c294a..edd1705 100644 --- a/src/templates/comtableconfig/source.jsx +++ b/src/templates/comtableconfig/source.jsx @@ -283,6 +283,18 @@ }, { type: 'action', + label: CommonDict['header.form.excelIn'], + subType: 'excelIn', + url: '' + }, + { + type: 'action', + label: CommonDict['header.form.excelOut'], + subType: 'excelOut', + url: '' + }, + { + type: 'action', label: CommonDict['header.form.blank'], subType: 'blank', url: '' diff --git a/src/views/login/index.jsx b/src/views/login/index.jsx index d2a148c..b1cbfa0 100644 --- a/src/views/login/index.jsx +++ b/src/views/login/index.jsx @@ -8,7 +8,8 @@ import options from '@/store/options.js' import Utils from '@/utils/utils.js' import asyncComponent from '@/utils/asyncComponent' -import logourl from '../../assets/img/login-logo.png' +import logourl from '@/assets/img/login-logo.png' +import loginbg from '@/assets/img/loginbg.jpg' import './index.scss' const LoginForm = asyncComponent(() => import('./loginform')) @@ -122,7 +123,7 @@ <div className="logo"> <img src={logourl} alt=""/> </div> - <div className="login-middle"> + <div className="login-middle" style={{background: 'url(' + loginbg + ')'}}> <LoginForm dict={this.state.dict} auth={this.state.auth} diff --git a/src/views/login/index.scss b/src/views/login/index.scss index 2ea7d07..70a4965 100644 --- a/src/views/login/index.scss +++ b/src/views/login/index.scss @@ -13,7 +13,7 @@ .login-middle { height: calc(100vh - 194px); min-height: 420px; - background: url('../../assets/img/loginbg.jpg'); + // background: url('../../assets/img/loginbg.jpg'); background-size: cover; background-position: center center; border-bottom: 2px solid #06b4f7; @@ -85,6 +85,9 @@ .ant-btn { font-size: 18px; } + .anticon-eye { + color: #1890ff; + } } } .login-bottom { diff --git a/src/views/login/loginform.jsx b/src/views/login/loginform.jsx index b3398ca..8dea33d 100644 --- a/src/views/login/loginform.jsx +++ b/src/views/login/loginform.jsx @@ -76,15 +76,14 @@ </Form.Item> <Form.Item> {getFieldDecorator('password', { - rules: [{ required: true, message: this.props.dict['login.password.empty'] }], initialValue: localStorage.getItem('password') || '', - })( - <Input - prefix={<Icon type="lock" style={{ color: 'rgba(0,0,0,.25)' }} />} - type="password" - placeholder={this.props.dict['login.password']} - />, - )} + rules: [ + { + required: true, + message: this.props.dict['login.password.empty'], + } + ] + })(<Input.Password placeholder={this.props.dict['login.password']} prefix={<Icon type="lock" style={{ color: 'rgba(0,0,0,.25)' }} />} />)} </Form.Item> <Form.Item className="minline"> {getFieldDecorator('remember', { -- Gitblit v1.8.0