@pisell/pisellos 1.0.1 → 1.0.3

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.
@@ -1999,11 +1999,15 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
1999
1999
  // timeSlots 传进来的只是用户选中的时间片,但是实际上需要根据多个商品时间进行累加
2000
2000
  // 假设 timeSlots.start_time 是15:40 duration 是 30min
2001
2001
  // 第一个商品分配完以后,第二个商品分配的start_time应该是第一个商品的 end_time ,然后 end_time 应该是 start_time+duration
2002
-
2003
- cartItems.forEach(function (item, index) {
2002
+ // 判断购物车里是否有 flexible 类型的商品,如果有则不累加时间
2003
+ var hasFlexibleProduct = cartItems.some(function (item) {
2004
2004
  var _item$_productOrigin3;
2005
+ return ((_item$_productOrigin3 = item._productOrigin) === null || _item$_productOrigin3 === void 0 || (_item$_productOrigin3 = _item$_productOrigin3.duration) === null || _item$_productOrigin3 === void 0 ? void 0 : _item$_productOrigin3.type) === 'flexible';
2006
+ });
2007
+ cartItems.forEach(function (item, index) {
2008
+ var _item$_productOrigin4;
2005
2009
  var formatCapacity = formatDefaultCapacitys({
2006
- capacity: (_item$_productOrigin3 = item._productOrigin) === null || _item$_productOrigin3 === void 0 ? void 0 : _item$_productOrigin3.capacity,
2010
+ capacity: (_item$_productOrigin4 = item._productOrigin) === null || _item$_productOrigin4 === void 0 ? void 0 : _item$_productOrigin4.capacity,
2007
2011
  product_bundle: item._origin.product.product_bundle
2008
2012
  });
2009
2013
  var currentCapacity = getSumCapacity({
@@ -2019,17 +2023,17 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
2019
2023
  };
2020
2024
  }
2021
2025
  if (recordTimeSlots) {
2022
- var _item$_productOrigin4, _item$_productOrigin5;
2026
+ var _item$_productOrigin5, _item$_productOrigin6;
2023
2027
  // 同一账号下,如果当前商品不是第一个,则需要根据上一个商品的 end_time 和 duration 计算出当前商品的 start_time 和 end_time
2024
2028
  // 前提:当前资源是单个预约才需要这么做
2025
- var currentResourceConfig = (_item$_productOrigin4 = item._productOrigin) === null || _item$_productOrigin4 === void 0 || (_item$_productOrigin4 = _item$_productOrigin4.product_resource) === null || _item$_productOrigin4 === void 0 || (_item$_productOrigin4 = _item$_productOrigin4.resources) === null || _item$_productOrigin4 === void 0 ? void 0 : _item$_productOrigin4.find(function (n) {
2029
+ var currentResourceConfig = (_item$_productOrigin5 = item._productOrigin) === null || _item$_productOrigin5 === void 0 || (_item$_productOrigin5 = _item$_productOrigin5.product_resource) === null || _item$_productOrigin5 === void 0 || (_item$_productOrigin5 = _item$_productOrigin5.resources) === null || _item$_productOrigin5 === void 0 ? void 0 : _item$_productOrigin5.find(function (n) {
2026
2030
  return n.code === resources_code;
2027
2031
  });
2028
2032
  // 只有 duration 类商品需要这个操作
2029
- if (index !== 0 && recordTimeSlots && (currentResourceConfig === null || currentResourceConfig === void 0 ? void 0 : currentResourceConfig.type) === 'single' && (_item$_productOrigin5 = item._productOrigin) !== null && _item$_productOrigin5 !== void 0 && _item$_productOrigin5.duration) {
2030
- var _item$_productOrigin6, _item$_productOrigin7;
2031
- var start_at = dayjs(recordTimeSlots.end_time).add(((_item$_productOrigin6 = item._productOrigin) === null || _item$_productOrigin6 === void 0 || (_item$_productOrigin6 = _item$_productOrigin6.duration) === null || _item$_productOrigin6 === void 0 ? void 0 : _item$_productOrigin6.value) || 10, 'minutes');
2032
- var end_at = start_at.add(((_item$_productOrigin7 = item._productOrigin) === null || _item$_productOrigin7 === void 0 || (_item$_productOrigin7 = _item$_productOrigin7.duration) === null || _item$_productOrigin7 === void 0 ? void 0 : _item$_productOrigin7.value) || 10, 'minutes');
2033
+ if (index !== 0 && recordTimeSlots && (currentResourceConfig === null || currentResourceConfig === void 0 ? void 0 : currentResourceConfig.type) === 'single' && (_item$_productOrigin6 = item._productOrigin) !== null && _item$_productOrigin6 !== void 0 && _item$_productOrigin6.duration && !hasFlexibleProduct) {
2034
+ var _item$_productOrigin7, _item$_productOrigin8;
2035
+ var start_at = dayjs(recordTimeSlots.end_time).add(((_item$_productOrigin7 = item._productOrigin) === null || _item$_productOrigin7 === void 0 || (_item$_productOrigin7 = _item$_productOrigin7.duration) === null || _item$_productOrigin7 === void 0 ? void 0 : _item$_productOrigin7.value) || 10, 'minutes');
2036
+ var end_at = start_at.add(((_item$_productOrigin8 = item._productOrigin) === null || _item$_productOrigin8 === void 0 || (_item$_productOrigin8 = _item$_productOrigin8.duration) === null || _item$_productOrigin8 === void 0 ? void 0 : _item$_productOrigin8.value) || 10, 'minutes');
2033
2037
  recordTimeSlots = {
2034
2038
  start_time: start_at.format('HH:mm'),
2035
2039
  end_time: end_at.format('HH:mm'),
@@ -2077,12 +2081,12 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
2077
2081
  errorList.push(item._id);
2078
2082
  }
2079
2083
  } else {
2080
- var _item$_productOrigin8, _productResources$fin;
2084
+ var _item$_productOrigin9, _productResources$fin;
2081
2085
  // 这里必须每次循环重新读,避免前一次循环操作了购物车,导致数据变更
2082
2086
  var allCartItems = cloneDeep(_this10.store.cart.getItems());
2083
2087
  // 如果没有传递 timeSlots,代表是第一种资源,则直接拿商品的 duration,到资源列表里找一个公共可用的
2084
2088
  var selectedResources = [];
2085
- var _resources = cloneDeep(((_item$_productOrigin8 = item._productOrigin) === null || _item$_productOrigin8 === void 0 || (_item$_productOrigin8 = _item$_productOrigin8.product_resource) === null || _item$_productOrigin8 === void 0 ? void 0 : _item$_productOrigin8.resources) || []);
2089
+ var _resources = cloneDeep(((_item$_productOrigin9 = item._productOrigin) === null || _item$_productOrigin9 === void 0 || (_item$_productOrigin9 = _item$_productOrigin9.product_resource) === null || _item$_productOrigin9 === void 0 ? void 0 : _item$_productOrigin9.resources) || []);
2086
2090
  var currentResourcesRenderList = [];
2087
2091
  _resources.forEach(function (n) {
2088
2092
  var _n$renderList;
@@ -2197,8 +2201,8 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
2197
2201
  var maxCutOffTime = undefined;
2198
2202
  var maxCutOffTimeValue = dayjs();
2199
2203
  cartItems.forEach(function (item) {
2200
- var _item$_productOrigin9, _item$_productOrigin10, _item$_productOrigin11, _item$_productOrigin12;
2201
- (_item$_productOrigin9 = item._productOrigin) === null || _item$_productOrigin9 === void 0 || (_item$_productOrigin9 = _item$_productOrigin9.product_resource) === null || _item$_productOrigin9 === void 0 || (_item$_productOrigin9 = _item$_productOrigin9.resources) === null || _item$_productOrigin9 === void 0 || _item$_productOrigin9.forEach(function (n) {
2204
+ var _item$_productOrigin10, _item$_productOrigin11, _item$_productOrigin12, _item$_productOrigin13;
2205
+ (_item$_productOrigin10 = item._productOrigin) === null || _item$_productOrigin10 === void 0 || (_item$_productOrigin10 = _item$_productOrigin10.product_resource) === null || _item$_productOrigin10 === void 0 || (_item$_productOrigin10 = _item$_productOrigin10.resources) === null || _item$_productOrigin10 === void 0 || _item$_productOrigin10.forEach(function (n) {
2202
2206
  // TODO: 少了个 status 的判断
2203
2207
  if (n.code === resources_code) {
2204
2208
  resources.push.apply(resources, _toConsumableArray(n.renderList || []));
@@ -2211,10 +2215,10 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
2211
2215
  if (item.resource_id) {
2212
2216
  resourceIds.push(item.resource_id);
2213
2217
  }
2214
- resourcesTypeId = item === null || item === void 0 || (_item$_productOrigin10 = item._productOrigin) === null || _item$_productOrigin10 === void 0 || (_item$_productOrigin10 = _item$_productOrigin10.product_resource) === null || _item$_productOrigin10 === void 0 || (_item$_productOrigin10 = _item$_productOrigin10.resources) === null || _item$_productOrigin10 === void 0 || (_item$_productOrigin10 = _item$_productOrigin10.find(function (n) {
2218
+ resourcesTypeId = item === null || item === void 0 || (_item$_productOrigin11 = item._productOrigin) === null || _item$_productOrigin11 === void 0 || (_item$_productOrigin11 = _item$_productOrigin11.product_resource) === null || _item$_productOrigin11 === void 0 || (_item$_productOrigin11 = _item$_productOrigin11.resources) === null || _item$_productOrigin11 === void 0 || (_item$_productOrigin11 = _item$_productOrigin11.find(function (n) {
2215
2219
  return n.code === resources_code;
2216
- })) === null || _item$_productOrigin10 === void 0 ? void 0 : _item$_productOrigin10.id;
2217
- if ((_item$_productOrigin11 = item._productOrigin) !== null && _item$_productOrigin11 !== void 0 && _item$_productOrigin11.cut_off_time && ((_item$_productOrigin12 = item._productOrigin) === null || _item$_productOrigin12 === void 0 ? void 0 : _item$_productOrigin12.cut_off_time.type) === 'advance') {
2220
+ })) === null || _item$_productOrigin11 === void 0 ? void 0 : _item$_productOrigin11.id;
2221
+ if ((_item$_productOrigin12 = item._productOrigin) !== null && _item$_productOrigin12 !== void 0 && _item$_productOrigin12.cut_off_time && ((_item$_productOrigin13 = item._productOrigin) === null || _item$_productOrigin13 === void 0 ? void 0 : _item$_productOrigin13.cut_off_time.type) === 'advance') {
2218
2222
  var currentCutOffTime = dayjs().add(item._productOrigin.cut_off_time.unit, item._productOrigin.cut_off_time.unit_type);
2219
2223
  if (currentCutOffTime.isAfter(maxCutOffTimeValue, 'minute')) {
2220
2224
  maxCutOffTimeValue = currentCutOffTime;
@@ -2242,13 +2246,13 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
2242
2246
  cartItems.forEach(function (item) {
2243
2247
  // 单个预约累加账号 多个预约取最大值
2244
2248
  if (isSingleResource) {
2245
- var _item$_productOrigin13;
2246
- accountDuration += ((_item$_productOrigin13 = item._productOrigin) === null || _item$_productOrigin13 === void 0 || (_item$_productOrigin13 = _item$_productOrigin13.duration) === null || _item$_productOrigin13 === void 0 ? void 0 : _item$_productOrigin13.value) || 10;
2247
- } else {
2248
2249
  var _item$_productOrigin14;
2249
- if (accountDuration < (((_item$_productOrigin14 = item._productOrigin) === null || _item$_productOrigin14 === void 0 || (_item$_productOrigin14 = _item$_productOrigin14.duration) === null || _item$_productOrigin14 === void 0 ? void 0 : _item$_productOrigin14.value) || 10)) {
2250
- var _item$_productOrigin15;
2251
- accountDuration = ((_item$_productOrigin15 = item._productOrigin) === null || _item$_productOrigin15 === void 0 || (_item$_productOrigin15 = _item$_productOrigin15.duration) === null || _item$_productOrigin15 === void 0 ? void 0 : _item$_productOrigin15.value) || 10;
2250
+ accountDuration += ((_item$_productOrigin14 = item._productOrigin) === null || _item$_productOrigin14 === void 0 || (_item$_productOrigin14 = _item$_productOrigin14.duration) === null || _item$_productOrigin14 === void 0 ? void 0 : _item$_productOrigin14.value) || 10;
2251
+ } else {
2252
+ var _item$_productOrigin15;
2253
+ if (accountDuration < (((_item$_productOrigin15 = item._productOrigin) === null || _item$_productOrigin15 === void 0 || (_item$_productOrigin15 = _item$_productOrigin15.duration) === null || _item$_productOrigin15 === void 0 ? void 0 : _item$_productOrigin15.value) || 10)) {
2254
+ var _item$_productOrigin16;
2255
+ accountDuration = ((_item$_productOrigin16 = item._productOrigin) === null || _item$_productOrigin16 === void 0 || (_item$_productOrigin16 = _item$_productOrigin16.duration) === null || _item$_productOrigin16 === void 0 ? void 0 : _item$_productOrigin16.value) || 10;
2252
2256
  }
2253
2257
  }
2254
2258
  });
@@ -2285,8 +2289,8 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
2285
2289
  }
2286
2290
  var resourcesUseableMap = {};
2287
2291
  var hasFlexibleDuration = cartItems.some(function (item) {
2288
- var _item$_productOrigin16;
2289
- return ((_item$_productOrigin16 = item._productOrigin) === null || _item$_productOrigin16 === void 0 || (_item$_productOrigin16 = _item$_productOrigin16.duration) === null || _item$_productOrigin16 === void 0 ? void 0 : _item$_productOrigin16.type) === 'flexible';
2292
+ var _item$_productOrigin17;
2293
+ return ((_item$_productOrigin17 = item._productOrigin) === null || _item$_productOrigin17 === void 0 || (_item$_productOrigin17 = _item$_productOrigin17.duration) === null || _item$_productOrigin17 === void 0 ? void 0 : _item$_productOrigin17.type) === 'flexible';
2290
2294
  });
2291
2295
  var operating_day_boundary = (_this$shopStore$get = this.shopStore.get('core')) === null || _this$shopStore$get === void 0 || (_this$shopStore$get = _this$shopStore$get.core) === null || _this$shopStore$get === void 0 || (_this$shopStore$get = _this$shopStore$get.operating_day_boundary) === null || _this$shopStore$get === void 0 ? void 0 : _this$shopStore$get.time;
2292
2296
  var timeSlots = getTimeSlicesByResources({
@@ -2337,9 +2341,9 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
2337
2341
  var _newResources$;
2338
2342
  var newResources = cloneDeep(item._origin.resources);
2339
2343
  newResources.forEach(function (resource) {
2340
- var _item$_productOrigin17;
2344
+ var _item$_productOrigin18;
2341
2345
  // 如果商品配置的是灵活时长,开始时间设置为提交的时间,结束时间从资源的可用最晚时间和店铺营业结束时间里取一个最早的
2342
- if (((_item$_productOrigin17 = item._productOrigin) === null || _item$_productOrigin17 === void 0 || (_item$_productOrigin17 = _item$_productOrigin17.duration) === null || _item$_productOrigin17 === void 0 ? void 0 : _item$_productOrigin17.type) === 'flexible') {
2346
+ if (((_item$_productOrigin18 = item._productOrigin) === null || _item$_productOrigin18 === void 0 || (_item$_productOrigin18 = _item$_productOrigin18.duration) === null || _item$_productOrigin18 === void 0 ? void 0 : _item$_productOrigin18.type) === 'flexible') {
2343
2347
  var _allResources$find;
2344
2348
  item.duration = {
2345
2349
  type: 'minutes',
@@ -2365,9 +2369,9 @@ export var BookingByStepImpl = /*#__PURE__*/function (_BaseModule) {
2365
2369
  }
2366
2370
  resource.endTime = formattedEndTime.format('YYYY-MM-DD HH:mm');
2367
2371
  } else {
2368
- var _item$_productOrigin18;
2372
+ var _item$_productOrigin19;
2369
2373
  resource.startTime = currentStartTime;
2370
- resource.endTime = dayjs(currentStartTime).add(((_item$_productOrigin18 = item._productOrigin) === null || _item$_productOrigin18 === void 0 || (_item$_productOrigin18 = _item$_productOrigin18.duration) === null || _item$_productOrigin18 === void 0 ? void 0 : _item$_productOrigin18.value) || 10, 'minutes').format('YYYY-MM-DD HH:mm');
2374
+ resource.endTime = dayjs(currentStartTime).add(((_item$_productOrigin19 = item._productOrigin) === null || _item$_productOrigin19 === void 0 || (_item$_productOrigin19 = _item$_productOrigin19.duration) === null || _item$_productOrigin19 === void 0 ? void 0 : _item$_productOrigin19.value) || 10, 'minutes').format('YYYY-MM-DD HH:mm');
2371
2375
  }
2372
2376
  // delete resource.times;
2373
2377
  });
@@ -1294,6 +1294,10 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
1294
1294
  const accountList = this.store.accountList.getAccounts();
1295
1295
  const selectForCartResources = (cartItems2) => {
1296
1296
  let recordTimeSlots = (0, import_lodash_es.cloneDeep)(timeSlots);
1297
+ const hasFlexibleProduct = cartItems2.some((item) => {
1298
+ var _a2, _b;
1299
+ return ((_b = (_a2 = item._productOrigin) == null ? void 0 : _a2.duration) == null ? void 0 : _b.type) === "flexible";
1300
+ });
1297
1301
  cartItems2.forEach((item, index) => {
1298
1302
  var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m;
1299
1303
  const formatCapacity = (0, import_resources.formatDefaultCapacitys)({
@@ -1313,7 +1317,7 @@ var BookingByStepImpl = class extends import_BaseModule.BaseModule {
1313
1317
  const currentResourceConfig = (_d = (_c = (_b = item._productOrigin) == null ? void 0 : _b.product_resource) == null ? void 0 : _c.resources) == null ? void 0 : _d.find(
1314
1318
  (n) => n.code === resources_code
1315
1319
  );
1316
- if (index !== 0 && recordTimeSlots && (currentResourceConfig == null ? void 0 : currentResourceConfig.type) === "single" && ((_e = item._productOrigin) == null ? void 0 : _e.duration)) {
1320
+ if (index !== 0 && recordTimeSlots && (currentResourceConfig == null ? void 0 : currentResourceConfig.type) === "single" && ((_e = item._productOrigin) == null ? void 0 : _e.duration) && !hasFlexibleProduct) {
1317
1321
  let start_at = (0, import_dayjs.default)(recordTimeSlots.end_time).add(
1318
1322
  ((_g = (_f = item._productOrigin) == null ? void 0 : _f.duration) == null ? void 0 : _g.value) || 10,
1319
1323
  "minutes"
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": false,
3
3
  "name": "@pisell/pisellos",
4
- "version": "1.0.1",
4
+ "version": "1.0.3",
5
5
  "description": "一个可扩展的前端模块化SDK框架,支持插件系统",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",