spring
2025-03-13 893efaff3c2523976993063543dfedf4a5b412f3
src/views/business/inspectionOrder/index.vue
@@ -238,7 +238,7 @@
        >
          <p style="font-size: 16px; color: #333333" v-if="!isQuash">
            委托编号<span style="color: #34bd66">{{
              this.insOrderRow.entrustCode
              this.insOrderRow.outEntrustCode
            }}</span
            >的信息是否撤销
          </p>
@@ -258,14 +258,10 @@
            </el-form-item>
          </el-form>
          <span slot="footer" class="dialog-footer">
            <el-row v-if="!isQuash">
              <el-button @click="handleClose">取 消</el-button>
              <el-button type="primary" @click="submitForm" :loading="upLoad"
                >确 定</el-button
              >
            </el-row>
            <el-row v-else>
              <el-button @click="handleClose">返 回</el-button>
            <el-row>
              <el-button @click="handleClose">{{
                isQuash ? "返 回" : "取 消"
              }}</el-button>
              <el-button type="primary" @click="submitForm" :loading="upLoad"
                >确 定</el-button
              >
@@ -390,18 +386,6 @@
          width="80%"
        >
          <div class="table-container" v-if="deleteDialogVisible">
            <!-- <ValueTable
            ref="ValueTableDataDelete"
            :url="
              $api.insOrder.selectNoProducts +
              '?orderId=' +
              orderId +
              '&ids=' +
              this.revocationInsProductIds
            "
            :componentData="componentDataDelete"
            :isColumnWidth="true"
          /> -->
            <el-table
              height="500px"
              ref="revokeTable"
