liusheng
2023-05-08 e824586698c810e45ecf334b29a275e558bc0d5f
src/views/project/travelexpenseslist/index.vue
@@ -45,8 +45,6 @@
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
    <el-row :gutter="10" class="mb8">
@@ -93,15 +91,8 @@
      </el-table-column>
      <el-table-column label="银行卡号" width="180" align="center" prop="bankcardno">
      </el-table-column>
    <!-- <el-table-column label="报销合计" align="center" prop="financechecher">
          </el-table-column> -->
    <!-- <el-table-column
        label="财务审核"
        width="120"
        align="center"
        prop="financechecher"
      >
          </el-table-column> -->
      <!-- <el-table-column label="报销合计" align="center" prop="financechecher"/>-->
      <!-- <el-table-column label="财务审核" width="120" align="center" prop="financechecher" /> -->
      <el-table-column label="捐献者" width="120" align="center" prop="donorname">
      </el-table-column>
      <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width" width="270">
@@ -128,29 +119,32 @@
      @pagination="getList" />
    <!-- 添加或修改费用申请明细对话框 -->
    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="1600px" append-to-body
    <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="1400px" append-to-body
      @close="reset">
      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
        <el-row>
          <el-col :span="7">
          <!-- <el-form-item label="备注" prop="reason">
              <el-input v-model="form.reason" placeholder="专职人员 协调员" />
                </el-form-item> --><el-form-item label="报销人" prop="username">
        <el-row><el-col :span="5">
            <el-form-item label="申请日期" prop="createTime">
              <el-date-picker style="width: 100%" v-model="form.createTime" type="date" value-format="yyyy-MM-dd HH:mm:ss"
                placeholder="申请日期">
              </el-date-picker>
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="经办人" prop="username">
              <el-select v-model="form.username" clearable filterable allow-create ref="getReportname"
                default-first-option placeholder="请选择">
                <el-option v-for="item in reporters" :key="item.reportNo" :label="item.reportName"
                <el-option v-for="item in personList" :key="item.reportNo" :label="item.reportName"
                  :value="item.reportName">
                </el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="捐献编号" prop="donorno">
              <el-input disabled v-model="form.donorno" placeholder="捐献编号" />
          </el-col><el-col :span="5">
            <el-form-item label="区域组长" prop="managername">
              <el-input v-model="form.managername" placeholder="区域组长" />
            </el-form-item>
          </el-col>
          <el-col :span="7">
          <el-col :span="5">
            <el-form-item label="捐献者" prop="infoid">
              <el-select v-model="form.infoid" @change="selectbaseinfo" filterable placeholder="请选择捐献者">
                <el-option v-for="item in baselist" :key="item.index" :label="item.name" :value="item.infoid">
@@ -159,17 +153,42 @@
            </el-form-item>
          </el-col>
        </el-row>
        <el-row style="margin-top: 10px">
          <el-col :span="5">
            <el-form-item label="报销金额" prop="amountrequested">
              <el-input :disabled="true" v-model="form.amountrequested" placeholder="报销合计金额" />
            </el-form-item>
          </el-col>
          <el-col :span="10">
            <el-form-item label="大写金额" prop="bigstrmoney">
              <el-input :disabled="true" v-model="form.bigstrmoney" placeholder="报销大写金额" />
            </el-form-item>
          </el-col><el-col :span="5">
            <el-form-item label="审核状态" prop="flowlevel">
              <el-select v-model="form.recordstatus" placeholder="请选择审核状态" clearable :disabled="true" size="small">
                <el-option v-for="dict in dict.type.sys_recordstatus" :key="dict.value" :label="dict.label"
                  :value="dict.value" />
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
        <!--
        <el-row>
          <el-col :span="7">
            <el-form-item label="出差人分类" prop="costtype">
          <el-col :span="15">
            <el-form-item label="出差事由" prop="reason">
              <el-input v-model="form.reason" placeholder="出差事由" />
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="报销分类" prop="costtype">
              <el-select v-model="form.costtype" value-key="value" placeholder="请选择出差人分类" @change="getTravelers">
                <el-option v-for="dict in dict.type.sys_travelexpensebelong" :key="dict.value" :label="dict.label"
                  :value="dict.value"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="出差人" prop="travelers">
          <el-col :span="5">
            <el-form-item label="报销人" prop="travelers">
              <el-select v-model="form.travelers" clearable filterable allow-create ref="getReportname"
                default-first-option placeholder="请选择" @change="selectedTraveler">
                <el-option v-for="item in travelers" :key="item.reportNo" :label="item.reportName"
