|  | @@ -0,0 +1,382 @@
 | 
	
		
			
				|  |  | +<template>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  <div class="page">
 | 
	
		
			
				|  |  | +    <el-form size="small" :inline="true" class="query-form" ref="searchForm" :model="searchForm"
 | 
	
		
			
				|  |  | +             @keyup.enter.native="refreshList()" @submit.native.prevent>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      <el-form-item prop="userId" :rules=" [{trigger: 'blur'}]" label="人员">
 | 
	
		
			
				|  |  | +        <SelectUserTree
 | 
	
		
			
				|  |  | +          ref="companyTree"
 | 
	
		
			
				|  |  | +          :props="{
 | 
	
		
			
				|  |  | +                  value: 'id',             // ID字段名
 | 
	
		
			
				|  |  | +                  label: 'name',         // 显示名称
 | 
	
		
			
				|  |  | +                  children: 'children'    // 子级字段名
 | 
	
		
			
				|  |  | +                }"
 | 
	
		
			
				|  |  | +          :url="`/sys/user/treeUserDataAllOffice?type=2`"
 | 
	
		
			
				|  |  | +          :value="searchForm.userId"
 | 
	
		
			
				|  |  | +          :clearable="true"
 | 
	
		
			
				|  |  | +          :accordion="true"
 | 
	
		
			
				|  |  | +          @getValue="(value) => {searchForm.userId=value}"/>
 | 
	
		
			
				|  |  | +      </el-form-item>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      <el-form-item label="年份" prop="year" :rules="[{trigger:'blur'}]">
 | 
	
		
			
				|  |  | +        <el-date-picker
 | 
	
		
			
				|  |  | +          v-model="searchForm.year"
 | 
	
		
			
				|  |  | +          type="year"
 | 
	
		
			
				|  |  | +          value-format="yyyy"
 | 
	
		
			
				|  |  | +          placeholder="选择年份">
 | 
	
		
			
				|  |  | +        </el-date-picker>
 | 
	
		
			
				|  |  | +      </el-form-item>
 | 
	
		
			
				|  |  | +      <el-form-item>
 | 
	
		
			
				|  |  | +        <el-button type="primary" @click="refreshList()" size="small" icon="el-icon-search">查询</el-button>
 | 
	
		
			
				|  |  | +        <el-button @click="resetSearch()" size="small" icon="el-icon-refresh-right">重置</el-button>
 | 
	
		
			
				|  |  | +      </el-form-item>
 | 
	
		
			
				|  |  | +    </el-form>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    <div class="bg-white top">
 | 
	
		
			
				|  |  | +      <vxe-toolbar :refresh="{query: refreshList}" export print resizable custom>
 | 
	
		
			
				|  |  | +        <template #buttons>
 | 
	
		
			
				|  |  | +          <el-row>
 | 
	
		
			
				|  |  | +            <el-button v-if="hasPermission('reimbursementBusinessTwo:add')" type="primary" size="small" icon="el-icon-plus"
 | 
	
		
			
				|  |  | +                       @click="addBusinessInfo()">新增
 | 
	
		
			
				|  |  | +            </el-button>
 | 
	
		
			
				|  |  | +            <el-button v-if="hasPermission('reimbursementBusinessTwo:binding')" type="warning" size="small" icon="el-icon-edit"
 | 
	
		
			
				|  |  | +                       @click="openDialog($refs.reimbursementUserTable.getCheckboxRecords())"
 | 
	
		
			
				|  |  | +                       :disabled="$refs.reimbursementUserTable && $refs.reimbursementUserTable.getCheckboxRecords().length === 0"
 | 
	
		
			
				|  |  | +                       plain>批量绑定
 | 
	
		
			
				|  |  | +            </el-button>
 | 
	
		
			
				|  |  | +            <el-button v-if="hasPermission('reimbursementBusinessTwo:del')" type="danger" size="small" icon="el-icon-delete"
 | 
	
		
			
				|  |  | +                       @click="delInvoice()"
 | 
	
		
			
				|  |  | +                       :disabled="$refs.reimbursementUserTable && $refs.reimbursementUserTable.getCheckboxRecords().length === 0"
 | 
	
		
			
				|  |  | +                       plain>删除
 | 
	
		
			
				|  |  | +            </el-button>
 | 
	
		
			
				|  |  | +          </el-row>
 | 
	
		
			
				|  |  | +        </template>
 | 
	
		
			
				|  |  | +      </vxe-toolbar>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      <div style="height: calc(100% - 80px);">
 | 
	
		
			
				|  |  | +        <vxe-table
 | 
	
		
			
				|  |  | +          border="inner"
 | 
	
		
			
				|  |  | +          auto-resize
 | 
	
		
			
				|  |  | +          resizable
 | 
	
		
			
				|  |  | +          height="auto"
 | 
	
		
			
				|  |  | +          :loading="loading"
 | 
	
		
			
				|  |  | +          size="small"
 | 
	
		
			
				|  |  | +          ref="reimbursementUserTable"
 | 
	
		
			
				|  |  | +          show-header-overflow
 | 
	
		
			
				|  |  | +          show-overflow
 | 
	
		
			
				|  |  | +          highlight-hover-row
 | 
	
		
			
				|  |  | +          :menu-config="{}"
 | 
	
		
			
				|  |  | +          :print-config="{}"
 | 
	
		
			
				|  |  | +          :export-config="{
 | 
	
		
			
				|  |  | +                    remote: true,
 | 
	
		
			
				|  |  | +                    filename: `兴光项目无票报销数据${moment(new Date()).format('YYYY-MM-DD')}`,
 | 
	
		
			
				|  |  | +                    sheetName: '兴光项目无票报销数据',
 | 
	
		
			
				|  |  | +                    exportMethod: exportMethod,
 | 
	
		
			
				|  |  | +                    types: ['xlsx'],
 | 
	
		
			
				|  |  | +                    modes: ['current', 'selected', 'all']
 | 
	
		
			
				|  |  | +                  }"
 | 
	
		
			
				|  |  | +          :sort-config="{remote:true}"
 | 
	
		
			
				|  |  | +          :data="dataList"
 | 
	
		
			
				|  |  | +          :checkbox-config="{}">
 | 
	
		
			
				|  |  | +          <vxe-column type="checkbox" width="40px"></vxe-column>
 | 
	
		
			
				|  |  | +          <vxe-column width="172px" title="报销人" field="userName" align="center" visible></vxe-column>
 | 
	
		
			
				|  |  | +          <vxe-column width="172px" title="报销人部门" field="userOfficeName" align="center" visible></vxe-column>
 | 
	
		
			
				|  |  | +          <vxe-column width="172px" title="报销年份" field="year" align="center"></vxe-column>
 | 
	
		
			
				|  |  | +          <vxe-column width="172px" title="报销类型" field="reimbursementType" align="center">
 | 
	
		
			
				|  |  | +            <template slot-scope="scope">
 | 
	
		
			
				|  |  | +              <el-tag v-if="scope.row.reimbursementType === '1'"> 正常报销</el-tag>
 | 
	
		
			
				|  |  | +              <el-tag v-if="scope.row.reimbursementType === '2'"> 补差</el-tag>
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +          </vxe-column>
 | 
	
		
			
				|  |  | +          <vxe-column width="172px" title="实发类型" field="reimbursementFsalary" align="center">
 | 
	
		
			
				|  |  | +            <template slot-scope="scope">
 | 
	
		
			
				|  |  | +              <el-tag v-if="scope.row.reimbursementFsalary === '1'"> 登记不实发</el-tag>
 | 
	
		
			
				|  |  | +              <el-tag v-if="scope.row.reimbursementFsalary === '2'"> 登记并实发</el-tag>
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +          </vxe-column>
 | 
	
		
			
				|  |  | +          <vxe-column width="172px" title="报销天数" field="reimbursementDay" align="center"></vxe-column>
 | 
	
		
			
				|  |  | +          <vxe-column width="172px" title="报销额度" field="reimbursementAmount" align="center"></vxe-column>
 | 
	
		
			
				|  |  | +          <vxe-column title="操作" width="300px" fixed="right" align="center">
 | 
	
		
			
				|  |  | +            <template slot-scope="scope">
 | 
	
		
			
				|  |  | +              <el-button v-if="hasPermission('accountant:reimbursementBusinessTwo:binding') && scope.row.parentId !== '0'" type="text"
 | 
	
		
			
				|  |  | +                         icon="el-icon-plus" size="small" @click="openDialog(scope.row)">绑定业务编号
 | 
	
		
			
				|  |  | +              </el-button>
 | 
	
		
			
				|  |  | +              <el-button v-if="hasPermission('accountant:reimbursementBusinessTwo:del') && scope.row.parentId !== '0'" type="text"
 | 
	
		
			
				|  |  | +                         icon="el-icon-delete" size="small" @click="delInvoice(scope.row.id)">删除
 | 
	
		
			
				|  |  | +              </el-button>
 | 
	
		
			
				|  |  | +            </template>
 | 
	
		
			
				|  |  | +          </vxe-column>
 | 
	
		
			
				|  |  | +        </vxe-table>
 | 
	
		
			
				|  |  | +        <vxe-pager
 | 
	
		
			
				|  |  | +          background
 | 
	
		
			
				|  |  | +          size="small"
 | 
	
		
			
				|  |  | +          :current-page="tablePage.currentPage"
 | 
	
		
			
				|  |  | +          :page-size="tablePage.pageSize"
 | 
	
		
			
				|  |  | +          :total="tablePage.total"
 | 
	
		
			
				|  |  | +          :page-sizes="[10, 20, 100, 1000, {label: '全量数据', value: 1000000}]"
 | 
	
		
			
				|  |  | +          :layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']"
 | 
	
		
			
				|  |  | +          @page-change="currentChangeHandle">
 | 
	
		
			
				|  |  | +        </vxe-pager>
 | 
	
		
			
				|  |  | +      </div>
 | 
	
		
			
				|  |  | +    </div>
 | 
	
		
			
				|  |  | +    <!-- 弹窗, 新增 / 修改 -->
 | 
	
		
			
				|  |  | +    <reimbursementForm ref="reimbursementForm" @refreshDataList="refreshList"></reimbursementForm>
 | 
	
		
			
				|  |  | +    <reimbursementGatheringTimeForm ref="reimbursementGatheringTimeForm" @refreshDataList="refreshList"></reimbursementGatheringTimeForm>
 | 
	
		
			
				|  |  | +    <reimbursementRatioForm ref="reimbursementRatioForm" @refreshDataList="refreshList"></reimbursementRatioForm>
 | 
	
		
			
				|  |  | +    <reimbursementBusinessForm ref="reimbursementBusinessForm" @refreshDataList="refreshList"></reimbursementBusinessForm>
 | 
	
		
			
				|  |  | +    <reimbursementInvoiceForm ref="reimbursementInvoiceForm" @refreshDataList="refreshList"></reimbursementInvoiceForm>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +    <el-dialog
 | 
	
		
			
				|  |  | +      title="选择绑定业务编号"
 | 
	
		
			
				|  |  | +      :visible.sync="dialogVisible"
 | 
	
		
			
				|  |  | +      width="60%">
 | 
	
		
			
				|  |  | +      <el-col :span="8">
 | 
	
		
			
				|  |  | +        <label-wrap>请选择年份:</label-wrap>
 | 
	
		
			
				|  |  | +        <el-select v-model="selectedYear" filterable placeholder="请选择年份" @change="findSelectCodeListByYear">
 | 
	
		
			
				|  |  | +          <el-option
 | 
	
		
			
				|  |  | +            v-for="item in selectYear"
 | 
	
		
			
				|  |  | +            :key="item"
 | 
	
		
			
				|  |  | +            :label="item"
 | 
	
		
			
				|  |  | +            :value="item">
 | 
	
		
			
				|  |  | +          </el-option>
 | 
	
		
			
				|  |  | +        </el-select>
 | 
	
		
			
				|  |  | +      </el-col>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      <el-col :span="8">
 | 
	
		
			
				|  |  | +        <label-wrap>请选择报销来源:</label-wrap>
 | 
	
		
			
				|  |  | +        <el-select v-model="reimbursementAddress" placeholder="请选择报销来源"  @change="findSelectCodeListByYear">
 | 
	
		
			
				|  |  | +          <el-option
 | 
	
		
			
				|  |  | +            v-for="item in this.$dictUtils.getDictList('reimbursement_address')"
 | 
	
		
			
				|  |  | +            :key="item.value"
 | 
	
		
			
				|  |  | +            :label="item.label"
 | 
	
		
			
				|  |  | +            :value="item.value">
 | 
	
		
			
				|  |  | +          </el-option>
 | 
	
		
			
				|  |  | +        </el-select>
 | 
	
		
			
				|  |  | +      </el-col>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      <el-col :span="8">
 | 
	
		
			
				|  |  | +        <label-wrap>请选择业务编号:</label-wrap>
 | 
	
		
			
				|  |  | +        <el-select v-model="selectedCode" filterable clearable placeholder="请选择业务编号" @change="determination($event)">
 | 
	
		
			
				|  |  | +          <el-option
 | 
	
		
			
				|  |  | +            v-for="item in selectCode"
 | 
	
		
			
				|  |  | +            :key="item.id"
 | 
	
		
			
				|  |  | +            :label="item.businessCode"
 | 
	
		
			
				|  |  | +            :value="item.id">
 | 
	
		
			
				|  |  | +          </el-option>
 | 
	
		
			
				|  |  | +        </el-select>
 | 
	
		
			
				|  |  | +      </el-col>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +      <span slot="footer" class="dialog-footer">
 | 
	
		
			
				|  |  | +    <el-button @click="closeDialog">取 消</el-button>
 | 
	
		
			
				|  |  | +    <el-button type="primary" @click="bindBusinessCode">确 定</el-button>
 | 
	
		
			
				|  |  | +  </span>
 | 
	
		
			
				|  |  | +    </el-dialog>
 | 
	
		
			
				|  |  | +  </div>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +</template>
 | 
	
		
			
				|  |  | +<script>
 | 
	
		
			
				|  |  | +  import ReimbursementSys from '@/api/reimbursementSys/reimbursementIsNoTicketService'
 | 
	
		
			
				|  |  | +  import SelectUserTree from '@/views/modules/reimbursementSys/utils/treeReimbursementBuinessUserSelect.vue'
 | 
	
		
			
				|  |  | +  import reimbursementForm from './reimbursementForm'
 | 
	
		
			
				|  |  | +  import reimbursementGatheringTimeForm from './reimbursementGatheringTimeForm'
 | 
	
		
			
				|  |  | +  import reimbursementRatioForm from './reimbursementRatioForm'
 | 
	
		
			
				|  |  | +  import reimbursementInvoiceForm from './reimbursementInvoiceForm'
 | 
	
		
			
				|  |  | +  import reimbursementBusinessForm from './reimbursementIsNoTicketForm'
 | 
	
		
			
				|  |  | +  import reimbursementSelect from './reimbursementSelectDialog'
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  export default {
 | 
	
		
			
				|  |  | +    data () {
 | 
	
		
			
				|  |  | +      return {
 | 
	
		
			
				|  |  | +        dataList: [],
 | 
	
		
			
				|  |  | +        searchForm: {
 | 
	
		
			
				|  |  | +          year: '',
 | 
	
		
			
				|  |  | +          userId: '',
 | 
	
		
			
				|  |  | +          officeType: '1'
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        tablePage: {
 | 
	
		
			
				|  |  | +          total: 0,
 | 
	
		
			
				|  |  | +          currentPage: 1,
 | 
	
		
			
				|  |  | +          pageSize: 10,
 | 
	
		
			
				|  |  | +          orders: [{column: 'a.create_date', asc: false}]
 | 
	
		
			
				|  |  | +        },
 | 
	
		
			
				|  |  | +        loading: false,
 | 
	
		
			
				|  |  | +        dialogVisible: false,
 | 
	
		
			
				|  |  | +        bindObj: [],
 | 
	
		
			
				|  |  | +        selectCode: [],
 | 
	
		
			
				|  |  | +        selectedCode: '',
 | 
	
		
			
				|  |  | +        selectYear: [],
 | 
	
		
			
				|  |  | +        selectedYear: '',
 | 
	
		
			
				|  |  | +        reimbursementAddress: '',
 | 
	
		
			
				|  |  | +        reimbursementAmount: 0,
 | 
	
		
			
				|  |  | +        canReimbursementAmount: 0
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    components: {
 | 
	
		
			
				|  |  | +      reimbursementForm,
 | 
	
		
			
				|  |  | +      reimbursementGatheringTimeForm,
 | 
	
		
			
				|  |  | +      reimbursementRatioForm,
 | 
	
		
			
				|  |  | +      reimbursementInvoiceForm,
 | 
	
		
			
				|  |  | +      reimbursementBusinessForm,
 | 
	
		
			
				|  |  | +      reimbursementSelect,
 | 
	
		
			
				|  |  | +      SelectUserTree
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    ReimbursementSys: null,
 | 
	
		
			
				|  |  | +    created () {
 | 
	
		
			
				|  |  | +      this.reimbursementSys = new ReimbursementSys()
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    activated () {
 | 
	
		
			
				|  |  | +      this.refreshList()
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    methods: {
 | 
	
		
			
				|  |  | +      // 获取数据列表
 | 
	
		
			
				|  |  | +      refreshList () {
 | 
	
		
			
				|  |  | +        this.loading = true
 | 
	
		
			
				|  |  | +        this.reimbursementSys.findList({
 | 
	
		
			
				|  |  | +          'current': this.tablePage.currentPage,
 | 
	
		
			
				|  |  | +          'size': this.tablePage.pageSize,
 | 
	
		
			
				|  |  | +          'orders': this.tablePage.orders,
 | 
	
		
			
				|  |  | +          ...this.searchForm
 | 
	
		
			
				|  |  | +        }).then(({data}) => {
 | 
	
		
			
				|  |  | +          this.dataList = data.records
 | 
	
		
			
				|  |  | +          this.tablePage.total = data.total
 | 
	
		
			
				|  |  | +          this.loading = false
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      // 当前页
 | 
	
		
			
				|  |  | +      currentChangeHandle ({currentPage, pageSize}) {
 | 
	
		
			
				|  |  | +        this.tablePage.currentPage = currentPage
 | 
	
		
			
				|  |  | +        this.tablePage.pageSize = pageSize
 | 
	
		
			
				|  |  | +        this.refreshList()
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      resetSearch () {
 | 
	
		
			
				|  |  | +        this.$refs.searchForm.resetFields()
 | 
	
		
			
				|  |  | +        this.$nextTick(() => {
 | 
	
		
			
				|  |  | +          this.refreshList()
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      // 修改发票信息
 | 
	
		
			
				|  |  | +      modifyInvoice (id) {
 | 
	
		
			
				|  |  | +        this.$refs.reimbursementInvoiceModify.init('modifyInvoice', {id: id, parent: {id: '', name: ''}})
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      // 删除
 | 
	
		
			
				|  |  | +      delInvoice (id) {
 | 
	
		
			
				|  |  | +        let ids = id || this.$refs.reimbursementUserTable.getCheckboxRecords().map(item => {
 | 
	
		
			
				|  |  | +          return item.id
 | 
	
		
			
				|  |  | +        }).join(',')
 | 
	
		
			
				|  |  | +        this.$confirm(`确定删除该记录吗?`, '提示', {
 | 
	
		
			
				|  |  | +          confirmButtonText: '确定',
 | 
	
		
			
				|  |  | +          cancelButtonText: '取消',
 | 
	
		
			
				|  |  | +          type: 'warning'
 | 
	
		
			
				|  |  | +        }).then(() => {
 | 
	
		
			
				|  |  | +          this.loading = true
 | 
	
		
			
				|  |  | +          this.reimbursementSys.deleteInvoice(ids).then(({data}) => {
 | 
	
		
			
				|  |  | +            this.loading = false
 | 
	
		
			
				|  |  | +            this.$message({
 | 
	
		
			
				|  |  | +              message: data,
 | 
	
		
			
				|  |  | +              type: 'success',
 | 
	
		
			
				|  |  | +              duration: 1500
 | 
	
		
			
				|  |  | +            })
 | 
	
		
			
				|  |  | +            this.refreshList()
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      addBusinessInfo (id, businessCode) {
 | 
	
		
			
				|  |  | +        this.$refs.reimbursementBusinessForm.init('addBusinessInfo', {
 | 
	
		
			
				|  |  | +          id: '',
 | 
	
		
			
				|  |  | +          businessCodeId: '',
 | 
	
		
			
				|  |  | +          businessCode: '',
 | 
	
		
			
				|  |  | +          parent: {id: '', name: ''}
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      bindBusinessCode () {
 | 
	
		
			
				|  |  | +        if (this.selectedCode === '') {
 | 
	
		
			
				|  |  | +          this.$message.error('请选择业务编号')
 | 
	
		
			
				|  |  | +          return
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        this.reimbursementSys.modifyBindCode({
 | 
	
		
			
				|  |  | +          'ids': this.bindObj,
 | 
	
		
			
				|  |  | +          'businessCode': this.selectedCode,
 | 
	
		
			
				|  |  | +          'reimbursementAddress': this.reimbursementAddress
 | 
	
		
			
				|  |  | +        }).then(({data}) => {
 | 
	
		
			
				|  |  | +          if (!data) {
 | 
	
		
			
				|  |  | +            this.$message.error('可报销额度不足')
 | 
	
		
			
				|  |  | +          } else {
 | 
	
		
			
				|  |  | +            this.closeDialog()
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      openDialog (obj) {
 | 
	
		
			
				|  |  | +        // eslint-disable-next-line eqeqeq
 | 
	
		
			
				|  |  | +        this.bindObj = obj.id || obj.map(item => {
 | 
	
		
			
				|  |  | +          return item.id
 | 
	
		
			
				|  |  | +        }).join(',')
 | 
	
		
			
				|  |  | +        this.dialogVisible = true
 | 
	
		
			
				|  |  | +        if (obj.length > 1) {
 | 
	
		
			
				|  |  | +          obj.map(item => {
 | 
	
		
			
				|  |  | +            this.reimbursementAmount += parseInt(item.reimbursementAmount)
 | 
	
		
			
				|  |  | +          })
 | 
	
		
			
				|  |  | +        } else {
 | 
	
		
			
				|  |  | +          this.reimbursementAmount = obj.reimbursementAmount
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        this.reimbursementSys.findSelectYearList().then(({data}) => {
 | 
	
		
			
				|  |  | +          this.selectYear = data
 | 
	
		
			
				|  |  | +          this.selectedYear = this.selectYear[0]
 | 
	
		
			
				|  |  | +          this.findSelectCodeListByYear()
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      closeDialog () {
 | 
	
		
			
				|  |  | +        this.dialogVisible = false
 | 
	
		
			
				|  |  | +        this.selectedCode = ''
 | 
	
		
			
				|  |  | +        this.refreshList()
 | 
	
		
			
				|  |  | +        this.bindObj = []
 | 
	
		
			
				|  |  | +        this.reimbursementAmount = 0
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      findSelectCodeListByYear () {
 | 
	
		
			
				|  |  | +        this.selectedCode = ''
 | 
	
		
			
				|  |  | +        this.reimbursementSys.findSelectCodeListByYear(this.selectedYear, this.reimbursementAddress).then(({data}) => {
 | 
	
		
			
				|  |  | +          this.selectCode = data
 | 
	
		
			
				|  |  | +          this.selectedCode = ''
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      determination (e) {
 | 
	
		
			
				|  |  | +        for (let i = 0; i < this.selectCode.length; i++) {
 | 
	
		
			
				|  |  | +          if (this.selectCode[i].id === e) {
 | 
	
		
			
				|  |  | +            if (parseInt(this.selectCode[i].canReimbursementAmount) < parseInt(this.reimbursementAmount)) {
 | 
	
		
			
				|  |  | +              this.$message.error('可报销额度不足,可报销额度为' + this.selectCode[i].canReimbursementAmount)
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +      },
 | 
	
		
			
				|  |  | +      // 自定义服务端导出
 | 
	
		
			
				|  |  | +      exportMethod ({ options }) {
 | 
	
		
			
				|  |  | +        // 传给服务端的参数
 | 
	
		
			
				|  |  | +        const params = {
 | 
	
		
			
				|  |  | +          'current': this.tablePage.currentPage,
 | 
	
		
			
				|  |  | +          'size': this.tablePage.pageSize,
 | 
	
		
			
				|  |  | +          'orders': this.tablePage.orders,
 | 
	
		
			
				|  |  | +          ...this.searchForm,
 | 
	
		
			
				|  |  | +          filename: options.filename,
 | 
	
		
			
				|  |  | +          sheetName: options.sheetName,
 | 
	
		
			
				|  |  | +          isHeader: options.isHeader,
 | 
	
		
			
				|  |  | +          original: options.original,
 | 
	
		
			
				|  |  | +          mode: options.mode,
 | 
	
		
			
				|  |  | +          selectIds: options.mode === 'selected' ? options.data.map(item => item.id) : [],
 | 
	
		
			
				|  |  | +          exportFields: options.columns.map(column => column.property)
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        return this.reimbursementSys.exportExcel(params).then((res) => {
 | 
	
		
			
				|  |  | +          // 将二进制流文件写入excel表,以下为重要步骤
 | 
	
		
			
				|  |  | +          this.$utils.downloadExcel(res.data, options.filename)
 | 
	
		
			
				|  |  | +        }).catch(function (err) {
 | 
	
		
			
				|  |  | +          if (err.response) {
 | 
	
		
			
				|  |  | +            console.log(err.response)
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +</script>
 |