Browse Source

lhj 12-04

liuhj 1 year ago
parent
commit
a4e3fb8141

+ 428 - 43
src/components/OP/EntryDetails.vue

@@ -4,7 +4,7 @@
             <div class="Entry-head">
                 <div class="Entry-head-li">
                     <label>团组名称:</label>
-                    <el-select v-model="value" filterable placeholder="请选择">
+                    <el-select @change="chengvalue()" v-model="value" filterable placeholder="请选择">
                         <el-option
                             v-for="item in options"
                             :key="item.id"
@@ -16,14 +16,15 @@
                 <div class="Entry-head-li">
                     <el-button type="primary">计算费用</el-button>
                     <el-button type="primary">全部清空</el-button>
-                    <el-button type="primary">保存</el-button>
+                    <el-button @click="storage()" type="primary">保存</el-button>
                     <el-button type="primary">导出所选明细表</el-button>
                     <el-button type="primary">导出下拉所选表格</el-button>
                 </div>
             </div>
             <div class="Entry-form">
                 <div class="Entry-form-li">
-                    <div class="Entry-li-lable">
+                    <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>
@@ -75,18 +76,21 @@
                     </div>
                 </div>
                 <div class="Entry-form-li">
-                    <div class="Entry-li-lable">
+                    <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">
-                                <label>(经济舱)</label>
+                                <el-checkbox style="margin-right: -10px;" v-model="sumJJC"></el-checkbox>
+                                <label>(经济舱)</label>
                                 <div class="sub-boxs">{{TotalExpenses.EconomyClasstotal=(TotalExpenses.EconomyClass+TotalExpenses.TravellingExpenses)|numFilter}}</div>
                                 <span>元/人</span>
                             </div>
-                            &nbsp;&nbsp;                         
+                            &nbsp;&nbsp;&nbsp;&nbsp;                          
                             <div class="li-lable">
-                                <label>(公务舱)</label>
-                                <div class="sub-boxs">{{TotalExpenses.EconomyClasstotal=(TotalExpenses.BusinessClass+TotalExpenses.TravellingExpenses)|numFilter}}</div>
+                                <el-checkbox style="margin-right: -10px;" v-model="sumGWC"></el-checkbox>
+                                <label>(公务舱)</label>
+                                <div class="sub-boxs">{{TotalExpenses.BusinessClasstotal=(TotalExpenses.BusinessClass+TotalExpenses.TravellingExpenses)|numFilter}}</div>
                                 <span>元/人</span>
                             </div>
                         </div>
@@ -120,16 +124,19 @@
                 </div>
                 <div class="Entry-form-li">
                     <div class="Entry-li-lable">
-                        <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 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>
+                            <el-button type="primary" @click="addlist('住宿费')" size="mini">新 增</el-button>
                         </div>
                     </div>
                     <div class="Entry-li-inif">
@@ -197,16 +204,19 @@
                 </div>
                 <div class="Entry-form-li">
                     <div class="Entry-li-lable">
-                        <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 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" size="mini">新 增</el-button>
+                            <el-button type="primary" @click="addlist('伙食费')" size="mini">新 增</el-button>
                         </div>
                     </div>
                     <div class="Entry-li-inif">
@@ -277,16 +287,19 @@
                 </div>
                 <div class="Entry-form-li">
                     <div class="Entry-li-lable">
-                        <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 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" size="mini">新 增</el-button>
+                            <el-button type="primary" @click="addlist('公杂费')" size="mini">新 增</el-button>
                         </div>
                     </div>
                     <div class="Entry-li-inif">
@@ -357,16 +370,19 @@
                 </div>
                 <div class="Entry-form-li">
                     <div class="Entry-li-lable">
-                        <div class="li-lable">六、培训费</div>
-                        <div style="display: flex;">
-                            <div class="li-lable">
-                                <label>合计:</label>
-                                <div class="sub-boxs">{{TotalExpenses.EconomyClasstotal=(TotalExpenses.EconomyClass+TotalExpenses.TravellingExpenses)|numFilter}}</div>
-                                <span>元/人</span>
+                        <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" size="mini">新 增</el-button>
+                            <el-button type="primary" @click="addlist('培训费')" size="mini">新 增</el-button>
                         </div>
                     </div>
                     <div class="Entry-li-inif">
@@ -391,7 +407,7 @@
                                     <el-input size="mini" v-model="scope.row.city"></el-input>
                                 </template> -->
                                 <template slot-scope="scope">
-                                    <el-select size="mini" v-model="scope.row.nationalTravelFeeId" filterable placeholder="请选择">
+                                    <el-select @change="TrainingExpenseDataSelect(scope.row,$event)" size="mini" v-model="scope.row.nationalTravelFeeId" filterable placeholder="请选择">
                                         <el-option
                                             v-for="item in placeinif"
                                             :key="item.id"
