mirror of
https://gitee.com/myxzgzs/boyue-ui-admin-vue3
synced 2025-08-09 17:02:43 +08:00
【功能完善】IOT: 产品物模型-数组型的 dataSpecs 校验规则完善
This commit is contained in:
parent
12abcddb12
commit
6b9aaf3c9a
@ -1,21 +1,32 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-form-item label="元素类型" prop="childDataType">
|
<el-form-item
|
||||||
|
:rules="[{ required: true, message: '元素类型不能为空' }]"
|
||||||
|
label="元素类型"
|
||||||
|
prop="property.dataSpecs.childDataType"
|
||||||
|
>
|
||||||
<el-radio-group v-model="dataSpecs.childDataType">
|
<el-radio-group v-model="dataSpecs.childDataType">
|
||||||
<template v-for="item in dataTypeOptions" :key="item.value">
|
<template v-for="item in dataTypeOptions" :key="item.value">
|
||||||
<el-radio
|
<el-radio
|
||||||
:value="item.value"
|
|
||||||
v-if="
|
v-if="
|
||||||
!(
|
!(
|
||||||
[DataSpecsDataType.ENUM, DataSpecsDataType.ARRAY, DataSpecsDataType.DATE] as any[]
|
[DataSpecsDataType.ENUM, DataSpecsDataType.ARRAY, DataSpecsDataType.DATE] as any[]
|
||||||
).includes(item.value)
|
).includes(item.value)
|
||||||
"
|
"
|
||||||
|
:value="item.value"
|
||||||
>
|
>
|
||||||
{{ item.label }}
|
{{ item.label }}
|
||||||
</el-radio>
|
</el-radio>
|
||||||
</template>
|
</template>
|
||||||
</el-radio-group>
|
</el-radio-group>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="元素个数" prop="size">
|
<el-form-item
|
||||||
|
:rules="[
|
||||||
|
{ required: true, message: '元素个数不能为空' },
|
||||||
|
{ validator: validateSize, trigger: 'blur' }
|
||||||
|
]"
|
||||||
|
label="元素个数"
|
||||||
|
prop="property.dataSpecs.size"
|
||||||
|
>
|
||||||
<el-input v-model="dataSpecs.size" placeholder="请输入数组中的元素个数" />
|
<el-input v-model="dataSpecs.size" placeholder="请输入数组中的元素个数" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</template>
|
</template>
|
||||||
@ -23,12 +34,26 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { useVModel } from '@vueuse/core'
|
import { useVModel } from '@vueuse/core'
|
||||||
import { DataSpecsDataType, dataTypeOptions } from '../config'
|
import { DataSpecsDataType, dataTypeOptions } from '../config'
|
||||||
|
import { isEmpty } from '@/utils/is'
|
||||||
|
|
||||||
/** 数组型的 dataSpecs 配置组件 */
|
/** 数组型的 dataSpecs 配置组件 */
|
||||||
defineOptions({ name: 'ThingModelArrayTypeDataSpecs' })
|
defineOptions({ name: 'ThingModelArrayTypeDataSpecs' })
|
||||||
const props = defineProps<{ modelValue: any }>()
|
const props = defineProps<{ modelValue: any }>()
|
||||||
const emits = defineEmits(['update:modelValue'])
|
const emits = defineEmits(['update:modelValue'])
|
||||||
const dataSpecs = useVModel(props, 'modelValue', emits) as Ref<any>
|
const dataSpecs = useVModel(props, 'modelValue', emits) as Ref<any>
|
||||||
|
|
||||||
|
/** 校验元素个数 */
|
||||||
|
const validateSize = (_: any, value: any, callback: any) => {
|
||||||
|
if (isEmpty(value)) {
|
||||||
|
callback(new Error('元素个数不能为空'))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (isNaN(Number(value))) {
|
||||||
|
callback(new Error('元素个数必须是数字'))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
callback()
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped></style>
|
<style lang="scss" scoped></style>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user