|
@@ -2,10 +2,8 @@
|
|
|
<div class="system-edit-dic-container">
|
|
|
<el-dialog :title="(ruleForm.id ? '修改' : '新增') + '计算指标模型'" v-model="isShowDialog" width="700px">
|
|
|
<el-form :model="ruleForm" ref="formRef" :rules="rules" label-width="110px">
|
|
|
- <el-form-item label="选字段" prop="key">
|
|
|
- <el-select style="width: 520px;" v-model="ruleForm.key" filterable placeholder="请选择数据类型">
|
|
|
- <el-option v-for="item in nodeData" :key="item.key" :label="item.name" :value="item.key" />
|
|
|
- </el-select>
|
|
|
+ <el-form-item label="指标标识" prop="key">
|
|
|
+ <el-input @input="validateKeyInput" style="width: 520px;" v-model="ruleForm.key" placeholder="请输入指标标识" />
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="指标名称" prop="name">
|
|
@@ -49,7 +47,6 @@
|
|
|
|
|
|
<el-dialog title="编辑计算公式" v-model="isShowFormulaDialog" width="600px">
|
|
|
<el-form :model="formulaForm" ref="formulaFormRef" :rules="formulaFormRules" label-width="110px">
|
|
|
-
|
|
|
<el-form-item label="运算符号">
|
|
|
<div class="symbol-list-wrap">
|
|
|
<div @click="assembleItem(item)" class="symbol-item-wrap" v-for="(item, index) in symbolList" :key="index">{{ item }}</div>
|
|
@@ -139,7 +136,10 @@ const ruleForm = ref({
|
|
|
dataTemplateKey: ''
|
|
|
})
|
|
|
const rules = ref({
|
|
|
- key: [{ required: true, message: '选字段不能为空', trigger: 'blur' }],
|
|
|
+ key: [
|
|
|
+ { required: true, message: '指标标识不能为空', trigger: 'blur' },
|
|
|
+ { pattern: /^[a-zA-Z]+$/, message: '指标标识只能输入英文字母', trigger: 'blur' }
|
|
|
+ ],
|
|
|
name: [{ required: true, message: '指标名称不能为空', trigger: 'blur' }],
|
|
|
description: [{ required: true, message: '指标说明不能为空', trigger: 'blur' }],
|
|
|
formula: [{ required: true, message: '计算公式不能为空', trigger: 'blur' }],
|
|
@@ -148,10 +148,15 @@ const rules = ref({
|
|
|
});
|
|
|
|
|
|
const formulaFormRules = ref({
|
|
|
- key: [{ required: true, message: '选字段不能为空', trigger: 'blur' }],
|
|
|
+ key: [{ required: true, message: '设备属性不能为空', trigger: 'blur' }],
|
|
|
formula: [{ required: true, message: '计算公式不能为空', trigger: 'blur' }],
|
|
|
});
|
|
|
|
|
|
+// 验证指标标识输入,只允许输入英文字母
|
|
|
+const validateKeyInput = (val: string) => {
|
|
|
+ ruleForm.value.key = val.replace(/[^a-zA-Z]/g, '');
|
|
|
+};
|
|
|
+
|
|
|
const handleBlur = () => {
|
|
|
if (!formulaRef.value) return;
|
|
|
cursorIndex.value = formulaRef.value.$el.querySelector('input').selectionStart;
|
|
@@ -170,13 +175,8 @@ const handleSelect = (value: any) => {
|
|
|
}
|
|
|
|
|
|
const showformulaFormDialog = () => {
|
|
|
- formulaForm.value.key = ruleForm.value.key;
|
|
|
if(ruleForm.value.formula) {
|
|
|
formulaForm.value.formula = ruleForm.value.formula;
|
|
|
-
|
|
|
- } else {
|
|
|
- formulaForm.value.formula = ruleForm.value.key;
|
|
|
-
|
|
|
}
|
|
|
isShowFormulaDialog.value = true;
|
|
|
}
|
|
@@ -231,7 +231,6 @@ const onSubmitFormulaForm = () => {
|
|
|
formWrap.validate((valid: boolean) => {
|
|
|
if (valid) {
|
|
|
ruleForm.value.formula = formulaForm.value.formula;
|
|
|
- ruleForm.value.key = formulaForm.value.key;
|
|
|
isShowFormulaDialog.value = false;
|
|
|
}
|
|
|
});
|