@voplus/morpho-workspace 1.0.0-dev36 → 1.0.0-dev37
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/es/components/AvatarList/index.d.ts +2 -0
- package/es/components/AvatarList/index.js +19 -22
- package/es/components/AvatarList/index.js.map +1 -1
- package/es/components/PageListView/index.d.ts +20 -0
- package/es/components/PageListView/index.js +97 -0
- package/es/components/PageListView/index.js.map +1 -0
- package/es/components/PageListView/index.less +68 -0
- package/es/components/PageListView/state.d.ts +12 -0
- package/es/components/PageListView/state.js +48 -0
- package/es/components/PageListView/state.js.map +1 -0
- package/es/data/meeting/AgendaStore.d.ts +3 -0
- package/es/data/meeting/AgendaStore.js +12 -0
- package/es/data/meeting/AgendaStore.js.map +1 -1
- package/es/data/task/TaskStore.d.ts +1 -1
- package/es/data/task/TaskStore.js +2 -1
- package/es/data/task/TaskStore.js.map +1 -1
- package/es/modules/meeting/components/AgendaList/AgendaItem/components/TaskItem/index.js +16 -15
- package/es/modules/meeting/components/AgendaList/AgendaItem/components/TaskItem/index.js.map +1 -1
- package/es/modules/meeting/components/AgendaList/AgendaItem/components/TaskItem/index.less +15 -17
- package/es/modules/meeting/components/AgendaList/AgendaItem/components/TaskList/index.js +7 -4
- package/es/modules/meeting/components/AgendaList/AgendaItem/components/TaskList/index.js.map +1 -1
- package/es/modules/meeting/components/AgendaList/AgendaItem/components/TaskList/state.d.ts +2 -1
- package/es/modules/meeting/components/AgendaList/AgendaItem/components/TaskList/state.js +10 -4
- package/es/modules/meeting/components/AgendaList/AgendaItem/components/TaskList/state.js.map +1 -1
- package/es/modules/meeting/components/AgendaList/AgendaItem/index.d.ts +1 -0
- package/es/modules/meeting/components/AgendaList/AgendaItem/index.js +41 -24
- package/es/modules/meeting/components/AgendaList/AgendaItem/index.js.map +1 -1
- package/es/modules/meeting/components/AgendaList/AgendaItem/index.less +21 -9
- package/es/modules/meeting/components/AgendaList/AgendaItem/state.d.ts +1 -0
- package/es/modules/meeting/components/AgendaList/AgendaItem/state.js +4 -0
- package/es/modules/meeting/components/AgendaList/AgendaItem/state.js.map +1 -1
- package/es/modules/meeting/components/AgendaList/AgendaNewForm/index.js +1 -1
- package/es/modules/meeting/components/AgendaList/AgendaNewForm/index.js.map +1 -1
- package/es/modules/meeting/components/AgendaList/index.js +12 -10
- package/es/modules/meeting/components/AgendaList/index.js.map +1 -1
- package/es/modules/meeting/components/AgendaList/index.less +5 -2
- package/es/modules/meeting/components/AgendaList/state.d.ts +6 -0
- package/es/modules/meeting/components/AgendaList/state.js +23 -1
- package/es/modules/meeting/components/AgendaList/state.js.map +1 -1
- package/es/modules/meeting/components/MeetingDetail/index.js +8 -3
- package/es/modules/meeting/components/MeetingDetail/index.js.map +1 -1
- package/es/modules/meeting/components/MeetingItem/index.js +1 -6
- package/es/modules/meeting/components/MeetingItem/index.js.map +1 -1
- package/es/modules/tasks/components/SubTaskList/index.js +8 -56
- package/es/modules/tasks/components/SubTaskList/index.js.map +1 -1
- package/es/modules/tasks/components/SubTaskList/state.d.ts +1 -1
- package/es/modules/tasks/components/SubTaskList/state.js +4 -4
- package/es/modules/tasks/components/SubTaskList/state.js.map +1 -1
- package/es/modules/tasks/components/TaskDetail/index.js +4 -7
- package/es/modules/tasks/components/TaskDetail/index.js.map +1 -1
- package/es/modules/tasks/components/TaskItem/TaskItem.js +17 -17
- package/es/modules/tasks/components/TaskItem/TaskItem.js.map +1 -1
- package/es/modules/tasks/components/TaskItem/index.less +11 -16
- package/es/modules/tasks/pages/TaskDefaultView/index.js +2 -3
- package/es/modules/tasks/pages/TaskDefaultView/index.js.map +1 -1
- package/es/modules/tasks/pages/TaskTabView/index.js +2 -3
- package/es/modules/tasks/pages/TaskTabView/index.js.map +1 -1
- package/package.json +6 -6
@@ -5,12 +5,14 @@ declare const AvatarList: {
|
|
5
5
|
className?: string | undefined;
|
6
6
|
onChange?: ((ids?: any[] | undefined, members?: any[] | undefined) => void) | undefined;
|
7
7
|
editable?: boolean | undefined;
|
8
|
+
num?: number | undefined;
|
8
9
|
size?: number | "small" | "default" | "large" | undefined;
|
9
10
|
multiple?: boolean | undefined;
|
10
11
|
}): JSX.Element;
|
11
12
|
defaultProps: {
|
12
13
|
editable: boolean;
|
13
14
|
size: string;
|
15
|
+
num: number;
|
14
16
|
};
|
15
17
|
};
|
16
18
|
export default AvatarList;
|
@@ -8,10 +8,10 @@ import { useObserver } from "mobx-react-lite";
|
|
8
8
|
import styles from "./index.less";
|
9
9
|
import { State } from "./state";
|
10
10
|
const AvatarList = (props) => {
|
11
|
-
const { multiple, list, size, editable, className } = props;
|
11
|
+
const { multiple, list, size, editable, num, className } = props;
|
12
12
|
const [state] = useState(new State());
|
13
13
|
const onTick = async (item, checked) => {
|
14
|
-
if (item.disabled)
|
14
|
+
if (item.disabled || !editable)
|
15
15
|
return;
|
16
16
|
state.itemId = item.id;
|
17
17
|
const checkedIds = state.items.filter(({ checked }) => checked).map(({ id }) => id);
|
@@ -62,13 +62,18 @@ const AvatarList = (props) => {
|
|
62
62
|
}, [state.visible]);
|
63
63
|
useEffect(() => {
|
64
64
|
state.members = list || [];
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
65
|
+
const total = (list && list.length) || 0;
|
66
|
+
// if (!multiple) {
|
67
|
+
const parentWidth = ref.current ? ref.current.parentNode.offsetWidth : 0;
|
68
|
+
const totalNum = props.num || Math.round(parentWidth / 30) - 1;
|
69
|
+
// 最多显示10个
|
70
|
+
const num = totalNum > 9 && !multiple ? 9 : totalNum;
|
71
|
+
state.hasMore = !!(num && num < total);
|
72
|
+
state.num = num || total;
|
73
|
+
// } else {
|
74
|
+
// state.num = total;
|
75
|
+
// state.hasMore = false;
|
76
|
+
// }
|
72
77
|
}, [list]);
|
73
78
|
const ref = useRef(null);
|
74
79
|
const colorList = ["#765FEE", "#fe4066", "#FFC832", "#FF8F5E", "#3AC43A", "#FFC832"];
|
@@ -80,7 +85,7 @@ const AvatarList = (props) => {
|
|
80
85
|
React.createElement(Avatar, { src: member.url, size: size, className: "avatar-img", style: member.url
|
81
86
|
? {}
|
82
87
|
: { backgroundColor: colorList[index % 6], opacity: member.disabled ? 0.7 : 1 } }, setName(member.name))))),
|
83
|
-
editable
|
88
|
+
(editable || state.hasMore) && (React.createElement(Dropdown, { onVisibleChange: visibleChange, visible: state.visible, overlay: React.createElement(Menu, null,
|
84
89
|
React.createElement("div", { className: "avatar-search" },
|
85
90
|
React.createElement(Input.Search, { onSearch: searchByKeWord })),
|
86
91
|
state.items.map((item, index) => (React.createElement(Menu.Item, { key: item.id },
|
@@ -90,23 +95,15 @@ const AvatarList = (props) => {
|
|
90
95
|
item.checked && (React.createElement(FAIcon, { icon: faCheck, className: classnames("icon-check", { disabled: item.disabled }) })),
|
91
96
|
state.loading && state.itemId === item.id && (React.createElement(Icon, { type: "loading", className: "icon-check" }))))))), overlayClassName: styles["avatar-dropdown"],
|
92
97
|
// placement="bottomCenter"
|
93
|
-
trigger: ["click"], getPopupContainer: (triggerNode) => triggerNode.parentElement },
|
94
|
-
React.createElement(Avatar, { size: size, className: "avatar-text" },
|
95
|
-
"+",
|
96
|
-
state.hasMore ? state.members.length - state.num : ""))) : state.hasMore ? (React.createElement(Dropdown, { overlayClassName: styles["avatar-dropdown"],
|
97
|
-
// placement="bottomCenter"
|
98
|
-
getPopupContainer: (triggerNode) => triggerNode.parentElement, overlay: React.createElement(Menu, null, state.members.map((item, index) => (React.createElement(Menu.Item, { key: item.id },
|
99
|
-
React.createElement("div", { className: "avatar-item" },
|
100
|
-
React.createElement(Avatar, { src: item.url, size: size, className: "avatar-img", style: { backgroundColor: colorList[index % 6] } }),
|
101
|
-
React.createElement("span", { className: classnames({ "name-disabled": item.disabled }) }, item.name),
|
102
|
-
item.checked && (React.createElement(FAIcon, { icon: faCheck, className: classnames("icon-check", { disabled: item.disabled }) }))))))) },
|
98
|
+
trigger: editable ? ["click"] : ["hover"], getPopupContainer: (triggerNode) => triggerNode.parentElement },
|
103
99
|
React.createElement(Avatar, { size: size, className: "avatar-text" },
|
104
100
|
"+",
|
105
|
-
state.members.length - state.num
|
101
|
+
state.hasMore ? state.members.length - state.num : ""))))));
|
106
102
|
};
|
107
103
|
AvatarList.defaultProps = {
|
108
104
|
editable: true,
|
109
|
-
size: "small"
|
105
|
+
size: "small",
|
106
|
+
num: 0
|
110
107
|
};
|
111
108
|
export default AvatarList;
|
112
109
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/AvatarList/index.tsx"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAC;AAC3D,OAAO,EAAE,eAAe,IAAI,MAAM,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,MAAM,UAAU,GAAG,CAAC,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/AvatarList/index.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import React from "react";
|
2
|
+
declare const _default: React.ForwardRefExoticComponent<{
|
3
|
+
data: any[];
|
4
|
+
page?: number | undefined;
|
5
|
+
pageSize?: number | undefined;
|
6
|
+
loading?: boolean | undefined;
|
7
|
+
children?: any;
|
8
|
+
scrollParentRef?: any;
|
9
|
+
description?: React.ReactNode;
|
10
|
+
imageStyle?: React.CSSProperties | undefined;
|
11
|
+
image?: React.ReactNode;
|
12
|
+
noDataTip?: boolean | undefined;
|
13
|
+
title?: React.ReactNode;
|
14
|
+
header?: boolean | undefined;
|
15
|
+
extra?: React.ReactNode;
|
16
|
+
loadMore?: (() => void) | undefined;
|
17
|
+
onDelete?: ((params?: any) => void) | undefined;
|
18
|
+
onAdd?: (() => void) | undefined;
|
19
|
+
} & React.RefAttributes<unknown>>;
|
20
|
+
export default _default;
|
@@ -0,0 +1,97 @@
|
|
1
|
+
import React, { forwardRef, useEffect, useImperativeHandle, useState } from "react";
|
2
|
+
import { faCheckSquare, faPlus } from "@fortawesome/pro-light-svg-icons";
|
3
|
+
import { FontAwesomeIcon as FAIcon } from "@fortawesome/react-fontawesome";
|
4
|
+
import { Button, Checkbox, Empty, Icon, message, Spin, Modal } from "@voplus/antd";
|
5
|
+
import { Scrollbars } from "react-custom-scrollbars";
|
6
|
+
import InfiniteScroll from "react-infinite-scroller";
|
7
|
+
import State from "./state";
|
8
|
+
import { FileStore } from "@voplus/morpho-document/es/data/FileStore/FileContext";
|
9
|
+
import { useObserver } from "mobx-react-lite";
|
10
|
+
import styles from "./index.less";
|
11
|
+
const PageListView = (props, ref) => {
|
12
|
+
const { data, children, loading, scrollParentRef, description, imageStyle, image, header, title, extra, onDelete, onAdd } = props;
|
13
|
+
const [store] = useState(new FileStore());
|
14
|
+
const [context] = useState(new State());
|
15
|
+
context.noDataTip = props.noDataTip === undefined ? true : props.noDataTip;
|
16
|
+
context.pageSize = props.pageSize || 20;
|
17
|
+
useEffect(() => {
|
18
|
+
context.data = data;
|
19
|
+
context.list = props.page > 1 ? [...context.list, ...data] : data;
|
20
|
+
if (!loading && (!data.length || data.length < context.pageSize))
|
21
|
+
context.hasMore = false;
|
22
|
+
}, [data]);
|
23
|
+
const reset = () => {
|
24
|
+
context.list = [];
|
25
|
+
context.hasMore = true;
|
26
|
+
context.ids = [];
|
27
|
+
context.multiple = false;
|
28
|
+
context.checkAll = false;
|
29
|
+
};
|
30
|
+
const loadMore = async () => {
|
31
|
+
if (loading)
|
32
|
+
return;
|
33
|
+
if (!context.data.length || context.data.length < context.pageSize)
|
34
|
+
context.hasMore = false;
|
35
|
+
if (context.list.length && !context.hasMore)
|
36
|
+
return message.warning("List loaded all");
|
37
|
+
await props.loadMore();
|
38
|
+
};
|
39
|
+
const onCheck = (checkedValues) => {
|
40
|
+
context.ids = checkedValues;
|
41
|
+
context.checkAll = checkedValues.length === context.list.length;
|
42
|
+
};
|
43
|
+
const onMultiple = () => {
|
44
|
+
context.multiple = true;
|
45
|
+
};
|
46
|
+
const onCheckAll = (e) => {
|
47
|
+
context.ids = e.target.checked ? context.list.map(({ id }) => id) : [];
|
48
|
+
context.checkAll = e.target.checked;
|
49
|
+
};
|
50
|
+
const cancelMultiple = () => {
|
51
|
+
context.multiple = false;
|
52
|
+
context.ids = [];
|
53
|
+
context.checkAll = false;
|
54
|
+
};
|
55
|
+
const onMove = () => {
|
56
|
+
if (!context.ids.length)
|
57
|
+
return message.info("Nothing to choice");
|
58
|
+
return store.onMove(context.ids);
|
59
|
+
};
|
60
|
+
const onClickDelete = async () => {
|
61
|
+
if (!context.ids.length)
|
62
|
+
return message.info("Nothing to choice");
|
63
|
+
Modal.confirm({
|
64
|
+
title: "Do you want to delete these items?",
|
65
|
+
async onOk() {
|
66
|
+
await onDelete(context.ids);
|
67
|
+
context.checkAll = false;
|
68
|
+
},
|
69
|
+
onCancel() { }
|
70
|
+
});
|
71
|
+
};
|
72
|
+
useImperativeHandle(ref, () => ({
|
73
|
+
reset: reset
|
74
|
+
}));
|
75
|
+
return useObserver(() => (React.createElement(React.Fragment, null,
|
76
|
+
header && (React.createElement("div", { className: styles["sub-list-header"] },
|
77
|
+
!context.multiple ? (React.createElement("div", { className: "multiple-icon-text", onClick: onMultiple },
|
78
|
+
React.createElement(Button, { type: "link" },
|
79
|
+
React.createElement(FAIcon, { icon: faCheckSquare })),
|
80
|
+
title)) : (React.createElement("div", { className: "select-operate-btn" },
|
81
|
+
React.createElement(Checkbox, { onChange: onCheckAll, checked: context.checkAll }, "Select All"),
|
82
|
+
React.createElement(Button, { type: "link", onClick: onMove }, "Move"),
|
83
|
+
React.createElement(Button, { type: "link", className: "del-btn", onClick: onClickDelete }, "Delete"),
|
84
|
+
React.createElement(Button, { type: "link", className: "cancel-btn", onClick: cancelMultiple }, "Cancel"))),
|
85
|
+
React.createElement("div", { className: "operate-icon" },
|
86
|
+
extra,
|
87
|
+
React.createElement("span", { className: "plus-icon", onClick: onAdd },
|
88
|
+
React.createElement(FAIcon, { icon: faPlus, color: "#fff" }))))),
|
89
|
+
React.createElement(Scrollbars, null,
|
90
|
+
React.createElement(InfiniteScroll, { initialLoad: false, pageStart: 1, loadMore: loadMore, hasMore: loading && !!context.hasMore, useWindow: false, threshold: 150, getScrollParent: () => scrollParentRef },
|
91
|
+
React.createElement(Checkbox.Group, { value: context.ids, onChange: onCheck, className: styles["page-list-view"] }, children(context.list, context.multiple)),
|
92
|
+
loading && context.hasMore && (React.createElement("div", { className: styles["page-list-view_loading"] },
|
93
|
+
React.createElement(Spin, { tip: "Loading...", indicator: React.createElement(Icon, { type: "loading" }) }))),
|
94
|
+
!loading && !context.list.length && context.noDataTip && (React.createElement(Empty, { description: description, imageStyle: imageStyle, image: image })))))));
|
95
|
+
};
|
96
|
+
export default forwardRef(PageListView);
|
97
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/PageListView/index.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,68 @@
|
|
1
|
+
@import "~@voplus/antd/es/style/themes/default.less";
|
2
|
+
.page-list-view {
|
3
|
+
display: block;
|
4
|
+
flex: 1;
|
5
|
+
}
|
6
|
+
.sub-list-header {
|
7
|
+
position: relative;
|
8
|
+
display: flex;
|
9
|
+
justify-content: space-between;
|
10
|
+
align-items: center;
|
11
|
+
padding: 10px 0;
|
12
|
+
margin: 0 20px;
|
13
|
+
color: #000;
|
14
|
+
font-size: 15px;
|
15
|
+
font-weight: 500;
|
16
|
+
line-height: 15px;
|
17
|
+
:global {
|
18
|
+
.multiple-icon-text {
|
19
|
+
cursor: pointer;
|
20
|
+
.ant-btn {
|
21
|
+
padding: 0 10px 0 0;
|
22
|
+
font-size: 16px;
|
23
|
+
}
|
24
|
+
}
|
25
|
+
.select-operate-btn {
|
26
|
+
.ant-btn {
|
27
|
+
padding: 0 10px;
|
28
|
+
font-style: italic;
|
29
|
+
}
|
30
|
+
.del-btn {
|
31
|
+
color: #ff4d4f;
|
32
|
+
&:hover {
|
33
|
+
color: #ff7875;
|
34
|
+
}
|
35
|
+
}
|
36
|
+
.cancel-btn {
|
37
|
+
color: #666;
|
38
|
+
&:hover {
|
39
|
+
color: @primary-color;
|
40
|
+
}
|
41
|
+
}
|
42
|
+
}
|
43
|
+
.operate-icon span {
|
44
|
+
margin-left: 10px;
|
45
|
+
cursor: pointer;
|
46
|
+
}
|
47
|
+
.plus-icon {
|
48
|
+
display: inline-block;
|
49
|
+
padding: 4px;
|
50
|
+
font-size: 13px;
|
51
|
+
line-height: 1px;
|
52
|
+
background: #1abc9c;
|
53
|
+
cursor: pointer;
|
54
|
+
}
|
55
|
+
}
|
56
|
+
}
|
57
|
+
.sub-list-header:after {
|
58
|
+
position: absolute;
|
59
|
+
content: "";
|
60
|
+
left: 0;
|
61
|
+
bottom: 0;
|
62
|
+
right: 0;
|
63
|
+
border-bottom: 1px solid @border-color-base;
|
64
|
+
}
|
65
|
+
.page-list-view_loading {
|
66
|
+
padding-top: 20px;
|
67
|
+
text-align: center;
|
68
|
+
}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
import { __decorate } from "tslib";
|
2
|
+
import { observable } from "mobx";
|
3
|
+
export default class State {
|
4
|
+
constructor() {
|
5
|
+
this.list = [];
|
6
|
+
this.data = [];
|
7
|
+
this.page = 1;
|
8
|
+
this.pageSize = 20;
|
9
|
+
this.noDataTip = true;
|
10
|
+
this.loading = false;
|
11
|
+
this.hasMore = true;
|
12
|
+
this.checkAll = false;
|
13
|
+
this.multiple = false;
|
14
|
+
this.ids = [];
|
15
|
+
// public static ReactContext = React.createContext<PageViewContext | undefined>(undefined);
|
16
|
+
}
|
17
|
+
}
|
18
|
+
__decorate([
|
19
|
+
observable
|
20
|
+
], State.prototype, "list", void 0);
|
21
|
+
__decorate([
|
22
|
+
observable
|
23
|
+
], State.prototype, "data", void 0);
|
24
|
+
__decorate([
|
25
|
+
observable
|
26
|
+
], State.prototype, "page", void 0);
|
27
|
+
__decorate([
|
28
|
+
observable
|
29
|
+
], State.prototype, "pageSize", void 0);
|
30
|
+
__decorate([
|
31
|
+
observable
|
32
|
+
], State.prototype, "noDataTip", void 0);
|
33
|
+
__decorate([
|
34
|
+
observable
|
35
|
+
], State.prototype, "loading", void 0);
|
36
|
+
__decorate([
|
37
|
+
observable
|
38
|
+
], State.prototype, "hasMore", void 0);
|
39
|
+
__decorate([
|
40
|
+
observable
|
41
|
+
], State.prototype, "checkAll", void 0);
|
42
|
+
__decorate([
|
43
|
+
observable
|
44
|
+
], State.prototype, "multiple", void 0);
|
45
|
+
__decorate([
|
46
|
+
observable
|
47
|
+
], State.prototype, "ids", void 0);
|
48
|
+
//# sourceMappingURL=state.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/components/PageListView/state.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAGlC,MAAM,CAAC,OAAO,OAAO,KAAK;IAA1B;QACoB,SAAI,GAAU,EAAE,CAAC;QACjB,SAAI,GAAU,EAAE,CAAC;QACjB,SAAI,GAAW,CAAC,CAAC;QACjB,aAAQ,GAAW,EAAE,CAAC;QACtB,cAAS,GAAY,IAAI,CAAC;QAC1B,YAAO,GAAY,KAAK,CAAC;QACzB,YAAO,GAAY,IAAI,CAAC;QACxB,aAAQ,GAAY,KAAK,CAAC;QAC1B,aAAQ,GAAY,KAAK,CAAC;QAC1B,QAAG,GAAa,EAAE,CAAC;QACtC,4FAA4F;IAC7F,CAAC;CAAA;AAXY;IAAX,UAAU;mCAAyB;AACxB;IAAX,UAAU;mCAAyB;AACxB;IAAX,UAAU;mCAAyB;AACxB;IAAX,UAAU;uCAA8B;AAC7B;IAAX,UAAU;wCAAkC;AACjC;IAAX,UAAU;sCAAiC;AAChC;IAAX,UAAU;sCAAgC;AAC/B;IAAX,UAAU;uCAAkC;AACjC;IAAX,UAAU;uCAAkC;AACjC;IAAX,UAAU;kCAA2B"}
|
@@ -4,9 +4,12 @@ import { IAgenda } from "./interfaces";
|
|
4
4
|
import { CreateAgendaOptions, EditAgendaOptions } from "./types";
|
5
5
|
/** 会议存储为会议操作提供服务 */
|
6
6
|
export declare class AgendaStore extends DocumentTypeStore<IAgenda, LoadDocumentOptions, LoadDocumentListOptions, CreateAgendaOptions, EditAgendaOptions, any> {
|
7
|
+
private readonly _agendaMoved;
|
8
|
+
get AgendaMovedEvent(): import("strongly-typed-events").IEvent<string, IAgenda[]>;
|
7
9
|
/** Name of the store */
|
8
10
|
readonly name: string;
|
9
11
|
constructor(endpoint: ApiEndPoint, _documents: DocumentStore);
|
12
|
+
move(ids: string[], targetId: string): Promise<void>;
|
10
13
|
}
|
11
14
|
/** 响应钩子检索 MeetingStore */
|
12
15
|
export declare const useAgendaStore: () => AgendaStore;
|
@@ -1,13 +1,25 @@
|
|
1
1
|
import { useStore } from "@voplus/morpho-data";
|
2
2
|
import { DocumentTypeStore, useDocumentStore } from "@voplus/morpho-document";
|
3
|
+
import { EventDispatcher } from "strongly-typed-events";
|
3
4
|
const StoreName = "AgendaStore";
|
4
5
|
/** 会议存储为会议操作提供服务 */
|
5
6
|
export class AgendaStore extends DocumentTypeStore {
|
6
7
|
constructor(endpoint, _documents) {
|
7
8
|
super(endpoint, "/agenda", _documents);
|
9
|
+
this._agendaMoved = new EventDispatcher();
|
8
10
|
/** Name of the store */
|
9
11
|
this.name = StoreName;
|
10
12
|
}
|
13
|
+
get AgendaMovedEvent() {
|
14
|
+
return this._agendaMoved.asEvent();
|
15
|
+
}
|
16
|
+
async move(ids, targetId) {
|
17
|
+
if (!targetId)
|
18
|
+
return;
|
19
|
+
let r = await this._documents.move(ids, targetId);
|
20
|
+
const list = r.filter(({ type }) => type === "Agenda");
|
21
|
+
this._agendaMoved.dispatch(targetId, list);
|
22
|
+
}
|
11
23
|
}
|
12
24
|
/** 响应钩子检索 MeetingStore */
|
13
25
|
export const useAgendaStore = () => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AgendaStore.js","sourceRoot":"","sources":["../../../src/data/meeting/AgendaStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAEN,iBAAiB,EAGjB,gBAAgB,EAChB,MAAM,yBAAyB,CAAC;
|
1
|
+
{"version":3,"file":"AgendaStore.js","sourceRoot":"","sources":["../../../src/data/meeting/AgendaStore.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAEN,iBAAiB,EAGjB,gBAAgB,EAChB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAIxD,MAAM,SAAS,GAAG,aAAa,CAAC;AAEhC,oBAAoB;AACpB,MAAM,OAAO,WAAY,SAAQ,iBAOhC;IASA,YAAmB,QAAqB,EAAE,UAAyB;QAClE,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;QATvB,iBAAY,GAAG,IAAI,eAAe,EAAqB,CAAC;QAKzE,wBAAwB;QACR,SAAI,GAAW,SAAS,CAAC;IAIzC,CAAC;IARD,IAAW,gBAAgB;QAC1B,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;IACpC,CAAC;IAOM,KAAK,CAAC,IAAI,CAAC,GAAa,EAAE,QAAgB;QAChD,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAW,EAAE,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;QAChE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC5C,CAAC;CACD;AAED,0BAA0B;AAC1B,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE;IAClC,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;IACrC,OAAO,QAAQ,CACd,SAAS,EACT,OAAO,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,CAClE,CAAC;AACH,CAAC,CAAC"}
|
@@ -8,7 +8,7 @@ export declare class TaskStore extends DocumentTypeStore<ITask, LoadDocumentOpti
|
|
8
8
|
/** Name of the store */
|
9
9
|
readonly name: string;
|
10
10
|
/** Event fires when a new task has been moved. */
|
11
|
-
get TaskMovedEvent(): import("strongly-typed-events").IEvent<
|
11
|
+
get TaskMovedEvent(): import("strongly-typed-events").IEvent<string, ITask[]>;
|
12
12
|
constructor(endpoint: ApiEndPoint, documents: DocumentStore);
|
13
13
|
/** drag && drop of sort */
|
14
14
|
moveAfter(id: string, afterId: string): Promise<void>;
|
@@ -26,8 +26,9 @@ export class TaskStore extends DocumentTypeStore {
|
|
26
26
|
if (!targetId)
|
27
27
|
return;
|
28
28
|
let r = await this._documents.move(ids, targetId);
|
29
|
+
const list = r.filter(({ type }) => type === "Task");
|
29
30
|
this.DispatchDeletedEvent(this, r);
|
30
|
-
this._taskMoved.dispatch(
|
31
|
+
this._taskMoved.dispatch(targetId, list);
|
31
32
|
}
|
32
33
|
}
|
33
34
|
/** React hook to retrieve TaskStore */
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TaskStore.js","sourceRoot":"","sources":["../../../src/data/task/TaskStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAEN,iBAAiB,EAGjB,gBAAgB,EAChB,MAAM,yBAAyB,CAAC;AAIjC,MAAM,SAAS,GAAG,WAAW,CAAC;AAE9B,sDAAsD;AACtD,MAAM,OAAO,SAAU,SAAQ,iBAO9B;IAYA,YAAmB,QAAqB,EAAE,SAAwB;QACjE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAZtC,kCAAkC;QACjB,eAAU,GAAG,IAAI,eAAe,
|
1
|
+
{"version":3,"file":"TaskStore.js","sourceRoot":"","sources":["../../../src/data/task/TaskStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAEN,iBAAiB,EAGjB,gBAAgB,EAChB,MAAM,yBAAyB,CAAC;AAIjC,MAAM,SAAS,GAAG,WAAW,CAAC;AAE9B,sDAAsD;AACtD,MAAM,OAAO,SAAU,SAAQ,iBAO9B;IAYA,YAAmB,QAAqB,EAAE,SAAwB;QACjE,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAZtC,kCAAkC;QACjB,eAAU,GAAG,IAAI,eAAe,EAAmB,CAAC;QAErE,wBAAwB;QACR,SAAI,GAAW,SAAS,CAAC;IASzC,CAAC;IAPD,kDAAkD;IAClD,IAAW,cAAc;QACxB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IAClC,CAAC;IAMD,2BAA2B;IACpB,KAAK,CAAC,SAAS,CAAC,EAAU,EAAE,OAAe;QACjD,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IACD;;OAEG;IACI,KAAK,CAAC,IAAI,CAAC,GAAa,EAAE,QAAgB;QAChD,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAClD,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAS,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;CACD;AAED,uCAAuC;AACvC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE;IAChC,MAAM,SAAS,GAAG,gBAAgB,EAAE,CAAC;IACrC,OAAO,QAAQ,CACd,SAAS,EACT,OAAO,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,CAChE,CAAC;AACH,CAAC,CAAC"}
|
@@ -1,36 +1,37 @@
|
|
1
|
-
import React from "react";
|
2
|
-
import { faPaperclip } from "@fortawesome/pro-light-svg-icons";
|
3
|
-
import { FontAwesomeIcon as FAIcon } from "@fortawesome/react-fontawesome";
|
1
|
+
import React, { useState } from "react";
|
4
2
|
import AvatarList from "../../../../../../../components/AvatarList";
|
5
3
|
import StarIcon from "../../../../../../../controls/StarIcon";
|
6
|
-
import { Row } from "@voplus/antd";
|
7
4
|
import { InlineEdit } from "@voplus/morpho-ui";
|
8
5
|
import { useObserver } from "mobx-react-lite";
|
9
6
|
import moment from "moment";
|
10
7
|
import MoreOperateDropdown from "../../../../../../../controls/MoreOperateDropdown";
|
8
|
+
import { FileStore } from "@voplus/morpho-document/es/data/FileStore/FileContext";
|
11
9
|
import { useTask, useTaskStore } from "../../../../../../../data/task";
|
12
10
|
import "./index.less";
|
13
11
|
const AgendaTaskItem = (props) => {
|
14
12
|
const { id, editable } = props;
|
13
|
+
const [store] = useState(new FileStore());
|
15
14
|
const taskStore = useTaskStore();
|
16
15
|
const task = useTask(id, { reload: false });
|
17
|
-
const
|
18
|
-
|
16
|
+
// const [name, setName] = useState(task.name);
|
17
|
+
const onSaveTask = async (e) => {
|
18
|
+
// console.log(!e.target.value || e.target.value.trim() === task.name, "e.target.value");
|
19
|
+
// if (!e.target.value || e.target.value.trim() === task.name) return;
|
20
|
+
// await taskStore.edit(id, { Name: e.target.value });
|
21
|
+
// message.success("Change successful");
|
22
|
+
await taskStore.edit(id, { Name: task.name });
|
19
23
|
};
|
20
24
|
const onChangeMember = (ids) => {
|
21
25
|
taskStore.edit(id, { MemberIds: ids });
|
22
26
|
};
|
23
27
|
return useObserver(() => (React.createElement("div", { className: "agenda-task-item" },
|
24
|
-
React.createElement(
|
28
|
+
React.createElement("div", { className: "agenda-task-item-left" },
|
25
29
|
React.createElement(StarIcon, { important: task.important, color: task.taskStatus === "Done" ? "rgba(168, 168, 168,0.5)" : "#999", onchange: () => taskStore.edit(task.id, { Important: !task.important }), className: "margin-right-10" }),
|
26
|
-
React.createElement(InlineEdit, { editable: editable, defaultValue: task.name, content: v => React.createElement("
|
27
|
-
React.createElement("div",
|
28
|
-
React.createElement(AvatarList, { list: task.members || [], editable: editable, onChange: onChangeMember }),
|
29
|
-
React.createElement("span", { className: "margin-left-15" },
|
30
|
-
|
31
|
-
(task.documents || 0) - (task.tasks || 0)),
|
32
|
-
React.createElement("span", { className: "margin-left-15" }, moment(task.dueDate).format("MMM DD")),
|
33
|
-
React.createElement(MoreOperateDropdown, { open: true, edit: false, url: `/tasks/${props.id}`, onDelete: () => taskStore.delete([id], { DeleteChilds: true }), className: "task-more-operate" })))));
|
30
|
+
React.createElement(InlineEdit, { editable: editable, defaultValue: task.name, content: v => React.createElement("div", { className: "task-name" }, v.store.value), onSave: onSaveTask })),
|
31
|
+
React.createElement("div", null,
|
32
|
+
React.createElement(AvatarList, { list: task.members || [], num: 4, editable: editable, onChange: onChangeMember }),
|
33
|
+
React.createElement("span", { className: "margin-right-15 margin-left-15" }, moment(task.dueDate).format("MMM DD")),
|
34
|
+
React.createElement(MoreOperateDropdown, { open: true, shape: true, size: "small", edit: false, url: `/tasks/${props.id}`, onMove: () => store.onMove([id]), onPaste: () => taskStore.move(store.moveIds, id), onDelete: () => taskStore.delete([id], { DeleteChilds: true }), className: "task-more-operate" })))));
|
34
35
|
};
|
35
36
|
export default AgendaTaskItem;
|
36
37
|
//# sourceMappingURL=index.js.map
|
package/es/modules/meeting/components/AgendaList/AgendaItem/components/TaskItem/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../src/modules/meeting/components/AgendaList/AgendaItem/components/TaskItem/index.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../src/modules/meeting/components/AgendaList/AgendaItem/components/TaskItem/index.tsx"],"names":[],"mappings":"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"}
|
@@ -6,7 +6,7 @@
|
|
6
6
|
align-items: center;
|
7
7
|
position: relative;
|
8
8
|
color: #444;
|
9
|
-
|
9
|
+
line-height: 40px;
|
10
10
|
cursor: pointer;
|
11
11
|
& + .agenda-task-item:after {
|
12
12
|
position: absolute;
|
@@ -15,26 +15,24 @@
|
|
15
15
|
top: 0;
|
16
16
|
border-top: 1px solid @border-color-base;
|
17
17
|
}
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
&:hover {
|
32
|
-
color: #52c41a;
|
18
|
+
.agenda-task-item-left {
|
19
|
+
display: flex;
|
20
|
+
flex: 1;
|
21
|
+
max-width: 60%;
|
22
|
+
align-items: center;
|
23
|
+
.morpho-inline-edit {
|
24
|
+
flex: 1;
|
25
|
+
overflow: hidden;
|
26
|
+
.task-name {
|
27
|
+
overflow: hidden;
|
28
|
+
white-space: nowrap;
|
29
|
+
text-overflow: ellipsis;
|
30
|
+
}
|
33
31
|
}
|
34
32
|
}
|
35
33
|
.task-aside {
|
36
34
|
.task-more-operate {
|
37
|
-
opacity: 0;
|
35
|
+
// opacity: 0;
|
38
36
|
margin-left: 10px;
|
39
37
|
}
|
40
38
|
.priority-low,
|
@@ -1,15 +1,15 @@
|
|
1
1
|
import React, { useEffect, useState } from "react";
|
2
2
|
import TaskItem from "../TaskItem";
|
3
|
-
import { faPlus } from "@fortawesome/pro-light-svg-icons";
|
3
|
+
import { faUndo, faPlus } from "@fortawesome/pro-light-svg-icons";
|
4
4
|
import { FontAwesomeIcon as FAIcon } from "@fortawesome/react-fontawesome";
|
5
|
-
import { Modal, Skeleton } from "@voplus/antd";
|
5
|
+
import { Modal, Skeleton, Button } from "@voplus/antd";
|
6
6
|
import { useObserver } from "mobx-react-lite";
|
7
7
|
import { useTaskListEffect, useTaskStore } from "../../../../../../../data/task";
|
8
8
|
import NewTaskForm from "../../../../../../tasks/components/NewTaskForm";
|
9
9
|
// import "./index.less";
|
10
10
|
import { State } from "./state";
|
11
11
|
const AgendaItem = (props) => {
|
12
|
-
const { id, name, editable } = props;
|
12
|
+
const { id, name, editable, onCancel } = props;
|
13
13
|
const taskStore = useTaskStore();
|
14
14
|
const [state] = useState(new State(taskStore));
|
15
15
|
state.props = props;
|
@@ -30,7 +30,10 @@ const AgendaItem = (props) => {
|
|
30
30
|
editable && (React.createElement("div", { className: "agenda-task-item" },
|
31
31
|
React.createElement("span", { onClick: () => setVisible(true) },
|
32
32
|
React.createElement(FAIcon, { icon: faPlus }),
|
33
|
-
" Add Task")
|
33
|
+
" Add Task"),
|
34
|
+
React.createElement("div", null,
|
35
|
+
React.createElement(Button, { size: "small", shape: "circle", onClick: onCancel },
|
36
|
+
React.createElement(FAIcon, { icon: faUndo }))))),
|
34
37
|
React.createElement(Modal, { title: name, visible: state.visible, onCancel: () => setVisible(false), footer: null },
|
35
38
|
React.createElement(NewTaskForm, { parentId: id, onCancel: () => (state.visible = false), onSave: () => setVisible(false) })))));
|
36
39
|
};
|