WXL
2026-05-13 f5e6487a78789ee372a8c6458bfd0cb740d6a0e8
src/views/business/appear/index.vue
@@ -8,23 +8,23 @@
        :inline="true"
        class="demo-form-inline"
      >
        <el-form-item label="案例编号" prop="caseNo">
          <el-input
            v-model="queryParams.caseNo"
            placeholder="请输入案例编号"
            clearable
            style="width: 200px"
          />
        </el-form-item>
        <el-form-item label="捐献者姓名" prop="name">
        <el-form-item label="姓名" prop="name">
          <el-input
            v-model="queryParams.name"
            placeholder="请输入捐献者姓名"
            placeholder="请输入患者姓名"
            clearable
            style="width: 200px"
          />
        </el-form-item>
        <el-form-item label="案例状态" prop="reportStatus">
        <el-form-item label="上报医院" prop="caseNo">
          <el-input
            v-model="queryParams.caseNo"
            placeholder="请输入上报案例编号"
            clearable
            style="width: 200px"
          />
        </el-form-item>
        <el-form-item label="上报状态" prop="reportStatus">
          <el-select
            v-model="queryParams.reportStatus"
            placeholder="请选择状态"
@@ -48,12 +48,6 @@
    <!-- 操作按钮区域 -->
    <el-row :gutter="10" class="mb8">
      <!-- <el-col :span="1.5">
        <el-button type="primary" plain icon="el-icon-plus" @click="handleAdd"
          >新增案例</el-button
        >
      </el-col> -->
      <el-col :span="1.5">
        <el-button
          type="danger"
@@ -67,32 +61,46 @@
    </el-row>
    <!-- 数据表格 -->
    <!-- 数据表格 -->
    <el-table
      v-loading="loading"
      :data="caseList"
      @selection-change="handleSelectionChange"
    >
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column
        label="案例编号"
        label="编号"
        align="center"
        prop="caseNo"
        width="150"
        fixed
      />
      <el-table-column
        label="上报时间"
        align="center"
        prop="reporttime"
        width="160"
      />
      <el-table-column
        label="捐献者姓名"
        label="姓名"
        align="center"
        prop="name"
        width="100"
        fixed
      />
      <el-table-column
        label="上报状态"
        align="center"
        prop="reportStatus"
        width="100"
      >
        <template #default="scope">
          <el-tag :type="scope.row.reportStatus | statusFilter">
            {{ scope.row.reportStatus | statusTextFilter }}
          </el-tag>
        </template>
      </el-table-column>
      <el-table-column label="转运" align="center" width="100">
        <template #default="scope">
          <el-tag :type="getTransportStatusTag(scope.row)">
            {{ getTransportStatusText(scope.row) }}
          </el-tag>
        </template>
      </el-table-column>
      <el-table-column label="性别" align="center" prop="sex" width="80">
        <template #default="scope">
          <dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex" />
@@ -108,13 +116,6 @@
        </template>
      </el-table-column>
      <el-table-column
        label="GCS评分"
        align="center"
        prop="gcsScore"
        width="80"
        show-overflow-tooltip
      />
      <el-table-column
        label="疾病诊断"
        align="center"
        prop="diagnosisname"
@@ -122,37 +123,25 @@
        show-overflow-tooltip
      />
      <el-table-column
        label="治疗医院"
        label="GCS评分"
        align="center"
        prop="gcsScore"
        width="80"
        show-overflow-tooltip
      />
      <el-table-column
        label="上报医院"
        align="center"
        prop="treatmenthospitalname"
        width="150"
      />
      <el-table-column
        label="状态"
        label="上报时间"
        align="center"
        prop="reportStatus"
        width="100"
      >
        <template #default="scope">
          <el-tag :type="scope.row.reportStatus | statusFilter">
            {{ scope.row.reportStatus | statusTextFilter }}
          </el-tag>
        </template>
      </el-table-column>
      <el-table-column label="转运状态" align="center" width="100">
        <template #default="scope">
          <el-tag :type="getTransportStatusTag(scope.row)">
            {{ getTransportStatusText(scope.row) }}
          </el-tag>
        </template>
      </el-table-column>
      <el-table-column
        label="操作"
        align="center"
        fixed="right"
        class-name="small-padding fixed-width"
        width="350"
      >
        prop="reporttime"
        width="160"
      />
      <el-table-column label="操作" align="center" fixed="right" width="300">
        <template #default="scope">
          <el-button
            size="mini"
