qx
qx
2025-05-16 54cfdd4d9bc15acc70ff96afb95ad05db7aece79
src/views/doctor/checkAll/index.vue
@@ -1,6 +1,6 @@
<template>
  <div class="mainbox">
    <el-form :model="queryParams" ref="tableList" :inline="true" label-width="76px" style="margin-top: 10px">
    <el-form :model="queryParams" ref="tableList" :inline="true" label-width="76px" style="margin-top: 10px" v-if="tjStatus == 0">
      <el-form-item label="姓名" prop="name">
        <el-input v-model="queryParams.name" style="width: 120px" placeholder="请输入姓名" clearable
          @keyup.enter.native="submitForm"></el-input>
@@ -27,6 +27,49 @@
      </el-form-item>
    </el-form>
    <el-form :model="queryParams" ref="tableList" :inline="true" label-width="76px" style="margin-top: 10px" v-if="tjStatus == 1">
      <el-form-item label="姓名" prop="name">
        <el-input v-model="queryParams.name" style="width: 120px" placeholder="请输入姓名" clearable
          @keyup.enter.native="submitForm"></el-input>
      </el-form-item>
      <el-form-item label="体检号" prop="tjNumber">
        <el-input ref="inputName" v-model="queryParams.tjNumber" style="width: 180px" placeholder="请输入体检号" clearable
          @keyup.enter.native="submitForm" @blur="hb"></el-input>
      </el-form-item>
      <el-form-item label="单位名称" prop="tjCompName" style="margin-left: 20px">
        <el-select :remote-method="getRemoteData" v-model="queryParams.tjCompName" value-key="drugManufacturerId"
          style="width: 180px" remote filterable placeholder="请选择单位名称" clearable @change="searchSelect">
          <el-option v-for="dict in CompanyList" :key="dict.drugManufacturerId" :label="dict.cnName" :value="dict" />
        </el-select>
      </el-form-item>
       <el-form-item label="审核医师" prop="shys">
        <el-input ref="inputName" v-model="queryParams.shys" style="width: 180px" placeholder="请输入审核医师" clearable
          @keyup.enter.native="submitForm"></el-input>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" size="mini" @click="submitForm" style="margin-right: 15px">搜索</el-button>
        <el-button size="mini" @click="resetQuery">重置</el-button>
        <el-button type="primary" size="mini" @click="toggleCollapse" style="margin-right: 15px"
          v-show="isCollapsed == 0">高级搜索</el-button>
        <el-button type="primary" size="mini" @click="toggleCollapse3" style="margin-right: 15px"
          v-show="isCollapsed == 1">高级搜索</el-button>
      </el-form-item>
      <el-row v-show="isCollapsed == 1" :gutter="20">
        <el-col :span="8">
          <el-form-item label="体检时间" prop="tjTime">
            <el-date-picker v-model="startTime" type="datetimerange" align="right" :picker-options="pickerOptions"
              style="width: 310px" start-placeholder="开始日期" end-placeholder="结束日期"
              :default-time="['00:00:00', '23:00:00']" format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm"
              @change="dateChangebirthday1">
            </el-date-picker>
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
    <el-radio-group v-model="tjStatus" @input="radioChange" style="margin-left: 20px">
      <el-radio-button label="0">未审核</el-radio-button>
      <el-radio-button label="1">已审核</el-radio-button>
@@ -51,11 +94,12 @@
        <el-table-column label="电话" align="center" prop="cusPhone" :show-overflow-tooltip="true" width="130px" />
        <el-table-column label="审核时间" align="center" prop="shsj" :show-overflow-tooltip="true" width="180px" />
        <el-table-column label="完成时间" align="center" prop="finishTime" :show-overflow-tooltip="true" width="160px" />
        <el-table-column label="状态" align="center" prop="tjStatus" :show-overflow-tooltip="true" width="120px">
          <template slot-scope="scope">
        <el-table-column label="状态" align="center" prop="tjStatus" :show-overflow-tooltip="true" width="120px" v-if="tjStatus == 0">
          <template slot-scope="scope" v-if="tjStatus == 0">
            <span>{{ scope.row.tjStatus == "1" ? "已审核" : "未审核" }}</span>
          </template>
        </el-table-column>
         <el-table-column label="审核医师" align="center" prop="shys"  width="120px" v-if="tjStatus == 1"/>
        <el-table-column label="单位名称" align="center" prop="tjCompName" :show-overflow-tooltip="true" />
        <el-table-column label="体检类别" align="center" prop="tjCategory">
          <template slot-scope="scope">
