Commit 3c555ae2 authored by huangyuanyuan's avatar huangyuanyuan
parents 53918b86 6e9e0381
...@@ -192,6 +192,7 @@ ...@@ -192,6 +192,7 @@
overflow: hidden; overflow: hidden;
} }
.trip-block .block-item .item .up img{ .trip-block .block-item .item .up img{
width: 490px;
/* width: 100%; */ /* width: 100%; */
/* zk新增 */ /* zk新增 */
position: relative; position: relative;
......
...@@ -799,13 +799,16 @@ export default { ...@@ -799,13 +799,16 @@ export default {
var zhifu=[]; var zhifu=[];
wechat = OcrStr.match(/商户单号.\d+/); wechat = OcrStr.match(/商户单号.\d+/);
zhifu = OcrStr.match(/商家可扫码退款或查询交易.\d+/); zhifu = OcrStr.match(/商家可扫码退款或查询交易.\d+/);
if(wechat==null&&zhifu==null){ let barcode=x.data.Barcode;
if(wechat==null&&zhifu==null&&barcode==""){
return; return;
} }
if(zhifu==null&&wechat.length>0){ if(zhifu==null&&wechat!=null&&wechat.length>20){
this.setCode = wechat[wechat.length-1].replace('商户单号',''); this.setCode = wechat[wechat.length-1].replace('商户单号','');
}else if(wechat==null&&zhifu.length>0){ }else if(wechat==null&&zhifu!=null&&zhifu.length>20){
this.setCode = zhifu[zhifu.length-1].replace('商家可扫码退款或查询交易',''); this.setCode = zhifu[zhifu.length-1].replace('商家可扫码退款或查询交易','');
}else if(barcode!=""){
this.setCode=barcode;
} }
this.$confirm('匹配到交易流水号是否替换?', '提示', { this.$confirm('匹配到交易流水号是否替换?', '提示', {
confirmButtonText: '确定', confirmButtonText: '确定',
......
...@@ -150,7 +150,7 @@ ...@@ -150,7 +150,7 @@
</li> </li>
</ul> </ul>
</div> </div>
<table class="singeRowTable" style="border:1px solid #E6E6E6;" cellspacing="0" cellpadding="0" v-loading="loading"> <table class="singeRowTable" style="border:1px solid #E6E6E6;" cellspacing="0" cellpadding="0">
<tr> <tr>
<th width="180">团号</th> <th width="180">团号</th>
<th>订单号</th> <th>订单号</th>
...@@ -191,7 +191,7 @@ ...@@ -191,7 +191,7 @@
</el-tooltip> </el-tooltip>
</td> </td>
</tr> </tr>
<tr v-for="(item2, index2) in item.InvoiceApplyList" :key="index2" v-if="index2!==0"> <tr v-for="(item2, index2) in item.InvoiceApplyList" v-if="index2!==0">
<td>{{item2.CreateDate.replace('T', ' ')}}</td> <td>{{item2.CreateDate.replace('T', ' ')}}</td>
<td> <td>
<span v-if="item2.InvoiceApplyState === 1" class="status_Application">申请中</span> <span v-if="item2.InvoiceApplyState === 1" class="status_Application">申请中</span>
...@@ -293,11 +293,12 @@ export default { ...@@ -293,11 +293,12 @@ export default {
this.msg.OrderId = 0 this.msg.OrderId = 0
} }
this.apipost('InvoiceApply_get_GetGroupByInvoiceApplyList', this.msg, res=>{ this.apipost('InvoiceApply_get_GetGroupByInvoiceApplyList', this.msg, res=>{
this.loading = false
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
this.total = res.data.data.count; this.total = res.data.data.count;
this.dataList = res.data.data.pageData this.dataList = res.data.data.pageData
} }
this.loading = false
if (this.msg.OrderId === 0) { if (this.msg.OrderId === 0) {
this.msg.OrderId = '' this.msg.OrderId = ''
} }
......
...@@ -288,6 +288,7 @@ export default { ...@@ -288,6 +288,7 @@ export default {
CustomerId: 0, CustomerId: 0,
IsDefaultInfo: 1, IsDefaultInfo: 1,
ApplyPics: [], ApplyPics: [],
ID: 0,
}, },
DepartName: "", DepartName: "",
emName: "", emName: "",
...@@ -313,7 +314,7 @@ export default { ...@@ -313,7 +314,7 @@ export default {
this.$viewer = viewer this.$viewer = viewer
}, },
showImg(src){ showImg(src){
src = this.domainManager().ViittoFileUrl + src; src = src.indexOf('http') != -1 ? src : this.domainManager().ViittoFileUrl + src;
let isExsit=false let isExsit=false
this.images.forEach(x=>{ this.images.forEach(x=>{
if(x==src) if(x==src)
...@@ -468,7 +469,34 @@ export default { ...@@ -468,7 +469,34 @@ export default {
}, },
null null
); );
} },
getDetail: function (id) { // 获取详情
this.apipost('InvoiceApply_get_GetDetails', {ID: id}, res=>{
if (res.data.resultCode == 1) {
let detail = res.data.data
console.log(detail)
this.isChang = 2
this.msg.DutyParagraph = detail.DutyParagraph;
this.msg.CompanyName = detail.CompanyName;
this.msg.Address = detail.Address;
this.msg.BankNo = detail.BankNo;
this.msg.CompanyPhone = detail.CompanyPhone;
this.msg.OpeningBank = detail.OpeningBank;
this.msg.ApplyMoney = detail.ApplyMoney;
if(detail.ApplyPics && detail.ApplyPics.length>0){
detail.ApplyPics.forEach(x=>{
this.saveMsg.push({
Content: x.Url,
Type: x.Type,
Url: x.Url
});
})
}
this.getOrderDetail();
}
this.loading = false
}, null)
},
}, },
mounted() { mounted() {
let userInfo = this.getLocalStorage(); let userInfo = this.getLocalStorage();
...@@ -480,6 +508,10 @@ export default { ...@@ -480,6 +508,10 @@ export default {
this.getAccountList(); this.getAccountList();
this.getOrderDetail(); this.getOrderDetail();
this.getCustomerInvoiceList(); this.getCustomerInvoiceList();
if (this.$route.query.edit) {
this.msg.ID = this.$route.query.id
this.getDetail(this.$route.query.id)
}
} }
}; };
</script> </script>
...@@ -346,6 +346,9 @@ ...@@ -346,6 +346,9 @@
</div> </div>
</el-dialog> </el-dialog>
<div style="padding:20px 0"> <div style="padding:20px 0">
<el-row v-if="detail.InvoiceApplyState === 4">
拒绝说明:{{detail.RefuseRemarks}}
</el-row>
<el-row v-if="detail.InvoiceNo"> <el-row v-if="detail.InvoiceNo">
{{$t('ios.shuihao2')}}{{detail.InvoiceNo}} {{$t('ios.shuihao2')}}{{detail.InvoiceNo}}
</el-row> </el-row>
...@@ -358,6 +361,8 @@ ...@@ -358,6 +361,8 @@
<button class="normalBtn" @click="setStatus(2)">{{$t('pub.cancelBtn')}}</button> <button class="normalBtn" @click="setStatus(2)">{{$t('pub.cancelBtn')}}</button>
</div> </div>
<div class="imd_img_box"> <div class="imd_img_box">
<!-- v-show="EmployeeId === detail.CreateById && detail.InvoiceApplyState === 4" -->
<button class="normalBtn" v-show="EmployeeId === detail.CreateById && detail.InvoiceApplyState === 4" @click="goEdit()">修改</button>
<div class="_fujian_box" > <div class="_fujian_box" >
<div v-if="detail.ApplyPics&&detail.ApplyPics.length>0"> <div v-if="detail.ApplyPics&&detail.ApplyPics.length>0">
<div class="_fujian_zhankai cursorpointer" v-if="!fujianShow" @click="fujianShow = true"> <div class="_fujian_zhankai cursorpointer" v-if="!fujianShow" @click="fujianShow = true">
...@@ -388,7 +393,7 @@ ...@@ -388,7 +393,7 @@
</div> </div>
</div> </div>
</div> </div>
<div v-else-if="!detail.ApplyPics && EmployeeId === detail.CreateBy"> <div v-else-if="!detail.ApplyPics && EmployeeId === detail.CreateById">
<div class="_addUpload_box _addUpload_box_btm clearfix" > <div class="_addUpload_box _addUpload_box_btm clearfix" >
<template v-for="(file,fIndex) in saveMsg"> <template v-for="(file,fIndex) in saveMsg">
<div v-if="file.Type==3"> <div v-if="file.Type==3">
...@@ -417,7 +422,7 @@ ...@@ -417,7 +422,7 @@
</div> </div>
<div class="shangchuanfujian"><button class="hollowFixedBtn" @click="upLoadFuJian">上传附件</button></div> <div class="shangchuanfujian"><button class="hollowFixedBtn" @click="upLoadFuJian">上传附件</button></div>
</div> </div>
</div> </div>
<div class="querenhan"> <div class="querenhan">
<p >确认函</p> <p >确认函</p>
<div style="width:100%;" > <div style="width:100%;" >
...@@ -483,6 +488,10 @@ export default { ...@@ -483,6 +488,10 @@ export default {
}; };
}, },
methods: { methods: {
// 修改
goEdit: function () {
this.$router.push({ name: 'invoicesManagerAdd', query:{id: this.detail.ID, OrderId: this.detail.OrderId, TCID: this.detail.TCID, CustomerId: this.detail.CustomerId, edit: 1, blank:'y', tab:'修改发票单据'} })
},
uploadFileBtn(file) { //上传 uploadFileBtn(file) { //上传
if(file.file.size > 1024 * 1024 * 10) { if(file.file.size > 1024 * 1024 * 10) {
this.$message.warning('文件大小不能超过10M!') this.$message.warning('文件大小不能超过10M!')
......
...@@ -92,7 +92,7 @@ ...@@ -92,7 +92,7 @@
</div> </div>
<div class="el-col"> <div class="el-col">
<div class="d7"> <div class="d7">
<el-button v-if="item.CreateBy==CurrentUserId" @click="goToOpenTravel('TravelManager3',item.ID)" type="primary">行程修改</el-button> <el-button v-if="item.CreateBy==CurrentUserId" @click="goToOpenTravel('TravelManager5',item.ID)" type="primary">行程修改</el-button>
<el-button @click="copyTravelInfo(item.ID)" type="primary">行程复制</el-button> <el-button @click="copyTravelInfo(item.ID)" type="primary">行程复制</el-button>
<el-button v-if="item.TCNUMS==''&&item.CreateBy==CurrentUserId" @click="delConfig(item.ID)" type="primary">删除</el-button> <el-button v-if="item.TCNUMS==''&&item.CreateBy==CurrentUserId" @click="delConfig(item.ID)" type="primary">删除</el-button>
</div> </div>
......
...@@ -102,7 +102,7 @@ ...@@ -102,7 +102,7 @@
} }
.Team_Incontent { .Team_Incontent {
margin-left:35px; margin-left: 35px;
} }
.Team_firstTitle span { .Team_firstTitle span {
...@@ -224,13 +224,13 @@ ...@@ -224,13 +224,13 @@
</div> </div>
<div class="Team_Incontent" style="height:80px;overflow:auto;"> <div class="Team_Incontent" style="height:80px;overflow:auto;">
<div> <div>
<div>&nbsp;&nbsp;&nbsp;</div> <div>&nbsp;&nbsp;&nbsp;</div>
<div style="margin-bottom:6px;"> <div style="margin-bottom:6px;">
<template v-for="subItem in DataList.ExpectedCutList"> <template v-for="subItem in DataList.ExpectedCutList">
<div style="margin-bottom:10px;">{{subItem.BranchName}}{{subItem.expectedCut}} </div> <div style="margin-bottom:10px;">{{subItem.BranchName}}{{subItem.expectedCut}} </div>
</template> </template>
</div> </div>
</div> </div>
<div>联运成本<span>¥{{DataList.LYCB}}</span></div> <div>联运成本<span>¥{{DataList.LYCB}}</span></div>
</div> </div>
<div class="Team_firstTitle"> <div class="Team_firstTitle">
...@@ -263,8 +263,10 @@ ...@@ -263,8 +263,10 @@
<div class="Team_collection" v-loading="loading"> <div class="Team_collection" v-loading="loading">
<div class="clearfix TB_PrintDiv"> <div class="clearfix TB_PrintDiv">
<div class="TB_comtitle TB-Title">收入</div> <div class="TB_comtitle TB-Title">收入</div>
<input type="button" value="新增" class="hollowFixedBtn TeamAddBtn" v-show="ishowBtn" <template v-if="IsHaveAuth">
<input type="button" value="新增" class="hollowFixedBtn TeamAddBtn" v-show="ishowBtn"
@click="AddIncomeDetail" /> @click="AddIncomeDetail" />
</template>
</div> </div>
<div class="clearfix TB_PrintDiv"> <div class="clearfix TB_PrintDiv">
<div class="TB_comtitle TB-Title">团费收入: <div class="TB_comtitle TB-Title">团费收入:
...@@ -575,7 +577,9 @@ ...@@ -575,7 +577,9 @@
<div class="Team_collection" v-loading="loading"> <div class="Team_collection" v-loading="loading">
<div class="clearfix TB_PrintDiv"> <div class="clearfix TB_PrintDiv">
<div class="TB_comtitle TB-Title">成本</div> <div class="TB_comtitle TB-Title">成本</div>
<input type="button" value="新增" class="hollowFixedBtn TeamAddBtn" v-show="ishowBtn" @click="AddOutDetail" /> <template v-if="IsHaveAuth">
<input type="button" value="新增" class="hollowFixedBtn TeamAddBtn" v-show="ishowBtn" @click="AddOutDetail" />
</template>
</div> </div>
<div class="clearfix TB_PrintDiv"> <div class="clearfix TB_PrintDiv">
<div class="TB_comtitle TB-Title">邀请函: <div class="TB_comtitle TB-Title">邀请函:
...@@ -1057,7 +1061,10 @@ ...@@ -1057,7 +1061,10 @@
<div class="Team_collection" v-loading="loading"> <div class="Team_collection" v-loading="loading">
<div class="clearfix TB_PrintDiv"> <div class="clearfix TB_PrintDiv">
<div class="TB_comtitle TB-Title">非成本</div> <div class="TB_comtitle TB-Title">非成本</div>
<input type="button" value="新增" class="hollowFixedBtn TeamAddBtn" v-show="ishowBtn" @click="AddOutDetail" /> <template v-if="IsHaveAuth">
<input type="button" value="新增" class="hollowFixedBtn TeamAddBtn" v-show="ishowBtn" @click="AddOutDetail" />
</template>
</div> </div>
<div class="clearfix TB_PrintDiv"> <div class="clearfix TB_PrintDiv">
<div class="TB_comtitle TB-Title">领队佣金: <div class="TB_comtitle TB-Title">领队佣金:
...@@ -1261,12 +1268,12 @@ ...@@ -1261,12 +1268,12 @@
</table> </table>
</div> </div>
</div> </div>
<div class="Team_BtnList"> <div class="Team_BtnList" v-if="IsHaveAuth">
<input type="button" @click="zhaunBox" value="单据转团" class="hollowFixedBtn" /> <input type="button" @click="zhaunBox" value="单据转团" class="hollowFixedBtn" />
<input type="button" v-if="!CloseIncomeBtn" @click="UpdateBrakeAccountStatus" <input type="button" v-if="!CloseIncomeBtn" @click="UpdateBrakeAccountStatus"
:value="(DataList&&DataList.TeamBalance&&DataList.TeamBalance.BrakeAccountStatus === 0) ? '关闭收支操作' : '开启收支操作'" :value="(DataList&&DataList.TeamBalance&&DataList.TeamBalance.BrakeAccountStatus === 0) ? '关闭收支操作' : '开启收支操作'"
class="hollowFixedBtn" /> class="hollowFixedBtn" />
<input type="button" value="导出" @click="ExportExcle" class="normalBtn" /> <input type="button" value="导出" @click="ExportExcle" class="normalBtn" />
<input type="button" value="打印" @click.prevent="doPrint" class="normalBtn" /> <input type="button" value="打印" @click.prevent="doPrint" class="normalBtn" />
</div> </div>
<el-dialog custom-class='w350' title="合并单据" :visible.sync="zhuanLoading" center :before-close="initZhuanMsg"> <el-dialog custom-class='w350' title="合并单据" :visible.sync="zhuanLoading" center :before-close="initZhuanMsg">
...@@ -1299,6 +1306,7 @@ ...@@ -1299,6 +1306,7 @@
TCNUM: '', TCNUM: '',
FrIds: '', FrIds: '',
}, },
IsHaveAuth:false,//权限判断按钮是否显示
zhuanLoading: false, zhuanLoading: false,
moneyAll: { moneyAll: {
Moneyall: 0, Moneyall: 0,
...@@ -1582,7 +1590,7 @@ ...@@ -1582,7 +1590,7 @@
} }
// 地接 // 地接
if ((that.isExists(item.CostTypeList, '地接费(领取)') || (that.isExists(item.CostTypeList, if ((that.isExists(item.CostTypeList, '地接费(领取)') || (that.isExists(item.CostTypeList,
'地接费(结算)'))) && item.Type == 2) { '地接费(结算)'))) && item.Type == 2) {
this.moneyAll.dijieyf += item.Money; this.moneyAll.dijieyf += item.Money;
this.moneyAll.dijiesf += item.PayMoney; this.moneyAll.dijiesf += item.PayMoney;
...@@ -1713,12 +1721,31 @@ ...@@ -1713,12 +1721,31 @@
}, },
err => {} err => {}
) )
},
//权限验证
checkHasAuth() {
this.apipost(
'travel_get_CheckBalancePaymentAuth', {
TCID: this.TCID
},
res => {
if (res.data.resultCode == 1) {
this.IsHaveAuth=true;
}
else
{
this.IsHaveAuth=false;
}
},
err => {}
)
} }
}, },
mounted() { mounted() {
this.TCID = this.$route.query.id; this.TCID = this.$route.query.id;
this.OutBranchId = this.$route.query.OutBranchId this.OutBranchId = this.$route.query.OutBranchId;
this.CloseIncomeBtn = this.$route.query.CloseIncomeBtn this.CloseIncomeBtn = this.$route.query.CloseIncomeBtn;
this.checkHasAuth();
this.getList(); this.getList();
this.getAllCont(); this.getAllCont();
this.getHangingAccountByTCIDList(); this.getHangingAccountByTCIDList();
......
...@@ -792,6 +792,10 @@ ...@@ -792,6 +792,10 @@
<div class="TCL_remarkTitle">{{$t('Operation.Op_duineiRemark')}}:</div> <div class="TCL_remarkTitle">{{$t('Operation.Op_duineiRemark')}}:</div>
<div class="TCL_Content">{{item.OPInnerRemark}}</div> <div class="TCL_Content">{{item.OPInnerRemark}}</div>
</div> </div>
<div class="clearfix TCL-redType" v-if="item.DMCNum">
<div class="TCL_remarkTitle">地接备注团号:</div>
<div class="TCL_Content">{{item.DMCNum}}</div>
</div>
<div class="clearfix TCL-redType" <div class="clearfix TCL-redType"
v-if="item.DmcRemarkLast || item.HotelDiningBus.HotelChangeState>0 || item.HotelDiningBus.DiningChangeState>0 || item.HotelDiningBus.ResultBusTypeStr!='' "> v-if="item.DmcRemarkLast || item.HotelDiningBus.HotelChangeState>0 || item.HotelDiningBus.DiningChangeState>0 || item.HotelDiningBus.ResultBusTypeStr!='' ">
<div class="TCL_remarkTitle">{{$t('Operation.Op_dijieRemark')}}:</div> <div class="TCL_remarkTitle">{{$t('Operation.Op_dijieRemark')}}:</div>
......
...@@ -116,8 +116,8 @@ export default { ...@@ -116,8 +116,8 @@ export default {
if (filters.emName && filters.emName!=''){ if (filters.emName && filters.emName!=''){
data = data.filter(item => item.emName.indexOf(filters.emName)!=-1); data = data.filter(item => item.emName.indexOf(filters.emName)!=-1);
} }
if (filters.periods && filters.periods!=''){ if (filters.periods && filters.periods!=''&& filters.periods!='__all__'){
this.msg.Periods = filters.periods[0] this.msg.Periods = filters.periods
this.getList(); this.getList();
} else{ } else{
this.msg.Periods = '' this.msg.Periods = ''
...@@ -311,7 +311,7 @@ export default { ...@@ -311,7 +311,7 @@ export default {
} }
}; };
let LllegalModifyRemarkCount = { let LllegalModifyRemarkCount = {
field: "LllegalModifyRemarkCount", field: "lllegalModifyRemarkCount",
title: "结团后修改备注", title: "结团后修改备注",
titleAlign: "left", titleAlign: "left",
columnAlign: "left", columnAlign: "left",
...@@ -319,7 +319,7 @@ export default { ...@@ -319,7 +319,7 @@ export default {
width: 80, width: 80,
orderBy: "", orderBy: "",
formatter: function(rowData, rowIndex, pagingIndex, field) { formatter: function(rowData, rowIndex, pagingIndex, field) {
return `<span>${rowData.LllegalModifyRemarkCount <= 0 ? '' : rowData.LllegalModifyRemarkCount}</span>` return `<span>${rowData.lllegalModifyRemarkCount <= 0 ? '' : rowData.lllegalModifyRemarkCount}</span>`
} }
}; };
let discountPrice = { let discountPrice = {
...@@ -449,7 +449,7 @@ export default { ...@@ -449,7 +449,7 @@ export default {
this.msg.pageSize = 10000; //不分页 this.msg.pageSize = 10000; //不分页
this.msg.ParentId = this.$route.query.ParentId; this.msg.ParentId = this.$route.query.ParentId;
let dt=new Date() let dt=new Date()
this.stringPerons=(dt.getMonth()==0?(dt.getFullYear()-1):dt.getFullYear())+''+(dt.getMonth().toString().length<2?'0':'')+(dt.getMonth()==0?12:dt.getMonth()); this.stringPerons=(dt.getMonth()==0?(dt.getFullYear()-1):dt.getFullYear())+''+(dt.getMonth().toString().length<2?'0':'')+(dt.getMonth()==0?12:dt.getMonth()+1);
let cont = dt.getMonth() let cont = dt.getMonth()
for(let i = 1; i <= cont; i ++){ for(let i = 1; i <= cont; i ++){
...@@ -459,7 +459,7 @@ export default { ...@@ -459,7 +459,7 @@ export default {
value: `2019${o}`, value: `2019${o}`,
}) })
} }
this.msg.Periods=dt.getFullYear()+(dt.getMonth()>9?dt.getMonth():"0"+dt.getMonth())
this.getList(); this.getList();
this.getCompanyList(); this.getCompanyList();
}, },
......
<style> <style>
.busManagerTalbe { .busManagerTalbe {
background: #ccc; background: #ccc;
font-size:12px; font-size: 12px;
} }
.busManagerTalbe tr { .busManagerTalbe tr {
background: #fff; background: #fff;
text-align: center; text-align: center;
height: 40px; height: 40px;
} }
.commonBackColor { .commonBackColor {
background-color: #E6E6E6; background-color: #E6E6E6;
color:#333; color: #333;
} }
.comTextAlign{
text-align: left; .comTextAlign {
padding-left: 20px; text-align: left;
padding-left: 20px;
} }
</style> </style>
<template> <template>
<div> <div>
<table border="0" cellspacing="1" cellpadding="0" class="busManagerTalbe" style="width: 100%;"> <table border="0" cellspacing="1" cellpadding="0" class="busManagerTalbe" style="width: 100%;" v-loading='loading'>
<tr> <tr>
<td colspan="6">印象ジャパンバス手配依頼書</td> <td colspan="6">印象ジャパンバス手配依頼書</td>
</tr> </tr>
<tr> <tr>
<td class="commonBackColor">団 體 名:</td> <td class="commonBackColor">団 體 名:</td>
<td colspan="5" class="comTextAlign">HP20190428A1</td> <td colspan="5" class="comTextAlign">
</tr> <el-input type="text" v-model="DataObj.TeamNum" />
<tr> </td>
<td class="commonBackColor">ガイド名前:</td> </tr>
<td class="comTextAlign">张三丰</td> <tr>
<td class="commonBackColor">攜帯番號:</td> <td class="commonBackColor">ガイド名前:</td>
<td colspan="3" class="comTextAlign">123456789</td> <td class="comTextAlign">
</tr> <el-input type="text" v-model="DataObj.GuideName" />
<tr> </td>
<td class="commonBackColor">人   數:</td> <td class="commonBackColor">攜帯番號:</td>
<td colspan="5" class="comTextAlign">25+1</td> <td colspan="3" class="comTextAlign">
</tr> <el-input type="text" v-model="DataObj.GuideTel" />
<tr> </td>
<td class="commonBackColor">バス 種類:</td> </tr>
<td colspan="5" class="comTextAlign">1</td> <tr>
</tr> <td class="commonBackColor">人   數:</td>
<tr> <td colspan="5" class="comTextAlign">
<td class="commonBackColor">スケジュール:</td> <el-input type="text" v-model="DataObj.PeopleNum" />
<td colspan="5" class="comTextAlign"></td> </td>
</tr> </tr>
<tr> <tr>
<td class="commonBackColor">日付</td> <td class="commonBackColor">バス 種類:</td>
<td class="commonBackColor">用車状況</td> <td colspan="5" class="comTextAlign">
<td class="commonBackColor">便名</td> <el-input type="text" v-model="DataObj.BusType" />
<td class="commonBackColor">スケジュール內容</td> </td>
<td class="commonBackColor">ホテル</td> </tr>
<td class="commonBackColor">ホテルTEL</td> <tr>
</tr> <td class="commonBackColor">スケジュール:</td>
<tr> <td colspan="5" class="comTextAlign"></td>
<td></td> </tr>
<td></td> <tr>
<td></td> <td class="commonBackColor">日付</td>
<td></td> <td class="commonBackColor">用車状況</td>
<td></td> <td class="commonBackColor">便名</td>
<td></td> <td class="commonBackColor">スケジュール內容</td>
</tr> <td class="commonBackColor">ホテル</td>
<tr> <td class="commonBackColor">ホテルTEL</td>
<td>備考欄:</td> </tr>
<td colspan="5" class="comTextAlign">04/28日接机+0天+05/04日东京成田国际机场送机,订房号:HP20190428A1</td> <tr v-for="subItem in DataObj.Details_Extends">
</tr> <td>
<tr> {{subItem.UseDate}}
<td colspan="6" class="comTextAlign">*迎えや送りは必要・不要となることは、必ず標記してください。</td> </td>
</tr> <td>
<tr> <el-input type="text" v-model="subItem.BusType" />
<td colspan="6" class="comTextAlign">*直接バス會社へ送付するので、必ず日本語でご記入ください。</td> </td>
</tr> <td>
</table> <el-input type="text" v-model="subItem.FlightNum" />
</div> </td>
<td>
<el-input type="text" v-model="subItem.BusContent" />
</td>
<td>
<el-input type="text" v-model="subItem.HotelName" />
</td>
<td>
<el-input type="text" v-model="subItem.HotelTel" />
</td>
</tr>
<tr>
<td>備考欄:</td>
<td colspan="5" class="comTextAlign">
<el-input type="text" v-model="DataObj.Remarks" />
</td>
</tr>
<tr>
<td colspan="6" class="comTextAlign">*迎えや送りは必要・不要となることは、必ず標記してください。</td>
</tr>
<tr>
<td colspan="6" class="comTextAlign">*直接バス會社へ送付するので、必ず日本語でご記入ください。</td>
</tr>
<tfoot>
<tr>
<td colspan="6">
<input type="button" class="normalBtn" @click="SaveData()" value="保存" />
<input type="button" class="normalBtn" @click="DownLoadFile()" value="下载" />
</td>
</tr>
</tfoot>
</table>
</div>
</template> </template>
<script>
export default {
data() {
return {
loading: false,
DataObj: {
Id: 0,
TCIDS: "",
TeamNum: "",
GuideName: "",
GuideTel: "",
PeopleNum: "",
BusType: "",
DayNight: "",
Remarks: "",
Details_Extends: []
},
TCIDS: ""
}
},
methods: {
DownLoadFile(item) {
let msg = {
TCIDS: this.TCIDS
};
this.loading = true;
var fileName = "バス手配依頼書" + this.DataObj.TeamNum + ".xls";
this.GetLocalFile("bus_get_DownLoadBusConfig", msg,fileName,
res => {
this.loading = false;
});
},
GetData() {
this.loading = true;
this.apipost('bus_Get_GetBusDownLoadData', {
TCIDs: this.TCIDS
}, res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.DataObj = res.data.data;
} else {
this.Error(res.data.message);
}
}, err => {})
},
SaveData() {
this.DataObj.TCIDS = this.TCIDS;
this.apipost('bus_Post_SaveBusDownLoadData', this.DataObj, res => {
if (res.data.resultCode == 1) {
this.Success("操作成功");
this.GetData();
} else {
this.Error(res.data.message);
}
}, err => {})
}
},
mounted() {
//this.TCIDS = this.$route.query.TCID;
this.TCIDS = "2126,2405";
this.GetData();
},
}
</script>
...@@ -22,8 +22,8 @@ ...@@ -22,8 +22,8 @@
<div class="twoday_item" v-for="item in day.details" :key="item.dayNum"> <div class="twoday_item" v-for="item in day.details" :key="item.dayNum">
<div class="item"> <div class="item">
<div class="up"> <div class="up">
<img v-if="item.img!=''&& item.scenicJson" :style="{'top':item.scenicJson.y+'px'}" :src='compressImg(item.img, "filt", 663, 325)'/> <img v-if="item.img!=''&& item.scenicJson" :style="{'top':item.scenicJson.y+'px'}" :src='compressImg(item.img, "filt", 663, "")'/>
<img v-else :src='compressImg(item.img, "filt", 663, 325)' /> <img v-else :src='compressImg(item.img, "filt", 663, "")' />
</div> </div>
<div class="down" style='padding:22px 0;'> <div class="down" style='padding:22px 0;'>
<h4 v-if='item.title!=""' v-html="item.title" @click.stop="goUrl(item.url)" style="cursor: pointer" ></h4> <h4 v-if='item.title!=""' v-html="item.title" @click.stop="goUrl(item.url)" style="cursor: pointer" ></h4>
......
...@@ -605,7 +605,7 @@ ...@@ -605,7 +605,7 @@
<div class="inlogs_Content" v-html="versionList[0].UpdateContent"> <div class="inlogs_Content" v-html="versionList[0].UpdateContent">
</div> </div>
<input type="button" value="我知道了" class="normalBtn" style="margin:10px 0 0 155px;" @click="logsShow=false"/> <input type="button" value="我知道了" class="normalBtn" style="margin:10px 0 15px 155px;" @click="logsShow=false"/>
</div> </div>
</div> </div>
<div class="downmz" v-show="downmz"> <div class="downmz" v-show="downmz">
...@@ -4187,7 +4187,7 @@ export default { ...@@ -4187,7 +4187,7 @@ export default {
.updateLogs{ .updateLogs{
position: absolute; position: absolute;
width:400px; width:400px;
height:400px; // height:400px;
left:50%; left:50%;
top:50%; top:50%;
margin-left:-200px; margin-left:-200px;
...@@ -4202,19 +4202,22 @@ export default { ...@@ -4202,19 +4202,22 @@ export default {
padding:0 10px; padding:0 10px;
text-align: center; text-align: center;
color:#333333; color:#333333;
font-size:12px; font-size:14px;
margin-top:10px; margin-top:10px;
font-weight: bold; font-weight: bold;
} }
.inlogs_Content{ .inlogs_Content{
width:100%; width:100%;
padding:0 15px; padding:0 15px;
height:260px; // height:260px;
overflow: auto; overflow: auto;
margin-top:20px; margin-top:20px;
color:#666666; color:#666666;
font-size:12px; font-size:12px;
} }
.inlogs_Content p{
margin-bottom:10px;
}
.logsImg{ .logsImg{
margin-top:-30px; margin-top:-30px;
margin-left:155px; margin-left:155px;
......
...@@ -602,7 +602,6 @@ ...@@ -602,7 +602,6 @@
res => { res => {
if (res.data.resultCode == 1) { if (res.data.resultCode == 1) {
var tempData = res.data.data; var tempData = res.data.data;
console.log("tempData",tempData);
if (tempData.Feature != null) { if (tempData.Feature != null) {
this.FeatureData.ID = tempData.Feature.ID; this.FeatureData.ID = tempData.Feature.ID;
this.FeatureData.ConfigId = tempData.Feature.ConfigId; this.FeatureData.ConfigId = tempData.Feature.ConfigId;
......
...@@ -798,10 +798,11 @@ ...@@ -798,10 +798,11 @@
<el-dialog custom-class='Tp_hotelDialog' title="酒店使用情况" :visible.sync="outerVisible" center> <el-dialog custom-class='Tp_hotelDialog' title="酒店使用情况" :visible.sync="outerVisible" center>
<table class="TphotelTable" border="0" cellspacing='1' v-if="priceData.TCID>0"> <table class="TphotelTable" border="0" cellspacing='1' v-if="priceData.TCID>0">
<tr> <tr>
<th>日期</th> <th>日期</th>
<th>酒店</th> <th>酒店</th>
<th>占房时间</th> <th>占房时间</th>
<th>更换酒店</th> <th>更换酒店</th>
<th>操作</th>
</tr> </tr>
<tr v-if="priceData.PriceHotelList" v-for="item in priceData.PriceHotelList"> <tr v-if="priceData.PriceHotelList" v-for="item in priceData.PriceHotelList">
<td style="background-color:#E6E6E6;color:#333;" width="120">{{item.UseDay}}</td> <td style="background-color:#E6E6E6;color:#333;" width="120">{{item.UseDay}}</td>
...@@ -811,11 +812,12 @@ ...@@ -811,11 +812,12 @@
{{index+1}}.{{subItem.HotelName}}&nbsp;&nbsp; {{index+1}}.{{subItem.HotelName}}&nbsp;&nbsp;
<span v-if="subItem.UseCount>0 && item.SubList.length==1"> <span v-if="subItem.UseCount>0 && item.SubList.length==1">
<a style="color:green">{{subItem.Status==1?"【OK】":"【暂定】"}}</a> <a style="color:green">{{subItem.Status==1?"【OK】":"【暂定】"}}</a>
<span style="color:green">本团使用库存:{{subItem.UseCount}} <span style="color:green">本团使用:{{subItem.UseCount}}
{{subItem.CostPrice!=0?"价格:"+subItem.CostPrice:""}}</span> {{subItem.CostPrice!=0?"价格:"+subItem.CostPrice:""}}</span>
</span> </span>
<span style="color:#E95252;">剩余库存:{{subItem.RemainingInventory}} <span style="color:#E95252;" >剩余:{{subItem.RemainingInventory}}
</span> </span>
&nbsp;&nbsp; &nbsp;&nbsp;
<el-checkbox v-if="item.SubList.length>1" v-model="item.CheckList[index].CheckStatus" <el-checkbox v-if="item.SubList.length>1" v-model="item.CheckList[index].CheckStatus"
@change="changeHotelStatus(item,index),changeHotelList()"></el-checkbox> @change="changeHotelStatus(item,index),changeHotelList()"></el-checkbox>
...@@ -837,11 +839,20 @@ ...@@ -837,11 +839,20 @@
<el-option :key="0" label="请选择" :value="0"></el-option> <el-option :key="0" label="请选择" :value="0"></el-option>
<el-option v-for="subItem in item.HotelList" :key="subItem.ID" :label="subItem.Name" :value="subItem.ID"> <el-option v-for="subItem in item.HotelList" :key="subItem.ID" :label="subItem.Name" :value="subItem.ID">
<span style="float: left">{{subItem.Name}}</span> <span style="float: left">{{subItem.Name}}</span>
<span style="float: right; color:red; font-size: 13px">剩余库存:{{subItem.Inventory}} / <span style="float: right; color:red; font-size: 13px">剩余:{{subItem.Inventory}} /
价格:{{subItem.CostPrice}}</span> 价格:{{subItem.CostPrice}}</span>
</el-option> </el-option>
</el-select> </el-select>
</td> </td>
<td>
<div class="tp_divList" v-for="(subItem,index) in item.SubList">
<div>
<span v-if="subItem.UseCount>0 && item.SubList.length==1">
<span style="color:red;white-space:nowrap;cursor:pointer;" @click="DeleteStock(item)">删除</span>
</span>
</div>
</div>
</td>
</tr> </tr>
</table> </table>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
...@@ -1613,7 +1624,28 @@ ...@@ -1613,7 +1624,28 @@
}, },
err => {} err => {}
); );
} },
//删除占用的酒店库存信息
DeleteStock(item) {
var that = this;
this.Confirm("是否此酒店库存信息?", function () {
let delMsg = {
hotelId: item.SubList[0].HotelId,
TCID: item.TCID,
useTime: item.SubList[0].JourneyDate
};
that.apipost("hoteluse_post_DeleteHotelUse", delMsg, res => {
if (res.data.resultCode == 1) {
that.Success("操作成功!");
item.SubList[0].UseCount=0;
} else {
that.Error(res.data.message);
}
},
err => {}
);
});
},
}, },
mounted() { mounted() {
var dateObj = this.$calendarUtils.getCurrentDate(); var dateObj = this.$calendarUtils.getCurrentDate();
......
...@@ -57,10 +57,25 @@ ...@@ -57,10 +57,25 @@
<div v-if="modifyType==2" class="DTSaveBtn" :class="{'disClick':!isSubmit}" @click="submitForm(3)" <div v-if="modifyType==2" class="DTSaveBtn" :class="{'disClick':!isSubmit}" @click="submitForm(3)"
title="另存为新模板">保存 title="另存为新模板">保存
</div> </div>
<div v-if="ConfigId>0" class="DTSaveBtn" :class="{'disClick':!isSubmit}" @click="goB2B()">预览</div> <div v-if="ConfigId>0" class="DTSaveBtn" :class="{'disClick':!isSubmit}" @click="goB2B()">预览</div>
<div class="DTSaveBtn" v-if="ConfigId>0" @click="getMapList()">地图</div>
</div> </div>
</div> </div>
</div> </div>
<el-dialog
custom-class="w800"
title="行程地图"
:visible.sync="isShowMap"
center
>
<TravelMap :dataList="travelLngLat"></TravelMap>
<div slot="footer" class="dialog-footer">
<button class="hollowFixedBtn" @click="isShowMap = false">{{$t('pub.cancelBtn')}}</button>
</div>
</el-dialog>
</div> </div>
</template> </template>
...@@ -71,6 +86,8 @@ ...@@ -71,6 +86,8 @@
import TravelNotice from '../TravelGroupControl/TravelNotice' import TravelNotice from '../TravelGroupControl/TravelNotice'
import TravelPrice2 from '../TravelGroupControl/TravelPrice2' import TravelPrice2 from '../TravelGroupControl/TravelPrice2'
import TravelMap from '../oldTravelGroupControl/TravelMap'
export default { export default {
provide () { provide () {
return { return {
...@@ -199,6 +216,8 @@ ...@@ -199,6 +216,8 @@
loading: false, loading: false,
isNewConfig: true, isNewConfig: true,
isfromManager: true, isfromManager: true,
isShowMap:false,
travelLngLat:[]
} }
}, },
components: { components: {
...@@ -206,7 +225,8 @@ ...@@ -206,7 +225,8 @@
TravelDaysTripDirect: TravelDaysTripDirect, TravelDaysTripDirect: TravelDaysTripDirect,
TravelFeature: TravelFeature, TravelFeature: TravelFeature,
TravelNotice: TravelNotice, TravelNotice: TravelNotice,
TravelPrice2: TravelPrice2 TravelPrice2: TravelPrice2,
TravelMap:TravelMap
}, },
methods: { methods: {
/*获取行程特色内容对象*/ /*获取行程特色内容对象*/
...@@ -753,6 +773,22 @@ ...@@ -753,6 +773,22 @@
'_blank' '_blank'
) )
}, },
//获取地图
getMapList(){
this.isShowMap=true
this.journeyList.DayList.forEach(x=>{
x.dayArray.forEach(y=>{
if((y.Type==2||y.Type==3)&&(y.childItem.Lat!=""&&y.childItem.Lng!="")){
this.travelLngLat.push({
lat:y.childItem.Lat,
lng:y.childItem.Lng,
name:y.childItem.CouponsName=="undefined"?y.childItem.HotelName:y.childItem.CouponsName,
type:y.Type
})
}
})
})
}
}, },
updated: function () { updated: function () {
this.MsgBus.$emit('FeatureDataFlag') this.MsgBus.$emit('FeatureDataFlag')
...@@ -765,11 +801,11 @@ ...@@ -765,11 +801,11 @@
if (this.$route.query.allotId) { if (this.$route.query.allotId) {
this.PostConfig.allotId = this.$route.query.allotId this.PostConfig.allotId = this.$route.query.allotId
} }
console.log("this.PostConfig",this.PostConfig)
this.ScrollMethod() this.ScrollMethod()
}, },
created () { created () {
this.firstLoadConfigInfo() this.firstLoadConfigInfo();
} }
} }
......
<style>
.markers_labels{
margin-left: -24px !important;
margin-top: -43px !important;
}
.gm-svpc,.gm-style-mtc,.gm-style-cc{
display: none;
}
</style>
<template>
<div >
<div id="map_canvas" style="height: 400px; width: 100%"></div>
</div>
</template>
<script>
export default {
props:["dataList"],
name: 'GGMap',
data(){
return{
show:false,
directionsService: new google.maps.DirectionsService(),
directionsDisplay: new google.maps.DirectionsRenderer(),
map:{},
}
},
created(){
},
destroyed: function() {
},
mounted(){
this.mapBuild() //初始化实例之后调用
},
methods:{
getDetailsRoutes(source,destination,map){
service = new google.maps.DistanceMatrixService();
service.getDistanceMatrix({
origins: [source],
destinations: [destination],
travelMode: google.maps.TravelMode.DRIVING,
unitSystem: google.maps.UnitSystem.METRIC,
avoidHighways: false,
avoidTolls: false
}, function (response, status) {
if (status == google.maps.DistanceMatrixStatus.OK && response.rows[0].elements[0].status != "ZERO_RESULTS") {
var distance = response.rows[0].elements[0].distance.text;
var duration = response.rows[0].elements[0].duration.text;
var dvDistance = document.getElementById("siteinfo_modal_label");
dvDistance.innerHTML = "";
dvDistance.innerHTML += "Distance: " + distance + "<br />";
dvDistance.innerHTML += "Duration:" + duration;
} else {
alert("Unable to find the distance via road.");
}
})
},
// 地图实例
mapBuild(){
console.log(this.dataList)
let lat = parseFloat(this.dataList[0].lat)
let lng = parseFloat(this.dataList[0].lng)
let center = {lng: lng, lat: lat}
//创建地图实例,zoom是缩放比例
this.map = new google.maps.Map(document.getElementById('map_canvas'), {
zoom: 7,
center: center,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
// var polyOptions = {
// strokeColor: 'red', // 颜色
// strokeOpacity: 1.0, // 透明度
// strokeWeight: 2 // 宽度
// }
// let poly = new google.maps.Polyline(polyOptions);
// poly.setMap(map); // 装载
// 遍历循环创建标记
// this.dataList.map(item=>{
// // let lat = parseFloat(item.lat)
// // let lng = parseFloat(item.lng)
// // var path = poly.getPath(); //获取线条的坐标
// // path.push(new google.maps.LatLng(lat, lng));
// let marker = new MarkerWithLabel({
// position: {lat:lat,lng:lng},
// // icon: '../../../static/img/qishou.png', //标记自定义图标
// draggable: false, //不可拖动
// map: map, //地图实例
// // labelContent: item.name, //label的内容
// labelAnchor: new google.maps.Point(22, 100), //label的位置,可以调
// // labelClass: "markers_labels", // the CSS class for the label
// // labelStyle: { background:'#fff',padding:'5px' }
// });
// //自定义信息窗口
// let iw = new google.maps.InfoWindow({
// content: `<div>
// <p>景点名称:${item.name}</p>
// </div>`});
// //点击信息窗口显示
// google.maps.event.addListener(marker, "click", function (e) { iw.open(map, marker); });
// })
this.directionsDisplay.setMap(this.map);
this.calcRoute()
},
calcRoute: function() { // 创建路径规划
// 分解数据 获得起 止 以及中间数据
let lat = parseFloat(this.dataList[0].lat)
let lng = parseFloat(this.dataList[0].lng)
let elat = parseFloat(this.dataList[this.dataList.length-1].lat)
let elng = parseFloat(this.dataList[this.dataList.length-1].lng)
let _this = this;
let start = lat + ',' + lng;
let end = elat + ',' + elng;
let waypoints = [];
if (this.dataList.length > 2) {
this.dataList.forEach((x, index) => {
if (index >= 1 && index !== (this.dataList.length-1)) {
let obj = {
location: x.lat + ',' + x.lng
}
waypoints.push(obj)
}
});
}
let request = { // 组装连线数据
origin:start, // 起
destination:end, // 止
travelMode: google.maps.TravelMode.DRIVING,
// waypoints: [{location:"30.5226477,104.05806469999993"},{location:"30.67416759999999,104.04721970000003"}] // 中间点数据
};
if (waypoints.length > 0) {
request.waypoints = waypoints
}
console.log(waypoints)
_this.directionsService.route(request, function(result, status) {
if (status == google.maps.DirectionsStatus.OK) {
_this.directionsDisplay.setDirections(result);
}
});
},
},
}
</script>
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