yxh
2023-12-12 e21e9ad99c4c2a306d15cb270dc41520450ac9f2
src/views/project/fund/applyDetail/index.vue
@@ -150,7 +150,8 @@
            <div
              style="margin-bottom: 15px;"
              v-if="
                userprofile.nickName == '陈慕华' && operationType == 'check'
                userprofile.nickName == '陈慕华' &&
                  (businessType == '1' || businessType == '2')
              "
            >
              <el-button
@@ -322,6 +323,23 @@
              </template>
            </el-table-column>
            <el-table-column
              prop="taxamount"
              align="center"
              label="扣税金额"
              width="120"
              v-if="
                (this.ismanager == true) &
                  (form.applytype == '1' || form.applytype == '2')
              "
            >
              <template slot-scope="scope">
                <el-input
                  v-model="scope.row.taxamount"
                  placeholder="扣税金额"
                />
              </template>
            </el-table-column>
            <el-table-column
              prop="taxedamount"
              align="center"
              label="税后金额"
@@ -346,7 +364,7 @@
            <el-table-column
              prop="beneficiaryname"
              align="center"
              label="姓名"
              label="专家/单位"
              width="120"
              v-if="form.applytype == '1' || form.applytype == '2'"
            >
@@ -366,7 +384,7 @@
            <el-table-column
              prop="unitno"
              align="center"
              label="单位名称"
              label="专家所在单位"
              width="250"
              v-if="form.applytype != '4' && form.applytype != '3'"
            >
@@ -448,7 +466,16 @@
              v-if="form.applytype == '1' || form.applytype == '2'"
            >
              <template slot-scope="scope">
                <el-input v-model="scope.row.idcardno" placeholder="身份证号" />
                <el-form-item :error="scope.row.error" label-width="0">
                  <el-input
                    :disabled="
                      userprofile.nickName != '陈慕华' && businessType == 1
                    "
                    v-model.number="scope.row.idcardno"
                    @input="tableParValueChange1(scope.row)"
                    placeholder="身份证号"
                  />
                </el-form-item>
              </template>
            </el-table-column>
            <el-table-column
@@ -460,6 +487,9 @@
              <!-- v-if="form.applytype != '4'" -->
              <template slot-scope="scope">
                <el-input
                  :disabled="
                    userprofile.nickName != '陈慕华' && businessType == 1
                  "
                  v-model="scope.row.depositbank"
                  placeholder="开户银行"
                />
@@ -473,13 +503,16 @@
            >
              <template slot-scope="scope">
                <el-input
                  :disabled="
                    userprofile.nickName != '陈慕华' && businessType == 1
                  "
                  v-model="scope.row.bankcardno"
                  placeholder="银行帐号"
                />
              </template>
            </el-table-column>
            <el-table-column
              prop="itemdescribe"
              prop="itemdescrisca"
              align="center"
              width="330"
              label="项目说明"
@@ -552,7 +585,9 @@
                  "
                  type="text"
                  size="small"
                  v-if="businessType == 3 || businessType == 4"
                  v-if="
                    businessType == 3 || businessType == 2 || businessType == 4
                  "
                  >票据</el-button
                >
              </template>
@@ -686,11 +721,11 @@
          style="margin-top: 25px; margin-bottom: 5px"
          v-if="operationType == 'check' && userprofile.nickName == '陈慕华'"
        >
          <el-col :span="7">
          <el-col :span="20">
            <el-form-item label="申请材料状态" prop="infoid">
              <el-radio-group v-model="form.checkstatus" align="left">
                <el-radio :label="1">待申请材料</el-radio>
                <el-radio :label="2">申请材料通过等待材料</el-radio>
                <el-radio :label="2">审核通过等待邮寄纸质材料</el-radio>
                <el-radio :label="3">已收到报销材料</el-radio>
              </el-radio-group>
            </el-form-item>
@@ -700,7 +735,7 @@
          style="margin-top: 5px; margin-bottom: 5px"
          v-if="operationType == 'check'"
        >
          <el-col :span="7">
          <el-col :span="20">
            <el-form-item label="审核结果" align="left">
              <el-radio-group v-model="checkObj.flowlevelone" align="left">
                <el-radio label="1">通过</el-radio>
