yxh
yxh
2024-01-05 26c14f0c6defe02f2b6f15b498bcd454461ee7a8
src/views/project/fund/applyDetail/index.vue
@@ -6,8 +6,13 @@
      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
        <el-row>
          <el-col :span="5">
            <el-form-item label="申请日期" prop="createTime">
              <el-date-picker clearable :disabled="true" style="width: 100%" v-model="form.createTime" type="date"
            <el-form-item label="报销单号" prop="bh">
              <el-input v-model="form.bh" :disabled="true" placeholder="报销单号" clearable />
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="申请日期" prop="applyTime">
              <el-date-picker clearable :disabled="true" style="width: 100%" v-model="form.applyTime" type="date"
                value-format="yyyy-MM-dd HH:mm:ss" placeholder="日   期">
              </el-date-picker>
            </el-form-item>
@@ -22,13 +27,8 @@
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="所属组别" prop="deptmentname">
              <el-input v-model="form.deptmentname" placeholder="请输入所属组别" clearable />
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="组长" prop="managername">
              <el-input v-model="form.managername" placeholder="请输入组长" clearable />
            <el-form-item label="联系电话" prop="phone">
              <el-input v-model="form.phone" placeholder="请输入联系电话" />
            </el-form-item>
          </el-col>
        </el-row>
@@ -47,30 +47,33 @@
              }}</el-radio>
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="联系电话" prop="phone">
              <el-input v-model="form.phone" placeholder="请输入联系电话" />
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="捐献者" prop="name">
              <el-input :disabled="true" v-model="form.donorname" placeholder="请输入捐献者姓名" />
            </el-form-item>
          </el-col>
          <el-col :span="5" v-if="ismanager == true">
            <el-form-item label="申请金额" prop="pretaxcost">
              <el-input v-model="form.pretaxcost" placeholder="税前金额合计" :disabled="true" />
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="所属组别" prop="deptmentname">
              <el-input v-model="form.deptmentname" placeholder="请输入所属组别" clearable />
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="组长" prop="managername">
              <el-input v-model="form.managername" placeholder="请输入组长" clearable />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row style="text-align: left">
          <el-col :span="8">
          <el-col :span="5">
            <el-form-item label="捐献案例" prop="name">
              <el-input :disabled="true" v-model="form.donorname" placeholder="请输入捐献者姓名" />
            </el-form-item>
          </el-col>
          <el-col :span="10">
            <el-form-item label="申请说明" prop="remark">
              <el-input v-model="form.remark" placeholder="申请说明" />
            </el-form-item>
          </el-col>
          <!-- 
          <el-col :span="5">
            <el-form-item label="申请状态" prop="recordstatus">
@@ -90,21 +93,21 @@
        </el-row>
        <el-row>
          <el-col :span="3" v-if="businessType == '1'">
            <el-button @click.native.prevent="importFeeItems" type="primary" size="small">
              导入服务项目
            </el-button>
          </el-col>
          <el-col :span="3">
            <div style="margin-bottom: 15px;" v-if="businessType == 2">
              <el-button type="success" icon="el-icon-download" @click="Batchentry">批量录入</el-button>
            <div style="margin-bottom: 15px;">
              <el-button type="primary" icon="el-icon-download" size="small" @click.native.prevent="importFeeItems">
                批量导入服务项目
              </el-button>
            </div>
          </el-col>
          <el-col :span="3">
            <div style="margin-bottom: 15px;" v-if="userprofile.nickName == '陈慕华' &&
              (businessType == '1' || businessType == '2')
              ">
              <el-button type="success" icon="el-icon-edit-outline" @click="Manualcalculationfn">计算个税</el-button>
          <el-col :span="3" v-if="businessType == 2">
            <div style="margin-bottom: 15px;">
              <el-button type="primary" icon="el-icon-download" size="small" @click="Batchentry">批量录入专家</el-button>
            </div>
          </el-col>
          <el-col :span="3" v-if="userprofile.nickName == '陈慕华' && (businessType == '1' || businessType == '2')">
            <div style="margin-bottom: 15px;">
              <el-button type="success" icon="el-icon-edit-outline" size="small"
                @click="Manualcalculationfn">计算个税</el-button>
            </div>
          </el-col>
        </el-row>
@@ -136,7 +139,7 @@
                </el-select>
              </template>
            </el-table-column>
            <el-table-column prop="servicesscope" align="center" label="服务说明" v-if="form.applytype == '1'" width="180">
            <el-table-column prop="servicesscope" align="center" label="服务说明" v-if="businessType == '1'" width="180">
              <template slot-scope="scope">
                <el-select v-model="scope.row.servicesscope" placeholder="服务说明" clearable allow-create
                  @change="verifyFeeRemark(scope.row)">
