WXL
2023-08-28 a58cbd391aa2b58d59c0970f74edf006a03da1d7
src/views/project/fund/applyDetail/index.vue
@@ -50,8 +50,7 @@
          <el-col :span="5">
            <el-form-item label="银行名称" prop="bankname">
              <el-input v-model="form.bankname" placeholder="请输入银行名称" />
            </el-form-item>
          </el-col><el-col :span="5">
            </el-form-item> </el-col><el-col :span="5">
            <el-form-item label="银行账号" prop="bankcardno">
              <el-input v-model="form.bankcardno" placeholder="请输入银行账号" />
            </el-form-item>
@@ -75,12 +74,12 @@
              <el-input v-model="form.pretaxcost" placeholder="税前金额合计" :disabled="true" />
            </el-form-item>
          </el-col>
          <!--
          <el-col :span="5">
            <el-form-item label="应缴税" prop="taxcost" v-if="businessType == '1' || businessType == '2'">
              <el-input v-model="form.taxcost" placeholder="应缴税金额合计" :disabled="true" />
            </el-form-item>
          </el-col>
          <!--
          <el-col :span="5">
            <el-form-item label="税后金额" prop="pretaxcost">
              <el-input v-model="form.taxedcost" placeholder="税后金额合计" :disabled="true" />
@@ -93,7 +92,7 @@
          </el-col>
          <el-col :span="5">
            <el-form-item label="捐献者" prop="name">
              <el-input :disabled="true" v-model="form.name" placeholder="请输入捐献者姓名" />
              <el-input :disabled="true" v-model="form.donorname" placeholder="请输入捐献者姓名" />
            </el-form-item>
          </el-col>
          <!-- 
@@ -151,7 +150,7 @@
                </el-select>
              </template>
            </el-table-column>
            <el-table-column prop="price" align="center" label="单价" width="120" v-if="0">
            <el-table-column prop="price" align="center" label="单价" width="120" v-if="businessType == 4">
              <template slot-scope="scope">
                <el-input v-model="scope.row.price" placeholder="单价" @blur="val => {
                  sumTotalFee(scope.row);
@@ -159,7 +158,7 @@
                  " />
              </template>
            </el-table-column>
            <el-table-column prop="quantity" align="center" label="数量" width="120" v-if="0">
            <el-table-column prop="quantity" align="center" label="数量" width="120" v-if="businessType == 4">
              <template slot-scope="scope">
                <el-input v-model="scope.row.quantity" placeholder="数量" @blur="val => {
                  sumTotalFee(scope.row);
@@ -167,8 +166,11 @@
                  " />
              </template>
            </el-table-column>
            <el-table-column v-if="businessType == 3 || businessType == 4 || ismanager == true" prop="amount"
              align="center" label="税前金额" width="120">
            <el-table-column v-if="businessType == 2 ||
              businessType == 3 ||
              businessType == 4 ||
              ismanager == true
              " prop="amount" align="center" :label="amountLabel" width="120">
              <template slot-scope="scope">
                <!--
                  <el-select v-model="scope.row.amount" placeholder="税前金额" clearable filterable allow-create
@@ -177,7 +179,7 @@
                    :value="dict.expense"></el-option>
                </el-select>
              -->
                <el-input v-model="scope.row.amount" placeholder="税前金额" />
                <el-input v-model="scope.row.amount" placeholder="金额" />
              </template>
            </el-table-column>
            <el-table-column prop="taxedamount" align="center" label="税后金额" width="120" v-if="(this.ismanager == true) &
@@ -490,7 +492,9 @@
        </div>
        <div v-if="this.previewpdf" class="pdfimgmin">
          <img :src="pdfimg" />
          <!-- <img :src="pdfimg" /> -->
          <el-image style="width: 100px; height: 100px" :src="pdfimg" :preview-src-list="pdfimgsrcList">
          </el-image>
        </div>
        <div v-else class="pdfimgmins">{{ hintitle }}</div>
      </div>
@@ -651,7 +655,6 @@
      totalAfterTaxAmount: 0.0,
      totalAmount: 0.0,
      //费用类型数组
      feeItemTypes: [],
