WXL
18 小时以前 9b2c74ee4f08fad01c2a16bc6e36df073bfa1dd5
src/views/business/transfer/index.vue
@@ -148,18 +148,25 @@
    >
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column label="序号" type="index" width="60" align="center" />
      <el-table-column
        label="转运单号"
        align="center"
        prop="reportId"
        width="140"
      />
      <el-table-column
        label="案例编号"
        align="center"
        prop="caseNo"
        width="140"
      />
      <el-table-column
        label="转运状态"
        align="center"
        prop="transitStatus"
        width="100"
      >
        <template slot-scope="scope">
          <el-tag :type="getStatusTagType(scope.row.transitStatus)">
            {{ getStatusText(scope.row.transitStatus) }}
          </el-tag>
        </template>
      </el-table-column>
      <el-table-column label="患者信息" align="center" width="260">
        <template slot-scope="scope">
          <div class="donor-info">
@@ -199,18 +206,7 @@
        prop="contactPerson"
        width="100"
      />
      <el-table-column
        label="转运状态"
        align="center"
        prop="transitStatus"
        width="100"
      >
        <template slot-scope="scope">
          <el-tag :type="getStatusTagType(scope.row.transitStatus)">
            {{ getStatusText(scope.row.transitStatus) }}
          </el-tag>
        </template>
      </el-table-column>
      <el-table-column
        label="创建时间"
        align="center"
@@ -310,7 +306,10 @@
              />
            </el-form-item>
            <el-form-item>
              <el-button type="primary" icon="el-icon-search" @click="searchCaseList"
              <el-button
                type="primary"
                icon="el-icon-search"
                @click="searchCaseList"
                >搜索</el-button
              >
              <el-button icon="el-icon-refresh" @click="resetCaseSearch"
@@ -328,8 +327,18 @@
            highlight-current-row
            style="width: 100%"
          >
            <el-table-column label="案例编号" prop="caseNo" width="150" align="center" />
            <el-table-column label="患者姓名" prop="name" width="120" align="center" />
            <el-table-column
              label="案例编号"
              prop="caseNo"
              width="150"
              align="center"
            />
            <el-table-column
              label="患者姓名"
              prop="name"
              width="120"
              align="center"
            />
            <el-table-column label="性别" width="80" align="center">
              <template slot-scope="scope">
                <dict-tag
@@ -338,7 +347,12 @@
                />
              </template>
            </el-table-column>
            <el-table-column label="年龄" prop="age" width="80" align="center" />
            <el-table-column
              label="年龄"
              prop="age"
              width="80"
              align="center"
            />
            <el-table-column label="血型" width="80" align="center">
              <template slot-scope="scope">
                <dict-tag
@@ -347,15 +361,24 @@
                />
              </template>
            </el-table-column>
            <el-table-column label="疾病诊断" prop="diagnosisname" min-width="200" show-overflow-tooltip />
            <el-table-column label="治疗医院" prop="treatmenthospitalname" width="150" />
            <el-table-column
              label="疾病诊断"
              prop="diagnosisname"
              min-width="200"
              show-overflow-tooltip
            />
            <el-table-column
              label="治疗医院"
              prop="treatmenthospitalname"
              width="150"
            />
            <el-table-column label="是否已转运" width="100" align="center">
              <template slot-scope="scope">
                <el-tag
                  :type="hasTransport(scope.row) ? 'danger' : 'success'"
                  size="small"
                >
                  {{ hasTransport(scope.row) ? '已转运' : '可转运' }}
                  {{ hasTransport(scope.row) ? "已转运" : "可转运" }}
                </el-tag>
              </template>
            </el-table-column>
@@ -407,11 +430,7 @@
      append-to-body
    >
      <div class="action-confirm">
        <p>
          确定要{{ actionText }}转运单 "{{
            currentTransport.reportId || currentTransport.id
          }}" 吗?
        </p>
        <p>确定要{{ actionText }}转运单 "{{ currentTransport.id }}" 吗?</p>
      </div>
      <div slot="footer" class="dialog-footer">
        <el-button @click="actionOpen = false">取 消</el-button>
