icssoa 4 meses atrás
pai
commit
65989a0ecc

+ 6 - 4
uni_modules/cool-ui/components/cl-form-item/cl-form-item.uvue

@@ -115,7 +115,8 @@ const props = defineProps({
 });
 
 // cl-form 上下文
-const { formRef, getError, getValue, validateField, addField, removeField, setRule, getRule } = useForm();
+const { formRef, getError, getValue, validateField, addField, removeField, setRule, getRule } =
+	useForm();
 
 // 透传样式类型
 type PassThrough = {
@@ -157,7 +158,7 @@ const required = computed<boolean>(() => {
 
 	// 否则,根据规则自动判断
 	const rules = getRule(props.prop);
-	return rules.some(rule => rule.required == true);
+	return rules.some((rule) => rule.required == true);
 });
 
 // 是否显示必填星号
@@ -178,8 +179,9 @@ const showMessage = computed<boolean>(() => {
 	return props.showMessage ?? formRef.value?.showMessage ?? true;
 });
 
+// 监听计算后的 required 属性
 watch(
-	required, // 监听计算后的 required 属性
+	required,
 	(val: boolean) => {
 		if (val) {
 			addField(props.prop, props.rules);
@@ -205,7 +207,7 @@ onMounted(() => {
 			return value;
 		}),
 		(a: any, b: any) => {
-			if (props.required) {
+			if (required.value == true) {
 				if (!isEqual(a, b)) {
 					validateField(props.prop);
 				}