yaowanxin
2025-12-18 376cab4afba8fd1b8be67cae067ed917462c2e16
src/views/equipmentManagement/repair/index.vue
@@ -7,7 +7,6 @@
            style="width: 240px"
            placeholder="请输入设备名称"
            clearable
            :prefix-icon="Search"
            @change="getTableData"
        />
      </el-form-item>
@@ -17,7 +16,6 @@
            style="width: 240px"
            placeholder="请选择规格型号"
            clearable
            :prefix-icon="Search"
            @change="getTableData"
        />
      </el-form-item>
@@ -27,7 +25,6 @@
            style="width: 240px"
            placeholder="请输入故障现象"
            clearable
            :prefix-icon="Search"
            @change="getTableData"
        />
      </el-form-item>
@@ -37,7 +34,6 @@
            style="width: 240px"
            placeholder="请输入维修人"
            clearable
            :prefix-icon="Search"
            @change="getTableData"
        />
      </el-form-item>
@@ -79,6 +75,9 @@
          <el-button type="success" icon="Van" @click="addRepair">
            新增报修
          </el-button>
          <el-button @click="handleOut">
            导出
          </el-button>
          <el-button
            type="danger"
            icon="Delete"
@@ -116,6 +115,14 @@
            编辑
          </el-button>
          <el-button
              type="primary"
              text
              icon="folder"
              @click="openFilesForm(row)"
          >
            附件
          </el-button>
          <el-button
            type="danger"
            text
            icon="delete"
@@ -128,26 +135,29 @@
    </div>
    <RepairModal ref="repairModalRef" @ok="getTableData" />
    <MaintainModal ref="maintainModalRef" @ok="getTableData" />
    <files-dia ref="filesDia"></files-dia>
  </div>
</template>
<script setup>
import { usePaginationApi } from "@/hooks/usePaginationApi";
import { getRepairPage, delRepair } from "@/api/equipmentManagement/repair";
import { onMounted } from "vue";
import { onMounted, getCurrentInstance } from "vue";
import RepairModal from "./Modal/RepairModal.vue";
import { ElMessageBox, ElMessage } from "element-plus";
import dayjs from "dayjs";
import MaintainModal from "./Modal/MaintainModal.vue";
import FilesDia from "./filesDia.vue";
defineOptions({
  name: "设备报修",
});
const { proxy } = getCurrentInstance();
// 模态框实例
const repairModalRef = ref();
const maintainModalRef = ref();
const filesDia = ref()
// 表格多选框选中项
const multipleList = ref([]);
@@ -163,7 +173,12 @@
} = usePaginationApi(
  getRepairPage,
  {
    searchText: undefined,
    deviceName: undefined,
    deviceModel: undefined,
    remark: undefined,
    maintenanceName: undefined,
    repairTimeStr: undefined,
    maintenanceTimeStr: undefined,
  },
  [
    {
@@ -191,6 +206,11 @@
      label: "故障现象",
      align: "center",
      prop: "remark",
    },
    {
      label: "保养进度描述",
      align: "center",
      prop: "maintenanceProcessDesc",
    },
    {
      label: "维修人",
@@ -256,7 +276,12 @@
const editRepair = (id) => {
  repairModalRef.value.openEdit(id);
};
// 打开附件弹框
const openFilesForm = (row) => {
  nextTick(() => {
    filesDia.value?.openDialog( row,'设备报修')
  })
};
// 新增维修
const addMaintain = () => {
  const row = multipleList.value[0];
@@ -284,6 +309,21 @@
  });
};
// 导出
const handleOut = () => {
  ElMessageBox.confirm("选中的内容将被导出,是否确认导出?", "导出", {
    confirmButtonText: "确认",
    cancelButtonText: "取消",
    type: "warning",
  })
    .then(() => {
      proxy.download("/device/repair/export", {}, "设备报修.xlsx");
    })
    .catch(() => {
      ElMessage.info("已取消");
    });
};
onMounted(() => {
  getTableData();
});