@pisell/private-materials 3.0.62 → 3.0.63
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/build/lowcode/assets-daily.json +11 -11
- package/build/lowcode/assets-dev.json +2 -2
- package/build/lowcode/assets-prod.json +11 -11
- package/build/lowcode/index.js +1 -1
- package/build/lowcode/meta.js +1 -1
- package/build/lowcode/preview.js +8 -8
- package/build/lowcode/render/default/view.js +8 -8
- package/build/lowcode/view.js +6 -6
- package/es/components/booking/addons/index.d.ts +1 -1
- package/es/components/booking/addons/model.d.ts +1 -2
- package/es/components/booking/forms/forms.d.ts +1 -1
- package/es/components/booking/forms/index.d.ts +1 -1
- package/es/components/booking/forms/model.d.ts +1 -2
- package/es/components/booking/index.d.ts +1 -1
- package/es/components/booking/info/index.d.ts +1 -1
- package/es/components/booking/info/model.d.ts +1 -2
- package/es/components/booking/info/service/addService/index.js +22 -57
- package/es/components/booking/info/service/addService/utils.d.ts +61 -0
- package/es/components/booking/info/service/addService/utils.js +256 -0
- package/es/components/booking/info/service/editService/index.js +109 -139
- package/es/components/booking/model.d.ts +2 -2
- package/es/components/booking/notes/index.d.ts +1 -1
- package/es/components/booking/notes/model.d.ts +1 -2
- package/es/components/booking/payments/index.d.ts +1 -1
- package/es/components/booking/payments/model.d.ts +1 -2
- package/es/components/schedules/index.d.ts +1 -1
- package/es/components/schedules/model.d.ts +1 -2
- package/lib/components/booking/addons/index.d.ts +1 -1
- package/lib/components/booking/addons/model.d.ts +1 -2
- package/lib/components/booking/forms/forms.d.ts +1 -1
- package/lib/components/booking/forms/index.d.ts +1 -1
- package/lib/components/booking/forms/model.d.ts +1 -2
- package/lib/components/booking/index.d.ts +1 -1
- package/lib/components/booking/info/index.d.ts +1 -1
- package/lib/components/booking/info/model.d.ts +1 -2
- package/lib/components/booking/info/service/addService/index.js +18 -28
- package/lib/components/booking/info/service/addService/utils.d.ts +61 -0
- package/lib/components/booking/info/service/addService/utils.js +211 -0
- package/lib/components/booking/info/service/editService/index.js +68 -99
- package/lib/components/booking/model.d.ts +2 -2
- package/lib/components/booking/notes/index.d.ts +1 -1
- package/lib/components/booking/notes/model.d.ts +1 -2
- package/lib/components/booking/payments/index.d.ts +1 -1
- package/lib/components/booking/payments/model.d.ts +1 -2
- package/lib/components/schedules/index.d.ts +1 -1
- package/lib/components/schedules/model.d.ts +1 -2
- package/package.json +2 -2
|
@@ -43,16 +43,11 @@ var import_index = require("./index.less");
|
|
|
43
43
|
var import_useEngineContext = __toESM(require("../../../../../hooks/useEngineContext"));
|
|
44
44
|
var import_serve = require("../serve");
|
|
45
45
|
var import_utils = require("../../utils");
|
|
46
|
-
var import_utils2 = require("
|
|
47
|
-
var import_utils3 = require("
|
|
46
|
+
var import_utils2 = require("./utils");
|
|
47
|
+
var import_utils3 = require("../../../utils");
|
|
48
|
+
var import_utils4 = require("@pisell/utils");
|
|
48
49
|
var import_ahooks = require("ahooks");
|
|
49
50
|
var shopList = [2886, 4422, 5538, 6930, 6814, 6813, 6812, 6087, 6303];
|
|
50
|
-
var getCacheResourceId = () => {
|
|
51
|
-
const serviceParams = (0, import_utils2.getCacheParams)();
|
|
52
|
-
let resId = Number(serviceParams == null ? void 0 : serviceParams.resource_id);
|
|
53
|
-
console.log("resIdresIdresId", resId);
|
|
54
|
-
return resId;
|
|
55
|
-
};
|
|
56
51
|
var Info = () => {
|
|
57
52
|
var _a, _b, _c;
|
|
58
53
|
const [search, setSearch] = (0, import_react.useState)("");
|
|
@@ -60,7 +55,7 @@ var Info = () => {
|
|
|
60
55
|
const [loading, setLoading] = (0, import_react.useState)(false);
|
|
61
56
|
const searchRef = (0, import_react.useRef)();
|
|
62
57
|
const context = (0, import_useEngineContext.default)();
|
|
63
|
-
|
|
58
|
+
import_utils3.request.setRequest(context.appHelper.utils.request);
|
|
64
59
|
const setDefaultService = async (list) => {
|
|
65
60
|
if (state.renderType !== "eventBooking") {
|
|
66
61
|
return;
|
|
@@ -87,7 +82,7 @@ var Info = () => {
|
|
|
87
82
|
let _item = {
|
|
88
83
|
...product,
|
|
89
84
|
product_id: product.id,
|
|
90
|
-
_id: (0,
|
|
85
|
+
_id: (0, import_utils4.getUniqueId)(),
|
|
91
86
|
_extend: {
|
|
92
87
|
start_date: state.date.value,
|
|
93
88
|
startDate: state.date.value,
|
|
@@ -110,11 +105,6 @@ var Info = () => {
|
|
|
110
105
|
}
|
|
111
106
|
});
|
|
112
107
|
};
|
|
113
|
-
const autoAddProduct = async (cacheItem) => {
|
|
114
|
-
let resId = getCacheResourceId();
|
|
115
|
-
let _cacheItem = { ...cacheItem };
|
|
116
|
-
(0, import_utils2.deleteCacheParams)();
|
|
117
|
-
};
|
|
118
108
|
const getServices = async () => {
|
|
119
109
|
var _a2;
|
|
120
110
|
setLoading(true);
|
|
@@ -172,11 +162,11 @@ var Info = () => {
|
|
|
172
162
|
is_eject: isEject ? 1 : 0
|
|
173
163
|
},
|
|
174
164
|
callback: (e) => {
|
|
175
|
-
var _a2;
|
|
165
|
+
var _a2, _b2;
|
|
176
166
|
let cacheItem = {
|
|
177
167
|
...item,
|
|
178
168
|
product_id: item.id,
|
|
179
|
-
_id: (0,
|
|
169
|
+
_id: (0, import_utils4.getUniqueId)(),
|
|
180
170
|
_key: e.key,
|
|
181
171
|
_extend: {
|
|
182
172
|
start_date: state.date.value,
|
|
@@ -187,7 +177,7 @@ var Info = () => {
|
|
|
187
177
|
},
|
|
188
178
|
new: 1
|
|
189
179
|
};
|
|
190
|
-
let _total = (0,
|
|
180
|
+
let _total = (0, import_utils3.getProductTotalPrice)(cacheItem);
|
|
191
181
|
cacheItem._extend.total = _total;
|
|
192
182
|
cacheItem._extend.origin_total = _total;
|
|
193
183
|
const _isEdit = !!state.service.cacheItem;
|
|
@@ -195,9 +185,8 @@ var Info = () => {
|
|
|
195
185
|
cacheItem._id = (_a2 = state.service.cacheItem) == null ? void 0 : _a2._id;
|
|
196
186
|
cacheItem.new = 0;
|
|
197
187
|
}
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
cacheItem.autoClose = !!resId;
|
|
188
|
+
cacheItem._extend = (0, import_utils2.getProductExtend)({ cacheItem, state });
|
|
189
|
+
cacheItem.autoClose = cacheItem._extend.resource || cacheItem._extend.resource === 0 || (((_b2 = state.service) == null ? void 0 : _b2.resourcesOrigin) || []).length === 1;
|
|
201
190
|
dispatch({
|
|
202
191
|
type: "setService",
|
|
203
192
|
payload: {
|
|
@@ -209,13 +198,14 @@ var Info = () => {
|
|
|
209
198
|
}
|
|
210
199
|
});
|
|
211
200
|
};
|
|
201
|
+
console.log("state.service.cacheItem", state.service.cacheItem);
|
|
212
202
|
const renderList = (0, import_react.useMemo)(() => {
|
|
213
203
|
var _a2;
|
|
214
204
|
let _list = ((_a2 = state.service) == null ? void 0 : _a2.services) || [];
|
|
215
205
|
const isIncludes = (str) => {
|
|
216
206
|
return str.toLowerCase().indexOf(search.toLowerCase()) !== -1;
|
|
217
207
|
};
|
|
218
|
-
return (0,
|
|
208
|
+
return (0, import_utils3.formatProductListByCategory)(
|
|
219
209
|
_list,
|
|
220
210
|
search ? (item) => isIncludes(item.title) : void 0
|
|
221
211
|
);
|
|
@@ -255,8 +245,8 @@ var Info = () => {
|
|
|
255
245
|
{
|
|
256
246
|
loading,
|
|
257
247
|
showSub: false,
|
|
258
|
-
title:
|
|
259
|
-
subTitle:
|
|
248
|
+
title: import_utils4.locales.getText("pisell2.text.add-a-service"),
|
|
249
|
+
subTitle: import_utils4.locales.getText("pisell2.text.add-another-service"),
|
|
260
250
|
onClick: handleSelectService
|
|
261
251
|
}
|
|
262
252
|
);
|
|
@@ -265,8 +255,8 @@ var Info = () => {
|
|
|
265
255
|
import_addButton.default,
|
|
266
256
|
{
|
|
267
257
|
showSub: isService,
|
|
268
|
-
title:
|
|
269
|
-
subTitle:
|
|
258
|
+
title: import_utils4.locales.getText("pisell2.text.add-a-service"),
|
|
259
|
+
subTitle: import_utils4.locales.getText("pisell2.text.add-another-service"),
|
|
270
260
|
onClick: handleSelectService
|
|
271
261
|
}
|
|
272
262
|
) : /* @__PURE__ */ import_react.default.createElement("div", { style: { height: 20 } });
|
|
@@ -281,7 +271,7 @@ var Info = () => {
|
|
|
281
271
|
import_drawer.default,
|
|
282
272
|
{
|
|
283
273
|
open: state.service.addModal,
|
|
284
|
-
title:
|
|
274
|
+
title: import_utils4.locales.getText("pisell2.text.select-service"),
|
|
285
275
|
rootClassName: "booking-server-wrap",
|
|
286
276
|
onClose: () => {
|
|
287
277
|
dispatch({
|
|
@@ -297,7 +287,7 @@ var Info = () => {
|
|
|
297
287
|
ref: searchRef,
|
|
298
288
|
prefix: /* @__PURE__ */ import_react.default.createElement(import_SearchLg.default, null),
|
|
299
289
|
style: { marginTop: 16, height: 44 },
|
|
300
|
-
placeholder:
|
|
290
|
+
placeholder: import_utils4.locales.getText("pisell2.text.search"),
|
|
301
291
|
allowClear: true,
|
|
302
292
|
value: search,
|
|
303
293
|
onChange: (e) => {
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import dayjs from "dayjs";
|
|
2
|
+
export declare const getDurationProps: ({ cacheItem, useStartTime, currentResource, slice, }: any) => {
|
|
3
|
+
startDate: dayjs.Dayjs;
|
|
4
|
+
usableTime: any;
|
|
5
|
+
duration: string | number | {
|
|
6
|
+
type: string;
|
|
7
|
+
value: number;
|
|
8
|
+
};
|
|
9
|
+
locale: string;
|
|
10
|
+
slice: any;
|
|
11
|
+
selectProps: {
|
|
12
|
+
size: string;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* @title: 灵活时长选项
|
|
17
|
+
* @description:
|
|
18
|
+
* @param {*} useMemo
|
|
19
|
+
* @return {*}
|
|
20
|
+
* @Author: zhiwei.Wang
|
|
21
|
+
* @Date: 2024-02-23 10:10
|
|
22
|
+
*/
|
|
23
|
+
export declare const getFlexibleOption: ({ cacheItem, useStartTime, currentResource, slice, durationProps, }: any) => {
|
|
24
|
+
label: any;
|
|
25
|
+
value: any;
|
|
26
|
+
} | null;
|
|
27
|
+
/**
|
|
28
|
+
* @title: 时间切片
|
|
29
|
+
* @description:
|
|
30
|
+
* @return {*}
|
|
31
|
+
* @Author: zhiwei.Wang
|
|
32
|
+
* @Date: 2024-01-09 13:37
|
|
33
|
+
*/
|
|
34
|
+
export declare const getTimeObj: ({ cacheItem, useStartTime, currentResource, state, useDuration, durationProps, }: any) => {
|
|
35
|
+
timeSlices: {
|
|
36
|
+
label: string;
|
|
37
|
+
value: string;
|
|
38
|
+
}[];
|
|
39
|
+
durationSlicesBasedOnTime: {
|
|
40
|
+
label: string;
|
|
41
|
+
value: number;
|
|
42
|
+
}[];
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* @title: 获取资源列表
|
|
46
|
+
* @description:
|
|
47
|
+
* @return {*}
|
|
48
|
+
* @Author: zhiwei.Wang
|
|
49
|
+
* @Date: 2024-01-09 13:38
|
|
50
|
+
*/
|
|
51
|
+
export declare const formatResources: ({ cacheItem, resourcesOrigin }: any) => any[];
|
|
52
|
+
export declare const checkCacheItemResource: ({ cacheItem, resources }: any) => any;
|
|
53
|
+
/**
|
|
54
|
+
* @title: 预生成服务的 extend
|
|
55
|
+
* @description:
|
|
56
|
+
* @param {any} param1
|
|
57
|
+
* @return {*}
|
|
58
|
+
* @Author: zhiwei.Wang
|
|
59
|
+
* @Date: 2024-06-01 13:25
|
|
60
|
+
*/
|
|
61
|
+
export declare const getProductExtend: ({ cacheItem, state }: any) => any;
|
|
@@ -0,0 +1,211 @@
|
|
|
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/components/booking/info/service/addService/utils.tsx
|
|
30
|
+
var utils_exports = {};
|
|
31
|
+
__export(utils_exports, {
|
|
32
|
+
checkCacheItemResource: () => checkCacheItemResource,
|
|
33
|
+
formatResources: () => formatResources,
|
|
34
|
+
getDurationProps: () => getDurationProps,
|
|
35
|
+
getFlexibleOption: () => getFlexibleOption,
|
|
36
|
+
getProductExtend: () => getProductExtend,
|
|
37
|
+
getTimeObj: () => getTimeObj
|
|
38
|
+
});
|
|
39
|
+
module.exports = __toCommonJS(utils_exports);
|
|
40
|
+
var import_react = __toESM(require("react"));
|
|
41
|
+
var import_utils = require("../../../utils");
|
|
42
|
+
var import_dayjs = __toESM(require("dayjs"));
|
|
43
|
+
var import_utils2 = require("@pisell/utils");
|
|
44
|
+
var import_AlertTriangle = __toESM(require("@pisell/icon/es/AlertTriangle"));
|
|
45
|
+
var getDurationProps = ({
|
|
46
|
+
cacheItem,
|
|
47
|
+
useStartTime,
|
|
48
|
+
currentResource,
|
|
49
|
+
slice
|
|
50
|
+
}) => {
|
|
51
|
+
var _a;
|
|
52
|
+
let _cacheItem = cacheItem;
|
|
53
|
+
return {
|
|
54
|
+
startDate: (0, import_dayjs.default)(
|
|
55
|
+
(0, import_dayjs.default)(_cacheItem._extend.start_date).format("YYYY-MM-DD ") + ((0, import_utils.getServeStartTime)(useStartTime) || "00:00")
|
|
56
|
+
),
|
|
57
|
+
usableTime: (_a = currentResource == null ? void 0 : currentResource._extend) == null ? void 0 : _a.usableTime,
|
|
58
|
+
duration: (0, import_utils.getDuration)(_cacheItem == null ? void 0 : _cacheItem.duration),
|
|
59
|
+
locale: import_utils2.locales.locale,
|
|
60
|
+
slice,
|
|
61
|
+
selectProps: { size: "large" }
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
var getFlexibleOption = ({
|
|
65
|
+
cacheItem,
|
|
66
|
+
useStartTime,
|
|
67
|
+
currentResource,
|
|
68
|
+
slice,
|
|
69
|
+
durationProps
|
|
70
|
+
}) => {
|
|
71
|
+
var _a, _b;
|
|
72
|
+
const _durationProps = durationProps || getDurationProps({
|
|
73
|
+
cacheItem,
|
|
74
|
+
useStartTime,
|
|
75
|
+
currentResource,
|
|
76
|
+
slice
|
|
77
|
+
});
|
|
78
|
+
let _duration = _durationProps.duration;
|
|
79
|
+
if (_duration === "flexible") {
|
|
80
|
+
let endDate = (0, import_utils.getEndDate)(
|
|
81
|
+
_durationProps.startDate,
|
|
82
|
+
_duration,
|
|
83
|
+
((_a = _durationProps.usableTime) == null ? void 0 : _a.end_at) ? (0, import_dayjs.default)((_b = _durationProps.usableTime) == null ? void 0 : _b.end_at) : null
|
|
84
|
+
);
|
|
85
|
+
let timeValue = endDate.diff(_durationProps.startDate, "minute");
|
|
86
|
+
return {
|
|
87
|
+
label: import_utils2.locales.getText("pisell2.text.flexible"),
|
|
88
|
+
value: import_utils.flexibleObj.create(timeValue)
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
return null;
|
|
92
|
+
};
|
|
93
|
+
var getTimeObj = ({
|
|
94
|
+
cacheItem,
|
|
95
|
+
useStartTime,
|
|
96
|
+
currentResource,
|
|
97
|
+
state,
|
|
98
|
+
useDuration,
|
|
99
|
+
durationProps
|
|
100
|
+
}) => {
|
|
101
|
+
var _a, _b, _c;
|
|
102
|
+
const flexibleOption = getFlexibleOption({
|
|
103
|
+
cacheItem,
|
|
104
|
+
useStartTime,
|
|
105
|
+
currentResource,
|
|
106
|
+
state,
|
|
107
|
+
durationProps
|
|
108
|
+
});
|
|
109
|
+
let obj = (0, import_utils.sliceDayIntoFiveMinutes)(
|
|
110
|
+
(_c = (_b = (_a = state.bookingConfig) == null ? void 0 : _a.config) == null ? void 0 : _b.basic) == null ? void 0 : _c.service_time,
|
|
111
|
+
import_utils2.locales.locale
|
|
112
|
+
);
|
|
113
|
+
let timeSlices = [...obj.timeSlices];
|
|
114
|
+
let durationSlicesBasedOnTime = [...obj.durationSlicesBasedOnTime];
|
|
115
|
+
if (flexibleOption) {
|
|
116
|
+
durationSlicesBasedOnTime.unshift(flexibleOption);
|
|
117
|
+
}
|
|
118
|
+
if (useDuration && !durationSlicesBasedOnTime.some((d) => d.value === useDuration)) {
|
|
119
|
+
durationSlicesBasedOnTime.unshift({
|
|
120
|
+
label: (0, import_utils.getDiscountTime)(useDuration),
|
|
121
|
+
value: useDuration,
|
|
122
|
+
//@ts-ignore
|
|
123
|
+
disabled: true
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
if (useStartTime && useStartTime !== "now" && !timeSlices.some((d) => d.value === useStartTime)) {
|
|
127
|
+
timeSlices.unshift({
|
|
128
|
+
label: (0, import_dayjs.default)(useStartTime, "HH:mm").format("hh:mm A"),
|
|
129
|
+
value: useStartTime
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
timeSlices.unshift({
|
|
133
|
+
label: import_utils2.locales.getText("pisell2.text.now"),
|
|
134
|
+
value: "now"
|
|
135
|
+
});
|
|
136
|
+
return {
|
|
137
|
+
...obj,
|
|
138
|
+
timeSlices,
|
|
139
|
+
durationSlicesBasedOnTime
|
|
140
|
+
};
|
|
141
|
+
};
|
|
142
|
+
var formatResources = ({ cacheItem, resourcesOrigin }) => {
|
|
143
|
+
try {
|
|
144
|
+
let _list = [...resourcesOrigin];
|
|
145
|
+
const _cacheItem = cacheItem;
|
|
146
|
+
_list = _list.map(
|
|
147
|
+
(d) => (0, import_utils.formatResource)(d, _cacheItem, (item) => {
|
|
148
|
+
return /* @__PURE__ */ import_react.default.createElement("div", { className: "resource-option" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "like-wrap" }), item.labelText, !item.usable && /* @__PURE__ */ import_react.default.createElement(import_AlertTriangle.default, { className: "resource-option-alert-icon" }));
|
|
149
|
+
})
|
|
150
|
+
);
|
|
151
|
+
_list = _list.sort((a, b) => b.usable ? 1 : -1);
|
|
152
|
+
return _list;
|
|
153
|
+
} catch (err) {
|
|
154
|
+
console.log("formatResourcesErr", err);
|
|
155
|
+
}
|
|
156
|
+
return [];
|
|
157
|
+
};
|
|
158
|
+
var checkCacheItemResource = ({ cacheItem, resources }) => {
|
|
159
|
+
let resourceId = cacheItem._extend.resource;
|
|
160
|
+
if (resourceId || resourceId === 0) {
|
|
161
|
+
if (!resources.find((d) => d.form_record_id === resourceId)) {
|
|
162
|
+
resourceId = void 0;
|
|
163
|
+
}
|
|
164
|
+
} else {
|
|
165
|
+
if (cacheItem.new) {
|
|
166
|
+
if (resources.length === 2) {
|
|
167
|
+
resourceId = resources[1].form_record_id;
|
|
168
|
+
}
|
|
169
|
+
if (resources.length > 2) {
|
|
170
|
+
const usableList = resources.filter(
|
|
171
|
+
(d) => d.usable && d.form_id !== 0
|
|
172
|
+
);
|
|
173
|
+
if (usableList.length === 1) {
|
|
174
|
+
resourceId = usableList[0].form_record_id;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
return resourceId;
|
|
180
|
+
};
|
|
181
|
+
var getProductExtend = ({ cacheItem, state }) => {
|
|
182
|
+
const resourcesOrigin = state.service.resourcesOrigin || [];
|
|
183
|
+
let currentResource = null;
|
|
184
|
+
if (!cacheItem.new) {
|
|
185
|
+
const resources2 = formatResources({ cacheItem, resourcesOrigin });
|
|
186
|
+
let item = resources2.find((d) => d.form_record_id == cacheItem._extend.resource) || {};
|
|
187
|
+
if (item) {
|
|
188
|
+
currentResource = item;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
const timeObj = getTimeObj({ cacheItem, currentResource, state });
|
|
192
|
+
let _extend = (0, import_utils.getServerItemExtend)(state, cacheItem, timeObj);
|
|
193
|
+
const resources = formatResources({
|
|
194
|
+
cacheItem: { ...cacheItem, _extend },
|
|
195
|
+
resourcesOrigin
|
|
196
|
+
});
|
|
197
|
+
_extend.resource = checkCacheItemResource({
|
|
198
|
+
cacheItem: { ...cacheItem, _extend },
|
|
199
|
+
resources
|
|
200
|
+
});
|
|
201
|
+
return _extend;
|
|
202
|
+
};
|
|
203
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
204
|
+
0 && (module.exports = {
|
|
205
|
+
checkCacheItemResource,
|
|
206
|
+
formatResources,
|
|
207
|
+
getDurationProps,
|
|
208
|
+
getFlexibleOption,
|
|
209
|
+
getProductExtend,
|
|
210
|
+
getTimeObj
|
|
211
|
+
});
|
|
@@ -34,7 +34,6 @@ __export(editService_exports, {
|
|
|
34
34
|
module.exports = __toCommonJS(editService_exports);
|
|
35
35
|
var import_react = __toESM(require("react"));
|
|
36
36
|
var import_Delete_wght300_24px = __toESM(require("@pisell/icon/es/Delete_wght300_24px"));
|
|
37
|
-
var import_AlertTriangle = __toESM(require("@pisell/icon/es/AlertTriangle"));
|
|
38
37
|
var import_drawer = __toESM(require("../../../components/drawer"));
|
|
39
38
|
var import_model = require("../../model");
|
|
40
39
|
var import_utils = require("@pisell/utils");
|
|
@@ -43,11 +42,11 @@ var import_antd = require("antd");
|
|
|
43
42
|
var import_index = require("./index.less");
|
|
44
43
|
var import_collapsibleList = __toESM(require("../../../components/collapsibleList"));
|
|
45
44
|
var import_utils2 = require("../../../components/collapsibleList/utils");
|
|
46
|
-
var import_dayjs = __toESM(require("dayjs"));
|
|
47
45
|
var import_ahooks = require("ahooks");
|
|
48
46
|
var import_utils3 = require("../../../utils");
|
|
49
47
|
var import_like = __toESM(require("../like"));
|
|
50
48
|
var import_mock = require("../../../mock");
|
|
49
|
+
var import_utils4 = require("../addService/utils");
|
|
51
50
|
var Info = () => {
|
|
52
51
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q;
|
|
53
52
|
const [form] = import_antd.Form.useForm();
|
|
@@ -58,6 +57,7 @@ var Info = () => {
|
|
|
58
57
|
const useDuration = import_antd.Form.useWatch("duration", form);
|
|
59
58
|
const [resourceLoading, setResourceLoading] = (0, import_react.useState)(false);
|
|
60
59
|
const { state, dispatch } = (0, import_react.useContext)(import_model.Context);
|
|
60
|
+
const [selectOpen, setSelectOpen] = (0, import_react.useState)();
|
|
61
61
|
const getCurrentCacheItem = () => {
|
|
62
62
|
let values = form.getFieldsValue();
|
|
63
63
|
let _cacheItem = state.service.cacheItem;
|
|
@@ -75,18 +75,14 @@ var Info = () => {
|
|
|
75
75
|
return item;
|
|
76
76
|
}, [useResource, state.service.resources]);
|
|
77
77
|
const durationProps = (0, import_react.useMemo)(() => {
|
|
78
|
-
var _a2, _b2, _c2
|
|
78
|
+
var _a2, _b2, _c2;
|
|
79
79
|
let _cacheItem = getCurrentCacheItem();
|
|
80
|
-
return {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
locale: import_utils.locales.locale,
|
|
87
|
-
slice: (_d2 = (_c2 = (_b2 = state.bookingConfig) == null ? void 0 : _b2.config) == null ? void 0 : _c2.basic) == null ? void 0 : _d2.service_time,
|
|
88
|
-
selectProps: { size: "large" }
|
|
89
|
-
};
|
|
80
|
+
return (0, import_utils4.getDurationProps)({
|
|
81
|
+
cacheItem: _cacheItem,
|
|
82
|
+
useStartTime,
|
|
83
|
+
currentResource,
|
|
84
|
+
slice: (_c2 = (_b2 = (_a2 = state.bookingConfig) == null ? void 0 : _a2.config) == null ? void 0 : _b2.basic) == null ? void 0 : _c2.service_time
|
|
85
|
+
});
|
|
90
86
|
}, [
|
|
91
87
|
currentResource,
|
|
92
88
|
state.service.cacheItem,
|
|
@@ -95,56 +91,18 @@ var Info = () => {
|
|
|
95
91
|
(_c = (_b = (_a = state.bookingConfig) == null ? void 0 : _a.config) == null ? void 0 : _b.basic) == null ? void 0 : _c.service_time
|
|
96
92
|
]);
|
|
97
93
|
const flexibleOption = (0, import_react.useMemo)(() => {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
let endDate = (0, import_utils3.getEndDate)(
|
|
102
|
-
durationProps.startDate,
|
|
103
|
-
_duration,
|
|
104
|
-
((_a2 = durationProps.usableTime) == null ? void 0 : _a2.end_at) ? (0, import_dayjs.default)((_b2 = durationProps.usableTime) == null ? void 0 : _b2.end_at) : null
|
|
105
|
-
);
|
|
106
|
-
let timeValue = endDate.diff(durationProps.startDate, "minute");
|
|
107
|
-
return {
|
|
108
|
-
label: import_utils.locales.getText("pisell2.text.flexible"),
|
|
109
|
-
value: import_utils3.flexibleObj.create(timeValue)
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
return null;
|
|
94
|
+
return (0, import_utils4.getFlexibleOption)({
|
|
95
|
+
durationProps
|
|
96
|
+
});
|
|
113
97
|
}, [durationProps, import_utils.locales.locale]);
|
|
114
98
|
const timeObj = (0, import_react.useMemo)(() => {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
let durationSlicesBasedOnTime = [...obj.durationSlicesBasedOnTime];
|
|
122
|
-
if (flexibleOption) {
|
|
123
|
-
durationSlicesBasedOnTime.unshift(flexibleOption);
|
|
124
|
-
}
|
|
125
|
-
if (useDuration && !durationSlicesBasedOnTime.some((d) => d.value === useDuration)) {
|
|
126
|
-
durationSlicesBasedOnTime.unshift({
|
|
127
|
-
label: (0, import_utils3.getDiscountTime)(useDuration),
|
|
128
|
-
value: useDuration,
|
|
129
|
-
//@ts-ignore
|
|
130
|
-
disabled: true
|
|
131
|
-
});
|
|
132
|
-
}
|
|
133
|
-
if (useStartTime && useStartTime !== "now" && !timeSlices.some((d) => d.value === useStartTime)) {
|
|
134
|
-
timeSlices.unshift({
|
|
135
|
-
label: (0, import_dayjs.default)(useStartTime, "HH:mm").format("hh:mm A"),
|
|
136
|
-
value: useStartTime
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
timeSlices.unshift({
|
|
140
|
-
label: import_utils.locales.getText("pisell2.text.now"),
|
|
141
|
-
value: "now"
|
|
99
|
+
return (0, import_utils4.getTimeObj)({
|
|
100
|
+
durationProps,
|
|
101
|
+
useStartTime,
|
|
102
|
+
currentResource,
|
|
103
|
+
state,
|
|
104
|
+
useDuration
|
|
142
105
|
});
|
|
143
|
-
return {
|
|
144
|
-
...obj,
|
|
145
|
-
timeSlices,
|
|
146
|
-
durationSlicesBasedOnTime
|
|
147
|
-
};
|
|
148
106
|
}, [state, import_utils.locales.locale, useDuration, useStartTime, flexibleOption]);
|
|
149
107
|
(0, import_react.useEffect)(() => {
|
|
150
108
|
try {
|
|
@@ -159,56 +117,38 @@ var Info = () => {
|
|
|
159
117
|
}
|
|
160
118
|
}, [useDuration, flexibleOption]);
|
|
161
119
|
const getResources = async (cacheItem) => {
|
|
120
|
+
var _a2;
|
|
162
121
|
try {
|
|
163
|
-
|
|
164
|
-
let
|
|
165
|
-
skip: 1,
|
|
166
|
-
num: 1e3,
|
|
167
|
-
with_date_times: state.date.value.format("YYYY-MM-DD"),
|
|
168
|
-
codes: ["resources", "therapist", "table"],
|
|
169
|
-
_config: { abort: true }
|
|
170
|
-
});
|
|
171
|
-
let _list = [(0, import_mock.getNoResource)()].concat((data == null ? void 0 : data.list) || []);
|
|
122
|
+
let _list = state.service.resourcesOrigin || [];
|
|
123
|
+
let autoClose = (_a2 = state.service.cacheItem) == null ? void 0 : _a2.autoClose;
|
|
172
124
|
const _cacheItem = cacheItem || getCurrentCacheItem();
|
|
173
125
|
if (!_cacheItem._extend) {
|
|
174
126
|
return;
|
|
175
127
|
}
|
|
176
|
-
_list = _list.map(
|
|
177
|
-
(d) => (0, import_utils3.formatResource)(d, _cacheItem, (item) => {
|
|
178
|
-
return /* @__PURE__ */ import_react.default.createElement("div", { className: "resource-option" }, /* @__PURE__ */ import_react.default.createElement("div", { className: "like-wrap" }), item.labelText, !item.usable && /* @__PURE__ */ import_react.default.createElement(import_AlertTriangle.default, { className: "resource-option-alert-icon" }));
|
|
179
|
-
})
|
|
180
|
-
);
|
|
181
|
-
_list = _list.sort((a, b) => b.usable ? 1 : -1);
|
|
182
|
-
if (useResource) {
|
|
183
|
-
if (!_list.find((d) => d.form_record_id === useResource)) {
|
|
184
|
-
form.setFieldsValue({
|
|
185
|
-
resource: 0
|
|
186
|
-
});
|
|
187
|
-
}
|
|
188
|
-
} else {
|
|
189
|
-
let _useResource = 0;
|
|
190
|
-
if (_list.length === 2 && useResource !== 0) {
|
|
191
|
-
_useResource = _list[1].form_record_id;
|
|
192
|
-
}
|
|
193
|
-
form.setFieldsValue({
|
|
194
|
-
resource: _useResource
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
128
|
dispatch({
|
|
198
129
|
type: "setService",
|
|
199
130
|
payload: {
|
|
200
|
-
resources:
|
|
131
|
+
resources: (0, import_utils4.formatResources)({
|
|
132
|
+
cacheItem: _cacheItem,
|
|
133
|
+
resourcesOrigin: _list
|
|
134
|
+
})
|
|
201
135
|
}
|
|
202
136
|
});
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
137
|
+
if (_cacheItem.new) {
|
|
138
|
+
if (autoClose) {
|
|
139
|
+
setTimeout(() => {
|
|
140
|
+
form.submit();
|
|
141
|
+
}, 200);
|
|
142
|
+
} else {
|
|
143
|
+
setTimeout(() => {
|
|
144
|
+
if (selectOpen === void 0) {
|
|
145
|
+
setSelectOpen(true);
|
|
146
|
+
}
|
|
147
|
+
}, 500);
|
|
207
148
|
}
|
|
208
|
-
}
|
|
149
|
+
}
|
|
209
150
|
} catch (err) {
|
|
210
151
|
}
|
|
211
|
-
setResourceLoading(false);
|
|
212
152
|
};
|
|
213
153
|
const handleDeleteProduct = () => {
|
|
214
154
|
var _a2;
|
|
@@ -316,12 +256,13 @@ var Info = () => {
|
|
|
316
256
|
const setEditData = (0, import_ahooks.useMemoizedFn)(() => {
|
|
317
257
|
if (state.service.editModal) {
|
|
318
258
|
let cacheItem = state.service.cacheItem;
|
|
319
|
-
let values =
|
|
259
|
+
let values = cacheItem._extend;
|
|
320
260
|
form.setFieldsValue(values);
|
|
321
261
|
if (state.renderType !== "eventBooking") {
|
|
322
262
|
getResources();
|
|
323
263
|
}
|
|
324
264
|
} else {
|
|
265
|
+
setSelectOpen(void 0);
|
|
325
266
|
form.resetFields();
|
|
326
267
|
}
|
|
327
268
|
});
|
|
@@ -338,7 +279,12 @@ var Info = () => {
|
|
|
338
279
|
if (useStartTime && useDuration && state.renderType !== "eventBooking") {
|
|
339
280
|
getResources();
|
|
340
281
|
}
|
|
341
|
-
}, [
|
|
282
|
+
}, [
|
|
283
|
+
useStartTime,
|
|
284
|
+
useDuration,
|
|
285
|
+
state.renderType,
|
|
286
|
+
state.service.resourcesOrigin
|
|
287
|
+
]);
|
|
342
288
|
(0, import_react.useEffect)(() => {
|
|
343
289
|
setEditData();
|
|
344
290
|
}, [state.service.editModal, setEditData]);
|
|
@@ -364,6 +310,27 @@ var Info = () => {
|
|
|
364
310
|
var _a2, _b2, _c2, _d2;
|
|
365
311
|
return ((_d2 = (_c2 = (_b2 = (_a2 = state.service) == null ? void 0 : _a2.cacheItem) == null ? void 0 : _b2._extend) == null ? void 0 : _c2.other) == null ? void 0 : _d2.bundle) || [];
|
|
366
312
|
}, [(_i = (_h = (_g = (_f = state.service) == null ? void 0 : _f.cacheItem) == null ? void 0 : _g._extend) == null ? void 0 : _h.other) == null ? void 0 : _i.bundle]);
|
|
313
|
+
const getResourcesData = async () => {
|
|
314
|
+
setResourceLoading(true);
|
|
315
|
+
let data = await state.apis.getResources({
|
|
316
|
+
skip: 1,
|
|
317
|
+
num: 1e3,
|
|
318
|
+
with_date_times: state.date.value.format("YYYY-MM-DD"),
|
|
319
|
+
codes: ["resources", "therapist", "table"],
|
|
320
|
+
_config: { abort: true }
|
|
321
|
+
});
|
|
322
|
+
let _list = [(0, import_mock.getNoResource)()].concat((data == null ? void 0 : data.list) || []);
|
|
323
|
+
dispatch({
|
|
324
|
+
type: "setService",
|
|
325
|
+
payload: {
|
|
326
|
+
resourcesOrigin: _list
|
|
327
|
+
}
|
|
328
|
+
});
|
|
329
|
+
setResourceLoading(false);
|
|
330
|
+
};
|
|
331
|
+
(0, import_react.useEffect)(() => {
|
|
332
|
+
getResourcesData();
|
|
333
|
+
}, [state.date.value]);
|
|
367
334
|
return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(
|
|
368
335
|
import_drawer.default,
|
|
369
336
|
{
|
|
@@ -507,6 +474,8 @@ var Info = () => {
|
|
|
507
474
|
size: "large",
|
|
508
475
|
allowClear: true,
|
|
509
476
|
showSearch: true,
|
|
477
|
+
open: selectOpen,
|
|
478
|
+
onDropdownVisibleChange: setSelectOpen,
|
|
510
479
|
filterOption: (str, option) => {
|
|
511
480
|
return (option.labelText || "").toLowerCase().includes((str || "").toLowerCase());
|
|
512
481
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
1
|
export interface FormState {
|
|
3
2
|
amountSymbol: string;
|
|
4
3
|
apis: {
|
|
@@ -35,6 +34,7 @@ export interface FormState {
|
|
|
35
34
|
editModal: boolean;
|
|
36
35
|
services: any[];
|
|
37
36
|
resources: any[];
|
|
37
|
+
resourcesOrigin: any[];
|
|
38
38
|
value: any[];
|
|
39
39
|
cacheItem: any;
|
|
40
40
|
edit: boolean;
|
|
@@ -90,7 +90,7 @@ export declare const walkInData: {
|
|
|
90
90
|
id: number;
|
|
91
91
|
nickname: string;
|
|
92
92
|
};
|
|
93
|
-
export declare const Provider: (ComponentUi: any) => (props: any) =>
|
|
93
|
+
export declare const Provider: (ComponentUi: any) => (props: any) => JSX.Element, Context: import("react").Context<{
|
|
94
94
|
state: FormState;
|
|
95
95
|
} & {
|
|
96
96
|
dispatch: (params: {
|