@@ -400,32 +444,31 @@
                    项目选择
                  </span>
                  <div v-if="xmChange.length > 0" style="display: flex;">
                    <div style="margin:0 40px;font-size: 0.8vw;">项目名称:{{ xmChange[0].pro_name || "" }}</div>
                    <div style="margin:0 40px ;font-size: 0.8vw;">价格:{{ xmChange[0].price || "" }}</div>
                    <div style="margin:0 40px;font-size: 0.8vw;">项目名称:{{ xmChange[0].proName || "" }}</div>
                    <div style="margin:0 80px ;font-size: 0.8vw;">价格:{{ xmChange[0].price || "" }}</div>
                  </div>
                  <div v-else style="display: flex;">
                    <div style="margin:0 40px;font-size: 0.8vw;">项目名称:{{ }}</div>
                    <div style="margin:0 40px ;font-size: 0.8vw;">价格:{{ }}</div>
                    <div style="margin:0 80px ;font-size: 0.8vw;">价格:{{ }}</div>
                  </div>
                  <el-button type="primary" size="mini" @click="handleaddClick()">添加</el-button>
                </div>
                <el-table :row-style="redxiangmu" :data="fcList" style="width: 100%">
                <el-table :row-style="redxiangmu" :data="fcList" style="width: 100%" border>
                  <el-table-column type="selection" width="40" align="center" />
                  <el-table-column label="序号" align="center" prop="index" />
                  <el-table-column label="名称" align="center" prop="pro_name" width="100px" />
                  <el-table-column label="序号" align="center" prop="newID" />
                  <el-table-column label="名称" align="center" prop="proName" width="100px" />
                  <el-table-column label="价格" align="center" prop="price" />
                  <el-table-column label="科室" align="center" prop="dept_name" />
                  <el-table-column label="科室" align="center" prop="deptName" />
                  <el-table-column label="操作" align="center" width="130px">
                    <template slot-scope="scope">
                      <el-button type="primary" icon="el-icon-share" size="mini" @click="handledeleteClick(scope.row)"
                        title="删除"></el-button>
                      <el-button type="primary" size="mini" @click="handledeleteClick(scope.row)">删除</el-button>
                    </template>
                  </el-table-column>
                </el-table>
              </div>
            </template>
            <template v-if="wenzhen">
            <template v-if="status1 == 3">
              <div class="hist3">
                <span class="txt">问诊信息</span>
                <el-form ref="form" :model="formobj" label-width="100px" :inline="true" size="mini">
@@ -721,19 +764,16 @@
    </el-dialog>
    <el-dialog :visible.sync="xmopen" width="800px" append-to-body>
      <el-form ref="form" :model="forms" label-width="80px">
        <el-form-item label="名称" prop="pacName">
          <el-input v-model="forms.pacName" placeholder="请输入名称" />
        </el-form-item>
      </el-form>
      <el-table :data="datasList" ref="elTable" v-loading="loading" @selection-change="handlexmChange" border
        height="320px">
        <el-table-column type="selection" width="40" align="center" />
        <el-table-column label="序号" align="center" prop="pacRemark" />
        <el-table-column label="名称" align="center" prop="pacName" width="100px" />
        <el-table-column label="价格" align="center" prop="price" />
        <el-table-column label="科室" align="center" prop="pacRemark" />
      </el-table>
      <div style="margin: 20px;">
        <el-table :data="datasList" ref="elTable" v-loading="loading" @selection-change="handlexmChange" border
          height="320px">
          <el-table-column type="selection" width="40" align="center" />
          <el-table-column label="名称" align="center" prop="proName" width="100px" />
          <el-table-column label="价格" align="center" prop="price" />
          <el-table-column label="科室" align="center" prop="deptName" />
        </el-table>
      </div>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitFormxm">确 定</el-button>
        <el-button @click="cancels">取 消</el-button>
@@ -851,7 +891,6 @@
      jianqians: false,
      sex: true,
      activeName: "1",
      wenzhen: false,
      hosproy: true,
      remarks: "",
      remark: "",
@@ -911,6 +950,7 @@
      Testitems: [],
      CheckBox: {},
      startTime: [],
       isCollapsed: 0,
      textarea1: "",
      loading: true,
      selectLettercurrent: " ",
@@ -932,6 +972,7 @@
        compId: null,
        name: null,
        checkStatus: null,
        shys: null,
      },
      formobj: {},
      yichangList: [],
