| 
					
				 | 
			
			
				@@ -2,6 +2,25 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     <div class="cost-all" v-loading.fullscreen.lock="costloading"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         <div class="cost-box"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-dialog width="400px" title="成本数据复制" :visible.sync="dialogCopyVisible"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <label class="el-form-item__label">将此成本数据复制至:</label> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <el-select @focus="GroupSelectFocus" remote :loading="selectLoading" :remote-method="remoteMethod" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        size="small" v-model="dialogCopySelect" filterable placeholder="请选择"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <el-option v-for="item in options" :key="item.id" :label="item.groupName" :value="item.id"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            <span v-if="item.isTrue == 'True'" style="color:#409EFF">{{ item.groupName }}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            <span v-else style="color:gray">{{ item.groupName }}</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        </el-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <br /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <div class="btn-dialog-cost"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <el-button size="small" type="primary" @click='CopyGroupCost'>确定</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <el-button @click="dialogCopyVisible = false" size="small">取消</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </el-dialog> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             <el-dialog width="85%" title="地接历史费用" :visible.sync="historyCarDialog" @close="dialogClose"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 <div style="display: flex;"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     <div style="width: 30%;"> 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -147,6 +166,8 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     <div class="ser-btn-li"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        <el-button size="small" type="primary" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            @click="dialogCopyVisible = true; dialogCopySelect = '';">成本复制</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         <el-button size="small" :type="blackCodeIsTrue ? 'primary' : 'danger'" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             @click="importBlackCode">导入机票行程数据</el-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         <el-button size="small" :type="hotelIsTrue ? 'primary' : 'danger'" 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -3295,6 +3316,8 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             blackCodeListSeLect: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             blackCodeSelect: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             selectLoading: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            dialogCopyVisible: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            dialogCopySelect: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     watch: { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -6620,6 +6643,136 @@ export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (this.options.length == 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 this.remoteMethod("") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        async CopyGroupCost() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (this.costTypevalue == 'A') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var sgrfilter = this.costTypeHotelNumbers.filter(x => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return x.type == 'Default' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                })[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var pNumber = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //遍历 sgrfilter对象 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (var key in sgrfilter) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    var parNumber = Number(sgrfilter[key]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (isNaN(parNumber)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        parNumber = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (key == 'tbr') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            pNumber += parNumber * 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (key == 'sgr') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            pNumber += parNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (key == 'jses') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            pNumber += parNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (key == 'suite') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            pNumber += parNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var isChange = await this.getGroupInfo(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (isChange) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    var number = this.grouptitleinfo.visitPNumber; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    this.AGroupCostParameter.visaRS = number; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    this.AGroupCostParameter.bxrs = number; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    this.AGroupCostParameter.djrs = number; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    this.AGroupCostParameter.gwrs = number; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    this.AGroupCostParameter.lyjrs = number; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ////console.log(pNumber, 'pNumber-------------'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (this.grouptitleinfo.visitPNumber != pNumber) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    this.$message.error('团组人数与房间人数不一致!') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return resolve(false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var that = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var Data = { diid: this.diid, userid: this.userId }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            var isTrue = await this.formVerify(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (isTrue) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Data.checkBoxs = this.CheckBoxListSelect.map(x => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        diid: x.diid, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        cbType: x.cbType, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        cbValues: x.cbValues.join(',') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Data.groupCosts = this.tableData; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Data.costTypeHotelNumbers = this.costTypeHotelNumbers.map(x => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        id: x.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        sgr: x.sgr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        tbr: x.tbr, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        jses: x.jses, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        suite: x.suite, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        type: x.type, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        diid: that.diid 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.AGroupCostParameter.currency = this.AGroupCostParameter.currency.toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.AGroupCostParameter.diId = this.diid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.BGroupCostParameter.diId = this.diid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var Aparam = Object.assign({}, this.AGroupCostParameter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var Bparam = Object.assign({}, this.BGroupCostParameter); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (that.AGroupCostParameter.costTypeStartTime) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Aparam.costTypeStartTime = this.addOneDay(that.AGroupCostParameter.costTypeStartTime, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (that.AGroupCostParameter.costTypeendTime) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Aparam.costTypeendTime = this.addOneDay(that.AGroupCostParameter.costTypeendTime, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (that.BGroupCostParameter.costTypeStartTime) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Bparam.costTypeStartTime = this.addOneDay(that.BGroupCostParameter.costTypeStartTime, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (that.BGroupCostParameter.costTypeendTime) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Bparam.costTypeendTime = this.addOneDay(that.BGroupCostParameter.costTypeendTime, 0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (this.costTypevalue == "A") { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Data.groupCostParameters = [Aparam]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Data.groupCostParameters = [Aparam, Bparam]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var ResultCostArr = this.Dataformat(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Data.groupCosts = ResultCostArr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Data.ToGroupId = this.dialogCopySelect; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ////////console.log(Data, "save-------Data"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                var that = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.$axios.post('/api/Groups/CopyGroupCost', Data, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        'Authorization': that.token, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }).then(resp => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (resp.data.code == 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        this.$message({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            message: '复制成功!', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            type: 'success' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        this.$message.error('复制失败!' + resp.data.msg); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    var result = Number(that.AGroupCostParameter.currency); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (isNaN(result)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        that.AGroupCostParameter.currency = result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }).finally(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    this.dialogCopyVisible = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.dialogCopyVisible = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                this.$message.error('请将本团组完善!'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     updated() { 
			 |