1
wwl
2025-01-21 c36ada6253862acaa44a1dc0eb5b9cbb28e68fd8
src/views/hosp/order/index.vue
@@ -141,20 +141,25 @@
        >
      </el-form-item>
    </el-form>
    <template v-for="(item, index) in shijianlist"  >
  <div  :key="index" style="margin-bottom: 20px" v-if="shijianlist.length > 0">
    {{findNameByTjnum(item.tjNUm) }}
    <el-steps :space="200" :active="item.sjz" finish-status="success" align-center>
      <el-step title="未检"></el-step>
      <el-step title="在检"></el-step>
      <el-step title="已完成"></el-step>
      <el-step title="已审核"></el-step>
      <el-step title="生成报告"></el-step>
      <el-step title="报告核收"></el-step>
      <el-step title="已出报告"></el-step>
    </el-steps>
  </div>
</template>
    <div v-if="shijianlist.length > 0" style="margin-bottom: 20px">
      {{ findNameByTjnum(shijianlist[shijianlist.length - 1].tjNUm) }}
      <el-steps
        :space="200"
        :active="shijianlist[shijianlist.length - 1].sjz"
        finish-status="success"
        align-center
      >
        <el-step title="未检"></el-step>
        <el-step title="在检"></el-step>
        <el-step title="已完成"></el-step>
        <el-step title="已审核"></el-step>
        <el-step title="生成报告"></el-step>
        <el-step title="报告核收"></el-step>
        <el-step title="已出报告"></el-step>
      </el-steps>
    </div>
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
@@ -172,6 +177,7 @@
          type="primary"
          size="mini"
          @click="handleRevoke"
          :loading="isLoading"
          :disabled="single"
          >撤销签到</el-button
        >
@@ -225,6 +231,16 @@
          :disabled="single"
          v-hasPermi="['hosp:order:export']"
          >打印补录单</el-button
        >
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="primary"
          size="mini"
          @click="ForceChexiao"
          :disabled="single"
          v-hasPermi="['qzcx']"
          >强制撤销</el-button
        >
      </el-col>
      <right-toolbar
@@ -643,6 +659,7 @@
                      width="260px"
                    >
                    </el-table-column>
                    <el-table-column prop="proPrice" label="原价" width="56px">
                    </el-table-column>
@@ -747,6 +764,8 @@
                >
                  <el-table-column prop="propinName" label="检查项目">
                  </el-table-column>
                  <el-table-column prop="sl" label="数量" width="56px">
                  </el-table-column>
                  <el-table-column prop="proPrice" label="原价" width="56px">
                  </el-table-column>
                  <el-table-column
@@ -826,7 +845,7 @@
                        style="width: 90px"
                      ></el-input>
                    </el-form-item>
                    <el-form-item label="付款类型" prop="payType">
                    <el-form-item label="付款类型">
                      <el-select
                        style="width: 120px"
                        v-model="payType"
@@ -846,6 +865,7 @@
                        type="primary"
                        @click="submitPrice"
                        :disabled="confirm"
                        :loading="isSubmit"
                        style="margin-top: 34px"
                        >提交</el-button
                      >
@@ -1096,7 +1116,9 @@
          >
            <el-table-column prop="propinName" label="检查项目">
            </el-table-column>
            <el-table-column prop="proName" label="明细项目" width="260px">
            <el-table-column prop="proName" label="明细项目" width="200px">
            </el-table-column>
            <el-table-column prop="sl" label="数量" width="56px">
            </el-table-column>
            <el-table-column prop="proPrice" label="原价" width="56px">
            </el-table-column>
@@ -1123,7 +1145,95 @@
        </div>
      </div>
      <div class="heji">
      <el-form
        :model="form"
        inline
        style="display: flex; justify-content: space-between; margin-top: 20px"
      >
        <!-- 体检类型 -->
        <el-form-item label="体检类型" prop="tjType" style="display: flex">
          <div class="type">
            {{ { 1: "团队", 2: "个人", 3: "团体票" }[form.tjType] }}
          </div>
        </el-form-item>
        <!-- 原价 -->
        <el-form-item label="原价" style="display: flex">
          <el-input
            placeholder="原价"
            :value="TotalPrice1"
            disabled
            style="width: 90px"
          ></el-input>
        </el-form-item>
        <!-- 折扣设定 -->
        <el-form-item label="折扣" style="display: flex">
          <el-input
            style="width: 90px"
            type="number"
            v-model="discount"
            :value="discount"
          ></el-input>
        </el-form-item>
        <!-- 应付金额 -->
        <el-form-item label="应付" style="display: flex">
          <el-input
            placeholder="应付金额"
            :value="TotalPrice1 * (discount / 10)"
            style="width: 90px"
          ></el-input>
        </el-form-item>
        <!-- 付款类型 -->
        <el-form-item label="付款类型" prop="payType" style="display: flex">
          <el-select
            style="width: 120px"
            v-model="payType"
            placeholder="请选择付款类型"
            @change="onPayTypeChange"
          >
            <el-option
              v-for="dict in dict.type.dict_pay_type"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            ></el-option>
          </el-select>
        </el-form-item>
        <!-- 结算方式 -->
        <el-form-item label="结算方式" prop="jsType" style="display: flex">
          <el-select
            v-model="jsType"
            placeholder="请选择结算方式"
            style="width: 130px"
            clearable
          >
            <el-option
              v-for="dict in dict.type.reservation_pay_type"
              :key="dict.value"
              :label="dict.label"
              :value="dict.value"
            />
          </el-select>
        </el-form-item>
        <!-- 提交按钮 -->
        <el-form-item style="display: flex">
          <el-button
            type="primary"
            :loading="isSubmit1"
            @click="submitPrice1"
            :disabled="confirm"
          >
            提交
          </el-button>
        </el-form-item>
      </el-form>
      <!-- <div class="heji">
        <div class="o">
          <el-form
            :model="form"