@@ -426,7 +445,7 @@
  transportList,
  transportAdd,
  transportEdit,
  transportDelete,
  transportDel,
  transportInfo,
  donateList
} from "@/api/businessApi/index";
@@ -439,7 +458,6 @@
  dicts: ["sys_user_sex", "sys_BloodType"],
  data() {
    return {
      // 遮罩层
      loading: false,
      // 选中数组
@@ -498,16 +516,16 @@
        pageNum: 1,
        pageSize: 10,
        caseNo: undefined,
        patName: undefined,
        patName: undefined
        // 只查询已同意且需要转运的案例
        // reportStatus: "3", // 已同意
        isTransport: "2"   // 需要转运
        // isTransport: "2" // 需要转运
      }
    };
  },
  created() {
    this.getList();
     this.checkAutoCreate();
    // this.getList();
    this.checkAutoCreate();
  },
  methods: {
    /** 查询转运单列表 */
@@ -544,28 +562,33 @@
        this.loading = false;
      }
    },
  checkAutoCreate() {
    const query = this.$route.query;
    if (query.autoCreate === 'true') {
      // 自动打开案例选择弹框
      this.selectCaseOpen = true;
      this.resetCaseSearch();
      // 如果有特定的案例编号,可以预先搜索
      if (query.caseNo) {
        this.caseQueryParams.caseNo = query.caseNo;
        this.searchCaseList();
    checkAutoCreate() {
      const query = this.$route.query;
      // 上报跳转过来进行处理
      if (query.autoCreate === "true") {
        // 如果有特定的案例编号,可以预先搜索
        if (query.caseNo) {
          // this.selectCaseOpen = true;
          this.resetCaseSearch(1);
          this.caseQueryParams.caseNo = query.caseNo;
          this.searchCaseList(1);
        } else {
          this.queryParams.patName = query.patName;
        }
      }
    }
  },
      this.getList();
    },
    /** 搜索可用案例 */
    async searchCaseList() {
    async searchCaseList(type) {
      this.caseLoading = true;
      try {
        const response = await donateList(this.caseQueryParams);
        if (response.code === 200) {
          this.availableCaseList = response.rows || response.data || [];
          this.caseTotal = response.total || 0;
          if (type == 1 && response.data[0]) {
            this.selectCase(response.data[0]);
          }
        } else {
          this.$modal.msgError(response.msg || "获取案例列表失败");
        }
@@ -578,7 +601,7 @@
    },
    /** 重置案例搜索 */
    resetCaseSearch() {
    resetCaseSearch(type) {
      this.caseQueryParams = {
        pageNum: 1,
        pageSize: 10,
@@ -587,15 +610,22 @@
        // reportStatus: "3",
        isTransport: "2"
      };
      this.searchCaseList();
      if (!type) {
        this.searchCaseList();
      } else {
        // 跨页面新增取消限制
        this.caseQueryParams.isTransport = null;
      }
    },
    /** 判断案例是否已有转运单 */
    hasTransport(caseData) {
      // 检查案例是否有转运信息
      if (caseData.serviceTransport &&
          Array.isArray(caseData.serviceTransport) &&
          caseData.serviceTransport.length > 0) {
      if (
        caseData.serviceTransport &&
        Array.isArray(caseData.serviceTransport) &&
        caseData.serviceTransport.length > 0
      ) {
        return true;
      }
      return false;
@@ -613,27 +643,31 @@
      // 打开转运单编辑页面,并传入选中的案例
      this.currentTransport = this.convertCaseToTransport(caseData);
      console.log(this.currentTransport, "currentTransport");
      this.isEditing = false;
      this.editOpen = true;
    },
    /** 将案例信息转换为转运单格式 */
    convertCaseToTransport(caseData) {
      console.log(caseData, "2");
      return {
        caseNo: caseData.caseNo,
        patName: caseData.name,
        sex: caseData.sex,
        age: caseData.age,
        diagnosisname: caseData.diagnosisname,
        reportId: caseData.id,
        treatmentHospitalName: caseData.treatmenthospitalname,
        treatmentDeptName: caseData.treatmentdeptname,
        // 其他字段可以根据需要从案例中获取
        transportStartPlace: caseData.treatmenthospitalname || '',
        contactPerson: caseData.coordinatorName || '',
        transportStartPlace: caseData.treatmenthospitalname || "",
        contactPerson: caseData.coordinatorName || "",
        transitStatus: 1, // 默认待转运
        // 清空其他字段
        id: undefined,
        reportId: undefined,
        transportStartTime: undefined,
        doctor: undefined,
        doctorPhone: undefined,
@@ -685,7 +719,7 @@
    // 多选框选中数据
    handleSelectionChange(selection) {
      this.ids = selection.map(item => item.reportId || item.id);
      this.ids = selection.map(item => item.id);
      this.single = selection.length !== 1;
      this.multiple = !selection.length;
    },
@@ -713,7 +747,7 @@
    /** 详情按钮操作 */
    handleDetail(row) {
      this.currentTransport = row;
      this.detailTitle = `转运单详情 - ${row.reportId || row.id}`;
      this.detailTitle = `转运单详情 - ${row.id}`;
      this.detailOpen = true;
    },
@@ -766,7 +800,7 @@
    async confirmAction() {
      try {
        let requestData = {
          id: this.currentTransport.id || this.currentTransport.reportId
          id: this.currentTransport.id
        };
        if (this.actionText === "开始") {
@@ -799,7 +833,7 @@
          '是否确认删除转运单编号为"' + ids + '"的数据项?'
        );
        const response = await transportDelete(ids);
        const response = await transportDel(ids);
        if (response.code === 200) {
          this.$modal.msgSuccess("删除成功");
@@ -903,7 +937,7 @@
.donor-info {
  text-align: center;
  display: flex;
  justify-content: center
  justify-content: center;
}
.donor-name {