11
lkk
2025-06-12 5fc42c5d825592f2c04ca284f4360f9bbad62174
src/views/doctor/examination/index.vue
@@ -52,6 +52,15 @@
          />
        </el-select>
      </el-form-item>
      <el-form-item label="项目" prop="tcm">
        <el-input
          v-model="queryParams.tcm"
          placeholder="请输入体检号"
          clearable
          @keyup.enter.native="handleQuery"
          style="width: 170px"
        />
      </el-form-item>
      <el-form-item label="登记时间" prop="createTimeList">
        <el-date-picker
          v-model="createTimeList"
@@ -92,7 +101,7 @@
    </el-radio-group>
    <div style="width: 100%; margin-left: 10px; display: flex">
      <div style="width: 40.5%; margin-right: 20px">
      <div style="width: 45%">
        <el-table
          id="ta"
          v-loading="loading"
@@ -109,19 +118,19 @@
            label="体检号"
            align="center"
            prop="tjNumber"
            width="160px"
            min-width="160"
          />
          <el-table-column
            label="姓名"
            align="center"
            prop="cusName"
            width="80px"
            min-width="80"
          />
          <el-table-column
            label="性别"
            align="center"
            prop="cusSex"
            width="50px"
            min-width="50"
          >
            <template slot-scope="scope">
              <span v-if="scope.row.cusSex == '0'">男</span>
@@ -136,23 +145,35 @@
            <!-- </template> -->
          </el-table-column>
          <el-table-column
            label="年龄"
            align="center"
            prop="age"
            min-width="100"
          />
          <el-table-column
            label="手机号"
            align="center"
            prop="cusPhone"
            width="100px"
            min-width="100"
          />
          <el-table-column
            label="套餐名"
            align="center"
            prop="tcm"
            min-width="100"
          />
          <el-table-column
            label="登记时间"
            align="center"
            prop="tjTime"
            width="120px"
            min-width="120"
          />
          <el-table-column
            v-if="checkStatus == '1'"
            label="审核状态"
            align="center"
            prop="confirmStatus"
            width="80px"
            min-width="80"
          >
            <template slot-scope="scope">
              <span
@@ -174,17 +195,13 @@
            </template>
          </el-table-column>
          <!--   v-hasPermi="['reservation:reservation:edit']" -->
          <el-table-column label="操作" align="center" width="120px">
          <el-table-column label="操作" align="center" min-width="120px">
            <template slot-scope="scope">
              <el-button
                size="mini"
                type="text"
                @click="tongbu(scope.row)"
                disabled
              <el-button size="mini" type="text" @click="tongbu(scope.row)"
                >同步</el-button
              >
              <!-- :disabled="dis" -->
              <el-button
              <!-- <el-button
                disabled
                size="mini"
                type="text"
@@ -198,7 +215,7 @@
                disabled
                @click="bohui(scope.row)"
                >驳回</el-button
              >
              > -->
            </template>
            <!--    v-show="
                  (xianshi == 'Y' || xianshi == 'y') &&
@@ -208,9 +225,9 @@
          </el-table-column>
        </el-table>
      </div>
      <div style="width: 40%">
      <div style="width: 45%; margin-left: 5%">
        <el-table
          v-loading="loading"
          v-loading="loadingR"
          border
          :row-class-name="tableRowClassName"
          height="520"
@@ -224,14 +241,14 @@
            label="科室"
            align="center"
            prop="deptName"
            width="100"
            min-width="100"
            :show-overflow-tooltip="true"
          />
          <el-table-column
            label="项目"
            align="center"
            prop="proName"
            width="150"
            min-width="150"
            :show-overflow-tooltip="true"
          />
          <el-table-column
@@ -239,7 +256,7 @@
            align="center"
            prop="type"
            :show-overflow-tooltip="true"
            width="100"
            min-width="100"
          >
            <template slot-scope="scope">
              <span
@@ -283,7 +300,7 @@
            label="检查时间"
            align="center"
            prop="bcupdateTime"
            width="160"
            min-width="160"
          />
          <!-- <el-table-column
            label="保存医生"
