qx
9 天以前 5f6e994d3ce5f47e8b5dd95bbdfb8aef3e321cb0
src/views/doctor/checkAll/index.vue
@@ -1,7 +1,6 @@
<template>
  <div class="mainbox">
    <el-form :model="queryParams" ref="tableList" :inline="true" label-width="76px" style="margin-top: 10px"
      v-if="tjStatus == 0">
    <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
          @keyup.enter.native="submitForm"></el-input>
@@ -10,11 +9,15 @@
        <el-input ref="inputName" v-model="queryParams.tjNumber" style="width: 180px" placeholder="请输入体检号" clearable
          @keyup.enter.native="submitForm" @blur="hb"></el-input>
      </el-form-item>
      <el-form-item label="体检时间" prop="tjTime">
        <el-date-picker v-model="startTime" type="datetimerange" align="right" :picker-options="pickerOptions"
          style="width: 310px" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="['00:00:00', '23:00:00']"
          format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm" @change="dateChangebirthday1">
        </el-date-picker>
      <el-form-item label="体检类别">
        <el-select style="width: 200px" v-model="queryParams.tjCategory" placeholder="请选择体检类别">
          <el-option v-for="dict in dict.type.dict_tjtype" :key="dict.value" :label="dict.label"
            :value="dict.value"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="套餐名称" prop="tcm">
        <el-input v-model="queryParams.tcm" style="width: 120px" placeholder="请输入套餐名称" clearable
          @keyup.enter.native="submitForm"></el-input>
      </el-form-item>
      <el-form-item label="单位名称" prop="tjCompName" style="margin-left: 20px">
        <el-select :remote-method="getRemoteData" v-model="queryParams.tjCompName" value-key="drugManufacturerId"
@@ -22,21 +25,37 @@
          <el-option v-for="dict in CompanyList" :key="dict.drugManufacturerId" :label="dict.cnName" :value="dict" />
        </el-select>
      </el-form-item>
      <el-form-item label="体检类别">
        <el-select style="width: 200px" v-model="queryParams.tjCategory" placeholder="请选择体检类别"  @change="searchCategory">
          <el-option v-for="dict in dict.type.dict_tjtype" :key="dict.value" :label="dict.label"
            :value="dict.value"></el-option>
        </el-select>
        <!-- <el-input v-model="form.category" placeholder="请输入体检类别" /> -->
      </el-form-item>
      <el-form-item>
        <el-button type="primary" size="mini" @click="submitForm" style="margin-right: 15px">搜索</el-button>
        <el-button size="mini" @click="resetQuery">重置</el-button>
        <el-button type="primary" size="mini" @click="toggleCollapse" style="margin-right: 15px"
          v-show="isCollapsed == 0">高级搜索</el-button>
        <el-button type="primary" size="mini" @click="toggleCollapse3" style="margin-right: 15px"
          v-show="isCollapsed == 1">高级搜索</el-button>
      </el-form-item>
      <el-row v-show="isCollapsed == 1" :gutter="20">
        <el-col :span="4">
          <el-form-item label="审核医师" prop="shys">
            <el-input ref="inputName" v-model="queryParams.shys" style="width: 120px" placeholder="请输入审核医师" clearable
              @keyup.enter.native="submitForm"></el-input>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="体检时间" prop="tjTime">
            <el-date-picker v-model="startTime" type="datetimerange" align="right" :picker-options="pickerOptions"
              style="width: 310px" start-placeholder="开始日期" end-placeholder="结束日期"
              :default-time="['00:00:00', '23:00:00']" format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm"
              @change="dateChangebirthday1">
            </el-date-picker>
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
    <el-form :model="queryParams" ref="tableList" :inline="true" label-width="76px" style="margin-top: 10px"
    <!-- <el-form :model="queryParams" ref="tableList" :inline="true" label-width="76px" style="margin-top: 10px"
      v-if="tjStatus == 1">
      <el-form-item label="姓名" prop="name">
        <el-input v-model="queryParams.name" style="width: 120px" placeholder="请输入姓名" clearable
