Переглянути джерело

修复form表单number验证的bug

Yue 2 роки тому
батько
коміт
263de7d150
1 змінених файлів з 30 додано та 0 видалено
  1. 30 0
      UI/VA.Vue_V1.0/src/components/form/VbFormItem.vue

+ 30 - 0
UI/VA.Vue_V1.0/src/components/form/VbFormItem.vue

@@ -37,6 +37,21 @@ const isShow = computed(() => {
   }
   return props.item.show
 })
+const isNum = computed(() => {
+  if (item.value.type == "number") {
+    return true
+  }
+  if (item.value.rules && item.value.rules.length > 0) {
+    return (
+      item.value.rules.includes(RULE_KEYS.NUMBER) ||
+      item.value.rules.includes(RULE_KEYS.REQUIRED_NUMBER) ||
+      item.value.rules.includes(RULE_KEYS.N_MAX) ||
+      item.value.rules.includes(RULE_KEYS.N_MIN) ||
+      item.value.rules.includes(RULE_KEYS.N_MIN_MAX)
+    )
+  }
+  return false
+})
 const data: WritableComputedRef<any> = computed({
   get(): any {
     return props.data
@@ -93,6 +108,7 @@ function isDisable(item: any) {
   }
   return item.disabled
 }
+
 function init() {
   //
 }
@@ -126,6 +142,20 @@ onMounted(() => {
       </div>
       <template v-else-if="checkComponent('I') || checkComponent('ElInput')">
         <el-input
+          v-if="isNum"
+          v-model.number="data[item.field]"
+          :id="itemId"
+          :required="item.required"
+          :type="item.type || 'text'"
+          :class="item.class"
+          :style="item.style"
+          :placeholder="item.placeholder ?? item.label"
+          :size="item.size"
+          v-bind="item.props"
+          v-on="item.listeners"
+        ></el-input>
+        <el-input
+          v-else
           v-model="data[item.field]"
           :id="itemId"
           :required="item.required"