@@ -297,22 +314,31 @@
            prop="zhupdateTime"
            width="160"
          /> -->
          <el-table-column label="操作" align="center" width="120px">
          <el-table-column label="操作" align="center" min-width="120px">
            <template slot-scope="scope">
              <el-button
                size="mini"
                type="text"
                :disabled="scope.row.type === 1"
                :loading="scope.row.isLoading"
                @click="qijian(scope.row)"
                >弃检</el-button
                >{{ scope.row.type === 0 ? "弃检" : "恢复" }}</el-button
              >
              <el-button
                size="mini"
                type="text"
                :disabled="scope.row.type === 0"
                @click="queryResultone(scope.row)"
                >结果查询</el-button
                @click="yijian(scope.row)"
                v-if="yijiantype == 'N'"
                >已检</el-button
              >
              <el-button
                size="mini"
                type="text"
                :disabled="scope.row.type === 0 || scope.row.type === 2"
                @click="queryResultone(scope.row)"
                >结果</el-button
              >
              <!--  -->
              <!--  @click="chaxun(scope.row) " -->
            </template>
          </el-table-column>
@@ -321,9 +347,7 @@
    </div>
    <el-drawer title="我是标题" :visible.sync="drawer" :with-header="false">
      <div
        style="text-align: center; background-color: #aad8df; margin-top: 10px"
      >
      <div style="text-align: center; background-color: #aad8df">
        {{ name || "" }}
      </div>
      <div class="a">
@@ -331,6 +355,7 @@
          <el-table
            :data="jieguoList"
            border
            :row-style="changRed"
            style="width: 100%"
            :header-cell-style="{ background: '#AAD8DF' }"
          >
@@ -339,6 +364,11 @@
            <el-table-column label="检测结果" prop="pro_result">
            </el-table-column>
            <el-table-column label="参考范围" prop="ckfw"> </el-table-column>
            <el-table-column label="异常标志" prop="ycbz">
              <template slot-scope="scope">
                {{ scope.row.ycbz == 0 ? "正常" : "异常" }}
              </template>
            </el-table-column>
          </el-table>
        </div>
@@ -347,25 +377,24 @@
          <div class="check-result-container">
            <div class="check-item">
              <div class="check-title">检查所见:</div>
              <div class="check-description">
              <div
                class="check-description"
                :style="{ color: isRed ? 'red' : '' }"
              >
                {{ jieguoList[0].pro_result }}
              </div>
            </div>
            <div class="check-item">
              <div class="check-title">检查结论:</div>
              <div class="check-description">
              <div
                class="check-description"
                :style="{ color: isRed ? 'red' : '' }"
              >
                {{ jieguoList[0].yxzd || "暂无结论" }}
              </div>
            </div>
          </div>
          <!-- <div style="padding: 0 10px; margin-bottom: 10px; margin-top: 10px">
            <div style="font-weight: bold">检查所见:</div>
            <div>{{ jieguoList[0].pro_result }}</div>
            <div style="font-weight: bold; margin-top: 10px">检查结论:</div>
            <div>{{ jieguoList[0].yxzd || "暂无结论" }}</div>
          </div> -->
        </div>
      </div>
    </el-drawer>
@@ -385,6 +414,48 @@
        />
      </div>
    </div>
    <el-dialog :visible.sync="open" width="980px" append-to-body>
      <el-form
        ref="form"
        :model="form"
        label-width="98px"
        @submit.native.prevent
      >
        <el-form-item label="弃检" prop="isZybUnit">
          <el-radio-group v-model="form.isZybUnit">
            <el-radio :label="0">自动弃检</el-radio>
            <el-radio :label="1">其他</el-radio>
          </el-radio-group>
        </el-form-item>
        <!-- filterable -->
        <el-form-item
          label="弃检原因"
          prop="yy"
          style="margin-left: 20px"
          v-if="form.isZybUnit == 1"
        >
          <el-select
            v-model="form.yy"
            placeholder="请选择弃检原因"
            clearable
            style="width: 150px"
          >
            <el-option
              v-for="dict in dict.type.qj_type"
              :key="dict.value"
              :label="dict.label"
              :value="dict.label"
            />
          </el-select>
        </el-form-item>
        <br />
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitFormqijian">确 定</el-button>
        <el-button @click="cancel">取 消</el-button>
      </div>
    </el-dialog>
  </div>
