<template>
    <div v-loading.fullscreen.lock="fullscreenLoading">
        <div class="Entry-all">

            <el-dialog :close-on-click-modal="false" title="实时汇率提示" :visible.sync="SSHLVisible">
                <el-table border :data="currencyss">
                    <el-table-column property="currName" label="币种" width="150"></el-table-column>
                    <el-table-column property="rate" label="汇率" width="200"></el-table-column>
                    <el-table-column property="lastUpdateDt" label="更新时间"></el-table-column>
                </el-table>
                <div style="margin-top: 15px;text-align: right;">
                    <el-button type="primary" @click="SSHLVisible=false">已知晓</el-button>
                </div>
            </el-dialog>
            <el-dialog  width="400px" title="设置查看权限" class="permissionsbox" :visible.sync="setpermissions" :close-on-click-modal="false">
                <el-checkbox-group v-model="viewUsers" @change="handleCheckAllChange">
                    <el-checkbox v-for="item in viewUsersarr" :label="item.id" :key="item.id">{{item.name}}</el-checkbox>
                </el-checkbox-group>
                <div style="text-align: right;margin-top: 15px;">
                    <el-button size="mini" @click="EnterExitCostSetViewPermissiion" type="primary">分配</el-button>
                    <el-button size="mini" @click="setpermissions=false">取消</el-button>
                </div>
            </el-dialog>
            <el-dialog  width="1400px" title="交通费详细" :visible.sync="TransportationVisible">
                <div style="display: flex;justify-content: space-between;align-items: center;margin: 5px 0;">
                    <div>接送机(合计)</div>
                    <el-button size="mini" type="primary">添加一行</el-button>
                </div>
                <el-table border :data="Transportationdata">
                    <el-table-column property="a" label="序号" width="50"></el-table-column>
                    <el-table-column property="b" label="城市" width="150">
                        <template slot-scope="scope">
                            <el-select size="mini"
                                v-model="scope.row.a" filterable placeholder="请选择">
                                <el-option v-for="item in fulecao" :key="item.id" :label="item.cityname"
                                    :value="item.id">
                                    <span style="float: left">{{ item.cityname }}</span>
                                    <!-- <span style="float: right; color: #8492a6; font-size: 13px">{{item.city}}</span> -->
                                </el-option>
                            </el-select>
                            <!-- <el-input disabled size="mini" v-model="scope.row.b"></el-input> -->
                        </template>
                    </el-table-column>
                    <el-table-column property="c" label="成本价(要除以团组人数)" width="150">
                        <template slot-scope="scope">
                            <el-input disabled size="mini" v-model="scope.row.c"></el-input>
                        </template>
                    </el-table-column>
                    <el-table-column property="d" label="接送机导游" width="150">
                        <template slot-scope="scope">
                            <el-input disabled size="mini" v-model="scope.row.d"></el-input>
                        </template>
                    </el-table-column>
                    <el-table-column property="e" label="其他费用(只有澳大利亚有这个数据)" width="150">
                        <template slot-scope="scope">
                            <el-input size="mini" v-model="scope.row.d"></el-input>
                        </template>
                    </el-table-column>
                    <el-table-column property="f" label="服务次数(默认为1)" width="150">
                        <template slot-scope="scope">
                            <el-input size="mini" v-model="scope.row.d"></el-input>
                        </template>
                    </el-table-column>
                    <el-table-column property="g" label="系数(默认2.5)" width="150">
                        <template slot-scope="scope">
                            <el-input size="mini" v-model="scope.row.d"></el-input>
                        </template>
                    </el-table-column>
                    <el-table-column property="h" label="报价" width="200">
                        <template slot-scope="scope">
                            <el-input size="mini" v-model="scope.row.d"></el-input>
                        </template>
                    </el-table-column>
                    <el-table-column property="i" label="备注">
                        <template slot-scope="scope">
                            <el-input size="mini" v-model="scope.row.d"></el-input>
                        </template>
                    </el-table-column>
                </el-table>
                <div class="jiaotongfei-ul">
                    <div class="jiaotongfei-li">
                        <div style="display: flex;justify-content: space-between;align-items: center;margin: 5px 0;">
                            <div>拉车(合计)</div>
                            <el-button size="mini" type="primary">添加一行</el-button>
                        </div>
                        <!-- <div>拉车(合计)</div> -->
                        <el-table border :data="lache">
                            <el-table-column property="a" label="成本价" width="150">
                                <template slot-scope="scope">
                                    <el-input size="mini" v-model="scope.row.d"></el-input>
                                </template>
                            </el-table-column>
                            <el-table-column property="a" label="系数" width="150">
                                <template slot-scope="scope">
                                    <el-input size="mini" v-model="scope.row.d"></el-input>
                                </template>
                            </el-table-column>
                            <el-table-column property="a" label="备注">
                                <template slot-scope="scope">
                                    <el-input size="mini" v-model="scope.row.d"></el-input>
                                </template>
                            </el-table-column>
                        </el-table>
                    </div>
                    <div class="jiaotongfei-li">
                        <div style="display: flex;justify-content: space-between;align-items: center;margin: 5px 0;">
                            <div>火车(合计)</div>
                            <el-button size="mini" type="primary">添加一行</el-button>
                        </div>
                        <el-table border :data="huoche">
                            <el-table-column property="a" label="成本价" width="150">
                                <template slot-scope="scope">
                                    <el-input size="mini" v-model="scope.row.d"></el-input>
                                </template>
                            </el-table-column>
                            <el-table-column property="a" label="系数" width="150">
                                <template slot-scope="scope">
                                    <el-input size="mini" v-model="scope.row.d"></el-input>
                                </template>
                            </el-table-column>
                            <el-table-column property="a" label="备注">
                                <template slot-scope="scope">
                                    <el-input size="mini" v-model="scope.row.d"></el-input>
                                </template>
                            </el-table-column>
                        </el-table>
                    </div>
                    <div class="jiaotongfei-li">
                        <div style="display: flex;justify-content: space-between;align-items: center;margin: 5px 0;">
                            <div>城市机票(合计)</div>
                            <el-button size="mini" type="primary">添加一行</el-button>
                        </div>
                        <el-table border :data="chengshijipiao">
                            <el-table-column property="a" label="成本价" width="150">
                                <template slot-scope="scope">
                                    <el-input size="mini" v-model="scope.row.d"></el-input>
                                </template>
                            </el-table-column>
                            <el-table-column property="a" label="系数" width="150">
                                <template slot-scope="scope">
                                    <el-input size="mini" v-model="scope.row.d"></el-input>
                                </template>
                            </el-table-column>
                            <el-table-column property="a" label="备注">
                                <template slot-scope="scope">
                                    <el-input size="mini" v-model="scope.row.d"></el-input>
                                </template>
                            </el-table-column>
                        </el-table>
                    </div>
                </div>
                <div style="text-align: right;margin-top: 20px;">
                    <el-button>取消</el-button>
                    <el-button type="primary">确 定</el-button>
                </div>
            </el-dialog>
            <div class="Entry-head">
                <div class="Entry-head-li">
                    <label>团组名称:</label>
                    <el-select style="width:250px" @change="chengvalue" v-model="value" filterable :filter-method="advancedFilter" placeholder="请选择">
                        <el-option v-for="item in filteredOptions" :key="item.id" :label="item.groupName" :value="item.id">
                            <span v-if="item.isNull=='false'" style="color:#409EFF">{{ item.groupName }}</span>
                            <span v-else style="color:gray">{{ item.groupName }}</span>
                        </el-option>
                    </el-select>
                </div>
                <div v-if="isSave" class="Entry-head-li">
                    <!-- <el-button type="primary">计算费用</el-button> -->
                    <el-button @click="NationalTravelFeeImportReceivables" type="primary">导出到收款账单</el-button>
                    <el-button @click="cleanout" type="primary">全部清空</el-button>
                    <el-button @click="storage()" type="primary">保存</el-button>
                    <el-select style="width:202px" v-model="listvalue" placeholder="请选择">
                        <el-option v-for="item in listvalueoptions" :key="item.id" :label="item.name" :value="item.id">
                        </el-option>
                    </el-select>
                    <el-button @click="eptschedule(1)" type="primary">导出所选明细表</el-button>
                    <el-select style="width:202px" v-model="tablevalue" placeholder="请选择">
                        <el-option v-for="item in tablevalueoptions" :key="item.id" :label="item.name" :value="item.id">
                        </el-option>
                    </el-select>
                    <el-button @click="eptschedule(2)" type="primary">导出下拉所选表格</el-button>
                    <el-button v-if="isAssignPerm" @click="setpermissionsbtn" type="primary">设置权限</el-button>
                    <el-button @click="eptschedule(3)" type="primary">团组成员名单</el-button>
                </div>
            </div>
            <div class="Entry-form">
                <div class="Entry-form-li">
                    <div class="Entry-li-lables">
                        <el-checkbox v-model="choiceOne"></el-checkbox>
                        <div class="li-lable">一、境内费用(其他费用)</div>
                        <div class="li-lable">
                            <span class="redzhu">(注：填好数值鼠标点击其他区域计算合计)</span>
                            <label>合计:</label>
                            <div class="sub-boxs">
                                {{ DomesticFees.total=(DomesticFees.visafees + DomesticFees.vaccinefees +
                                    DomesticFees.nucleicfees + DomesticFees.serviceCharge + DomesticFees.insurance +
                                DomesticFees.ticketsExhibitionL) | numFilter }}
                            </div>
                            <span>元/人</span>
                        </div>
                    </div>
                    <div class="Entry-li-inif">
                        <div class="Entry-inif-box">
                            <label>签证费:</label>
                            <el-input-number size="mini" :controls="false" :precision="2"
                                v-model="DomesticFees.visafees"></el-input-number>
                            <span>元/人</span>
                        </div>
                        <div class="Entry-inif-box">
                            <label>签证费用描述:</label>
                            <el-input style="width:900px" size="mini"
                                v-model="DomesticFees.visafeesDescription"></el-input>
                            <span class="redzhu">{{ visabeizhu }}</span>
                        </div>
                        <el-button @click="Getnewvisafee" type="primary"
                            size="mini">获取最新签证费用</el-button>
                    </div>
                    <div class="Entry-li-inif">
                        <div class="Entry-inif-box">
                            <label>疫苗费:</label>
                            <el-input-number size="mini" :controls="false" :precision="2"
                                v-model="DomesticFees.vaccinefees"></el-input-number>
                            <span>元/人</span>
                        </div>
                        <div class="Entry-inif-box">
                            <label>核酸检测费:</label>
                            <el-input-number size="mini" :controls="false" :precision="2"
                                v-model="DomesticFees.nucleicfees"></el-input-number>
                            <span>元/人;</span>
                        </div>
                        <div class="Entry-inif-box">
                            <label> 服务费:</label>
                            <el-input-number size="mini" :controls="false" :precision="2"
                                v-model="DomesticFees.serviceCharge"></el-input-number>
                            <span>元/人;</span>
                        </div>
                    </div>
                    <div class="Entry-li-inif">
                        <div class="Entry-inif-box">
                            <label>保险费:</label>
                            <el-input-number size="mini" :controls="false" :precision="2"
                                v-model="DomesticFees.insurance"></el-input-number>
                            <span>元/人</span>
                        </div>
                        <div class="Entry-inif-box">
                            <label>参展门票:</label>
                            <el-input-number size="mini" :controls="false" :precision="2"
                                v-model="DomesticFees.ticketsExhibitionL"></el-input-number>
                            <span>元/人;</span>
                        </div>
                        <div class="Entry-inif-box">
                            <label>备注:</label>
                            <el-input style="width:900px" size="mini"
                                v-model="DomesticFees.firstItemRemark"></el-input>
                        </div>
                    </div>
                </div>
                <div class="Entry-form-li">
                    <div class="Entry-li-lables">
                        <!-- <el-checkbox v-model="choiceTwo"></el-checkbox> -->
                        <div class="li-lable">二、国际旅费合计：</div>
                        <div style="display: flex;">
                            <div class="li-lable">
                                <el-checkbox style="margin-right: -10px;" v-model="sumJJC"></el-checkbox>
                                <label>(经济舱)</label>
                                <div class="sub-boxs">
                                    {{ TotalExpenses.EconomyClasstotal=(TotalExpenses.EconomyClass +
                                        TotalExpenses.TravellingExpensesJJ) | numFilter }}
                                </div>
                                <span>元/人</span>
                            </div>
                            &nbsp;&nbsp;&nbsp;&nbsp;
                            <div class="li-lable">
                                <el-checkbox style="margin-right: -10px;" v-model="sumGWC"></el-checkbox>
                                <label>(公务舱)</label>
                                <div class="sub-boxs">
                                    {{ TotalExpenses.BusinessClasstotal=(TotalExpenses.BusinessClass +
                                        TotalExpenses.TravellingExpensesGW) | numFilter }}
                                </div>
                                <span>元/人</span>
                            </div>
                            &nbsp;&nbsp;&nbsp;&nbsp;
                            <div class="li-lable">
                                <el-checkbox style="margin-right: -10px;" v-model="sumTDC"></el-checkbox>
                                <label>(头等舱)</label>
                                <div class="sub-boxs">
                                    {{ TotalExpenses.Firstclasstotal=(TotalExpenses.Firstclass +
                                        TotalExpenses.TravellingExpensesTD) | numFilter }}
                                </div>
                                <span>元/人</span>
                            </div>
                        </div>
                    </div>
                    <div class="Entry-li-inif">
                        <label>国际机票:&nbsp; &nbsp; &nbsp; </label>
                        <div class="Entry-inif-box">
                            <label>（经济舱）:</label>
                            <el-input-number size="mini" :controls="false" :precision="2"
                                v-model="TotalExpenses.EconomyClass"></el-input-number>
                            <span>元/人</span>
                        </div>
                        <div class="Entry-inif-box">
                            <label>（公务舱）:</label>
                            <el-input-number size="mini" :controls="false" :precision="2"
                                v-model="TotalExpenses.BusinessClass"></el-input-number>
                            <span>元/人;</span>
                        </div>
                        <div class="Entry-inif-box">
                            <label>（头等舱）:</label>
                            <el-input-number size="mini" :controls="false" :precision="2"
                                v-model="TotalExpenses.Firstclass"></el-input-number>
                            <span>元/人;</span>
                        </div>
                        <span v-if="airDataArr.length<1" class="redzhu">(机票数据未录入)</span>
                        <div v-else>
                            <span class="redzhu">有多条机票费用数据请自行选择！！</span>&nbsp;&nbsp;
                            <el-select style="width:400px" @change="Fillin" size="mini" v-model="airDataArrvalue" placeholder="请选择">
                                <el-option
                                  v-for="item in airDataArr"
                                  :key="item.remark"
                                  :label="item.remark"
                                  :value="item.remark">
                                  <el-tooltip 
                                  popper-class="custom-tooltip-style" 
                                  effect="light" 
                                  :content="item.tripDesc" 
                                  placement="right">
                                    <span>{{ item.remark }}</span>
                                  </el-tooltip>
                                </el-option>
                            </el-select>
                            <!-- <el-button type="primary" @click="Fillin" size="mini">填 入</el-button> -->
                        </div>
                    </div>
                    <div class="Entry-li-inif">
                         <label>城市区间交通费:&nbsp; &nbsp; &nbsp; </label>
                        <div class="Entry-inif-box">
                            <label>（经济舱）:</label>
                            <el-input-number size="mini" :controls="false" :precision="2"
                                v-model="TotalExpenses.TravellingExpensesJJ"></el-input-number>
                            <span>元/人;</span>
                        </div>
                        <div class="Entry-inif-box">
                            <label>（公务舱）:</label>
                            <el-input-number size="mini" :controls="false" :precision="2"
                                v-model="TotalExpenses.TravellingExpensesGW"></el-input-number>
                            <span>元/人;</span>
                        </div>
                        <div class="Entry-inif-box">
                            <label>（头等舱）:</label>
                            <el-input-number size="mini" :controls="false" :precision="2"
                                v-model="TotalExpenses.TravellingExpensesTD"></el-input-number>
                            <span>元/人;</span>
                        </div>
                    </div>
                    <div class="Entry-li-inif">
                        <div class="Entry-inif-box">
                            <label>备注:</label>
                            <el-input style="width:1000px" size="mini"
                                v-model="TotalExpenses.twoItemRemark"></el-input>
                        </div>
                    </div>
                    <div class="Entry-li-inif">
                        <div v-for="(item, index) in currencys" :key="index" class="Entry-inif-box">
                            <label>{{ item.currencyName }}汇率:</label>
                            <el-input-number size="mini" :controls="false" :precision="4"
                                v-model="item.rate"></el-input-number>
                        </div>
                        <span style="color:red;">* 若客户有意见，需要与财务商量后进行适当调整 </span>
                        <el-popover
                        placement="top"
                        width="402"
                        trigger="hover">
                            <el-table border :data="currencyss">
                                <el-table-column width="100" property="currName" label="币种"></el-table-column>
                                <el-table-column width="100" property="rate" label="汇率"></el-table-column>
                                <el-table-column width="200" property="lastUpdateDt" label="更新时间"></el-table-column>
                            </el-table>
                            <span style="color: #409EFF;" slot="reference" class="redzhu">{{CurrencysRemark}}</span>
                            <div style="margin-top: 5px;text-align: right;">
                                <el-button  @click="adoptRealtime" type="primary" size="mini">采用最新汇率</el-button>
                            </div>
                        </el-popover>
                        &nbsp;&nbsp;&nbsp;&nbsp;
                    </div>
                </div>
                <div class="Entry-form-li">
                    <div class="Entry-li-lable">
                        <div style="display: flex;align-items: center;">
                            <el-checkbox v-model="choiceThree"></el-checkbox>
                            <div class="li-lable">三、住宿费：</div>
                            <div style="display: flex;">
                                <div class="li-lable">
                                    <label>合计:</label>
                                    <div class="sub-boxs">{{ TotalAccommodationFee | numFilter }}</div>
                                    <span>元/人</span>
                                </div>
                            </div>
                        </div>
                        <div class="btn-Entry">
                            <el-button type="primary" @click="addlist('住宿费')" size="mini">新 增</el-button>
                        </div>
                    </div>
                    <div class="Entry-li-inif">
                        <el-table :data="quarterageData" border style="width: 100%">
                            <el-table-column prop="days" label="第几晚" width="180">
                                <template slot-scope="scope">
                                    <el-input-number size="mini" :controls="false"
                                        v-model="scope.row.days"></el-input-number>
                                </template>
                            </el-table-column>
                            <el-table-column style="position: relative;" prop="city" label="城 市" width="180">
                                <template slot-scope="scope">
                                    <el-select size="mini" @change="changeSelect(scope.row, $event, scope.$index)"
                                        v-model="scope.row.nationalTravelFeeId" filterable placeholder="请选择">
                                        <el-option v-for="item in placeinif" :key="item.id" :label="item.cityname"
                                            :value="item.id">
                                            <span style="float: left">{{ item.cityname }}</span>
                                            <!-- <span style="float: right; color: #8492a6; font-size: 13px">{{item.city}}</span> -->
                                        </el-option>
                                    </el-select>
                                </template>
                            </el-table-column>
                            <el-table-column prop="cost" label=" 费用标准" width="180">
                                <template slot-scope="scope">
                                    <el-input-number @input="zhusuinput(scope.row)" size="mini" :precision="2"
                                        :controls="false" v-model="scope.row.cost"></el-input-number>
                                </template>
                            </el-table-column>
                            <el-table-column prop="currencyName" label=" 币 种" width="180">
                                <template slot-scope="scope">
                                    <el-input disabled size="mini" v-model="scope.row.currencyName"></el-input>
                                </template>
                            </el-table-column>
                            <el-table-column prop="subTotal" label="费用小计" width="180">
                                <template slot-scope="scope">
                                    <div class="sub-boxs">{{ scope.row.subTotal | numFilter }}</div>&nbsp;CNY
                                </template>
                            </el-table-column>
                            <el-table-column prop="address" label="操 作">
                                <template slot-scope="scope">
                                    <el-button v-if="isSave" style="color: #fff;" size="mini" type="danger"
                                        @click="deleteRow(scope.$index, scope.row, quarterageData, 1)">删除</el-button>
                                </template>
                            </el-table-column>
                        </el-table>
                    </div>
                </div>
                <div class="Entry-form-li">
                    <div class="Entry-li-lable">
                        <div style="display: flex;align-items: center;">
                            <el-checkbox v-model="choiceFour"></el-checkbox>
                            <div class="li-lable">四、伙食费：</div>
                            <div style="display: flex;">
                                <div class="li-lable">
                                    <label>合计:</label>
                                    <div class="sub-boxs">{{ TotalMeals | numFilter }}</div>
                                    <span>元/人</span>
                                </div>
                            </div>
                        </div>
                        <div class="btn-Entry">
                            <el-button type="primary" @click="addlist('伙食费')" size="mini">新 增</el-button>
                        </div>
                    </div>
                    <div class="Entry-li-inif">
                        <el-table :data="boardWagesData" border style="width: 100%">
                            <el-table-column prop="days" label="第几晚" width="180">
                                <template slot-scope="scope">
                                    <el-input-number size="mini" :controls="false"
                                        v-model="scope.row.days"></el-input-number>
                                </template>
                            </el-table-column>
                            <el-table-column style="position: relative;" prop="city" label="城 市" width="180">
                                <!-- <template slot-scope="scope">
                                    <el-input size="mini" v-model="scope.row.city"></el-input>
                                </template> -->
                                <template slot-scope="scope">
                                    <el-select size="mini" @change="mealschangeSelect(scope.row, $event, scope.$index)"
                                        v-model="scope.row.nationalTravelFeeId" filterable placeholder="请选择">
                                        <el-option v-for="item in placeinif" :key="item.id" :label="item.cityname"
                                            :value="item.id">
                                            <span style="float: left">{{ item.cityname }}</span>
                                            <!-- <span style="float: right; color: #8492a6; font-size: 13px">{{item.city}}</span> -->
                                        </el-option>
                                    </el-select>
                                </template>
                            </el-table-column>
                            <el-table-column prop="cost" label=" 费用标准" width="180">
                                <template slot-scope="scope">
                                    <el-input-number size="mini" @input="mealsinput(scope.row)" :precision="2"
                                        :controls="false" v-model="scope.row.cost"></el-input-number>
                                </template>
                            </el-table-column>
                            <el-table-column prop="currencyName" label=" 币 种" width="180">
                                <template slot-scope="scope">
                                    <el-input disabled size="mini" v-model="scope.row.currencyName"></el-input>
                                </template>
                            </el-table-column>
                            <el-table-column prop="subTotal" label="费用小计" width="180">
                                <template slot-scope="scope">
                                    <div class="sub-boxs">{{ scope.row.subTotal | numFilter }}</div>&nbsp;CNY
                                </template>
                            </el-table-column>
                            <el-table-column prop="address" label="操 作">
                                <template slot-scope="scope">
                                    <el-button v-if="isSave" style="color: #fff;" size="mini" type="danger"
                                        @click="deleteRow(scope.$index, scope.row, boardWagesData, 2)">删除</el-button>
                                </template>
                            </el-table-column>
                        </el-table>
                    </div>
                </div>
                <div class="Entry-form-li">
                    <div class="Entry-li-lable">
                        <div style="display: flex;align-items: center;">
                            <el-checkbox v-model="choiceFive"></el-checkbox>
                            <div class="li-lable">五、公杂费：</div>
                            <div style="display: flex;">
                                <div class="li-lable">
                                    <label>合计:</label>
                                    <div class="sub-boxs">{{ TotalMiscellaneous | numFilter }}</div>
                                    <span>元/人</span>
                                </div>
                            </div>
                        </div>
                        <div class="btn-Entry">
                            <el-button type="primary" @click="addlist('公杂费')" size="mini">新 增</el-button>
                        </div>
                    </div>
                    <div class="Entry-li-inif">
                        <el-table :data="miscellaneousFeeData" border style="width: 100%">
                            <el-table-column prop="days" label="第几晚" width="180">
                                <template slot-scope="scope">
                                    <el-input-number size="mini" :controls="false"
                                        v-model="scope.row.days"></el-input-number>
                                </template>
                            </el-table-column>
                            <el-table-column style="position: relative;" prop="city" label="城 市" width="180">
                                <!-- <template slot-scope="scope">
                                    <el-input size="mini" v-model="scope.row.city"></el-input>
                                </template> -->
                                <template slot-scope="scope">
                                    <el-select @change="MiscellaneouschangeSelect(scope.row, $event)" size="mini"
                                        v-model="scope.row.nationalTravelFeeId" filterable placeholder="请选择">
                                        <el-option v-for="item in placeinif" :key="item.id" :label="item.cityname"
                                            :value="item.id">
                                            <span style="float: left">{{ item.cityname }}</span>
                                            <!-- <span style="float: right; color: #8492a6; font-size: 13px">{{item.city}}</span> -->
                                        </el-option>
                                    </el-select>
                                </template>
                            </el-table-column>
                            <el-table-column prop="cost" label=" 费用标准" width="180">
                                <template slot-scope="scope">
                                    <el-input-number @input="Miscellaneousinput(scope.row)" size="mini" :precision="2"
                                        :controls="false" v-model="scope.row.cost"></el-input-number>
                                </template>
                            </el-table-column>
                            <el-table-column prop="currencyName" label=" 币 种" width="180">
                                <template slot-scope="scope">
                                    <el-input disabled size="mini" v-model="scope.row.currencyName"></el-input>
                                </template>
                            </el-table-column>
                            <el-table-column prop="subTotal" label="费用小计" width="180">
                                <template slot-scope="scope">
                                    <div class="sub-boxs">{{ scope.row.subTotal | numFilter }}</div>&nbsp;CNY
                                </template>
                            </el-table-column>
                            <el-table-column prop="address" label="操 作">
                                <template slot-scope="scope">
                                    <el-button v-if="isSave" style="color: #fff;" size="mini" type="danger"
                                        @click="deleteRow(scope.$index, scope.row, miscellaneousFeeData, 3)">删除</el-button>
                                </template>
                            </el-table-column>
                        </el-table>
                    </div>
                </div>
                <div class="Entry-form-li">
                    <div class="Entry-li-lable">
                        <div style="display: flex;align-items: center;">
                            <el-checkbox v-model="choiceSix"></el-checkbox>
                            <div class="li-lable">六、培训费：</div>
                            <div style="display: flex;">
                                <div class="li-lable">
                                    <label>合计:</label>
                                    <div class="sub-boxs">{{ trainingExpense | numFilter }}</div>
                                    <span>元/人</span>
                                </div>
                            </div>
                        </div>
                        <div class="btn-Entry">
                            <el-button type="primary" @click="addlist('培训费')" size="mini">新 增</el-button>
                        </div>
                    </div>
                    <div class="Entry-li-inif">
                        <el-table :data="trainingExpenseData" border style="width: 100%">
                            <el-table-column prop="days" label="第几晚" width="180">
                                <template slot-scope="scope">
                                    <el-input-number size="mini" :controls="false"
                                        v-model="scope.row.days"></el-input-number>
                                </template>
                            </el-table-column>
                            <el-table-column style="position: relative;" prop="city" label="城 市" width="180">
                                <!-- <template slot-scope="scope">
                                    <el-input size="mini" v-model="scope.row.city"></el-input>
                                </template> -->
                                <template slot-scope="scope">
                                    <el-select @change="TrainingExpenseDataSelect(scope.row, $event, scope.$index)" size="mini"
                                        v-model="scope.row.nationalTravelFeeId" filterable placeholder="请选择">
                                        <el-option v-for="item in placeinif" :key="item.id" :label="item.cityname"
                                            :value="item.id">
                                            <span style="float: left">{{ item.cityname }}</span>
                                            <!-- <span style="float: right; color: #8492a6; font-size: 13px">{{item.city}}</span> -->
                                        </el-option>
                                    </el-select>
                                </template>
                            </el-table-column>
                            <el-table-column prop="cost" label=" 费用标准" width="180">
                                <template slot-scope="scope">
                                    <el-input-number @input="Traininginput(scope.row)" size="mini" :precision="2"
                                        :controls="false" v-model="scope.row.cost"></el-input-number>
                                </template>
                            </el-table-column>
                            <el-table-column prop="currencyName" label=" 币 种" width="180">
                                <template slot-scope="scope">
                                    <el-input disabled size="mini" v-model="scope.row.currencyName"></el-input>
                                </template>
                            </el-table-column>
                            <el-table-column prop="subTotal" label="费用小计" width="180">
                                <template slot-scope="scope">
                                    <div class="sub-boxs">{{ scope.row.subTotal | numFilter }}</div>&nbsp;CNY
                                </template>
                            </el-table-column>
                            <el-table-column prop="address" label="操 作">
                                <template slot-scope="scope">
                                    <el-button v-if="isSave" style="color: #fff;" size="mini" type="danger"
                                        @click="deleteRow(scope.$index, scope.row, trainingExpenseData, 4)">删除</el-button>
                                </template>
                            </el-table-column>
                        </el-table>
                    </div>
                </div>
                <div class="Entry-form-li">
                    <div class="Entry-li-lable">
                        <div style="display: flex;align-items: center;">
                            <el-checkbox v-model="choiceSeven"></el-checkbox>
                            <div class="li-lable">七、其他：</div>
                            <div style="display: flex;">
                                <div class="li-lable">
                                    <label>合计:</label>
                                    <div class="sub-boxs">{{ otherExpense | numFilter }}</div>
                                    <span>元/人</span>
                                </div>
                            </div>
                            <div style="color:red">
                                &nbsp;注:特殊情况才在这里填写，如:要计算车导费、备用金费用等
                            </div>
                        </div>
                        <div class="btn-Entry">
                            <el-button type="primary" @click="addlist('其他')" size="mini">新 增</el-button>
                        </div>
                    </div>
                    <div class="Entry-li-inif">
                        <el-table :data="otherData" border style="width: 100%">
                            <el-table-column prop="index" label="第几项" width="180">
                                <template slot-scope="scope">
                                    <el-input-number size="mini" :controls="false"
                                        v-model="scope.row.index"></el-input-number>
                                </template>
                            </el-table-column>
                            <el-table-column style="position: relative;" prop="setDataId" label="费用类型" width="180">
                                <!-- <template slot-scope="scope">
                                    <el-input size="mini" v-model="scope.row.city"></el-input>
                                </template> -->
                                <template slot-scope="scope">
                                    <el-select size="mini" v-model="scope.row.setDataId" filterable placeholder="请选择">
                                        <el-option v-for="item in otherfylx" :key="item.id" :label="item.name"
                                            :value="item.id">
                                            <span style="float: left">{{ item.name }}</span>
                                            <!-- <span style="float: right; color: #8492a6; font-size: 13px">{{item.city}}</span> -->
                                        </el-option>
                                    </el-select>
                                </template>
                            </el-table-column>
                            <el-table-column prop="cost" label=" 费用标准" width="180">
                                <template slot-scope="scope">
                                    <el-input-number @input="otherinput(scope.row)" size="mini" :precision="2"
                                        :controls="false" v-model="scope.row.cost"></el-input-number>
                                </template>
                            </el-table-column>
                            <el-table-column prop="currencyName" label=" 币 种" width="180">
                                <template slot-scope="scope">
                                    <el-select @change="othercurrencychange(scope.row.currency, scope.row)" size="mini"
                                        v-model="scope.row.currency" filterable placeholder="请选择">
                                        <el-option v-for="item in othercurrencys" :key="item.currencyId"
                                            :label="item.currencyCode" :value="item.currencyId">
                                            <span style="float: left">{{ item.currencyCode + ' 汇率：' + item.rate
                                                }}</span>
                                        </el-option>
                                    </el-select>
                                    <!-- <el-input size="mini" v-model="scope.row.currencyName"></el-input> -->
                                </template>
                            </el-table-column>
                            <el-table-column prop="subTotal" label="费用小计" width="180">
                                <template slot-scope="scope">
                                    <div class="sub-boxs">{{ scope.row.subTotal | numFilter }}</div>&nbsp;CNY
                                </template>
                            </el-table-column>
                            <el-table-column prop="remark" label="备注" width="450">
                                <template slot-scope="scope">
                                    <el-input size="mini" v-model="scope.row.remark"></el-input>
                                </template>
                            </el-table-column>
                            <el-table-column prop="address" label="操 作">
                                <template slot-scope="scope">
                                    <el-button v-if="isSave" style="color: #fff;" size="mini" type="danger"
                                        @click="DeleteOtherExpenses(scope.$index, scope.row, otherData)">删除</el-button>
                                </template>
                            </el-table-column>
                        </el-table>
                    </div>
                </div>
                <div class="Entry-form-li">
                    <div class="Entry-li-lables">
                        <div class="li-lable">费用总计：</div>
                        <div style="display: flex;">
                            <div class="li-lable">
                                <!-- <el-checkbox style="margin-right: -10px;" v-model="airJJC_Checked"></el-checkbox> -->
                                <label>(经济舱)</label>
                                <div class="sub-boxs">{{ jjctotal | numFilter }}</div>
                                <span>元/人</span>
                            </div>
                            &nbsp;&nbsp;&nbsp;&nbsp;
                            <div class="li-lable">
                                <!-- <el-checkbox style="margin-right: -10px;" v-model="airGWC_Checked"></el-checkbox> -->
                                <label>(公务舱)</label>
                                <div class="sub-boxs">{{ gwctotal | numFilter }}</div>
                                <span>元/人</span>
                            </div>
                            &nbsp;&nbsp;&nbsp;&nbsp;
                            <div class="li-lable">
                                <!-- <el-checkbox style="margin-right: -10px;" v-model="airGWC_Checked"></el-checkbox> -->
                                <label>(头等舱)</label>
                                <div class="sub-boxs">{{ tdctotal | numFilter }}</div>
                                <span>元/人</span>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</template>
