@pisell/private-materials 3.0.209 → 3.0.211
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 +6 -14
- package/build/lowcode/render/default/view.css +1 -1
- package/build/lowcode/render/default/view.js +4 -4
- package/build/lowcode/view.css +1 -1
- package/build/lowcode/view.js +7 -7
- package/es/components/Sales/Cart/index.d.ts +8 -5
- package/es/components/Sales/Cart/index.js +158 -37
- package/es/components/Sales/Cart/serve.d.ts +1 -0
- package/es/components/Sales/Cart/serve.js +5 -0
- package/es/components/Sales/Cart/types.d.ts +19 -0
- package/es/components/Sales/Cart/types.js +1 -0
- package/es/components/Sales/Checkout/index.js +3 -0
- package/es/components/booking/info/pet/index.js +3 -3
- package/es/components/booking/info/service2/utils.d.ts +1 -1
- package/es/components/eftposPay/amount.d.ts +1 -1
- package/es/components/eftposPay/app.d.ts +1 -1
- package/es/components/eftposPay/device.d.ts +1 -1
- package/es/components/eftposPay/store/index.d.ts +2 -2
- package/es/components/eventBooking/components/Provider/Cart/ContinueButton/index.js +153 -37
- package/es/components/eventBooking/components/Provider/EmptyHolderModal/index.d.ts +4 -0
- package/es/components/eventBooking/components/Provider/EmptyHolderModal/index.js +35 -0
- package/es/components/eventBooking/components/Provider/EmptyHolderModal/index.less +17 -0
- package/es/components/eventBooking/components/Provider/Event/index.js +8 -1
- package/es/components/eventBooking/components/Provider/OrderProductModal/index.js +12 -35
- package/es/components/eventBooking/components/Provider/Resource/index.js +22 -11
- package/es/components/eventBooking/components/Provider/SelectHolderModal.js +4 -1
- package/es/components/eventBooking/components/bookingDetailModal/index.js +55 -9
- package/es/components/eventBooking/components/progressBar/index.js +18 -2
- package/es/components/eventBooking/components/scheduleCalendar/calendarItem.js +8 -0
- package/es/components/eventBooking/components/scheduleCalendar/index.less +12 -0
- package/es/components/eventBooking/index.js +1 -15
- package/es/components/eventBooking/locales.d.ts +33 -3
- package/es/components/eventBooking/locales.js +42 -6
- package/es/components/shoppingCart/components/Cart/Product.js +2 -2
- package/lib/components/Sales/Cart/index.d.ts +8 -5
- package/lib/components/Sales/Cart/index.js +97 -13
- package/lib/components/Sales/Cart/serve.d.ts +1 -0
- package/lib/components/Sales/Cart/serve.js +5 -0
- package/lib/components/Sales/Cart/types.d.ts +19 -0
- package/lib/components/Sales/Cart/types.js +17 -0
- package/lib/components/Sales/Checkout/index.js +1 -0
- package/lib/components/booking/info/pet/index.js +3 -3
- package/lib/components/booking/info/service2/utils.d.ts +1 -1
- package/lib/components/eftposPay/amount.d.ts +1 -1
- package/lib/components/eftposPay/app.d.ts +1 -1
- package/lib/components/eftposPay/device.d.ts +1 -1
- package/lib/components/eftposPay/store/index.d.ts +2 -2
- package/lib/components/eventBooking/components/Provider/Cart/ContinueButton/index.js +62 -14
- package/lib/components/eventBooking/components/Provider/EmptyHolderModal/index.d.ts +4 -0
- package/lib/components/eventBooking/components/Provider/EmptyHolderModal/index.js +61 -0
- package/lib/components/eventBooking/components/Provider/EmptyHolderModal/index.less +17 -0
- package/lib/components/eventBooking/components/Provider/Event/index.js +20 -11
- package/lib/components/eventBooking/components/Provider/OrderProductModal/index.js +11 -26
- package/lib/components/eventBooking/components/Provider/Resource/index.js +12 -7
- package/lib/components/eventBooking/components/Provider/SelectHolderModal.js +2 -0
- package/lib/components/eventBooking/components/bookingDetailModal/index.js +21 -5
- package/lib/components/eventBooking/components/progressBar/index.js +8 -4
- package/lib/components/eventBooking/components/scheduleCalendar/calendarItem.js +8 -0
- package/lib/components/eventBooking/components/scheduleCalendar/index.less +12 -0
- package/lib/components/eventBooking/index.js +0 -8
- package/lib/components/eventBooking/locales.d.ts +33 -3
- package/lib/components/eventBooking/locales.js +36 -6
- package/lib/components/shoppingCart/components/Cart/Product.js +2 -2
- package/package.json +2 -2
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { TUpdateDisabledCartItem } from './types';
|
|
2
3
|
interface CartItem {
|
|
3
4
|
_id: string;
|
|
4
5
|
[key: string]: any;
|
|
@@ -27,11 +28,13 @@ interface CartContextType {
|
|
|
27
28
|
addHolderToCartItem: (holderItem: any) => void;
|
|
28
29
|
cartDataHolderList: any;
|
|
29
30
|
addNoteToCartItem: (cartItem: CartItem) => void;
|
|
30
|
-
updateDisabledCartItem:
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
updateDisabledCartItem: TUpdateDisabledCartItem;
|
|
32
|
+
getWithoutCartItemsHolderNames: () => Array<string>;
|
|
33
|
+
checkBeforeAddToCartResquest: any;
|
|
34
|
+
checkBeforeAddToCart: () => Promise<{
|
|
35
|
+
result: boolean;
|
|
36
|
+
num: number;
|
|
37
|
+
}>;
|
|
35
38
|
}
|
|
36
39
|
interface CartProviderProps {
|
|
37
40
|
children: React.ReactNode;
|
|
@@ -8,19 +8,20 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
8
8
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
9
9
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
10
10
|
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
11
|
-
function _objectDestructuringEmpty(obj) { if (obj == null) throw new TypeError("Cannot destructure " + obj); }
|
|
12
11
|
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
13
12
|
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
14
13
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
15
14
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
16
15
|
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
17
16
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
18
|
-
import React, { createContext, useMemo, useState } from 'react';
|
|
17
|
+
import React, { createContext, useMemo, useRef, useState } from 'react';
|
|
19
18
|
import dayjs from 'dayjs';
|
|
20
19
|
import { getUniqueId } from '@pisell/utils';
|
|
21
20
|
import { useSales } from "../../../businessModel/SalesModel";
|
|
22
|
-
import "./serve";
|
|
21
|
+
import { checkBeforeAddToCartApi } from "./serve";
|
|
23
22
|
import { useCustomer } from "../Customer";
|
|
23
|
+
import { useRequest } from 'ahooks';
|
|
24
|
+
import { formatValues } from "../Checkout/utils";
|
|
24
25
|
var defaultState = {
|
|
25
26
|
cartItems: [],
|
|
26
27
|
currentCartItem: null
|
|
@@ -40,7 +41,7 @@ export var CartProvider = function CartProvider(_ref) {
|
|
|
40
41
|
_useState2 = _slicedToArray(_useState, 2),
|
|
41
42
|
openCart = _useState2[0],
|
|
42
43
|
setOpen = _useState2[1];
|
|
43
|
-
|
|
44
|
+
var checkRef = useRef(null);
|
|
44
45
|
var cartData = useMemo(function () {
|
|
45
46
|
return data.cartData || defaultState;
|
|
46
47
|
}, [data]);
|
|
@@ -180,6 +181,12 @@ export var CartProvider = function CartProvider(_ref) {
|
|
|
180
181
|
/**
|
|
181
182
|
* 使用holder直接创建购物车
|
|
182
183
|
*/
|
|
184
|
+
/**
|
|
185
|
+
* @description: 使用holder直接创建购物车
|
|
186
|
+
* @param {any} holderItem holder信息
|
|
187
|
+
* @return {*}
|
|
188
|
+
* @Author: xiangfeng.xue
|
|
189
|
+
*/
|
|
183
190
|
var createCartItemFromHolder = function createCartItemFromHolder(holderItem) {
|
|
184
191
|
var _data$resourceData;
|
|
185
192
|
var cartItem = {
|
|
@@ -192,39 +199,88 @@ export var CartProvider = function CartProvider(_ref) {
|
|
|
192
199
|
setCurrentCartItem(cartItem);
|
|
193
200
|
return cartItem;
|
|
194
201
|
};
|
|
202
|
+
var checkBeforeAddToCartResquest = useRequest(checkBeforeAddToCartApi, {
|
|
203
|
+
manual: true,
|
|
204
|
+
onSuccess: function onSuccess(res) {
|
|
205
|
+
var _res$data;
|
|
206
|
+
if ((_res$data = res.data) !== null && _res$data !== void 0 && _res$data.length) {
|
|
207
|
+
var _res$data2;
|
|
208
|
+
var isUnavailable = checkCartItemIsUnavailable(res.data, checkRef.current.cartItem);
|
|
209
|
+
// 检测当前商品是否不可用
|
|
210
|
+
checkRef.current.callback({
|
|
211
|
+
result: isUnavailable ? false : true,
|
|
212
|
+
num: isUnavailable ? (_res$data2 = res.data) === null || _res$data2 === void 0 ? void 0 : _res$data2.length : 0
|
|
213
|
+
});
|
|
214
|
+
} else {
|
|
215
|
+
checkRef.current.callback({
|
|
216
|
+
result: true
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
});
|
|
195
221
|
|
|
196
222
|
/**
|
|
197
|
-
*
|
|
223
|
+
* @title: 商品加入购物车前进行校验
|
|
224
|
+
* @description:
|
|
225
|
+
* @Author: xiangfeng.xue
|
|
198
226
|
*/
|
|
199
|
-
var
|
|
227
|
+
var checkBeforeAddToCart = function checkBeforeAddToCart() {
|
|
228
|
+
return new Promise(function (resolve) {
|
|
229
|
+
var _cartData = getCurrentData().cartData;
|
|
230
|
+
var newCartItem = createCartItemData() || {};
|
|
231
|
+
var params = formatValues({
|
|
232
|
+
cartData: {
|
|
233
|
+
cartItems: [].concat(_toConsumableArray(_cartData.cartItems || []), [newCartItem])
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
checkRef.current = {
|
|
237
|
+
callback: function callback(res) {
|
|
238
|
+
resolve(res);
|
|
239
|
+
checkRef.current = null;
|
|
240
|
+
},
|
|
241
|
+
cartItem: newCartItem
|
|
242
|
+
};
|
|
243
|
+
checkBeforeAddToCartResquest.runAsync(params);
|
|
244
|
+
});
|
|
245
|
+
};
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* @title: 构建当前商品的完整购物车数据
|
|
249
|
+
* @description:
|
|
250
|
+
* @return {*} Object | null
|
|
251
|
+
* @Author: xiangfeng.xue
|
|
252
|
+
*/
|
|
253
|
+
var createCartItemData = function createCartItemData() {
|
|
200
254
|
var _cartData = getCurrentData().cartData;
|
|
201
|
-
var _cartData$currentCart = _cartData.currentCartItem,
|
|
202
|
-
_id = _cartData$currentCart._id,
|
|
203
|
-
_cartData$currentCart2 = _cartData$currentCart.eventItem,
|
|
204
|
-
eventItem = _cartData$currentCart2 === void 0 ? {} : _cartData$currentCart2,
|
|
205
|
-
_cartData$currentCart3 = _cartData$currentCart.holderItem,
|
|
206
|
-
holderItem = _cartData$currentCart3 === void 0 ? {} : _cartData$currentCart3;
|
|
207
255
|
if (_cartData.currentCartItem) {
|
|
208
256
|
var _eventItem$eventDetai, _eventItem$eventDetai2, _eventItem$eventDetai3, _eventItem$eventDetai4, _startDateInfo$times, _startDateInfo$times$, _eventItem$eventDetai5, _eventItem$eventDetai6, _endDateInfo$times, _endDateInfo$times$sl, _endDateInfo$times$sl2;
|
|
209
|
-
var
|
|
257
|
+
var _ref2 = _cartData.currentCartItem || {},
|
|
258
|
+
_id = _ref2._id,
|
|
259
|
+
_ref2$eventItem = _ref2.eventItem,
|
|
260
|
+
_eventItem = _ref2$eventItem === void 0 ? {} : _ref2$eventItem,
|
|
261
|
+
_ref2$holderItem = _ref2.holderItem,
|
|
262
|
+
_holderItem = _ref2$holderItem === void 0 ? {} : _ref2$holderItem;
|
|
263
|
+
var bookingOptionData = _eventItem === null || _eventItem === void 0 ? void 0 : (_eventItem$eventDetai = _eventItem.eventDetail) === null || _eventItem$eventDetai === void 0 ? void 0 : (_eventItem$eventDetai2 = _eventItem$eventDetai.bookingOptionItem) === null || _eventItem$eventDetai2 === void 0 ? void 0 : _eventItem$eventDetai2._originData;
|
|
210
264
|
// 活动开始日期相关信息
|
|
211
|
-
var startDateInfo =
|
|
265
|
+
var startDateInfo = _eventItem === null || _eventItem === void 0 ? void 0 : (_eventItem$eventDetai3 = _eventItem.eventDetail) === null || _eventItem$eventDetai3 === void 0 ? void 0 : (_eventItem$eventDetai4 = _eventItem$eventDetai3.selectDate) === null || _eventItem$eventDetai4 === void 0 ? void 0 : _eventItem$eventDetai4.startDateInfo;
|
|
212
266
|
var startTime = startDateInfo === null || startDateInfo === void 0 ? void 0 : (_startDateInfo$times = startDateInfo.times) === null || _startDateInfo$times === void 0 ? void 0 : (_startDateInfo$times$ = _startDateInfo$times[0]) === null || _startDateInfo$times$ === void 0 ? void 0 : _startDateInfo$times$.start_at;
|
|
213
|
-
var endDateInfo =
|
|
267
|
+
var endDateInfo = _eventItem === null || _eventItem === void 0 ? void 0 : (_eventItem$eventDetai5 = _eventItem.eventDetail) === null || _eventItem$eventDetai5 === void 0 ? void 0 : (_eventItem$eventDetai6 = _eventItem$eventDetai5.selectDate) === null || _eventItem$eventDetai6 === void 0 ? void 0 : _eventItem$eventDetai6.endDateInfo;
|
|
214
268
|
var endTime = endDateInfo === null || endDateInfo === void 0 ? void 0 : (_endDateInfo$times = endDateInfo.times) === null || _endDateInfo$times === void 0 ? void 0 : (_endDateInfo$times$sl = _endDateInfo$times.slice(-1)) === null || _endDateInfo$times$sl === void 0 ? void 0 : (_endDateInfo$times$sl2 = _endDateInfo$times$sl[0]) === null || _endDateInfo$times$sl2 === void 0 ? void 0 : _endDateInfo$times$sl2.end_at;
|
|
269
|
+
var originTotal = Number((bookingOptionData === null || bookingOptionData === void 0 ? void 0 : bookingOptionData.original_price) || '');
|
|
215
270
|
var newCartItem = {
|
|
216
271
|
_id: _id,
|
|
217
|
-
id:
|
|
218
|
-
name:
|
|
272
|
+
id: _eventItem.id,
|
|
273
|
+
name: _eventItem.title,
|
|
219
274
|
price: bookingOptionData === null || bookingOptionData === void 0 ? void 0 : bookingOptionData.price,
|
|
220
275
|
total: bookingOptionData === null || bookingOptionData === void 0 ? void 0 : bookingOptionData.price,
|
|
221
|
-
|
|
276
|
+
// 排除原始价格为0的场景
|
|
277
|
+
origin_total: isNaN(originTotal) || originTotal === 0 ? undefined : bookingOptionData === null || bookingOptionData === void 0 ? void 0 : bookingOptionData.original_price,
|
|
222
278
|
num: 1,
|
|
223
|
-
image:
|
|
279
|
+
image: _eventItem.image,
|
|
224
280
|
isShowNote: true,
|
|
225
281
|
note: '',
|
|
226
|
-
holder_title:
|
|
227
|
-
holder_id:
|
|
282
|
+
holder_title: _holderItem.name,
|
|
283
|
+
holder_id: _holderItem.id,
|
|
228
284
|
symbol: appUtils === null || appUtils === void 0 ? void 0 : appUtils.getSymbolic(),
|
|
229
285
|
start_date: (startDateInfo === null || startDateInfo === void 0 ? void 0 : startDateInfo.date) || '',
|
|
230
286
|
start_time: startTime ? dayjs(startTime || '').format('HH:mm') : '',
|
|
@@ -244,26 +300,40 @@ export var CartProvider = function CartProvider(_ref) {
|
|
|
244
300
|
product_option_item: [],
|
|
245
301
|
product_variant_id: 0
|
|
246
302
|
},
|
|
247
|
-
relation_id:
|
|
303
|
+
relation_id: _eventItem.id,
|
|
248
304
|
start_date: (startDateInfo === null || startDateInfo === void 0 ? void 0 : startDateInfo.date) || null,
|
|
249
305
|
start_time: startTime ? dayjs(startTime || '').format('HH:mm') : null,
|
|
250
306
|
select_date: (startDateInfo === null || startDateInfo === void 0 ? void 0 : startDateInfo.date) || null,
|
|
251
307
|
metadata: {
|
|
252
308
|
end_date_text: (endDateInfo === null || endDateInfo === void 0 ? void 0 : endDateInfo.date) || null,
|
|
253
309
|
end_time_text: endTime ? dayjs(endTime || '').format('HH:mm') : null
|
|
254
|
-
}
|
|
310
|
+
},
|
|
311
|
+
event_unique_identifier: _id // 传递给接口用于商品可用性检测的比对
|
|
255
312
|
})
|
|
256
313
|
};
|
|
257
|
-
|
|
314
|
+
|
|
315
|
+
if (_holderItem !== null && _holderItem !== void 0 && _holderItem._originData) {
|
|
258
316
|
var _getUserInfo, _holderItem$_originDa, _holderItem$_originDa2, _holderItem$_originDa3;
|
|
259
317
|
newCartItem._originData.holder = {
|
|
260
318
|
customer_id: (_getUserInfo = getUserInfo()) === null || _getUserInfo === void 0 ? void 0 : _getUserInfo.id,
|
|
261
|
-
form_id:
|
|
262
|
-
form_record:
|
|
319
|
+
form_id: _holderItem === null || _holderItem === void 0 ? void 0 : (_holderItem$_originDa = _holderItem._originData) === null || _holderItem$_originDa === void 0 ? void 0 : _holderItem$_originDa.form_id,
|
|
320
|
+
form_record: _holderItem !== null && _holderItem !== void 0 && (_holderItem$_originDa2 = _holderItem._originData) !== null && _holderItem$_originDa2 !== void 0 && _holderItem$_originDa2.form_record_id ? [_holderItem === null || _holderItem === void 0 ? void 0 : (_holderItem$_originDa3 = _holderItem._originData) === null || _holderItem$_originDa3 === void 0 ? void 0 : _holderItem$_originDa3.form_record_id] : null
|
|
263
321
|
};
|
|
264
322
|
}
|
|
323
|
+
return newCartItem;
|
|
324
|
+
}
|
|
325
|
+
return null;
|
|
326
|
+
};
|
|
327
|
+
|
|
328
|
+
/**
|
|
329
|
+
* 将商品加入购物车
|
|
330
|
+
*/
|
|
331
|
+
var addToCart = function addToCart() {
|
|
332
|
+
var _cartData = getCurrentData().cartData;
|
|
333
|
+
var newCartItem = createCartItemData();
|
|
334
|
+
if (_cartData.currentCartItem && newCartItem) {
|
|
265
335
|
setCartData({
|
|
266
|
-
cartItems: [].concat(_toConsumableArray(_cartData.cartItems), [newCartItem]),
|
|
336
|
+
cartItems: [].concat(_toConsumableArray(_cartData.cartItems || []), [newCartItem]),
|
|
267
337
|
currentCartItem: null
|
|
268
338
|
});
|
|
269
339
|
}
|
|
@@ -302,6 +372,12 @@ export var CartProvider = function CartProvider(_ref) {
|
|
|
302
372
|
cartItems: newCartItems
|
|
303
373
|
});
|
|
304
374
|
};
|
|
375
|
+
|
|
376
|
+
/**
|
|
377
|
+
* @description: 给购物车中商品增加备注
|
|
378
|
+
* @param {CartItem} cartItem
|
|
379
|
+
* @Author: xiangfeng.xue
|
|
380
|
+
*/
|
|
305
381
|
var addNoteToCartItem = function addNoteToCartItem(cartItem) {
|
|
306
382
|
var newCartItems = getCurrentData().cartData.cartItems.map(function (item) {
|
|
307
383
|
if (item._id === cartItem._id) {
|
|
@@ -380,9 +456,9 @@ export var CartProvider = function CartProvider(_ref) {
|
|
|
380
456
|
* @Author: xiangfeng.xue
|
|
381
457
|
*/
|
|
382
458
|
var getCurrentHolderItem = function getCurrentHolderItem() {
|
|
383
|
-
var
|
|
384
|
-
selectedHolderItems =
|
|
385
|
-
currentHolderItem =
|
|
459
|
+
var _ref3 = getCurrentData().holderData || {},
|
|
460
|
+
selectedHolderItems = _ref3.selectedHolderItems,
|
|
461
|
+
currentHolderItem = _ref3.currentHolderItem;
|
|
386
462
|
if (selectedHolderItems !== null && selectedHolderItems !== void 0 && selectedHolderItems.length) {
|
|
387
463
|
var newCurrentHolderItem = currentHolderItem;
|
|
388
464
|
var result = selectedHolderItems.find(function (v) {
|
|
@@ -396,8 +472,37 @@ export var CartProvider = function CartProvider(_ref) {
|
|
|
396
472
|
return null;
|
|
397
473
|
};
|
|
398
474
|
|
|
475
|
+
/**
|
|
476
|
+
* @title: 检测购物车中商品是否是不可用状态
|
|
477
|
+
* @description: 250210:本期只关注库存的检测结果
|
|
478
|
+
* @param {any} list
|
|
479
|
+
* @param {CartItem} item
|
|
480
|
+
* @return {*} boolean
|
|
481
|
+
* @Author: xiangfeng.xue
|
|
482
|
+
*/
|
|
483
|
+
var checkCartItemIsUnavailable = function checkCartItemIsUnavailable(list, item) {
|
|
484
|
+
var _item$_originData, _item$_originData$pro, _item$_originData2, _item$_originData3;
|
|
485
|
+
var productId = (_item$_originData = item._originData) === null || _item$_originData === void 0 ? void 0 : (_item$_originData$pro = _item$_originData.product) === null || _item$_originData$pro === void 0 ? void 0 : _item$_originData$pro.product_id;
|
|
486
|
+
var relationId = (_item$_originData2 = item._originData) === null || _item$_originData2 === void 0 ? void 0 : _item$_originData2.relation_id;
|
|
487
|
+
var eventUniqueIdentifier = (_item$_originData3 = item._originData) === null || _item$_originData3 === void 0 ? void 0 : _item$_originData3.event_unique_identifier;
|
|
488
|
+
// 根据检测项过滤检测结果
|
|
489
|
+
return list.find(function (res) {
|
|
490
|
+
var _res$details;
|
|
491
|
+
var checkType = ['available_capacity'];
|
|
492
|
+
var isTypeIncludes = ((_res$details = res.details) === null || _res$details === void 0 ? void 0 : _res$details.find(function (v) {
|
|
493
|
+
var _checkType$includes;
|
|
494
|
+
return (_checkType$includes = checkType.includes) === null || _checkType$includes === void 0 ? void 0 : _checkType$includes.call(checkType, v.type || '');
|
|
495
|
+
})) !== undefined;
|
|
496
|
+
if (isTypeIncludes) {
|
|
497
|
+
return res.product_id === productId && res.relation_id === relationId && res.event_unique_identifier === eventUniqueIdentifier;
|
|
498
|
+
}
|
|
499
|
+
return false;
|
|
500
|
+
}) !== undefined;
|
|
501
|
+
};
|
|
502
|
+
|
|
399
503
|
/**
|
|
400
504
|
* @title: 更新购物车中不可用的商品
|
|
505
|
+
* @discription
|
|
401
506
|
* @return {void}
|
|
402
507
|
* @Author: xiangfeng.xue
|
|
403
508
|
*/
|
|
@@ -405,13 +510,9 @@ export var CartProvider = function CartProvider(_ref) {
|
|
|
405
510
|
var currentCartItems = getCurrentData().cartData.cartItems || [];
|
|
406
511
|
if (list !== null && list !== void 0 && list.length && currentCartItems.length) {
|
|
407
512
|
var newCartItems = currentCartItems.map(function (item) {
|
|
408
|
-
var
|
|
409
|
-
var productId = (_item$_originData = item._originData) === null || _item$_originData === void 0 ? void 0 : (_item$_originData$pro = _item$_originData.product) === null || _item$_originData$pro === void 0 ? void 0 : _item$_originData$pro.product_id;
|
|
410
|
-
var relationId = (_item$_originData2 = item._originData) === null || _item$_originData2 === void 0 ? void 0 : _item$_originData2.relation_id;
|
|
513
|
+
var isUnavailable = checkCartItemIsUnavailable(list, item);
|
|
411
514
|
// 需要判定活动id和商品id是否都匹配
|
|
412
|
-
if (
|
|
413
|
-
return v.product_id === productId && v.relation_id === relationId;
|
|
414
|
-
}) !== undefined) {
|
|
515
|
+
if (isUnavailable) {
|
|
415
516
|
item.disabled = true;
|
|
416
517
|
// item.show_delete = true;
|
|
417
518
|
} else {
|
|
@@ -424,6 +525,23 @@ export var CartProvider = function CartProvider(_ref) {
|
|
|
424
525
|
});
|
|
425
526
|
}
|
|
426
527
|
};
|
|
528
|
+
|
|
529
|
+
/**
|
|
530
|
+
* @description: 获取没有商品信息的holder名称
|
|
531
|
+
* @return {Array<string>}
|
|
532
|
+
* @Author: xiangfeng.xue
|
|
533
|
+
*/
|
|
534
|
+
var getWithoutCartItemsHolderNames = function getWithoutCartItemsHolderNames() {
|
|
535
|
+
var _cartDataHolderList$f;
|
|
536
|
+
var list = [];
|
|
537
|
+
cartDataHolderList === null || cartDataHolderList === void 0 ? void 0 : (_cartDataHolderList$f = cartDataHolderList.forEach) === null || _cartDataHolderList$f === void 0 ? void 0 : _cartDataHolderList$f.call(cartDataHolderList, function (v) {
|
|
538
|
+
var _v$children;
|
|
539
|
+
if (!(v !== null && v !== void 0 && (_v$children = v.children) !== null && _v$children !== void 0 && _v$children.length)) {
|
|
540
|
+
list.push((v === null || v === void 0 ? void 0 : v.name) || '');
|
|
541
|
+
}
|
|
542
|
+
});
|
|
543
|
+
return list;
|
|
544
|
+
};
|
|
427
545
|
var contextValue = {
|
|
428
546
|
createCartItem: createCartItem,
|
|
429
547
|
createCartItemFromEvent: createCartItemFromEvent,
|
|
@@ -444,7 +562,10 @@ export var CartProvider = function CartProvider(_ref) {
|
|
|
444
562
|
addHolderToCartItem: addHolderToCartItem,
|
|
445
563
|
cartDataHolderList: cartDataHolderList,
|
|
446
564
|
addNoteToCartItem: addNoteToCartItem,
|
|
447
|
-
updateDisabledCartItem: updateDisabledCartItem
|
|
565
|
+
updateDisabledCartItem: updateDisabledCartItem,
|
|
566
|
+
getWithoutCartItemsHolderNames: getWithoutCartItemsHolderNames,
|
|
567
|
+
checkBeforeAddToCartResquest: checkBeforeAddToCartResquest,
|
|
568
|
+
checkBeforeAddToCart: checkBeforeAddToCart
|
|
448
569
|
};
|
|
449
570
|
return /*#__PURE__*/React.createElement(CartContext.Provider, {
|
|
450
571
|
value: contextValue
|
|
@@ -3,4 +3,9 @@ import { request } from "../../../utils";
|
|
|
3
3
|
// 获取资源列表
|
|
4
4
|
export var getResourceListApi = function getResourceListApi() {
|
|
5
5
|
return request.getRequest().get('/api/resource/list', {});
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
// 加购物车前置接口
|
|
9
|
+
export var checkBeforeAddToCartApi = function checkBeforeAddToCartApi(data) {
|
|
10
|
+
return request.getRequest().post('/h5/eventbookingv2/order/check-config', data);
|
|
6
11
|
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* available_capacity(容量)、deadline_day(截止日期)、future_day(预定天数)
|
|
3
|
+
*/
|
|
4
|
+
export declare type TCartItemUnavailableType = 'available_capacity' | 'deadline_day' | 'future_day';
|
|
5
|
+
/**
|
|
6
|
+
* 商品不可用原因
|
|
7
|
+
*/
|
|
8
|
+
export interface IUnavailableResult {
|
|
9
|
+
event_unique_identifier: number;
|
|
10
|
+
relation_id: number;
|
|
11
|
+
product_id: number;
|
|
12
|
+
details?: Array<{
|
|
13
|
+
type: TCartItemUnavailableType;
|
|
14
|
+
}>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* 更新失效的购物车商品
|
|
18
|
+
*/
|
|
19
|
+
export declare type TUpdateDisabledCartItem = (list: Array<IUnavailableResult>) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -84,15 +84,15 @@ var Pet = function Pet(props) {
|
|
|
84
84
|
* @Date: 2024-01-27 14:22
|
|
85
85
|
*/
|
|
86
86
|
var petForm = useMemo(function () {
|
|
87
|
-
var _state$bookingConfig2;
|
|
87
|
+
var _state$bookingConfig2, _holder$form, _holder$form2;
|
|
88
88
|
var _holder = (_state$bookingConfig2 = state.bookingConfig) === null || _state$bookingConfig2 === void 0 ? void 0 : _state$bookingConfig2.holder;
|
|
89
89
|
if (!_holder) {
|
|
90
90
|
return null;
|
|
91
91
|
}
|
|
92
92
|
return _objectSpread(_objectSpread(_objectSpread({}, _holder), _holder === null || _holder === void 0 ? void 0 : _holder.form), {}, {
|
|
93
93
|
options: [],
|
|
94
|
-
form_id: _holder.form.id,
|
|
95
|
-
field: _holder.form.form_field,
|
|
94
|
+
form_id: _holder === null || _holder === void 0 ? void 0 : (_holder$form = _holder.form) === null || _holder$form === void 0 ? void 0 : _holder$form.id,
|
|
95
|
+
field: _holder === null || _holder === void 0 ? void 0 : (_holder$form2 = _holder.form) === null || _holder$form2 === void 0 ? void 0 : _holder$form2.form_field,
|
|
96
96
|
relation_type: 'appointment_booking',
|
|
97
97
|
form_record: []
|
|
98
98
|
});
|
|
@@ -237,4 +237,4 @@ export declare const updateAppointmentServicePrice: (state: any, { start_date, e
|
|
|
237
237
|
* @Author: WangHan
|
|
238
238
|
* @Date: 2024-12-24 11:32
|
|
239
239
|
*/
|
|
240
|
-
export declare const updateServicePrice: (state: any) => never[]
|
|
240
|
+
export declare const updateServicePrice: (state: any) => Promise<any> | never[];
|
|
@@ -9,7 +9,7 @@ import { PosProps } from './const';
|
|
|
9
9
|
*/
|
|
10
10
|
declare const _default: ({ className, onChange, onClose, formatAmount, isMobile, net, client }: {
|
|
11
11
|
className?: string | undefined;
|
|
12
|
-
onChange?: ((status: "
|
|
12
|
+
onChange?: ((status: "page" | "success" | "fail", params?: string | {
|
|
13
13
|
[keys: string]: unknown;
|
|
14
14
|
} | undefined, other?: any) => void) | undefined;
|
|
15
15
|
onClose: () => void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { PosProps, RouteType } from './const';
|
|
3
|
-
declare const App: ({ action, api, device_number, terminal, tyroUrl, tyroVersion, onChangeParams, isMobile, channel, formatAmount, ...props }: Omit<PosProps, "
|
|
3
|
+
declare const App: ({ action, api, device_number, terminal, tyroUrl, tyroVersion, onChangeParams, isMobile, channel, formatAmount, ...props }: Omit<PosProps, "type" | "mode" | "getApi"> & {
|
|
4
4
|
action: RouteType;
|
|
5
5
|
device_number: string | number;
|
|
6
6
|
api: ReturnType<PosProps['getApi']>;
|
|
@@ -11,7 +11,7 @@ import './device.less';
|
|
|
11
11
|
declare const _default: ({ api, onChange, onClose, className, device_number, isMobile, net, client, formatAmount, }: {
|
|
12
12
|
api: PayProps['api'];
|
|
13
13
|
className?: string | undefined;
|
|
14
|
-
onChange?: ((status: "
|
|
14
|
+
onChange?: ((status: "success" | "page" | "print" | "fail" | "mark_tx_processed", params?: string | {
|
|
15
15
|
[keys: string]: unknown;
|
|
16
16
|
} | undefined, other?: any) => void) | undefined;
|
|
17
17
|
onClose: () => void;
|
|
@@ -174,7 +174,7 @@ export declare const updateCustom: (payload: {
|
|
|
174
174
|
export declare const updateStatus: (status: 'loading' | 'warn' | 'fail' | 'success' | 'question') => {
|
|
175
175
|
type: EActionTypes;
|
|
176
176
|
payload: {
|
|
177
|
-
status: "
|
|
177
|
+
status: "loading" | "success" | "warn" | "fail" | "question";
|
|
178
178
|
};
|
|
179
179
|
};
|
|
180
180
|
/**
|
|
@@ -308,7 +308,7 @@ export declare const backUpFree: (payload: Partial<State>) => {
|
|
|
308
308
|
net?: boolean | undefined;
|
|
309
309
|
component?: string | undefined;
|
|
310
310
|
form?: string | undefined;
|
|
311
|
-
status?: "
|
|
311
|
+
status?: "loading" | "success" | "warn" | "fail" | "pedding" | "resove" | "reject" | "question" | undefined;
|
|
312
312
|
warn?: string | undefined;
|
|
313
313
|
steps?: {
|
|
314
314
|
/** 用于重置当前步骤 */
|