feat(store): benefit coupon usage rules and show env photos on store detail
CI / verify (pull_request) Has been cancelled

Add benefitUsageRule on store create/edit (HQ + partner) and C-end detail between intro and env gallery.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-27 23:25:18 +08:00
parent ea8152ebf3
commit fc03905777
10 changed files with 119 additions and 6 deletions
+11 -4
View File
@@ -22,6 +22,8 @@ export type StoreDraftForm = {
categoryParentId: string;
categoryId: string;
intro: string;
/** 好客权益券使用规则 */
benefitUsageRule: string;
coverUrl: string;
envPhotoUrls: string[];
contractUrl: string;
@@ -61,6 +63,7 @@ export const defaultStoreForm = (): StoreDraftForm => ({
categoryParentId: '',
categoryId: '',
intro: '',
benefitUsageRule: '',
coverUrl: '',
envPhotoUrls: ['', '', ''],
contractUrl: '',
@@ -155,6 +158,7 @@ export function validateStoreStep1(
| 'avgPrice'
| 'categoryId'
| 'intro'
| 'benefitUsageRule'
>,
): string | null {
if (!form.regionCodes || form.regionCodes.length < 3) return '请选择省 / 市 / 区县';
@@ -185,10 +189,13 @@ export function validateStoreStep1(
if (Number.isNaN(n) || n < 0) return '人均费用须为非负数字';
}
if (!form.categoryId.trim()) return '请选择店铺类型';
if (form.intro.trim()) {
const len = form.intro.trim().length;
if (len < 2 || len > 500) return '门店简介须为 2~500 字';
}
if (form.intro.trim()) {
const len = form.intro.trim().length;
if (len < 2 || len > 500) return '门店简介须为 2~500 字';
}
if (form.benefitUsageRule.trim().length > 1000) {
return '好客权益券使用规则最多 1000 字';
}
return null;
}