@@ -1178,6 +1288,21 @@
                ></el-option>
              </el-select>
            </el-form-item>
            <el-form-item label="结算方式" prop="payType">
              <el-select
                v-model="payType"
                placeholder="请选择结算方式"
                style="width: 130px"
                clearable
              >
                <el-option
                  v-for="dict in dict.type.reservation_pay_type"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value"
                />
              </el-select>
            </el-form-item>
            <el-form-item style="display: flex">
              <el-button
                type="primary"
@@ -1188,7 +1313,7 @@
            </el-form-item>
          </el-form>
        </div>
      </div>
      </div> -->
    </el-dialog>
    <!-- 添加或修改体检记录对话框 -->
@@ -1501,6 +1626,7 @@
  getTransitionInfo,
  getBlproByTjh,
  revokeBlProByBldhAndTjh,
  getForceChexiao,
} from "@/api/hosp/order";
import moment from "moment";
import { getZhList, getlistByZhId } from "@/api/system/package";
@@ -1519,12 +1645,11 @@
  queryCompany,
  addbatch,
} from "@/api/team/tuanti";
import { createLogger } from "vuex";
export default {
  components: {
    ViewPdf,
  },
  dicts: ["dict_pay_type", "dict_team"],
  dicts: ["dict_pay_type", "dict_team", "reservation_pay_type"],
  name: "Order",
  data() {
    return {
@@ -1540,6 +1665,9 @@
      DataList3: [],
      bldhid: "",
      budadaozhen: false,
      isLoading: false,
      isSubmit: false,
      isSubmit1: false,
      huizongList: [],
      DataLists: [],
      infoList: [],
@@ -1567,6 +1695,7 @@
      packagedataList: [],
      cusId: "",
      payType: "0",
      jsType: "0",
      packageList: [],
      checkedkeys: [],
      dialogVisible: false,
@@ -1705,9 +1834,11 @@
  },
  methods: {
    findNameByTjnum(tjnum) {
    const order = this.orderList.find(orderItem => orderItem.tjNumber === tjnum);
    return order ? order.tjCustomerName : '未找到';  // 如果找不到对应的项,返回一个默认值
  },
      const order = this.orderList.find(
        (orderItem) => orderItem.tjNumber === tjnum
      );
      return order ? order.tjCustomerName : "未找到"; // 如果找不到对应的项,返回一个默认值
    },
    // 搜索
    getRemoteData(query) {
      if (query) {
@@ -1827,7 +1958,6 @@
      // 获取单位信息集合
      getCompany(this.queryParams).then((response) => {
        this.CompanyList = response.data;
        console.log(this.CompanyList, 555);
        this.loading = false;
      });
@@ -1924,14 +2054,22 @@
        });
    },
    handleRevoke() {
      this.$confirm("您确认要撤销?", "确认信息", {
        distinguishCancelAndClose: true,
        confirmButtonText: "确认",
        cancelButtonText: "取消",
      })
    // 强制撤销按钮
    ForceChexiao() {
      const tjNum = this.tjnumbers;
      this.$confirm(
        "您是否需要强制撤销?撤销后该人员本次体检记录不可恢复!",
        "确认信息",
        {
          distinguishCancelAndClose: true,
          confirmButtonText: "确认",
          cancelButtonText: "取消",
          customClass: "custom-message-box",
        }
      )
        .then(() => {
          revokeTjOrderByTjNum(this.tjnumbers).then((res) => {
          getForceChexiao(tjNum).then((res) => {
            this.$modal.msgSuccess("撤销成功");
            this.getList();
          });
@@ -1943,6 +2081,43 @@
              message: "已取消",
            });
          }
        });
      this.$nextTick(() => {
        // 确保弹框渲染后应用样式
        const messageBox = document.querySelector(
          ".custom-message-box .el-message-box__message"
        );
        if (messageBox) {
          messageBox.style.color = "red"; // 通过 JS 强制设置颜色
        }
      });
    },
    handleRevoke() {
      this.isLoading = true;
      this.$confirm("您确认要撤销?", "确认信息", {
        distinguishCancelAndClose: true,
        confirmButtonText: "确认",
        cancelButtonText: "取消",
      })
        .then(() => {
          revokeTjOrderByTjNum(this.tjnumbers).then((res) => {
            this.$modal.msgSuccess("撤销成功");
            // this.isLoading = false;
            this.getList();
          });
        })
        .catch((action) => {
          if (action === "cancel") {
            this.$message({
              type: "warning",
              message: "已取消",
            });
          }
        })
        .finally(() => {
          // 不论操作成功还是失败,都会执行
          this.isLoading = false;
        });
    },
    /** 点击显示体检报告报表*/
@@ -2128,13 +2303,11 @@
      this.multiple = !selection.length;
      if (tjNUms.length > 0) {
        shijianzhou(tjNUms).then((res) => {
        this.shijianlist = res.data
      });
      } else{
        this.shijianlist = []
          this.shijianlist = res.data;
        });
      } else {
        this.shijianlist = [];
      }
    },
    /** 新增按钮操作 */
    // handleAdd() {
