lkk
2024-12-31 2f86e4951e782e8cb0bfe37276cfc6812fed9a62
src/views/doctor/check/index.vue
@@ -513,17 +513,18 @@
                :key="index"
              >
                <el-table
                  class="bgc"
                  v-loading="loading"
                  :data="proParentList.sons"
                  border
                  height="460px"
                  style="width: 96%; margin: 10px 10px"
                  :row-class-name="tableRowClassName"
                >
                  <el-table-column
                    prop="project.proName"
                    label="检测项目"
                    width="150"
                    fixed="left"
                  >
                    <!-- <template slot-scope="scope">
            {{ scope.row.project.proName }}
@@ -532,7 +533,7 @@
                  <el-table-column
                    prop="proResult"
                    label="检测结果"
                    width="200"
                    width="150"
                  >
                    <template slot-scope="scope">
                      <el-input
@@ -544,11 +545,22 @@
                        placeholder="请输入检测结果"
                        @blur="handleInputConfirm(scope.row)"
                        @input="vale"
                        @focus="handleInConfirm(scope.row)"
                      ></el-input>
                    </template>
                  </el-table-column>
                  <el-table-column label="规则" width="55">
                  <el-table-column
                    prop="exceptionDesc"
                    label="异常"
                    width="55px"
                    align="center"
                  >
                    <template slot-scope="scope">
                      <el-checkbox
                        v-model="scope.row.exceptionDesc"
                      ></el-checkbox>
                    </template>
                  </el-table-column>
                  <el-table-column label="规则" width="70">
                    <template slot-scope="scope">
                      <el-button
                        class="blue-button"
@@ -557,12 +569,20 @@
                      >
                    </template>
                  </el-table-column>
                  <el-table-column prop="project.proMetering" label="单位">
                  <el-table-column
                    prop="project.proMetering"
                    label="单位"
                    width="55"
                  >
                    <!-- <template slot-scope="scope">
            {{ scope.row.standard.company }}
          </template> -->
                  </el-table-column>
                  <el-table-column prop="project.proScope" label="参考范围">
                  <el-table-column
                    prop="project.proScope"
                    label="参考范围"
                    width="70"
                  >
                  </el-table-column>
                  <el-table-column
                    prop="conclusion"
@@ -581,37 +601,23 @@
                      ></el-input>
                    </template>
                  </el-table-column>
                  <el-table-column
                    prop="exceptionDesc"
                    label="是否异常"
                    width="80px"
                    align="center"
                  >
                    <template slot-scope="scope">
                      <el-checkbox
                        v-model="scope.row.exceptionDesc"
                      ></el-checkbox>
                    </template>
                  </el-table-column>
                  <el-table-column
                    prop="isReturn"
                    label="是否复诊"
                    width="80px"
                    label="复诊"
                    width="60px"
                    align="center"
                  >
                    <template slot-scope="scope">
                      <el-checkbox v-model="scope.row.isReturn"></el-checkbox>
                    </template>
                  </el-table-column>
                  <el-table-column prop="resultType" label="结果类型">
                    <template slot-scope="scope">
                      <dict-tag
                        :options="dict.type.tj_result_type"
                        :value="scope.row.resultType"
                      />
                    </template>
                  </el-table-column>
                  <el-table-column prop="isPositive" label="重大阳性">
                  <el-table-column
                    prop="isPositive"
                    label="重大阳性"
                    width="55"
                  >
                    <template slot-scope="scope">
                      <el-switch
                        v-model="scope.row.isPositive"
@@ -619,6 +625,24 @@
                        inactive-value="0"
                        @change="checkboxchange(scope.row)"
                      ></el-switch>
                    </template>
                  </el-table-column>
                  <el-table-column prop="resultType" label="结果建议">
                    <template slot-scope="scope">
                      <el-popover placement="top" trigger="hover" width="400">
                        <div>
                          {{ scope.row.proAdvice }}
                        </div>
                        <div slot="reference" class="jianyi">
                          <el-input
                            type="textarea"
                            autosize
                            v-model="scope.row.proAdvice"
                            placeholder="请输入结果建议"
                            :disabled="true"
                          ></el-input>
                        </div>
                      </el-popover>
                    </template>
                  </el-table-column>
                </el-table>
