@pisell/private-materials 6.3.89 → 6.3.90

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.
Files changed (94) hide show
  1. package/build/lowcode/assets-daily.json +11 -11
  2. package/build/lowcode/assets-dev.json +2 -2
  3. package/build/lowcode/assets-prod.json +11 -11
  4. package/build/lowcode/index.js +1 -1
  5. package/build/lowcode/meta.js +1 -1
  6. package/build/lowcode/preview.js +7 -7
  7. package/build/lowcode/render/default/view.css +1 -1
  8. package/build/lowcode/render/default/view.js +10 -10
  9. package/build/lowcode/view.css +1 -1
  10. package/build/lowcode/view.js +10 -10
  11. package/es/components/appointmentBooking/components/TimeSlicing/components/SelectDateOS.d.ts +1 -0
  12. package/es/components/booking/info/date/index.d.ts +0 -1
  13. package/es/components/ecocup/components/CupInfoCard/index.d.ts +1 -0
  14. package/es/components/ecocup/components/CustomerCard/index.d.ts +1 -0
  15. package/es/components/eftposPay/windcave/windcave.d.ts +1 -0
  16. package/es/index.d.ts +1 -0
  17. package/es/index.js +1 -0
  18. package/es/plus/saasAttendance/index.d.ts +6 -0
  19. package/es/plus/saasAttendance/index.js +5 -0
  20. package/es/plus/saasAttendance/locales.d.ts +318 -0
  21. package/es/plus/saasAttendance/locales.js +354 -0
  22. package/es/plus/saasAttendance/settings/BasicInfoTab.d.ts +5 -0
  23. package/es/plus/saasAttendance/settings/BasicInfoTab.js +96 -0
  24. package/es/plus/saasAttendance/settings/ClockInMethodTab.d.ts +8 -0
  25. package/es/plus/saasAttendance/settings/ClockInMethodTab.js +81 -0
  26. package/es/plus/saasAttendance/settings/CorrectionPolicyTab.d.ts +8 -0
  27. package/es/plus/saasAttendance/settings/CorrectionPolicyTab.js +293 -0
  28. package/es/plus/saasAttendance/settings/ShiftScheduleTab.d.ts +5 -0
  29. package/es/plus/saasAttendance/settings/ShiftScheduleTab.js +109 -0
  30. package/es/plus/saasAttendance/settings/components/MapField.d.ts +78 -0
  31. package/es/plus/saasAttendance/settings/components/MapField.js +810 -0
  32. package/es/plus/saasAttendance/settings/components/index.d.ts +3 -0
  33. package/es/plus/saasAttendance/settings/components/index.js +2 -0
  34. package/es/plus/saasAttendance/settings/components/membersField/index.d.ts +7 -0
  35. package/es/plus/saasAttendance/settings/components/membersField/index.js +216 -0
  36. package/es/plus/saasAttendance/settings/components/membersField/index.less +70 -0
  37. package/es/plus/saasAttendance/settings/components/shiftModal/index.d.ts +18 -0
  38. package/es/plus/saasAttendance/settings/components/shiftModal/index.js +438 -0
  39. package/es/plus/saasAttendance/settings/index.d.ts +18 -0
  40. package/es/plus/saasAttendance/settings/index.js +255 -0
  41. package/es/plus/saasAttendance/settings/index.less +495 -0
  42. package/es/plus/saasAttendance/settings/serve.d.ts +27 -0
  43. package/es/plus/saasAttendance/settings/serve.js +83 -0
  44. package/es/plus/saasAttendance/settings/types.d.ts +128 -0
  45. package/es/plus/saasAttendance/settings/types.js +1 -0
  46. package/es/plus/selectHolder/locales.d.ts +6 -0
  47. package/es/plus/selectHolder/locales.js +6 -0
  48. package/es/plus/skuOptionsSelection/components/TitleExtra/index.d.ts +1 -0
  49. package/es/plus/skuOptionsSelection/components/VariantCard/index.d.ts +1 -0
  50. package/es/pro/Selector/demo.d.ts +1 -0
  51. package/lib/components/appointmentBooking/components/TimeSlicing/components/SelectDateOS.d.ts +1 -0
  52. package/lib/components/booking/info/date/index.d.ts +0 -1
  53. package/lib/components/ecocup/components/CupInfoCard/index.d.ts +1 -0
  54. package/lib/components/ecocup/components/CustomerCard/index.d.ts +1 -0
  55. package/lib/components/eftposPay/windcave/windcave.d.ts +1 -0
  56. package/lib/index.d.ts +1 -0
  57. package/lib/index.js +3 -0
  58. package/lib/plus/saasAttendance/index.d.ts +6 -0
  59. package/lib/plus/saasAttendance/index.js +39 -0
  60. package/lib/plus/saasAttendance/locales.d.ts +318 -0
  61. package/lib/plus/saasAttendance/locales.js +342 -0
  62. package/lib/plus/saasAttendance/settings/BasicInfoTab.d.ts +5 -0
  63. package/lib/plus/saasAttendance/settings/BasicInfoTab.js +152 -0
  64. package/lib/plus/saasAttendance/settings/ClockInMethodTab.d.ts +8 -0
  65. package/lib/plus/saasAttendance/settings/ClockInMethodTab.js +88 -0
  66. package/lib/plus/saasAttendance/settings/CorrectionPolicyTab.d.ts +8 -0
  67. package/lib/plus/saasAttendance/settings/CorrectionPolicyTab.js +369 -0
  68. package/lib/plus/saasAttendance/settings/ShiftScheduleTab.d.ts +5 -0
  69. package/lib/plus/saasAttendance/settings/ShiftScheduleTab.js +106 -0
  70. package/lib/plus/saasAttendance/settings/components/MapField.d.ts +78 -0
  71. package/lib/plus/saasAttendance/settings/components/MapField.js +631 -0
  72. package/lib/plus/saasAttendance/settings/components/index.d.ts +3 -0
  73. package/lib/plus/saasAttendance/settings/components/index.js +42 -0
  74. package/lib/plus/saasAttendance/settings/components/membersField/index.d.ts +7 -0
  75. package/lib/plus/saasAttendance/settings/components/membersField/index.js +247 -0
  76. package/lib/plus/saasAttendance/settings/components/membersField/index.less +70 -0
  77. package/lib/plus/saasAttendance/settings/components/shiftModal/index.d.ts +18 -0
  78. package/lib/plus/saasAttendance/settings/components/shiftModal/index.js +447 -0
  79. package/lib/plus/saasAttendance/settings/index.d.ts +18 -0
  80. package/lib/plus/saasAttendance/settings/index.js +283 -0
  81. package/lib/plus/saasAttendance/settings/index.less +495 -0
  82. package/lib/plus/saasAttendance/settings/serve.d.ts +27 -0
  83. package/lib/plus/saasAttendance/settings/serve.js +54 -0
  84. package/lib/plus/saasAttendance/settings/types.d.ts +128 -0
  85. package/lib/plus/saasAttendance/settings/types.js +17 -0
  86. package/lib/plus/selectHolder/locales.d.ts +6 -0
  87. package/lib/plus/selectHolder/locales.js +6 -0
  88. package/lib/plus/skuOptionsSelection/components/TitleExtra/index.d.ts +1 -0
  89. package/lib/plus/skuOptionsSelection/components/VariantCard/index.d.ts +1 -0
  90. package/lib/pro/Selector/demo.d.ts +1 -0
  91. package/lowcode/eco-cup-list/meta.ts +1 -1
  92. package/lowcode/eco-customer-list/meta.ts +1 -1
  93. package/lowcode/saas-attendance-settings/meta.ts +56 -0
  94. package/package.json +3 -3
