1
lkk
2025-06-05 bbbc81e677639ccc30944eb84de36c3bb5867256
src/views/doctor/checkAll/index.vue
@@ -1,6 +1,7 @@
<template>
  <div class="mainbox">
    <el-form :model="queryParams" ref="tableList" :inline="true" label-width="76px" style="margin-top: 10px">
    <el-form :model="queryParams" ref="tableList" :inline="true" label-width="76px" style="margin-top: 10px"
      v-if="tjStatus == 0">
      <el-form-item label="姓名" prop="name">
        <el-input v-model="queryParams.name" style="width: 120px" placeholder="请输入姓名" clearable
          @keyup.enter.native="submitForm"></el-input>
@@ -21,10 +22,68 @@
          <el-option v-for="dict in CompanyList" :key="dict.drugManufacturerId" :label="dict.cnName" :value="dict" />
        </el-select>
      </el-form-item>
      <el-form-item label="体检类别">
        <el-select style="width: 200px" v-model="queryParams.tjCategory" placeholder="请选择体检类别">
          <el-option v-for="dict in dict.type.dict_tjtype" :key="dict.value" :label="dict.label"
            :value="dict.value"></el-option>
        </el-select>
        <!-- <el-input v-model="form.category" placeholder="请输入体检类别" /> -->
      </el-form-item>
      <el-form-item>
        <el-button type="primary" size="mini" @click="submitForm" style="margin-right: 15px">搜索</el-button>
        <el-button size="mini" @click="resetQuery">重置</el-button>
      </el-form-item>
    </el-form>
    <el-form :model="queryParams" ref="tableList" :inline="true" label-width="76px" style="margin-top: 10px"
      v-if="tjStatus == 1">
      <el-form-item label="姓名" prop="name">
        <el-input v-model="queryParams.name" style="width: 120px" placeholder="请输入姓名" clearable
          @keyup.enter.native="submitForm"></el-input>
      </el-form-item>
      <el-form-item label="体检号" prop="tjNumber">
        <el-input ref="inputName" v-model="queryParams.tjNumber" style="width: 180px" placeholder="请输入体检号" clearable
          @keyup.enter.native="submitForm" @blur="hb"></el-input>
      </el-form-item>
      <el-form-item label="单位名称" prop="tjCompName" style="margin-left: 20px">
        <el-select :remote-method="getRemoteData" v-model="queryParams.tjCompName" value-key="drugManufacturerId"
          style="width: 180px" remote filterable placeholder="请选择单位名称" clearable @change="searchSelect">
          <el-option v-for="dict in CompanyList" :key="dict.drugManufacturerId" :label="dict.cnName" :value="dict" />
        </el-select>
      </el-form-item>
      <el-form-item label="审核医师" prop="shys">
        <el-input ref="inputName" v-model="queryParams.shys" style="width: 180px" placeholder="请输入审核医师" clearable
          @keyup.enter.native="submitForm"></el-input>
      </el-form-item>
       <el-form-item label="体检类别">
        <el-select style="width: 200px" v-model="queryParams.tjCategory" placeholder="请选择体检类别">
          <el-option v-for="dict in dict.type.dict_tjtype" :key="dict.value" :label="dict.label"
            :value="dict.value"></el-option>
        </el-select>
        <!-- <el-input v-model="form.category" placeholder="请输入体检类别" /> -->
      </el-form-item>
      <el-form-item>
        <el-button type="primary" size="mini" @click="submitForm" style="margin-right: 15px">搜索</el-button>
        <el-button size="mini" @click="resetQuery">重置</el-button>
        <el-button type="primary" size="mini" @click="toggleCollapse" style="margin-right: 15px"
          v-show="isCollapsed == 0">高级搜索</el-button>
        <el-button type="primary" size="mini" @click="toggleCollapse3" style="margin-right: 15px"
          v-show="isCollapsed == 1">高级搜索</el-button>
      </el-form-item>
      <el-row v-show="isCollapsed == 1" :gutter="20">
        <el-col :span="8">
          <el-form-item label="体检时间" prop="tjTime">
            <el-date-picker v-model="startTime" type="datetimerange" align="right" :picker-options="pickerOptions"
              style="width: 310px" start-placeholder="开始日期" end-placeholder="结束日期"
              :default-time="['00:00:00', '23:00:00']" format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm"
              @change="dateChangebirthday1">
            </el-date-picker>
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
    <el-radio-group v-model="tjStatus" @input="radioChange" style="margin-left: 20px">