@@ -727,7 +762,7 @@
              operationType == 'update' ||
              ismanager == true
          "
          >提交保存</el-button
          >保存</el-button
        >
        <el-button
          type="success"
@@ -753,7 +788,7 @@
      style="text-align: center"
      v-loading="loading"
    >
      <el-form ref="funddetailForm" :model="funddetailForm">
      <el-form ref="funddetailForm" :rules="funddrules" :model="funddetailForm">
        <el-row v-if="businessType != 4 && businessType != 3">
          <el-col
            :span="24"
@@ -857,7 +892,7 @@
          </el-col>
          <el-col :span="24" v-if="experthear == 'unit'">
            <el-form-item
              label="人员姓名"
              label="专家/单位"
              prop="beneficiaryname"
              label-width="80px"
            >
@@ -1146,15 +1181,14 @@
                    label="名称"
                  >
                    <template slot-scope="scope">
                      <i style="color:#409EFF" class=" el-icon-s-order" />{{
                        scope.row.name
                      }}
                      <i style="color:#409EFF" class=" el-icon-s-order" />
                      <span>{{ scope.row.name }}</span>
                    </template>
                  </el-table-column>
                  <el-table-column
                    prop="name"
                    width="180"
                    width="190"
                    :show-overflow-tooltip="true"
                    label="功能"
                  >
@@ -1171,6 +1205,13 @@
                        @click.native.prevent.stop="moveupdowfile(scope.row)"
                        >上移</el-button
                      >
                      <el-button
                        type="success"
                        size="mini"
                        icon="el-icon-search"
                        circle
                        @click.native.prevent.stop="Downloadfile(scope.row)"
                      ></el-button>
                    </template>
                  </el-table-column>
                </el-table>
@@ -1243,15 +1284,14 @@
                    label="名称"
                  >
                    <template slot-scope="scope">
                      <i style="color:#409EFF" class=" el-icon-s-order" />{{
                        scope.row.name
                      }}
                      <i style="color:#409EFF" class=" el-icon-s-order" />
                      <span>{{ scope.row.name }}</span>
                    </template>
                  </el-table-column>
                  <el-table-column
                    prop="name"
                    width="180"
                    width="190"
                    :show-overflow-tooltip="true"
                    label="功能"
                  >
@@ -1268,6 +1308,13 @@
                        @click.native.prevent.stop="moveupdowfile(scope.row)"
                        >上移</el-button
                      >
                      <el-button
                        type="success"
                        size="mini"
                        icon="el-icon-search"
                        circle
                        @click.native.prevent.stop="Downloadfile(scope.row)"
                      ></el-button>
                    </template>
                  </el-table-column>
                </el-table>
@@ -1446,6 +1493,14 @@
  ],
  data() {
    var validatePass = (rule, value, callback) => {
      const regex = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}([0-9]|X)$/;
      if (regex.test(value)) {
        callback();
      } else {
        callback(new Error("身份证号码格式错误"));
      }
    };
    //这里存放数据
    return {
      // 遮罩层
@@ -1557,6 +1612,18 @@
        ],
        deptmentname: [
          { required: true, message: "请输入所属业务组", trigger: "blur" }
        ]
      },
      funddrules: {
        // expertidcardno: [{ validator: validatePass, trigger: "blur" }],
        expertdepositbank: [
          { required: true, message: "请输入开户银行", trigger: "change" }
        ],
        expertbankcardno: [
          { required: true, message: "请输入银行卡号", trigger: "change" }
        ],
        expertunitno: [
          { required: true, message: "请选择单位名称", trigger: "change" }
        ]
      },
