spring
8 天以前 61955574b77ffa740802bb8b45836ab91cb5be55
fix: 完成设备远程监控,车辆信息采集审批页面编写,接口联调
已添加2个文件
已修改2个文件
683 ■■■■■ 文件已修改
src/api/environmentAccess/vehicleInfo.js 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/environmentAccess/vehicleInfoAudit/index.vue 499 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/ledger/Form.vue 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/ledger/index.vue 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/environmentAccess/vehicleInfo.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,48 @@
import request from "@/utils/request";
// æŸ¥è¯¢è½¦è¾†ä¿¡æ¯åˆ†é¡µåˆ—表
export function listVehicleInfo(query) {
  return request({
    // ä¸¤çº§è·¯å¾„:模块 + å…·ä½“功能名
    url: "/environmentAccess/vehicleInfoPage",
    method: "get",
    params: query,
  });
}
// æ–°å¢žè½¦è¾†ä¿¡æ¯
export function addVehicleInfo(data) {
  return request({
    url: "/environmentAccess/vehicleInfoAdd",
    method: "post",
    data,
  });
}
// ä¿®æ”¹è½¦è¾†ä¿¡æ¯
export function updateVehicleInfo(data) {
  return request({
    url: "/environmentAccess/vehicleInfoUpdate",
    method: "put",
    data,
  });
}
// åˆ é™¤è½¦è¾†ä¿¡æ¯ï¼ˆæ”¯æŒæ‰¹é‡ï¼‰
export function delVehicleInfo(ids) {
  return request({
    url: "/environmentAccess/vehicleInfoDelete",
    method: "delete",
    data: ids,
  });
}
// å®¡æ ¸è½¦è¾†ä¿¡æ¯
export function reviewVehicleInfo(data) {
  return request({
    // å®¡æ ¸å•独资源:vehicleInfoReview
    url: "/environmentAccess/vehicleInfoReview",
    method: "post",
    data,
  });
}
src/views/environmentAccess/vehicleInfoAudit/index.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,499 @@
<template>
  <div class="app-container">
    <div class="search_form">
      <div>
        <span class="search_title">车牌号码:</span>
        <el-input
          v-model="searchForm.plateNo"
          style="width: 240px"
          placeholder="请输入车牌号码"
          clearable
          :prefix-icon="Search"
          @change="handleQuery"
        />
        <el-button type="primary" @click="handleQuery" style="margin-left: 10px">
          æœç´¢
        </el-button>
      </div>
      <div>
        <el-button type="primary" @click="openForm('add')">新增</el-button>
        <el-button type="danger" plain @click="handleDelete">删除</el-button>
      </div>
    </div>
    <div class="table_list">
      <PIMTable
        rowKey="id"
        :column="tableColumn"
        :tableData="tableData"
        :page="page"
        :isSelection="true"
        :tableLoading="tableLoading"
        @selection-change="handleSelectionChange"
        @pagination="pagination"
      />
    </div>
    <!-- æ–°å¢ž/编辑车辆信息弹窗 -->
    <el-dialog
      v-model="dialogVisible"
      :title="operationType === 'add' ? '新增车辆信息' : '编辑车辆信息'"
      width="70%"
      @close="closeFormDialog"
    >
      <el-form
        ref="formRef"
        :model="form"
        :rules="rules"
        label-width="140px"
        label-position="top"
      >
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="车牌号码" prop="plateNo">
              <el-input v-model="form.plateNo" placeholder="请输入车牌号码" clearable />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="号牌颜色" prop="plateColor">
              <el-input v-model="form.plateColor" placeholder="请输入号牌颜色" clearable />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="车辆类型" prop="carType">
              <el-input v-model="form.carType" placeholder="请输入车辆类型" clearable />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="车辆识别代码(VIN)" prop="carVin">
              <el-input v-model="form.carVin" placeholder="请输入 VIN ç " clearable />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="车辆型号" prop="carModel">
              <el-input v-model="form.carModel" placeholder="请输入车辆型号" clearable />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="发动机型号" prop="engineModel">
              <el-input v-model="form.engineModel" placeholder="请输入发动机型号" clearable />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="发动机生产厂" prop="engineProductFactory">
              <el-input v-model="form.engineProductFactory" placeholder="请输入发动机生产厂" clearable />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="发动机编号" prop="engineNo">
              <el-input v-model="form.engineNo" placeholder="请输入发动机编号" clearable />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="排放标准" prop="emissionStandard">
              <el-input v-model="form.emissionStandard" placeholder="请输入排放标准" clearable />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="注册登记日期" prop="registeDate">
              <el-date-picker
                v-model="form.registeDate"
                type="date"
                style="width: 100%"
                value-format="YYYY-MM-DD"
                placeholder="请选择注册登记日期"
                clearable
              />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="30">
          <el-col :span="12">
            <el-form-item label="使用性质" prop="natureOfUse">
              <el-input v-model="form.natureOfUse" placeholder="请输入使用性质" clearable />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="燃料类型" prop="fuelType">
              <el-input v-model="form.fuelType" placeholder="请输入燃料类型" clearable />
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
      <template #footer>
        <div class="dialog-footer">
          <el-button type="primary" @click="submitForm">确认</el-button>
          <el-button @click="closeFormDialog">取消</el-button>
        </div>
      </template>
    </el-dialog>
    <!-- å®¡æ ¸å¼¹çª— -->
    <el-dialog
      v-model="auditDialogVisible"
      title="车辆信息审核"
      width="500px"
      @close="closeAuditDialog"
    >
      <el-form :model="auditForm" label-width="100px">
        <el-form-item label="审核结果" prop="status">
          <el-radio-group v-model="auditForm.status">
            <el-radio label="approved">通过</el-radio>
            <el-radio label="rejected">不通过</el-radio>
          </el-radio-group>
        </el-form-item>
        <el-form-item label="审核意见" prop="comment">
          <el-input
            v-model="auditForm.comment"
            type="textarea"
            :rows="3"
            placeholder="请输入审核意见(选填)"
          />
        </el-form-item>
      </el-form>
      <template #footer>
        <div class="dialog-footer">
          <el-button type="primary" @click="submitAudit">确认</el-button>
          <el-button @click="closeAuditDialog">取消</el-button>
        </div>
      </template>
    </el-dialog>
  </div>