@@ -2156,7 +2329,7 @@
        var discount = "";
        response.data.water.forEach((item) => {
          copeWith += item.copeWith;
          paidIn += item.copeWith;
          paidIn += item.paidIn;
          discount = item.discount;
        });
        this.bill.push({
@@ -2197,7 +2370,7 @@
        var discount = "";
        response.data.water.forEach((item) => {
          copeWith += item.copeWith;
          paidIn += item.copeWith;
          paidIn += item.paidIn;
          discount = item.discount;
        });
        this.bill.push({
@@ -2308,8 +2481,10 @@
        let datas = {
          zhId: data.id,
        };
        getlistByZhId(datas).then((res) => {
          this.packagedataList = res.data.tjProjectList;
          for (var i = 0; i < this.packagedataList.length; i++) {
            let proId = this.packagedataList[i].proId;
            getProSonDxList(proId).then((res) => {
@@ -2461,7 +2636,6 @@
            this.checkedListkey.push(item.proId);
            this.DataList.push(item);
            this.DataList3 = this.DataList.concat(this.Datalists);
            console.log(this.DataList, 77777);
            this.spliceData();
            this.DataList.forEach((item1) => {
              if (item1.proParentId == data.proId) {
@@ -2472,7 +2646,7 @@
          this.TotalPrice1 = 0;
          if (this.DataList3.length != 0) {
            this.DataList3.forEach((item) => {
              this.TotalPrice1 += item.proPrice;
              this.TotalPrice1 += item.proPrice * item.sl;
            });
          }
          // this.TotalPrice1 = 0;
@@ -2525,7 +2699,6 @@
        });
      } else if (checked == true) {
        this.DataList.push(data);
        console.log(this.DataList, 6666);
        this.DataList.forEach((item1) => {
          if (item1.proParentId == this.dataObj.proId) {
            item1.propinName = this.dataObj.proName;
@@ -2534,6 +2707,9 @@
        this.spliceData();
        this.TotalPrice1 = 0;
        this.DataList.forEach((item1) => {
          console.log(item1.proPrice, 3322);
          console.log(this.TotalPrice1, 1122);
          this.TotalPrice1 = item1.proPrice + this.TotalPrice1;
        });
        if (this.marryalls != 0) {
@@ -2660,6 +2836,7 @@
    // 收费按钮
    submitPrice() {
      this.proIds = [];
      this.isSubmit = true;
      if (this.DataList.length != 0) {
        this.DataList.forEach((item) => {
          this.proIds.push(item.proId);
@@ -2695,6 +2872,7 @@
            payType: this.payType,
          };
          getwater(data).then((res) => {
            this.isSubmit = false;
            this.$modal.msgSuccess("提交成功");
            this.mobanId = res.data.mobanId;
            this.waterId = res.data.waterId;
@@ -2710,6 +2888,7 @@
    // 收费按钮
    submitPrice1() {
      this.proIds = [];
      this.isSubmit1 = true;
      if (this.DataList.length != 0) {
        this.DataList.forEach((item) => {
          this.proIds.push(item.proId);
@@ -2739,10 +2918,12 @@
            discount,
            copeWith,
            tjType,
            payStasus: this.jsType,
            orderId: this.orderIds,
            tjProIds: this.proIds,
            payType: this.payType,
          };
          getwater(data).then((res) => {
            this.$modal.msgSuccess("提交成功");
            this.mobanId = res.data.mobanId;
@@ -2752,6 +2933,7 @@
            const params = { viewNum, tjnumber };
            this.$tab.openPage("收款小票", "/report/charge", params);
            this.Projectopen1 = false;
            this.isSubmit1 = false;
          });
        }
      });
@@ -2866,6 +3048,12 @@
// .el-dialog__body {
//   padding: 20px;
// }
::v-deep .el-message-box__message {
  color: red !important; /* 强制设置颜色为红色 */
}
// .custom-message-box .el-message-box__message {
//   color: red !important; /* 设置文字为红色 */
// }
.o {
  margin-top: 8px;
}
@@ -2913,6 +3101,7 @@
  display: flex;
  flex-direction: column;
}
::v-deep .el-step__title.is-process {
  color: rgb(24, 144, 255);
}
@@ -2920,9 +3109,8 @@
  color: rgb(24, 144, 255);
  border-color: rgb(24, 144, 255);
}
.shijian{
.shijian {
  display: flex;
  align-items: flex-start;
}
</style>