@@ -2096,6 +2163,8 @@
              );
              return;
            }
            /*
            if (
              tempDetail.idcardno == null &&
              this.businessType != "3" &&
@@ -2109,6 +2178,7 @@
              );
              return;
            }
            */
            if (this.businessType == "1") {
              if (tempDetail.servicesscope == null) {
@@ -2250,30 +2320,37 @@
            JSON.stringify(this.rbDetails)
          );
          sessionStorage.setItem("apiform", JSON.stringify(this.form));
          addorupdateFund(this.form).then(response => {
            console.log(this.form);
            console.log(response, "保存返参");
            if (response.code === 200) {
              if (this.form.id) {
                this.$modal.msgSuccess("申请单修改成功!");
                this.$router.go(-1);
          addorupdateFund(this.form)
            .then(response => {
              console.log(this.form);
              console.log(response, "保存返参");
              if (response.code === 200) {
                if (this.form.id) {
                  this.$modal.msgSuccess("申请单修改成功!");
                  this.$router.go(-1);
                } else {
                  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.form.id = response.data;
                this.curId = response.data;
                this.handleUpdate();
              } else {
                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.$modal.msgError("申请单保存失败:" + response.msg);
              }
            } else {
              this.$modal.msgError("申请单保存失败:" + response.msg);
            }
          });
            })
            .catch(res => {
              this.$modal.msgError("申请单保存失败:" + res);
            });
          //关闭窗口
          this.loading = false;
          // this.getfundList();
@@ -2282,6 +2359,19 @@
    }, 500),
    //审批提交
    // checksubmit() {
    //   console.log(this.checkObj.flowlevelone);
    //   if (
    //     this.form.checkstatus != 3 &&
    //     this.userprofile.nickName == "陈慕华" &&
    //     this.checkObj.flowlevelone == 1
    //   ) {
    //     this.$modal.msgError("请选确认材料状态已收到!");
    //     return;
    //   }
    //   this.Savenow();
    //   console.log("保存并审批");
    // },
    checksubmit() {
      console.log(this.checkObj.flowlevelone);
      if (
@@ -2289,12 +2379,20 @@
        this.userprofile.nickName == "陈慕华" &&
        this.checkObj.flowlevelone == 1
      ) {
        this.$modal.msgError("请选确认材料状态已收到!");
        this.$modal.msgError("请确认报销的纸质材料已经收到!");
        return;
      } else if (
        (this.form.applytype == "1" || this.form.applytype == "2") &&
        this.form.fundtaxtime == null
      ) {
        this.$modal.msgError(
          "提交专家费用申请单、伦理专家申请费用申请单审核,需要先完成个税计算!"
        );
        return;
      }
        this.Savenow();
        console.log("保存并审批");
      this.Savenow();
      console.log("保存并审批");
    },
    // 取消按钮
@@ -2862,20 +2960,22 @@
          );
          sessionStorage.setItem("apiform", JSON.stringify(this.form));
          // this.$router.go(0);
          this.$router.push({
            path: "/finance/applyDetail/",
            query: {
              id: this.curId,
              businessType: this.businessType,
              operationType: this.operationType,
              curCase: this.curCase
            }
          });
        } else {
          // this.$message({
          //   type: "error",
          //   message: "申请失败"
          // this.$router.push({
          //   path: "/finance/applyDetail/",
          //   query: {
          //     id: this.curId,
          //     businessType: this.businessType,
          //     operationType: this.operationType,
          //     curCase: this.curCase
          //   }
          // });
          this.$modal.msgSuccess("计算成功");
          this.handleCheck();
        } else {
          this.$message({
            type: "error",
            message: "计算错误"
          });
        }
      });
    },