@@ -51,11 +110,13 @@
        <el-table-column label="电话" align="center" prop="cusPhone" :show-overflow-tooltip="true" width="130px" />
        <el-table-column label="审核时间" align="center" prop="shsj" :show-overflow-tooltip="true" width="180px" />
        <el-table-column label="完成时间" align="center" prop="finishTime" :show-overflow-tooltip="true" width="160px" />
        <el-table-column label="状态" align="center" prop="tjStatus" :show-overflow-tooltip="true" width="120px">
          <template slot-scope="scope">
        <el-table-column label="状态" align="center" prop="tjStatus" :show-overflow-tooltip="true" width="120px"
          v-if="tjStatus == 0">
          <template slot-scope="scope" v-if="tjStatus == 0">
            <span>{{ scope.row.tjStatus == "1" ? "已审核" : "未审核" }}</span>
          </template>
        </el-table-column>
        <el-table-column label="审核医师" align="center" prop="shys" width="120px" v-if="tjStatus == 1" />
        <el-table-column label="单位名称" align="center" prop="tjCompName" :show-overflow-tooltip="true" />
        <el-table-column label="体检类别" align="center" prop="tjCategory">
          <template slot-scope="scope">
@@ -96,10 +157,8 @@
          <tr style="border: 1px solid #dfe6ec; border-collapse: collapse; height: 36px;">
            <td style="border: 1px solid #dfe6ec; border-collapse: collapse">姓名:</td>
            <td style="border: 1px solid #dfe6ec; border-collapse: collapse">{{ tableAll.cusName }}</td>
            <td style="border: 1px solid #dfe6ec; border-collapse: collapse">性别:</td>
            <td style="border: 1px solid #dfe6ec; border-collapse: collapse">
              {{ tableAll.cusSex == 0 ? "男" : tableAll.cusSex == 1 ? "女" : "未知" }}
            </td>
            <td style="border: 1px solid #dfe6ec; border-collapse: collapse">性别:{{ tableAll.cusSex == 0 ? "男" : tableAll.cusSex == 1 ? "女" : "未知" }}</td>
            <td style="border: 1px solid #dfe6ec; border-collapse: collapse">年龄:{{ tableAll.age }}</td>
          </tr>
          <tr style="border: 1px solid #dfe6ec; border-collapse: collapse; height: 36px;">
            <td style="border: 1px solid #dfe6ec; border-collapse: collapse">体检单号:</td>
@@ -230,11 +289,10 @@
            <el-form v-if="tableAll && tableAll.tjCategory === '02'" ref="numberValidateForm" label-width="80px"
              class="demo-ruleForm">
              <el-form-item label="检查结论">
                <el-input type="textarea" placeholder="请输入内容" v-model="textarea1" :rows="3"
                  style="width: 96%"></el-input>
                <el-input type="textarea" placeholder="请输入内容" v-model="zhiyeJl" :rows="3" style="width: 96%"></el-input>
              </el-form-item>
              <el-form-item label="体检结果">
                <el-input type="textarea" placeholder="请输入内容" v-model="res" :rows="3" style="width: 96%"></el-input>
                <el-input type="textarea" placeholder="请输入内容" v-model="zhiyeJg" :rows="3" style="width: 96%"></el-input>
              </el-form-item>
            </el-form>
            <div style="margin: 0 0px 10px 15px" v-if="tjproject != '1'">
