WXL
2026-05-08 6623e51d0b1edb191ca50201c0130cb5ed1beda8
src/views/business/GetWitness/GetWitnessInfo.vue
@@ -1,5 +1,7 @@
<template>
  <div class="organ-procurement-detail">
    <case-basic-info :case-id="caseId" :show-attachment="true" />
    <!-- 基本信息 -->
    <el-card class="detail-card">
      <div slot="header" class="clearfix">
@@ -11,7 +13,6 @@
          <el-button
            type="success"
            @click="handleProcure"
            :disabled="form.recordstate === 'completed'"
            :loading="confirmLoading"
          >
            确认获取
@@ -20,101 +21,6 @@
      </div>
      <el-form :model="form" ref="form" :rules="rules" label-width="120px">
        <el-row :gutter="20">
          <el-col :span="8">
            <el-form-item label="住院号" prop="inpatientno">
              <el-input v-model="form.inpatientno" readonly />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="案例编号" prop="caseNo">
              <el-input v-model="form.caseNo" />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="捐献者姓名" prop="name">
              <el-input v-model="form.name" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="20">
          <el-col :span="8">
            <el-form-item label="性别" prop="sex">
              <el-select v-model="form.sex" style="width: 100%">
                <el-option label="男" value="0" />
                <el-option label="女" value="1" />
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="年龄" prop="age">
              <el-input v-model="form.age" />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="捐献类别" prop="donationcategory">
              <el-select v-model="form.donationcategory" style="width: 100%">
                <el-option
                  v-for="dict in dict.type.sys_DonationCategory || []"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value"
                />
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="20">
          <el-col :span="8">
            <el-form-item label="血型" prop="bloodtype">
              <el-select v-model="form.bloodtype" style="width: 100%">
                <el-option
                  v-for="dict in dict.type.sys_BloodType || []"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value"
                />
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="证件号码" prop="idcardno">
              <el-input v-model="form.idcardno" />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="记录状态" prop="recordstate">
              <el-input v-model="form.recordstate" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row :gutter="20">
          <el-col :span="12">
            <el-form-item label="疾病诊断" prop="diagnosisname">
              <el-input
                type="textarea"
                :rows="2"
                v-model="form.diagnosisname"
                placeholder="请输入疾病诊断信息"
              />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="死亡时间" prop="deathtime">
              <el-date-picker
                v-model="form.deathtime"
                type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss"
                style="width: 100%"
                :disabled="form.recordstate === 'completed'"
              />
            </el-form-item>
          </el-col>
        </el-row>
        <!-- 手术相关信息 -->
        <el-divider content-position="left">手术信息</el-divider>
@@ -131,7 +37,6 @@
                type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss"
                style="width: 100%"
                :disabled="form.recordstate === 'completed'"
              />
            </el-form-item>
          </el-col>
@@ -142,7 +47,6 @@
                type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss"
                style="width: 100%"
                :disabled="form.recordstate === 'completed'"
              />
            </el-form-item>
          </el-col>
@@ -159,7 +63,6 @@
                type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss"
                style="width: 100%"
                :disabled="form.recordstate === 'completed'"
              />
            </el-form-item>
          </el-col>
@@ -173,7 +76,6 @@
                type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss"
                style="width: 100%"
                :disabled="form.recordstate === 'completed'"
              />
            </el-form-item>
          </el-col>
@@ -181,30 +83,22 @@
        <el-row :gutter="20">
          <el-col :span="8">
            <el-form-item
              label="门静脉插管时间"
              prop="portalveincannulatime"
            >
            <el-form-item label="门静脉插管时间" prop="portalveincannulatime">
              <el-date-picker
                v-model="form.portalveincannulatime"
                type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss"
                style="width: 100%"
                :disabled="form.recordstate === 'completed'"
              />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item
              label="门静脉灌注时间"
              prop="portalveinperfusiontime"
            >
            <el-form-item label="门静脉灌注时间" prop="portalveinperfusiontime">
              <el-date-picker
                v-model="form.portalveinperfusiontime"
                type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss"
                style="width: 100%"
                :disabled="form.recordstate === 'completed'"
              />
            </el-form-item>
          </el-col>