@@ -178,34 +197,66 @@
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="7">
            <el-form-item label="区域组长" prop="managername">
              <el-input v-model="form.managername" placeholder="区域组长" />
            </el-form-item> </el-col></el-row><el-row>
          <el-col :span="5">
            <el-form-item label="收款银行" prop="depositbank">
              <el-input v-model="form.depositbank" placeholder="开户银行" />
            </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>
          </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-row>
        <el-row>
          <el-col :span="20"><el-divider></el-divider></el-col>
        </el-row>
        <el-row>
          <el-col :span="5">
            <el-form-item label="家属费用" prop="donoramount">
              <el-input :disabled="true" v-model="form.donoramount" placeholder="家属费用" @blur="
                (val) => {
                  sumTotalFee();
                }
              " onchange="if(/[^0-9.]/.test(this.value)){alert('请正确输入整数数字或小数!');this.value='';}" />
            </el-form-item>
          </el-col>
          <el-col :span="15">
            <el-form-item label="出差事由" prop="reason">
              <el-input v-model="form.reason" placeholder="出差事由" />
            </el-form-item>
          </el-col>
          <el-col :span="7">
            <el-form-item label="申请日期" prop="createTime">
              <el-date-picker style="width: 100%" v-model="form.createTime" type="date" value-format="yyyy-MM-dd HH:mm:ss"
                placeholder="申请日期">
              </el-date-picker>
            <el-form-item label="费用说明" prop="donorremark">
              <el-input :disabled="true" v-model="form.donorremark" placeholder="家属费用说明" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="22">
            <el-form-item label="备注" prop="remark">
              <el-input v-model="form.remark" placeholder="备注" />
          <el-col :span="5">
            <el-form-item label="家属人数" prop="donorrelatives">
              <el-input v-model="form.donorrelatives" placeholder="家属人数" />
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="收款人" prop="donorpayee">
              <el-input v-model="form.donorpayee" placeholder="亲属收款人" />
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="收款银行" prop="donorbank">
              <el-input v-model="form.donorbank" placeholder="家属银行" />
            </el-form-item>
          </el-col>
          <el-col :span="5">
            <el-form-item label="银行卡号" prop="donorbankcard">
              <el-input v-model="form.donorbankcard" placeholder="银行卡号" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-row>
          <el-col :span="8"> </el-col>
        </el-row>
      <!-- <el-row type="flex" :gutter="10" align="right" class="mb8">
                -->
        <!--
        <el-row type="flex" :gutter="10" align="right" class="mb8">
          <el-col :span="6">
            <el-button
              type="primary"
@@ -216,58 +267,119 @@
              >新增一行</el-button
            >
          </el-col>
            </el-row> -->
          </el-row>
                      -->
        <el-row>
          <el-table :data="applicationDetailArr" border highlight-current-row>
            <el-table-column prop="orderno" slot="" label="序号" align="center" fixed width="80">
            <el-table-column prop="orderno" slot="" label="序号" align="center" fixed width="65">
              <template slot-scope="scope">
                <el-input v-model="scope.row.orderno" placeholder="序号" />
              </template>
            </el-table-column>
            <el-table-column prop="starttime" slot="" label="出发日期" fixed align="center" width="150">
            <!--主键、外不展示-->
            <el-table-column prop="id" slot="" label="主键" align="center" fixed width="95" v-if="false">
              <template slot-scope="scope">
                <el-date-picker clearable size="small" style="width: 100%" v-model="scope.row.starttime" type="date"
                  value-format="yyyy-MM-dd HH:mm:ss" placeholder="出发日期" @change="getStandard(scope.row)">
                </el-date-picker>
                <el-input v-model="scope.row.id" placeholder="id" />
              </template>
            </el-table-column>
            <el-table-column prop="rbid" slot="" label="外键" align="center" fixed width="95" v-if="false">
              <template slot-scope="scope">
                <el-input v-model="scope.row.rbid" placeholder="rbid" />
              </template>
            </el-table-column>
            <el-table-column prop="departure" slot="" label="出发地点" align="center" width="200" fixed>
            <el-table-column prop="persontype" slot="" label="人员类别" align="center" fixed width="120">
              <template slot-scope="scope">
                <el-input v-model="scope.row.departure" placeholder="出发地点" />
                <el-select v-model="scope.row.persontype" value-key="value" placeholder="人员类别"
                  @change="getTravelers(scope.row)">
                  <el-option v-for="dict in dict.type.sys_travelexpensebelong" :key="dict.value" :label="dict.label"
                    :value="dict.value"></el-option>
                </el-select>
              </template>
            </el-table-column>
            <el-table-column prop="endtime" slot="" label="到达日期" align="center" width="150" fixed>
            <el-table-column prop="personname2" slot="" label="费用人员" align="center" fixed width="120">
              <!-- <template slot-scope="scope">
                <el-input v-model="scope.row.personname" placeholder="出差人" />
              </template> -->
              <template slot-scope="scope">
                <el-date-picker clearable size="small" style="width: 100%" v-model="scope.row.endtime" type="date"
                  value-format="yyyy-MM-dd HH:mm:ss" placeholder="到达日期">
                <el-select v-model="scope.row.personname" clearable filterable allow-create default-first-option
                  placeholder="请选择" @focus="filterPersonList(scope.row)">
                  <el-option v-for="item in scope.row.personname2" :key="item.reportNo" :label="item.reportName"
                    :value="item.reportName">
                  </el-option>
                </el-select>
              </template>
            </el-table-column>
            <el-table-column prop="starttime" slot="" label="开始日期" fixed align="center" width="150">
              <template slot-scope="scope">
                <el-date-picker :picker-options="{
                    disabledDate: time => {
                      if (scope.row.endtime) { return time.getTime() > new Date(scope.row.endtime.replace(/-/g, '/')) }
                    }
                  }" clearable size="small" style="width: 100%" v-model="scope.row.starttime" type="date"
                  value-format="yyyy-MM-dd HH:mm:ss" placeholder="开始日期" @blur="getallowance(scope.row)">
                </el-date-picker>
              </template>
            </el-table-column>
            <el-table-column label="到达地点" prop="destination" align="center" width="200">
            <el-table-column prop="endtime" slot="" label="结束日期" align="center" fixed width="150">
              <template slot-scope="scope">
                <el-input v-model="scope.row.destination" placeholder="到达地点" />
                <el-date-picker :picker-options="{
                    disabledDate: time => {
                      if (scope.row.starttime) { return time.getTime() < new Date(scope.row.starttime.replace(/-/g, '/')) }
                    }
                  }" clearable size="small" style="width: 100%" v-model="scope.row.endtime" type="date"
                  value-format="yyyy-MM-dd HH:mm:ss" placeholder="结束日期" @blur="getallowance(scope.row)">
                </el-date-picker>
              </template>
            </el-table-column>
            <el-table-column prop="days" label="天数" width="70" align="center">
            <el-table-column prop="departure" slot="" label="出发地" align="center" fixed width="100">
              <template slot-scope="scope">
                <el-input v-model="scope.row.departure" placeholder="出发地" />
              </template>
            </el-table-column>
            <el-table-column label="到达地" prop="destination2" align="center" fixed width="100">
              <template slot-scope="scope">
                <!--  <el-input v-model="scope.row.destination" placeholder="到达地" @blur="getallowance(scope.row)" /> -->
                <el-select filterable allow-create v-model="scope.row.destination" value-key="value" placeholder="到达地"
                  @change="getallowance2(scope.row, scope.row.destination)">
                  <el-option v-for="dict in dict.type.sys_area_name" :key="dict.value" :label="dict.label"
                    :value="dict.value"></el-option>
                </el-select>
              </template>
            </el-table-column>
            <el-table-column prop="days" label="天数" width="65" align="center">
              <template slot-scope="scope">
                <el-input v-model="scope.row.days" @blur="getStandard(scope.row)" placeholder="天数" />
              </template>
            </el-table-column>
            <el-table-column prop="traffictype" label="交通工具" align="center" width="120">
            <el-table-column prop="traffictype" label="出发交通工具" align="center" width="100">
              <template slot-scope="scope">
                <el-input v-model="scope.row.traffictype" placeholder="交通工具" />
                <el-select v-model="scope.row.traffictype" placeholder="出发交通工具">
                  <el-option v-for="dict in dict.type.sys_traffictype" :key="dict.value" :label="dict.label"
                    :value="dict.label"></el-option>
                </el-select>
              </template>
            </el-table-column>
            <el-table-column prop="traffictype2" label="返回交通工具" align="center" width="100">
              <template slot-scope="scope">
                <el-select v-model="scope.row.traffictype2" placeholder="返回交通工具">
                  <el-option v-for="dict in dict.type.sys_traffictype" :key="dict.value" :label="dict.label"
                    :value="dict.label"></el-option>
                </el-select>
              </template>
            </el-table-column>
            <el-table-column prop="trafficexpense" label="交通费" align="center" width="80">
              <template slot-scope="scope">
                <el-input v-model="scope.row.trafficexpense" placeholder="交通费" @blur="
                  (val) => {
                <el-input v-model="scope.row.trafficexpense" placeholder="交通费" @blur="(val) => {
                    sumTotalFee();
                  }
                " />
                  " />
              </template>
            </el-table-column>
            <!--
            <el-table-column prop="cityfee" label="市内交通费" align="center" width="100">
              <template slot-scope="scope">
                <el-input v-model="scope.row.cityfee" placeholder="市内交通费" @blur="
