2026-04-28 f84e425bb9debb5f2af8e417bf07d2a2b0077609
src/views/equipmentManagement/repair/index.vue
@@ -75,10 +75,10 @@
            导出
          </el-button>
          <el-button
              type="danger"
              icon="Delete"
              :disabled="multipleList.length <= 0"
              @click="delRepairByIds(multipleList.map((item) => item.id))"
            type="danger"
            icon="Delete"
            :disabled="multipleList.length <= 0 || hasFinishedStatus"
            @click="delRepairByIds(multipleList.map((item) => item.id))"
          >
            批量删除
          </el-button>
@@ -104,44 +104,54 @@
        </template>
        <template #operation="{ row }">
          <el-button
              type="primary"
              text
              @click="addMaintain(row)"
          >
            新增维修
          </el-button>
          <el-button
              type="primary"
              text
              icon="editPen"
              @click="editRepair(row.id)"
            type="primary"
            link
            :disabled="row.status === 1"
            @click="editRepair(row.id)"
          >
            编辑
          </el-button>
          <el-button
              type="danger"
              text
              icon="delete"
              @click="delRepairByIds(row.id)"
            type="success"
            link
            :disabled="row.status === 1"
            @click="addMaintain(row)"
          >
            维修
          </el-button>
          <el-button
            type="danger"
            link
            :disabled="row.status === 1"
            @click="delRepairByIds(row.id)"
          >
            删除
          </el-button>
          <el-button
              type="primary"
              link
              @click="openFileDialog(row)"
          >
            附件
          </el-button>
        </template>
      </PIMTable>
    </div>
    <RepairModal ref="repairModalRef" @ok="getTableData"/>
    <MaintainModal ref="maintainModalRef" @ok="getTableData"/>
    <FileList v-if="fileDialogVisible"  v-model:visible="fileDialogVisible" :record-type="'device_repair'" :record-id="recordId"  />
  </div>
</template>
<script setup>
import {onMounted, getCurrentInstance, computed, ref, defineAsyncComponent} from "vue";
import {usePaginationApi} from "@/hooks/usePaginationApi";
import {getRepairPage, delRepair} from "@/api/equipmentManagement/repair";
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";
const FileList = defineAsyncComponent(() => import("@/components/Dialog/FileList.vue"));
defineOptions({
  name: "设备报修",
@@ -185,6 +195,11 @@
        label: "规格型号",
        align: "center",
        prop: "deviceModel",
      },
      {
        label: "项目",
        align: "center",
        prop: "machineryCategory",
      },
      {
        label: "报修日期",
@@ -252,10 +267,24 @@
  getTableData();
};
// 打开附件弹窗
const recordId =ref(0)
const fileDialogVisible = ref(false)
const openFileDialog = async (row) => {
  recordId.value = row.id
  fileDialogVisible.value = true
}
// 多选后做什么
const handleSelectionChange = (selectionList) => {
  multipleList.value = selectionList;
};
// 检查选中的记录中是否有完结状态的
const hasFinishedStatus = computed(() => {
  return multipleList.value.some(item => item.status === 1)
})
// 新增报修
const addRepair = () => {
@@ -280,6 +309,18 @@
// 单行删除
const delRepairByIds = async (ids) => {
  // 检查是否有完结状态的记录
  const idsArray = Array.isArray(ids) ? ids : [ids];
  const hasFinished = idsArray.some(id => {
    const record = dataList.value.find(item => item.id === id);
    return record && record.status === 1;
  });
  if (hasFinished) {
    ElMessage.warning('不能删除状态为完结的记录');
    return;
  }
  ElMessageBox.confirm("确认删除报修数据, 此操作不可逆?", "警告", {
    confirmButtonText: "确定",
    cancelButtonText: "取消",