<script>

import { Decimal } from 'decimal.js'
import { debounce } from '../../store/statice'
import { number } from 'echarts';
export default {
    data() {
        return {
            fullscreenLoading: false,


            options: [],
            filteredOptions: [],
            searchMode: 'character', // 'character': 字符匹配, 'fuzzy': 模糊匹配
            listvalue: 1005,
            tablevalue: '',
            listvalueoptions: [],
            tablevalueoptions: [],

            //是否计算Checkbox
            choiceOne: false,//境内费用(其他费用)选择框
            choiceTwo: false,//国际旅费合计选择框
            choiceThree: false,//住宿费合计选择框
            choiceFour: false,//伙食费合计选择框
            choiceFive: false,//公杂费合计选择框
            choiceSix: false,//培训费用选择框
            choiceSeven: false,//其他费用选择框
            sumJJC: false,//经济舱小计选择框
            sumGWC: false,//公务舱小计选择框
            sumTDC: false,//头等舱小计选择框
            airJJC_Checked: false,//经济舱选择框
            airGWC_Checked: false,//公务舱选择框
            airTDC_Checked: false,//公务舱选择框
            
            isAssignPerm:false,

            provinceId:'',

            userId: '',
            token: '',
            value: '',
            options: [],
            Visafees: '',
            Visadepicted: '',
            currencys: [],
            currencyss: [],
            DomesticFees: {
                visafees: '',//签证费
                visafeesDescription: '',//签证费用描述
                vaccinefees: 0,//疫苗费
                nucleicfees: 0,//核酸检测费
                serviceCharge: 0,//服务费
                insurance: 500,//保险费
                ticketsExhibitionL: 0,//参展门票
                total: 0,
                firstItemRemark:''//备注
            },
            TotalExpenses: {
                EconomyClass: 0,//经济舱
                BusinessClass: 0,//公务舱
                Firstclass: 0,//头等舱
                TravellingExpensesJJ: 0,//城市区间交通费JJ
                TravellingExpensesGW: 0,//城市区间交通费GW
                TravellingExpensesTD: 0,//城市区间交通费TD
                EconomyClasstotal: 0,//经济舱合计
                BusinessClasstotal: 0,//公务舱合计
                Firstclasstotal: 0,//头等舱合计
                twoItemRemark:''//备注
            },

            TotalAccommodationFee: 0,//住宿费合计
            TotalMeals: 0,//伙食费合计
            TotalMiscellaneous: 0,//公杂费合计
            trainingExpense: 0,//培训费合计
            otherExpense: 0,//其他费用合计

            quarterageData: [],
            boardWagesData: [],
            miscellaneousFeeData: [],
            trainingExpenseData: [],
            otherData: [],
            placeinif: [],
            //下拉框
            treeData: "",
            treeDataValue: "",
            data: [],
            defaultProps: {
                children: "cityData",
                label: "city",
                // label: "country",
            },

            jjctotal: 0,//经济舱合计
            gwctotal: 0,//公务舱合计
            tdctotal: 0,//公务舱合计

            storageid: 0,
            visabeizhu: "",
            ID: '',
            TicketJudgment: {},
            CurrencysRemark: '',
            //监听币种数组
            watchedPrice: null,
            cubtn: false,
            getvisafeebtn: false,
            visainfo: {},
            //其他币种
            othercurrencys: [],
            otherfylx: [],
            //设置权限
            setpermissions:false,
            isSave:false,
            isView:false,
            viewUsers:[],
            viewUsersby:[],
            viewUsersarr:[],

            //又憋两坨
            airDataArr:[],
            airDataArrvalue:'',
            //实时汇率
            liveRateInfos:[],
            SSHLVisible:false,
            //交通费弹窗
            Transportationdata:[
                {
                    a:1,
                    b:'',
                    c:'',
                    d:'',
                    e:'',
                    f:'',
                    g:'',
                    h:'',
                    i:'',
                },
                {
                    a:2,
                    b:'',
                    c:'',
                    d:'',
                    e:'',
                    f:'',
                    g:'',
                    h:'',
                    i:'',
                },
                {
                    a:3,
                    b:'',
                    c:'',
                    d:'',
                    e:'',
                    f:'',
                    g:'',
                    h:'',
                    i:'',
                }
            ],
            TransportationVisible:false,
            lache:[
                {
                    a:1,
                    b:"",
                    c:"",
                }
            ],
            huoche:[
                {
                    a:1,
                    b:"",
                    c:"",
                }
            ],
            chengshijipiao:[
                {
                    a:1,
                    b:"",
                    c:"",
                }
            ],
            fulecao:[],
        }
    },
    methods: {
        advancedFilter(query) {
            if (!query || query.trim() === '') {
                this.filteredOptions = [...this.options];
                return;
            }

            const trimmedQuery = query.trim();

            if (this.searchMode === 'character') {
                // 字符匹配模式：每个字都必须包含
                this.characterMatchFilter(trimmedQuery);
            } else {
                // 模糊匹配模式（默认的filterable行为）
                this.fuzzyMatchFilter(trimmedQuery);
            }
        },

        /*** 严格的字符匹配 - 每个查询字符都必须出现*/
        characterMatchFilter(query) {
            const queryChars = query.split('').filter(char => char.trim() !== '');

            this.filteredOptions = this.options.filter(item => {
                const groupName = item.groupName || '';
                return queryChars.every(char => groupName.includes(char));
            });
        },
        /*** 模糊匹配 - 包含整个查询字符串即可*/
        fuzzyMatchFilter(query) {
            const lowerQuery = query.toLowerCase();
            this.filteredOptions = this.options.filter(item => {
                const groupName = (item.groupName || '').toLowerCase();
                return groupName.includes(lowerQuery);
            });
        },

        //baoliuliangweixiaoshu
        reservetwo(value) {
            // 截取当前数据到小数点后两位
            let realVal = new Decimal(value).toFixed(2)
            return realVal
        },
        //获取团组
        GetEnterExitCostDataSource() {
            var url = "/api/Groups/GetEnterExitCostDataSource"
            var that = this
            this.$axios({
                method: 'post',
                url: url,
                headers: {
                    Authorization: 'Bearer ' + this.token
                },
                data: {
                    portType: 1
                }
            }).then(function (res) {
                if (res.data.code == 200) {
                    that.options = res.data.data.groupNameData;
                    that.filteredOptions = that.options;
                    that.currencys = res.data.data.currencyInit;
                    that.viewUsersarr= res.data.data.viewPermissionData;
                    if (that.value == null) {
                        that.value = res.data.data.groupNameData[0].id;
                        that.provinceId = res.data.data.groupNameData[0].provinceId;
                    }
                    
                    that.GetEnterExitCostInfobyDiId();
                    that.PostGroupTeamRateByDiIdAndCTableId();
                    
                    
                }
            })
        },
        //获取币种
        PostGroupTeamRateByDiIdAndCTableId() {
            this.othercurrencys = [];
            var url = "/api/Business/PostGroupTeamRateByDiIdAndCTableId"
            var that = this
            this.$axios({
                method: 'post',
                url: url,
                headers: {
                    Authorization: 'Bearer ' + this.token
                },
                data: {
                    portType: 1,
                    diId: that.value,
                    cTable: 98
                }
            }).then(function (res) {
                if (res.data.code == 200) {
                    that.othercurrencys = res.data.data.teamRates;
                    for (let sr = 0; sr < that.othercurrencys.length; sr++) {
                        if (that.othercurrencys[sr].currencyCode != 'CNY') {
                            that.othercurrencys[sr].rate = new Decimal(that.othercurrencys[sr].rate * 1.03).toFixed(4)
                        }
                        for (let y = 0; y < that.currencys.length; y++) {
                            if (that.currencys[y].currencyCode == that.othercurrencys[sr].currencyCode) {
                                that.othercurrencys[sr].rate = that.currencys[y].rate;
                            }
                        }

                    }
                } else {
                    that.$message.error(res.data.msg);
                }
            })
        },
        //获取类型
        QuerySetData() {
            var url = "/api/System/QuerySetData"
            var that = this
            this.$axios({
                method: 'post',
                url: url,
                headers: {
                    Authorization: 'Bearer ' + this.token
                },
                data: {
                    dataType: 92
                }
            }).then(function (res) {
                if (res.data.code == 200) {
                    that.otherfylx = res.data.data;
                } else {
                    that.$message.error(res.data.msg);
                }
            })
        },
        //获取签证标注
        GetEnterExitCostCorrelationTips(val) {
            this.airDataArr=[]
            this.getvisafeebtn = false;
            if (val == 1) {
                // this.TotalExpenses.EconomyClass = 0;
                // this.TotalExpenses.BusinessClass = 0;
                // this.TotalExpenses.Firstclass = 0;
                this.DomesticFees.visafees = 0;
                this.DomesticFees.visafeesDescription = "";
                var url = "/api/Groups/GetEnterExitCostCorrelationTips"
                var that = this
                this.$axios({
                    method: 'post',
                    url: url,
                    headers: {
                        Authorization: 'Bearer ' + this.token
                    },
                    data: {
                        portType: 1,
                        diId: that.value
                    }
                }).then(function (res) {
                    if (res.data.code == 200) {
                        // that.TotalExpenses.EconomyClass = res.data.data.airData[0].jjcCurrentRate;
                        // that.TotalExpenses.BusinessClass = res.data.data.airData[0].gwcCurrentRate;
                        // that.TotalExpenses.Firstclass = res.data.data.airData[0].tdcCurrentRate;
                        that.airDataArr=res.data.data.airData;
                        that.DomesticFees.visafees = res.data.data.visaData.feeTotal;
                        that.DomesticFees.visafeesDescription = res.data.data.visaData.remark;
                    } else {
                        that.$message.error(res.data.msg);
                    }
                })
            } else {
                var url = "/api/Groups/GetEnterExitCostCorrelationTips"
                var that = this
                this.$axios({
                    method: 'post',
                    url: url,
                    headers: {
                        Authorization: 'Bearer ' + this.token
                    },
                    data: {
                        portType: 1,
                        diId: that.value
                    }
                }).then(function (res) {
                    if (res.data.code == 200) {
                        that.TicketJudgment = res.data.data.airData;
                        that.airDataArr=res.data.data.airData;
                        // if (that.TotalExpenses.EconomyClass==0) {
                        //     that.TotalExpenses.EconomyClass = that.airDataArr[0].jjcCurrentRate;
                        // }
                        // if (that.TotalExpenses.BusinessClass==0) {
                        //     that.TotalExpenses.BusinessClass = that.airDataArr[0].gwcCurrentRate;
                        // }
                        // if (that.TotalExpenses.Firstclass==0) {
                        //     that.TotalExpenses.Firstclass = that.airDataArr[0].tdcCurrentRate;
                        // }
                        that.visainfo = res.data.data.visaData;
                        that.currencyss = res.data.data.reteInfos;
                        that.SSHLVisible=true;
                        if (that.DomesticFees.visafees != res.data.data.visaData.feeTotal && res.data.data.visaData.feeTotal != 0) {
                            that.getvisafeebtn = true;
                        }
                        for (let s = 0; s < that.currencys.length; s++) {
                            if (that.currencys[s].rate != that.currencyss[s].rate) {
                                that.cubtn = true;
                                that.CurrencysRemark = '移上查看实时汇率'
                                return
                            } else {
                                that.cubtn = false;
                            }
                        }
                    } else {
                        that.$message.error(res.data.msg);
                    }
                })
            }
        },
        //机票费用填入
        Fillin(val) {
            var obj = {}
            obj = this.airDataArr.find(function (i,indexs) {
                return i.remark === val
            });
            this.TotalExpenses.EconomyClass = obj.jjcCurrentRate;
            this.TotalExpenses.BusinessClass = obj.gwcCurrentRate;
            this.TotalExpenses.Firstclass = obj.tdcCurrentRate;
            //添加城市交通费
        },
        //获取文件
        EnterExitCostFileOwner() {
            this.listvalueoptions=[];
            this.tablevalueoptions=[];
            console.log(this.provinceId);
            
            var url = "/api/Groups/EnterExitCostFileOwner/"+this.provinceId
            var that = this
            this.$axios({
                method: 'get',
                url: url,
            }).then(function (res) {
                if (res.data.code == 200) {
                    that.listvalueoptions = res.data.data.wordTypeData;
                    that.tablevalueoptions = res.data.data.excelTypeData;
                }else {
                    that.$message.error(res.data.msg);
                }
            })
        },
        //获取费用标注
        GetNationalTravelFeeData() {
            var url = "/api/Groups/GetNationalTravelFeeData"
            var that = this
            this.$axios({
                method: 'post',
                url: url,
                headers: {
                    Authorization: 'Bearer ' + this.token
                },
                data: {
                    portType: 1,
                    provinceId:that.provinceId,
                }
            }).then(function (res) {
                let placeinifarr = [];
                that.placeinif=[];
                if (res.data.code == 200) {
                    for (let i = 0; i < res.data.data.length; i++) {
                        res.data.data[i]['cityname'] = res.data.data[i].country + '-' + res.data.data[i].city;
                        placeinifarr.push(res.data.data[i]);
                    }
                    that.placeinif = placeinifarr;
                    console.log(that.placeinif);
                    
                }
            })
        },
        GetEnterExitCostInfobyDiId() {

            //初始化数据
            this.ID = '';
            // this.currencys=[]
            this.viewUsers=[];
            this.viewUsersby=[];
            this.TotalAccommodationFee = 0;//住宿费合计
            this.TotalMeals = 0;//伙食费合计
            this.TotalMiscellaneous = 0;//公杂费合计
            this.trainingExpense = 0;//培训费合计
            this.otherExpense = 0;//其他费合计

            this.DomesticFees = {
                visafees: '',//签证费
                visafeesDescription: '',//签证费用描述
                vaccinefees: 0,//疫苗费
                nucleicfees: 0,//核酸检测费
                serviceCharge: 0,//服务费
                insurance: 500,//保险费
                ticketsExhibitionL: 0,//参展门票
                total: 0,
                firstItemRemark:''//备注
            }
            this.TotalExpenses = {
                EconomyClass: 0,//经济舱
                BusinessClass: 0,//公务舱
                Firstclass: 0,//TD舱
                TravellingExpensesJJ: 0,//城市区间交通费JJ
                TravellingExpensesGW: 0,//城市区间交通费GW
                TravellingExpensesTD: 0,//城市区间交通费TD
                EconomyClasstotal: 0,//经济舱合计
                BusinessClasstotal: 0,//公务舱合计
                Firstclasstotal: 0,//TD舱合计
                twoItemRemark:''//备注
            }
            this.choiceOne = false//境内费用(其他费用)选择框
            this.choiceTwo = false//国际旅费合计选择框
            this.choiceThree = false//住宿费合计选择框
            this.choiceFour = false//伙食费合计选择框
            this.choiceFive = false//公杂费合计选择框
            this.choiceSix = false//培训费用选择框
            this.choiceSeven = false//其他费用选择框
            this.sumJJC = false//经济舱小计选择框
            this.sumGWC = false//公务舱小计选择框
            this.sumTDC = false//公务舱小计选择框
            this.airJJC_Checked = false//经济舱选择框 
            this.airGWC_Checked = false//公务舱选择框
            this.isSave = false//保存权限 
            this.isView = false//查看权限
            this.storageid = 0

            this.quarterageData = [
                {
                    id: 0,
                    diId: this.value,
                    type: 1,
                    days: 1,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 1,
                    days: 2,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 1,
                    days: 3,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 1,
                    days: 4,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 1,
                    days: 5,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 1,
                    days: 6,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 1,
                    days: 7,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 1,
                    days: 8,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
            ]
            this.boardWagesData = [
                {
                    id: 0,
                    diId: this.value,
                    type: 2,
                    days: 1,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 2,
                    days: 2,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 2,
                    days: 3,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 2,
                    days: 4,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 2,
                    days: 5,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 2,
                    days: 6,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 2,
                    days: 7,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 2,
                    days: 8,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
            ]
            this.miscellaneousFeeData = [
                {
                    id: 0,
                    diId: this.value,
                    type: 3,
                    days: 1,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 3,
                    days: 2,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 3,
                    days: 3,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 3,
                    days: 4,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 3,
                    days: 5,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 3,
                    days: 6,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 3,
                    days: 7,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 3,
                    days: 8,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
            ]
            this.trainingExpenseData = [
                {
                    id: 0,
                    diId: this.value,
                    type: 4,
                    days: 1,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 4,
                    days: 2,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 4,
                    days: 3,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 4,
                    days: 4,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 4,
                    days: 5,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 4,
                    days: 6,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 4,
                    days: 7,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
                {
                    id: 0,
                    diId: this.value,
                    type: 4,
                    days: 8,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                },
            ]
            this.otherData = [
                {
                    id: 0,
                    diId: this.value,
                    setDataId: '',
                    index: 1,
                    cost: '',
                    cost: 0,
                    currency: '',
                    subTotal: 0,
                    remark:'',
                },
                {
                    id: 0,
                    diId: this.value,
                    setDataId: '',
                    index: 2,
                    cost: '',
                    cost: 0,
                    currency: '',
                    subTotal: 0,
                    remark:'',
                },
                {
                    id: 0,
                    diId: this.value,
                    setDataId: '',
                    index: 3,
                    cost: '',
                    cost: 0,
                    currency: '',
                    subTotal: 0,
                    remark:'',
                },
                {
                    id: 0,
                    diId: this.value,
                    setDataId: '',
                    index: 4,
                    cost: '',
                    cost: 0,
                    currency: '',
                    subTotal: 0,
                    remark:'',
                },
                {
                    id: 0,
                    diId: this.value,
                    setDataId: '',
                    index: 5,
                    cost: '',
                    cost: 0,
                    currency: '',
                    subTotal: 0,
                    remark:'',
                },
                {
                    id: 0,
                    diId: this.value,
                    setDataId: '',
                    index: 6,
                    cost: '',
                    cost: 0,
                    currency: '',
                    subTotal: 0,
                    remark:'',
                },
                {
                    id: 0,
                    diId: this.value,
                    setDataId: '',
                    index: 7,
                    cost: '',
                    cost: 0,
                    currency: '',
                    subTotal: 0,
                    remark:'',
                },
                {
                    id: 0,
                    diId: this.value,
                    setDataId: '',
                    index: 8,
                    cost: '',
                    cost: 0,
                    currency: '',
                    subTotal: 0,
                    remark:'',
                },
            ]
            this.isAssignPerm=false;
            var url = "/api/Groups/GetEnterExitCostInfobyDiId"
            var that = this
            this.$axios({
                method: 'post',
                url: url,
                headers: {
                    Authorization: 'Bearer ' + this.token
                },
                data: {
                    portType: 1,
                    diId: that.value,
                    currUserId:that.userId
                }
            }).then(function (res) {
                if (res.data.code == 200) {
                    that.ID = res.data.data.id;
                    that.provinceId=res.data.data.provinceId;
                    //汇率
                    that.currencys = res.data.data.currencys;
                    that.isAssignPerm=res.data.data.isAssignPerm;
                    //权限
                    that.isSave=res.data.data.isSave;
                    that.isView=res.data.data.isView;
                    that.viewUsers=res.data.data.viewUsers;
                    that.viewUsersby=res.data.data.viewUsers;
                    //境内费用
                    that.DomesticFees.visafees = res.data.data.visa;
                    that.DomesticFees.visafeesDescription = res.data.data.visaRemark;
                    that.DomesticFees.vaccinefees = res.data.data.yiMiao;
                    that.DomesticFees.nucleicfees = res.data.data.heSuan;
                    that.DomesticFees.serviceCharge = res.data.data.service;
                    that.DomesticFees.insurance = res.data.data.safe;
                    that.DomesticFees.ticketsExhibitionL = res.data.data.ticket;
                    that.DomesticFees.firstItemRemark = res.data.data.firstItemRemark;
                    //国际旅费
                    that.TotalExpenses.EconomyClass = res.data.data.airJJ;
                    that.TotalExpenses.BusinessClass = res.data.data.airGW;
                    that.TotalExpenses.Firstclass = res.data.data.airTD;
                    that.TotalExpenses.TravellingExpensesJJ = res.data.data.cityTranffic;
                    that.TotalExpenses.TravellingExpensesGW = res.data.data.cityTranffic1;
                    that.TotalExpenses.TravellingExpensesTD = res.data.data.cityTranffic2;
                    that.TotalExpenses.twoItemRemark = res.data.data.twoItemRemark;

                    //是否计算Checkbox
                    that.choiceOne = res.data.data.choiceOne == 1 ? true : false;
                    that.choiceTwo = res.data.data.choiceTwo == 1 ? true : false;
                    that.choiceThree = res.data.data.choiceThree == 1 ? true : false;
                    that.choiceFour = res.data.data.choiceFour == 1 ? true : false;
                    that.choiceFive = res.data.data.choiceFive == 1 ? true : false;
                    that.choiceSix = res.data.data.choiceSix == 1 ? true : false;
                    that.choiceSeven = res.data.data.otherExpenses_Checked == 1 ? true : false;
                    that.sumJJC = res.data.data.sumJJC == 1 ? true : false;
                    that.sumGWC = res.data.data.sumGWC == 1 ? true : false;
                    that.sumTDC = res.data.data.sumTDC == 1 ? true : false;
                    that.airJJC_Checked = res.data.data.airJJC_Checked == 1 ? true : false;
                    that.airGWC_Checked = res.data.data.airGWC_Checked == 1 ? true : false;
                    //住宿费
                    that.quarterageData = res.data.data.quarterageData;
                    for (let a = 0; a < res.data.data.quarterageData.length; a++) {
                        that.TotalAccommodationFee += Number(res.data.data.quarterageData[a].subTotal)
                    }
                    //伙食费
                    that.boardWagesData = res.data.data.boardWagesData;
                    for (let b = 0; b < res.data.data.boardWagesData.length; b++) {
                        that.TotalMeals += res.data.data.boardWagesData[b].subTotal
                    }
                    //公杂费
                    that.miscellaneousFeeData = res.data.data.miscellaneousFeeData;
                    for (let c = 0; c < res.data.data.miscellaneousFeeData.length; c++) {
                        that.TotalMiscellaneous += res.data.data.miscellaneousFeeData[c].subTotal
                    }
                    //培训费
                    that.trainingExpenseData = res.data.data.trainingExpenseData;
                    for (let d = 0; d < res.data.data.trainingExpenseData.length; d++) {
                        that.trainingExpense += res.data.data.trainingExpenseData[d].subTotal
                    }
                    //其他费
                    that.otherData = res.data.data.dayOtherPriceData;
                    for (let e = 0; e < res.data.data.dayOtherPriceData.length; e++) {
                        that.otherExpense += res.data.data.dayOtherPriceData[e].subTotal
                    }
                    that.storageid = res.data.data.id;
                    // that.GetNationalTravelFeeData();
                    that.fullscreenLoading = false;
                    that.GetEnterExitCostCorrelationTips(2);
                    that.EnterExitCostFileOwner();
                    that.GetNationalTravelFeeData();
                } else {
                    that.fullscreenLoading = false;
                    that.provinceId=res.data.data.provinceId;
                    that.EnterExitCostFileOwner();
                    that.GetNationalTravelFeeData();
                    that.GetEnterExitCostCorrelationTips(1);
                    that.$message.warning(res.data.msg);
                    if (res.data.msg=='未查询出数据!可操作该条数据!') {
                        that.isSave=true;
                        that.isView=true;
                    }
                }
            })
        },
        //全部清空
        cleanout() {
            this.fullscreenLoading = true
            this.$confirm('此操作将全部清空, 是否继续?', '提示', {
                confirmButtonText: '确定',
                cancelButtonText: '取消',
                type: 'warning'
            }).then(() => {
                var url = "/api/Groups/PostEnterExitCostOneClickClear"
                var that = this
                this.$axios({
                    method: 'post',
                    url: url,
                    headers: {
                        Authorization: 'Bearer ' + this.token
                    },
                    data: {
                        portType: 1,
                        diId: that.value,
                        userId: that.userId,
                        id: that.ID
                    }
                }).then(function (res) {
                    if (res.data.code == 200) {
                        that.$message({
                            type: 'success',
                            message: res.data.msg
                        });
                        that.GetEnterExitCostInfobyDiId()
                    } else {
                        that.fullscreenLoading = false;
                        that.$message.error(res.data.msg);
                    }
                })
            }).catch(() => {
                this.fullscreenLoading = false;
                this.$message({
                    type: 'info',
                    message: '已取消清空'
                });
            });

        },
        //下拉
        handNodeClick(data, node, e) {
            this.treeDataValue = data.name
            this.treeData = data.name
        },
        //sr需求
        SRrequirement(obj) {
            var currencyinfo = {}
            var rate = 0
            currencyinfo = this.othercurrencys.find(function (i) {
                return i.currencyId === obj.currency
            });
            rate = currencyinfo.rate;
            this.otherExpense = 0;
            for (let l = 0; l < this.otherData.length; l++) {
                this.otherData[l].currency = obj.currency
                this.otherData[l].subTotal = Number(this.otherData[l].cost) * Number(rate);
                this.otherExpense += this.otherData[l].subTotal;
            }
        },
        //住宿地区选择
        changeSelect(val, item, index) {
            var xiabiao=0
            var rate = 0
            var obj = {}
            obj = this.placeinif.find(function (i,indexs) {
                xiabiao=indexs
                return i.id === item
            });
            this.placeinif.splice(xiabiao,1);
            this.placeinif.unshift(obj);
            this.SRrequirement(obj)
            //在change中获取到整条对象数据
            val.currencyName = obj.currencyName;
            val.currency = obj.currency;
            val.cost = obj.roomCost;
            for (let j = 0; j < this.currencys.length; j++) {
                if (this.currencys[j].currencyCode == obj.currencyCode) {
                    rate = this.currencys[j].rate;
                }
            }
            val.subTotal = Number(val.cost) * Number(rate);

            this.TotalAccommodationFee = 0;
            for (let a = 0; a < this.quarterageData.length; a++) {
                this.TotalAccommodationFee += Number(new Decimal(this.quarterageData[a].subTotal).toFixed(2));
            }
            // this.mealschangeSelect(this.boardWagesData,item,index)
        },
        //住宿费费用标准值改变
        zhusuinput(val) {
            var rate = 0
            for (let j = 0; j < this.currencys.length; j++) {
                if (this.currencys[j].currencyName == val.currencyName) {
                    rate = this.currencys[j].rate;
                }
            }
            val.subTotal = Number(val.cost) * Number(rate);
            this.TotalAccommodationFee = 0;
            for (let a = 0; a < this.quarterageData.length; a++) {
                this.TotalAccommodationFee += Number(new Decimal(this.quarterageData[a].subTotal).toFixed(2));
            }
        },
        //伙食费费用标准值改变
        mealsinput(val) {
            var rate = 0
            for (let j = 0; j < this.currencys.length; j++) {
                if (this.currencys[j].currencyName == val.currencyName) {
                    rate = this.currencys[j].rate;
                }
            }
            val.subTotal = Number(val.cost) * Number(rate);
            this.TotalMeals = 0;
            for (let a = 0; a < this.boardWagesData.length; a++) {
                // this.TotalMeals += this.boardWagesData[a].subTotal
                this.TotalMeals += Number(new Decimal(this.boardWagesData[a].subTotal).toFixed(2));
            }
        },
        //伙食地区选择
        mealschangeSelect(val, item, index) {
            var xiabiao=0
            var rate = 0
            var obj = {}
            obj = this.placeinif.find(function (i,indexs) {
                xiabiao=indexs
                return i.id === item
            });
            this.placeinif.splice(xiabiao,1);
            this.placeinif.unshift(obj);
            //在change中获取到整条对象数据
            // if(index!=undefined){
            //     val[index].currencyName=obj.currencyName;
            //     val[index].currency=obj.currency;
            //     val[index].cost=obj.foodCost;
            //     val[index].nationalTravelFeeId=obj.id;
            //     for(let j=0;j<this.currencys.length;j++){
            //         if(this.currencys[j].currencyCode==obj.currencyCode){
            //             rate=this.currencys[j].rate;
            //         }
            //     }
            //     val[index].subTotal=Number(val[index].cost)*Number(rate);
            //     this.TotalMeals=0;
            //     for(let a=0;a<this.boardWagesData.length;a++){
            //         this.TotalMeals+=this.boardWagesData[a].subTotal
            //     }
            // }                    
            val.currencyName = obj.currencyName;
            val.currency = obj.currency;
            val.cost = obj.foodCost;
            for (let j = 0; j < this.currencys.length; j++) {
                if (this.currencys[j].currencyCode == obj.currencyCode) {
                    rate = this.currencys[j].rate;
                }
            }
            val.subTotal = Number(val.cost) * Number(rate);
            this.TotalMeals = 0;
            for (let a = 0; a < this.boardWagesData.length; a++) {
                this.TotalMeals += this.boardWagesData[a].subTotal
            }
            this.MiscellaneouschangeSelect(this.miscellaneousFeeData, item, index)
        },
        //公杂费费用标准值改变
        Miscellaneousinput(val) {
            var rate = 0
            for (let j = 0; j < this.currencys.length; j++) {
                if (this.currencys[j].currencyName == val.currencyName) {
                    rate = this.currencys[j].rate;
                }
            }
            val.subTotal = Number(val.cost) * Number(rate);
            this.TotalMiscellaneous = 0;
            for (let a = 0; a < this.miscellaneousFeeData.length; a++) {
                // this.TotalMiscellaneous += this.miscellaneousFeeData[a].subTotal
                this.TotalMiscellaneous += Number(new Decimal(this.miscellaneousFeeData[a].subTotal).toFixed(2));
            }
        },
        //公杂费地区选择
        MiscellaneouschangeSelect(val, item, index) {
            var xiabiao=0
            var rate = 0
            var obj = {}
            obj = this.placeinif.find(function (i,indexs) {
                xiabiao=indexs
                return i.id === item
            });
            this.placeinif.splice(xiabiao,1);
            this.placeinif.unshift(obj);
            //在change中获取到整条对象数据
            if (index != undefined) {
                val[index].currencyName = obj.currencyName;
                val[index].currency = obj.currency;
                val[index].cost = obj.publicCost;
                val[index].nationalTravelFeeId = obj.id;
                for (let j = 0; j < this.currencys.length; j++) {
                    if (this.currencys[j].currencyCode == obj.currencyCode) {
                        rate = this.currencys[j].rate;
                    }
                }
                val[index].subTotal = Number(val[index].cost) * Number(rate);
                this.TotalMiscellaneous = 0;
                for (let a = 0; a < this.miscellaneousFeeData.length; a++) {
                    this.TotalMiscellaneous += this.miscellaneousFeeData[a].subTotal
                }
            }
            val.currencyName = obj.currencyName;
            val.currency = obj.currency;
            val.cost = obj.publicCost;
            for (let j = 0; j < this.currencys.length; j++) {
                if (this.currencys[j].currencyCode == obj.currencyCode) {
                    rate = this.currencys[j].rate;
                }
            }
            val.subTotal = Number(val.cost) * Number(rate);
            this.TotalMiscellaneous = 0;
            for (let a = 0; a < this.miscellaneousFeeData.length; a++) {
                this.TotalMiscellaneous += this.miscellaneousFeeData[a].subTotal
                
            }
        },
        //培训费费用标准值改变
        Traininginput(val) {
            var rate = 0
            for (let j = 0; j < this.currencys.length; j++) {
                if (this.currencys[j].currencyName == val.currencyName) {
                    rate = this.currencys[j].rate;
                }
            }
            val.subTotal = Number(val.cost) * Number(rate);
            this.trainingExpense = 0;
            for (let a = 0; a < this.trainingExpenseData.length; a++) {
                // this.trainingExpense += this.trainingExpenseData[a].subTotal
                this.trainingExpense += Number(new Decimal(this.trainingExpenseData[a].subTotal).toFixed(2));
            }
        },
        //培训费地区选择
        TrainingExpenseDataSelect(val, item,index) {
            var xiabiao=0
            var rate = 0//汇率
            var obj = {}
            obj = this.placeinif.find(function (i,indexs) {
                xiabiao=indexs
                return i.id === item
            });
            this.placeinif.splice(xiabiao,1);
            this.placeinif.unshift(obj);
            //在change中获取到整条对象数据
            // if (index != undefined) {
            //     val[index].currencyName = obj.currencyName;
            //     val[index].currency = obj.currency;
            //     val[index].cost = obj.trainCost;
            //     val[index].nationalTravelFeeId = obj.id;
            //     for (let j = 0; j < this.currencys.length; j++) {
            //         if (this.currencys[j].currencyCode == obj.currencyCode) {
            //             rate = this.currencys[j].rate;
            //         }
            //     }
            //     val[index].subTotal = Number(val[index].cost) * Number(rate);
            //     this.trainingExpense=0;
            //     for (let a = 0; a < this.trainingExpenseData.length; a++) {
            //         this.trainingExpense += this.trainingExpenseData[a].subTotal
            //     }
            // }
            val.currencyName = obj.currencyName;
            val.currency = obj.currency;
            val.cost=obj.trainCost;
            
            for (let j = 0; j < this.currencys.length; j++) {
                if (this.currencys[j].currencyCode == obj.currencyCode) {
                    rate = this.currencys[j].rate;
                }
            }

            val.subTotal = Number(val.cost) * Number(rate);
            this.trainingExpense=0;
            for (let a = 0; a < this.trainingExpenseData.length; a++) {
                this.trainingExpense += this.trainingExpenseData[a].subTotal
            }
        },
        //其他币种值改变
        othercurrencychange(val, row) {
            var obj = {};
            var rate = 0;
            obj = this.othercurrencys.find(function (i) {
                return i.currencyId === val;
            });
            rate = obj.rate
            row.subTotal = Number(row.cost) * Number(rate);
            this.otherExpense = 0;
            for (let a = 0; a < this.otherData.length; a++) {
                this.otherExpense += this.otherData[a].subTotal;
            }
        },
        //其他费用标准值改变
        otherinput(val) {
            if (val.currency == '' || this.othercurrencys == '') {
                return
            }
            var obj = {}
            var rate = 0
            obj = this.othercurrencys.find(function (i) {
                return i.currencyId === val.currency
            });
            rate = obj.rate
            val.subTotal = Number(val.cost) * Number(rate);
            this.otherExpense = 0;
            for (let a = 0; a < this.otherData.length; a++) {
                // this.otherExpense += this.otherData[a].subTotal
                this.otherExpense += Number(new Decimal(this.otherData[a].subTotal).toFixed(2));
            }
        },
        //新增list
        addlist(text) {
            if (text == "住宿费") {
                this.quarterageData.push({
                    id: 0,
                    diId: this.value,
                    type: 1,
                    days: this.quarterageData.length != 0 ? (this.quarterageData[this.quarterageData.length - 1].days) + 1 : 1,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                })
                // this.boardWagesData.push({
                //     id:0,
                //     diId:this.value,
                //     type:2,
                //     days:this.boardWagesData.length!=0?(this.boardWagesData[this.boardWagesData.length-1].days)+1:1,
                //     nationalTravelFeeId:'',
                //     cost:0,
                //     currency:0,
                //     subTotal:0,
                //     remark:'',
                // })
            }
            if (text == "伙食费") {
                this.boardWagesData.push({
                    id: 0,
                    diId: this.value,
                    type: 2,
                    days: this.boardWagesData.length != 0 ? (this.boardWagesData[this.boardWagesData.length - 1].days) + 1 : 1,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                })
                this.miscellaneousFeeData.push({
                    id: 0,
                    diId: this.value,
                    type: 3,
                    days: this.miscellaneousFeeData.length != 0 ? (this.miscellaneousFeeData[this.miscellaneousFeeData.length - 1].days) + 1 : 1,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                })
            }
            if (text == "公杂费") {
                this.miscellaneousFeeData.push({
                    id: 0,
                    diId: this.value,
                    type: 3,
                    days: this.miscellaneousFeeData.length != 0 ? (this.miscellaneousFeeData[this.miscellaneousFeeData.length - 1].days) + 1 : 1,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                })
            }
            if (text == "培训费") {
                this.trainingExpenseData.push({
                    id: 0,
                    diId: this.value,
                    type: 4,
                    days: this.trainingExpenseData.length != 0 ? (this.trainingExpenseData[this.trainingExpenseData.length - 1].days) + 1 : 1,
                    nationalTravelFeeId: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark: '',
                })
            }
            if (text == "其他") {
                this.otherData.push({
                    id: 0,
                    diId: this.value,
                    setDataId: '',
                    index: this.otherData.length != 0 ? (this.otherData[this.otherData.length - 1].index) + 1 : 1,
                    cost: '',
                    cost: 0,
                    currency: 0,
                    subTotal: 0,
                    remark:'',
                })
            }

        },
        //保存
        storage: debounce(function () {
            
            return new Promise((resolve, reject) => {

                //已使用币种
                let usedCurrencys = [];
                //住宿费
                this.fullscreenLoading = true
                var quarterageDatas = [];
                for (let m = 0; m < this.quarterageData.length; m++) {
                        usedCurrencys.push(this.quarterageData[m].curremcyCode);
                    if (this.quarterageData[m].nationalTravelFeeId != '') {
                        quarterageDatas.push({
                            id: this.quarterageData[m].id,
                            diId: this.quarterageData[m].diId,
                            type: this.quarterageData[m].type,
                            days: this.quarterageData[m].days,
                            nationalTravelFeeId: this.quarterageData[m].nationalTravelFeeId,
                            cost: this.quarterageData[m].cost,
                            currency: this.quarterageData[m].currency,
                            subTotal: this.quarterageData[m].subTotal,
                            remark: this.quarterageData[m].remark,
                        })
                    }
                }
                //伙食费
                var boardWagesDatas = [];
                for (let n = 0; n < this.boardWagesData.length; n++) {
                        usedCurrencys.push(this.boardWagesData[n].curremcyCode);
                    if (this.boardWagesData[n].nationalTravelFeeId != '') {
                        boardWagesDatas.push({
                            id: this.boardWagesData[n].id,
                            diId: this.boardWagesData[n].diId,
                            type: this.boardWagesData[n].type,
                            days: this.boardWagesData[n].days,
                            nationalTravelFeeId: this.boardWagesData[n].nationalTravelFeeId,
                            cost: this.boardWagesData[n].cost,
                            currency: this.boardWagesData[n].currency,
                            subTotal: this.boardWagesData[n].subTotal,
                            remark: this.boardWagesData[n].remark,
                        })
                    }
                }
                //公杂费miscellaneousFeeData
                var miscellaneousFeeDatas = [];
                for (let b = 0; b < this.miscellaneousFeeData.length; b++) {
                    usedCurrencys.push(this.miscellaneousFeeData[b].curremcyCode);
                    if (this.miscellaneousFeeData[b].nationalTravelFeeId != '') {
                        miscellaneousFeeDatas.push({
                            id: this.miscellaneousFeeData[b].id,
                            diId: this.miscellaneousFeeData[b].diId,
                            type: this.miscellaneousFeeData[b].type,
                            days: this.miscellaneousFeeData[b].days,
                            nationalTravelFeeId: this.miscellaneousFeeData[b].nationalTravelFeeId,
                            cost: this.miscellaneousFeeData[b].cost,
                            currency: this.miscellaneousFeeData[b].currency,
                            subTotal: this.miscellaneousFeeData[b].subTotal,
                            remark: this.miscellaneousFeeData[b].remark,
                        })
                    }
                }
                //培训费
                var trainingExpenseDatas = [];
                for (let p = 0; p < this.trainingExpenseData.length; p++) {
                    usedCurrencys.push(this.trainingExpenseData[p].curremcyCode);
                    if (this.trainingExpenseData[p].nationalTravelFeeId != '') {
                        trainingExpenseDatas.push({
                            id: this.trainingExpenseData[p].id,
                            diId: this.trainingExpenseData[p].diId,
                            type: this.trainingExpenseData[p].type,
                            days: this.trainingExpenseData[p].days,
                            nationalTravelFeeId: this.trainingExpenseData[p].nationalTravelFeeId,
                            cost: this.trainingExpenseData[p].cost,
                            currency: this.trainingExpenseData[p].currency,
                            subTotal: this.trainingExpenseData[p].subTotal,
                            remark: this.trainingExpenseData[p].remark,
                        })
                    }
                }
                //其他费
                var otherDatas = [];
                for (let c = 0; c < this.otherData.length; c++) {
                        //usedCurrencys.push(this.otherData[c].curremcyCode);
                    if (this.otherData[c].setDataId != '') {
                        otherDatas.push({
                            id: this.otherData[c].id,
                            diId: this.otherData[c].diId,
                            index: this.otherData[c].index,
                            setDataId: this.otherData[c].setDataId,
                            cost: this.otherData[c].cost,
                            currency: this.otherData[c].currency,
                            subTotal: this.otherData[c].subTotal,
                            remark: this.otherData[c].remark,
                        })
                    }
                }
                this.storageAPI(quarterageDatas, boardWagesDatas, miscellaneousFeeDatas, trainingExpenseDatas, otherDatas)
                // let uniqueUsedCurrencys = [...new Set(usedCurrencys)];
                // let confirmText='';
                // for(let i = 0;i < this.currencyss.length;i++)
                // {
                //     let rate = this.currencyss[i];
                //     if(uniqueUsedCurrencys.includes(rate.currCode))   {
                //         confirmText += rate.currName + "("+ rate.currCode +")："+ rate.rate +"\t\t";
                //     }
                // }

                // const h = this.$createElement;
                // this.$confirm("实时汇率提示",{
                //     title:'实时汇率提示',
                //     message: h('p', null, [
                //         h('div', null, confirmText),
                //         //h('div', { style: 'color: red' }, '是否前往编辑!')
                //     ]),
                //     iconClass: "el-icon-warning-outline colorGreen",//自定义图标样式
                //     confirmButtonText: "已知晓",//确认按钮文字更换
                //     showCancelButton: false,
                //     //cancelButtonText: "取消",//取消按钮文字更换
                //     showClose: false,//是否显示右上角关闭按钮
                //     type: "warning",//提示类型  success/info/warning/error
                // }).then(()=>{
                //     //确认操作
                //     //this.fullscreenLoading = false;
                //     this.storageAPI(quarterageDatas, boardWagesDatas, miscellaneousFeeDatas, trainingExpenseDatas, otherDatas)
                // }).catch(() => {
                //     //取消操作
                // });
            });
        }, 1000, true),
        //导出保存
        //保存API
        storageAPI(arrthre, arrfour, arrfive, arrsix, arrSeven) {
            var url = "/api/Groups/PostEnterExitCostOperate"
            var that = this
            this.$axios({
                method: 'post',
                url: url,
                headers: {
                    Authorization: 'Bearer ' + this.token,
                    contentType: 'application/json'
                },
                data: {
                    portType: 1,
                    userId: that.userId,
                    id: that.storageid,
                    diId: that.value,
                    choiceOne: that.choiceOne ? 1 : 0,
                    insidePay: that.DomesticFees.total,
                    visa: that.DomesticFees.visafees,
                    visaRemark: that.DomesticFees.visafeesDescription,
                    yiMiao: that.DomesticFees.vaccinefees,
                    heSuan: that.DomesticFees.nucleicfees,
                    service: that.DomesticFees.serviceCharge,
                    ticket: that.DomesticFees.ticketsExhibitionL,
                    safe: that.DomesticFees.insurance,
                    firstItemRemark:that.DomesticFees.firstItemRemark,
                    choiceTwo: that.choiceTwo ? 1 : 0,
                    otherExpenses_Checked: that.choiceSeven ? 1 : 0,
                    sumJJC: that.sumJJC ? 1 : 0,
                    sumGWC: that.sumGWC ? 1 : 0,
                    sumTDC: that.sumTDC ? 1 : 0,
                    outsideJJPay: that.TotalExpenses.EconomyClasstotal,
                    outsideGWPay: that.TotalExpenses.BusinessClasstotal,
                    outsideTDPay: that.TotalExpenses.Firstclasstotal,
                    twoItemRemark:that.TotalExpenses.twoItemRemark,
                    airJJ: that.TotalExpenses.EconomyClass,
                    airGW: that.TotalExpenses.BusinessClass,
                    airTD: that.TotalExpenses.Firstclass,
                    cityTranffic: that.TotalExpenses.TravellingExpensesJJ,
                    cityTranffic1: that.TotalExpenses.TravellingExpensesGW,
                    cityTranffic2: that.TotalExpenses.TravellingExpensesTD,
                    dayOtherPriceData: arrSeven,
                    currencys: that.currencys,
                    choiceThree: that.choiceThree ? 1 : 0,
                    quarterageData: arrthre,
                    choiceFour: that.choiceFour ? 1 : 0,
                    boardWagesData: arrfour,
                    choiceFive: that.choiceFive ? 1 : 0,
                    miscellaneousFeeData: arrfive,
                    choiceSix: that.choiceSix ? 1 : 0,
                    //加参数
                    trainingExpenseData: arrsix,
                    airJJC_Checked: that.airJJC_Checked ? 1 : 0,
                    airGWC_Checked: that.airGWC_Checked ? 1 : 0,
                    airTDC_Checked: that.airTDC_Checked ? 1 : 0,
                }
            }).then(function (res) {
                if (res.data.code == 200) {
                    that.$message({
                        type: 'success',
                        message: res.data.msg
                    });
                    that.GetEnterExitCostInfobyDiId()
                } else {
                    that.fullscreenLoading = false;
                    that.$message.error(res.data.msg);
                }
            }).catch(function (error) {
                that.$message.error(error.message);
            });
        },
        //选择团组名称调用
        chengvalue(val) {
            window.localStorage.setItem('sgvalue', this.value);
            for(let i=0;i<this.options.length;i++){
                if (val==this.options[i].id) {
                    console.log(this.options[i]);
                    this.provinceId=this.options[i].provinceId
                }
            }
            this.airDataArrvalue='';
            this.fullscreenLoading = true;
            // this.EnterExitCostFileOwner();
            // this.GetNationalTravelFeeData();
            this.GetEnterExitCostInfobyDiId();
            this.PostGroupTeamRateByDiIdAndCTableId();
        },
        eptschedule: debounce(function (val) {
            return new Promise((resolve, reject) => {
                //住宿费
                this.fullscreenLoading = true
                var quarterageDatas = [];
                for (let m = 0; m < this.quarterageData.length; m++) {
                    if (this.quarterageData[m].nationalTravelFeeId != '') {
                        quarterageDatas.push({
                            id: this.quarterageData[m].id,
                            diId: this.quarterageData[m].diId,
                            type: this.quarterageData[m].type,
                            days: this.quarterageData[m].days,
                            nationalTravelFeeId: this.quarterageData[m].nationalTravelFeeId,
                            cost: this.quarterageData[m].cost,
                            currency: this.quarterageData[m].currency,
                            subTotal: this.quarterageData[m].subTotal,
                            remark: this.quarterageData[m].remark,
                        })
                    }
                }
                //伙食费
                var boardWagesDatas = [];
                for (let n = 0; n < this.boardWagesData.length; n++) {
                    if (this.boardWagesData[n].nationalTravelFeeId != '') {
                        boardWagesDatas.push({
                            id: this.boardWagesData[n].id,
                            diId: this.boardWagesData[n].diId,
                            type: this.boardWagesData[n].type,
                            days: this.boardWagesData[n].days,
                            nationalTravelFeeId: this.boardWagesData[n].nationalTravelFeeId,
                            cost: this.boardWagesData[n].cost,
                            currency: this.boardWagesData[n].currency,
                            subTotal: this.boardWagesData[n].subTotal,
                            remark: this.boardWagesData[n].remark,
                        })
                    }
                }
                //公杂费miscellaneousFeeData
                var miscellaneousFeeDatas = [];
                for (let b = 0; b < this.miscellaneousFeeData.length; b++) {
                    if (this.miscellaneousFeeData[b].nationalTravelFeeId != '') {
                        miscellaneousFeeDatas.push({
                            id: this.miscellaneousFeeData[b].id,
                            diId: this.miscellaneousFeeData[b].diId,
                            type: this.miscellaneousFeeData[b].type,
                            days: this.miscellaneousFeeData[b].days,
                            nationalTravelFeeId: this.miscellaneousFeeData[b].nationalTravelFeeId,
                            cost: this.miscellaneousFeeData[b].cost,
                            currency: this.miscellaneousFeeData[b].currency,
                            subTotal: this.miscellaneousFeeData[b].subTotal,
                            remark: this.miscellaneousFeeData[b].remark,
                        })
                    }
                }
                //培训费
                var trainingExpenseDatas = [];
                for (let p = 0; p < this.trainingExpenseData.length; p++) {
                    if (this.trainingExpenseData[p].nationalTravelFeeId != '') {
                        trainingExpenseDatas.push({
                            id: this.trainingExpenseData[p].id,
                            diId: this.trainingExpenseData[p].diId,
                            type: this.trainingExpenseData[p].type,
                            days: this.trainingExpenseData[p].days,
                            nationalTravelFeeId: this.trainingExpenseData[p].nationalTravelFeeId,
                            cost: this.trainingExpenseData[p].cost,
                            currency: this.trainingExpenseData[p].currency,
                            subTotal: this.trainingExpenseData[p].subTotal,
                            remark: this.trainingExpenseData[p].remark,
                        })
                    }
                }
                //其他费
                var otherDatas = [];
                for (let c = 0; c < this.otherData.length; c++) {
                    if (this.otherData[c].setDataId != '') {
                        otherDatas.push({
                            id: this.otherData[c].id,
                            diId: this.otherData[c].diId,
                            index: this.otherData[c].index,
                            setDataId: this.otherData[c].setDataId,
                            cost: this.otherData[c].cost,
                            currency: this.otherData[c].currency,
                            subTotal: this.otherData[c].subTotal,
                            remark: this.otherData[c].remark,
                        })
                    }
                }
                var url = "/api/Groups/PostEnterExitCostOperate"
                var that = this
                this.$axios({
                    method: 'post',
                    url: url,
                    headers: {
                        Authorization: 'Bearer ' + this.token,
                        contentType: 'application/json'
                    },
                    data: {
                        portType: 1,
                        userId: that.userId,
                        id: that.storageid,
                        diId: that.value,
                        choiceOne: that.choiceOne ? 1 : 0,
                        insidePay: that.DomesticFees.total,
                        visa: that.DomesticFees.visafees,
                        visaRemark: that.DomesticFees.visafeesDescription,
                        yiMiao: that.DomesticFees.vaccinefees,
                        heSuan: that.DomesticFees.nucleicfees,
                        service: that.DomesticFees.serviceCharge,
                        ticket: that.DomesticFees.ticketsExhibitionL,
                        safe: that.DomesticFees.insurance,
                        firstItemRemark: that.DomesticFees.firstItemRemark,
                        choiceTwo: that.choiceTwo ? 1 : 0,
                        otherExpenses_Checked: that.choiceSeven ? 1 : 0,
                        sumJJC: that.sumJJC ? 1 : 0,
                        sumGWC: that.sumGWC ? 1 : 0,
                        sumTDC: that.sumTDC ? 1 : 0,
                        outsideJJPay: that.TotalExpenses.EconomyClasstotal,
                        outsideGWPay: that.TotalExpenses.BusinessClasstotal,
                        outsideTDPay: that.TotalExpenses.Firstclasstotal,
                        twoItemRemark: that.TotalExpenses.twoItemRemark,
                        airJJ: that.TotalExpenses.EconomyClass,
                        airGW: that.TotalExpenses.BusinessClass,
                        airTD: that.TotalExpenses.Firstclass,
                        cityTranffic: that.TotalExpenses.TravellingExpensesJJ,
                        cityTranffic1: that.TotalExpenses.TravellingExpensesGW,
                        cityTranffic2: that.TotalExpenses.TravellingExpensesTD,
                        dayOtherPriceData: otherDatas,
                        currencys: that.currencys,
                        choiceThree: that.choiceThree ? 1 : 0,
                        quarterageData: quarterageDatas,
                        choiceFour: that.choiceFour ? 1 : 0,
                        boardWagesData: boardWagesDatas,
                        choiceFive: that.choiceFive ? 1 : 0,
                        miscellaneousFeeData: miscellaneousFeeDatas,
                        choiceSix: that.choiceSix ? 1 : 0,
                        //加参数
                        trainingExpenseData: trainingExpenseDatas,
                        airJJC_Checked: that.airJJC_Checked ? 1 : 0,
                        airGWC_Checked: that.airGWC_Checked ? 1 : 0,
                        airTDC_Checked: that.airTDC_Checked ? 1 : 0,
                    }
                }).then(function (res) {
                    if (res.data.code == 200) {
                        that.$message({
                            type: 'success',
                            message: res.data.msg
                        });
                        that.GetEnterExitCostInfobyDiId()

                        var subTypeId = 0
                        if (val == 1) {
                            subTypeId = that.listvalue
                        } else if (val == 2) {
                            subTypeId = that.tablevalue
                        } else {
                            subTypeId = 1
                        }
                        if (subTypeId == "") {
                            that.$message.error('请选择需要导出的表格');
                            return
                        }
                        var url = "/api/Groups/PostEnterExitCostDownload"
                        that.$axios({
                            method: 'post',
                            url: url,
                            headers: {
                                Authorization: 'Bearer ' + that.token
                            },
                            data: {
                                portType: 1,
                                diId: that.value,
                                exportType: val,
                                subTypeId: subTypeId
                            }
                        }).then(function (res) {
                            if (res.data.code == 200) {
                                that.$message({
                                    type: 'success',
                                    message: res.data.msg
                                });
                                window.open(res.data.data.url);
                            } else {
                                that.$message.error(res.data.msg);
                            }
                        })
                    } else {
                        that.fullscreenLoading = false;
                        that.$message.error(res.data.msg);
                    }
                }).catch(function (error) {
                    that.$message.error(error.message);
                });

                // this.storageAPI(quarterageDatas, boardWagesDatas, miscellaneousFeeDatas, trainingExpenseDatas, otherDatas)
            })



            
            // this.storage().then(function () {
            // });
        }, 500, true),
        //
        calculation() {
            var jnfy
            var jjcxj
            var gwcxj
            var tdcxj
            var zsf
            var hsf
            var gzf
            var pxf
            var qtfy
            if (this.choiceOne == true) {
                jnfy = this.DomesticFees.total;
            } else {
                jnfy = 0;
            }
            if (this.choiceThree == true) {
                zsf = this.TotalAccommodationFee;
            } else {
                zsf = 0;
            }
            if (this.choiceFour == true) {
                hsf = this.TotalMeals;
            } else {
                hsf = 0;
            }
            if (this.choiceFive == true) {
                gzf = this.TotalMiscellaneous;
            } else {
                gzf = 0;
            }
            if (this.choiceSix == true) {
                pxf = this.trainingExpense;
            } else {
                pxf = 0;
            }
            if (this.choiceSeven == true) {
                qtfy = this.otherExpense;
            } else {
                qtfy = 0;
            }
            if (this.sumJJC == true) {
                jjcxj = this.TotalExpenses.EconomyClasstotal;
                this.jjctotal = jnfy + jjcxj + zsf + hsf + gzf + pxf + qtfy;
            } else {
                jjcxj = 0;
                this.jjctotal = 0;
            }
            if (this.sumGWC == true) {
                gwcxj = this.TotalExpenses.BusinessClasstotal;
                this.gwctotal = jnfy + gwcxj + zsf + hsf + gzf + pxf + qtfy;
            } else {
                gwcxj = 0;
                this.gwctotal = 0;
            }
            if (this.sumTDC == true) {
                tdcxj = this.TotalExpenses.Firstclasstotal;
                this.tdctotal = jnfy + tdcxj + zsf + hsf + gzf + pxf + qtfy;
            } else {
                tdcxj = 0;
                this.tdctotal = 0;
            }
        },
        //其他删除
        DeleteOtherExpenses(index, row, rows) {
            this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
                confirmButtonText: '确定',
                cancelButtonText: '取消',
                type: 'warning'
            }).then(() => {
                {
                    if (row.id == 0) {
                        this.$message({
                            type: 'success',
                            message: '删除成功'
                        });
                        rows.splice(index, 1);
                        this.otherExpense = 0;
                        for (let a = 0; a < rows.length; a++) {
                            this.otherExpense += rows[a].subTotal;
                        }
                        return;
                    }
                    var url = "/api/Groups/DeleteOtherExpenses"
                    var that = this
                    this.$axios({
                        method: 'post',
                        url: url,
                        headers: {
                            Authorization: 'Bearer ' + that.token
                        },
                        data: {
                            portType: 1,
                            id: row.id,
                            deleteUserId: that.userId
                        }
                    }).then(function (res) {
                        if (res.data.code == 200) {
                            that.$message({
                                type: 'success',
                                message: res.data.msg
                            });
                            rows.splice(index, 1);
                            this.otherExpense = 0;
                            for (let a = 0; a < rows.length; a++) {
                                this.otherExpense += rows[a].subTotal;
                            }
                        } else {
                            that.$message.error(res.data.msg);
                        }
                    })
                }
            }).catch(() => {
                this.$message({
                    type: 'info',
                    message: '已取消删除'
                });
            });
        },
        //删除
        deleteRow(index, row, rows, val) {
            this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
                confirmButtonText: '确定',
                cancelButtonText: '取消',
                type: 'warning'
            }).then(() => {
                if (row.id == 0) {
                    this.$message({
                        type: 'success',
                        message: '删除成功'
                    });
                    rows.splice(index, 1);
                    if (val == 1) {
                        this.TotalAccommodationFee = 0;
                        for (let a = 0; a < rows.length; a++) {
                            this.TotalAccommodationFee += rows[a].subTotal;
                        }
                    }
                    if (val == 2) {
                        this.TotalMeals = 0;
                        for (let a = 0; a < rows.length; a++) {
                            this.TotalMeals += rows[a].subTotal;
                        }
                    }
                    if (val == 3) {
                        this.TotalMiscellaneous = 0;
                        for (let a = 0; a < rows.length; a++) {
                            this.TotalMiscellaneous += rows[a].subTotal;
                        }
                    }
                    if (val == 4) {
                        this.trainingExpense = 0;
                        for (let a = 0; a < rows.length; a++) {
                            this.trainingExpense += rows[a].subTotal;
                        }
                    }
                    return;
                }
                var url = "/api/Groups/PostEnterExitCostSubItemDel"
                var that = this
                this.$axios({
                    method: 'post',
                    url: url,
                    headers: {
                        Authorization: 'Bearer ' + that.token
                    },
                    data: {
                        portType: 1,
                        id: row.id,
                        deleteUserId: that.userId
                    }
                }).then(function (res) {
                    if (res.data.code == 200) {
                        that.$message({
                            type: 'success',
                            message: res.data.msg
                        });
                        rows.splice(index, 1);
                        if (val == 1) {
                            that.TotalAccommodationFee = 0;
                            for (let a = 0; a < rows.length; a++) {
                                that.TotalAccommodationFee += rows[a].subTotal;
                            }
                        }
                        if (val == 2) {
                            that.TotalMeals = 0;
                            for (let a = 0; a < rows.length; a++) {
                                that.TotalMeals += rows[a].subTotal;
                            }
                        }
                        if (val == 3) {
                            that.TotalMiscellaneous = 0;
                            for (let a = 0; a < rows.length; a++) {
                                that.TotalMiscellaneous += rows[a].subTotal;
                            }
                        }
                        if (val == 4) {
                            that.trainingExpense = 0;
                            for (let a = 0; a < rows.length; a++) {
                                that.trainingExpense += rows[a].subTotal;
                            }
                        }
                    } else {
                        that.$message.error(res.data.msg);
                    }
                })
            }).catch(() => {
                this.$message({
                    type: 'info',
                    message: '已取消删除'
                });
            });
        },
        //填入实时汇率
        adoptRealtime() {
            for (let at = 0; at < this.currencys.length; at++) {
                for (let rt = 0; rt < this.currencyss.length; rt++) {
                    if (this.currencys[at].currencyCode == this.currencyss[rt].currCode) {
                        this.currencys[at].rate = this.currencyss[rt].rate
                    }
                }
            }
            this.cubtn = false;
        },
        Getnewvisafee() {
            this.DomesticFees.visafees = this.visainfo.feeTotal;
            this.DomesticFees.visafeesDescription = this.visainfo.remark;
            this.getvisafeebtn = false;
        },
        //导出到收款账单
        NationalTravelFeeImportReceivables() {
            var url = "/api/Groups/NationalTravelFeeImportReceivables/" + this.value
            var that = this
            this.$axios({
                method: 'get',
                url: url,
                headers: {
                    Authorization: 'Bearer ' + that.token
                },
            }).then(function (res) {
                if (res.data.code == 200) {
                    that.$message({
                        type: 'success',
                        message: res.data.msg
                    });
                } else {
                    that.$message.error(res.data.msg);
                }
            }).catch(function (error) {
                that.$message.error("操作错误，联系信息部!");
            });
        },
        //设置权限按钮
        setpermissionsbtn(){
            this.viewUsers=this.viewUsersby;
            this.setpermissions=true;
        },
        handleCheckAllChange(val) {
           
            
        },
        //分配查看权限
        EnterExitCostSetViewPermissiion() {
            var url = "/api/Groups/EnterExitCostSetViewPermissiion"
            var that = this
            this.$axios({
                method: 'post',
                url: url,
                headers: {
                    Authorization: 'Bearer ' + that.token
                },
                data:{
                    portType:1,
                    groupId:that.value,
                    userIds:that.viewUsers,
                    currUserId:that.userId,
                }
            }).then(function (res) {
                if (res.data.code == 200) {
                    that.$message({
                        type: 'success',
                        message: res.data.msg
                    });
                    that.setpermissions=false;
                    that.GetEnterExitCostInfobyDiId();
                } else {
                    that.setpermissions=false;
                    that.$message.error(res.data.msg);
                }
            }).catch(function (error) {
                that.$message.error("操作错误，联系信息部!");
            });
        },
    },
    filters: {
        numFilter(value) {
            // 截取当前数据到小数点后两位
            let realVal = new Decimal(value).toFixed(2)
            return realVal
        }
    },
    watch: {
        choiceOne(val) {//境内费用(其他费用)选择框
            this.calculation();
        },
        choiceThree(val) {//住宿费合计选择框
            this.calculation();
        },
        choiceFour(val) {//伙食费合计选择框
            this.calculation();
        },
        choiceFive(val) {//公杂费合计选择框
            this.calculation();
        },
        choiceSix(val) {//培训费用选择框
            this.calculation();
        },
        choiceSeven(val) {//其他费用选择框
            this.calculation();
        },
        //加参数
        sumJJC(val) {//经济舱小计选择框
            this.calculation();
        },
        sumGWC(val) {//公务舱小计选择框
            this.calculation();
        },
        sumTDC(val) {//公务舱小计选择框
            this.calculation();
        },
        'DomesticFees.total': {
            handler(newVal, oldVal) {
                this.calculation();
                // this.jjctotal=this.DomesticFees.total+this.TotalAccommodationFee+this.TotalMeals+this.TotalMiscellaneous+this.trainingExpense+this.TotalExpenses.EconomyClasstotal;
                // this.gwctotal=this.DomesticFees.total+this.TotalAccommodationFee+this.TotalMeals+this.TotalMiscellaneous+this.trainingExpense+this.TotalExpenses.BusinessClasstotal;
            },
        },
        TotalAccommodationFee: {
            handler(newVal, oldVal) {
                this.calculation();
                // this.jjctotal=this.DomesticFees.total+this.TotalAccommodationFee+this.TotalMeals+this.TotalMiscellaneous+this.trainingExpense+this.TotalExpenses.EconomyClasstotal;
                // this.gwctotal=this.DomesticFees.total+this.TotalAccommodationFee+this.TotalMeals+this.TotalMiscellaneous+this.trainingExpense+this.TotalExpenses.BusinessClasstotal;
            },

        },
        TotalMeals: {
            handler(newVal, oldVal) {
                this.calculation();
                // this.jjctotal=this.DomesticFees.total+this.TotalAccommodationFee+this.TotalMeals+this.TotalMiscellaneous+this.trainingExpense+this.TotalExpenses.EconomyClasstotal;
                // this.gwctotal=this.DomesticFees.total+this.TotalAccommodationFee+this.TotalMeals+this.TotalMiscellaneous+this.trainingExpense+this.TotalExpenses.BusinessClasstotal;
            },
        },
        TotalMiscellaneous: {
            handler(newVal, oldVal) {
                this.calculation();
                // this.jjctotal=this.DomesticFees.total+this.TotalAccommodationFee+this.TotalMeals+this.TotalMiscellaneous+this.trainingExpense+this.TotalExpenses.EconomyClasstotal;
                // this.gwctotal=this.DomesticFees.total+this.TotalAccommodationFee+this.TotalMeals+this.TotalMiscellaneous+this.trainingExpense+this.TotalExpenses.BusinessClasstotal;
            },
        },
        trainingExpense: {
            handler(newVal, oldVal) {
                this.calculation();
                // this.jjctotal=this.DomesticFees.total+this.TotalAccommodationFee+this.TotalMeals+this.TotalMiscellaneous+this.trainingExpense+this.TotalExpenses.EconomyClasstotal;
                // this.gwctotal=this.DomesticFees.total+this.TotalAccommodationFee+this.TotalMeals+this.TotalMiscellaneous+this.trainingExpense+this.TotalExpenses.BusinessClasstotal;
            },
        },
        otherExpense: {
            handler(newVal, oldVal) {
                this.calculation();
                // this.jjctotal=this.DomesticFees.total+this.TotalAccommodationFee+this.TotalMeals+this.TotalMiscellaneous+this.trainingExpense+this.TotalExpenses.EconomyClasstotal;
                // this.gwctotal=this.DomesticFees.total+this.TotalAccommodationFee+this.TotalMeals+this.TotalMiscellaneous+this.trainingExpense+this.TotalExpenses.BusinessClasstotal;
            },
        },
        'TotalExpenses.EconomyClasstotal': {
            handler(newVal, oldVal) {
                this.calculation();
                // this.jjctotal=this.DomesticFees.total+this.TotalAccommodationFee+this.TotalMeals+this.TotalMiscellaneous+this.trainingExpense+this.TotalExpenses.EconomyClasstotal;
                // this.gwctotal=this.DomesticFees.total+this.TotalAccommodationFee+this.TotalMeals+this.TotalMiscellaneous+this.trainingExpense+this.TotalExpenses.BusinessClasstotal;
            },
        },
        'TotalExpenses.BusinessClasstotal': {
            handler(newVal, oldVal) {
                this.calculation();
                // this.jjctotal=this.DomesticFees.total+this.TotalAccommodationFee+this.TotalMeals+this.TotalMiscellaneous+this.trainingExpense+this.TotalExpenses.EconomyClasstotal;
                // this.gwctotal=this.DomesticFees.total+this.TotalAccommodationFee+this.TotalMeals+this.TotalMiscellaneous+this.trainingExpense+this.TotalExpenses.BusinessClasstotal;
            },
        },
        'TotalExpenses.Firstclasstotal': {
            handler(newVal, oldVal) {
                this.calculation();
                // this.jjctotal=this.DomesticFees.total+this.TotalAccommodationFee+this.TotalMeals+this.TotalMiscellaneous+this.trainingExpense+this.TotalExpenses.EconomyClasstotal;
                // this.gwctotal=this.DomesticFees.total+this.TotalAccommodationFee+this.TotalMeals+this.TotalMiscellaneous+this.trainingExpense+this.TotalExpenses.BusinessClasstotal;
            },
        },

        //境内费用非空处理
        DomesticFees: {
            handler(newVal, oldVal) {
                if (newVal.insurance == undefined) {
                    newVal.insurance = 0
                }
                if (newVal.nucleicfees == undefined) {
                    newVal.nucleicfees = 0
                }
                if (newVal.serviceCharge == undefined) {
                    newVal.serviceCharge = 0
                }
                if (newVal.ticketsExhibitionL == undefined) {
                    newVal.ticketsExhibitionL = 0
                }
                if (newVal.vaccinefees == undefined) {
                    newVal.vaccinefees = 0
                }
                if (newVal.visafees == undefined) {
                    newVal.visafees = 0
                }
            },
            immediate: true,
            deep: true // 可以深度检测到 person 对象的属性值的变化
        },
        //国际旅费非空处理
        TotalExpenses: {
            handler(newVal, oldVal) {
                if (newVal.EconomyClass == undefined) {
                    newVal.EconomyClass = 0
                }
                if (newVal.BusinessClass == undefined) {
                    newVal.BusinessClass = 0
                }
                if (newVal.TravellingExpensesJJ == undefined) {
                    newVal.TravellingExpensesJJ = 0
                }
                if (newVal.TravellingExpensesGW == undefined) {
                    newVal.TravellingExpensesGW = 0
                }
                if (newVal.TravellingExpensesTD == undefined) {
                    newVal.TravellingExpensesTD = 0
                }
            },
            immediate: true,
            deep: true // 可以深度检测到 person 对象的属性值的变化
        },
        //监听汇率数组是否变化
        currencys: {
            handler(val) {
                this.TotalAccommodationFee = 0
                for (let q = 0; q < this.quarterageData.length; q++) {
                    for (let qc = 0; qc < this.currencys.length; qc++) {
                        if (this.currencys[qc].currencyCode == this.quarterageData[q].curremcyCode||this.currencys[qc].currencyName == this.quarterageData[q].currencyName) {
                            this.quarterageData[q].subTotal = new Decimal(this.currencys[qc].rate * this.quarterageData[q].cost).toFixed(2)
                        }
                    }
                    this.TotalAccommodationFee += Number(this.quarterageData[q].subTotal);
                }
                //伙食费
                this.TotalMeals = 0
                for (let b = 0; b < this.boardWagesData.length; b++) {
                    for (let bc = 0; bc < this.currencys.length; bc++) {
                        if (this.currencys[bc].currencyCode == this.boardWagesData[b].curremcyCode||this.currencys[bc].currencyName == this.boardWagesData[b].currencyName) {
                            this.boardWagesData[b].subTotal = new Decimal(this.currencys[bc].rate * this.boardWagesData[b].cost).toFixed(2)
                            
                        }
                    }
                    this.TotalMeals += Number(this.boardWagesData[b].subTotal);
                }
                //公杂费
                this.TotalMiscellaneous = 0
                for (let m = 0; m < this.miscellaneousFeeData.length; m++) {
                    for (let mc = 0; mc < this.currencys.length; mc++) {
                        if (this.currencys[mc].currencyCode == this.miscellaneousFeeData[m].curremcyCode||this.currencys[mc].currencyName == this.miscellaneousFeeData[m].currencyName) {
                            this.miscellaneousFeeData[m].subTotal = this.currencys[mc].rate * this.miscellaneousFeeData[m].cost
                        }
                    }
                    this.TotalMiscellaneous += this.miscellaneousFeeData[m].subTotal
                }
                //培训费
                this.trainingExpense = 0
                for (let t = 0; t < this.trainingExpenseData.length; t++) {
                    for (let tc = 0; tc < this.currencys.length; tc++) {
                        if (this.currencys[tc].currencyCode == this.trainingExpenseData[t].curremcyCode||this.currencys[tc].currencyName == this.trainingExpenseData[t].currencyName) {
                            this.trainingExpenseData[t].subTotal = this.currencys[tc].rate * this.trainingExpenseData[t].cost
                        }
                    }
                    this.trainingExpense += this.trainingExpenseData[t].subTotal
                }
                //其他费用
                for (let nc = 0; nc < this.currencys.length; nc++) {
                    for (let nt = 0; nt < this.othercurrencys.length; nt++) {
                        if (this.currencys[nc].currencyCode == this.othercurrencys[nt].currencyCode||this.currencys[nc].currencyName == this.othercurrencys[nt].currencyName) {
                            this.othercurrencys[nt].rate = this.currencys[nc].rate;
                        }
                    }
                }

                this.otherExpense = 0;
                for (let wm = 0; wm < this.otherData.length; wm++) {
                    for (let cj = 0; cj < this.othercurrencys.length; cj++) {
                        if (this.otherData[wm].currency == this.othercurrencys[cj].currencyId) {
                            this.otherData[wm].rate = this.othercurrencys[cj].rate
                        }
                    }
                    this.otherExpense += this.otherData[wm].subTotal;
                    if (this.otherData[wm].rate) {
                        this.otherData[wm].subTotal = this.otherData[wm].cost * this.otherData[wm].rate;
                    }
                }
            },
            deep: true
        }
    },
    created() {
        this.QuerySetData();
    },
    mounted() {
        this.token = JSON.parse(localStorage.getItem('userinif')).token;
        this.userId = JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
        this.value = JSON.parse(localStorage.getItem('sgvalue'))
        this.GetEnterExitCostDataSource();
        // this.GetNationalTravelFeeData();
    },
    destroyed() {
        window.localStorage.removeItem('sgvalue');
    },

}
</script>
<style>

/* .el-message-box__status {
  color: greenyellow;
} */
.Entry-all {
    background-color: #fff;
    padding: 10px;
    box-shadow: 0 0 5px #0005;
    border-radius: 10px;
    height: 100%;
    min-height: 830px;
}

.Entry-head-li label {
    color: #606266;
    font-size: 15px;
    font-weight: 600;
}

.Entry-head {
    display: flex;
    justify-content: space-between;
}

.Entry-form {
    margin-top: 10px;
    border-top: 2px solid #409EFF;
}

.Entry-li-inif {
    display: flex;
    align-items: center;
    width: 100%;
    border-top: 1px solid #ebeef5;
    padding: 5px 0;
}

.Entry-li-inif:last-child {
    border-bottom: 1px solid #ebeef5;
}

.Entry-li-lable {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 10px 0;
    margin-top: 20px;
}

.Entry-li-lables {
    display: flex;
    align-items: center;
    margin: 10px 0;
    margin-top: 20px;
}

.Entry-inif-box .depipt {
    display: inline-block;
    width: 240px;
}

.Entry-inif-box {
    margin-right: 20px;
}

.Entry-li-inif label {
    font-size: 14px;
    color: #606266;
}

.Entry-form .redzhu {
    margin-left: 25px;
    font-size: 14px;
    color: red;
}