@@ -666,6 +669,8 @@
      //专家/单位选择:expert/unit
      selectionType: "",
      showSelectionDialog: false,
      //税前金额标题:专家费-税前金额;医学成本、办公费用-金额
      amountLabel: "税前金额",
      // 表单校验
      rules: {
@@ -726,7 +731,7 @@
      checkObj: {
        flowlevelone: null,
        flowconclusion: null,
        fundid: null,
        fundid: null
      },
      // 查询参数
@@ -782,6 +787,7 @@
      //票据文件
      pdftitle: "",
      pdfimg: "",
      pdfimgsrcList: [],
      pdfVisible: false,
      previewpdf: false,
      hintitle: "选中左侧已上传文件预览查看",
@@ -855,40 +861,37 @@
      // if (!this.businessType && !this.operationType) {
      if (this.businessType == "1") {
        this.curCase = this.$route.query.curCase;
        this.businessName = "专家劳务费申请单"
        this.businessName = "专家劳务费申请单";
        this.amountLabel = "税前金额";
        this.getUnitList();
      }
      else if (this.businessType == "2") {
        this.curCase = this.$route.query.curCase;
      } else if (this.businessType == "2") {
        this.businessName = "伦理专家劳务费申请单";
        this.amountLabel = "税前金额";
        this.getUnitList();
      }
      else if (this.businessType == "3") {
        if (this.operationType != "check") {
          this.curCase = this.$route.query.curCase;
        }
      } else if (this.businessType == "3") {
        this.businessName = "医学成本报销单";
      }
      else if (this.businessType == "4") {
        this.amountLabel = "金额";
      } else if (this.businessType == "4") {
        this.businessName = "办公费用报销单";
        this.amountLabel = "金额";
        // this.getBaseInfoList();
      }
      if (this.operationType == "add") {
        this.title = this.businessName + "新建";
        if (this.operationType != "4") {
          this.curCase = this.$route.query.curCase;
          console.log("this.curCase", this.curCase);
        }
        this.handleAdd();
      }
      else if (this.operationType == "update") {
      } else if (this.operationType == "update") {
        this.title = this.businessName + "修改";
        this.handleUpdate();
      }
      else if (this.operationType == "detail") {
      } else if (this.operationType == "detail") {
        this.title = this.businessName + "查看";
        this.handleDetail();
      }
      else if (this.operationType == "check") {
      } else if (this.operationType == "check") {
        this.title = this.businessName + "审核";
        this.handleCheck();
      }
@@ -975,6 +978,7 @@
      getFund(this.curId).then(response => {
        this.form = response.data;
        console.log("response.data", response.data);
        //附件处理
        // this.fileList = this.form.annexbankcard ? this.form.annexbankcard.split(",").map(item => ({ url: item, name: item })) : []
@@ -999,7 +1003,7 @@
          }
        });
        //业务流程
        //业务流程
        let listFundflowparams = {
          fundid: this.curId,
          fundtype: 2
@@ -1026,17 +1030,22 @@
          for (let m = 0; m < this.rbDetails.length; m++) {
            this.rbDetails[m].itemlist = [];
            this.getFeeItems(m, this.rbDetails[m]);
            this.rbDetails[m].rowfeeblocks = [];
            this.rbDetails[m].rowfeeblocks.push({
              expense: this.rbDetails[m].expense,
              servicesscope: this.rbDetails[m].servicesscope,
              expensedescribe: this.rbDetails[m].servicesscopename,
              remark: this.rbDetails[m].servicesscope,
              servicesscope: this.rbDetails[m].servicesscope
              expense: this.rbDetails[m].expense,
              remark: this.rbDetails[m].servicesscopename
            });
          }
          if (this.rbDetails.length == 0) {
            this.addRow(0);
          }
        });
        //业务流程
        //业务流程
        let listFundflowparams = {
          fundid: this.curId,
          fundtype: 2
@@ -1045,7 +1054,6 @@
          this.fundflowList = res.rows;
        });
      });
    },
    /** 删除按钮操作 */
