WXL
13 小时以前 0c03027d7f238bf5beb98e85463f53f0bd92bbaa
src/views/business/transfer/TransportEdit.vue
@@ -7,6 +7,31 @@
    :close-on-click-modal="false"
    @close="handleClose"
  >
    <!-- 案例信息展示区域 -->
    <div v-if="selectedCase && !isEdit" class="selected-case-info">
      <el-alert
        title="关联案例信息"
        type="success"
        :closable="false"
        style="margin-bottom: 16px;"
      />
      <el-card shadow="never" class="case-info-card">
        <el-descriptions :column="2" border>
          <el-descriptions-item label="案例编号">{{ selectedCase.caseNo }}</el-descriptions-item>
          <el-descriptions-item label="患者姓名">{{ selectedCase.name }}</el-descriptions-item>
          <el-descriptions-item label="性别">
            <dict-tag
              :options="dict.type.sys_user_sex"
              :value="selectedCase.sex"
            />
          </el-descriptions-item>
          <el-descriptions-item label="年龄">{{ selectedCase.age }}</el-descriptions-item>
          <el-descriptions-item label="疾病诊断">{{ selectedCase.diagnosisname }}</el-descriptions-item>
          <el-descriptions-item label="治疗医院">{{ selectedCase.treatmenthospitalname }}</el-descriptions-item>
        </el-descriptions>
      </el-card>
    </div>
    <el-form
      ref="editForm"
      :model="formData"
@@ -34,7 +59,8 @@
            <el-form-item label="案例编号" prop="caseNo">
              <el-input
                v-model="formData.caseNo"
                placeholder="请输入案例编号"
                :disabled="true"
                placeholder="自动从案例获取"
              />
            </el-form-item>
          </el-col>
@@ -45,7 +71,8 @@
            <el-form-item label="患者姓名" prop="patName">
              <el-input
                v-model="formData.patName"
                placeholder="请输入患者姓名"
                :disabled="true"
                placeholder="自动从案例获取"
              />
            </el-form-item>
          </el-col>
@@ -53,6 +80,7 @@
            <el-form-item label="性别" prop="sex">
              <el-select
                v-model="formData.sex"
                :disabled="true"
                placeholder="请选择性别"
                style="width: 100%"
              >
@@ -70,7 +98,8 @@
                v-model="formData.age"
                :min="0"
                :max="120"
                placeholder="请输入年龄"
                :disabled="true"
                placeholder="自动从案例获取"
                style="width: 100%"
              />
            </el-form-item>
@@ -79,7 +108,8 @@
            <el-form-item label="疾病诊断" prop="diagnosisname">
              <el-input
                v-model="formData.diagnosisname"
                placeholder="请输入疾病诊断名称"
                :disabled="true"
                placeholder="自动从案例获取"
              />
            </el-form-item>
          </el-col>
@@ -98,7 +128,8 @@
            <el-form-item label="治疗医院" prop="treatmentHospitalName">
              <el-input
                v-model="formData.treatmentHospitalName"
                placeholder="请输入治疗医院名称"
                :disabled="true"
                placeholder="自动从案例获取"
              />
            </el-form-item>
          </el-col>
@@ -372,6 +403,7 @@
    UploadAttachment,
    FilePreviewDialog
  },
  dicts: ["sys_user_sex", "sys_BloodType"],
  props: {
    editOpen: {
      type: Boolean,
@@ -384,6 +416,10 @@
    isEdit: {
      type: Boolean,
      default: false
    },
    selectedCase: {
      type: Object,
      default: null
    }
  },
  data() {
@@ -428,9 +464,18 @@
  watch: {
    editOpen(val) {
      if (val) {
        this.formData = this.isEdit
          ? { ...this.getDefaultFormData(), ...this.transportData }
          : this.getDefaultFormData();
        if (this.isEdit) {
          // 编辑模式,使用传入的转运单数据
          this.formData = { ...this.getDefaultFormData(), ...this.transportData };
        } else {
          // 新增模式
          this.formData = this.getDefaultFormData();
          // 如果有选中的案例,用案例信息填充表单
          if (this.selectedCase) {
            this.fillFormWithCaseData(this.selectedCase);
          }
        }
        this.initAttachmentList();
@@ -438,6 +483,15 @@
          this.$refs.editForm && this.$refs.editForm.clearValidate();
        });
      }
    },
    selectedCase: {
      handler(newVal) {
        if (newVal && !this.isEdit) {
          this.fillFormWithCaseData(newVal);
        }
      },
      deep: true
    }
  },
  methods: {
@@ -472,6 +526,23 @@
        updateBy: undefined,
        updateTime: undefined,
        delFlag: 0
      };
    },
    /** 用案例数据填充表单 */
    fillFormWithCaseData(caseData) {
      this.formData = {
        ...this.formData,
        caseNo: caseData.caseNo || '',
        patName: caseData.name || '',
        sex: caseData.sex || '',
        age: caseData.age || '',
        diagnosisname: caseData.diagnosisname || '',
        treatmentHospitalName: caseData.treatmenthospitalname || '',
        treatmentDeptName: caseData.treatmentdeptname || '',
        // 可以设置一些默认值
        transportStartPlace: caseData.treatmenthospitalname || '',
        contactPerson: caseData.coordinatorName || ''
      };
    },
@@ -526,7 +597,7 @@
          createTime: dayjs().format('YYYY-MM-DD HH:mm:ss'),
          transportId: this.formData.id,
          delFlag: 0,
          caseNo:this.formData.caseNo
          caseNo: this.formData.caseNo
        };
        this.formData.annexfilesList.push(attachmentObj);
@@ -709,13 +780,12 @@
  font-size: 13px;
}
.file-path {
  font-size: 12px;
  color: #909399;
/* 案例信息展示样式 */
.selected-case-info {
  margin-bottom: 20px;
}
::v-deep .el-card__header {
  background: #f5f7fa;
  border-bottom: 1px solid #ebeef5;
.case-info-card {
  border-left: 4px solid #67c23a;
}
</style>