@@ -62,7 +81,7 @@
          <el-option v-for="dict in dict.type.dict_tjtype" :key="dict.value" :label="dict.label"
            :value="dict.value"></el-option>
        </el-select>
        <!-- <el-input v-model="form.category" placeholder="请输入体检类别" /> -->
        <el-input v-model="form.category" placeholder="请输入体检类别" />
      </el-form-item>
      <el-form-item>
        <el-button type="primary" size="mini" @click="submitForm" style="margin-right: 15px">搜索</el-button>
@@ -84,23 +103,23 @@
        </el-col>
      </el-row>
    </el-form>
    </el-form> -->
    <el-radio-group v-model="tjStatus" @input="radioChange" style="margin-left: 20px">
      <el-radio-button label="0">未审核</el-radio-button>
      <el-radio-button label="1">已审核</el-radio-button>
    </el-radio-group>
     <el-row :gutter="10" class="mb8" v-if="piliang" style="margin: 15px;">
    <el-row :gutter="10" class="mb8" v-if="piliang" style="margin: 15px;">
      <el-col :span="1.5">
        <el-button type="primary"  size="mini" @click="handleshenhe">批量核收</el-button>
        <el-button type="primary" size="mini" @click="handleshenhe">批量核收</el-button>
      </el-col>
    </el-row>
    <template>
      <el-table v-loading="loading" :data="checkList" ref="table" border style="margin: 20px; width: 98%"
        @current-change="handleCurrentChange">
        <el-table-column  type="selection" align="center" label="选择" width="50"  v-if="piliang"/>
        <el-table-column type="selection" align="center" label="选择" width="50" v-if="piliang" />
        <el-table-column label="体检号" align="center" prop="tjNumber" :show-overflow-tooltip="true" width="160px"
          fixed="left" />
        <el-table-column label="姓名" align="center" prop="cusName" :show-overflow-tooltip="true" width="100px"
@@ -115,8 +134,10 @@
        </el-table-column>
        <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="shsj" :show-overflow-tooltip="true" width="180px" v-if="tjStatus == 1" />
        <el-table-column label="体检时间" align="center" prop="tjTime" :show-overflow-tooltip="true" width="180px" v-if="tjStatus == 0" />
        <el-table-column label="审核时间" align="center" prop="shsj" :show-overflow-tooltip="true" width="180px"
          v-if="tjStatus == 1" />
        <el-table-column label="体检时间" align="center" prop="tjTime" :show-overflow-tooltip="true" width="180px"
          v-if="tjStatus == 0" />
        <!-- <el-table-column label="完成时间" align="center" prop="finishTime" :show-overflow-tooltip="true" width="160px" /> -->
        <el-table-column label="状态" align="center" prop="tjStatus" :show-overflow-tooltip="true" width="120px"
          v-if="tjStatus == 0">
@@ -133,14 +154,12 @@
        </el-table-column>
        <el-table-column label="操作" align="center" width="120px" fixed="right">
          <template slot-scope="scope">
            <el-button fixed="right" title="处方" type="text" size="mini" @click.stop="rowClick(scope.row)"
              icon="el-icon-edit-outline"></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 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>
            <el-button fixed="right" type="text" size="mini" @click.stop="rowClick(scope.row)"  v-if="msgkcf == 'y' || msgkcf == 'Y'">处方</el-button>
            <el-button fixed="right" type="text" size="mini" @click.stop="handleClick(scope.row)">详情</el-button>
            <el-button type="text" size="mini" @click.stop="viewReport(scope.row)"
              v-if="scope.row.tjStatus == '1'">预览</el-button>
            <el-button type="text" size="mini" v-if="scope.row.tjStatus == '1'"
              @click.stop="getRevoke(scope.row)">撤销</el-button>
          </template>
        </el-table-column>
      </el-table>