@@ -409,7 +425,7 @@
                             label=" 费用标准"
                             width="180">
                                 <template slot-scope="scope">
-                                    <el-input-number size="mini" :precision="2" :controls="false" v-model="scope.row.cost"></el-input-number>
+                                    <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
@@ -435,6 +451,26 @@
                         </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>
+                        </div>
+                    </div>
+                </div>
             </div>
         </div>
     </div>
@@ -443,6 +479,19 @@
 export default {
     data() {
         return {
+            //是否计算Checkbox
+            choiceOne:false,//境内费用(其他费用)选择框
+            choiceTwo:false,//国际旅费合计选择框
+            choiceThree:false,//住宿费合计选择框
+            choiceFour:false,//伙食费合计选择框
+            choiceFive:false,//公杂费合计选择框
+            choiceSix:false,//培训费用选择框
+            sumJJC:false,//经济舱小计选择框
+            sumGWC:false,//公务舱小计选择框
+            airJJC_Checked:false,//经济舱选择框
+            airGWC_Checked:false,//公务舱选择框
+
+            userId:'',
             value:'',
             options:[],
             Visafees:'',
@@ -469,6 +518,7 @@ export default {
             TotalAccommodationFee:0,//住宿费合计
             TotalMeals:0,//伙食费合计
             TotalMiscellaneous:0,//公杂费合计
+            trainingExpense:0,//培训费合计
 
             quarterageData: [],
             boardWagesData:[],
@@ -523,6 +573,11 @@ export default {
                 label:"city",
                 // label: "country",
             },
+
+            jjctotal:0,//经济舱合计
+            gwctotal:0,//公务舱合计
+
+            storageid:0,
         }
     },
     methods:{
@@ -588,7 +643,7 @@ export default {
                 },
                 data:{
                     portType: 1,
-                    diId: 2362
+                    diId: that.value
                 }
             }).then(function (res) {
                 if(res.data.code==200){
@@ -607,6 +662,18 @@ export default {
                     that.TotalExpenses.EconomyClass=res.data.data.outsideJJPay;
                     that.TotalExpenses.BusinessClass=res.data.data.outsaideGWPay;
                     that.TotalExpenses.TravellingExpenses=res.data.data.cityTranffic;
+
+                    //是否计算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.sumJJC=res.data.data.sumJJC==1?true:false
+                    that.sumGWC=res.data.data.sumGWC==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++){
@@ -624,6 +691,10 @@ export default {
                     }
                     //培训费
                     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.storageid=res.data.data.id;
                 }
             })
         },
@@ -647,6 +718,7 @@ export default {
             //在change中获取到整条对象数据
             console.log(obj);
             val.currencyName=obj.currencyName;
+            val.currency=obj.currency;
             val.cost=obj.roomCost;
             console.log(this.currencys)
             for(let j=0;j<this.currencys.length;j++){
@@ -672,6 +744,7 @@ export default {
             //在change中获取到整条对象数据
             console.log(obj);
             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){
@@ -695,6 +768,7 @@ export default {
             //在change中获取到整条对象数据
             console.log(obj);
             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){
@@ -707,9 +781,260 @@ export default {
                 this.TotalMiscellaneous+=this.miscellaneousFeeData[a].subTotal
             }
         },
+        //培训费费用标准值改变
+        Traininginput(val){
+            console.log(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
+            }
+        },
+        //培训费地区选择
+        TrainingExpenseDataSelect(val,item){
+            console.log(val);
+            console.log(this.trainingExpenseData);
+            var rate=0//汇率
+            var obj={}
+            obj= this.placeinif.find(function(i){
+                return i.id ===item
+            });
+            //在change中获取到整条对象数据
+            console.log(obj);
+            val.currencyName=obj.currencyName;
+            val.currency=obj.currency;
+            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
+            }
+        },
         //新增list
-        addlist(){
-            console.log(this.quarterageData)
+        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:0,
+                    cost:0,
+                    currency:0,
+                    subTotal:0,
+                    remark:0,
+                })
+            }
+            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:0,
+                    cost:0,
+                    currency:0,
+                    subTotal:0,
+                    remark:0,
+                })
+            }
+            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:0,
+                    cost:0,
+                    currency:0,
+                    subTotal:0,
+                    remark:0,
+                })
+            }
+            if(text=="培训费"){
+                console.log(this.trainingExpenseData)
+                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:0,
+                    cost:0,
+                    currency:0,
+                    subTotal:0,
+                    remark:'',
+                })
+            }
+        },
+        //保存
+        storage(){
+            //住宿费
+            var quarterageDatas=[];
+            for(let m=0;m<this.quarterageData.length;m++){
+                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++){
+                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++){
+                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++){
+                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,
+                })
+            }
+            console.log(quarterageDatas)
+            console.log(boardWagesDatas)
+            console.log(miscellaneousFeeDatas)
+            console.log(trainingExpenseDatas)
+            console.log(this.DomesticFees.total+this.TotalAccommodationFee+this.TotalMeals+this.TotalMiscellaneous+this.trainingExpense)
+            this.storageAPI(quarterageDatas,boardWagesDatas,miscellaneousFeeDatas,trainingExpenseDatas)
+        },
+        //保存API
+        storageAPI(arrthre,arrfour,arrfive,arrsix){
+            var url = "/api/Groups/PostEnterExitCostOperate"
+            var that = this
+            console.log(that.value)
+            var data={
+                    portType: 1,
+                    userId: that.userId,
+                    id: that.storageid,
+                    diId: that.value,
+                    choiceOne: that.choiceOne?1:0,
+                    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,
+                    choiceTwo: that.choiceTwo?1:0,
+                    sumJJC:that.sumJJC?1:0,
+                    sumGWC:that.sumGWC?1:0,
+                    outsideJJPay:that.TotalExpenses.EconomyClasstotal,
+                    outsaideGWPay:this.TotalExpenses.BusinessClasstotal,
+                    airJJ:that.jjctotal,
+                    airGW:that.gwctotal,
+                    cityTranffic: that.TotalExpenses.TravellingExpenses,
+                    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,
+                }
+                console.log(data)
+                console.log(JSON.stringify (data))
+            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,
+                    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,
+                    choiceTwo: that.choiceTwo?1:0,
+                    sumJJC:that.sumJJC?1:0,
+                    sumGWC:that.sumGWC?1:0,
+                    outsideJJPay:that.TotalExpenses.EconomyClasstotal,
+                    outsaideGWPay:this.TotalExpenses.BusinessClasstotal,
+                    airJJ:that.jjctotal,
+                    airGW:that.gwctotal,
+                    cityTranffic: that.TotalExpenses.TravellingExpenses,
+                    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,
+                }
+            }).then(function (res) {
+                if(res.data.code==200){
+                    console.log(res)
+                    that.GetEnterExitCostInfobyDiId()
+                }
+            })
+        },
+        //选择团组名称调用
+        chengvalue(){
+            this.GetEnterExitCostInfobyDiId()
         }
     },
     filters: {
@@ -720,6 +1045,50 @@ export default {
         }
     },
     watch: {
+        'DomesticFees.total':{
+            handler(newVal,oldVal) {
+                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.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.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.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.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.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.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;
+                // console.log(this.DomesticFees.total+this.TotalAccommodationFee+this.TotalMeals+this.TotalMiscellaneous+this.trainingExpense+this.TotalExpenses.BusinessClasstotal)
+            },
+        },
         //境内费用非空处理
         DomesticFees: {
             handler(newVal, oldVal) {
@@ -763,8 +1132,10 @@ export default {
         }
     },
     mounted(){
+        this.userId=JSON.parse(localStorage.getItem('userinif')).userInfo.userId;
         this.GetEnterExitCostDataSource();
         this.GetNationalTravelFeeData();
+
     }
 }
 </script>
@@ -800,6 +1171,13 @@ export default {
     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;
@@ -848,8 +1226,15 @@ export default {
     transition: border-color .2s cubic-bezier(.645,.045,.355,1);
 }
 .btn-Entry{
-    width: 83%;
     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;
+}
 </style>

+ 143 - 0
src/components/OP/OpLtinerary.vue

@@ -0,0 +1,143 @@
+<template>
+    <div>
+        <div class="opltinerary-all">
+            <div class="opltinerary-head">
+                <div class="opltinerary-head-li">
+                    <label>团组名称:</label>
+                    <el-select size="medium" v-model="value" filterable placeholder="请选择">
+                        <el-option
+                            v-for="item in options"
+                            :key="item.id"
+                            :label="item.groupName"
+                            :value="item.id">
+                        </el-option>
+                    </el-select>
+                </div>
+                <div class="opltinerary-head-li">
+                    <el-button size="medium" type="primary">删除本团行程</el-button>
+                    <el-button size="medium" type="primary">导入数据</el-button>
+                    <el-button size="medium" type="primary">保存修改</el-button>
+                    <el-button size="medium" type="primary">导出完整行程</el-button>
+                    <el-button size="medium" type="primary">导出下拉所选表格</el-button>
+                </div>
+            </div>
+            <div class="opname-box">
+                <div class="opname-head-li">
+                    <label>选择城市:</label>
+                    <el-select size="medium" v-model="value" filterable placeholder="请选择">
+                        <el-option
+                            v-for="item in options"
+                            :key="item.id"
+                            :label="item.groupName"
+                            :value="item.id">
+                        </el-option>
+                    </el-select>
+                </div>
+                <div class="opname-head-li">
+                    <el-button size="medium" type="primary">导出城市行程</el-button>
+                </div>
+            </div>
+            <div class="opname-box">
+                <div class="opname-head-li">
+                    <label>选择行程单:</label>
+                    <el-select size="medium" v-model="value" filterable placeholder="请选择">
+                        <el-option
+                            v-for="item in options"
+                            :key="item.id"
+                            :label="item.groupName"
+                            :value="item.id">
+                        </el-option>
+                    </el-select>
+                </div>
+                <div class="opname-head-li">
+                    <el-button size="medium" type="primary">新增数据</el-button>
+                    <el-button size="medium" type="primary">确定行程</el-button>
+                </div>
+            </div>
+            <div class="itinerary-box">
+                <div class="itinerary-title">
+                    【123】团 10 日行程
+                </div>
+                <div class="itinerary-inif">
+                    <div>途经城市:北京/巴黎/圣保罗/里约热内卢/圣地亚哥/布宜诺斯艾利斯/阿姆斯特丹/北京</div>
+                    <div>天数:10</div>
+                    <div>团号:4WMi71</div>
+                    <div>人数:6</div>
+                </div>
+                <div class="itinerary-table">
+                    <div class="table-title">
+                        <div style="">天数</div>
+                        <div>日期</div>
+                        <div>交通</div>
+                        <div>行程</div>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    data() {
+        return {
+            value:"",
+            options:[]
+        }
+    },
+}
+</script>
+<style>
+.opltinerary-all{
+    background-color: #fff;
+    padding: 10px;
+    box-shadow: 0 0 5px #0005;
+    border-radius: 10px;
+    height: 100%;
+    min-height: 840px;
+}
+.opltinerary-head-li label{
+    color: #606266;
+    font-size: 15px;
+    font-weight: 600;
+}
+.opltinerary-head{
+    display: flex;
+    justify-content: space-between;
+}
+.opname-box{
+    display: flex;
+    justify-content: end;
+}
+.opname-head-li:nth-child(1){
+    margin-right: 10px;
+}
+.opname-head-li{
+    margin-top: 10px;
+}
+.opname-head-li label{
+    color: #606266;
+    font-size: 15px;
+    font-weight: 600;
+}
+.itinerary-box{
+    margin-top: 20px;
+}
+.itinerary-title{
+    text-align: center;
+    font-size: 17px;
+    font-weight: 600;
+}
+.itinerary-inif{
+    display: flex;
+    justify-content: center;
+}
+.itinerary-inif div{
+    margin-top: 10px;
+    font-size: 14px;
+    margin-right: 28px;
+}
+.table-title{
+    display: flex;
+    border: 1px solid #ebeef5;
+}
+</style>

+ 12 - 1
src/components/system/SetWorking.vue

@@ -193,6 +193,14 @@ export default {
         AddOrEdit(arr){
             var url = "/api/PersonnelModule/GetWageSheetMonthWorkdaysAddOrEdit"
             var that = this
+            var data={
+                userId:this.userId,
+                yearMonth:this.yearMonth,
+                startDate:this.startDate,
+                endDate:this.endDate,
+                calendarInfos:arr,
+            }
+            console.log(JSON.stringify(data))
             this.$axios({
                 method: 'post',
                 url: url,
@@ -264,10 +272,12 @@ export default {
     font-weight: 600;
     line-height: 50px;
 }
-.schedule-box{
+.calendar-box .schedule-box{
     font-size: 17px;
     font-weight: 600;
+    text-align: center;
     color: #409EFF;
+    width: 100%;
 }
 .schedule-boxs{
     font-size: 17px;
@@ -295,4 +305,5 @@ export default {
 .next>.el-calendar-day>.calendar-btn-box{
     display: none;
 }
+
 </style>

+ 6 - 0
src/router/index.js

@@ -82,6 +82,7 @@ import GroundEntry from '@/components/Resource/GroundEntry';
 import GroundDetailedfees from '@/components/Resource/GroundDetailedfees';
 import SetWorking from '@/components/system/SetWorking';
 import ThreeStandards from '@/components/OP/ThreeStandards'
+import OpLtinerary from '@/components/OP/OpLtinerary'
 Vue.use(Router)
 
 export default new Router({
@@ -479,6 +480,11 @@ export default new Router({
           name: 'ThreeStandards',
           component: ThreeStandards
         },
+        {
+          path: '/home/OpLtinerary',
+          name: 'OpLtinerary',
+          component: OpLtinerary
+        },
       ]
     },
     {