.sub-boxs {
    -ms-user-select: none;
    -khtml-user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    font-size: 12px;
    font-family: "微软雅黑";
    user-select: none;
    background-color: #FFF;
    background-image: none;
    border-radius: 4px;
    border: 1px solid #DCDFE6;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    color: #606266;
    display: inline-block;
    height: 28px;
    line-height: 28px;
    outline: 0;
    padding: 0 15px;
    -webkit-transition: border-color .2s cubic-bezier(.645, .045, .355, 1);
    transition: border-color .2s cubic-bezier(.645, .045, .355, 1);
}

.btn-Entry {
    text-align: right;
}

.Entry-all .el-checkbox__inner {
    width: 18px;
    height: 18px;
    margin-right: 10px;
}

.Entry-all .el-checkbox__inner::after {
    height: 10px;
    left: 6px;
    
}

.Entry-all .el-table th.el-table__cell>.cell {
    text-align: center;
}
.Entry-all .el-button+.el-button{
    margin-left: 0px;
}
.Entry-all .permissionsbox .el-checkbox-group{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}
.Entry-all .permissionsbox .el-checkbox{
    width: 150px;
    margin-right: 0;
}
.custom-tooltip-style {
    max-width: 400px;
    white-space: pre-line; /* 保留换行符 */
    font-size: 13px;
    line-height: 25px;
    color: #606266;
}
.jiaotongfei-ul{
    margin-top: 20px;
    display: flex;
    justify-content: space-between;
}
.jiaotongfei-li{
    width: 32.5%;
}
</style>