11
WXL
2023-09-19 970660e0f54a635c2ea1c17e1a3d5d37ed671573
src/views/project/fund/applyDetail/index.vue
@@ -177,11 +177,13 @@
              >
            </div></el-col
          >
        </el-row>
        <el-row v-if="businessType == 1 && operationType == 'check'">
          <el-col :span="3"
            ><div style="margin-bottom: 15px;">
              <el-button
                type="primary"
                icon="el-icon-download"
                type="success"
                icon="el-icon-edit-outline"
                @click="Manualcalculationfn"
                >计算明细</el-button
              >
@@ -219,7 +221,7 @@
              <template slot-scope="scope">
                <el-select
                  v-model="scope.row.applytype"
                  placeholder="服务类型"
                  placeholder="请选择服务类型"
                  @change="verifyFeeItemType(scope.row)"
                >
                  <el-option
@@ -240,7 +242,7 @@
              <template slot-scope="scope">
                <el-select
                  v-model="scope.row.itemid"
                  placeholder="服务项目"
                  placeholder="请选择服务项目"
                  filterable
                  @change="verifyFeeItem(scope.row)"
                  :filter-method="val => searchItemType(val, scope)"
@@ -381,7 +383,11 @@
                  type="primary"
                  plain
                  @click="ShowDetailDialog(scope, 'expert')"
                  >{{ scope.row.beneficiaryname }}</el-button
                  >{{
                    scope.row.beneficiaryname
                      ? scope.row.beneficiaryname
                      : "点击选择"
                  }}</el-button
                >
                <!-- <el-select
                  filterable
@@ -407,14 +413,16 @@
              align="center"
              label="单位名称"
              width="250"
              v-if="form.applytype != '4'"
              v-if="form.applytype != '4' && form.applytype != '3'"
            >
              <template slot-scope="scope">
                <el-button
                  type="primary"
                  plain
                  @click="ShowDetailDialog(scope, 'unit')"
                  >{{ scope.row.unitname }}</el-button
                  >{{
                    scope.row.unitname ? scope.row.unitname : "点击选择"
                  }}</el-button
                >
                <!-- <el-select
                  v-model="scope.row.unitno"
@@ -433,11 +441,11 @@
              </template>
            </el-table-column>
            <el-table-column
              prop="unitno"
              prop="beneficiaryname"
              align="center"
              label="单位/个人"
              width="250"
              v-if="form.applytype == '4'"
              v-if="form.applytype == '4' || form.applytype == '3'"
            >
              <template slot-scope="scope">
                <el-button
@@ -445,9 +453,9 @@
                  plain
                  @click="ShowDetailDialog(scope, 'expert')"
                  >{{
                    experthear == "expert"
                      ? scope.row.unitname
                      : scope.row.beneficiaryname
                    scope.row.beneficiaryname
                      ? scope.row.beneficiaryname
                      : "点击选择"
                  }}</el-button
                >
                <!-- <el-select
@@ -771,6 +779,16 @@
        >
        <el-button
          type="primary"
          @click="handleup"
          v-if="
            operationType == 'add' ||
              operationType == 'update' ||
              ismanager == true
          "
          >上报</el-button
        >
        <el-button
          type="primary"
          @click="checksubmit"
          v-if="operationType == 'check'"
          >提交审核</el-button
@@ -788,7 +806,7 @@
      v-loading="loading"
    >
      <el-form ref="funddetailForm" :model="funddetailForm">
        <el-row v-if="businessType != 4">
        <el-row v-if="businessType != 4 && businessType != 3">
          <el-col
            :span="24"
            v-if="selectionType == 'expert' && businessType != 4"
@@ -876,7 +894,7 @@
          </el-col>
        </el-row>
        <el-row v-if="businessType == 4">
        <el-row v-if="businessType == 4 || businessType == 3">
          <el-col :span="24">
            <el-form-item label="请选择专家信息:" prop="experthear">
              <el-radio-group
@@ -918,7 +936,7 @@
          <el-col :span="24" v-if="experthear == 'expert'">
            <el-form-item label="单位名称" prop="unitno" label-width="120px">
              <el-select
                v-model="funddetailForm.unitname"
                v-model="funddetailForm.beneficiaryname"
                placeholder="单位名称"
                @change="bbaaccss"
                clearable
