@zykj2024/much-library 1.0.9 → 1.0.10-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -23
- package/dist/McContainer/index.css +3 -2
- package/dist/McDateRange/index.d.ts +1 -1
- package/dist/McDateRange/index.js +1 -1
- package/dist/McLazyLoader/demo/basic.d.ts +2 -0
- package/dist/McLazyLoader/demo/basic.js +33 -0
- package/dist/McLazyLoader/demo/form.d.ts +2 -0
- package/dist/McLazyLoader/demo/form.js +38 -0
- package/dist/McLazyLoader/demo/has-root.d.ts +2 -0
- package/dist/McLazyLoader/demo/has-root.js +44 -0
- package/dist/McLazyLoader/index.d.ts +28 -0
- package/dist/McLazyLoader/index.js +69 -0
- package/dist/McProSelect/demo/async.d.ts +2 -0
- package/dist/McProSelect/demo/async.js +66 -0
- package/dist/McProSelect/demo/base.d.ts +2 -0
- package/dist/McProSelect/demo/base.js +29 -0
- package/dist/McProSelect/demo/exclusion-async-rename.d.ts +3 -0
- package/dist/McProSelect/demo/exclusion-async-rename.js +103 -0
- package/dist/McProSelect/demo/exclusion-rename.d.ts +3 -0
- package/dist/McProSelect/demo/exclusion-rename.js +74 -0
- package/dist/McProSelect/demo/exclusion.d.ts +3 -0
- package/dist/McProSelect/demo/exclusion.js +70 -0
- package/dist/McProSelect/demo/require.d.ts +2 -0
- package/dist/McProSelect/demo/require.js +82 -0
- package/dist/McProSelect/index.d.ts +35 -0
- package/dist/McProSelect/index.js +152 -0
- package/dist/McSelect/components/PanelSearchInput/index.css +6 -0
- package/dist/McSelect/components/PanelSearchInput/index.d.ts +12 -0
- package/dist/McSelect/components/PanelSearchInput/index.js +45 -0
- package/dist/McSelect/demo/exclusion.d.ts +3 -0
- package/dist/McSelect/demo/exclusion.js +64 -0
- package/dist/McSelect/demo/fetchOptions.js +1 -0
- package/dist/McSelect/index.d.ts +9 -2
- package/dist/McSelect/index.js +101 -15
- package/dist/McTag/demo/demo1.d.ts +2 -0
- package/dist/McTag/demo/demo1.js +18 -0
- package/dist/McTag/demo/demo2.d.ts +2 -0
- package/dist/McTag/demo/demo2.js +20 -0
- package/dist/McTag/demo/demo3.d.ts +2 -0
- package/dist/McTag/demo/demo3.js +19 -0
- package/dist/McTag/demo/demo4.d.ts +2 -0
- package/dist/McTag/demo/demo4.js +22 -0
- package/dist/McTag/index.d.ts +22 -0
- package/dist/McTag/index.js +59 -0
- package/dist/McThemeConfig/customToken.json +2 -1
- package/dist/McThemeConfig/demo/radio.js +39 -0
- package/dist/McThemeConfig/globalStyle.js +10 -4
- package/dist/McThemeConfig/themeToken.json +1 -1
- package/dist/Utils/index.d.ts +5 -4
- package/dist/Utils/index.js +6 -26
- package/dist/index.d.ts +5 -2
- package/dist/index.js +5 -2
- package/package.json +4 -2
package/README.md
CHANGED
@@ -1,35 +1,35 @@
|
|
1
1
|
# much-library
|
2
2
|
|
3
|
-
|
3
|
+
基于 ant-design 和 web 端一体化设计标准 实现的 React 组件库,旨在提高 B 端平台开发效率以及通用组件标准化。
|
4
4
|
|
5
|
-
|
5
|
+
## 主要目录
|
6
6
|
|
7
|
-
|
7
|
+
- /src 组件开发目录
|
8
|
+
- /script 组件构建脚本目录
|
9
|
+
- /docs 文档目录
|
8
10
|
|
9
|
-
|
11
|
+
## 开发流程
|
10
12
|
|
11
|
-
|
13
|
+
- 从 `main` 分支拉取组件分支 `feature/*`,例如:McInput 组件分支`feature/tree_panel`,若多人维护则增加个人标识`feature/tree_panel-csy`
|
14
|
+
- 在 /src 中新建对应组件目录,书写组件.tsx 以及 文档.md,可执行 `npm run dev` 在文档 demo 上直接调试
|
15
|
+
- css 采用约定命名规则,使用 less 语法,遵守 BEM 规范,给组件一个外层类名 `.mc-*`
|
16
|
+
- /src/index.ts 导入组件,组件库支持按需引入
|
17
|
+
- 更新 `log.md` 文件
|
18
|
+
- 本地开发完毕后执行`npm run doctor` 校验,校验通过后可提交`develop`分支 MR,指向对应同学进行 Review 合并
|
12
19
|
|
13
|
-
|
14
|
-
# install dependencies
|
15
|
-
$ yarn install
|
20
|
+
## 发布流程
|
16
21
|
|
17
|
-
|
18
|
-
|
22
|
+
- npm 包发布,更新 version 版本号,执行`npm publish`即可。[much-library](https://www.npmjs.com/package/much-library)
|
23
|
+
- docs 发布,执行`npm run docs:build`,通过 ssh 部署 docs-dist。[much-docs](http://frontend.yunxiacn.com/much-docs/)
|
24
|
+
- 相关账号配置联系 @陈书妍(一匠)
|
19
25
|
|
20
|
-
|
21
|
-
$ yarn run build
|
26
|
+
## 问题反馈
|
22
27
|
|
23
|
-
|
24
|
-
|
28
|
+
- 使用过程中有任何问题,可到对应仓库提交 [issue](http://gitlab.yunxiacn.com/data-group-front/much-library/-/issues)
|
29
|
+
- 需添加使用场景,是否必现,复现路径等细节
|
30
|
+
- 紧急情况下,可以自行进行实行,提交 MR 即可
|
25
31
|
|
26
|
-
|
27
|
-
$ yarn run docs:build
|
32
|
+
## 关联资源
|
28
33
|
|
29
|
-
|
30
|
-
|
31
|
-
```
|
32
|
-
|
33
|
-
## LICENSE
|
34
|
-
|
35
|
-
MIT
|
34
|
+
- [web 端一体化设计](https://mastergo.com/file/124592686063679?fileOpenFrom=project&page_id=116%3A9034) @张乐(卡卡)
|
35
|
+
- [dumi 组件框架](https://d.umijs.org/)
|
@@ -11,8 +11,9 @@
|
|
11
11
|
}
|
12
12
|
.mc-container__wrapper {
|
13
13
|
height: 100%;
|
14
|
-
padding: 24px 24px 64px;
|
14
|
+
padding: 24px 24px 64px 16px;
|
15
15
|
overflow: auto;
|
16
|
+
border-top-right-radius: 12px;
|
16
17
|
}
|
17
18
|
.mc-container__query {
|
18
19
|
display: -webkit-box;
|
@@ -27,7 +28,7 @@
|
|
27
28
|
.mc-container__query .mc-select,
|
28
29
|
.mc-container__query .mc-cascader,
|
29
30
|
.mc-container__query .mc-input-number {
|
30
|
-
width:
|
31
|
+
width: 270px;
|
31
32
|
}
|
32
33
|
.mc-container__query .mc-date-range {
|
33
34
|
width: 330px;
|
@@ -10,7 +10,7 @@ declare const shortcutValueMap: {
|
|
10
10
|
last60days: string[];
|
11
11
|
last90days: string[];
|
12
12
|
};
|
13
|
-
export declare const
|
13
|
+
export declare const SHORTCUT_VALUE_MAP: typeof shortcutValueMap & {
|
14
14
|
[key: string]: any;
|
15
15
|
};
|
16
16
|
export type McDateRangeProps = Omit<RangePickerProps, 'value' | 'onChange'> & {
|
@@ -18,7 +18,7 @@ var shortcutValueMap = {
|
|
18
18
|
last60days: [dayjs().add(-59, 'd').format('YYYY-MM-DD'), dayjs().format('YYYY-MM-DD')],
|
19
19
|
last90days: [dayjs().add(-89, 'd').format('YYYY-MM-DD'), dayjs().format('YYYY-MM-DD')]
|
20
20
|
};
|
21
|
-
export var
|
21
|
+
export var SHORTCUT_VALUE_MAP = shortcutValueMap;
|
22
22
|
var McDateRange = /*#__PURE__*/forwardRef(function (props, ref) {
|
23
23
|
var style = props.style,
|
24
24
|
className = props.className,
|
@@ -0,0 +1,33 @@
|
|
1
|
+
/**
|
2
|
+
* title: 基本用法
|
3
|
+
* description: 元素出现在视窗时渲染, 日志见console.log。
|
4
|
+
*/
|
5
|
+
import { McLazyLoader } from "../..";
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
7
|
+
var textList = Array.from({
|
8
|
+
length: 100
|
9
|
+
}, function (_, index) {
|
10
|
+
return index;
|
11
|
+
});
|
12
|
+
export default (function () {
|
13
|
+
return /*#__PURE__*/_jsx("div", {
|
14
|
+
children: /*#__PURE__*/_jsx(McLazyLoader, {
|
15
|
+
style: {
|
16
|
+
height: 200,
|
17
|
+
overflow: 'auto'
|
18
|
+
},
|
19
|
+
itemMinHeight: 50,
|
20
|
+
children: textList.map(function (v) {
|
21
|
+
return /*#__PURE__*/_jsx("img", {
|
22
|
+
width: "auto",
|
23
|
+
height: 50,
|
24
|
+
onLoad: function onLoad() {
|
25
|
+
console.log('[window root: loaded]', new Date(), v);
|
26
|
+
},
|
27
|
+
src: "http://pre.data.muchcloud.com/static/img/logo-t.34c4816d.png",
|
28
|
+
alt: v.toString()
|
29
|
+
}, v);
|
30
|
+
})
|
31
|
+
})
|
32
|
+
});
|
33
|
+
});
|
@@ -0,0 +1,38 @@
|
|
1
|
+
/**
|
2
|
+
* title: 基本用法 - 渲染表单项
|
3
|
+
* description: 元素出现在视窗时渲染, 日志见console.log。
|
4
|
+
*/
|
5
|
+
import { Form } from 'antd';
|
6
|
+
import { McInput, McLazyLoader } from "../..";
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
8
|
+
var textList = Array.from({
|
9
|
+
length: 100
|
10
|
+
}, function (_, index) {
|
11
|
+
return index;
|
12
|
+
});
|
13
|
+
var FormDemo = function FormDemo() {
|
14
|
+
return /*#__PURE__*/_jsx("div", {
|
15
|
+
children: /*#__PURE__*/_jsx(Form, {
|
16
|
+
children: /*#__PURE__*/_jsx(McLazyLoader, {
|
17
|
+
style: {
|
18
|
+
height: 200,
|
19
|
+
overflow: 'auto'
|
20
|
+
},
|
21
|
+
itemMinHeight: 50,
|
22
|
+
children: textList.map(function (v) {
|
23
|
+
return /*#__PURE__*/_jsx(Form.Item, {
|
24
|
+
shouldUpdate: true,
|
25
|
+
children: function children() {
|
26
|
+
// 写成方法形式,是为了打日志。实际运用时正常写就行
|
27
|
+
console.log('[form item: loaded]', new Date(), v);
|
28
|
+
return /*#__PURE__*/_jsx(McInput, {
|
29
|
+
defaultValue: v
|
30
|
+
});
|
31
|
+
}
|
32
|
+
}, v);
|
33
|
+
})
|
34
|
+
})
|
35
|
+
})
|
36
|
+
});
|
37
|
+
};
|
38
|
+
export default FormDemo;
|
@@ -0,0 +1,44 @@
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
2
|
+
/**
|
3
|
+
* title: 基本用法
|
4
|
+
* description: 元素出现在当前父组件(div)时渲染, 日志见console.log。和root=window不同的是,尽管元素没出现在浏览器视窗内,也会被render。
|
5
|
+
*/
|
6
|
+
import { McLazyLoader } from "../..";
|
7
|
+
import { useEffect, useState } from 'react';
|
8
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
9
|
+
var textList = Array.from({
|
10
|
+
length: 100
|
11
|
+
}, function (_, index) {
|
12
|
+
return index;
|
13
|
+
});
|
14
|
+
export default (function () {
|
15
|
+
var _useState = useState(),
|
16
|
+
_useState2 = _slicedToArray(_useState, 2),
|
17
|
+
root = _useState2[0],
|
18
|
+
setRoot = _useState2[1];
|
19
|
+
useEffect(function () {
|
20
|
+
setRoot(document.getElementById('example1'));
|
21
|
+
}, []);
|
22
|
+
return /*#__PURE__*/_jsx("div", {
|
23
|
+
id: "example1",
|
24
|
+
children: /*#__PURE__*/_jsx(McLazyLoader, {
|
25
|
+
style: {
|
26
|
+
height: 200,
|
27
|
+
overflow: 'auto'
|
28
|
+
},
|
29
|
+
itemMinHeight: 50,
|
30
|
+
root: root,
|
31
|
+
children: textList.map(function (v) {
|
32
|
+
return /*#__PURE__*/_jsx("img", {
|
33
|
+
width: "auto",
|
34
|
+
height: 50,
|
35
|
+
onLoad: function onLoad() {
|
36
|
+
console.log('[div root: loaded]', new Date(), v);
|
37
|
+
},
|
38
|
+
src: "http://pre.data.muchcloud.com/static/img/logo-t.34c4816d.png",
|
39
|
+
alt: v.toString()
|
40
|
+
}, v);
|
41
|
+
})
|
42
|
+
})
|
43
|
+
});
|
44
|
+
});
|
@@ -0,0 +1,28 @@
|
|
1
|
+
/** 监听容器内的list每个元素,当元素进入视图则展示,展示后不再消失 */
|
2
|
+
import React from 'react';
|
3
|
+
interface ObserverInsertionWrapperProps {
|
4
|
+
children: React.ReactNode[];
|
5
|
+
/**
|
6
|
+
* @description 最小高度,不能为0。为0时懒加载可能会无效
|
7
|
+
* @default 20
|
8
|
+
*/
|
9
|
+
itemMinHeight?: number;
|
10
|
+
/**
|
11
|
+
* @description 距离视图多少像素时触发。出于用户体验考虑,建议设置一个正数
|
12
|
+
* @default 0
|
13
|
+
*/
|
14
|
+
offset?: number;
|
15
|
+
/**
|
16
|
+
* @description 重叠比例为多少时触发
|
17
|
+
* @default 0
|
18
|
+
*/
|
19
|
+
threshold?: number;
|
20
|
+
/**
|
21
|
+
* @description 监听的根元素,不传则监听浏览器窗口
|
22
|
+
* @default null
|
23
|
+
*/
|
24
|
+
root?: Element | Document | null;
|
25
|
+
style?: React.CSSProperties;
|
26
|
+
}
|
27
|
+
declare const ObserverInsertionWrapper: React.FC<ObserverInsertionWrapperProps>;
|
28
|
+
export default ObserverInsertionWrapper;
|
@@ -0,0 +1,69 @@
|
|
1
|
+
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
2
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
3
|
+
/** 监听容器内的list每个元素,当元素进入视图则展示,展示后不再消失 */
|
4
|
+
|
5
|
+
import React, { useEffect, useRef, useState } from 'react';
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
7
|
+
var ObserverInsertionWrapper = function ObserverInsertionWrapper(_ref) {
|
8
|
+
var children = _ref.children,
|
9
|
+
style = _ref.style,
|
10
|
+
_ref$offset = _ref.offset,
|
11
|
+
offset = _ref$offset === void 0 ? 0 : _ref$offset,
|
12
|
+
_ref$threshold = _ref.threshold,
|
13
|
+
threshold = _ref$threshold === void 0 ? 0 : _ref$threshold,
|
14
|
+
_ref$root = _ref.root,
|
15
|
+
root = _ref$root === void 0 ? null : _ref$root,
|
16
|
+
_ref$itemMinHeight = _ref.itemMinHeight,
|
17
|
+
itemMinHeight = _ref$itemMinHeight === void 0 ? 20 : _ref$itemMinHeight;
|
18
|
+
var wrapperRef = useRef(null);
|
19
|
+
var _useState = useState(new Array(children.length).fill(false)),
|
20
|
+
_useState2 = _slicedToArray(_useState, 2),
|
21
|
+
visibleItems = _useState2[0],
|
22
|
+
setVisibleItems = _useState2[1];
|
23
|
+
useEffect(function () {
|
24
|
+
var _wrapperRef$current;
|
25
|
+
var observer = new IntersectionObserver(function (entries) {
|
26
|
+
entries.forEach(function (entry) {
|
27
|
+
var index = Number(entry.target.getAttribute('data-index'));
|
28
|
+
if (entry.isIntersecting) {
|
29
|
+
observer.unobserve(entry.target);
|
30
|
+
setVisibleItems(function (prev) {
|
31
|
+
console.log('in:', index);
|
32
|
+
var newVisibleItems = _toConsumableArray(prev);
|
33
|
+
newVisibleItems[index] = true;
|
34
|
+
return newVisibleItems;
|
35
|
+
});
|
36
|
+
}
|
37
|
+
});
|
38
|
+
}, {
|
39
|
+
root: root,
|
40
|
+
// 监听浏览器窗口
|
41
|
+
rootMargin: "".concat(offset, "px"),
|
42
|
+
threshold: threshold
|
43
|
+
});
|
44
|
+
var elements = (_wrapperRef$current = wrapperRef.current) === null || _wrapperRef$current === void 0 ? void 0 : _wrapperRef$current.children;
|
45
|
+
elements && Array.from(elements).forEach(function (element) {
|
46
|
+
observer.observe(element);
|
47
|
+
});
|
48
|
+
return function () {
|
49
|
+
elements && Array.from(elements).forEach(function (element) {
|
50
|
+
observer.unobserve(element);
|
51
|
+
});
|
52
|
+
};
|
53
|
+
}, [offset, threshold, root, children.length]);
|
54
|
+
return /*#__PURE__*/_jsx("div", {
|
55
|
+
ref: wrapperRef,
|
56
|
+
style: style,
|
57
|
+
children: React.Children.map(children, function (child, index) {
|
58
|
+
var key = /*#__PURE__*/React.isValidElement(child) ? child.key : index;
|
59
|
+
return /*#__PURE__*/_jsx("div", {
|
60
|
+
style: {
|
61
|
+
minHeight: itemMinHeight
|
62
|
+
},
|
63
|
+
"data-index": index,
|
64
|
+
children: visibleItems[index] ? child : null
|
65
|
+
}, key);
|
66
|
+
})
|
67
|
+
});
|
68
|
+
};
|
69
|
+
export default ObserverInsertionWrapper;
|
@@ -0,0 +1,66 @@
|
|
1
|
+
import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
|
2
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
3
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
4
|
+
/**
|
5
|
+
* title: 远程请求 + 设置fieldNames
|
6
|
+
* description: 通过远程请求获取数据,同时支持通过fieldNames映射label、value字段。
|
7
|
+
*/
|
8
|
+
import { McProSelect } from "../..";
|
9
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
10
|
+
var mockDataList = {
|
11
|
+
total: 10,
|
12
|
+
pageSize: 1,
|
13
|
+
current: 1,
|
14
|
+
records: [{
|
15
|
+
id: 1,
|
16
|
+
name: '路由规则1'
|
17
|
+
}, {
|
18
|
+
id: 2,
|
19
|
+
name: '路由规则2'
|
20
|
+
}]
|
21
|
+
};
|
22
|
+
export default (function () {
|
23
|
+
var getRoutingList = /*#__PURE__*/function () {
|
24
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(params) {
|
25
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
26
|
+
while (1) switch (_context.prev = _context.next) {
|
27
|
+
case 0:
|
28
|
+
return _context.abrupt("return", new Promise(function (resolve) {
|
29
|
+
console.log({
|
30
|
+
params: params
|
31
|
+
});
|
32
|
+
setTimeout(function () {
|
33
|
+
resolve(_objectSpread(_objectSpread({}, mockDataList), {}, {
|
34
|
+
records: mockDataList.records.filter(function (item) {
|
35
|
+
return !params.name || item.name.includes(params.name);
|
36
|
+
})
|
37
|
+
}));
|
38
|
+
}, 200);
|
39
|
+
}));
|
40
|
+
case 1:
|
41
|
+
case "end":
|
42
|
+
return _context.stop();
|
43
|
+
}
|
44
|
+
}, _callee);
|
45
|
+
}));
|
46
|
+
return function getRoutingList(_x) {
|
47
|
+
return _ref.apply(this, arguments);
|
48
|
+
};
|
49
|
+
}();
|
50
|
+
return /*#__PURE__*/_jsx(McProSelect, {
|
51
|
+
name: "routing",
|
52
|
+
label: "\u8DEF\u7531\u89C4\u5219",
|
53
|
+
searchKey: "name",
|
54
|
+
request: function request(params) {
|
55
|
+
return getRoutingList(_objectSpread(_objectSpread({}, params), {}, {
|
56
|
+
status: 1
|
57
|
+
}));
|
58
|
+
},
|
59
|
+
fieldNames: {
|
60
|
+
label: 'name',
|
61
|
+
value: 'id'
|
62
|
+
},
|
63
|
+
multiple: false,
|
64
|
+
required: true
|
65
|
+
});
|
66
|
+
});
|
@@ -0,0 +1,29 @@
|
|
1
|
+
/**
|
2
|
+
* title: 基本用法
|
3
|
+
* description: 增加name和label,原McSelect的属性放到fieldPros中
|
4
|
+
*/
|
5
|
+
import { McProSelect } from "../..";
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
7
|
+
export default (function () {
|
8
|
+
return /*#__PURE__*/_jsx(McProSelect, {
|
9
|
+
name: "select1",
|
10
|
+
label: "select1",
|
11
|
+
fieldProps: {
|
12
|
+
defaultValue: 'lucy',
|
13
|
+
options: [{
|
14
|
+
value: 'jack',
|
15
|
+
label: 'Jack'
|
16
|
+
}, {
|
17
|
+
value: 'lucy',
|
18
|
+
label: 'Lucy'
|
19
|
+
}, {
|
20
|
+
value: 'Yiminghe',
|
21
|
+
label: 'yiminghe'
|
22
|
+
}, {
|
23
|
+
value: 'disabled',
|
24
|
+
label: 'Disabled',
|
25
|
+
disabled: true
|
26
|
+
}]
|
27
|
+
}
|
28
|
+
});
|
29
|
+
});
|
@@ -0,0 +1,103 @@
|
|
1
|
+
import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
|
2
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
3
|
+
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
4
|
+
/**
|
5
|
+
* title: 动态option + 两个互斥的select + 设置fieldNames
|
6
|
+
* description: 基于远程请求,其他同上一个demo
|
7
|
+
*/
|
8
|
+
import { Form } from 'antd';
|
9
|
+
import { McProSelect } from "../..";
|
10
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
11
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
12
|
+
var mockDataList = {
|
13
|
+
total: 10,
|
14
|
+
pageSize: 1,
|
15
|
+
current: 1,
|
16
|
+
records: [{
|
17
|
+
id: 1,
|
18
|
+
name: '路由规则1'
|
19
|
+
}, {
|
20
|
+
id: 2,
|
21
|
+
name: '路由规则2'
|
22
|
+
}]
|
23
|
+
};
|
24
|
+
var App = function App() {
|
25
|
+
var getRoutingList = /*#__PURE__*/function () {
|
26
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(params) {
|
27
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
28
|
+
while (1) switch (_context.prev = _context.next) {
|
29
|
+
case 0:
|
30
|
+
return _context.abrupt("return", new Promise(function (resolve) {
|
31
|
+
console.log({
|
32
|
+
params: params
|
33
|
+
});
|
34
|
+
setTimeout(function () {
|
35
|
+
resolve(_objectSpread(_objectSpread({}, mockDataList), {}, {
|
36
|
+
records: mockDataList.records.filter(function (item) {
|
37
|
+
return !params.name || item.name.includes(params.name);
|
38
|
+
})
|
39
|
+
}));
|
40
|
+
}, 200);
|
41
|
+
}));
|
42
|
+
case 1:
|
43
|
+
case "end":
|
44
|
+
return _context.stop();
|
45
|
+
}
|
46
|
+
}, _callee);
|
47
|
+
}));
|
48
|
+
return function getRoutingList(_x) {
|
49
|
+
return _ref.apply(this, arguments);
|
50
|
+
};
|
51
|
+
}();
|
52
|
+
return /*#__PURE__*/_jsxs(Form, {
|
53
|
+
name: "exclusion3",
|
54
|
+
children: [/*#__PURE__*/_jsx(Form.Item, {
|
55
|
+
noStyle: true,
|
56
|
+
dependencies: ['select2'],
|
57
|
+
children: function children(_ref2) {
|
58
|
+
var _getFieldValue;
|
59
|
+
var getFieldValue = _ref2.getFieldValue;
|
60
|
+
return /*#__PURE__*/_jsx(McProSelect, {
|
61
|
+
label: "select1",
|
62
|
+
name: "select1",
|
63
|
+
searchKey: "name",
|
64
|
+
request: function request(params) {
|
65
|
+
return getRoutingList(_objectSpread(_objectSpread({}, params), {}, {
|
66
|
+
status: 1
|
67
|
+
}));
|
68
|
+
},
|
69
|
+
fieldNames: {
|
70
|
+
label: 'name',
|
71
|
+
value: 'id'
|
72
|
+
},
|
73
|
+
tooltip: "\u7531JAVA spring\u6846\u67B6\u7BA1\u7406\u7684bean\u5B9E\u4F8B\u540D\u79F0",
|
74
|
+
excludeIds: [(_getFieldValue = getFieldValue('select2')) === null || _getFieldValue === void 0 ? void 0 : _getFieldValue.id]
|
75
|
+
});
|
76
|
+
}
|
77
|
+
}), /*#__PURE__*/_jsx(Form.Item, {
|
78
|
+
noStyle: true,
|
79
|
+
dependencies: ['select1'],
|
80
|
+
children: function children(_ref3) {
|
81
|
+
var _getFieldValue2;
|
82
|
+
var getFieldValue = _ref3.getFieldValue;
|
83
|
+
return /*#__PURE__*/_jsx(McProSelect, {
|
84
|
+
label: "select2",
|
85
|
+
name: "select2",
|
86
|
+
searchKey: "name",
|
87
|
+
request: function request(params) {
|
88
|
+
return getRoutingList(_objectSpread(_objectSpread({}, params), {}, {
|
89
|
+
status: 1
|
90
|
+
}));
|
91
|
+
},
|
92
|
+
fieldNames: {
|
93
|
+
label: 'name',
|
94
|
+
value: 'id'
|
95
|
+
},
|
96
|
+
tooltip: "\u7531JAVA spring\u6846\u67B6\u7BA1\u7406\u7684bean\u5B9E\u4F8B\u540D\u79F02",
|
97
|
+
excludeIds: [(_getFieldValue2 = getFieldValue('select1')) === null || _getFieldValue2 === void 0 ? void 0 : _getFieldValue2.id]
|
98
|
+
});
|
99
|
+
}
|
100
|
+
})]
|
101
|
+
});
|
102
|
+
};
|
103
|
+
export default App;
|
@@ -0,0 +1,74 @@
|
|
1
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
2
|
+
/**
|
3
|
+
* title: 静态option + 两个互斥的select + 设置fieldNames
|
4
|
+
* description: 上两种情况的组合
|
5
|
+
*/
|
6
|
+
import { Form } from 'antd';
|
7
|
+
import { useForm } from 'antd/es/form/Form';
|
8
|
+
import { McProSelect } from "../..";
|
9
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
10
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
11
|
+
var options = [{
|
12
|
+
name: 'goldLabel',
|
13
|
+
id: 'gold'
|
14
|
+
}, {
|
15
|
+
name: 'limeLabel',
|
16
|
+
id: 'lime'
|
17
|
+
}, {
|
18
|
+
name: 'greenLabel',
|
19
|
+
id: 'green'
|
20
|
+
}, {
|
21
|
+
name: 'cyanLabel',
|
22
|
+
id: 'cyan'
|
23
|
+
}];
|
24
|
+
var App = function App() {
|
25
|
+
var _useForm = useForm(),
|
26
|
+
_useForm2 = _slicedToArray(_useForm, 1),
|
27
|
+
form = _useForm2[0];
|
28
|
+
return /*#__PURE__*/_jsxs(Form, {
|
29
|
+
form: form,
|
30
|
+
name: "exclusion2",
|
31
|
+
children: [/*#__PURE__*/_jsx(Form.Item, {
|
32
|
+
noStyle: true,
|
33
|
+
dependencies: ['select2'],
|
34
|
+
children: function children(_ref) {
|
35
|
+
var _getFieldValue;
|
36
|
+
var getFieldValue = _ref.getFieldValue;
|
37
|
+
return /*#__PURE__*/_jsx(McProSelect, {
|
38
|
+
label: "select1",
|
39
|
+
name: "select1",
|
40
|
+
tooltip: "\u7531JAVA spring\u6846\u67B6\u7BA1\u7406\u7684bean\u5B9E\u4F8B\u540D\u79F0",
|
41
|
+
excludeIds: [(_getFieldValue = getFieldValue('select2')) === null || _getFieldValue === void 0 ? void 0 : _getFieldValue.id],
|
42
|
+
fieldNames: {
|
43
|
+
label: 'name',
|
44
|
+
value: 'id'
|
45
|
+
},
|
46
|
+
fieldProps: {
|
47
|
+
options: options
|
48
|
+
}
|
49
|
+
});
|
50
|
+
}
|
51
|
+
}), /*#__PURE__*/_jsx(Form.Item, {
|
52
|
+
noStyle: true,
|
53
|
+
dependencies: ['select1'],
|
54
|
+
children: function children(_ref2) {
|
55
|
+
var _getFieldValue2;
|
56
|
+
var getFieldValue = _ref2.getFieldValue;
|
57
|
+
return /*#__PURE__*/_jsx(McProSelect, {
|
58
|
+
label: "select2",
|
59
|
+
name: "select2",
|
60
|
+
tooltip: "\u7531JAVA spring\u6846\u67B6\u7BA1\u7406\u7684bean\u5B9E\u4F8B\u540D\u79F02",
|
61
|
+
excludeIds: [(_getFieldValue2 = getFieldValue('select1')) === null || _getFieldValue2 === void 0 ? void 0 : _getFieldValue2.id],
|
62
|
+
fieldNames: {
|
63
|
+
label: 'name',
|
64
|
+
value: 'id'
|
65
|
+
},
|
66
|
+
fieldProps: {
|
67
|
+
options: options
|
68
|
+
}
|
69
|
+
});
|
70
|
+
}
|
71
|
+
})]
|
72
|
+
});
|
73
|
+
};
|
74
|
+
export default App;
|