@@ -657,7 +681,7 @@
                        <el-input
                          type="textarea"
                          placeholder="请选择内容"
                          v-model="proParentList.remark"
                          v-model="titles"
                          rows="2"
                        >
                        </el-input>
@@ -803,17 +827,18 @@
                :key="index"
              >
                <el-table
                  class="bgc"
                  v-loading="loading"
                  :data="proParentList.sons"
                  border
                  height="460px"
                  style="width: 96%; margin: 10px 10px"
                  :row-class-name="tableRowClassName"
                >
                  <el-table-column
                    prop="project.proName"
                    label="检测项目"
                    width="150"
                    fixed="left"
                    width="100"
                  >
                    <!-- <template slot-scope="scope">
            {{ scope.row.project.proName }}
@@ -822,7 +847,7 @@
                  <el-table-column
                    prop="proResult"
                    label="检测结果"
                    width="200"
                    width="150"
                  >
                    <template slot-scope="scope">
                      <el-input
@@ -834,11 +859,10 @@
                        placeholder="请输入检测结果"
                        @blur="handleInputConfirm(scope.row)"
                        @input="vale"
                        @focus="handleInConfirm(scope.row)"
                      ></el-input>
                    </template>
                  </el-table-column>
                  <el-table-column label="规则" width="55">
                  <el-table-column label="规则" width="70">
                    <template slot-scope="scope">
                      <el-button
                        class="blue-button"
@@ -847,34 +871,26 @@
                      >
                    </template>
                  </el-table-column>
                  <el-table-column prop="project.proMetering" label="单位">
                  <el-table-column
                    prop="project.proMetering"
                    label="单位"
                    width="55"
                  >
                    <!-- <template slot-scope="scope">
            {{ scope.row.standard.company }}
          </template> -->
                  </el-table-column>
                  <el-table-column prop="project.proScope" label="参考范围">
                  </el-table-column>
                  <el-table-column
                    prop="conclusion"
                    label="结果结论"
                    width="200"
                    prop="project.proScope"
                    label="参考范围"
                    width="80"
                  >
                    <template slot-scope="scope">
                      <el-input
                        size="mini"
                        type="textarea"
                        autosize
                        v-model="scope.row.conclusion"
                        autocomplete="off"
                        placeholder="请输入检测结果"
                        disabled
                      ></el-input>
                    </template>
                  </el-table-column>
                  <el-table-column
                    prop="exceptionDesc"
                    label="是否异常"
                    width="80px"
                    label="异常"
                    width="55px"
                    align="center"
                  >
                    <template slot-scope="scope">
@@ -885,23 +901,20 @@
                  </el-table-column>
                  <el-table-column
                    prop="isReturn"
                    label="是否复诊"
                    width="80px"
                    label="复诊"
                    width="55px"
                    align="center"
                  >
                    <template slot-scope="scope">
                      <el-checkbox v-model="scope.row.isReturn"></el-checkbox>
                    </template>
                  </el-table-column>
                  <el-table-column prop="resultType" label="结果类型">
                    <template slot-scope="scope">
                      <dict-tag
                        :options="dict.type.tj_result_type"
                        :value="scope.row.resultType"
                      />
                    </template>
                  </el-table-column>
                  <el-table-column prop="isPositive" label="重大阳性">
                  <el-table-column
                    prop="isPositive"
                    label="重大阳性"
                    width="55"
                  >
                    <template slot-scope="scope">
                      <el-switch
                        v-model="scope.row.isPositive"