@@ -278,49 +390,47 @@
                </el-input>
              </template>
            </el-table-column>
                                                                                                                                      -->
            <el-table-column prop="hotelexpense" label="住宿费" align="center" width="80">
              <template slot-scope="scope">
                <el-input v-model="scope.row.hotelexpense" placeholder="住宿费" @blur="
                  (val) => {
                <el-input v-model="scope.row.hotelexpense" placeholder="住宿费" @blur="(val) => {
                    sumTotalFee();
                  }
                " />
                  " />
              </template>
            </el-table-column>
            <el-table-column prop="otherexpense" label="杂费" align="center" width="80">
            <el-table-column prop="foodexpenses" label="餐费报销" align="center" width="80">
              <template slot-scope="scope">
                <el-input v-model="scope.row.otherexpense" placeholder="杂费" @blur="
                  (val) => {
                <el-input v-model="scope.row.foodexpenses" placeholder="伙食费报销" @blur="(val) => {
                    sumTotalFee();
                  }
                " />
                  " />
              </template>
            </el-table-column>
            <el-table-column prop="foodexpenses" label="伙食费报销" align="center" width="100">
            <el-table-column prop="foodallowance" label="伙食补助" align="center" width="80">
              <template slot-scope="scope">
                <el-input v-model="scope.row.foodexpenses" placeholder="伙食费报销" @blur="
                  (val) => {
                <el-input v-model="scope.row.foodallowance" placeholder="伙食费补助" @blur="(val) => {
                    sumTotalFee();
                  }
                " />
                  " />
              </template>
            </el-table-column>
            <el-table-column prop="foodallowance" label="伙食费补助" align="center" width="100">
            <el-table-column prop="otherexpense" label="公杂费补助" align="center" width="80">
              <template slot-scope="scope">
                <el-input v-model="scope.row.foodallowance" placeholder="伙食费补助" @blur="
                  (val) => {
                <el-input v-model="scope.row.otherexpense" placeholder="杂费" @blur="(val) => {
                    sumTotalFee();
                  }
                " />
                  " />
              </template>
            </el-table-column>
            <el-table-column prop="otherfeeamount" label="其他费用" align="center" width="90">
              <template slot-scope="scope">
                <el-input v-model="scope.row.otherfeeamount" placeholder="其他费用" @blur="
                  (val) => {
                <el-input v-model="scope.row.otherfeeamount" placeholder="其他费用" @blur="(val) => {
                    sumTotalFee();
                  }
                " />
                  " />
              </template>
            </el-table-column>
            <el-table-column prop="departure" slot="" label="其他费用说明" align="center" width="120">
