diff --git a/Api/Ewide.Core/Manager/UserManager.cs b/Api/Ewide.Core/Manager/UserManager.cs index a2ec008..c596181 100644 --- a/Api/Ewide.Core/Manager/UserManager.cs +++ b/Api/Ewide.Core/Manager/UserManager.cs @@ -202,7 +202,7 @@ namespace Ewide.Core .Select(u => u.Permission).ToListAsync(); #if DEBUG #else - await _sysCacheService.SetPermission(userId, permissions); // 缓存结果 + await _sysCacheService.SetPermission(UserId, permissions); // 缓存结果 #endif } return permissions; diff --git a/web-react/.env b/web-react/.env new file mode 100644 index 0000000..4f79a0f --- /dev/null +++ b/web-react/.env @@ -0,0 +1 @@ +GENERATE_SOURCEMAP=false \ No newline at end of file diff --git a/web-react/craco.config.js b/web-react/craco.config.js index 0b2c146..e240718 100644 --- a/web-react/craco.config.js +++ b/web-react/craco.config.js @@ -29,7 +29,7 @@ module.exports = { ], webpack: { plugins: [ - //new MonacoWebpackPlugin() + new MonacoWebpackPlugin() ] - } + }, } \ No newline at end of file diff --git a/web-react/src/assets/style/dark/extend.less b/web-react/src/assets/style/dark/extend.less index 9bdd94f..7f3c2c9 100644 --- a/web-react/src/assets/style/dark/extend.less +++ b/web-react/src/assets/style/dark/extend.less @@ -4,3 +4,8 @@ body { line-height: 1.42857143; } +#root { + transition: @animation-duration-slow opacity; + + opacity: 1 !important; +} diff --git a/web-react/src/assets/style/dark/lib/card.less b/web-react/src/assets/style/dark/lib/card.less index 7ae210e..6fdc1e2 100644 --- a/web-react/src/assets/style/dark/lib/card.less +++ b/web-react/src/assets/style/dark/lib/card.less @@ -2,3 +2,13 @@ .ant-card { margin-bottom: @padding-md; } +.ant-card-grid-hoverable { + &:hover { + box-shadow: 1px 0 0 0 #303030, + 0 1px 0 0 #303030, + 1px 1px 0 0 #303030, + 1px 0 0 0 #303030 inset, + 0 1px 0 0 #303030 inset, + @card-shadow; + } +} diff --git a/web-react/src/assets/style/dark/lib/table.less b/web-react/src/assets/style/dark/lib/table.less index 684a4ea..72993b8 100644 --- a/web-react/src/assets/style/dark/lib/table.less +++ b/web-react/src/assets/style/dark/lib/table.less @@ -75,6 +75,9 @@ .ant-table-sticky-scroll { display: none; } +.ant-table-expanded-row>td { + border-right: @border-width-base @border-style-base @table-border-color !important; +} .yo-table { .ant-table { margin: 0 !important; @@ -196,11 +199,13 @@ } } .ant-table-tbody { - >.ant-table-expanded-row-level-1>td { + >.ant-table-expanded-row>td { padding: 0; border-right: none !important; .ant-table-wrapper { + margin-bottom: -1px; + border: none; .ant-table { margin: 0 !important; @@ -215,20 +220,17 @@ padding-left: @padding-md; } } - .ant-table-expanded-row-level-1>td { - padding: @padding-sm @padding-xs @padding-sm @padding-xl; - - border-right: @border-width-base @border-style-base @table-border-color !important; - .ant-card { - max-width: fit-content; - margin-bottom: 0; - - background: none; - .ant-card-grid { - width: 300px; - padding: @padding-xs @padding-sm; - - background-color: @card-background; + .ant-table-tbody { + >tr { + &:last-child { + >td { + border-bottom: @border-width-base @border-style-base @table-border-color; + } + &:hover { + >td { + border-bottom-color: lighten(@primary-color, 30%); + } + } } } } @@ -237,4 +239,17 @@ } } } + .ant-card { + max-width: fit-content; + margin: @padding-sm @padding-xs @padding-sm @padding-xl; + + background: none; + .ant-card-grid { + width: 300px; + height: 90px; + padding: @padding-xs @padding-sm; + + background-color: @card-background; + } + } } diff --git a/web-react/src/assets/style/dark/main.less b/web-react/src/assets/style/dark/main.less index 1060b2f..c6ea34e 100644 --- a/web-react/src/assets/style/dark/main.less +++ b/web-react/src/assets/style/dark/main.less @@ -688,3 +688,10 @@ padding: 0; } } +.yo-popover-infinite-scroll { + .ant-popover-inner-content { + overflow-y: auto; + + max-height: 300px; + } +} diff --git a/web-react/src/assets/style/dark/public.less b/web-react/src/assets/style/dark/public.less index 16a4aed..ee4716d 100644 --- a/web-react/src/assets/style/dark/public.less +++ b/web-react/src/assets/style/dark/public.less @@ -35,7 +35,7 @@ } } a.link-gray { - color: fade(@black, 50%); + color: fade(@white, 50%); &:hover { color: @link-hover-color; } diff --git a/web-react/src/assets/style/default/extend.less b/web-react/src/assets/style/default/extend.less index 07ee081..4b038cc 100644 --- a/web-react/src/assets/style/default/extend.less +++ b/web-react/src/assets/style/default/extend.less @@ -4,3 +4,8 @@ body { line-height: 1.42857143; } +#root { + transition: @animation-duration-slow opacity; + + opacity: 1 !important; +} diff --git a/web-react/src/assets/style/default/lib/table.less b/web-react/src/assets/style/default/lib/table.less index 48fbda4..72993b8 100644 --- a/web-react/src/assets/style/default/lib/table.less +++ b/web-react/src/assets/style/default/lib/table.less @@ -75,6 +75,9 @@ .ant-table-sticky-scroll { display: none; } +.ant-table-expanded-row>td { + border-right: @border-width-base @border-style-base @table-border-color !important; +} .yo-table { .ant-table { margin: 0 !important; @@ -196,11 +199,13 @@ } } .ant-table-tbody { - >.ant-table-expanded-row-level-1>td { + >.ant-table-expanded-row>td { padding: 0; border-right: none !important; .ant-table-wrapper { + margin-bottom: -1px; + border: none; .ant-table { margin: 0 !important; @@ -215,20 +220,17 @@ padding-left: @padding-md; } } - .ant-table-expanded-row-level-1>td { - padding: @padding-sm @padding-xs @padding-sm @padding-xl; - - border-right: @border-width-base @border-style-base @table-border-color !important; - .ant-card { - max-width: fit-content; - margin-bottom: 0; - - background: none; - .ant-card-grid { - width: 300px; - padding: @padding-xs @padding-sm; - - background-color: @card-background; + .ant-table-tbody { + >tr { + &:last-child { + >td { + border-bottom: @border-width-base @border-style-base @table-border-color; + } + &:hover { + >td { + border-bottom-color: lighten(@primary-color, 30%); + } + } } } } @@ -237,4 +239,17 @@ } } } + .ant-card { + max-width: fit-content; + margin: @padding-sm @padding-xs @padding-sm @padding-xl; + + background: none; + .ant-card-grid { + width: 300px; + height: 90px; + padding: @padding-xs @padding-sm; + + background-color: @card-background; + } + } } diff --git a/web-react/src/assets/style/default/main.less b/web-react/src/assets/style/default/main.less index 8f1100f..68cd631 100644 --- a/web-react/src/assets/style/default/main.less +++ b/web-react/src/assets/style/default/main.less @@ -682,3 +682,10 @@ padding: 0; } } +.yo-popover-infinite-scroll { + .ant-popover-inner-content { + overflow-y: auto; + + max-height: 300px; + } +} diff --git a/web-react/src/index.js b/web-react/src/index.js index f63c526..2d346e4 100644 --- a/web-react/src/index.js +++ b/web-react/src/index.js @@ -14,34 +14,41 @@ const SETTING = JSON.parse(window.localStorage.getItem(SETTING_KEY)) || { theme: 'default' }; +let imp + if (SETTING.theme === 'dark') { - require('./assets/style/dark/index.less') + imp = import('./assets/style/dark/index.less') } else { - require('./assets/style/default/index.less') + imp = import('./assets/style/default/index.less') } moment.locale('zh-cn') // -ReactDOM.render( - ( -
- -

