diff --git a/docs/renderers/Form/File.md b/docs/renderers/Form/File.md
index eea796c4..e88a327c 100644
--- a/docs/renderers/Form/File.md
+++ b/docs/renderers/Form/File.md
@@ -34,3 +34,29 @@
```
如果不希望 File 控件接管上传,可以配置 `asBlob` 或者 `asBase64` 这两个属性(二选一),采用这种方式后,File 控件不再自己上传了,而是直接把文件数据作为表单项的值,文件内容会在 Form 表单提交的接口里面一起带上。
+
+### 接口说明
+
+开始之前请你先阅读[整体要求](../api.md)。
+
+#### reciever
+
+用来自己实现文件接收
+
+**发送:**
+
+POST 方式,内容体为 form-data/multipart 格式。文件的字段名为 file。
+
+**响应:**
+
+常规返回格式如下:
+
+```json
+{
+ "status": 0,
+ "msg": "",
+ "data": {
+ "value": "一般为文件的下载地址"
+ }
+}
+```
diff --git a/examples/components/App.jsx b/examples/components/App.jsx
index 684b2cfa..aab2995a 100644
--- a/examples/components/App.jsx
+++ b/examples/components/App.jsx
@@ -1,9 +1,11 @@
import React from 'react';
import NotFound from '../../src/components/404';
+import NotFound from '../../src/components/404';
import Layout from '../../src/components/Layout';
import AsideNav from '../../src/components/AsideNav';
import {AlertComponent, ToastComponent} from '../../src/components/index';
import {mapTree} from '../../src/utils/helper';
+import {Icon} from '../../src/components/icons';
import '../../src/locale/en';
import {
Router,
@@ -668,7 +670,9 @@ export class App extends React.PureComponent {
key="expand-toggle"
className={cx('AsideNav-itemArrow')}
onClick={e => toggleExpand(link, e)}
- />
+ >
+
+
);
}
diff --git a/package.json b/package.json
index fb8e5d47..d2d2159a 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "amis",
- "version": "1.0.12",
+ "version": "1.0.14",
"description": "一种MIS页面生成工具",
"main": "lib/index.js",
"scripts": {
diff --git a/scss/_variables.scss b/scss/_variables.scss
index e96061d8..f67dd964 100644
--- a/scss/_variables.scss
+++ b/scss/_variables.scss
@@ -948,7 +948,7 @@ $DropDown-menuItem-paddingY: (
) / 2 !default;
$DropDown-menuItem-paddingX: $gap-sm !default;
$DropDown-menuItem-onHover-color: inherit !default;
-$DropDown-menuItem-onHover-bg: $Button--default-onHover-bg !default;
+$DropDown-menuItem-onHover-bg: $ListMenu-item--onHover-bg !default;
// Checks
$Checkbox-gap: $gap-sm !default;
diff --git a/scss/components/_dropdown.scss b/scss/components/_dropdown.scss
index d2b59173..c2c346f8 100644
--- a/scss/components/_dropdown.scss
+++ b/scss/components/_dropdown.scss
@@ -85,4 +85,8 @@
border: none;
box-shadow: none;
}
+
+ > .#{$ns}Button {
+ min-width: unset;
+ }
}
diff --git a/scss/components/_pagination.scss b/scss/components/_pagination.scss
index d95b012e..ace80db9 100644
--- a/scss/components/_pagination.scss
+++ b/scss/components/_pagination.scss
@@ -10,6 +10,7 @@
> a,
> span {
user-select: none;
+ cursor: pointer;
position: relative;
float: left;
text-decoration: none;
diff --git a/scss/layout/_aside.scss b/scss/layout/_aside.scss
index c1dc9dc7..1c11874f 100644
--- a/scss/layout/_aside.scss
+++ b/scss/layout/_aside.scss
@@ -24,7 +24,7 @@
line-height: px2rem(17px);
margin-top: px2rem(2px);
- &::before {
+ &:empty:before {
content: '';
display: inline-block;
transform-origin: center;
@@ -36,10 +36,22 @@
background-repeat: no-repeat;
}
- .#{$ns}AsideNav-item.is-open > a > &::before {
+ .#{$ns}AsideNav-item.is-open > a > &:empty:before {
transform: rotate(90deg);
color: $Layout-asideLink-onActive-arrowColor;
}
+
+ > svg {
+ color: $Layout-asideLink-color;
+ width: px2rem(10px);
+ height: px2rem(10px);
+ transform-origin: center;
+ transition: transform 0.2s ease;
+ }
+
+ .#{$ns}AsideNav-item.is-open > a > & > svg {
+ transform: rotate(90deg);
+ }
}
&-itemBadge {
diff --git a/scss/themes/cxd.scss b/scss/themes/cxd.scss
index aad7bce7..77a0ccf5 100644
--- a/scss/themes/cxd.scss
+++ b/scss/themes/cxd.scss
@@ -415,7 +415,7 @@ $Toast-border-width: px2rem(1px);
$Toast-icon-width: px2rem(16px);
$Toast-icon-height: px2rem(16px);
$Toast-opacity: 1;
-$Toast-title-display: inline-block;
+$Toast-title-display: inline;
// Toast color
$Toast-color: $white;
diff --git a/src/components/InputBox.tsx b/src/components/InputBox.tsx
index 77069e09..84309345 100644
--- a/src/components/InputBox.tsx
+++ b/src/components/InputBox.tsx
@@ -6,7 +6,7 @@ import {Icon} from './icons';
export interface InputBoxProps
extends ThemeProps,
- Omit, 'prefix' | 'onChange'> {
+ Omit, 'prefix' | 'onChange'> {
value?: string;
onChange?: (value: string) => void;
onClear?: (e: React.MouseEvent) => void;
diff --git a/src/components/Tinymce.tsx b/src/components/Tinymce.tsx
index 4c09675b..c7538638 100644
--- a/src/components/Tinymce.tsx
+++ b/src/components/Tinymce.tsx
@@ -126,6 +126,17 @@ export default class TinymceEditor extends React.Component {
tinymce.init(this.config);
}
+ componentDidUpdate(prevProps: TinymceEditorProps) {
+ const props = this.props;
+
+ if (
+ props.model !== prevProps.model &&
+ props.model !== this.currentContent
+ ) {
+ this.editor?.setContent(props.model || '');
+ }
+ }
+
componentWillUnmount() {
tinymce.remove(this.editor);
}
diff --git a/src/factory.tsx b/src/factory.tsx
index 7cce0908..74c5490b 100644
--- a/src/factory.tsx
+++ b/src/factory.tsx
@@ -799,6 +799,7 @@ export function HocStoreFactory(renderer: {
props.data.__super,
false
)) &&
+ // nextProps.data.__super !== props.data.__super) &&
store.initData(
createObject(nextProps.data.__super, {
...nextProps.data,
diff --git a/src/icons/pencil.svg b/src/icons/pencil.svg
index 09e550c1..bf30ecd5 100644
--- a/src/icons/pencil.svg
+++ b/src/icons/pencil.svg
@@ -1,6 +1,7 @@
-