feat: 确保商品设置对象存在并初始化;更新表单控件以支持 guardFree 和 allowGuardLevel 的动态绑定

This commit is contained in:
Megghy
2025-10-08 02:39:48 +08:00
parent 5959baf2e8
commit a9453aa919

View File

@@ -316,10 +316,15 @@ function OnFileListChange(files: UploadFileInfo[]) {
} }
function onUpdateClick(item: ResponsePointGoodModel) { function onUpdateClick(item: ResponsePointGoodModel) {
const copiedItem = JSON.parse(JSON.stringify(item))
// 确保 setting 对象存在
if (!copiedItem.setting) {
copiedItem.setting = {
allowGuardLevel: 0,
}
}
currentGoodsModel.value = { currentGoodsModel.value = {
goods: JSON.parse(JSON.stringify({ goods: copiedItem,
...item,
})),
fileList: item.cover fileList: item.cover
? [ ? [
{ {
@@ -949,6 +954,9 @@ onMounted(() => { })
:checked="currentGoodsModel.goods.setting?.guardFree != undefined" :checked="currentGoodsModel.goods.setting?.guardFree != undefined"
@update:checked=" @update:checked="
(v) => { (v) => {
if (!currentGoodsModel.goods.setting) {
currentGoodsModel.goods.setting = { allowGuardLevel: 0 };
}
// @ts-ignore // @ts-ignore
currentGoodsModel.goods.setting.guardFree = v ? { year: undefined, month: undefined } : undefined; currentGoodsModel.goods.setting.guardFree = v ? { year: undefined, month: undefined } : undefined;
} }
@@ -978,12 +986,22 @@ onMounted(() => { })
:gap="8" :gap="8"
> >
<NSelect <NSelect
v-model:value="currentGoodsModel.goods.setting.guardFree.year" :value="currentGoodsModel.goods.setting?.guardFree?.year"
@update:value="(v) => {
if (currentGoodsModel.goods.setting?.guardFree) {
currentGoodsModel.goods.setting.guardFree.year = v;
}
}"
:options="allowedYearOptions" :options="allowedYearOptions"
placeholder="请选择年份" placeholder="请选择年份"
/> />
<NSelect <NSelect
v-model:value="currentGoodsModel.goods.setting.guardFree.month" :value="currentGoodsModel.goods.setting?.guardFree?.month"
@update:value="(v) => {
if (currentGoodsModel.goods.setting?.guardFree) {
currentGoodsModel.goods.setting.guardFree.month = v;
}
}"
:options="allowedMonthOptions" :options="allowedMonthOptions"
placeholder="请选择月份" placeholder="请选择月份"
/> />
@@ -1009,7 +1027,15 @@ onMounted(() => { })
</NTooltip> </NTooltip>
</NText> </NText>
<NRadioGroup v-model:value="currentGoodsModel.goods.setting.allowGuardLevel"> <NRadioGroup
:value="currentGoodsModel.goods.setting?.allowGuardLevel ?? 0"
@update:value="(v) => {
if (!currentGoodsModel.goods.setting) {
currentGoodsModel.goods.setting = { allowGuardLevel: 0 };
}
currentGoodsModel.goods.setting.allowGuardLevel = v;
}"
>
<NRadioButton :value="0"> <NRadioButton :value="0">
不限 不限
</NRadioButton> </NRadioButton>