UI-Project/src/views/GlassStorage/rawfilmstorage2.vue
@@ -387,6 +387,75 @@
// catch (error) {
//   }
// }
const dialogVisible = ref(false);
const detailsList = ref([]);
const selectedIds = ref<string[]>([]);
// 新增:加载异常数据列表
const loadDetails = async () => {
  try {
    const response = await request.get("/glassStorage/rawGlassStorageDetails/selectDetails");
    if (response.code === 200) {
      detailsList.value = response.data;
    } else {
      ElMessage.error("数据加载失败:" + response.msg);
    }
  } catch (error) {
    ElMessage.error("请求失败:" + (error as Error).message);
  }
};
// 新增:处理表格选择变化
const handleSelectionChange = (selection: any[]) => {
  selectedIds.value = selection.map(item => item.id);
};
// 新增:确认删除选中数据
const confirmDelete = async () => {
  if (selectedIds.value.length === 0) {
    ElMessage.warning("Select the data you want to delete first");
    return;
  }
  try {
    const confirmResult = await ElMessageBox.confirm(
      t('searchOrder.deletemessage'),
      t('customer.prompt'),
      {
        confirmButtonText: t('workOrder.yes'),
        cancelButtonText: t('workOrder.cancel'),
        type: "warning"
      }
    );
    if (confirmResult === "confirm") {
      // 批量删除请求
      const deletePromises = selectedIds.value.map(id =>
        request.post(`/glassStorage/rawGlassStorageDetails/deleteData?id=${id}`)
      );
      const results = await Promise.all(deletePromises);
      const allSuccess = results.every(res => res.code === 200);
      if (allSuccess) {
        ElMessage.success("success");
        dialogVisible.value = false;
        loadDetails(); // 刷新数据
        selectedIds.value = [];
      } else {
        ElMessage.error("error");
      }
    }
  } catch (error) {
    if (error !== "cancel") {
      ElMessage.error("删除失败:" + (error as Error).message);
    }
  }
};
const handleClearClick = () => {
  dialogVisible.value = true;
  loadDetails(); // 打开弹窗时加载数据
};
// 任务成功处理
const successfull = async (row) => {
  try {
@@ -511,6 +580,9 @@
        $t('searchOrder.historicaltasks')
        }}
      </el-button>
      <el-button style="margin-left: 20px;" id="searchButton" type="success" @click="handleClearClick">
        clear
      </el-button>
      <el-date-picker style="margin-left: 10px;" v-model="timeRange" type="datetimerange" format="YYYY/MM/DD HH:mm:ss"
        value-format="YYYY-MM-DD HH:mm:ss" :start-placeholder="$t('film.starttime')"
        :end-placeholder="$t('film.endtime')" :default-time="defaultTime" />
@@ -557,9 +629,9 @@
          <el-table-column prop="createTime" align="center" :label="$t('film.createtime')" />
          <el-table-column fixed="right" :label="$t('film.operate')" align="center">
            <template #default="scope">
              <el-button :disabled="(scope.row.taskState >2)" type="text" plain @click="successfull(scope.row)">{{
              <el-button type="text" plain @click="successfull(scope.row)">{{
                $t('searchOrder.successfullyprocessed') }}</el-button>
              <el-button :disabled="(scope.row.taskState >2)" type="text" plain @click="handleptask(scope.row)">{{
              <el-button type="text" plain @click="handleptask(scope.row)">{{
                $t('searchOrder.taskfailure') }}</el-button>
            </template>
          </el-table-column>
@@ -603,6 +675,25 @@
      }" v-show="cards[45]">
      </div>
    </div>
    <el-dialog title="Select the data you want to delete first" v-model="dialogVisible" width="60%" @close="selectedIds = []">
      <el-table :data="detailsList" border style="width: 100%; margin-bottom: 20px;"
        @selection-change="handleSelectionChange">
        <el-table-column prop="id" label="ID" width="80"></el-table-column>
        <el-table-column type="selection" width="55"></el-table-column>
        <el-table-column prop="slot" :label="$t('film.slot')"></el-table-column>
        <el-table-column prop="shelf" :label="$t('reportWork.shelfnumbera')"></el-table-column>
        <el-table-column prop="state" :label="$t('reportWork.state')" :formatter="formatState"></el-table-column>
        <!-- 可根据需要添加其他字段列 -->
      </el-table>
      <template #footer>
        <el-button @click="dialogVisible = false">{{t('workOrder.cancel')}}</el-button>
        <el-button type="danger" @click="confirmDelete" :disabled="selectedIds.length === 0">
         {{t('reportWork.sure')}}
        </el-button>
      </template>
    </el-dialog>
    <el-dialog v-model="dialogFormVisiblea" top="5vh" width="85%">
      <el-table ref="table" style="margin-top: 20px;height: 700px;" :data="tableDatab" v-loading="loading"