yxh
yxh
2023-05-05 e2423f3b3a1ec61ad2c8584f410d33cfdbd611f9
yxh
已添加1个文件
已修改7个文件
780 ■■■■■ 文件已修改
src/api/project/reimbursement.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/project/reimbursementdetail.js 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/project/reimbursementpayee.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/project/travelcity.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/project/fund/expertFeeFundApply/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/project/fundflowrule/index.vue 333 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/project/travelexpenseslist/index.vue 404 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vue.config.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/project/reimbursement.js
@@ -42,6 +42,13 @@
    data: data
  })
}
// export function updateReimbursement(data) {
//   return request({
//     url: '/project/reimbursement/editMoney',
//     method: 'post',
//     data: data
//   })
// }
// åˆ é™¤æŠ¥é”€ç”³è¯·
export function delReimbursement(id) {
src/api/project/reimbursementdetail.js
@@ -28,6 +28,16 @@
  })
}
// /project/reimbursement/getRBDetailList/{rbid}
// ä¿®æ”¹details列表
export function updateReimbursementdetaillist(data) {
  return request({
    url: '/project/reimbursementdetail/updateRDlList',
    method: 'post',
    data: data
  })
}
// /project/reimbursement/getMaxId
src/api/project/reimbursementpayee.js
@@ -26,6 +26,15 @@
  })
}
// æ–°å¢žã€ä¿®æ”¹å·®æ—…报销付款信息
export function addOrUpdateRBpayee(data) {
  return request({
    url: '/project/reimbursementpayee/addOrUpdateRBpayee',
    method: 'post',
    data: data
  })
}
// ä¿®æ”¹å·®æ—…报销付款信息
export function updateReimbursementpayee(data) {
  return request({
src/api/project/travelcity.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
import request from '@/utils/request'
//差旅费上报
export function getSubsidy(cityCode) {
  return request({
    url: '/project/travelcity/getSubsidy/' + cityCode,
    method: 'get'
  })
}
src/views/project/fund/expertFeeFundApply/index.vue
@@ -1239,7 +1239,7 @@
    },
    getlistExternalperson() {
      listExternalperson().then((res) => {
        console.log("人员表:", res.rows);
        console.log("人员表:", res);
        this.personlist = res.rows;
      });
    },
src/views/project/fundflowrule/index.vue
@@ -1,158 +1,59 @@
<template>
  <div class="app-container">
    <el-form
      :model="queryParams"
      ref="queryForm"
      :inline="true"
      v-show="showSearch"
      label-width="100px"
    >
    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px">
      <el-form-item label="费用类别" prop="applytype">
        <el-select
          v-model="queryParams.applytype"
          placeholder="请选择费用类别"
          clearable
          size="small"
        >
          <el-option
            v-for="dict in dict.type.sys_ConsolationType"
            :key="dict.value"
            :label="dict.label"
            :value="dict.value"
          />
        <el-select v-model="queryParams.applytype" placeholder="请选择费用类别" clearable size="small">
          <el-option v-for="dict in dict.type.sys_ConsolationType" :key="dict.value" :label="dict.label"
            :value="dict.value" />
        </el-select>
      </el-form-item>
      <el-form-item label="审核人编号" prop="checkuserno">
        <el-input
          v-model="queryParams.checkuserno"
          placeholder="请输入审核人编号"
          clearable
          size="small"
          @keyup.enter.native="handleQuery"
        />
        <el-input v-model="queryParams.checkuserno" placeholder="请输入审核人编号" clearable size="small"
          @keyup.enter.native="handleQuery" />
      </el-form-item>
      <el-form-item label="审核人姓名" prop="checkusername">
        <el-input
          v-model="queryParams.checkusername"
          placeholder="请输入审核人姓名"
          clearable
          size="small"
          @keyup.enter.native="handleQuery"
        />
        <el-input v-model="queryParams.checkusername" placeholder="请输入审核人姓名" clearable size="small"
          @keyup.enter.native="handleQuery" />
      </el-form-item>
      <el-form-item
        label="是否只审核同部门"
        prop="verificationdept"
        label-width="140px"
      >
        <el-select
          v-model="queryParams.verificationdept"
          placeholder="是否只审核同部门"
          clearable
          size="small"
        >
          <el-option
            v-for="dict in yesnoArr"
            :key="dict.value"
            :label="dict.label"
            :value="dict.value"
          />
      <el-form-item label="是否只审核同部门" prop="verificationdept" label-width="140px">
        <el-select v-model="queryParams.verificationdept" placeholder="是否只审核同部门" clearable size="small">
          <el-option v-for="dict in yesnoArr" :key="dict.value" :label="dict.label" :value="dict.value" />
        </el-select>
      </el-form-item>
      <el-form-item label="当前审核级别" prop="flowlevel">
        <el-select
          v-model="queryParams.flowlevel"
          placeholder="请选择当前审核级别"
          clearable
          size="small"
        >
          <el-option
            v-for="dict in dict.type.sys_consolationfundlevel"
            :key="dict.value"
            :label="dict.label"
            :value="dict.value"
          />
        <el-select v-model="queryParams.flowlevel" placeholder="请选择当前审核级别" clearable size="small">
          <el-option v-for="dict in dict.type.sys_consolationfundlevel" :key="dict.value" :label="dict.label"
            :value="dict.value" />
        </el-select>
      </el-form-item>
      <el-form-item label="总审核级别" prop="totallevel">
        <el-select
          v-model="queryParams.totallevel"
          placeholder="是否只审核同部门"
          clearable
          size="small"
        >
          <el-option
            v-for="dict in checkLevelArr"
            :key="dict.value"
            :label="dict.label"
            :value="dict.value"
          />
        <el-select v-model="queryParams.totallevel" placeholder="是否只审核同部门" clearable size="small">
          <el-option v-for="dict in checkLevelArr" :key="dict.value" :label="dict.label" :value="dict.value" />
        </el-select>
      </el-form-item>
      <el-form-item label="费用类别" prop="fundtype">
        <el-select
          v-model="queryParams.fundtype"
          placeholder="请选择费用类别"
          clearable
          size="small"
        >
          <el-option
            v-for="dict in dict.type.sys_fundtypes"
            :key="dict.value"
            :label="dict.label"
            :value="dict.value"
          />
        <el-select v-model="queryParams.fundtype" placeholder="请选择费用类别" clearable size="small">
          <el-option v-for="dict in dict.type.sys_fundtypes" :key="dict.value" :label="dict.label" :value="dict.value" />
        </el-select>
      </el-form-item>
      <el-form-item>
        <el-button
          type="primary"
          icon="el-icon-search"
          size="mini"
          @click="handleQuery"
          >搜索</el-button
        >
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
          >重置</el-button
        >
        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
      </el-form-item>
    </el-form>
    <el-row :gutter="10" class="mb8">
      <el-col :span="1.5">
        <el-button
          type="primary"
          plain
          icon="el-icon-plus"
          size="mini"
          @click="handleAdd"
          v-hasPermi="['project:fundflowrule:add']"
          >新增</el-button
        >
        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
          v-hasPermi="['project:fundflowrule:add']">新增</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="success"
          plain
          icon="el-icon-edit"
          size="mini"
          :disabled="single"
          @click="handleUpdate"
          v-hasPermi="['project:fundflowrule:edit']"
          >修改</el-button
        >
        <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
          v-hasPermi="['project:fundflowrule:edit']">修改</el-button>
      </el-col>
      <el-col :span="1.5">
        <el-button
          type="danger"
          plain
          icon="el-icon-delete"
          size="mini"
          :disabled="multiple"
          @click="handleDelete"
          v-hasPermi="['project:fundflowrule:remove']"
          >删除</el-button
        >
        <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
          v-hasPermi="['project:fundflowrule:remove']">删除</el-button>
      </el-col>
      <!-- <el-col :span="1.5">
        <el-button
@@ -165,125 +66,56 @@
          v-hasPermi="['project:fundflowrule:export']"
        >导出</el-button>
      </el-col> -->
      <right-toolbar
        :showSearch.sync="showSearch"
        @queryTable="getList"
      ></right-toolbar>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
    </el-row>
    <el-table
      v-loading="loading"
      :data="fundflowruleList"
      @selection-change="handleSelectionChange"
    >
    <el-table v-loading="loading" :data="fundflowruleList" @selection-change="handleSelectionChange">
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column label="费用类别" align="center" prop="applytype">
        <template slot-scope="scope">
          <dict-tag
            :options="dict.type.sys_ConsolationType"
            :value="scope.row.applytype"
          />
          <dict-tag :options="dict.type.sys_ConsolationType" :value="scope.row.applytype" />
        </template>
      </el-table-column>
      <el-table-column label="审核人编号" align="center" prop="checkuserno" />
      <el-table-column label="审核人姓名" align="center" prop="checkusername" />
      <el-table-column
        label="是否只审核同部门"
        align="center"
        prop="verificationdept"
      >
      <el-table-column label="是否只审核同部门" align="center" prop="verificationdept">
        <template slot-scope="scope">
          <el-button
            type="primary"
            plain
            v-if="scope.row.verificationdept == '0'"
            size="mini"
          >
            å¦</el-button
          >
          <el-button
            type="primary"
            plain
            v-if="scope.row.verificationdept == '1'"
            size="mini"
            >是</el-button
          >
          <el-button type="primary" plain v-if="scope.row.verificationdept == '0'" size="mini">
            å¦</el-button>
          <el-button type="primary" plain v-if="scope.row.verificationdept == '1'" size="mini">是</el-button>
        </template>
      </el-table-column>
      <el-table-column label="当前审核级别" align="center" prop="flowlevel">
        <template slot-scope="scope">
          <dict-tag
            :options="dict.type.sys_consolationfundlevel"
            :value="scope.row.flowlevel"
          />
          <dict-tag :options="dict.type.sys_consolationfundlevel" :value="scope.row.flowlevel" />
        </template>
      </el-table-column>
      <el-table-column label="总审核级别" align="center" prop="totallevel">
        <template slot-scope="scope">
          <el-button
            type="primary"
            plain
            v-if="scope.row.totallevel == '1'"
            size="mini"
            >一级</el-button
          >
          <el-button
            type="primary"
            plain
            v-if="scope.row.totallevel == '2'"
            size="mini"
            >二级</el-button
          >
          <el-button
            type="primary"
            plain
            v-if="scope.row.totallevel == '3'"
            size="mini"
            >三级</el-button
          >
          <el-button type="primary" plain v-if="scope.row.totallevel == '1'" size="mini">一级</el-button>
          <el-button type="primary" plain v-if="scope.row.totallevel == '2'" size="mini">二级</el-button>
          <el-button type="primary" plain v-if="scope.row.totallevel == '3'" size="mini">三级</el-button><el-button
            type="primary" plain v-if="scope.row.totallevel == '4'" size="mini">四级</el-button><el-button type="primary"
            plain v-if="scope.row.totallevel == '5'" size="mini">五级</el-button>
        </template>
      </el-table-column>
      <el-table-column label="费用类别" align="center" prop="fundtype">
        <template slot-scope="scope">
          <dict-tag
            :options="dict.type.sys_fundtypes"
            :value="scope.row.fundtype"
          />
          <dict-tag :options="dict.type.sys_fundtypes" :value="scope.row.fundtype" />
        </template>
      </el-table-column>
      <el-table-column
        label="操作"
        align="center"
        class-name="small-padding fixed-width"
      >
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
        <template slot-scope="scope">
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            @click="handleUpdate(scope.row)"
            v-hasPermi="['project:fundflowrule:edit']"
            >修改</el-button
          >
          <el-button
            size="mini"
            type="text"
            icon="el-icon-delete"
            @click="handleDelete(scope.row)"
            v-hasPermi="['project:fundflowrule:remove']"
            >删除</el-button
          >
          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
            v-hasPermi="['project:fundflowrule:edit']">修改</el-button>
          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
            v-hasPermi="['project:fundflowrule:remove']">删除</el-button>
        </template>
      </el-table-column>
    </el-table>
    <pagination
      v-show="total > 0"
      :total="total"
      :page.sync="queryParams.pageNum"
      :limit.sync="queryParams.pageSize"
      @pagination="getList"
    />
    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
      @pagination="getList" />
    <!-- æ·»åŠ æˆ–ä¿®æ”¹è´¹ç”¨å®¡æ‰¹è§„åˆ™å¯¹è¯æ¡† -->
    <el-dialog :title="title" :visible.sync="open" width="900px" append-to-body>
@@ -292,12 +124,8 @@
          <el-col :span="12">
            <el-form-item label="费用类别" prop="applytype">
              <el-select v-model="form.applytype" placeholder="请选择费用类别" style="width:100%">
                <el-option
                  v-for="dict in dict.type.sys_ConsolationType"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value"
                />
                <el-option v-for="dict in dict.type.sys_ConsolationType" :key="dict.value" :label="dict.label"
                  :value="dict.value" />
              </el-select>
            </el-form-item>
          </el-col>
@@ -305,12 +133,8 @@
          <el-col :span="12">
            <el-form-item label="费用类别" prop="fundtype">
              <el-select v-model="form.fundtype" placeholder="请选择费用类别" style="width:100%">
                <el-option
                  v-for="dict in dict.type.sys_fundtypes"
                  :key="dict.value"
                  :label="dict.label"
                  :value="parseInt(dict.value)"
                ></el-option>
                <el-option v-for="dict in dict.type.sys_fundtypes" :key="dict.value" :label="dict.label"
                  :value="parseInt(dict.value)"></el-option>
              </el-select>
            </el-form-item>
          </el-col>
@@ -318,18 +142,12 @@
        <el-row>
          <el-col :span="12">
            <el-form-item label="审核人编号" prop="checkuserno">
              <el-input
                v-model="form.checkuserno"
                placeholder="请输入审核人编号"
              />
              <el-input v-model="form.checkuserno" placeholder="请输入审核人编号" />
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="审核人姓名" prop="checkusername">
              <el-input
                v-model="form.checkusername"
                placeholder="请输入审核人姓名"
              />
              <el-input v-model="form.checkusername" placeholder="请输入审核人姓名" />
            </el-form-item>
          </el-col>
        </el-row>
@@ -337,38 +155,17 @@
        <el-row>
          <el-col :span="12">
            <el-form-item label="当前审核级别" prop="flowlevel">
              <el-select
                v-model="form.flowlevel"
                placeholder="请选择当前审核级别"
                clearable
                size="small"
                style="width:100%"
              >
                <el-option
                  v-for="dict in dict.type.sys_consolationfundlevel"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value"
                />
              <el-select v-model="form.flowlevel" placeholder="请选择当前审核级别" clearable size="small" style="width:100%">
                <el-option v-for="dict in dict.type.sys_consolationfundlevel" :key="dict.value" :label="dict.label"
                  :value="dict.value" />
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12">
            <el-form-item label="总审核级别" prop="totallevel">
              <el-select
                v-model="form.totallevel"
                placeholder="请选择总审核级别"
                clearable
                size="small"
                style="width:100%"
              >
                <el-option
                  v-for="dict in checkLevelArr"
                  :key="dict.value"
                  :label="dict.label"
                  :value="dict.value"
                />
              <el-select v-model="form.totallevel" placeholder="请选择总审核级别" clearable size="small" style="width:100%">
                <el-option v-for="dict in checkLevelArr" :key="dict.value" :label="dict.label" :value="dict.value" />
              </el-select>
            </el-form-item>
          </el-col>
@@ -376,18 +173,10 @@
        <el-row>
          <el-col>
            <el-form-item
              label="是否只审核同部门"
              prop="verificationdept"
              label-width="140px"
            >
            <el-form-item label="是否只审核同部门" prop="verificationdept" label-width="140px">
              <el-radio-group v-model="form.verificationdept">
                <el-radio
                  v-for="dict in yesnoArr"
                  :key="dict.value"
                  :label="parseInt(dict.value)"
                  >{{ dict.label }}</el-radio
                >
                <el-radio v-for="dict in yesnoArr" :key="dict.value" :label="parseInt(dict.value)">{{ dict.label
                }}</el-radio>
              </el-radio-group>
            </el-form-item>
          </el-col>
src/views/project/travelexpenseslist/index.vue
@@ -133,7 +133,7 @@
            <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>
@@ -276,17 +276,39 @@
                <el-input v-model="scope.row.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="persontype" slot="" label="人员类别" align="center" fixed width="120">
              <template slot-scope="scope">
                <el-select v-model="form.persontype" value-key="value" placeholder="人员类别" @change="getTravelers">
                <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="personname" slot="" label="出差人" align="center" fixed width="120">
              <template slot-scope="scope">
            <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-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">
@@ -316,9 +338,16 @@
                <el-input v-model="scope.row.departure" placeholder="出发地" />
              </template>
            </el-table-column>
            <el-table-column label="到达地" prop="destination" align="center" fixed width="100">
            <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-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">
@@ -344,8 +373,7 @@
            </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();
                  }
                " />
@@ -365,8 +393,7 @@
                                                                                                                                      -->
            <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();
                  }
                " />