</template>
<script setup>
import { ref, reactive } from "vue";
import { Search } from "@element-plus/icons-vue";
import { ElMessage, ElMessageBox } from "element-plus";
import PIMTable from "@/components/PIMTable/PIMTable.vue";
import {
  listVehicleInfo,
  addVehicleInfo,
  updateVehicleInfo,
  delVehicleInfo,
  reviewVehicleInfo,
} from "@/api/environmentAccess/vehicleInfo";
// æŸ¥è¯¢æ¡ä»¶
const searchForm = reactive({
  plateNo: "",
});
// è¡¨æ ¼åˆ—配置
const tableColumn = ref([
  {
    label: "车牌号码",
    prop: "plateNo",
    align: "center",
    width: 140,
  },
  {
    label: "号牌颜色",
    prop: "plateColor",
    align: "center",
    width: 100,
  },
  {
    label: "车辆类型",
    prop: "carType",
    align: "center",
    width: 120,
  },
  {
    label: "车辆识别代码(VIN)",
    prop: "carVin",
    align: "center",
    minWidth: 200,
    showOverflowTooltip: true,
  },
  {
    label: "车辆型号",
    prop: "carModel",
    align: "center",
    width: 140,
  },
  {
    label: "发动机型号",
    prop: "engineModel",
    align: "center",
    width: 140,
  },
  {
    label: "发动机生产厂",
    prop: "engineProductFactory",
    align: "center",
    width: 160,
  },
  {
    label: "发动机编号",
    prop: "engineNo",
    align: "center",
    width: 140,
  },
  {
    label: "排放标准",
    prop: "emissionStandard",
    align: "center",
    width: 120,
  },
  {
    label: "注册登记日期",
    prop: "registeDate",
    align: "center",
    width: 140,
  },
  {
    label: "使用性质",
    prop: "natureOfUse",
    align: "center",
    width: 120,
  },
  {
    label: "燃料类型",
    prop: "fuelType",
    align: "center",
    width: 120,
  },
  {
    label: "审核状态",
    prop: "reviewStatus",
    align: "center",
    dataType: "tag",
    width: 120,
    formatData: (value) => {
      if (value === "approved") return "已通过";
      if (value === "rejected") return "未通过";
      if (value === "pending") return "待审核";
      return "未提交";
    },
    formatType: (value) => {
      if (value === "approved") return "success";
      if (value === "rejected") return "danger";
      if (value === "pending") return "warning";
      return "";
    },
  },
  {
    dataType: "action",
    label: "操作",
    align: "center",
    fixed: "right",
    width: 220,
    operation: [
      {
        name: "编辑",
        type: "text",
        clickFun: (row) => openForm("edit", row),
      },
      {
        name: "审核",
        type: "text",
        clickFun: (row) => openAuditDialog(row),
      },
      {
        name: "删除",
        type: "text",
        clickFun: (row) => deleteRow(row),
      },
    ],
  },
]);
// è¡¨æ ¼æ•°æ®
const tableData = ref([]);
const tableLoading = ref(false);
const selectedRows = ref([]);
// åˆ†é¡µ
const page = reactive({
  current: 1,
  size: 10,
  total: 0,
});
// è¡¨å•相关
const dialogVisible = ref(false);
const operationType = ref("add");
const formRef = ref(null);
const form = reactive(createEmptyForm());
function createEmptyForm() {
  return {
    id: undefined,
    plateNo: "",
    plateColor: "",
    carType: "",
    carVin: "",
    carModel: "",
    engineModel: "",
    engineProductFactory: "",
    engineNo: "",
    emissionStandard: "",
    registeDate: "",
    natureOfUse: "",
    fuelType: "",
    reviewStatus: "pending",
  };
}
const rules = {
  plateNo: [{ required: true, message: "请输入车牌号码", trigger: "blur" }],
  carVin: [{ required: true, message: "请输入 VIN ç ", trigger: "blur" }],
};
// å®¡æ ¸ç›¸å…³
const auditDialogVisible = ref(false);
const currentAuditRow = ref(null);
const auditForm = reactive({
  status: "approved",
  comment: "",
});
// æŸ¥è¯¢
function handleQuery() {
  page.current = 1;
  loadTableData();
}
// åŠ è½½æ•°æ®
function loadTableData() {
  tableLoading.value = true;
  listVehicleInfo({
    pageNum: page.current,
    pageSize: page.size,
    ...searchForm,
  })
    .then((res) => {
      const { records, total } = res.data;
      tableData.value = records || [];
      page.total = total || 0;
    })
    .finally(() => {
      tableLoading.value = false;
    });
}
// åˆ†é¡µå˜åŒ–
function pagination({ page: current, limit }) {
  page.current = current;
  page.size = limit;
  loadTableData();
}
// é€‰æ‹©è¡Œ
function handleSelectionChange(selection) {
  selectedRows.value = selection;
}
// æ‰“开表单
function openForm(type, row) {
  operationType.value = type;
  if (type === "edit" && row) {
    Object.assign(form, row);
  } else {
    Object.assign(form, createEmptyForm());
  }
  dialogVisible.value = true;
}
function closeFormDialog() {
  dialogVisible.value = false;
  formRef.value?.resetFields();
}
// æäº¤è¡¨å•
function submitForm() {
  formRef.value?.validate((valid) => {
    if (!valid) return;
    const api = operationType.value === "add" ? addVehicleInfo : updateVehicleInfo;
    api({ ...form })
      .then(() => {
        ElMessage.success(operationType.value === "add" ? "新增成功" : "编辑成功");
        dialogVisible.value = false;
        loadTableData();
      })
      .catch(() => {});
  });
}
// åˆ é™¤å•条
function deleteRow(row) {
  ElMessageBox.confirm("确认删除该车辆信息吗?", "提示", {
    type: "warning",
  })
    .then(() => {
      delVehicleInfo([row.id]).then(() => {
        ElMessage.success("删除成功");
        loadTableData();
      });
    })
    .catch(() => {});
}
// æ‰¹é‡åˆ é™¤
function handleDelete() {
  if (!selectedRows.value.length) {
    ElMessage.warning("请先选择要删除的记录");
    return;
  }
  ElMessageBox.confirm("确认删除选中的车辆信息吗?", "提示", {
    type: "warning",
  })
    .then(() => {
      const ids = selectedRows.value.map((item) => item.id);
      delVehicleInfo(ids).then(() => {
        ElMessage.success("删除成功");
        loadTableData();
      });
    })
    .catch(() => {});
}
// æ‰“开审核弹窗
function openAuditDialog(row) {
  currentAuditRow.value = row;
  auditForm.status = row.reviewStatus || "pending";
  auditForm.comment = row.auditComment || "";
  auditDialogVisible.value = true;
}
function closeAuditDialog() {
  auditDialogVisible.value = false;
}
// æäº¤å®¡æ ¸
function submitAudit() {
  if (!currentAuditRow.value) return;
  reviewVehicleInfo({
    id: currentAuditRow.value.id,
    reviewStatus: auditForm.status,
    auditComment: auditForm.comment,
  })
    .then(() => {
      ElMessage.success("审核完成");
      auditDialogVisible.value = false;
      loadTableData();
    })
    .catch(() => {});
}
// åˆå§‹åŒ–
loadTableData();
</script>
<style scoped lang="scss">
.table_list {
  margin-top: 20px;
}
</style>
src/views/equipmentManagement/ledger/Form.vue
@@ -1,24 +1,24 @@
<template>
  <el-form :model="form" label-width="100px" :rules="formRules" ref="formRef">
  <el-form :model="form" label-width="120px" :rules="formRules" ref="formRef">
    <el-row :gutter="20">
      <el-col :span="12">
        <el-form-item label="设备名称" prop="deviceName">
          <el-input v-model="form.deviceName" placeholder="请输入设备名称" />
        <el-form-item label="监控设备名称" prop="deviceName">
          <el-input v-model="form.deviceName" placeholder="请输入监控设备名称" />
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item label="规格型号" prop="deviceModel">
          <el-input v-model="form.deviceModel" :disabled="(form.deviceModel != null && operationType === 'edit')" placeholder="请输入规格型号" />
        <el-form-item label="温度监测参数" prop="deviceModel">
          <el-input v-model="form.deviceModel" :disabled="(form.deviceModel != null && operationType === 'edit')" placeholder="请输入温度监测参数" />
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item label="供应商" prop="supplierName">
          <el-input v-model="form.supplierName" placeholder="请输入供应商" />
        <el-form-item label="压力监测参数" prop="supplierName">
          <el-input v-model="form.supplierName" placeholder="请输入压力监测参数" />
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item label="单位" prop="unit">
          <el-input v-model="form.unit" placeholder="请输入单位" />
        <el-form-item label="能耗监测参数" prop="unit">
          <el-input v-model="form.unit" placeholder="请输入能耗监测参数" />
        </el-form-item>
      </el-col>
      <el-col :span="12">