@@ -909,6 +922,24 @@
                        inactive-value="0"
                        @change="checkboxchange(scope.row)"
                      ></el-switch>
                    </template>
                  </el-table-column>
                  <el-table-column prop="resultType" label="结果建议">
                    <template slot-scope="scope">
                      <el-popover placement="top" trigger="hover" width="400">
                        <div>
                          {{ scope.row.proAdvice }}
                        </div>
                        <div slot="reference" class="jianyi">
                          <el-input
                            type="textarea"
                            autosize
                            v-model="scope.row.proAdvice"
                            placeholder="请输入结果建议"
                            :disabled="true"
                          ></el-input>
                        </div>
                      </el-popover>
                    </template>
                  </el-table-column>
                </el-table>
@@ -946,7 +977,7 @@
                        <el-input
                          type="textarea"
                          placeholder="请选择内容"
                          v-model="proParentList.remark"
                          v-model="titles"
                          rows="2"
                        >
                        </el-input>
@@ -1191,8 +1222,18 @@
                @selection-change="handleSelectionChanges"
              >
                <el-table-column type="selection" width="40"> </el-table-column>
                <el-table-column prop="title" label="病种名称" align="center" width="130px"></el-table-column>
                <el-table-column prop="advice" label="建议" align="center" :show-overflow-tooltip="true">
                <el-table-column
                  prop="title"
                  label="病种名称"
                  align="center"
                  width="130px"
                ></el-table-column>
                <el-table-column
                  prop="advice"
                  label="建议"
                  align="center"
                  :show-overflow-tooltip="true"
                >
                </el-table-column>
              </el-table>
              <pagination
@@ -1207,12 +1248,8 @@
              <div class="tab4_txt">
                <h4>已选病种</h4>
              </div>
              <el-table
                border
                :data="deptAdviceList1"
                height="430px"
              >
              <el-table border :data="deptAdviceList1" height="430px">
                <el-table-column prop="title" label="病种名称" align="center">
                </el-table-column>
                <el-table-column