@@ -328,6 +438,7 @@
                <el-input v-model="scope.row.otherfeedesc" placeholder="其他费用说明" />
              </template>
            </el-table-column>
            <el-table-column prop="total" label="合计" align="center" width="110">
              <template slot-scope="scope">
                <el-input v-model="scope.row.total" placeholder="合计" />
@@ -336,97 +447,131 @@
            <el-table-column fixed="right" label="操作" align="center" width="120" v-if="dialogType == 'edit'">
              <template slot-scope="scope">
                <el-button type="text" size="mini" @click="addRow(scope.$index)">新增</el-button>
                <el-button @click.native.prevent="
                  deleteRow(scope.$index, applicationDetailArr, scope.row)
                " type="text" size="small">
                <el-button @click.native.prevent="deleteRow(scope.$index, applicationDetailArr, scope.row)
                  " type="text" size="small">
                  删除
                </el-button>
              </template>
            </el-table-column>
          </el-table>
        </el-row>
        <el-row style="margin-top: 10px">
          <el-col :span="7">
            <el-form-item label="报销合计" prop="amountrequested">
              <el-input v-model="form.amountrequested" placeholder="报销合计" />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="大写" prop="bigstrmoney">
              <el-input v-model="form.bigstrmoney" placeholder="领款金额" />
            </el-form-item>
          </el-col>
          <el-col :span="7">
            <el-form-item label="领款金额" prop="amountrequested">
              <el-input v-model="form.amountrequested" placeholder="领款金额" />
            </el-form-item>
          </el-col>
        <el-row style="margin-top: 30px">
          <el-table :data="applicationDetailArr2" border highlight-current-row>
            <el-table-column prop="col_orderno" slot="" label="序号" align="center" fixed width="65">
              <template slot-scope="scope">
                <el-input v-model="scope.row.col_orderno" placeholder="序号" />
              </template>
            </el-table-column>
            <!--主键、外不展示-->
            <el-table-column prop="id" slot="" label="主键" align="center" fixed width="95" v-if="false">
              <template slot-scope="scope">
                <el-input v-model="scope.row.id" placeholder="id" />
              </template>
            </el-table-column>
            <el-table-column prop="rbid" slot="" label="外键" align="center" fixed width="95" v-if="false">
              <template slot-scope="scope">
                <el-input v-model="scope.row.rbid" placeholder="rbid" />
              </template>
            </el-table-column>
            <el-table-column prop="col_personType" slot="" label="人员类别" align="center" fixed width="120">
              <template slot-scope="scope">
                <el-select v-model="scope.row.col_personType" value-key="value" placeholder="人员类别"
                  @change="getColTravelers(scope.row, scope.row.col_personType)">
                  <el-option v-for="dict in dict.type.sys_travelexpensebelong" :key="dict.value" :label="dict.label"
                    :value="dict.value"></el-option>
                </el-select>
              </template>
            </el-table-column>
            <el-table-column prop="col_personname2" slot="" label="收款人" align="center" fixed width="130">
              <template slot-scope="scope">
                <el-select v-model="scope.row.col_personname" clearable filterable allow-create ref="getReportname"
                  default-first-option placeholder="请选择" @change="selectedColTraveler(scope.row)">
                  <el-option v-for="item in scope.row.col_personname2" :key="item.reportNo" :label="item.reportName"
                    :value="item.reportName">
                  </el-option>
                </el-select>
              </template>
            </el-table-column>
            <el-table-column prop="col_bank" slot="" label="收款银行" align="center" fixed width="260">
              <template slot-scope="scope">
                <el-input v-model="scope.row.col_bank" placeholder="收款银行" />
              </template>
            </el-table-column>
            <el-table-column prop="col_accounts" slot="" label="收款帐号" align="center" fixed width="230">
              <template slot-scope="scope">
                <el-input v-model="scope.row.col_accounts" placeholder="收款帐号" />
              </template>
            </el-table-column>
            <el-table-column prop="col_date" slot="" label="付款日期" align="center" fixed width="150">
              <template slot-scope="scope">
                <el-input v-model="scope.row.col_date" placeholder="付款日期" />
              </template>
            </el-table-column>
            <el-table-column prop="col_illustrate" slot="" label="说明" align="center" fixed width="310">
              <template slot-scope="scope">
                <el-input v-model="scope.row.col_illustrate" placeholder="说明" />
              </template>
            </el-table-column>
            <el-table-column label="操作" align="center" width="100" v-if="dialogType == 'edit'">
              <template slot-scope="scope">
                <el-button type="text" size="mini" @click="col_addRow(scope.$index)">新增</el-button>
                <el-button @click.native.prevent="deleteRow2(scope.$index, applicationDetailArr2, scope.row)
                  " type="text" size="small">
                  删除
                </el-button>
              </template>
            </el-table-column>
          </el-table>
        </el-row>
        <!--
        <el-row>
          <el-col :span="7">
            <el-form-item label="开户银行" prop="depositbank">
              <el-input v-model="form.depositbank" placeholder="开户银行" />
            </el-form-item>
          </el-col>
          <el-col :span="8">
            <el-form-item label="银行账号" prop="bankcardno">
              <el-input v-model="form.bankcardno" placeholder="开户银行" />
            <el-form-item label="中心负责人" prop="opochecker">
              <el-input v-model="form.opochecker" placeholder="中心负责人" />
            </el-form-item>
          </el-col>
          <el-col :span="7">
            <el-form-item label="联系电话" prop="phone">
              <el-input v-model="form.phone" placeholder="联系电话" />
            <el-form-item label="财务副院长" prop="finvicepresident">
              <el-input v-model="form.finvicepresident" placeholder="财务副院长" />
            </el-form-item>
          </el-col>
          <el-col :span="7">
            <el-form-item label="业务副院长" prop="busvicepresident">
              <el-input v-model="form.busvicepresident" placeholder="业务副院长" />
            </el-form-item>
          </el-col>
        </el-row>
        <el-col :span="7">
          <el-form-item label="中心负责人" prop="opochecker">
            <el-input v-model="form.opochecker" placeholder="中心负责人" />
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="财务副院长" prop="finvicepresident">
            <el-input v-model="form.finvicepresident" placeholder="财务副院长" />
          </el-form-item>
        </el-col>
        <el-col :span="7">
          <el-form-item label="业务副院长" prop="busvicepresident">
            <el-input v-model="form.busvicepresident" placeholder="业务副院长" />
          </el-form-item>
        </el-col>
        <el-row>
          <el-col :span="7">
            <el-form-item label="办公室主任" prop="officedirector">
              <el-input v-model="form.officedirector" placeholder="办公室主任" />
            </el-form-item>
          </el-col>
          <el-col :span="8">
          <el-col :span="7">
            <el-form-item label="财务部主任" prop="financedirector">
              <el-input v-model="form.financedirector" placeholder="财务部主任" />
            </el-form-item>
          </el-col>
          <el-col :span="7">
            <el-form-item label="审核状态" prop="flowlevel">
              <el-select v-model="form.recordstatus" placeholder="请选择审核状态" clearable :disabled="true" size="small">
                <el-option v-for="dict in dict.type.sys_recordstatus" :key="dict.value" :label="dict.label"
                  :value="dict.value" />
              </el-select>
            </el-form-item>
          </el-col>
        </el-row>
                                                                                                -->
        <el-row>
          <el-col :span="24">
          <!-- <el-form-item label="文件地址" prop="fileurl">
          <el-col :span="14">
            <!--
          <el-form-item label="文件地址" prop="fileurl">
              <el-input v-model="form.fileurl" placeholder="请输入文件地址" />
                </el-form-item> -->
          </el-form-item>
                                                                                              -->
            <el-form-item label="文件上传" align="left" prop="annexfiles">
              <!-- <file-upload ref="fileUpload" :fileType=fileType :limit="1" :on-success="handleUploadSuccess"></file-upload> -->
              <el-upload size="mini" class="upload-demo" :action="uploadFileUrl" :file-list="fileList" multiple :limit="5"
                :headers="headers" :on-success="
                  (response, file, fileList) =>
                :headers="headers" :on-success="(response, file, fileList) =>
                    uploadSccess(response, file, fileList)
                " :on-preview="downFile" :disabled='dialogType == "detail"' :on-error="handleUploadError"
                  " :on-preview="downFile" :disabled='dialogType == "detail"' :on-error="handleUploadError"
                :on-exceed="handleExceed" :on-remove="remove" accept="image/*,.pdf">
                <el-button :disabled='dialogType == "detail"' size="small" type="primary">上传</el-button>
              </el-upload>
