1
wwl
2024-12-10 fc624ec7a89bf956c925f70be311b4175656b166
1
1个文件已修改
444 ■■■■■ 已修改文件
src/views/doctor/checkAll/index.vue 444 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/doctor/checkAll/index.vue
@@ -237,7 +237,7 @@
    <!-- 点击弹出框 -->
    <el-drawer
      title=""
      custom-class="tanchu"
      :visible.sync="drawer"
      :before-close="handleClose"
      :with-header="false"
@@ -309,13 +309,13 @@
        <i class="el-icon-close" @click="guanbi"></i>
      </div>
      <div style="margin-right: 10px; display: flex">
        <div class="btn1">
      <div style="margin-right: 10px; display: flex" class="btnbox">
        <div class="btn1" v-if="msgtuwen == 'y' || msgtuwen == 'Y'">
          <el-button @click="Graphicreport()" type="primary"
            >图文报告</el-button
          >
        </div>
        <div class="btn2">
        <div class="btn1">
          <el-button @click="historicalreport()" type="primary"
            >历史报告</el-button
          >
@@ -325,15 +325,19 @@
            >职业病史</el-button
          >
        </div>
        <div class="btn3">
        <div class="btn1" v-if="msgjianqian == 'y' || msgjianqian == 'Y'">
          <el-button @click="jianqian()" type="primary">检前问诊</el-button>
        </div>
        <div class="btn4">
          <el-button @click="xiangmuqingkuang()" type="primary">项目情况</el-button>
        <div class="btn1">
          <el-button @click="xiangmuqingkuang()" type="primary"
            >项目情况</el-button
          >
        </div>
        <div class="btn5">
          <el-button @click="yichangjieguo()" type="primary">异常结果</el-button>
        <div class="btn1">
          <el-button @click="yichangjieguo()" type="primary"
            >异常结果</el-button
          >
        </div>
      </div>
      <div class="box">
@@ -449,7 +453,7 @@
                    style="border: 1px solid #dfe6ec; border-collapse: collapse"
                    colspan="3"
                  >
                  <el-input
                    <el-input
                      type="textarea"
                      autosize
                      placeholder="请输入内容"
@@ -586,21 +590,15 @@
            </el-form-item>
          </el-form>
          <div slot="footer" class="dialog-footers">
            <el-button type="primary" @click.stop="guanbi">取消</el-button>
            <el-button
              v-if="tjproject == '0' && (msgkcf == 'y' || msgkcf == 'Y')"
              type="primary"
              size="mini"
              @click.stop="guanbi"
              >取消</el-button
            >
            <el-button
              v-if="tjproject == '0'"
              type="primary"
              size="mini"
              @click.stop="rowClick"
              icon="el-icon-edit-outline"
              >开处方</el-button
            >
            <div v-if="tjproject == '0'" style="padding-left: 10px">
            <div v-if="tjproject == '0'">
              <el-button
                type="primary"
                @click="determine"