暂无数据

-
- ) - } - > - -
, - document.getElementById('root') -); +const root = document.getElementById('root') +root.style.opacity = 0 -// If you want to start measuring performance in your app, pass a function -// to log results (for example: reportWebVitals(console.log)) -// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals -reportWebVitals(); \ No newline at end of file +imp.then(() => { + ReactDOM.render( + ( +
+ +

暂无数据

+
+ ) + } + > + +
, + root + ); + + // If you want to start measuring performance in your app, pass a function + // to log results (for example: reportWebVitals(console.log)) + // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals + reportWebVitals(); +}) \ No newline at end of file diff --git a/web-react/src/pages/business/house/info/form/index.jsx b/web-react/src/pages/business/house/info/form/index.jsx index 5a2363d..1bf327c 100644 --- a/web-react/src/pages/business/house/info/form/index.jsx +++ b/web-react/src/pages/business/house/info/form/index.jsx @@ -1,6 +1,6 @@ import React, { Component } from 'react' import { Form, Button, Input, Descriptions, message as Message, Modal, Spin, Tabs } from 'antd' -import { merge, isEqual } from 'lodash' +import { merge, isEqual, pickBy } from 'lodash' import { AntIcon, ComponentDynamic, Container } from 'components' import { api } from 'common/api' @@ -90,6 +90,10 @@ export default class index extends Component { const { taskId } = this.props.param if (taskId) { api.houseInfoGetByTaskId({ taskId }).then(({ data }) => { + // 删除空节点 + for (const key in data) { + data[key] = pickBy(data[key], p => p !== null && p !== undefined) + } this.setState({ taskStatus: data.patrolInfo.status, record: data, @@ -168,7 +172,6 @@ export default class index extends Component { this.formData.patrolInfo.id = this.props.param.taskId } - console.log(this.formData) this.setState({ saving: true }) if (action) { diff --git a/web-react/src/pages/system/dict/dictdata/form.jsx b/web-react/src/pages/system/dict/dictdata/form.jsx index 50ce9d7..764cd99 100644 --- a/web-react/src/pages/system/dict/dictdata/form.jsx +++ b/web-react/src/pages/system/dict/dictdata/form.jsx @@ -3,6 +3,9 @@ import { Form, message as Message, Spin } from 'antd' import { AntIcon } from 'components' import { cloneDeep } from 'lodash' import MonacoEditor from 'react-monaco-editor' +import store from 'store' + +const { getState } = store const initialValues = {} @@ -10,6 +13,7 @@ export default class form extends Component { state = { // 加载状态 loading: true, + ...getState('layout'), } // 表单实例 @@ -83,6 +87,8 @@ export default class form extends Component { //#endregion render() { + const { theme } = this.state + return (
}> @@ -90,7 +96,7 @@ export default class form extends Component { this.onInfiniteOnLoad(pageIndex)} hasMore={!loading && hasMore} useWindow={false} - threshold={100} + threshold={50} > } title={ - this.onOpenDetail(item.id)} - > - {item.title} - + <> + this.onOpenDetail(item.id)}> + {item.title} + + + {moment(item.createdTime || item.publicTime).fromNow()} + + } - description={moment(item.createdTime || item.publicTime).fromNow()} />
{item.content}
@@ -98,6 +99,11 @@ export default class notice extends Component { )}
+ {!hasMore && ( + + )} ) } @@ -110,8 +116,9 @@ export default class notice extends Component { arrowPointAtCenter={true} placement="bottomRight" content={this.renderList()} - overlayInnerStyle={{ width: 300, maxHeight: 300, overflowY: 'auto' }} + overlayInnerStyle={{ width: 300 }} overlayStyle={{ zIndex: 999 }} + overlayClassName="yo-popover-infinite-scroll" >