Procházet zdrojové kódy

fix: 计算指标管理bug处理;
1. 计算指标列表接口查询增加数据模型标识字段;
2. 新增计算模型指标,改【选字段】为指标标识,由select改为input,只允许输入英文字母;
3. 发布状态检查接口入参更改为模型标识。

vera_min před 4 měsíci
rodič
revize
e78c095002

+ 14 - 7
src/views/system/datahub/modeling/calculationIndicator.vue

@@ -37,7 +37,7 @@
                 </el-icon>
                 新增计算指标模型
               </el-button>
-              <el-button :loading="publishLoading" type="success" class="ml10" @click="onPublish()">
+              <el-button :disabled="!tableData.data.length" :loading="publishLoading" type="success" class="ml10" @click="onPublish()">
                 <el-icon>
                   <ele-Upload />
                 </el-icon>
@@ -95,6 +95,7 @@ const tableData = ref(
       pageNum: 1,
       pageSize: 20,
       tid: route.params.id as string,
+      dataTemplateKey: '',
       keyWord: '',
     },
   }
@@ -102,6 +103,9 @@ const tableData = ref(
 
 const typeList = () => {
   tableData.value.loading = true;
+  if (!tableData.value.param.dataTemplateKey && detail.value.key) {
+    tableData.value.param.dataTemplateKey = detail.value.key;
+  }
   api.calculationIndicator.getList(tableData.value.param).then((res: any) => {
     tableData.value.data = res.list || [];
     tableData.value.total = res.Total || 0;
@@ -134,6 +138,7 @@ const onRowDel = (row: any) => {
     .then(() => {
       api.calculationIndicator.delete(ids).then(() => {
         ElMessage.success('删除成功');
+        checkDeploy();
         typeList();
       });
     })
@@ -154,13 +159,13 @@ const onPublish = () => {
     }).finally(() => (publishLoading.value = false));
   })
   .catch(() => { })
-  
-
 };
 
 const checkDeploy = () => {
-  const ids = route.params?.modelId as string;
-  api.calculationIndicator.checkDeploy({ dataTemplateKey: ids }).then((res: any) => {
+  if (!tableData.value.param.dataTemplateKey && detail.value.key) {
+    tableData.value.param.dataTemplateKey = detail.value.key;
+  }
+  api.calculationIndicator.checkDeploy({ dataTemplateKey: detail.value.key }).then((res: any) => {
     if (res === true) {
       publishStatus.value = '取消发布';
     }else if (res === false) {
@@ -205,6 +210,7 @@ const onOpenAdd = () => {
 const updateList = () => {
   tableData.value.param.pageNum = 1;
   tableData.value.param.keyWord = '';
+  checkDeploy();
   typeList();
 }
 
@@ -213,9 +219,10 @@ onMounted(() => {
   api.template.detail(ids).then((res: any) => {
     detail.value = res.data;
     developer_status.value = res.data.status;
+    tableData.value.param.dataTemplateKey = res.data.key;
+    checkDeploy()
+    typeList();
   });
-  checkDeploy()
-  typeList();
 });
 </script>
 

+ 12 - 13
src/views/system/datahub/modeling/component/addOrEditIndictor.vue

@@ -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;
     }
   });