@@ -165,17 +184,17 @@
              {{ tableAll.cusName }}的体检资料
            </caption>
            <tr style="border: 1px solid #dfe6ec; border-collapse: collapse; height: 36px;">
              <td style="border: 1px solid #dfe6ec; border-collapse: collapse">姓名:</td>
              <td style="border: 1px solid #dfe6ec; border-collapse: collapse">{{ tableAll.cusName }}</td>
              <td style="border: 1px solid #dfe6ec; border-collapse: collapse">姓名:{{ tableAll.cusName }}</td>
              <td style="border: 1px solid #dfe6ec; border-collapse: collapse">性别:{{ tableAll.cusSex == 0 ? "男" :
                tableAll.cusSex == 1 ? "女" : "未知" }}</td>
              <td style="border: 1px solid #dfe6ec; border-collapse: collapse">年龄:{{ tableAll.age }}</td>
              <td style="border: 1px solid #dfe6ec; border-collapse: collapse">体检号:{{ tableAll.tjNumber }}</td>
            </tr>
            <tr style="border: 1px solid #dfe6ec; border-collapse: collapse; height: 36px;">
              <td style="border: 1px solid #dfe6ec; border-collapse: collapse">体检单号:</td>
              <td style="border: 1px solid #dfe6ec; border-collapse: collapse">{{ tableAll.tjNumber }}</td>
              <td style="border: 1px solid #dfe6ec; border-collapse: collapse">体检时间:</td>
              <td style="border: 1px solid #dfe6ec; border-collapse: collapse">{{ tableAll.tjTime }}</td>
              <td style="border: 1px solid #dfe6ec; border-collapse: collapse">单位名称:{{ tableAll.tjCompName }}</td>
              <td style="border: 1px solid #dfe6ec; border-collapse: collapse">体检类型:{{ tableAll.tjCategory }}</td>
              <td style="border: 1px solid #dfe6ec; border-collapse: collapse">套餐:{{ tableAll.pacName }}</td>
              <td style="border: 1px solid #dfe6ec; border-collapse: collapse">体检时间:{{ tableAll.tjTime }}</td>
            </tr>
          </table>
          <i class="el-icon-close" @click="guanbi"></i>
@@ -318,8 +337,7 @@
              <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-input type="textarea" placeholder="请输入内容" v-model="textarea1" :autosize="{ minRows: minRows, maxRows: maxRows }"></el-input>
                </el-form-item>
              </el-form>
              <div slot="footer" class="dialog-footers">
@@ -341,8 +359,7 @@
                  </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' }"  :row-key="getRowKeys"
                      v-loading="loading">
                      :header-cell-style="{ background: '#67C23A' }" :row-key="getRowKeys" v-loading="loading">
                      <!-- :expand-row-keys="expends" -->
                      <el-table-column type="expand">
                        <template slot-scope="props">
@@ -390,20 +407,10 @@
                      <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-column
                        label="操作"
                        align="center"
                        class-name="small-padding fixed-width"
                        width="60"
                        fixed="right"
                      >
                      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="60"
                        fixed="right">
                        <template slot-scope="props">
                          <el-button
                            size="mini"
                            type="text"
                            icon="el-icon-delete"
                            @click="shanchu(props.row)"
                          >
                          <el-button size="mini" type="text" icon="el-icon-delete" @click="shanchu(props.row)">
                          </el-button>
                        </template>
                      </el-table-column>
@@ -457,20 +464,10 @@
                        </template>
                      </el-table-column>
                      <el-table-column align="center" prop="proResult" label="检测结果" width="403"></el-table-column>
                      <el-table-column
                        label="操作"
                        align="center"
                        class-name="small-padding fixed-width"
                        width="60"
                        fixed="right"
                      >
                      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="60"
                        fixed="right">
                        <template slot-scope="props">
                          <el-button
                            size="mini"
                            type="text"
                            icon="el-icon-delete"
                            @click="shanchu(props.row)"
                          >
                          <el-button size="mini" type="text" icon="el-icon-delete" @click="shanchu(props.row)">
                          </el-button>
                        </template>
                      </el-table-column>