@@ -927,17 +945,17 @@
                style="width: 100%"
              >
                <el-option
                  v-for="(spec, index) in unitList"
                  v-for="(spec, index) in feeUnitList"
                  :key="index"
                  :label="spec.organizationname"
                  :value="spec.organizationname"
                  :label="spec.reportName"
                  :value="spec.reportName"
                ></el-option>
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row v-if="businessType != 4">
        <el-row v-if="businessType != 4 && businessType != 3">
          <el-col :span="12" v-if="expertfrom == '2'">
            <el-form-item label="专家姓名" prop="expertname" label-width="80px">
              <el-input
@@ -966,7 +984,7 @@
            </el-form-item>
          </el-col>
        </el-row>
        <el-row v-if="businessType != 4">
        <el-row v-if="businessType != 4 && businessType != 3">
          <el-col :span="24" v-if="expertfrom == '2'">
            <el-form-item
              label="身份证号"
@@ -992,7 +1010,7 @@
          </el-col>          
        </el-row>
      -->
        <el-row v-if="businessType != 4">
        <el-row v-if="businessType != 4 && businessType != 3">
          <el-col :span="24" v-if="expertfrom == '2'">
            <el-form-item
              label="单位名称"
@@ -1016,7 +1034,7 @@
              </el-select> </el-form-item
          ></el-col>
        </el-row>
        <el-row v-if="businessType != 4">
        <el-row v-if="businessType != 4 && businessType != 3">
          <el-col :span="24" v-if="expertfrom == '2'">
            <el-form-item
              label="开户银行"
@@ -1398,7 +1416,7 @@
      exportLoading: false,
      usernamedata: "",
      jurisdiction: false,
      Routinglevel: 1,
      // 表单参数
      form: {},
      experthear: "",
@@ -1437,8 +1455,8 @@
      cityOptions: [],
      checkAll: false,
      checkedCities: [],
      Personnelforname: "请选择",
      unitforname: "请选择",
      Personnelforname: null,
      unitforname: null,
      isIndeterminate: true,
      //是否是专家费的OPO审批人员
@@ -1721,6 +1739,7 @@
      } else if (this.businessType == "3") {
        this.businessName = "医学成本报销单";
        this.amountLabel = "金额";
        this.getUnitList();
      } else if (this.businessType == "4") {
        this.businessName = "办公费用报销单";
        this.amountLabel = "金额";
@@ -1935,7 +1954,17 @@
    },
    /** 上报按钮操作 */
    handleUp() {
    handleup() {
      if (
        (JSON.stringify(this.form) == sessionStorage.getItem("apiform") &&
          JSON.stringify(this.rbDetails) ==
            sessionStorage.getItem("apifunddetail")) ||
        !sessionStorage.getItem("apifunddetail")
      ){
      }else{
        this.$message.error('请保存后再进行上报');
        return
      }
      this.$confirm("是否确认将登记记录上报?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
@@ -1952,6 +1981,7 @@
                type: "success",
                message: "申请成功"
              });
              this.cancel()
            } else {
              this.$message({
                type: "error",
@@ -2015,10 +2045,7 @@
                return;
              }
              if (
                tempDetail.beneficiaryno == null ||
                tempDetail.beneficiaryno == "点击选择"
              ) {
              if (tempDetail.beneficiaryno == null) {
                this.$modal.msgWarning(
                  "服务项目表中,第" +
                    (k + 1).toString() +
@@ -2201,24 +2228,35 @@
            // });
          }
          addorupdateFund(this.form).then(response => {
            if (response.code === 200) {
              this.$modal.msgSuccess("申请单保存成功!");
            } else {
              this.$modal.msgError("申请单保存失败:" + response.msg);
            }
          });
          sessionStorage.setItem(
            "apifunddetail",
            JSON.stringify(this.rbDetails)
          );
          sessionStorage.setItem("apiform", JSON.stringify(this.form));
          addorupdateFund(this.form).then(response => {
            console.log(response, "保存返参");
            if (response.code === 200) {
              this.$modal.msgSuccess("申请单保存成功!");
              this.$store.dispatch("tagsView/delView", this.$route);
              this.$router.push({
                path: "/finance/applyDetail/",
                query: {
                  id: response.data,
                  businessType: "2",
                  operationType: "update",
                  curCase: this.curCase
                }
              });
              this.Routinglevel++;
            } else {
              this.$modal.msgError("申请单保存失败:" + response.msg);
            }
          });
          //关闭窗口
          this.loading = false;
          // this.getfundList();
          this.$store.dispatch("tagsView/delView", this.$route);
          this.$router.go(-1);
          // this.$store.dispatch("tagsView/delView", this.$route);
          // this.$router.go(-1);
        }
      });
    }, 500),
