fix: 优化物模型-规则
This commit is contained in:
parent
590a82b156
commit
3065cd88c2
|
@ -7,6 +7,9 @@
|
|||
placeholder="搜索关键字"
|
||||
/>
|
||||
<div class="tree">
|
||||
<j-scrollbar>
|
||||
|
||||
|
||||
<j-tree
|
||||
@select="selectTree"
|
||||
:field-names="{ title: 'name', key: 'id' }"
|
||||
|
@ -25,6 +28,9 @@
|
|||
>
|
||||
<j-popover
|
||||
v-if="node.type === 'property'"
|
||||
:overlayStyle="{
|
||||
zIndex: 1200
|
||||
}"
|
||||
placement="right"
|
||||
title="请选择使用值"
|
||||
>
|
||||
|
@ -54,14 +60,15 @@
|
|||
</j-tooltip>
|
||||
</j-space>
|
||||
</template>
|
||||
<a>添加</a>
|
||||
<a class="has-property">添加</a>
|
||||
</j-popover>
|
||||
|
||||
<a v-else @click="addClick(node)"> 添加 </a>
|
||||
<a class="no-property" v-else @click.stop="addClick(node)"> 添加 </a>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</j-tree>
|
||||
</j-scrollbar>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
|
@ -114,6 +121,7 @@ const lastClick = (node: OperatorItem) => {
|
|||
emit('addOperatorValue', `$lastState("${node.id}")`);
|
||||
};
|
||||
const addClick = (node: OperatorItem) => {
|
||||
console.log(node)
|
||||
emit('addOperatorValue', node.code);
|
||||
};
|
||||
|
||||
|
@ -179,7 +187,7 @@ watch(
|
|||
.tree {
|
||||
|
||||
height: 300px;
|
||||
overflow-y: auto;
|
||||
//overflow-y: auto;
|
||||
|
||||
.node {
|
||||
display: flex;
|
||||
|
@ -197,4 +205,9 @@ watch(
|
|||
padding: 20px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
.rule-popover {
|
||||
z-index: 1200;
|
||||
}
|
||||
</style>
|
|
@ -82,6 +82,7 @@ const aggType = computed(() => {
|
|||
|
||||
const editor = ref();
|
||||
const addOperatorValue = (val: string) => {
|
||||
console.log(val)
|
||||
editor.value.addOperatorValue(val);
|
||||
};
|
||||
</script>
|
||||
|
|
|
@ -32,6 +32,47 @@ const type = {
|
|||
report: '上报',
|
||||
};
|
||||
|
||||
export const typeSelectChange = (type: string) => {
|
||||
let obj: any = {}
|
||||
switch (type) {
|
||||
case 'array':
|
||||
obj.elementType = {}
|
||||
break;
|
||||
case 'object':
|
||||
obj.properties = []
|
||||
break;
|
||||
case 'enum':
|
||||
obj.elements = []
|
||||
break;
|
||||
case 'float':
|
||||
case 'double':
|
||||
obj.scale = 2
|
||||
obj.unit = undefined
|
||||
break;
|
||||
case 'int':
|
||||
case 'long':
|
||||
obj.unit = undefined
|
||||
break;
|
||||
case 'file':
|
||||
obj.fileType = undefined
|
||||
break;
|
||||
case 'date':
|
||||
obj.format = undefined
|
||||
break;
|
||||
case 'string':
|
||||
case 'password':
|
||||
obj.maxLength = undefined
|
||||
break;
|
||||
case 'boolean':
|
||||
obj.trueText = '是'
|
||||
obj.trueValue = 'true'
|
||||
obj.falseText = '否'
|
||||
obj.falseValue = 'false'
|
||||
break;
|
||||
}
|
||||
return obj
|
||||
}
|
||||
|
||||
export const useColumns = (type?: MetadataType, target?: 'device' | 'product', dataSource?: Ref<any[]>, noEdit?: Ref<any>) => {
|
||||
|
||||
const BaseColumns: DataTableColumnProps[] = [
|
||||
|
|
|
@ -88,6 +88,7 @@ import {
|
|||
} from 'jetlinks-ui-components';
|
||||
import DataTypeObjectChild from './DataTypeObjectChild.vue';
|
||||
import { cloneDeep } from 'lodash-es';
|
||||
import { typeSelectChange } from '../columns'
|
||||
|
||||
const props = defineProps({
|
||||
value: {
|
||||
|
@ -105,42 +106,7 @@ const _valueType = ref(cloneDeep(props.value.valueType));
|
|||
|
||||
const typeChange = (e: string) => {
|
||||
|
||||
let obj: any = {}
|
||||
switch (e) {
|
||||
case 'array':
|
||||
obj.elementType = {}
|
||||
break;
|
||||
case 'object':
|
||||
obj.properties = []
|
||||
break;
|
||||
case 'enum':
|
||||
obj.elements = []
|
||||
break;
|
||||
case 'float':
|
||||
case 'double':
|
||||
obj.scale = 2
|
||||
obj.unit = undefined
|
||||
case 'int':
|
||||
case 'long':
|
||||
obj.unit = undefined
|
||||
break;
|
||||
case 'file':
|
||||
obj.fileType = undefined
|
||||
break;
|
||||
case 'date':
|
||||
obj.format = undefined
|
||||
break;
|
||||
case 'string':
|
||||
case 'password':
|
||||
obj.maxLength = undefined
|
||||
break;
|
||||
case 'boolean':
|
||||
obj.trueText = '是'
|
||||
obj.trueValue = 'true'
|
||||
obj.falseText = '否'
|
||||
obj.falseValue = 'false'
|
||||
break;
|
||||
}
|
||||
let obj: any = typeSelectChange(e)
|
||||
_valueType.value = obj
|
||||
emit('update:value', {
|
||||
...props.value,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<DataTableTypeSelect v-model:value="type" :filter="['object']">
|
||||
<DataTableTypeSelect v-model:value="type" :filter="['object']" @change="change">
|
||||
|
||||
</DataTableTypeSelect>
|
||||
</template>
|
||||
|
@ -11,6 +11,7 @@ import {
|
|||
DataTableObject,
|
||||
} from 'jetlinks-ui-components';
|
||||
import { DataType } from '../index'
|
||||
import {typeSelectChange} from "@/views/device/components/Metadata/Base/columns";
|
||||
|
||||
|
||||
type Emits = {
|
||||
|
@ -37,6 +38,18 @@ const props = defineProps({
|
|||
|
||||
const type = ref(props.value.valueType?.type || null);
|
||||
|
||||
const change = (e: string) => {
|
||||
console.log(e)
|
||||
const obj = typeSelectChange(e)
|
||||
emit('update:value', {
|
||||
...props.value,
|
||||
valueType: {
|
||||
type: type.value,
|
||||
...obj
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
watch(
|
||||
() => props.value,
|
||||
(newV) => {
|
||||
|
@ -45,12 +58,6 @@ watch(
|
|||
{ immediate: true },
|
||||
);
|
||||
|
||||
watch(() => type.value, () => {
|
||||
emit('update:value', {
|
||||
...props.value,
|
||||
valueType: { type: type.value}
|
||||
})
|
||||
})
|
||||
</script>
|
||||
|
||||
<style scoped></style>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<div class="input-params-text">
|
||||
{{ value?.map((item) => item.name).join(',') }}
|
||||
</div>
|
||||
<DataTableObject v-model:value="value" :columns="columns">
|
||||
<DataTableObject v-model:value="value" :columns="columns" :addItem="addItem" c>
|
||||
<template #valueType="{ data }">
|
||||
<span>{{ data.record.valueType?.type }}</span>
|
||||
</template>
|
||||
|
@ -27,6 +27,19 @@ import {
|
|||
} from 'jetlinks-ui-components';
|
||||
import { ConstraintSelect, OtherConfigInfo, ValueObject } from '../index'
|
||||
|
||||
const addItem = () => {
|
||||
return {
|
||||
id: undefined,
|
||||
name: undefined,
|
||||
valueType: {
|
||||
|
||||
},
|
||||
expands: {
|
||||
required: false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const columns = [
|
||||
{ title: '参数标识', dataIndex: 'id', type: 'text', form: { required: true, rules: [{ required: true, message: '请输入标识'}]} },
|
||||
{ title: '参数名称', dataIndex: 'name', type: 'text', form: { required: true, rules: [{ required: true, message: '请输入名称'}]} },
|
||||
|
|
Loading…
Reference in New Issue