1
wwl
2025-03-05 cb1f69717eed3b6a61b6c61a8934bac752782b2d
src/views/doctor/checkAll/index.vue
@@ -1,5 +1,5 @@
<template>
  <div>
  <div class="mainbox">
    <el-form :model="queryParams" ref="tableList" :inline="true" label-width="76px" style="margin-top: 10px">
      <el-form-item label="姓名" prop="name">
        <el-input v-model="queryParams.name" style="width: 120px" placeholder="请输入姓名" clearable
@@ -22,7 +22,7 @@
        </el-select>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" size="mini" @click="submitForm">搜索</el-button>
        <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>
@@ -33,7 +33,8 @@
    </el-radio-group>
    <template>
      <el-table v-loading="loading" :data="checkList" ref="table" border style="margin: 20px; width: 98%">
      <el-table v-loading="loading" :data="checkList" ref="table" border style="margin: 20px; width: 98%"
        @current-change="handleCurrentChange">
        <!-- <template slot="empty">数据正在加载中</template> -->
        <el-table-column label="体检号" align="center" prop="tjNumber" :show-overflow-tooltip="true" width="160px"
          fixed="left" />
@@ -51,11 +52,18 @@
        <el-table-column label="出生日期" align="center" prop="cusBrithday" :show-overflow-tooltip="true" width="110px" />
        <el-table-column label="电话" align="center" prop="cusPhone" :show-overflow-tooltip="true" width="130px" />
        <el-table-column label="体检时间" align="center" prop="tjTime" :show-overflow-tooltip="true" width="110px" />
        <!-- <el-table-column
          label="体检时间"
          align="center"
          prop="tjTime"
          :show-overflow-tooltip="true"
          width="110px"
        /> -->
        <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="50px">
        <el-table-column label="状态" align="center" prop="tjStatus" :show-overflow-tooltip="true" width="120px">
          <template slot-scope="scope">
            <span>{{ scope.row.tjStatus == "1" ? "已检" : "未检" }}</span>
            <span>{{ scope.row.tjStatus == "1" ? "已审核" : "未审核" }}</span>
          </template>
        </el-table-column>
        <el-table-column label="单位名称" align="center" prop="tjCompName" :show-overflow-tooltip="true" />
@@ -64,15 +72,20 @@
            <dict-tag :options="dict.type.dict_tjtype" :value="scope.row.tjCategory" />
          </template>
        </el-table-column>
        <el-table-column label="操作" align="center" width="90px" fixed="right">
        <el-table-column label="操作" align="center" width="120px" fixed="right">
          <template slot-scope="scope">
            <el-button fixed="right" title="详情" type="text" size="mini" @click="handleClick(scope.row)"
              icon="el-icon-document-copy"></el-button>
            <el-button fixed="right" title="详情" type="text" size="mini" @click.stop="handleClick(scope.row)"
            icon="el-icon-document-copy"></el-button>
            <el-button fixed="right" title="同步" type="text" size="mini" @click.stop="tongbu(scope.row)"
            icon="el-icon-upload2"></el-button>
            <el-button fixed="right" title="处方" type="text" size="mini" @click.stop="rowClick(scope.row)"
              icon="el-icon-edit-outline"></el-button>
            <!-- <el-button type="text" size="mini" @click="generate(scope.row)" v-if="scope.row.tjStatus=='1'">生成</el-button> -->
            <el-button type="text" size="mini" @click="viewReport(scope.row)" v-if="scope.row.tjStatus == '1'" title="预览"
              icon="el-icon-view"></el-button>
            <el-button type="text" size="mini" v-if="scope.row.tjStatus == '1'" title="撤销" @click="getRevoke(scope.row)"
              icon="el-icon-refresh-left"></el-button>
            <el-button type="text" size="mini" @click.stop="viewReport(scope.row)" v-if="scope.row.tjStatus == '1'"
              title="预览" icon="el-icon-view"></el-button>
            <el-button type="text" size="mini" v-if="scope.row.tjStatus == '1'" title="撤销"
              @click.stop="getRevoke(scope.row)" icon="el-icon-refresh-left"></el-button>
          </template>
        </el-table-column>
      </el-table>
@@ -80,16 +93,17 @@
      <div class="pag">
        <div class="pag1">
          <pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.pageSize"
            @pagination="getList" />
            @pagination="submitForm" />
        </div>
      </div>
    </template>
    <!-- 点击弹出框 -->
    <el-drawer title="" :visible.sync="drawer" :before-close="handleClose" :with-header="false" size="80%">
      <div style="font-size: 14px">
    <el-drawer custom-class="tanchu" :visible.sync="drawer" :before-close="handleClose" :with-header="false" size="100%"
      show-close="true">
      <div class="top">
        <table style="
            width: 96%;
            width: 100%;
            margin: 10px 10px;
            border: 1px solid #dfe6ec;
            border-collapse: collapse;
@@ -99,7 +113,11 @@
              tableAll.cusName
            }}的体检资料
          </caption>
          <tr style="border: 1px solid #dfe6ec; border-collapse: collapse">
          <tr style="
              border: 1px solid #dfe6ec;
              border-collapse: collapse;
              height: 36px;
            ">
            <td style="border: 1px solid #dfe6ec; border-collapse: collapse">
              姓名:
            </td>
@@ -110,10 +128,20 @@
              性别:
            </td>
            <td style="border: 1px solid #dfe6ec; border-collapse: collapse">
              {{ tableAll.cusSex }}
              {{
                tableAll.cusSex == 0
                  ? "男"
                  : tableAll.cusSex == 1
                    ? "女"
                    : "未知"
              }}
            </td>
          </tr>
          <tr style="border: 1px solid #dfe6ec; border-collapse: collapse">
          <tr style="
              border: 1px solid #dfe6ec;
              border-collapse: collapse;
              height: 36px;
            ">
            <td style="border: 1px solid #dfe6ec; border-collapse: collapse">
              体检单号:
            </td>
@@ -128,421 +156,562 @@
            </td>
          </tr>
        </table>
      </div>
      <div>
        <el-row>
          <el-col :span="18">
            <div style="margin: 10px 10px">
              <el-radio-group v-model="tjproject" @input="radiotjprojectChange" style="margin-left: 20px">
                <el-radio-button label="0">体检项目</el-radio-button>
                <el-radio-button label="1">化验项目</el-radio-button>
              </el-radio-group>
            </div>
          </el-col>
          <el-col :span="6">
            <div style="margin-right: 10px;display: flex ">
              <div style="margin: 10px 2px">
                <el-button type="primary" size="mini" @click="Graphicreport()">图文报告</el-button>
              </div>
              <div style="margin: 10px 5px">
                <el-button type="primary" size="mini" @click="historicalreport()">历史报告</el-button>
              </div>
              <div style="margin: 10px 5px" v-if="tableAll.tjCategory == '02'">
                <el-button type="primary" size="mini" @click="medicalhistory()">职业病史</el-button>
              </div>
              <div style="margin: 10px 5px">
                <el-button type="primary" size="mini" @click="jianqian()">检前问诊</el-button>
              </div>
            </div>
          </el-col>
        </el-row>
        <i class="el-icon-close" @click="guanbi"></i>
      </div>
      <el-row>
        <el-col :span="18">
          <div style="font-size: 14px; overflow-y: auto; height: calc(100% - 11%)">
            <table style="
                width: 96%;
                margin: 10px 10px;
                border: 1px solid #dfe6ec;
                border-collapse: collapse;
              " cellspacing="4" v-for="(item, index) in changedate" :key="index">
              <caption style="background-color: #f8f8f9">
                {{
                  item.parent || ""
                }}
              </caption>
              <tr style="border: 1px solid #dfe6ec; border-collapse: collapse" align="center">
                <th style="
                    border: 1px solid #dfe6ec;
                    border-collapse: collapse;
                    width: 200px;
                  ">
                  检测项目
                </th>
                <th style="
                    border: 1px solid #dfe6ec;
                    border-collapse: collapse;
                    width: 200px;
                  ">
                  检测结果
                </th>
                <th style="
                    border: 1px solid #dfe6ec;
                    border-collapse: collapse;
                    width: 200px;
                  ">
                  单位
                </th>
                <th style="
                    border: 1px solid #dfe6ec;
                    border-collapse: collapse;
                    width: 200px;
                  ">
                  参考范围
                </th>
              </tr>
      <div style="margin-right: 10px; display: flex" class="btnbox">
        <div class="btn1" v-if="msgtuwen == 'y' || msgtuwen == 'Y'">
          <el-button @click="Graphicreport()" type="primary">
            <span class="vertical-text">图文报告</span>
          </el-button>
        </div>
        <div class="btn1">
          <el-button @click="historicalreport()" type="primary"><span class="vertical-text">历史报告</span></el-button>
        </div>
        <div v-if="tableAll.tjCategory == '02'" class="btn1">
          <el-button @click="medicalhistory()" type="primary"><span class="vertical-text">职业病史</span></el-button>
        </div>
        <div class="btn1" v-if="msgjianqian == 'y' || msgjianqian == 'Y'">
          <el-button @click="jianqian()" type="primary"><span class="vertical-text">检前问诊</span></el-button>
        </div>
              <tr style="
                  border: 1px solid #dfe6ec;
                  border-collapse: collapse;
                  width: 200px;
                  height: 35px;
        <div class="btn1">
          <el-button @click="xiangmuqingkuang()" type="primary"><span class="vertical-text">项目情况</span></el-button>
        </div>
        <div class="btn1">
          <el-button @click="yichangjieguo()" type="primary"><span class="vertical-text">异常结果</span></el-button>
        </div>
      </div>
      <div class="box">
        <div class="left-container">
          <div class="left">
            <div v-for="(item, index) in changedate" :key="index">
              <div style="
                  text-align: center;
                " v-for="item1 in item.sons" :key="item1.proId">
                <td style="
                    border: 1px solid #dfe6ec;
                    border-collapse: collapse;
                    width: 200px;
                  " v-if="item1.project != null">
                  {{ item1.project.proName || "" }}
                </td>
                <td style="
                    border: 1px solid #dfe6ec;
                    border-collapse: collapse;
                    width: 200px;
                  " v-else>
                  {{ item1.proName }}
                </td>
                <td style="
                    border: 1px solid #dfe6ec;
                    border-collapse: collapse;
                    width: 200px;
                  ">
                  {{ item1.proResult }}
                  <!-- <el-input v-model="item1.proResult" placeholder="请输入内容"></el-input> -->
                </td>
                <td style="
                    border: 1px solid #dfe6ec;
                    border-collapse: collapse;
                    width: 200px;
                  " v-if="item1.project != null">
                  {{ item1.standard.company }}
                </td>
                <td style="
                    border: 1px solid #dfe6ec;
                    border-collapse: collapse;
                    width: 200px;
                  " v-else>
                  {{ item1.proAdvice }}
                </td>
                <td style="
                    border: 1px solid #dfe6ec;
                    border-collapse: collapse;
                    width: 200px;
                  " v-if="item1.project != null">
                  {{
                    item1.standard.tjStandardGtValue +
                    "-" +
                    item1.standard.tjStandardLtValue
                  }}
                </td>
                <td style="
                    border: 1px solid #dfe6ec;
                    border-collapse: collapse;
                    width: 200px;
                  " v-else>
                  {{ item1.stanId }}
                </td>
              </tr>
              <tr style="
                  border: 1px solid #dfe6ec;
                  border-collapse: collapse;
                  width: 200px;
                  background-color: #aad8df;
                  margin-top: 10px;
                ">
                <td>小结:</td>
                <td style="
                    border: 1px solid #dfe6ec;
                    border-collapse: collapse;
                    width: 200px;
                  ">
                  <el-input v-model="item.remark" disabled></el-input>
                  <!-- <el-select v-model="item.value" multiple filterable placeholder="请选择" style="width: 100%" @change="xiAoJieChange($event, item)">
                <el-option v-for="item1 in item.parentAdvice" :key="item1.id" :label="item1.title" :value="item1.id">
                </el-option>
              </el-select> -->
                </td>
                <td style="
                    border: 1px solid #dfe6ec;
                    border-collapse: collapse;
                    width: 200px;
                  ">
                  主检医师:
                </td>
                <td style="
                    border: 1px solid #dfe6ec;
                    border-collapse: collapse;
                    width: 200px;
                  ">
                  {{ item.doctorName }}
                </td>
              </tr>
              <tr style="
                  border: 1px solid #dfe6ec;
                  border-collapse: collapse;
                  width: 200px;
                ">
                <td style="
                    border: 1px solid #dfe6ec;
                    border-collapse: collapse;
                    width: 200px;
                  ">
                  备注:
                </td>
                <td style="
                    border: 1px solid #dfe6ec;
                    border-collapse: collapse;
                    width: 200px;
                  " colspan="2">
                  <textarea placeholder="请输入内容" :autosize="{ minRows: 2, maxRows: 2 }" style="width: 100%; height: 100%"
                    v-model="changedate[index].remark" v-on:input="change"></textarea>
                  <!-- <el-input type="textarea" autosize >
              </el-input> -->
                </td>
              </tr>
            </table>
            <el-form ref="numberValidateForm" label-width="80px" class="demo-ruleForm">
                {{ item.parent || "" }}
              </div>
              <div v-if="item.xmlb == '0'">
                <el-table :data="item.sons" border style="width: 100%" :row-style="changRed"
                  :header-cell-style="{ background: '#aad8df' }">
                  <el-table-column align="center" label="检测项目" width="464">
                    <template slot-scope="scope">
                      <div>{{ scope.row.proName }}</div>
                    </template>
                  </el-table-column>
                  <el-table-column align="center" prop="proResult" label="检测结果" width="180">
                  </el-table-column>
                  <el-table-column align="center" prop="" label="单位">
                    <template slot-scope="scope">
                      <div v-if="scope.row.project != null">
                        {{ scope.row.standard.company || "" }}
                      </div>
                      <div v-else>{{ scope.row.proAdvice }}</div>
                    </template>
                  </el-table-column>
                  <el-table-column align="center" prop="conclusion" label="异常" width="180"></el-table-column>
                  <el-table-column align="center" prop="" label=" 参考范围">
                    <template slot-scope="scope">
                      <div v-if="scope.row.project != null">
                        {{
                          scope.row.standard.tjStandardGtValue ||
                          "/" + "-" + scope.row.standard.tjStandardLtValue ||
                          "/"
                        }}
                      </div>
                      <div v-else>{{ scope.row.stanId || "/" }}</div>
                    </template>
                  </el-table-column>
                </el-table>
                <table style="width: 100%" v-if="tjproject != '1'">
                  <tr style="border: 1px solid #dfe6ec; border-collapse: collapse">
                    <td style="
                        border: 1px solid #dfe6ec;
                        border-collapse: collapse;
                        width: 7%;
                      ">
                      小结:
                    </td>
                    <td style="border: 1px solid #dfe6ec; width: 45%">
                      <el-input v-model="item.remark" disabled></el-input>
                    </td>
                    <td style="
                        border: 1px solid #dfe6ec;
                        border-collapse: collapse;
                        width: 15%;
                      ">
                      主检医师:
                    </td>
                    <td style="border: 1px solid #dfe6ec; border-collapse: collapse" colspan="2">
                      {{ item.doctorName }}
                    </td>
                  </tr>
                  <tr style="
                      border: 1px solid #dfe6ec;
                      border-collapse: collapse;
                      width: 200px;
                    ">
                    <td style="
                        border: 1px solid #dfe6ec;
                        border-collapse: collapse;
                        width: 240px;
                      ">
                      备注:
                    </td>
                    <td style="border: 1px solid #dfe6ec; border-collapse: collapse" colspan="3">
                      <el-input type="textarea" autosize placeholder="请输入内容" v-model="changedate[index].remark"
                        v-on:input="change" style="width: 100%">
                      </el-input>
                      <!-- <textarea
                        placeholder="请输入内容"
                        :autosize="{ minRows: 2 }"
                        style="width: 100%; height: 240px; resize: none"
                        v-model="changedate[index].remark"
                        v-on:input="change"
                      ></textarea> -->
                    </td>
                  </tr>
                </table>
              </div>
              <div v-else>
                <table style="width: 100%" v-if="tjproject != '1'">
                  <tr style="border: 1px solid #dfe6ec">
                    <td style="
                        border: 1px solid #dfe6ec;
                        border-collapse: collapse;
                        width: 15%;
                        height: auto;
                      ">
                      检查所见:
                    </td>
                    <td style="border: 1px solid #dfe6ec; height: auto" colspan="2">
                      <el-input type="textarea" autosize placeholder="请输入内容" v-model="item.jgbx" style="width: 100%">
                      </el-input>
                      <!-- <textarea
                        placeholder="请输入内容"
                        :autosize="{ minRows: 3}"
                        style="width: 100%; height: auto; resize: none"
                        v-model="item.jgbx"
                      ></textarea> -->
                    </td>
                  </tr>
                  <tr style="border: 1px solid #dfe6ec; border-collapse: collapse">
                    <td style="
                        border: 1px solid #dfe6ec;
                        border-collapse: collapse;
                        width: 15%;
                      ">
                      检查提示:
                    </td>
                    <td style="border: 1px solid #dfe6ec; border-collapse: collapse" colspan="2">
                      <el-input type="textarea" autosize placeholder="请输入内容" v-model="item.remark" style="width: 100%">
                      </el-input>
                      <!-- <textarea
                        placeholder="请输入内容"
                        style="width: 100%;  resize: none"
                        v-model="item.remark"
                      ></textarea> -->
                    </td>
                  </tr>
                  <tr style="
                      border: 1px solid #dfe6ec;
                      border-collapse: collapse;
                      width: 200px;
                    ">
                    <td style="
                        border: 1px solid #dfe6ec;
                        border-collapse: collapse;
                        width: 15%;
                      ">
                      主检医师:
                    </td>
                    <td style="border: 1px solid #dfe6ec; border-collapse: collapse" colspan="2">
                      {{ item.doctorName }}
                    </td>
                  </tr>
                </table>
              </div>
            </div>
            <div style="margin: 0 0px 10px 15px" v-if="tjproject != '1'">
              <el-button type="primary" @click="propoChange">快捷建议</el-button>
              <el-button type="primary" @click="proposalChange">生成建议</el-button>
            </div>
            <el-form ref="numberValidateForm" label-width="80px" class="demo-ruleForm" v-if="tjproject != '1'">
              <el-form-item label="总检建议">
                <el-input type="textarea" placeholder="请输入内容" v-model="textarea1" :rows="3" style="width: 96%">
                </el-input>
              </el-form-item>
            </el-form>
            <div slot="footer" class="dialog-footers" v-if="tjproject == '0'">
              <el-button type="primary" @click="determine" :disabled="isdisabled">提交并生成报告</el-button>
            <div slot="footer" class="dialog-footers">
              <el-button type="primary" @click.stop="guanbi">取消</el-button>
              <el-button v-if="tjproject == '0' && (msgkcf == 'y' || msgkcf == 'Y')" type="primary"
                @click.stop="rowClick" icon="el-icon-edit-outline">开处方</el-button>
              <div v-if="tjproject == '0'">
                <el-button type="primary" @click="determine" :disabled="isdisabled">提交并生成报告</el-button>
              </div>
            </div>
          </div>
        </el-col>
        <el-col :span="6">
          <div v-if="hosproy">
            <Historicalreport :reportHistorydata="reportHistorydata"></Historicalreport>
          </div>
        </div>
        <div class="rightbox">
          <div class="right">
            <template v-if="status1 == 0">
              <div v-for="(item, index) in yichangList" :key="index">
                <div style="
                    text-align: center;
                    background-color: #67c23a;
                    margin-top: 10px;
                  ">
                  {{ item.proName || "" }}
                </div>
                <template v-if="item.jyjc == '0'">
                  <el-table :stripe="true" :row-style="red" :data="item.sone" border style="width: 100%"
                    :header-cell-style="{ background: '#67C23A' }" :expand-row-keys="expends" :row-key="getRowKeys">
                    <el-table-column type="expand">
                      <template slot-scope="props">
                        <div style="padding: 10px;">
                          <!-- 内容区域 -->
                          <div v-if="props.row.advices && props.row.advices.length > 0">
                            <div v-for="(jianyi, index1) in props.row.advices" :key="index1"
                              style="margin-bottom: 10px">
                              <div>
                                标题:
                                <el-input v-model="jianyi.bt" size="small" type="textarea" autosize></el-input>
                              </div>
                              <div>
                                内容:
                                <el-input v-model="jianyi.nr" size="small" type="textarea" autosize></el-input>
                              </div>
                            </div>
                          </div>
          <div class="hist3" v-if="wenzhen">
            <span class="txt">问诊信息</span>
            <el-form ref="form" :model="formobj" label-width="100px" :inline="true" size="mini">
              <el-collapse class="coll" v-model="activeName" accordion>
                <el-collapse-item class="coll" title="基本信息" name="1" style="width: 100%; font-weight: 600">
                  <div style="width: 100%">
                    <el-form-item label="姓名" prop="cusName">
                      <el-input disabled v-model="formobj.cusName" placeholder="请输入姓名" />
                    </el-form-item>
                    <el-form-item label="职业" prop="work">
                      <el-select filterable v-model="formobj.work" placeholder="请选择职业" clearable style="width: 150px"
                        disabled>
                        <el-option v-for="dict in dict.type.tj_work" :key="dict.value" :label="dict.label"
                          :value="dict.value" />
                      </el-select>
                    </el-form-item>
                    <el-form-item label="工作状态" prop="workStatus">
                      <el-select disabled filterable v-model="formobj.workStatus" placeholder="请选择工作状态" clearable
                        style="width: 150px">
                        <el-option v-for="dict in dict.type.tj_work_status" :key="dict.value" :label="dict.label"
                          :value="dict.value" />
                      </el-select>
                    </el-form-item>
                    <el-form-item label="接触毒物" prop="contactPoison">
                      <el-input disabled type="textarea" rows="4" v-model="formobj.contactPoison" placeholder="请输入接触毒物"
                        style="width: 700px" />
                    </el-form-item>
                    <el-form-item label="既往病史" prop="medicalHistory">
                      <el-input disabled type="textarea" rows="4" v-model="formobj.medicalHistory" placeholder="请输入既往病史"
                        style="width: 700px" />
                    </el-form-item>
                  </div>
                </el-collapse-item>
                <el-collapse-item title="月经史" name="2" v-show="sex">
                  <div style="width: 100%">
                    <el-form-item label="初潮(岁)" prop="chuchao">
                      <el-input v-model="formobj.chuchao" style="width: 70px" disabled />
                    </el-form-item>
                    <el-form-item label="经期" prop="jingqi">
                      <el-input v-model="formobj.jingqi" disabled style="width: 70px" />天
                    </el-form-item>
                    <el-form-item label="周期" prop="zhouqi">
                      <el-input v-model="formobj.zhouqi" disabled style="width: 70px" />天
                    </el-form-item>
                    <el-form-item label="末次月经" prop="mociage">
                      <el-input v-model="formobj.mociage" disabled style="width: 100px" />
                    </el-form-item>
                  </div>
                </el-collapse-item>
                <el-collapse-item title="生育史" name="3" v-show="sex">
                  <div style="width: 100%">
                    <el-form-item label="现有子女(人)" prop="zinv">
                      <el-input v-model="formobj.zinv" style="width: 70px" disabled />
                    </el-form-item>
                    <el-form-item label="流产(次)" prop="liuchan">
                      <el-input v-model="formobj.liuchan" style="width: 70px" disabled />
                    </el-form-item>
                    <el-form-item label="早产(次)" prop="zaochan">
                      <el-input v-model="formobj.zaochan" style="width: 70px" disabled />
                    </el-form-item>
                    <el-form-item label="死产(次)" prop="sichan">
                      <el-input v-model="formobj.sichan" style="width: 70px" disabled />
                    </el-form-item>
                    <el-form-item label="异常胎(次)" prop="yichangtai">
                      <el-input v-model="formobj.yichangtai" style="width: 70px" disabled />
                    </el-form-item>
                  </div>
                </el-collapse-item>
                <el-collapse-item title="烟酒史" name="4">
                  <div style="width: 100%">
                    <el-form-item label="是否吸烟" prop="xiyan">
                      <!-- <el-input v-model="form.xiyanpinlv" placeholder="请输入吸烟频率" /> -->
                      <el-select disabled filterable v-model="formobj.xiyan" placeholder="请选择是否吸烟" clearable
                        style="width: 150px">
                        <el-option v-for="dict in dict.type.tj_smoking_pinlv" :key="dict.value" :label="dict.label"
                          :value="dict.value" />
                      </el-select>
                    </el-form-item>
                    <el-form-item label="吸烟频率" prop="xiyanpinlv">
                      <el-input v-model="formobj.xiyanpinlv" disabled style="width: 70px" />支/天
                    </el-form-item>
                    <el-form-item label="吸烟时间" prop="xiyanyear">
                      <el-input v-model="formobj.xiyanyear" disabled style="width: 70px" />年 </el-form-item><br />
                    <el-form-item label="是否饮酒" prop="yinjiu">
                      <!-- <el-input v-model="form.yinjiupinlv" placeholder="请输入饮酒频率" /> -->
                      <el-select filterable v-model="formobj.yinjiu" disabled placeholder="请选择是否饮酒" clearable
                        style="width: 150px">
                        <el-option v-for="dict in dict.type.tj_smoking_pinlv" :key="dict.value" :label="dict.label"
                          :value="dict.value" />
                      </el-select>
                    </el-form-item>
                    <el-form-item label="饮酒频率" prop="yinjiupinlv">
                      <el-input v-model="formobj.yinjiupinlv" disabled style="width: 70px" />ml/天
                    </el-form-item>
                    <el-form-item label="饮酒时间" prop="yinjiuyear">
                      <el-input v-model="formobj.yinjiuyear" disabled style="width: 70px" />年
                    </el-form-item>
                    <el-form-item label="其他" prop="qita">
                      <el-input v-model="formobj.qita" placeholder="请输入其他" disabled type="textarea" style="width: 600px"
                        rows="2" />
                    </el-form-item>
                  </div>
                </el-collapse-item>
                <el-collapse-item title="急慢性职业病史信息" name="5">
                  <div style="width: 100%">
                    <el-table border :data="formobj.tjAskHistorysList" ref="tjAskHistorys" style="width: 98%">
                      <el-table-column type="selection" width="40" align="center" />
                      <el-table-column label="疾病名称" prop="diseaseName">
                        <template slot-scope="scope">
                          <el-input size="mini" disabled v-model="scope.row.diseaseName" placeholder="请输入疾病名称" />
                        </template>
                      </el-table-column>
                      <el-table-column label="诊断日期" prop="diseaseData">
                        <template slot-scope="scope">
                          <el-date-picker size="mini" v-model="scope.row.diseaseData" align="right" type="date"
                            placeholder="选择日期" :picker-options="pickerOptions" style="width: 130px"
                            value-format="yyyy-MM-dd">
                          </el-date-picker>
                        </template>
                      </el-table-column>
                      <el-table-column label="诊断单位" prop="diseaseCompany">
                        <template slot-scope="scope">
                          <el-input size="mini" disabled v-model="scope.row.diseaseCompany" placeholder="请输入诊断单位" />
                        </template>
                      </el-table-column>
                      <el-table-column label="是否痊愈" prop="isOk">
                        <template slot-scope="scope">
                          <!-- <el-input v-model="scope.row.isOk" placeholder="请输入是否痊愈" /> -->
                          <el-select disabled filterable size="mini" v-model="scope.row.isOk" placeholder="请选择是否痊愈"
                            clearable>
                            <el-option v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.label"
                              :value="dict.value" />
                          </el-select>
                        </template>
                      </el-table-column>
                      <el-table-column label="备注" prop="remark">
                        <template slot-scope="scope">
                          <el-input disabled size="mini" v-model="scope.row.remark" placeholder="请输入备注" />
                        </template>
                      </el-table-column>
                    </el-table>
                  </div>
                </el-collapse-item>
                          <!-- 如果 advices 为空时,渲染空的输入框 -->
                          <div v-else>
                            <div>
                              标题:
                              <el-input v-model="emptyAdvice.bt" size="small" type="textarea" autosize></el-input>
                            </div>
                            <div>
                              内容:
                              <el-input v-model="emptyAdvice.nr" size="small" type="textarea" autosize></el-input>
                            </div>
                          </div>
                <el-collapse-item title="职业史" name="7">
                  <div style="width: 100%">
                    <el-table border :data="formobj.workLogs" style="width: 98%">
                      <el-table-column type="selection" width="40" align="center" />
                      <el-table-column label="开始时间" prop="beginTime">
                        <template slot-scope="scope">
                          <el-date-picker size="mini" v-model="scope.row.beginTime" align="right" type="date"
                            placeholder="选择日期" :picker-options="pickerOptions" style="width: 130px"
                            value-format="yyyy-MM-dd">
                          </el-date-picker>
                        </template>
                      </el-table-column>
                      <el-table-column label="结束时间" prop="endTime">
                        <template slot-scope="scope">
                          <el-date-picker size="mini" disabled v-model="scope.row.endTime" align="right" type="date"
                            placeholder="选择日期" :picker-options="pickerOptions" style="width: 130px"
                            value-format="yyyy-MM-dd">
                          </el-date-picker>
                        </template>
                      </el-table-column>
                      <el-table-column label="工作单位" prop="workCompany">
                        <template slot-scope="scope">
                          <el-input size="mini" disabled v-model="scope.row.workCompany" placeholder="请输入工作单位" />
                        </template>
                      </el-table-column>
                      <el-table-column label="部门" prop="workDept">
                        <template slot-scope="scope">
                          <el-input disabled size="mini" v-model="scope.row.workDept" placeholder="请输入部门" />
                        </template>
                      </el-table-column>
                      <el-table-column label="工种" prop="workType">
                        <template slot-scope="scope">
                          <el-input disabled size="mini" v-model="scope.row.workType" placeholder="请输入工种" />
                        </template>
                      </el-table-column>
                      <el-table-column label="有害因素" prop="harmTypeLogs">
                        <template slot-scope="scope">
                          <!-- <el-input v-model="scope.row.isOk" placeholder="请输入是否痊愈" /> -->
                          <el-select filterable disabled size="mini" v-model="scope.row.harmTypeLogs" multiple
                            placeholder="请选择有害因素" clearable>
                            <el-option v-for="dict in harmTypeList" :key="dict.aid" :label="dict.harmtype"
                              :value="dict.aid" />
                          </el-select>
                        </template>
                      </el-table-column>
                      <el-table-column label="防护措施" prop="fangHu">
                        <template slot-scope="scope">
                          <el-input disabled size="mini" v-model="scope.row.fangHu" placeholder="请输入防护措施" />
                        </template>
                      </el-table-column>
                    </el-table>
                  </div>
                </el-collapse-item>
              </el-collapse>
            </el-form>
                          <div style="margin-top: 10px;">
                            <el-button @click="shanchu(props.row)" type="danger" size="small">删除</el-button>
                          </div>
                        </div>
                      </template>
                    </el-table-column>
                    <el-table-column align="center" label="检测项目" :show-overflow-tooltip="true" width="353">
                      <template slot-scope="scope">
                        <div>{{ scope.row.proName }}</div>
                      </template>
                    </el-table-column>
                    <el-table-column align="center" prop="proResult" label="检测结果" width="85">
                    </el-table-column>
                    <el-table-column align="center" prop="stanId" label=" 参考范围" width="117">
                    </el-table-column>
                    <el-table-column align="center" prop="proAdvice" label="单位" width="78">
                    </el-table-column>
                  </el-table>
                </template>
                <template v-if="item.jyjc == '1'">
                  <el-table :stripe="true" :row-style="red" :data="item.sone" border style="width: 100%"
                    :header-cell-style="{ background: '#67C23A' }" :expand-row-keys="expends" :row-key="getRowKeys">
                    <el-table-column type="expand">
                      <template slot-scope="props">
                        <div style="padding: 10px;">
                          <!-- 内容区域 -->
                          <div v-if="props.row.advices && props.row.advices.length > 0">
                            <div v-for="(jianyi, index1) in props.row.advices" :key="index1"
                              style="margin-bottom: 10px">
                              <div>
                                标题:
                                <el-input v-model="jianyi.bt" size="small" type="textarea" autosize></el-input>
                              </div>
                              <div>
                                内容:
                                <el-input v-model="jianyi.nr" size="small" type="textarea" autosize></el-input>
                              </div>
                            </div>
                          </div>
                          <!-- 如果 advices 为空时,渲染空的输入框 -->
                          <div v-else>
                            <div>
                              标题:
                              <el-input v-model="emptyAdvice.bt" size="small" type="textarea" autosize></el-input>
                            </div>
                            <div>
                              内容:
                              <el-input v-model="emptyAdvice.nr" size="small" type="textarea" autosize></el-input>
                            </div>
                          </div>
                          <div style="margin-top: 10px;">
                            <el-button @click="shanchu(props.row)" type="danger" size="small">删除</el-button>
                          </div>
                        </div>
                      </template>
                    </el-table-column>
                    <el-table-column align="center" label="检测项目" width="232" :show-overflow-tooltip="true">
                      <template slot-scope="scope">
                        <div>{{ scope.row.proName }}</div>
                      </template>
                    </el-table-column>
                    <el-table-column align="center" prop="proResult" label="检测结果" width="403">
                    </el-table-column>
                  </el-table>
                </template>
              </div>
            </template>
            <template v-if="status1 == 1">
              <div>
                <div style="
                    text-align: center;
                    background-color: #e6a23c;
                    margin-top: 10px;
                  ">
                  项目检查情况
                </div>
                <el-table :row-style="redxiangmu" :data="statusList" style="width: 100%"
                  :header-cell-style="{ background: '#e6a23c' }">
                  <el-table-column align="center" label="部门" width="144" prop="deptName">
                  </el-table-column>
                  <el-table-column align="center" prop="proName" label="项目" width="260">
                  </el-table-column>
                  <el-table-column label="状态" align="center" prop="type" :show-overflow-tooltip="true" width="120">
                    <template slot-scope="scope">
                      <span v-if="scope.row.type == '0'">未审核</span>
                      <span v-if="scope.row.type == '1'">已审核</span>
                      <span v-if="scope.row.type == '2'">弃检</span>
                      <span v-if="scope.row.type == '3'">延期</span>
                    </template>
                  </el-table-column>
                  <el-table-column label="检查时间" align="center" prop="bcupdateTime" width="160" />
                </el-table>
              </div>
            </template>
          </div>
        </el-col>
      </el-row>
        </div>
      </div>
      <div class="hist3" v-if="wenzhen">
        <span class="txt">问诊信息</span>
        <el-form ref="form" :model="formobj" label-width="100px" :inline="true" size="mini">
          <el-collapse class="coll" v-model="activeName" accordion>
            <el-collapse-item class="coll" title="基本信息" name="1" style="width: 100%; font-weight: 600">
              <div style="width: 100%">
                <el-form-item label="姓名" prop="cusName">
                  <el-input disabled v-model="formobj.cusName" placeholder="请输入姓名" />
                </el-form-item>
                <el-form-item label="职业" prop="work">
                  <el-select filterable v-model="formobj.work" placeholder="请选择职业" clearable style="width: 150px"
                    disabled>
                    <el-option v-for="dict in dict.type.tj_work" :key="dict.value" :label="dict.label"
                      :value="dict.value" />
                  </el-select>
                </el-form-item>
                <el-form-item label="工作状态" prop="workStatus">
                  <el-select disabled filterable v-model="formobj.workStatus" placeholder="请选择工作状态" clearable
                    style="width: 150px">
                    <el-option v-for="dict in dict.type.tj_work_status" :key="dict.value" :label="dict.label"
                      :value="dict.value" />
                  </el-select>
                </el-form-item>
                <el-form-item label="接触毒物" prop="contactPoison">
                  <el-input disabled type="textarea" rows="4" v-model="formobj.contactPoison" placeholder="请输入接触毒物"
                    style="width: 700px" />
                </el-form-item>
                <el-form-item label="既往病史" prop="medicalHistory">
                  <el-input disabled type="textarea" rows="4" v-model="formobj.medicalHistory" placeholder="请输入既往病史"
                    style="width: 700px" />
                </el-form-item>
              </div>
            </el-collapse-item>
            <el-collapse-item title="月经史" name="2" v-show="sex">
              <div style="width: 100%">
                <el-form-item label="初潮(岁)" prop="chuchao">
                  <el-input v-model="formobj.chuchao" style="width: 70px" disabled />
                </el-form-item>
                <el-form-item label="经期" prop="jingqi">
                  <el-input v-model="formobj.jingqi" disabled style="width: 70px" />天
                </el-form-item>
                <el-form-item label="周期" prop="zhouqi">
                  <el-input v-model="formobj.zhouqi" disabled style="width: 70px" />天
                </el-form-item>
                <el-form-item label="末次月经" prop="mociage">
                  <el-input v-model="formobj.mociage" disabled style="width: 100px" />
                </el-form-item>
              </div>
            </el-collapse-item>
            <el-collapse-item title="生育史" name="3" v-show="sex">
              <div style="width: 100%">
                <el-form-item label="现有子女(人)" prop="zinv">
                  <el-input v-model="formobj.zinv" style="width: 70px" disabled />
                </el-form-item>
                <el-form-item label="流产(次)" prop="liuchan">
                  <el-input v-model="formobj.liuchan" style="width: 70px" disabled />
                </el-form-item>
                <el-form-item label="早产(次)" prop="zaochan">
                  <el-input v-model="formobj.zaochan" style="width: 70px" disabled />
                </el-form-item>
                <el-form-item label="死产(次)" prop="sichan">
                  <el-input v-model="formobj.sichan" style="width: 70px" disabled />
                </el-form-item>
                <el-form-item label="异常胎(次)" prop="yichangtai">
                  <el-input v-model="formobj.yichangtai" style="width: 70px" disabled />
                </el-form-item>
              </div>
            </el-collapse-item>
            <el-collapse-item title="烟酒史" name="4">
              <div style="width: 100%">
                <el-form-item label="是否吸烟" prop="xiyan">
                  <!-- <el-input v-model="form.xiyanpinlv" placeholder="请输入吸烟频率" /> -->
                  <el-select disabled filterable v-model="formobj.xiyan" placeholder="请选择是否吸烟" clearable
                    style="width: 150px">
                    <el-option v-for="dict in dict.type.tj_smoking_pinlv" :key="dict.value" :label="dict.label"
                      :value="dict.value" />
                  </el-select>
                </el-form-item>
                <el-form-item label="吸烟频率" prop="xiyanpinlv">
                  <el-input v-model="formobj.xiyanpinlv" disabled style="width: 70px" />支/天
                </el-form-item>
                <el-form-item label="吸烟时间" prop="xiyanyear">
                  <el-input v-model="formobj.xiyanyear" disabled style="width: 70px" />年 </el-form-item><br />
                <el-form-item label="是否饮酒" prop="yinjiu">
                  <!-- <el-input v-model="form.yinjiupinlv" placeholder="请输入饮酒频率" /> -->
                  <el-select filterable v-model="formobj.yinjiu" disabled placeholder="请选择是否饮酒" clearable
                    style="width: 150px">
                    <el-option v-for="dict in dict.type.tj_smoking_pinlv" :key="dict.value" :label="dict.label"
                      :value="dict.value" />
                  </el-select>
                </el-form-item>
                <el-form-item label="饮酒频率" prop="yinjiupinlv">
                  <el-input v-model="formobj.yinjiupinlv" disabled style="width: 70px" />ml/天
                </el-form-item>
                <el-form-item label="饮酒时间" prop="yinjiuyear">
                  <el-input v-model="formobj.yinjiuyear" disabled style="width: 70px" />年
                </el-form-item>
                <el-form-item label="其他" prop="qita">
                  <el-input v-model="formobj.qita" placeholder="请输入其他" disabled type="textarea" style="width: 600px"
                    rows="2" />
                </el-form-item>
              </div>
            </el-collapse-item>
            <el-collapse-item title="急慢性职业病史信息" name="5">
              <div style="width: 100%">
                <el-table border :data="formobj.tjAskHistorysList" ref="tjAskHistorys" style="width: 98%">
                  <el-table-column type="selection" width="40" align="center" />
                  <el-table-column label="疾病名称" prop="diseaseName">
                    <template slot-scope="scope">
                      <el-input size="mini" disabled v-model="scope.row.diseaseName" placeholder="请输入疾病名称" />
                    </template>
                  </el-table-column>
                  <el-table-column label="诊断日期" prop="diseaseData">
                    <template slot-scope="scope">
                      <el-date-picker size="mini" v-model="scope.row.diseaseData" align="right" type="date"
                        placeholder="选择日期" :picker-options="pickerOptions" style="width: 130px"
                        value-format="yyyy-MM-dd">
                      </el-date-picker>
                    </template>
                  </el-table-column>
                  <el-table-column label="诊断单位" prop="diseaseCompany">
                    <template slot-scope="scope">
                      <el-input size="mini" disabled v-model="scope.row.diseaseCompany" placeholder="请输入诊断单位" />
                    </template>
                  </el-table-column>
                  <el-table-column label="是否痊愈" prop="isOk">
                    <template slot-scope="scope">
                      <!-- <el-input v-model="scope.row.isOk" placeholder="请输入是否痊愈" /> -->
                      <el-select disabled filterable size="mini" v-model="scope.row.isOk" placeholder="请选择是否痊愈"
                        clearable>
                        <el-option v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.label"
                          :value="dict.value" />
                      </el-select>
                    </template>
                  </el-table-column>
                  <el-table-column label="备注" prop="remark">
                    <template slot-scope="scope">
                      <el-input disabled size="mini" v-model="scope.row.remark" placeholder="请输入备注" />
                    </template>
                  </el-table-column>
                </el-table>
              </div>
            </el-collapse-item>
            <el-collapse-item title="职业史" name="7">
              <div style="width: 100%">
                <el-table border :data="formobj.workLogs" style="width: 98%">
                  <el-table-column type="selection" width="40" align="center" />
                  <el-table-column label="开始时间" prop="beginTime">
                    <template slot-scope="scope">
                      <el-date-picker size="mini" v-model="scope.row.beginTime" align="right" type="date"
                        placeholder="选择日期" :picker-options="pickerOptions" style="width: 130px"
                        value-format="yyyy-MM-dd">
                      </el-date-picker>
                    </template>
                  </el-table-column>
                  <el-table-column label="结束时间" prop="endTime">
                    <template slot-scope="scope">
                      <el-date-picker size="mini" disabled v-model="scope.row.endTime" align="right" type="date"
                        placeholder="选择日期" :picker-options="pickerOptions" style="width: 130px"
                        value-format="yyyy-MM-dd">
                      </el-date-picker>
                    </template>
                  </el-table-column>
                  <el-table-column label="工作单位" prop="workCompany">
                    <template slot-scope="scope">
                      <el-input size="mini" disabled v-model="scope.row.workCompany" placeholder="请输入工作单位" />
                    </template>
                  </el-table-column>
                  <el-table-column label="部门" prop="workDept">
                    <template slot-scope="scope">
                      <el-input disabled size="mini" v-model="scope.row.workDept" placeholder="请输入部门" />
                    </template>
                  </el-table-column>
                  <el-table-column label="工种" prop="workType">
                    <template slot-scope="scope">
                      <el-input disabled size="mini" v-model="scope.row.workType" placeholder="请输入工种" />
                    </template>
                  </el-table-column>
                  <el-table-column label="有害因素" prop="harmTypeLogs">
                    <template slot-scope="scope">
                      <!-- <el-input v-model="scope.row.isOk" placeholder="请输入是否痊愈" /> -->
                      <el-select filterable disabled size="mini" v-model="scope.row.harmTypeLogs" multiple
                        placeholder="请选择有害因素" clearable>
                        <el-option v-for="dict in harmTypeList" :key="dict.aid" :label="dict.harmtype"
                          :value="dict.aid" />
                      </el-select>
                    </template>
                  </el-table-column>
                  <el-table-column label="防护措施" prop="fangHu">
                    <template slot-scope="scope">
                      <el-input disabled size="mini" v-model="scope.row.fangHu" placeholder="请输入防护措施" />
                    </template>
                  </el-table-column>
                </el-table>
              </div>
            </el-collapse-item>
          </el-collapse>
        </el-form>
      </div>
    </el-drawer>
    <el-dialog class="dia" title="PDF 预览" :visible.sync="dialogVisible" :close-on-click-modal="false">
    <el-dialog title="PDF 预览" :visible.sync="dialogVisible" :close-on-click-modal="false" width="50%">
      <div class="main">
        <iframe id="printIframe" :src="url" frameborder="0" style="width: 100%; height: 100%"></iframe>
      </div>