@@ -2243,8 +2281,10 @@
    // 取消按钮
    cancel() {
      // this.reset();
      console.log(-this.Routinglevel);
      this.$store.dispatch("tagsView/delView", this.$route);
      this.$router.go(-1);
        this.$router.go(-this.Routinglevel);
    },
    //获取当前用户信息
@@ -2346,6 +2386,7 @@
    getFeeUnitList() {
      listReportname("org").then(res => {
        this.feeUnitList = res.data;
        console.log(this.feeUnitList);
      });
    },
@@ -2554,30 +2595,40 @@
    //计算个税:type(A:已知税前金额,计算税后金额;B:已知税后金额,计算税前金额)
    calculateTax(row, type) {
      let targetValue = 0;
      for (let i = 0; i < this.rbDetails.length; i++) {
        if (!this.rbDetails[i].amount) {
          this.rbDetails[i].amount = 0;
        }
        targetValue += parseFloat(this.rbDetails[i].amount); // 假设每个对象中的特定值存储在'specificValue'属性下
      }
      console.log(targetValue, "合计");
      this.form.pretaxcost = targetValue;
      //if (isNaN(parseFloat(tempDetail.taxedamount)))
      //获取参数
      this.taxParam.beneficiaryNo = row.beneficiaryno;
      this.taxParam.startTime = this.form.createTime.substring(0, 10);
      // this.taxParam.beneficiaryNo = row.beneficiaryno;
      // this.taxParam.startTime = this.form.createTime.substring(0, 10);
      if (type == "A") {
        // 计算个税、税后金额
        this.taxParam.money = row.amount.toString();
        getTaxByBeneFiciaryNo(this.taxParam).then(res => {
          if (res.code == 200) {
            row.taxamount = res.data;
            row.taxedamount = row.amount - row.taxamount;
          }
        });
      } else {
        // 计算税前、个税金额
        this.taxParam.money = row.taxedamount.toString();
        getTaxBeforeByAfterMoney(this.taxParam).then(res => {
          if (res.code == 200) {
            row.taxamount = res.data.nowTax;
            row.amount = parseFloat(res.data.nowTaxBeforeMoney);
          }
        });
      }
      // if (type == "A") {
      //   // 计算个税、税后金额
      //   this.taxParam.money = row.amount.toString();
      //   getTaxByBeneFiciaryNo(this.taxParam).then(res => {
      //     if (res.code == 200) {
      //       row.taxamount = res.data;
      //       row.taxedamount = row.amount - row.taxamount;
      //     }
      //   });
      // } else {
      //   // 计算税前、个税金额
      //   this.taxParam.money = row.taxedamount.toString();
      //   getTaxBeforeByAfterMoney(this.taxParam).then(res => {
      //     if (res.code == 200) {
      //       row.taxamount = res.data.nowTax;
      //       row.amount = parseFloat(res.data.nowTaxBeforeMoney);
      //     }
      //   });
      // }
    },
    //导入所有项目
@@ -2604,8 +2655,8 @@
              itemid: this.feeItemTypes[i].itemDetails[j].id,
              itemcode: this.feeItemTypes[i].itemDetails[j].itemCode,
              recordstatus: "-1",
              beneficiaryname: "点击选择",
              unitname: "点击选择",
              beneficiaryname: null,
              unitname: null,
              itemlist: this.feeItemTypes[i].itemDetails,
              rowfeeblocks: null,
              servicesscope: null,
