sa2kit 1.6.83 → 1.6.84
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/dist/showmasterpiece/core.d.mts +1 -1
- package/dist/showmasterpiece/core.d.ts +1 -1
- package/dist/showmasterpiece/core.js +2 -8
- package/dist/showmasterpiece/core.js.map +1 -1
- package/dist/showmasterpiece/core.mjs +2 -8
- package/dist/showmasterpiece/core.mjs.map +1 -1
- package/dist/showmasterpiece/index.js +56 -28
- package/dist/showmasterpiece/index.js.map +1 -1
- package/dist/showmasterpiece/index.mjs +56 -28
- package/dist/showmasterpiece/index.mjs.map +1 -1
- package/dist/showmasterpiece/logic/index.js +2 -8
- package/dist/showmasterpiece/logic/index.js.map +1 -1
- package/dist/showmasterpiece/logic/index.mjs +2 -8
- package/dist/showmasterpiece/logic/index.mjs.map +1 -1
- package/dist/showmasterpiece/ui/web/index.js +56 -28
- package/dist/showmasterpiece/ui/web/index.js.map +1 -1
- package/dist/showmasterpiece/ui/web/index.mjs +56 -28
- package/dist/showmasterpiece/ui/web/index.mjs.map +1 -1
- package/dist/showmasterpiece/web/index.js +56 -28
- package/dist/showmasterpiece/web/index.js.map +1 -1
- package/dist/showmasterpiece/web/index.mjs +56 -28
- package/dist/showmasterpiece/web/index.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -687,19 +687,13 @@ var init_useMasterpiecesConfig = __esm({
|
|
|
687
687
|
setLoading(true);
|
|
688
688
|
setError(null);
|
|
689
689
|
console.log("\u{1F4E1} [Hook] \u5E76\u884C\u8BF7\u6C42\u6240\u6709\u6570\u636E...");
|
|
690
|
-
const timestamp = Date.now();
|
|
691
690
|
const [configData, collectionsResponse, categoriesData, tagsData] = await Promise.all([
|
|
692
691
|
getConfig(),
|
|
693
|
-
|
|
694
|
-
headers: {
|
|
695
|
-
"Cache-Control": "no-cache",
|
|
696
|
-
"Pragma": "no-cache"
|
|
697
|
-
}
|
|
698
|
-
}).then((r) => r.json()),
|
|
692
|
+
getAllCollections(),
|
|
699
693
|
getCategories(),
|
|
700
694
|
getTags()
|
|
701
695
|
]);
|
|
702
|
-
const collectionsData = collectionsResponse
|
|
696
|
+
const collectionsData = Array.isArray(collectionsResponse) ? collectionsResponse : [];
|
|
703
697
|
console.log("\u2705 [Hook] \u6570\u636E\u52A0\u8F7D\u5B8C\u6210:", {
|
|
704
698
|
\u914D\u7F6E: configData ? "\u5DF2\u52A0\u8F7D" : "\u672A\u52A0\u8F7D",
|
|
705
699
|
\u753B\u96C6\u6570\u91CF: collectionsData.length,
|
|
@@ -6530,13 +6524,16 @@ var UniversalImageUpload = ({
|
|
|
6530
6524
|
throw new Error(errorData.error || `HTTP ${response.status}`);
|
|
6531
6525
|
}
|
|
6532
6526
|
const result = await response.json();
|
|
6533
|
-
|
|
6534
|
-
|
|
6527
|
+
const resultData = result?.data || result?.file || result;
|
|
6528
|
+
const nextFileId = resultData?.fileId || resultData?.id;
|
|
6529
|
+
const nextImageUrl = resultData?.accessUrl || resultData?.url || resultData?.fileUrl;
|
|
6530
|
+
const isSuccess = typeof result?.success === "boolean" ? result.success : Boolean(nextFileId);
|
|
6531
|
+
if (!isSuccess || !nextFileId) {
|
|
6532
|
+
throw new Error(result?.error || result?.message || "\u4E0A\u4F20\u5931\u8D25");
|
|
6535
6533
|
}
|
|
6536
6534
|
onChange({
|
|
6537
|
-
image:
|
|
6538
|
-
|
|
6539
|
-
fileId: result.data.fileId
|
|
6535
|
+
image: nextImageUrl || `/api/universal-file/${nextFileId}`,
|
|
6536
|
+
fileId: nextFileId
|
|
6540
6537
|
});
|
|
6541
6538
|
} catch (error) {
|
|
6542
6539
|
alert(`\u6587\u4EF6\u4E0A\u4F20\u5931\u8D25: ${error instanceof Error ? error.message : "\u672A\u77E5\u9519\u8BEF"}`);
|
|
@@ -6556,6 +6553,12 @@ var UniversalImageUpload = ({
|
|
|
6556
6553
|
}
|
|
6557
6554
|
};
|
|
6558
6555
|
const handleDivClick = (e) => {
|
|
6556
|
+
e.preventDefault();
|
|
6557
|
+
e.stopPropagation();
|
|
6558
|
+
const input = document.getElementById(inputId);
|
|
6559
|
+
if (input && !disabled && !uploading) {
|
|
6560
|
+
input.click();
|
|
6561
|
+
}
|
|
6559
6562
|
};
|
|
6560
6563
|
return /* @__PURE__ */ React56__default.createElement(
|
|
6561
6564
|
"div",
|
|
@@ -8765,6 +8768,14 @@ var BookingAdminPanel = ({
|
|
|
8765
8768
|
}
|
|
8766
8769
|
) : /* @__PURE__ */ React56__default.createElement("div", { className: "w-16 h-16 sm:w-20 sm:h-20 bg-slate-100 rounded-lg flex-shrink-0 flex items-center justify-center text-slate-400 text-xs" }, "\u6682\u65E0\u56FE\u7247"), /* @__PURE__ */ React56__default.createElement("div", { className: "min-w-0 flex-1" }, /* @__PURE__ */ React56__default.createElement("h4", { className: "font-medium text-slate-800 truncate" }, selectedBooking.collection.title), /* @__PURE__ */ React56__default.createElement("p", { className: "text-sm text-slate-600" }, "\u7F16\u53F7\uFF1A", selectedBooking.collection.number), /* @__PURE__ */ React56__default.createElement("p", { className: "text-sm text-slate-600" }, "\u4EF7\u683C\uFF1A\xA5", selectedBooking.collection.price || "\u5F85\u5B9A")))), /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("h3", { className: "text-base sm:text-lg font-semibold text-slate-800 mb-3" }, "\u9884\u8BA2\u4FE1\u606F"), /* @__PURE__ */ React56__default.createElement("div", { className: "grid grid-cols-1 sm:grid-cols-2 gap-3 sm:gap-4" }, /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("p", { className: "text-sm text-slate-500" }, "\u9884\u8BA2ID"), /* @__PURE__ */ React56__default.createElement("p", { className: "font-medium text-slate-800" }, "#", selectedBooking.id)), /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("p", { className: "text-sm text-slate-500" }, "QQ\u53F7"), /* @__PURE__ */ React56__default.createElement("p", { className: "font-medium text-slate-800" }, selectedBooking.qqNumber)), selectedBooking.phoneNumber && /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("p", { className: "text-sm text-slate-500" }, "\u624B\u673A\u53F7"), /* @__PURE__ */ React56__default.createElement("p", { className: "font-medium text-slate-800" }, selectedBooking.phoneNumber)), /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("p", { className: "text-sm text-slate-500" }, "\u9884\u8BA2\u6570\u91CF"), /* @__PURE__ */ React56__default.createElement("p", { className: "font-medium text-slate-800" }, selectedBooking.quantity)), /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("p", { className: "text-sm text-slate-500" }, "\u603B\u4EF7\u683C"), /* @__PURE__ */ React56__default.createElement("p", { className: "font-medium text-slate-800" }, "\xA5", selectedBooking.totalPrice)), /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("p", { className: "text-sm text-slate-500" }, "\u72B6\u6001"), /* @__PURE__ */ React56__default.createElement("span", { className: `inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium ${getStatusInfo(selectedBooking.status).color}` }, getStatusInfo(selectedBooking.status).label)))), /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("h3", { className: "text-base sm:text-lg font-semibold text-slate-800 mb-3" }, "\u65F6\u95F4\u4FE1\u606F"), /* @__PURE__ */ React56__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("p", { className: "text-sm text-slate-500" }, "\u9884\u8BA2\u65F6\u95F4"), /* @__PURE__ */ React56__default.createElement("p", { className: "text-sm font-medium text-slate-800" }, formatTime2(selectedBooking.createdAt))), /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("p", { className: "text-sm text-slate-500" }, "\u66F4\u65B0\u65F6\u95F4"), /* @__PURE__ */ React56__default.createElement("p", { className: "text-sm font-medium text-slate-800" }, formatTime2(selectedBooking.updatedAt))), selectedBooking.confirmedAt && /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("p", { className: "text-sm text-slate-500" }, "\u786E\u8BA4\u65F6\u95F4"), /* @__PURE__ */ React56__default.createElement("p", { className: "text-sm font-medium text-slate-800" }, formatTime2(selectedBooking.confirmedAt))), selectedBooking.completedAt && /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("p", { className: "text-sm text-slate-500" }, "\u5B8C\u6210\u65F6\u95F4"), /* @__PURE__ */ React56__default.createElement("p", { className: "text-sm font-medium text-slate-800" }, formatTime2(selectedBooking.completedAt))), selectedBooking.cancelledAt && /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("p", { className: "text-sm text-slate-500" }, "\u53D6\u6D88\u65F6\u95F4"), /* @__PURE__ */ React56__default.createElement("p", { className: "text-sm font-medium text-slate-800" }, formatTime2(selectedBooking.cancelledAt))))), selectedBooking.notes && /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("h3", { className: "text-base sm:text-lg font-semibold text-slate-800 mb-3" }, "\u7528\u6237\u5907\u6CE8"), /* @__PURE__ */ React56__default.createElement("p", { className: "text-sm text-slate-800 bg-slate-50 p-4 rounded-lg break-words" }, selectedBooking.notes)), selectedBooking.adminNotes && /* @__PURE__ */ React56__default.createElement("div", null, /* @__PURE__ */ React56__default.createElement("h3", { className: "text-base sm:text-lg font-semibold text-slate-800 mb-3" }, "\u7BA1\u7406\u5458\u5907\u6CE8"), /* @__PURE__ */ React56__default.createElement("p", { className: "text-sm text-slate-800 bg-slate-50 p-4 rounded-lg break-words" }, selectedBooking.adminNotes)))))));
|
|
8767
8770
|
};
|
|
8771
|
+
var isSuccessResponse = (result, fallback) => typeof result?.success === "boolean" ? result.success : fallback;
|
|
8772
|
+
var extractPopupConfigs = (result) => {
|
|
8773
|
+
if (Array.isArray(result?.data)) return result.data;
|
|
8774
|
+
if (Array.isArray(result?.configs)) return result.configs;
|
|
8775
|
+
if (Array.isArray(result?.data?.configs)) return result.data.configs;
|
|
8776
|
+
if (Array.isArray(result)) return result;
|
|
8777
|
+
return [];
|
|
8778
|
+
};
|
|
8768
8779
|
var PopupConfigManagement = () => {
|
|
8769
8780
|
const [configs, setConfigs] = useState([]);
|
|
8770
8781
|
const [loading, setLoading] = useState(true);
|
|
@@ -8811,12 +8822,13 @@ var PopupConfigManagement = () => {
|
|
|
8811
8822
|
console.log("\u{1F4E1} [PopupConfigManagement] API\u54CD\u5E94\u72B6\u6001:", response.status, response.statusText);
|
|
8812
8823
|
const result = await response.json();
|
|
8813
8824
|
console.log("\u{1F4CA} [PopupConfigManagement] API\u54CD\u5E94\u6570\u636E:", result);
|
|
8814
|
-
if (result.
|
|
8815
|
-
|
|
8816
|
-
|
|
8825
|
+
if (isSuccessResponse(result, response.ok)) {
|
|
8826
|
+
const nextConfigs = extractPopupConfigs(result);
|
|
8827
|
+
console.log("\u2705 [PopupConfigManagement] \u914D\u7F6E\u52A0\u8F7D\u6210\u529F\uFF0C\u6570\u91CF:", nextConfigs.length);
|
|
8828
|
+
setConfigs(nextConfigs);
|
|
8817
8829
|
} else {
|
|
8818
8830
|
console.error("\u274C [PopupConfigManagement] API\u8FD4\u56DE\u5931\u8D25:", result.error);
|
|
8819
|
-
setError(result
|
|
8831
|
+
setError(result?.error || result?.message || "\u52A0\u8F7D\u914D\u7F6E\u5931\u8D25");
|
|
8820
8832
|
}
|
|
8821
8833
|
} catch (err) {
|
|
8822
8834
|
console.error("\u274C [PopupConfigManagement] \u52A0\u8F7D\u5F39\u7A97\u914D\u7F6E\u5931\u8D25:", err);
|
|
@@ -8917,13 +8929,13 @@ var PopupConfigManagement = () => {
|
|
|
8917
8929
|
body: JSON.stringify(requestData)
|
|
8918
8930
|
});
|
|
8919
8931
|
const result = await response.json();
|
|
8920
|
-
if (result.
|
|
8932
|
+
if (isSuccessResponse(result, response.ok)) {
|
|
8921
8933
|
await loadConfigs();
|
|
8922
8934
|
setShowCreateModal(false);
|
|
8923
8935
|
resetForm();
|
|
8924
8936
|
setEditingConfig(null);
|
|
8925
8937
|
} else {
|
|
8926
|
-
alert(result
|
|
8938
|
+
alert(result?.error || result?.message || "\u4FDD\u5B58\u5931\u8D25");
|
|
8927
8939
|
}
|
|
8928
8940
|
} catch (err) {
|
|
8929
8941
|
console.error("\u4FDD\u5B58\u914D\u7F6E\u5931\u8D25:", err);
|
|
@@ -8939,10 +8951,10 @@ var PopupConfigManagement = () => {
|
|
|
8939
8951
|
method: "DELETE"
|
|
8940
8952
|
});
|
|
8941
8953
|
const result = await response.json();
|
|
8942
|
-
if (result.
|
|
8954
|
+
if (isSuccessResponse(result, response.ok)) {
|
|
8943
8955
|
await loadConfigs();
|
|
8944
8956
|
} else {
|
|
8945
|
-
alert(result
|
|
8957
|
+
alert(result?.error || result?.message || "\u5220\u9664\u5931\u8D25");
|
|
8946
8958
|
}
|
|
8947
8959
|
} catch (err) {
|
|
8948
8960
|
console.error("\u5220\u9664\u914D\u7F6E\u5931\u8D25:", err);
|
|
@@ -8969,10 +8981,10 @@ var PopupConfigManagement = () => {
|
|
|
8969
8981
|
body: JSON.stringify(requestBody)
|
|
8970
8982
|
});
|
|
8971
8983
|
const result = await response.json();
|
|
8972
|
-
if (result.
|
|
8984
|
+
if (isSuccessResponse(result, response.ok)) {
|
|
8973
8985
|
await loadConfigs();
|
|
8974
8986
|
} else {
|
|
8975
|
-
alert(result
|
|
8987
|
+
alert(result?.error || result?.message || "\u64CD\u4F5C\u5931\u8D25");
|
|
8976
8988
|
}
|
|
8977
8989
|
} catch (err) {
|
|
8978
8990
|
console.error("\u5207\u6362\u72B6\u6001\u5931\u8D25:", err);
|
|
@@ -10025,6 +10037,14 @@ function clearConfigCache() {
|
|
|
10025
10037
|
}
|
|
10026
10038
|
|
|
10027
10039
|
// src/showmasterpiece/ui/web/components/SystemConfigManager.tsx
|
|
10040
|
+
var isSuccessResponse2 = (result, fallback) => typeof result?.success === "boolean" ? result.success : fallback;
|
|
10041
|
+
var extractConfigItems = (result) => {
|
|
10042
|
+
if (Array.isArray(result?.items)) return result.items;
|
|
10043
|
+
if (Array.isArray(result?.data?.items)) return result.data.items;
|
|
10044
|
+
if (Array.isArray(result?.data)) return result.data;
|
|
10045
|
+
if (Array.isArray(result)) return result;
|
|
10046
|
+
return [];
|
|
10047
|
+
};
|
|
10028
10048
|
var SystemConfigManager = () => {
|
|
10029
10049
|
const [configItems, setConfigItems] = useState([]);
|
|
10030
10050
|
const [loading, setLoading] = useState(true);
|
|
@@ -10049,8 +10069,16 @@ var SystemConfigManager = () => {
|
|
|
10049
10069
|
try {
|
|
10050
10070
|
const response = await fetch(`/api/showmasterpiece/config/items?environment=${env}`);
|
|
10051
10071
|
const data = await response.json();
|
|
10052
|
-
if (
|
|
10053
|
-
|
|
10072
|
+
if (!response.ok) {
|
|
10073
|
+
setMessage({
|
|
10074
|
+
type: "error",
|
|
10075
|
+
text: data?.error || data?.message || "\u52A0\u8F7D\u914D\u7F6E\u9879\u5931\u8D25"
|
|
10076
|
+
});
|
|
10077
|
+
return;
|
|
10078
|
+
}
|
|
10079
|
+
const items = extractConfigItems(data);
|
|
10080
|
+
if (Array.isArray(items)) {
|
|
10081
|
+
setConfigItems(items);
|
|
10054
10082
|
} else {
|
|
10055
10083
|
console.error("API\u54CD\u5E94\u683C\u5F0F\u9519\u8BEF:", data);
|
|
10056
10084
|
setMessage({
|
|
@@ -10109,7 +10137,7 @@ var SystemConfigManager = () => {
|
|
|
10109
10137
|
})
|
|
10110
10138
|
});
|
|
10111
10139
|
const result = await response.json();
|
|
10112
|
-
if (result.
|
|
10140
|
+
if (isSuccessResponse2(result, response.ok)) {
|
|
10113
10141
|
setMessage({
|
|
10114
10142
|
type: "success",
|
|
10115
10143
|
text: "\u914D\u7F6E\u9879\u66F4\u65B0\u6210\u529F"
|
|
@@ -10151,7 +10179,7 @@ var SystemConfigManager = () => {
|
|
|
10151
10179
|
method: "DELETE"
|
|
10152
10180
|
});
|
|
10153
10181
|
const result = await response.json();
|
|
10154
|
-
if (result.
|
|
10182
|
+
if (isSuccessResponse2(result, response.ok)) {
|
|
10155
10183
|
setMessage({
|
|
10156
10184
|
type: "success",
|
|
10157
10185
|
text: "\u914D\u7F6E\u9879\u5220\u9664\u6210\u529F"
|
|
@@ -10337,7 +10365,7 @@ var SystemConfigManager = () => {
|
|
|
10337
10365
|
body: JSON.stringify(data)
|
|
10338
10366
|
});
|
|
10339
10367
|
const result = await response.json();
|
|
10340
|
-
if (result.
|
|
10368
|
+
if (isSuccessResponse2(result, response.ok)) {
|
|
10341
10369
|
setMessage({
|
|
10342
10370
|
type: "success",
|
|
10343
10371
|
text: "\u914D\u7F6E\u9879\u521B\u5EFA\u6210\u529F"
|