@@ -400,26 +458,25 @@
                    项目选择
                  </span>
                  <div v-if="xmChange.length > 0" style="display: flex;">
                    <div style="margin:0 40px;font-size: 0.8vw;">项目名称:{{ xmChange[0].pro_name || "" }}</div>
                    <div style="margin:0 40px ;font-size: 0.8vw;">价格:{{ xmChange[0].price || "" }}</div>
                    <div style="margin:0 40px;font-size: 0.8vw;">项目名称:{{ xmChange[0].proName || "" }}</div>
                    <div style="margin:0 80px ;font-size: 0.8vw;">价格:{{ xmChange[0].price || "" }}</div>
                  </div>
                  <div v-else style="display: flex;">
                    <div style="margin:0 40px;font-size: 0.8vw;">项目名称:{{ }}</div>
                    <div style="margin:0 40px ;font-size: 0.8vw;">价格:{{ }}</div>
                    <div style="margin:0 80px ;font-size: 0.8vw;">价格:{{ }}</div>
                  </div>
                  <el-button type="primary" size="mini" @click="handleaddClick()">添加</el-button>
                </div>
                <el-table :row-style="redxiangmu" :data="fcList" style="width: 100%">
                <el-table :row-style="redxiangmu" :data="fcList" style="width: 100%" border>
                  <el-table-column type="selection" width="40" align="center" />
                  <el-table-column label="序号" align="center" prop="index" />
                  <el-table-column label="名称" align="center" prop="pro_name" width="100px" />
                  <el-table-column label="序号" align="center" prop="newID" />
                  <el-table-column label="名称" align="center" prop="proName" width="100px" />
                  <el-table-column label="价格" align="center" prop="price" />
                  <el-table-column label="科室" align="center" prop="dept_name" />
                  <el-table-column label="科室" align="center" prop="deptName" />
                  <el-table-column label="操作" align="center" width="130px">
                    <template slot-scope="scope">
                      <el-button type="primary" icon="el-icon-share" size="mini" @click="handledeleteClick(scope.row)"
                        title="删除"></el-button>
                      <el-button type="primary" size="mini" @click="handledeleteClick(scope.row)">删除</el-button>
                    </template>
                  </el-table-column>
                </el-table>
@@ -721,19 +778,16 @@
    </el-dialog>
    <el-dialog :visible.sync="xmopen" width="800px" append-to-body>
      <el-form ref="form" :model="forms" label-width="80px">
        <el-form-item label="名称" prop="pacName">
          <el-input v-model="forms.pacName" placeholder="请输入名称" />
        </el-form-item>
      </el-form>
      <el-table :data="datasList" ref="elTable" v-loading="loading" @selection-change="handlexmChange" border
        height="320px">
        <el-table-column type="selection" width="40" align="center" />
        <el-table-column label="序号" align="center" prop="pacRemark" />
        <el-table-column label="名称" align="center" prop="pacName" width="100px" />
        <el-table-column label="价格" align="center" prop="price" />
        <el-table-column label="科室" align="center" prop="pacRemark" />
      </el-table>
      <div style="margin: 20px;">
        <el-table :data="datasList" ref="elTable" v-loading="loading" @selection-change="handlexmChange" border
          height="320px">
          <el-table-column type="selection" width="40" align="center" />
          <el-table-column label="名称" align="center" prop="proName" width="100px" />
          <el-table-column label="价格" align="center" prop="price" />
          <el-table-column label="科室" align="center" prop="deptName" />
        </el-table>
      </div>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitFormxm">确 定</el-button>
        <el-button @click="cancels">取 消</el-button>
