<style scoped>
  @import "../css/cssReset.css";
  .page_addFD {
    margin-top: 20px;
    position: relative;
    height: 1024px;
  }

  .Receipt_box {
    padding: 15px;
    color: #c94052;
    width: 830px;
    position: relative;
  }

  .page_form {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 60px;
  }

  .Receipt_box tr th {
    color: #c94052
  }

  .Receipt_box.color_blur tr th {
    color: #106BAF
  }

  .Receipt_box.color_blur {
    color: #106BAF;
    background-color: white;
  }

  .Receipt_box.color_blur .rb_stit span {
    display: inline-block;
    border-bottom: 2px solid #106BAF;
    padding: 0 20px
  }

  .rb_tit {
    font-size: 18px;
    text-align: center
  }

  .rb_stit {
    font-size: 14px;
    text-align: center;
    margin-top: 10px;
  }

  .rb_stit span {
    display: inline-block;
    border-bottom: 2px solid #C94052;
    padding: 0 20px
  }

  .rb_top_row {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    align-items: center;
    margin-top: 10px
  }

  .rb_top_row span._r_name {
    color: #333333;
    display: inline-block;
  }

  .rb_top_row span._r_bold {
    font-weight: bold
  }

  .rb_top_row ._r_time span {
    color: #333333
  }

  ._r_mb5 {
    margin-bottom: 10px;
  }

  .Receipt_table {
    width: 100%;
    font-size: 14px;
    text-align: center
  }

  .Receipt_table th {
    font-weight: 200 !important
  }

  .Receipt_table tr th,
  .Receipt_table tr td {
    background-color: white;
    position: relative;
  }

  ._r_mt10 {
    margin-top: 10px;
  }

  .Receipt_box.color_blur {
    color: #106BAF;
  }

  .Receipt_box.color_blur .rb_stit span {
    display: inline-block;
    border-bottom: 2px solid #106BAF;
    padding: 0 20px
  }

  td {
    padding: 5px;
    height: 34px;
  }

  ._border_b_1 {
    border-bottom: 1px solid #666666 !important;
  }

  ._flow_chart {
    position: absolute;
    display: inline-block;
    right: 15px;
    top: 7px;
    padding: 5px 25px;
    font-size: 12px;
    color: #FFFFFF;
    background-color: #E95252;
    border-radius: 14px;
    cursor: pointer;
  }

  ._explain {
    padding: 20px 0 10px 0;
    border-top: 1px dashed #BFBFBF;
    background-color: white;
    margin-top: 15px
  }

  ._explain>p {
    color: #1273BC;
    font-size: 12px;
  }

  ._explain>div {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    color: #333333;
    margin-top: 10px;
    align-items: center;
  }

  ._explain>div span {
    display: inline-block;
  }

  ._remark p {
    color: #1273BC;
    font-size: 12px;
  }

  ._remark textarea {
    width: 100%;
    height: 100px;
    background: rgba(255, 255, 255, 1);
    border: 1px solid rgba(220, 220, 220, 1);
    border-radius: 4px;
    margin-top: 10px;
    padding: 15px;
  }

  ._log_t {
    padding: 10px;
  }

  ._submit {
    height: 50px;
    padding: 10px 20px;
    width: 830px;
    position: absolute;
    bottom: -50px;
    left: 0;
    display: flex;
    background-color: white;
  }

  ._submit .btn-box {
    width: 216px;
  }

  ._submit .chosenNextBox {
    flex: 1;
    font-size: 12px;
    height: 30px;
    line-height: 30px;
  }

  ._submit .chosenNextBox .red {
    color: #C94052;
    margin-right: 15px;
  }

  ._submit .el-input__inner {
    width: 300px !important;
  }

  ._color_b {
    color: #333333 !important;
    font-size: 12px
  }

  ._font_size12 {
    font-size: 12px !important
  }

  ._addUpload_box {
    display: block;
    margin-top: 15px
  }

  ._addUpload_box img {
    width: 100%;
    height: 100%;
  }

  ._addUpload_box>div {
    float: left;
    width: 138px;
    height: 92px;
    border: 1px dashed rgba(210, 210, 210, 1);
    border-radius: 2px;
    cursor: pointer;
    margin-bottom: 10px;
    padding: 5px;
    margin-right: 10px;
    position: relative;
  }

  ._addUpload_box>div:hover {
    background-color: #f5f5f5;
  }

  ._addFile_name {
    padding-left: 15px;
    max-width: 450px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  ._addUpload_box .icon-guanbi1 {
    font-size: 12px;
    color: white;
    display: inline-block;
    margin-left: 15px;
    position: absolute;
    right: -6px;
    top: -9px;
    background-color: #f56c6c;
    border-radius: 50%;
    height: 20px;
    width: 20px;
    text-align: center;
    line-height: 20px;
  }

  ._addUpload_box .icon-guanbi1:hover {
    font-size: 12px;
    color: #c94052;
  }

  ._addUpload_box .icon-excel,
  ._addUpload_box .icon-pdf {
    text-align: center;
    font-size: 38px;
    color: green;
    line-height: 75px;
  }

  ._show_img_box {
    position: fixed;
    background: rgba(0, 0, 0, .6);
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 999;
    text-align: center;
  }

  ._IsPublic {
    margin-left: 0;
    margin-top: 10px;
  }

  ._IsPublic .el-radio__label {
    font-size: 12px;
  }

  ._submit .chosenNextBox {
    flex: 1;
    font-size: 12px;
    height: 30px;
    line-height: 30px;
  }

  ._submit .chosenNextBox .red {
    color: #C94052;
    margin-right: 15px;
  }

  ._display_inline {
    display: inline !important;
  }

  ._addUpload_tips {
    font-size: 12px;
    color: #999999;
  }

  ._jump_page {
    cursor: pointer;
    text-decoration: underline;
  }

  ._jump_page:hover {
    color: #c94052;
  }

  ._TCIDAndTCNUMList {
    display: flex;
  }

  ._TCIDAndTCNUMList ._TCIDAndTCNUMList_item span {
    display: inline-block;
    padding-bottom: 5px;
  }

  ._font_bold {
    font-weight: bold;
  }

  ._TCIDAndTCNUMList_item {
    max-width: 160px;
  }

  .page_addFD ._yewudanju {
    position: absolute;
    text-align: right;
    font-size: 12px;
    right: 15px;
    top: 60px;
  }

  .iconfont._delete_row {
    position: absolute;
    right: -30px;
    top: 10px;
    cursor: pointer;
  }

  .page_addFD .el-radio+.el-radio {
    margin-left: 20px;
  }

  .page_addFD .rb_top_row input {
    font-size: 12px;
  }

</style>
<template>
  <div class="page_addFD" v-loading='loading'>
    <div class="page_form">
      <div class="Receipt_box color_blur">
        <el-popover popper-class="detailsIT_Journal" width="600" placement="right-start" trigger="click">
          <div class="InfoChangeLog">
            <div class="changLog">
              <p class="_log_t">{{$t('fnc.spliucheng')}}</p>
              <my-FlowChartModule :data="AuditListData"></my-FlowChartModule>
            </div>
          </div>
          <span slot="reference" class="_flow_chart">{{$t('fnc.liuchengtu')}}</span>
        </el-popover>
        <p class="rb_tit">{{BillName}}
          (<el-select filterable v-model='msg.RB_Branch_Id' ref='CostTypeId'
            @change="admin_get_DepartmentGetList(msg.RB_Branch_Id)" class="w120 _border_b_1">
            <el-option v-for='item in CompanyList' :label='item.SName' :value='item.SId' :key='item.SId'
              :disabled="item.disabled">
            </el-option>
          </el-select>)
        </p>
        <p class="rb_stit">
          <span>{{BillSonName}}</span>
        </p>
        <p class="_yewudanju" v-if="OrderSource==8">{{$t('hotel.order_Number')}}：<span
            @click="msg.OrderID>0?jumpPage('RegistrationList',GetDetail,8):''">{{msg.OrderID==0?$t('fnc.no'):msg.OrderID}}</span>
        </p>
        <div class="rb_top_row _r_mb5 ceshi">
          <p>{{$t('fnc.fkduixiang')}}：
            <el-select v-if='msg.TemplateId===90||msg.TemplateId===91' filterable v-model='msg.IsPublic'
              placeholder="付款类型" @change="IsPublicChange" class="w135 _border_b_1">
              <el-option label="虚拟账户" :value='10' :key='10' v-if='msg.TemplateId===90||msg.TemplateId===91'></el-option>

            </el-select>
            <el-select v-else filterable v-model='msg.IsPublic' placeholder="付款类型" @change="IsPublicChange"
              class="w135 _border_b_1">
              <el-option :label="$t('fnc.gongzhang')" :value='1' :key='1'
                v-if='msg.TemplateId!==36 && msg.TemplateId!==37 && msg.TemplateId!==48 && msg.TemplateId !==53'>
              </el-option>
              <el-option :label="$t('fnc.sizhang')" :value='0' :key='0'
                v-if='msg.TemplateId!==36 && msg.TemplateId!==37  && msg.TemplateId!==48 && msg.TemplateId !==53'>
              </el-option>
              <el-option :label="$t('fnc.rmbxianjin')" :value='2' :key='2'
                v-if='msg.TemplateId!==36 && msg.TemplateId!==37  && msg.TemplateId!==48 && msg.TemplateId !==53'>
              </el-option>
              <el-option :label="$t('fnc.wbxianjin')" :value='3' :key='3'
                v-if='msg.TemplateId!==36 && msg.TemplateId!==37 && msg.TemplateId!==48 && msg.TemplateId !==53'>
              </el-option>
              <el-option :label="$t('fnc.zjinchi')" :value='4' :key='4'
                v-if='msg.TemplateId===36 || msg.TemplateId===37 || msg.TemplateId===48 || msg.TemplateId===53|| msg.TemplateId===51|| msg.TemplateId===52'>
              </el-option>
              <el-option :label="$t('fnc.ptxnzhanghu')" :value='5' :key='5'
                v-if='msg.TemplateId!==36 && msg.TemplateId!==37  && msg.TemplateId!==48 && msg.TemplateId !==53'>
              </el-option>
              <el-option :label="$t('fnc.djxnzhanghu')" :value='6' :key='6'
                v-if='msg.TemplateId!==36 && msg.TemplateId!==37  && msg.TemplateId!==48 && msg.TemplateId !==53'>
              </el-option>
              <el-option :label="$t('fnc.szxiangdi')" :value='7' :key='7'
                v-if='msg.TemplateId!==36 && msg.TemplateId!==37  && msg.TemplateId!==48 && msg.TemplateId !==53'>
              </el-option>
              <el-option label="原路退款" :value='8' :key='8'
                v-if='msg.TemplateId===2 || msg.TemplateId===12 ||msg.TemplateId===61 || msg.TemplateId===62 || msg.TemplateId===120'>
              </el-option>
              <el-option label="地接预支款" :value='9' :key='9'
                v-if='msg.TemplateId===67||msg.TemplateId===74||msg.TemplateId===119'></el-option>
              <el-option label="电商结算" :value='11' :key='11' v-if='msg.TemplateId===121'></el-option>
            </el-select>
            <el-select v-if="!showDisable" filterable v-model='msg.ClientType' :placeholder="$t('fnc.khleixing')"
              @change="financeinfo_post_GetClientAccountList(msg.ClientType)" class="w135 _border_b_1">
              <el-option v-for='item in ClientTypeList' :label='item.Name' :value='item.ID' :key='item.ID'>
              </el-option>
            </el-select>
            <template v-if="msg.ClientType==7&&msg.IsPublic!=2&&msg.IsPublic!=3&&!showDisable">
              <el-select v-if="msg.IsLeader==1" filterable v-model='msg.ClientID' :placeholder="$t('fnc.khmingcheng')"
                @change="GetClientAccountList(msg.ClientID)" class="w135 _border_b_1">
                <el-option v-for='item in ClientAccountList' :label='item.Name' :value='item.ID' :key='item.ID'>
                </el-option>
              </el-select>
            </template>
            <template v-if="msg.ClientType!=7&&msg.IsPublic!=2&&msg.IsPublic!=3&&!showDisable">
              <el-select filterable v-model='msg.ClientID' :placeholder="$t('fnc.khmingcheng')"
                @change="GetClientAccountList(msg.ClientID)" class="w135 _border_b_1">
                <el-option v-for='item in ClientAccountList' :label='item.Name' :value='item.ID' :key='item.ID'>
                </el-option>
              </el-select>
            </template>
            <template v-if="(msg.IsPublic==2||msg.IsPublic==3)&&msg.IsLeader==1">
              <el-input v-model='msg.RemitterName' :placeholder="$t('system.ph_name')" class="w135 _border_b_1">
              </el-input>
            </template>
          </p>
          <p><span
              class="">{{$t('hotel.hotel_SerialNumber')}}.</span>{{GetDetail.FrID==0?$t('fnc.daishengcheng'):GetDetail.FrID}}
          </p>
        </div>
        <div class="rb_top_row _r_mb5">
          <template v-if="msg.IsPublic!=2&&msg.IsPublic!=3&&(msg.ClientType==7&&msg.IsLeader==1)&&msg.IsPublic!=4">
            <p>{{$t('fnc.fkzhanghu')}}：
              <el-select filterable v-model='msg.AccountNumber' :placeholder="$t('fnc.qxzfkzh')"
                class="w425 _border_b_1">
                <el-option v-for='item in ClientAccountListS' :label='item.allName' :value='item.allName'
                  :key='item.allName'>
                </el-option>
              </el-select>
            </p>
          </template>
          <template v-if="msg.ClientType!=7&&msg.IsPublic!=2&&msg.IsPublic!=3&&msg.IsPublic!=4">
            <p>{{$t('fnc.fkzhanghu')}}：
              <el-select filterable v-model='msg.AccountNumber' :placeholder="$t('fnc.qxzfkzh')"
                class="w425 _border_b_1">
                <el-option v-for='item in ClientAccountListS' :label='item.allName' :value='item.allName'
                  :key='item.allName'>
                </el-option>
              </el-select>
            </p>
          </template>
          <template v-if="msg.ClientType==7&&msg.IsLeader==0&&msg.IsPublic!=4">
            <p>{{$t('fnc.ldmingcheng')}}：
              <el-input v-model='msg.RemitterName' :placeholder="$t('system.ph_name')" class="w425 _border_b_1">
              </el-input>
            </p>
          </template>
          <template v-if="(msg.IsPublic==2||msg.IsPublic==3)&&msg.IsLeader==1">
            <p>&nbsp;</p>
          </template>
          <p v-if="GetDetail.IsPublic==4" class="_r_name" style="color: #fff;"></p>
          <p class="_r_time">
            <span>{{yaer}}</span> {{$t('pub.year')}} <span>{{month}}</span> {{$t('pub.month')}} <span>{{dateS}}</span>
            {{$t('fnc.day')}} <span>{{timer}}</span>
          </p>
        </div>
        <table class="Receipt_table" border="1" bordercolor="#106BAF" style="border-collapse:collapse;">
          <tr>
            <th rowspan="2" width="150">{{$t('fnc.fyshuoming')}}</th>
            <th rowspan="2">{{$t('restaurant.res_Number')}}</th>
            <th rowspan="2">{{$t('fnc.danjia')}}</th>
            <th rowspan="2" width="100">{{$t('hotel.hotel_Currency')}}</th>
            <th colspan="3">{{$t('fnc.jine')}}</th>
            <th rowspan="2">{{$t('hotel.hotel_remark')}}</th>
          </tr>
          <tr>
            <th width="88">{{$t('fnc.yuanbi')}}</th>
            <th width="50">{{$t('hotel.hotel_CurrentRate')}}</th>
            <th width="88">{{$t('fnc.bweibi')}}</th>
          </tr>
          <template v-for="(da,daIn) in msg.detailList">
            <tr v-if="!da.show" @click="showEdit(daIn)" class="_color_b">
              <td height="26px">{{da.CostTypeName}}</td>
              <td height="26px">{{da.Number}}</td>
              <td height="26px">{{da.UnitPriceTo}}</td>
              <td height="26px">{{da.currenName}}</td>
              <td height="26px">{{da.yTotalPriceTo}}</td>
              <td height="26px">{{da.Rate}}</td>
              <td height="26px">{{da.bTotalPriceTo}}</td>
              <td height="26px">{{da.Remark}}</td>
            </tr>
            <tr class="addList2" v-else @keyup.enter="addList(2,daIn+1)">
              <td height="26px">
                <el-select filterable v-model='da.CostTypeId' ref='CostTypeId' :placeholder="$t('rule.qxzfyshuoming')"
                  @change="getCostTypeName(da.CostTypeId, daIn),getRate(da.CostTypeId,da.CurrencyId,2,daIn),addList(2,daIn+1)"
                  class=" _border_b_1">
                  <el-option v-for='item in GetCostTypeList' :label='item.Name' :value='item.ID' :key='item.ID'>
                  </el-option>
                </el-select>
              </td>
              <td height="26px">
                <el-input v-model="da.Number" @keyup.native="checkInteger(da,'Number')" :disabled="daIn === 0 && XSTC"
                  type="text" @blur="addList(2,daIn+1)" @change="Calculation(2,daIn+1)" @input="chages($event)" class="w80 _border_b_1">
                </el-input>
              </td>
              <td height="26px">
                <el-input v-model="da.UnitPrice" type="text"
                  :disabled="((msg.TemplateId == 43 || msg.TemplateId == 48 || msg.TemplateId == 56 || msg.TemplateId == 53) && !ZhuiJiaTK) || (daIn === 0 && XSTC)"
                  @keyup.native="checkPrice(da,'UnitPrice',true)" @blur="addList(2,daIn+1)"
                  @change="Calculation(2,daIn+1)"  @input="chages($event)" class="w80 h34 _border_b_1"></el-input>
              </td>
              <td height="26px">
                <el-select filterable :disabled="detailCurrDis || (daIn === 0 && XSTC)" v-model='da.CurrencyId'
                  :placeholder="$t('rule.qxzbzhong')"
                  @change="getRate(da.CostTypeId,da.CurrencyId,2,daIn),addList(2,daIn+1)" class=" _border_b_1">
                  <el-option v-for='item in coinGetList' :label='item.Name' :value='item.ID' :key='item.ID'>
                  </el-option>
                </el-select>
              </td>
              <td height="26px">{{da.yTotalPrice}}</td>
              <td height="26px">
                <el-input v-model="da.Rate" type="text" :disabled="true" class="w80 _border_b_1"></el-input>
              </td>
              <td height="26px">{{da.bTotalPrice}}</td>
              <td height="26px">
                <el-input v-model="da.Remark" type="textarea" class="w80 _border_b_1" @input="chages($event)"></el-input> <i
                  @click="deleteRow(daIn,da)"   class="_delete_row iconfont icon-img_delete_small"></i>
              </td>
            </tr>
          </template>

          <tr class="addList1" @keyup.enter="addList(1)">
            <td>
              <el-select v-if="!SelectState" filterable v-model='detailList.CostTypeId' ref='CostTypeId'
                :placeholder="$t('rule.qxzfyshuoming')"
                @change="getCostTypeName(detailList.CostTypeId), getRate(detailList.CostTypeId,detailList.CurrencyId,1),addList(1)"
                class="_border_b_1">
                <el-option v-for='item in GetCostTypeList' :label='item.Name' :value='item.ID' :key='item.ID'>
                </el-option>
              </el-select>
              <el-select v-if="SelectState" filterable v-model='detailList.CostTypeId' ref='CostTypeId'
                :placeholder="$t('rule.qxzfyshuoming')"
                @change="getCostTypeName(detailList.CostTypeId), getRate(detailList.CostTypeId,detailList.CurrencyId,1),addList(1)"
                class="_border_b_1">
                <el-option v-for='item in GetCostTypeList' :label='item.Name' :value='item.ID' :key='item.ID'
                  :disabled="SelectDisablsed!=item.ID">
                </el-option>
              </el-select>
            </td>
            <td>
              <el-input v-model="detailList.Number" type="text" @keyup.native="checkInteger(detailList,'Number')"
                @blur="addList(1)" @change="Calculation(1)" class="w80 _border_b_1"></el-input>
            </td>
            <td>
              <el-input v-model="detailList.UnitPrice" type="text"
                :disabled="(msg.TemplateId == 43 || msg.TemplateId == 48 || msg.TemplateId == 56 || msg.TemplateId == 53) && !ZhuiJiaTK"
                @keyup.native="checkPrice(detailList,'UnitPrice',true)" @blur="addList(1)" @change="Calculation(1)"
                class="w80 h34 _border_b_1"></el-input>
            </td>
            <td>
              <el-select filterable v-model='detailList.CurrencyId' :placeholder="$t('rule.qxzbzhong')"
                @change="getRate(detailList.CostTypeId,detailList.CurrencyId,1),addList(1)" class=" _border_b_1">
                <el-option v-for='item in coinGetList' :label='item.Name' :value='item.ID' :key='item.ID'>
                </el-option>
              </el-select>
            </td>
            <td>
              <span
                v-if="detailList.yTotalPrice && detailList.yTotalPrice!=''">{{detailList.yTotalPrice.toFixed(2)}}</span>
              <span v-else>{{detailList.yTotalPrice}}</span>
            </td>
            <td>
              <el-input v-model="detailList.Rate" type="text" :disabled="true" class="w80 _border_b_1"></el-input>
            </td>
            <td>{{detailList.bTotalPrice}}</td>
            <td>
              <el-input v-model="detailList.Remark" type="textarea" @blur="addList(1)"  @input="chages($event)" class="w80 _border_b_1">
              </el-input>
            </td>
          </tr>
          <tr v-if="msg.detailList.length<2">
            <td height="26px"></td>
            <td height="26px"></td>
            <td height="26px"></td>
            <td height="26px"></td>
            <td height="26px"></td>
            <td height="26px"></td>
            <td height="26px"></td>
            <td height="26px"></td>
          </tr>
          <tr v-if="msg.detailList.length<3">
            <td height="26px"></td>
            <td height="26px"></td>
            <td height="26px"></td>
            <td height="26px"></td>
            <td height="26px"></td>
            <td height="26px"></td>
            <td height="26px"></td>
            <td height="26px"></td>
          </tr>
          <tr v-if="msg.detailList.length<4">
            <td height="26px"></td>
            <td height="26px"></td>
            <td height="26px"></td>
            <td height="26px"></td>
            <td height="26px"></td>
            <td height="26px"></td>
            <td height="26px"></td>
            <td height="26px"></td>
          </tr>
          <tr>
            <td>{{$t('fnc.sfjine')}}<br /><span class="_font_size12">{{$t('fnc.daxie')}}</span></td>
            <td colspan="3">{{chinaAllPrice}}</td>
            <td>{{$t('fnc.sfjine')}}<br /><span class="_font_size12">{{$t('fnc.xiaoxie')}}</span></td>
            <td colspan="3">{{allPriceTo}}</td>
          </tr>
          <tr>
            <td>{{$t('fnc.yjfkuanriqi')}}</td>
            <td colspan="7">
              <el-date-picker clearable class="w190 _border_b_1" v-model="msg.PayDate" type="datetime"
                :placeholder="$t('fnc.qxzrqshijian')" align="right">
              </el-date-picker>
            </td>
          </tr>
        </table>
        <div class="rb_top_row _r_mt10">
          <template v-for="(item,index) in newAuditList">
            <p :key="index">
              {{item.AuditDescription}}:<span class="_r_name"></span>
            </p>
          </template>
          <p>
            业务员：<span class="_r_name _jump_page">{{emplyeeName}}</span>
          </p>
        </div>
        <div class="_explain">
          <p>{{$t('fnc.fjshuoming')}}</p>
          <div>
            <p>{{$t('fnc.fygsbumen')}}：<span>
                <el-select filterable v-model='msg.RB_Depart_Id' class="w135 _border_b_1" @change="admin_get_Depart_IdGetList(msg.RB_Depart_Id)">
                  <el-option v-for='item in departmentList' :label='item.DeptName' :value='item.DeptId'
                    :key='item.DeptId'>
                  </el-option>
                </el-select>
              </span></p>
            <template v-if="GetDetail.FrID!=0">
              <p v-if="GetDetail.OrderSource==9&&GetDetail.SourceID>0">{{$t("fnc.gnpiaowu")}}：<span
                  class="_jump_page _font_bold"
                  @click="jumpPage('SettlementOrder',GetDetail,2)">{{GetDetail.SourceID}}</span></p>
              <p v-if="GetDetail.OrderSource==10&&GetDetail.SourceID>0">{{$t('active.cl_qianzheng')}}：<span
                  class="_jump_page _font_bold"
                  @click="jumpPage('VisaProductCopy',GetDetail,3)">{{GetDetail.SourceID}}</span></p>
              <div v-if="OrderSource==4&&GetDetail.SourceID>0" class="_TCIDAndTCNUMList">
                <span>{{$t('fnc.jpshouzhi')}}：</span>
                <p class="_TCIDAndTCNUMList_item">
                  <template v-for="(i,ix) in GetDetail.TCIDAndTCNUMList">
                    <span class="_jump_page _font_bold"
                      @click="jumpPage('FinancialOrder',GetDetail,4)">{{i.TCNUM}}（{{GetDetail.SourceID}}） </span>
                    <span v-if="ix!=GetDetail.TCIDAndTCNUMList.length-1"><br /></span>
                  </template>
                </p>
              </div>
            </template>
          </div>
        </div>
        <div class="_remark">
          <p>{{$t('system.label_info')}}</p>
          <textarea v-model="Description">
                    </textarea>
        </div>
        <div>
          <div v-if="IsUploadPic===1">
            <p>{{$t('fnc.scfujian')}}<span class="_addUpload_tips">{{$t('tips.wjdxbncgsz')}}</span></p>
            <div class="_addUpload_box clearfix">
              <template v-for="(file,fIndex) in saveMsg">
                <div v-if="file.Type==3">
                  <div style="width:100%;height:100%;overflow: hidden;">
                    <img :src="file.Url?file.Url:file.Content" @click="showUpLoadFile(file)">
                  </div>
                  <span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span>
                </div>
                <div v-if="file.Type==1">
                  <div class="iconfont "
                    :class="file.Content.substring(file.Content.lastIndexOf('.')+1,file.Content.length).toUpperCase()=='PDF'? 'icon-pdf' : 'icon-excel'"
                    @click="showUpLoadFile(file)">

                  </div>
                  <span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span>
                </div>
                <div v-if="file.Type==2">
                  <div class="iconfont icon-excel" @click="showUpLoadFile(file)">

                  </div>
                  <span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span>
                </div>
              </template>
              <div class="_pic_upload">
                <el-upload drag :http-request="uploadFileBtn" :multiple="true" :show-file-list="false" action="">
                  <i class="el-icon-plus avatar-uploader-icon"></i>
                  <div class="el-upload__text">{{$t('active.ld_djscwj')}}</div>
                </el-upload>
              </div>
            </div>
          </div>
          <div class="_submit">
            <div class="chosenNextBox">
              <div
                v-if='resultCode==11019 || ((EmployeeId===755 || EmployeeId===400) && (msg.RB_Branch_Id&& msg.RB_Branch_Id!=0))'>
                <label>{{$t('fnc.xiayibu')}}：<span class="red">{{msg.AuditDescription}}</span></label>
                <el-select size="mini" style="width:300px" v-model="chosenPeople" multiple filterable remote
                  reserve-keyword :placeholder="$t('rule.qxzxybshren')" :remote-method="remoteMethod"
                  :loading="loadingPeople">
                  <el-option v-for="item in peopleData" :key="item.empId" :label="`${item.name}`" :value="item.empId">
                    <span style="float: left; font-size: 12px">{{ item.name }}</span>
                    <span style="float: right; font-size: 12px; margin-right:20px;">{{ item.departmentName }}</span>
                  </el-option>
                </el-select>
              </div>
            </div>
            <button class="normalBtn" v-if="GetDetail.Status==0||GetDetail.Status==3||msg.FrID==0"
              @click="AddFinancial(1)">{{$t('fnc.zancun')}}</button>
            <button class="normalBtn" @click="AddFinancial()">{{$t('fnc.tijiao')}}</button>
            <button class="hollowFixedBtn" @click="AuditOrRefund()">{{$t('pub.returnBack')}}</button>
          </div>
        </div>
        <div v-if='picIsShow' class="_show_img_box" @click="picIsShow=false,picObj=[]">
          <div
            style="position: absolute; width: 800px; height: 600px; left: 50%; top: 50%; margin-left: -400px; margin-top: -300px;">
            <el-carousel :initial-index=initialIndex height="600px" :interval="5000" trigger="click">
              <el-carousel-item style="height: 600px;overflow:auto;" v-for="(item,index) in picObj" :key="index">
                <img :src="item" style="" />
              </el-carousel-item>
            </el-carousel>
          </div>
        </div>
      </div>
    </div>
    <el-dialog title="提示" :visible.sync="maxmoneyTips" width="420px">
      <div style="margin: 0px 0 15px 0;">
        <p><span style="color: #e6a23c;font-size: 16px;" class="el-notification__icon el-icon-warning"></span>
          根据公司规定，每张付款单不能超过{{maxmoneyData}}元人民币。</p>
        <p style="padding-left: 23px;margin-top: 10px;">超过需额外制单，谢谢配合！</p>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button size="small" @click="maxmoneyTips = false">取 消</el-button>
        <el-button size="small" type="danger" @click="maxmoneyTips=false">确 定</el-button>
      </span>
    </el-dialog>
  </div>
</template>
<script>
  import myFlowChartModule from "../components/FlowChartModule.vue";
  import {getDeptList} from '../../../api/system/dept'
  import {UploadSelfFile} from '../../../api/common/common'
  import {
    getSchoolPage
  } from '../../../api/school/index'
  export default {
    data() {
      return {
        maxmoneyData: 0,
        detailCurrDis: false,
        Description: "",
        msg: {
          FrID: 0,
          ClientType: '',
          ClientID: '',
          RemitterName: '',
          AccountNumber: '',
          TradeDate: '',
          TCID: 0,
          OrderID: 0,
          OrderSource: 0,
          TemplateId: 0,
          Description: '132356',
          detailList: [],
          RB_Branch_Id: '',
          RB_Depart_Id: '',
          Status: 1,
          URL: this.$route.query.path,
          vorcherInos: [],
          IsPublic: '',
          Cmd: '',
          emList: [],
          TCIDList: [],
          Obj: {},
          SourceID: 0,
          TCIDAndTCNUMList: [],
          IsLeader: 1,
          PayDate: '',
          CallType: 0,
          Type: 0,
          GuestInfoList: [],
          RB_BranchName:'',
          RB_DepartName:'',
          OrderSource : 17,
        },
        detailList: {
          ID: 0,
          UnitPrice: '',
          UnitPriceTo: '',
          Number: '',
          Rate: '',
          CostTypeId: '',
          CurrencyId: '',
          Remark: '',
          CostTypeName: '',
          yTotalPrice: '',
          yTotalPriceTo: '',
          bTotalPrice: '',
          bTotalPriceTo: '',
          show: false,
        },
        ClientTypeList: [],
        ClientAccountList: [],
        GetCostTypeList: [],
        ClientAccountListS: [],
        coinGetList: [],
        yaer: '',
        month: '',
        dateS: '',
        AuditListData: {
          AuditList: []
        },
        newAuditList: [],
        peopleData: [],
        BillName: '',
        BillSonName: '',
        department: '',
        emplyeeName: '',
        allPrice: 0,
        allPriceTo: '',
        allPriceTocalc: '',
        chinaAllPrice: this.$commonUtils.changeMoneyToChinese(this.allPrice),
        DepartIDs: '0',
        GetDetail: {},
        loading: false,
        returnCode: '',
        RB_Branch_id: '',
        departmentMsg: {
          RB_Group_Id: '0',
          RB_Branch_Id: '-1',
          Status: '0',
          ParentId: '-1',
          Tier: '0',
        },
        companyMsg: {
          RB_Group_Id: '0',
          Status: 0,
        },
        departmentList: [],
        CompanyList: [],
        orderObj: null,
        IsUploadPic: 0,
        headers: {
          'Content-Type': 'application/octet-stream'
        },
        saveMsg: [],
        picIsShow: false,
        picObj: [],
        initialIndex: 0,
        loadingPeople: false,
        chosenPeople: [],
        OrderSource: null,
        timer: '',
        leaderType: 1,
        resultCode: null,
        EmployeeId: 0,
        describeList: [],
        isFrompassenger: false,
        showDisable: false,
        editTemplateId: -1,
        ZhuiJiaTK: false,
        SelectDisablsed: 0,
        SelectState: false,
        XSTC: false,
        czmsg: {},
        czmsgState: false,
        maxmoneyTips: false,
        schoolMsg: {
          pageIndex: 1,
          pageSize: 999,
          rowsPerPage: 12,
          SName: "",
          Status: '-1'
        }
      }
    },
    methods: {
      deleteRow(i, obj) {
        obj.show = false;
        this.msg.Description = this.Description;
        this.msg.detailList.splice(i, 1);
        this.$forceUpdate();
      },
      IsPublicChange(val) {
        this.showDisable = false;

        this.msg.ClientType = '';
        this.msg.ClientID = '';
        this.msg.AccountNumber = '';
        this.ClientAccountListS = [];
        if (val == 8 || val == 9) {
          this.showDisable = true;
        }
      },
      jumpPage(path, obj, type) { //生成单据时连带信息跳转
        if (type == 1) {
          this.$router.push({
            name: path,
            query: {
              TCIDList: obj,
              blank: 'y'
            }
          })
        } else if (type == 2) {
          this.$router.push({
            name: path,
            query: {
              ID: obj,
              blank: 'y'
            }
          })
        } else if (type == 3) {
          this.$router.push({
            name: path,
            query: {
              ID: obj,
              blank: 'y'
            }
          })
        } else if (type == 4) {
          this.$router.push({
            name: path,
            query: {
              OrderSource: obj.OrderSource,
              SourceID: obj.SourceID,
              blank: 'y'
            }
          })
        } else if (type == 5) {
          this.$router.push({
            name: path,
            query: {
              id: obj[0].TCID,
              OutBranchId: obj.RB_Branch_Id,
              blank: 'y'
            }
          })
        } else if (type == 6) {
          this.$router.push({
            name: path,
            query: {
              id: obj,
              OutBranchId: obj.RB_Branch_Id,
              'CloseIncomeBtn': true,
              blank: 'y'
            }
          })
        } else if (type == 7) {
          this.$router.push({
            name: path,
            query: {
              id: id,
              isShow: false,
              blank: 'y'
            }
          })
        } else if (type == 8) {
          this.$router.push({
            name: path,
            query: {
              id: id,
              orderID: this.msg.OrderID,
              isShow: false,
              blank: 'y'
            }
          })
        } else if (type == 9) {
          this.$router.push({
            name: path,
            query: {
              id: this.msg.OrderID,
              EmployeeId: this.EmployeeId,
              isOwn: false,
              blank: 'y'
            }
          })
        }
      },
      remoteMethod(query) {
        if (query !== '') {
          this.loadingPeople = true
          this.apipost('admin_Get_Chat_All_SelectEmpName', {
            EmName: query
          }, res => {
            if (res.data.resultCode == 1) {
              this.peopleData = res.data.data
            }
            this.loadingPeople = false
          }, err => {})
        } else {
          this.peopleData = [];
        }
      },
      showUpLoadFile(i) { // 预览上传文件
        if (i.Type == 3) {
          this.picObj.push(i.Url);
          this.picIsShow = true;
        } else {
          if (i.Content.substring(i.Content.lastIndexOf('.') + 1, i.Content.length).toUpperCase() == 'PDF') {
            this.previewPDF(i.Url)
          } else {
            window.open("https://view.officeapps.live.com/op/view.aspx?src=" + i.Url)
          }
        }
      },
      deleteUploadFile(i) { // 删除上传文件
        this.saveMsg.splice(i, 1);
      },
      uploadFileBtn(file) { //上传
        if (file.file.size > 1024 * 1024 * 10) {
          this.$message.warning(this.$t('tips.wjdxbncgsz'))
          return
        }
        //  1 文档  2 数据 3 图片
        let typeArr = [{
            stringArr: 'GIF|JPG|JPEG|PNG|BMP',
            type: 3
          },
          {
            stringArr: 'DOCX|DOC|XLSX|XLS|PPT|PPTX|PDF',
            type: 1
          },
        ]
        let ft = file.file.name.substring(file.file.name.lastIndexOf('.') + 1, file.file.name.length).toUpperCase();
        let fileTypeNumber = 2;
        let typeOk = false;
        typeArr.forEach(x => {
          if (x.stringArr.indexOf(ft) != '-1') {
            fileTypeNumber = x.type;
            typeOk = true;
          }
        })
        if (!typeOk) return this.$message.error(this.$t('tips.qscWEfile'));
        let newArr = [];
        newArr.push(file.file)
        let path = "/Upload/Temporary/"
        this.$message.info(this.$t('tips.shangchuanzhong'))
        UploadSelfFile('Temporary', file.file, x => {
          if(x.Code==1){
            let fileSize = file.file.size < 1024 ? file.file.size : (file.file.size / 1024).toFixed(0);
            this.saveMsg.push({
              Content: x.FileUrl,
              ID: 0,
              Type: fileTypeNumber,
              Url:  x.FileUrl,
            })
            this.$message.success(this.$t('tips.scchenggong'))
          }

        }, 1);
      },
      AuditOrRefund() {
        this.$router.go(-1)

        this.MsgBus.$emit('msg');
        // this.$router.push({
        //   name:'FinancialDocuments',
        //   query:{"returnCode":this.returnCode,"pageIndex":this.$route.query.pageIndex?this.$route.query.pageIndex:1}});
      },
      handleInput2(e) {
        e.target.value = (e.target.value.match(/^\d*(\.?\d{0,1})/g)[0]) || null
      },
      AddFinancial(z) { //保存
        if (z) {
          this.msg.Status = 0;
        } else {
          this.msg.Status = 1;
          if (this.msg.detailList.length < 1) return this.$message.error(this.$t('rule.qtxzsyxfyshuoming'));
          if (this.msg.PayDate === '') return this.$message.error(this.$t('rule.qxzyjfkshijian'));
        }
        if (this.msg.IsPublic != 8 && this.msg.IsPublic != 9) {
          if (this.msg.ClientType === '') return this.$message.error(this.$t('rule.qxzfkduixiang'));
        } else {
          this.msg.ClientType = 0;
        }
        if (this.msg.RB_Branch_Id == '' || this.msg.RB_Branch_Id == 0) return this.$message.error('请选择校区');

        // IsPublic 2 现金 IsLeader 0 临时领队
        if (this.msg.IsPublic < 2 && this.IsLeader === 1) {
          if (this.msg.ClientID === '') return this.$message.error(this.$t('rule.qxzkhmingcheng'));
          if (this.msg.AccountNumber === '') return this.$message.error(this.$t('rule.qxzfkdzhanghu'));
        } else {

        }
        // if(this.msg.ClientID=='')return this.$message.error('请选择客户名称!');
        // if(this.msg.IsPublic!=2 && this.IsLeader!=0){
        //     if(this.msg.AccountNumber=='')return this.$message.error('请选择付款账户！');
        // }
        if (this.msg.IsHave == 0 && this.chosenPeople.length == 0) return this.$message.error(this.$t(
          'rule.qxzxybsheren'));
        if (!this.msg.RB_Depart_Id) return this.$message.error(this.$t('rule.qxzzdbumen'));
        delete this.msg.DetailList;
        delete this.msg.VorcherInos;
        this.msg.vorcherInos = this.saveMsg;
        this.msg.emList = this.chosenPeople;
        if (this.orderObj) {
          this.msg.VisaIds = this.orderObj.VisaIds ? this.orderObj.VisaIds : '';
          //从电商过来的参数处理
          this.msg.OrderSource = this.orderObj.OrderSource ? this.orderObj.OrderSource : 0;
          this.msg.OtherType = this.orderObj.OtherType ? this.orderObj.OtherType : 0;
          this.msg.ReFinanceId = this.orderObj.ReFinanceId ? this.orderObj.ReFinanceId : 0;
          this.msg.ReFinanceId2 = this.orderObj.ReFinanceId2 ? this.orderObj.ReFinanceId2 : 0;
          this.msg.ECOrderList = this.orderObj.ECOrderList ? this.orderObj.ECOrderList : [];
        }
        // 2019-12-3 18:29:31 新增费用类型判断
        let riqi = false
        this.msg.detailList.forEach(x => {
          if (!riqi && (x.CostTypeName == '房费' || x.CostTypeName == '差旅费' || x.CostTypeName == '签证费' || x
              .CostTypeName.indexOf('机票') !== -1)) {
            riqi = true
          }
          delete x.rate;
        });
        if (riqi) {
          var today = new Date();
          var year = today.getFullYear();
          var month = today.getMonth();
          var date = today.getDate();
          var weeks = ["日", "一", "二", "三", "四", "五", "六"]
          var temp = new Date(year, month, date + 3)
          var today = Date.parse(new Date())
          var PayDate = this.msg.PayDate
          var startTime = Date.parse(temp);
          var endTime = Date.parse(PayDate);
          if (endTime > startTime) {
            this.$message.error('房费、差旅费、签证费、机票相关费用类型单据的预付款日期最多推后3天！');
            return
          }
          //  else if (endTime < today) {
          //     this.$message.error('房费、差旅费、签证费、机票相关费用类型单据的预付款日期最多推后3天！');
          //     return
          // }
        }
        // 判断付款金额与最大金额
        if (Number(this.maxmoneyData) > 0 && (Number(this.allPriceTocalc) > Number(this.maxmoneyData))) {

          this.maxmoneyTips = true;
          return;
        }
        //旅客名单数据组装
        if (!this.$route.query.edit) {
          this.msg.Type = this.$route.query.Type
        }
        if (this.orderObj != null && this.orderObj.OrderSource === 10) {
          let guestInfo = JSON.parse(sessionStorage.getItem("saveGuestInfo"));
          //  return;
          this.msg.GuestInfoList = [];
          if (guestInfo != null && guestInfo.length > 0) {
            guestInfo.forEach(t => {
              this.msg.GuestInfoList.push({
                GuestId: t.Id,
                GuestName: ""
              })
            })
          }
        }
        if (this.orderObj && this.orderObj.TravelReplenish) {
          this.msg.TravelReplenish = this.orderObj.TravelReplenish
        }
        this.loading = true;
        this.msg.Description = this.Description;


        // 财务收据
        if (this.czmsg && this.czmsg.ReFinanceId2) {
          this.msg.ReFinanceId2 = this.czmsg.ReFinanceId2;
        }
        //   预付款冲抵 电商商品
        if (this.czmsg && this.czmsg.ReFinanceId) {
          this.msg.ReFinanceId = this.czmsg.ReFinanceId;
          this.msg.OtherType = this.czmsg.OtherType;

        }
        //   电商商品内部结算
        if (this.czmsg && this.czmsg.ReTCID) {
          this.msg.OtherType = this.czmsg.OtherType;
          this.msg.ReTCID = this.czmsg.ReTCID;
        }
        this.apipost('Financial_post_Set', this.msg, res => {
          if (res.data.resultCode == 1) {
            //清除旅客名单数据
            sessionStorage.removeItem("saveGuestInfo");
            sessionStorage.removeItem("guoji");
            //   this.$store.commit('saveGuestInfo',[])
            this.$confirm(this.$t('tips.czcgsfjxzhidan'), this.$t('tips.tips'), {
              confirmButtonText: this.$t('fnc.jxzhidan'),
              cancelButtonText: this.$t('fnc.nothanks'),
              type: 'warning'
            }).then(() => {
              this.$router.push({
                path: '/financial/financalDocument/addFinancialDocuments',
                query: {
                  "id": this.$route.query.id,
                  "Name": this.$route.query.Name,
                  'InPay': this.$route.query.InPay,
                  "Type": this.$route.query.Type,
                  "orderObj": this.$route.query.orderObj,
                  'IsUploadPic': this.$route.query.IsUploadPic,
                  'companyID': this.$route.query.companyID
                }
              })
            }).catch(() => {
              this.$router.push({
                path: '/financial/financalDocument/FinancialDocuments',
                query: {
                  'Type': this.$route.query.Type,
                  'InPay': this.$route.query.InPay
                }
              });
            });
          } else {
            this.resultCode = res.data.resultCode;
            this.$message.error(res.data.message);
          }
          this.loading = false;
        }, err => {})
      },
      FinancialFlowTemplate_post_GetProcessList(id) {
        this.apipost('FinancialFlowTemplate_post_GetProcessList', {
          ID: id,
          WorkFlowID: 0,
          TemplateType: 0
        }, res => {
          if (res.data.resultCode == 1) {
            res.data.data.forEach(y => {
              y.contentTips = y.AuditDescription + (y.AuditWay == "2" ? this.$t('fnc.huiqian') : this.$t(
                'fnc.huoqian'))
            })
            this.AuditListData.AuditList = res.data.data;
            let data = JSON.parse(JSON.stringify(this.AuditListData.AuditList));
            this.newAuditList = data.reverse();
          } else {}
        }, err => {})
      },
      showEdit(i) { // 修改
        this.$forceUpdate();
        this.msg.detailList[i].show = true;
        this.$set(this.msg.detailList, i, this.msg.detailList[i]);
      },
      addList(t, i) { // 添加
        let list = {};
        if (t == 2 && i) {
          list = JSON.parse(JSON.stringify(this.msg.detailList[i - 1]));
        } else {
          list = JSON.parse(JSON.stringify(this.detailList));
        }
        if (list.yTotalPrice && list.yTotalPrice != '') {
          list.yTotalPrice = list.yTotalPrice.toFixed(2)
        }

        if (list.CostTypeId == '') return
        if (list.Number == '') return
        if (list.UnitPrice == '') return
        if (list.CurrencyId == '') return
        if (t == 2 && i) {
          list.show = false;
          this.msg.detailList[i - 1] = list;
        } else {
          this.msg.detailList.push(list);
        }
        let allPrice = 0
        this.msg.detailList.forEach(x => {
          this.coinGetList.forEach(y => {
            if (y.ID == x.CurrencyId) {
              x.currenName = y.Name;
            }
          })
          allPrice = allPrice + parseFloat(x.bTotalPrice);
        })
        this.$forceUpdate()
        this.allPrice = allPrice;
        this.allPriceTo = this.$commonUtils.addCommas(Math.round(this.allPrice * 100) / 100)
        this.allPriceTocalc = Math.round(this.allPrice * 100) / 100

        this.chinaAllPrice = this.$commonUtils.changeMoneyToChinese(this.allPrice)
        this.detailList = {
          ID: 0,
          UnitPrice: '',
          UnitPriceTo: '',
          Number: '',
          Rate: '',
          CostTypeId: '',
          CurrencyId: '',
          Remark: '',
          CostTypeName: '',
          yTotalPrice: '',
          yTotalPriceTo: '',
          bTotalPrice: '',
          bTotalPriceTo: '',
          show: false,
        }
      },
      chages(e){//处理输入框不能输入问题
        this.$forceUpdate()
      },
      Calculation(t, i) { // 计算原币 本位币

        let numberC = 0;
        let price = 0;
        let rate = 0;
        if (t == 2 && i) {
          numberC = parseFloat(this.msg.detailList[i - 1].Number);
          price = parseFloat(this.msg.detailList[i - 1].UnitPrice);
          rate = parseFloat(this.msg.detailList[i - 1].Rate);
          if (price == 0) {
            price = '';
            this.msg.detailList[i - 1].UnitPrice = '';
          }
          if (numberC && price) {
            this.msg.detailList[i - 1].UnitPriceTo = this.$commonUtils.addCommas(Math.round(price * 100) / 100)
            this.msg.detailList[i - 1].yTotalPrice = numberC * price;
            this.msg.detailList[i - 1].yTotalPriceTo = this.$commonUtils.addCommas(Math.round(this.msg.detailList[i - 1]
              .yTotalPrice * 100) / 100);
            if (!isNaN(rate)) {
              let num = (numberC * price) * rate;
              num = Math.round(num * 100) / 100;
              this.msg.detailList[i - 1].bTotalPrice = num;
              this.msg.detailList[i - 1].bTotalPriceTo = this.$commonUtils.addCommas(num)
            }
          }
        } else {
          numberC = parseFloat(this.detailList.Number);
          price = parseFloat(this.detailList.UnitPrice);
          rate = parseFloat(this.detailList.Rate);
          if (price == 0) {
            price = '';
            this.detailList.UnitPrice = '';
          }
          if (numberC && price) {
            this.detailList.UnitPriceTo = this.$commonUtils.addCommas(Math.round(price * 100) / 100)
            this.detailList.yTotalPrice = numberC * price;
            this.detailList.yTotalPriceTo = this.$commonUtils.addCommas(Math.round(this.detailList.yTotalPrice * 100) /
              100);
            if (!isNaN(rate)) {
              let num = (numberC * price) * rate;
              num = Math.round(num * 100) / 100;
              this.detailList.bTotalPrice = num;
              this.detailList.bTotalPriceTo = this.$commonUtils.addCommas(num)
            }
          }
        }
      },
      getCostTypeName(i, t) { // 根据支出费用类型获取费用类型名称 列表展示用
        this.GetCostTypeList.forEach(x => {
          if (x.ID == i) {
            if (t >= 0) {
              this.msg.detailList[t].CostTypeName = x.Name;
              if (x.ID === 56) {
                this.msg.detailList[t].Remark = this.orderObj.TCNUMS ? `地接费领取自动生成：${this.orderObj.TCNUMS}` : '';
              }
            } else {
              this.detailList.CostTypeName = x.Name;
              if (x.ID === 56) {
                this.detailList.Remark = this.orderObj.TCNUMS ? `地接费领取自动生成：${this.orderObj.TCNUMS}` : '';
              }
            }
          }
        })
      },
      getRate(cID, i, t, index) { // 根据选择币种获取汇率
        this.coinGetList.forEach(x => {
          if (x.ID == i) {
            if (this.czmsgState) {
              if (t == 1) {
                this.detailList.Rate = this.czmsg.Rate;
                this.detailList.currenName = x.Name;
              } else {
                this.msg.detailList[index].Rate = this.czmsg.Rate;
                this.msg.detailList[index].currenName = x.Name;
              }
            } else {
              if (t == 1) {
                this.detailList.Rate = cID === 57 ? x.PayRateHistory : x.PayRate;
                this.detailList.currenName = x.Name;
              } else {
                this.msg.detailList[index].Rate = cID === 57 ? x.PayRateHistory : x.PayRate;
                this.msg.detailList[index].currenName = x.Name;
              }
            }

            this.$forceUpdate();
          }
        })

        this.Calculation(t, index + 1)
      },
      financeinfo_post_GetClientTypeList() { // 获取对象类型
        this.apipost('financeinfo_post_GetClientTypeList', {}, res => {
          if (res.data.resultCode == 1) {
            this.ClientTypeList = res.data.data;
          }
        }, err => {})
      },
      GetClientAccountList(i) { //获取客户名称并且根据费用类型和付款对象获取客户账号
        this.msg.AccountNumber = '';
        this.ClientAccountList.forEach(x => {
          if (x.ID == i) {
            this.msg.RemitterName = x.Name;
            this.financeinfo_post_GetClientAccountList(this.msg.ClientType, x.ID);
          }
        })
      },
      financeinfo_post_GetClientAccountList(t, i) { //获取付款 对象类型  新增用
        let msg = {
          ID: 0,
          Type: t,
          ObjID: 0,
          CardNum: ''
        }
        if (i >= 0) {
          msg.ID = i;
        } else {
          this.msg.ClientID = '';
          this.msg.AccountNumber = '';
          this.msg.RemitterName = '';
          this.msg.IsLeader = 1;
        }
        this.apipost('financeinfo_post_GetClientAccountList', msg, res => {
          if (res.data.resultCode == 1) {
            let data = res.data.data;
            let ClientAccountList = [];
            if (i) {
              data.forEach(x => {
                let obj = {
                  ID: x.ID,
                  Name: x.AccountHolder + +`（${x.AccountAlias}）`,
                  Nom: x.CardNum,
                  OpenBankName: x.OpenBankName,
                  allName: x.CardNum + " " + x.OpenBankName,
                  ObjID: x.ObjID,
                }
                ClientAccountList.push(obj)
              })
              this.ClientAccountListS = ClientAccountList;
            } else {
              data.forEach(x => {
                let obj = {
                  ID: x.ID,
                  Name: x.AccountHolder + `（${x.AccountAlias}）`,
                  Nom: x.CardNum,
                  OpenBankName: x.OpenBankName,
                  ObjID: x.ObjID,
                }
                ClientAccountList.push(obj)
              })
              this.ClientAccountList = ClientAccountList;
            }
          }
        }, err => {})
      },
      financeinfo_post_GetClientAccountListEdit(t) { //获取付款 对象类型  修改用
        let msg = {
          Type: t,
          ObjID: 0,
          CardNum: ''
        }
        this.apipost('financeinfo_post_GetClientAccountList', msg, res => {
          if (res.data.resultCode == 1) {
            let data = res.data.data;
            let ClientAccountList = [];
            data.forEach(x => {
              let obj = {
                ID: x.ID,
                Name: x.AccountHolder + `（${x.AccountAlias}）`,
                Nom: x.CardNum,
                OpenBankName: x.OpenBankName,
                ObjID: x.ObjID,
              }
              if (x.ID == this.msg.ClientID) {
                this.financeinfo_post_GetClientAccountList(this.msg.ClientType, x.ObjID);
              }
              ClientAccountList.push(obj)
            })
            this.ClientAccountList = ClientAccountList;
          }
        }, err => {})
      },
      Financial_post_GetCostTypeList(id, type) { //获取支出费用类型
        this.apipost('Financial_post_GetCostTypeList', {
          ID: id
        }, res => {

          if (res.data.resultCode == 1) {
            this.GetCostTypeList = res.data.data;
            if (type) {
              this.msg.detailList.forEach(x => {
                this.GetCostTypeList.forEach(y => {
                  if (y.ID == x.CostTypeId) {
                    x.CostTypeName = y.Name;
                  }
                })
              })
            }
            if (this.orderObj && this.orderObj.CostType) {
              this.getCostTypeName(this.detailList.CostTypeId)
            }
          }
        }, err => {})
      },
      financeinfo_post_GetList(TCID) { // 获取币种
        this.apipost('financeinfo_post_GetList', {
          Name: '',
          TCID: TCID
        }, res => {
          if (res.data.resultCode == 1) {
            this.coinGetList = res.data.data;
          }
        }, err => {})
      },
      Financial_post_Get(id, tempId) { //获取单据详情
        this.loading = true;
        this.apipost('Financial_post_Get', {
          ID: id,
          TempId: tempId,
          TCIDList: (this.orderObj && this.orderObj.TCIDList) ? this.orderObj.TCIDList : []
        }, res => {
          if (res.data.resultCode == 1) {
            let data = res.data.data;
            this.editTemplateId = data.TemplateId;
            this.getCompany();

            data.IsLeader = 1;
            this.msg = JSON.parse(JSON.stringify(data));
            this.msg.ClientType = this.msg.ClientType == 0 ? '' : this.msg.ClientType;
            this.msg.ClientID = this.msg.ClientID == 0 ? '' : this.msg.ClientID;

            if (id || id === 0) {
              if (!this.orderObj && id > 0) {
                this.msg.RB_Branch_Id = this.msg.RB_Branch_Id
              } else {
                this.msg.RB_Branch_Id = this.getLocalStorage().School_Id
              }
            } else {
              this.msg.RB_Branch_Id = this.msg.RB_Branch_Id == 0 ? this.getLocalStorage().School_Id : this.msg
                .RB_Branch_Id;
            }
            if (this.orderObj && this.orderObj.companyIDList && this.orderObj.companyIDList.length > 0) {
              this.msg.RB_Branch_Id = this.orderObj.companyIDList[0];
            } else if (this.$route.query.companyID) {
              if(this.$route.query.companyID!=='undefined'){
                this.msg.RB_Branch_Id = parseInt(this.$route.query.companyID);
              }else {
                this.msg.RB_Branch_Id = this.getLocalStorage().School_Id;

              }
            }

            this.admin_get_DepartmentGetList(this.msg.RB_Branch_Id);
            this.msg.PayDate = this.msg.PayDate;
            this.msg.detailList = [];
            this.FinancialFlowTemplate_post_GetProcessList(data.TemplateId);
            this.financeinfo_post_GetClientAccountListEdit(data.ClientType);
            this.Financial_post_GetCostTypeList(data.TemplateId, 2);
            let allPrice = 0
            data.DetailList.forEach(x => {
              // 20190815 新增领款单据重新生成自动带上计算后的金额
              x.UnitPrice = this.$route.query.dijieEditMoney ? this.$route.query.dijieEditMoney : x.UnitPrice
              x.OriginalMoney = this.$route.query.dijieEditMoney ? this.$route.query.dijieEditMoney : x
                .OriginalMoney
              x.UnitPriceTo = this.$commonUtils.addCommas(Math.round(x.UnitPrice * 100) / 100);
              x.yTotalPrice = x.Number * x.UnitPrice;
              x.rate = x.Rate;
              let num = (x.Number * x.UnitPrice) * x.Rate;
              num = Math.round(num * 100) / 100;
              x.bTotalPrice = num;
              x.Money = Math.round(x.Money * 100) / 100;

              x.yTotalPriceTo = this.$commonUtils.addCommas(Math.round(x.yTotalPrice * 100) / 100);
              x.bTotalPriceTo = this.$commonUtils.addCommas(num);
              x.OriginalMoney = Math.round(x.OriginalMoney * 100) / 100;
              x.show = false;
              this.coinGetList.forEach(y => {
                if (y.ID == x.CurrencyId) {
                  x.currenName = y.Name;
                }
              })
              this.msg.detailList.push(x);
              allPrice = allPrice + parseFloat(x.bTotalPrice);
            });
            this.allPrice = allPrice;
            this.allPriceTo = this.$commonUtils.addCommas(Math.round(this.allPrice * 100) / 100)
            this.allPriceTocalc = Math.round(this.allPrice * 100) / 100

            this.chinaAllPrice = this.$commonUtils.changeMoneyToChinese(this.allPrice)
            this.BillName = data.CompanyName;
            this.BillSonName = data.FinanceName;
            this.IsUploadPic = data.IsUploadPic;
            this.msg.IsPublic = data.IsPublic;
            this.GetDetail = data;
            if (this.orderObj != null && this.orderObj.OrderSource === 10) {

            } else {
              this.Description = this.GetDetail.Description;
            }
            if (this.orderObj) {

              this.msg.OrderID = this.orderObj.OrderID ? this.orderObj.OrderID : 0;
              this.OrderSource = this.msg.OrderSource = this.orderObj.OrderSource ? this.orderObj.OrderSource : 0;
              this.msg.TCID = this.orderObj.TCID ? this.orderObj.TCID : 0;

              this.msg.TCIDList = this.orderObj.TCIDList ? this.orderObj.TCIDList : [];
              this.msg.Obj = this.orderObj.Obj ? this.orderObj.Obj : '';
              this.msg.SourceID = this.orderObj.SourceID ? this.orderObj.SourceID : 0;
              this.msg.CallType = this.orderObj.CallType ? this.orderObj.CallType : 0;
              this.detailList.CostTypeId = this.orderObj.CostType ? this.orderObj.CostType : '';
              this.detailList.UnitPrice = this.orderObj.Money ? this.orderObj.Money : 0;
              this.detailList.Number = this.orderObj.CostType ? 1 : 0
              this.msg.OtherType = this.orderObj.OtherType ? this.orderObj.OtherType : 0;
              this.XSTC = this.orderObj.XSTC ? true : false
              if (!JSON.parse(sessionStorage.getItem("saveGuestInfo"))) {
                this.Description = this.orderObj.laRemark ? this.orderObj.laRemark : '';
              }
              // 判断是否禁用费用说明
              if (this.orderObj.SelectState) {
                this.SelectState = true;
                this.SelectDisablsed = Number(this.orderObj.CostType)

              }
              if (this.orderObj.CurrencyId) {
                this.detailList.CurrencyId = Number(this.orderObj.CurrencyId);
                this.detailCurrDis = true;
                this.detailList.CostTypeId = this.orderObj.CostType ? this.orderObj.CostType : '';
                this.getRate(this.detailList.CostTypeId, this.detailList.CurrencyId, 1)
                this.addList(1);

              }

            }

            if (data.VorcherInos) {
              data.VorcherInos.forEach(x => {
                x.Url = x.Content;
                this.saveMsg.push(x);
              })
            }
            if (this.msg.TCIDAndTCNUMList == null) {
              this.msg.TCIDAndTCNUMList = [];
            }
            if (this.orderObj && this.orderObj.CostType) {
              this.Calculation(1)
            }
            this.msg.URL = this.$route.query.path;
            this.msg.Cmd = this.$route.query.Cmd ? this.$route.query.Cmd : '';
            if (id > 0) {
              let TCID = data.TCIDList.length > 0 ? data.TCIDList[0] : 0
              this.financeinfo_post_GetList(TCID);
            }
            this.$forceUpdate();
            this.loading = false;
            if (this.$route.query.InPay) {
              this.msg.Type = this.$route.query.InPay;
            }
            if (this.isFrompassenger) {
              this.setDocument();
            }
          } else {
            this.loading = false;
            this.$message.error(res.data.message);
          }
        }, err => {})
      },
      admin_get_Depart_IdGetList(Bid){
        this.departmentList.forEach(x=>{//给msg传部门名称
          if(x.DeptId==Bid){
            this.msg.RB_DepartName = x.DeptName;
          }
        })
      },
      admin_get_DepartmentGetList(Bid, T) {
        if (Bid == 0) {
          this.chosenPeople = [];
        }
        this.CompanyList.forEach(x=>{//给msg传校区的名字
          if(x.SId==Bid){
            this.msg.RB_BranchName = x.SName;
          }
        })
        // this.msg.RB_Depart_Id = '';
        // this.departmentMsg.RB_Branch_Id = Bid ? Bid : -1;
        this.departmentMsg.RB_Branch_Id = -1;
        this.msg.RB_Depart_Id = '';
        getDeptList(this.departmentMsg).then(res => {
          if (res.Code == 1) {
            this.departmentList = res.Data;
            if (this.orderObj && this.orderObj.companyIDList && this.orderObj.companyIDList.length > 0) {

            } else {
              this.msg.RB_Depart_Id = this.msg.RB_Depart_Id ? this.msg.RB_Depart_Id : this.getLocalStorage().DeptId;
              this.msg.RB_DepartName =this.msg.RB_DepartName?this.msg.RB_DepartName: this.getLocalStorage().DeptName;
            }
          }
        }).catch(() => {

        })
      },
      getCompany() { //公司
        getSchoolPage(this.schoolMsg).then(res => {
          let data = res.Data.PageData;
          data.forEach(x=>{//给msg传校区的名字
            if(x.SId==this.msg.RB_Branch_Id){
              this.msg.RB_BranchName = x.SName;
            }
          })
          let Status=false;
          if(this.$route.query.companyID!=='-1' && this.$route.query.companyID!==undefined){
            Status=true;
            data.forEach(x=>{
              x.disabled = true;
            })
          }
          if (this.orderObj && this.orderObj.companyIDList && this.orderObj.companyIDList.length>0) {
            Status=true;
            this.orderObj.companyIDList.forEach(x=>{
              data.forEach(y=>{
                if (y.disabled === false){
                  y.disabled = false
                }else {
                  y.disabled = x !== y.Id;
                }
              })
            });
          }
          this.CompanyList = data;
          if(!Status){
            let id=0;
            if(this.$route.query.id){
              id=this.$route.query.id;
            }else{
              id=this.editTemplateId;

            }
            this.apipost('FinancialFlowTemplate_post_GetTemplateBranch', {ID:id}, res => {
              if (res.data.resultCode == 1) {
                let resdata = res.data.data;
                if(resdata.IsGroupCommon==0){
                  let BranchList=resdata.BranchList;
                  let num = 0
                  data.forEach(x=>{
                    x.disabled=true;
                    let thisId = this.getLocalStorage().Group_Id
                    BranchList.forEach(y=>{
                      if(x.SId==y){
                        x.disabled=false;
                        if(num < 1 && !this.$route.query.edit) {
                          this.msg.RB_Branch_Id = x.SId
                        }
                        if (thisId === x.SId &&  !this.$route.query.edit) {
                          this.msg.RB_Branch_Id = x.SId
                        }
                        num = num + 1
                      }
                    })
                  })

                  this.CompanyList = data;
                }
              }
            }, err => {})

          }


        }).catch(() => {

        })
      },
      //设置选中单据名单
      setDocument() {
        let guojiSessions = JSON.parse(window.sessionStorage.getItem("guoji"));
        if (guojiSessions.guojiArr.length > 0) {
          this.msg.detailList.push({
            ID: 0,
            UnitPrice: '',
            UnitPriceTo: '',
            Number: guojiSessions.guojiArr.length,
            Rate: '',
            CostTypeId: 52,
            CurrencyId: '',
            Remark: '',
            CostTypeName: '',
            yTotalPrice: '',
            yTotalPriceTo: '',
            bTotalPrice: '',
            bTotalPriceTo: '',
            show: false,
          });
        }
        if (guojiSessions.guoneiArr.length > 0) {
          this.msg.detailList.push({
            ID: 0,
            UnitPrice: '',
            UnitPriceTo: '',
            Number: guojiSessions.guoneiArr.length,
            Rate: '',
            CostTypeId: 66,
            CurrencyId: '',
            Remark: '',
            CostTypeName: '',
            yTotalPrice: '',
            yTotalPriceTo: '',
            bTotalPrice: '',
            bTotalPriceTo: '',
            show: false,
          });
        }
        if (guojiSessions.shuijinArr.length > 0) {
          this.msg.detailList.push({
            ID: 0,
            UnitPrice: '',
            UnitPriceTo: '',
            Number: guojiSessions.shuijinArr.length,
            Rate: '',
            CostTypeId: 80,
            CurrencyId: '',
            Remark: '',
            CostTypeName: '',
            yTotalPrice: '',
            yTotalPriceTo: '',
            bTotalPrice: '',
            bTotalPriceTo: '',
            show: false,
          });
        }
        if (this.orderObj != null && this.orderObj.OrderSource === 4 && this.isFrompassenger) {
          let guojiSessions = JSON.parse(window.sessionStorage.getItem("guoji"));
          let guoji = '',
            guonei = '',
            guojizhongduan = '',
            shuijin = '',
            shengcang = '';
          guojiSessions.guojiArr.forEach(x => {
            guoji += x + ' '
          })
          guojiSessions.guoneiArr.forEach(x => {
            guonei += x + ' '
          })
          guojiSessions.gjzdArr.forEach(x => {
            guojizhongduan += x + ' '
          })
          guojiSessions.shuijinArr.forEach(x => {
            shuijin += x + ' '
          })
          guojiSessions.shengcangArr.forEach(x => {
            shengcang += x + ' '
          })
          var gj = guoji == '' ? '' : '国际机票:' + guoji;
          var gn = guonei == '' ? '' : '国内航段:' + guonei;
          var gjzd = guojizhongduan == '' ? '' : '国际中段:' + guojizhongduan;
          var sj = shuijin == '' ? '' : '税金:' + shuijin;
          var sc = shengcang == '' ? '' : '升舱:' + shengcang;
          if (gj != '') {
            gj = gj + `\n`
          }
          if (gn != '') {
            gn = gn + `\n`
          }
          if (gjzd != '') {
            gjzd = gjzd + `\n`
          }
          if (sj != '') {
            sj = sj + `\n`
          }
          this.Description = gj + gn + gjzd + sj + sc
        }
      },
      MaxMoney() { // 获取最大金额
        this.apipost('Financial_get_GetFinanceMoneyLimit', {}, res => {
          if (res.data.resultCode == 1) {
            this.maxmoneyData = res.data.data;
          }
        }, err => {})
      },
    },
    created() {
      var that = this;
      this.orderObj = this.$route.query.orderObj ? JSON.parse(this.$route.query.orderObj) : null;
      this.isFrompassenger = this.orderObj ? this.orderObj.isFromPassenger : undefined;
      let TCID = (this.orderObj && this.orderObj.TCIDList && this.orderObj.TCIDList.length > 0) ? this.orderObj
        .TCIDList[0] : 0
      if (this.orderObj != null && this.orderObj.OrderSource === 10 && this.isFrompassenger == undefined) {
        that.Description = "旅客名单：";
        that.describeList = JSON.parse(sessionStorage.getItem("saveGuestInfo"));
        if (that.describeList) {
          that.describeList.forEach(item => {
            that.Description += item.GuestName + " ";
          })
        }

      }
      if (this.orderObj && this.orderObj.OtherType) {
        this.ZhuiJiaTK = true
      }
      this.apipost('financeinfo_post_GetList', {
        Name: '',
        TCID: TCID
      }, res => {
        if (res.data.resultCode == 1) {
          this.coinGetList = res.data.data;
        }
      }, err => {})
    },

    mounted() {
      // 付款单新增或修改  获取最大金额
      if ((this.$route.query.type && this.$route.query.type == 2) || (this.$route.query.Type && this.$route.query
          .Type == 2)) {
        this.MaxMoney();
      }
      let userInfo = this.getLocalStorage();
      this.department = userInfo.DeptName;
      this.EmployeeId = userInfo.Id;
      this.emplyeeName = userInfo.AccountName;
      this.DepartIDs = this.msg.RB_Depart_Id = userInfo.DeptId;
      this.RB_Branch_id = this.departmentMsg.RB_Branch_Id = this.msg.RB_Branch_Id = userInfo.School_Id;
      this.companyMsg.RB_Group_Id = this.departmentMsg.RB_Group_Id = userInfo.Group_Id;
      this.IsUploadPic = this.$route.query.IsUploadPic;
      this.msg.Cmd = this.$route.query.Cmd ? this.$route.query.Cmd : '';
      this.financeinfo_post_GetClientTypeList();
      const myDate = new Date();
      this.yaer = myDate.getFullYear(); //获取完整的年份(4位,1970-????)
      this.month = myDate.getMonth() + 1; //获取当前月份(0-11,0代表1月)
      this.dateS = myDate.getDate(); //获取当前日(1-31)
      let hour = myDate.getHours() < 10 ? "0" + myDate.getHours() : myDate.getHours();
      let minute = myDate.getMinutes() < 10 ? "0" + myDate.getMinutes() : myDate.getMinutes();
      let second = myDate.getSeconds() < 10 ? "0" + myDate.getSeconds() : myDate.getSeconds();
      this.timer = hour + ':' + minute + ':' + second;
      // this.financeinfo_post_GetList(TCID);
      if (this.$route.query.edit) {
        // 编辑
        this.msg.FrID = this.$route.query.FrID;
        this.Financial_post_Get(this.$route.query.FrID, 0);
      } else {
        if (this.$route.query.czmsg) {
          this.czmsg = JSON.parse(this.$route.query.czmsg);
          if (this.czmsg.Rate) {
            this.czmsgState = true;
          }
        }
        this.msg.TemplateId = this.$route.query.id;
        if (this.$route.query.id == 90 || this.$route.query.id == 91) {
          this.msg.IsPublic = 10;
        }
        this.Financial_post_GetCostTypeList(this.$route.query.id);
        this.BillName = userInfo.GroupName;
        this.BillSonName = this.$route.query.Name;
        this.FinancialFlowTemplate_post_GetProcessList(this.$route.query.id);
        this.Financial_post_Get(0, parseInt(this.$route.query.id));
      }
      if (this.$route.query.Conditon) {
        this.returnCode = this.$route.query.Conditon;
      }


      // this.admin_get_DepartmentGetList();

    },
    components: {
      "my-FlowChartModule": myFlowChartModule
    }
  }

</script>
