fix: 修改物模型BUG

This commit is contained in:
wangshuaiswim 2023-03-20 21:02:50 +08:00
parent 27e5d320d4
commit 6c9322ed70
4 changed files with 35 additions and 32 deletions

View File

@ -1,5 +1,5 @@
<template>
<a-select v-model:value="_value" mode="tags" :options="options" :size="size" @change="change"></a-select>
<a-select v-model:value="_value" mode="tags" :options="options" :size="size" @change="change" placeholder="请选择单位"></a-select>
</template>
<script setup lang="ts" name="InputSelect">
import { SizeType } from 'ant-design-vue/es/config-provider';

View File

@ -1,28 +1,30 @@
<template>
<j-popover :visible="visible" placement="left">
<template #title>
<div style="display: flex; justify-content: space-between; align-items: center;">
<div style="width: 150px;">配置元素</div>
<div @click="visible = false"><AIcon type="CloseOutlined" /></div>
</div>
</template>
<template #content>
<div style="max-width: 400px;">
<div class="ant-form-vertical">
<value-type-form v-model:value="_value" :name="name" isSub key="sub"></value-type-form>
<j-form-item label="说明" :name="name.concat(['description'])" :rules="[
{ max: 200, message: '最多可输入200个字符' },
]">
<j-textarea v-model:value="_value.description" size="small" placeholder="请输入说明"></j-textarea>
</j-form-item>
<j-button type="dashed" block @click="visible = true">
<j-popover :visible="visible" placement="left">
<template #title>
<div style="display: flex; justify-content: space-between; align-items: center;">
<div style="width: 150px;">配置元素</div>
<div @click="visible = false">
<AIcon type="CloseOutlined" />
</div>
</div>
</div>
</template>
<j-button type="dashed" block @click="visible = true">
</template>
<template #content>
<div style="max-width: 400px;">
<div class="ant-form-vertical">
<value-type-form v-model:value="_value" :name="name" isSub key="sub"></value-type-form>
<j-form-item label="说明" :name="name.concat(['description'])" :rules="[
{ max: 200, message: '最多可输入200个字符' },
]">
<j-textarea v-model:value="_value.description" size="small" placeholder="请输入说明"></j-textarea>
</j-form-item>
</div>
</div>
</template>
配置元素
<AIcon type="EditOutlined" class="item-icon" />
</j-button>
</j-popover>
</j-popover>
</j-button>
</template>
<script setup lang="ts" name="ArrayParam">
import ValueTypeForm from '@/views/device/components/Metadata/Base/Edit/ValueTypeForm.vue';

View File

@ -7,13 +7,13 @@
message: 'ID只能由数字、字母、下划线、中划线组成',
},
]">
<j-input v-model:value="value.id" size="small" @change="asyncOtherConfig" :disabled="metadataStore.model.action === 'edit'"></j-input>
<j-input v-model:value="value.id" size="small" @change="asyncOtherConfig" :disabled="metadataStore.model.action === 'edit'" placeholder="请输入标识"></j-input>
</j-form-item>
<j-form-item label="名称" name="name" :rules="[
{ required: true, message: '请输入名称' },
{ max: 64, message: '最多可输入64个字符' },
]">
<j-input v-model:value="value.name" size="small"></j-input>
<j-input v-model:value="value.name" size="small" placeholder="请输入名称"></j-input>
</j-form-item>
<template v-if="modelType === 'properties'">
<value-type-form :name="['valueType']" v-model:value="value.valueType" key="property" title="数据类型"
@ -41,7 +41,7 @@
<j-form-item label="级别" :name="['expands', 'level']" :rules="[
{ required: true, message: '请选择级别' },
]">
<j-select v-model:value="value.expands.level" :options="EventLevel" size="small"></j-select>
<j-select v-model:value="value.expands.level" :options="EventLevel" size="small" placeholder="请选择级别"></j-select>
</j-form-item>
<value-type-form :name="['valueType']" v-model:value="value.valueType" key="function" title="输出参数" only-object></value-type-form>
</template>
@ -50,13 +50,13 @@
<j-form-item label="标签类型" :name="['expands', 'type']" :rules="[
{ required: true, message: '请选择标签类型' },
]">
<j-select v-model:value="value.expands.type" :options="ExpandsTypeList" mode="multiple" size="small"></j-select>
<j-select v-model:value="value.expands.type" :options="ExpandsTypeList" mode="multiple" size="small" placeholder="请选择标签类型"></j-select>
</j-form-item>
</template>
<j-form-item label="说明" name="description" :rules="[
{ max: 200, message: '最多可输入200个字符' },
]">
<j-textarea v-model:value="value.description" size="small"></j-textarea>
<j-textarea v-model:value="value.description" size="small" placeholder="请输入说明"></j-textarea>
</j-form-item>
</template>
<script setup lang="ts" name="BaseForm">

View File

@ -4,14 +4,14 @@
]">
<j-select v-model:value="_value.type" :disabled="onlyObject"
:options="onlyObject ? eventDataTypeList : _dataTypeList" size="small"
@change="changeType"></j-select>
@change="changeType" :placeholder="`请选择${title}`"></j-select>
</j-form-item>
<j-form-item label="单位" :name="name.concat(['unit'])" v-if="['int', 'float', 'long', 'double'].includes(_value.type)">
<InputSelect v-model:value="_value.unit" :options="unit.unitOptions" size="small"></InputSelect>
</j-form-item>
<j-form-item label="精度" :name="name.concat(['scale'])" v-if="['float', 'double'].includes(_value.type)">
<j-input-number v-model:value="_value.scale" size="small" :min="0" :max="2147483647" :precision="0"
style="width: 100%"></j-input-number>
style="width: 100%" placeholder="请输入精度"></j-input-number>
</j-form-item>
<j-form-item label="布尔值" name="booleanConfig" v-if="['boolean'].includes(_value.type)">
<BooleanParam :name="name" v-model:value="_value"></BooleanParam>
@ -26,12 +26,13 @@
<j-space>
最大长度
<j-tooltip title="字节">
<question-circle-outlined style="color: rgb(136, 136, 136); font-size: 12px;" />
<AIcon type="QuestionCircleOutlined" style="color: rgb(136, 136, 136); font-size: 12px;" />
<!-- <question-circle-outlined style="color: rgb(136, 136, 136); font-size: 12px;" /> -->
</j-tooltip>
</j-space>
</template>
<j-input-number v-model:value="_value.expands.maxLength" size="small" :max="2147483647" :min="1" :precision="0"
style="width: 100%;"></j-input-number>
style="width: 100%;" placeholder="请输入最大长度"></j-input-number>
</j-form-item>
<j-form-item label="元素配置" :name="name.concat(['elementType'])" v-if="['array'].includes(_value.type)" :rules="[
{ validator: validateArray }
@ -47,7 +48,7 @@
:rules="[
{ required: true, message: '请选择文件类型' },
]">
<j-select v-model:value="_value.fileType" :options="FileTypeList" size="small"></j-select>
<j-select v-model:value="_value.fileType" :options="FileTypeList" size="small" placeholder="请选择文件类型"></j-select>
</j-form-item>
</template>
<script lang="ts" setup mame="BaseForm">