This is an automated email from the ASF dual-hosted git repository.
critas pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/iotdb-docs.git
The following commit(s) were added to refs/heads/main by this push:
new 4ac05d83 Add measurement unit to resource evaluator page (#989)
4ac05d83 is described below
commit 4ac05d832fc62a092da4594ee15fb4a427e676b5
Author: LimJiaWenBrenda <[email protected]>
AuthorDate: Tue Feb 3 14:34:25 2026 +0800
Add measurement unit to resource evaluator page (#989)
* 增加测点数量单位
* Change default measurement unit to ten thousand
* Use Calculator.multiply
---
src/.vuepress/components/ConfigItem.vue | 28 +++++++++++++++++---------
src/.vuepress/components/ResourceEvaluator.vue | 12 ++++++++++-
2 files changed, 29 insertions(+), 11 deletions(-)
diff --git a/src/.vuepress/components/ConfigItem.vue
b/src/.vuepress/components/ConfigItem.vue
index d4a3024a..103f1cc3 100644
--- a/src/.vuepress/components/ConfigItem.vue
+++ b/src/.vuepress/components/ConfigItem.vue
@@ -28,6 +28,7 @@ const props = defineProps<{
const formData = defineModel('info', {
default: () => ({
measurementCount: null,
+ measurementUnit: null,
dataType: null,
frequency: null,
frequencyUnit: null,
@@ -45,11 +46,18 @@ const need4columns = (dataType: string | null) => {
<div class="outer-box">
<div class="config-title">测点类型-{{ props.index }}</div>
<el-form :inline="true" class="config-row">
- <el-form-item label="测点数量:" label-width="85px">
+ <el-form-item label="测点数量:" label-width="82px">
<el-input v-model="formData.measurementCount" placeholder="请输入测点数量"
type="number" min="0"
- :style="{ width: need4columns(formData.dataType) ? '150px' : '205px'
}"></el-input>
- </el-form-item>
- <el-form-item label-width="100px">
+ :style="{ width: need4columns(formData.dataType) ? '134px' : '185px'
}"></el-input>
+ <el-select v-model="formData.measurementUnit" :style="{ width:
need4columns(formData.dataType) ? '72px' : '95px' }">
+ <el-option label="个" value="ONE"></el-option>
+ <el-option label="千" value="THOUSAND"></el-option>
+ <el-option label="万" value="TEN_THOUSAND"></el-option>
+ <el-option label="十万" value="HUNDRED_THOUSAND"></el-option>
+ <el-option label="百万" value="MILLION"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label-width="96px">
<template #label>
数据类型:
<client-only>
@@ -69,7 +77,7 @@ const need4columns = (dataType: string | null) => {
</client-only>
</template>
<el-select v-model="formData.dataType" placeholder="请选择数据类型"
- :style="{ width: need4columns(formData.dataType) ? '155px' : '205px'
}">
+ :style="{ width: need4columns(formData.dataType) ? '163px' : '205px'
}">
<el-option label="BOOLEAN (9字节)" value="BOOLEAN"></el-option>
<el-option label="INT32 (12字节)" value="INT32"></el-option>
<el-option label="INT64 (16字节)" value="INT64"></el-option>
@@ -82,11 +90,11 @@ const need4columns = (dataType: string | null) => {
<el-option label="DATE (12字节)" value="DATE"></el-option>
</el-select>
</el-form-item>
- <el-form-item label="采样频率:" label-width="85px">
+ <el-form-item label="采样频率:" label-width="82px">
<el-input v-model="formData.frequency" placeholder="请输入采样频率"
type="number" min="0"
- :style="{ width: need4columns(formData.dataType) ? '135px' : '205px'
}"></el-input>
+ :style="{ width: need4columns(formData.dataType) ? '134px' : '185px'
}"></el-input>
<el-select v-model="formData.frequencyUnit" placeholder="请选择频率单位"
- :style="{ width: need4columns(formData.dataType) ? '65px' : '130px'
}">
+ :style="{ width: need4columns(formData.dataType) ? '72px' : '95px'
}">
<el-option label="HZ" value="HZ"></el-option>
<el-option label="秒" value="SECOND"></el-option>
<el-option label="分钟" value="MINUTE"></el-option>
@@ -94,8 +102,8 @@ const need4columns = (dataType: string | null) => {
<el-option label="天" value="DAY"></el-option>
</el-select>
</el-form-item>
- <el-form-item label="字符串平均长度(a):" label-width="160px"
v-if="need4columns(formData.dataType)">
- <el-input v-model="formData.averageStringLength" type="number"
style="width: 140px;"></el-input>
+ <el-form-item label="字符串平均长度(a):" label-width="145px"
v-if="need4columns(formData.dataType)">
+ <el-input v-model="formData.averageStringLength" type="number"
style="width: 115px;"></el-input>
</el-form-item>
</el-form>
</div>
diff --git a/src/.vuepress/components/ResourceEvaluator.vue
b/src/.vuepress/components/ResourceEvaluator.vue
index ccf45886..dac2cb84 100644
--- a/src/.vuepress/components/ResourceEvaluator.vue
+++ b/src/.vuepress/components/ResourceEvaluator.vue
@@ -202,6 +202,7 @@ const doubleSpaceStorage = computed(() => {
const configItems = ref([{
measurementCount: null,
+ measurementUnit: 'TEN_THOUSAND',
dataType: null,
frequency: null,
frequencyUnit: 'HZ',
@@ -217,6 +218,7 @@ const storeInfo = ref({
const addConfigItem = () => {
configItems.value.push({
measurementCount: null,
+ measurementUnit: 'TEN_THOUSAND',
dataType: null,
frequency: null,
frequencyUnit: 'HZ',
@@ -259,6 +261,14 @@ const samplingPeriodInSec: Record<string, number> = {
'DAY': 86400,
}
+const measurementUnitMultiplier: Record<string, number> = {
+ 'ONE': 1,
+ 'THOUSAND': 1000,
+ 'TEN_THOUSAND': 10000,
+ 'HUNDRED_THOUSAND': 100000,
+ 'MILLION': 1000000,
+}
+
const calculateSpacePrecise = () => {
@@ -266,7 +276,7 @@ const calculateSpacePrecise = () => {
configItems.value.forEach((item, index) => {
if (item.measurementCount && item.frequency && item.dataType &&
item.frequencyUnit) {
if (storeInfo.value.storePeriod && storeInfo.value.compressionRatio) {
- let measurementCount = item.measurementCount;
+ let measurementCount = Calculator.multiply(item.measurementCount,
measurementUnitMultiplier[item.measurementUnit]);
let dataTypeSize = dataTypeBytes[item.dataType];
if (item.dataType === 'STRING' || item.dataType === 'TEXT' ||
item.dataType === 'BLOB') {
if (item.averageStringLength === null) {