@@ -822,28 +806,39 @@
</template>
<script>
import limsTable from "@/components/Table/lims-table.vue";
import {
  selectInsOrderParameter,
  labelPrinting,
  exportChecked,
  selectSampleAndProductByOrderId,
  hasSendUrgentOrder,
  delCustomById,
  upCustom,
  selectSampleByOrderId,
  selectProductsBySampleId,
  revoke,
  viewDetails,
  downReport,
  selectTemperatureByProductId,
  selectTemperatureNumberByProductId,
  revokeReviewTemperatureByProductId,
  revokeReviewConsistentByProductId,
  revokeReviewProduct,
  revokeReviewSample,
  upPlanUser2,
  updateStatus,
  updateInspected,
  revocationPassed,
  revocationCancel,
} from "@/api/business/inspectionOrder";
import { getDicts } from "@/api/system/dict/data";
import vueQr from "vue-qr";
import getLodop from "@/utils/lodop";
import Add from "./add.vue";
import { mapGetters } from "vuex";
import LimsTable from "@/components/Table/lims-table.vue";
import limsTable from "@/components/Table/lims-table.vue";
export default {
  components: {
    limsTable,
    Add,
    vueQr,
    LimsTable,
  },
  computed: {
    ...mapGetters(["permissions"]),
@@ -1026,7 +1021,9 @@
            {
              name: "审核",
              type: "text",
              clickFun: (row) => {},
              clickFun: (row) => {
                this.handleVerify(row);
              },
              disabled: (row, index) => {
                return row.state != 0;
              },
@@ -1034,7 +1031,9 @@
            {
              name: "撤销",
              type: "text",
              clickFun: (row) => {},
              clickFun: (row) => {
                this.handlEquash(row);
              },
              disabled: (row, index) => {
                return row.state != 1 && row.state != 0;
              },
@@ -1042,7 +1041,9 @@
            {
              name: "撤销审核",
              type: "text",
              clickFun: (row) => {},
              clickFun: (row) => {
                this.handlEquashCheck(row);
              },
              disabled: (row, index) => {
                return (
                  (row.state != 1 && row.state != 0) ||
@@ -1429,23 +1430,23 @@
        entrustCode: row.entrustCode,
        sampleCode: row.sampleCode,
      };
      this.$axios
        .post(this.$api.insOrder.viewDetails, data, {
          headers: {
            "Content-Type": "application/json",
          },
        })
      viewDetails(data)
        .then((res) => {
          this.viewDetailsList = res.data;
          if (res.data[0].tableHeader) {
            this.tableHeader = res.data[0].tableHeader;
          } else {
            this.tableHeader = [
              {
                testValue0: "",
              },
            ];
          if (res.code === 200) {
            this.viewDetailsList = res.data;
            if (res.data[0].tableHeader) {
              this.tableHeader = res.data[0].tableHeader;
            } else {
              this.tableHeader = [
                {
                  testValue0: "",
                },
              ];
            }
          }
        })
        .catch((error) => {
          console.error(error);
        });
    },
    getLabelPrinting(selection) {
@@ -1663,16 +1664,7 @@
      //   document.body.appendChild(link);
      //   link.click();
      // }
      this.$axios
        .get(
          this.$api.insReport.downReport + "?id=" + row.reportId + "&type=1",
          {
            headers: {
              "Content-Type": "application/json",
            },
            responseType: "blob",
          }
        )
      downReport({ id: row.reportId })
        .then((res) => {
          let fileName = row.tempUrlPdf;
          if (fileName.includes("_")) {
@@ -1685,14 +1677,21 @@
          link.download = fileName;
          document.body.appendChild(link);
          link.click();
        })
        .catch((error) => {
          console.error(error);
        });
    },
    // 审核
    handleVerify(row) {
      // this.verifyDialogVisible = true;
      this.active = 3;
      this.currentId = row.id;
      this.examine = 1;
      this.$router.push({
        name: "showDetails",
        query: {
          active: 3,
          currentId: row.id,
          examine: 1,
        },
      });
    },
    // 全选
    handleSelectionAll(val) {
@@ -1909,108 +1908,108 @@
      if (this.deleteTilte == "撤销") {
        // 是否是温度循环
        if (tree.temperature) {
          this.$axios
            .get(
              this.$api.insOrder.selectTemperatureByProductId +
                "?productId=" +
                tree.id
            )
          selectTemperatureByProductId({ productId: tree.id })
            .then((res) => {
              this.loadRecursion(this.treeTableData, tree.id, res.data);
              resolve(res.data);
              this.recursionTreeTableData(this.revokeData, this.treeTableData);
              treeNode.loading = false;
              if (res.code === 200) {
                this.loadRecursion(this.treeTableData, tree.id, res.data);
                resolve(res.data);
                this.recursionTreeTableData(
                  this.revokeData,
                  this.treeTableData
                );
                treeNode.loading = false;
              }
            })
            .catch((error) => {
              console.error(error);
            });
        }
        // 是否是检验次数
        else if (tree.temperatureNumber) {
          this.$axios
            .get(
              this.$api.insOrder.selectTemperatureNumberByProductId +
                "?parentId=" +
                tree.parentId +
                "&inspectionItem=" +
                tree.inspectionItemTwo
            )
          selectTemperatureNumberByProductId({
            parentId: tree.parentId,
            inspectionItem: tree.inspectionItemTwo,
          })
            .then((res) => {
              this.loadRecursion(this.treeTableData, tree.id, res.data);
              resolve(res.data);
              this.recursionTreeTableData(this.revokeData, this.treeTableData);
              treeNode.loading = false;
              if (res.code === 200) {
                this.loadRecursion(this.treeTableData, tree.id, res.data);
                resolve(res.data);
                this.recursionTreeTableData(
                  this.revokeData,
                  this.treeTableData
                );
                treeNode.loading = false;
              }
            })
            .catch((error) => {
              console.error(error);
            });
        } else {
          this.$axios
            .get(
              this.$api.insOrder.selectProductsBySampleId +
                "?sampleId=" +
                tree.id +
                "&orderId=" +
                this.orderId
            )
          selectProductsBySampleId({
            sampleId: tree.id,
            orderId: this.orderId,
          })
            .then((res) => {
              this.treeTableData.forEach((m, index) => {
                if (m.sampleId == tree.id) {
                  m.children = res.data;
                }
              });
              resolve(res.data);
              this.recursionTreeTableData(this.revokeData, this.treeTableData);
              // // 如果该样品已经被勾选 那么所得到的检验项也要进行勾选
              // let data = this.revokeData.map((item) => item.id);
              // if (data.includes(tree.id)) {
              //   this.treeTableData.forEach((m, index) => {
              //     if (m.children) {
              //       m.children.forEach((n, i) => {
              //         if (tree.id == n.sampleId) {
              //           this.$refs.revokeTable.toggleRowSelection(n, true);
              //         }
              //       });
              //     }
              //   });
              // }
              treeNode.loading = false;
              if (res.code === 200) {
                this.treeTableData.forEach((m, index) => {
                  if (m.sampleId == tree.id) {
                    m.children = res.data;
                  }
                });
                resolve(res.data);
                this.recursionTreeTableData(
                  this.revokeData,
                  this.treeTableData
                );
                treeNode.loading = false;
              }
            })
            .catch((error) => {
              console.error(error);
            });
        }
      } else if (this.deleteTilte == "撤销审核") {
        // 是否是温度循环
        if (tree.temperature) {
          this.$axios
            .get(
              this.$api.insOrder.revokeReviewTemperatureByProductId +
                "?productId=" +
                tree.id
            )
          revokeReviewTemperatureByProductId({ productId: tree.id })
            .then((res) => {
              resolve(res.data);
              treeNode.loading = false;
              if (res.code === 200) {
                resolve(res.data);
                treeNode.loading = false;
              }
            })
            .catch((error) => {
              console.error(error);
            });
        }
        // 是否是循环次数
        else if (tree.temperatureNumber) {
          this.$axios
            .get(
              this.$api.insOrder.revokeReviewConsistentByProductId +
                "?parentId=" +
                tree.parentId +
                "&inspectionItem=" +
                tree.inspectionItemTwo
            )
          revokeReviewConsistentByProductId({
            parentId: tree.parentId,
            inspectionItem: tree.inspectionItemTwo,
          })
            .then((res) => {
              resolve(res.data);
              treeNode.loading = false;
              if (res.code === 200) {
                resolve(res.data);
                treeNode.loading = false;
              }
            })
            .catch((error) => {
              console.error(error);
            });
        } else {
          this.$axios
            .get(
              this.$api.insOrder.revokeReviewProduct +
                "?sampleId=" +
                tree.id +
                "&orderId=" +
                this.orderId
            )
          revokeReviewProduct({
            sampleId: tree.id,
            orderId: this.orderId,
          })
            .then((res) => {
              resolve(res.data);
              treeNode.loading = false;
              if (res.code === 200) {
                resolve(res.data);
                treeNode.loading = false;
              }
            })
            .catch((error) => {
              console.error(error);
            });
        }
      }
@@ -2021,18 +2020,20 @@
        this.quashDialogVisible = true;
        this.insOrderRow = row;
      } else {
        // this.componentDataDelete.entity.orderId = row.id
        this.orderId = row.id;
        this.$axios
          .get(this.$api.insOrder.selectSampleByOrderId + "?orderId=" + row.id)
        selectSampleByOrderId({
          orderId: row.id,
        })
          .then((res) => {
            console.log("res", res);
            this.treeTableData = res.data;
            this.treeTableData2 = JSON.parse(JSON.stringify(res.data));
            if (res.code === 200) {
              this.treeTableData = res.data;
              this.treeTableData2 = JSON.parse(JSON.stringify(res.data));
            }
          })
          .catch((error) => {
            console.error(error);
          });
        this.revocationInsProductIds = "";
        this.componentDataDelete.showSelect = true;
        this.componentDataDelete.select = true;
        this.deleteTilte = "撤销";
        this.deleteDialogVisible = true;
      }
@@ -2082,25 +2083,13 @@
            }
          });
          productIds = [...new Set(productIds)];
          console.log("data", data);
          console.log("data1", data1);
        }
        //
        console.log("sampleId", sampleIds);
        console.log("productIds", productIds);
        let data = {
          orderId: this.orderId,
          sampleIds: sampleIds,
          productIds: productIds,
        };
        this.$axios
          .post(this.$api.insOrder.revoke, data, {
            headers: {
              "Content-Type": "application/json",
            },
            noQs: true,
          })
        revoke(data)
          .then((res) => {
            if (res.code === 200) {
              this.deleteDialogVisible = false;
@@ -2109,47 +2098,14 @@
              this.refreshTable();
              this.$message.success("撤销成功");
            }
          })
          .catch((error) => {
            console.error(error);
          });
        console.log("revokeData", this.revokeData);
        console.log("data", data);
        // let ids = this.deleteList.map((m) => m.id).join(",");
        // this.printLoading = true;
        // this.axios
        //   .put(
        //     this.$api.insOrder.updateInspected +
        //       "?ids=" +
        //       ids +
        //       "&orderId=" +
        //       this.orderId
        //   )
        //   .then((res) => {
        //     if (res.code === 200) {
        //       this.printLoading = false;
        //       this.deleteDialogVisible = false;
        //       this.refreshTable("page");
        //       this.$message.success("更新成功");
        //     }
        //   });
      } else {
        // this.axios
        //   .post(
        //     this.$api.insOrder.checkUpdate +
        //       "?orderId=" +
        //       this.orderId +
        //       "&state=" +
        //       1
        //   )
        //   .then((res) => {
        //     if (res.code === 200) {
        //       this.printLoading = false;
        //       this.deleteDialogVisible = false;
        //       this.refreshTable("page");
        //       this.$message.success("更新成功");
        //     }
        //   });
        this.axios
          .get(this.$api.insOrder.revocationPassed + "?orderId=" + this.orderId)
        revocationPassed({
          orderId: this.orderId,
        })
          .then((res) => {
            if (res.code === 200) {
              this.printLoading = false;
@@ -2157,28 +2113,26 @@
              this.refreshTable();
              this.$message.success("更新成功");
            }
          })
          .catch((error) => {
            console.error(error);
          });
      }
    },
    handlEquashCheck(row) {
      // // this.componentDataDelete.entity.orderId = row.id
      // this.orderId = row.id;
      // this.revocationInsProductIds = row.revocationInsProductIds;
      // this.componentDataDelete.showSelect = false;
      // this.componentDataDelete.select = false;
      // this.deleteTilte = "撤销审核";
      // this.deleteDialogVisible = true;
      this.orderId = row.id;
      this.revocationInsProductIds = row.revocationInsProductIds;
      this.componentDataDelete.showSelect = false;
      this.componentDataDelete.select = false;
      this.deleteTilte = "撤销审核";
      this.$axios
        .get(this.$api.insOrder.revokeReviewSample + "?orderId=" + row.id)
      revokeReviewSample({
        orderId: row.id,
      })
        .then((res) => {
          console.log("撤销审核样品查询", res);
          this.treeTableData = res.data;
          if (res.code === 200) {
            this.treeTableData = res.data;
          }
        })
        .catch((error) => {
          console.error(error);
        });
      this.deleteDialogVisible = true;
    },
@@ -2187,24 +2141,9 @@
        this.deleteDialogVisible = false;
        this.revokeData = [];
      } else {
        // this.axios
        //   .post(
        //     this.$api.insOrder.checkUpdate +
        //       "?orderId=" +
        //       this.orderId +
        //       "&state=" +
        //       0
        //   )
        //   .then((res) => {
        //     if (res.code === 200) {
        //       this.printLoading = false;
        //       this.deleteDialogVisible = false;
        //       this.refreshTable("page");
        //       this.$message.success("更新成功");
        //     }
        //   });
        this.axios
          .get(this.$api.insOrder.revocationCancel + "?orderId=" + this.orderId)
        revocationCancel({
          orderId: this.orderId,
        })
          .then((res) => {
            if (res.code === 200) {
              this.printLoading = false;
@@ -2212,26 +2151,32 @@
              this.refreshTable();
              this.$message.success("更新成功");
            }
          })
          .catch((error) => {
            console.error(error);
          });
      }
    },
    // 下发
    handleIssued(row) {
      this.issuedDialogVisible = true;
      this.$axios
        .post(this.$api.insOrder.selectOrderManDay, {
          id: row.id,
        })
      selectOrderManDay({
        id: row.id,
      })
        .then((res) => {
          this.distributeData.orderId = row.id;
          this.distributeData.sampleId = row.sampleId;
          this.distributeData.appointed = res.data;
          this.distributeData.type = row.type;
        });
      this.$axios
        .post(this.$api.insOrderPlan.upPlanUser2, {
          orderId: row.id,
          if (res.code === 200) {
            this.distributeData.orderId = row.id;
            this.distributeData.sampleId = row.sampleId;
            this.distributeData.appointed = res.data;
            this.distributeData.type = row.type;
          }
        })
        .catch((error) => {
          console.error(error);
        });
      upPlanUser2({
        orderId: row.id,
      })
        .then((res) => {
          if (res.code === 200 && res.data.length > 0) {
            this.sonLaboratoryList = [];
@@ -2242,6 +2187,9 @@
              });
            });
          }
        })
        .catch((error) => {
          console.error(error);
        });
    },
    submitForm2() {
@@ -2269,22 +2217,13 @@
        return;
      }
      this.upLoad = true;
      this.$axios
        .post(
          this.$api.insOrder.upInsOrder,
          {
            orderId: this.distributeData.orderId,
            sampleId: this.distributeData.sampleId,
            appointed: this.distributeData.appointed,
            userIdList: [this.distributeData.userId],
            sonLaboratory: this.distributeData.sonLaboratory,
          },
          {
            headers: {
              "Content-Type": "application/json",
            },
          }
        )
      upInsOrder({
        orderId: this.distributeData.orderId,
        sampleId: this.distributeData.sampleId,
        appointed: this.distributeData.appointed,
        userIdList: [this.distributeData.userId],
        sonLaboratory: this.distributeData.sonLaboratory,
      })
        .then((res) => {
          if (res.code === 201) {
            this.upLoad = false;
@@ -2295,7 +2234,8 @@
          this.issuedDialogVisible = false;
          this.refreshTable();
        })
        .catch((e) => {
        .catch((error) => {
          console.error(error);
          this.$message.error("修改失败");
          this.upLoad = false;
        });
@@ -2303,10 +2243,9 @@
    submitForm() {
      this.upLoad = true;
      if (this.tabIndex == 1) {
        this.axios
          .put(
            this.$api.insOrder.updateInspected + "?id=" + this.insOrderRow.id
          )
        updateInspected({
          id: this.insOrderRow.id,
        })
          .then((res) => {
            if (res.code === 200) {
              this.upLoad = false;
@@ -2314,10 +2253,14 @@
              this.refreshTable();
              this.$message.success("更新成功");
            }
          })
          .catch((error) => {
            console.error(error);
          });
      } else {
        this.axios
          .put(this.$api.insOrder.updateStatus + "?id=" + this.insOrderRow.id)
        updateStatus({
          id: this.insOrderRow.id,
        })
          .then((res) => {
            if (res.code === 200) {
              this.upLoad = false;
@@ -2325,17 +2268,11 @@
              this.refreshTable();
              this.$message.success("更新成功");
            }
          })
          .catch((error) => {
            console.error(error);
          });
      }
      let authorizedPerson =
        this.formData.authorizedPerson.length > 0
          ? this.formData.authorizedPerson.join(",")
          : "";
      delete this.formData.createTime;
      delete this.formData.updateTime;
      delete this.formData.createUser;
      delete this.formData.updateUser;
      this.formData.authorizedPerson = authorizedPerson;
    },
    // 下单
    playOrder(num) {
@@ -2353,49 +2290,6 @@
      this.tabIndex = i;
      this.queryParams.state = m.value;
      this.getList();
    },
    getUserMenu() {
      this.$axios.get(this.$api.user.getUserMenu).then((res) => {
        let data = [];
        res.data.forEach((a) => {
          data.push({
            label: a.name,
            value: a.id,
          });
        });
        this.componentData.tagField.createUser.select = data;
      });
    },
    getInsStateDicts() {
      this.$axios
        .post(this.$api.enums.selectEnumByCategory, {
          category: "检验任务状态",
        })
        .then((res) => {
          let data = res.data;
          this.insStateList = data;
          data.forEach((ele) => {
            //0:待检验 1:检验中 2:已检验 3:待复核 4:复核未通过 5:复核通过
            if (["2", "5"].includes(ele.value)) {
              ele.type = "success";
            } else if (["1", "3"].includes(ele.value)) {
              ele.type = "warning";
            } else if (["0", "4"].includes(ele.value)) {
              ele.type = "danger";
            }
          });
          this.componentDataDataLook.tagField.insState.select = data;
          this.componentDataDelete.tagField.insState.select = data;
        });
    },
    selectEnumByCategoryForOrderType() {
      this.$axios
        .post(this.$api.enums.selectEnumByCategory, {
          category: "检验类别",
        })
        .then((res) => {
          this.componentData.tagField.orderType.select = res.data;
        });
    },
    changeUser() {
      if (this.sonLaboratoryList.length > 0) {