Commit 61a8ba61 authored by 黄媛媛's avatar 黄媛媛
parents f2ddc27e 3b567153
input:-webkit-autofill{-webkit-box-shadow: 0 0 0px 1000px white inset;}
.login-box{
position:absolute;
/* position:absolute; */
/*background-repeat: no-repeat;*/
width:100%;
height:100%;
font-family:MicrosoftYaHei;
overflow: hidden;
/* width:100%;
height:100%; */
/* font-family:MicrosoftYaHei;
overflow: hidden; */
/*background-size: cover;*/
/*background-position: center center;*/
background-color: white;
/* background-color: white; */
}
.login-Div{
width:380px;
......
......@@ -571,7 +571,7 @@
</div>
</div>
</div>
<div class="_right_content" v-for="(son,sindex) in item.AuditRecordList" v-if="son.AuditStatus!=2">
<div class="_right_content" v-for="(son,sindex) in item.AuditRecordList" v-if="son.AuditStatus!=2 && MsgUrl">
<span class="_sm" >
<p class="_name">
<span class="_n">{{son.AuditName}}</span>
......@@ -880,7 +880,7 @@
</ul>
</div>
</div>
<div class="_pb_son clearfix" v-if="item.NextStep==1 && GetDetail.Status==1 && item.AuditWay!=2" >
<div class="_pb_son clearfix" v-if="item.NextStep==1 && GetDetail.Status==1 && item.AuditWay!=2 && MsgUrl" >
<div class="_left_radius _left_radius_sus" v-if="item.Status==1">待审</div>
<p class="_name"> <span class="_n">{{item.AuditDescription}}</span><span class="_sm _huoqian" v-if="item.AuditWay==3">({{item.AuditWayName}})</span></p>
<div class="_right_content _padd_left_10">
......@@ -1250,7 +1250,7 @@
</div>
</template>
</div>
<div class="_submit" v-if="GetDetail.Is_Self!=1">
<div class="_submit" v-if="GetDetail.Is_Self!=1 && MsgUrl">
<div class="chosenNextBox" v-if="(GetDetail.IsHave==0||resultCode==11019)&&AuditOrRefundMsg.Status=='5'">
<template>
<div>
......@@ -1278,7 +1278,7 @@
</template>
</div>
</div>
<div class="_submit" v-if="GetDetail.Is_Self==1">
<div class="_submit" v-if="GetDetail.Is_Self==1" && MsgUrl>
<div>
<label>转交人:</label>
<el-select size="mini" style="width:300px" v-model="zhuanMsg.AuditEmId" filterable remote reserve-keyword placeholder="请选择转交人" :remote-method="remoteMethod" :loading="loadingPeople">
......@@ -1466,6 +1466,7 @@ export default {
isChongDi: false,
danjuType: '',
showModel: false,
MsgUrl: true,
}
},components:{
"my-FlowChartModule": myFlowChartModule,
......@@ -2242,6 +2243,7 @@ export default {
}
},
Financial_post_GetDetail(id,t){ //获取单据详情
let userInfo=this.getLocalStorage();
this.apipost('Financial_post_GetDetail',{ID:id,Type:2}, res => {
if(res.data.resultCode == 1) {
let data= res.data.data;
......@@ -2276,6 +2278,7 @@ export default {
}
let AuditSteps=this.GetDetail.AuditSteps;
let ChuNaShenHe = false
let MsgUrl = false;
for(let i = 0; i < AuditSteps.length; i++) {
if(AuditSteps[i].NextStep==1 && AuditSteps[i].SpecialNode==2 && AuditSteps[i].Status==1){
ChuNaShenHe = true
......@@ -2286,9 +2289,18 @@ export default {
return
}
})
}
if(AuditSteps[i].NextStep==1){
AuditSteps[i].AuditRecordList.forEach(audit=>{
if(audit.AuditName==userInfo.emName){
MsgUrl = true
return
}
})
}
}
this.MsgUrl = MsgUrl
// AuditSteps.forEach(item=>{
// if(item.NextStep==1 && item.SpecialNode==2 && item.Status==1){
// ChuNaShenHe = true
......
......@@ -351,7 +351,7 @@
OriginalMoney += x.OriginalMoney
})
this.moneyObj = {
benAllMoney: benAllMoney,
benAllMoney: Math.round(benAllMoney * 100) / 100,
OriginalMoney: OriginalMoney,
}
data.ChineseMoney = this.$commonUtils.changeMoneyToChinese(data.Merge.Money)
......
......@@ -18,6 +18,14 @@
<th>占比</th>
<th>设置</th>
</tr>
<tr>
<td>地接账户基金</td>
<td>{{allzb}}%</td>
<td>
<!-- <el-button @click="SetRules(item)" style="padding:4px" type="primary" icon="el-icon-edit" circle></el-button>
<el-button @click="Delete(item)" style="padding:4px" type="danger" icon="el-icon-delete" circle></el-button> -->
</td>
</tr>
<tbody v-for="(item,i) in dataList" :key="i">
<tr>
<td>{{item.EmployeeName}}</td>
......
......@@ -170,7 +170,7 @@ export default {
speed: 3000,
imgList: [
{
src: 'http://imgfile.oytour.com/New/Upload/Cloud/2019-09/20190920032221373.jpg',
src: 'http://imgfile.oytour.com/New/Upload/Cloud/2019-09/20190923020945469.jpg',
text: '京都独旅之秋',
text1: '旅宿权威柏井寿的私房赏枫秘境',
url: 'http://www.oytour.com/#/JuanDetails?id=70'
......
......@@ -2926,7 +2926,7 @@
// 华国豪5-5新增
if (moment().format("YYYY-MM-DD") >= obj.startDate) {
// 该团目前已是结团状态,不能随意修改备注信息,若强行修改备注,将会计入个人考核,是否确定修改备注信息?
this.$confirm("该团目前已是结团状态,无法修改备注", "提示", {
this.$confirm("该团目前已是结团状态,无法修改备注", "提示", {
confirmButtonText: "确定",
showCancelButton: false,
type: "warning"
......
......@@ -3105,6 +3105,7 @@
Unit_PriceList: [], //成交单价下拉数据
LessMoney: 0,
addMsg: {
IsOPUpdate:1,//2019-09-23 Add by:W
GroupTypeNeedHouse: '0',
OrderId: "0",
TCID: "0",
......@@ -3430,8 +3431,8 @@
if (res.resultCode == 1) {
this.Success(res.message);
this.outerVisible = false;
this.isShow = false;
this.fillShow = true;
this.importNameFile = false;
this.importData = res.data;
this.getList()
} else{
......@@ -3656,6 +3657,7 @@
this.addObj = res.data.data.modelPrice;
let x = res.data.data.model;
this.addMsg = x;
this.addMsg.IsOPUpdate=1;
this.addObj.OrderId = x.OrderId;
this.addObj.OpSetLossMoney = x.OpSetLossMoney;
this.addMsg.ScenicRefundArr = res.data.data.ScenicRefundArr;
......
<style>
@import "../../../assets/css/newTravelManager.css";
.singlePrice .el-form-item__content,
.el-form-item__label {
line-height: 30px;
}
.CP_halfWi {
width: 45%;
}
</style>
<template>
<div>
<div class="singlePrice clearfix CP_Div">
<el-form>
<div class="QuotationFirstDiv">
<el-row :gutter="40">
<el-col :span="12">
<el-form-item label="线路">
<el-select v-model="postConfig.LineId" :placeholder="$t('pub.pleaseSel')"
@change="getLineTeamList(postConfig.LineId)" filterable>
<el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option>
<el-option v-for="item in LineList" :label='item.LineName' :value='item.LineID' :key='item.LineID'>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="系列">
<el-select v-model="postConfig.LineteamId" :placeholder="$t('pub.pleaseSel')"
@change="getCountryId(postConfig.LineteamId)" filterable>
<el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option>
<el-option v-for="item in LineTeamList" :label='item.LtName' :value='item.LtID' :key='item.LtID'>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="团队标题">
<el-input v-model="postConfig.Title" type="textarea" :autosize="{minRows: 1, maxRows: 2 }" resize="none"
placeholder="请填写团队标题" maxlength="200"></el-input>
</el-form-item>
</el-col>
</el-row>
<div class="seat-box">
<div class="left">座位</div>
<div class="right">
<el-row :gutter="20">
<el-col :span="6">
<el-form-item prop="YSeat">
<el-input placeholder="人数" v-model="postConfig.YSeat" maxlength="2"
@keyup.native="checkInteger(postConfig,'YSeat')">
<template slot="prepend">经济舱/上铺</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="CSeat">
<el-input placeholder="人数" v-model="postConfig.CSeat" maxlength="2"
@keyup.native="checkInteger(postConfig,'CSeat')">
<template slot="prepend">商务舱/中铺</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item prop="FSeat">
<el-input placeholder="人数" v-model="postConfig.FSeat" maxlength="2"
@keyup.native="checkInteger(postConfig,'FSeat')">
<template slot="prepend">头等舱/下铺</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item>
<el-input placeholder="人数" v-model="postConfig.LowNum" maxlength="2">
<template slot="prepend">最低成团人数</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</div>
<div class="seat-box">
<div class="left">行程天数</div>
<div class="right">
<el-row :gutter="20">
<el-col :span="6">
<el-form-item>
<el-input class="w120 LowNum" v-model="postConfig.DayNum"
@keyup.native="checkInteger(postConfig,'DayNum');createDayTripPrice()">
<template slot="append"></template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item>
<el-input class="w120 LowNum" v-model="postConfig.NightNum"
@keyup.native="checkInteger(postConfig,'NightNum')">
<template slot="append"></template>
</el-input>
</el-form-item>
</el-col>
</el-row>
</div>
</div>
</div>
<table class="CP_comTable">
<tr>
<td class="CP_comBack" width="170">币种</td>
<td v-for='(item,index) in OtherPrice.CostCurrencyList'>
{{item.CurrencyName}}
<span>
<i class="iconfont icon-quxiao" @click="DeleteCurrency(index)"></i>
</span>
</td>
<td>
<el-form-item class="w100">
<el-select v-model='currencyType' @change="getRate(currencyType),addCurrency()">
<el-option v-for="item in currencyTypeArr" :label='item.Name' :value='item.ID' :key='item.ID'>
</el-option>
</el-select>
</el-form-item>
</td>
</tr>
<tr>
<td class="CP_comBack">汇率</td>
<!-- <td v-for='item in OfferCostPriceObj.CostCurrencyList'>
<el-input class="w80" v-model='item.ExchangeRate' @keyup.native="checkRate(item,'ExchangeRate')">
</el-input>
</td> -->
<td>
<el-input class="w100" v-model='queryMsg.RateInput' @keyup.native="checkRate(queryMsg,'RateInput')">
</el-input>
</td>
</tr>
</table>
<table class="CP_comTable">
<tr>
<td class="CP_comBack" width="170">人数</td>
<td v-for="(item,index) in OfferCostPriceObj.CostNumberList" :key='item.subCode'>
<el-input class="w80" v-model='item.PeopleNumber' @keyup.native="checkInteger(item,'PeopleNumber')">
</el-input>
<span>
<i class="iconfont icon-quxiao" @click="DeletePNumber(index)"></i>
</span>
</td>
<td width="150">
<el-form-item>
<el-input class="w80" v-model='queryMsg.PeopleNumber'
@keyup.native="checkInteger(queryMsg,'PeopleNumber')"></el-input>
</el-form-item>
<div class="AS_addPeoNumer">
<i class="iconfont icon-img_haha" @click="addPeoNunber"></i>
</div>
</td>
</tr>
<tr v-for="item in OfferCostPriceObj.CostCurrencyList">
<td class="CP_comBack">地接报价({{item.CurrencyName}})</td>
<td v-if="checkExists(item.CurrencyId)" v-for="childItem in getCurrencyNumberList(item.CurrencyId)">
<el-form-item>
<el-input class="w80" v-model='childItem.Money'
@keyup.native="checkPrice(childItem,'Money',true),ReCalc()"></el-input>
</el-form-item>
</td>
<td>
</td>
</tr>
</table>
<table class="CostPriceTable">
<tr>
<th rowspan="2" width='100'>Day</th>
<th rowspan="2" width='100'>行程大点</th>
<th rowspan="2" width="200">币种</th>
<th rowspan="2" width='220'>酒店</th>
<th rowspan="2" width='200'></th>
<th rowspan="2" width='220'>门票</th>
<th colspan="3" width='200'></th>
</tr>
<tr>
<th width="90"></th>
<th width="90"></th>
<th width="90"></th>
</tr>
<!-- <tr v-for="subItem in OfferCostPriceObj.CostLocalList" :key="subItem.subCode">
<td align="center">{{subItem.DayNum}}</td>
<td>
<el-input type="textarea" resize="none"></el-input>
</td>
<td>
<el-form-item>
<el-select v-model='subItem.CurrencyId'>
<el-option :label="$t('pub.unlimitedSel')" :value='defaultSelect'></el-option>
<el-option v-for="items in OfferCostPriceObj.CostCurrencyList" :label='items.CurrencyName'
:value='items.CurrencyId' :key='items.CurrencyId'>
</el-option>
</el-select>
</el-form-item>
</td>
<td>
<el-input v-if="!showHotel" type='text' v-model="subItem.HotelMoney"
@keyup.native="checkPrice(subItem,'HotelMoney')"></el-input>
</td>
<td>
<span v-if="showCar">{{subItem.CarName}}</span>
<el-input type='text' v-model="subItem.CarMoney" @keyup.native="checkPrice(subItem,'CarMoney')"
v-if="!showCar"></el-input>
</td>
<td>
<span v-if="showTicket" class="QD_DetailName">{{subItem.TicketName}}</span>
<el-input type='text' v-model="subItem.TicketMoney" @keyup.native="checkPrice(subItem,'TicketMoney')"
v-if="!showTicket"></el-input>
</td>
<td>
<el-input type="text" :disabled='disabMoney' v-model='subItem.FoodItem[0].money'
@keyup.native="checkPrice(subItem.FoodItem[0],'money')"></el-input>
</td>
<td>
<el-input type="text" :disabled='disabMoney' v-model='subItem.FoodItem[1].money'
@keyup.native="checkPrice(subItem.FoodItem[1],'money')"></el-input>
</td>
<td>
<el-input type="text" :disabled='disabMoney' v-model='subItem.FoodItem[2].money'
@keyup.native="checkPrice(subItem.FoodItem[2],'money')"></el-input>
</td>
</tr> -->
</table>
<div class="CP_ComTitle">内陆段交通部分</div>
<table class="CostPriceTable">
<tr>
<td width='50'>1</td>
<td width='200'>内陆段机位(每人)</td>
<td width='200'>
<el-form-item>
<!-- <el-select v-model='OfferCostPriceObj.InlandAirTicketCurrency'>
<el-option :label="$t('pub.unlimitedSel')" :value='defaultSelect'></el-option>
<el-option v-for="items in OfferCostPriceObj.CostCurrencyList" :label='items.CurrencyName'
:value='items.CurrencyId' :key='items.CurrencyId'>
</el-option>
</el-select> -->
</el-form-item>
</td>
<td>
<el-form-item>
<el-input type='text' class="w120" v-model="OtherPrice.InlandAirTicketMoney"
@keyup.native="checkPrice(OtherPrice,'InlandAirTicketMoney')"></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>2</td>
<td>内陆段船票(每人</td>
<td>
<!-- <el-form-item>
<el-select v-model='OfferCostPriceObj.InlandShipTicketCurrency'>
<el-option :label="$t('pub.unlimitedSel')" :value='defaultSelect'></el-option>
<el-option v-for="items in OfferCostPriceObj.CostCurrencyList" :label='items.CurrencyName'
:value='items.CurrencyId' :key='items.CurrencyId'>
</el-option>
</el-select>
</el-form-item> -->
</td>
<td>
<el-form-item>
<el-input type='text' class="w120" v-model="OtherPrice.InlandShipTicketMoney"
@keyup.native="checkPrice(OtherPrice,'InlandShipTicketMoney')"></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>3</td>
<td>内陆段火车票(每人)</td>
<td>
<!-- <el-form-item>
<el-select v-model='OfferCostPriceObj.InlandTrainTicketCurrency'>
<el-option :label="$t('pub.unlimitedSel')" :value='defaultSelect'></el-option>
<el-option v-for="items in OfferCostPriceObj.CostCurrencyList" :label='items.CurrencyName'
:value='items.CurrencyId' :key='items.CurrencyId'>
</el-option>
</el-select>
</el-form-item> -->
</td>
<td>
<el-form-item>
<el-input type='text' class="w120" v-model="OtherPrice.InlandTrainTicketMoney"
@keyup.native="checkPrice(OtherPrice,'InlandTrainTicketMoney')"></el-input>
</el-form-item>
</td>
</tr>
</table>
<div class="CP_ComTitle">杂支部分</div>
<table class="CostPriceTable">
<tr>
<td width='50'>1</td>
<td width='200'>签证费(每人)</td>
<td colspan='3'>
<el-form-item>
<el-input type='text' class="w120" v-model="OtherPrice.VisaMoney"
@keyup.native="checkPrice(OtherPrice,'VisaMoney')"></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>2</td>
<td>保险费(每人)</td>
<td>
<el-form-item>
<el-input type='text' class="w120" v-model="OtherPrice.SafeMoney"
@keyup.native="checkPrice(OtherPrice,'SafeMoney')"></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>3</td>
<td>领队小费</td>
<td>
<el-form-item>
<el-input type='text' class="w120" v-model="OtherPrice.LeaderTripMoney"
@keyup.native="checkPrice(OtherPrice,'LeaderTripMoney')"></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>4</td>
<td>司机、导游小费</td>
<td>
<el-form-item>
<el-input type='text' class="w120" v-model="OtherPrice.DriverGuideMoney"
@keyup.native="checkPrice(OtherPrice,'DriverGuideMoney')"></el-input>
</el-form-item>
</td>
</tr>
</table>
<div class="CP_ComTitle">其他支出</div>
<table class="CostPriceTable">
<tr>
<td width='50'>1</td>
<td width='200'>销售提成1%</td>
<td colspan='3'>
<el-form-item>
<el-input type='text' class="w120" v-model="OtherPrice.SalesCommissionMoney"
@keyup.native="checkPrice(OtherPrice,'SalesCommissionMoney')"></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>2</td>
<td>作业处提成</td>
<td>
<el-form-item>
<el-input type='text' class="w120" v-model="OtherPrice.OfficeCommissionMoney"
@keyup.native="checkPrice(OtherPrice,'OfficeCommissionMoney')"></el-input>
</el-form-item>
</td>
</tr>
</table>
<div class="CP_ComTitle">机票</div>
<table class="CostPriceTable">
<tr>
<td width='50'>机票</td>
<td>
<el-form-item>
<el-input type='text' class="w120" v-model="OtherPrice.AirTicketMoeny"
@keyup.native="checkPrice(OtherPrice,'AirTicketMoeny')"></el-input>
</el-form-item>
</td>
</tr>
</table>
<div class="CP_ComTitle">收入</div>
<table class="CostPriceTable">
<tr>
<td width='50'>1</td>
<td width='200'>客人小费收入</td>
<td colspan='3'>
<el-form-item>
<el-input type='text' class="w120" v-model="OtherPrice.TripMoney"
@keyup.native="checkPrice(OtherPrice,'TripMoney',true)"></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>2</td>
<td>导游人头费</td>
<td>
<el-form-item>
<el-input type='text' class="w120" v-model="OtherPrice.GuidePeopleMoney"
@keyup.native="checkPrice(OtherPrice,'GuidePeopleMoney')"></el-input>
</el-form-item>
</td>
</tr>
</table>
<div class="CP_ComTitle">团负费</div>
<table class="CostPriceTable">
<tr>
<td width='50'>KB</td>
<td>
<el-form-item>
<el-input type='text' class="w120" v-model="OtherPrice.KBMoney"
@keyup.native="checkPrice(OtherPrice,'KBMoney',true)"></el-input>
</el-form-item>
</td>
</tr>
</table>
<div class="CP_ComTitle">领队分摊部分</div>
<table class="CP_comTable">
<tr>
<td width='200'>人数</td>
<td width="200"></td>
<!-- <td width="150" v-for="item in OfferCostPriceObj.CostNumberList" :key="item.subCode">
{{item.PeopleNumber}}+1
</td> -->
</tr>
<tr>
<td>机票</td>
<td>
<el-form-item>
<el-input type='text' class="w120" v-model="OtherPrice.AirTicketShareMoney"
@keyup.native="checkPrice(OtherPrice,'AirTicketShareMoney')"></el-input>
</el-form-item>
</td>
<!-- <td v-for="item in OfferCostPriceObj.CostNumberList" :key="item.subCode">
{{item.AirTicketMoney}}
</td> -->
</tr>
<tr>
<td>门票</td>
<td>
<el-form-item>
<el-input type='text' class="w120" v-model="OtherPrice.TicketShareMoney"
@keyup.native="checkPrice(OtherPrice,'TicketShareMoney')"></el-input>
</el-form-item>
</td>
<!-- <td v-for="item in OfferCostPriceObj.CostNumberList" :key="item.subCode">
{{item.TicketMoney}}
</td> -->
</tr>
<tr>
<td>单房差</td>
<td>
<el-form-item>
<el-input type='text' class="w120" v-model="OtherPrice.SingleRoomShareMoney"
@keyup.native="checkPrice(OtherPrice,'SingleRoomShareMoney')"></el-input>
</el-form-item>
</td>
<!-- <td v-for="item in OfferCostPriceObj.CostNumberList" :key="item.subCode">
{{item.SingleRoomMoney}}
</td> -->
</tr>
<tr>
<td>内陆段交通</td>
<td>
<el-form-item>
<el-input type='text' class="w120" v-model="OtherPrice.InlandTrafficShareMoney"
@keyup.native="checkPrice(OtherPrice,'InlandTrafficShareMoney')"></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>杂费</td>
<td>
<el-form-item>
<el-input type='text' class="w120" v-model="OtherPrice.OtherShareMoney"
@keyup.native="checkPrice(OtherPrice,'OtherShareMoney')"></el-input>
</el-form-item>
</td>
</tr>
<tr>
<td>小计</td>
<td></td>
</tr>
</table>
<div class="Cost_Line"></div>
<div class="CP_ComTitle Cost_Title">成本统计</div>
<table class="CostPriceTable">
<tr>
<td width='250' rowspan="2" class="CP_comBack">
人数统计
</td>
</tr>
<tr>
</tr>
</table>
</el-form>
</div>
</div>
</template>
<script>
export default {
props: ["postConfig", "OtherPrice", "dayCostPrice","LineList"],
data() {
return {
queryMsg: {
//汇率输入
RateInput: "",
//人数
PeopleNumber: ""
},
checkedPei: [],
currencyTypeArr: [], //币种
LineTeamList:[],//系列列表
}
},
methods: {
//生成行程报价
createDayTripPrice() {
},
//币种下拉获取汇率
getRate(ID) {
this.currencyTypeArr.forEach(x => {
if (x.ID == ID) {
this.queryMsg.RateInput = x.Rate;
}
});
},
//获取所有币种
getAllCurrency() {
this.apipost(
"financeinfo_post_GetList", {},
res => {
if (res.data.resultCode == 1) {
this.currencyTypeArr = res.data.data;
}
},
err => {}
);
},
},
mounted() {
this.getAllCurrency();
},
watch: {
}
};
</script>
<style>
.DQ_copyTopDiv {
width: 373px;
height: 110px;
font-size: 12px;
padding: 15px;
overflow: auto;
background-color: #f5f5f5;
}
.DQ_copyTopDiv::-webkit-scrollbar {
width: 4px;
height: 8px;
}
.DQ_copyTopDiv::-webkit-scrollbar-thumb {
border-radius: 4px;
box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
background: #c9c9c9;
}
.DQ_copyTopDiv::-webkit-scrollbar-track {
box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
border-radius: 4px;
background: #ededed;
}
.DQ_comSpan {
display: inline-block;
width: 40px;
height: 20px;
background-color: #2aaef2;
text-align: center;
line-height: 20px;
color: #fff;
}
.DQ_details {
width: 100%;
margin-top: 10px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.DQ_dateList {
margin-top: 30px;
}
.DQ_rightDate {
float: right;
margin-top: 18px;
font-size: 12px;
}
.DanCheked {
background-color: #2aa872;
color: #fff !important;
}
.DQ_Ulist li {
list-style-type: none;
display: block;
cursor: pointer;
border: 1px solid #f5f5f5;
padding: 3px;
margin-bottom: 10px;
border-radius: 5px;
}
.DQckedLi {
border-color: #2aa872 !important;
}
.DQ_Ulist li {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.DQ_copyBtn {
float: right;
margin: 0 0 0 30px;
}
.DQ_Otcopy {
float: right;
}
.DrightList {
margin-left: 80px;
}
.ScienTicket .el-form-item__content {
margin-left: 0 !important;
}
.EditQuotation {
position: absolute;
color: #e95252;
right: -27px;
top: -18px;
}
</style>
<template>
<div class="DirectQuotation clearfix">
<el-form label-width="100px" ref="currentOfferFrom">
<div class="switchDiv clearfix" style="width:98%;">
<div class="DirectPriceCenter">
<div class="singlePrice clearfix">
<CostPrice ref="CostPrice" :postConfig="postConfig" :OtherPrice="otherPrice"
:dayCostPrice="dayCostPrice" :LineList="LineList"></CostPrice>
</div>
</div>
<div class="DirectRightPrice" style="margin-left:20px;">
<div class="dingjiaDiv">
<span class="TMTitle"><i></i>定价</span>
</div>
<div>
<div class="Dleftname"></div>
<div class="DrightList">
<el-checkbox style="margin-left:25px;" v-model="teamPrice.IsSupportChildren"
:checked="teamPrice.IsSupportChildren===CheckedVaule" :true-label="CheckedVaule"
:false-label="UnCheckedVaule">不支持儿童出游
</el-checkbox>
<el-form-item label="成本人数" style="margin-left:70px;">
<el-select class='w120' v-model='teamPrice.PeopleNumber'>
<el-option :label="$t('pub.unlimitedSel')" :value='0'></el-option>
<!-- <el-option v-for="item in currentOffer.OfferCostPrice.CostNumberList" :label='item.PeopleNumber'
:value='item.PeopleNumber' :key='item.PeopleNumber'>
</el-option> -->
</el-select>
</el-form-item>
</div>
</div>
<div class="clearfix">
<div class="Dleftname">标准</div>
<div class="DrightList">
<el-form-item>
<el-input placeholder="" v-model="teamPrice.B2BMemberPrice"
@keyup.native="checkPrice(teamPrice,'B2BMemberPrice')" class="w200 ComSeat">
<template slot="prepend">同行会员</template>
</el-input>
</el-form-item>
<el-form-item>
<el-input placeholder="" v-model="teamPrice.B2BPrice" @keyup.native="checkPrice(teamPrice,'B2BPrice')"
class="w200 ComSeat">
<template slot="prepend">同行</template>
</el-input>
</el-form-item>
<el-form-item>
<el-input placeholder="" v-model="teamPrice.B2CMemberPrice"
@keyup.native="checkPrice(teamPrice,'B2CMemberPrice')" class="w200 ComSeat">
<template slot="prepend">直客会员</template>
</el-input>
</el-form-item>
<el-form-item>
<el-input placeholder="" v-model="teamPrice.B2CPrice" @keyup.native="checkPrice(teamPrice,'B2CPrice')"
class="w200 ComSeat">
<template slot="prepend">直客</template>
</el-input>
</el-form-item>
<el-form-item>
<el-input placeholder="" v-model="teamPrice.BabyPrice"
@keyup.native="checkInteger(teamPrice,'BabyPrice')" class="w200 ComSeat">
<template slot="prepend">婴儿</template>
</el-input>
</el-form-item>
<el-form-item>
<el-input placeholder="" v-model="teamPrice.SingleDMCPrice"
@keyup.native="checkPrice(teamPrice,'SingleDMCPrice')" class="w200 ComSeat">
<template slot="prepend">单地接</template>
</el-input>
</el-form-item>
</div>
</div>
<div class="clearfix">
<div class="Dleftname">增收</div>
<div class="DrightList">
<el-form-item>
<el-input placeholder="" v-model="teamPrice.ChildNeedPrice"
@keyup.native="checkInteger(teamPrice,'ChildNeedPrice')" class="w200 ComSeat">
<template slot="prepend">儿童占床</template>
</el-input>
</el-form-item>
<el-form-item>
<el-input placeholder="" v-model="teamPrice.BabyChargePrice"
@keyup.native="checkPrice(teamPrice,'BabyChargePrice')" class="w200 ComSeat">
<template slot="prepend">儿童附加费</template>
</el-input>
</el-form-item>
<el-form-item>
<el-input placeholder="" v-model="teamPrice.OldManChargePrice"
@keyup.native="checkInteger(teamPrice,'OldManChargePrice')" class="w200 ComSeat">
<template slot="prepend">老人附加费</template>
</el-input>
</el-form-item>
<el-form-item>
<el-input placeholder="" v-model="teamPrice.VisaPrice" @keyup.native="checkPrice(teamPrice,'VisaPrice')"
class="w200 ComSeat">
<template slot="prepend">签证费</template>
</el-input>
</el-form-item>
<el-form-item>
<el-input placeholder="" v-model="teamPrice.SingleRoomPrice"
@keyup.native="checkPrice(teamPrice,'SingleRoomPrice')" class="w200 ComSeat">
<template slot="prepend">单房差</template>
</el-input>
</el-form-item>
<el-form-item>
<el-input placeholder="" v-model="teamPrice.SafeMoney" @keyup.native="checkPrice(teamPrice,'SafeMoney')"
class="w200 ComSeat">
<template slot="prepend">保险</template>
</el-input>
</el-form-item>
<el-form-item>
<el-input placeholder="" v-model="teamPrice.OtherPrice"
@keyup.native="checkPrice(teamPrice,'OtherPrice')" class="w200 ComSeat">
<template slot="prepend">杂费</template>
</el-input>
</el-form-item>
</div>
</div>
<div class="clearfix">
<div class="Dleftname">减免</div>
<div class="DrightList">
<el-form-item>
<el-input placeholder="" v-model="teamPrice.ChildNoNeedPrice"
@keyup.native="checkInteger(teamPrice,'ChildNoNeedPrice')" class="w200 ComSeat">
<template slot="prepend">儿童不占床</template>
</el-input>
</el-form-item>
<el-form-item style="display:none;">
<el-input placeholder="" v-model="teamPrice.RebatePrice"
@keyup.native="checkPrice(teamPrice,'RebatePrice')" class="w200 ComSeat">
<template slot="prepend">同行返佣</template>
</el-input>
</el-form-item>
<el-form-item style="display:none;">
<el-input placeholder="" v-model="teamPrice.DiscountPrice"
@keyup.native="checkPrice(teamPrice,'DiscountPrice')" class="w200 ComSeat">
<template slot="prepend">早鸟优惠</template>
</el-input>
</el-form-item>
<el-form-item>
<el-input placeholder="" v-model="teamPrice.BackVisaPrice"
@keyup.native="checkPrice(teamPrice,'BackVisaPrice')" class="w200 ComSeat">
<template slot="prepend">退签证费</template>
</el-input>
</el-form-item>
<el-form-item style="display:none">
<el-input placeholder="" v-model="teamPrice.BackSafeMoney"
@keyup.native="checkPrice(teamPrice,'BackSafeMoney')" class="w200 ComSeat">
<template slot="prepend">退保险费</template>
</el-input>
</el-form-item>
</div>
</div>
</div>
</div>
</el-form>
</div>
</template>
<script>
import CostPrice from "../TravelNewQuotation/CostNewPrice";
export default {
props: ["postConfig", "dayCostPrice", "otherPrice", "teamPrice","LineList"],
data() {
return {
CheckedVaule: 2,
UnCheckedVaule: 1,
};
},
methods: {
},
created() {
},
components: {
CostPrice: CostPrice
}
};
</script>
<template>
<div class="DirectQuotation clearfix">
<DirectQuotation ref="QuotationPrice" :postConfig="postData" :dayCostPrice="dayCostPriceList"
:otherPrice="otherPrice" :teamPrice="teamPrice" :LineList="LineList"></DirectQuotation>
<div class="btnFixedDiv">
<div class="toTop">
<i class="iconfont icon-huidaodingbu"></i>
</div>
<div class="DTSaveBtn" :class="{'disClick':!isSubmit}" @click="SaveData(2)">提交</div>
<div class="DTSaveBtn" style="display:none;">复制</div>
<div class="DTSaveBtn caogao" :class="{'disClick':!isSubmit}" @click="SaveData(1)">
<span>保存</span>
<span>草稿</span>
</div>
</div>
</div>
</template>
<script>
import DirectQuotation from "../TravelNewQuotation/DirectNewQuotation";
export default {
data() {
return {
//基本配置
postData: {
ID: 0,
StartCityId: 0,
LineId: 0,
LineteamId: 0,
Title: "",
IsOrder: 1,
IsSubstitution: 1,
IsB2B: 1,
IsB2C: 1,
FSeat: "",
CSeat: "",
YSeat: "",
//最低成团人数
LowNum: "",
//OP备注
OpRemark: "",
//产品经理备注
ProductRecommend: "",
IsDirect: 0, //是否直采(0-否-1-是)【全部默认非直采】
PriceIsDirect: 1, //是否直采报价(1-否-2-是)【全部默认非直采】
PDFAlias: "", //pdf别名
ImgCover: "", //封面图
DayNum: "", //天数
NightNum: "", //晚数
StartCityId: 0,
ReturnArriveCityId: 0, //返回抵达城市
},
dayCostPriceList: [], //报价列表
isSubmit:false,
otherPrice: {
CostId: 0, //主键编号
ConfigID: 0, //配置编号
OfferId: 0, //报价单编号
InlandAirTicketCurrency: 0, //内陆段机位币种
InlandAirTicketMoney: 0, //内陆段机位金额(每人)
InlandShipTicketCurrency: 0, //内陆段船票币种
InlandShipTicketMoney: 0, //内陆段船票金额(每人)
InlandTrainTicketCurrency: 0, //内陆段火车币种
InlandTrainTicketMoney: 0, //内陆段火车金额(每人)
VisaMoney: 0, //签证费用(每人)
SafeMoney: 0, //保险费用(每人)
LeaderTripMoney: 0, //领队小费
DriverGuideMoney: 0, //司机导游小费
SalesCommissionMoney: 0, //销售提成
OfficeCommissionMoney: 0, //作业处提成
TripMoney: 0, //小费
GuidePeopleMoney: 0, //导游人头费
AirTicketMoeny: 0, //机票成本费用
KBMoney: 0, //KB人头费
AirTicketShareMoney: 0, //机票分摊费用
TicketShareMoney: 0, //门票分摊费用,
SingleRoomShareMoney: 0, //单房差分摊费用
InlandTrafficShareMoney: 0, //内陆段交通分摊费用
OtherShareMoney: 0, //杂费分摊费用
CostCurrencyList:[],//选择的币种
CostNumberList:[],//人数
},
//团报价信息
teamPrice:{
QuotationId:0,//主键编号
TeamId:0,//团期编号
ConfigID:0,//团队配置编号
OfferId:0,//报价编号
B2BMemberPrice:0,//同业会员价
B2BPrice:0,//同业价格
B2CMemberPrice:0,//直客会员价,
B2CPrice:0,//直客价格
ChildNeedPrice:0,//小孩占床价格,
ChildNoNeedPrice:0,//小孩不占床价格
BabyPrice:0,//婴儿价格
BabyChargePrice:0,//婴儿附加费
OldManChargePrice:0,//老人附加费
VisaPrice:0,//签证
OtherPrice:0,//杂费
SingleRoomPrice:0,//单房差
SingleDMCPrice:0,//单地接
RebatePrice:0,//同行返佣
DiscountPrice:0,//早鸟优惠
IsSupportChildren:1,//是否支持儿童出游(1-支持,2-不支持)
SafeMoney:0,//保险费
PeopleNumber:0,//人数
AirticketMoney:0,//机票费用
BackVisaPrice:0,//退签证费
BackSafeMoney:0,//退保险费
ContractUrl:"",//合同地址
},
LineList:[],//线路列表
};
},
methods: {
//表单提交
submitForm(type) {
this.$refs["QuotationPrice"].submitForm(type);
},
//保存数据
SaveData() {
this.apipost(
"travel_post_SetConfigOffer_V2", {
config: postData,
dayCostPriceList: dayCostPriceList,
otherPrice: otherPrice,
teamPrice:teamPrice
},
res => {
console.log(res.data);
if (res.data.resultCode == 1) {}
},
err => {}
);
},
getPostData() {
let configId = this.$route.query.configId;
if (configId > 0) {
let msg = {
ID: configId
};
this.apipost(
"travel_get_GetMyTravelInfo_V2",
msg,
res => {
if (res.data.resultCode == 1) {
console.log("res.data.data",res.data);
this.postData = res.data.data;
} else {
this.Error(res.data.message);
}
},
err => {}
);
} else {
let params = {
isNoOffer: false
};
this.$router.push({
name: "quoTation",
params: params
});
}
}
},
created() {
this.getPostData();
},
components: {
DirectQuotation: DirectQuotation
}
};
</script>
<style>
@import "../../../assets/css/newTravelManager.css";
</style>
<template>
<div class="flexOne quoTation">
<div class="query-box">
<ul>
<li>
<span>
<em>所属线路</em>
<el-select v-model="queryData.LineId" class='w200' filterable :placeholder="$t('pub.pleaseSel')" @change="getLineTeamList()">
<el-option :label="$t('pub.unlimitedSel')" :value='noLimit'></el-option>
<el-option v-for="item in LineList" :label='item.LineName' :value='item.LineID' :key='item.LineID'>
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>所属系列</em>
<el-select v-model="queryData.LineteamId" class='w200' filterable :placeholder="$t('pub.pleaseSel')">
<el-option :label="$t('pub.unlimitedSel')" :value='noLimit'></el-option>
<el-option v-for="item in LineTeamList" :label='item.LtName' :value='item.LtID' :key='item.LtID'>
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>报价单状态</em>
<el-select v-model="queryData.TravelState" filterable :placeholder="$t('pub.pleaseSel')">
<el-option :label="$t('pub.unlimitedSel')" :value='noLimit'></el-option>
<el-option v-for='item in TravelStateList' :key="item.Id" :label="item.label" :value="item.Id">
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>开团状态</em>
<el-select v-model="queryData.OpenState" filterable :placeholder="$t('pub.pleaseSel')">
<el-option :label="$t('pub.unlimitedSel')" :value='noLimit'></el-option>
<el-option v-for='item in OpenStateList' :key="item.Id" :label="item.label" :value="item.Id">
</el-option>
</el-select>
</span>
</li>
<li>
<button class="hollowFixedBtn" @click="getList(),resetPageIndex()">查询</button>
<button class="hollowFixedBtn" @click="goMakeQuo('QuotationNewPrice')">新增</button>
</li>
</ul>
</div>
<div class="commonContent" v-loading="loading">
<ul class="_content">
<li v-for="item in dataList" :key="item.subCode" :data-id="item.ID">
<div class="_left">
<div class="QT_Style">
<span v-if="item.IsDirect==1"></span>
<span v-else></span>
</div>
<div>
<p class="quoListName" @click="getJourney(item.ID,item.Title)">
<el-tooltip popper-class="max-w250" effect="dark" :content="item.Title" placement="top-start">
<span>{{item.Title}}</span>
</el-tooltip>
</p>
<p class="Quo_Content"><i v-if="item.ProductRecommend" class="iconfont icon-richeng"></i>
<span>{{item.ProductRecommend}}</span>
</p>
</div>
</div>
<div class="_cent">
<div class="stayDays">{{item.DayNum}}{{item.NightNum}}</div>
<div class="">
销售定价
<el-popover popper-class="salsSetPrice" trigger="click">
<div class="priceContentDiv">
<div v-for="salesItem in SalesPriceList">
<div>成人</div>
<div class="priceList">
<div>
<span class="pLeftPrice">同业会员:¥{{salesItem.B2BMemberPrice}}</span>
<span class="pRightPrice">同业:¥{{salesItem.B2BPrice}}</span>
</div>
<div class="priceDivCon">
<span class="pLeftPrice">直客会员:¥{{salesItem.B2CMemberPrice}}</span>
<span class="pRightPrice">直客:¥{{salesItem.B2CPrice}}</span>
</div>
</div>
<div>小孩</div>
<div class="priceList">
<div>
<span class="pLeftPrice">占床:¥{{salesItem.ChildNeedPrice}}</span>
<span class="pRightPrice">不占床:¥{{salesItem.ChildNoNeedPrice}}</span>
</div>
<div class="priceDivCon">
<span class="pLeftPrice">婴儿:¥{{salesItem.BabyPrice}}</span>
<span class="pRightPrice">附加费:¥{{salesItem.BabyChargePrice}}</span>
</div>
</div>
<div>老人</div>
<div class="priceList">
<div>
<span class="pLeftPrice">附加费:¥{{salesItem.OldManChargePrice}}</span>
</div>
</div>
<div>杂费</div>
<div class="priceList">
<div>
<span class="pLeftPrice">签证:¥{{salesItem.VisaPrice}}</span>
<span class="pRightPrice">单房差:¥{{salesItem.SingleRoomPrice}}</span>
</div>
<div class="priceDivCon">
<span class="pLeftPrice">杂费:¥{{salesItem.OtherPrice}}</span>
</div>
</div>
<div>单项报价</div>
<div class="priceList">
<div>
<span class="pLeftPrice">单地接:¥{{salesItem.SingleDMCPrice}}</span>
</div>
</div>
<div>优惠</div>
<div class="priceList">
<div>
<span class="pLeftPrice">同行返佣:¥{{salesItem.RebatePrice}}</span>
<span class="pRightPrice">早鸟优惠:¥{{salesItem.DiscountPrice}}</span>
</div>
</div>
</div>
</div>
<span slot="reference" class="diPrice" @click="getSalsPrice(item.ID)">{{item.SalesPrice}}<span class="qi"></span></span>
</el-popover>
</div>
<div class="QT_CodeNum">
编号:{{item.ID}}
</div>
</div>
<div class="_right">
<div class="AuditUserInfo clearfix aa">
<div class="AuditDanHeader">
<img v-if="item.CreateUserPhoto" :src="item.CreateUserPhoto" alt="">
<img v-else src="../../../assets/img/default_head_img.jpg" alt="">
</div>
<div class="AU_creatName">
<div>{{item.CreateUserName}}</div>
</div>
</div>
<div>
<span>报价单状态</span>
<span v-if="item.TravelState==1">草稿</span>
<span v-else-if="item.TravelState==2">待审核</span>
<span v-else-if="item.TravelState==3">审核通过</span>
<span v-else-if="item.TravelState==4">审核拒绝</span>
<span v-else-if="item.TravelState==5">已撤销</span>
</div>
<div>
<span v-if="item.TravelState==2" class="retract opbd" @click="revokeInfo(item.ID)">
<el-tooltip class="item" effect="dark" content="待审核" placement="top-start" popper-class="max-w250">
<i class="iconfont icon-chehui"></i>
</el-tooltip>
</span>
<span class="openGroup opbd" v-if="item.TravelState==3&&item.OpenState==2" @click="goToOpenTravel('TravelManager',item.ID,item.OpenState)">
</span>
<span class="openGroup opbd" v-if="item.TravelState==3&&item.OpenState==2">
<el-tooltip class="item" effect="dark" content="查看报价单" placement="top-start" popper-class="max-w250">
<span @click="goSubInfo('QuotationDetails',item.ID)"></span>
</el-tooltip>
</span>
<span class="openGroup opbd" v-if="item.TravelState==5" @click="changeState(item.ID)">
<el-tooltip class="item" effect="dark" content="提交审核" placement="top-start" popper-class="max-w250">
<i class="iconfont icon-img_bdsc"></i>
</el-tooltip>
</span>
<span class="bianji opbd" @click="goUrl('MakeQuotation',item.ID,false)" v-if="item.TravelState==4||item.TravelState==1||item.TravelState==5">
<el-tooltip class="item" effect="dark" content="修改" placement="top-start" popper-class="max-w250">
<i class="iconfont icon-bianji-smal"></i>
</el-tooltip>
</span>
<span class="openGroup opbd" @click="goUrl('MakeQuotation',item.ID,true)">
<el-tooltip class="item" effect="dark" content="复制" placement="top-start" popper-class="max-w250">
<i class="iconfont icon-copy"></i>
</el-tooltip>
</span>
<span class="openGroup opbd" @click="goUrlBo('CoastCountPage')">
<el-tooltip class="item" effect="dark" content="报价单" placement="top-start" popper-class="max-w250">
<i class="iconfont icon-web-icon-"></i>
</el-tooltip>
</span>
<span class="QT-delete opbd" @click="delQuotation(item.ID)" v-if="item.TravelState==4||item.TravelState==1||item.TravelState==5">
<el-tooltip class="item" effect="dark" content="删除" placement="top-start" popper-class="max-w250">
<i class="iconfont icon-shanchu"></i>
</el-tooltip>
</span>
</div>
</div>
</li>
</ul>
<div class="noData" v-show="noData">
{{$t('system.content_noData')}}
</div>
</div>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="queryData.currentPage" layout="total,prev, pager, next, jumper"
:page-size="queryData.pageSize" :total="queryData.total">
</el-pagination>
<el-dialog custom-class='ComTeamPlan_info_box' :title="tripTitle" :visible.sync="outerVisible" center>
<commonTeamInfo ref="comDialog"></commonTeamInfo>
</el-dialog>
</div>
</template>
<script>
import commonTeamInfo from "../../commonPage/commonTeamInfo.vue";
export default {
data() {
return {
queryData: {
LineId: 0,
LineteamId: 0,
TravelState: 0,
OpenState: 0,
PageIndex: 1,
PageSize: 10,
total: 0,
currentPage: 1
},
loading: true,
//报价单状态
TravelStateList: [{
Id: 1,
label: "草稿"
},
{
Id: 2,
label: "待审核"
},
{
Id: 3,
label: "审核通过"
},
{
Id: 4,
label: "审核拒绝"
},
{
Id: 5,
label: "已撤销"
}
],
//开团状态
OpenStateList: [{
Id: 1,
label: "已开团"
},
{
Id: 2,
label: "未开团"
}
],
//线路列表
LineList: "",
noLimit: 0,
//系列列表
LineTeamList: "",
//是否有数据
noData: false,
dataList: "",
SalesPriceList: [],
CostList: [],
outerVisible: false,
tripTitle: ""
};
},
components: {
commonTeamInfo: commonTeamInfo
},
methods: {
handleCurrentChange(val) {
this.queryData.pageIndex = val;
this.getList();
},
resetPageIndex() {
this.queryData.pageIndex = 1;
this.queryData.currentPage = 1;
},
//获取线路列表
getLineList() {
this.apipost("line_post_GetList", {}, res => {
if (res.data.resultCode == 1) {
this.LineList = res.data.data;
}
});
},
//获取系列列表
getLineTeamList() {
this.queryData.LineteamId = 0;
let msg = {
lineID: this.queryData.LineId,
isTOOP: 1
};
this.apipost("team_post_GetList", msg, res => {
if (res.data.resultCode == 1) {
this.LineTeamList = res.data.data;
}
});
},
//初始化表格数据
getList() {
this.loading = true;
this.apipost("travel_get_GetTravelOfferPageList", this.queryData, res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.queryData.total = res.data.data.count;
this.noData = !this.queryData.total > 0;
this.dataList = res.data.data.pageData;
}
});
},
//点击销售定价获取数据
getSalsPrice(ID) {
this.SalesPriceList = [];
this.apipost(
"travel_get_GetTravelQuotationPrice", {
ID: ID
},
res => {
if (res.data.resultCode == 1) {
this.SalesPriceList = res.data.data;
}
}
);
},
//点击地接成本获取数据
getCostPrice(ID) {
this.CostList = [];
this.apipost(
"travel_get_GetTravelOfferPrice", {
ID: ID
},
res => {
if (res.data.resultCode == 1) {
if (res.data.data[0] != undefined || res.data.data[0] != null) {
let cost = res.data.data[0];
let dayNum = 0;
cost.LocalOfferPriceList.forEach(x => {
if (x.DayNum > dayNum) {
dayNum = x.DayNum;
}
});
let offerPriceList = [];
for (let i = 1; i <= dayNum; i++) {
let dayOfferPriceList = [];
let totalPrice = 0;
cost.LocalOfferPriceList.forEach(x => {
if (x.DayNum == i) {
dayOfferPriceList.push(x);
totalPrice += x.OfferPrice;
}
});
let offerPrice = {
day: i,
dayOfferPriceList,
totalPrice
};
offerPriceList.push(offerPrice);
}
cost["offerPriceList"] = offerPriceList;
this.CostList.push(cost);
}
}
}
);
},
//撤回
revokeInfo(ID) {
let msg = {
ID: ID,
TravelState: 5
};
this.apipost("travel_post_UpdateTravelState", msg, res => {
if (res.data.resultCode == 1) {
this.Success(res.data.message);
this.getList();
}
});
},
//修改状态
changeState(ID) {
let msg = {
ID: ID,
TravelState: 2
};
this.apipost("travel_post_UpdateTravelState", msg, res => {
if (res.data.resultCode == 1) {
this.Success(res.data.message);
this.getList();
}
});
},
//删除报价单
delQuotation(ID) {
var that = this;
this.Confirm("删除过后数据不能恢复,请谨慎操作", function () {
let msg = {
ID: ID,
};
that.apipost(
"travel_post_RemoveConfig",
msg,
res => {
if (res.data.resultCode == 1) {
that.Success("删除成功");
that.getList();
} else {
that.Error(res.data.message);
}
},
null
);
});
},
getJourney(id, title) {
//根据ID 获取行程内容
var that = this;
this.tripTitle = title;
this.$nextTick(() => {
that.$refs.comDialog.GetTrip(id);
});
that.outerVisible = true;
},
goUrl(path, configId, isCopy) {
if (configId > 0) {
this.$router.push({
name: path,
query: {
configId: configId,
isCopy: isCopy
}
});
} else {
this.$router.push({
name: path
});
}
},
goUrlBo(path) {
this.$router.push({
path: path,
query: {
blank:'y',
tab:'报价单'
}
});
},
goMakeQuo(path) {
this.$router.push({
path: path,
query: {
configId: 4288,
blank:'y',
tab:'报价单'
}
});
},
goSubInfo(path, configId) {
this.$store.commit("pageConditionUpdate", this.queryData);
this.$router.push({
path: path,
query: {
configId: configId
}
});
},
//开团或修改
goToOpenTravel(path, configId, openState) {
if (configId > 0) {
this.$router.push({
name: path,
query: {
configId: configId,
openState: openState
}
});
} else {
this.$router.push({
name: path
});
}
}
},
mounted() {
this.getLineList();
this.getList();
let isNoOffer = this.$route.params.isNoOffer;
if (isNoOffer) {
this.Warning("行程中含有未完善的报价信息,请在需求中心查看!");
}
},
created() {
if (this.$route.query.hasOwnProperty("cache")) {
if (this.$store.state.pageCondition != null) {
this.queryData = this.$store.state.pageCondition;
}
}
this.getList();
}
};
</script>
......@@ -48,6 +48,7 @@
</li>
<li>
<button class="hollowFixedBtn" @click="getList(),resetPageIndex()">查询</button>
<button class="hollowFixedBtn" @click="goMakeQuo('MakeQuotation')">新增</button>
</li>
</ul>
</div>
......@@ -455,6 +456,15 @@
}
});
},
goMakeQuo(path) {
this.$router.push({
path: path,
query: {
blank:'y',
tab:'报价单'
}
});
},
goSubInfo(path, configId) {
this.$store.commit("pageConditionUpdate", this.queryData);
......
......@@ -36,11 +36,15 @@
<table v-if='this.signInDates.length>=1' class="att_table" cellspacing="0" cellpadding="0">
<tr>
<th>日期</th>
<th>部门</th>
<th>员工</th>
<th>考勤时间</th>
<th width="80">操作</th>
</tr>
<tr v-for="(item,index) in signInDates">
<td>{{item.Date}}</td>
<td>{{item.DepartmentName}}</td>
<td>{{item.EmployeeName}}</td>
<td>{{item.BeOnDutyTime}}~{{item.OffDutyTime}}</td>
<td>
<el-row>
......@@ -180,8 +184,31 @@
</el-time-select>
</td>
</tr>
<tr>
<td>
<span>部门</span>
<el-select filterable v-model='newSignIn.RB_Department_Id' @change='getEmployee(newSignIn.RB_Department_Id)'>
<el-option v-for='item in departmentList'
:label='item.DepartmentName'
:value='item.DepartmentID'
:key='item.DepartmentID'>
</el-option>
</el-select>
</td>
</tr>
<tr>
<td>
<span>员工</span>
<el-select filterable v-model='newSignIn.EmployeeId' @change="getEmployeeName(newSignIn.EmployeeId)">
<el-option v-for='item in employeeList'
:label='item.name'
:value='item.empId'
:key='item.empId'>
</el-option>
</el-select>
</td>
</tr>
</table>
<table class="layerTable" v-if='this.signDateType==2'>
<tr>
<td>
......@@ -384,9 +411,51 @@
awList: [], //Name,Address,TargetAddress,Scope awList:[{'Name':'xxx',Address:'xxx',TargetAddress:'xxx',Scope:'xxx'},{}]
awWifiList: [] //awWifiList:[{'Name':'xxxx',TargetAddress:'12.51.42.32'}]
},
departmentMsg: {
RB_Group_Id: '0',
RB_Branch_Id:'0',
Status:'0',
ParentId:'-1',
Tier:'0',
},
employeeMsg: {
RB_Group_id:'0',
RB_Branch_id:'-1',
departmentId:'0',
IsLeave:'-1',
},
departmentList: [],
employeeList: [],
}
},
methods: {
getEmployeeName(id){
this.employeeList.map(x=>{
if (id == x.empId) {
this.newSignIn.EmployeeName = x.name
}
})
},
getEmployee(id) {
this.employeeMsg.departmentId = id
this.apipost('app_get_company_employee', this.employeeMsg, res => {
if(res.data.resultCode == 1) {
this.employeeList = res.data.data;
}
}, err => {})
this.departmentList.map(x=>{
if (id == x.DepartmentID) {
this.newSignIn.DepartmentName = x.DepartmentName
}
})
},
getDepartment() {
this.apipost('admin_get_DepartmentGetList', this.departmentMsg, res => {
if(res.data.resultCode == 1) {
this.departmentList = res.data.data;
}
}, err => {})
},
getDateArr() {
if (this.fwStartTime != '' && this.fwEndTime != '') {
this.apipost('User_get_AttendanceGetTimeSpanValue', {
......@@ -462,7 +531,9 @@
this.newSignIn = {
'Date': '',
'BeOnDutyTime': '',
'OffDutyTime': ''
'OffDutyTime': '',
RB_Department_Id: '',
EmployeeId: '',
};
this.outerVisible = true;
this.signDateType = 1;
......@@ -499,10 +570,20 @@
},
saveSignIn() {
let list = [...this.signInDates, ...this.signOutDates]
if (this.newSignIn.RB_Department_Id == '') {
this.newSignIn.RB_Department_Id = 0
}
if (this.newSignIn.EmployeeId == '') {
this.newSignIn.EmployeeId = 0
}
if (this.picked == 'one') { // 单天设置
this.isRepetition = false;
this.SpecialDates.forEach(item => {
if (this.newSignIn.Date == item) {
list.forEach(item => {
if (this.newSignIn.Date == item.Date && (this.newSignIn.RB_Department_Id == item.RB_Department_Id || this.newSignIn.RB_Department_Id == 0) &&
(this.newSignIn.EmployeeId == item.EmployeeId || this.newSignIn.EmployeeId == 0)) {
this.isRepetition = true;
} else if (this.newSignIn.Date == item.Date) {
this.isRepetition = true;
}
})
......@@ -561,10 +642,14 @@
this.outerVisible = true;
},
saveSignOut() {
let list = [...this.signInDates, ...this.signOutDates]
if (this.picked1 == 'one') { // 单天设置
this.isRepetition = false;
this.SpecialDates.forEach(item => {
if (this.newSignOut.Date == item) {
list.forEach(item => {
if (this.newSignIn.Date == item.Date && (this.newSignIn.RB_Department_Id == item.RB_Department_Id || this.newSignIn.RB_Department_Id == 0) &&
(this.newSignIn.EmployeeId == item.EmployeeId || this.newSignIn.EmployeeId == 0)) {
this.isRepetition = true;
} else if (this.newSignIn.Date == item.Date) {
this.isRepetition = true;
}
})
......@@ -784,7 +869,10 @@
},
},
mounted() {
this.addMsg.RB_BranchId = this.$route.query.bId;
let userInfo = this.getLocalStorage();
this.departmentMsg.RB_Group_Id = this.employeeMsg.RB_Group_id = userInfo.RB_Group_id; //集团
this.addMsg.RB_BranchId = this.departmentMsg.RB_Branch_Id = this.$route.query.bId;
this.getDepartment()
if (this.$route.query.id != undefined) {
this.addMsg.attendanceId = this.$route.query.id;
this.getUpdateList();
......
......@@ -6,7 +6,7 @@
<li>
<span>
<em>团号</em>
<el-input v-model="msg.TCID"></el-input>
<el-input v-model="msg.TCNUM"></el-input>
</span>
</li>
<li>
......@@ -111,7 +111,7 @@
center
:before-close="closeDialog">
<div class="main NewSurveyList">
<el-select filterable v-model="GuestId" value-key="LineID" >
<el-select filterable v-model="GuestId" value-key="LineID" @change="getOrderID(GuestId)">
<el-option v-for="item in ppList" :label='item.GuestName' :value='item.GuestId' :key='item.GuestId'></el-option>
</el-select>
<div class="">
......@@ -190,7 +190,7 @@ export default {
msg:{
pageSize:10,
pageIndex:1,
TCID: '',
TCNUM: '',
lineID:0,
LineteamId:0,
reStartDate:'',
......@@ -235,10 +235,18 @@ export default {
this.GetSurveyShowList();
},
methods:{
getOrderID(id){
this.ppList.map(x=>{
if (id === x.GuestId){
this.OrderID = x.OrderID;
}
})
},
setInfo(obj){
console.log(obj)
if (obj.number < 1) {
return this.$message.error('此团已完成意见调查!')
}
this.TCID = obj.tcid;
this.OrderID = obj.orderId;
this.DiaoChaShow = true;
this.getppList();
},
......
......@@ -1698,12 +1698,13 @@ export default {
}
},
LogSetReadStatus(s) {
console.log(s)
this.apipost(
"SystemLog_post_LogSetReadStatus",
{ LogId: s.ID },
r => {
if (s.Link) {
this.goUrl(s.Link);
this.goUrl(s.Link + '&MsgUrl=1');
}
this.IM_bodyIsShow = false;
this.refreshSysNoteDate();
......
......@@ -2199,7 +2199,16 @@ export default {
meta: {
title: '报价单'
},
}, { // 销售 任务管理
},
{
path: '/newQuotation',
name: 'newQuotation',
component: resolve => require(['@/components/TravelManager/TravelNewQuotation/newQuotation'], resolve),
meta: {
title: '报价单'
},
},
{ // 销售 任务管理
path: '/saleTaskManagement',
name: 'saleTaskManagement',
component: resolve => require(['@/components/SalesModule/saleTaskManagement'], resolve),
......@@ -2669,6 +2678,14 @@ export default {
title: '制作报价单'
},
},
{ //新版制作报价单
path: '/QuotationNewPrice',
name: 'QuotationNewPrice',
component: resolve => require(['@/components/TravelManager/TravelNewQuotation/QuotationNewPrice'], resolve),
meta: {
title: '制作报价单'
},
},
{ //团控-我的机票
path: '/TravelMyTicket',
name: 'TravelMyTicket',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment