1
lkk
8 小时以前 18f35fe78de41a1b240758c91e05380decb48978
src/views/doctor/checkAll/index.vue
@@ -6,7 +6,6 @@
      :inline="true"
      label-width="76px"
      style="margin-top: 10px"
      v-if="tjStatus == 1"
    >
      <el-form-item label="姓名" prop="name">
        <el-input
@@ -28,7 +27,29 @@
          @blur="hb"
        ></el-input>
      </el-form-item>
      <el-form-item label="体检类别">
        <el-select
          style="width: 200px"
          v-model="queryParams.tjCategory"
          placeholder="请选择体检类别"
        >
          <el-option
            v-for="dict in dict.type.dict_tjtype"
            :key="dict.value"
            :label="dict.label"
            :value="dict.value"
          ></el-option>
        </el-select>
      </el-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"
@@ -53,16 +74,7 @@
          />
        </el-select>
      </el-form-item>
      <el-form-item label="审核医师" prop="shys">
        <el-input
          ref="inputName"
          v-model="queryParams.shys"
          style="width: 180px"
          placeholder="请输入审核医师"
          clearable
          @keyup.enter.native="submitForm"
        ></el-input>
      </el-form-item>
      <el-form-item>
        <el-button
          type="primary"
@@ -90,6 +102,18 @@
        >
      </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
@@ -111,85 +135,33 @@
      </el-row>
    </el-form>
    <el-form
      :model="queryParams"
      ref="tableList"
      :inline="true"
      label-width="76px"
      style="margin-top: 10px"
      v-else
    >
    <!-- <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>
        <el-input v-model="queryParams.name" style="width: 120px" placeholder="请输入姓名" clearable
          @keyup.enter.native="submitForm"></el-input>
      </el-form-item>
      <el-form-item label="体检号" prop="tjNumber">
        <el-input
          ref="inputName"
          v-model="queryParams.tjNumber"
          style="width: 180px"
          placeholder="请输入体检号"
          clearable
          @keyup.enter.native="submitForm"
          @blur="hb"
        ></el-input>
        <el-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 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-form-item
        label="单位名称"
        prop="tjCompName"
        style="margin-left: 20px"
      >
        <el-select
          :remote-method="getRemoteData"
          v-model="queryParams.tjCompName"
          value-key="drugManufacturerId"
          style="width: 180px"
          remote
          filterable
          placeholder="请选择单位名称"
          clearable
          @change="searchSelect"
        >
          <el-option
            v-for="dict in CompanyList"
            :key="dict.drugManufacturerId"
            :label="dict.cnName"
            :value="dict"
          />
      <el-form-item label="单位名称" prop="tjCompName" style="margin-left: 20px">
        <el-select :remote-method="getRemoteData" v-model="queryParams.tjCompName" value-key="drugManufacturerId"
          style="width: 180px" remote filterable placeholder="请选择单位名称" clearable @change="searchSelect">
          <el-option v-for="dict in CompanyList" :key="dict.drugManufacturerId" :label="dict.cnName" :value="dict" />
        </el-select>
      </el-form-item>
      <el-form-item>
        <el-button
          type="primary"
          size="mini"
          @click="submitForm"
          style="margin-right: 15px"
          >搜索</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>
    </el-form> -->
    <el-radio-group
      v-model="tjStatus"
@@ -319,36 +291,33 @@
          <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>
              v-if="msgkcf == 'y' || msgkcf == 'Y'"
              >处方</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
            >
            <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
            >
            <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
            >
          </template>
        </el-table-column>
      </el-table>
@@ -405,10 +374,7 @@
              "
            >
              <td style="border: 1px solid #dfe6ec; border-collapse: collapse">
                姓名:
              </td>
              <td style="border: 1px solid #dfe6ec; border-collapse: collapse">
                {{ tableAll.cusName }}
                姓名:{{ tableAll.cusName }}
              </td>
              <td style="border: 1px solid #dfe6ec; border-collapse: collapse">
                性别:
@@ -423,6 +389,9 @@
              <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="
@@ -432,16 +401,16 @@
              "
            >
              <td style="border: 1px solid #dfe6ec; border-collapse: collapse">
                体检单号:
                单位名称:{{ tableAll.tjCompName }}
              </td>
              <td style="border: 1px solid #dfe6ec; border-collapse: collapse">
                {{ tableAll.tjNumber }}
                体检类型:{{ 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 }}
                体检时间:{{ tableAll.tjTime }}
              </td>
            </tr>
          </table>