@@ -554,14 +723,22 @@
      </span>
    </el-dialog>
    <Packages ref="bbb" :baogao="baogao" />
    <Prescription ref="Pre" :preObj="preObj" />
    <proposal ref="proposal" :cusobj="cusobj" @event1="eventchange($event)" />
    <createproposal ref="createproposal" :creatobj="creatobj" />
    <el-dialog title="常用建议维护" :visible.sync="propdialog" width="500px" append-to-body>
    </el-dialog>
  </div>
</template>
<script>
import jianqianwenzhen from "@/components/jianqianwenzhen";
import Packages from "@/components/Packages";
import Prescription from "@/components/Prescription";
import proposal from "@/components/proposal";
import createproposal from "@/components/createproposal";
import {
  getcheckList,
  getTjdetailList,
@@ -572,27 +749,34 @@
  getState,
  getforceIn,
  gettoPdf,
  getModified, isPdfOrJimu
  getModified,
  isPdfOrJimu,
  addOrder,
} from "@/api/doctor/checkAll";
import { getInfoById } from "@/api/hosp/history";
import { getInfo } from "@/api/login";
import { getCompany, queryCompany } from "@/api/team/tuanti";
import { reportHistory } from "@/api/doctor/check";
import { reportHistory, yichang, shanchu } from "@/api/doctor/check";
import { getPdf, revoke } from "@/api/hosp/order";
import { cSWebGetPro,dataSynchronization } from "@/api/doctor/examination";
import ViewPdf from "@/components/ViewPdf";
import Historicalreport from "@/components/Historicalreport";
import { getDicts } from "@/api/system/dict/data";
import {
  getTjYxjcList
} from "@/api/system/package";
import { getTjYxjcList } from "@/api/system/package";
import { getNewDateList } from "@/api/hosp/order";
import { getconfigKey } from "@/api/login";
import moment from "moment";
import { get } from "sortablejs";
export default {
  components: {
    ViewPdf,
    Historicalreport,
    jianqianwenzhen,
    Packages
    Packages,
    proposal,
    createproposal,
    Prescription,
  },
  dicts: [
    "dict_tjtype",
@@ -608,6 +792,14 @@
  name: "checkAll",
  data() {
    return {
      // 更新总检建议
      emptyAdvice: {
        bt: "",
        nr: "",
      },
      initialTotalCheckAdvice: "",
      initialState: "",
      preObj: {},
      baogao: [],
      flags: false,
      jianqianwenzhendata: [],
@@ -618,10 +810,12 @@
      hosproy: true,
      remarks: "",
      remark: "",
      creatobj: {},
      propdialog: false,
      proIds: "",
      cusobj: {},
      xiaojie: "",
      isdisabled: false,
      dialogVisible: false,
      src: "",
      url: "",
      userId: "",
@@ -661,6 +855,9 @@
          },
        ],
      },
      msgtuwen: "",
      msgjianqian: "",
      msgkcf: "",
      // 页面全部数据
      checkList: [],
      // 绑定单选按钮
@@ -685,6 +882,7 @@
      Deptobj: "",
      // 点击参数
      changedate: [],
      dataText: [],
      status: {},
      // 查询参数
      queryParams: {
@@ -699,6 +897,8 @@
      },
      formobj: {},
      // 查询参数
      yichangList: [],
      statusList: [],
      queryParam: {
        pageNum: 1,
        pageSize: 10,
@@ -723,27 +923,164 @@
        tjCategory: undefined,
        payType: undefined,
      },
      status1: 0, // 0展示异常1展示项目情况
      viewportHeight: 0,
      expends: [],
      clearTimeSet: null,
    };
  },
  created() {
    // this.getNowTime();
    this.getConfigKey();
    this.getdate();
  },
  mounted() {
    this.$nextTick(() => {
      this.$refs.inputName.focus();
      this.viewportHeight =
        window.innerHeight || document.documentElement.clientHeight;
    });
  },
  methods: {
    setTime() {
      //设置定时器
      this.clearTimeSet = setInterval(() => {
        this.$modal.closeLoading();
      }, 300000);
    },
    tongbu(row) {
      this.$modal.loading("正在同步,请稍候...");
      this.setTime();
      let tjNumber = row.tjNumber;
      dataSynchronization(tjNumber)
        .then((res, error) => {
          if (res.code == 200) {
            this.clearTimeSet = null;
            this.$modal.closeLoading();
            this.$modal.msgSuccess("同步成功!");
          }
        })
        .catch((error) => {
          this.clearTimeSet = null;
          this.$modal.closeLoading();
        });
    },
    shanchu(row) {
      console.log(row)
      shanchu({
        id: row.orderDetailId,
      }).then((res) => {
        console.log(res);
        // 找到要删除项所在的父级数组
        const parentItem = this.yichangList.find(item =>
          item.sone.some(soneItem => soneItem.proId === row.proId)
        );
        if (parentItem) {
          // 从父级的 sone 数组中删除该项
          const index = parentItem.sone.findIndex(item => item.proId === row.proId);
          if (index > -1) {
            parentItem.sone.splice(index, 1);
            // 如果删除后 sone 数组为空,则删除整个父级项
            if (parentItem.sone.length === 0) {
              const parentIndex = this.yichangList.indexOf(parentItem);
              if (parentIndex > -1) {
                this.yichangList.splice(parentIndex, 1);
              }
            }
            // 更新 expends 数组
            this.getExpends();
            this.$message.success('删除成功');
          }
        }
      })
    },
    getConfigKey() {
      getconfigKey("sfkqtwbg").then((res) => {
        this.msgtuwen = res.msg;
      });
      getconfigKey("sfkqjqwz").then((res) => {
        this.msgjianqian = res.msg;
      });
      getconfigKey("kcf").then((res) => {
        this.msgkcf = res.msg;
      });
    },
    //设置table中的扩展项,展开的id,此处我需要全部展开
    getExpends() {
      // 通过flatMap将每个sone数组中的ID提取出来,并返回一个扁平化的ID数组
      this.expends = this.yichangList.flatMap((item) =>
        item.sone.map((subItem) => subItem.proId)
      );
    },
    getRowKeys(row) {
      return row.proId;
    },
    // 项目情况
    xiangmuqingkuang() {
      cSWebGetPro(this.tjNumber).then((res) => {
        this.status1 = 1;
        this.statusList = res.data;
        if (this.statusList.length == 0) {
          _this.$message.msgSuccess("暂无项目情况");
        }
      });
    },
    guanbi() {
      this.drawer = false;
    },
    yichangjieguo() {
      this.status1 = 0;
      let _this = this;
      yichang({
        tjNum: this.tjNumber,
      }).then((res) => {
        this.yichangList = res.data;
        console.log(this.yichangList, 3232);
        this.getExpends();
        this.yichangList.forEach((item) => {
          item.sone.forEach((soneItem) => {
            if (
              !Array.isArray(soneItem.advices) ||
              soneItem.advices.length === 0
            ) {
              // 如果 advices 是空,设置默认值
              soneItem.advices = [
                {
                  bt: "",
                  nr: "",
                },
              ];
            }
          });
        });
        if (!this.yichangList) {
          _this.$message({
            type: "warning ",
            message: "暂无异常报告",
          });
        }
      });
    },
    getdate() {
      getNewDateList().then((res) => {
        this.startTime = [
        /* this.startTime = [
          moment(res.data).format("YYYY-MM-DD 00:00:00"),
          moment(res.data).format("YYYY-MM-DD 23:59:00"),
        ];
        ]; */
        this.getList();
      });
    },
@@ -784,6 +1121,7 @@
      let tjNumber = this.tableAll.tjNumber;
      this.jianqianwenzhendata.push(tjNumber);
    },
    getList() {
      this.loading = true;
      this.queryParams.compId = this.CheckBox.drugManufacturerId;
@@ -836,7 +1174,10 @@
              setTimeout(() => {
                loading.close();
              }, 3000);
              this.$message.msgSuccess("报告正在生成,请两分钟后预览!");
              this.$message({
                message: "报告正在生成,请两分钟后预览!",
                type: "error"
              });
            } else {
              this.dialogVisible = true;
@@ -844,38 +1185,41 @@
            }
          });
        } else {
          let url = response.data.url
          let url = response.data.url;
          const params = { url };
          this.$tab.openPage("健康证检查表", "/report/zongjianjiankangzheng", params);
          this.$tab.openPage(
            "健康证检查表",
            "/report/zongjianjiankangzheng",
            params
          );
        }
      })
      });
    },
    Graphicreport() {
      let dictType = "dict_ageunit"
      getDicts(dictType).then(res => {
      let dictType = "dict_ageunit";
      getDicts(dictType).then((res) => {
        if (res.code == 200) {
          res.data.forEach(item => {
          res.data.forEach((item) => {
            if (this.tableAll.age_unit == item.dictValue) {
              this.tableAll.age_unit = item.dictLabel
              this.tableAll.age_unit = item.dictLabel;
            }
          })
          let dictTypes = "sys_user_sex"
          getDicts(dictTypes).then(res => {
          });
          let dictTypes = "sys_user_sex";
          getDicts(dictTypes).then((res) => {
            if (res.code == 200) {
              res.data.forEach(item => {
              res.data.forEach((item) => {
                if (this.tableAll.cusSex == item.dictValue) {
                  this.tableAll.cusSex = item.dictLabel
                  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
              }
                patbirth: this.tableAll.cusBrithday,
              };
              // let data = {
              //   patname: "脱能娥",
              //   sex: "女",
@@ -883,16 +1227,15 @@
              //   patagename: "岁",
              //   patbirth: "1963-01-01"
              // }
              getTjYxjcList(data).then(res => {
                this.baogao = res.data
              })
              getTjYxjcList(data).then((res) => {
                this.baogao = res.data;
              });
              this.$refs.bbb.open = true;
              // this.$refs.bbb.getAllList();
              this.$refs.bbb.title = "报告字典";
            }
          })
          });
        }
      })
      });
    },
    historicalreport() {
@@ -958,10 +1301,22 @@
      });
    },
    rowClick(row) {
      if (row.tjNumber) {
        this.preObj = row;
      } else {
        this.preObj = this.tableAll;
      }
      this.$refs.Pre.open = true;
      this.$refs.Pre.title = "处方";
    },
    // 单选按钮
    radioChange(value) {
      this.loading = true;
      this.queryParams.checkStatus = value;
      this.queryParams.page = 1;
      this.queryParams.pageSize = 10;
      getcheckList(this.queryParams).then((response) => {
        if (response.data) {
          this.checkList = response.data.customers;
@@ -972,10 +1327,38 @@
        this.loading = false;
      });
    },
    propoChange() {
      this.cusobj = { sex: this.tableAll.cusSex, isZj: 0 };
      this.$refs.proposal.open = true;
      this.$refs.proposal.title = "建议方案";
      // this.$refs.proposal.getList();
    },
    eventchange(data) {
      this.dataText = data;
      if (this.textarea1 == null) {
        this.textarea1 = "";
      }
      data.forEach((item) => {
        this.textarea1 += item.advice;
      });
    },
    proposalChange() {
      if (this.textarea1) {
        this.creatobj = { proParentList: this.textarea1, isZj: 0 };
        this.$refs.createproposal.open = true;
        this.$refs.createproposal.title = "常用建议维护";
      } else {
        this.$message({
          type: "warning ",
          message: "请先填写总检建议",
        });
      }
    },
    radiotjprojectChange() {
      if (this.tjproject == "0") {
        getupdateCheckType(this.tjNumber).then((response) => {
          this.changedate = response.data;
          this.changedate.forEach((item) => {
            this.textarea1 = item.checkAdvice;
          });
@@ -985,14 +1368,14 @@
            }
            this.changedate.forEach((item) => {
              // this.remark = item.remark;
              item.sons.forEach((item3) => {
                if (item3.standard.tjStandardGtValue === null) {
                  item3.standard.tjStandardGtValue = "";
                }
                if (item3.standard.tjStandardLtValue === null) {
                  item3.standard.tjStandardLtValue = "";
                }
              });
              // item.sons.forEach((item3) => {
              //   if (item3.standard.tjStandardGtValue === null) {
              //     item3.standard.tjStandardGtValue = "";
              //   }
              //   if (item3.standard.tjStandardLtValue === null) {
              //     item3.standard.tjStandardLtValue = "";
              //   }
              // });
              // item.remark = "";
            });
          } else {
@@ -1003,7 +1386,7 @@
          }
        });
      } else if (this.tjproject == "1") {
        getupdateCheckTypeHuaYan(this.tjNumber).then(res => {
        getupdateCheckTypeHuaYan(this.tjNumber).then((res) => {
          if (res.data) {
            // this.Testitems = res.data
            this.changedate = res.data;
@@ -1017,12 +1400,12 @@
              this.changedate.forEach((item) => {
                // this.remark = item.remark;
                item.sons.forEach((item3) => {
                  if (item3.standard.tjStandardGtValue === null) {
                    item3.standard.tjStandardGtValue = "";
                  }
                  if (item3.standard.tjStandardLtValue === null) {
                    item3.standard.tjStandardLtValue = "";
                  }
                  // if (item3.standard.tjStandardGtValue === null) {
                  //   item3.standard.tjStandardGtValue = "";
                  // }
                  // if (item3.standard.tjStandardLtValue === null) {
                  //   item3.standard.tjStandardLtValue = "";
                  // }
                });
                // item.remark = "";
              });
@@ -1033,8 +1416,7 @@
              message: "该客户没有化验项目数据",
            });
          }
        })
        });
      }
    },
