diff --git a/README.md b/README.md index e027949..c605b8c 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +启动项目pnpm run dev:antd +
VbenAdmin Logo diff --git a/apps/web-antd/src/views/device/product/detail/components/EventDrawer.vue b/apps/web-antd/src/views/device/product/detail/components/EventDrawer.vue index 36d65a2..7aa1054 100644 --- a/apps/web-antd/src/views/device/product/detail/components/EventDrawer.vue +++ b/apps/web-antd/src/views/device/product/detail/components/EventDrawer.vue @@ -118,6 +118,7 @@ const formRules = { }, ], name: [{ required: true, message: '请输入名称', trigger: 'blur' }], + sort: [{ required: true, message: '请输入排序', trigger: 'blur' }], // 'valueParams.dataType': [ // { required: true, message: '请选择数据类型', trigger: 'blur' }, // ], diff --git a/apps/web-antd/src/views/device/product/detail/components/FunctionDrawer.vue b/apps/web-antd/src/views/device/product/detail/components/FunctionDrawer.vue index 9c08229..2b9645c 100644 --- a/apps/web-antd/src/views/device/product/detail/components/FunctionDrawer.vue +++ b/apps/web-antd/src/views/device/product/detail/components/FunctionDrawer.vue @@ -155,6 +155,7 @@ const formRules = { }, ], name: [{ required: true, message: '请输入名称', trigger: 'blur' }], + sort: [{ required: true, message: '请输入排序', trigger: 'blur' }], }; // 抽屉标题 diff --git a/apps/web-antd/src/views/device/product/detail/components/Metadata.vue b/apps/web-antd/src/views/device/product/detail/components/Metadata.vue index 2dc6822..55ffc73 100644 --- a/apps/web-antd/src/views/device/product/detail/components/Metadata.vue +++ b/apps/web-antd/src/views/device/product/detail/components/Metadata.vue @@ -38,6 +38,7 @@ const currentMetadata = ref({ properties: [], functions: [], events: [], + propertyGroups: [], // 新增属性分组 }); // 标签页切换 @@ -97,6 +98,7 @@ const loadMetadata = async () => { properties: [], functions: [], events: [], + propertyGroups: [], // 新增属性分组 }; try { currentMetadata.value = props.productInfo.metadata @@ -212,6 +214,7 @@ const handleSave = async () => { metadata.properties.sort((a: any, b: any) => a.sort - b.sort); metadata.functions.sort((a: any, b: any) => a.sort - b.sort); metadata.events.sort((a: any, b: any) => a.sort - b.sort); + metadata.propertyGroups.sort((a: any, b: any) => a.sort - b.sort); // 新增属性分组排序 await productUpdateById(props.productInfo.id, { id: props.productInfo.id, metadata: JSON.stringify(metadata), @@ -244,6 +247,11 @@ const handleMetadataChange = (data: any) => { currentMetadata.value.properties = data; break; } + case 'propertyGroups': { + // 新增属性分组处理 + currentMetadata.value.propertyGroups = data; + break; + } // No default } }; @@ -328,6 +336,16 @@ loadMetadata(); @refresh="loadMetadata" /> + + + (); const emit = defineEmits<{ @@ -67,6 +69,18 @@ const columns = computed(() => { fixed: 'right', }, ]; + + // 属性分组特殊列 + if (props.type === 'propertyGroups') { + baseColumns.splice(3, 0, { + title: '属性数', + dataIndex: 'properties', + key: 'count', + width: 100, + customRender: ({ record }: any) => record.properties?.length || 0, + }); + } + // 功能定义特殊列 if (props.type === 'properties') { baseColumns.splice( @@ -129,6 +143,7 @@ const getTypeLabel = () => { functions: '功能', events: '事件', tags: '标签', + propertyGroups: '分组', }; return labels[props.type]; }; @@ -319,6 +334,16 @@ onMounted(() => { :data="formData" @save="handleSave" /> + + +
diff --git a/apps/web-antd/src/views/device/product/detail/components/PropertyDrawer.vue b/apps/web-antd/src/views/device/product/detail/components/PropertyDrawer.vue index f8332a9..8233532 100644 --- a/apps/web-antd/src/views/device/product/detail/components/PropertyDrawer.vue +++ b/apps/web-antd/src/views/device/product/detail/components/PropertyDrawer.vue @@ -116,6 +116,7 @@ const formRules = { }, ], name: [{ required: true, message: '请输入名称', trigger: 'blur' }], + sort: [{ required: true, message: '请输入排序', trigger: 'blur' }], // 'valueParams.dataType': [ // { required: true, message: '请选择数据类型', trigger: 'blur' }, // ], diff --git a/apps/web-antd/src/views/device/product/detail/components/PropertyGroupDrawer.vue b/apps/web-antd/src/views/device/product/detail/components/PropertyGroupDrawer.vue new file mode 100644 index 0000000..8bc0e85 --- /dev/null +++ b/apps/web-antd/src/views/device/product/detail/components/PropertyGroupDrawer.vue @@ -0,0 +1,304 @@ + + +