瀏覽代碼

健康度模块代码生成。

wukai 9 月之前
父節點
當前提交
349d2a2cfe

+ 44 - 0
src/api/hl/bd.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询业务模型明细列表
+export function listBd(query) {
+    return request({
+        url: '/hl/bd/list',
+        method: 'get',
+        params: query
+    })
+}
+
+// 查询业务模型明细详细
+export function getBd(bizDetailId) {
+    return request({
+        url: '/hl/bd/' + bizDetailId,
+        method: 'get'
+    })
+}
+
+// 新增业务模型明细
+export function addBd(data) {
+    return request({
+        url: '/hl/bd',
+        method: 'post',
+        data: data
+    })
+}
+
+// 修改业务模型明细
+export function updateBd(data) {
+    return request({
+        url: '/hl/bd',
+        method: 'put',
+        data: data
+    })
+}
+
+// 删除业务模型明细
+export function delBd(bizDetailId) {
+    return request({
+        url: '/hl/bd/' + bizDetailId,
+        method: 'delete'
+    })
+}

+ 44 - 0
src/api/hl/bdm.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询业务模型健康度指标列表
+export function listBdm(query) {
+    return request({
+        url: '/hl/bdm/list',
+        method: 'get',
+        params: query
+    })
+}
+
+// 查询业务模型健康度指标详细
+export function getBdm(bizMetricsId) {
+    return request({
+        url: '/hl/bdm/' + bizMetricsId,
+        method: 'get'
+    })
+}
+
+// 新增业务模型健康度指标
+export function addBdm(data) {
+    return request({
+        url: '/hl/bdm',
+        method: 'post',
+        data: data
+    })
+}
+
+// 修改业务模型健康度指标
+export function updateBdm(data) {
+    return request({
+        url: '/hl/bdm',
+        method: 'put',
+        data: data
+    })
+}
+
+// 删除业务模型健康度指标
+export function delBdm(bizMetricsId) {
+    return request({
+        url: '/hl/bdm/' + bizMetricsId,
+        method: 'delete'
+    })
+}

+ 44 - 0
src/api/hl/bm.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询业务模型列表
+export function listBm(query) {
+    return request({
+        url: '/hl/bm/list',
+        method: 'get',
+        params: query
+    })
+}
+
+// 查询业务模型详细
+export function getBm(modelId) {
+    return request({
+        url: '/hl/bm/' + modelId,
+        method: 'get'
+    })
+}
+
+// 新增业务模型
+export function addBm(data) {
+    return request({
+        url: '/hl/bm',
+        method: 'post',
+        data: data
+    })
+}
+
+// 修改业务模型
+export function updateBm(data) {
+    return request({
+        url: '/hl/bm',
+        method: 'put',
+        data: data
+    })
+}
+
+// 删除业务模型
+export function delBm(modelId) {
+    return request({
+        url: '/hl/bm/' + modelId,
+        method: 'delete'
+    })
+}

+ 44 - 0
src/api/hl/id.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询业务模型健康度评分明细列表
+export function listId(query) {
+    return request({
+        url: '/hl/id/list',
+        method: 'get',
+        params: query
+    })
+}
+
+// 查询业务模型健康度评分明细详细
+export function getId(inspectionDetailId) {
+    return request({
+        url: '/hl/id/' + inspectionDetailId,
+        method: 'get'
+    })
+}
+
+// 新增业务模型健康度评分明细
+export function addId(data) {
+    return request({
+        url: '/hl/id',
+        method: 'post',
+        data: data
+    })
+}
+
+// 修改业务模型健康度评分明细
+export function updateId(data) {
+    return request({
+        url: '/hl/id',
+        method: 'put',
+        data: data
+    })
+}
+
+// 删除业务模型健康度评分明细
+export function delId(inspectionDetailId) {
+    return request({
+        url: '/hl/id/' + inspectionDetailId,
+        method: 'delete'
+    })
+}

+ 44 - 0
src/api/hl/im.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询业务模型健康度指标明细列表
+export function listIm(query) {
+    return request({
+        url: '/hl/im/list',
+        method: 'get',
+        params: query
+    })
+}
+
+// 查询业务模型健康度指标明细详细
+export function getIm(autoId) {
+    return request({
+        url: '/hl/im/' + autoId,
+        method: 'get'
+    })
+}
+
+// 新增业务模型健康度指标明细
+export function addIm(data) {
+    return request({
+        url: '/hl/im',
+        method: 'post',
+        data: data
+    })
+}
+
+// 修改业务模型健康度指标明细
+export function updateIm(data) {
+    return request({
+        url: '/hl/im',
+        method: 'put',
+        data: data
+    })
+}
+
+// 删除业务模型健康度指标明细
+export function delIm(autoId) {
+    return request({
+        url: '/hl/im/' + autoId,
+        method: 'delete'
+    })
+}

