@voplus/morpho-workspace 6.1.25 → 6.1.26
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/data/work-schedule/WorkScheduleStore.d.ts +7 -1
- package/es/data/work-schedule/WorkScheduleStore.js +12 -4
- package/es/data/work-schedule/WorkScheduleStore.js.map +1 -1
- package/es/modules/tasks/components/TaskOverview/index.d.ts +1 -4
- package/es/modules/tasks/components/TaskOverview/index.js +15 -19
- package/es/modules/tasks/components/TaskOverview/index.js.map +1 -1
- package/es/modules/tasks/pages/TaskListPage/index.js +35 -24
- package/es/modules/tasks/pages/TaskListPage/index.js.map +1 -1
- package/es/modules/tasks/pages/TaskListPage/state.d.ts +6 -8
- package/es/modules/tasks/pages/TaskListPage/state.js +55 -72
- package/es/modules/tasks/pages/TaskListPage/state.js.map +1 -1
- package/es/modules/work/components/WorkOverview/index.d.ts +1 -4
- package/es/modules/work/components/WorkOverview/index.js +15 -21
- package/es/modules/work/components/WorkOverview/index.js.map +1 -1
- package/es/modules/work/components/WorkPanel/index.js +13 -14
- package/es/modules/work/components/WorkPanel/index.js.map +1 -1
- package/es/modules/work/pages/WorkListPage2/index.js +40 -29
- package/es/modules/work/pages/WorkListPage2/index.js.map +1 -1
- package/es/modules/work/pages/WorkListPage2/state.d.ts +5 -6
- package/es/modules/work/pages/WorkListPage2/state.js +68 -70
- package/es/modules/work/pages/WorkListPage2/state.js.map +1 -1
- package/es/modules/work/work-schedule/components/WorkScheduleOverview/index.d.ts +1 -4
- package/es/modules/work/work-schedule/components/WorkScheduleOverview/index.js +15 -17
- package/es/modules/work/work-schedule/components/WorkScheduleOverview/index.js.map +1 -1
- package/es/modules/work/work-schedule/pages/WorkScheduleListPage/index.js +34 -23
- package/es/modules/work/work-schedule/pages/WorkScheduleListPage/index.js.map +1 -1
- package/es/modules/work/work-schedule/pages/WorkScheduleListPage/state.d.ts +7 -6
- package/es/modules/work/work-schedule/pages/WorkScheduleListPage/state.js +89 -73
- package/es/modules/work/work-schedule/pages/WorkScheduleListPage/state.js.map +1 -1
- package/package.json +1 -1
- package/es/modules/tasks/components/TaskOverview/state.d.ts +0 -8
- package/es/modules/tasks/components/TaskOverview/state.js +0 -65
- package/es/modules/tasks/components/TaskOverview/state.js.map +0 -1
- package/es/modules/work/components/WorkOverview/state.d.ts +0 -8
- package/es/modules/work/components/WorkOverview/state.js +0 -65
- package/es/modules/work/components/WorkOverview/state.js.map +0 -1
- package/es/modules/work/work-schedule/components/WorkScheduleOverview/state.d.ts +0 -8
- package/es/modules/work/work-schedule/components/WorkScheduleOverview/state.js +0 -63
- package/es/modules/work/work-schedule/components/WorkScheduleOverview/state.js.map +0 -1
@@ -1,5 +1,5 @@
|
|
1
1
|
import { ApiEndPoint } from "@voplus/api";
|
2
|
-
import { CountedMap, Store, StoreActionOptions } from "@voplus/morpho-data";
|
2
|
+
import { CountedMap, Store, StoreActionOptions, FilterOption } from "@voplus/morpho-data";
|
3
3
|
import { CreateWorkScheduleOptions, DeleteWorkScheduleOptions, EditWorkScheduleOptions, LoadWorkScheduleOptions, CreateWorkOptionsOptions } from "./types";
|
4
4
|
import { IWorkSchedule } from "./interfaces";
|
5
5
|
import { LoadDocumentListOptions } from "@voplus/morpho-document-core";
|
@@ -31,6 +31,12 @@ export declare class WorkScheduleStore extends Store {
|
|
31
31
|
*/
|
32
32
|
loadList(options?: LoadDocumentListOptions): Promise<IWorkSchedule[]>;
|
33
33
|
load(id: string, options: LoadWorkScheduleOptions): Promise<IWorkSchedule>;
|
34
|
+
/** count */
|
35
|
+
count(options: {
|
36
|
+
data: {
|
37
|
+
Filters: FilterOption[];
|
38
|
+
}[];
|
39
|
+
} & StoreActionOptions): Promise<any>;
|
34
40
|
}
|
35
41
|
/** 响应钩子检索 IdentityStore */
|
36
42
|
export declare const useWorkScheduleStore: () => WorkScheduleStore;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { RequestBuilder } from "@voplus/api";
|
2
|
-
import { CountedMap, Store, useApplicationContext } from "@voplus/morpho-data";
|
2
|
+
import { CountedMap, Store, useApplicationContext, } from "@voplus/morpho-data";
|
3
3
|
import { observable } from "mobx";
|
4
4
|
import { EventDispatcher } from "strongly-typed-events";
|
5
5
|
const StoreName = "WorkScheduleStore";
|
@@ -128,13 +128,21 @@ export class WorkScheduleStore extends Store {
|
|
128
128
|
const r = await this.endpoint.get(`/api/work-schedules/${id}${query}`);
|
129
129
|
return await r.json();
|
130
130
|
}
|
131
|
+
/** count */
|
132
|
+
async count(options) {
|
133
|
+
return await this.action(async () => {
|
134
|
+
const r = await this.endpoint.post(`/api/work-schedules/count`, new RequestBuilder().json(options.data));
|
135
|
+
const t = await r.json();
|
136
|
+
return t;
|
137
|
+
}, options);
|
138
|
+
}
|
131
139
|
}
|
132
140
|
/** 响应钩子检索 IdentityStore */
|
133
141
|
export const useWorkScheduleStore = () => {
|
134
142
|
const context = useApplicationContext();
|
135
|
-
if (!context.
|
136
|
-
context.
|
143
|
+
if (!context.getService(StoreName)) {
|
144
|
+
context.registerService(new WorkScheduleStore(context.api.currentEndPoint));
|
137
145
|
}
|
138
|
-
return context.
|
146
|
+
return context.getService(StoreName);
|
139
147
|
};
|
140
148
|
//# sourceMappingURL=WorkScheduleStore.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"WorkScheduleStore.js","sourceRoot":"","sources":["../../../src/data/work-schedule/WorkScheduleStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,
|
1
|
+
{"version":3,"file":"WorkScheduleStore.js","sourceRoot":"","sources":["../../../src/data/work-schedule/WorkScheduleStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EACN,UAAU,EACV,KAAK,EACL,qBAAqB,GAGrB,MAAM,qBAAqB,CAAC;AAU7B,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,MAAM,SAAS,GAAG,mBAAmB,CAAC;AAEtC,gDAAgD;AAChD,MAAM,OAAO,iBAAkB,SAAQ,KAAK;IAM3C,YAAmC,QAAqB;QACvD,KAAK,EAAE,CAAC;QADU;;;;mBAAgB,QAAQ;WAAa;QALxD,wBAAwB;QACR;;;;mBAAe,SAAS;WAAC;QACxB;;;;mBAAuB,IAAI,eAAe,EAAoC;WAAC;QAC/E;;;;mBAAuB,IAAI,eAAe,EAAoC;WAAC;QAMhG,oCAAoC;QACpB;;;;mBAA2C,IAAI,UAAU,CACxE,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAoB,CAAA,EAC9D,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAClC;WAAC;IANF,CAAC;IAQD,+DAA+D;IAC/D,IAAW,wBAAwB;QAClC,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC;IAC5C,CAAC;IAED,4DAA4D;IAC5D,IAAW,wBAAwB;QAClC,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC;IAC5C,CAAC;IAED,6BAA6B;IACtB,KAAK,CAAC,MAAM,CAAC,OAAkC;QACrD,oDAAoD;QACpD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;YACnC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CACjC,4BAA4B,EAC5B,IAAI,cAAc,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CACvC,CAAC;YACF,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAkB,CAAC;YAC5C,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5C,OAAO,CAAC,CAAC;QACV,CAAC,EAAE,OAAO,CAAC,CAAC;IACb,CAAC;IAED,uCAAuC;IAChC,KAAK,CAAC,IAAI,CAAC,EAAU,EAAE,OAAgC;QAC7D,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;YAC5B,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CACjC,uBAAuB,EAAE,EAAE,EAC3B,IAAI,cAAc,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CACvC,CAAC;YACF,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YACzB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/B,CAAC,EAAE,OAAO,CAAC,CAAC;IACb,CAAC;IAED,gCAAgC;IACzB,KAAK,CAAC,MAAM,CAAC,GAAa,EAAE,OAAmC;QACrE,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;YACnC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CACzB,4BAA4B,EAC5B,IAAI,cAAc,EAAE,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,EAAE,CAAC,CAC/D,CAAC;YACF,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;gBACtB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACjC,IAAI,IAAI,EAAE,CAAC;oBACV,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACnB,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAChD,CAAC;YACF,CAAC;YACD,OAAO,OAAO,CAAC;QAChB,CAAC,EAAE,OAAQ,CAAC,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,UAAU,CAAC,EAAU,EAAE,OAAiC;QACpE,oDAAoD;QACpD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;YACnC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CACjC,uBAAuB,EAAE,cAAc,EACvC,IAAI,cAAc,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CACvC,CAAC;YACF,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAkB,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9B,OAAO,CAAC,CAAC;QACV,CAAC,EAAE,OAAO,CAAC,CAAC;IACb,CAAC;IAEM,KAAK,CAAC,QAAQ,CACpB,EAAU,EACV,KAAa,EACb,OAA2B;QAE3B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;YACnC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,EAAE,cAAc,KAAK,EAAE,CAAC,CAAC;YACnF,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAkB,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9B,OAAO,CAAC,CAAC;QACV,CAAC,EAAE,OAAO,CAAC,CAAC;IACb,CAAC;IACM,KAAK,CAAC,UAAU,CAAC,EAAU,EAAE,OAA2B;QAC9D,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;YACnC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,EAAE,cAAc,CAAC,CAAC;YAC5E,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAkB,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9B,OAAO,CAAC,CAAC;QACV,CAAC,EAAE,OAAO,CAAC,CAAC;IACb,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,QAAQ,CAAC,OAAiC;QACtD,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,EAAE,CAAC;YACvB,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,KAAK;YAAE,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAErC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CACjC,sBAAsB,KAAK,EAAE,EAC7B,IAAI,cAAc,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAC9D,CAAC;QACF,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAoB,CAAC;IAC5C,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,EAAU,EAAE,OAAgC;QAC7D,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,QAAQ;YAAE,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3E,IAAI,KAAK;YAAE,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,uBAAuB,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;QACvE,OAAO,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAED,YAAY;IACL,KAAK,CAAC,KAAK,CAAC,OAAqE;QACvF,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;YACnC,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CACjC,2BAA2B,EAC3B,IAAI,cAAc,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CACvC,CAAC;YACF,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YACzB,OAAO,CAAC,CAAC;QACV,CAAC,EAAE,OAAO,CAAC,CAAC;IACb,CAAC;CACD;AAED,2BAA2B;AAC3B,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,EAAE;IACxC,MAAM,OAAO,GAAG,qBAAqB,EAAE,CAAC;IACxC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,eAAe,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,OAAO,CAAC,UAAU,CAAC,SAAS,CAAuB,CAAC;AAC5D,CAAC,CAAC"}
|
@@ -1,9 +1,6 @@
|
|
1
1
|
import React from "react";
|
2
2
|
export type TaskOverviewProps = {
|
3
|
-
|
4
|
-
dueActives?: string;
|
5
|
-
onOverviewItemClick?: (status?: string[]) => void;
|
6
|
-
onDueItemClick?: (date?: string) => void;
|
3
|
+
onOverviewItemClick?: () => void;
|
7
4
|
};
|
8
5
|
declare const TaskOverview: (props: TaskOverviewProps) => React.JSX.Element;
|
9
6
|
export default TaskOverview;
|
@@ -1,33 +1,29 @@
|
|
1
|
-
import React
|
1
|
+
import React from "react";
|
2
2
|
import { observe } from "@voplus/morpho-ui";
|
3
3
|
import OverviewItem from "@voplus/morpho-ui/es/controls/PanelOverview/OverviewItem";
|
4
4
|
import OverviewAll from "@voplus/morpho-ui/es/controls/PanelOverview/OverviewAll";
|
5
5
|
import DueItem from "@voplus/morpho-ui/es/controls/PanelOverview/DueItem";
|
6
6
|
import { Scrollbars } from "react-custom-scrollbars-2";
|
7
7
|
import PanelOverview from "@voplus/morpho-ui/es/controls/PanelOverview";
|
8
|
-
import {
|
8
|
+
import { useQuickFilterContext } from "@voplus/morpho-ui/es/data/QuickFilterContext";
|
9
|
+
import { Skeleton } from "antd";
|
9
10
|
import classnames from "classnames";
|
10
11
|
import dayjs from "dayjs";
|
12
|
+
const status = ["NotStarted", "Progress", "Done", "Closed"];
|
13
|
+
const dues = ["Overdue", "ThisWeek", "ThisMonth"];
|
11
14
|
const TaskOverview = (props) => {
|
12
|
-
const
|
13
|
-
const [state] = useState(new State());
|
14
|
-
state.update(actives, dueActives);
|
15
|
+
const context = useQuickFilterContext();
|
15
16
|
return observe(() => (React.createElement(Scrollbars, { autoHide: true },
|
16
|
-
React.createElement(
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
React.createElement(DueItem, { className: classnames("week", { active: state.dueActives === "week" }), title: "This Week", type: "Tasks", description: dayjs().endOf("week").format("DD MMM YYYY"), total: 20, onClick: () => onDueClick("week") }),
|
23
|
-
React.createElement(DueItem, { className: classnames("month", { active: state.dueActives === "month" }), title: "This Month", type: "Tasks", description: dayjs().endOf("month").format("DD MMM YYYY"), total: 20, onClick: () => onDueClick("month") })) }))));
|
24
|
-
function onDueClick(dueAct) {
|
25
|
-
state.onDueClick(dueAct);
|
26
|
-
onDueItemClick === null || onDueItemClick === void 0 ? void 0 : onDueItemClick(state.dueActives);
|
27
|
-
}
|
17
|
+
React.createElement(Skeleton, { loading: context.loading },
|
18
|
+
React.createElement(PanelOverview, { className: "task-overview", overviewAll: React.createElement(OverviewAll, { className: classnames({ active: context.actives.includes("All") }), total: context.getCount("All"), description: "Total All Tasks", onClick: () => onClick("All") }), overviewList: React.createElement(React.Fragment, null, status.map((i) => (React.createElement(OverviewItem, { key: i, className: classnames({ active: context.actives.includes(i) }), total: context.getCount(i), description: i.replace(/([A-Z])/g, " $1"), onClick: () => onClick(i) })))), nodeTitle: "DUE OF TASKS", dueList: React.createElement(React.Fragment, null, dues.map((d) => (React.createElement(DueItem, { key: d, className: classnames({
|
19
|
+
week: d === "ThisWeek",
|
20
|
+
month: d === "ThisMonth",
|
21
|
+
active: context.actives.includes(d),
|
22
|
+
}), title: d.replace(/([A-Z])/g, " $1"), type: "Tasks", description: dayjs().format("DD MMM YYYY"), total: context.getCount(d), onClick: () => onClick(d) })))) })))));
|
28
23
|
function onClick(status) {
|
29
|
-
|
30
|
-
|
24
|
+
var _a;
|
25
|
+
context.triggerFilter(status);
|
26
|
+
(_a = props.onOverviewItemClick) === null || _a === void 0 ? void 0 : _a.call(props);
|
31
27
|
}
|
32
28
|
};
|
33
29
|
export default TaskOverview;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/tasks/components/TaskOverview/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/tasks/components/TaskOverview/index.tsx"],"names":[],"mappings":"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"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import React, { useState } from "react";
|
1
|
+
import React, { useState, useMemo, useEffect } from "react";
|
2
2
|
import { faListCheck } from "@fortawesome/pro-solid-svg-icons";
|
3
3
|
import { FontAwesomeIcon as FAIcon } from "@fortawesome/react-fontawesome";
|
4
4
|
import PageHeadDashboard from "@voplus/morpho-ui/es/components/layout/headers/PageHeadDashboard";
|
@@ -8,36 +8,47 @@ import SubTaskList from "../../components/SubTaskList";
|
|
8
8
|
import DocumentTabs from "@voplus/morpho-document/es/components/DocumentTabs";
|
9
9
|
import ActivityLog from "@voplus/morpho-org/es/components/ActivityLog2/ActivityLog2";
|
10
10
|
import FilterLabel from "@voplus/morpho-ui/es/controls/FilterLabel";
|
11
|
+
import { QuickFilterContext, QuickFilterContextState, } from "@voplus/morpho-ui/es/data/QuickFilterContext";
|
11
12
|
import TaskPanel from "../../components/TaskPanel";
|
13
|
+
import { useTaskStore } from "@voplus/morpho-document-core";
|
12
14
|
import { State } from "./state";
|
13
15
|
import styles from "./index.less";
|
14
16
|
const TaskListPage = (props) => {
|
15
|
-
const
|
17
|
+
const store = useTaskStore();
|
18
|
+
const [state] = useState(new State(props.listProps.parentId));
|
16
19
|
const [activeKey, setActiveKey] = useState("TaskList");
|
20
|
+
const context = useMemo(() => new QuickFilterContextState({
|
21
|
+
store: store,
|
22
|
+
listFilterOptions: state.listFilterOptions,
|
23
|
+
}), []);
|
24
|
+
useEffect(() => {
|
25
|
+
context.loadCounts();
|
26
|
+
}, []);
|
17
27
|
return observe(() => {
|
18
28
|
var _a, _b;
|
19
|
-
return (React.createElement(
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
29
|
+
return (React.createElement(QuickFilterContext.Provider, { value: context },
|
30
|
+
React.createElement(DefaultViewLayout, { className: styles["task-list-page"], header: React.createElement(PageHeadDashboard, { avatarIcon: React.createElement(FAIcon, { icon: faListCheck }), title: "Tasks", upAble: true, description: "Stay on track: manage and prioritize your tasks" }), propertiesWidth: "295px", properties: React.createElement(TaskPanel, { overviewProps: {
|
31
|
+
onOverviewItemClick: () => state.onOverviewItemClick(context.actives),
|
32
|
+
}, taskFilterProps: {
|
33
|
+
onFilter(options) {
|
34
|
+
state.onFilterOptions(options);
|
35
|
+
},
|
36
|
+
} }) },
|
37
|
+
React.createElement(DocumentTabs, { id: "", active: "TaskList", tabItems: [
|
38
|
+
{
|
39
|
+
key: "TaskList",
|
40
|
+
label: "Task List",
|
41
|
+
children: (React.createElement(SubTaskList, { ...props.listProps, className: "sub-list", filterVisible: false, filters: state.filerOptions, onTotalChanged: (total) => context.onChangeTotal(total) })),
|
42
|
+
},
|
43
|
+
{
|
44
|
+
key: "Activities",
|
45
|
+
label: "Activities",
|
46
|
+
children: (React.createElement(React.Fragment, null, activeKey === "Activities" ? (React.createElement(ActivityLog, { id: "", bar: false })) : null)),
|
47
|
+
},
|
48
|
+
], onChange: (key) => setActiveKey(key), tabBarExtraContent: activeKey === "TaskList" ? (React.createElement("div", { className: "list-tabBar-filter" }, ((_a = context.actives) === null || _a === void 0 ? void 0 : _a.includes("All")) ? ("Showed: Total All Tasks") : ((_b = context.actives) === null || _b === void 0 ? void 0 : _b.length) ? (React.createElement(FilterLabel, { status: context.actives, maxCount: 2, onFilter: (s) => {
|
49
|
+
context.onFilterLabel(s);
|
50
|
+
state.onOverviewItemClick(context.actives);
|
51
|
+
} })) : undefined)) : undefined }))));
|
41
52
|
});
|
42
53
|
};
|
43
54
|
export default TaskListPage;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/tasks/pages/TaskListPage/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/tasks/pages/TaskListPage/index.tsx"],"names":[],"mappings":"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"}
|
@@ -1,15 +1,13 @@
|
|
1
1
|
import { FilterOption } from "@voplus/morpho-data";
|
2
|
+
import { ListFilterOptions } from "@voplus/morpho-ui/es/data/QuickFilterContext";
|
2
3
|
export declare class State {
|
3
|
-
private
|
4
|
+
private parentId;
|
4
5
|
/** 默认值 */
|
5
6
|
filerOptions?: FilterOption[];
|
6
|
-
|
7
|
-
|
8
|
-
constructor(
|
7
|
+
listFilterOptions?: ListFilterOptions[];
|
8
|
+
overdueFilter: FilterOption;
|
9
|
+
constructor(parentId: string);
|
9
10
|
onFilterOptions(options?: FilterOption[]): void;
|
10
|
-
onDueItemClick(d: "overdue" | "week" | "month"): void;
|
11
11
|
onOverviewItemClick(s?: string[]): void;
|
12
|
-
|
13
|
-
get statusFilerOptions(): FilterOption[];
|
14
|
-
get dateFilerOptions(): FilterOption[];
|
12
|
+
getDateF(date: "week" | "month"): FilterOption;
|
15
13
|
}
|
@@ -1,13 +1,13 @@
|
|
1
1
|
import { __decorate } from "tslib";
|
2
|
-
import { action,
|
2
|
+
import { action, makeObservable, observable, toJS } from "mobx";
|
3
3
|
import dayjs from "dayjs";
|
4
4
|
export class State {
|
5
|
-
constructor(
|
6
|
-
Object.defineProperty(this, "
|
5
|
+
constructor(parentId) {
|
6
|
+
Object.defineProperty(this, "parentId", {
|
7
7
|
enumerable: true,
|
8
8
|
configurable: true,
|
9
9
|
writable: true,
|
10
|
-
value:
|
10
|
+
value: parentId
|
11
11
|
});
|
12
12
|
/** 默认值 */
|
13
13
|
Object.defineProperty(this, "filerOptions", {
|
@@ -16,82 +16,74 @@ export class State {
|
|
16
16
|
writable: true,
|
17
17
|
value: void 0
|
18
18
|
});
|
19
|
-
Object.defineProperty(this, "
|
19
|
+
Object.defineProperty(this, "listFilterOptions", {
|
20
20
|
enumerable: true,
|
21
21
|
configurable: true,
|
22
22
|
writable: true,
|
23
|
-
value:
|
23
|
+
value: void 0
|
24
24
|
});
|
25
|
-
Object.defineProperty(this, "
|
25
|
+
Object.defineProperty(this, "overdueFilter", {
|
26
26
|
enumerable: true,
|
27
27
|
configurable: true,
|
28
28
|
writable: true,
|
29
|
-
value:
|
29
|
+
value: {
|
30
|
+
c: "DueDate",
|
31
|
+
o: "<=",
|
32
|
+
l: "And",
|
33
|
+
v1: dayjs().format("YYYY-MM-DD"),
|
34
|
+
}
|
30
35
|
});
|
31
36
|
makeObservable(this);
|
37
|
+
const defaultFilter = { c: "ParentNodeId", o: "=", l: "And", v1: this.parentId };
|
38
|
+
const notStarted = { c: "TaskStatus", o: "=", l: "And", v1: "NotStarted" };
|
39
|
+
const progress = { c: "TaskStatus", o: "=", l: "And", v1: "Progress" };
|
40
|
+
const done = { c: "TaskStatus", o: "=", l: "And", v1: "Done" };
|
41
|
+
const closed = { c: "TaskStatus", o: "=", l: "And", v1: "Closed" };
|
42
|
+
const week = this.getDateF("week");
|
43
|
+
const month = this.getDateF("month");
|
44
|
+
this.listFilterOptions = [
|
45
|
+
{ name: "All", filters: { Filters: [defaultFilter] } },
|
46
|
+
{ name: "NotStarted", filters: { Filters: [defaultFilter, notStarted] } },
|
47
|
+
{ name: "Progress", filters: { Filters: [defaultFilter, progress] } },
|
48
|
+
{ name: "Done", filters: { Filters: [defaultFilter, done] } },
|
49
|
+
{ name: "Closed", filters: { Filters: [defaultFilter, closed] } },
|
50
|
+
{ name: "Overdue", filters: { Filters: [defaultFilter, this.overdueFilter] } },
|
51
|
+
{ name: "ThisWeek", filters: { Filters: [defaultFilter, week] } },
|
52
|
+
{ name: "ThisMonth", filters: { Filters: [defaultFilter, month] } },
|
53
|
+
];
|
32
54
|
this.onFilterOptions();
|
33
55
|
}
|
34
56
|
onFilterOptions(options) {
|
35
57
|
this.filerOptions = options !== null && options !== void 0 ? options : [];
|
36
|
-
// if (this.contactId && !this.filerOptions?.some((item) => item.c === "Contact")) {
|
37
|
-
// this.filerOptions?.push({ c: "Contact", o: "=", l: "And", v1: this.contactId });
|
38
|
-
// }
|
39
|
-
}
|
40
|
-
onDueItemClick(d) {
|
41
|
-
this.dueActives = d;
|
42
|
-
if (this.status.includes("All"))
|
43
|
-
this.status = [];
|
44
|
-
this.onFilterOptions(this.statusFilerOptions.concat(this.dateFilerOptions));
|
45
58
|
}
|
46
59
|
onOverviewItemClick(s) {
|
47
|
-
|
48
|
-
if (this.status.includes("All"))
|
49
|
-
this.dueActives = undefined;
|
50
|
-
this.onFilterOptions(this.statusFilerOptions.concat(this.dateFilerOptions));
|
51
|
-
}
|
52
|
-
onFilterLabel(s) {
|
53
|
-
if (s) {
|
54
|
-
if (s === "overdue" || s === "week" || s === "month") {
|
55
|
-
this.dueActives = undefined;
|
56
|
-
}
|
57
|
-
let status = toJS(this.status);
|
58
|
-
status = status === null || status === void 0 ? void 0 : status.filter((i) => i !== s);
|
59
|
-
this.onOverviewItemClick(status);
|
60
|
-
}
|
61
|
-
else {
|
62
|
-
this.status = [];
|
63
|
-
this.dueActives = undefined;
|
60
|
+
if (s === null || s === void 0 ? void 0 : s.includes("All")) {
|
64
61
|
this.onFilterOptions();
|
65
62
|
}
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
if (status === null || status === void 0 ? void 0 : status.length)
|
73
|
-
f.push({ c: "TaskStatus", o: "contains", l: "And", v1: JSON.stringify(status) });
|
74
|
-
return f;
|
75
|
-
}
|
76
|
-
get dateFilerOptions() {
|
77
|
-
let f = [];
|
78
|
-
if (this.status.includes("All"))
|
79
|
-
return f;
|
80
|
-
if (this.dueActives) {
|
81
|
-
if (this.dueActives === "overdue") {
|
82
|
-
f = [{ c: "DueDate", o: "<=", l: "And", v1: dayjs().format("YYYY-MM-DD") }];
|
63
|
+
else {
|
64
|
+
let status = toJS(s);
|
65
|
+
let f = [];
|
66
|
+
if (s === null || s === void 0 ? void 0 : s.includes("Overdue")) {
|
67
|
+
status = status === null || status === void 0 ? void 0 : status.filter((s) => s !== "Overdue");
|
68
|
+
f.push(this.overdueFilter);
|
83
69
|
}
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
.format("YYYY-MM-DD HH:mm:ss");
|
88
|
-
const v2 = dayjs()
|
89
|
-
.endOf(this.dueActives)
|
90
|
-
.format("YYYY-MM-DD HH:mm:ss");
|
91
|
-
f = [{ c: "DueDate", o: "between", l: "And", v1: v1, v2: v2 }];
|
70
|
+
if (s === null || s === void 0 ? void 0 : s.includes("ThisWeek")) {
|
71
|
+
status = status === null || status === void 0 ? void 0 : status.filter((s) => s !== "ThisWeek");
|
72
|
+
f.push(this.getDateF("week"));
|
92
73
|
}
|
74
|
+
if (s === null || s === void 0 ? void 0 : s.includes("ThisMonth")) {
|
75
|
+
status = status === null || status === void 0 ? void 0 : status.filter((s) => s !== "ThisMonth");
|
76
|
+
f.push(this.getDateF("month"));
|
77
|
+
}
|
78
|
+
if (status === null || status === void 0 ? void 0 : status.length)
|
79
|
+
f.push({ c: "TaskStatus", o: "contains", l: "And", v1: JSON.stringify(status) });
|
80
|
+
this.onFilterOptions(f);
|
93
81
|
}
|
94
|
-
|
82
|
+
}
|
83
|
+
getDateF(date) {
|
84
|
+
const v1 = dayjs().startOf(date).format("YYYY-MM-DD HH:mm:ss");
|
85
|
+
const v2 = dayjs().endOf(date).format("YYYY-MM-DD HH:mm:ss");
|
86
|
+
return { c: "DueDate", o: "between", l: "And", v1: v1, v2: v2 };
|
95
87
|
}
|
96
88
|
}
|
97
89
|
__decorate([
|
@@ -99,26 +91,17 @@ __decorate([
|
|
99
91
|
], State.prototype, "filerOptions", void 0);
|
100
92
|
__decorate([
|
101
93
|
observable
|
102
|
-
], State.prototype, "
|
94
|
+
], State.prototype, "listFilterOptions", void 0);
|
103
95
|
__decorate([
|
104
96
|
observable
|
105
|
-
], State.prototype, "
|
97
|
+
], State.prototype, "overdueFilter", void 0);
|
106
98
|
__decorate([
|
107
99
|
action
|
108
100
|
], State.prototype, "onFilterOptions", null);
|
109
|
-
__decorate([
|
110
|
-
action
|
111
|
-
], State.prototype, "onDueItemClick", null);
|
112
101
|
__decorate([
|
113
102
|
action
|
114
103
|
], State.prototype, "onOverviewItemClick", null);
|
115
104
|
__decorate([
|
116
105
|
action
|
117
|
-
], State.prototype, "
|
118
|
-
__decorate([
|
119
|
-
computed
|
120
|
-
], State.prototype, "statusFilerOptions", null);
|
121
|
-
__decorate([
|
122
|
-
computed
|
123
|
-
], State.prototype, "dateFilerOptions", null);
|
106
|
+
], State.prototype, "getDateF", null);
|
124
107
|
//# sourceMappingURL=state.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../../src/modules/tasks/pages/TaskListPage/state.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../../../../src/modules/tasks/pages/TaskListPage/state.ts"],"names":[],"mappings":"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"}
|
@@ -1,9 +1,6 @@
|
|
1
1
|
import React from "react";
|
2
2
|
export type WorkOverviewProps = {
|
3
|
-
|
4
|
-
dueActives?: string;
|
5
|
-
onOverviewItemClick?: (status?: string[]) => void;
|
6
|
-
onDueItemClick?: (date?: string) => void;
|
3
|
+
onOverviewItemClick?: () => void;
|
7
4
|
};
|
8
5
|
declare const WorkOverview: (props: WorkOverviewProps) => React.JSX.Element;
|
9
6
|
export default WorkOverview;
|
@@ -1,35 +1,29 @@
|
|
1
|
-
import React
|
1
|
+
import React from "react";
|
2
2
|
import { observe } from "@voplus/morpho-ui";
|
3
3
|
import OverviewItem from "@voplus/morpho-ui/es/controls/PanelOverview/OverviewItem";
|
4
4
|
import OverviewAll from "@voplus/morpho-ui/es/controls/PanelOverview/OverviewAll";
|
5
5
|
import DueItem from "@voplus/morpho-ui/es/controls/PanelOverview/DueItem";
|
6
6
|
import { Scrollbars } from "react-custom-scrollbars-2";
|
7
7
|
import PanelOverview from "@voplus/morpho-ui/es/controls/PanelOverview";
|
8
|
+
import { useQuickFilterContext } from "@voplus/morpho-ui/es/data/QuickFilterContext";
|
9
|
+
import { Skeleton } from "antd";
|
8
10
|
import classnames from "classnames";
|
9
|
-
import { State } from "./state";
|
10
11
|
import dayjs from "dayjs";
|
12
|
+
const status = ["Draft", "New", "Rejected", "Active", "Done", "Closed"];
|
13
|
+
const dues = ["Overdue", "ThisWeek", "ThisMonth"];
|
11
14
|
const WorkOverview = (props) => {
|
12
|
-
const
|
13
|
-
const [state] = useState(new State());
|
14
|
-
state.update(actives, dueActives);
|
15
|
+
const context = useQuickFilterContext();
|
15
16
|
return observe(() => (React.createElement(Scrollbars, { autoHide: true },
|
16
|
-
React.createElement(
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
React.createElement(OverviewItem, { className: classnames({ active: state.actives.includes("Closed") }), total: 20, description: "Closed", onClick: () => onClick("Closed") })), nodeTitle: "DUE OF WORKS", dueList: React.createElement(React.Fragment, null,
|
23
|
-
React.createElement(DueItem, { className: classnames({ active: state.dueActives === "overdue" }), title: "Overdue", type: "Works", description: dayjs().format("DD MMM YYYY"), total: 20, onClick: () => onDueClick("overdue") }),
|
24
|
-
React.createElement(DueItem, { className: classnames("week", { active: state.dueActives === "week" }), title: "This Week", type: "Works", description: dayjs().endOf("week").format("DD MMM YYYY"), total: 20, onClick: () => onDueClick("week") }),
|
25
|
-
React.createElement(DueItem, { className: classnames("month", { active: state.dueActives === "month" }), title: "This Month", type: "Works", description: dayjs().endOf("month").format("DD MMM YYYY"), total: 20, onClick: () => onDueClick("month") })) }))));
|
26
|
-
function onDueClick(dueAct) {
|
27
|
-
state.onDueClick(dueAct);
|
28
|
-
onDueItemClick === null || onDueItemClick === void 0 ? void 0 : onDueItemClick(state.dueActives);
|
29
|
-
}
|
17
|
+
React.createElement(Skeleton, { loading: context.loading },
|
18
|
+
React.createElement(PanelOverview, { className: "work-overview", overviewAll: React.createElement(OverviewAll, { className: classnames({ active: context.actives.includes("All") }), total: context.getCount("All"), description: "Total All Works", onClick: () => onClick("All") }), overviewList: status.map((i) => (React.createElement(OverviewItem, { key: i, className: classnames({ active: context.actives.includes(i) }), total: context.getCount(i), description: i, onClick: () => onClick(i) }))), nodeTitle: "DUE OF WORKS", dueList: dues.map((d) => (React.createElement(DueItem, { key: d, className: classnames({
|
19
|
+
week: d === "ThisWeek",
|
20
|
+
month: d === "ThisMonth",
|
21
|
+
active: context.actives.includes(d),
|
22
|
+
}), title: d.replace(/([A-Z])/g, " $1"), type: "Works", description: dayjs().format("DD MMM YYYY"), total: context.getCount(d), onClick: () => onClick(d) }))) })))));
|
30
23
|
function onClick(status) {
|
31
|
-
|
32
|
-
|
24
|
+
var _a;
|
25
|
+
context.triggerFilter(status);
|
26
|
+
(_a = props.onOverviewItemClick) === null || _a === void 0 ? void 0 : _a.call(props);
|
33
27
|
}
|
34
28
|
};
|
35
29
|
export default WorkOverview;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/work/components/WorkOverview/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/modules/work/components/WorkOverview/index.tsx"],"names":[],"mappings":"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"}
|