@@ -1066,6 +1448,7 @@
    // 搜索
    submitForm() {
      console.log(this.tjStatus);
      this.loading = true;
      this.queryParams.compId = this.CheckBox.drugManufacturerId;
      this.queryParams.checkStatus = this.tjStatus;
@@ -1096,61 +1479,233 @@
    },
    // 重置
    resetQuery() {
      this.startTime=[]
      this.startTime = [];
      this.resetForm("tableList");
      this.submitForm();
    },
    changRed({ row }) {
      if (row.ycbz != "" && row.ycbz != null) {
        // 变颜色的条件
        return {
          color: "red", // 这个return的就是样式 可以是color 也可以是backgroundColor
        };
      }
    },
    red() {
      return {
        color: "red",
      };
    },
    redxiangmu({ row }) {
      if (row.type != 1) {
        // 变颜色的条件
        return {
          backgroundColor: "#AAD8DF !important", // 这个return的就是样式 可以是color 也可以是backgroundColor
          // color: "#AAD8DF ",
        };
      }
    },
    /*  changRed(row) {
      if (row.label === "↑") {
        return {
          color: "green", // 设置上箭头为绿色
        };
      } else if (row.label === "↓") {
        return {
          color: "red", // 设置下箭头为红色
        };
      }
      // 默认颜色
      return {
        color: "black",
      };
    }, */
    handleCurrentChange(val) {
      if (val != null) {
        this.handleClick(val);
      }
    },
    // 点击详情
    handleClick(row) {
      this.$refs.Pre.open = false;
      this.tableAll = row;
      this.tjproject = "0"
      // if (this.tableAll.cusSex === 0) {
      //   this.tableAll.cusSex = "男";
      // }
      // if (this.tableAll.cusSex === 1) {
      //   this.tableAll.cusSex = "女";
      // }
      // if (this.tableAll.cusSex === 2) {
      //   this.tableAll.cusSex = "未知";
      // }
      this.tjproject = "0";
      this.tjNumber = this.tableAll.tjNumber;
      getState(this.tjNumber).then((res) => {
        this.status = res.data;
        if (this.status.status === "1") {
        if (this.status) {
          if (this.status.status === "1") {
            this.yichangjieguo();
            getInfo().then((response) => {
              this.userId = response.user.userId;
              if (this.userId) {
                let data = {
                  userId: this.userId,
                  tjNumber: this.tjNumber,
                  state: 0,
                };
                getModifiedState(data).then((res) => {
                  this.MsgId = res.msg;
                  this.drawer = true;
                  getupdateCheckType(this.tjNumber).then((response) => {
                    this.changedate = response.data;
                    if (this.changedate) {
                      this.changedate.forEach((item) => {
                        this.textarea1 = item.checkAdvice || "";
                      });
                      // 这里设置初始值
                      this.initialTotalCheckAdvice = this.textarea1; // 保存总检建议
                      // 保存初始状态
                      this.initialState = JSON.parse(
                        JSON.stringify(this.changedate)
                      );
                      for (let i = 0; i < this.changedate.length; i++) {
                        this.remark = this.changedate[i].remark;
                      }
                      this.changedate.forEach((item) => {
                        // this.remark = item.remark;
                        // item.sons.forEach((item3) => {
                        //   if (item3.standard.tjStandardGtValue === null) {
                        //     item3.standard.tjStandardGtValue = "";
                        //   }
                        //   if (item3.standard.tjStandardLtValue === null) {
                        //     item3.standard.tjStandardLtValue = "";
                        //   }
                        // });
                      });
                    } else {
                      this.$message({
                        type: "warning ",
                        message: "该客户没有体检项目数据",
                      });
                    }
                  });
                });
              }
            });
          } else {
            this.$confirm(
              "" + this.status.name + "正在修改该信息, 是否强制进去?",
              "提示",
              {
                confirmButtonText: "是",
                cancelButtonText: "否",
                type: "warning",
              }
            )
              .then(() => {
                this.yichangjieguo();
                getInfo().then((response) => {
                  this.userId = response.user.userId;
                  if (this.userId) {
                    let data = {
                      userId: this.userId,
                      tjNumber: this.tjNumber,
                      state: 0,
                    };
                    getforceIn(data).then((res) => {
                      this.MsgId = res.msg;
                      this.drawer = true;
                      getupdateCheckType(this.tjNumber).then((response) => {
                        this.changedate = response.data;
                        if (this.changedate) {
                          for (let i = 0; i < this.changedate.length; i++) {
                            this.remark = this.changedate[i].remark;
                          }
                          this.initialState = JSON.parse(
                            JSON.stringify(this.changedate)
                          );
                          this.changedate.forEach((item) => {
                            this.textarea1 = item.checkAdvice || "";
                            // this.remark = item.remark;
                            // item.sons.forEach((item3) => {
                            //   if (item3.standard.tjStandardGtValue === null) {
                            //     item3.standard.tjStandardGtValue = "";
                            //   }
                            //   if (item3.standard.tjStandardLtValue === null) {
                            //     item3.standard.tjStandardLtValue = "";
                            //   }
                            // });
                            // item.remark = "";
                          });
                          // 保存总检建议
                          this.totalCheckAdvice = this.changedate.map(
                            (item) => item.totalCheckAdvice
                          );
                        } else {
                          this.$message({
                            type: "warning ",
                            message: "该客户没有体检项目数据",
                          });
                        }
                      });
                    });
                  }
                });
              })
              .catch(() => {
                this.$message({
                  type: "info",
                  message: "已取消进入",
                });
              });
            this.drawer = false;
          }
        } else {
          this.drawer = true;
          this.yichangjieguo();
          getInfo().then((response) => {
            this.userId = response.user.userId;
            if (this.userId) {
              let data = {
                userId: this.userId,
                tjNumber: this.tjNumber,
                state: 0,
              };
              getModifiedState(data).then((res) => {
              getforceIn(data).then((res) => {
                this.MsgId = res.msg;
                this.drawer = true;
                getupdateCheckType(this.tjNumber).then((response) => {
                  this.changedate = response.data;
                  if (this.changedate) {
                    this.changedate.forEach((item) => {
                    this.textarea1 = item.checkAdvice;
                  });
                    for (let i = 0; i < this.changedate.length; i++) {
                      this.remark = this.changedate[i].remark;
                    }
                    this.initialState = JSON.parse(
                      JSON.stringify(this.changedate)
                    );
                    this.changedate.forEach((item) => {
                      this.textarea1 = item.checkAdvice || "";
                      // this.remark = item.remark;
                      item.sons.forEach((item3) => {
                        if (item3.standard.tjStandardGtValue === null) {
                          item3.standard.tjStandardGtValue = "";
                        }
                        if (item3.standard.tjStandardLtValue === null) {
                          item3.standard.tjStandardLtValue = "";
                        }
                      });
                      // item.sons.forEach((item3) => {
                      //   if (item3.standard.tjStandardGtValue === null) {
                      //     item3.standard.tjStandardGtValue = "";
                      //   }
                      //   if (item3.standard.tjStandardLtValue === null) {
                      //     item3.standard.tjStandardLtValue = "";
                      //   }
                      // });
                      // item.remark = "";
                    });
                    // 保存总检建议
                    this.totalCheckAdvice = this.changedate.map(
                      (item) => item.totalCheckAdvice
                    );
                  } else {
                    this.$message({
                      type: "warning ",
@@ -1161,67 +1716,6 @@
              });
            }
          });
        } else {
          this.$confirm(
            "" + this.status.name + "正在修改该信息, 是否强制进去?",
            "提示",
            {
              confirmButtonText: "是",
              cancelButtonText: "否",
              type: "warning",
            }
          )
            .then(() => {
              getInfo().then((response) => {
                this.userId = response.user.userId;
                if (this.userId) {
                  let data = {
                    userId: this.userId,
                    tjNumber: this.tjNumber,
                    state: 0,
                  };
                  getforceIn(data).then((res) => {
                    this.MsgId = res.msg;
                    this.drawer = true;
                    getupdateCheckType(this.tjNumber).then((response) => {
                      this.changedate = response.data;
                      if (this.changedate) {
                        for (let i = 0; i < this.changedate.length; i++) {
                          this.remark = this.changedate[i].remark;
                        }
                        this.changedate.forEach((item) => {
                          this.textarea1 = item.checkAdvice;
                          // this.remark = item.remark;
                          item.sons.forEach((item3) => {
                            if (item3.standard.tjStandardGtValue === null) {
                              item3.standard.tjStandardGtValue = "";
                            }
                            if (item3.standard.tjStandardLtValue === null) {
                              item3.standard.tjStandardLtValue = "";
                            }
                          });
                          // item.remark = "";
                        });
                      } else {
                        this.$message({
                          type: "warning ",
                          message: "该客户没有体检项目数据",
                        });
                      }
                    });
                  });
                }
              });
            })
            .catch(() => {
              this.$message({
                type: "info",
                message: "已取消进入",
              });
            });
          this.drawer = false;
        }
      });
@@ -1245,33 +1739,53 @@
      });
    },
    cancel() {
      this.propdialog = false;
    },
    // 是否关闭弹窗
    handleClose(done) {
      if (this.loading) {
        return;
      }
      this.$confirm("确定要提交吗?")
        .then((_) => {
          this.loading = true;
          this.timer = setTimeout(() => {
            done();
            this.determine();
            // 动画关闭需要一定的时间
            setTimeout(() => {
              this.loading = false;
            }, 400);
          }, 2000);
        })
        .catch((_) => {
          this.drawer = false;
          let data = {
            userId: this.userId,
            tjNumber: this.tjNumber,
            state: 1,
            id: this.MsgId,
          };
          getfiedState(data).then((res) => { });
        });
      // 检查是否有修改
      let isModified =
        JSON.stringify(this.changedate) !== JSON.stringify(this.initialState) ||
        (this.textarea1 !== this.initialTotalCheckAdvice &&
          this.textarea1 !== null);
      console.log("Initial Total Check Advice:", this.initialTotalCheckAdvice);
      console.log("Current textarea1:", this.textarea1);
      if (isModified) {
        // 如果有修改,弹出确认框
        this.$confirm("检测内容有修改,确定要提交吗?")
          .then(() => {
            this.loading = true;
            this.timer = setTimeout(() => {
              done();
              this.determine();
              setTimeout(() => {
                this.loading = false;
              }, 400);
            }, 2000);
          })
          .catch(() => {
            // 用户取消操作
            this.drawer = false;
            let data = {
              userId: this.userId,
              tjNumber: this.tjNumber,
              state: 1,
              id: this.MsgId,
            };
            getfiedState(data).then((res) => { });
            this.submitForm();
          });
      } else {
        // 如果没有修改,直接关闭
        done();
      }
    },
    handleClose1() {
      this.jianqians = false;
@@ -1297,86 +1811,359 @@
    //     });
    //   }
    // },
    change(vale) {
      // console.log(this.changedate[index].remark);
    },
    change(vale) { },
    // determine() {
    //   let tjNumber = this.tableAll.tjNumber;
    //   let tjh = this.tableAll.tjNumber;
    //   // let jyjc = this.yichangList.map(item => item.jyjc || null);
    //   let advice = this.textarea1;
    //   let data = {
    //     tjNumber,
    //     advice,
    //     checkStatus: 1,
    //   };
    //   console.log(this.yichangList, 66);
    //   let dataList = this.yichangList
    //     .map((item) => {
    //       return item.sone.map((soneItem) => ({
    //         tjh,
    //         parentName: item.proName,
    //         jcxm: soneItem.proName,
    //         map: soneItem.advices,
    //         jyjc: item.jyjc, // assuming jyjc belongs to the outer item, not soneItem
    //         jcjg: soneItem.proResult,
    //         ckfw: soneItem.stanId,
    //         dw: soneItem.proAdvice,
    //       }));
    //     })
    //     .flat(); // 使用 flat() 方法将嵌套数组展平
    //   console.log(dataList, 777);
    //   /*  addOrder(dataList).then((res) => {
    //     console.log(res, 999);
    //   }); */
    //   getTjdetailList(data)
    //     .then((response) => {
    //       if (response.code === 200) {
    //         this.$modal.msgSuccess("提交成功");
    //         // 准备生成报告的请求数据
    //         let reportData = {
    //           userId: this.userId,
    //           tjNumber: tjNumber,
    //           state: 1,
    //           id: this.MsgId,
    //         };
    //         // 生成报告并保持 loading 打开
    //         const reportPromise = gettoPdf(tjNumber)
    //           .then((res) => {
    //             this.$modal.msgSuccess("已生成报告!请前往报告核收页面确认!");
    //           })
    //           .catch((error) => {
    //             this.$modal.msgError(
    //               "打印报告失败,请前往报告打印页面补打报告!"
    //             );
    //           });
    //         // 更新状态并提交修改请求
    //         const statePromise = getfiedState(reportData).then((res) => {
    //           this.drawer = false;
    //         });
    //         // const addOrderPromise = addOrder(dataList).then((res) => {
    //         //   console.log(res, 999);
    //         // });
    //         // 处理其他修改操作
    //         const updatePromises = this.changedate.map((item) => {
    //           this.proIds = item.parentId;
    //           let remarks = item.remark;
    //           let updateOrderRemarkVos = [
    //             {
    //               tjNumber,
    //               proId: this.proIds.toString(),
    //               remarks,
    //             },
    //           ];
    //           return getModified(updateOrderRemarkVos); // 返回 Promise
    //         });
    //         // 等待所有请求完成
    //         Promise.all([
    //           reportPromise,
    //           statePromise,
    //           // addOrderPromise,
    //           ...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);
    //           });
    //       } else {
    //         // 提交失败,关闭 loading
    //         this.loading = false;
    //       }
    //     })
    //     .catch((error) => {
    //       // 提交请求失败,关闭 loading
    //       this.loading = false;
    //       console.error("提交请求失败:", error);
    //     });
    // },
    determine() {
      let tjNumber = this.tableAll.tjNumber;
      let tjh = this.tableAll.tjNumber;
      let advice = this.textarea1;
      let data = {
        tjNumber,
        advice,
        checkStatus: 1,
      };
      getTjdetailList(data).then((response) => {
        if (response.code === 200) {
          this.$modal.msgSuccess("提交成功");
          let tjNumber = this.tjNumber;
          let data = {
            userId: this.userId,
            tjNumber: tjNumber,
            state: 1,
            id: this.MsgId,
          };
          gettoPdf(tjNumber).then((res) => {
            this.$modal.msgSuccess("已生成报告!请前往报告核收页面确认!");
          });
          getfiedState(data).then((res) => {
            this.drawer = false;
          });
        }
      });
      for (let i = 0; i < this.changedate.length; i++) {
        this.proIds = this.changedate[i].parentId;
        let remarks = this.changedate[i].remark;
        let updateOrderRemarkVos = [
          {
            tjNumber,
            proId: this.proIds.toString(),
            remarks,
          },
        ];
        getModified(updateOrderRemarkVos).then((response) => { });
      }
      this.submitForm();
      this.$forceUpdate();
      // this.changedate.forEach((item) => {
      //   this.proIds = item.parentId;
      //   // this.remark = item.remark;
      // });
      console.log(this.yichangList, 6644);
      let dataList = this.yichangList
        .map((item) => {
          return item.sone.map((soneItem) => ({
            tjh,
            parentName: item.proName,
            jcxm: soneItem.proName,
            map: soneItem.advices,
            jyjc: item.jyjc,
            jcjg: soneItem.proResult,
            ckfw: soneItem.stanId,
            dw: soneItem.proAdvice,
          }));
        })
        .flat(); // 使用 flat() 方法将嵌套数组展平
      getTjdetailList(data)
        .then((response) => {
          if (response.code === 200) {
            this.$modal.msgSuccess("提交成功");
            // 准备生成报告的请求数据
            let reportData = {
              userId: this.userId,
              tjNumber: tjNumber,
              state: 1,
              id: this.MsgId,
            };
            // 调用 addOrderPromise
            console.log(dataList, 5555);
            addOrder(dataList)
              .then((res) => {
                console.log(res, 999);
                if (res.code == 200) {
                  gettoPdf(tjNumber)
                    .then((res) => {
                      this.$modal.msgSuccess(
                        "已生成报告!请前往报告核收页面确认!"
                      );
                    })
                    .catch(() => {
                      this.$modal.msgError(
                        "打印报告失败,请前往报告打印页面补打报告!"
                      );
                    });
                  const statePromise = getfiedState(reportData).then(() => {
                    this.drawer = false;
                  });
                  const updatePromises = this.changedate.map((item) => {
                    this.proIds = item.parentId;
                    let remarks = item.remark;
                    let updateOrderRemarkVos = [
                      {
                        tjNumber,
                        proId: this.proIds.toString(),
                        remarks,
                      },
                    ];
                    return getModified(updateOrderRemarkVos); // 返回 Promise
                  });
                  // 等待所有请求完成
                  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;
          }
        })
        .catch((error) => {
          // 提交请求失败,关闭 loading
          this.loading = false;
          console.error("提交请求失败:", error);
        });
    },
  },
};
</script>
<style scoped>
<style scoped lang="scss">
.mainbox {
  position: relative;
}
.btn {
  margin: 20px 0px;
}
.main {
  height: 700px;
  overflow: hidden;
.btnbox {
  display: flex;
  flex-direction: column;
  gap: 10px;
  /* 按钮之间的间距 */
  position: fixed;
  /* 使整个按钮区域固定在页面 */
  right: 0;
  /* 固定在页面右侧 */
  top: 20%;
  /* 初始位置 */
  z-index: 10;
}
#printIframe::-webkit-scrollbar {
/* 每个按钮的样式 */
.btn1 {
  animation: fadeInUp 0.5s ease-out forwards;
  /* 按钮加载时的淡入动画 */
  cursor: pointer;
  text-align: center;
}
.vertical-text {
  writing-mode: vertical-rl;
  text-orientation: upright;
}
/* 设置动画效果 */
@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translateY(20px) scale(0.5);
    /* 初始状态:透明且缩小 */
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
    /* 最终状态:完全显示且正常大小 */
  }
}
/* 每个按钮的位置和动画延迟 */
.btnbox>div:nth-child(1) {
  top: 20%;
  /* 第一个按钮的位置 */
  animation-delay: 0s;
  /* 无延迟 */
}
.btnbox>div:nth-child(2) {
  top: 30%;
  /* 第二个按钮的位置 */
  animation-delay: 0.2s;
}
.btnbox>div:nth-child(3) {
  top: 40%;
  /* 第三个按钮的位置 */
  animation-delay: 0.4s;
}
.btnbox>div:nth-child(4) {
  top: 50%;
  /* 第四个按钮的位置 */
  animation-delay: 0.6s;
}
.btnbox>div:nth-child(5) {
  top: 60%;
  /* 第五个按钮的位置 */
  animation-delay: 0.8s;
}
.btnbox>div:nth-child(6) {
  top: 70%;
  /* 第六个按钮的位置 */
  animation-delay: 1s;
}
.main {
  height: 80vh; // 改为使用视窗高度
  min-height: 600px; // 设置最小高度
  overflow: auto; // 改为auto允许滚动
}
// 优化滚动条样式
.main::-webkit-scrollbar {
  width: 6px;
}
/* 修改 滚动条的 下面 的 样式 */
#printIframe::-webkit-scrollbar-track {
.main::-webkit-scrollbar-track {
  background-color: white;
  -webkit-border-radius: 2em;
  -moz-border-radius: 2em;
  border-radius: 2em;
}
/* 修改 滑块 */
#printIframe::-webkit-scrollbar-thumb {
.main::-webkit-scrollbar-thumb {
  background-color: #dcdfe6;
  -webkit-border-radius: 2em;
  -moz-border-radius: 2em;
  border-radius: 2em;
}
::v-deep .el-dialog {
  margin-top: 5vh !important; // 调整对话框位置
}
::v-deep .el-dialog__header {
  padding: 8px;
}
::v-deep .el-dialog__body {
  padding: 0;
}
::v-deep .el-button--medium {
  padding: 10px;
}
::v-deep .el-dialog__headerbtn {
  // position: relative;
  top: 13px;
}
/* .el-dialog {
@@ -1405,8 +2192,23 @@
}
.dialog-footers {
  /* margin-top: 5px; */
  margin-left: calc(100% - 15%);
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1000;
  /* 确保按钮层级在其他内容上方 */
  width: 300px;
  background-color: white;
  /* 可根据需要调整背景颜色 */
}
/* 确保按钮之间有合适的间距 */
.dialog-footers .el-button {
  margin: 0 5px;
}
textarea {
@@ -1414,7 +2216,100 @@
  border: none;
  outline: none;
}
</style>
.box {
  display: flex;
  height: calc(100% - 160px);
  margin-top: 20px;
  overflow: hidden;
}
.left-container {
  flex: 1;
  margin-right: 10px;
  overflow: hidden;
}
.left {
  height: 100%;
  padding: 0 10px;
  overflow-y: scroll; // 改为 scroll 而不是 auto
  &::-webkit-scrollbar {
    width: 8px; // 增加宽度使其更容易看见
    background-color: #f5f5f5;
    display: block; // 确保显示
  }
  &::-webkit-scrollbar-thumb {
    background: #909399;
    border-radius: 4px;
  }
  &::-webkit-scrollbar-track {
    background: #f5f5f5;
    border-radius: 4px;
  }
}
.rightbox {
  width: 700px;
  overflow: hidden;
}
.right {
  height: 100%;
  padding: 0 10px;
  overflow-y: scroll; // 改为 scroll 而不是 auto
  &::-webkit-scrollbar {
    width: 8px; // 增加宽度
    background-color: #f5f5f5;
    display: block; // 确保显示
  }
  &::-webkit-scrollbar-thumb {
    background: #909399;
    border-radius: 4px;
  }
  &::-webkit-scrollbar-track {
    background: #f5f5f5;
    border-radius: 4px;
  }
}
.top {
  position: sticky;
  top: 0;
  z-index: 10;
  background-color: #fff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  display: flex;
  .el-icon-close {
    cursor: pointer;
    font-size: 30px;
    position: relative;
    top: 7px;
    right: 4px;
    color: rgb(24, 144, 255);
  }
}
.kong {
  box-shadow: none;
}
::v-deep .el-table--medium .el-table__cell {
  padding: 5px 0;
}
::-webkit-scrollbar {
  display: none;
}
::v-deep .el-drawer {
  padding: 0 0 50px;
}
</style>