@@ -767,7 +821,8 @@
  isPdfOrJimu,
  addOrder,
  addOrder1,
  getFcList, UpdFcPro
  getFcList,
  UpdFcPro
} from "@/api/doctor/checkAll";
import { getInfoById } from "@/api/hosp/history";
import { getInfo } from "@/api/login";
@@ -795,6 +850,7 @@
    Prescription,
  },
  dicts: [
    "dict_team",
    "dict_tjtype",
    "sys_user_sex",
    "sys_yes_no",
@@ -808,14 +864,15 @@
  name: "checkAll",
  data() {
    return {
      res: '未发现目标性疾病',
      zhiyeJl: '', // 初始化检查结论为空
      zhiyeJg: '', // 初始化体检结果为默认值
      selectedAdvice: null,
      activeAdviceIndex: 0,
      advicerulesList: [],
      xmChange: [],
      showjianyi: false,
      adviceLoading: false, // 控制表格加载状态
      adviceEmptyText: '暂无数据', // 自定义空数据提示
      adviceLoading: false,
      adviceEmptyText: '暂无数据',
      total1: 0,
      forms: {
        pacName: ""
@@ -825,9 +882,9 @@
      queryParams1: {
        pageNum: 1,
        pageSize: 10,
        zyzd: '', // 建议名称
        zyzd: '',
      },
      adviceCache: new Map(), // 缓存建议数据
      adviceCache: new Map(),
      addNewDialogVisible: false,
      newItem: {
        parentName: '',
@@ -910,6 +967,7 @@
      Testitems: [],
      CheckBox: {},
      startTime: [],
      isCollapsed: 0,
      textarea1: "",
      loading: true,
      selectLettercurrent: " ",
@@ -931,6 +989,8 @@
        compId: null,
        name: null,
        checkStatus: null,
        shys: null,
        tjCategory: null
      },
      formobj: {},
      yichangList: [],
@@ -967,11 +1027,10 @@
  },
  created() {
    console.log(this.dict.type.dict_tjtype, "职业体检"); // 打印字典数据
    console.log(this.dict.type.dict_tjtype, "职业体检");
    this.getConfigKey();
    this.getdate();
  },
  mounted() {
    this.$nextTick(() => {
      this.$refs.inputName.focus();
@@ -989,10 +1048,10 @@
      this.queryParams1.pageNum = 1;
      this.queryParams1.pageSize = 10;
      this.queryParams1.zyzd = '';
      this.selectedAdvice = null; // 重置选中建议
      this.advicerulesList = []; // 清空建议列表
      this.selectedAdvice = null;
      this.advicerulesList = [];
      this.total1 = 0;
      this.adviceCache.clear(); // 清空缓存
      this.adviceCache.clear();
      this.filterAdvices();
      this.showjianyi = true;
    },
@@ -1003,10 +1062,8 @@
        this.queryParams1.pageNum = 1;
      }
      // 生成缓存 key,仅使用 zyzd 和分页参数
      const cacheKey = `${this.queryParams1.zyzd || ''}_${this.queryParams1.pageNum}_${this.queryParams1.pageSize}`;
      // 检查缓存
      if (this.adviceCache.has(cacheKey)) {
        const cachedData = this.adviceCache.get(cacheKey);
        this.advicerulesList = cachedData.rows;
@@ -1015,7 +1072,6 @@
        return;
      }
      // 显示加载状态
      this.adviceLoading = true;
      this.adviceEmptyText = '加载中...';
@@ -1024,13 +1080,11 @@
          this.advicerulesList = response.rows || [];
          this.total1 = response.total || 0;
          // 存入缓存
          this.adviceCache.set(cacheKey, {
            rows: this.advicerulesList,
            total: this.total1,
          });
          // 更新空数据提示
          this.adviceEmptyText = this.advicerulesList.length === 0 ? '暂无匹配的建议' : '暂无数据';
        })
        .catch((error) => {
@@ -1043,10 +1097,18 @@
        .finally(() => {
          this.adviceLoading = false;
        });
    }, 800), // 防抖时间为 800ms
    }, 800),
    handleCurrentChangeAdvice(currentRow) {
      this.selectedAdvice = currentRow;
    },
    toggleCollapse3() {
      this.isCollapsed = 0;
    },
    toggleCollapse() {
      this.isCollapsed = 1;
    },
    applySelectedAdvice() {
@@ -1062,7 +1124,6 @@
      }
    },
    // 取消选择并关闭对话框
    cancelAdviceDialog() {
      this.showjianyi = false;
      this.selectedAdvice = null;
@@ -1073,7 +1134,6 @@
      this.adviceCache.clear();
    },
    // 关闭对话框前的确认
    handleCloseAdviceDialog(done) {
      if (this.selectedAdvice) {
        this.$confirm('您已选择一条建议,确定要关闭吗?', '提示', {
@@ -1201,6 +1261,7 @@
        this.newItem.jcxm = value;
      }
    },
    change(val) {
      console.log('选中的值是:', val);
    },
@@ -1263,52 +1324,50 @@
    },
    handleQuery() {
      this.xmopen = true
      this.xmopen = true;
      let data = {
        tjNum: this.tjNumber,
        type: 0
      }
      };
      getFcList(data).then(res => {
        this.datasList = res.data
      })
        this.datasList = res.data;
      });
    },
    handleaddClick() {
      console.log(this.xmChange)
      console.log(this.xmChange);
      let data = {
        orderId: this.xmChange[0].order_id,
        orderId: this.xmChange[0].orderId,
        data: [{
          proId: this.xmChange[0].pro_id,
          proId: this.xmChange[0].proId,
          type: 1
        }]
      }
      UpdFcPro(data).then(res => {
      })
      };
      UpdFcPro(data).then(res => { });
    },
    handledeleteClick() {
      UpdFcPro(data).then(res => {
      })
      UpdFcPro(data).then(res => { });
    },
    handlexmChange(selection) {
      this.xmChange = []
      this.xmChange = selection
      this.xmChange = [];
      this.xmChange = selection;
      if (selection.length > 1) {
        let del_row = selection.shift();
        this.$refs.elTable.toggleRowSelection(del_row, false); //设置这一行取消选中
        this.$refs.elTable.toggleRowSelection(del_row, false);
      }
    },
    submitFormxm() {
      this.xmopen = false
      this.xmopen = false;
    },
    cancels() {
      this.xmopen = false
      this.xmChange = []
      this.xmopen = false;
      this.xmChange = [];
    },
    getExpends() {
      this.expends = this.yichangList.flatMap(item =>
        item.sone.map(soneItem => soneItem.orderDetailId)
@@ -1330,76 +1389,77 @@
    getRowKeys(row) {
      return row.orderDetailId;
    },
    xiangmuqingkuang() {
  this.loading = true;
  cSWebGetPro(this.tjNumber)
    .then((res) => {
      this.status1 = 1;
      this.statusList = res.data;
      if (this.statusList.length == 0) {
        this.$message.success("暂无项目情况");
      }
    })
    .catch((error) => {
      console.error('获取项目情况失败:', error);
      this.$message.error('获取项目情况失败');
    })
    .finally(() => {
      this.loading = false;
    });
},
      this.loading = true;
      cSWebGetPro(this.tjNumber)
        .then((res) => {
          this.status1 = 1;
          this.statusList = res.data;
          if (this.statusList.length == 0) {
            this.$message.success("暂无项目情况");
          }
        })
        .catch((error) => {
          console.error('获取项目情况失败:', error);
          this.$message.error('获取项目情况失败');
        })
        .finally(() => {
          this.loading = false;
        });
    },
    guanbi() {
      this.drawer = false;
    },
    yichangjieguo() {
  this.loading = true;
  this.status1 = 0;
  yichang({
    tjNum: this.tjNumber,
  })
    .then((res) => {
      this.yichangList = res.data;
      this.yichangList.forEach((item) => {
        item.sone.forEach((soneItem) => {
          if (!Array.isArray(soneItem.advices) || soneItem.advices.length === 0) {
            soneItem.advices = [{ bt: "", nr: "" }];
      this.loading = true;
      this.status1 = 0;
      yichang({
        tjNum: this.tjNumber,
      })
        .then((res) => {
          this.yichangList = res.data;
          this.yichangList.forEach((item) => {
            item.sone.forEach((soneItem) => {
              if (!Array.isArray(soneItem.advices) || soneItem.advices.length === 0) {
                soneItem.advices = [{ bt: "", nr: "" }];
              }
            });
          });
          if (!this.yichangList) {
            this.$message.warning("暂无异常报告");
          }
        })
        .catch((error) => {
          console.error('获取异常结果失败:', error);
          this.$message.error('获取异常结果失败');
        })
        .finally(() => {
          this.loading = false;
        });
      });
      if (!this.yichangList) {
        this.$message.warning("暂无异常报告");
      }
    })
    .catch((error) => {
      console.error('获取异常结果失败:', error);
      this.$message.error('获取异常结果失败');
    })
    .finally(() => {
      this.loading = false;
    });
},
    },
fuchaxiangmu() {
  this.loading = true;
  this.status1 = 2;
  let data = {
    tjNum: this.tjNumber,
    type: 1
  };
  getFcList(data)
    .then((res) => {
      this.fcList = res.data;
    })
    .catch((error) => {
      console.error('获取复查项目失败:', error);
      this.$message.error('获取复查项目失败');
    })
    .finally(() => {
      this.loading = false;
    });
},
    fuchaxiangmu() {
      this.loading = true;
      this.status1 = 2;
      let data = {
        tjNum: this.tjNumber,
        type: 1
      };
      getFcList(data)
        .then((res) => {
          this.fcList = res.data;
        })
        .catch((error) => {
          console.error('获取复查项目失败:', error);
          this.$message.error('获取复查项目失败');
        })
        .finally(() => {
          this.loading = false;
        });
    },
    getdate() {
      getNewDateList().then((res) => {
@@ -1515,111 +1575,111 @@
    },
    Graphicreport() {
  this.loading = true;
  let dictType = "dict_ageunit";
  getDicts(dictType)
    .then((res) => {
      if (res.code == 200) {
        res.data.forEach((item) => {
          if (this.tableAll.age_unit == item.dictValue) {
            this.tableAll.age_unit = item.dictLabel;
      this.loading = true;
      let dictType = "dict_ageunit";
      getDicts(dictType)
        .then((res) => {
          if (res.code == 200) {
            res.data.forEach((item) => {
              if (this.tableAll.age_unit == item.dictValue) {
                this.tableAll.age_unit = item.dictLabel;
              }
            });
            let dictTypes = "sys_user_sex";
            return getDicts(dictTypes);
          } else {
            throw new Error('获取年龄单位字典失败');
          }
        });
        let dictTypes = "sys_user_sex";
        return getDicts(dictTypes);
      } else {
        throw new Error('获取年龄单位字典失败');
      }
    })
    .then((res) => {
      if (res.code == 200) {
        res.data.forEach((item) => {
          if (this.tableAll.cusSex == item.dictValue) {
            this.tableAll.cusSex = item.dictLabel;
        })
        .then((res) => {
          if (res.code == 200) {
            res.data.forEach((item) => {
              if (this.tableAll.cusSex == item.dictValue) {
                this.tableAll.cusSex = item.dictLabel;
              }
            });
            let data = {
              patname: this.tableAll.cusName,
              sex: this.tableAll.cusSex,
              patage: this.tableAll.age,
              patagename: this.tableAll.age_unit,
              patbirth: this.tableAll.cusBrithday,
            };
            return getTjYxjcList(data);
          } else {
            throw new Error('获取性别字典失败');
          }
        })
        .then((res) => {
          this.baogao = res.data;
          this.$refs.bbb.open = true;
          this.$refs.bbb.title = "报告字典";
        })
        .catch((error) => {
          console.error('生成图文报告失败:', error);
          this.$message.error('生成图文报告失败');
        })
        .finally(() => {
          this.loading = false;
        });
        let data = {
          patname: this.tableAll.cusName,
          sex: this.tableAll.cusSex,
          patage: this.tableAll.age,
          patagename: this.tableAll.age_unit,
          patbirth: this.tableAll.cusBrithday,
        };
        return getTjYxjcList(data);
      } else {
        throw new Error('获取性别字典失败');
      }
    })
    .then((res) => {
      this.baogao = res.data;
      this.$refs.bbb.open = true;
      this.$refs.bbb.title = "报告字典";
    })
    .catch((error) => {
      console.error('生成图文报告失败:', error);
      this.$message.error('生成图文报告失败');
    })
    .finally(() => {
      this.loading = false;
    });
},
    },
    historicalreport() {
  this.loading = true;
  let data = {
    cusId: this.tableAll.cusId,
  };
  reportHistory(data)
    .then((res) => {
      if (res.data[0] != null) {
        this.reportHistorydata = res.data;
      } else {
        this.reportHistorydata = [];
      }
    })
    .catch((error) => {
      console.error('获取历史报告失败:', error);
      this.$message.error('获取历史报告失败');
    })
    .finally(() => {
      this.loading = false;
    });
},
      this.loading = true;
      let data = {
        cusId: this.tableAll.cusId,
      };
      reportHistory(data)
        .then((res) => {
          if (res.data[0] != null) {
            this.reportHistorydata = res.data;
          } else {
            this.reportHistorydata = [];
          }
        })
        .catch((error) => {
          console.error('获取历史报告失败:', error);
          this.$message.error('获取历史报告失败');
        })
        .finally(() => {
          this.loading = false;
        });
    },
medicalhistory() {
  this.loading = true;
  this.status1 = 3;
  let tjNumber = this.tableAll.tjNumber;
  getInfoById(tjNumber)
    .then((response) => {
      this.formobj = response.data;
      if (this.formobj.xiyan == null) {
        this.formobj.xiyan = "1";
      }
      if (this.formobj.xiyanpinlv == null) {
        this.formobj.xiyanpinlv = "0";
      }
      if (this.formobj.xiyanyear == null) {
        this.formobj.xiyanyear = "0";
      }
      if (this.formobj.yinjiu == null) {
        this.formobj.yinjiu = "1";
      }
      if (this.formobj.yinjiupinlv == null) {
        this.formobj.yinjiupinlv = "0";
      }
      if (this.formobj.yinjiuyear == null) {
        this.formobj.yinjiuyear = "0";
      }
    })
    .catch((error) => {
      console.error('获取职业病史失败:', error);
      this.$message.error('获取职业病史失败');
    })
    .finally(() => {
      this.loading = false;
    });
},
    medicalhistory() {
      this.loading = true;
      this.status1 = 3;
      let tjNumber = this.tableAll.tjNumber;
      getInfoById(tjNumber)
        .then((response) => {
          this.formobj = response.data;
          if (this.formobj.xiyan == null) {
            this.formobj.xiyan = "1";
          }
          if (this.formobj.xiyanpinlv == null) {
            this.formobj.xiyanpinlv = "0";
          }
          if (this.formobj.xiyanyear == null) {
            this.formobj.xiyanyear = "0";
          }
          if (this.formobj.yinjiu == null) {
            this.formobj.yinjiu = "1";
          }
          if (this.formobj.yinjiupinlv == null) {
            this.formobj.yinjiupinlv = "0";
          }
          if (this.formobj.yinjiuyear == null) {
            this.formobj.yinjiuyear = "0";
          }
        })
        .catch((error) => {
          console.error('获取职业病史失败:', error);
          this.$message.error('获取职业病史失败');
        })
        .finally(() => {
          this.loading = false;
        });
    },
    downLoadFileImg(row) {
      const tjNumber = row.tjNumber;
@@ -1781,7 +1841,19 @@
    resetQuery() {
      this.startTime = [];
      this.resetForm("tableList");
      this.queryParams = {
        page: 1,
        pageSize: 10,
        tjNumber: "",
        beginTime: null,
        endTime: null,
        compId: null,
        name: null,
        checkStatus: null,
        shys: null,
        tjCategory: null
      },
        this.resetForm("tableList");
      this.submitForm();
    },
@@ -1846,11 +1918,17 @@
                      for (let i = 0; i < this.changedate.length; i++) {
                        this.remark = this.changedate[i].remark;
                      }
                      // 回显 zhiyeJl 和 zhiyeJg
                      this.zhiyeJl = this.changedate[0].zhiyejl || '';
                      this.zhiyeJg = this.changedate[0].zhiyejg || '未发现目标性疾病';
                    } else {
                      this.$message({
                        type: "warning",
                        message: "该客户没有体检项目数据",
                      });
                      // 如果没有数据,清空字段
                      this.zhiyeJl = '';
                      this.zhiyeJg = '未发现目标性疾病';
                    }
                  });
                });
@@ -1885,11 +1963,17 @@
                          this.changedate.forEach((item) => {
                            this.textarea1 = item.checkAdvice || "";
                          });
                          // 回显 zhiyeJl 和 zhiyeJg
                          this.zhiyeJl = this.changedate[0].zhiyejl || '';
                          this.zhiyeJg = this.changedate[0].zhiyejg || '未发现目标性疾病';
                        } else {
                          this.$message({
                            type: "warning",
                            message: "该客户没有体检项目数据",
                          });
                          // 如果没有数据,清空字段
                          this.zhiyeJl = '';
                          this.zhiyeJg = '未发现目标性疾病';
                        }
                      });
                    });
