|
@@ -58,7 +58,7 @@
|
|
<el-tab-pane label="计算公式" name="formula">
|
|
<el-tab-pane label="计算公式" name="formula">
|
|
<div class="section-title">计算公式</div>
|
|
<div class="section-title">计算公式</div>
|
|
<el-input v-model="form.formula" type="textarea" :rows="4" placeholder="请输入计算公式,例如:COD = (V1 - V2) × C × 8 × 1000 / V" />
|
|
<el-input v-model="form.formula" type="textarea" :rows="4" placeholder="请输入计算公式,例如:COD = (V1 - V2) × C × 8 × 1000 / V" />
|
|
- <div class="mt10 text-gray">支持 + - × ÷ () 函数 等;参数请在下方维护。</div>
|
|
|
|
|
|
+ <div class="mt10 text-gray">支持数学运算符(+、-、×、÷)、括号、函数等,系统会自动识别公式中的参数</div>
|
|
|
|
|
|
<div class="section-title mt20 flex-between">
|
|
<div class="section-title mt20 flex-between">
|
|
<span>公式参数</span>
|
|
<span>公式参数</span>
|
|
@@ -67,11 +67,11 @@
|
|
|
|
|
|
<el-table :data="form.formulaParams" border style="width: 100%">
|
|
<el-table :data="form.formulaParams" border style="width: 100%">
|
|
<el-table-column type="index" label="序号" width="60" align="center" />
|
|
<el-table-column type="index" label="序号" width="60" align="center" />
|
|
- <el-table-column label="参数名称" prop="name" />
|
|
|
|
- <el-table-column label="参数编码" prop="code" />
|
|
|
|
- <el-table-column label="参数值" prop="values" width="200" />
|
|
|
|
- <el-table-column label="参数描述" prop="description" />
|
|
|
|
- <el-table-column label="操作" width="160" align="center">
|
|
|
|
|
|
+ <el-table-column label="参数名称" prop="name" align="center" />
|
|
|
|
+ <el-table-column label="参数编码" prop="code" align="center"/>
|
|
|
|
+ <el-table-column label="参数值" prop="values" align="center"/>
|
|
|
|
+ <el-table-column label="参数描述" prop="description" align="center"/>
|
|
|
|
+ <el-table-column label="操作" width="120" align="center">
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
<el-button size="small" text type="primary" @click="openParamDialog(scope.row, scope.$index)">编辑</el-button>
|
|
<el-button size="small" text type="primary" @click="openParamDialog(scope.row, scope.$index)">编辑</el-button>
|
|
<el-button size="small" text type="danger" @click="removeParam(scope.$index)">删除</el-button>
|
|
<el-button size="small" text type="danger" @click="removeParam(scope.$index)">删除</el-button>
|
|
@@ -89,13 +89,14 @@
|
|
|
|
|
|
<el-table :data="form.dimensions" border style="width: 100%">
|
|
<el-table :data="form.dimensions" border style="width: 100%">
|
|
<el-table-column type="index" label="序号" width="60" align="center" />
|
|
<el-table-column type="index" label="序号" width="60" align="center" />
|
|
- <el-table-column label="维度名称" prop="name" />
|
|
|
|
- <el-table-column label="维度标识" prop="code" width="180" />
|
|
|
|
- <el-table-column label="值类型" prop="valueType" width="140">
|
|
|
|
|
|
+ <el-table-column label="维度名称" prop="name" align="center"/>
|
|
|
|
+ <el-table-column label="维度标识" prop="code" align="center"/>
|
|
|
|
+ <el-table-column label="维度值类型" prop="valueType" align="center">
|
|
<template #default="scope">{{ formatValueType(scope.row.valueType) }}</template>
|
|
<template #default="scope">{{ formatValueType(scope.row.valueType) }}</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
- <el-table-column label="维度描述" prop="description" />
|
|
|
|
- <el-table-column label="操作" width="160" align="center">
|
|
|
|
|
|
+ <el-table-column label="维度值" prop="values" align="center"/>
|
|
|
|
+ <el-table-column label="维度描述" prop="description" align="center"/>
|
|
|
|
+ <el-table-column label="操作" width="120" align="center">
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
<el-button size="small" text type="primary" @click="openDimDialog(scope.row, scope.$index)">编辑</el-button>
|
|
<el-button size="small" text type="primary" @click="openDimDialog(scope.row, scope.$index)">编辑</el-button>
|
|
<el-button size="small" text type="danger" @click="removeDim(scope.$index)">删除</el-button>
|
|
<el-button size="small" text type="danger" @click="removeDim(scope.$index)">删除</el-button>
|
|
@@ -139,14 +140,14 @@
|
|
|
|
|
|
<!-- 添加/编辑 维度 -->
|
|
<!-- 添加/编辑 维度 -->
|
|
<el-dialog v-model="dimDialog.visible" title="添加维度" width="520px" :close-on-click-modal="false">
|
|
<el-dialog v-model="dimDialog.visible" title="添加维度" width="520px" :close-on-click-modal="false">
|
|
- <el-form :model="dimDialog.form" ref="dimFormRef" :rules="dimRules" label-width="90px">
|
|
|
|
|
|
+ <el-form :model="dimDialog.form" ref="dimFormRef" :rules="dimRules" label-width="100px">
|
|
<el-form-item label="维度名称" prop="name">
|
|
<el-form-item label="维度名称" prop="name">
|
|
<el-input v-model.trim="dimDialog.form.name" placeholder="请输入维度名称" />
|
|
<el-input v-model.trim="dimDialog.form.name" placeholder="请输入维度名称" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="维度标识" prop="code">
|
|
<el-form-item label="维度标识" prop="code">
|
|
<el-input v-model.trim="dimDialog.form.code" placeholder="请输入维度标识,如 time, location" />
|
|
<el-input v-model.trim="dimDialog.form.code" placeholder="请输入维度标识,如 time, location" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="值类型" prop="valueType">
|
|
|
|
|
|
+ <el-form-item label="维度值类型" prop="valueType">
|
|
<el-select v-model="dimDialog.form.valueType" placeholder="请选择值类型" style="width: 100%">
|
|
<el-select v-model="dimDialog.form.valueType" placeholder="请选择值类型" style="width: 100%">
|
|
<el-option label="字符串" value="string" />
|
|
<el-option label="字符串" value="string" />
|
|
<el-option label="数值" value="number" />
|
|
<el-option label="数值" value="number" />
|
|
@@ -154,6 +155,15 @@
|
|
<el-option label="时间" value="datetime" />
|
|
<el-option label="时间" value="datetime" />
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
+ <el-form-item label="维度值" prop="values">
|
|
|
|
+ <el-input v-if="dimDialog.form.valueType === 'string'" v-model.trim="dimDialog.form.values" placeholder="请输入维度值" />
|
|
|
|
+ <el-input v-else-if="dimDialog.form.valueType === 'number'" type="number" v-model.trim="dimDialog.form.values" placeholder="请输入维度值" />
|
|
|
|
+ <el-radio-group v-else-if="dimDialog.form.valueType === 'boolean'" v-model="dimDialog.form.values">
|
|
|
|
+ <el-radio :label="true">是</el-radio>
|
|
|
|
+ <el-radio :label="false">否</el-radio>
|
|
|
|
+ </el-radio-group>
|
|
|
|
+ <el-date-picker v-else-if="dimDialog.form.valueType === 'datetime'" type="datetime" format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" v-model="dimDialog.form.values" placeholder="请选择维度值" />
|
|
|
|
+ </el-form-item>
|
|
<el-form-item label="维度描述" prop="description">
|
|
<el-form-item label="维度描述" prop="description">
|
|
<el-input v-model.trim="dimDialog.form.description" type="textarea" placeholder="请输入维度描述" />
|
|
<el-input v-model.trim="dimDialog.form.description" type="textarea" placeholder="请输入维度描述" />
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -179,7 +189,7 @@ const isEdit = ref(false);
|
|
const activeTab = ref<"base" | "formula" | "dimension">("base");
|
|
const activeTab = ref<"base" | "formula" | "dimension">("base");
|
|
|
|
|
|
type FormulaParam = { name: string; code: string; values: string; description?: string };
|
|
type FormulaParam = { name: string; code: string; values: string; description?: string };
|
|
-type Dimension = { name: string; code: string; valueType: "string" | "number" | "boolean" | "datetime"; description?: string };
|
|
|
|
|
|
+type Dimension = { name: string; code: string; valueType: "string" | "number" | "boolean" | "datetime"; values: string; description?: string };
|
|
|
|
|
|
const formRef = ref();
|
|
const formRef = ref();
|
|
const form = reactive({
|
|
const form = reactive({
|
|
@@ -230,7 +240,7 @@ const paramRules = {
|
|
const dimDialog = reactive({
|
|
const dimDialog = reactive({
|
|
visible: false,
|
|
visible: false,
|
|
index: -1,
|
|
index: -1,
|
|
- form: { name: "", code: "", valueType: "string", description: "" } as Dimension,
|
|
|
|
|
|
+ form: { name: "", code: "", valueType: "string", values: "", description: "" } as Dimension,
|
|
});
|
|
});
|
|
const dimFormRef = ref();
|
|
const dimFormRef = ref();
|
|
const dimRules = {
|
|
const dimRules = {
|
|
@@ -332,6 +342,7 @@ function openDimDialog(row?: Dimension, index?: number) {
|
|
name: row?.name || "",
|
|
name: row?.name || "",
|
|
code: row?.code || "",
|
|
code: row?.code || "",
|
|
valueType: (row?.valueType as any) || "string",
|
|
valueType: (row?.valueType as any) || "string",
|
|
|
|
+ values: row?.values || "",
|
|
description: row?.description || "",
|
|
description: row?.description || "",
|
|
};
|
|
};
|
|
dimDialog.visible = true;
|
|
dimDialog.visible = true;
|