Jelajahi Sumber

feat: 1016调整

拎壶冲 7 bulan lalu
induk
melakukan
847a500e20

+ 3 - 2
src/api/risk/r5.js

@@ -57,9 +57,10 @@ export function listHostTrend(id){
     })
 }
 
-export function listMs(){
+export function listMs(query){
     return request({
-        url: '/risk/model/ms/list/',
+        url: '/risk/model/ms/list',
         method: 'get',
+        params:query
     })
 }

+ 5 - 1
src/views/index/widget/healthTendency.vue

@@ -8,7 +8,7 @@
         <el-select v-model="dateType" size="small" style="width: 60px" @change="changeDate">
           <el-option v-for="item in monthDay"  :label="item" :value="item" />
         </el-select>
-        <el-date-picker v-model="dateValue"  size="small" style="width: 120px;margin-left:10px;" @change="changeDate"/>
+        <el-date-picker v-model="dateValue" :type="pickerType"  size="small" style="width: 120px;margin-left:10px;" @change="changeDate"/>
       </div>
     </div>
     <div class="column-content chart-content">
@@ -28,6 +28,7 @@ const monthDay = ["按年","按月","按日"]
 const dateType = ref("按日")
 const dateValue = ref(yesterday)
 const chartSort = ref(null)
+const pickerType = ref("data")
 onMounted(()=>{
   changeDate()
 })
@@ -35,13 +36,16 @@ async function changeDate(){
   if(dateType.value=="按月"){
     const d=parseTime(dateValue.value,"{y}-{m}")
     const res = await hlMonthDay("month",d)
+    pickerType.value = "month"
     initChart(res.data)
   }else if(dateType.value=="按日"){
     const d=parseTime(dateValue.value,"{y}-{m}-{d}")
     const res = await hlMonthDay("day",d)
+    pickerType.value = "date"
     initChart(res.data)
   }else{
     const d=parseTime(dateValue.value,"{y}")
+    pickerType.value = "year"
     const res = await hlMonthDay("year",d)
     initChart(res.data)
   }

+ 41 - 22
src/views/risk/r6/components/indexMapping.vue

@@ -1,27 +1,28 @@
 <template>
-<!--  <el-button type="primary" size="small" @click="addIndex">新增指标</el-button>-->
-  <el-table :data="configData" border stripe style="width: 100%;" size="small">
+  <el-button type="primary" size="small" @click="addIndex" style="margin-top:-30px;">新增指标</el-button>
+  <el-table :data="configData" border stripe style="width: 100%;margin-top:5px;" size="small">
     <el-table-column label="显示名称">
       <template #default="scope">
         {{ scope.row.viewName }}
       </template>
     </el-table-column>
-    <el-table-column label="指标映射">
-      <template #default="scope">
-        <el-select v-model="scope.row.metricsName" size="small" style="width: 100%" @change="changeMetrics(scope.row)">
-          <el-option v-for="item in mappingData" :key="item.id" :label="item.metricsName" :value="item.metricsName"/>
-        </el-select>
+    <el-table-column label="指标映射" prop="metricsName">
+      <!--      <template #default="scope">-->
+      <!--        <el-select v-model="scope.row.metricsName" size="small" style="width: 100%" @change="changeMetrics(scope.row)">-->
+      <!--          <el-option v-for="item in mappingData" :key="item.id" :label="item.metricsName" :value="item.metricsName"/>-->
+      <!--        </el-select>-->
+      <!--      </template>-->
+    </el-table-column>
+    <el-table-column label="操作" width="120" align="center">
+      <template #default="{row}">
+        <el-button type="primary" link @click="handleEdit(row)">编辑</el-button>
+        <el-popconfirm title="确认要删除该条信息吗?" @confirm="handleDelete(row)" width="200">
+          <template #reference>
+            <el-button type="danger" link>删除</el-button>
+          </template>
+        </el-popconfirm>
       </template>
     </el-table-column>
-<!--    <el-table-column label="操作" width="80" align="center">-->
-<!--      <template #default="{row}">-->
-<!--        <el-popconfirm title="确认要删除该条信息吗?" @confirm="handleDelete(row)" width="200">-->
-<!--          <template #reference>-->
-<!--            <el-button type="danger" link>删除</el-button>-->
-<!--          </template>-->
-<!--        </el-popconfirm>-->
-<!--      </template>-->
-<!--    </el-table-column>-->
   </el-table>
   <el-dialog v-model="visible" title="新增指标" width="400" append-to-body>
     <el-form ref="objRef" :model="form" :rules="rules" label-width="100px" label-suffix=":" size="small">
@@ -29,7 +30,7 @@
         <el-input v-model="form.viewName" placeholder="请输入显示名称"/>
       </el-form-item>
       <el-form-item label="指标映射" prop="metricsName">
-        <el-select v-model="form.metricsName" style="width: 100%">
+        <el-select v-model="form.metricsName" style="width: 100%" filterable>
           <el-option v-for="item in mappingData" :key="item.id" :label="item.metricsName" :value="item.metricsName"/>
         </el-select>
       </el-form-item>
@@ -42,12 +43,18 @@
 </template>
 <script setup lang="ts">
 import {listMs} from "@/api/risk/r5"
-import {delConfig, updateConfig,addConfig} from "@/api/risk/config"
+import {addConfig, delConfig, updateConfig} from "@/api/risk/config"
+import {ref} from "vue";
 
 const {proxy} = getCurrentInstance()
 const props = defineProps(['configData'])
 const mappingData = ref([])
 const visible = ref(false)
+const hcIds = ref(null)
+const query = ref({
+  pageNum: 1,
+  pageSize: 2
+})
 
 const defaultForm = {
   viewName: '',
@@ -74,17 +81,25 @@ onMounted(async () => {
 
 function addIndex() {
   visible.value = true
+  hcIds.value = null;
   form.value = {...defaultForm}
   proxy.resetForm("objRef");
 }
 
 async function changeMetrics(row) {
-  const data = {...row}
+  const data = {...row, configType: "network", hcId: hcIds.value}
   data.metricsId = mappingData.value.find(item => item.metricsName === row.metricsName).metricsId
   const res = await updateConfig(data)
   handleSuccess(res)
 }
 
+function handleEdit(row) {
+  const {viewName, metricsId, metricsName, hcId} = row
+  hcIds.value = hcId;
+  form.value = {viewName, metricsId, metricsName}
+  visible.value = true
+}
+
 async function handleDelete(row) {
   const res = await delConfig(row.hcId)
   handleSuccess(res)
@@ -92,13 +107,17 @@ async function handleDelete(row) {
 
 function handleSuccess(res) {
   proxy.$message.success(res.msg)
+  visible.value = false
   proxy.$emit('refresh')
 }
 
 function handleSubmit() {
   proxy.$refs.objRef.validate(async valid => {
     if (valid) {
-      const data = {...form.value}
+      if (hcIds.value != null) {
+        return changeMetrics(form.value)
+      }
+      const data = {...form.value, configType: "network"}
       data.metricsId = mappingData.value.find(item => item.metricsName === form.value.metricsName).metricsId
       const res = await addConfig(data)
       handleSuccess(res)
@@ -107,9 +126,9 @@ function handleSubmit() {
 }
 </script>
 <style lang="scss" scoped>
-.btn-row{
+.btn-row {
   display: flex;
   justify-content: center;
-  margin-top:30px;
+  margin-top: 30px;
 }
 </style>

+ 2 - 2
src/views/risk/r6/index.vue

@@ -21,7 +21,7 @@
     <el-empty description="暂无数据" v-else/>
   </div>
 
-  <el-dialog v-model="visible" title="指标映射" width="500">
+  <el-dialog v-model="visible" title="指标映射" width="600">
     <index-mapping :configData="configData" @refresh="initConfig"/>
   </el-dialog>
 </template>
@@ -77,7 +77,7 @@ function changeConfig(item) {
 
 async function getNetwork(modelId, metricsId) {
   const res = await listNetwork(modelId, metricsId)
-  initChart(res.data)
+  res.data.length && initChart(res.data)
 }
 
 function initChart(res){