@@ -214,11 +108,11 @@
        <el-divider content-position="left">协调员信息</el-divider>
        <el-row :gutter="20">
          <el-col :span="8">
          <!-- <el-col :span="8">
            <el-form-item label="协调员姓名" prop="coordinatorName">
              <el-input v-model="form.coordinatorName" />
            </el-form-item>
          </el-col>
          </el-col> -->
          <el-col :span="8">
            <el-form-item label="进手术室时间" prop="coordinatorInOperating">
              <el-date-picker
@@ -226,7 +120,6 @@
                type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss"
                style="width: 100%"
                :disabled="form.recordstate === 'completed'"
              />
            </el-form-item>
          </el-col>
@@ -237,7 +130,6 @@
                type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss"
                style="width: 100%"
                :disabled="form.recordstate === 'completed'"
              />
            </el-form-item>
          </el-col>
@@ -256,7 +148,6 @@
                type="datetime"
                value-format="yyyy-MM-dd HH:mm:ss"
                style="width: 100%"
                :disabled="form.recordstate === 'completed'"
              />
            </el-form-item>
          </el-col>
@@ -304,33 +195,6 @@
            </el-form-item>
          </el-col>
        </el-row>
        <!-- 记录信息 -->
        <el-divider content-position="left">记录信息</el-divider>
        <el-row :gutter="20">
          <el-col :span="8">
            <el-form-item label="住院号" prop="donorno">
              <el-input v-model="form.donorno" readonly />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="所在医疗机构" prop="treatmenthospitalname">
              <el-input
                v-model="form.treatmenthospitalname"
                placeholder="请输入医疗机构名称"
              />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="医疗机构编码" prop="treatmenthospitalno">
              <el-input
                v-model="form.treatmenthospitalno"
                placeholder="请输入医疗机构编码"
              />
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
    </el-card>
@@ -339,13 +203,15 @@
      <div slot="header" class="clearfix">
        <span class="detail-title">器官获取记录</span>
        <div style="float: right;">
          <el-tag
            :type="
              form.recordstate === 'completed' ? 'success' : 'warning'
            "
          <!-- <el-tag
            :type="form.witnessState === 'completed' ? 'success' : 'warning'"
          >
            {{ form.recordstate === "completed" ? "已完成" : "进行中" }}
          </el-tag>
            {{ form.witnessState === "completed" ? "已完成" : "进行中" }}
          </el-tag> -->
          <dict-tag
            :options="dict.type.sys_user_sex"
            :value="form.witnessState"
          />
        </div>
      </div>
@@ -366,7 +232,6 @@
                  v-for="dict in dict.type.sys_Organ || []"
                  :key="dict.value"
                  :label="dict.value"
                  :disabled="form.recordstate === 'completed'"
                >
                  {{ dict.label }}
                </el-checkbox>
@@ -415,7 +280,6 @@
                      type="datetime"
                      value-format="yyyy-MM-dd HH:mm:ss"
                      placeholder="选择获取开始时间"
                      :disabled="form.recordstate === 'completed'"
                    />
                  </template>
                </el-table-column>
@@ -424,18 +288,17 @@
                  label="器官离体时间"
                  align="center"
                  width="180"
                  prop="organGetTime"
                  prop="organgettime"
                >
                  <template slot-scope="scope">
                    <el-date-picker
                      clearable
                      size="small"
                      style="width: 100%"
                      v-model="scope.row.organGetTime"
                      v-model="scope.row.organgettime"
                      type="datetime"
                      value-format="yyyy-MM-dd HH:mm:ss"
                      placeholder="选择器官离体时间"
                      :disabled="form.recordstate === 'completed'"
                    />
                  </template>
                </el-table-column>
@@ -444,14 +307,13 @@
                  label="获取医院"
                  align="center"
                  width="200"
                  prop="gainHospitalNo"
                  prop="gainhospitalno"
                >
                  <template slot-scope="scope">
                    <el-select
                      v-model="scope.row.gainHospitalNo"
                      v-model="scope.row.gainhospitalno"
                      placeholder="请选择获取医院"
                      style="width: 100%"
                      :disabled="form.recordstate === 'completed'"
                      @change="handleHospitalChange(scope.row, $event)"
                    >
                      <el-option
