lkk
2025-02-06 8c6f8e64ca39b0ca7bf545eb0c0328fb79914424
src/views/doctor/checkAll/index.vue
@@ -655,21 +655,44 @@
                  >
                    <el-table-column type="expand">
                      <template slot-scope="props">
                        <div
                          v-if="
                            props.row.advices && props.row.advices.length > 0
                          "
                        >
                        <div>
                          <div
                            v-for="(jianyi, index1) in props.row.advices"
                            :key="index1"
                            style="padding: 0 10px; margin-bottom: 10px"
                            v-if="
                              props.row.advices && props.row.advices.length > 0
                            "
                          >
                            <div
                              v-for="(jianyi, index1) in props.row.advices"
                              :key="index1"
                              style="padding: 0 10px; margin-bottom: 10px"
                            >
                              <div>
                                标题:
                                <el-input
                                  v-model="jianyi.bt"
                                  size="small"
                                  type="textarea"
                                  autosize
                                ></el-input>
                              </div>
                              <div>
                                内容:
                                <el-input
                                  v-model="jianyi.nr"
                                  size="small"
                                  type="textarea"
                                  autosize
                                ></el-input>
                              </div>
                            </div>
                          </div>
                          <!-- 如果 advices 为空时,渲染空的输入框 -->
                          <div v-else>
                            <div>
                              标题:
                              <!-- {{ jianyi.bt || "" }} -->
                              <el-input
                                v-model="jianyi.bt"
                                v-model="emptyAdvice.bt"
                                size="small"
                                type="textarea"
                                autosize
@@ -678,7 +701,7 @@
                            <div>
                              内容:
                              <el-input
                                v-model="jianyi.nr"
                                v-model="emptyAdvice.nr"
                                size="small"
                                type="textarea"
                                autosize
@@ -686,13 +709,13 @@
                            </div>
                          </div>
                        </div>
                        <!-- <div v-else style="padding: 0 10px">暂无内容</div> -->
                      </template>
                    </el-table-column>
                    <el-table-column
                      align="center"
                      label="检测项目"
                      :show-overflow-tooltip="true"
                      width="353"
                    >
                      <template slot-scope="scope">
@@ -737,23 +760,45 @@
                  >
                    <el-table-column type="expand">
                      <template slot-scope="props">
                        <div
                          v-if="
                            props.row.advices && props.row.advices.length > 0
                          "
                        >
                        <div>
                          <!-- 如果 advices 非空,渲染其内容 -->
                          <div
                            v-for="(jianyi, index1) in props.row.advices"
                            :key="index1"
                            style="padding: 0 10px; margin-bottom: 10px"
                            v-if="
                              props.row.advices && props.row.advices.length > 0
                            "
                          >
                            <!-- <div>标题:{{ jianyi.bt || "" }}</div>
                            <div>内容:{{ jianyi.nr || "" }}</div> -->
                            <div
                              v-for="(jianyi, index1) in props.row.advices"
                              :key="index1"
                              style="padding: 0 10px; margin-bottom: 10px"
                            >
                              <div>
                                标题:
                                <el-input
                                  v-model="jianyi.bt"
                                  size="small"
                                  type="textarea"
                                  autosize
                                ></el-input>
                              </div>
                              <div>
                                内容:
                                <el-input
                                  v-model="jianyi.nr"
                                  size="small"
                                  type="textarea"
                                  autosize
                                ></el-input>
                              </div>
                            </div>
                          </div>
                          <!-- 如果 advices 为空时,渲染空的输入框 -->
                          <div v-else>
                            <div>
                              标题:
                              <!-- {{ jianyi.bt || "" }} -->
                              <el-input
                                v-model="jianyi.bt"
                                v-model="emptyAdvice.bt"
                                size="small"
                                type="textarea"
                                autosize
@@ -762,7 +807,7 @@
                            <div>
                              内容:
                              <el-input
                                v-model="jianyi.nr"
                                v-model="emptyAdvice.nr"
                                size="small"
                                type="textarea"
                                autosize
@@ -770,7 +815,6 @@
                            </div>
                          </div>
                        </div>
                        <!-- <div v-else style="padding: 0 10px">暂无内容</div> -->
                      </template>
                    </el-table-column>