@@ -3163,6 +3263,8 @@
    uploadSccess(response, file, fileList) {
      this.rbDetails;
      //获取票据信息位置
      console.log(response);
      console.log(file);
      if (this.activeName == 1) {
        if (response.code == 200) {
          // this.form.filename = file.raw.name;
@@ -3350,6 +3452,10 @@
        this.invoicefileListto.splice(index - 1, 0, item); // 将item插入到索引位置的前一位
      }
    },
    Downloadfile(row) {
      console.log(row);
      window.location.href = this.Networkheader + "/prod-api" + row.url;
    },
    //专家/医疗机构/费用报销机构选择
    ShowDetailDialog(spoce, showType) {
      this.spocewl = spoce;
@@ -3378,145 +3484,161 @@
    //专家/医疗机构/费用报销机构选择
    ConfirmDetailDialog() {
      // 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];
      this.$refs["funddetailForm"].validate(valid => {
        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 ||
        this.businessType == 3
      ) {
        if (this.expertfrom == "1" || this.experthear == "unit") {
          //从专家列表获取信息
          this.personlist.map(res => {
            if (tempExpertName == res.username) {
              singleDetail.beneficiaryno = res.userno;
              singleDetail.beneficiaryname = res.username;
              singleDetail.bankcardno = res.bankcardno;
              singleDetail.branchbankname = res.branchbankname;
              singleDetail.depositbank = res.depositbank;
              singleDetail.idcardno = res.idcardno;
              singleDetail.phone = res.telephone;
              singleDetail.title = res.title;
              singleDetail.unitname = res.unitname;
              singleDetail.unitno = parseInt(res.unitno);
            }
          });
        } else {
          //保存新增专家
          this.expertform.id = null;
          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;
          this.expertform.sex = null;
          this.expertform.telephone = null;
          this.expertform.address = null;
          this.expertform.wbm = null;
          this.expertform.pym = null;
        if (
          this.selectionType == "expert" ||
          this.businessType == 4 ||
          this.businessType == 3
        ) {
          if (this.expertfrom == "1" || this.experthear == "unit") {
            //从专家列表获取信息
            this.personlist.map(res => {
              if (tempExpertName == res.username) {
                singleDetail.beneficiaryno = res.userno;
                singleDetail.beneficiaryname = res.username;
                singleDetail.bankcardno = res.bankcardno;
                singleDetail.branchbankname = res.branchbankname;
                singleDetail.depositbank = res.depositbank;
                singleDetail.idcardno = res.idcardno;
                singleDetail.phone = res.telephone;
                singleDetail.title = res.title;
                singleDetail.unitname = res.unitname;
                singleDetail.unitno = parseInt(res.unitno);
              }
            });
          } else {
            //保存新增专家
            this.expertform.id = null;
            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;
            this.expertform.sex = null;
            this.expertform.telephone = null;
            this.expertform.address = null;
            this.expertform.wbm = null;
            this.expertform.pym = null;
          this.expertform.unitno = this.funddetailForm.expertunitno;
          try {
            let unitIndex = this.unitList.findIndex(
              item => this.expertform.unitno == item.organizationid
            );
            if (unitIndex > -1) {
              this.expertform.unitname = this.unitList[
                unitIndex
              ].organizationname;
            } else {
            this.expertform.unitno = this.funddetailForm.expertunitno;
            try {
              let unitIndex = this.unitList.findIndex(
                item => this.expertform.unitno == item.organizationid
              );
              if (unitIndex > -1) {
                this.expertform.unitname = this.unitList[
                  unitIndex
                ].organizationname;
              } else {
                this.expertform.unitname = this.expertform.unitno;
              }
            } catch {
              this.expertform.unitname = this.expertform.unitno;
            }
          } catch {
            this.expertform.unitname = this.expertform.unitno;
          }
          this.expertform.title = this.funddetailForm.experttitle;
          this.expertform.personnelunitno = null;
            this.expertform.title = this.funddetailForm.experttitle;
            this.expertform.personnelunitno = null;
          this.expertform.depositbank = this.funddetailForm.expertdepositbank;
          this.expertform.bankcardno = this.funddetailForm.expertbankcardno;
          this.expertform.branchbankname = null;
          this.expertform.remark = null;
          this.expertform.del_flag = "0";
            this.expertform.depositbank = this.funddetailForm.expertdepositbank;
            this.expertform.bankcardno = this.funddetailForm.expertbankcardno;
            this.expertform.branchbankname = null;
            this.expertform.remark = null;
            this.expertform.del_flag = "0";
          addExternalperson(this.expertform).then(response => {
            if (response.code == 200) {
              this.$modal.msgSuccess("新增专家信息成功!");
            addExternalperson(this.expertform).then(response => {
              if (response.code == 200) {
                this.$modal.msgSuccess("新增专家信息成功!");
              listExternalperson().then(res => {
                this.personlist = res.rows;
                //从专家列表获取信息
                this.personlist.map(res => {
                  if (res.username == this.funddetailForm.expertname) {
                    singleDetail.beneficiaryno = res.userno;
                    singleDetail.beneficiaryname = res.username;
                    singleDetail.bankcardno = res.bankcardno;
                    singleDetail.branchbankname = res.branchbankname;
                    singleDetail.depositbank = res.depositbank;
                    singleDetail.idcardno = res.idcardno;
                    singleDetail.phone = res.telephone;
                    singleDetail.title = res.title;
                    singleDetail.unitname = res.unitname;
                    singleDetail.unitno = parseInt(res.unitno);
                  }
                listExternalperson().then(res => {
                  this.personlist = res.rows;
                  //从专家列表获取信息
                  this.personlist.map(res => {
                    if (res.username == this.funddetailForm.expertname) {
                      singleDetail.beneficiaryno = res.userno;
                      singleDetail.beneficiaryname = res.username;
                      singleDetail.bankcardno = res.bankcardno;
                      singleDetail.branchbankname = res.branchbankname;
                      singleDetail.depositbank = res.depositbank;
                      singleDetail.idcardno = res.idcardno;
                      singleDetail.phone = res.telephone;
                      singleDetail.title = res.title;
                      singleDetail.unitname = res.unitname;
                      singleDetail.unitno = parseInt(res.unitno);
                    }
                  });
                });
              });
            }
          });
        }
      } else if (this.selectionType == "unit") {
        singleDetail.unitno = this.funddetailForm.unitno;
        if (this.businessType == 1 || this.businessType == 2) {
          try {
            let unitIndex = this.unitList.findIndex(
              item => singleDetail.unitno == item.organizationid
            );
            if (unitIndex > -1) {
              singleDetail.unitname = this.unitList[unitIndex].organizationname;
            } else {
              }
            });
          }
        } else if (this.selectionType == "unit") {
          singleDetail.unitno = this.funddetailForm.unitno;
          if (this.businessType == 1 || this.businessType == 2) {
            try {
              let unitIndex = this.unitList.findIndex(
                item => singleDetail.unitno == item.organizationid
              );
              if (unitIndex > -1) {
                singleDetail.unitname = this.unitList[
                  unitIndex
                ].organizationname;
              } else {
                singleDetail.unitname = singleDetail.unitno;
              }
            } catch {
              singleDetail.unitname = singleDetail.unitno;
            }
          } catch {
            singleDetail.unitname = singleDetail.unitno;
          }
        } else if (this.businessType == 3 || this.businessType == 4) {
          try {
            let unitIndex = this.feeUnitList.findIndex(
              item => singleDetail.unitno == item.reportNo
            );
            if (unitIndex > -1) {
              singleDetail.unitname = this.feeUnitList[unitIndex].reportName;
              singleDetail.depositbank = this.feeUnitList[
                unitIndex
              ].depositbank;
              singleDetail.bankcardno = this.feeUnitList[unitIndex].bankcardno;
            } else {
          } else if (this.businessType == 3 || this.businessType == 4) {
            try {
              let unitIndex = this.feeUnitList.findIndex(
                item => singleDetail.unitno == item.reportNo
              );
              if (unitIndex > -1) {
                singleDetail.unitname = this.feeUnitList[unitIndex].reportName;
                singleDetail.depositbank = this.feeUnitList[
                  unitIndex
                ].depositbank;
                singleDetail.bankcardno = this.feeUnitList[
                  unitIndex
                ].bankcardno;
              } else {
                singleDetail.unitname = singleDetail.unitno;
              }
            } catch {
              singleDetail.unitname = singleDetail.unitno;
            }
          } catch {
            singleDetail.unitname = singleDetail.unitno;
          }
        }
      }
      // if (this.experthear == "unit") {
      //   singleDetail.unitname = "";
      // }
      if (this.businessType == 4 || this.businessType == 3) {
        singleDetail.beneficiaryname = this.funddetailForm.beneficiaryname;
        // if (this.experthear == "unit") {
        //   singleDetail.unitname = "";
        // }
        if (this.businessType == 4 || this.businessType == 3) {
          singleDetail.beneficiaryname = this.funddetailForm.beneficiaryname;
        }
        this.rbDetails[tempIndex] = singleDetail;
        this.showSelectionDialog = false;
      });
    },
    tableParValueChange(row, tto) {
      const regex = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}([0-9]|X)$/;
      if (tto) {
        if (regex.test(funddetailForm.expertidcardno)) {
          row.error = "";
        } else {
          row.error = "身份证号码格式错误";
        }
        return;
      }
      this.rbDetails[tempIndex] = singleDetail;
      this.showSelectionDialog = false;
      console.log(11);
      if (regex.test(row.idcardno)) {
        row.error = "";
      } else {
        row.error = "身份证号码格式错误";
      }
    }
  },