@@ -1136,7 +1144,10 @@
                return;
              }
              if (tempDetail.beneficiaryno == null || tempDetail.beneficiaryno == "点击选择") {
              if (
                tempDetail.beneficiaryno == null ||
                tempDetail.beneficiaryno == "点击选择"
              ) {
                this.$modal.msgWarning(
                  "服务项目表中,第" +
                  (k + 1).toString() +
@@ -1167,7 +1178,7 @@
          //   this.form.annexfiles = list.map(item => item.url).join(",");
          // }
          //处理明细
          //处理明细
          for (let i = 0; i < this.rbDetails.length; i++) {
            let tempDetail = this.rbDetails[i];
            //获取服务项目明细
@@ -1185,15 +1196,9 @@
              item => tempDetail.applytype == item.value
            );
            if (applytypeIndex > -1) {
              tempDetail.applytypename = this.rowfeeItemTypes[
                applytypeIndex
              ].label;
              tempDetail.subjecttype = this.rowfeeItemTypes[
                applytypeIndex
              ].subjecttype;
              tempDetail.subjecttypename = this.rowfeeItemTypes[
                applytypeIndex
              ].subjecttypename;
              tempDetail.applytypename = this.rowfeeItemTypes[applytypeIndex].label;
              tempDetail.subjecttype = this.rowfeeItemTypes[applytypeIndex].subjecttype;
              tempDetail.subjecttypename = this.rowfeeItemTypes[applytypeIndex].subjecttypename;
            }
            this.rbDetails[i] = tempDetail;
            /*
@@ -1218,7 +1223,7 @@
              });
            }
           
            // 计算税前金额
            // 计算税前、税费、税后金额
            if (tempDetail.amount == undefined || tempDetail.amount == null || tempDetail.amount == 0 || tempDetail.amount == '') {
              //获取参数
              this.taxParam.money = tempDetail.taxedamount.toString();
@@ -1234,7 +1239,32 @@
              });
            }
            */
          }
          //计算当前行报销内容费用合计,税前金额(amount)、扣税金额(taxamount)、税后金额(taxedamount)
          if (this.businessType == '2') {
            for (let j = 0; j < this.rbDetails.length; j++) {
              let tempDetail = this.rbDetails[j];
              if (isNaN(parseFloat(tempDetail.amount)) || parseFloat(tempDetail.amount) == 0) {
                this.$modal.msgWarning("服务项目表中,第" + (j + 1).toString() + "行的金额未输入,请先输入金额后再提交保存!");
                return;
              }
            }
          } else if (this.businessType == '3' || this.businessType == '4') {
            for (let j = 0; j < this.rbDetails.length; j++) {
              let tempDetail = this.rbDetails[j];
              if (isNaN(parseFloat(tempDetail.amount)) || parseFloat(tempDetail.amount) == 0) {
                this.$modal.msgWarning("服务项目表中,第" + (j + 1).toString() + "行的金额未输入,请先输入金额后再提交保存!");
                return;
              }
              if (isNaN(parseFloat(tempDetail.taxamount)) || parseFloat(tempDetail.taxamount) == 0) {
                tempDetail.taxedamount = tempDetail.amount
              } else {
                tempDetail.taxedamount = tempDetail.amount + tempDetail.taxamount
              }
            }
          }
          //费用合计
          // this.form.pretaxcost = parseFloat(this.totalPreTaxAmount).toFixed(2);
          // this.form.taxedcost = parseFloat(this.totalAfterTaxAmount).toFixed(2);
@@ -1286,8 +1316,9 @@
          });
          //关闭窗口
          // this.loading = false;
          // this.getfundList();
          this.loading = false;
          // this.getfundList();
          this.$store.dispatch('tagsView/delView', this.$route)
          this.$router.go(-1);
        }
      });
