优化SKU表单验证规则
This commit is contained in:
@@ -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 ={
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user