@@ -468,18 +330,17 @@
                  label="获取医师"
                  align="center"
                  width="120"
                  prop="organGetDoctor"
                  prop="organgetdoct"
                >
                  <template slot-scope="scope">
                    <el-input
                      v-model="scope.row.organGetDoctor"
                      v-model="scope.row.organgetdoct"
                      placeholder="获取医师"
                      :disabled="form.recordstate === 'completed'"
                    />
                  </template>
                </el-table-column>
                <el-table-column
                <!-- <el-table-column
                  label="助手"
                  align="center"
                  width="120"
@@ -489,12 +350,12 @@
                    <el-input
                      v-model="scope.row.assistant"
                      placeholder="助手"
                      :disabled="form.recordstate === 'completed'"
                    />
                  </template>
                </el-table-column>
                </el-table-column> -->
                <el-table-column
                <!-- <el-table-column
                  label="获取护士"
                  align="center"
                  width="120"
@@ -504,7 +365,7 @@
                    <el-input
                      v-model="scope.row.procurementNurse"
                      placeholder="获取护士"
                      :disabled="form.recordstate === 'completed'"
                    />
                  </template>
                </el-table-column>
@@ -519,41 +380,25 @@
                    <el-input
                      v-model="scope.row.operatingRoomNurse"
                      placeholder="手术室护士"
                      :disabled="form.recordstate === 'completed'"
                    />
                  </template>
                </el-table-column>
                <el-table-column
                  label="麻醉医生"
                  align="center"
                  width="120"
                  prop="anesthesiologist"
                >
                  <template slot-scope="scope">
                    <el-input
                      v-model="scope.row.anesthesiologist"
                      placeholder="麻醉医生"
                      :disabled="form.recordstate === 'completed'"
                    />
                  </template>
                </el-table-column>
                </el-table-column> -->
                <el-table-column
                  label="获取状态"
                  align="center"
                  width="120"
                  prop="organState"
                  prop="organstate"
                >
                  <template slot-scope="scope">
                    <el-select
                      v-model="scope.row.organState"
                      v-model="scope.row.organstate"
                      placeholder="请选择获取状态"
                      style="width: 100%"
                      :disabled="form.recordstate === 'completed'"
                    >
                      <el-option
                        v-for="dict in organStateList"
                        v-for="dict in dict.type.Obtain_status"
                        :key="dict.value"
                        :label="dict.label"
                        :value="dict.value"
@@ -565,16 +410,15 @@
                <el-table-column
                  label="说明"
                  align="center"
                  prop="notGetReason"
                  prop="notgetreason"
                  min-width="200"
                >
                  <template slot-scope="scope">
                    <el-input
                      type="textarea"
                      clearable
                      v-model="scope.row.notGetReason"
                      v-model="scope.row.notgetreason"
                      placeholder="请输入未获取说明"
                      :disabled="form.recordstate === 'completed'"
                    />
                  </template>
                </el-table-column>
@@ -584,7 +428,6 @@
                  align="center"
                  width="120"
                  class-name="small-padding fixed-width"
                  v-if="form.recordstate !== 'completed'"
                >
                  <template slot-scope="scope">
                    <el-button
@@ -603,16 +446,22 @@
        </el-row>
        <!-- 获取统计信息 -->
        <div
        <!-- <div
          class="procurement-stats"
          v-if="procurementData.serviceDonationwitnessorgans && procurementData.serviceDonationwitnessorgans.length > 0"
          v-if="
            procurementData.serviceDonationwitnessorgans &&
              procurementData.serviceDonationwitnessorgans.length > 0
          "
        >
          <el-row :gutter="20">
            <el-col :span="6">
              <div class="stat-item">
                <span class="stat-label">已获取器官:</span>
                <span class="stat-value"
                  >{{ procurementData.serviceDonationwitnessorgans.length }} 个</span
                  >{{
                    procurementData.serviceDonationwitnessorgans.length
                  }}
                  个</span
                >
              </div>
            </el-col>