</template>
@@ -396,26 +467,33 @@
  cSWebGetPro,
  dataSynchronization,
  qijian,
  yijian,
  resultList,
  typeOne,
  huifu,
  csymxmxzqtyybcjk,
} from "@/api/doctor/examination";
import { getCompany, queryCompany } from "@/api/team/tuanti";
import { getNewDateList } from "@/api/hosp/order";
import moment from "moment";
export default {
  dicts: ["dict_tj_status"],
  dicts: ["dict_tj_status", "qj_type"],
  data() {
    return {
      jieguoList: [],
      jyjc: null,
      dis: false,
      isLoading: false,
      open: false,
      createTimeList: "",
      currentRow: null,
      total: 0,
      loading: true,
      loadingR: false,
      selectedTjNumber: "",
      drawer: false,
      yijiantype: null,
      type: null,
      CompanyList: [],
      CheckBox: {},
@@ -429,6 +507,7 @@
        name: null,
        beginTime: null,
        endTime: null,
        tcm: "",
        tjCompName: "",
      },
      // 绑定单选按钮
@@ -436,6 +515,7 @@
      exaList: [],
      // 表单参数
      xianshi: "",
      rowProId: "",
      name: "",
      form: {},
      clearTimeSet: null,
@@ -491,21 +571,28 @@
    });
  },
  methods: {
    red() {
      return {
        color: "red",
      };
    changRed({ row }) {
      if (row.ycbz != "" && row.ycbz != null && row.ycbz === 1) {
        // 变颜色的条件
        return {
          color: "red", // 这个return的就是样式 可以是color 也可以是backgroundColor
        };
      }
    },
    getdate() {
      getConfigKey("tj_confirm").then((res) => {
        this.xianshi = res.msg;
        console.log(this.xianshi, 999);
        // console.log(this.xianshi, 999);
      });
      getNewDateList().then((res) => {
        this.createTimeList = [
          moment(res.data).format("YYYY-MM-DD 00:00:00"),
          moment(res.data).format("YYYY-MM-DD 23:59:00"),
        ];
        // console.log(res,222);
        // this.createTimeList = [
        //   moment(res.data).format("YYYY-MM-DD 00:00:00"),
        //   moment(res.data).format("YYYY-MM-DD 23:59:00"),
        // ];
        // console.log(this.createTimeList,8855);
        this.getList();
      });
    },
@@ -547,7 +634,7 @@
    // 选框数据
    searchSelect(val) {
      this.CheckBox = val;
      console.log(this.CheckBox, 9999);
      // console.log(this.CheckBox, 9999);
    },
    getList() {
      this.loading = true;
@@ -564,15 +651,15 @@
      // 获取单位信息集合
      getCompany(this.queryParam).then((response) => {
        this.CompanyList = response.data;
        console.log(this.CompanyList, 555);
        // console.log(this.CompanyList, 555);
        this.loading = false;
        // this.loading = false;
      });
      getCsList(this.queryParams).then((res) => {
        if (res.code == 200) {
          this.loading = false;
          if (res.data) {
            this.loading = false;
            this.exaList = res.data.customers;
            this.total = res.data.total;
            if (this.exaList.length != 0) {
@@ -681,6 +768,7 @@
        beginTime: null,
        endTime: null,
        tjCompName: "",
        tcm: "",
      }),
        (this.CheckBox.drugManufacturerId = "");
      this.handleQuery();
@@ -724,20 +812,22 @@
      }
    },
    handleCurrentChange(val) {
      this.loadingR = true;
      this.currentRow = val;
      let tjNumber = val.tjNumber;
      this.selectedTjNumber = val.tjNumber;
      console.log(this.currentRow, 4455);
      typeOne(tjNumber).then((res) => {
        this.type = res.data;
        console.log(res, 3322);
      });
      getConfigKey("sfyccsyjan").then((res) => {
        this.yijiantype = res.msg;
      });
      cSWebGetPro(tjNumber).then((res) => {
        this.loadingR = false;
        this.xiangmuList = res.data;
        console.log(this.xiangmuList, 999);
        this.xiangmuList.forEach((item) => {
          // console.log(item);
          // if (item.type == 0) {
@@ -771,26 +861,110 @@
      });
    },
    cancel() {
      this.open = false;
    },
    submitFormqijian() {
      if (this.form.isZybUnit == 0) {
        const tjNUm = this.selectedTjNumber;
        const proId = this.rowProId;
        qijian(tjNUm, proId).then((res) => {
          if (res.code == 200) {
            this.open = false;
            cSWebGetPro(tjNUm).then((res) => {
              if (res.code === 200) {
                // 更新右边表格的数据
                this.xiangmuList = res.data;
                this.isLoading = false;
              }
            });
          }
        });
      } else {
        if (this.form.yy != null) {
          let data = {
            tjNum: this.selectedTjNumber,
            proId: this.rowProId,
            yy: this.form.yy,
          };
          csymxmxzqtyybcjk(data).then((res) => {
            if (res.code == 200) {
              cSWebGetPro(this.selectedTjNumber).then((res) => {
                if (res.code === 200) {
                  this.open = false;
                  // 更新右边表格的数据
                  this.xiangmuList = res.data;
                  this.isLoading = false;
                }
              });
            }
          });
        } else {
          this.$modal.msgError("请选择弃检原因");
        }
      }
    },
    // 弃检按钮
    qijian(row) {
      const tjNUm = this.selectedTjNumber;
      const proId = row.proId;
      qijian(tjNUm, proId).then((res) => {
        if (res.code == 200) {
          cSWebGetPro(tjNUm).then((res) => {
            if (res.code === 200) {
              // 更新右边表格的数据
              this.xiangmuList = res.data;
            }
          });
        }
      });
      this.rowProId = row.proId;
      row.isLoading = true;
      if (row.type == "2") {
        huifu(tjNUm, proId).then((res) => {
          if (res.code == 200) {
            cSWebGetPro(tjNUm).then((res) => {
              if (res.code === 200) {
                // 更新右边表格的数据
                this.xiangmuList = res.data;
                row.isLoading = false;
              }
            });
          }
        });
      } else {
        this.open = true;
        this.form = {};
        // qijian(tjNUm, proId).then((res) => {
        //   if (res.code == 200) {
        //     cSWebGetPro(tjNUm).then((res) => {
        //       if (res.code === 200) {
        //         // 更新右边表格的数据
        //         this.xiangmuList = res.data;
        //         this.isLoading = false
        //       }
        //     });
        //   }
        // });
      }
    },
    chaxun() {},
    yijian(row) {
      const tjNUm = this.selectedTjNumber;
      const proId = row.proId;
      row.isLoading = true;
      yijian(tjNUm, proId)
        .then((res) => {
          if (res.code == 200) {
            this.$modal.msgSuccess("已检成功");
            cSWebGetPro(tjNUm).then((res) => {
              if (res.code === 200) {
                this.xiangmuList = res.data;
                row.isLoading = false;
              }
            });
          }
        })
        .catch(() => {
          row.isLoading = false;
        });
    },
    handleRowClick(row, column, event) {
      console.log(row, 2323);
      // console.log(row, 2323);
      this.name = row.proName;
      // console.log(this.name, 99999);
    },
    queryResultone(row) {
      // 打开抽屉
@@ -799,6 +973,18 @@
      resultList(tjNum, proId).then((res) => {
        this.jieguoList = res.data;
        this.jyjc = this.jieguoList[0].jyjc;
        const ycbz = this.jieguoList[0].ycbz;
        /* if (ycbz === "" || ycbz === null) {
          return;
        } */
        // 设置是否需要改变颜色
        if (ycbz === "1") {
          this.isRed = true; // 设置标识,改变字体颜色
          console.log(this.isRed, 444);
        } else {
          this.isRed = false; // 恢复默认颜色
        }
        if (res.data.length > 0) {
          this.drawer = true;
@@ -814,14 +1000,12 @@
      }, 300000);
    },
    tongbu(row) {
      // this.$refs.tb.toggleRowSelection(row);
      this.$modal.loading("正在同步,请稍候...");
      this.setTime();
      let tjNumber = row.tjNumber;
      dataSynchronization(tjNumber)
        .then((res, error) => {
          if (res.code == 200) {
            // this.$forceUpdate();
            this.handleCurrentChange(row);
            clearInterval(this.clearTimeSet);
            this.clearTimeSet = null;
@@ -877,6 +1061,9 @@
  display: flex;
  justify-content: center;
}
.red-text {
  color: red !important;
}
.pag1 {
  width: 30%;
@@ -915,4 +1102,21 @@
.check-description.no-result {
  color: #bbb; /* 如果没有结论,文字为淡灰色 */
}
::v-deep .el-table {
  width: 100% !important;
}
::v-deep .el-table__body {
  width: 100% !important;
}
::v-deep .el-table__header {
  width: 100% !important;
}
/* 如果需要隐藏横向滚动条 */
::v-deep .el-table__body-wrapper::-webkit-scrollbar-horizontal {
  display: none;
}
</style>