@@ -31,17 +31,17 @@
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item label="含税单价" prop="taxIncludingPriceUnit">
        <el-form-item label="监控阈值上限" prop="taxIncludingPriceUnit">
          <el-input-number :step="0.01" :min="0" style="width: 100%"
            v-model="form.taxIncludingPriceUnit"
            placeholder="请输入含税单价"
            placeholder="请输入监控阈值上限"
            maxlength="10"
            @change="mathNum"
          />
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item label="含税总价" prop="taxIncludingPriceTotal">
        <el-form-item label="监控阈值下限" prop="taxIncludingPriceTotal">
          <el-input
            v-model="form.taxIncludingPriceTotal"
            placeholder="自动生成"
@@ -51,17 +51,10 @@
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item label="税率(%)" prop="taxRate">
          <!-- <el-input
            v-model="form.taxRate"
            placeholder="请输入税率"
            type="number"
          >
            <template #append> % </template>
          </el-input> -->
        <el-form-item label="实时监测值" prop="taxRate">
          <el-select
            v-model="form.taxRate"
            placeholder="请选择"
            placeholder="请选择实时监测值"
            clearable
            @change="mathNum"
          >
@@ -72,7 +65,7 @@
        </el-form-item>
      </el-col>
      <el-col :span="12">
        <el-form-item label="不含税总价" prop="unTaxIncludingPriceTotal">
        <el-form-item label="累计能耗" prop="unTaxIncludingPriceTotal">
          <el-input
            v-model="form.unTaxIncludingPriceTotal"
            placeholder="自动生成"