@@ -169,7 +158,7 @@
            v-if="
              scope.row.reportStatus !== '3' &&
                scope.row.reportStatus !== '4' &&
                scope.row.delFlag === 0
                scope.row.delFlag == 0
            "
            >编辑</el-button
          >
@@ -178,20 +167,28 @@
            type="text"
            icon="el-icon-check"
            @click="handleApprove(scope.row)"
            v-if="scope.row.reportStatus === '2' && scope.row.delFlag === 0"
            >审批</el-button
            v-if="scope.row.reportStatus == '2' && scope.row.delFlag == 0"
            >确认</el-button
          >
          <!-- 移除转运按钮 -->
          <el-button
            v-if="scope.row.serviceTransport.length"
            size="mini"
            type="primary"
            @click="goToTransportDetail(scope.row.name)"
            >查看转运单</el-button
          >
          <el-button
            v-if="
              scope.row.reportStatus == 3 &&
                !scope.row.serviceTransport.length &&
                scope.row.isTransport == 2
            "
            size="mini"
            type="text"
            icon="el-icon-truck"
            :type="shouldShowTransportButton(scope.row) ? 'primary' : 'text'"
            @click="handleTransport(scope.row)"
            v-if="shouldShowTransportButton(scope.row)"
            :disabled="!canGoToTransport(scope.row)"
            type="success"
            @click="Createatransferorder(scope.row)"
            >创建转运单</el-button
          >
            {{ getTransportButtonText(scope.row) }}
          </el-button>
        </template>
      </el-table-column>
    </el-table>
@@ -216,53 +213,96 @@
      <case-detail :caseData="currentCase" @close="detailOpen = false" />
    </el-dialog>
    <!-- 审批弹框 -->
    <!-- 确认弹框 -->
    <el-dialog
      title="案例审批"
      title="案例确认"
      :visible.sync="approveOpen"
      width="80vw"
      append-to-body
      class="approve-dialog"
    >
      <el-container style="height: 800px;">
      <!-- 使用 div 布局替代 el-container -->
      <div class="approve-dialog-content">
        <!-- 左侧:案例详情 -->
        <el-aside
          width="50vw"
          style="background: #f8f9fa; padding: 20px; overflow-y: auto;"
        >
        <div class="approve-detail-left">
          <div class="approve-detail-preview">
            <h3 style="margin-bottom: 15px; color: #303133;">案例详情预览</h3>
            <case-detail :caseData="currentCase" :showtitle="false" />
          </div>
        </el-aside>
        </div>
        <!-- 右侧:审批表单 -->
        <el-main style="padding: 20px;">
        <!-- 右侧:确认表单 -->
        <div class="approve-form-right">
          <el-form
            ref="approveForm"
            :model="approveForm"
            :rules="approveRules"
            label-width="100px"
          >
            <el-form-item label="审批结果" prop="approveResult">
              <el-radio-group v-model="approveForm.approveResult">
            <el-form-item label="确认结果" prop="approveResult">
              <el-radio-group
                v-model="approveForm.approveResult"
                @change="handleApproveResultChange"
              >
                <el-radio label="3">同意</el-radio>
                <el-radio label="4">驳回</el-radio>
              </el-radio-group>
            </el-form-item>
            <el-form-item label="审批意见" prop="approveOpinion">
            <!-- 当选择"同意"时显示转运选项 -->
            <el-form-item
              v-if="approveForm.approveResult == '3'"
              label="是否需要转运"
              prop="isTransport"
            >
              <el-radio-group v-model="approveForm.isTransport">
                <el-radio label="1">不需要</el-radio>
                <el-radio label="2">需要</el-radio>
              </el-radio-group>
            </el-form-item>
            <!-- 当选择"驳回"时显示驳回原因 -->
            <div v-if="approveForm.approveResult == '4'">
              <el-form-item label="驳回原因" prop="rejectType">
                <el-radio-group v-model="approveForm.rejectType">
                  <el-radio label="1">好转</el-radio>
                  <el-radio label="2">死亡</el-radio>
                  <el-radio label="3">不符合捐献标准</el-radio>
                  <el-radio label="4">家属放弃捐献</el-radio>
                  <el-radio label="5">其他</el-radio>
                </el-radio-group>
              </el-form-item>
              <el-form-item label="驳回意见" prop="confirmResult">
                <el-input
                  type="textarea"
                  v-model="approveForm.confirmResult"
                  placeholder="请输入详细的驳回意见"
                  :rows="6"
                  maxlength="500"
                  show-word-limit
                />
              </el-form-item>
            </div>
            <!-- 当选择"同意"时显示确认意见 -->
            <el-form-item
              v-if="approveForm.approveResult == '3'"
              label="确认意见"
              prop="confirmResult"
            >
              <el-input
                type="textarea"
                v-model="approveForm.approveOpinion"
                placeholder="请输入详细的审批意见,包括通过或驳回的理由"
                v-model="approveForm.confirmResult"
                placeholder="请输入确认意见"
                :rows="6"
                maxlength="500"
                show-word-limit
              />
            </el-form-item>
          </el-form>
        </el-main>
      </el-container>
        </div>
      </div>
      <div slot="footer" class="dialog-footer">
        <el-button @click="approveOpen = false">取消</el-button>