@@ -610,98 +608,116 @@
            </div>
          </div>
        </div>
        <div class="rightbox">
          <div class="right">
         <template v-if="status==0">
          <div v-for="(item, index) in yichangList" :key="index" >
            <div
              style="
                text-align: center;
                background-color: #aad8df;
                margin-top: 10px;
              "
            >
              {{ item.proName || "" }}
            </div>
            <el-table
              :row-style="red"
              :data="item.sone"
              border
              style="width: 100%"
              :header-cell-style="{ background: '#aad8df' }"
            >
              <el-table-column align="center" label="检测项目" width="240">
                <template slot-scope="scope">
                  <div>{{ scope.row.proName }}</div>
                </template>
              </el-table-column>
              <el-table-column
                align="center"
                prop="proResult"
                label="检测结果"
                width="160"
              >
              </el-table-column>
            <template v-if="status == 0">
              <div v-for="(item, index) in yichangList" :key="index">
                <div
                  style="
                    text-align: center;
                    background-color: #67c23a;
                    margin-top: 10px;
                  "
                >
                  {{ item.proName || "" }}
                </div>
                <el-table
                  :stripe="true"
                  :row-style="red"
                  :data="item.sone"
                  border
                  style="width: 100%"
                  :header-cell-style="{ background: '#67C23A' }"
                >
                  <el-table-column align="center" label="检测项目" width="220">
                    <template slot-scope="scope">
                      <div>{{ scope.row.proName }}</div>
                    </template>
                  </el-table-column>
                  <el-table-column
                    align="center"
                    prop="proResult"
                    label="检测结果"
                    width="160"
                  >
                  </el-table-column>
              <el-table-column align="center" prop="stanId" label=" 参考范围">
              </el-table-column>
              <el-table-column align="center" prop="proAdvice" label="单位">
              </el-table-column>
            </el-table>
          </div>
          <div v-if="!yichangList.length">暂无异常结果</div>
         </template>
       <template v-if="status==1">
        <div v-for="(item, index) in statusList" :key="index">
            <div
              style="
                text-align: center;
                background-color: #aad8df;
                margin-top: 10px;
              "
            >
              {{ item.proName || "" }}
            </div>
            <el-table
              :data="statusList"
              border
              style="width: 100%"
              :header-cell-style="{ background: '#aad8df' }"
            >
              <el-table-column align="center" label="部门" width="190" prop="deptName">
              </el-table-column>
              <el-table-column
                align="center"
                 prop="proName"
                label="项目"
                width="160"
              >
              </el-table-column>
              <el-table-column
            label="状态"
            align="center"
            prop="type"
            :show-overflow-tooltip="true"
            width="60"
          >
            <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 == '2'">弃检</span>
              <span v-if="scope.row.type == '3'">延期</span>
                  <el-table-column
                    align="center"
                    prop="stanId"
                    label=" 参考范围"
                  >
                  </el-table-column>
                  <el-table-column align="center" prop="proAdvice" label="单位">
                  </el-table-column>
                </el-table>
              </div>
            </template>
          </el-table-column>
          <el-table-column
            label="检查时间"
            align="center"
            prop="bcupdateTime"
            width="160"
          />
            </el-table>
            <template v-if="status == 1">
              <div>
                <div
                  style="
                    text-align: center;
                    background-color: #e6a23c;
                    margin-top: 10px;
                  "
                >
                  项目检查情况
                </div>
                <el-table
                  :row-style="redxiangmu"
                  :data="statusList"
                  style="width: 100%"
                  :header-cell-style="{ background: '#e6a23c' }"
                  :expand-row-keys="expends"
                  :row-key="getRowKeys"
                  :stripe="true"
                >
                  <el-table-column type="expand">
                    <template slot-scope="props">
                      <span>{{ props.row.deptName }}</span>
                    </template>
                  </el-table-column>
                  <el-table-column
                    align="center"
                    label="部门"
                    width="160"
                    prop="deptName"
                  >
                  </el-table-column>
                  <el-table-column
                    align="center"
                    prop="proName"
                    label="项目"
                    width="160"
                  >
                  </el-table-column>
                  <el-table-column
                    label="状态"
                    align="center"
                    prop="type"
                    :show-overflow-tooltip="true"
                    width="60"
                  >
                    <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 == '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>
              </div>
            </template>
          </div>
       </template>
        </div>
        </div>
      </div>
@@ -1185,12 +1201,13 @@
import { getCompany, queryCompany } from "@/api/team/tuanti";
import { reportHistory, yichang } from "@/api/doctor/check";
import { getPdf, revoke } from "@/api/hosp/order";
import { cSWebGetPro} from "@/api/doctor/examination";
import { cSWebGetPro } from "@/api/doctor/examination";
import ViewPdf from "@/components/ViewPdf";
import Historicalreport from "@/components/Historicalreport";
import { getDicts } from "@/api/system/dict/data";
import { getTjYxjcList } from "@/api/system/package";
import { getNewDateList } from "@/api/hosp/order";
import { getconfigKey } from "@/api/login";
import moment from "moment";
export default {
@@ -1277,6 +1294,9 @@
          },
        ],
      },
      msgtuwen: "",
      msgjianqian: "",
      msgkcf: "",
      // 页面全部数据
      checkList: [],
      // 绑定单选按钮
