diff --git a/src/views/device/components/Metadata/Base/DetailModal/PropertiesModal.vue b/src/views/device/components/Metadata/Base/DetailModal/PropertiesModal.vue
index e5a089c4..56d14767 100644
--- a/src/views/device/components/Metadata/Base/DetailModal/PropertiesModal.vue
+++ b/src/views/device/components/Metadata/Base/DetailModal/PropertiesModal.vue
@@ -135,7 +135,7 @@ const handleDataTable = (type: string) => {
break;
case 'boolean':
dataTypeTable.dataSource = {
- ...props.data.valueType
+ ...omit(props.data.valueType, ['type'])
}
break;
case 'array':
diff --git a/src/views/device/components/Metadata/Base/columns.tsx b/src/views/device/components/Metadata/Base/columns.tsx
index 58c5137a..4426550b 100644
--- a/src/views/device/components/Metadata/Base/columns.tsx
+++ b/src/views/device/components/Metadata/Base/columns.tsx
@@ -32,6 +32,36 @@ const type = {
report: '上报',
};
+export const handleTypeValue = (type:string, value: any = {}) => {
+ let obj: any = {}
+ switch (type) {
+ case 'array':
+ obj.elementType = value
+ break;
+ case 'object':
+ obj.properties = value
+ break;
+ case 'int':
+ case 'long':
+ obj.unit = value
+ break;
+ case 'file':
+ obj.fileType = value
+ break;
+ case 'date':
+ obj.format = value
+ break;
+ case 'string':
+ case 'password':
+ obj.maxLength = value
+ break;
+ default:
+ obj = value
+ break;
+ }
+ return obj
+}
+
export const typeSelectChange = (type: string) => {
let obj: any = {}
switch (type) {
diff --git a/src/views/device/components/Metadata/Base/components/Constraint.vue b/src/views/device/components/Metadata/Base/components/Constraint.vue
index 72cc53f4..754f6cff 100644
--- a/src/views/device/components/Metadata/Base/components/Constraint.vue
+++ b/src/views/device/components/Metadata/Base/components/Constraint.vue
@@ -20,7 +20,7 @@ const props = defineProps({
},
name: {
type: [String, Array],
- default: 'required'
+ default: ['expands','required']
}
})
@@ -28,10 +28,10 @@ const emit = defineEmits(['update:value'])
const myValue = ref()
-const change = () => {
+const change = (e) => {
const newData = { ...props.value }
set(newData, props.name, myValue.value)
- console.log(newData);
+ console.log(newData, e);
emit('update:value', newData)
}
diff --git a/src/views/device/components/Metadata/Base/components/DataType.vue b/src/views/device/components/Metadata/Base/components/DataType.vue
index fe0da6d4..cf0e3044 100644
--- a/src/views/device/components/Metadata/Base/components/DataType.vue
+++ b/src/views/device/components/Metadata/Base/components/DataType.vue
@@ -8,64 +8,14 @@
v-model:value="_valueType.elementType"
:unitOptions="options"
placement="topRight"
- @confirm="valueChange"
+ @confirm="(data) => {valueChange(data, 'array')}"
/>
{valueChange(data, 'object')}"
>
{{ data.record.valueType?.type }}
@@ -75,28 +25,29 @@
-
-
+ {valueChange(data, 'enum')}"/>
+ {valueChange(data, 'boolean')}" />
{valueChange(data, 'float')}"
/>
{valueChange(data, 'int')}"
/>
-
-
+ {valueChange(data, 'file')}"/>
+ {valueChange(data, 'date')}"/>
{valueChange(data, 'string')}"
/>
@@ -117,7 +68,7 @@ import {
DataTableObject,
} from 'jetlinks-ui-components';
import { cloneDeep } from 'lodash-es';
-import { typeSelectChange } from '../columns'
+import {handleTypeValue, typeSelectChange} from '../columns'
import ConfigModal from './ConfigModal.vue'
const props = defineProps({
@@ -127,6 +78,56 @@ const props = defineProps({
},
});
+const columns = [{
+ title: '参数标识',
+ dataIndex: 'id',
+ type: 'text',
+ width: 100,
+ form: {
+ required: true,
+ rules: [{
+ callback() {
+ return Promise.resolve()
+ }
+ }]
+ }
+},
+ {
+ title: '参数名称',
+ dataIndex: 'name',
+ type: 'text',
+ width: 100,
+ form: {
+ required: true,
+ rules: [{
+ required: true,
+ message: '请输入参数名称'
+ }]
+ }
+ },
+ {
+ title: '数据类型',
+ type: 'components',
+ dataIndex: 'valueType',
+ components: {
+ name: ValueObject,
+ props: {
+ filter: ['object']
+ }
+ },
+ width: 100
+ },
+ {
+ title: '其他配置',
+ dataIndex: 'config',
+ width: 100
+ },
+ {
+ title: '操作',
+ dataIndex: 'action',
+ width: 60
+ }]
+
const options = ref<{ label: string; value: string }[]>([]);
const emit = defineEmits(['update:value']);
@@ -144,10 +145,13 @@ const typeChange = (e: string) => {
});
};
-const valueChange = () => {
+const valueChange = (_data: any, _type: string) => {
+ console.log(_type, _data)
+ const newData = handleTypeValue(_type, _data)
+ console.log('dataType',{...newData, type: type.value})
emit('update:value', {
...props.value,
- valueType: {...(_valueType.value || {}), type: type.value},
+ valueType: {...newData, type: type.value},
});
}
diff --git a/src/views/device/components/Metadata/Base/components/Function/InputParams.vue b/src/views/device/components/Metadata/Base/components/Function/InputParams.vue
index 4419c38a..dc818b8b 100644
--- a/src/views/device/components/Metadata/Base/components/Function/InputParams.vue
+++ b/src/views/device/components/Metadata/Base/components/Function/InputParams.vue
@@ -1,5 +1,5 @@
-
+
{{ data.record.valueType?.type }}
@@ -7,7 +7,7 @@
{{ data.record.expands?.required ? "是": '否' }}
-
+
@@ -18,26 +18,12 @@
diff --git a/yarn.lock b/yarn.lock
index 8025a1ef..48e566bd 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -3825,8 +3825,8 @@ jetlinks-store@^0.0.3:
jetlinks-ui-components@^1.0.23, jetlinks-ui-components@^1.0.24:
version "1.0.24"
- resolved "http://registry.jetlinks.cn/jetlinks-ui-components/-/jetlinks-ui-components-1.0.24.tgz#552bad6c9ef733c941168c01fcfe594317add9e2"
- integrity sha512-34a8yGQpOHy3DsdRO+pc9Qn5HoeLSGhc2wJhVd22/EbyG5X08EENOsIu+Jg6o/ELmSB2gKnvvhpR4rxawN28hQ==
+ resolved "http://registry.jetlinks.cn/jetlinks-ui-components/-/jetlinks-ui-components-1.0.24.tgz#7d651f3d333ad52154f5dbbbcba7f6ed8e85e442"
+ integrity sha512-MtIwdFA2kq3s1rGLExYjjjuit05pjoIURDelUIE4swN3q9qh8QgHcjAOtwEor+UNp333LT2FnSQbMkfXctrqUQ==
dependencies:
"@vueuse/core" "^9.12.0"
"@vueuse/router" "^9.13.0"