@@ -87,14 +80,14 @@
        </el-form-item>
      </el-col> -->
      <el-col :span="12">
        <el-form-item label="录入日期" prop="createTime">
        <el-form-item label="监控日期" prop="createTime">
          <el-date-picker
            style="width: 100%"
            v-model="form.createTime"
            format="YYYY-MM-DD"
            value-format="YYYY-MM-DD HH:mm:ss"
            type="date"
            placeholder="请选择录入日期"
            placeholder="请选择监控日期"
            clearable
          />
        </el-form-item>
@@ -165,7 +158,7 @@
const mathNum = () => {
  if (!form.taxIncludingPriceUnit) {
    ElMessage.error("请输入单价");
    ElMessage.error("请输入监控阈值上限");
    return;
  }
  if (!form.number) {
src/views/equipmentManagement/ledger/index.vue
@@ -1,47 +1,52 @@
<template>
  <div class="app-container">
    <!-- é¡µé¢åŠŸèƒ½è¯´æ˜Žï¼Œä»…ä½œä¸ºæè¿°ï¼Œä¸ä½œä¸ºå…·ä½“å­—æ®µ -->
    <el-form :model="filters" :inline="true">
      <el-form-item label="设备名称">
      <!-- ç›‘控设备基础信息筛选 -->
      <el-form-item label="监控设备名称">
        <el-input
          v-model="filters.deviceName"
          style="width: 240px"
          placeholder="请输入设备名称"
          placeholder="请输入监控设备名称"
          clearable
          :prefix-icon="Search"
          @change="getTableData"
        />
      </el-form-item>
      <el-form-item label="规格型号">
      <!-- æ¸©åº¦ç›‘测字段(英文字段 deviceModel ä¸å˜ï¼‰ -->
      <el-form-item label="温度监测参数">
        <el-input
            v-model="filters.deviceModel"
            style="width: 240px"
            placeholder="请输入规格型号"
            placeholder="请输入温度相关监测参数"
            clearable
            :prefix-icon="Search"
            @change="getTableData"
        />
      </el-form-item>
      <el-form-item label="供应商">
      <!-- åŽ‹åŠ›ç›‘æµ‹å­—æ®µï¼ˆè‹±æ–‡å­—æ®µ supplierName ä¸å˜ï¼‰ -->
      <el-form-item label="压力监测参数">
        <el-input
            v-model="filters.supplierName"
            style="width: 240px"
            placeholder="请输入供应商"
            placeholder="请输入压力相关监测参数"
            clearable
            :prefix-icon="Search"
            @change="getTableData"
        />
      </el-form-item>
      <el-form-item label="单位">
      <!-- èƒ½è€—监测字段(英文字段 unit ä¸å˜ï¼‰ -->
      <el-form-item label="能耗监测参数">
        <el-input
            v-model="filters.unit"
            style="width: 240px"
            placeholder="请输入单位"
            placeholder="请输入能耗相关监测参数"
            clearable
            :prefix-icon="Search"
            @change="getTableData"
        />
      </el-form-item>
      <el-form-item label="录入日期:">
      <el-form-item label="监控日期:">
        <el-date-picker v-model="filters.entryDate" value-format="YYYY-MM-DD" format="YYYY-MM-DD" type="daterange"
                        placeholder="请选择" clearable @change="changeDaterange" />
      </el-form-item>
@@ -55,7 +60,7 @@
        <div></div>
        <div>
          <el-button type="primary" @click="add" icon="Plus"> æ–°å¢ž </el-button>
          <el-button @click="handleOut" icon="download">导出</el-button>
          <!-- <el-button @click="handleOut" icon="download">导出</el-button> -->
          <el-button
            type="danger"
            icon="Delete"
@@ -109,7 +114,8 @@
import {Search} from "@element-plus/icons-vue";
defineOptions({
  name: "设备台账",
  // é¡µé¢åŠŸèƒ½ï¼šè®¾å¤‡è¿œç¨‹ç›‘æŽ§
  name: "设备远程监控",
});
// è¡¨æ ¼å¤šé€‰æ¡†é€‰ä¸­é¡¹
@@ -140,22 +146,25 @@
  },
  [
    {
      label: "设备名称",
      label: "监控设备名称",
      align: "center",
      prop: "deviceName",
    },
    {
      label: "规格型号",
      // ä½¿ç”¨ deviceModel å­—段承载温度监测相关参数
      label: "温度监测参数",
      align: "center",
      prop: "deviceModel",
    },
    {
      label: "供应商",
      // ä½¿ç”¨ supplierName å­—段承载压力监测相关参数
      label: "压力监测参数",
      align: "center",
      prop: "supplierName",
    },
    {
      label: "单位",
      // ä½¿ç”¨ unit å­—段承载能耗监测相关参数
      label: "能耗监测参数",
      align: "center",
      prop: "unit",
    },
@@ -165,32 +174,36 @@
      prop: "number",
    },
    {
      label: "含税单价",
      // ä½¿ç”¨ taxIncludingPriceUnit å­—段承载监控阈值上限
      label: "监控阈值上限",
      align: "center",
      prop: "taxIncludingPriceUnit",
    },
    {
      label: "含税总价",
      // ä½¿ç”¨ taxIncludingPriceTotal å­—段承载监控阈值下限
      label: "监控阈值下限",
      align: "center",
      prop: "taxIncludingPriceTotal",
    },
    {
      label: "税率",
      // ä½¿ç”¨ taxRate å­—段呈现实时监测值/当前读数
      label: "实时监测值",
      align: "center",
      prop: "taxRate",
    },
    {
      label: "不含税总价",
      // ä½¿ç”¨ unTaxIncludingPriceTotal å­—段承载累计能耗/监控统计值
      label: "累计能耗",
      align: "center",
      prop: "unTaxIncludingPriceTotal",
    },
    {
      label: "录入人",
      label: "监控人",
      align: "center",
      prop: "createUser",
    },
    {
      label: "录入日期",
      label: "监控日期",
      align: "center",
      prop: "createTime",
    },
@@ -208,13 +221,13 @@
                        edit(row.id)
                    },
                },
                {
                    name: "生成二维码",
                    type: "text",
                    clickFun: (row) => {
                        showQRCode(row)
                    },
                },
                // {
                //     name: "生成二维码",
                //     type: "text",
                //     clickFun: (row) => {
                //         showQRCode(row)
                //     },
                // },
            ],
        },
  ]