@@ -487,18 +484,22 @@
                    :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">
                    <el-table-column label="状态" align="center" prop="type" :show-overflow-tooltip="true" width="90">
                      <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 == '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-column label="操作" align="center" width="130px">
                    <el-table-column label="检查时间" align="center" prop="bcupdateTime" :formatter="formatDate"
                      width="160" />
                    <el-table-column label="操作" align="center" width="80px" fixed="right">
                      <template slot-scope="scope">
                        <el-button type="primary" size="mini" @click="huifu" v-if="scope.row.type == '2'">恢复</el-button>
                        <el-button type="primary" size="mini" @click="huifu(scope.row)" v-if="scope.row.type == '2'"
                          :disabled="tjStatus == 1">恢复</el-button>
                        <el-button type="primary" size="mini" @click="chexiao(scope.row)" v-if="scope.row.type == '1'"
                          :disabled="tjStatus == 1">撤销</el-button>
                      </template>
                    </el-table-column>
                  </el-table>
@@ -741,31 +742,12 @@
              </template>
              <template v-if="status1 == 4">
                <div>
                  <el-table
                    :data="ychfList"
                    style="width: 100%"
                    :header-cell-style="{ background: '#e6a23c' }"
                  >
                    <el-table-column
                      align="center"
                      prop="jcxm"
                      label="项目名"
                      width="260"
                    ></el-table-column>
                    <el-table-column
                      label="结果"
                      align="center"
                      prop="jcjg"
                      width="160"
                    />
                  <el-table :data="ychfList" style="width: 100%" :header-cell-style="{ background: '#e6a23c' }">
                    <el-table-column align="center" prop="jcxm" label="项目名" width="260"></el-table-column>
                    <el-table-column label="结果" align="center" prop="jcjg" width="160" />
                    <el-table-column label="操作" align="center" width="130px">
                      <template v-slot="scope">
                        <el-button
                          type="primary"
                          size="mini"
                          @click="hfyc(scope.row.id)"
                          >恢复</el-button
                        >
                        <el-button type="primary" size="mini" @click="hfyc(scope.row.id)">恢复</el-button>
                      </template>
                    </el-table-column>
                  </el-table>
@@ -886,13 +868,14 @@
    </el-dialog>
    <Packages ref="bbb" :baogao="baogao" />
    <Prescription ref="Pre" :preObj="preObj" />
    <proposal ref="proposal" :cusobj="cusobj" @event1="eventchange($event)" />
    <proposal ref="proposal" :cusobj="cusobj" :mrjy="mrjy" @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 _ from 'lodash';
import { getConfigKey } from "@/api/system/config";
import jianqianwenzhen from "@/components/jianqianwenzhen";
import Packages from "@/components/Packages";
import Prescription from "@/components/Prescription";
@@ -916,13 +899,14 @@
  UpdFcPro,
  huiFuyichangxiangmu,
  hfbt,
  chexiao
} from "@/api/doctor/checkAll";
import { getInfoById } from "@/api/hosp/history";
import { getInfo } from "@/api/login";
import { getCompany, queryCompany } from "@/api/team/tuanti";
import { reportHistory, yichang, shanchu } from "@/api/doctor/check";
import { getPdf, revoke } from "@/api/hosp/order";
import { cSWebGetPro,huifu,} from "@/api/doctor/examination";
import { cSWebGetPro, huifu, } from "@/api/doctor/examination";
import ViewPdf from "@/components/ViewPdf";
import Historicalreport from "@/components/Historicalreport";
import { getDicts } from "@/api/system/dict/data";
@@ -961,6 +945,8 @@
      zhiyeJg: '', // 初始化体检结果为默认值
      selectedAdvice: null,
      activeAdviceIndex: 0,
      minRows: 3,
      maxRows: null,
      gotyval: null,
      advicerulesList: [],
      xmChange: [],
@@ -1016,6 +1002,7 @@
      src: "",
      url: "",
      userId: "",
      mrjy: "",
      flag: true,
      bill: null,
      numberList: [],
@@ -1086,6 +1073,7 @@
        name: null,
        checkStatus: null,
        shys: null,
        tcm: null,
        tjCategory: null
      },
      formobj: {},