@@ -1048,6 +1089,14 @@
    handleCurrentChangeAdvice(currentRow) {
      this.selectedAdvice = currentRow;
    },
     toggleCollapse3() {
      this.isCollapsed = 0;
    },
    toggleCollapse() {
      this.isCollapsed = 1;
    },
    applySelectedAdvice() {
@@ -1277,21 +1326,32 @@
    handleaddClick() {
      console.log(this.xmChange)
      let data = {
        orderId: this.xmChange[0].order_id,
        orderId: this.xmChange[0].orderId,
        data: [{
          proId: this.xmChange[0].pro_id,
          proId: this.xmChange[0].proId,
          type: 1
        }]
      }
      UpdFcPro(data).then(res => {
        if (res.code == 200) {
          this.xmChange = []
          this.fuchaxiangmu()
        }
      })
    },
    handledeleteClick() {
    handledeleteClick(row) {
      let data = {
        orderId: row.orderId,
        data: [{
          proId: row.proId,
          type: 0
        }]
      }
      UpdFcPro(data).then(res => {
        if (res.code == 200) {
          this.fuchaxiangmu()
        }
      })
    },
@@ -1331,17 +1391,23 @@
    getRowKeys(row) {
      return row.orderDetailId;
    },
    xiangmuqingkuang() {
      cSWebGetPro(this.tjNumber).then((res) => {
        this.status1 = 1;
        this.wenzhen = false
        this.statusList = res.data;
        if (this.statusList.length == 0) {
          this.$message.msgSuccess("暂无项目情况");
        }
      });
      this.loading = true;
      cSWebGetPro(this.tjNumber)
        .then((res) => {
          this.status1 = 1;
          this.statusList = res.data;
          if (this.statusList.length == 0) {
            this.$message.success("暂无项目情况");
          }
        })
        .catch((error) => {
          console.error('获取项目情况失败:', error);
          this.$message.error('获取项目情况失败');
        })
        .finally(() => {
          this.loading = false;
        });
    },
    guanbi() {
@@ -1349,40 +1415,54 @@
    },
    yichangjieguo() {
      this.loading = true;
      this.status1 = 0;
      let _this = this;
      yichang({
        tjNum: this.tjNumber,
      }).then((res) => {
        this.yichangList = res.data;
        this.yichangList.forEach((item) => {
          item.sone.forEach((soneItem) => {
            if (!Array.isArray(soneItem.advices) || soneItem.advices.length === 0) {
              soneItem.advices = [{ bt: "", nr: "" }];
            }
      })
        .then((res) => {
          this.yichangList = res.data;
          this.yichangList.forEach((item) => {
            item.sone.forEach((soneItem) => {
              if (!Array.isArray(soneItem.advices) || soneItem.advices.length === 0) {
                soneItem.advices = [{ bt: "", nr: "" }];
              }
            });
          });
          if (!this.yichangList) {
            this.$message.warning("暂无异常报告");
          }
        })
        .catch((error) => {
          console.error('获取异常结果失败:', error);
          this.$message.error('获取异常结果失败');
        })
        .finally(() => {
          this.loading = false;
        });
        if (!this.yichangList) {
          _this.$message({
            type: "warning",
            message: "暂无异常报告",
          });
        }
      });
    },
    fuchaxiangmu() {
      this.loading = true;
      this.status1 = 2;
      this.wenzhen = false
      let data = {
        tjNum: this.tjNumber,
        type: 1
      }
      getFcList(data).then(res => {
        this.fcList = res.data
      })
      };
      getFcList(data)
        .then((res) => {
          this.fcList = res.data;
          this.fcList.forEach((item, index) => {
            item.newID = index + 1;
          })
        })
        .catch((error) => {
          console.error('获取复查项目失败:', error);
          this.$message.error('获取复查项目失败');
        })
        .finally(() => {
          this.loading = false;
        });
    },
    getdate() {
@@ -1499,82 +1579,110 @@
    },
    Graphicreport() {
      this.loading = true;
      let dictType = "dict_ageunit";
      getDicts(dictType).then((res) => {
        if (res.code == 200) {
          res.data.forEach((item) => {
            if (this.tableAll.age_unit == item.dictValue) {
              this.tableAll.age_unit = item.dictLabel;
            }
          });
          let dictTypes = "sys_user_sex";
          getDicts(dictTypes).then((res) => {
            if (res.code == 200) {
              res.data.forEach((item) => {
                if (this.tableAll.cusSex == item.dictValue) {
                  this.tableAll.cusSex = item.dictLabel;
                }
              });
              let data = {
                patname: this.tableAll.cusName,
                sex: this.tableAll.cusSex,
                patage: this.tableAll.age,
                patagename: this.tableAll.age_unit,
                patbirth: this.tableAll.cusBrithday,
              };
              getTjYxjcList(data).then((res) => {
                this.baogao = res.data;
              });
              this.$refs.bbb.open = true;
              this.$refs.bbb.title = "报告字典";
            }
          });
        }
      });
      getDicts(dictType)
        .then((res) => {
          if (res.code == 200) {
            res.data.forEach((item) => {
              if (this.tableAll.age_unit == item.dictValue) {
                this.tableAll.age_unit = item.dictLabel;
              }
            });
            let dictTypes = "sys_user_sex";
            return getDicts(dictTypes);
          } else {
            throw new Error('获取年龄单位字典失败');
          }
        })
        .then((res) => {
          if (res.code == 200) {
            res.data.forEach((item) => {
              if (this.tableAll.cusSex == item.dictValue) {
                this.tableAll.cusSex = item.dictLabel;
              }
            });
            let data = {
              patname: this.tableAll.cusName,
              sex: this.tableAll.cusSex,
              patage: this.tableAll.age,
              patagename: this.tableAll.age_unit,
              patbirth: this.tableAll.cusBrithday,
            };
            return getTjYxjcList(data);
          } else {
            throw new Error('获取性别字典失败');
          }
        })
        .then((res) => {
          this.baogao = res.data;
          this.$refs.bbb.open = true;
          this.$refs.bbb.title = "报告字典";
        })
        .catch((error) => {
          console.error('生成图文报告失败:', error);
          this.$message.error('生成图文报告失败');
        })
        .finally(() => {
          this.loading = false;
        });
    },
    historicalreport() {
      this.loading = true;
      this.wenzhen = false;
      this.hosproy = true;
      let data = {
        cusId: this.tableAll.cusId,
      };
      reportHistory(data).then((res) => {
        this.loading = false;
        if (res.data[0] != null) {
          this.reportHistorydata = res.data;
        } else {
          this.reportHistorydata = [];
        }
      });
      reportHistory(data)
        .then((res) => {
          if (res.data[0] != null) {
            this.reportHistorydata = res.data;
          } else {
            this.reportHistorydata = [];
          }
        })
        .catch((error) => {
          console.error('获取历史报告失败:', error);
          this.$message.error('获取历史报告失败');
        })
        .finally(() => {
          this.loading = false;
        });
    },
    medicalhistory() {
      this.wenzhen = true;
      this.hosproy = false;
      this.loading = true;
      this.status1 = 3;
      let tjNumber = this.tableAll.tjNumber;
      getInfoById(tjNumber).then((response) => {
        this.formobj = response.data;
        if (this.formobj.xiyan == null) {
          this.formobj.xiyan = "1";
        }
        if (this.formobj.xiyanpinlv == null) {
          this.formobj.xiyanpinlv = "0";
        }
        if (this.formobj.xiyanyear == null) {
          this.formobj.xiyanyear = "0";
        }
        if (this.formobj.yinjiu == null) {
          this.formobj.yinjiu = "1";
        }
        if (this.formobj.yinjiupinlv == null) {
          this.formobj.yinjiupinlv = "0";
        }
        if (this.formobj.yinjiuyear == null) {
          this.formobj.yinjiuyear = "0";
        }
      });
      getInfoById(tjNumber)
        .then((response) => {
          this.formobj = response.data;
          if (this.formobj.xiyan == null) {
            this.formobj.xiyan = "1";
          }
          if (this.formobj.xiyanpinlv == null) {
            this.formobj.xiyanpinlv = "0";
          }
          if (this.formobj.xiyanyear == null) {
            this.formobj.xiyanyear = "0";
          }
          if (this.formobj.yinjiu == null) {
            this.formobj.yinjiu = "1";
          }
          if (this.formobj.yinjiupinlv == null) {
            this.formobj.yinjiupinlv = "0";
          }
          if (this.formobj.yinjiuyear == null) {
            this.formobj.yinjiuyear = "0";
          }
        })
        .catch((error) => {
          console.error('获取职业病史失败:', error);
          this.$message.error('获取职业病史失败');
        })
        .finally(() => {
          this.loading = false;
        });
    },
    downLoadFileImg(row) {
@@ -1897,7 +2005,6 @@
    handleClose1(done) {
      this.jianqians = false;
      this.wenzhen = false;
      this.flags = false;
      done();
    },