Browse Source

理论上。。。应该是搞完了。

wukai 2 months ago
parent
commit
7dc1f45384
4 changed files with 228 additions and 151 deletions
  1. 9 0
      src/api/ripa/analy.js
  2. 50 4
      src/views/ripa/analy/index.vue
  3. 4 2
      src/views/ripa/metrics/index.vue
  4. 165 145
      src/views/ripa/record/index.vue

+ 9 - 0
src/api/ripa/analy.js

@@ -17,6 +17,14 @@ export function getAnaly(analyId) {
     })
 }
 
+// 立即分析
+export function analy(analyId) {
+    return request({
+        url: '/ripa/analy/analy?analyId=' + analyId,
+        method: 'get'
+    })
+}
+
 // 新增模型指标分析
 export function addAnaly(data) {
     return request({
@@ -42,6 +50,7 @@ export function delAnaly(analyId) {
         method: 'get'
     })
 }
+
 export function batchInsert(data) {
     return request({
         url: '/ripa/analy/insert',

+ 50 - 4
src/views/ripa/analy/index.vue

@@ -107,7 +107,15 @@
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template #default="scope">
           <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)">配置算法</el-button>
-          <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)">删除</el-button>
+          <el-button link type="primary" icon="DataAnalysis" v-if="scope.row.algoId!=null"
+                     @click="handleAnaly(scope.row)">立即分析
+          </el-button>
+          <el-button link type="primary" icon="Grid" v-if="scope.row.algoId!=null" @click="handleHistory(scope.row)">
+            历史记录
+          </el-button>
+          <el-button link type="primary" icon="Delete" v-if="scope.row.algoId==null" @click="handleDelete(scope.row)">
+            删除
+          </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -224,22 +232,35 @@
         </div>
       </template>
     </el-dialog>
+
+    <el-dialog :title="titleH" v-model="openH" width="1300" append-to-body>
+      <history ref="historyRef" :analy-id="_analyId" style="height: 600px; overflow-y: auto;"/>
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button type="primary" @click="selectOK">确 定</el-button>
+          <el-button @click="cancel">取 消</el-button>
+        </div>
+      </template>
+    </el-dialog>
   </div>
 </template>
 
 <script setup name="Analy">
-import {addAnaly, batchInsert, delAnaly, getAnaly, listAnaly, updateAnaly} from "@/api/ripa/analy";
+import {addAnaly, analy, batchInsert, delAnaly, getAnaly, listAnaly, updateAnaly} from "@/api/ripa/analy";
 import {listAlgo} from "@/api/ripa/algo";
-import selectMetrics from "./component/selectMetrics.vue"
+import selectMetrics from "@/views/ripa/analy/component/selectMetrics.vue"
+import history from "@/views/ripa/record/index.vue"
 
 const {proxy} = getCurrentInstance();
 const {sys_yes_no} = proxy.useDict('sys_yes_no');
 // 添加这行确保组件被视为已使用
 const _unused = selectMetrics; // 防止IDE认为组件未被使用
+const _unused1 = history; // 防止IDE认为组件未被使用
 const analyList = ref([]);
 const algoList = ref([]);
 const open = ref(false);
 const openS = ref(false);
+const openH = ref(false);
 const loading = ref(true);
 const showSearch = ref(true);
 const ids = ref([]);
@@ -248,7 +269,10 @@ const multiple = ref(true);
 const total = ref(0);
 const title = ref("");
 const titleS = ref("");
+const titleH = ref("");
 const selectMetricsRef = ref(null);
+const historyRef = ref(null);
+const _analyId = ref("");
 
 const data = reactive({
   form: {},
@@ -271,7 +295,7 @@ const data = reactive({
   },
   rules: {
     algoId: [
-      { required: true, message: "算法不能为空", trigger: "blur" }
+      {required: true, message: "算法不能为空", trigger: "blur"}
     ],
     alarmKey: [
       {
@@ -354,6 +378,7 @@ function getList() {
 function cancel() {
   open.value = false;
   openS.value = false;
+  openH.value = false;
   reset();
 }
 
@@ -435,6 +460,27 @@ function handleUpdate(row) {
   });
 }
 
+/** 立即分析 */
+function handleAnaly(row) {
+  const _analyId = row.analyId || ids.value
+  analy(_analyId).then(response => {
+    if (response.code == 200) {
+      proxy.$modal.confirm("分析结果:" + response.msg)
+      // proxy.$modal.msgSuccess("分析结果:" + response.msg);
+    } else {
+      proxy.$modal.msgError("分析失败:" + response.msg);
+    }
+    getList()
+  });
+}
+
+function handleHistory(row) {
+  _analyId.value = row.analyId;
+  openH.value = true;
+  titleH.value = "模型指标分析历史记录";
+}
+
+
 /** 提交按钮 */
 function submitForm() {
   proxy.$refs["analyRef"].validate(valid => {

+ 4 - 2
src/views/ripa/metrics/index.vue

@@ -60,7 +60,8 @@
                 icon="Delete"
                 :disabled="multiple"
                 @click="handleDelete"
-            >删除指标</el-button>
+            >删除指标
+            </el-button>
           </el-col>
           <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
         </el-row>
@@ -401,7 +402,8 @@ function handleMsAdd() {
       objMetricsId: item.objMetricsId,
       metricsName: item.metricsName,
       objName: item.objName,
-      objType: item.objType
+      objType: item.objType,
+      objId: item.objId
     });
   }
   addMetrics(newList).then(response => {

+ 165 - 145
src/views/ripa/record/index.vue

@@ -1,167 +1,175 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="分析ID" prop="analyId">
-        <el-input
-          v-model="queryParams.analyId"
-          placeholder="请输入分析ID"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="分析结果" prop="analyResult">
-        <el-input
-          v-model="queryParams.analyResult"
-          placeholder="请输入分析结果"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="是否告警" prop="alarmWitch">
-        <el-select v-model="queryParams.alarmWitch" placeholder="请选择是否告警" clearable>
-          <el-option
-            v-for="dict in sys_yes_no"
-            :key="dict.value"
-            :label="dict.label"
-            :value="dict.value"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="创建人" prop="createBy">
-        <el-input
-          v-model="queryParams.createBy"
-          placeholder="请输入创建人"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="创建时间" prop="createTime">
-        <el-date-picker clearable
-          v-model="queryParams.createTime"
-          type="date"
-          value-format="YYYY-MM-DD"
-          placeholder="请选择创建时间">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item label="更新人" prop="updateBy">
-        <el-input
-          v-model="queryParams.updateBy"
-          placeholder="请输入更新人"
-          clearable
-          @keyup.enter="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="更新时间" prop="updateTime">
-        <el-date-picker clearable
-          v-model="queryParams.updateTime"
-          type="date"
-          value-format="YYYY-MM-DD"
-          placeholder="请选择更新时间">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
-        <el-button icon="Refresh" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
+    <!--    <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">-->
+    <!--      <el-form-item label="分析ID" prop="analyId">-->
+    <!--        <el-input-->
+    <!--            v-model="queryParams.analyId"-->
+    <!--            placeholder="请输入分析ID"-->
+    <!--            clearable-->
+    <!--            @keyup.enter="handleQuery"-->
+    <!--        />-->
+    <!--      </el-form-item>-->
+    <!--      <el-form-item label="分析结果" prop="analyResult">-->
+    <!--        <el-input-->
+    <!--            v-model="queryParams.analyResult"-->
+    <!--            placeholder="请输入分析结果"-->
+    <!--            clearable-->
+    <!--            @keyup.enter="handleQuery"-->
+    <!--        />-->
+    <!--      </el-form-item>-->
+    <!--      <el-form-item label="是否告警" prop="alarmWitch">-->
+    <!--        <el-select v-model="queryParams.alarmWitch" placeholder="请选择是否告警" clearable>-->
+    <!--          <el-option-->
+    <!--              v-for="dict in sys_yes_no"-->
+    <!--              :key="dict.value"-->
+    <!--              :label="dict.label"-->
+    <!--              :value="dict.value"-->
+    <!--          />-->
+    <!--        </el-select>-->
+    <!--      </el-form-item>-->
+    <!--      <el-form-item label="创建人" prop="createBy">-->
+    <!--        <el-input-->
+    <!--            v-model="queryParams.createBy"-->
+    <!--            placeholder="请输入创建人"-->
+    <!--            clearable-->
+    <!--            @keyup.enter="handleQuery"-->
+    <!--        />-->
+    <!--      </el-form-item>-->
+    <!--      <el-form-item label="创建时间" prop="createTime">-->
+    <!--        <el-date-picker clearable-->
+    <!--                        v-model="queryParams.createTime"-->
+    <!--                        type="date"-->
+    <!--                        value-format="YYYY-MM-DD"-->
+    <!--                        placeholder="请选择创建时间">-->
+    <!--        </el-date-picker>-->
+    <!--      </el-form-item>-->
+    <!--      <el-form-item label="更新人" prop="updateBy">-->
+    <!--        <el-input-->
+    <!--            v-model="queryParams.updateBy"-->
+    <!--            placeholder="请输入更新人"-->
+    <!--            clearable-->
+    <!--            @keyup.enter="handleQuery"-->
+    <!--        />-->
+    <!--      </el-form-item>-->
+    <!--      <el-form-item label="更新时间" prop="updateTime">-->
+    <!--        <el-date-picker clearable-->
+    <!--                        v-model="queryParams.updateTime"-->
+    <!--                        type="date"-->
+    <!--                        value-format="YYYY-MM-DD"-->
+    <!--                        placeholder="请选择更新时间">-->
+    <!--        </el-date-picker>-->
+    <!--      </el-form-item>-->
+    <!--      <el-form-item>-->
+    <!--        <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>-->
+    <!--        <el-button icon="Refresh" @click="resetQuery">重置</el-button>-->
+    <!--      </el-form-item>-->
+    <!--    </el-form>-->
 
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="Plus"
-          @click="handleAdd"
-          v-hasPermi="['biz:record:add']"
-        >新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="Edit"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['biz:record:edit']"
-        >修改</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="Delete"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['biz:record:remove']"
-        >删除</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="Download"
-          @click="handleExport"
-          v-hasPermi="['biz:record:export']"
-        >导出</el-button>
-      </el-col>
-      <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
+    <!--    <el-row :gutter="10" class="mb8">-->
+    <!--      <el-col :span="1.5">-->
+    <!--        <el-button-->
+    <!--            type="primary"-->
+    <!--            plain-->
+    <!--            icon="Plus"-->
+    <!--            @click="handleAdd"-->
+    <!--            v-hasPermi="['biz:record:add']"-->
+    <!--        >新增-->
+    <!--        </el-button>-->
+    <!--      </el-col>-->
+    <!--      <el-col :span="1.5">-->
+    <!--        <el-button-->
+    <!--            type="success"-->
+    <!--            plain-->
+    <!--            icon="Edit"-->
+    <!--            :disabled="single"-->
+    <!--            @click="handleUpdate"-->
+    <!--            v-hasPermi="['biz:record:edit']"-->
+    <!--        >修改-->
+    <!--        </el-button>-->
+    <!--      </el-col>-->
+    <!--      <el-col :span="1.5">-->
+    <!--        <el-button-->
+    <!--            type="danger"-->
+    <!--            plain-->
+    <!--            icon="Delete"-->
+    <!--            :disabled="multiple"-->
+    <!--            @click="handleDelete"-->
+    <!--            v-hasPermi="['biz:record:remove']"-->
+    <!--        >删除-->
+    <!--        </el-button>-->
+    <!--      </el-col>-->
+    <!--      <el-col :span="1.5">-->
+    <!--        <el-button-->
+    <!--            type="warning"-->
+    <!--            plain-->
+    <!--            icon="Download"-->
+    <!--            @click="handleExport"-->
+    <!--            v-hasPermi="['biz:record:export']"-->
+    <!--        >导出-->
+    <!--        </el-button>-->
+    <!--      </el-col>-->
+    <!--      <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>-->
+    <!--    </el-row>-->
 
     <el-table v-loading="loading" :data="recordList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="自动ID" align="center" prop="recordId" />
-      <el-table-column label="分析ID" align="center" prop="analyId" />
-      <el-table-column label="分析结果" align="center" prop="analyResult" />
-      <el-table-column label="是否告警" align="center" prop="alarmWitch">
-        <template #default="scope">
-          <dict-tag :options="sys_yes_no" :value="scope.row.alarmWitch"/>
-        </template>
-      </el-table-column>
-      <el-table-column label="创建人" align="center" prop="createBy" />
-      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+      <!--      <el-table-column type="selection" width="55" align="center"/>-->
+      <!--      <el-table-column label="自动ID" align="center" prop="recordId"/>-->
+      <!--      <el-table-column label="分析ID" align="center" prop="analyId"/>-->
+      <!--      <el-table-column label="创建人" align="center" prop="createBy"/>-->
+      <el-table-column label="分析时间" align="center" prop="createTime" width="180">
         <template #default="scope">
           <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{mi}:{s}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="更新人" align="center" prop="updateBy" />
-      <el-table-column label="更新时间" align="center" prop="updateTime" width="180">
-        <template #default="scope">
-          <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d} {h}:{mi}:{s}') }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="备注" align="center" prop="remark" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+      <el-table-column label="分析结果" align="center" prop="analyResult"/>
+      <el-table-column label="是否告警" align="center" prop="alarmWitch">
         <template #default="scope">
-          <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['biz:record:edit']">修改</el-button>
-          <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['biz:record:remove']">删除</el-button>
+          <dict-tag :options="sys_yes_no" :value="scope.row.alarmWitch"/>
         </template>
       </el-table-column>
+      <!--      <el-table-column label="更新人" align="center" prop="updateBy"/>-->
+      <!--      <el-table-column label="更新时间" align="center" prop="updateTime" width="180">-->
+      <!--        <template #default="scope">-->
+      <!--          <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d} {h}:{mi}:{s}') }}</span>-->
+      <!--        </template>-->
+      <!--      </el-table-column>-->
+      <!--      <el-table-column label="备注" align="center" prop="remark"/>-->
+      <!--      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">-->
+      <!--        <template #default="scope">-->
+      <!--          <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['biz:record:edit']">-->
+      <!--            修改-->
+      <!--          </el-button>-->
+      <!--          <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)"-->
+      <!--                     v-hasPermi="['biz:record:remove']">删除-->
+      <!--          </el-button>-->
+      <!--        </template>-->
+      <!--      </el-table-column>-->
     </el-table>
 
     <pagination
-      v-show="total>0"
-      :total="total"
-      v-model:page="queryParams.pageNum"
-      v-model:limit="queryParams.pageSize"
-      @pagination="getList"
+        v-show="total>0"
+        :total="total"
+        v-model:page="queryParams.pageNum"
+        v-model:limit="queryParams.pageSize"
+        @pagination="getList"
     />
 
     <!-- 添加或修改分析历史记录对话框 -->
     <el-dialog :title="title" v-model="open" width="500px" append-to-body>
       <el-form ref="recordRef" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="分析ID" prop="analyId">
-          <el-input v-model="form.analyId" placeholder="请输入分析ID" />
+          <el-input v-model="form.analyId" placeholder="请输入分析ID"/>
         </el-form-item>
         <el-form-item label="分析结果" prop="analyResult">
-          <el-input v-model="form.analyResult" placeholder="请输入分析结果" />
+          <el-input v-model="form.analyResult" placeholder="请输入分析结果"/>
         </el-form-item>
         <el-form-item label="是否告警" prop="alarmWitch">
           <el-select v-model="form.alarmWitch" placeholder="请选择是否告警">
             <el-option
-              v-for="dict in sys_yes_no"
-              :key="dict.value"
-              :label="dict.label"
-              :value="dict.value"
+                v-for="dict in sys_yes_no"
+                :key="dict.value"
+                :label="dict.label"
+                :value="dict.value"
             ></el-option>
           </el-select>
         </el-form-item>
@@ -177,10 +185,21 @@
 </template>
 
 <script setup name="Record">
-    import { listRecord, getRecord, delRecord, addRecord, updateRecord } from "@/api/ripa/record";
+const props = defineProps({
+  analyId: {
+    type: String,
+    required: true
+  }
+});
+watch(() => props.analyId, (newVal) => {
+  if (newVal) {
+    getList(); // 重新加载数据
+  }
+});
+import {addRecord, delRecord, getRecord, listRecord, updateRecord} from "@/api/ripa/record";
 
-    const { proxy } = getCurrentInstance();
-const { sys_yes_no } = proxy.useDict('sys_yes_no');
+const {proxy} = getCurrentInstance();
+const {sys_yes_no} = proxy.useDict('sys_yes_no');
 
 const recordList = ref([]);
 const open = ref(false);
@@ -206,15 +225,15 @@ const data = reactive({
     updateTime: null,
     remark: null
   },
-  rules: {
-  }
+  rules: {}
 });
 
-const { queryParams, form, rules } = toRefs(data);
+const {queryParams, form, rules} = toRefs(data);
 
 /** 查询分析历史记录列表 */
 function getList() {
   loading.value = true;
+  queryParams.value.analyId = props.analyId;
   listRecord(queryParams.value).then(response => {
     recordList.value = response.rows;
     total.value = response.total;
@@ -305,12 +324,13 @@ function submitForm() {
 /** 删除按钮操作 */
 function handleDelete(row) {
   const _recordIds = row.recordId || ids.value;
-  proxy.$modal.confirm('是否确认删除分析历史记录编号为"' + _recordIds + '"的数据项?').then(function() {
+  proxy.$modal.confirm('是否确认删除分析历史记录编号为"' + _recordIds + '"的数据项?').then(function () {
     return delRecord(_recordIds);
   }).then(() => {
     getList();
     proxy.$modal.msgSuccess("删除成功");
-  }).catch(() => {});
+  }).catch(() => {
+  });
 }
 
 /** 导出按钮操作 */