@@ -1131,6 +1119,12 @@
    this.$nextTick(() => {
      this.$refs.inputName.focus();
      this.viewportHeight = window.innerHeight || document.documentElement.clientHeight;
    });
    getConfigKey("zjysjymrhs").then((res) => {
      const val = parseInt(res.msg); // 确保是数字
      if (!isNaN(val)) {
        this.maxRows = val;
      }
    });
  },
@@ -1197,6 +1191,12 @@
    handleCurrentChangeAdvice(currentRow) {
      this.selectedAdvice = currentRow;
    },
    formatDate(row) {
      if (!row.qdcreateTime) return "";
      const date = moment(row.qdcreateTime, "YYYY-MM-DD");
      return date.isValid() ? date.format("YYYY-MM-DD") : "无效日期";
    },
@@ -1801,9 +1801,9 @@
    radioChange(value) {
      this.loading = true;
      if(value == "0" && this.gotyval == "01"){
      if (value == "0" && this.gotyval == "01") {
        this.piliang = true
      }else{
      } else {
        this.piliang = false
      }
      this.queryParams.checkStatus = value;
@@ -1822,8 +1822,11 @@
    propoChange() {
      this.cusobj = { sex: this.tableAll.cusSex, isZj: 0 };
      this.$refs.proposal.open = true;
      this.$refs.proposal.title = "建议方案";
      getConfigKey("mrzscyjy").then((res) => {
        this.mrjy = res.msg;
        this.$refs.proposal.title = "建议方案";
        this.$refs.proposal.open = true;
      });
    },
    eventchange(data) {
@@ -1906,16 +1909,16 @@
      this.CheckBox = val;
    },
    searchCategory(val){
    searchCategory(val) {
      this.gotyval = val
      if(val == "01" && this.tjStatus == "0"){
          this.piliang = true
      }else{
         this.piliang = false
      if (val == "01" && this.tjStatus == "0") {
        this.piliang = true
      } else {
        this.piliang = false
      }
    },
    handleshenhe(){
    handleshenhe() {
    },
@@ -1957,15 +1960,27 @@
      });
    },
    huifu(row){
    huifu(row) {
      const tjNUm = this.tjNumber;
      const proId = row.proId;
        huifu(tjNUm, proId).then((res) => {
          if (res.code == 200) {
           this.xiangmuqingkuang()
          }
        });
      huifu(tjNUm, proId).then((res) => {
        if (res.code == 200) {
          this.xiangmuqingkuang()
        }
      });
    },
    chexiao(row) {
      const tjNUm = this.tjNumber;
      const proId = row.proId;
      chexiao(tjNUm, proId).then((res) => {
        if (res.code == 200) {
          this.$message.success("撤销成功");
          this.xiangmuqingkuang();
        }
      });
    },
    yichanghuifu() {
      this.loading = true;
@@ -1973,18 +1988,18 @@
      huiFuyichangxiangmu(tjNum).then((res) => {
        this.status1 = 4;
        this.ychfList = res.data;
        if(this.ychfList.length == 0){
          this.message.success("暂无异常恢复项目")
        if (this.ychfList.length == 0) {
          this.$message.success("暂无异常恢复项目")
        }
      })
      .catch((error)=>{
        console.error("获取项目失败:",error);
        this.$message.error("获取项目失败")
      })
      .finally(()=>{
        this.loading = false;
      })
        .catch((error) => {
          console.error("获取项目失败:", error);
          this.$message.error("获取项目失败")
        })
        .finally(() => {
          this.loading = false;
        })
    },
    hfyc(id) {
@@ -2071,6 +2086,18 @@
      this.qingkong()
      this.$refs.Pre.open = false;
      this.tableAll = row;
      let dict = "dict_tjtype"
      getDicts(dict).then(res => {
         if (res.code == 200) {
            res.data.forEach((item) => {
              if (this.tableAll.tjCategory == item.dictValue) {
                this.tableAll.tjCategory = item.dictLabel;
              }
            });
          } else {
            throw new Error('获取体检类型字典失败');
          }
      })
      this.tjproject = "0";
      this.tjNumber = this.tableAll.tjNumber;