plain-design 1.0.0-beta.1 → 1.0.0-beta.10
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/plain-design.commonjs.min.js +11 -2
- package/dist/plain-design.min.css +3 -1
- package/dist/plain-design.min.js +11 -2
- package/dist/report.html +2 -2
- package/package.json +4 -4
- package/src/packages/build.ts +1 -1
- package/src/packages/components/Application/theme/theme.ts +1 -1
- package/src/packages/components/ColorPicker/sub/ColorSlider.tsx +8 -5
- package/src/packages/components/ColorPicker/sub/ColorSvPanel.tsx +7 -4
- package/src/packages/components/Dialog/index.tsx +2 -1
- package/src/packages/components/Dialog/useDialogMovable.tsx +7 -4
- package/src/packages/components/Dialog/utils/dialog.mouse.ts +4 -2
- package/src/packages/components/Input/useMultipleInput.tsx +5 -2
- package/src/packages/components/Input/useTextareaInput.tsx +10 -5
- package/src/packages/components/InputNumber/NumberResize.tsx +6 -2
- package/src/packages/components/Layout/index.tsx +31 -0
- package/src/packages/components/Layout/layout.scss +227 -0
- package/src/packages/components/Layout/layout.utils.ts +3 -0
- package/src/packages/components/LayoutSection/index.tsx +67 -0
- package/src/packages/components/LayoutSection/useLayoutSectionResizer.tsx +184 -0
- package/src/{pages/index/PageThemeUtils.tsx → packages/components/PageThemeUtils/index.tsx} +6 -4
- package/src/packages/components/Popup/index.tsx +20 -8
- package/src/packages/components/Rate/index.tsx +3 -1
- package/src/packages/components/Scroll/HorizontalScrollbar.tsx +7 -3
- package/src/packages/components/Scroll/VerticalScrollbar.tsx +7 -3
- package/src/packages/components/Slider/useSliderDotDragier.tsx +7 -4
- package/src/packages/components/Table/table/head/useHeadCellResize.ts +8 -3
- package/src/packages/components/Table/table/use/useTableDraggier.col.tsx +10 -5
- package/src/packages/components/Table/table/use/useTableDraggier.row.tsx +11 -6
- package/src/packages/components/ThemePrimaryColors/index.ts +5 -0
- package/src/packages/components/Tree/RenderTreeNode.tsx +2 -1
- package/src/packages/components/Tree/tree.scss +34 -8
- package/src/packages/components/TreeCore/TreeCore.type.tsx +2 -0
- package/src/packages/components/TreeCore/createTreeCore.tsx +5 -1
- package/src/packages/components/TreeCore/createTreeDraggier.tsx +9 -5
- package/src/packages/components/TreeCore/createTreeProps.ts +1 -0
- package/src/packages/components/TreeNodeWithMenu/index.tsx +53 -0
- package/src/packages/components/TreeNodeWithMenu/tree-node-with-menu.scss +38 -0
- package/src/packages/components/createProvider/index.ts +5 -0
- package/src/packages/components/nextPopupId/index.ts +5 -0
- package/src/packages/components/useImage/ImageService.tsx +7 -4
- package/src/packages/components/usePopupManager/index.ts +5 -0
- package/src/packages/components/usePopupTrigger/index.tsx +5 -0
- package/src/packages/components/useReferenceTrigger/index.tsx +5 -0
- package/src/packages/components/useTooltip/index.tsx +2 -0
- package/src/packages/components/useWatchAutoClear/index.ts +5 -0
- package/src/packages/entry.tsx +29 -0
- package/src/packages/utils/ClientZoom.ts +24 -2
- package/src/packages/utils/useMove.tsx +10 -4
- package/src/pages/index/App.tsx +3 -2
- package/src/pages/index/app.scss +5 -0
- package/src/pages/index/components/normal/DemoLayout.tsx +144 -0
- package/src/pages/index/components/normal/DemoLoading.tsx +3 -0
- package/src/pages/index/components/normal/DemoTree.tsx +71 -2
- package/src/pages/index/components/service/DemoPopupService.tsx +6 -3
- package/src/pages/index/home/AppHead.tsx +4 -4
- package/src/pages/index/home/menus.tsx +1 -0
- package/src/pages/index/home/plain-design.png +0 -0
- package/src/pages/index/main.tsx +0 -4
@@ -1,6 +1,6 @@
|
|
1
1
|
import {designPage, getComponentCls, reactive, useRefs} from "plain-design-composition";
|
2
2
|
import {DemoRow} from "../../Demo/DemoRow";
|
3
|
-
import {$message, Alert, Button, ButtonGroup, Checkbox, Input, Segment, SegmentGroup, Tree} from "../../../../packages";
|
3
|
+
import {$message, Alert, Button, ButtonGroup, Checkbox, Input, Layout, LayoutSection, Segment, SegmentGroup, Tree, TreeNodeWithMenu} from "../../../../packages";
|
4
4
|
import treeData from '../../../data/tree.data.json';
|
5
5
|
import addressData from '../../../data/address.json';
|
6
6
|
import {iTreeNode} from "../../../../packages/components/TreeCore/createTreeNode";
|
@@ -1089,7 +1089,7 @@ export const demoVirtualDraggable = designPage(() => {
|
|
1089
1089
|
onDragChange={onDragChange}
|
1090
1090
|
innerAttrs={{
|
1091
1091
|
style: {
|
1092
|
-
backgroundColor: `var(--custom-background-hover)`,
|
1092
|
+
// backgroundColor: `var(--custom-background-hover)`,
|
1093
1093
|
}
|
1094
1094
|
}}
|
1095
1095
|
/>
|
@@ -1097,3 +1097,72 @@ export const demoVirtualDraggable = designPage(() => {
|
|
1097
1097
|
</DemoRow>
|
1098
1098
|
);
|
1099
1099
|
});
|
1100
|
+
|
1101
|
+
|
1102
|
+
export const demoCustomDraggier = designPage(() => {
|
1103
|
+
|
1104
|
+
const { refs, onRef } = useRefs({ tree: Tree });
|
1105
|
+
|
1106
|
+
const state = reactive({
|
1107
|
+
checked: [] as any[],
|
1108
|
+
undoDraggier: false,
|
1109
|
+
});
|
1110
|
+
|
1111
|
+
const onDragChange = (data: iTreeDragChangeData) => {
|
1112
|
+
console.log(data);
|
1113
|
+
if (state.undoDraggier) {
|
1114
|
+
delay(2000).then(() => {data.undo();});
|
1115
|
+
}
|
1116
|
+
};
|
1117
|
+
|
1118
|
+
return () => (
|
1119
|
+
<DemoRow title="自定义拖拽节点">
|
1120
|
+
<ButtonGroup style={{ margin: '4px 0' }}>
|
1121
|
+
<Button label="全部展开" onClick={() => refs.tree!.methods.expandAll()}/>
|
1122
|
+
<Button label="全部收起" onClick={() => refs.tree!.methods.collapseAll()}/>
|
1123
|
+
<Button label="展开特定节点" onClick={() => refs.tree!.methods.expand(['2-2-2'])}/>
|
1124
|
+
<Button label="展开部分节点" onClick={() => refs.tree!.methods.expand(['2-2-2', '3-1-2'])}/>
|
1125
|
+
<Button label="当前选中节点" onClick={() => {
|
1126
|
+
const current = refs.tree!.methods.getCurrent();
|
1127
|
+
$message(!!current ? current.data.name : '未选中任何节点!');
|
1128
|
+
}}/>
|
1129
|
+
<Button label="展开并且设置当前选中节点" onClick={() => {
|
1130
|
+
refs.tree!.methods.expand('2-2-2');
|
1131
|
+
refs.tree!.methods.setCurrent('2-2-2');
|
1132
|
+
}}/>
|
1133
|
+
<Button>
|
1134
|
+
<Checkbox v-model={state.undoDraggier} label="拖拽移动2s后撤回拖拽操作"/>
|
1135
|
+
</Button>
|
1136
|
+
</ButtonGroup>
|
1137
|
+
<Layout style={{ marginTop: '16px' }}>
|
1138
|
+
<LayoutSection position="left" modelValue={120}>
|
1139
|
+
<Tree
|
1140
|
+
v-model={state.checked}
|
1141
|
+
ref={onRef.tree}
|
1142
|
+
data={addressData}
|
1143
|
+
keyField="id"
|
1144
|
+
labelField="name"
|
1145
|
+
childrenField="children"
|
1146
|
+
singleValueType="last"
|
1147
|
+
virtual
|
1148
|
+
onDragChange={onDragChange}
|
1149
|
+
draggable
|
1150
|
+
customDraggier
|
1151
|
+
expandOnClickNode
|
1152
|
+
v-slots={{
|
1153
|
+
default: ({ treeNode }: { treeNode: iTreeNode }) => (
|
1154
|
+
<TreeNodeWithMenu treeNode={treeNode}/>
|
1155
|
+
)
|
1156
|
+
}}
|
1157
|
+
/>
|
1158
|
+
</LayoutSection>
|
1159
|
+
<LayoutSection>
|
1160
|
+
<div style={{ height: '500px', padding: '0 16px' }}>
|
1161
|
+
内容区域
|
1162
|
+
</div>
|
1163
|
+
</LayoutSection>
|
1164
|
+
</Layout>
|
1165
|
+
|
1166
|
+
</DemoRow>
|
1167
|
+
);
|
1168
|
+
});
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import {designPage, getComponentCls, iMouseEvent, reactive, useRefs} from "plain-design-composition";
|
2
|
-
import {Button, Checkbox} from "../../../../packages";
|
2
|
+
import {Button, Checkbox, ClientZoom} from "../../../../packages";
|
3
3
|
import {DemoRow} from "../../Demo/DemoRow";
|
4
4
|
import {usePopup} from "../../../../packages/components/usePopup/usePopup";
|
5
5
|
import {ePopupAnimation, ePopupTrigger, iPopupPlacement, iPopupUseOption} from "../../../../packages/components/usePopup/utils/popup.utils";
|
@@ -295,10 +295,13 @@ export const demoAbsolute = designPage(() => {
|
|
295
295
|
|
296
296
|
const handler = {
|
297
297
|
onContextmenu: (e: iMouseEvent) => {
|
298
|
+
|
299
|
+
const { clientX, clientY } = ClientZoom.getClientPosition(e);
|
300
|
+
|
298
301
|
e.preventDefault();
|
299
302
|
$popup.absolute({
|
300
|
-
x:
|
301
|
-
y:
|
303
|
+
x: clientX,
|
304
|
+
y: clientY,
|
302
305
|
type: 'demo-absolute',
|
303
306
|
placement: 'right-start',
|
304
307
|
trigger: 'contextmenu',
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import {designPage, reactive} from "plain-design-composition";
|
2
2
|
import {PlainLogo} from 'plain-icons/src/packages/component/logo/react';
|
3
|
-
import {Select, SelectOption} from "../../../packages";
|
4
|
-
import {PageThemeUtils, ThemePrimaryColors} from "../PageThemeUtils";
|
3
|
+
import {PageThemeUtils, Select, SelectOption, ThemePrimaryColors} from "../../../packages";
|
5
4
|
import ClientZoom from "../../../packages/components/ClientZoom";
|
5
|
+
import logoImage from './plain-design.png';
|
6
6
|
|
7
7
|
export const AppHead = designPage(() => {
|
8
8
|
|
@@ -46,8 +46,8 @@ export const AppHead = designPage(() => {
|
|
46
46
|
return () => (
|
47
47
|
<div className="app-head">
|
48
48
|
<div className="app-head-logo">
|
49
|
-
<PlainLogo style={{ fontSize: '
|
50
|
-
<
|
49
|
+
<PlainLogo style={{ fontSize: '28px', marginRight: '0.4em' }}/>
|
50
|
+
<img src={logoImage}/>
|
51
51
|
</div>
|
52
52
|
<div className="app-head-operation">
|
53
53
|
<Select v-model={state.inputMode} onChange={onInputModeChange} size="mini" width="100" placeholder="输入框" popperAttrs={publicPopperAttrs}>
|
@@ -117,6 +117,7 @@ export const MenuGroups: MenuGroup[] = [
|
|
117
117
|
{ name: 'Card', title: '卡片', page: '/normal/DemoCard', complete: true },
|
118
118
|
{ name: 'Carousel', title: '轮播', page: '/normal/DemoCarousel', complete: true },
|
119
119
|
{ name: 'Collapse', title: '折叠面板', page: '/normal/DemoCollapse', complete: true },
|
120
|
+
{ name: 'Layout', title: '布局', page: '/normal/DemoLayout', complete: true },
|
120
121
|
{ name: 'Alert', title: '提示信息', page: '/normal/DemoAlert', complete: true },
|
121
122
|
{ name: 'KeepAlive', title: '保活', page: '/normal/DemoKeepAlive', complete: true },
|
122
123
|
// {name: 'Triangle', title: '三角形元素', page: '/normal/triangle', complete: false},
|
Binary file
|
package/src/pages/index/main.tsx
CHANGED
@@ -6,8 +6,6 @@ import {installAllIcon} from "../../packages/utils/installAllIcons";
|
|
6
6
|
import {designPage, provide, setComponentPrefix} from "plain-design-composition";
|
7
7
|
import {App} from "./App";
|
8
8
|
import '../module';
|
9
|
-
import {ClientZoom} from "../../packages";
|
10
|
-
import {PageThemeUtils} from "./PageThemeUtils";
|
11
9
|
|
12
10
|
setComponentPrefix(globalComponentPrefix);
|
13
11
|
|
@@ -17,8 +15,6 @@ installIconfontSymbol();
|
|
17
15
|
installAllIcon();
|
18
16
|
// installAllLazyIcons();
|
19
17
|
|
20
|
-
PageThemeUtils.state.zoom != null && ClientZoom.set(PageThemeUtils.state.zoom);
|
21
|
-
|
22
18
|
const Main = designPage(() => {
|
23
19
|
provide('customAppMessage', '全局上下文名称');
|
24
20
|
return () => <App/>;
|