@@ -455,6 +600,7 @@
<script>
import { listDonatebaseinfo } from "@/api/project/donatebaseinfo";
import { addOrUpdateRBpayee, listReimbursementpayee } from "@/api/project/reimbursementpayee";
import {
  listReimbursement,
  getReimbursement,
@@ -463,8 +609,6 @@
  updateReimbursement,
  exportReimbursement,
  getdownload,
  //获取地市对应基准金额
  getstandardRMB,
  fundSubmit,
} from "@/api/project/reimbursement";
import {
@@ -473,7 +617,7 @@
  listReimbursementdetailid,
  getReimbursementdetaillist,
  delReimbursementdetail,
  delReimbursementdetailrbid,
  updateReimbursementdetaillist,
  getTravelStandard,
} from "@/api/project/reimbursementdetail";
import { listFundflow } from "@/api/project/fundflow";
@@ -481,12 +625,8 @@
import { regionDataPlus, CodeToText } from "element-china-area-data";
import Li_area_select from "@/components/Address";
import { getUserProfile } from "@/api/system/user";
import {
  listOrganization,
  getOrganization,
  listReportname,
  listUser,
} from "@/api/project/organization";
import { getSubsidy } from "@/api/project/travelcity";
import { listReportname, listUser } from "@/api/project/organization";
import { getToken } from "@/utils/auth";
export default {
  components: {
@@ -500,11 +640,14 @@
    "sys_financeitemtype",
    "sys_recordstatus",
    "sys_travelexpensebelong",
    "sys_traffictype",
    "sys_area_name",
  ],
  data() {
    return {
      reporters: [],
      personList: [],
      travelers: [],
      coltravelers: [],
      costtypeobj: {
        value: 0,
        label: "",
@@ -548,11 +691,15 @@
        remark: null,
        departure: null,
        endtime: null,
        destination: null,
        destination2: null,
        uploadFlag: null,
        uploadTime: null,
        orderByColumn: "createTime",
        orderByColumn: "id",
        isAsc: "desc",
      },
      queryParams2: {
        persontype: null,
        arriveAddr: null,
      },
      // 表单参数
      form: {},
@@ -563,7 +710,13 @@
          { required: true, message: "请选择报销归类", trigger: "blur" },
        ],
        username: [
          { required: true, message: "请输入报销人", trigger: "blur" },
          { required: true, message: "请选择填报人", trigger: "blur" },
        ],
        travelers: [
          { required: true, message: "请选择报销人", trigger: "blur" },
        ],
        reason: [
          { required: true, message: "请输入出差事由", trigger: "blur" },
        ],
      },
      //费用申请单form
@@ -574,6 +727,7 @@
        bigstrmoney: null,
      },
      applicationDetailArr: [],
      applicationDetailArr2: [],
      arrr2: [],
      baselist: [],
      balist: [],