@@ -375,8 +402,7 @@
            <el-table-column prop="foodexpenses" 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.foodexpenses" placeholder="伙食费报销" @blur="(val) => {
                    sumTotalFee();
                  }
                " />
@@ -384,8 +410,7 @@
            </el-table-column>
            <el-table-column prop="foodallowance" 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.foodallowance" placeholder="伙食费补助" @blur="(val) => {
                    sumTotalFee();
                  }
                " />
@@ -393,8 +418,7 @@
            </el-table-column>
            <el-table-column prop="otherexpense" 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.otherexpense" placeholder="杂费" @blur="(val) => {
                    sumTotalFee();
                  }
                " />
@@ -403,8 +427,7 @@
            <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();
                  }
                " />
@@ -424,14 +447,85 @@
            <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)
                <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: 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>
      <!--
@@ -475,8 +569,7 @@
            <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-exceed="handleExceed" :on-remove="remove" accept="image/*,.pdf">
@@ -507,6 +600,7 @@
<script>
import { listDonatebaseinfo } from "@/api/project/donatebaseinfo";
import { addOrUpdateRBpayee, listReimbursementpayee } from "@/api/project/reimbursementpayee";
import {
  listReimbursement,
  getReimbursement,
@@ -515,8 +609,6 @@
  updateReimbursement,
  exportReimbursement,
  getdownload,
  //获取地市对应基准金额
  getstandardRMB,
  fundSubmit,
} from "@/api/project/reimbursement";
import {
@@ -525,7 +617,7 @@
  listReimbursementdetailid,
  getReimbursementdetaillist,
  delReimbursementdetail,
  delReimbursementdetailrbid,
  updateReimbursementdetaillist,
  getTravelStandard,
} from "@/api/project/reimbursementdetail";
import { listFundflow } from "@/api/project/fundflow";
@@ -533,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: {
@@ -553,11 +641,13 @@
    "sys_recordstatus",
    "sys_travelexpensebelong",
    "sys_traffictype",
    "sys_area_name",
  ],
  data() {
    return {
      reporters: [],
      personList: [],
      travelers: [],
      coltravelers: [],
      costtypeobj: {
        value: 0,
        label: "",
@@ -601,11 +691,15 @@
        remark: null,
        departure: null,
        endtime: null,
        destination: null,
        destination2: null,
        uploadFlag: null,
        uploadTime: null,
        orderByColumn: "createTime",
        isAsc: "desc",
      },
      queryParams2: {
        persontype: null,
        arriveAddr: null,
      },
      // è¡¨å•参数
      form: {},
@@ -633,6 +727,7 @@
        bigstrmoney: null,
      },
      applicationDetailArr: [],
      applicationDetailArr2: [],
      arrr2: [],
      baselist: [],
      balist: [],
@@ -646,6 +741,10 @@
      uploadFileUrl: process.env.VUE_APP_BASE_API + "/common/upload",
      //文件列表
      fileList: [],
      //人员类别
      persontype: null,
      //到达地
      arriveAddr: null,
      headers: {
        Authorization: "Bearer " + getToken(),
@@ -654,8 +753,8 @@
  },
  created() {
    this.getList();
    this.getlistUser();
    this.selectReporters();
    this.getUserList();
    this.getPersonList();
  },
  mounted() {
    listDonatebaseinfo().then((res) => {
@@ -677,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} ä¸ª!`);
@@ -698,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() {
@@ -744,7 +872,8 @@
        this.standardlevel = response.data.standardlevel;
      });
    },
    getlistUser() {
    getUserList() {
      listUser().then((res) => {
        this.userlist = res.data;
      });
@@ -759,6 +888,40 @@
          });
        }
      });
    },
    //获取收款人银行卡和帐号
    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) {
@@ -786,8 +949,8 @@
      };
      //公杂费补助:杭州桐庐,建德,淳安60,杭州其他地区0,非杭州地区80
      if (row.destination != "") {
        var str = row.destination;
      if (row.destination2 != "") {
        var str = row.destination2;
        //验证城市
        ////if (str.indexOf("桐庐,建德,淳安") !== -1) { };
        if (str.includes("杭州")) { row.otherexpense = parseInt(row.days) * 0 }
@@ -801,7 +964,27 @@
      //计算合计
      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 != "" &&
@@ -843,7 +1026,7 @@
        row.searchAddress.shi != "" &&
        row.searchAddress.qu != ""
      ) {
        row.destination =
        row.destination2 =
          row.searchAddress.sheng +
          row.searchAddress.shi +
          row.searchAddress.qu;
@@ -892,7 +1075,6 @@
      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;
        }
@@ -996,6 +1178,7 @@
        costtypename: null,
      };
      this.applicationDetailArr = [];
      this.applicationDetailArr2 = [];
      this.resetForm("form");
    },
    //
@@ -1044,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 = "添加报销申请";
    },
@@ -1061,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,
@@ -1072,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) {
@@ -1110,7 +1315,9 @@
    },
    /** æäº¤æŒ‰é’® */
    submitForm() {
      debugger;
      this.$refs["form"].validate((valid) => {
        debugger;
        if (valid) {
          let indexErrTime = this.applicationDetailArr.findIndex((item) => {
            if (item.endtime && item.starttime) {
@@ -1178,8 +1385,18 @@
            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);
              updateReimbursementdetaillist(this.applicationDetailArr).then((response) => {
                //更新支付表信息
                for (let i = 0; i < this.applicationDetailArr2.length; i++) {
                  this.applicationDetailArr2[i].rbid = rbid;
                }
                addOrUpdateRBpayee(this.applicationDetailArr2);
              for (let i = 0; i < this.applicationDetailArr.length; i++) {
                if (this.applicationDetailArr[i].rbid != null) {
                  updateReimbursementdetail(this.applicationDetailArr[i]);
@@ -1192,9 +1409,11 @@
              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;
@@ -1208,9 +1427,12 @@
                let id = res.data;
                for (let i = 0; i < applicationDetailArr.length; i++) {
                  applicationDetailArr[i].rbid = id;
                  addReimbursementdetail(applicationDetailArr[i]);
                }
                for (let i = 0; i < applicationDetailArr2.length; i++) {
                  applicationDetailArr2[i].rbid = id;
                }
                addOrUpdateRBpayee(applicationDetailArr2);
              });
            });
          }
@@ -1263,7 +1485,7 @@
        starttime: null,
        departure: null,
        endtime: null,
        destination: null,
        destination2: null,
        days: null,
        trafficexpense: 0,
        traffictype: null,
@@ -1286,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);
@@ -1294,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;
      }
    },
@@ -1324,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: "取消",
vue.config.js
@@ -33,9 +33,9 @@
    proxy: {
      // detail: https://cli.vuejs.org/config/#devserver-proxy
      [process.env.VUE_APP_BASE_API]: {
        target: `http://localhost:8080`,
        target: `http://192.168.2.3:8080`,
        //target: `https://slb.hospitalstar.com:9093`,
        //target:`http://192.168.0.106:8080`,
        //target:`http://www.hxsoft.com:8099`,
        changeOrigin: true,
        pathRewrite: {
          ['^' + process.env.VUE_APP_BASE_API]: ''