@@ -1342,40 +1362,69 @@
        tjCategory: undefined,
        payType: undefined,
      },
      status: 0 // 0展示异常1展示项目情况
      status: 0, // 0展示异常1展示项目情况
      viewportHeight: 0,
      expends: [],
    };
  },
  created() {
    // this.getNowTime();
    this.getConfigKey();
    this.getdate();
  },
  mounted() {
    this.$nextTick(() => {
      this.$refs.inputName.focus();
      this.viewportHeight =
        window.innerHeight || document.documentElement.clientHeight;
    });
  },
  methods: {
    // 项目情况
    xiangmuqingkuang () {
      cSWebGetPro(this.tjNumber).then((res) => {
        this.status = 1
        this.statusList = res.data;
      })
    getConfigKey() {
      getconfigKey("sfkqtwbg").then((res) => {
        this.msgtuwen = res.msg;
      });
      getconfigKey("sfkqjqwz").then((res) => {
        this.msgjianqian = res.msg;
      });
      getconfigKey("kcf").then((res) => {
        this.msgkcf = res.msg;
      });
    },
    guanbi(){
    //设置table中的扩展项,展开的id,此处我需要全部展开
    getExpends() {
      var proId = this.statusList.map((item) => item.proId);
      this.expends = proId;
    },
    getRowKeys(row) {
      return row.proId;
    },
    // 项目情况
    xiangmuqingkuang() {
      cSWebGetPro(this.tjNumber).then((res) => {
        this.status = 1;
        this.statusList = res.data;
        this.getExpends();
        if (this.statusList.length == 0) {
          _this.$message.msgSuccess("暂无项目情况");
        }
      });
    },
    guanbi() {
      this.drawer = false;
    },
    yichangjieguo() {
      this.status = 0
      let _this = this
      this.status = 0;
      let _this = this;
      yichang({
        tjNum: this.tjNumber,
      }).then((res) => {
        this.yichangList = res.data;
        if (this.yichangList.length == 0) {
          _this.$message.msgSuccess("暂无异常报告");
        }
      });
    },
    getdate() {
@@ -1424,7 +1473,7 @@
      let tjNumber = this.tableAll.tjNumber;
      this.jianqianwenzhendata.push(tjNumber);
    },
    getList() {
      this.loading = true;
      this.queryParams.compId = this.CheckBox.drugManufacturerId;
@@ -1795,6 +1844,14 @@
        color: "red",
      };
    },
    redxiangmu({ row }) {
      if (row.type == 0) {
        // 变颜色的条件
        return {
          color: "red", // 这个return的就是样式 可以是color 也可以是backgroundColor
        };
      }
    },
    /*  changRed(row) {
      if (row.label === "↑") {
        return {
@@ -1823,12 +1880,12 @@
      this.tjproject = "0";
      this.tjNumber = this.tableAll.tjNumber;
      getState(this.tjNumber).then((res) => {
        this.status = res.data;
        if (this.status.status === "1") {
          this.yichangjieguo()
          this.yichangjieguo();
          getInfo().then((response) => {
            this.userId = response.user.userId;
            if (this.userId) {
@@ -1880,7 +1937,6 @@
            }
          });
        } else {
          this.$confirm(
            "" + this.status.name + "正在修改该信息, 是否强制进去?",
            "提示",
@@ -1891,10 +1947,10 @@
            }
          )
            .then(() => {
              this.yichangjieguo()
              this.yichangjieguo();
              getInfo().then((response) => {
                this.userId = response.user.userId;
                if (this.userId) {
                  let data = {
                    userId: this.userId,
@@ -1950,14 +2006,10 @@
                message: "已取消进入",
              });
            });
          this.drawer = false;
        }
      }
    );
          this.drawer = false;
        }
      });
      // 获取小结
      // getDeptAdvice().then((response) => {
@@ -2197,68 +2249,78 @@
.mainbox {
  position: relative;
}
.tanchu {
  background-color: red;
}
.btn {
  margin: 20px 0px;
}
/* 按钮的初始状态 */
.btn1,
.btn2,
.btn3,
.btn4,
.btn5 {
  position: fixed;
  right: 0;
  transform: translateY(-50%);
.btnbox {
  display: flex;
  flex-direction: column;
  gap: 10px;
  cursor: pointer;
  animation: fadeInUp 0.5s ease-out forwards; /* 加载时的淡入动画 */
  gap: 10px; /* 按钮之间的间距 */
  position: fixed; /* 使整个按钮区域固定在页面 */
  right: 0;  /* 固定在页面右侧 */
  top: 20%;  /* 初始位置 */
  z-index: 10;
  transition: transform 0.3s ease; /* 平滑过渡 */
  writing-mode: vertical-rl; /* 使文本竖直排列 */
  text-align: center; /* 文字居中 */
}
// ::v-deep .el-button{
//     background-color: rgba(170, 226, 233, 0.5);
//     color: white;
//   }
/* 加载动画,按钮逐渐显现并放大 */
/* 每个按钮的样式 */
.btn1 {
  animation: fadeInUp 0.5s ease-out forwards;  /* 按钮加载时的淡入动画 */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  writing-mode: vertical-rl;  /* 按钮文本竖直排列 */
  text-align: center;  /* 文字居中 */
}
/* 设置动画效果 */
@keyframes fadeInUp {
  0% {
    opacity: 0;
    transform: translateY(20px) scale(0.5); /* 初始状态:透明且缩小 */
    transform: translateY(20px) scale(0.5);  /* 初始状态:透明且缩小 */
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1); /* 最终状态:完全显示且正常大小 */
    transform: translateY(0) scale(1);  /* 最终状态:完全显示且正常大小 */
  }
}
/* 每个按钮的具体位置和延迟 */
.btn1 {
  top: 20%;
  animation-delay: 0s; /* 第一个按钮无延迟 */
/* 每个按钮的位置和动画延迟 */
.btnbox > div:nth-child(1) {
  top: 20%;  /* 第一个按钮的位置 */
  animation-delay: 0s;  /* 无延迟 */
}
.btn2 {
  top: 30%;
  animation-delay: 0.2s; /* 第二个按钮延迟 0.2 秒 */
.btnbox > div:nth-child(2) {
  top: 30%;  /* 第二个按钮的位置 */
  animation-delay: 0.2s;
}
.btn3 {
  top: 40%;
  animation-delay: 0.4s; /* 第三个按钮延迟 0.4 秒 */
.btnbox > div:nth-child(3) {
  top: 40%;  /* 第三个按钮的位置 */
  animation-delay: 0.4s;
}
.btn4 {
  top: 50%;
  animation-delay: 0.6s; /* 第四个按钮延迟 0.6 秒 */
.btnbox > div:nth-child(4) {
  top: 50%;  /* 第四个按钮的位置 */
  animation-delay: 0.6s;
}
.btn5 {
  top: 60%;
  animation-delay: 0.8s; /* 第四个按钮延迟 0.6 秒 */
.btnbox > div:nth-child(5) {
  top: 60%;  /* 第五个按钮的位置 */
  animation-delay: 0.8s;
}
.btnbox > div:nth-child(6) {
  top: 70%;  /* 第六个按钮的位置 */
  animation-delay: 1s;
}
.main {
  height: 700px;
  overflow: hidden;
@@ -2310,9 +2372,22 @@
}
.dialog-footers {
  /* margin-top: 5px; */
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  margin-left: calc(100% - 25%);
  justify-content: center;
  align-items: center;
  padding: 0px 20px;
  z-index: 1000; /* 确保按钮层级在其他内容上方 */
  width: 100%;
  background-color: white; /* 可根据需要调整背景颜色 */
}
/* 确保按钮之间有合适的间距 */
.dialog-footers .el-button {
  margin: 0 5px;
}
textarea {
@@ -2328,17 +2403,19 @@
  overflow: auto; // 确保父容器可以滚动
}
.rightbox{
.rightbox {
  margin-left: 30px;
  overflow-y: scroll;
  position: sticky;
  top: 0px;
  .right {
  position: sticky;
  top: 0px;
  background-color: #fff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  z-index: 10;
}
    position: sticky;
    top: 0px;
    background-color: #fff;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    z-index: 10;
  }
}
.top {
@@ -2348,15 +2425,18 @@
  background-color: #fff;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
  display: flex;
  .el-icon-close{
  .el-icon-close {
    cursor: pointer;
    font-size: 30px;
    position: relative;
    top: 7px;
    right: 4px;
    color: rgb(24,144,255);
    color: rgb(24, 144, 255);
  }
}
.kong {
  box-shadow: none;
}
</style>