@@ -1953,10 +2037,9 @@
        tjNumber,
        advice,
        checkStatus: 1,
        zhiyeJl: this.zhiyeJl, // 添加检查结论
        zhiyeJg: this.zhiyeJg  // 添加体检结果
      };
      console.log(this.yichangList, 6644);
      let dataList = this.yichangList
        .map((item) => {
          return item.sone.map((soneItem) => ({
@@ -1970,14 +2053,17 @@
            dw: soneItem.proAdvice,
          }));
        })
        .flat(); // 使用 flat() 方法将嵌套数组展平
        .flat();
      this.loading = true;
      getTjdetailList(data)
        .then((response) => {
          if (response.code === 200) {
            this.$modal.msgSuccess("提交成功");
            // 清空字段
            this.zhiyeJl = '';
            this.zhiyeJg = '';
            // 准备生成报告的请求数据
            let reportData = {
              userId: this.userId,
              tjNumber: tjNumber,
@@ -1985,12 +2071,8 @@
              id: this.MsgId,
            };
            // 调用 addOrderPromise
            console.log(dataList, 5555);
            addOrder(dataList)
              .then((res) => {
                console.log(res, 999);
                if (res.code == 200) {
                  gettoPdf(tjNumber)
                    .then((res) => {
@@ -2016,41 +2098,36 @@
                        remarks,
                      },
                    ];
                    return getModified(updateOrderRemarkVos); // 返回 Promise
                    return getModified(updateOrderRemarkVos);
                  });
                  // 等待所有请求完成
                  Promise.all([statePromise, ...updatePromises])
                    .then(() => {
                      // 所有请求完成,关闭 loading
                      this.loading = false;
                      // 更新分页信息
                      this.queryParams.page = 1;
                      this.queryParams.pageSize = 10;
                      this.submitForm();
                      this.$forceUpdate();
                    })
                    .catch((error) => {
                      // 处理错误情况
                      this.loading = false;
                      console.error("发生错误:", error);
                    });
                }
              })
              .catch((error) => {
                // 如果 addOrderPromise 失败,处理错误
                this.loading = false;
                console.error("addOrderPromise 失败:", error);
              });
          } else {
            // 提交失败,关闭 loading
            this.loading = false;
            this.$modal.msgError("提交失败");
          }
        })
        .catch((error) => {
          // 提交请求失败,关闭 loading
          this.loading = false;
          console.error("提交请求失败:", error);
          this.$modal.msgError("提交请求失败");
        });
    },