|
|
@@ -5,8 +5,7 @@
|
|
|
v-loading="formLoading"
|
|
|
:model="formData"
|
|
|
:rules="formRules"
|
|
|
- label-width="100px"
|
|
|
- >
|
|
|
+ label-width="100px">
|
|
|
<el-form-item label="功能标识" prop="identifier">
|
|
|
<el-input v-model="formData.identifier" placeholder="请输入功能标识" />
|
|
|
</el-form-item>
|
|
|
@@ -19,16 +18,14 @@
|
|
|
type="textarea"
|
|
|
:rows="3"
|
|
|
:maxlength="200"
|
|
|
- placeholder="请输入功能描述"
|
|
|
- />
|
|
|
+ placeholder="请输入功能描述" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="功能类型" prop="type">
|
|
|
<el-radio-group v-model="formData.type">
|
|
|
<el-radio-button
|
|
|
v-for="dict in getIntDictOptions(DICT_TYPE.IOT_THING_MODEL_TYPE)"
|
|
|
:key="dict.value"
|
|
|
- :value="dict.value"
|
|
|
- >
|
|
|
+ :value="dict.value">
|
|
|
{{ dict.label }}
|
|
|
</el-radio-button>
|
|
|
</el-radio-group>
|
|
|
@@ -50,8 +47,7 @@
|
|
|
lang="json"
|
|
|
theme="monokai"
|
|
|
class="json-editor"
|
|
|
- :options="editorOptions"
|
|
|
- />
|
|
|
+ :options="editorOptions" />
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
|
|
|
@@ -69,8 +65,7 @@
|
|
|
lang="json"
|
|
|
theme="monokai"
|
|
|
class="json-editor"
|
|
|
- :options="editorOptions"
|
|
|
- />
|
|
|
+ :options="editorOptions" />
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
|
|
|
@@ -88,10 +83,8 @@
|
|
|
<v-ace-editor
|
|
|
v-model:value="formData.service"
|
|
|
lang="json"
|
|
|
- theme="monokai"
|
|
|
class="json-editor"
|
|
|
- :options="editorOptions"
|
|
|
- />
|
|
|
+ :options="editorOptions" />
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
@@ -107,10 +100,7 @@
|
|
|
import '@/components/mt-edit/ace-edit'
|
|
|
import { VAceEditor } from 'vue3-ace-editor'
|
|
|
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
|
|
-import {
|
|
|
- ThingModelCommon,
|
|
|
- type CommonThingModelData
|
|
|
-} from '@/api/iot/thingmodel'
|
|
|
+import { ThingModelCommon, type CommonThingModelData } from '@/api/iot/thingmodel'
|
|
|
|
|
|
defineOptions({ name: 'CommonThingModelForm' })
|
|
|
|
|
|
@@ -204,19 +194,12 @@ const validateJsonField = (field: 'property' | 'event' | 'service', label: strin
|
|
|
}
|
|
|
|
|
|
const formRules = reactive({
|
|
|
- identifier: [
|
|
|
- { required: true, message: '功能标识不能为空', trigger: 'blur' },
|
|
|
- {
|
|
|
- pattern: /^[a-zA-Z0-9_]{1,50}$/,
|
|
|
- message: '功能标识支持字母、数字和下划线,长度不超过 50',
|
|
|
- trigger: 'blur'
|
|
|
- }
|
|
|
- ],
|
|
|
+ identifier: [{ required: true, message: '功能标识不能为空', trigger: 'blur' }],
|
|
|
name: [{ required: true, message: '功能名称不能为空', trigger: 'blur' }],
|
|
|
- type: [{ required: true, message: '功能类型不能为空', trigger: 'change' }],
|
|
|
- property: [{ validator: validateJsonField('property', '属性'), trigger: 'blur' }],
|
|
|
- event: [{ validator: validateJsonField('event', '事件'), trigger: 'blur' }],
|
|
|
- service: [{ validator: validateJsonField('service', '服务'), trigger: 'blur' }]
|
|
|
+ type: [{ required: true, message: '功能类型不能为空', trigger: 'change' }]
|
|
|
+ // property: [{ validator: validateJsonField('property', '属性'), trigger: 'blur' }],
|
|
|
+ // event: [{ validator: validateJsonField('event', '事件'), trigger: 'blur' }],
|
|
|
+ // service: [{ validator: validateJsonField('service', '服务'), trigger: 'blur' }]
|
|
|
})
|
|
|
|
|
|
const open = async (type: string, id?: number) => {
|