zhangwencui
13 小时以前 cff720e8bb410adb2392d913a13d82be3951301a
src/views/safeProduction/hazardousMaterialsControl/index.vue
@@ -162,7 +162,9 @@
          <span>{{ form.name }}</span>
        </el-descriptions-item>
        <el-descriptions-item label="危险源类型">
          <span>{{ getTypeLabel(form.type) }}</span>
          <el-tag type="info">
            {{ getTypeLabel(form.type) }}
          </el-tag>
        </el-descriptions-item>
        <el-descriptions-item label="所在位置">
          <span>{{ form.location }}</span>
@@ -242,9 +244,9 @@
      </el-form>
      <template #footer>
        <span class="dialog-footer">
          <el-button @click="dialogVisible = false">取消</el-button>
          <el-button type="primary"
                     @click="submitForm">确定</el-button>
          <el-button @click="dialogVisible = false">取消</el-button>
        </span>
      </template>
    </el-dialog>
@@ -256,9 +258,13 @@
      <div>
        <el-table :data="safeHazardList"
                  border
                  ref="safeHazardTableRef"
                  v-loading="safeHazardLoading"
                  style="width: 100%"
                  @row-click="handleSafeHazardSelect">
                  :selection="selectedSafeHazardIds"
                  @selection-change="handleSafeHazardSelectionChange"
                  style="width: 100%">
          <el-table-column type="selection"
                           width="55" />
          <el-table-column prop="code"
                           label="危险源编码"
                           width="180"
@@ -300,6 +306,8 @@
      </div>
      <template #footer>
        <span class="dialog-footer">
          <el-button type="primary"
                     @click="handleSafeHazardSelect">确定</el-button>
          <el-button @click="safeHazardSelectVisible = false">取消</el-button>
        </span>
      </template>
@@ -414,6 +422,12 @@
  // 表格列配置
  const tableColumn = ref([
    {
      label: "领用单号",
      prop: "materialRecordCode",
      width: 130,
      showOverflowTooltip: true,
    },
    {
      label: "危险源编码",
      prop: "code",
      showOverflowTooltip: true,
@@ -482,16 +496,11 @@
      showOverflowTooltip: true,
    },
    {
      label: "单号",
      prop: "materialRecordCode",
      showOverflowTooltip: true,
    },
    {
      dataType: "action",
      label: "操作",
      align: "center",
      fixed: "right",
      width: 200,
      width: 130,
      operation: [
        {
          name: "归还",
@@ -543,6 +552,7 @@
      form.value.applyQty = "";
    }
  };
  const selectedSafeHazardIds = ref([]);
  // 开始自动刷新
  const startAutoRefresh = () => {
@@ -589,12 +599,31 @@
      });
  };
  const handleSafeHazardSelect = item => {
  const handleSafeHazardSelectionChange = selection => {
    // 只保留最后一个选中的项
    if (selection.length > 1) {
      const lastSelected = selection[selection.length - 1];
      selectedSafeHazardIds.value = [lastSelected];
      proxy.$refs.safeHazardTableRef.clearSelection();
      proxy.$refs.safeHazardTableRef.toggleRowSelection(lastSelected, true);
    } else if (selection.length === 1) {
      selectedSafeHazardIds.value = [selection[0]];
    } else {
      selectedSafeHazardIds.value = [];
    }
  };
  const handleSafeHazardSelect = () => {
    if (!selectedSafeHazardIds.value.length) {
      ElMessage.error("请选择一个危险源");
      return;
    }
    valueItem.value = {
      ...item,
      ...selectedSafeHazardIds.value[0],
    };
    valueItem.value.type = getTypeLabel(valueItem.value.type);
    form.value.safeHazardId = item.id;
    form.value.safeHazardId = selectedSafeHazardIds.value[0].id;
    safeHazardSelectVisible.value = false;
  };
@@ -608,12 +637,20 @@
  const pagination1 = obj => {
    page.value.current = obj.page;
    page.value.size = obj.limit;
    handleQuery();
    getList();
  };
  // 选择变化处理
  const handleSelectionChange = selection => {
    selectedIds.value = selection.map(item => item.id);
    // 主表格也只保留最后一个选中的项
    if (selection.length > 1) {
      const lastSelected = selection[selection.length - 1];
      selectedIds.value = [lastSelected.id];
    } else if (selection.length === 1) {
      selectedIds.value = [selection[0].id];
    } else {
      selectedIds.value = [];
    }
  };
  // 打开表单