@@ -587,6 +741,10 @@
      uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload",
      //文件列表
      fileList: [],
      //人员类别
      persontype: null,
      //到达地
      arriveAddr: null,
      headers: {
        Authorization: "Bearer " + getToken(),
@@ -595,8 +753,8 @@
  },
  created() {
    this.getList();
    this.getlistUser();
    this.selectReporters();
    this.getUserList();
    this.getPersonList();
  },
  mounted() {
    listDonatebaseinfo().then((res) => {
@@ -618,11 +776,13 @@
    this.getUsermsg();
  },
  methods: {
    alertMessage(row) {
      debugger
    },
    handleUploadError() { },
    remove(file) {
      this.fileList.splice(this.fileList.indexOf(file), 1)
    },
    handleExceed() {
      this.$message.error(`上传文件数量不能超过 ${5} 个!`);
@@ -639,39 +799,66 @@
        this.$modal.msgError(response.msg);
      }
    },
    selectReporters() {
      //专家人员列表
      let arr = ["xty1", "zzry", "fzr"];
      let arrreportlist = [];
      for (let i = 0; i < arr.length; i++) {
        this.arrr2 = [];
        listReportname(arr[i]).then((res) => {
          this.arrr2 = res.data;
          this.reporters = this.reporters.concat(this.arrr2);
          // console.log("adadadadasdsad", this.reporters);
    //获取人员列表
    getPersonList() {
      //获取各类别的人员:协调员、专职人员、负责人、专家
      let persontypeArr = ["xty1", "zzry", "fzr", "expert"];
      for (let i = 0; i < persontypeArr.length; i++) {
        this.tempArrr = [];
        listReportname(persontypeArr[i]).then((res) => {
          this.tempArrr = res.data;
          this.personList = this.personList.concat(this.tempArrr);
        });
      }
    },
    //获取一个类别的人员列表
    filterPersonList(row) {
      let travelertype = row.persontype;
    },
    //获取出差人列表
    getTravelers() {
    getTravelers(row, val) {
      //专职人员-1,协调员-2,专家-3,家属-4,其他人员-5
      let travelertype = "";
      if (this.form.costtype == 1) {
      if (row.persontype == "1") {
        travelertype = "zzry";
      } else if (this.form.costtype == 2) {
      } else if (row.persontype == "2") {
        travelertype = "xty1";
      } else if (this.form.costtype == 3) {
      } else if (row.persontype == "3") {
        travelertype = "expert";
      } else if (this.form.costtype == 4) {
      } else if (row.persontype == "4") {
        travelertype = "jiashu";
      } else if (this.form.costtype == 5) {
      } else if (row.persontype == "5") {
        travelertype = "fzr";
      }
      listReportname(travelertype).then((res) => {
        this.travelers = res.data;
        row.personname2 = res.data;
      });
      this.form.persontype = val;
    },
    //获取收款人列表
    getColTravelers(row, val2) {
      debugger;
      //专职人员-1,协调员-2,专家-3,家属-4,其他人员-5
      let travelertype = "";
      if (val2 == 1) {
        travelertype = "zzry";
      } else if (val2 == 2) {
        travelertype = "xty1";
      } else if (val2 == 3) {
        travelertype = "expert";
      } else if (val2e == 4) {
        travelertype = "jiashu";
      } else if (val2 == 5) {
        travelertype = "fzr";
      }
      listReportname(travelertype).then((res) => {
        this.travelers = res.data;
        row.col_personname2 = res.data;
      });
      this.col_personType = val2;
    },
    selectcosttype() {
@@ -685,7 +872,8 @@
        this.standardlevel = response.data.standardlevel;
      });
    },
    getlistUser() {
    getUserList() {
      listUser().then((res) => {
        this.userlist = res.data;
      });
@@ -701,7 +889,102 @@
        }
      });
    },
    //获取收款人银行卡和帐号
    selectedColTraveler(row) {
      let travelertype = "";
      if (row.col_personType == 1) {
        travelertype = "zzry";
      } else if (row.col_personType == 2) {
        travelertype = "xty1";
      } else if (row.col_personType == 3) {
        travelertype = "expert";
      } else if (row.col_personType == 4) {
        travelertype = "jiashu";
      } else if (row.col_personType == 5) {
        travelertype = "fzr";
      }
      listReportname(travelertype).then((res) => {
        let dataArr = res.data;
        for (let m = 0; m < dataArr.length; m++) {
          if (dataArr[m].reportName == row.col_personname) {
            row.col_bank = dataArr[m].depositbank;
            row.col_accounts = dataArr[m].bankcardno;
          };
        }
      });
      // this.coltravelers.map((res) => {
      //   console.log("-----------------------------");
      //   if (res.reportName == this.form.travelers) {
      //     getInfoBytheUserNo(res.reportNo).then((res) => {
      //       this.form.depositbank = res.data.depositbank;
      //       this.form.bankcardno = res.data.bankcardno;
      //       this.form.phone = res.data.telephone;
      //     });
      //   }
      // });
    },
    //计算补助
    getallowance(row) {
      if (
        row.starttime != "" &&
        row.starttime != null &&
        row.endtime != "" &&
        row.endtime != null
      ) {
        //计算天数
        row.days = 1 + Math.floor(Math.abs(Date.parse(row.starttime) - Date.parse(row.endtime)) / (1099 * 3699 * 24))
        /*let aDate, oDate1, oDate2, Date_end,Date_start;
        Date_end = row.endtime.split(" "); //将时间以空格划分为两个数组  第一个数组是 2019-05-20 第二个数组是 00:00:00
        aDate = Date_end[0].split("-"); //获取第一个数组的值
        oDate1 = new Date(aDate[0], aDate[1], aDate[2]);  //将前半个数组以-拆分,每一个是一个数值
        Date_start = row.starttime.split(" ");
        aDate = Date_start[0].split("-");
        oDate2 = new Date(aDate[0], aDate[1], aDate[2]);
        row.days = 1+parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24);    //把相差的毫秒数转换为天数
        */
      } else {
        row.days = ''
      };
      //公杂费补助:杭州桐庐,建德,淳安60,杭州其他地区0,非杭州地区80
      if (row.destination2 != "") {
        var str = row.destination2;
        //验证城市
        ////if (str.indexOf("桐庐,建德,淳安") !== -1) { };
        if (str.includes("杭州")) { row.otherexpense = parseInt(row.days) * 0 }
        else if (str.includes("桐庐") || str.includes("建德") || str.includes("淳安")) { row.otherexpense = parseInt(row.days) * 60 }
        else { row.otherexpense = parseInt(row.days) * 80 };
      }
      //伙食费补助:城市(西藏,新疆,青海.120)(其他100)
      row.foodallowance = parseInt(row.days) * 100
      //计算合计
      this.sumTotalFee();
    },
    getallowance2(row, val2) {
      debugger;
      // this.getallowance(row);
      this.arriveAddr = val2;
      this.queryParams2.arriveAddr;
      this.queryParams2.personType = row;
      console.log(row.persontype);
      console.log(this.arriveAddr);
      if (row.persontype != undefined && row.persontype == "2" || row.persontype == "5") {
        console.log(this.arriveAddr);
        this.loading = true;
        debugger;
        getSubsidy(val2).then((response) => {
          debugger
          this.loading = false;
          row.otherexpense = response.data.others;
          row.foodallowance = response.data.food;
        });
      }
    },
    getStandard(row) {
      if (
        row.searchAddress.sheng != "" &&
@@ -743,7 +1026,7 @@
        row.searchAddress.shi != "" &&
        row.searchAddress.qu != ""
      ) {
        row.destination =
        row.destination2 =
          row.searchAddress.sheng +
          row.searchAddress.shi +
          row.searchAddress.qu;
@@ -787,20 +1070,21 @@
      }
      return area;
    },
    selectbaseinfo() {
      console.log("infoid", this.form.infoid);
      let list = this.balist;
      list.forEach((item) => {
        if (item.id == this.form.infoid) {
          //  console.log('相同的',item.id,item)
          this.form.donorno = item.donorno;
          this.form.donorname = item.name;
        }
      });
    },
    onpick(e) {
      // console.log(e,this.value1)
    },
    gettable(e) {
      const id = e.id;
      getdownload(e.id).then((res) => {
@@ -829,6 +1113,7 @@
      //   aEle.click();
      // });
    },
    /** 查询报销申请列表 */
    getList() {
      this.loading = true;
@@ -893,6 +1178,7 @@
        costtypename: null,
      };
      this.applicationDetailArr = [];
      this.applicationDetailArr2 = [];
      this.resetForm("form");
    },
    //
@@ -941,6 +1227,7 @@
      this.form.username = this.defaultperson.nickName;
      this.form.userno = this.defaultperson.userName;
      this.addRow();
      this.col_addRow();
      this.open = true;
      this.title = "添加报销申请";
    },
@@ -958,8 +1245,17 @@
        let ids = response.data.id;
        getReimbursementdetaillist(ids).then((res) => {
          if (res.data.length == 0) {
            return;
          }
          this.applicationDetailArr = res.data;
          for (let i = 0; i < this.applicationDetailArr.length; i++) {
            debugger;
            //   this.applicationDetailArr[i].personname2 = res.data[i].personname;
          }
          for (let i = 0; i < this.applicationDetailArr.length; i++) {
            debugger;
            this.applicationDetailArr[i].index = i;
            this.applicationDetailArr[i].searchAddress = {
              sheng: this.applicationDetailArr[i].travelprovincename,
@@ -969,7 +1265,19 @@
          }
          this.sumTotalFee();
        });
        let obj = { rbid: ids };
        listReimbursementpayee(obj).then((res) => {
          if (res.rows.length == 0) {
            return;
          }
          this.applicationDetailArr2 = res.rows;
          // this.sumTotalFee();
        });
      });
      //默认存在一行
      this.addRow();
      this.col_addRow();
      this.selectedTraveler();
    },
    /** 查看按钮操作 */
    handleDetail(row) {
@@ -1007,7 +1315,9 @@
    },
    /** 提交按钮 */
    submitForm() {
      debugger;
      this.$refs["form"].validate((valid) => {
        debugger;
        if (valid) {
          let indexErrTime = this.applicationDetailArr.findIndex((item) => {
            if (item.endtime && item.starttime) {
@@ -1075,23 +1385,35 @@
            this.form.costtypename = belongArr[costtypeindex].label;
          }
          if (this.form.id != null) {
            //rbid主表Id,方便后面关联主表
            let rbid = this.form.id;
            for (let i = 0; i < this.applicationDetailArr.length; i++) {
              this.applicationDetailArr[i].rbid = rbid;
            }
            updateReimbursement(this.form).then((response) => {
              // console.log('更新主表的信息',response);
              for (let i = 0; i < this.applicationDetailArr.length; i++) {
                if (this.applicationDetailArr[i].rbid != null) {
                  updateReimbursementdetail(this.applicationDetailArr[i]);
                } else {
                  this.applicationDetailArr[i].rbid = this.form.id;
                  addReimbursementdetail(this.applicationDetailArr[i]);
              updateReimbursementdetaillist(this.applicationDetailArr).then((response) => {
                //更新支付表信息
                for (let i = 0; i < this.applicationDetailArr2.length; i++) {
                  this.applicationDetailArr2[i].rbid = rbid;
                }
              }
              this.$modal.msgSuccess("修改成功");
              this.open = false;
              this.getList();
                addOrUpdateRBpayee(this.applicationDetailArr2);
                for (let i = 0; i < this.applicationDetailArr.length; i++) {
                  if (this.applicationDetailArr[i].rbid != null) {
                    updateReimbursementdetail(this.applicationDetailArr[i]);
                  } else {
                    this.applicationDetailArr[i].rbid = this.form.id;
                    addReimbursementdetail(this.applicationDetailArr[i]);
                  }
                }
                this.$modal.msgSuccess("修改成功");
                this.open = false;
                this.getList();
              });
            });
          } else {
            this.form.recordstatus = -1;
            const applicationDetailArr = [...this.applicationDetailArr]
            const applicationDetailArr2 = [...this.applicationDetailArr2]
            addReimbursement(this.form).then((response) => {
              this.$modal.msgSuccess("新增成功");
              this.open = false;
@@ -1105,10 +1427,12 @@
                let id = res.data;
                for (let i = 0; i < applicationDetailArr.length; i++) {
                  applicationDetailArr[i].rbid = id;
                  addReimbursementdetail(applicationDetailArr[i]);
                }
                console.log("idaaaaaa:", res, id, this.applicationDetailArr);
                for (let i = 0; i < applicationDetailArr2.length; i++) {
                  applicationDetailArr2[i].rbid = id;
                }
                addOrUpdateRBpayee(applicationDetailArr2);
              });
            });
          }
@@ -1161,7 +1485,7 @@
        starttime: null,
        departure: null,
        endtime: null,
        destination: null,
        destination2: null,
        days: null,
        trafficexpense: 0,
        traffictype: null,
@@ -1184,6 +1508,9 @@
        uploadTime: null,
        total: 0,
        orderno: null,
        personname2: null,
        personname: null,
        destination: null,
      };
      if (rowIndex == undefined || rowIndex == null || rowIndex < 0) {
        this.applicationDetailArr.push(rowData);
@@ -1192,6 +1519,28 @@
      }
      for (let i = 0; i < this.applicationDetailArr.length; i++) {
        this.applicationDetailArr[i].orderno = i + 1;
      }
    },
    col_addRow(rowIndex) {
      let rowData = {
        id: null,
        col_personType: null,
        col_personname: null,
        col_bank: null,
        col_accounts: null,
        col_date: null,
        col_illustrate: null,
        col_orderno: null,
        col_personname2: null,
      };
      if (rowIndex == undefined || rowIndex == null || rowIndex < 0) {
        this.applicationDetailArr2.push(rowData);
      } else {
        this.applicationDetailArr2.splice(rowIndex + 1, 0, rowData);
      }
      for (let i = 0; i < this.applicationDetailArr2.length; i++) {
        this.applicationDetailArr2[i].col_orderno = i + 1;
      }
    },
@@ -1222,16 +1571,45 @@
        });
    },
    deleteRow2(index, rows, row) {
      this.$confirm("是否确认删除?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
        type: "success",
      })
        .then(() => {
          console.log(row);
          if (row.id !== null) {
            delReimbursementdetail(row.id).then((res) => {
              this.$modal.msgSuccess("删除成功");
              rows.splice(index, 1);
              this.recountOrderNo2();
              // this.sumTotalFee();
            });
          } else {
            rows.splice(index, 1);
            //this.sumTotalFee();
            this.$modal.msgSuccess("删除成功");
            this.recountOrderNo2();
          }
        })
        .catch(() => {
          //几点取消的提示
        });
    },
    recountOrderNo() {
      for (let i = 0; i < this.applicationDetailArr.length; i++) {
        this.applicationDetailArr[i].orderno = i + 1;
      }
    },
    recountOrderNo2() {
      for (let i = 0; i < this.applicationDetailArr2.length; i++) {
        this.applicationDetailArr2[i].orderno = i + 1;
      }
    },
    //上报
    handleup(row) {
      console.log("rowrowrowrow", row);
      this.$confirm("是否确认将登记记录上报?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
@@ -1270,6 +1648,12 @@
    sumTotalFee() {
      // debugger;
      let allSum = 0;
      //捐献者家属费用
      if (!isNaN(parseFloat(this.form.donoramount))) {
        allSum += parseFloat(this.form.donoramount);
      }
      //报销明细费用
      try {
        for (let i = 0; i < this.applicationDetailArr.length; i++) {
          let totalFee = 0;
@@ -1301,6 +1685,7 @@
            allSum += parseFloat(this.applicationDetailArr[i].total);
          }
        }
        this.form.amountrequested = allSum.toFixed(2);
        this.form.bigstrmoney = this.convertCurrency(this.form.amountrequested);
      } catch { }