@@ -634,48 +483,26 @@
                <span class="stat-value">
                  <el-tag
                    :type="
                      form.recordstate === 'completed'
                        ? 'success'
                        : 'warning'
                      form.witnessState === 'completed' ? 'success' : 'warning'
                    "
                  >
                    {{
                      form.recordstate === "completed"
                        ? "已完成"
                        : "进行中"
                    }}
                    {{ form.witnessState === "completed" ? "已完成" : "进行中" }}
                  </el-tag>
                </span>
              </div>
            </el-col>
          </el-row>
        </div>
        </div> -->
        <div v-else class="empty-procurement">
        <div
          v-if="!procurementData.serviceDonationwitnessorgans"
          class="empty-procurement"
        >
          <el-empty description="暂无获取记录" :image-size="80">
            <span>请先选择要获取的器官</span>
          </el-empty>
        </div>
      </el-form>
      <div class="dialog-footer" v-if="form.recordstate !== 'completed'">
        <el-button
          type="primary"
          @click="handleSaveProcurement"
          :loading="saveLoading"
          :disabled="!procurementData.serviceDonationwitnessorgans || procurementData.serviceDonationwitnessorgans.length === 0"
        >
          保存获取记录
        </el-button>
        <el-button
          type="success"
          @click="handleConfirmProcurement"
          :loading="confirmLoading"
          :disabled="incompleteRecords > 0"
        >
          确认完成获取
        </el-button>
      </div>
    </el-card>
    <!-- 附件管理部分优化 -->
@@ -702,10 +529,7 @@
      />
      <!-- 附件列表展示 -->
      <div
        class="attachment-list"
        v-if="attachments && attachments.length > 0"
      >
      <div class="attachment-list" v-if="attachments && attachments.length > 0">
        <div class="list-title">已上传附件 ({{ attachments.length }})</div>
        <el-table :data="attachments" style="width: 100%" size="small">
          <el-table-column label="文件名" min-width="200">
@@ -779,9 +603,9 @@
          </el-col>
          <el-col :span="12">
            <el-form-item label="获取状态">
              <el-select v-model="currentRecord.organState" style="width: 100%">
              <el-select v-model="currentRecord.organstate" style="width: 100%">
                <el-option
                  v-for="dict in organStateList"
                  v-for="dict in dict.type.Obtain_status"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value"
@@ -795,7 +619,7 @@
          <el-col :span="12">
            <el-form-item label="获取医师">
              <el-input
                v-model="currentRecord.organGetDoctor"
                v-model="currentRecord.organgetdoct"
                placeholder="请输入获取医师"
              />
            </el-form-item>
@@ -838,12 +662,12 @@
        <el-form-item
          label="未获取说明"
          v-if="currentRecord.organState === '0'"
          v-if="currentRecord.organstate === '0'"
        >
          <el-input
            type="textarea"
            :rows="3"
            v-model="currentRecord.notGetReason"
            v-model="currentRecord.notgetreason"
            placeholder="请输入未获取的原因说明"
          />
        </el-form-item>
@@ -864,10 +688,17 @@
    >
      <div v-if="currentPreviewFile">
        <div v-if="currentPreviewFile.fileType === 'image'">
          <img :src="currentPreviewFile.fileUrl" style="max-width: 100%; max-height: 500px;" />
          <img
            :src="currentPreviewFile.fileUrl"
            style="max-width: 100%; max-height: 500px;"
          />
        </div>
        <div v-else-if="currentPreviewFile.fileType === 'pdf'">
          <iframe :src="currentPreviewFile.fileUrl" width="100%" height="500px"></iframe>
          <iframe
            :src="currentPreviewFile.fileUrl"
            width="100%"
            height="500px"
          ></iframe>
        </div>
        <div v-else>
          <p>不支持预览此文件类型,请下载查看</p>
