优化SKU表单验证规则

This commit is contained in:
WUSIJIAN
2026-01-04 11:42:00 +08:00
parent a5f68f1523
commit 781c5222de
2 changed files with 30 additions and 3 deletions

View File

@@ -14,7 +14,7 @@ export function getDict(dictType :string,defaultValue?:string):Promise<any> {
})
}
// 根据字典类型查询字典数据信息
// 根据字典类型查询字典数据信息(新方案)
export function getDicts(dictType :string,defaultValue?:string):Promise<any> {
let dv = defaultValue??''
let params ={

View File

@@ -191,8 +191,25 @@ const specValuesMap = reactive<Record<string, string>>({});
const skuRules: FormRules = {
skuName: [{ required: true, message: '请输入SKU名称', trigger: 'blur' }],
price: [{ required: true, message: '请输入价格', trigger: 'blur' }],
stock: [{ required: true, message: '请输入库存数量', trigger: 'blur' }],
price: [
{ required: true, message: '请输入价格', trigger: 'blur' },
{ type: 'number', min: 0.01, message: '价格必须大于0', trigger: 'blur' }
],
stock: [
{ required: true, message: '请输入库存数量', trigger: 'blur' },
{
validator: (rule: any, value: any, callback: any) => {
if (skuForm.unlimitedStock) {
callback();
} else if (value === 0 || value === undefined || value === null) {
callback(new Error('库存数量必须大于0'));
} else {
callback();
}
},
trigger: 'blur'
}
],
imageUrl: [{ required: true, message: '请上传SKU图片', trigger: 'change' }],
};
@@ -440,6 +457,16 @@ const onSubmitSku = async () => {
await form.validate(async (valid) => {
if (!valid) return;
// 校验规格属性必填
if (assetSpecAttrs.value.length > 0) {
for (const attr of assetSpecAttrs.value) {
if (!specValuesMap[attr.name] || specValuesMap[attr.name].trim() === '') {
ElMessage.warning(`请填写规格属性:${attr.name}`);
return;
}
}
}
submitLoading.value = true;
// 构建规格属性对象(优先使用 specValuesMap