@@ -1342,7 +1379,10 @@
  },
  data() {
    return {
      idss:[],
      remakes: "",
      titles: "",
      advice: "",
      idss: [],
      vaids: [],
      vaids1: [],
      activeNames: "first",
@@ -1381,6 +1421,7 @@
      deptAdviceList1: [],
      deptAdviceList2: [],
      deptAdviceList3: [],
      deptAdviceList4: [],
      value: {},
      remark: "", //备注
      remarks: "",
@@ -1490,6 +1531,12 @@
  },
  methods: {
    tableRowClassName({ row }) {
      if (row.exceptionDesc) {
        return "warning-row";
      }
      return "";
    },
    getbzlist() {
      getDeptAdvice(this.queryParam1).then((response) => {
        this.deptAdviceList = response.data.list;
@@ -1508,88 +1555,18 @@
        tjNum: this.tableAll.tjNumber,
      };
      getAdviceByTjNumAndPro(data).then((res) => {
        console.log(res);
        if (res.data) {
          // this.deptAdviceList2 = [];
          this.deptAdviceList3 = res.data;
          this.deptAdviceList1 = [
            ...new Set(this.deptAdviceList2.concat(this.deptAdviceList3)),
          ];
          this.deptAdviceList3.forEach(items=>{
            this.idss.push(items.id)
          })
          this.deptAdviceList3.forEach((items) => {
            this.idss.push(items.id);
            this.remakes += items.advice + ",";
          });
        }
      });
    },
    handleSelectionChanges(val) {
      // this.deptAdviceList1 = val;
      if (val.length > 1) {
        let del_row = val.shift();
        this.$refs.multipleTable.toggleRowSelection(del_row, false);
        val.forEach((item) => {
          this.deptAdviceList2.push(item);
        });
      } else if ((val.length = 1)) {
        val.forEach((item) => {
          this.deptAdviceList2.push(item);
        });
      }
      this.deptAdviceList1 = [
        ...new Set(this.deptAdviceList2.concat(this.deptAdviceList3)),
      ];
    },
    queding() {
      if (this.proParentList.xiaoJie.length != 0) {
        // this.proParentList.remark = "";
        console.log(this.deptAdviceList,111);
        this.deptAdviceList.forEach((item) => {
          this.ids = item.id;
          console.log(this.deptAdviceList1,222);
          this.deptAdviceList1.forEach((item1) => {
            if (
              item1.id === item.id &&
              !this.proParentList.remark.includes(item.title)
            ) {
              if (this.proParentList.remark) {
                this.proParentList.remark += item.title + ",";
                this.value += item.title + ",";
                this.vaids.push(item1.id);
                this.vaids1 = this.vaids.concat(this.idss)
              } else {
                this.proParentList.remark = item.title + ",";
                this.value += item.title + ",";
                this.vaids.push(item1.id);
                this.vaids1 = this.vaids.concat(this.idss)
              }
            }
          });
        });
        this.taocan = false;
      } else {
        this.proParentList.remark = "";
        this.deptAdviceList.forEach((item) => {
          this.ids = item.id;
          this.deptAdviceList1.forEach((item1) => {
            if (
              item1.id === item.id &&
              !this.proParentList.remark.includes(item.title)
            ) {
              if (this.proParentList.remark) {
                this.proParentList.remark += item.title + ",";
                this.value += item.title + ",";
                console.log(item);
                this.vaids.push(item1.id);
                this.vaids1 = this.vaids.concat(this.idss)
              } else {
                this.proParentList.remark = item.title + ",";
                this.value += item.title + ",";
                this.vaids.push(item1.id);
                this.vaids1 = this.vaids.concat(this.idss)
              }
            }
          });
        });
        this.taocan = false;
      }
    },
    /** 删除按钮操作 */
    handleDelete(row) {
@@ -1598,6 +1575,113 @@
          this.deptAdviceList1.splice(index, 1);
        }
      });
    },
    handleSelectionChanges(selection) {
      this.deptAdviceList2 = this.deptAdviceList1;
      if (selection.length > 1) {
        const del_row = selection.shift();
        this.$refs.multipleTable.toggleRowSelection(del_row, false);
      }
      console.log(selection);
      // this.selectArr = selection;
      selection.forEach((item) => {
        this.deptAdviceList2.push(item);
      });
      this.deptAdviceList1 = [
        ...new Set(this.deptAdviceList2.concat(this.deptAdviceList3)),
      ];
    },
    queding() {
      if (this.proParentList.xiaoJie.length != 0) {
        // this.proParentList.remark = "";
        this.remakes = "";
        this.titles = "";
        // this.deptAdviceList.forEach((item) => {
        // this.ids = item.id;
        this.deptAdviceList1.forEach((item1) => {
          // if (
          //   item1.id === item.id &&
          //   !this.proParentList.remark.includes(item.title)
          // ) {
          if (this.proParentList.remark != null) {
            console.log(this.proParentList.remark);
            this.titles += item1.title + ",";
            this.remakes += item1.advice + ",";
            this.proParentList.remark =
              this.proParentList.remark + this.remakes;
            this.value += item1.title + ",";
            this.vaids.push(item1.id);
            this.vaids1 = this.vaids.concat(this.idss);
          } else {
            this.titles += item1.title + ",";
            this.proParentList.remark = item1.advice + ",";
            this.value += item1.title + ",";
            this.vaids.push(item1.id);
            this.vaids1 = this.vaids.concat(this.idss);
          }
          // }
        });
        // });
        this.taocan = false;
      } else {
        // this.proParentList.remark = "";
        this.titles = "";
        this.remakes = "";
        console.log(this.deptAdviceList1, 888888888888888888888888888);
        // this.deptAdviceList.forEach((item) => {
        // this.ids = item.id;
        this.deptAdviceList1.forEach((item) => {
          this.titles += item.title + ",";
          this.remakes += item.advice + ",";
          this.vaids.push(item.id);
          this.vaids1 = this.vaids.concat(this.idss);
        });
        if (this.proParentList.remark != null) {
          console.log(this.remakes);
          this.proParentList.remark = "";
          console.log(this.proParentList.remark);
          let data = {
            tjNumber: this.tjNumber,
            proParentId: this.nums,
          };
          getParentId(data).then((response) => {
            this.proParentList = response.data;
            this.proParentList.remark =
              this.remakes + this.proParentList.remark;
          });
        } else {
          this.proParentList.remark = this.remakes;
        }
        // this.deptAdviceList1.forEach((item1) => {
        //   // if (item1.id === item.id) {
        //   if (this.proParentList.remark != null) {
        //     console.log(this.proParentList.remark,10101010);
        //     console.log(66666666666);
        //     this.titles += item1.title + ",";
        //     // this.proParentList.remark += item1.advice + ",";
        //     this.remakes += item1.advice + ",";
        //     this.proParentList.remark = this.remakes + this.proParentList.remark;
        //     // this.proParentList.remark ;
        //     // this.value += item1.title + ",";
        //     this.vaids.push(item1.id);
        //     this.vaids1 = this.vaids.concat(this.idss);
        //     return
        //   } else {
        //     console.log(77777777777);
        //     this.titles += item1.title + ",";
        //     this.proParentList.remark = item1.advice + ",";
        //     // this.value += item1.title + ",";
        //     this.vaids.push(item1.id);
        //     this.vaids1 = this.vaids.concat(this.idss);
        //   }
        //   // }
        // });
        // });
        this.taocan = false;
      }
    },
    /** 查询用户列表 */
    getListUser() {
@@ -1676,26 +1760,41 @@
        });
      }
    },
    vale(datas) {
    vale(value) {
      // 你可以在这里处理输入事件
      console.log("输入内容:", value);
    },
    handleInputConfirm(datas) {
      this.focusrow = datas;
      this.proResult = datas;
      var pattern3 = new RegExp("[0-9]+");
      console.log(typeof this.proResult.proResult);
      if (pattern3.test(this.proResult)) {
        let data = {
          proId: this.focusrow.proId,
          cusId: this.tableAll.cusId,
          keyNum: this.proResult,
          tjNum: this.tableAll.tjNumber,
          keyNum: this.proResult.proResult,
        };
        AutoGetRule(data).then((res) => {
          this.focusrow.conclusion = "";
          if (res.data) {
            this.autorule = res.data;
            this.focusrow.rulesList = this.autorule;
            this.focusrow.rulesList = res.data;
            if (res.data.length > 0) {
              const conditions = ["正常", "未见异常", "阴性", "未见明显异常"];
              this.focusrow.exceptionDesc = !conditions.some((condition) =>
                this.autorule[0].bz.includes(condition)
              );
            } else {
              this.focusrow.exceptionDesc = false;
            }
            this.focusrow.proAdvice = this.autorule[0].nr;
            this.autorule.forEach((item) => {
              if (this.focusrow.conclusion) {
                this.focusrow.conclusion += item.bingzhong;
                this.focusrow.conclusion += item.bz;
              } else {
                this.focusrow.conclusion = item.bingzhong;
                this.focusrow.conclusion += item.bz;
              }
            });
          }
@@ -1705,27 +1804,39 @@
          proId: this.focusrow.proId,
          cusId: this.tableAll.cusId,
          keyWord: this.proResult,
          tjNum: this.tableAll.tjNumber,
          keyNum: this.proResult.proResult,
        };
        AutoGetRule(data).then((res) => {
          this.focusrow.conclusion = "";
          if (res.data) {
            this.autorule = res.data;
            this.focusrow.rulesList = this.autorule;
            this.focusrow.rulesList = res.data;
            if (res.data.length > 0) {
              const conditions = ["正常", "未见异常", "阴性", "未见明显异常"];
              this.focusrow.exceptionDesc = !conditions.some((condition) =>
                this.autorule[0].bz.includes(condition)
              );
            } else {
              this.focusrow.exceptionDesc = false;
            }
            this.focusrow.proAdvice = this.autorule[0].nr;
            this.autorule.forEach((item) => {
              if (this.focusrow.conclusion) {
                this.focusrow.conclusion += item.bingzhong;
                this.focusrow.conclusion += item.bz;
              } else {
                this.focusrow.conclusion = item.bingzhong;
                this.focusrow.conclusion += item.bz;
              }
            });
            // this.rows.push(this.focusrow);
          }
        });
      }
      // this.$refs.aaa.open = true;
      // this.$refs.aaa.getList();
      this.rows.push(datas);
      console.log(this.rows, 5522);
    },
    // 规则
    handleguize(row) {
      this.row = row;
      this.$refs.aaa.open = true;
@@ -1742,6 +1853,8 @@
      this.loading = true;
      this.queryParams.type = this.tjStatus;
      getProList(this.queryParams).then((response) => {
        console.log(response, 1212);
        if (response.code == 200) {
          this.loading = false;
          if (response.data) {
@@ -2231,7 +2344,13 @@
        proParentId: this.nums,
      };
      getParentId(data).then((response) => {
        this.proParentList = response.data;
        if (response.data != {}) {
          this.proParentList = response.data;
          this.proParentList.xiaoJie.forEach((item) => {
            this.titles += item.title + ",";
            // this.advice += item.advice + ",";
          });
        }
        this.loading = false;
        this.value = [];
@@ -2340,15 +2459,11 @@
                if (item1 === item) {
                  item = item1;
                }
                // if (item.isReturn == true) {
                //   item.isReturn = 1;
                // }
                // if (item.isReturn == false) {
                //   item.isReturn = 0;
                // }
              });
            }
            this.tjOrderDetail.push({
              proAdvice: item.proAdvice,
              proName: item.project.proName,
              proId: item.project.proId,
              orderDetailId: item.orderDetailId,
@@ -2535,6 +2650,8 @@
              });
            }
            this.tjOrderDetail.push({
              proAdvice: item.proAdvice,
              proName: item.project.proName,
              proId: item.project.proId,
              orderDetailId: item.orderDetailId,
@@ -2680,13 +2797,7 @@
          this.getbzlist();
        });
    },
    handleInConfirm(row) {
      this.focusrow = row;
    },
    handleInputConfirm(row) {
      this.rows.push(row);
    },
    // 点击确认
    determine() {
      // 体检号
@@ -2711,6 +2822,7 @@
          });
        }
        this.tjOrderDetail.push({
          proAdvice: item.proAdvice,
          proName: item.project.proName,
          proId: item.project.proId,
          orderDetailId: item.orderDetailId,
@@ -2726,6 +2838,8 @@
      let data = [
        {
          proAdvice: item.proAdvice,
          tjNumber,
          proId: this.proId,
          remark: this.proParentList.remark, // 备注
@@ -2744,7 +2858,7 @@
  },
};
</script>
<style>
<style lang="scss" scoped>
.el-table .cell {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
@@ -2767,7 +2881,6 @@
}
.el-button--medium {
  padding: 4px 14px;
  font-size: 14px;
}
@@ -2811,10 +2924,35 @@
.tab4 {
  margin-top: 6px;
  width: 30%;
}
.tab4_txt{
.tab4_txt {
  display: flex;
  justify-content: center;
}
::v-deep .el-table .warning-row {
  background: #ffe6e6 !important; /* 轻微的红色背景 */
}
/* .el-table--enable-row-hover .el-table__body tr:hover>td{
   background-color: #ffe6e6 !important;
} */
::v-deep .bgc .el-table__body tr:hover > td {
  background-color: #ffe6e6 !important;
}
::v-deep .bgc .el-table__cell {
  padding: 5px 0 !important;
}
.jianyi {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
  font-size: 12px;
}
::v-deep .el-checkbox__input.is-checked .el-checkbox__inner {
  background-color: #66cc66;
  border-color: #66cc66;
}
</style>