@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.
Files changed (47) 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 +8 -8
  7. package/build/lowcode/render/default/view.js +8 -8
  8. package/build/lowcode/view.js +6 -6
  9. package/es/components/booking/addons/index.d.ts +1 -1
  10. package/es/components/booking/addons/model.d.ts +1 -2
  11. package/es/components/booking/forms/forms.d.ts +1 -1
  12. package/es/components/booking/forms/index.d.ts +1 -1
  13. package/es/components/booking/forms/model.d.ts +1 -2
  14. package/es/components/booking/index.d.ts +1 -1
  15. package/es/components/booking/info/index.d.ts +1 -1
  16. package/es/components/booking/info/model.d.ts +1 -2
  17. package/es/components/booking/info/service/addService/index.js +22 -57
  18. package/es/components/booking/info/service/addService/utils.d.ts +61 -0
  19. package/es/components/booking/info/service/addService/utils.js +256 -0
  20. package/es/components/booking/info/service/editService/index.js +109 -139
  21. package/es/components/booking/model.d.ts +2 -2
  22. package/es/components/booking/notes/index.d.ts +1 -1
  23. package/es/components/booking/notes/model.d.ts +1 -2
  24. package/es/components/booking/payments/index.d.ts +1 -1
  25. package/es/components/booking/payments/model.d.ts +1 -2
  26. package/es/components/schedules/index.d.ts +1 -1
  27. package/es/components/schedules/model.d.ts +1 -2
  28. package/lib/components/booking/addons/index.d.ts +1 -1
  29. package/lib/components/booking/addons/model.d.ts +1 -2
  30. package/lib/components/booking/forms/forms.d.ts +1 -1
  31. package/lib/components/booking/forms/index.d.ts +1 -1
  32. package/lib/components/booking/forms/model.d.ts +1 -2
  33. package/lib/components/booking/index.d.ts +1 -1
  34. package/lib/components/booking/info/index.d.ts +1 -1
  35. package/lib/components/booking/info/model.d.ts +1 -2
  36. package/lib/components/booking/info/service/addService/index.js +18 -28
  37. package/lib/components/booking/info/service/addService/utils.d.ts +61 -0
  38. package/lib/components/booking/info/service/addService/utils.js +211 -0
  39. package/lib/components/booking/info/service/editService/index.js +68 -99
  40. package/lib/components/booking/model.d.ts +2 -2
  41. package/lib/components/booking/notes/index.d.ts +1 -1
  42. package/lib/components/booking/notes/model.d.ts +1 -2
  43. package/lib/components/booking/payments/index.d.ts +1 -1
  44. package/lib/components/booking/payments/model.d.ts +1 -2
  45. package/lib/components/schedules/index.d.ts +1 -1
  46. package/lib/components/schedules/model.d.ts +1 -2
  47. 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("../../../utils");
47
- var import_utils3 = require("@pisell/utils");
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
- import_utils2.request.setRequest(context.appHelper.utils.request);
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, import_utils3.getUniqueId)(),
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, import_utils3.getUniqueId)(),
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, import_utils2.getProductTotalPrice)(cacheItem);
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
- console.log("_total", cacheItem);
199
- let resId = getCacheResourceId();
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, import_utils2.formatProductListByCategory)(
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: import_utils3.locales.getText("pisell2.text.add-a-service"),
259
- subTitle: import_utils3.locales.getText("pisell2.text.add-another-service"),
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: import_utils3.locales.getText("pisell2.text.add-a-service"),
269
- subTitle: import_utils3.locales.getText("pisell2.text.add-another-service"),
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: import_utils3.locales.getText("pisell2.text.select-service"),
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: import_utils3.locales.getText("pisell2.text.search"),
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, _d2;
78
+ var _a2, _b2, _c2;
79
79
  let _cacheItem = getCurrentCacheItem();
80
- return {
81
- startDate: (0, import_dayjs.default)(
82
- (0, import_dayjs.default)(_cacheItem._extend.start_date).format("YYYY-MM-DD ") + ((0, import_utils3.getServeStartTime)(useStartTime) || "00:00")
83
- ),
84
- usableTime: (_a2 = currentResource == null ? void 0 : currentResource._extend) == null ? void 0 : _a2.usableTime,
85
- duration: (0, import_utils3.getDuration)(_cacheItem == null ? void 0 : _cacheItem.duration),
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
- var _a2, _b2;
99
- let _duration = durationProps.duration;
100
- if (_duration === "flexible") {
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
- var _a2, _b2, _c2;
116
- let obj = (0, import_utils3.sliceDayIntoFiveMinutes)(
117
- (_c2 = (_b2 = (_a2 = state.bookingConfig) == null ? void 0 : _a2.config) == null ? void 0 : _b2.basic) == null ? void 0 : _c2.service_time,
118
- import_utils.locales.locale
119
- );
120
- let timeSlices = [...obj.timeSlices];
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
- setResourceLoading(true);
164
- let data = await state.apis.getResources({
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: _list
131
+ resources: (0, import_utils4.formatResources)({
132
+ cacheItem: _cacheItem,
133
+ resourcesOrigin: _list
134
+ })
201
135
  }
202
136
  });
203
- setTimeout(() => {
204
- var _a2;
205
- if (((_a2 = state.service.cacheItem) == null ? void 0 : _a2.autoClose) || _list.length === 1 && useResource === 0) {
206
- form.submit();
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
- }, 200);
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 = (0, import_utils3.getServerItemExtend)(state, cacheItem, timeObj);
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
- }, [useStartTime, useDuration, state.renderType]);
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) => any, Context: import("react").Context<{
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: {