@@ -763,8 +732,8 @@
                    type="textarea"
                    placeholder="请输入内容"
                    v-model="textarea1"
                    :rows="3"
                    style="width: 96%"
                    :autosize="{ minRows: minRows, maxRows: maxRows }"
                    style="font-size: 16px"
                  ></el-input>
                </el-form-item>
              </el-form>
@@ -809,10 +778,10 @@
                      border
                      style="width: 100%"
                      :header-cell-style="{ background: '#67C23A' }"
                      :row-key="getRowKeys"
                      :expand-row-keys="expends"
                    >
                    <!--  :expand-row-keys="expends" -->
                      <!--  :expand-row-keys="expends" -->
                      <el-table-column type="expand">
                        <template slot-scope="props">
                          <div style="padding: 10px">
@@ -941,7 +910,7 @@
                      :header-cell-style="{ background: '#67C23A' }"
                      :row-key="getRowKeys"
                    >
                    <!--   :expand-row-keys="expends" -->
                      <!--   :expand-row-keys="expends" -->
                      <el-table-column type="expand">
                        <template slot-scope="props">
                          <div style="padding: 10px">
@@ -1090,8 +1059,8 @@
                      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 == '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>
@@ -1100,16 +1069,31 @@
                      label="检查时间"
                      align="center"
                      prop="bcupdateTime"
                      :formatter="formatDate"
                      width="160"
                    />
                    <el-table-column label="操作" align="center" width="130px">
                    <el-table-column
                      label="操作"
                      align="center"
                      fixed="right"
                      width="80px"
                    >
                      <template slot-scope="scope">
                        <el-button
                          type="primary"
                          size="mini"
                          @click="huifu"
                          @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>
@@ -1164,11 +1148,11 @@
                    style="width: 100%"
                    border
                  >
                    <el-table-column
                    <!-- <el-table-column
                      type="selection"
                      width="40"
                      align="center"
                    />
                    /> -->
                    <el-table-column label="序号" align="center" prop="newID" />
                    <el-table-column
                      label="名称"
@@ -1899,7 +1883,12 @@
    </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="常用建议维护"
@@ -1911,6 +1900,7 @@
</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";
@@ -1934,6 +1924,7 @@
  UpdFcPro,
  huiFuyichangxiangmu,
  hfbt,
  chexiao,
} from "@/api/doctor/checkAll";
import { getInfoById } from "@/api/hosp/history";
import { getInfo } from "@/api/login";
@@ -1978,6 +1969,8 @@
      zhiyeJg: "未发现目标性疾病", // 初始化体检结果为默认值
      selectedAdvice: null,
      activeAdviceIndex: 0,
      minRows: 3,
      maxRows: null,
      advicerulesList: [],
      xmChange: [],
      ychfList: [],
@@ -2124,11 +2117,14 @@
        name: null,
        checkStatus: null,
        shys: null,
        tcm: null,
        tjCategory: null,
      },
      formobj: {},
      yichangList: [],
      fcList: [],
      statusList: [],
      mrjy: "",
      queryParam: {
        pageNum: 1,
        pageSize: 10,
@@ -2156,6 +2152,8 @@
      status1: 0,
      viewportHeight: 0,
      expends: [],
      expandRowKeys: [],
      shouldExpand: false,
    };
  },
@@ -2170,6 +2168,12 @@
      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;
      }
    });
  },
