@pisell/private-materials 6.3.45 → 6.3.47
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.css +1 -1
- package/build/lowcode/render/default/view.js +9 -9
- package/build/lowcode/view.css +1 -1
- package/build/lowcode/view.js +9 -9
- package/es/components/Sales/Summary/utils.d.ts +1 -1
- package/es/components/appointmentBooking/components/Voucher/index.js +1 -0
- package/es/components/booking/components/voucher/index.js +3 -1
- package/es/components/booking/info/service2/utils.d.ts +1 -1
- package/es/components/booking/utils.d.ts +2 -2
- package/es/components/eftposPay/amount.d.ts +1 -1
- package/es/components/eftposPay/device.d.ts +1 -1
- package/es/components/eftposPay/hooks.d.ts +2 -2
- package/es/components/eftposPay/linkly/hooks/useTimeQuery.js +14 -6
- package/es/components/eftposPay/payo/config.js +70 -32
- package/es/components/eftposPay/payo/payment.d.ts +66 -0
- package/es/components/eftposPay/payo/payment.js +579 -0
- package/es/components/eftposPay/store/index.d.ts +6 -6
- package/es/components/eftposPay/utils/log/index.d.ts +110 -0
- package/es/components/eftposPay/utils/log/index.js +371 -0
- package/es/components/index.d.ts +2 -1
- package/es/components/index.js +2 -1
- package/es/components/pay/toC/PaymentMethods/WalletPass/serve.d.ts +6 -0
- package/es/components/pay/toC/PaymentMethods/WalletPass/utils.js +4 -2
- package/es/components/pay/toC/PaymentMethods/components/PaymentReturnContent/index.js +2 -0
- package/es/components/pay/toC/PaymentMethods/components/PaymentReturnContent/index.less +13 -3
- package/es/components/pay/toC/locales.d.ts +3 -0
- package/es/components/pay/toC/locales.js +6 -3
- package/es/components/wallet/Detail/index.js +34 -2
- package/es/components/wallet/Detail/index.less +11 -0
- package/es/components/wallet/Detail/locales.d.ts +6 -0
- package/es/components/wallet/Detail/locales.js +14 -2
- package/es/components/wallet/Voucher/index.js +11 -10
- package/es/components/wallet/components/WalletCard.js +5 -1
- package/es/components/wallet/index.js +4 -2
- package/es/components/wallet/serve.d.ts +7 -0
- package/es/components/wallet/utils.d.ts +48 -0
- package/es/components/wallet/utils.js +342 -0
- package/es/index.d.ts +3 -2
- package/es/index.js +4 -3
- package/es/plus/walletPassGallery/components/passDetail/index.js +72 -28
- package/es/plus/walletPassGallery/index.js +4 -2
- package/es/plus/walletPassGallery/serve.d.ts +2 -0
- package/es/plus/walletPassGallery/serve.js +1 -1
- package/lib/components/Sales/Summary/utils.d.ts +1 -1
- package/lib/components/appointmentBooking/components/Voucher/index.js +1 -0
- package/lib/components/booking/components/voucher/index.js +3 -1
- package/lib/components/booking/info/service2/utils.d.ts +1 -1
- package/lib/components/booking/utils.d.ts +2 -2
- package/lib/components/eftposPay/amount.d.ts +1 -1
- package/lib/components/eftposPay/device.d.ts +1 -1
- package/lib/components/eftposPay/hooks.d.ts +2 -2
- package/lib/components/eftposPay/linkly/hooks/useTimeQuery.js +12 -6
- package/lib/components/eftposPay/payo/config.js +98 -73
- package/lib/components/eftposPay/payo/payment.d.ts +66 -0
- package/lib/components/eftposPay/payo/payment.js +357 -0
- package/lib/components/eftposPay/store/index.d.ts +6 -6
- package/lib/components/eftposPay/utils/log/index.d.ts +110 -0
- package/lib/components/eftposPay/utils/log/index.js +294 -0
- package/lib/components/index.d.ts +2 -1
- package/lib/components/index.js +3 -0
- package/lib/components/pay/toC/PaymentMethods/WalletPass/serve.d.ts +6 -0
- package/lib/components/pay/toC/PaymentMethods/WalletPass/utils.js +4 -2
- package/lib/components/pay/toC/PaymentMethods/components/PaymentReturnContent/index.js +1 -1
- package/lib/components/pay/toC/PaymentMethods/components/PaymentReturnContent/index.less +13 -3
- package/lib/components/pay/toC/locales.d.ts +3 -0
- package/lib/components/pay/toC/locales.js +6 -3
- package/lib/components/wallet/Detail/index.js +31 -3
- package/lib/components/wallet/Detail/index.less +11 -0
- package/lib/components/wallet/Detail/locales.d.ts +6 -0
- package/lib/components/wallet/Detail/locales.js +14 -2
- package/lib/components/wallet/Voucher/index.js +8 -8
- package/lib/components/wallet/components/WalletCard.js +4 -0
- package/lib/components/wallet/index.js +2 -2
- package/lib/components/wallet/serve.d.ts +7 -0
- package/lib/components/wallet/utils.d.ts +48 -0
- package/lib/components/wallet/utils.js +287 -0
- package/lib/index.d.ts +3 -2
- package/lib/index.js +5 -2
- package/lib/plus/walletPassGallery/components/passDetail/index.js +46 -12
- package/lib/plus/walletPassGallery/index.js +4 -2
- package/lib/plus/walletPassGallery/serve.d.ts +2 -0
- package/lib/plus/walletPassGallery/serve.js +1 -1
- package/lowcode/wallet-pass-detail/meta.ts +84 -0
- package/package.json +2 -2
|
@@ -88,7 +88,7 @@ var Wallet = (0, import_model.Provider)(() => {
|
|
|
88
88
|
import_utils2.request.setRequest(utils == null ? void 0 : utils.request);
|
|
89
89
|
(0, import_react.useEffect)(() => {
|
|
90
90
|
document.body.id = "body";
|
|
91
|
-
getList({ num: 999, skip: 1 });
|
|
91
|
+
getList({ num: 999, skip: 1, with: ["customScheduleSnapshot"] });
|
|
92
92
|
}, []);
|
|
93
93
|
const transformData = (data) => {
|
|
94
94
|
const result = {};
|
|
@@ -353,7 +353,7 @@ var Wallet = (0, import_model.Provider)(() => {
|
|
|
353
353
|
content: successMessage,
|
|
354
354
|
duration: 2
|
|
355
355
|
});
|
|
356
|
-
getList({ num: 999, skip: 1 }, code);
|
|
356
|
+
getList({ num: 999, skip: 1, with: ["customScheduleSnapshot"] }, code);
|
|
357
357
|
}
|
|
358
358
|
dispatch({
|
|
359
359
|
type: "setState",
|
|
@@ -15,6 +15,7 @@ export interface IWalletListParmsProps {
|
|
|
15
15
|
used_status?: string;
|
|
16
16
|
num?: number;
|
|
17
17
|
skip?: number;
|
|
18
|
+
with?: string[];
|
|
18
19
|
}
|
|
19
20
|
/**
|
|
20
21
|
* 钱包列表项属性接口
|
|
@@ -48,6 +49,12 @@ export interface IWalletListItemProps {
|
|
|
48
49
|
machinecode_config?: {
|
|
49
50
|
hide_recharge?: number;
|
|
50
51
|
};
|
|
52
|
+
metadata: {
|
|
53
|
+
validity_type: string;
|
|
54
|
+
};
|
|
55
|
+
custom_schedule_snapshot: {
|
|
56
|
+
data: any[];
|
|
57
|
+
};
|
|
51
58
|
}
|
|
52
59
|
/**
|
|
53
60
|
* 商店信息接口
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
interface ScheduleTextResult {
|
|
2
|
+
validityTexts: string[];
|
|
3
|
+
excluded_date: string[];
|
|
4
|
+
included_date: string[];
|
|
5
|
+
}
|
|
6
|
+
declare type Locale = 'en' | 'zh-CN' | 'zh-HK';
|
|
7
|
+
interface ScheduleItem {
|
|
8
|
+
id: number;
|
|
9
|
+
name: string | {
|
|
10
|
+
[key: string]: string;
|
|
11
|
+
};
|
|
12
|
+
type: 'standard' | 'time-slots' | 'designation';
|
|
13
|
+
start_time: string | null;
|
|
14
|
+
end_time: string | null;
|
|
15
|
+
repeat_type: 'none' | 'daily' | 'weekly';
|
|
16
|
+
repeat_rule: {
|
|
17
|
+
end: {
|
|
18
|
+
type: 'never' | 'date' | 'occurrence';
|
|
19
|
+
end_date: string | null;
|
|
20
|
+
occurrence: number | null;
|
|
21
|
+
};
|
|
22
|
+
frequency: number;
|
|
23
|
+
excluded_date: Array<{
|
|
24
|
+
start: string;
|
|
25
|
+
end: string;
|
|
26
|
+
}>;
|
|
27
|
+
included_date: any[];
|
|
28
|
+
frequency_date: number[];
|
|
29
|
+
} | null;
|
|
30
|
+
designation: Array<{
|
|
31
|
+
start_date: string;
|
|
32
|
+
start_time: string;
|
|
33
|
+
end_date: string;
|
|
34
|
+
end_time: string;
|
|
35
|
+
}> | null;
|
|
36
|
+
is_all: number;
|
|
37
|
+
time_slot: Array<{
|
|
38
|
+
start_time: string;
|
|
39
|
+
end_time: string;
|
|
40
|
+
}>;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* 根据scheduleList格式化文案展示
|
|
44
|
+
* @param scheduleList 日程列表
|
|
45
|
+
* @returns 格式化后的文案结果数组,每个日程对应一个结果
|
|
46
|
+
*/
|
|
47
|
+
export declare function formatScheduleText(scheduleList: ScheduleItem[], locale?: Locale): ScheduleTextResult[];
|
|
48
|
+
export {};
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
|
|
19
|
+
// src/components/wallet/utils.ts
|
|
20
|
+
var utils_exports = {};
|
|
21
|
+
__export(utils_exports, {
|
|
22
|
+
formatScheduleText: () => formatScheduleText
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(utils_exports);
|
|
25
|
+
function formatDateTime(dateTime, isAll = false, locale = "zh-CN") {
|
|
26
|
+
const date = new Date(dateTime);
|
|
27
|
+
const year = date.getFullYear();
|
|
28
|
+
const month = String(date.getMonth() + 1).padStart(2, "0");
|
|
29
|
+
const day = String(date.getDate()).padStart(2, "0");
|
|
30
|
+
const hours = date.getHours();
|
|
31
|
+
const minutes = String(date.getMinutes()).padStart(2, "0");
|
|
32
|
+
if (isAll) {
|
|
33
|
+
if (locale === "en") {
|
|
34
|
+
return `${day}/${month}/${year}`;
|
|
35
|
+
} else {
|
|
36
|
+
return `${year}-${month}-${day}`;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (locale === "en") {
|
|
40
|
+
const period = hours >= 12 ? "PM" : "AM";
|
|
41
|
+
const displayHours = hours === 0 ? 12 : hours > 12 ? hours - 12 : hours;
|
|
42
|
+
return `${day}/${month}/${year} ${displayHours}:${minutes} ${period}`;
|
|
43
|
+
} else {
|
|
44
|
+
const displayHours = String(hours).padStart(2, "0");
|
|
45
|
+
return `${year}-${month}-${day} ${displayHours}:${minutes}`;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
var textConfig = {
|
|
49
|
+
"zh-HK": {
|
|
50
|
+
weekdays: ["日", "一", "二", "三", "四", "五", "六"],
|
|
51
|
+
separator: "、",
|
|
52
|
+
timeSeparator: "–",
|
|
53
|
+
rangeSeparator: " 至 ",
|
|
54
|
+
periodSeparator: ";",
|
|
55
|
+
timeSlotSeparator: ",",
|
|
56
|
+
every: "每",
|
|
57
|
+
day: "天",
|
|
58
|
+
week: "周",
|
|
59
|
+
month: "月",
|
|
60
|
+
year: "年",
|
|
61
|
+
available: "可用",
|
|
62
|
+
unlimited: "无限期",
|
|
63
|
+
weekPrefix: "周"
|
|
64
|
+
},
|
|
65
|
+
"zh-CN": {
|
|
66
|
+
weekdays: ["日", "一", "二", "三", "四", "五", "六"],
|
|
67
|
+
separator: "、",
|
|
68
|
+
timeSeparator: "–",
|
|
69
|
+
rangeSeparator: " 至 ",
|
|
70
|
+
periodSeparator: ";",
|
|
71
|
+
timeSlotSeparator: ",",
|
|
72
|
+
every: "每",
|
|
73
|
+
day: "天",
|
|
74
|
+
week: "周",
|
|
75
|
+
month: "月",
|
|
76
|
+
year: "年",
|
|
77
|
+
available: "可用",
|
|
78
|
+
unlimited: "无限期",
|
|
79
|
+
weekPrefix: "周"
|
|
80
|
+
},
|
|
81
|
+
"en": {
|
|
82
|
+
weekdays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
|
|
83
|
+
separator: ", ",
|
|
84
|
+
timeSeparator: "–",
|
|
85
|
+
rangeSeparator: " - ",
|
|
86
|
+
periodSeparator: "; ",
|
|
87
|
+
timeSlotSeparator: ", ",
|
|
88
|
+
every: "every ",
|
|
89
|
+
day: "day",
|
|
90
|
+
week: "week",
|
|
91
|
+
month: "month",
|
|
92
|
+
year: "year",
|
|
93
|
+
available: "available",
|
|
94
|
+
unlimited: "unlimited",
|
|
95
|
+
weekPrefix: ""
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
function getWeekdayText(dayNumbers, locale) {
|
|
99
|
+
const config = textConfig[locale];
|
|
100
|
+
return dayNumbers.map((day) => config.weekdays[day]).join(config.separator);
|
|
101
|
+
}
|
|
102
|
+
function getRepeatFrequencyText(repeatType, frequency, locale) {
|
|
103
|
+
const config = textConfig[locale];
|
|
104
|
+
const typeMap = {
|
|
105
|
+
"daily": config.day,
|
|
106
|
+
"weekly": config.week,
|
|
107
|
+
"monthly": config.month,
|
|
108
|
+
"yearly": config.year
|
|
109
|
+
};
|
|
110
|
+
if (locale === "en") {
|
|
111
|
+
if (frequency === 1) {
|
|
112
|
+
return `${config.every}${typeMap[repeatType]}`;
|
|
113
|
+
}
|
|
114
|
+
return `${config.every}${frequency} ${typeMap[repeatType]}s`;
|
|
115
|
+
} else {
|
|
116
|
+
if (frequency === 1) {
|
|
117
|
+
return `${config.every}${typeMap[repeatType]}`;
|
|
118
|
+
}
|
|
119
|
+
return `${config.every}${frequency}${typeMap[repeatType]}`;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
function formatScheduleText(scheduleList, locale = "en") {
|
|
123
|
+
const results = [];
|
|
124
|
+
const config = textConfig[locale];
|
|
125
|
+
scheduleList.forEach((schedule) => {
|
|
126
|
+
var _a, _b;
|
|
127
|
+
const validityTexts = [];
|
|
128
|
+
const excluded_date = [];
|
|
129
|
+
const included_date = [];
|
|
130
|
+
if ((_a = schedule.repeat_rule) == null ? void 0 : _a.excluded_date) {
|
|
131
|
+
schedule.repeat_rule.excluded_date.forEach((excludeItem) => {
|
|
132
|
+
const startDate = formatDateTime(excludeItem.start, true, locale);
|
|
133
|
+
const endDate = formatDateTime(excludeItem.end, true, locale);
|
|
134
|
+
if (excludeItem.start === excludeItem.end) {
|
|
135
|
+
excluded_date.push(startDate);
|
|
136
|
+
} else {
|
|
137
|
+
excluded_date.push(`${startDate}${config.rangeSeparator}${endDate}`);
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
if ((_b = schedule.repeat_rule) == null ? void 0 : _b.included_date) {
|
|
142
|
+
schedule.repeat_rule.included_date.forEach((includeItem) => {
|
|
143
|
+
const startDate = formatDateTime(includeItem.start, true, locale);
|
|
144
|
+
const endDate = formatDateTime(includeItem.end, true, locale);
|
|
145
|
+
if (includeItem.start === includeItem.end) {
|
|
146
|
+
included_date.push(startDate);
|
|
147
|
+
} else {
|
|
148
|
+
included_date.push(`${startDate}${config.rangeSeparator}${endDate}`);
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
const isAllDay = schedule.is_all === 1;
|
|
153
|
+
let validityText = "";
|
|
154
|
+
if (schedule.repeat_type === "none") {
|
|
155
|
+
if (schedule.type === "standard") {
|
|
156
|
+
const startDateTime = formatDateTime(schedule.start_time, isAllDay, locale);
|
|
157
|
+
const endDateTime = formatDateTime(schedule.end_time, isAllDay, locale);
|
|
158
|
+
validityText = `${startDateTime}${config.rangeSeparator}${endDateTime}`;
|
|
159
|
+
} else if (schedule.type === "time-slots" && schedule.time_slot.length > 0) {
|
|
160
|
+
const baseDate = formatDateTime(schedule.start_time, true, locale);
|
|
161
|
+
if (isAllDay) {
|
|
162
|
+
validityText = `${baseDate}`;
|
|
163
|
+
} else {
|
|
164
|
+
const timeSlots = schedule.time_slot.map(
|
|
165
|
+
(slot) => `${slot.start_time}${config.timeSeparator}${slot.end_time}`
|
|
166
|
+
);
|
|
167
|
+
validityText = `${baseDate} ${timeSlots.join(config.timeSlotSeparator)}`;
|
|
168
|
+
}
|
|
169
|
+
} else if (schedule.type === "designation" && schedule.designation) {
|
|
170
|
+
const designationTexts = schedule.designation.map((item) => {
|
|
171
|
+
if (isAllDay || item.start_time === "00:00" && item.end_time === "23:59") {
|
|
172
|
+
const startDate = formatDateTime(item.start_date, true, locale);
|
|
173
|
+
const endDate = formatDateTime(item.end_date, true, locale);
|
|
174
|
+
return `${startDate}${config.rangeSeparator}${endDate}`;
|
|
175
|
+
} else {
|
|
176
|
+
const startDate = formatDateTime(item.start_date, true, locale);
|
|
177
|
+
return `${startDate} ${item.start_time}${config.timeSeparator}${item.end_time}`;
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
validityTexts.push(...designationTexts);
|
|
181
|
+
}
|
|
182
|
+
} else if (schedule.repeat_rule) {
|
|
183
|
+
const { frequency, frequency_date } = schedule.repeat_rule;
|
|
184
|
+
const startText = isAllDay ? formatDateTime(schedule.start_time, true, locale) : formatDateTime(schedule.start_time, false, locale);
|
|
185
|
+
let endDateText = "";
|
|
186
|
+
if (schedule.repeat_rule.end.type === "never") {
|
|
187
|
+
endDateText = config.unlimited;
|
|
188
|
+
} else if (schedule.repeat_rule.end.end_date) {
|
|
189
|
+
endDateText = formatDateTime(schedule.repeat_rule.end.end_date, true, locale);
|
|
190
|
+
}
|
|
191
|
+
if (schedule.type === "standard") {
|
|
192
|
+
if (schedule.repeat_type === "daily") {
|
|
193
|
+
if (isAllDay) {
|
|
194
|
+
const frequencyText = getRepeatFrequencyText("daily", frequency, locale);
|
|
195
|
+
if (locale === "en") {
|
|
196
|
+
validityText = `${startText}${config.rangeSeparator}${endDateText}, ${config.available} ${frequencyText}`;
|
|
197
|
+
} else {
|
|
198
|
+
validityText = `${startText}${config.rangeSeparator}${endDateText},${frequencyText}${config.available}`;
|
|
199
|
+
}
|
|
200
|
+
} else {
|
|
201
|
+
const startTime = formatDateTime(schedule.start_time, false, locale);
|
|
202
|
+
const endTime = formatDateTime(schedule.end_time, false, locale);
|
|
203
|
+
const timeRange = locale === "en" ? `${startTime.split(" ")[1]} ${startTime.split(" ")[2]}${config.timeSeparator}${endTime.split(" ")[1]} ${endTime.split(" ")[2]}` : `${startTime.split(" ")[1]}${config.timeSeparator}${endTime.split(" ")[1]}`;
|
|
204
|
+
const frequencyText = getRepeatFrequencyText("daily", frequency, locale);
|
|
205
|
+
const dateRange = locale === "en" ? `${startTime.split(" ")[0]}${config.rangeSeparator}${endDateText}` : `${startText.split(" ")[0]}${config.rangeSeparator}${endDateText}`;
|
|
206
|
+
if (locale === "en") {
|
|
207
|
+
validityText = `${dateRange}, ${config.available} ${frequencyText} ${timeRange}`;
|
|
208
|
+
} else {
|
|
209
|
+
validityText = `${dateRange},${frequencyText} ${timeRange} ${config.available}`;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
} else if (schedule.repeat_type === "weekly") {
|
|
213
|
+
const weekdaysText = getWeekdayText(frequency_date, locale);
|
|
214
|
+
if (isAllDay) {
|
|
215
|
+
if (locale === "en") {
|
|
216
|
+
const frequencyText = frequency === 1 ? "every week" : `every ${frequency} weeks`;
|
|
217
|
+
validityText = `${startText}${config.rangeSeparator}${endDateText}, ${frequencyText} on ${weekdaysText} `;
|
|
218
|
+
} else {
|
|
219
|
+
const frequencyText = frequency === 1 ? "每周" : `每${frequency}周的`;
|
|
220
|
+
validityText = `${startText}${config.rangeSeparator}${endDateText},${frequencyText}${config.weekPrefix}${weekdaysText}${config.available}`;
|
|
221
|
+
}
|
|
222
|
+
} else {
|
|
223
|
+
const startTime = formatDateTime(schedule.start_time, false, locale);
|
|
224
|
+
const endTime = formatDateTime(schedule.end_time, false, locale);
|
|
225
|
+
const timeRange = locale === "en" ? `${startTime.split(" ")[1]} ${startTime.split(" ")[2]}${config.timeSeparator}${endTime.split(" ")[1]} ${endTime.split(" ")[2]}` : `${startTime.split(" ")[1]}${config.timeSeparator}${endTime.split(" ")[1]}`;
|
|
226
|
+
const dateRange = locale === "en" ? `${startTime.split(" ")[0]}${config.rangeSeparator}${endDateText}` : `${startText.split(" ")[0]}${config.rangeSeparator}${endDateText}`;
|
|
227
|
+
if (locale === "en") {
|
|
228
|
+
const frequencyText = frequency === 1 ? "every week" : `every ${frequency} weeks`;
|
|
229
|
+
validityText = `${dateRange}, ${frequencyText} on ${weekdaysText} ${timeRange}`;
|
|
230
|
+
} else {
|
|
231
|
+
const frequencyText = frequency === 1 ? "每周" : `每${frequency}周的`;
|
|
232
|
+
validityText = `${dateRange},${frequencyText}${config.weekPrefix}${weekdaysText} ${timeRange}`;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
} else if (schedule.type === "time-slots" && schedule.time_slot.length > 0) {
|
|
237
|
+
const baseDate = formatDateTime(schedule.start_time, true, locale);
|
|
238
|
+
const timeSlots = schedule.time_slot.map(
|
|
239
|
+
(slot) => `${slot.start_time}${config.timeSeparator}${slot.end_time}`
|
|
240
|
+
);
|
|
241
|
+
const timeSlotsText = timeSlots.join(config.timeSlotSeparator);
|
|
242
|
+
if (schedule.repeat_type === "daily") {
|
|
243
|
+
const frequencyText = getRepeatFrequencyText("daily", frequency, locale);
|
|
244
|
+
if (locale === "en") {
|
|
245
|
+
validityText = `${baseDate}${config.rangeSeparator}${endDateText}, ${config.available} ${frequencyText} ${timeSlotsText}`;
|
|
246
|
+
} else {
|
|
247
|
+
validityText = `${baseDate}${config.rangeSeparator}${endDateText},${frequencyText} ${timeSlotsText} ${config.available}`;
|
|
248
|
+
}
|
|
249
|
+
} else if (schedule.repeat_type === "weekly") {
|
|
250
|
+
const weekdaysText = getWeekdayText(frequency_date, locale);
|
|
251
|
+
if (locale === "en") {
|
|
252
|
+
const frequencyText = frequency === 1 ? "every week" : `every ${frequency} weeks`;
|
|
253
|
+
validityText = `${baseDate}${config.rangeSeparator}${endDateText}, ${frequencyText} on ${weekdaysText} ${timeSlotsText}`;
|
|
254
|
+
} else {
|
|
255
|
+
const frequencyText = frequency === 1 ? "每周" : `每${frequency}周的`;
|
|
256
|
+
validityText = `${baseDate}${config.rangeSeparator}${endDateText},${frequencyText}${config.weekPrefix}${weekdaysText} ${timeSlotsText} ${config.available}`;
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
} else if (schedule.type === "designation" && schedule.designation) {
|
|
261
|
+
const designationTexts = schedule.designation.map((item) => {
|
|
262
|
+
if (isAllDay || item.start_time === "00:00" && item.end_time === "23:59") {
|
|
263
|
+
const startDate = formatDateTime(item.start_date, true, locale);
|
|
264
|
+
const endDate = formatDateTime(item.end_date, true, locale);
|
|
265
|
+
return `${startDate}${config.rangeSeparator}${endDate}`;
|
|
266
|
+
} else {
|
|
267
|
+
const startDate = formatDateTime(item.start_date, true, locale);
|
|
268
|
+
return `${startDate} ${item.start_time}${config.timeSeparator}${item.end_time}`;
|
|
269
|
+
}
|
|
270
|
+
});
|
|
271
|
+
validityTexts.push(...designationTexts);
|
|
272
|
+
}
|
|
273
|
+
if (validityText) {
|
|
274
|
+
validityTexts.push(validityText);
|
|
275
|
+
}
|
|
276
|
+
results.push({
|
|
277
|
+
validityTexts,
|
|
278
|
+
excluded_date,
|
|
279
|
+
included_date
|
|
280
|
+
});
|
|
281
|
+
});
|
|
282
|
+
return results;
|
|
283
|
+
}
|
|
284
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
285
|
+
0 && (module.exports = {
|
|
286
|
+
formatScheduleText
|
|
287
|
+
});
|
package/lib/index.d.ts
CHANGED
|
@@ -47,8 +47,6 @@ export { default as StepController } from './components/stepController';
|
|
|
47
47
|
export { default as SaasLogin } from './plus/saasLogin';
|
|
48
48
|
export { default as SaasRegister } from './plus/saasRegister';
|
|
49
49
|
export { default as SaasCreateOrganization } from './plus/saasCreateOrganization';
|
|
50
|
-
export { default as WalletEditor } from './plus/walletEditor';
|
|
51
|
-
export { default as WalletPassGallery } from './plus/walletPassGallery';
|
|
52
50
|
export { default as PinModal } from './components/pinModal';
|
|
53
51
|
export { default as PinVerifyModal } from './components/pinVerifyModal';
|
|
54
52
|
export { OAuthConfig, SaaSAdminAuth, OrgAdminAuth, CustomerAuth, CustomerOAuthConfig, DeviceAuth, POSOperatorAuth, OnlineShopAuth, SaaSManagermentAuth } from './components/authentication/admin';
|
|
@@ -56,3 +54,6 @@ export type { SaaSAdminAuthProps, OrgAdminAuthProps, DeviceAuthProps, POSOperato
|
|
|
56
54
|
export { default as ContactInfo } from './plus/contactInfo';
|
|
57
55
|
export { default as ContactInfoModal } from './plus/contactInfoModal';
|
|
58
56
|
export { Login2, Register2, AuthModal } from './pro/Login2.0';
|
|
57
|
+
export { default as WalletEditor } from './plus/walletEditor';
|
|
58
|
+
export { default as WalletPassGallery } from './plus/walletPassGallery';
|
|
59
|
+
export { default as WalletPassDetail } from './plus/walletPassGallery/components/passDetail';
|
package/lib/index.js
CHANGED
|
@@ -92,6 +92,7 @@ __export(src_exports, {
|
|
|
92
92
|
VerticalClient: () => import_clientVariant.VerticalClient,
|
|
93
93
|
WalletEditor: () => import_walletEditor.default,
|
|
94
94
|
WalletList: () => import_walletList.default,
|
|
95
|
+
WalletPassDetail: () => import_passDetail.default,
|
|
95
96
|
WalletPassGallery: () => import_walletPassGallery.default,
|
|
96
97
|
WorkspaceList: () => import_workSpaceList.default,
|
|
97
98
|
WorkspaceListDetail: () => import_workSpaceListDetail.default
|
|
@@ -148,14 +149,15 @@ var import_stepController = __toESM(require("./components/stepController"));
|
|
|
148
149
|
var import_saasLogin = __toESM(require("./plus/saasLogin"));
|
|
149
150
|
var import_saasRegister = __toESM(require("./plus/saasRegister"));
|
|
150
151
|
var import_saasCreateOrganization = __toESM(require("./plus/saasCreateOrganization"));
|
|
151
|
-
var import_walletEditor = __toESM(require("./plus/walletEditor"));
|
|
152
|
-
var import_walletPassGallery = __toESM(require("./plus/walletPassGallery"));
|
|
153
152
|
var import_pinModal = __toESM(require("./components/pinModal"));
|
|
154
153
|
var import_pinVerifyModal = __toESM(require("./components/pinVerifyModal"));
|
|
155
154
|
var import_admin = require("./components/authentication/admin");
|
|
156
155
|
var import_contactInfo = __toESM(require("./plus/contactInfo"));
|
|
157
156
|
var import_contactInfoModal = __toESM(require("./plus/contactInfoModal"));
|
|
158
157
|
var import_Login2 = require("./pro/Login2.0");
|
|
158
|
+
var import_walletEditor = __toESM(require("./plus/walletEditor"));
|
|
159
|
+
var import_walletPassGallery = __toESM(require("./plus/walletPassGallery"));
|
|
160
|
+
var import_passDetail = __toESM(require("./plus/walletPassGallery/components/passDetail"));
|
|
159
161
|
import_dayjs.default.extend(import_weekday.default);
|
|
160
162
|
import_dayjs.default.extend(import_localeData.default);
|
|
161
163
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -223,6 +225,7 @@ import_dayjs.default.extend(import_localeData.default);
|
|
|
223
225
|
VerticalClient,
|
|
224
226
|
WalletEditor,
|
|
225
227
|
WalletList,
|
|
228
|
+
WalletPassDetail,
|
|
226
229
|
WalletPassGallery,
|
|
227
230
|
WorkspaceList,
|
|
228
231
|
WorkspaceListDetail
|
|
@@ -48,10 +48,12 @@ var import_recharge = __toESM(require("../recharge"));
|
|
|
48
48
|
var import_footerButton = __toESM(require("../footerButton"));
|
|
49
49
|
var import_useEngineContext = __toESM(require("../../../../hooks/useEngineContext"));
|
|
50
50
|
var import_index = require("./index.less");
|
|
51
|
+
var import_utils3 = require("../../../../components/wallet/utils");
|
|
52
|
+
var import_locales = __toESM(require("../../locales"));
|
|
53
|
+
var import_utils4 = require("../../../../utils");
|
|
51
54
|
var { Text } = import_antd.Typography;
|
|
52
55
|
var PassDetail = (props) => {
|
|
53
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i;
|
|
54
|
-
if (!props.dataSource) return null;
|
|
56
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q;
|
|
55
57
|
const { symbol = "$" } = (0, import_materials.usePisellConfig)();
|
|
56
58
|
const { dataSource, platform = "pc" } = props;
|
|
57
59
|
const [activeKey, setActiveKey] = (0, import_react.useState)("detail");
|
|
@@ -60,7 +62,12 @@ var PassDetail = (props) => {
|
|
|
60
62
|
const isIndicatorVisibleRef = (0, import_react.useRef)(false);
|
|
61
63
|
const context = (0, import_useEngineContext.default)();
|
|
62
64
|
const { store } = ((_a = context.appHelper) == null ? void 0 : _a.utils) || { store: {} };
|
|
63
|
-
const
|
|
65
|
+
const { apiPrefix } = ((_b = context.appHelper) == null ? void 0 : _b.constants) || { apiPrefix: "/h5" };
|
|
66
|
+
const timezone = ((_g = (_f = (_e = (_d = (_c = store == null ? void 0 : store.getState) == null ? void 0 : _c.call(store)) == null ? void 0 : _d.global) == null ? void 0 : _e.symbol) == null ? void 0 : _f.shop) == null ? void 0 : _g.timezone) || "Asia/Shanghai";
|
|
67
|
+
import_utils.locales.init(import_locales.default, ((_i = (_h = context == null ? void 0 : context.engine) == null ? void 0 : _h.props) == null ? void 0 : _i.locale) || "en");
|
|
68
|
+
if ((_k = (_j = context.appHelper) == null ? void 0 : _j.utils) == null ? void 0 : _k.request) {
|
|
69
|
+
import_utils4.request.setRequest((_m = (_l = context.appHelper) == null ? void 0 : _l.utils) == null ? void 0 : _m.request);
|
|
70
|
+
}
|
|
64
71
|
const {
|
|
65
72
|
id = "",
|
|
66
73
|
code = "",
|
|
@@ -69,17 +76,21 @@ var PassDetail = (props) => {
|
|
|
69
76
|
encoded = "",
|
|
70
77
|
balance,
|
|
71
78
|
expire_date = "",
|
|
72
|
-
product = {}
|
|
79
|
+
product = {},
|
|
80
|
+
custom_schedule_snapshot
|
|
73
81
|
} = dataSource || {};
|
|
74
82
|
const {
|
|
75
83
|
description = "",
|
|
76
84
|
extension_data = [],
|
|
77
85
|
customer_order_behavior_count = 0
|
|
78
86
|
} = product || {};
|
|
79
|
-
const _getDetail = (0, import_ahooks.useRequest)(() => (0, import_serve.getDetailApi)({ id }), {
|
|
87
|
+
const _getDetail = (0, import_ahooks.useRequest)(() => (0, import_serve.getDetailApi)({ id, apiPrefix }), {
|
|
80
88
|
ready: !!id,
|
|
81
89
|
refreshDeps: [id]
|
|
82
90
|
});
|
|
91
|
+
const scheduleList = (0, import_react.useMemo)(() => {
|
|
92
|
+
return (custom_schedule_snapshot == null ? void 0 : custom_schedule_snapshot.data) || [];
|
|
93
|
+
}, [custom_schedule_snapshot]);
|
|
83
94
|
(0, import_react.useEffect)(() => {
|
|
84
95
|
if (tag === "product_discount_card") {
|
|
85
96
|
setActiveKey("detail");
|
|
@@ -111,7 +122,29 @@ var PassDetail = (props) => {
|
|
|
111
122
|
return () => clearTimeout(timeoutId);
|
|
112
123
|
}, []);
|
|
113
124
|
const descs = (0, import_react.useMemo)(() => {
|
|
114
|
-
var _a2;
|
|
125
|
+
var _a2, _b2, _c2;
|
|
126
|
+
const detail = (0, import_utils3.formatScheduleText)(scheduleList, (_b2 = (_a2 = context == null ? void 0 : context.engine) == null ? void 0 : _a2.props) == null ? void 0 : _b2.locale);
|
|
127
|
+
let expireText = expire_date ? expire_date : import_utils.locales.getText("wallet-pass-gallery.expireDate");
|
|
128
|
+
if (scheduleList.length > 0) {
|
|
129
|
+
let validityTexts = "";
|
|
130
|
+
let excludedText = "";
|
|
131
|
+
let includedText = "";
|
|
132
|
+
detail.forEach((item) => {
|
|
133
|
+
if (item.validityTexts.length > 0) {
|
|
134
|
+
validityTexts = `${validityTexts}${item.validityTexts.join("\n")}
|
|
135
|
+
`;
|
|
136
|
+
}
|
|
137
|
+
if (item.excluded_date.length > 0) {
|
|
138
|
+
excludedText = `${excludedText}${item.excluded_date.join("\n")}
|
|
139
|
+
`;
|
|
140
|
+
}
|
|
141
|
+
if (item.included_date.length > 0) {
|
|
142
|
+
includedText = `${includedText}${item.included_date.join("\n")}
|
|
143
|
+
`;
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
expireText = /* @__PURE__ */ import_react.default.createElement("span", { className: "wallet-detail-expire-text" }, validityTexts, excludedText && /* @__PURE__ */ import_react.default.createElement("div", { className: "wallet-detail-expire-text-title" }, import_utils.locales.getText("page.wallet.notValidDate")), excludedText, includedText && /* @__PURE__ */ import_react.default.createElement("div", { className: "wallet-detail-expire-text-title" }, import_utils.locales.getText("page.wallet.includedDate")), includedText);
|
|
147
|
+
}
|
|
115
148
|
let data = [
|
|
116
149
|
{
|
|
117
150
|
label: import_utils.locales.getText("wallet-pass-gallery.cardName"),
|
|
@@ -124,11 +157,11 @@ var PassDetail = (props) => {
|
|
|
124
157
|
},
|
|
125
158
|
{
|
|
126
159
|
label: import_utils.locales.getText("wallet-pass-gallery.validDate"),
|
|
127
|
-
value:
|
|
160
|
+
value: expireText
|
|
128
161
|
}
|
|
129
162
|
];
|
|
130
163
|
if (tag === "product_discount_card") {
|
|
131
|
-
const isFixedAmount = ((
|
|
164
|
+
const isFixedAmount = ((_c2 = dataSource.metadata) == null ? void 0 : _c2.discount_card_type) === "fixed_amount";
|
|
132
165
|
data.splice(2, 0, {
|
|
133
166
|
label: import_utils.locales.getText("wallet-pass-gallery.discount"),
|
|
134
167
|
value: balance ? isFixedAmount ? `${symbol}${Number(balance)}` : `${Number(balance)}%` : ""
|
|
@@ -197,6 +230,7 @@ var PassDetail = (props) => {
|
|
|
197
230
|
if (tag === "product_discount_card") return null;
|
|
198
231
|
return /* @__PURE__ */ import_react.default.createElement(import_timelineSection.default, { code, tag, timezone });
|
|
199
232
|
};
|
|
233
|
+
if (!props.dataSource) return null;
|
|
200
234
|
return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(
|
|
201
235
|
"div",
|
|
202
236
|
{
|
|
@@ -237,7 +271,7 @@ var PassDetail = (props) => {
|
|
|
237
271
|
},
|
|
238
272
|
/* @__PURE__ */ import_react.default.createElement("div", { "data-anchor": "detail" })
|
|
239
273
|
),
|
|
240
|
-
/* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement(Text, { className: "pisell-wallet-pass-gallery_detail-title" }, import_utils.locales.getText("wallet-pass-gallery.details")), platform === "pc" && tag === "gift_card" && ((
|
|
274
|
+
/* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement(Text, { className: "pisell-wallet-pass-gallery_detail-title" }, import_utils.locales.getText("wallet-pass-gallery.details")), platform === "pc" && tag === "gift_card" && ((_n = dataSource == null ? void 0 : dataSource.machinecode_config) == null ? void 0 : _n.hide_recharge) === 0 && /* @__PURE__ */ import_react.default.createElement(
|
|
241
275
|
import_antd.Button,
|
|
242
276
|
{
|
|
243
277
|
type: "primary",
|
|
@@ -269,9 +303,9 @@ var PassDetail = (props) => {
|
|
|
269
303
|
), platform === "h5" && tag === "gift_card" ? /* @__PURE__ */ import_react.default.createElement(
|
|
270
304
|
import_footerButton.default,
|
|
271
305
|
{
|
|
272
|
-
appleWalletUrl: (
|
|
273
|
-
googleWalletUrl: (
|
|
274
|
-
onRechargeClick: ((
|
|
306
|
+
appleWalletUrl: (_o = _getDetail.data) == null ? void 0 : _o.apple_wallet_url,
|
|
307
|
+
googleWalletUrl: (_p = _getDetail.data) == null ? void 0 : _p.google_wallet_url,
|
|
308
|
+
onRechargeClick: ((_q = dataSource == null ? void 0 : dataSource.machinecode_config) == null ? void 0 : _q.hide_recharge) === 0 ? () => setRechargeOpen(true) : void 0,
|
|
275
309
|
platform
|
|
276
310
|
}
|
|
277
311
|
) : null, /* @__PURE__ */ import_react.default.createElement(
|
|
@@ -89,7 +89,8 @@ var WalletPassGallery = (props) => {
|
|
|
89
89
|
num: 20,
|
|
90
90
|
skip: (d == null ? void 0 : d.nextId) || 1,
|
|
91
91
|
tags: TAGS,
|
|
92
|
-
filter_wallet_id: walletId || void 0
|
|
92
|
+
filter_wallet_id: walletId || void 0,
|
|
93
|
+
"with": ["customScheduleSnapshot"]
|
|
93
94
|
});
|
|
94
95
|
return {
|
|
95
96
|
list: (res == null ? void 0 : res.list) || [],
|
|
@@ -115,7 +116,8 @@ var WalletPassGallery = (props) => {
|
|
|
115
116
|
num: 20,
|
|
116
117
|
skip: (d == null ? void 0 : d.nextId) || 1,
|
|
117
118
|
tags: TAGS,
|
|
118
|
-
filter_wallet_id: walletId || void 0
|
|
119
|
+
filter_wallet_id: walletId || void 0,
|
|
120
|
+
"with": ["customScheduleSnapshot"]
|
|
119
121
|
});
|
|
120
122
|
return {
|
|
121
123
|
list: (res == null ? void 0 : res.list) || [],
|
|
@@ -17,6 +17,7 @@ export interface IWalletListParmsProps {
|
|
|
17
17
|
skip?: number;
|
|
18
18
|
filter_wallet_id?: string;
|
|
19
19
|
available: 0 | 1;
|
|
20
|
+
with?: string[];
|
|
20
21
|
}
|
|
21
22
|
/**
|
|
22
23
|
* 钱包列表项属性接口
|
|
@@ -171,6 +172,7 @@ export declare const getAssetList: (params: IAssetListProps) => Promise<{
|
|
|
171
172
|
*/
|
|
172
173
|
export declare const getDetailApi: (params: {
|
|
173
174
|
id: string;
|
|
175
|
+
apiPrefix: string;
|
|
174
176
|
}) => Promise<IDetailResponse>;
|
|
175
177
|
/**
|
|
176
178
|
* 详情响应数据结构,供组件消费
|
|
@@ -69,7 +69,7 @@ var getAssetList = async (params) => {
|
|
|
69
69
|
return data;
|
|
70
70
|
};
|
|
71
71
|
var getDetailApi = async (params) => {
|
|
72
|
-
const { data } = await import_utils.request.getRequest().get(
|
|
72
|
+
const { data } = await import_utils.request.getRequest().get(`${params.apiPrefix || "/h5"}/machinecode/lowcode/detail/${params.id}`, {
|
|
73
73
|
order_behavior_count: 1,
|
|
74
74
|
// 订单行为次数
|
|
75
75
|
order_behavior_count_customer: 1
|