@@ -880,23 +711,31 @@
<script>
import { witnessList, witnessadd, witnessedit } from "@/api/businessApi";
import UploadAttachment from "@/components/UploadAttachment";
import CaseBasicInfo from "@/components/CaseBasicInfo";
import dayjs from "dayjs";
export default {
  name: "OrganProcurementDetail",
  components: {
    UploadAttachment
    UploadAttachment,
    CaseBasicInfo
  },
  dicts: ["sys_BloodType", "sys_DonationCategory", "sys_Organ"],
  dicts: [
    "sys_BloodType",
    "sys_DonationCategory",
    "sys_Organ",
    "Obtain_status"
  ],
  data() {
    return {
      caseId: null,
      // 表单数据
      form: {
        id: undefined,
        infoid: undefined,
        name: "",
        inpatientno: "",
        recordstate: "pending",
        witnessState: "2",
        caseNo: "",
        donorno: "",
        treatmenthospitalname: "",
@@ -969,12 +808,6 @@
      selectedOrgans: [],
      // 医院列表
      hospitalList: [],
      // 器官状态列表
      organStateList: [
        { value: "1", label: "已获取" },
        { value: "0", label: "未获取" },
        { value: "2", label: "部分获取" }
      ],
      // 获取记录数据
      procurementData: {
        serviceDonationwitnessorgans: []
@@ -984,7 +817,8 @@
      attachmentFileList: [],
      // 附件相关配置
      attachmentLimit: 10,
      attachmentAccept: ".pdf,.jpg,.jpeg,.png,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.txt",
      attachmentAccept:
        ".pdf,.jpg,.jpeg,.png,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.txt",
      // 编辑对话框
      editDialogVisible: false,
      currentRecord: {},
@@ -1006,16 +840,16 @@
      return this.procurementData.serviceDonationwitnessorgans.filter(
        record =>
          !record.organStartTime ||
          !record.organGetTime ||
          !record.gainHospitalNo ||
          !record.organGetDoctor
          !record.organgettime ||
          !record.gainhospitalno ||
          !record.organgetdoct
      ).length;
    },
    // 唯一医院数量
    uniqueHospitals() {
      if (!this.procurementData.serviceDonationwitnessorgans) return 0;
      const hospitals = this.procurementData.serviceDonationwitnessorgans
        .map(record => record.gainHospitalNo)
        .map(record => record.gainhospitalno)
        .filter(Boolean);
      return new Set(hospitals).size;
    },
@@ -1041,6 +875,8 @@
    }
  },
  created() {
    this.caseId = this.$route.query.infoid;
    this.initData();
  },
  methods: {
@@ -1061,7 +897,7 @@
      }
      this.form.infoid = infoid;
      this.generateDonorNo();
      // this.generateDonorNo();
      if (infoid) {
        this.getDetail(infoid);
@@ -1070,12 +906,12 @@
      this.getHospitalData();
    },
    // 生成捐献者编号
    generateDonorNo() {
      const timestamp = Date.now().toString();
      this.form.donorno = "D" + timestamp.slice(-8);
      this.form.caseNo = "CASE" + timestamp.slice(-6);
      this.form.inpatientno = "IP" + timestamp.slice(-6);
    },
    // generateDonorNo() {
    //   const timestamp = Date.now().toString();
    //   this.form.donorno = "D" + timestamp.slice(-8);
    //   this.form.caseNo = "CASE" + timestamp.slice(-6);
    //   this.form.inpatientno = "IP" + timestamp.slice(-6);
    // },
    // 获取详情
    async getDetail(infoid) {
      this.loading = true;
@@ -1087,12 +923,16 @@
          response.data.length > 0
        ) {
          const data = response.data[0];
          if (!data.witnessState || data.witnessState == 1) {
            data.witnessState = "2";
          }
          // 填充表单数据
          Object.assign(this.form, data);
          // 初始化附件
          if (this.form.attachments) {
          if (this.form.deathjudgeannex) {
            this.form.attachments = JSON.parse(this.form.deathjudgeannex);
            this.attachments = Array.isArray(this.form.attachments)
              ? [...this.form.attachments]
              : [];
@@ -1210,7 +1050,10 @@
        );
      }
      // 如果选择了"左肾"或"右肾",取消"双肾"选择
      else if (selectedValues.includes("C64L") || selectedValues.includes("C64R")) {
      else if (
        selectedValues.includes("C64L") ||
        selectedValues.includes("C64R")
      ) {
        this.selectedOrgans = selectedValues.filter(item => item !== "C64");
      }
@@ -1221,7 +1064,10 @@
        );
      }
      // 如果选择了"左肺"或"右肺",取消"全肺"选择
      else if (selectedValues.includes("C34L") || selectedValues.includes("C34R")) {
      else if (
        selectedValues.includes("C34L") ||
        selectedValues.includes("C34R")
      ) {
        this.selectedOrgans = selectedValues.filter(item => item !== "C34");
      }
    },
@@ -1235,16 +1081,16 @@
        organname: organName,
        organno: organValue,
        organStartTime: "",
        organGetTime: "",
        gainHospitalNo: "",
        gainHospitalName: "",
        organGetDoctor: "",
        organgettime: "",
        gainhospitalno: "",
        gainhospitalname: "",
        organgetdoct: "",
        assistant: "",
        procurementNurse: "",
        operatingRoomNurse: "",
        anesthesiologist: "",
        organState: "1",
        notGetReason: ""
        organstate: "1",
        notgetreason: ""
      });
    },