@@ -2289,6 +2293,12 @@
        this.cancelAdviceDialog();
        done();
      }
    },
    formatDate(row) {
      if (!row.qdcreateTime) return "";
      const date = moment(row.qdcreateTime, "YYYY-MM-DD");
      return date.isValid() ? date.format("YYYY-MM-DD") : "无效日期";
    },
    handleAdviceBlur(row, index) {
@@ -2574,6 +2584,15 @@
    yichangjieguo() {
      this.loading = true;
      this.status1 = 0;
      getConfigKey("kzycxmsfzk").then((res) => {
        this.shouldExpand = res.msg;
        // 只有Y/y才展开,其它(包括空、N、null、undefined)都不展开
        if (this.shouldExpand === "Y") {
          this.getExpends();
        } else {
          this.expends = [];
        }
      });
      yichang({
        tjNum: this.tjNumber,
      })
@@ -2592,15 +2611,24 @@
          if (!this.yichangList) {
            this.$message.warning("暂无异常报告");
          }
          // 这里也可以根据shouldExpand再调用一次getExpends,确保数据已加载
          if (this.shouldExpand === "Y" || this.shouldExpand === "y") {
            this.getExpends();
          } else {
            this.expends = [];
          }
        })
        .catch((error) => {
          this.isLoading = false;
          console.error("获取异常结果失败:", error);
          this.$message.error("获取异常结果失败");
        })
        .finally(() => {
          this.isLoading = false;
          this.loading = false;
        });
    },
    fuchaxiangmu() {
      this.loading = true;
@@ -2630,7 +2658,7 @@
          this.status1 = 4;
          this.ychfList = res.data;
          if (this.ychfList.length == 0) {
            this.message.success("暂无异常恢复项目");
            this.$message.success("暂无异常恢复项目");
          }
        })
        .catch((error) => {
@@ -2928,8 +2956,13 @@
    propoChange() {
      this.cusobj = { sex: this.tableAll.cusSex, isZj: 0 };
      this.$refs.proposal.open = true;
      this.$refs.proposal.title = "建议方案";
      this.$refs.proposal.clearSearchFields();
      getConfigKey("mrzscyjy").then((res) => {
        this.mrjy = res.msg; // 会触发 watch → 设置 tjproposal = "1"
        // 等数据状态准备好后再打开弹窗
        this.$refs.proposal.title = "建议方案";
        this.$refs.proposal.open = true;
      });
    },
    eventchange(data) {
@@ -3054,6 +3087,7 @@
      this.startTime = [];
      this.resetForm("tableList");
      this.submitForm();
      this.queryParams.tjCategory = null;
    },
    huifu(row) {
@@ -3061,6 +3095,17 @@
      const proId = row.proId;
      huifu(tjNUm, proId).then((res) => {
        if (res.code == 200) {
          this.$message.success("恢复成功");
          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();
        }
      });
@@ -3108,6 +3153,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;
@@ -3129,7 +3186,7 @@
                  this.isLoading = true;
                  this.drawer = true;
                  getupdateCheckType(this.tjNumber).then((response) => {
                    this.isLoading = false;
                    // this.isLoading = false;
                    this.changedate = response.data;
                    if (this.changedate) {
                      this.changedate.forEach((item) => {
@@ -3184,7 +3241,7 @@
                      this.isLoading = true;
                      this.drawer = true;
                      getupdateCheckType(this.tjNumber).then((response) => {
                        this.isLoading = false;
                        // this.isLoading = false;
                        this.changedate = response.data;
                        if (this.changedate) {
                          for (let i = 0; i < this.changedate.length; i++) {
@@ -3270,6 +3327,7 @@
      let tjNumber = this.tableAll.tjNumber;
      let tjh = this.tableAll.tjNumber;
      let advice = this.textarea1;
      this.isLoading = true;
      let data = {
        tjNumber,
        advice,
@@ -3296,7 +3354,9 @@
      getTjdetailList(data)
        .then((response) => {
          if (response.code === 200) {
            this.$modal.msgSuccess("提交成功");
            // this.$modal.msgSuccess("提交成功");
            this.$modal.msgSuccess(response.msg);
            this.isLoading = false;
            // 清空字段
            this.zhiyeJl = "";
            this.zhiyeJg = "";
@@ -3308,20 +3368,58 @@
              id: this.MsgId,
            };
            addOrder(dataList)
            /* 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.all([statePromise, ...updatePromises])
              .then(() => {
                this.loading = false;
                this.queryParams.page = 1;
                this.queryParams.pageSize = 10;
                this.submitForm();
                this.$forceUpdate();
              })
              .catch((error) => {
                this.loading = false;
                console.error("发生错误:", error);
              });
            /* addOrder(dataList)
              .then((res) => {
                if (res.code == 200) {
                  gettoPdf(tjNumber)
                    .then((res) => {
                      this.$modal.msgSuccess(
                        "已生成报告!请前往报告核收页面确认!"
                      );
                    })
                    .catch(() => {
                      this.$modal.msgError(
                        "打印报告失败,请前往报告打印页面补打报告!"
                      );
                    });
                  // gettoPdf(tjNumber)
                  //   .then((res) => {
                  //     this.$modal.msgSuccess(
                  //       "已生成报告!请前往报告核收页面确认!"
                  //     );
                  //   })
                  //   .catch(() => {
                  //     this.$modal.msgError(
                  //       "打印报告失败,请前往报告打印页面补打报告!"
                  //     );
                  //   });
                  const statePromise = getfiedState(reportData).then(() => {
                    this.drawer = false;
                  });
@@ -3355,7 +3453,7 @@
              .catch((error) => {
                this.loading = false;
                console.error("addOrderPromise 失败:", error);
              });
              }); */
          } else {
            this.loading = false;
            this.$modal.msgError("提交失败");