优化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> {
|
export function getDicts(dictType :string,defaultValue?:string):Promise<any> {
|
||||||
let dv = defaultValue??''
|
let dv = defaultValue??''
|
||||||
let params ={
|
let params ={
|
||||||
|
|||||||
@@ -191,8 +191,25 @@ const specValuesMap = reactive<Record<string, string>>({});
|
|||||||
|
|
||||||
const skuRules: FormRules = {
|
const skuRules: FormRules = {
|
||||||
skuName: [{ required: true, message: '请输入SKU名称', trigger: 'blur' }],
|
skuName: [{ required: true, message: '请输入SKU名称', trigger: 'blur' }],
|
||||||
price: [{ required: true, message: '请输入价格', trigger: 'blur' }],
|
price: [
|
||||||
stock: [{ required: true, message: '请输入库存数量', trigger: 'blur' }],
|
{ 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' }],
|
imageUrl: [{ required: true, message: '请上传SKU图片', trigger: 'change' }],
|
||||||
|
|
||||||
};
|
};
|
||||||
@@ -440,6 +457,16 @@ const onSubmitSku = async () => {
|
|||||||
await form.validate(async (valid) => {
|
await form.validate(async (valid) => {
|
||||||
if (!valid) return;
|
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;
|
submitLoading.value = true;
|
||||||
|
|
||||||
// 构建规格属性对象(优先使用 specValuesMap)
|
// 构建规格属性对象(优先使用 specValuesMap)
|
||||||
|
|||||||
Reference in New Issue
Block a user