This commit is contained in:
2021-07-02 15:43:49 +08:00
15 changed files with 157 additions and 69 deletions

View File

@@ -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;

1
web-react/.env Normal file
View File

@@ -0,0 +1 @@
GENERATE_SOURCEMAP=false

View File

@@ -29,7 +29,7 @@ module.exports = {
],
webpack: {
plugins: [
//new MonacoWebpackPlugin()
new MonacoWebpackPlugin()
]
}
},
}

View File

@@ -4,3 +4,8 @@
body {
line-height: 1.42857143;
}
#root {
transition: @animation-duration-slow opacity;
opacity: 1 !important;
}

View File

@@ -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;
}
}

View File

@@ -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,26 +220,36 @@
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-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%);
}
}
}
}
}
}
}
}
}
}
.ant-card {
max-width: fit-content;
margin-bottom: 0;
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;
}
}
}
}
}
}
}
}
}

View File

@@ -688,3 +688,10 @@
padding: 0;
}
}
.yo-popover-infinite-scroll {
.ant-popover-inner-content {
overflow-y: auto;
max-height: 300px;
}
}

View File

@@ -35,7 +35,7 @@
}
}
a.link-gray {
color: fade(@black, 50%);
color: fade(@white, 50%);
&:hover {
color: @link-hover-color;
}

View File

@@ -4,3 +4,8 @@
body {
line-height: 1.42857143;
}
#root {
transition: @animation-duration-slow opacity;
opacity: 1 !important;
}

View File

@@ -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,26 +220,36 @@
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-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%);
}
}
}
}
}
}
}
}
}
}
.ant-card {
max-width: fit-content;
margin-bottom: 0;
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;
}
}
}
}
}
}
}
}
}

View File

@@ -682,3 +682,10 @@
padding: 0;
}
}
.yo-popover-infinite-scroll {
.ant-popover-inner-content {
overflow-y: auto;
max-height: 300px;
}
}

View File

@@ -14,16 +14,22 @@ 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')
//<React.StrictMode></React.StrictMode>
const root = document.getElementById('root')
root.style.opacity = 0
imp.then(() => {
ReactDOM.render(
<ConfigProvider
locale={zhCN}
@@ -38,10 +44,11 @@ ReactDOM.render(
>
<Router />
</ConfigProvider>,
document.getElementById('root')
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();
})

View File

@@ -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) {

View File

@@ -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 (
<Form initialValues={initialValues} ref={this.form} className="yo-form">
<Spin spinning={this.state.loading} indicator={<AntIcon type="loading" />}>
@@ -90,7 +96,7 @@ export default class form extends Component {
<MonacoEditor
height={300}
language="json"
theme="vs-dark"
theme={theme === 'dark' ? 'vs-dark' : 'default'}
options={{
fontSize: 12,
}}

View File

@@ -1,5 +1,5 @@
import React, { Component } from 'react'
import { Badge, Divider, List, Menu, Modal, Popover, Row, Spin } from 'antd'
import { Badge, Button, Divider, List, Menu, Modal, Popover, Row, Spin } from 'antd'
import { AntIcon, Image } from 'components'
import { api } from 'common/api'
import InfiniteScroll from 'react-infinite-scroller'
@@ -69,7 +69,7 @@ export default class notice extends Component {
loadMore={pageIndex => this.onInfiniteOnLoad(pageIndex)}
hasMore={!loading && hasMore}
useWindow={false}
threshold={100}
threshold={50}
>
<List
itemLayout="vertical"
@@ -79,14 +79,15 @@ export default class notice extends Component {
<List.Item.Meta
avatar={<Image id={item.avatar} type="avatar" />}
title={
<a
className="ellipsis"
onClick={() => this.onOpenDetail(item.id)}
>
<>
<a onClick={() => this.onOpenDetail(item.id)}>
{item.title}
</a>
<small className="text-normal ml-xs">
{moment(item.createdTime || item.publicTime).fromNow()}
</small>
</>
}
description={moment(item.createdTime || item.publicTime).fromNow()}
/>
<div className="ellipsis-3 text-gray">{item.content}</div>
</List.Item>
@@ -98,6 +99,11 @@ export default class notice extends Component {
</div>
)}
</List>
{!hasMore && (
<Button type="text" block>
查看全部
</Button>
)}
</InfiniteScroll>
)
}
@@ -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"
>
<span className="header-action">
<Badge count={count}>