+ 44 - 0
src/api/hl/inspection.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询业务模型健康度巡检列表
+export function listInspection(query) {
+    return request({
+        url: '/hl/inspection/list',
+        method: 'get',
+        params: query
+    })
+}
+
+// 查询业务模型健康度巡检详细
+export function getInspection(inspectionId) {
+    return request({
+        url: '/hl/inspection/' + inspectionId,
+        method: 'get'
+    })
+}
+
+// 新增业务模型健康度巡检
+export function addInspection(data) {
+    return request({
+        url: '/hl/inspection',
+        method: 'post',
+        data: data
+    })
+}
+
+// 修改业务模型健康度巡检
+export function updateInspection(data) {
+    return request({
+        url: '/hl/inspection',
+        method: 'put',
+        data: data
+    })
+}
+
+// 删除业务模型健康度巡检
+export function delInspection(inspectionId) {
+    return request({
+        url: '/hl/inspection/' + inspectionId,
+        method: 'delete'
+    })
+}

+ 299 - 0
src/views/hl/bd/index.vue

@@ -0,0 +1,299 @@
+<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="objId">
+        <el-input
+          v-model="queryParams.objId"
+          placeholder="请输入业务对象ID"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="健康度分值" prop="hlScore">
+        <el-input
+          v-model="queryParams.hlScore"
+          placeholder="请输入健康度分值"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </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="['hl:bd:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="Edit"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['hl:bd:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="Delete"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['hl:bd:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="Download"
+          @click="handleExport"
+          v-hasPermi="['hl:bd:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="bdList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="明细ID" align="center" prop="bizDetailId" />
+      <el-table-column label="业务对象ID" align="center" prop="objId" />
+      <el-table-column label="健康度分值" align="center" prop="hlScore" />
+      <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">
+        <template #default="scope">
+          <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['hl:bd:edit']">修改</el-button>
+          <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['hl:bd: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"
+    />
+
+    <!-- 添加或修改业务模型明细对话框 -->
+    <el-dialog :title="title" v-model="open" width="500px" append-to-body>
+      <el-form ref="bdRef" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="业务对象ID" prop="objId">
+          <el-input v-model="form.objId" placeholder="请输入业务对象ID" />
+        </el-form-item>
+        <el-form-item label="健康度分值" prop="hlScore">
+          <el-input v-model="form.hlScore" placeholder="请输入健康度分值" />
+        </el-form-item>
+        <el-form-item label="备注" prop="remark">
+          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+      </el-form>
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button type="primary" @click="submitForm">确 定</el-button>
+          <el-button @click="cancel">取 消</el-button>
+        </div>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+
+<script setup name="Bd">
+    import { listBd, getBd, delBd, addBd, updateBd } from "@/api/hl/bd";
+
+    const { proxy } = getCurrentInstance();
+
+const bdList = ref([]);
+const open = ref(false);
+const loading = ref(true);
+const showSearch = ref(true);
+const ids = ref([]);
+const single = ref(true);
+const multiple = ref(true);
+const total = ref(0);
+const title = ref("");
+
+const data = reactive({
+  form: {},
+  queryParams: {
+    pageNum: 1,
+    pageSize: 10,
+    objId: null,
+    hlScore: null,
+    createBy: null,
+    createTime: null,
+    updateBy: null,
+    updateTime: null,
+    remark: null
+  },
+  rules: {
+  }
+});
+
+const { queryParams, form, rules } = toRefs(data);
+
+/** 查询业务模型明细列表 */
+function getList() {
+  loading.value = true;
+  listBd(queryParams.value).then(response => {
+    bdList.value = response.rows;
+    total.value = response.total;
+    loading.value = false;
+  });
+}
+
+// 取消按钮
+function cancel() {
+  open.value = false;
+  reset();
+}
+
+// 表单重置
+function reset() {
+  form.value = {
+    bizDetailId: null,
+    objId: null,
+    hlScore: null,
+    createBy: null,
+    createTime: null,
+    updateBy: null,
+    updateTime: null,
+    remark: null
+  };
+  proxy.resetForm("bdRef");
+}
+
+/** 搜索按钮操作 */
+function handleQuery() {
+  queryParams.value.pageNum = 1;
+  getList();
+}
+
+/** 重置按钮操作 */
+function resetQuery() {
+  proxy.resetForm("queryRef");
+  handleQuery();
+}
+
+// 多选框选中数据
+function handleSelectionChange(selection) {
+  ids.value = selection.map(item => item.bizDetailId);
+  single.value = selection.length != 1;
+  multiple.value = !selection.length;
+}
+
+/** 新增按钮操作 */
+function handleAdd() {
+  reset();
+  open.value = true;
+  title.value = "添加业务模型明细";
+}
+
+/** 修改按钮操作 */
+function handleUpdate(row) {
+  reset();
+  const _bizDetailId = row.bizDetailId || ids.value
+  getBd(_bizDetailId).then(response => {
+    form.value = response.data;
+    open.value = true;
+    title.value = "修改业务模型明细";
+  });
+}
+
+/** 提交按钮 */
+function submitForm() {
+  proxy.$refs["bdRef"].validate(valid => {
+    if (valid) {
+      if (form.value.bizDetailId != null) {
+        updateBd(form.value).then(response => {
+          proxy.$modal.msgSuccess("修改成功");
+          open.value = false;
+          getList();
+        });
+      } else {
+        addBd(form.value).then(response => {
+          proxy.$modal.msgSuccess("新增成功");
+          open.value = false;
+          getList();
+        });
+      }
+    }
+  });
+}
+
+/** 删除按钮操作 */
+function handleDelete(row) {
+  const _bizDetailIds = row.bizDetailId || ids.value;
+  proxy.$modal.confirm('是否确认删除业务模型明细编号为"' + _bizDetailIds + '"的数据项?').then(function() {
+    return delBd(_bizDetailIds);
+  }).then(() => {
+    getList();
+    proxy.$modal.msgSuccess("删除成功");
+  }).catch(() => {});
+}
+
+/** 导出按钮操作 */
+function handleExport() {
+  proxy.download('hl/bd/export', {
+    ...queryParams.value
+  }, `bd_${new Date().getTime()}.xlsx`)
+}
+
+getList();
+</script>

+ 344 - 0
src/views/hl/bdm/index.vue

@@ -0,0 +1,344 @@
+<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="modelId">
+        <el-input
+          v-model="queryParams.modelId"
+          placeholder="请输入模型ID"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="明细ID" prop="detailId">
+        <el-input
+          v-model="queryParams.detailId"
+          placeholder="请输入明细ID"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="指标ID" prop="metricsId">
+        <el-input
+          v-model="queryParams.metricsId"
+          placeholder="请输入指标ID"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="当日评分规则" prop="dayScoreRule">
+        <el-input
+          v-model="queryParams.dayScoreRule"
+          placeholder="请输入当日评分规则"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="权重" prop="weight">
+        <el-input
+          v-model="queryParams.weight"
+          placeholder="请输入权重"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </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="['hl:bdm:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="Edit"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['hl:bdm:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="Delete"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['hl:bdm:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="Download"
+          @click="handleExport"
+          v-hasPermi="['hl:bdm:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="bdmList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="指标明细ID" align="center" prop="bizMetricsId" />
+      <el-table-column label="模型ID" align="center" prop="modelId" />
+      <el-table-column label="明细ID" align="center" prop="detailId" />
+      <el-table-column label="指标ID" align="center" prop="metricsId" />
+      <el-table-column label="评分规则" align="center" prop="scoreRule" />
+      <el-table-column label="当日评分规则" align="center" prop="dayScoreRule" />
+      <el-table-column label="权重" align="center" prop="weight" />
+      <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">
+        <template #default="scope">
+          <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['hl:bdm:edit']">修改</el-button>
+          <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['hl:bdm: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"
+    />
+
+    <!-- 添加或修改业务模型健康度指标对话框 -->
+    <el-dialog :title="title" v-model="open" width="500px" append-to-body>
+      <el-form ref="bdmRef" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="模型ID" prop="modelId">
+          <el-input v-model="form.modelId" placeholder="请输入模型ID" />
+        </el-form-item>
+        <el-form-item label="明细ID" prop="detailId">
+          <el-input v-model="form.detailId" placeholder="请输入明细ID" />
+        </el-form-item>
+        <el-form-item label="指标ID" prop="metricsId">
+          <el-input v-model="form.metricsId" placeholder="请输入指标ID" />
+        </el-form-item>
+        <el-form-item label="当日评分规则" prop="dayScoreRule">
+          <el-input v-model="form.dayScoreRule" placeholder="请输入当日评分规则" />
+        </el-form-item>
+        <el-form-item label="权重" prop="weight">
+          <el-input v-model="form.weight" placeholder="请输入权重" />
+        </el-form-item>
+        <el-form-item label="备注" prop="remark">
+          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+      </el-form>
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button type="primary" @click="submitForm">确 定</el-button>
+          <el-button @click="cancel">取 消</el-button>
+        </div>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+
+<script setup name="Bdm">
+    import { listBdm, getBdm, delBdm, addBdm, updateBdm } from "@/api/hl/bdm";
+
+    const { proxy } = getCurrentInstance();
+
+const bdmList = ref([]);
+const open = ref(false);
+const loading = ref(true);
+const showSearch = ref(true);
+const ids = ref([]);
+const single = ref(true);
+const multiple = ref(true);
+const total = ref(0);
+const title = ref("");
+
+const data = reactive({
+  form: {},
+  queryParams: {
+    pageNum: 1,
+    pageSize: 10,
+    modelId: null,
+    detailId: null,
+    metricsId: null,
+    scoreRule: null,
+    dayScoreRule: null,
+    weight: null,
+    createBy: null,
+    createTime: null,
+    updateBy: null,
+    updateTime: null,
+    remark: null
+  },
+  rules: {
+  }
+});
+
+const { queryParams, form, rules } = toRefs(data);
+
+/** 查询业务模型健康度指标列表 */
+function getList() {
+  loading.value = true;
+  listBdm(queryParams.value).then(response => {
+    bdmList.value = response.rows;
+    total.value = response.total;
+    loading.value = false;
+  });
+}
+
+// 取消按钮
+function cancel() {
+  open.value = false;
+  reset();
+}
+
+// 表单重置
+function reset() {
+  form.value = {
+    bizMetricsId: null,
+    modelId: null,
+    detailId: null,
+    metricsId: null,
+    scoreRule: null,
+    dayScoreRule: null,
+    weight: null,
+    createBy: null,
+    createTime: null,
+    updateBy: null,
+    updateTime: null,
+    remark: null
+  };
+  proxy.resetForm("bdmRef");
+}
+
+/** 搜索按钮操作 */
+function handleQuery() {
+  queryParams.value.pageNum = 1;
+  getList();
+}
+
+/** 重置按钮操作 */
+function resetQuery() {
+  proxy.resetForm("queryRef");
+  handleQuery();
+}
+
+// 多选框选中数据
+function handleSelectionChange(selection) {
+  ids.value = selection.map(item => item.bizMetricsId);
+  single.value = selection.length != 1;
+  multiple.value = !selection.length;
+}
+
+/** 新增按钮操作 */
+function handleAdd() {
+  reset();
+  open.value = true;
+  title.value = "添加业务模型健康度指标";
+}
+
+/** 修改按钮操作 */
+function handleUpdate(row) {
+  reset();
+  const _bizMetricsId = row.bizMetricsId || ids.value
+  getBdm(_bizMetricsId).then(response => {
+    form.value = response.data;
+    open.value = true;
+    title.value = "修改业务模型健康度指标";
+  });
+}
+
+/** 提交按钮 */
+function submitForm() {
+  proxy.$refs["bdmRef"].validate(valid => {
+    if (valid) {
+      if (form.value.bizMetricsId != null) {
+        updateBdm(form.value).then(response => {
+          proxy.$modal.msgSuccess("修改成功");
+          open.value = false;
+          getList();
+        });
+      } else {
+        addBdm(form.value).then(response => {
+          proxy.$modal.msgSuccess("新增成功");
+          open.value = false;
+          getList();
+        });
+      }
+    }
+  });
+}
+
+/** 删除按钮操作 */
+function handleDelete(row) {
+  const _bizMetricsIds = row.bizMetricsId || ids.value;
+  proxy.$modal.confirm('是否确认删除业务模型健康度指标编号为"' + _bizMetricsIds + '"的数据项?').then(function() {
+    return delBdm(_bizMetricsIds);
+  }).then(() => {
+    getList();
+    proxy.$modal.msgSuccess("删除成功");
+  }).catch(() => {});
+}
+
+/** 导出按钮操作 */
+function handleExport() {
+  proxy.download('hl/bdm/export', {
+    ...queryParams.value
+  }, `bdm_${new Date().getTime()}.xlsx`)
+}
+
+getList();
+</script>

+ 316 - 0
src/views/hl/bm/index.vue

@@ -0,0 +1,316 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="模型编码" prop="modelCode">
+        <el-input
+          v-model="queryParams.modelCode"
+          placeholder="请输入模型编码"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="模型名称" prop="modelName">
+        <el-input
+          v-model="queryParams.modelName"
+          placeholder="请输入模型名称"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="模型总分" prop="modelScore">
+        <el-input
+          v-model="queryParams.modelScore"
+          placeholder="请输入模型总分"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </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="['hl:bm:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="Edit"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['hl:bm:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="Delete"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['hl:bm:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="Download"
+          @click="handleExport"
+          v-hasPermi="['hl:bm:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="bmList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="模型ID" align="center" prop="modelId" />
+      <el-table-column label="模型编码" align="center" prop="modelCode" />
+      <el-table-column label="模型名称" align="center" prop="modelName" />
+      <el-table-column label="模型总分" align="center" prop="modelScore" />
+      <el-table-column label="业务类型" align="center" prop="modelType" />
+      <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">
+        <template #default="scope">
+          <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['hl:bm:edit']">修改</el-button>
+          <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['hl:bm: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"
+    />
+
+    <!-- 添加或修改业务模型对话框 -->
+    <el-dialog :title="title" v-model="open" width="500px" append-to-body>
+      <el-form ref="bmRef" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="模型编码" prop="modelCode">
+          <el-input v-model="form.modelCode" placeholder="请输入模型编码" />
+        </el-form-item>
+        <el-form-item label="模型名称" prop="modelName">
+          <el-input v-model="form.modelName" placeholder="请输入模型名称" />
+        </el-form-item>
+        <el-form-item label="模型总分" prop="modelScore">
+          <el-input v-model="form.modelScore" placeholder="请输入模型总分" />
+        </el-form-item>
+        <el-form-item label="备注" prop="remark">
+          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+      </el-form>
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button type="primary" @click="submitForm">确 定</el-button>
+          <el-button @click="cancel">取 消</el-button>
+        </div>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+
+<script setup name="Bm">
+    import { listBm, getBm, delBm, addBm, updateBm } from "@/api/hl/bm";
+
+    const { proxy } = getCurrentInstance();
+
+const bmList = ref([]);
+const open = ref(false);
+const loading = ref(true);
+const showSearch = ref(true);
+const ids = ref([]);
+const single = ref(true);
+const multiple = ref(true);
+const total = ref(0);
+const title = ref("");
+
+const data = reactive({
+  form: {},
+  queryParams: {
+    pageNum: 1,
+    pageSize: 10,
+    modelCode: null,
+    modelName: null,
+    modelScore: null,
+    modelType: null,
+    createBy: null,
+    createTime: null,
+    updateBy: null,
+    updateTime: null,
+    remark: null
+  },
+  rules: {
+  }
+});
+
+const { queryParams, form, rules } = toRefs(data);
+
+/** 查询业务模型列表 */
+function getList() {
+  loading.value = true;
+  listBm(queryParams.value).then(response => {
+    bmList.value = response.rows;
+    total.value = response.total;
+    loading.value = false;
+  });
+}
+
+// 取消按钮
+function cancel() {
+  open.value = false;
+  reset();
+}
+
+// 表单重置
+function reset() {
+  form.value = {
+    modelId: null,
+    modelCode: null,
+    modelName: null,
+    modelScore: null,
+    modelType: null,
+    createBy: null,
+    createTime: null,
+    updateBy: null,
+    updateTime: null,
+    remark: null
+  };
+  proxy.resetForm("bmRef");
+}
+
+/** 搜索按钮操作 */
+function handleQuery() {
+  queryParams.value.pageNum = 1;
+  getList();
+}
+
+/** 重置按钮操作 */
+function resetQuery() {
+  proxy.resetForm("queryRef");
+  handleQuery();
+}
+
+// 多选框选中数据
+function handleSelectionChange(selection) {
+  ids.value = selection.map(item => item.modelId);
+  single.value = selection.length != 1;
+  multiple.value = !selection.length;
+}
+
+/** 新增按钮操作 */
+function handleAdd() {
+  reset();
+  open.value = true;
+  title.value = "添加业务模型";
+}
+
+/** 修改按钮操作 */
+function handleUpdate(row) {
+  reset();
+  const _modelId = row.modelId || ids.value
+  getBm(_modelId).then(response => {
+    form.value = response.data;
+    open.value = true;
+    title.value = "修改业务模型";
+  });
+}
+
+/** 提交按钮 */
+function submitForm() {
+  proxy.$refs["bmRef"].validate(valid => {
+    if (valid) {
+      if (form.value.modelId != null) {
+        updateBm(form.value).then(response => {
+          proxy.$modal.msgSuccess("修改成功");
+          open.value = false;
+          getList();
+        });
+      } else {
+        addBm(form.value).then(response => {
+          proxy.$modal.msgSuccess("新增成功");
+          open.value = false;
+          getList();
+        });
+      }
+    }
+  });
+}
+
+/** 删除按钮操作 */
+function handleDelete(row) {
+  const _modelIds = row.modelId || ids.value;
+  proxy.$modal.confirm('是否确认删除业务模型编号为"' + _modelIds + '"的数据项?').then(function() {
+    return delBm(_modelIds);
+  }).then(() => {
+    getList();
+    proxy.$modal.msgSuccess("删除成功");
+  }).catch(() => {});
+}
+
+/** 导出按钮操作 */
+function handleExport() {
+  proxy.download('hl/bm/export', {
+    ...queryParams.value
+  }, `bm_${new Date().getTime()}.xlsx`)
+}
+
+getList();
+</script>

+ 313 - 0
src/views/hl/id/index.vue

@@ -0,0 +1,313 @@
+<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="inspectionId">
+        <el-input
+          v-model="queryParams.inspectionId"
+          placeholder="请输入巡检ID"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="明细ID" prop="bizDetailId">
+        <el-input
+          v-model="queryParams.bizDetailId"
+          placeholder="请输入明细ID"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="业务对象分值" prop="objScore">
+        <el-input
+          v-model="queryParams.objScore"
+          placeholder="请输入业务对象分值"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </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="['hl:id:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="Edit"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['hl:id:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="Delete"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['hl:id:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="Download"
+          @click="handleExport"
+          v-hasPermi="['hl:id:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="idList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="评分明细ID" align="center" prop="inspectionDetailId" />
+      <el-table-column label="巡检ID" align="center" prop="inspectionId" />
+      <el-table-column label="明细ID" align="center" prop="bizDetailId" />
+      <el-table-column label="业务对象分值" align="center" prop="objScore" />
+      <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">
+        <template #default="scope">
+          <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['hl:id:edit']">修改</el-button>
+          <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['hl:id: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"
+    />
+
+    <!-- 添加或修改业务模型健康度评分明细对话框 -->
+    <el-dialog :title="title" v-model="open" width="500px" append-to-body>
+      <el-form ref="idRef" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="巡检ID" prop="inspectionId">
+          <el-input v-model="form.inspectionId" placeholder="请输入巡检ID" />
+        </el-form-item>
+        <el-form-item label="明细ID" prop="bizDetailId">
+          <el-input v-model="form.bizDetailId" placeholder="请输入明细ID" />
+        </el-form-item>
+        <el-form-item label="业务对象分值" prop="objScore">
+          <el-input v-model="form.objScore" placeholder="请输入业务对象分值" />
+        </el-form-item>
+        <el-form-item label="备注" prop="remark">
+          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+      </el-form>
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button type="primary" @click="submitForm">确 定</el-button>
+          <el-button @click="cancel">取 消</el-button>
+        </div>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+
+<script setup name="Id">
+    import { listId, getId, delId, addId, updateId } from "@/api/hl/id";
+
+    const { proxy } = getCurrentInstance();
+
+const idList = ref([]);
+const open = ref(false);
+const loading = ref(true);
+const showSearch = ref(true);
+const ids = ref([]);
+const single = ref(true);
+const multiple = ref(true);
+const total = ref(0);
+const title = ref("");
+
+const data = reactive({
+  form: {},
+  queryParams: {
+    pageNum: 1,
+    pageSize: 10,
+    inspectionId: null,
+    bizDetailId: null,
+    objScore: null,
+    createBy: null,
+    createTime: null,
+    updateBy: null,
+    updateTime: null,
+    remark: null
+  },
+  rules: {
+  }
+});
+
+const { queryParams, form, rules } = toRefs(data);
+
+/** 查询业务模型健康度评分明细列表 */
+function getList() {
+  loading.value = true;
+  listId(queryParams.value).then(response => {
+    idList.value = response.rows;
+    total.value = response.total;
+    loading.value = false;
+  });
+}
+
+// 取消按钮
+function cancel() {
+  open.value = false;
+  reset();
+}
+
+// 表单重置
+function reset() {
+  form.value = {
+    inspectionDetailId: null,
+    inspectionId: null,
+    bizDetailId: null,
+    objScore: null,
+    createBy: null,
+    createTime: null,
+    updateBy: null,
+    updateTime: null,
+    remark: null
+  };
+  proxy.resetForm("idRef");
+}
+
+/** 搜索按钮操作 */
+function handleQuery() {
+  queryParams.value.pageNum = 1;
+  getList();
+}
+
+/** 重置按钮操作 */
+function resetQuery() {
+  proxy.resetForm("queryRef");
+  handleQuery();
+}
+
+// 多选框选中数据
+function handleSelectionChange(selection) {
+  ids.value = selection.map(item => item.inspectionDetailId);
+  single.value = selection.length != 1;
+  multiple.value = !selection.length;
+}
+
+/** 新增按钮操作 */
+function handleAdd() {
+  reset();
+  open.value = true;
+  title.value = "添加业务模型健康度评分明细";
+}
+
+/** 修改按钮操作 */
+function handleUpdate(row) {
+  reset();
+  const _inspectionDetailId = row.inspectionDetailId || ids.value
+  getId(_inspectionDetailId).then(response => {
+    form.value = response.data;
+    open.value = true;
+    title.value = "修改业务模型健康度评分明细";
+  });
+}
+
+/** 提交按钮 */
+function submitForm() {
+  proxy.$refs["idRef"].validate(valid => {
+    if (valid) {
+      if (form.value.inspectionDetailId != null) {
+        updateId(form.value).then(response => {
+          proxy.$modal.msgSuccess("修改成功");
+          open.value = false;
+          getList();
+        });
+      } else {
+        addId(form.value).then(response => {
+          proxy.$modal.msgSuccess("新增成功");
+          open.value = false;
+          getList();
+        });
+      }
+    }
+  });
+}
+
+/** 删除按钮操作 */
+function handleDelete(row) {
+  const _inspectionDetailIds = row.inspectionDetailId || ids.value;
+  proxy.$modal.confirm('是否确认删除业务模型健康度评分明细编号为"' + _inspectionDetailIds + '"的数据项?').then(function() {
+    return delId(_inspectionDetailIds);
+  }).then(() => {
+    getList();
+    proxy.$modal.msgSuccess("删除成功");
+  }).catch(() => {});
+}
+
+/** 导出按钮操作 */
+function handleExport() {
+  proxy.download('hl/id/export', {
+    ...queryParams.value
+  }, `id_${new Date().getTime()}.xlsx`)
+}
+
+getList();
+</script>

+ 341 - 0
src/views/hl/im/index.vue

@@ -0,0 +1,341 @@
+<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="inspectionDetailId">
+        <el-input
+          v-model="queryParams.inspectionDetailId"
+          placeholder="请输入评分明细ID"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="指标明细ID" prop="bizMetricsId">
+        <el-input
+          v-model="queryParams.bizMetricsId"
+          placeholder="请输入指标明细ID"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="指标值" prop="metricsValue">
+        <el-input
+          v-model="queryParams.metricsValue"
+          placeholder="请输入指标值"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="是否告警" prop="isAlarm">
+        <el-input
+          v-model="queryParams.isAlarm"
+          placeholder="请输入是否告警"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="指标得分" prop="metricsScore">
+        <el-input
+          v-model="queryParams.metricsScore"
+          placeholder="请输入指标得分"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </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="['hl:im:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="Edit"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['hl:im:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="Delete"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['hl:im:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="Download"
+          @click="handleExport"
+          v-hasPermi="['hl:im:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="imList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="自动ID" align="center" prop="autoId" />
+      <el-table-column label="评分明细ID" align="center" prop="inspectionDetailId" />
+      <el-table-column label="指标明细ID" align="center" prop="bizMetricsId" />
+      <el-table-column label="指标值" align="center" prop="metricsValue" />
+      <el-table-column label="是否告警" align="center" prop="isAlarm" />
+      <el-table-column label="指标得分" align="center" prop="metricsScore" />
+      <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">
+        <template #default="scope">
+          <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['hl:im:edit']">修改</el-button>
+          <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['hl:im: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"
+    />
+
+    <!-- 添加或修改业务模型健康度指标明细对话框 -->
+    <el-dialog :title="title" v-model="open" width="500px" append-to-body>
+      <el-form ref="imRef" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="评分明细ID" prop="inspectionDetailId">
+          <el-input v-model="form.inspectionDetailId" placeholder="请输入评分明细ID" />
+        </el-form-item>
+        <el-form-item label="指标明细ID" prop="bizMetricsId">
+          <el-input v-model="form.bizMetricsId" placeholder="请输入指标明细ID" />
+        </el-form-item>
+        <el-form-item label="指标值" prop="metricsValue">
+          <el-input v-model="form.metricsValue" placeholder="请输入指标值" />
+        </el-form-item>
+        <el-form-item label="是否告警" prop="isAlarm">
+          <el-input v-model="form.isAlarm" placeholder="请输入是否告警" />
+        </el-form-item>
+        <el-form-item label="指标得分" prop="metricsScore">
+          <el-input v-model="form.metricsScore" placeholder="请输入指标得分" />
+        </el-form-item>
+        <el-form-item label="备注" prop="remark">
+          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+      </el-form>
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button type="primary" @click="submitForm">确 定</el-button>
+          <el-button @click="cancel">取 消</el-button>
+        </div>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+
+<script setup name="Im">
+    import { listIm, getIm, delIm, addIm, updateIm } from "@/api/hl/im";
+
+    const { proxy } = getCurrentInstance();
+
+const imList = ref([]);
+const open = ref(false);
+const loading = ref(true);
+const showSearch = ref(true);
+const ids = ref([]);
+const single = ref(true);
+const multiple = ref(true);
+const total = ref(0);
+const title = ref("");
+
+const data = reactive({
+  form: {},
+  queryParams: {
+    pageNum: 1,
+    pageSize: 10,
+    inspectionDetailId: null,
+    bizMetricsId: null,
+    metricsValue: null,
+    isAlarm: null,
+    metricsScore: null,
+    createBy: null,
+    createTime: null,
+    updateBy: null,
+    updateTime: null,
+    remark: null
+  },
+  rules: {
+  }
+});
+
+const { queryParams, form, rules } = toRefs(data);
+
+/** 查询业务模型健康度指标明细列表 */
+function getList() {
+  loading.value = true;
+  listIm(queryParams.value).then(response => {
+    imList.value = response.rows;
+    total.value = response.total;
+    loading.value = false;
+  });
+}
+
+// 取消按钮
+function cancel() {
+  open.value = false;
+  reset();
+}
+
+// 表单重置
+function reset() {
+  form.value = {
+    autoId: null,
+    inspectionDetailId: null,
+    bizMetricsId: null,
+    metricsValue: null,
+    isAlarm: null,
+    metricsScore: null,
+    createBy: null,
+    createTime: null,
+    updateBy: null,
+    updateTime: null,
+    remark: null
+  };
+  proxy.resetForm("imRef");
+}
+
+/** 搜索按钮操作 */
+function handleQuery() {
+  queryParams.value.pageNum = 1;
+  getList();
+}
+
+/** 重置按钮操作 */
+function resetQuery() {
+  proxy.resetForm("queryRef");
+  handleQuery();
+}
+
+// 多选框选中数据
+function handleSelectionChange(selection) {
+  ids.value = selection.map(item => item.autoId);
+  single.value = selection.length != 1;
+  multiple.value = !selection.length;
+}
+
+/** 新增按钮操作 */
+function handleAdd() {
+  reset();
+  open.value = true;
+  title.value = "添加业务模型健康度指标明细";
+}
+
+/** 修改按钮操作 */
+function handleUpdate(row) {
+  reset();
+  const _autoId = row.autoId || ids.value
+  getIm(_autoId).then(response => {
+    form.value = response.data;
+    open.value = true;
+    title.value = "修改业务模型健康度指标明细";
+  });
+}
+
+/** 提交按钮 */
+function submitForm() {
+  proxy.$refs["imRef"].validate(valid => {
+    if (valid) {
+      if (form.value.autoId != null) {
+        updateIm(form.value).then(response => {
+          proxy.$modal.msgSuccess("修改成功");
+          open.value = false;
+          getList();
+        });
+      } else {
+        addIm(form.value).then(response => {
+          proxy.$modal.msgSuccess("新增成功");
+          open.value = false;
+          getList();
+        });
+      }
+    }
+  });
+}
+
+/** 删除按钮操作 */
+function handleDelete(row) {
+  const _autoIds = row.autoId || ids.value;
+  proxy.$modal.confirm('是否确认删除业务模型健康度指标明细编号为"' + _autoIds + '"的数据项?').then(function() {
+    return delIm(_autoIds);
+  }).then(() => {
+    getList();
+    proxy.$modal.msgSuccess("删除成功");
+  }).catch(() => {});
+}
+
+/** 导出按钮操作 */
+function handleExport() {
+  proxy.download('hl/im/export', {
+    ...queryParams.value
+  }, `im_${new Date().getTime()}.xlsx`)
+}
+
+getList();
+</script>

+ 322 - 0
src/views/hl/inspection/index.vue

@@ -0,0 +1,322 @@
+<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="modelId">
+        <el-input
+          v-model="queryParams.modelId"
+          placeholder="请输入模型ID"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="评分时间" prop="inspectionTime">
+        <el-date-picker clearable
+          v-model="queryParams.inspectionTime"
+          type="date"
+          value-format="YYYY-MM-DD"
+          placeholder="请选择评分时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="健康度评分" prop="modelScore">
+        <el-input
+          v-model="queryParams.modelScore"
+          placeholder="请输入健康度评分"
+          clearable
+          @keyup.enter="handleQuery"
+        />
+      </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="['hl:inspection:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="Edit"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['hl:inspection:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="Delete"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['hl:inspection:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="Download"
+          @click="handleExport"
+          v-hasPermi="['hl:inspection:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="inspectionList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="巡检ID" align="center" prop="inspectionId" />
+      <el-table-column label="模型ID" align="center" prop="modelId" />
+      <el-table-column label="评分时间" align="center" prop="inspectionTime" width="180">
+        <template #default="scope">
+          <span>{{ parseTime(scope.row.inspectionTime, '{y}-{m}-{d} {h}:{mi}:{s}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="健康度评分" align="center" prop="modelScore" />
+      <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">
+        <template #default="scope">
+          <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['hl:inspection:edit']">修改</el-button>
+          <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['hl:inspection: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"
+    />
+
+    <!-- 添加或修改业务模型健康度巡检对话框 -->
+    <el-dialog :title="title" v-model="open" width="500px" append-to-body>
+      <el-form ref="inspectionRef" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="模型ID" prop="modelId">
+          <el-input v-model="form.modelId" placeholder="请输入模型ID" />
+        </el-form-item>
+        <el-form-item label="评分时间" prop="inspectionTime">
+          <el-date-picker clearable
+            v-model="form.inspectionTime"
+            type="date"
+            value-format="YYYY-MM-DD"
+            placeholder="请选择评分时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="健康度评分" prop="modelScore">
+          <el-input v-model="form.modelScore" placeholder="请输入健康度评分" />
+        </el-form-item>
+        <el-form-item label="备注" prop="remark">
+          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+      </el-form>
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button type="primary" @click="submitForm">确 定</el-button>
+          <el-button @click="cancel">取 消</el-button>
+        </div>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+
+<script setup name="Inspection">
+    import { listInspection, getInspection, delInspection, addInspection, updateInspection } from "@/api/hl/inspection";
+
+    const { proxy } = getCurrentInstance();
+
+const inspectionList = ref([]);
+const open = ref(false);
+const loading = ref(true);
+const showSearch = ref(true);
+const ids = ref([]);
+const single = ref(true);
+const multiple = ref(true);
+const total = ref(0);
+const title = ref("");
+
+const data = reactive({
+  form: {},
+  queryParams: {
+    pageNum: 1,
+    pageSize: 10,
+    modelId: null,
+    inspectionTime: null,
+    modelScore: null,
+    createBy: null,
+    createTime: null,
+    updateBy: null,
+    updateTime: null,
+    remark: null
+  },
+  rules: {
+  }
+});
+
+const { queryParams, form, rules } = toRefs(data);
+
+/** 查询业务模型健康度巡检列表 */
+function getList() {
+  loading.value = true;
+  listInspection(queryParams.value).then(response => {
+    inspectionList.value = response.rows;
+    total.value = response.total;
+    loading.value = false;
+  });
+}
+
+// 取消按钮
+function cancel() {
+  open.value = false;
+  reset();
+}
+
+// 表单重置
+function reset() {
+  form.value = {
+    inspectionId: null,
+    modelId: null,
+    inspectionTime: null,
+    modelScore: null,
+    createBy: null,
+    createTime: null,
+    updateBy: null,
+    updateTime: null,
+    remark: null
+  };
+  proxy.resetForm("inspectionRef");
+}
+
+/** 搜索按钮操作 */
+function handleQuery() {
+  queryParams.value.pageNum = 1;
+  getList();
+}
+
+/** 重置按钮操作 */
+function resetQuery() {
+  proxy.resetForm("queryRef");
+  handleQuery();
+}
+
+// 多选框选中数据
+function handleSelectionChange(selection) {
+  ids.value = selection.map(item => item.inspectionId);
+  single.value = selection.length != 1;
+  multiple.value = !selection.length;
+}
+
+/** 新增按钮操作 */
+function handleAdd() {
+  reset();
+  open.value = true;
+  title.value = "添加业务模型健康度巡检";
+}
+
+/** 修改按钮操作 */
+function handleUpdate(row) {
+  reset();
+  const _inspectionId = row.inspectionId || ids.value
+  getInspection(_inspectionId).then(response => {
+    form.value = response.data;
+    open.value = true;
+    title.value = "修改业务模型健康度巡检";
+  });
+}
+
+/** 提交按钮 */
+function submitForm() {
+  proxy.$refs["inspectionRef"].validate(valid => {
+    if (valid) {
+      if (form.value.inspectionId != null) {
+        updateInspection(form.value).then(response => {
+          proxy.$modal.msgSuccess("修改成功");
+          open.value = false;
+          getList();
+        });
+      } else {
+        addInspection(form.value).then(response => {
+          proxy.$modal.msgSuccess("新增成功");
+          open.value = false;
+          getList();
+        });
+      }
+    }
+  });
+}
+
+/** 删除按钮操作 */
+function handleDelete(row) {
+  const _inspectionIds = row.inspectionId || ids.value;
+  proxy.$modal.confirm('是否确认删除业务模型健康度巡检编号为"' + _inspectionIds + '"的数据项?').then(function() {
+    return delInspection(_inspectionIds);
+  }).then(() => {
+    getList();
+    proxy.$modal.msgSuccess("删除成功");
+  }).catch(() => {});
+}
+
+/** 导出按钮操作 */
+function handleExport() {
+  proxy.download('hl/inspection/export', {
+    ...queryParams.value
+  }, `inspection_${new Date().getTime()}.xlsx`)
+}
+
+getList();
+</script>