@@ -778,6 +822,7 @@
                      align="center"
                      label="检测项目"
                      width="232"
                      :show-overflow-tooltip="true"
                    >
                      <template slot-scope="scope">
                        <div>{{ scope.row.proName }}</div>
@@ -1342,6 +1387,7 @@
import { getNewDateList } from "@/api/hosp/order";
import { getconfigKey } from "@/api/login";
import moment from "moment";
import { get } from "sortablejs";
export default {
  components: {
@@ -1368,7 +1414,10 @@
  data() {
    return {
      // 更新总检建议
      emptyAdvice: {
        bt: "",
        nr: "",
      },
      initialTotalCheckAdvice: "",
      initialState: "",
      preObj: {},
@@ -1558,7 +1607,27 @@
        tjNum: this.tjNumber,
      }).then((res) => {
        this.yichangList = res.data;
        console.log(this.yichangList, 3232);
        this.getExpends();
        this.yichangList.forEach((item) => {
          item.sone.forEach((soneItem) => {
            if (
              !Array.isArray(soneItem.advices) ||
              soneItem.advices.length === 0
            ) {
              // 如果 advices 是空,设置默认值
              soneItem.advices = [
                {
                  bt: "",
                  nr: "",
                },
              ];
            }
          });
        });
        if (!this.yichangList) {
          _this.$message({
            type: "warning ",
@@ -2302,10 +2371,120 @@
    // },
    change(vale) {},
    // determine() {
    //   let tjNumber = this.tableAll.tjNumber;
    //   let tjh = this.tableAll.tjNumber;
    //   // let jyjc = this.yichangList.map(item => item.jyjc || null);
    //   let advice = this.textarea1;
    //   let data = {
    //     tjNumber,
    //     advice,
    //     checkStatus: 1,
    //   };
    //   console.log(this.yichangList, 66);
    //   let dataList = this.yichangList
    //     .map((item) => {
    //       return item.sone.map((soneItem) => ({
    //         tjh,
    //         parentName: item.proName,
    //         jcxm: soneItem.proName,
    //         map: soneItem.advices,
    //         jyjc: item.jyjc, // assuming jyjc belongs to the outer item, not soneItem
    //         jcjg: soneItem.proResult,
    //         ckfw: soneItem.stanId,
    //         dw: soneItem.proAdvice,
    //       }));
    //     })
    //     .flat(); // 使用 flat() 方法将嵌套数组展平
    //   console.log(dataList, 777);
    //   /*  addOrder(dataList).then((res) => {
    //     console.log(res, 999);
    //   }); */
    //   getTjdetailList(data)
    //     .then((response) => {
    //       if (response.code === 200) {
    //         this.$modal.msgSuccess("提交成功");
    //         // 准备生成报告的请求数据
    //         let reportData = {
    //           userId: this.userId,
    //           tjNumber: tjNumber,
    //           state: 1,
    //           id: this.MsgId,
    //         };
    //         // 生成报告并保持 loading 打开
    //         const reportPromise = gettoPdf(tjNumber)
    //           .then((res) => {
    //             this.$modal.msgSuccess("已生成报告!请前往报告核收页面确认!");
    //           })
    //           .catch((error) => {
    //             this.$modal.msgError(
    //               "打印报告失败,请前往报告打印页面补打报告!"
    //             );
    //           });
    //         // 更新状态并提交修改请求
    //         const statePromise = getfiedState(reportData).then((res) => {
    //           this.drawer = false;
    //         });
    //         // const addOrderPromise = addOrder(dataList).then((res) => {
    //         //   console.log(res, 999);
    //         // });
    //         // 处理其他修改操作
    //         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
    //         });
    //         // 等待所有请求完成
    //         Promise.all([
    //           reportPromise,
    //           statePromise,
    //           // addOrderPromise,
    //           ...updatePromises,
    //         ])
    //           .then(() => {
    //             // 所有请求完成,关闭 loading
    //             this.loading = false;
    //             // 更新分页信息
    //             this.queryParams.page = 1;
    //             this.queryParams.pageSize = 10;
    //             this.submitForm();
    //             this.$forceUpdate();
    //           })
    //           .catch((error) => {
    //             // 处理错误情况
    //             this.loading = false;
    //             console.error("发生错误:", error);
    //           });
    //       } else {
    //         // 提交失败,关闭 loading
    //         this.loading = false;
    //       }
    //     })
    //     .catch((error) => {
    //       // 提交请求失败,关闭 loading
    //       this.loading = false;
    //       console.error("提交请求失败:", error);
    //     });
    // },
    determine() {
      let tjNumber = this.tableAll.tjNumber;
      let tjh = this.tableAll.tjNumber;
      // let jyjc = this.yichangList.map(item => item.jyjc || null);
      let advice = this.textarea1;
      let data = {
        tjNumber,
@@ -2313,7 +2492,7 @@
        checkStatus: 1,
      };
      console.log(this.yichangList, 66);
      console.log(this.yichangList, 6644);
      let dataList = this.yichangList
        .map((item) => {
@@ -2322,18 +2501,14 @@
            parentName: item.proName,
            jcxm: soneItem.proName,
            map: soneItem.advices,
            jyjc: item.jyjc, // assuming jyjc belongs to the outer item, not soneItem
            jyjc: item.jyjc,
            jcjg: soneItem.proResult,
            ckfw: soneItem.stanId,
            dw: soneItem.proAdvice,
          }));
        })
        .flat(); // 使用 flat() 方法将嵌套数组展平
      console.log(dataList, 777);
     /*  addOrder(dataList).then((res) => {
        console.log(res, 999);
      }); */
      getTjdetailList(data)
        .then((response) => {
          if (response.code === 200) {
@@ -2347,55 +2522,62 @@
              id: this.MsgId,
            };
            // 生成报告并保持 loading 打开
            const reportPromise = gettoPdf(tjNumber)
            // 调用 addOrderPromise
            console.log(dataList, 5555);
            addOrder(dataList)
              .then((res) => {
                this.$modal.msgSuccess("已生成报告!请前往报告核收页面确认!");
                console.log(res, 999);
                if (res.code == 200) {
                  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
                  });
                  // 等待所有请求完成
                  Promise.all([statePromise, ...updatePromises])
                    .then(() => {
                      // 所有请求完成,关闭 loading
                      this.loading = false;
                      // 更新分页信息
                      this.queryParams.page = 1;
                      this.queryParams.pageSize = 10;
                      this.submitForm();
                      this.$forceUpdate();
                    })
                    .catch((error) => {
                      // 处理错误情况
                      this.loading = false;
                      console.error("发生错误:", error);
                    });
                }
              })
              .catch((error) => {
                this.$modal.msgError(
                  "打印报告失败,请前往报告打印页面补打报告!"
                );
              });
            // 更新状态并提交修改请求
            const statePromise = getfiedState(reportData).then((res) => {
              this.drawer = false;
            });
            const addOrderPromise = addOrder(dataList).then((res) => {
              console.log(res, 999);
            });
            // 处理其他修改操作
            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
            });
            // 等待所有请求完成
            Promise.all([reportPromise, statePromise,addOrderPromise, ...updatePromises])
              .then(() => {
                // 所有请求完成,关闭 loading
                // 如果 addOrderPromise 失败,处理错误
                this.loading = false;
                // 更新分页信息
                this.queryParams.page = 1;
                this.queryParams.pageSize = 10;
                this.submitForm();
                this.$forceUpdate();
              })
              .catch((error) => {
                // 处理错误情况
                this.loading = false;
                console.error("发生错误:", error);
                console.error("addOrderPromise 失败:", error);
              });
          } else {
            // 提交失败,关闭 loading
@@ -2574,7 +2756,7 @@
.box {
  display: flex;
  height: 100vh;
  // height: 100vh;
}
.rightbox {
@@ -2583,14 +2765,18 @@
  // top: 107px;
  // right: 56px;
  width: 684px;
  position: fixed; /* 固定定位 */
  right: 60px;
  .right {
    background-color: #fff;
    // box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    z-index: 10;
    max-height: calc(100vh - 100px); /* 假设你想为顶部和底部留出一些空间 */
    overflow-y: auto; /* 允许垂直滚动 */
    max-height: 900px;
    height: calc(100vh - 100px);
    /* 假设你想为顶部和底部留出一些空间 */
    overflow-y: auto !important; /* 允许垂直滚动 */
    padding: 0 0 50px; /* 可选:添加一些内边距以避免内容紧贴边缘 */
    padding-bottom: 200px;
  }
}