@@ -305,10 +345,10 @@
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item label="捐献者姓名" prop="name">
              <el-form-item label="患者姓名" prop="name">
                <el-input
                  v-model="editForm.name"
                  placeholder="请输入捐献者姓名"
                  placeholder="请输入患者姓名"
                />
              </el-form-item>
            </el-col>
@@ -361,10 +401,10 @@
                  placeholder="请选择血型"
                  style="width: 100%"
                >
                  <el-option label="A型" value="A" />
                  <el-option label="B型" value="B" />
                  <el-option label="O型" value="O" />
                  <el-option label="AB型" value="AB" />
                  <el-option label="A型" :value="1" />
                  <el-option label="B型" :value="2" />
                  <el-option label="O型" :value="3" />
                  <el-option label="AB型" :value="4" />
                </el-select>
              </el-form-item>
            </el-col>
@@ -400,9 +440,11 @@
                  placeholder="请选择证件类型"
                  style="width: 100%"
                >
                  <el-option label="身份证" value="1" />
                  <el-option label="护照" value="2" />
                  <el-option label="军官证" value="3" />
                  <el-option
                    v-for="item in dict.type.sys_IDType"
                    :label="item.label"
                    :value="item.value"
                  />
                </el-select>
              </el-form-item>
            </el-col>
@@ -632,10 +674,18 @@
          <el-row :gutter="20">
            <el-col :span="12">
              <el-form-item label="传染病情况" prop="infectious">
                <el-input
                <el-checkbox-group v-model="editForm.infectious">
                  <el-checkbox
                    v-for="item in dict.type.sys_Infectious"
                    :label="item.value"
                    :value="item.value"
                    >{{ item.label }}</el-checkbox
                  >
                </el-checkbox-group>
                <!-- <el-input
                  v-model="editForm.infectious"
                  placeholder="请输入传染病情况"
                />
                /> -->
              </el-form-item>
            </el-col>
            <el-col :span="12">
@@ -744,24 +794,16 @@
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item label="报告者编号" prop="infoNo">
              <el-form-item label="报告者电话" prop="reporterphone">
                <el-input
                  v-model="editForm.infoNo"
                  placeholder="请输入报告者编号"
                  v-model="editForm.phone"
                  placeholder="请输入报告者联系电话"
                />
              </el-form-item>
            </el-col>
          </el-row>
          <el-row :gutter="20">
            <el-col :span="12">
              <el-form-item label="报告者电话" prop="reporterphone">
                <el-input
                  v-model="editForm.reporterphone"
                  placeholder="请输入报告者联系电话"
                />
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item label="协调员姓名" prop="coordinatorName">
                <el-input