@@ -285,7 +298,8 @@
    type: "warning",
  })
    .then(() => {
      proxy.download(`/device/ledger/export`, {}, "设备台账档案.xlsx");
      // å¯¼å‡ºæ–‡ä»¶åæ”¹ä¸ºè®¾å¤‡è¿œç¨‹ç›‘控
      proxy.download(`/device/ledger/export`, {}, "设备远程监控.xlsx");
    })
    .catch(() => {
      proxy.$modal.msg("已取消");
@@ -308,12 +322,12 @@
};
onMounted(() => {
  filters.entryDate = [
    dayjs().format("YYYY-MM-DD"),
    dayjs().add(1, "day").format("YYYY-MM-DD"),
  ]
  filters.entryDateStart = dayjs().format("YYYY-MM-DD")
  filters.entryDateEnd = dayjs().add(1, "day").format("YYYY-MM-DD")
  // filters.entryDate = [
  //   dayjs().format("YYYY-MM-DD"),
  //   dayjs().add(1, "day").format("YYYY-MM-DD"),
  // ]
  // filters.entryDateStart = dayjs().format("YYYY-MM-DD")
  // filters.entryDateEnd = dayjs().add(1, "day").format("YYYY-MM-DD")
  getTableData();
});
</script>
@@ -327,4 +341,13 @@
  justify-content: space-between;
  margin-bottom: 10px;
}
.feature-desc {
  margin-bottom: 16px;
  padding: 10px 12px;
  background: #f5f7fa;
  border-radius: 4px;
  color: #606266;
  font-size: 13px;
}
</style>