@@ -0,0 +1,247 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/plus/saasAttendance/settings/components/membersField/index.tsx
30
+ var membersField_exports = {};
31
+ __export(membersField_exports, {
32
+ default: () => membersField_default
33
+ });
34
+ module.exports = __toCommonJS(membersField_exports);
35
+ var import_react = __toESM(require("react"));
36
+ var import_antd = require("antd");
37
+ var import_icons = require("@ant-design/icons");
38
+ var import_materials = require("@pisell/materials");
39
+ var import_utils = require("@pisell/utils");
40
+ var import__ = require("../../index");
41
+ var import_index = require("./index.less");
42
+ var AntTag = import_antd.Tag;
43
+ var MemberSelector = ({
44
+ dataSource,
45
+ value,
46
+ onConfirm,
47
+ open,
48
+ onClose,
49
+ showSearch = false,
50
+ onSearch,
51
+ searchText = ""
52
+ }) => {
53
+ const [internalSelected, setInternalSelected] = (0, import_react.useState)([]);
54
+ (0, import_react.useEffect)(() => {
55
+ if (open) {
56
+ setInternalSelected(value || []);
57
+ }
58
+ }, [open, value]);
59
+ const handleToggle = (val) => {
60
+ setInternalSelected((prev) => {
61
+ if (prev.includes(val)) {
62
+ return prev.filter((v) => v !== val);
63
+ }
64
+ return [...prev, val];
65
+ });
66
+ };
67
+ const handleConfirm = () => {
68
+ onConfirm(internalSelected);
69
+ onClose();
70
+ };
71
+ return /* @__PURE__ */ import_react.default.createElement(
72
+ import_materials.PisellModal,
73
+ {
74
+ open,
75
+ onCancel: onClose,
76
+ title: import_utils.locales.getText(
77
+ "pisell2.attendance.group-settings.basic-info.members-drawer.title"
78
+ ),
79
+ width: 640,
80
+ footer: /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-member-selector-footer" }, /* @__PURE__ */ import_react.default.createElement(import_antd.Button, { type: "primary", onClick: handleConfirm, block: true }, import_utils.locales.getText(
81
+ "pisell2.attendance.group-settings.actions.confirm"
82
+ ))),
83
+ bodyStyle: { padding: 20 }
84
+ },
85
+ showSearch && /* @__PURE__ */ import_react.default.createElement("div", { style: { marginBottom: 16 } }, /* @__PURE__ */ import_react.default.createElement(
86
+ import_antd.Input,
87
+ {
88
+ placeholder: import_utils.locales.getText(
89
+ "pisell2.attendance.group-settings.actions.search"
90
+ ),
91
+ prefix: /* @__PURE__ */ import_react.default.createElement(import_icons.SearchOutlined, null),
92
+ value: searchText,
93
+ onChange: (e) => {
94
+ onSearch == null ? void 0 : onSearch(e.target.value);
95
+ },
96
+ allowClear: true
97
+ }
98
+ )),
99
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-member-selector-list" }, dataSource.length === 0 ? /* @__PURE__ */ import_react.default.createElement("div", { style: { gridColumn: "1/-1" } }, /* @__PURE__ */ import_react.default.createElement(import_antd.Empty, null)) : dataSource.map((item) => {
100
+ var _a, _b;
101
+ const isSelected = internalSelected.includes(item.value);
102
+ return /* @__PURE__ */ import_react.default.createElement(
103
+ "div",
104
+ {
105
+ key: item.value,
106
+ className: `pisell-member-selector-item ${isSelected ? "pisell-member-selector-item-selected" : ""}`,
107
+ onClick: () => handleToggle(item.value)
108
+ },
109
+ /* @__PURE__ */ import_react.default.createElement(import_materials.PisellCard, { padding: 0 }, /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-member-selector-item-content" }, /* @__PURE__ */ import_react.default.createElement(
110
+ import_materials.PisellAvatar,
111
+ {
112
+ src: item.avatar,
113
+ size: "xxl",
114
+ className: "pisell-member-selector-item-avatar"
115
+ },
116
+ (_b = (_a = item.label) == null ? void 0 : _a[0]) == null ? void 0 : _b.toUpperCase()
117
+ ), /* @__PURE__ */ import_react.default.createElement(
118
+ "div",
119
+ {
120
+ className: "pisell-member-selector-item-name",
121
+ title: item.label
122
+ },
123
+ item.label
124
+ ), /* @__PURE__ */ import_react.default.createElement("div", { className: "pisell-member-selector-item-check" }, /* @__PURE__ */ import_react.default.createElement(import_icons.CheckCircleFilled, null))))
125
+ );
126
+ }))
127
+ );
128
+ };
129
+ var MembersField = (props) => {
130
+ const { members } = (0, import_react.useContext)(import__.settingsContext);
131
+ const value = props.value ?? [];
132
+ const [isShowSelector, setIsShowSelector] = (0, import_react.useState)(false);
133
+ const [searchText, setSearchText] = (0, import_react.useState)("");
134
+ const memberById = (0, import_react.useMemo)(() => {
135
+ if (!Array.isArray(members)) {
136
+ return {};
137
+ }
138
+ return members.reduce(
139
+ (prev, cur) => {
140
+ prev[cur.id] = cur;
141
+ return prev;
142
+ },
143
+ {}
144
+ );
145
+ }, [members]);
146
+ const memberOpts = (0, import_react.useMemo)(() => {
147
+ let list = [];
148
+ if (Array.isArray(members)) {
149
+ list = members;
150
+ }
151
+ if (searchText) {
152
+ list = list.filter(
153
+ (item) => {
154
+ var _a;
155
+ return (_a = item.nickname) == null ? void 0 : _a.toLowerCase().includes(searchText.toLowerCase());
156
+ }
157
+ );
158
+ }
159
+ return list.map((item) => {
160
+ var _a;
161
+ return {
162
+ label: item.nickname,
163
+ value: item.id,
164
+ avatar: (_a = item.account) == null ? void 0 : _a.avatar
165
+ };
166
+ });
167
+ }, [members, searchText]);
168
+ const onAddMember = () => {
169
+ setIsShowSelector(true);
170
+ };
171
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(
172
+ "div",
173
+ {
174
+ id: props.id,
175
+ style: {
176
+ background: "#f9fafb",
177
+ border: "1px solid #d1d5db",
178
+ borderRadius: 8,
179
+ padding: 12
180
+ }
181
+ },
182
+ /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__members-box" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "saas-attendance-group-settings__members-count" }, import_utils.locales.getText(
183
+ "pisell2.attendance.group-settings.basic-info.members-count"
184
+ )(value.length)), /* @__PURE__ */ import_react.default.createElement(
185
+ import_antd.Button,
186
+ {
187
+ type: "link",
188
+ className: "saas-attendance-group-settings__link",
189
+ onClick: onAddMember
190
+ },
191
+ /* @__PURE__ */ import_react.default.createElement(import_icons.PlusOutlined, null),
192
+ import_utils.locales.getText(
193
+ "pisell2.attendance.group-settings.basic-info.add-members"
194
+ )
195
+ )),
196
+ /* @__PURE__ */ import_react.default.createElement("div", { style: { marginTop: 8 } }, value.map((id) => {
197
+ var _a;
198
+ return /* @__PURE__ */ import_react.default.createElement(
199
+ AntTag,
200
+ {
201
+ key: id,
202
+ closable: true,
203
+ onClose: (e) => {
204
+ var _a2;
205
+ e.preventDefault();
206
+ (_a2 = props.onChange) == null ? void 0 : _a2.call(props, value.filter((v) => v !== id));
207
+ }
208
+ },
209
+ ((_a = memberById[id]) == null ? void 0 : _a.nickname) || id
210
+ );
211
+ })),
212
+ /* @__PURE__ */ import_react.default.createElement(
213
+ "div",
214
+ {
215
+ className: "saas-attendance-group-settings__tip",
216
+ style: { marginTop: 8 }
217
+ },
218
+ /* @__PURE__ */ import_react.default.createElement(import_icons.InfoCircleOutlined, null),
219
+ /* @__PURE__ */ import_react.default.createElement("span", null, import_utils.locales.getText(
220
+ "pisell2.attendance.group-settings.basic-info.members-tip"
221
+ ))
222
+ )
223
+ ), /* @__PURE__ */ import_react.default.createElement(
224
+ MemberSelector,
225
+ {
226
+ value,
227
+ dataSource: memberOpts,
228
+ open: isShowSelector,
229
+ showSearch: true,
230
+ searchText,
231
+ onSearch: setSearchText,
232
+ onConfirm: (values) => {
233
+ var _a, _b;
234
+ if (values) {
235
+ (_a = props.onChange) == null ? void 0 : _a.call(props, values);
236
+ } else {
237
+ (_b = props.onChange) == null ? void 0 : _b.call(props, []);
238
+ }
239
+ },
240
+ onClose: () => {
241
+ setIsShowSelector(false);
242
+ setSearchText("");
243
+ }
244
+ }
245
+ ));
246
+ };
247
+ var membersField_default = MembersField;
@@ -0,0 +1,70 @@
1
+ .pisell-member-selector {
2
+ &-list {
3
+ display: grid;
4
+ grid-template-columns: repeat(3, 1fr);
5
+ gap: 16px;
6
+ padding: 16px 0;
7
+ }
8
+
9
+ &-item {
10
+ cursor: pointer;
11
+
12
+ .pisell-lowcode-card {
13
+ height: 100%;
14
+ transition: all 0.3s;
15
+ border: 1px solid #eaecf0;
16
+
17
+ &:hover {
18
+ border-color: #d0d5dd;
19
+ }
20
+ }
21
+
22
+ &-selected {
23
+ .pisell-lowcode-card {
24
+ border-color: #7f56d9 !important;
25
+ background-color: #f9f5ff;
26
+ }
27
+ }
28
+
29
+ &-content {
30
+ display: flex;
31
+ flex-direction: column;
32
+ align-items: center;
33
+ justify-content: center;
34
+ gap: 12px;
35
+ padding: 12px;
36
+ }
37
+
38
+ &-avatar {
39
+ // 保持 avatar 样式
40
+ }
41
+
42
+ &-name {
43
+ color: #101828;
44
+ font-size: 14px;
45
+ font-weight: 500;
46
+ text-align: center;
47
+ overflow: hidden;
48
+ text-overflow: ellipsis;
49
+ white-space: nowrap;
50
+ width: 100%;
51
+ }
52
+
53
+ &-check {
54
+ position: absolute;
55
+ bottom: 6px;
56
+ right: 6px;
57
+ color: #7f56d9;
58
+ font-size: 16px;
59
+ display: none;
60
+ }
61
+
62
+ &-selected &-check {
63
+ display: block;
64
+ }
65
+ }
66
+
67
+ &-footer {
68
+ width: 100%;
69
+ }
70
+ }
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ export declare type ShiftScheduleTime = {
3
+ id: string;
4
+ start: string;
5
+ end: string;
6
+ };
7
+ export declare type ShiftScheduleItem = {
8
+ weekday: number;
9
+ times: ShiftScheduleTime[];
10
+ };
11
+ export interface ShiftModalProps {
12
+ open: boolean;
13
+ value?: ShiftScheduleItem[];
14
+ onCancel: () => void;
15
+ onOk: (value: ShiftScheduleItem[]) => void;
16
+ }
17
+ declare const ShiftModal: React.FC<ShiftModalProps>;
18
+ export default ShiftModal;