@@ -1299,17 +1330,21 @@
        // fundid: this.checkObj.fundid,
        fundid: this.curId,
        flowconclusion: this.checkObj.flowlevelone,
        flowcontent: this.checkObj.flowconclusion,
        flowcontent: this.checkObj.flowconclusion
      };
      checkfund(checkFundObj).then((res) => {
      checkfund(checkFundObj).then(res => {
        //关闭窗口
        this.reset();
        this.$modal.msgSuccess("审核完成!");
        this.$store.dispatch("tagsView/delView", this.$route);
        this.$router.go(-1);
      });
    },
    // 取消按钮
    cancel() {
      // this.reset();
      this.$store.dispatch("tagsView/delView", this.$route);
      this.$router.go(-1);
    },
@@ -1319,23 +1354,29 @@
        this.userprofile = res.data;
        this.standardlevel = res.data.standardlevel;
        if (
          this.userprofile.createBy == "admin" ||
          this.userprofile.createBy == "001" ||
          this.userprofile.createBy == "002"
          this.userprofile.userName == "admin" ||
          this.userprofile.userName == "001" ||
          this.userprofile.userName == "047"
        ) {
          this.ismanager = true;
        } else {
          this.ismanager = false;
        }
        this.form.username = this.userprofile.nickName;
        this.form.userno = this.userprofile.userName;
        this.form.deptmentname = this.userprofile.dept.deptName;
        this.form.deptmentno = this.userprofile.dept.deptId;
        this.form.managername = this.userprofile.dept.leader;
        this.form.phone = this.userprofile.phonenumber;
        // this.form.applytype = this.businessType;
        // this.form.createTime = new Date();
        this.getUserAccount();
        console.log(this.userprofile, this.ismanager);
        if (this.operationType == "add") {
          this.form.username = this.userprofile.nickName;
          this.form.userno = this.userprofile.userName;
          this.form.deptmentname = this.userprofile.dept.deptName;
          this.form.deptmentno = this.userprofile.dept.deptId;
          this.form.managername = this.userprofile.dept.leader;
          this.form.phone = this.userprofile.phonenumber;
          // this.form.applytype = this.businessType;
          // this.form.createTime = new Date();
          if (this.businessType == "4") {
            this.getUserAccount();
          }
        }
      });
    },
@@ -1377,7 +1418,7 @@
    getUserAccount() {
      this.personlist.map(res => {
        if (res.username == this.form.username) {
          this.form.bankname = res.depositbank;//res.branchbankname、res.depositbank;
          this.form.bankname = res.depositbank; //res.branchbankname、res.depositbank;
          this.form.bankcardno = res.bankcardno;
          this.form.phone = res.telephone;
        }
@@ -1499,7 +1540,7 @@
      });
    },
    //校验收费项目是否重复
    //校验收费项目
    verifyFeeItem(row) {
      row.itemlist.map(res => {
        if (row.itemid === res.id) {
@@ -1507,14 +1548,18 @@
          row.itemcode = res.itemCode;
        }
      });
      var repeatNum = 0;
      this.rbDetails.map(res => {
        if (res.applytype === row.applytype && res.itemid == row.itemid) {
          repeatNum++;
      //判断收费项目是否重复
      if (this.businessType == "1") {
        var repeatNum = 0;
        this.rbDetails.map(res => {
          if (res.applytype === row.applytype && res.itemid == row.itemid) {
            repeatNum++;
          }
        });
        if (repeatNum > 1) {
          this.$modal.msgWarning("您已经提交过该服务项目了");
        }
      });
      if (repeatNum > 1) {
        this.$modal.msgWarning("您已经提交过该服务项目了");
      }
      //获取费用项目的详细信息
@@ -1926,6 +1971,8 @@
        this.previewpdf = true;
        if (item.url) {
          this.pdfimg = item.url;
          this.pdfimgsrcList = [];
          this.pdfimgsrcList.push(item.url);
        } else {
          this.pdfimg = item.response.url;
        }
@@ -1984,7 +2031,8 @@
        } else {
          //保存新增专家
          this.expertform.id = null;
          this.expertform.userno = this.personlist[this.personlist.length - 1].id + 1;
          this.expertform.userno =
            this.personlist[this.personlist.length - 1].id + 1;
          this.expertform.usertype = "expert";
          this.expertform.username = this.funddetailForm.expertname;
          this.expertform.idcardno = this.funddetailForm.expertidcardno;
@@ -2081,7 +2129,7 @@
      this.rbDetails[tempIndex] = singleDetail;
      this.showSelectionDialog = false;
    },
    }
  },
  //生命周期 - 创建完成(可以访问当前this实例)
@@ -2104,7 +2152,7 @@
  updated() { }, //生命周期 - 更新之后
  beforeDestroy() { }, //生命周期 - 销毁之前
  destroyed() { }, //生命周期 - 销毁完成
  activated() { }, //如果页面有keep-alive缓存功能,这个函数会触发
  activated() { } //如果页面有keep-alive缓存功能,这个函数会触发
};
</script>