@@ -161,53 +164,32 @@
                  " />
              </template>
            </el-table-column>
            <el-table-column v-if="businessType == 2 ||
              businessType == 3 ||
              businessType == 4 ||
              ismanager == true
              " prop="amount" align="center" :label="amountLabel" width="120">
            <el-table-column prop="amount" align="center" :label="amountlabel" width="120">
              <template slot-scope="scope">
                <!--
                  <el-select v-model="scope.row.amount" placeholder="税前金额" clearable filterable allow-create
                  @change="selectamount(scope.row)">
                  <el-option v-for="dict in scope.row.rowfeeblocks" :key="dict.expensedescribe" :label="dict.expense"
                    :value="dict.expense"></el-option>
                </el-select>
              -->
                <el-input v-model="scope.row.amount" placeholder="金额" @blur="val => {
                  calculateTax(scope.row, 'A');
                }
                  " />
                <el-input v-model="scope.row.amount" placeholder="金额" />
              </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')
              ">
            <el-table-column prop="taxamount" align="center" label="扣税金额" width="120"
              v-if="(ismanager == true) && (businessType == '1' || businessType == '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="税后金额" width="120" v-if="(this.ismanager == true) &
              (form.applytype == '1' || form.applytype == '2')
              ">
            <el-table-column prop="taxedamount" align="center" label="税后金额" width="120"
              v-if="(ismanager == true) && (businessType == '1' || businessType == '2')">
              <template slot-scope="scope">
                <el-input v-model="scope.row.taxedamount" placeholder="税后金额" @blur="val => {
                  calculateTax(scope.row, 'B');
                }
                  " />
                <el-input v-model="scope.row.taxedamount" placeholder="税后金额" />
              </template>
            </el-table-column>
            <el-table-column prop="beneficiaryname" align="center" :label="beneficiarylabel" width="200">
            <el-table-column prop="beneficiaryname" column-key="sdad" align="center" :label="beneficiarylabel"
              width="200">
              <template slot-scope="scope">
                <el-button type="primary" plain @click="showSelectionDialog(scope, 'account')">{{
                  scope.row.beneficiaryname
                  ? scope.row.beneficiaryname
                  : "点击选择"
                }}</el-button>
                  scope.row.beneficiaryname ? scope.row.beneficiaryname : "点击选择" }}</el-button>
              </template>
            </el-table-column>
            <el-table-column prop="unitno" align="center" label="专家所在单位" width="250"
              v-if="form.applytype == '1' && form.applytype == '2'">
              v-if="businessType == '1' || businessType == '2'">
              <template slot-scope="scope">
                <el-button type="primary" plain @click="showSelectionDialog(scope, 'workunit')">{{
                  scope.row.unitname ? scope.row.unitname : "点击选择"
@@ -242,16 +224,16 @@
            </el-table-column>
             -->
            <el-table-column prop="title" align="center" label="职称" width="120"
              v-if="form.applytype == '1' || form.applytype == '2'">
              v-if="businessType == '1' || businessType == '2'">
              <template slot-scope="scope">
                <el-input v-model="scope.row.title" placeholder="职称" />
              </template>
            </el-table-column>
            <el-table-column prop="idcardno" align="center" label="身份证号" width="200"
              v-if="form.applytype == '1' || form.applytype == '2'">
              v-if="businessType == '1' || businessType == '2'">
              <template slot-scope="scope">
                <el-form-item :error="scope.row.error" label-width="0">
                  <el-input :disabled="userprofile.nickName != '陈慕华' && businessType == 1
                <el-form-item label-width="0">
                  <el-input :disabled="userprofile.nickName != '陈慕华'
                    " v-model.number="scope.row.idcardno" @input="tableParValueChange1(scope.row)"
                    placeholder="身份证号" />
                </el-form-item>
@@ -259,13 +241,12 @@
            </el-table-column>
            <el-table-column prop="depositbank" align="center" label="开户银行" width="200">
              <template slot-scope="scope">
                <el-input :disabled="userprofile.nickName != '陈慕华' && businessType == 1
                  " v-model="scope.row.depositbank" placeholder="开户银行" />
                <el-input :disabled="userprofile.nickName != '陈慕华'" v-model="scope.row.depositbank" placeholder="开户银行" />
              </template>
            </el-table-column>
            <el-table-column prop="bankcardno" align="center" label="银行帐号" width="210">
              <template slot-scope="scope">
                <el-input :disabled="userprofile.nickName != '陈慕华' && businessType == 1
                <el-input :disabled="userprofile.nickName != '陈慕华'
                  " v-model="scope.row.bankcardno" placeholder="银行帐号" />
              </template>
            </el-table-column>
@@ -274,11 +255,7 @@
                <el-input type="textarea" :rows="2" v-model="scope.row.itemdescribe" placeholder="项目说明" />
              </template>
            </el-table-column>
            <el-table-column prop="remark" align="center" width="330" label="备注" v-if="businessType == 2 ||
              businessType == 3 ||
              businessType == 4 ||
              ismanager == true
              ">
            <el-table-column prop="remark" align="center" width="330" label="备注" v-show="ismanager == true">
              <template slot-scope="scope">
                <el-input type="textarea" :rows="2" v-model="scope.row.remark" placeholder="备注" />
              </template>
@@ -299,7 +276,7 @@
                </el-button>
                <el-button @click.native.prevent="
                  Filepopup(scope.$index, rbDetails, scope.row)
                  " type="text" size="small" v-if="businessType == 3 || businessType == 2 || businessType == 4
                  " type="text" size="small" v-if="businessType == 2 || businessType == 3 || businessType == 4
    ">票据</el-button>
              </template>
            </el-table-column>
@@ -361,7 +338,7 @@
        <el-row style="margin-top: 25px; margin-bottom: 5px"
          v-if="operationType == 'check' && userprofile.nickName == '陈慕华'">
          <el-col :span="20">
            <el-form-item label="申请材料状态" prop="infoid">
            <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>
@@ -405,11 +382,11 @@
      <el-form ref="accountselectform" :rules="dialogrules" :model="accountselectform" label-width="120px">
        <el-row v-if="selectionType == 'workunit'">
          <el-col :span="24">
            <el-form-item label="单位名称" prop="expertunitno" label-width="120px">
              <el-select v-model="accountselectform.expertunitno" placeholder="单位名称" clearable filterable allow-create
            <el-form-item label="单位名称" prop="expertunitname" label-width="120px">
              <el-select v-model="accountselectform.expertunitname" placeholder="单位名称" clearable filterable allow-create
                style="width: 100%">
                <el-option v-for="(spec, index) in unitList" :key="index" :label="spec.organizationname"
                  :value="spec.organizationid"></el-option>
                  :value="spec.organizationname"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
@@ -419,7 +396,7 @@
            <el-form-item label="账户来源" prop="accountfrom" class="left-align">
              <el-radio-group v-model="accountfrom" style="margin-bottom: 0">
                <el-radio label="1">从账户库</el-radio>
                <el-radio label="2">新增账户(新增后需要审核确认才能启用)</el-radio>
                <el-radio label="2">新增账户(新增专家账户后需要审核启用才能使用)</el-radio>
              </el-radio-group>
            </el-form-item>
          </el-col>
@@ -433,42 +410,48 @@
            </el-form-item>
          </el-col>
        </el-row>
        <el-row v-if="accountfrom == '2'">
          <el-col :span="16"><el-form-item label="新增类型" prop="usertype">
              <el-radio-group v-model="accountselectform.usertype" style="margin-bottom: 0">
                <el-radio label="expert">新增专家账号</el-radio>
                <el-radio label="org">新增单位账号</el-radio>
        <el-row v-if="selectionType == 'account' && accountfrom == '2'">
          <el-col :span="24">
            <el-form-item label="新增类型" prop="usertype" class="left-align">
              <el-radio-group v-model="accountselectform.usertype" style="margin-bottom: 0"
                @change="userTypeChange(accountselectform.usertype)">
                <el-radio label="expert">专家账号</el-radio>
                <el-radio label="org">单位账号</el-radio>
                <el-radio label="donor">捐献者亲属账号</el-radio>
              </el-radio-group>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row v-if="accountfrom == '2'">
        <el-row v-if="selectionType == 'account' && accountfrom == '2'">
          <el-col :span="24">
            <el-form-item label="账号名称" prop="username">
              <el-input v-model="accountselectform.username" placeholder="请输入单位名称或专家姓名" /> </el-form-item>
          </el-col>
        </el-row>
        <el-row v-if="accountfrom == '2' && accountselectform.usertype != 'org'">
          <el-col :span="12">
            <el-form-item label="身份证号" prop="idcardno">
              <el-input v-model="accountselectform.idcardno" placeholder="请输入身份证号" /> </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="职称" prop="title">
              <el-select v-model="accountselectform.title" placeholder="请选择人员职称">
                <el-option v-for="dict in dict.type.sys_professionaltitle" :key="dict.value" :label="dict.label"
                  :value="dict.label"></el-option> </el-select>
              <el-input v-model="accountselectform.username" placeholder="请输入单位名称,或专家姓名,或其他账号" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row v-if="accountfrom == '2' && accountselectform.usertype != 'org'">
        <el-row v-if="selectionType == 'account' && accountfrom == '2' && accountselectform.usertype != 'org'">
          <el-col :span="12">
            <el-form-item label="身份证号" prop="idcardno">
              <el-input v-model="accountselectform.idcardno" placeholder="请输入身份证号" />
            </el-form-item>
          </el-col>
          <el-col :span="12" v-if="accountselectform.usertype == 'expert'">
            <el-form-item label="职称" prop="title">
              <el-select v-model="accountselectform.title" placeholder="请选择人员职称">
                <el-option v-for="dict in dict.type.sys_professionaltitle" :key="dict.value" :label="dict.label"
                  :value="dict.label"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <el-row v-if="selectionType == 'account' && accountfrom == '2' && accountselectform.usertype == 'expert'">
          <el-col>
            <el-form-item label="所在单位" prop="unitno">
              <el-select v-model="accountselectform.unitno" placeholder="单位名称" clearable filterable allow-create
                style="width: 100%">
                <el-option v-for="(spec, index) in unitList" :key="index" :label="spec.organizationname"
                  :value="spec.organizationid"></el-option>
              </el-select> </el-form-item>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col>
@@ -477,25 +460,28 @@
            </el-form-item>
          </el-col>
        </el-row>
        <el-row v-if="accountfrom == '2'">
        <el-row v-if="selectionType == 'account' && accountfrom == '2'">
          <el-col><el-form-item label="开户银行" prop="depositbank">
              <el-input v-model="accountselectform.depositbank" placeholder="请输入开户银行名称" /> </el-form-item>
              <el-input v-model="accountselectform.depositbank" placeholder="请输入开户银行名称" />
            </el-form-item>
          </el-col>
          <el-col><el-form-item label="银行卡号" prop="bankcardno">
              <el-input v-model="accountselectform.bankcardno" placeholder="请输入银行卡号" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row v-if="accountfrom == '2'">
        <el-row v-if="selectionType == 'account' && accountfrom == '2'">
          <el-col>
            <el-form-item label="联系地址" prop="address">
              <el-input v-model="accountselectform.address" placeholder="请输入联系地址" /> </el-form-item>
              <el-input v-model="accountselectform.address" placeholder="请输入联系地址" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row v-if="accountfrom == '2'">
        <el-row v-if="selectionType == 'account' && accountfrom == '2'">
          <el-col>
            <el-form-item label="联系电话" prop="telephone">
              <el-input v-model="accountselectform.telephone" placeholder="请输入联系电话" /> </el-form-item>
              <el-input v-model="accountselectform.telephone" placeholder="请输入联系电话" />
            </el-form-item>
          </el-col>
        </el-row>
      </el-form>
@@ -512,7 +498,7 @@
          </el-table-column>
          <el-table-column prop="quantity" align="center" label="数量" v-if="businessType == 4">
          </el-table-column>
          <el-table-column prop="amount" align="center" :label="amountLabel">
          <el-table-column prop="amount" align="center" :label="amountlabel">
          </el-table-column>
          <el-table-column prop="taxedamount" align="center" label="税后金额" v-if="(this.ismanager == true) &
            (form.applytype == '1' || form.applytype == '2')
@@ -744,7 +730,8 @@
  delExternalperson,
  addExternalperson,
  updateExternalperson,
  exportExternalperson
  exportExternalperson,
  getOnlyCode,
} from "@/api/project/externalperson";
import { listItemexpense } from "@/api/project/itemexpense";
@@ -881,41 +868,31 @@
      selectionScope: "",
      //选择类型:专家(单位)账户、工作单位(account/workunit)
      selectionType: "",
      //受益人标签:专家费-专家(单位)名称,医学成本-办公-单位(个人)名称
      beneficiarylabel: "",
      //账户选择:1是账户库,2是新增
      accountfrom: "1",
      //受益人标签:专家费-专家(单位)名称,医学成本-办公-单位(个人)名称
      beneficiarylabel: "",
      //税前金额标题:专家费-税前金额;医学成本、办公费用-金额
      amountLabel: "税前金额",
      amountlabel: "税前金额",
      // 表单校验
      rules: {
        // createTime: [
        //   { required: true, message: "请输入填报日期", trigger: "blur" }
        // ],
        reason: [
          { required: true, message: "请输入出差事由", trigger: "blur" }
        ],
        deptmentname: [
          { required: true, message: "请输入所属业务组", trigger: "blur" }
        ]
        reason: [{ required: true, message: "请输入出差事由", trigger: "blur" }],
        deptmentname: [{ required: true, message: "请输入所属业务组", trigger: "blur" }]
      },
      dialogrules: {
        // expertidcardno: [{ validator: validatePass, trigger: "blur" }],
        depositbank: [
          { required: true, message: "请输入开户银行", trigger: "change" }
        ],
        bankcardno: [
          { required: true, message: "请输入银行卡号", trigger: "change" }
        ],
        unitno: [
          { required: true, message: "请选择单位名称", trigger: "change" }
        ]
        usertype: [{ required: true, message: "请输入账户类型", trigger: "blur" }],
        username: [{ required: true, message: "请输入账户名称", trigger: "blur" }],
        idcardno: [{ required: true, message: "请输入身份账号", trigger: "blur" }],
        //idcardno: [{ validator: validatePass, trigger: "blur" }],
        depositbank: [{ required: true, message: "请输入开户银行", trigger: "change" }],
        bankcardno: [{ required: true, message: "请输入银行卡号", trigger: "change" }],
      },
      accountselectform: {
        index: null,
        usertype: 'expert',
        usertype: "expert",
        accountname: null,
        accountno: null,
        expertunitname: null,
@@ -928,13 +905,15 @@
        unitno: null,
        personnelunitno: null,
        address: null,
        telephone: null
        telephone: null,
        username: null,
        userno: null
      },
      accountform: {
        searchValue: null,
        id: null,
        userstatus: 1,
        userstatus: 0,
        usertype: null,
        pym: null,
@@ -999,6 +978,11 @@
        userno: null,
        username: null,
        usertype: null
      },
      // 查询最新序号参数
      seqnoParams: {
        businessType: "externalperson",
        datequery: false,
      },
      //计算个税参数
@@ -1145,22 +1129,22 @@
      // if (!this.businessType && !this.operationType) {
      if (this.businessType == "1") {
        this.businessName = "专家劳务费申请单";
        this.amountLabel = "税前金额";
        this.amountlabel = "税前金额";
        this.beneficiarylabel = "专家或单位名称";
        this.getUnitList();
      } else if (this.businessType == "2") {
        this.businessName = "伦理专家劳务费申请单";
        this.amountLabel = "税前金额";
        this.amountlabel = "税前金额";
        this.beneficiarylabel = "专家或单位名称";
        this.getUnitList();
      } else if (this.businessType == "3") {
        this.businessName = "医学成本报销单";
        this.amountLabel = "金额";
        this.amountlabel = "金额";
        this.beneficiarylabel = "单位名称或个人";
        this.getUnitList();
      } else if (this.businessType == "4") {
        this.businessName = "办公费用报销单";
        this.amountLabel = "金额";
        this.amountlabel = "金额";
        this.beneficiarylabel = "单位名称或个人";
        this.getUnitList();
@@ -1219,11 +1203,8 @@
      this.reset();
      getFund(this.curId).then(response => {
        console.log(response.data, "初始");
        this.form = response.data;
        sessionStorage.removeItem("apiform");
        sessionStorage.setItem("apiform", JSON.stringify(this.form));
        // this.form.recordstate =-1;
@@ -1271,8 +1252,6 @@
      this.reset();
      getFund(this.curId).then(response => {
        console.log(response.data, "初始");
        this.form = response.data;
        sessionStorage.removeItem("apiform");
        sessionStorage.setItem("apiform", JSON.stringify(this.form));
@@ -1282,7 +1261,7 @@
        //业务明细
        getownFundDetail(this.curId).then(res => {
          this.rbDetails = res.data;
          console.log("this.feeBlocks", this.feeBlocks);
          for (let m = 0; m < this.rbDetails.length; m++) {
            this.rbDetails[m].itemlist = [];
            this.getRowFeeItems(m, this.rbDetails[m]);
@@ -1290,10 +1269,6 @@
            //获取费用项目的详细信息
            this.rbDetails[m].rowfeeblocks = this.feeBlocks.filter(
              r => r.itemid == this.rbDetails[m].itemid
            );
            console.log(
              "this.rbDetails[m].rowfeeblocks",
              this.rbDetails[m].rowfeeblocks
            );
          }
@@ -1319,10 +1294,8 @@
      this.reset();
      getFund(this.curId).then(response => {
        console.log(response.data, "初始");
        this.form = response.data;
        sessionStorage.removeItem("apiform");
        sessionStorage.setItem("apiform", JSON.stringify(this.form));
        //附件处理
@@ -1399,7 +1372,18 @@
          //判断是否存在上报记录
          this.form.recordstatus = 0;
          var currenttime = new Date();
          this.form.createTime = currenttime.getFullYear() + "-" + (currenttime.getMonth() + 1) + "-" + currenttime.getDate() + " " + currenttime.getHours() + ":" + currenttime.getMinutes() + ":" + currenttime.getSeconds();
          this.form.applyTime =
            currenttime.getFullYear() +
            "-" +
            (currenttime.getMonth() + 1) +
            "-" +
            currenttime.getDate() +
            " " +
            currenttime.getHours() +
            ":" +
            currenttime.getMinutes() +
            ":" +
            currenttime.getSeconds();
          if (!this.form.id) {
            this.form.id = this.$route.query.id;
@@ -1461,22 +1445,6 @@
              );
              return;
            }
            /*
            if (
              tempDetail.idcardno == null &&
              this.businessType != "3" &&
              this.businessType != "4"
            ) {
              console.log(1122);
              this.$modal.msgWarning(
                "服务项目表中,第" +
                  (k + 1).toString() +
                  "行的身份证未完善,请先填写身份证后再提交保存!"
              );
              return;
            }
            */
            if (this.businessType == "1") {
              if (tempDetail.servicesscope == null) {
@@ -1603,6 +1571,8 @@
            // });
          } else {
            this.form.recordstatus = -1;
            var currenttime = new Date();
            this.form.applyTime = currenttime.getFullYear() + "-" + (currenttime.getMonth() + 1) + "-" + currenttime.getDate() + " " + currenttime.getHours() + ":" + currenttime.getMinutes() + ":" + currenttime.getSeconds();
            // addorupdateFund(this.form).then((response) => {
            //   if (response.code === 200) {
@@ -1620,8 +1590,6 @@
          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("申请单修改成功!");
@@ -1656,42 +1624,32 @@
      });
    }, 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 (this.userprofile.nickName == "陈慕华") {
        //检查是否收到纸质材料
        if (this.form.checkstatus != 3 && this.checkObj.flowlevelone == 1) {
          this.$modal.msgError("请确认报销的纸质材料已经收到!");
      //检查是否收到纸质材料
      if (this.checkObj.flowlevelone == 2) {
        if (!this.checkObj.flowconclusion) {
          this.$modal.msgError("请输入审核不通过的说明信息,方便经办人修改申请单!");
          return;
        }
      }
      else if (this.checkObj.flowlevelone == 1) {
        if (this.userprofile.nickName == "陈慕华") {
          //检查是否收到纸质材料
          if (this.form.checkstatus != 3 && this.checkObj.flowlevelone == 1) {
            this.$modal.msgError("请先确认报销的纸质材料是否已经收到!");
            return;
          }
        //检查个税计算
        // if ( (this.form.applytype == "1" || this.form.applytype == "2") && this.form.fundtaxtime == null ) {
        //   this.$modal.msgError(
        //     "提交专家费用申请单、伦理专家申请费用申请单审核,需要先完成个税计算!"
        //   );
        //   return;
        // }
        if ((this.form.applytype == "1") && this.form.fundtaxtime == null) {
          this.$modal.msgError(
            "提交专家费用申请单审核,需要先完成个税计算!"
          );
          return;
          //检查个税计算
          if (this.form.applytype == "1" && this.form.fundtaxtime == null) {
            this.$modal.msgError("提交专家费用申请单审核,需要先完成个税计算!");
            return;
          }
        }
      }
      else {
        this.$modal.msgError("请先选择审批结果再提交!");
        return;
      }
      this.Savenow();
@@ -1708,7 +1666,6 @@
    getUserProfile() {
      getUserProfile().then(res => {
        this.userprofile = res.data;
        console.log(this.userprofile);
        this.standardlevel = res.data.standardlevel;
        if (
          this.userprofile.userName == "admin" ||
@@ -1727,8 +1684,7 @@
          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.form.applytype = this.businessType;
          if (this.businessType == "4") {
            this.getUserAccount();
@@ -1748,28 +1704,23 @@
    getAccountList() {
      listExternalperson().then(res => {
        this.accountlist = res.rows;
        /**
        for (let j = 0; j < this.accountlist.length; j++) {
        //获取启用的账户列表
        for (let j = 0; j < res.length; j++) {
          //单位账号列表
          if (this.accountlist[j].usertype == "org") {
            this.feeAccountList.push({
              id: this.accountlist[j].id,
              reportNo: this.accountlist[j].userno,
              reportName: this.accountlist[j].username,
              depositbank: this.accountlist[j].depositbank,
              branchbankname: this.accountlist[j].branchbankname,
              bankcardno: this.accountlist[j].bankcardno
            });
          }
          //专家账号列表
          else if (res.rows[j].usertype == "expert") {
            this.expertAccountList.push({
              expertNo: this.accountlist[j].id,
              exportName: this.accountlist[j].username+"("+this.accountlist[j].id+")"
          if (res.userstatus == "1") {
            this.accountlist.push({
              id: res.id,
              userno: res.userno,
              username: res.username,
              idcardno: res.idcardno,
              title: res.title,
              depositbank: res.depositbank,
              bankcardno: res.bankcardno,
              unitno: res.unitno,
              unitname: res.unitname
            });
          }
        }
        */
      });
    },
@@ -1777,7 +1728,7 @@
    getUserAccount() {
      this.accountlist.map(res => {
        if (res.username == this.form.username) {
          this.form.bankname = res.depositbank; //res.branchbankname、res.depositbank;
          this.form.bankname = res.depositbank;
          this.form.bankcardno = res.bankcardno;
          this.form.phone = res.telephone;
        }
@@ -1789,7 +1740,6 @@
      listOrganization(3).then(response => {
        for (let i = 0; i < response.rows.length; i++) {
          this.unitList.push({
            //organizationid: response.rows[i].organizationid,
            organizationid: response.rows[i].id,
            organizationname: response.rows[i].organizationname
          });
@@ -1848,7 +1798,6 @@
    //获取服务项目
    getRowFeeItems(rowindex, row) {
      let list = this.feeItemTypes.filter(r => r.itemType == row.applytype);
      console.log(list[0]);
      row.itemlist = list[0].itemDetails;
      this.$set(this.rbDetails, rowindex, row);
    },
@@ -1870,22 +1819,11 @@
            row.amount = 0.0;
            row.taxamount = 0.0;
            row.taxedamount = item.expense;
            //计算税前金额
            // this.calculateTax(row, "B");
          } else {
            row.amount = item.expense;
            row.taxamount = 0.0;
            row.taxedamount = 0.0;
            //计算税后金额
            // this.calculateTax(row, "A");
          }
          // this.form.serviceFunddetails = 0;
          // this.rbDetails.map(item => {
          //   this.form.serviceFunddetails += item.amount;
          // });
        }
      });
    },
@@ -1977,7 +1915,6 @@
        }
        targetValue += parseFloat(this.rbDetails[i].amount); // 假设每个对象中的特定值存储在'specificValue'属性下
      }
      console.log(targetValue, "合计");
      this.form.pretaxcost = targetValue;
    },
@@ -2229,7 +2166,6 @@
    // 手动计算
    Manualcalculationfn() {
      ManualCalculation(this.rbDetails).then(res => {
        console.log(res);
        if (res.code == 200) {
          sessionStorage.removeItem("apiform");
          sessionStorage.removeItem("apifunddetail");
@@ -2372,10 +2308,6 @@
        rowfeeblocks: [],
        annexfiles: null
      };
      // if (this.Reminderquantity >= 5) {
      //   this.Savereminder = true;
      //   return;
      // }
      if (rowIndex == undefined || rowIndex == null || rowIndex < 0) {
        this.rbDetails.push(rowData);
      } else {
@@ -2542,8 +2474,6 @@
    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;
@@ -2556,7 +2486,6 @@
          this.pdfimgsrcList.push(
            this.Networkheader + "/prod-api" + response.fileName
          );
          console.log(this.pdfimgsrcList);
          this.pdftitle = "共" + this.pdfimgsrcList.length + "项";
          this.pdfimg = this.Networkheader + "/prod-api" + response.fileName;
          this.rbDetails[this.atpresent].annexfilesList = this.fileListto;
@@ -2565,7 +2494,6 @@
        }
      } else {
        if (response.code == 200) {
          // this.form.filename = file.raw.name;
          this.previewpdf = true;
          this.$modal.msgSuccess(response.msg);
          this.invoicefileListto.push({
@@ -2575,15 +2503,12 @@
          this.invoicepdfimgsrcList.push(
            this.Networkheader + "/prod-api" + response.fileName
          );
          console.log(this.invoicepdfimgsrcList);
          this.pdftitle = "共" + this.invoicepdfimgsrcList.length + "项";
          this.pdfimg = this.Networkheader + "/prod-api" + response.fileName;
          this.rbDetails[
            this.atpresent
          ].invoicefilesList = this.invoicefileListto;
          console.log(this.rbDetails[this.atpresent]);
        } else {
          console.log(response.msg);
        }
      }
    },
@@ -2598,11 +2523,9 @@
      this.tableDatatop.push(row);
      this.atpresent = index;
      this.pdfVisible = true;
      console.log(this.rbDetails[index]);
      if (this.rbDetails[index].annexfilesList) {
        this.previewpdf = true;
        this.fileListto = this.rbDetails[index].annexfilesList;
        console.log(this.fileListto);
        this.pdfimg = this.Networkheader + "/prod-api" + this.fileListto[0].url;
        this.fileListto.forEach(item => {
          this.pdfimgsrcList.push(this.Networkheader + "/prod-api" + item.url);
@@ -2616,7 +2539,6 @@
      if (this.rbDetails[index].invoicefilesList) {
        this.previewpdf = true;
        this.invoicefileListto = this.rbDetails[index].invoicefilesList;
        console.log(this.invoicefileListto);
        this.invoicepdfimg =
          this.Networkheader + "/prod-api" + this.invoicefileListto[0].url;
        this.invoicefileListto.forEach(item => {
@@ -2624,8 +2546,6 @@
            this.Networkheader + "/prod-api" + item.url
          );
        });
        console.log(this.invoicepdfimgsrcList);
        console.log(this.invoicepdfimg);
      } else {
        this.invoicefileListto = [];
        this.invoicepdfimg = "";
@@ -2642,7 +2562,6 @@
    // 点击已上传文件
    downFile(item) {
      if (this.activeName == 1) {
        console.log(item, "点击文件拿item");
        this.pdftitle =
          "共" + this.pdfimgsrcList.length + "项,当前选中" + item.name;
        let name = item.name.split(".");
@@ -2663,7 +2582,6 @@
          this.previewpdf = false;
        }
      } else {
        console.log(item, "点击文件拿item");
        this.pdftitle =
          "共" + this.invoicepdfimgsrcList.length + "项,当前选中" + item.name;
        let name = item.name.split(".");
@@ -2675,8 +2593,6 @@
          this.previewpdf = true;
          if (item.url) {
            this.invoicepdfimg = this.Networkheader + "/prod-api" + item.url;
            console.log(this.invoicepdfimg, "pdfimg");
            console.log(this.invoicepdfimgsrcList, "imglist");
          } else {
            this.invoicepdfimg =
              this.Networkheader + "/prod-api" + item.response.url;
@@ -2732,9 +2648,9 @@
      }
    },
    Downloadfile(row) {
      console.log(row);
      window.location.href = this.Networkheader + "/prod-api" + row.url;
    },
    //专家/医疗机构/费用报销机构选择
    showSelectionDialog(scope, selectiontype) {
      this.selectionScope = scope;
@@ -2744,15 +2660,15 @@
      if (this.selectionType == "account") {
        //默认从账户库选择:1,账户库;2,新建账户
        this.accountfrom = "1";
        this.accountselectform.accountno = scope.row.beneficiaryno;
        this.accountselectform.accountname = scope.row.beneficiaryname;
        this.accountselectform.accountno = scope.row.beneficiaryno;
        this.accountselectform.expertunitname = "";
        this.accountselectform.expertunitno = "";
        this.accountselectform.unitno = "";
        this.accountselectform.unitname = "";
        this.accountselectform.telephone = "";
        this.accountselectform.username = '';
        this.accountselectform.userno = '';
        this.accountselectform.idcardno = "";
        this.accountselectform.telephone = "";
        this.accountselectform.title = "";
        this.accountselectform.unitno = "";
        this.accountselectform.unitname = "";
@@ -2765,7 +2681,6 @@
        this.accountselectform.expertunitname = scope.row.unitname;
        this.accountselectform.expertunitno = scope.row.unitno;
      }
      this.showselectiondialog = true;
    },
@@ -2776,119 +2691,124 @@
        if (this.selectionType == "account") {
          if (this.accountfrom == "1") {
            //赋值信息
            this.accountlist.map(res => {
              if (res.username == this.accountselectform.accountname) {
                this.rbDetails[tempIndex].beneficiaryno = res.userno;
                this.rbDetails[tempIndex].beneficiaryname = res.username;
                this.rbDetails[tempIndex].depositbank = res.depositbank;
                this.rbDetails[tempIndex].branchbankname = res.branchbankname;
                this.rbDetails[tempIndex].bankcardno = res.bankcardno;
                this.rbDetails[tempIndex].phone = res.telephone;
            if (this.rbDetails[tempIndex].beneficiaryname != this.accountselectform.accountname) {
              this.accountlist.map(res => {
                if (res.username == this.accountselectform.accountname) {
                  this.rbDetails[tempIndex].beneficiaryno = res.userno;
                  this.rbDetails[tempIndex].beneficiaryname = res.username;
                  this.rbDetails[tempIndex].depositbank = res.depositbank;
                  this.rbDetails[tempIndex].branchbankname = res.branchbankname;
                  this.rbDetails[tempIndex].bankcardno = res.bankcardno;
                  this.rbDetails[tempIndex].phone = res.telephone;
                if (res.usertype == 'org') {
                  this.rbDetails[tempIndex].idcardno = "";
                  this.rbDetails[tempIndex].title = "";
                  this.rbDetails[tempIndex].unitno = "";
                  this.rbDetails[tempIndex].unitname = "";
                } else {
                  this.rbDetails[tempIndex].idcardno = res.idcardno;
                  this.rbDetails[tempIndex].title = res.title;
                  this.rbDetails[tempIndex].unitno = parseInt(res.unitno);
                  this.rbDetails[tempIndex].unitname = res.unitname;
                }
              }
            });
          } else if (this.accountfrom == "2") {
            //保存新增账号
            this.accountform.id = null;
            this.accountform.userno = this.accountlist[this.accountlist.length - 1].id + 1;
            this.accountform.usertype = this.accountselectform.usertype;
            this.accountform.username = this.accountselectform.username;
            this.accountform.idcardno = this.accountselectform.idcardno;
            this.accountform.sex = null;
            this.accountform.title = this.accountselectform.title;
            this.accountform.telephone = this.accountselectform.telephone;
            this.accountform.address = this.accountselectform.address;
            this.accountform.wbm = null;
            this.accountform.pym = null;
            this.accountform.depositbank = this.accountselectform.depositbank;
            this.accountform.bankcardno = this.accountselectform.bankcardno;
            this.accountform.branchbankname = null;
            this.accountform.remark = null;
            this.accountform.del_flag = "0";
            this.accountform.personnelunitno = null;
            if (this.accountselectform.usertype != 'org') {
              this.accountform.unitno = this.accountselectform.unitno;
              this.unitList.map(res => {
                if (res.organizationid == this.accountform.unitno) {
                  this.accountform.unitname = res.organizationname;
                  if (res.usertype == "org") {
                    this.rbDetails[tempIndex].idcardno = "";
                    this.rbDetails[tempIndex].title = "";
                    this.rbDetails[tempIndex].unitno = "";
                    this.rbDetails[tempIndex].unitname = "";
                  } else {
                    this.rbDetails[tempIndex].idcardno = res.idcardno;
                    this.rbDetails[tempIndex].title = res.title;
                    this.rbDetails[tempIndex].unitno = parseInt(res.unitno);
                    this.rbDetails[tempIndex].unitname = res.unitname;
                  }
                }
              });
              // try {
              //   let unitIndex = this.unitList.findIndex(
              //     item => this.accountform.unitno == item.organizationid
              //   );
              //   if (unitIndex > -1) {
              //     this.accountform.unitname = this.unitList[unitIndex].organizationname;
              //   } else {
              //     this.accountform.unitname = this.accountform.unitno;
              //   }
              // } catch {
              //   this.accountform.unitname = this.accountform.unitno;
              // }
            }
            addExternalperson(this.accountform).then(response => {
              if (response.code == 200) {
                //this.$modal.msgSuccess("新的专家或单位账户信息已添加成功!");
                this.accountselectform.accountno = this.accountselectform.userno;
                this.accountselectform.accountname = this.accountselectform.username;
          } else if (this.accountfrom == "2") {
            //保存新增账号
            //获取用户编号
            getOnlyCode(this.seqnoParams).then((res) => {
              this.accountform.userno = res.data.currentvalue;
              this.accountform.id = null;
                //重新获取账户列表
                listExternalperson().then(res => {
                  this.accountlist = res.rows;
              this.accountform.usertype = this.accountselectform.usertype;
              this.accountform.username = this.accountselectform.username;
              this.accountform.idcardno = this.accountselectform.idcardno;
              this.accountform.sex = null;
              this.accountform.title = this.accountselectform.title;
              this.accountform.telephone = this.accountselectform.telephone;
              this.accountform.address = this.accountselectform.address;
              this.accountform.wbm = null;
              this.accountform.pym = null;
                  //赋值信息
                  this.accountlist.map(res => {
                    if (res.username == this.accountselectform.accountname) {
                      this.rbDetails[tempIndex].beneficiaryno = res.userno;
                      this.rbDetails[tempIndex].beneficiaryname = res.username;
                      this.rbDetails[tempIndex].depositbank = res.depositbank;
                      this.rbDetails[tempIndex].branchbankname = res.branchbankname;
                      this.rbDetails[tempIndex].bankcardno = res.bankcardno;
                      this.rbDetails[tempIndex].phone = res.telephone;
              this.accountform.depositbank = this.accountselectform.depositbank;
              this.accountform.bankcardno = this.accountselectform.bankcardno;
              this.accountform.branchbankname = null;
              this.accountform.remark = null;
              this.accountform.del_flag = "0";
              this.accountform.personnelunitno = null;
                      if (res.usertype == 'org') {
                        this.rbDetails[tempIndex].idcardno = "";
                        this.rbDetails[tempIndex].title = "";
                        this.rbDetails[tempIndex].unitno = "";
                        this.rbDetails[tempIndex].unitname = "";
                      } else {
                        this.rbDetails[tempIndex].idcardno = res.idcardno;
                        this.rbDetails[tempIndex].title = res.title;
                        this.rbDetails[tempIndex].unitno = parseInt(res.unitno);
                        this.rbDetails[tempIndex].unitname = res.unitname;
                      }
                    }
                  });
              if (this.accountselectform.usertype == "expert") {
                this.accountform.unitno = this.accountselectform.unitno;
                this.unitList.map(res => {
                  if (res.organizationid == this.accountform.unitno) {
                    this.accountform.unitname = res.organizationname;
                  }
                });
              }
              addExternalperson(this.accountform).then(response => {
                if (response.code == 200) {
                  if (this.accountselectform.usertype == "expert") {
                    this.$modal.msgSuccess("新账户信息已添加成功,需要在账号状态启用后才能被使用!");
                    return;
                  } else {
                    this.$modal.msgSuccess("新账户信息已添加成功!");
                  }
                  this.accountselectform.accountno = this.accountselectform.userno;
                  this.accountselectform.accountname = this.accountselectform.username;
                  //重新获取账户列表
                  listExternalperson().then(res => {
                    this.accountlist = res.rows;
                    //赋值信息
                    this.accountlist.map(res => {
                      if (res.username == this.accountselectform.accountname) {
                        this.rbDetails[tempIndex].beneficiaryno = res.userno;
                        this.rbDetails[tempIndex].beneficiaryname = res.username;
                        this.rbDetails[tempIndex].depositbank = res.depositbank;
                        this.rbDetails[tempIndex].branchbankname = res.branchbankname;
                        this.rbDetails[tempIndex].bankcardno = res.bankcardno;
                        this.rbDetails[tempIndex].phone = res.telephone;
                        if (res.usertype == "org") {
                          this.rbDetails[tempIndex].idcardno = "";
                          this.rbDetails[tempIndex].title = "";
                          this.rbDetails[tempIndex].unitno = "";
                          this.rbDetails[tempIndex].unitname = "";
                        } else {
                          this.rbDetails[tempIndex].idcardno = res.idcardno;
                          this.rbDetails[tempIndex].title = res.title;
                          this.rbDetails[tempIndex].unitno = parseInt(res.unitno);
                          this.rbDetails[tempIndex].unitname = res.unitname;
                        }
                      }
                    });
                  });
                }
              });
            });
          }
        } else if (this.selectionType == "workunit") {
          this.rbDetails[tempIndex].unitno = this.accountselectform.expertunitno;
          this.unitList.map(res => {
            if (res.organizationid == this.accountform.unitno) {
              this.rbDetails[tempIndex].unitno.unitname = res.organizationname;
            }
          });
          if (this.rbDetails[tempIndex].unitname != this.accountselectform.expertunitname) {
            this.rbDetails[tempIndex].unitname = this.accountselectform.expertunitname;
            this.unitList.map(res => {
              if (res.organizationname == this.accountselectform.expertunitname) {
                this.rbDetails[tempIndex].unitno = res.organizationid;
              }
            });
          }
        }
        //关闭窗口
        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) {
@@ -2899,12 +2819,23 @@
        }
        return;
      }
      console.log(11);
      if (regex.test(row.idcardno)) {
        row.error = "";
      } else {
        row.error = "身份证号码格式错误";
      }
    },
    //账户类型选择变化
    userTypeChange(type) {
      if (type == "org") {
        this.accountselectform.idcardno = "";
        this.accountselectform.unitno = "";
        this.accountselectform.unitname = "";
        this.accountselectform.personnelunitno = "";
      };
      // this.$modal.msgWarning(type);
    }
  },
@@ -2914,13 +2845,13 @@
    this.Getnetworkheader();
    this.getroute();
    this.getAccountList();
    this.getUserProfile();
  },
  //生命周期 - 挂载完成(可以访问DOM元素)
  mounted() {
    window.addEventListener("beforeunload", e => this.beforeunloadHandler(e));
    this.getUserList();
    this.getUserProfile();
    let apiaccountselectform = this.accountselectform;
    let apiform = this.form;
  },