@@ -1254,7 +1100,7 @@
        item => item.hospitalNo === hospitalNo
      );
      if (hospital) {
        row.gainHospitalName = hospital.hospitalName;
        row.gainhospitalname = hospital.hospitalName;
      }
    },
    // 编辑获取记录
@@ -1271,7 +1117,9 @@
    // 确认编辑
    handleEditConfirm() {
      if (this.currentEditIndex !== -1) {
        this.procurementData.serviceDonationwitnessorgans[this.currentEditIndex] = {
        this.procurementData.serviceDonationwitnessorgans[
          this.currentEditIndex
        ] = {
          ...this.currentRecord
        };
        this.$message.success("获取记录更新成功");
@@ -1282,9 +1130,9 @@
    getOrganRowClassName({ row }) {
      if (
        !row.organStartTime ||
        !row.organGetTime ||
        !row.gainHospitalNo ||
        !row.organGetDoctor
        !row.organgettime ||
        !row.gainhospitalno ||
        !row.organgetdoct
      ) {
        return "warning-row";
      }
@@ -1298,9 +1146,9 @@
          try {
            const saveData = {
              ...this.form,
              attachments: this.attachments,
              deathjudgeannex: JSON.stringify(this.attachments),
              organdonation: this.selectedOrgans.join(","),
              serviceDonationwitnessorgans:
              serviceDonationwitnessorganList:
                this.procurementData.serviceDonationwitnessorgans || []
            };
@@ -1374,11 +1222,13 @@
      })
        .then(async () => {
          this.confirmLoading = true;
          this.form.recordstate = "completed";
          this.form.operationendtime = this.form.operationendtime || new Date()
            .toISOString()
            .replace("T", " ")
            .substring(0, 19);
          this.form.witnessState = "3";
          this.form.operationendtime =
            this.form.operationendtime ||
            new Date()
              .toISOString()
              .replace("T", " ")
              .substring(0, 19);
          try {
            const saveData = {
@@ -1397,13 +1247,13 @@
              this.$message.error(
                "确认获取失败:" + (response.msg || "未知错误")
              );
              this.form.recordstate = "pending";
              this.form.witnessState = "2";
              this.form.operationendtime = "";
            }
          } catch (error) {
            console.error("确认获取失败:", error);
            this.$message.error("确认获取失败");
            this.form.recordstate = "pending";
            this.form.witnessState = "2";
            this.form.operationendtime = "";
          } finally {
            this.confirmLoading = false;
@@ -1503,7 +1353,10 @@
    /** 获取文件类型 */
    getFileType(fileName) {
      if (!fileName) return "other";
      const extension = fileName.split(".").pop().toLowerCase();
      const extension = fileName
        .split(".")
        .pop()
        .toLowerCase();
      const imageTypes = ["jpg", "jpeg", "png", "gif", "bmp", "webp"];
      const pdfTypes = ["pdf"];
      const officeTypes = ["doc", "docx", "xls", "xlsx", "ppt", "pptx"];
@@ -1557,7 +1410,10 @@
    /** 获取文件扩展名 */
    getFileExtension(filename) {
      return filename.split(".").pop().toLowerCase();
      return filename
        .split(".")
        .pop()
        .toLowerCase();
    },
    /** 格式化文件大小 */