@@ -2687,10 +2738,7 @@
                return;
              }
              if (
                tempDetail.beneficiaryno == null ||
                tempDetail.beneficiaryno == "点击选择"
              ) {
              if (tempDetail.beneficiaryno == null) {
                this.$modal.msgWarning(
                  "服务项目表中,第" +
                    (k + 1).toString() +
@@ -2906,6 +2954,21 @@
    Manualcalculationfn() {
      ManualCalculation(this.rbDetails).then(res => {
        console.log(res);
        if (res.code == 200) {
          sessionStorage.removeItem("apiform");
          sessionStorage.removeItem("apifunddetail");
          sessionStorage.setItem(
            "apifunddetail",
            JSON.stringify(this.rbDetails)
          );
          sessionStorage.setItem("apiform", JSON.stringify(this.form));
          this.$router.go(0);
        } else {
          // this.$message({
          //   type: "error",
          //   message: "申请失败"
          // });
        }
      });
    },
    // 批量录入点击
@@ -2970,6 +3033,7 @@
      for (let i = 0; i < this.checkedCities.length + 1; i++) {
        this.rbDetails[i].orderno = i + 1;
      }
      this.calculateTax();
      this.batchdialogVisible = false;
    },
    //新增一行
@@ -2978,9 +3042,9 @@
        orderno: null,
        id: null,
        fundid: null,
        beneficiaryname: "点击选择",
        beneficiaryname: null,
        beneficiaryno: null,
        unitname: "点击选择",
        unitname: null,
        unitno: null,
        uintuserno: null,
        title: null,
@@ -3286,7 +3350,7 @@
    ShowDetailDialog(spoce, showType) {
      this.spocewl = spoce;
      this.selectionType = showType;
      if (this.businessType == 4 || !showType) {
      if (this.businessType == 4 || this.businessType == 3 || !showType) {
        this.selectionType = this.experthear;
      }
      // if (!showType) {
@@ -3294,7 +3358,7 @@
      // }
      this.expertfrom = "1";
      console.log(spoce);
      this.funddetailForm.index = spoce.$index;
      this.funddetailForm.beneficiaryno = spoce.row.beneficiaryno;
      this.funddetailForm.beneficiaryname = spoce.row.beneficiaryname;
@@ -3313,20 +3377,23 @@
    //专家/医疗机构/费用报销机构选择
    ConfirmDetailDialog() {
      if (this.businessType == 4) {
        if (this.experthear == "expert") {
          this.funddetailForm.beneficiaryname = this.unitforname;
        } else {
          this.funddetailForm.beneficiaryname = this.Personnelforname;
        }
      }
      // if (this.businessType == 4) {
      //   if (this.experthear == "expert") {
      //     this.funddetailForm.beneficiaryname = this.unitforname;
      //   } else {
      //     this.funddetailForm.beneficiaryname = this.Personnelforname;
      //   }
      // }
      let tempIndex = this.funddetailForm.index;
      let tempExpertName = this.funddetailForm.beneficiaryname;
      let tempUnitname = this.funddetailForm.unitname;
      let singleDetail = this.rbDetails[tempIndex];
      if (this.selectionType == "expert" || this.businessType == 4) {
      if (
        this.selectionType == "expert" ||
        this.businessType == 4 ||
        this.businessType == 3
      ) {
        if (this.expertfrom == "1" || this.experthear == "unit") {
          //从专家列表获取信息
          this.personlist.map(res => {
@@ -3444,7 +3511,7 @@
      // if (this.experthear == "unit") {
      //   singleDetail.unitname = "";
      // }
      if (this.businessType == 4) {
      if (this.businessType == 4 || this.businessType == 3) {
        singleDetail.beneficiaryname = this.funddetailForm.beneficiaryname;
      }
      this.rbDetails[tempIndex] = singleDetail;
@@ -3477,7 +3544,9 @@
  beforeUpdate() {}, //生命周期 - 更新之前
  updated() {}, //生命周期 - 更新之后
  beforeDestroy() {}, //生命周期 - 销毁之前
  destroyed() {}, //生命周期 - 销毁完成
  destroyed() {
    window.removeEventListener("beforeunload", e => this.beforeunloadFn(e));
  }, //生命周期 - 销毁完成
  activated() {} //如果页面有keep-alive缓存功能,这个函数会触发
};
</script>