@@ -770,23 +812,12 @@
                />
              </el-form-item>
            </el-col>
          </el-row>
          <el-row :gutter="20">
            <el-col :span="12">
              <el-form-item label="协调员编号" prop="coordinatorNo">
                <el-input
                  v-model="editForm.coordinatorNo"
                  placeholder="请输入协调员编号"
                />
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item label="是否终止案例" prop="terminationCase">
                <el-radio-group v-model="editForm.terminationCase">
                  <el-radio label="0">进行中</el-radio>
                  <el-radio label="1">已终止</el-radio>
                </el-radio-group>
              </el-form-item>
            </el-col>
          </el-row>
@@ -966,7 +997,7 @@
    UploadAttachment,
    FilePreviewDialog
  },
  dicts: ["sys_user_sex", "sys_BloodType"],
  dicts: ["sys_user_sex", "sys_BloodType", "sys_Infectious", "sys_IDType"],
  data() {
    return {
      // 遮罩层
@@ -984,7 +1015,7 @@
      caseList: [],
      // 详情弹框是否显示
      detailOpen: false,
      // 审批弹框是否显示
      // 确认弹框是否显示
      approveOpen: false,
      // 编辑弹框是否显示
      editOpen: false,
@@ -1002,19 +1033,37 @@
        name: undefined,
        reportStatus: undefined
      },
      // 审批表单
      // 确认表单
      approveForm: {
        id: null,
        approveResult: "3",
        approveOpinion: ""
        confirmResult: "",
        rejectType: "", // 驳回原因
        isTransport: "1", // 是否需要转运
        createTransport: false, // 是否需要创建转运单
        isDonate: "0" // 是否捐献,0-未捐献,1-已捐献
      },
      // 审批表单验证
      // 确认表单验证
      approveRules: {
        approveResult: [
          { required: true, message: "请选择审批结果", trigger: "change" }
          { required: true, message: "请选择确认结果", trigger: "change" }
        ],
        approveOpinion: [
          { required: true, message: "请输入审批意见", trigger: "blur" }
        confirmResult: [
          { required: true, message: "请输入确认意见", trigger: "blur" }
        ],
        rejectType: {
          required: false,
          validator: (rule, value, callback) => {
            if (this.approveForm.approveResult == "4" && !value) {
              callback(new Error("请选择驳回原因"));
            } else {
              callback();
            }
          },
          trigger: "change"
        },
        isTransport: [
          { required: true, message: "请选择是否需要转运", trigger: "change" }
        ]
      },
      // 编辑表单
@@ -1024,9 +1073,7 @@
        caseNo: [
          { required: true, message: "请输入案例编号", trigger: "blur" }
        ],
        name: [
          { required: true, message: "请输入捐献者姓名", trigger: "blur" }
        ],
        name: [{ required: true, message: "请输入患者姓名", trigger: "blur" }],
        sex: [{ required: true, message: "请选择性别", trigger: "change" }],
        age: [{ required: true, message: "请输入年龄", trigger: "blur" }],
        diagnosisname: [
@@ -1052,7 +1099,7 @@
    statusFilter(reportStatus) {
      const statusMap = {
        "1": "info", // 已上报
        "2": "warning", // 已阅读(待审批)
        "2": "warning", // 已阅读(待确认)
        "3": "success", // 已同意
        "4": "danger" // 已驳回
      };
@@ -1088,39 +1135,31 @@
        this.loading = false;
      }
    },
    // 转运------------------
    /** 判断是否需要显示转运按钮 */
    shouldShowTransportButton(row) {
      // 只有已同意的案例才能进行转运操作
      // return row.reportStatus == "3" && row.delFlag == 0;
      return row.reportStatus != "4";
    },
    /** 判断是否可以跳转到转运单 */
    canGoToTransport(row) {
      // 需要转运(isTransport === "2")且没有转运信息(serviceTransport不存在或为空数组)
      return row.isTransport == "2" && row.serviceTransport;
    },
    /** 获取转运按钮文本 */
    getTransportButtonText(row) {
      if (row.isTransport == "2") {
        if (
          row.serviceTransport &&
          Array.isArray(row.serviceTransport) &&
          row.serviceTransport.length > 0
        ) {
          return "查看转运单";
        } else {
          return "前往转运单";
        }
    /** 确认结果变化处理 */
    handleApproveResultChange(value) {
      if (value == "3") {
        // 选择同意时,重置驳回原因
        this.approveForm.rejectType = "";
        this.approveForm.isDonate = "0"; // 重置为未捐献
      } else if (value == "4") {
        // 选择驳回时,重置转运选项
        this.approveForm.isTransport = "1";
        this.approveForm.createTransport = false;
      }
      return "转运";
      // 清除验证
      this.$nextTick(() => {
        if (this.$refs.approveForm) {
          this.$refs.approveForm.clearValidate();
        }
      });
    },
    // 转运相关方法
    /** 获取转运状态标签样式 */
    getTransportStatusTag(row) {
      if (row.isTransport === "1") {
      if (row.isTransport == "1") {
        return "info"; // 不需要转运
      }
      if (
@@ -1148,12 +1187,12 @@
        }
        return "primary"; // 有转运信息但无状态
      }
      return "danger"; // 需要转运但无转运信息
      return "success"; // 需要转运但无转运信息
    },
    /** 获取转运状态文本 */
    getTransportStatusText(row) {
      if (row.isTransport === "1") {
      if (row.isTransport == "1") {
        return "无需转运";
      }
      if (
@@ -1183,99 +1222,26 @@
      return "需转运";
    },
    /** 处理转运操作 */
    async handleTransport(row) {
      try {
        // 先获取最新的案例信息
        const caseData = row;
        if (caseData.isTransport == "2") {
          if (
            caseData.serviceTransport &&
            Array.isArray(caseData.serviceTransport) &&
            caseData.serviceTransport.length > 0
          ) {
            // 已有转运单,跳转到转运单详情页
            const transport = caseData.serviceTransport[0];
            this.goToTransportDetail(transport.id, row.caseNo);
          } else {
            // 没有转运单,跳转到创建转运单页面
            this.goToCreateTransport(row);
          }
        } else {
          this.$message.warning("该案例不需要转运");
        }
      } catch (error) {
        console.error("获取案例信息失败:", error);
        this.$message.error("获取案例信息失败");
      }
    },
    /** 跳转到创建转运单页面 */
    goToCreateTransport(caseData) {
      // 这里可以跳转到创建转运单的页面
      // 方式1:在新页面打开
    Createatransferorder(res) {
      console.log(res);
      this.$router.push({
        path: "/report/transfer",
        query: {
          autoCreate: "true",
          caseId: caseData.id,
          caseNo: caseData.caseNo,
          patName: caseData.name,
          age: caseData.age,
          sex: caseData.sex,
          diagnosisname: caseData.diagnosisname,
          treatmentHospitalName: caseData.treatmenthospitalname
        }
      });
      // 方式2:在当前页面打开弹框(推荐)
      // this.openTransportDialog(caseData);
    },
    /** 打开转运单弹框 */
    openTransportDialog(caseData) {
      this.$modal.confirm({
        title: "创建转运单",
        message: `您将创建案例【${caseData.caseNo} - ${caseData.name}】的转运单,是否继续?`,
        confirmButtonText: "前往创建",
        cancelButtonText: "取消",
        type: "warning",
        beforeClose: (action, instance, done) => {
          if (action === "confirm") {
            // 跳转到转运单创建页面
            this.$router.push({
              path: "/report/transfer",
              query: {
                caseId: caseData.id,
                caseNo: caseData.caseNo,
                patName: caseData.name,
                age: caseData.age,
                sex: caseData.sex,
                diagnosisname: caseData.diagnosisname,
                treatmentHospitalName: caseData.treatmenthospitalname
              }
            });
            done();
          } else {
            done();
          }
          caseId: res.id,
          caseNo: res.caseNo,
          patName: res.name,
          age: res.age,
          sex: res.sex,
          diagnosisname: res.diagnosisname,
          treatmentHospitalName: res.treatmenthospitalname
        }
      });
    },
    /** 跳转到转运单详情页 */
    goToTransportDetail(transportId, caseNo) {
      this.$router.push({
        path: "/report/transfer",
        query: {
          id: transportId,
          caseNo: caseNo
        }
      });
    },
    // ---------------------------------end
    // 多选框选中数据
    /** 多选框选中数据 */
    handleSelectionChange(selection) {
      this.ids = selection.map(item => item.id);
      this.single = selection.length !== 1;
@@ -1306,7 +1272,7 @@
        this.currentCase = row;
        // 如果状态是"已上报"(1),则更新为"已阅读"(2)
        if (this.currentCase.reportStatus === "1") {
        if (this.currentCase.reportStatus == "1") {
          try {
            const updateData = {
              ...this.currentCase,
@@ -1341,7 +1307,7 @@
    async handleEdit(row) {
      try {
        const response = await donateInfo(row.id);
        if (response.code === 200 || response.data) {
        if (response.code == 200 || response.data) {
          this.isEditing = true;
          const data = response.data || response;
@@ -1356,6 +1322,12 @@
          this.currentCase = data;
          this.editForm = { ...data };
          this.editForm.idcardtype = this.editForm.idcardtype.toString();
          console.log(this.editForm.idcardtype);
          this.editForm.infectious = this.editForm.infectious
            .split(",")
            .filter(item => item.trim() !== "");
          this.editOpen = true;
          this.$nextTick(() => {
            this.$refs.editForm && this.$refs.editForm.clearValidate();
@@ -1380,7 +1352,7 @@
      });
    },
    /** 审批按钮操作 */
    /** 确认按钮操作 */
    async handleApprove(row) {
      try {
        const response = await donateInfo(row.id);
@@ -1388,7 +1360,10 @@
        this.approveForm.id = row.id;
        this.approveForm.approveResult = "3";
        this.approveForm.approveOpinion = "";
        this.approveForm.confirmResult = "";
        this.approveForm.rejectType = "";
        this.approveForm.isTransport = row.isTransport || "1";
        this.approveForm.isDonate = "0";
        this.$nextTick(() => {
          if (this.$refs.approveForm) {
@@ -1402,36 +1377,81 @@
        this.currentCase = row;
        this.approveForm.id = row.id;
        this.approveForm.approveResult = "3";
        this.approveForm.approveOpinion = "";
        this.approveForm.confirmResult = "";
        this.approveOpen = true;
        this.$modal.msgError("获取详情失败,但已打开审批窗口");
        this.$modal.msgError("获取详情失败,但已打开确认窗口");
      }
    },
    /** 提交审批 */
    /** 提交确认 */
    async submitApprove() {
      try {
        const valid = await this.$refs.approveForm.validate();
        if (valid) {
          const approveData = {
            ...this.currentCase,
            reportStatus: this.approveForm.approveResult,
            remark: this.approveForm.approveOpinion,
            approvername: this.$store.state.user?.name || "当前用户",
            approvetime: dayjs().format("YYYY-MM-DD HH:mm:ss"),
            updateTime: dayjs().format("YYYY-MM-DD HH:mm:ss"),
            updateBy: this.$store.state.user?.name || "当前用户"
          };
        if (!valid) return;
          await donateEdit(approveData);
          this.$modal.msgSuccess("审批成功");
          this.approveOpen = false;
          this.getList();
        // 准备确认数据
        const approveData = {
          ...this.currentCase,
          reportStatus: this.approveForm.approveResult,
          confirmResult: this.approveForm.confirmResult,
          approvername: this.$store.state.user?.name || "当前用户",
          approvetime: dayjs().format("YYYY-MM-DD HH:mm:ss"),
          updateTime: dayjs().format("YYYY-MM-DD HH:mm:ss"),
          updateBy: this.$store.state.user?.name || "当前用户"
        };
        // 处理确认结果
        if (this.approveForm.approveResult == "3") {
          // 同意
          approveData.isTransport = this.approveForm.isTransport;
          // 如果不需要转运,设置isDonate为1
          if (this.approveForm.isTransport == "1") {
            approveData.isDonate = "1";
          } else {
            approveData.isDonate = "0";
          }
        } else if (this.approveForm.approveResult == "4") {
          // 驳回
          approveData.rejectType = this.approveForm.rejectType;
          approveData.isTransport = "1"; // 驳回的案例不需要转运
          approveData.isDonate = "1"; // 驳回的案例标记为已捐献
        }
        // 保存案例确认信息
        await donateEdit(approveData);
        this.$modal.msgSuccess("确认成功");
        // 关闭确认对话框
        this.approveOpen = false;
        // 刷新列表
        this.getList();
        // 如果同意且需要转运,跳转到转运单创建页面
        if (
          this.approveForm.approveResult == "3" &&
          this.approveForm.isTransport == "2"
        ) {
          this.$router.push({
            path: "/report/transfer",
            query: {
              autoCreate: "true",
              caseId: this.currentCase.id,
              caseNo: this.currentCase.caseNo,
              patName: this.currentCase.name,
              age: this.currentCase.age,
              sex: this.currentCase.sex,
              diagnosisname: this.currentCase.diagnosisname,
              treatmentHospitalName: this.currentCase.treatmenthospitalname
            }
          });
        }
      } catch (error) {
        console.error("审批失败:", error);
        console.error("确认失败:", error);
        if (error !== "cancel") {
          this.$modal.msgError("审批失败");
          this.$modal.msgError("确认失败");
        }
      }
    },
@@ -1494,6 +1514,8 @@
        infectious: undefined,
        infectiousOther: undefined,
        isTransport: "1",
        isDonate: "0", // 新增:是否捐献
        rejectType: undefined, // 新增:驳回原因
        // 医院信息
        treatmenthospitalname: undefined,
        treatmentdeptname: undefined,
@@ -1540,7 +1562,7 @@
    /** 附件上传成功处理 */
    handleUploadSuccess({ file, fileList, response }) {
      if (response && response.code === 200) {
      if (response && response.code == 200) {
        if (!this.editForm.annexfilesList) {
          this.editForm.annexfilesList = [];
        }
@@ -1569,7 +1591,7 @@
    handleAttachmentRemove(file) {
      if (file.url && this.editForm.annexfilesList) {
        const index = this.editForm.annexfilesList.findIndex(
          item => item.path === file.url || item.fileUrl === file.url
          item => item.path == file.url || item.fileUrl == file.url
        );
        if (index > -1) {
          this.editForm.annexfilesList.splice(index, 1);
@@ -1655,7 +1677,15 @@
        this.$refs.editForm && this.$refs.editForm.clearValidate();
      });
    },
    goToTransportDetail(name) {
      this.$router.push({
        path: "/report/transfer",
        query: {
          autoCreate: "true",
          patName: name
        }
      });
    },
    /** 保存表单 */
    async handleSave() {
      try {
@@ -1675,6 +1705,7 @@
        this.saveLoading = true;
        const requestData = { ...this.editForm };
        requestData.infectious = requestData.infectious.join(",");
        let response;
        if (this.isEditing) {
@@ -1686,7 +1717,7 @@
          response = await donateAdd(requestData);
        }
        if (response.code === 200) {
        if (response.code == 200) {
          this.$message.success(this.isEditing ? "修改成功" : "新增成功");
          this.handleEditClose();
          this.getList();
@@ -1774,7 +1805,7 @@
  white-space: nowrap;
}
/* 审批弹框样式 */
/* 确认弹框样式 */
.approve-dialog >>> .el-dialog__body {
  padding: 0;
}
@@ -1782,7 +1813,49 @@
.approve-detail-preview {
  height: 100%;
}
.approve-dialog-content {
  display: flex;
  height: 600px; /* 可以调整高度 */
  overflow: hidden;
}
.approve-detail-left {
  width: 50%;
  background: #f8f9fa;
  padding: 20px;
  overflow-y: auto;
  border-right: 1px solid #e4e7ed;
}
.approve-form-right {
  width: 50%;
  padding: 20px;
  overflow-y: auto;
}
.approve-detail-preview {
  height: 100%;
}
/* 响应式调整 */
@media (max-width: 1200px) {
  .approve-dialog-content {
    flex-direction: column;
    height: auto;
    max-height: 80vh;
  }
  .approve-detail-left,
  .approve-form-right {
    width: 100%;
    height: auto;
  }
  .approve-detail-left {
    border-right: none;
    border-bottom: 1px solid #e4e7ed;
  }
}
/* 响应式设计 */
@media (max-width: 1200px) {
  .approve-dialog {