Commit fc0dca78 authored by 华国豪's avatar 华国豪 🙄

‘解决冲突’

parent 607af612
<style>
.BusExportTitle{
width:800px;
width:1000px;
margin:0 auto;
text-align: center;
font-weight: bold;
......@@ -11,9 +11,10 @@
width:100%;
height:auto;
margin:auto;
position: absolute;
}
.Bus_detailTable {
width: 800px;
width: 1000px;
font-size: 12px;
color: #333;
margin: 10px auto;
......@@ -24,7 +25,8 @@
.Bus_detailTable td {
border: 1px solid #d1d1d1;
padding: 3px 10px;
padding:0 10px;
height:32px;
font-size:16px;
}
......@@ -33,6 +35,7 @@
border: 1px solid #d1d1d1;
font-size:16px;
font-weight:bold;
height:32px;
}
.txLeft{
text-align: left;
......@@ -46,9 +49,6 @@
.totalTabal td{
height:33px;
}
/* body{
min-width: 100%!important;
} */
</style>
<template>
......
......@@ -35,8 +35,8 @@
<div :class="stockColor(item.data.InventoryType)" v-if="item.data&&item.month===calendar.data.date">
<p><span @click="goUrlA('2', item)" class="text_underLine">价格:{{item.data.CostPrice}}{{item.data.CurrencyName}}</span></p>
<p><span class="text_underLine" @click="goUrlB(item)">总库存:{{item.data.Inventory}}(间)</span></p>
<!-- <p><span class="text_underLine" @click="goUrlHotelTeam(item)">剩余库存:{{item.data.RemainingInventory}}(间)</span></p> -->
<p><span>剩余库存:{{item.data.RemainingInventory}}(间)</span></p>
<p><span class="text_underLine" @click="goUrlHotelTeam(item)">剩余库存:{{item.data.RemainingInventory}}(间)</span></p>
<!-- <p><span>剩余库存:{{item.data.RemainingInventory}}(间)</span></p> -->
<p><span v-if="item.data.Inventory!==item.data.RemainingInventory" class="text_underLine">已使用库存:{{item.data.UseAmount}}(间)</span></p>
<p><span v-if="item.data.Inventory!==item.data.RemainingInventory">欠房数量:{{item.data.OweAmount}}(间)</span></p>
<p><span v-if="item.data.Inventory!==item.data.RemainingInventory" class="text_underLine">已确定:{{item.data.SureAmount}}(间)</span></p>
......
......@@ -215,7 +215,8 @@
})
this.apipost('dmcstatistics_post_SetNewHotelOrder',item.CommonReport.HotelList[0],res=>{
if(res.data.resultCode==1){
this.Success(res.data.message)
this.Success(res.data.message);
this.getList();
}else{
this.Error(res.data.message)
}
......
<<<<<<< HEAD
<template>
<div class="flexOne" style="min-width: 1200px;">
......@@ -985,3 +986,992 @@ export default {
vertical-align: top;
}
</style>
=======
<template>
<div class="flexOne" style="min-width: 1200px;">
<div class="groupTourOrderSearch">
<ul>
<li>
<span>
<em>机票编码</em><el-input v-model='msg.AirTicketId' class='w150'></el-input>
</span>
</li>
<li>
<span>
<em>订单号</em><el-input v-model='msg.AirOrderId' class='w150'></el-input>
</span>
</li>
<li>
<span>
<em>状态</em>
<el-select v-model="msg.Status" placeholder="请选择">
<el-option
v-for="item in status"
:key="item.num"
:label="item.title"
:value="item.num">
</el-option>
</el-select>
</span>
</li>
<li>
<span><em>日期</em>
<el-date-picker v-model='msg.StartTime' @change="dataDui()" class='w150' value-format="yyyy-MM-dd"
type="date"></el-date-picker>
-
<el-date-picker v-model='msg.EndTime' @change="dataDui()" class='w150'
value-format="yyyy-MM-dd" type="date"></el-date-picker>
</span>
</li>
<li>
<input type="button" class="hollowFixedBtn" value="查询" @click="getList();resetPageIndex()"/>
</li>
</ul>
</div>
<!-- 表格 -->
<div style="width: 100%; height: auto;min-height:500px;overflow-x: auto;" class="ownScrollbarStyle">
<table class="groupTourOrderSearchTable" border="0" cellspacing="0" cellpadding="0" v-loading='loading'>
<tr class="title_tr">
<th>单号</th>
<th>机票编码</th>
<th width="70">客户信息</th>
<th>客人数量</th>
<th>单价</th>
<th>成交单价</th>
<th>应收总额</th>
<th>实收</th>
<th>退款</th>
<th>平台税金</th>
<!-- <th width="80">平台在途</th> -->
<!-- <th width="80">待收金额</th> -->
<th>状态</th>
<th width="150">操作</th>
</tr>
<tr>
<td v-show="dataList.length==0" colspan="16" align="center">暂无数据</td>
</tr>
<tbody v-for="(item,index) in dataList" :key="index">
<tr>
<td>{{item.Id}} </td>
<td>{{item.Id}} </td><!-- 机票编码 -->
<td><p class="fz12 over_ellipsis" style="width: 120px;">{{item.ContactName}}</p>
<!-- <p class="fz12">123456</p> -->
</td>
<td>{{item.GuestNum}}/{{item.SeatNum}}/{{item.FreightSpace}}</td>
<td class="fz12">{{item.TC_Price}}</td>
<td class="fz12">{{item.Unit_Price}}</td>
<td style="color:#E95252">{{item.PreferPrice}}</td>
<td style="color:#E95252">{{item.Income}}</td>
<td>{{item.Refund}}</td>
<td>{{item.PlatformTax}}</td>
<td>
<p v-if="item.RefundStatus!=1">
<span v-if="item.RefundStatus==2">退款中</span>
<span v-if="item.RefundStatus==3">已退款</span>
</p>
<p v-else>
<span v-if="item.Status==1">正常</span>
<span v-if="item.Status==2">取消</span>
<span v-if="item.Status==3">待付款</span>
</p>
</td>
<td>
<p v-if="item.RefundStatus==2 && item.Status==1 && item.RefundFinanceList.length==0">
<el-tooltip class="item" effect="dark" content="退款" placement="top-end">
<el-button @click="RefundPay(item)" type="danger" icon="el-icon-star-off" circle></el-button>
</el-tooltip>
</p>
</td>
</tr>
<tr style="height:20px">
<td colspan="15" class="RL_Order" style="height:20px">
<span class="RL-remarkTitle">名单:</span>
<span class="RL-redType RL-remarkCon" v-if="item.GuestList.length>0">
<el-popover
placement="right"
width="1000"
trigger="click">
<el-table :data="item.GuestList">
<el-table-column property="Id" label="排号"></el-table-column>
<el-table-column property="Name" label="姓名"></el-table-column>
<el-table-column property="Sex" label="性别">
<template slot-scope="scope">
<span v-if="scope.row.Sex=='1'"></span>
<span v-if="scope.row.Sex=='2'"></span>
</template>
</el-table-column>
<el-table-column property="Birthday" label="生日"></el-table-column>
<el-table-column property="PassportNo" label="护照号码"></el-table-column>
<el-table-column property="NationalityName" label="国籍"></el-table-column>
<el-table-column width="120" property="MobilePhone" label="手机号码"></el-table-column>
<el-table-column property="AgeType" label="年龄类型">
<template slot-scope="scope">
<span v-if="scope.row.AgeType=='1'">成人</span>
<span v-if="scope.row.AgeType=='2'">孩子</span>
<span v-if="scope.row.AgeType=='3'">婴儿</span>
<span v-if="scope.row.AgeType=='4'">老人</span>
</template>
</el-table-column>
</el-table>
<span slot="reference">
<span style="cursor:pointer" v-for="(childItem) in item.GuestList" :key="childItem.Name">{{childItem.Name}}&nbsp;&nbsp;</span>
</span>
</el-popover>
</span>
<span class="RL-redType RL-remarkCon" v-else>
<span>暂无名单</span>
</span>
</td>
</tr>
<tr>
<td colspan="5" class="groupTourOrder_remarks" style="height: 40px;">
<div>
<div>
<span>备注:</span>
<p>{{item.Remarks}}</p>
</div>
</div>
</td>
<td colspan="7" class="groupTourOrder_tickets" style="height: 40px;">
<div>
<div>收款单据:</div>
<div>
<span style="cursor: default;">
<span class="tickets_green" v-for="(fina,fin) in item.FinanceList" :key="fin">
<span @click="goUrl('财务单据','FinancialDocumentsDetail',fina.FrID)" v-if="fina.ColorState===1" class="groupTourOrder_tickets_blue">{{fina.FrID}}</span>
<span @click="goUrl('财务单据','FinancialDocumentsDetail',fina.FrID)" v-else-if="fina.ColorState===2" class="groupTourOrder_tickets_green">{{fina.FrID}}</span>
<span @click="goUrl('财务单据','FinancialDocumentsDetail',fina.FrID)" v-else-if="fina.ColorState===3" class="groupTourOrder_tickets_red">{{fina.FrID}}</span>
<span @click="goUrl('财务单据','FinancialDocumentsDetail',fina.FrID)" v-else-if="fina.ColorState===4" class="groupTourOrder_tickets_black">{{fina.FrID}}</span>
</span>
<span v-if="item.FinanceList.length==0">
暂无数据
</span>
</span>
</div>
</div>
<div>
<div>付款单据:</div>
<div>
<span style="cursor: default;">
<span class="tickets_green" v-for="(fina,fin) in item.RefundFinanceList" :key="fin">
<span @click="goUrl('财务单据','FinancialDocumentsDetail',fina.FrID)" v-if="fina.ColorState===1" class="groupTourOrder_tickets_blue">{{fina.FrID}}</span>
<span @click="goUrl('财务单据','FinancialDocumentsDetail',fina.FrID)" v-else-if="fina.ColorState===2" class="groupTourOrder_tickets_green">{{fina.FrID}}</span>
<span @click="goUrl('财务单据','FinancialDocumentsDetail',fina.FrID)" v-else-if="fina.ColorState===3" class="groupTourOrder_tickets_red">{{fina.FrID}}</span>
<span @click="goUrl('财务单据','FinancialDocumentsDetail',fina.FrID)" v-else-if="fina.ColorState===4" class="groupTourOrder_tickets_black">{{fina.FrID}}</span>
<!-- <span @click="goUrl('财务单据','FinancialDocumentsDetail',fina.FrID)">{{fina.FrID}}</span> -->
</span>
<span v-if="item.RefundFinanceList.length==0">
暂无数据
</span>
</span>
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage"
layout="total,prev, pager, next, jumper" :page-size="msg.pageSize" :total="total"></el-pagination>
</div>
</template>
<script>
import payURL from "../commonPage/payURL.vue";
import moment from "moment";
export default {
data() {
return {
msg: {
pageIndex: 1,
pageSize: 10,
AirTicketId: 0,
AirOrderId: 0,
Status: 0,
StartTime: moment().format("YYYY-MM-DD"),
EndTime: ""
},
status: [
{ title: "全部", num: 0 },
{ title: "待付款", num: 3 },
{ title: "正常", num: 1 },
{ title: "取消", num: 2 }
],
dataList: [],
loading: false,
total: 0,
currentPage: 1,
showID: -1
};
},
components: {},
created() {},
methods: {
// 退款操作
RefundPay(item) {
let orderObj = {
OrderID: item.Id, //订单号
OrderSource: 12, //12
Obj: {},
SourceID: item.AirTicketId, //机票id
TCIDList: []
};
this.$router.push({
name: "ChoiceAddFinancialDocuments",
query: {
Type: 2,
companyID: item.RB_Branch_Id, //公司id
path: "",
blank: "y",
orderObj: JSON.stringify(orderObj)
}
});
},
goUrl: function(name, path, id) {
this.$router.push({
name: path,
query: { id: id, blank: "y", tab: name }
});
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
resetPageIndex() {
this.msg.pageIndex = 1;
this.currentPage = 1;
},
getList() {
this.loading = true;
this.apipost(
"ticket_get_GetAirTicketForMyList",
this.msg,
res => {
this.loading = false;
if (res.data.resultCode == 1) {
// console.log(res);
this.total = res.data.data.count;
this.dataList = res.data.data.pageData;
} else {
this.$message.error(res.data.message);
}
},
err => {}
);
},
// 结束日期不能大于开始日期
dataDui() {
if (this.msg.StartTime > this.msg.EndTime && this.msg.EndTime !== "") {
this.$message.error("结束日期不能大于开始日期");
this.msg.CEndDate = "";
}
}
},
mounted() {
this.getList();
}
};
</script>
<style scoped>
@import "../../assets/css/newTravelManager.css";
.tickets_green {
color: #008000;
text-decoration: underline;
margin-right: 6px;
}
.title_tr th {
/* width: 9%; */
}
.color_red_order {
color: #e95252 !important;
}
.groupTourOrderSearch {
width: 100%;
min-height: auto;
padding: 0 0 20px 0;
}
.groupTourOrderSearch li {
float: left;
font-size: 12px;
color: #666;
margin: 20px 0 0px 0;
}
.groupTourOrderSearch li > span {
display: inline-block;
}
.groupTourOrderSearch li span > em {
display: inline-block;
min-width: 60px;
text-align: right;
font-style: normal;
margin: 0 12px 0 0;
}
.groupTourOrderSearch li:last-child {
position: fixed;
z-index: 10;
top: 36px;
right: 20px;
}
.groupTourOrderSearch ul {
overflow: hidden;
}
.groupTourOrderSearchTable {
width: 100%;
min-width: 1500px;
font-size: 14px;
color: #333;
border-bottom: 1px solid #cccccc;
border-right: 1px solid #cccccc;
/* border-collapse: collapse; */
}
.groupTourOrderSearchTable tr th {
background: #e6e6e6;
height: 30px;
font-size: 12px;
text-align: left;
text-indent: 15px;
border-top: 1px solid #cccccc;
border-left: 1px solid #cccccc;
}
.groupTourOrderSearchTable tr {
background: #fff;
text-align: left;
}
.groupTourOrderSearchTable tr td {
padding: 8px;
border-top: 1px solid #cccccc;
border-left: 1px solid #cccccc;
}
.groupTourOrderSearchTable tr td p {
line-height: 20px;
}
.groupTourOrderSearchTable .dowloadSpan:hover {
text-decoration: underline;
cursor: pointer;
}
.groupTourOrderSearchTable span.personNo {
text-decoration: underline;
cursor: pointer;
}
.groupTourOrderSearchTable span.personNo:hover {
font-weight: bold;
color: #e95252;
}
.personNolayer p {
height: 28px;
line-height: 28px;
padding-left: 15px;
}
.personNolayer p > span {
font-size: 12px;
color: #333;
margin-right: 15px;
}
.personNolayer table {
padding: 10px 0 0 20px;
width: 100%;
background-color: #ededed;
border-collapse: collapse;
border: 1px solid #d2d2d2;
font-size: 12px;
}
.personNolayer table th {
background-color: #ededed;
height: 34px;
text-indent: 15px;
}
.personNolayer table td {
background-color: #ffffff;
padding: 9px 15px;
color: #333333;
border: 1px solid #d2d2d2;
}
.personNolayer table ._color_666 {
color: #666666;
}
.personNolayer table tr._color_666 th {
padding: 9px 15px;
}
.groupSuperSearchLayer {
}
.groupSuperSearchLayer > p {
padding: 20px 0;
font-size: 14px;
color: #333;
font-weight: bold;
}
.groupSuperSearchLayerTable {
font-size: 12px;
color: #666;
}
.groupSuperSearchLayerTable tr {
height: 50px;
}
.groupSuperSearchLayerTable td {
padding-right: 15px;
}
.groupTourOrderIcon button {
width: 30px;
height: 30px;
border-radius: 4px;
}
.groupTourOrderIcon .el-button--primary {
padding: 5px;
margin: 0;
font-size: 14px !important;
}
.groupTourOrderIcon .el-button + .el-button {
margin-left: 0 !important;
}
.productQuerybottomLayer {
overflow: auto;
position: fixed;
min-height: 300px;
z-index: 50;
bottom: 0;
left: 0;
border-top: 3px solid #38425d;
background-color: #ffffff;
padding: 10px 10px 0;
width: 100%;
}
.productQuerybottomLayer .el-form-item__label {
font-size: 12px !important;
}
.productQuerybottomLayer > p {
border-left: 3px solid #e95252;
text-indent: 15px;
height: 16px;
font-family: "PingFangSc-Fine";
font-size: 16px;
margin-bottom: 20px;
line-height: 14px;
color: #000;
}
.productQuerybottomLayer .el-input-number {
width: auto !important;
}
.groupTourOrder_count_green {
color: #1bc594;
}
.groupTourOrder_count_blue {
color: #4d7afd;
}
.groupTourOrder_count_yellow {
color: #ff9c00;
}
.groupTourOrder_count_gray {
color: #999999;
}
.groupTourOrder_count {
margin: 0 0 20px 0;
width: 100%;
height: auto;
}
.groupTourOrder_count_col {
height: 80px;
}
.groupTourOrder_count_item {
font-weight: 400;
padding: 10px;
height: 100%;
border: 1px solid #e6e6e6;
background-color: #ffffff;
color: #333333;
}
.groupTourOrder_count_item > div > i {
font-size: 12px;
vertical-align: bottom;
}
.groupTourOrder_count_item > div > span:nth-child(2) {
font-size: 14px;
vertical-align: bottom;
}
.groupTourOrder_count_item > div > span:nth-child(3) {
font-weight: bold;
font-size: 16px;
vertical-align: bottom;
}
.groupTourOrder_count_item > p {
font-size: 12px;
line-height: 18px;
}
.groupTourOrder_count_item > p > span {
margin: 0 5px 0 0;
white-space: nowrap;
}
.groupTourOrder_more {
margin: 0 -12px;
}
.groupTourOrder_more > div {
width: 100%;
height: 30px;
line-height: 30px;
text-align: center;
font-size: 12px;
color: #333333;
background-color: #ffffff;
cursor: pointer;
}
.groupTourOrder_more > div:hover {
color: #297bef;
background-color: #dcebff;
}
.groupTourOrder_remarks {
font-size: 0px;
}
.groupTourOrder_remarks > div {
}
.groupTourOrder_remarks > div > div:nth-child(1) {
float: left;
display: flex;
align-items: flex-start;
}
.groupTourOrder_remarks > div > div:nth-child(1) > span {
line-height: 20px;
font-size: 12px;
color: #e95252;
white-space: nowrap;
}
.groupTourOrder_remarks > div > div:nth-child(1) > p {
line-height: 20px;
font-size: 12px;
color: #e95252;
}
.groupTourOrder_remarks > div > div:nth-child(2) {
float: right;
text-align: right;
font-size: 12px;
color: #e95252;
}
.groupTourOrder_remarks > div > div:nth-child(2) > i {
font-size: 10px;
cursor: pointer;
}
.groupTourOrder_remarks > div::after {
display: block;
clear: both;
content: "";
visibility: hidden;
height: 0;
}
.groupTourOrder_remarks_btn {
padding: 0px;
width: 12px;
height: 12px;
border: none;
background-color: transparent;
}
.groupTourOrder_remarks_btn > i {
color: #e95252;
font-size: 12px;
}
.groupTourOrder_remarks_popover > div {
display: inline-block;
font-size: 14px;
color: #000000;
}
.groupTourOrder_remarks_popover > div::before {
content: "";
display: inline-block;
margin: 0 5px 0 0;
width: 2px;
height: 12px;
background-color: #e95252;
}
.groupTourOrder_remarks_popover > span {
display: block;
margin: 0 0 0 0;
width: 100%;
text-align: center;
font-size: 12px;
color: #000000;
}
.groupTourOrder_remarks_popover > p {
margin: 5px 0 0 0;
padding: 3px;
width: 100%;
max-height: 300px;
overflow-y: auto;
font-size: 12px;
color: #000000;
}
.groupTourOrder_remarks_popover > p:nth-child(even) {
background-color: #e6e6e6;
}
.groupTourOrder_remarks_popover > p > span:nth-child(1) {
float: left;
}
.groupTourOrder_remarks_popover > p > span:nth-child(2) {
margin: 0 10px 0 0;
float: right;
}
.groupTourOrder_remarks_popover > p::after {
display: block;
clear: both;
content: "";
visibility: hidden;
height: 0;
}
.groupTourOrder_tickets > div {
display: table;
}
.groupTourOrder_tickets > div > div {
display: table-cell;
cursor: pointer;
}
.groupTourOrder_tickets > div > div:nth-child(1) {
width: 80px;
}
.groupTourOrder_tickets > div > div > span {
display: inline-block;
margin: 0 10px 0 0;
}
.groupTourOrder_tickets_red {
color: #ff0000;
text-decoration: underline;
}
.groupTourOrder_tickets_blue {
color: #0000ff;
text-decoration: underline;
}
.groupTourOrder_tickets_green {
color: #008000;
text-decoration: underline;
}
.groupTourOrder_tickets_black {
color: #000000;
text-decoration: underline;
}
.groupTourOrderByTuan_ico {
margin: 0 10px 0 0;
}
.groupTourOrderByTuan_ico > i {
display: inline-block;
margin: 0 2px 0 0;
width: 8px;
height: 8px;
border-radius: 2px;
vertical-align: middle;
}
.groupTourOrderByTuan_ico > span {
vertical-align: middle;
}
/* 出团通知书打印选择 */
.travelControlTripLayer {
position: fixed;
z-index: 99;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.3);
left: 0;
top: 0;
}
.travelControlTripLayerCont {
position: absolute;
left: 50%;
margin-left: -300px;
background: #fff;
top: 50%;
margin-top: -180px;
width: 600px;
}
.travelControlTripLayerCont > div {
padding: 0 30px;
}
.travelControlTripLayerCont > div label {
cursor: pointer;
vertical-align: middle;
}
.travelControlTripLayerCont > div label input {
vertical-align: middle;
}
.travelControlTripBtn {
color: #fff;
width: 90px;
height: 30px;
background: #e95252;
border: 1px solid #e95252;
cursor: pointer;
border-radius: 15px;
margin-left: 10px;
}
.travelControlTripLayer input[type="checkbox"] + label::before {
content: "\A0";
display: inline-block;
width: 15px;
height: 15px;
margin-right: 5px;
border-radius: 4px;
background-color: white;
text-indent: 0.15em;
line-height: 15px;
color: white;
border: 1px solid #e95252;
}
.travelControlTripLayer input[type="checkbox"]:checked + label::before {
content: "\2713";
background-color: #e95252;
}
.travelControlTripLayer input[type="checkbox"] {
position: absolute;
clip: rect(0, 0, 0, 0);
}
.travelControlTripLayer input[type="checkbox"]:focus + label::before {
box-shadow: none;
}
.travelControlTripLayer input[type="checkbox"]:disabled + label::before {
background-color: gray;
box-shadow: none;
color: #555;
}
.groupTourOrder_transfer {
position: fixed;
z-index: 50;
bottom: 0;
left: 50px;
padding: 10px 10px;
width: 100%;
min-width: 1366px;
min-height: 200px;
border-top: 3px solid #38425d;
background-color: #ffffff;
overflow-y: auto;
}
.groupTourOrder_transfer > .transfer_header {
position: relative;
width: 100%;
height: 30px;
}
.groupTourOrder_transfer > .transfer_header > div:nth-child(1) {
display: inline-block;
padding: 0 10px;
width: 200px;
height: 30px;
line-height: 30px;
border-left: 3px solid #e95252;
text-indent: 10px;
font-size: 16px;
color: #000000;
}
.groupTourOrder_transfer > .transfer_header > div:nth-child(2) {
position: absolute;
top: 0px;
right: 80px;
height: 30px;
}
.groupTourOrder_transfer
> .transfer_header
> div:nth-child(2)
> div:nth-child(1) {
display: inline-block;
padding: 0 15px;
height: 30px;
line-height: 28px;
font-size: 14px;
color: #e95252;
border: 1px solid #e95252;
background: #fff;
border-radius: 15px;
cursor: pointer;
vertical-align: top;
}
.groupTourOrder_transfer
> .transfer_header
> div:nth-child(2)
> div:nth-child(2) {
display: inline-block;
margin: 0 0 0 10px;
padding: 0 15px;
height: 30px;
line-height: 28px;
font-size: 14px;
color: #fff;
border: 1px solid #e95252;
background: #e95252;
border-radius: 15px;
cursor: pointer;
vertical-align: top;
}
.groupTourOrder_transfer > .transfer_info {
padding: 20px 0;
width: 100%;
font-size: 0px;
border-bottom: 1px dashed #999999;
}
.groupTourOrder_transfer > .transfer_info > div {
display: inline-block;
padding: 0 10px;
width: 25%;
height: 30px;
vertical-align: top;
}
.groupTourOrder_transfer > .transfer_info > div > em {
display: inline-block;
padding: 0 10px;
width: 35%;
height: 30px;
line-height: 30px;
text-align: right;
font-size: 16px;
vertical-align: top;
}
.groupTourOrder_transfer > .transfer_info > div > span {
display: inline-block;
padding: 0 10px;
width: 65%;
height: 30px;
line-height: 30px;
text-align: left;
font-size: 16px;
border-radius: 3px;
background-color: #e5e5e5;
vertical-align: top;
}
.groupTourOrder_transfer > .transfer_input {
padding: 20px 0;
width: 100%;
font-size: 0px;
}
.groupTourOrder_transfer > .transfer_input > div {
display: inline-block;
padding: 0 10px;
width: 25%;
height: 30px;
vertical-align: top;
}
.groupTourOrder_transfer > .transfer_input > div > em {
display: inline-block;
padding: 0 10px;
width: 35%;
height: 30px;
line-height: 30px;
text-align: right;
font-size: 16px;
vertical-align: top;
}
.groupTourOrder_transfer > .transfer_input > div > .el-input {
display: inline-block;
width: 65%;
height: 30px;
line-height: 30px;
text-align: left;
font-size: 14px;
vertical-align: top;
}
</style>
>>>>>>> d10b1456a7e7e80cc593228d4dd3ba70873b316a
<style>
.BusedHeight {
display: block !important;
height: 450px;
}
.FinaceItem span{
display: inline-block;
color:#3980C8;
margin-right:10px;
padding-right: 10px;
border-right:1px solid #d1d1d1;
}
.FinaceItem span:last-child{
border:0;
}
.BusApportionManagement ._bus_edit {
overflow: auto;
display: none;
position: absolute;
font-family: "PingFangSc-Fine";
bottom: 0;
left: 0;
border-top: 3px solid #38425d;
background-color: #ffffff;
padding: 10px;
width: 100%;
}
.teamNumCon{
width:100%;
min-height:50px;
margin:0 110px;
}
.teamNumList{
display:inline-block;
padding:3px 8px;
border-radius:4px;
font-size:12px;
background-color: #EEEEEE;
position: relative;
margin-right:20px;
}
.teamNumList i{
color:#C5C5C5;
position: absolute;
right:-10px;
top:-10px;
}
.teamNumList i:hover{
color:#CD2929;
cursor: pointer;
}
.exportCompany{
width:450px;
}
.BusApportionManagement ._addUpload_box{
display: block;
margin-top: 15px;
}
.BusApportionManagement ._addUpload_box img{
width: 100%;
}
.BusApportionManagement ._addUpload_box>div{
float: left;
width:138px;
height:92px;
border:1px dashed rgba(210,210,210,1);
border-radius:2px;
cursor: pointer;
padding: 5px;
margin-right: 10px;
position: relative;
}
.BusApportionManagement ._addUpload_box>div:hover{
background-color: #f5f5f5;
}
.BusApportionManagement ._addFile_name{
padding-left: 15px;
max-width: 450px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.BusApportionManagement ._addUpload_box .icon-guanbi1 {
font-size: 12px;
color: white;
display: inline-block;
margin-left: 15px;
position: absolute;
right: -6px;
top: -9px;
background-color: #f56c6c;
border-radius: 50%;
height: 20px;
width: 20px;
text-align: center;
line-height: 20px;
}
.BusApportionManagement ._addUpload_box .icon-guanbi1:hover {
font-size: 12px;
color: #c94052;
}
.BusApportionManagement ._addUpload_box .icon-excel,._addUpload_box .icon-pdf{
text-align: center;
font-size: 38px;
color: green;
line-height: 75px;
}
.BusApportionManagement .el-upload-dragger{
width:126px!important;
height:80px!important;
}
.BusApportionManagement ._show_img_box{
position: fixed;
background: rgba(0,0,0,.6);
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 999;
text-align: center;
}
</style>
<template>
<div class="flexOne BusApportionManagement">
<div class="query-box">
<ul>
<li>
<input type="button" class="normalBtn" @click="outerVisible=true" value="车资导出"/>
<input type="button" class="normalBtn" @click="getInfo()" value="新增"/>
</li>
</ul>
</div>
<v-table
v-if="isReady"
is-horizontal-resize
column-width-drag
style="width:100%"
:columns="columns"
:table-data="dataList"
:filter-method="filterMethod"
:total="total"
:pageSize="msg.pageSize"
:pageIndex="msg.pageIndex"
:handleCurrentChange="handleCurrentChanges"
:multiple-sort="multipleSort"
:is-loading="loading"
sort-always
@sort-change="sortChange"
@on-custom-comp='customCompFunc'
></v-table>
<div class="_bus_edit _scrollbar" v-if="addShow" :class="addShow==true?'BusedHeight':''">
<el-row>
<el-col :span="20">
<p class="_tit">添加分摊</p>
</el-col>
<el-col :span="4" class="_add_saveBtn">
<button
type="button"
class="normalBtn"
@click="submitForm('addMsg',1)"
>{{$t('pub.saveBtn')}}</button>
<button
class="hollowFixedBtn"
type="button"
@click="resetForm('addMsg'),addShow=false"
>{{$t('pub.cancelBtn')}}</button>
</el-col>
</el-row>
<el-form
class="_info_box clearfix"
:model="addMsg"
ref="addMsg"
:rules="rules"
label-width="110px"
>
<el-row>
<el-col :span="4" :gutter="35">
<el-form-item label="费用类型">
<el-select v-model="isCked" disabled>
<el-option label="车资" value=1></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item label="单据类型">
<el-select v-model="isCked" disabled>
<el-option label="参团" value=1></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item label="供应商">
<el-select v-model="suppierCked" disabled>
<el-option v-for='item in ClientTypeList'
:label='item.Name'
:value='item.ID'
:key='item.ID'>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item label="客户名称">
<el-select filterable v-model='customId' placeholder="客户名称" @change="GetClientAccountList(customId)" class="w200 _border_b_1">
<el-option :value="0" label="不限"></el-option>
<el-option v-for='item in ClientAccountList'
:label='item.Name'
:value='item.ID'
:key='item.ID'>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item label="付款账户">
<el-select filterable v-model='addMsg.ClientID' placeholder="请选择付款账户" class="w200 _border_b_1">
<el-option :value="0" label="不限"></el-option>
<el-option v-for='item in ClientAccountListS'
:label='item.allName'
:value='item.ID'
:key='item.ID'>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" :gutter="35">
<el-form-item label="车配号">
<el-date-picker class="w200"
v-model="Year"
type="year"
placeholder="选择年">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item prop="CarNum">
<el-input v-model="addMsg.CarNum" maxlength="20"></el-input>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<button type="button" class="normalBtn" style="margin:5px 0 0 50px;" @click="getTeamInfo">筛选团队</button>
</el-col>
</el-row>
<el-row>
<el-col :span="4" :gutter="35">
<el-form-item label="金额" prop="f_UnitPrice">
<el-input v-model="addMsg.f_UnitPrice" placeholder="请输入" @keyup.native="checkPrice(addMsg,'f_UnitPrice'),getTotalMoney()" maxlength="20"></el-input>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item label="汇率">
<el-input v-model="addMsg.f_rate" placeholder="请输入" @keyup.native="checkRate(addMsg,'f_rate')" maxlength="20" class="w90"></el-input>
<el-input disabled class="w100" v-model="TotalMoney"></el-input>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item label="币种">
<el-select filterable v-model='addMsg.f_currency' placeholder="请选择币种" @change="getRate(addMsg.f_currency)" class=" _border_b_1">
<!-- <el-option :value="0" label="不限"></el-option> -->
<el-option v-for='item in coinGetList'
:label='item.Name'
:value='item.ID'
:key='item.ID'>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item label="总价">
<el-input disabled v-model="TotalMoney"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" :gutter="35">
<el-form-item label="数量" prop="CarNumber">
<el-input v-model="addMsg.CarNumber" placeholder="请输入" @keyup.native="checkInteger(addMsg,'CarNumber'),getSingelePrice()" maxlength="20"></el-input>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item label="单价">
<el-input v-model="addMsg.CarUnitPrice" disabled></el-input>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item label="接机">
<el-input v-model="addMsg.JJPrice" @keyup.native="checkInteger(addMsg,'JJPrice'),getSingelePrice()" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item label="回送">
<el-input v-model="addMsg.HSPrice" placeholder="请输入" @keyup.native="checkInteger(addMsg,'HSPrice'),getSingelePrice()"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" :gutter="35">
<el-form-item label="送机">
<el-input v-model="addMsg.SJPrice" placeholder="请输入" @keyup.native="checkInteger(addMsg,'SJPrice'),getSingelePrice()"></el-input>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item label="转机">
<el-input v-model="addMsg.ZJiPrice" placeholder="请输入" @keyup.native="checkInteger(addMsg,'ZJiPrice'),getSingelePrice()"></el-input>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item label="追加">
<el-input v-model="addMsg.ZJPrice" placeholder="请输入" @keyup.native="checkInteger(addMsg,'ZJPrice'),getSingelePrice()"></el-input>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<el-form-item label="到期结算日" prop="PayDate">
<el-date-picker type="date" class="w200" v-model="addMsg.PayDate" value-format="yyyy-MM-dd"></el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" :gutter="35">
<el-form-item label="团队编号">
<el-input placeholder="请输入" v-model="TCIDS"></el-input>
</el-form-item>
</el-col>
<el-col :span="4" :gutter="35">
<button type="button" class="normalBtn" style="margin:5px 0 0 60px;" @click="checkIsUse">添加团号</button>
</el-col>
<el-col :span="12" :gutter="35">
<el-form-item label="上传凭证">
<div class="_addUpload_box clearfix" >
<template v-for="(file,fIndex) in saveMsg">
<div v-if="file.Type==3">
<div style="width:100%;height:100%;overflow: hidden;">
<img :src="file.Url?file.Url:file.Content" @click="showUpLoadFile(file)">
</div>
<span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span>
</div>
<div v-if="file.Type==1">
<div class="iconfont " :class="file.Content.substring(file.Content.lastIndexOf('.')+1,file.Content.length).toUpperCase()=='PDF'? 'icon-pdf' : 'icon-excel'" @click="showUpLoadFile(file)">
</div>
<span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span>
</div>
<div v-if="file.Type==2">
<div class="iconfont icon-excel" @click="showUpLoadFile(file)">
</div>
<span class="iconfont icon-guanbi1" @click="deleteUploadFile(fIndex)"></span>
</div>
</template>
<div class="_pic_upload">
<el-upload
drag
:http-request="uploadFileBtn"
:multiple="true" :show-file-list="false" action="">
<i class="el-icon-plus avatar-uploader-icon"></i>
<div class="el-upload__text">点击/拖拽上传</div>
</el-upload>
</div>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="20" :gutter="35">
<div class="teamNumCon">
<span class="teamNumList" v-for="(item,index) in allTeamList">{{item.TCID}} <i @click="removeTeam(index)" class="iconfont icon-quxiao"></i></span>
</div>
</el-col>
</el-row>
</el-form>
</div>
<el-dialog custom-class='exportCompany' title="选择信息" :visible.sync="outerVisible" center>
<el-form label-width="100px">
<el-form-item label="导出月份">
<el-date-picker
v-model="exportInfo.DCDate"
type="month"
value-format="yyyy-MM"
placeholder="选择月">
</el-date-picker>
</el-form-item>
<el-form-item label="制单日期">
<el-date-picker type="date" v-model="exportInfo.StartGroupDate"
:picker-options="pickerBeginDateBefore"
value-format="yyyy-MM-dd" placeholder></el-date-picker>
<el-date-picker type="date" v-model="exportInfo.EndGroupDate"
:picker-options="pickerBeginDateAfter"
value-format="yyyy-MM-dd" placeholder></el-date-picker>
</el-form-item>
<el-form-item label="币种" class='multiple_input countryList'>
<el-select filterable v-model='exportInfo.CurrType' placeholder="请选择币种" class=" _border_b_1">
<el-option v-for='item in coinGetList'
:label='item.Name'
:value='item.ID'
:key='item.ID'>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="客户名称" class='multiple_input countryList'>
<el-select filterable v-model='exportInfo.ClientId' placeholder="请选择客户名称" class="w200 _border_b_1">
<el-option :value="0" label="不限"></el-option>
<el-option v-for='item in ClientAccountList'
:label='item.Name'
:value='item.ID'
:key='item.ID'>
</el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<button class="normalBtn" type="primary" @click="goToExport('BusExport')">{{$t('pub.saveBtn')}}</button> &nbsp;
<button class="hollowFixedBtn" @click="outerVisible = false,clearDialog()">{{$t('pub.cancelBtn')}}</button>
</div>
</el-dialog>
<div v-if='picIsShow' class="_show_img_box" @click="picIsShow=false,picObj=[]">
<div style="position: absolute; width: 800px; height: 600px; left: 50%; top: 50%; margin-left: -400px; margin-top: -300px;">
<el-carousel :initial-index=initialIndex height="600px" :interval="5000" trigger="click">
<el-carousel-item style="height: 600px;overflow:auto;" v-for="(item,index) in picObj" :key="index">
<img :src="item" style=""/>
</el-carousel-item>
</el-carousel>
</div>
</div>
</div>
</template>
<script>
import Vue from 'vue'
export default {
data(){
return {
columns: [],
remoteLoading:false,
total: 0,
isReady: false,
multipleSort: false,
loading: true,
outerVisible:false,
msg: {
pageSize:15,
pageIndex:1,
CarDistribution:'',
StartTime:'',
EndTime:''
},
addMsg:{
TCIDStr:'',
CarNum:'',
f_UnitPrice:'',
CarNumber:'',
CarUnitPrice:'',
JJPrice:'',
HSPrice:'',
ZJPrice:'',
SJPrice:'',
ZJiPrice:'',
f_currency:1,
f_rate:'',
ClientID:0,
PayDate:'',
VorList:[]
},
dataList: [],
total: 0,
currentPage: 1,
loading: true,
text: "",
dialogTitle: "",
noData: false,
addShow: false,
//验证规则
rules:{
f_UnitPrice: [{ required: true, message: "请输入金额", trigger: "blur" }],
CarNumber: [{ required: true, message: "请输入数量", trigger: "blur" }],
PayDate: [{ required: true, message: "请选择到期结算日", trigger: "blur" }],
CarNum: [{ required: true, message: "请填写车配号", trigger: "blur" }],
},
isCked:'1',
//供应商下拉
ClientTypeList:[],
//账户类型
ClientAccountList:[],
//付款账户
ClientAccountListS:[],
//供应商默认选中
suppierCked:4,
//客户名称选中ID
customId:0,
//车配号 年
Year:'',
//币种下拉
coinGetList:[],
//总价
TotalMoney:'',
//全部团队编号
allTeamList:[],
//TCID
TCIDS:'',
//团队编号
TCIDList:{
TCID:'',
TCNUM:""
},
//弹窗导出信息
exportInfo:{
DCDate:'',
StartGroupDate:'',
EndGroupDate:'',
CurrType:3,
ClientId:0
},
//上传数组
saveMsg:[],
picIsShow:false,
picObj:[],
imgList:[],
pickerBeginDateBefore: {
disabledDate: time => {
let endTime = new Date(this.exportInfo.EndGroupDate)
return endTime.getTime() < time.getTime()
}
},
pickerBeginDateAfter: {
disabledDate: time => {
let startTime = new Date(this.exportInfo.StartGroupDate)
return startTime.getTime() >= time.getTime()
}
}
};
},
methods: {
initColums() {
this.isReady = false;
let that = this;
let License = {
title: "车配号",
field: "CarDistribution",
width: 80,
titleAlign: "left",
columnAlign: "left",
isResize: true,
result: "",
filterMultiple: false,
filters: [{}],
type: "text"
};
let ShareDate = {
field: "CreateTime",
title: "分摊日期",
width: 40,
titleAlign: "left",
columnAlign: "left",
isResize: true,
result:{},
filterMultiple:false,
filters: [{}],
type:'datetime'
};
let Details = {
field: "Description",
title: "详情",
width: 80,
titleAlign: "left",
columnAlign: "left",
isResize: true,
// result: "",
// filterMultiple: false,
// filters: [{}],
// type: "text"
};
let ShareTeam = {
field: "TCIDList",
title: "分摊的团",
titleAlign: "left",
columnAlign: "left",
isResize: true,
width: 80,
componentName:'table-teamList'
// orderBy: "desc",
// filterMultiple: false,
// filters: [{}],
// type: "text"
};
let ProductDoc = {
field: "FinanceIdList",
title: "产生单据",
titleAlign: "left",
columnAlign: "left",
isResize: true,
width: 80,
componentName:'table-docment',
// filterMultiple: true,
// result: [],
// filters: [{}],
// type: "text"
};
let operaler = {
title: "操作人员",
field: "CreateByName",
titleAlign: "left",
columnAlign: "left",
width: 80,
isResize: true,
};
let Operate = {
title: "操作",
titleAlign: "left",
columnAlign: "left",
width: 80,
isResize: false,
componentName:'table-operation'
}
this.columns = [];
this.columns.push(License);
this.columns.push(ShareDate);
this.columns.push(Details);
this.columns.push(ShareTeam);
this.columns.push(ProductDoc);
this.columns.push(operaler);
this.columns.push(Operate);
this.isReady = true;
},
customCompFunc(params){
this.financeinfoRemove(params.id,params.text)
},
financeinfoRemove(id, text) {
this.$confirm(
"是否对" + "“" + text + "”" + "进行删除操作?删除后不可恢复!",
"提示",
{
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}
)
.then(() => {
this.apipost(
"bus_post_DelCarfareApportion",
{ CarId: id },
res => {
if (res.data.resultCode == 1) {
this.Success(res.data.message);
this.getList();
} else {
this.Error(res.data.message);
}
this.getList();
},
err => {}
);
})
.catch(() => {
this.$message({
type: "info",
message: "已取消删除"
});
});
},
sortChange(param) {
},
filterMethod(filters) {
this.msg.CarDistribution = filters.CarDistribution;
this.msg.StartTime = filters.CreateTime.beginDate;
this.msg.EndTime = filters.CreateTime.endDate;
if(this.msg.StartTime==null){
this.msg.StartTime='';
}
if(this.msg.EndTime==null){
this.msg.EndTime='';
}
this.msg.pageIndex = 1;
this.getList();
},
handleCurrentChanges(val) {
this.msg.pageIndex = val;
this.getList();
},
getList() {
this.loading = true;
this.apipost(
"bus_get_GetCarfareApportionPageList",
this.msg,
res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.dataList = res.data.data.pageData;
this.total = res.data.data.count;
} else {
this.Error(res.data.message);
}
},
null
);
},
initAddMsg() {
//初始化添加、修改数据
let newMsg = {
TCIDStr:'',
CarNum:'',
f_UnitPrice:'',
CarNumber:'',
CarUnitPrice:'',
JJPrice:'',
HSPrice:'',
ZJPrice:'',
SJPrice:'',
ZJiPrice:'',
f_currency:1,
f_rate:'',
ClientID:0,
PayDate:'',
VorList:[]
};
this.Year = '';
this.TCIDS ='';
this.allTeamList = [];
this.saveMsg = [];
this.addMsg = newMsg;
},
resetForm(formName) {
this.initAddMsg();
this.$refs[formName].resetFields();
},
//获取供应商
financeinfo_post_GetClientTypeList(){ // 获取对象类型
this.apipost('financeinfo_post_GetClientTypeList',{}, res => {
if(res.data.resultCode == 1) {
this.ClientTypeList = res.data.data;
}
}, err => {})
},
//获取客户类型
financeinfo_post_GetClientAccountList(){ //获取付款 对象类型 新增用
let msg = {
ID:0,
Type:4,
ObjID:0,
CardNum:''
}
this.apipost('financeinfo_post_GetClientAccountList',msg, res => {
if(res.data.resultCode == 1) {
let data = res.data.data;
let ClientAccountList = [];
data.forEach(x=>{
let obj = {
ID:x.ID,
Name:x.AccountHolder + `(${x.AccountAlias})`,
Nom:x.CardNum,
OpenBankName:x.OpenBankName,
ObjID:x.ObjID,
}
ClientAccountList.push(obj)
})
this.ClientAccountList = ClientAccountList;
}
}, err => {})
},
GetClientAccountList(i){ //获取客户名称并且根据费用类型和付款对象获取客户账号
let msg = {
ID:i,
Type:4,
ObjID:0,
CardNum:''
}
this.addMsg.ClientID=0;
this.apipost('financeinfo_post_GetClientAccountList',msg, res => {
if(res.data.resultCode == 1) {
let data = res.data.data;
let ClientAccountList = [];
if(i){
data.forEach(x=>{
let obj = {
ID:x.ID,
Name:x.AccountHolder + + `(${x.AccountAlias})`,
Nom:x.CardNum,
OpenBankName:x.OpenBankName,
allName:x.CardNum+" "+x.OpenBankName,
ObjID:x.ObjID,
}
ClientAccountList.push(obj)
})
this.ClientAccountListS = ClientAccountList;
}
}
}, err => {})
},
//获取币种
financeinfo_post_GetList(){
this.apipost('financeinfo_post_GetList',{Name:''}, res => {
if(res.data.resultCode == 1) {
this.coinGetList = res.data.data;
}
}, err => {})
},
getRate(ID){ // 根据选择币种获取汇率
this.coinGetList.forEach(x=>{
if(x.ID==ID){
this.addMsg.f_rate=x.CurrentRate;
}
})
this.getTotalMoney();
},
//点击新增
getInfo(){
this.addShow = true;
var rate = this.addMsg.f_currency;
this.getRate(rate);
this.initAddMsg();
},
//输入金额得到总价
getTotalMoney(){
this.TotalMoney = this.addMsg.f_UnitPrice*this.addMsg.f_rate;
},
//输入数量 得到单价
getSingelePrice(){
if(this.addMsg.f_UnitPrice==''||this.addMsg.CarNumber==''){
this.addMsg.CarUnitPrice=0.00
}else{
if(this.addMsg.JJPrice==''){
this.addMsg.JJPrice=0;
}
if(this.addMsg.HSPrice==''){
this.addMsg.HSPrice=0;
}
if(this.addMsg.ZJPrice==''){
this.addMsg.ZJPrice=0;
}
if(this.addMsg.SJPrice==''){
this.addMsg.SJPrice=0;
}
if(this.addMsg.ZJiPrice==''){
this.addMsg.ZJiPrice=0;
}
var zong = parseFloat(this.addMsg.f_UnitPrice);
var total = parseInt(this.addMsg.JJPrice)+parseInt(this.addMsg.HSPrice)+parseInt(this.addMsg.ZJPrice)+
parseInt(this.addMsg.SJPrice)+parseInt(this.addMsg.ZJiPrice);
this.addMsg.CarUnitPrice = ((zong-total)/this.addMsg.CarNumber).toFixed(2);
}
},
//筛选团队
getTeamInfo(){
var Year = new Date(this.Year);
let msg = {
Year:Year.getFullYear(),
CarNum:this.addMsg.CarNum
}
this.apipost('bus_get_ScreeningTravelForCarNum',msg, res => {
if(res.data.resultCode == 1) {
this.allTeamList = res.data.data;
console.log(this.allTeamList,'allTeamList');
}else{
this.Error(res.data.message);
}
}, err => {})
},
//移除团队
removeTeam(index){
this.allTeamList.splice(index,1);
},
//根据团号 验证该团号是否可以
checkIsUse(){
let msg = {
TCID:this.TCIDS
}
this.apipost('bus_get_ValidataTravelState',msg, res => {
if(res.data.resultCode == 1) {
var obj = {
TCID:'',
TCNUM:""
}
obj.TCID = this.TCIDS
this.allTeamList.push(obj);
}else{
this.Error(res.data.message);
}
this.TCIDS = '';
}, err => {})
},
//保存
submitForm(addMsg) {
//提交创建、修改表单
this.$refs[addMsg].validate(valid => {
if (valid) {
this.saveInfo();
} else {
console.log("error submit!!");
return false;
}
});
},
//保存信息
saveInfo(){
var newArr = [];
this.allTeamList.forEach(x=>{
newArr.push(x.TCID);
})
var str = "";
for(var i=0;i<newArr.length;i++){
str += newArr[i] + ",";
}
//去掉最后一个逗号(如果不需要去掉,就不用写)
if (str.length > 0) {
str = str.substr(0,str.length - 1);
}
this.addMsg.TCIDStr = str;
this.addMsg.CarNumber = parseInt(this.addMsg.CarNumber);
this.addMsg.JJPrice = parseFloat(this.addMsg.JJPrice);
this.addMsg.HSPrice = parseFloat(this.addMsg.HSPrice);
this.addMsg.ZJPrice = parseFloat(this.addMsg.ZJPrice);
this.addMsg.SJPrice = parseFloat(this.addMsg.SJPrice);
this.addMsg.ZJiPrice = parseFloat(this.addMsg.ZJiPrice);
this.addMsg.f_rate = parseFloat(this.addMsg.f_rate);
this.apipost('bus_post_SetCarfareApportion',this.addMsg, res => {
if(res.data.resultCode == 1) {
this.addShow = false;
this.Success(res.data.message);
this.getList();
}else{
this.Error(res.data.message);
}
}, err => {})
},
//清空弹窗
clearDialog(){
this.exportInfo.DCDate='',
this.exportInfo.StartGroupDate='',
this.exportInfo.EndGroupDate=''
},
//跳转打印页面
goToExport(path){
if(this.exportInfo.DCDate==''||this.exportInfo.MakeStartDate==''){
this.Error('请选择导出月份或制单日期');
return;
}
let routeData = this.$router.resolve({
name: path,
query: {
Month: this.exportInfo.DCDate,
MakeStartDate:this.exportInfo.StartGroupDate,
MakeEndDate:this.exportInfo.EndGroupDate,
CurrType:this.exportInfo.CurrType,
ClientId:this.exportInfo.ClientId
}
});
window.open(routeData.href, "_blank");
},
showUpLoadFile(i){ // 预览上传文件
if(i.Type==3){
this.picObj.push(i.Url);
this.imgList.push(i.Url);
this.picIsShow= true;
// this.hideFlashMan = true;
}else{
if(i.Content.substring(i.Content.lastIndexOf('.')+1,i.Content.length).toUpperCase()=='PDF'){
this.previewPDF(i.Url)
}else{
window.open("https://view.officeapps.live.com/op/view.aspx?src="+i.Url)
}
}
},
deleteUploadFile(i){ // 删除上传文件
this.saveMsg.splice(i,1);
this.addMsg.VorList = this.saveMsg;
},
uploadFileBtn(file) { //上传
if(file.file.size > 1024 * 1024 * 10) {
this.Error('文件大小不能超过10M!')
return
}
// 1 文档 2 数据 3 图片
let typeArr=[
{stringArr:'GIF|JPG|JPEG|PNG|BMP',type:3},
{stringArr:'DOCX|DOC|XLSX|XLS|PPT|PPTX|PDF',type:1},
]
let ft=file.file.name.substring(file.file.name.lastIndexOf('.')+1,file.file.name.length).toUpperCase();
let fileTypeNumber = 2;
let typeOk = false;
typeArr.forEach(x=>{
if(x.stringArr.indexOf(ft)!='-1')
{
fileTypeNumber=x.type
typeOk = true;
}
})
if (!typeOk) return this.Error('请上传图片、word、excel类型的文件!');
let newArr = [];
newArr.push(file.file)
let path = "/Upload/Temporary/"
this.$message.info('上传中...')
this.uploadFile(path, newArr, x => {
console.log(x.res.requestUrls[0])
let fileSize = file.file.size<1024? file.file.size:(file.file.size / 1024).toFixed(0);
this.saveMsg.push({
Content: x.name,
ID:0,
Type:fileTypeNumber,
Url:x.res.requestUrls[0].split("?")[0],
})
this.addMsg.VorList = this.saveMsg;
this.Success('上传成功');
});
},
},
mounted(){
this.getList();
this.initColums();
this.financeinfo_post_GetClientTypeList();
this.financeinfo_post_GetClientAccountList();
this.financeinfo_post_GetList();
},
created(){
Vue.component('table-docment',{ //产生单据样式
template:`<div class='FinaceItem'>
<span style='cursor:pointer;' @click='goDocment("FinancialDocumentsDetail",item)' v-for='item in rowData.FinanceIdList'>{{item}}</span>
</div>`,
props:{
rowData:{
type:Object
},
field:{
type:String
},
index:{
type:Number
}
},
methods:{
//跳转财务单据
goDocment(path, id) {
this.$router.push({ name: path, query: { id: id, blank: 'y', tab: '单据详情'} });
}
}
})
Vue.component('table-teamList',{ //分摊的团样式
template:`<div class='FinaceItem'>
<span style='cursor:pointer;' @click='goUrlX("productQuery",item)' v-for='item in rowData.TCIDList'>{{item}}</span>
</div>`,
props:{
rowData:{
type:Object
},
field:{
type:String
},
index:{
type:Number
}
},
methods:{
goUrlX (path, id) {
this.$router.push({
name: path,
query: {id: id, blank: 'y', tab: '产品查询'}
})
},
}
})
//操作按钮
Vue.component('table-operation',{
template:`<div style='width:80px;height:40px;background:#fff;text-align:center;position: relative;
left:-5px;padding-top: 6px;padding-top:6px;'></el-button><el-button type="danger" size='mini' icon="el-icon-delete" circle @click="deleteRow(rowData,index)"></el-button>
</div>`,
props:{
rowData:{
type:Object
},
field:{
type:String
},
index:{
type:Number
}
},
methods:{
deleteRow(){
let params = {type:'delete',id:this.rowData.ID,text:this.rowData.CarDistribution};
this.$emit('on-custom-comp',params);
}
}
})
}
}
</script>
......@@ -2,6 +2,14 @@
<div>
<div class="query-box" style="border-bottom: none;">
<ul>
<li><span><em>线路</em>
<el-select v-model="msg.LineId" filterable :placeholder="$t('pub.pleaseSel')" class="w150" @change="getLineTeamList()">
<el-option label="不限" :value='0'></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="msg.LineteamId" filterable :placeholder="$t('pub.pleaseSel')" class="w150">
<el-option label="不限" value='-1'></el-option>
......@@ -273,7 +281,7 @@
pageIndex: 1,
pageSize: 10,
SelectType: 6,
LineId: 14,
LineId: 0,
LineteamId: "-1",
PriceStatus: "0",
//地接团号
......@@ -330,7 +338,7 @@
this.LineTeamList = [];
this.apipost(
"team_post_GetList", {
lineID: 14,
lineID: this.msg.LineId,
isTOOP: 1
},
res => {
......@@ -482,8 +490,9 @@
"-" +
myDate.getDate();
this.msg.StartDate = nowDate;
this.getLineList();
this.getList()
this.getLineTeamList()
//this.getLineTeamList();
},
}
......
......@@ -383,7 +383,9 @@
<div class="d7">
<el-button-group>
<el-button @click.native="goUrl('leaderReimbursement',outItem,'用款计划')" type="primary" style="background:#E95252; border-color:#E95252">领队用款</el-button>
<el-button @click.native="goUrl('leaderPay',outItem,'领队报账')" type="primary" style="background:#297BEF; border-color:#297BEF">领队报账
<el-button @click.native="goToExport('leaderPay2',outItem,'领队报账')" type="primary" style="background:#297BEF; border-color:#297BEF">领队报账
<!-- <el-button @click.native="goUrl('leaderPay',outItem,'领队报账')" type="primary" style="background:#297BEF; border-color:#297BEF">领队报账 -->
</el-button>
</el-button-group>
</div>
......@@ -562,6 +564,19 @@
}
})
},
//跳转打印页面
goToExport(path,obj,title){
let routeData = this.$router.resolve({
name: path,
query: {
"id": obj.TCIDs,
'num': obj.CombinationNum,
isUpdate: true,
}
});
window.open(routeData.href, "_blank");
},
//翻页
handleCurrentChange(val) {
this.queryMsg.pageIndex = val;
......
<style>
@import "../../../assets/css/newTravelManager.css";
@import "../../../assets/css/endTravelManager.css";
</style>
<template>
<div>
<div class="clearfix" style="margin:auto;width:1200px;">
<div class="TravelLeftMenu">
<div class="TravelTopTitle">页面导航</div>
<div class="TravelNavList" :class="{'TravelCked':ckedNav==1}" @click.prevent="custormAnchor('firstAnchor',1)">
基础设置
</div>
<div class="TravelLine"></div>
<div class="TravelNavList" :class="{'TravelCked':ckedNav==2}" @click.prevent="custormAnchor('secondAnchor',2)">
线路行程
</div>
<div class="TravelLine"></div>
<div class="TravelNavList" :class="{'TravelCked':ckedNav==3}" @click.prevent="custormAnchor('thirdAnchor',3)">
产品特色
</div>
<div class="TravelLine"></div>
<div class="TravelNavList" :class="{'TravelCked':ckedNav==4}" @click.prevent="custormAnchor('fourAnchor',4)">
补充信息
</div>
<div class="TravelLine"></div>
<div class="TravelNavList" :class="{'TravelCked':ckedNav==5}" @click.prevent="custormAnchor('fiveAnchor',5)">
团期设置
</div>
<div class="TravelLine"></div>
</div>
<div class="newTravelRight" v-loading="loading">
<TravelConfig @headCallBack="getConfig" @setTravelUploadData="setTravelUploadData" :PostConfig="PostConfig"
:TCNUM="TCNUM" id="firstAnchor" :LineList="LineList"></TravelConfig>
<TravelDaysTripDirect id="secondAnchor" @headCallBack="getDaysTrip" :NoticeParameters="NoticeParameters"
:subConfig="journeyList" :isOpenGroup="false" :IsDirect="PostConfig.IsDirect" v-bind:AllCityList="AllCityList"
v-bind:StartCity="StartCity" :UseTypeArray="UseTypeArray" :AirPickUp="AirPickUp" :AirSend="AirSend" @change="handlerChangeData"></TravelDaysTripDirect>
<TravelFeature ref="TravelFeature" id="thirdAnchor" @featureCallBack="getFeature" :FeatureData="FeatureData"
:isNewConfig="isNewConfig" @unlockFormCommit="unlockFormCommit"></TravelFeature>
<TravelNotice ref="TravelNotice" id="fourAnchor" @headCallBack="getNotice" :subArray="NoticeParameters"
:NoticeData="NoticeData" v-bind:PostConfig="PostConfig" v-bind:AllCityList="AllCityList" v-bind:CountryID="PostConfig.CountryID"></TravelNotice>
<TravelPrice ref="TravelPrice" id="fiveAnchor" @headCallBack="getPrice" :priceList="PriceList" v-if="!flagWangYue"
:PostConfig="PostConfig" :modifyTcid="modifyTcid"></TravelPrice>
<TravelPrice2 ref="TravelPrice" id="fiveAnchor" @headCallBack="getPrice" :PostDaysTrip="PostDaysTrip"
:priceList="PriceList" v-else :PostConfig="PostConfig" :modifyTcid="modifyTcid"></TravelPrice2>
<div class="btnFixedDiv">
<div class="toTop" @click="backTop">
<i class="iconfont icon-huidaodingbu"></i>
</div>
<div v-if="modifyType!=2" class="DTSaveBtn" :class="{'disClick':!isSubmit}" @click="submitForm(1)">保存</div>
<div v-if="modifyType!=2" class="DTSaveBtn" :class="{'disClick':!isSubmit}" @click="submitForm(2)">提交</div>
<div v-if="modifyType==2" class="DTSaveBtn" :class="{'disClick':!isSubmit}" @click="submitForm(3)" title="另存为新模板">保存
</div>
<div v-if="ConfigId>0" class="DTSaveBtn" :class="{'disClick':!isSubmit}" @click="goB2B()">预览</div>
</div>
</div>
</div>
</div>
</template>
<script>
import TravelConfig from "../TravelGroupControl/TravelConfig.vue";
import TravelDaysTripDirect from "../travelLineTrip/TravelDaysTrip_Direct";
import TravelFeature from "../TravelGroupControl/TravelFeature";
import TravelNotice from "../TravelGroupControl/TravelNotice";
import TravelPrice from "../TravelGroupControl/TravelPrice";
import TravelPrice2 from "../TravelGroupControl/TravelPrice2";
export default {
provide() {
return {
loadConfigInfo: this.firstLoadConfigInfo
}
},
data() {
return {
ConfigId: 0, //地址栏查询参数
NewConfigId: "", //configID加密后的字符串【预览使用】
TCNUM: '', //团控列表传过来的tcnum
NoticeParameters: {
ConfigId: 0, //配置编号
CountryID: "", //国家
IsDirect: 0, //是否直采
LineId: 0 //线路编号
},
NoticeData: {
FeeInclude: "",
FeeNonInclude: "",
ImportantTip: "",
WarmTip: "",
B2BRemark: "",
ShopRemark: "",
VisaRemark: ""
},
ShopList: [],
SelfpayingList: [],
AllCityList: [],
//基本配置
PostConfig: {
ID: 0,
StartCityId: 0,
LineId: 0,
LineteamId: 0,
Title: "",
//本团卖点
ProductRecommend: "",
//选择的系列的国家编号
CountryID: 0,
RemoveChild: [], //移除的子项
RemoveImg: [], //移除的图片
IsDirect: 0, //是否直采(0-否-1-是)
PriceIsDirect: 0, //是否直采报价(1-否-2-是)
PDFAlias: "", //pdf别名,
FlightList: [], //航班信息
ShopList: [], //购物店信息
SelfpayingList: [], //自费信息
Feature: "", //行程特色
fileList: [],
VideoStr: "", //视频地址
},
//行程
FeatureData: {
ID: 0,
ConfigId: 0,
FeatureType: 3,
FeatureImg: "",
FeatureContent: "", //自定义内容
FeatureHtml: "", //行程特色(html)
FeatureHtmlImage: "", //行程特色(image)
FeatureHtmlJson: "", //行程特色(Json数据)
FeatureHtmlJsonDelete: "", //行程特色删除数据
fileList: [],
Title: "",
Subtitle: "",
LineName: "",
DayList: [],
TemplateId: 1,
IsSave: false //是否保存
},
//线路行程
journeyList: {
DayNum: "", //天数
NightNum: "", //晚上
StartCityId: 0,
ReturnArriveCityId: 0, //返回抵达城市
//交通
TrafficList: [],
//景点
ScenicList: [],
//住宿
HotelList: [],
//餐饮
DinnerList: [],
//自由活动
FreedomList: [],
//温馨提示
WarmTipList: [],
RemoveChild: [], //移除的子项
RemoveImg: [], //移除的图片
//线路行程天数
DayList: [],
isFileUpload: false //是否是一键上传行程
},
PostPrice: "", //报价信息
//线路
LineList: [],
PostFeature: "", //行程特色信息
PostNotice: "", //行程特色其他内容
//配置信息
PostDaysTrip: "", //每天的行程
PriceList: [],
//所有的城市数据
AllCityList: [],
StartCity: [], //出发城市集合城市
UseTypeArray: [], //用车类型
AirPickUp: 0, //接机
AirSend: 0, //送机
isgetPrice: true,
realSave: 1, //1:制作报价单,2保存草稿
outerVisible: false,
tripTitle: "",
isSubmit: true,
//选中的导航
ckedNav: 1,
modifyType: 1, //1:系列团修改,2:单团修改
modifyTcid: 0, //修改单团期id
flagWangYue: null,
loading: false,
isNewConfig: true,
};
},
components: {
TravelConfig: TravelConfig,
TravelDaysTripDirect: TravelDaysTripDirect,
TravelFeature: TravelFeature,
TravelNotice: TravelNotice,
TravelPrice: TravelPrice,
TravelPrice2: TravelPrice2
},
methods: {
/*获取行程特色内容对象*/
getFeature(featureObj) {
this.PostFeature = featureObj;
},
handlerChangeData(data) {
if (
this.FeatureData.FeatureHtmlJson &&
this.FeatureData.FeatureHtmlJson.d &&
this.FeatureData.FeatureHtmlJson.d.length > 0
) {
// console.log("to do something");
} else {
// this.$set(this.FeatureData, "DayList", data);
this.$refs.TravelFeature.setNewDate(data);
}
},
/*获取组件配置信息【回调方法】*/
getConfig(configObj) {
this.PostConfig = configObj;
this.NoticeParameters.ConfigId = this.PostConfig.ConfigId;
this.NoticeParameters.CountryID = this.PostConfig.CountryID;
this.NoticeParameters.IsDirect = this.PostConfig.IsDirect;
this.NoticeParameters.LineId = this.PostConfig.LineId;
if (this.ConfigId == 0) {
this.FeatureData.LineName = this.PostConfig.LineName;
this.FeatureData.Subtitle = this.PostConfig.LineTeamName;
this.FeatureData.Title = this.PostConfig.Title;
}
},
/*获取组件报价信息*/
getPrice(priceObj) {
priceObj.forEach(objItem => {
var SaleBranchId = "";
if (objItem.SaleBranchIdArray.length > 0) {
objItem.SaleBranchIdArray.forEach(subItem => {
SaleBranchId += subItem + ",";
});
}
if (SaleBranchId != "") {
var str = SaleBranchId.substr(0, SaleBranchId.length - 1);
objItem.SaleBranchId = str;
}
});
this.PostPrice = priceObj;
},
//行程回调
getDaysTrip(tripObj) {
this.PostDaysTrip = tripObj;
},
/*获取行程特色内容对象*/
getFeature(featureObj) {
this.PostFeature = featureObj;
},
/*获取行程特色其他内容*/
getNotice(noticeObj) {
this.PostNotice = noticeObj;
},
//解锁表单重复提交
unlockFormCommit(value) {
this.isSubmit = value;
},
//初始化幻灯片
initFileList() {
for (var i = 0; i < 5; i++) {
var fileObj = this.$commonUtils.FileObject();
if (this.PostConfig.fileList.length <= 5) {
this.PostConfig.fileList.push(fileObj);
}
this.FeatureData.fileList.push(fileObj);
}
},
//提交验证
submitForm(SaveType) {
// let travelConfigVal = this.$refs["TravelConfig"].validateForm();
// let travelDaysTripVal = this.$refs["TravelDaysTrip"].validateForm();
// if (!travelConfigVal) {
// this.Error("请完善配置信息");
// }
// if (!travelDaysTripVal) {
// this.Error("请完善行程信息");
// }
//if (travelConfigVal && travelDaysTripVal) {
if (this.isSubmit) {
this.isSubmit = false;
this.SaveData(SaveType);
}
},
/*保存数据*/
SaveData(SaveType) {
this.MsgBus.$emit('saveTravel', true);
this.FeatureData.IsSave = true;
this.submitText = "保存中";
//团队配置
var basicData = {};
basicData.PriceList = this.PostPrice;
//配置编号
basicData.ID = this.ConfigId;
basicData.LineId = this.PostConfig.LineId;
basicData.LineteamId = this.PostConfig.LineteamId;
basicData.Title = this.PostConfig.Title;
basicData.OpRemark = this.PostConfig.OpRemark;
basicData.ProductRecommend = this.PostConfig.ProductRecommend;
basicData.VideoStr = this.PostConfig.VideoStr;
basicData.PDFAlias = this.PostConfig.PDFAlias;
basicData.ImgCover = this.PostConfig.ImgCover;
basicData.PriceIsDirect = this.PostConfig.PriceIsDirect;
basicData.IsDirect = this.PostConfig.IsDirect;
basicData.RemoveChild = this.PostConfig.RemoveChild;
basicData.TeamType = this.PostConfig.TeamType;
basicData.DayNum = (this.PostDaysTrip && this.PostDaysTrip.DayNum != "") ? this.PostDaysTrip.DayNum : 0;
basicData.NightNum = (this.PostDaysTrip && this.PostDaysTrip.NightNum != "") ? this.PostDaysTrip.NightNum : 0;
basicData.StartCityId = (this.PostDaysTrip && this.PostDaysTrip.StartCityId != "") ? this.PostDaysTrip.StartCityId :
0;
basicData.ReturnArriveCityId = (this.PostDaysTrip && this.PostDaysTrip.ReturnArriveCityId != "") ? this.PostDaysTrip
.ReturnArriveCityId : 0;
basicData.SelfpayingList = this.PostConfig.SelfpayingList;
basicData.ShopList = this.PostConfig.ShopList;
basicData.DinnerList = this.PostDaysTrip.DinnerList;
basicData.FreedomList = this.PostDaysTrip.FreedomList;
basicData.HotelList = this.PostDaysTrip.HotelList;
basicData.ScenicList = this.PostDaysTrip.ScenicList;
basicData.TrafficList = this.PostDaysTrip.TrafficList;
basicData.WarmTipList = this.PostDaysTrip.WarmTipList;
basicData.TitleList = this.PostDaysTrip.TitleList;
basicData.RemoveImg = this.PostDaysTrip.RemoveImg;
//行程特色数据
var TripFeature = {};
if (this.PostFeature == "") {
TripFeature = this.FeatureData;
} else {
TripFeature = this.PostFeature;
}
TripFeature.FeatureHtmlJson = TripFeature.FeatureHtmlJson ?
JSON.stringify(TripFeature.FeatureHtmlJson) :
"";
TripFeature.FeatureHtmlJsonDelete = TripFeature.FeatureHtmlJsonDelete ? JSON.stringify(TripFeature.FeatureHtmlJsonDelete) :
"";
TripFeature.FeeInclude = this.PostNotice.FeeInclude;
TripFeature.FeeNonInclude = this.PostNotice.FeeNonInclude;
TripFeature.ImportantTip = this.PostNotice.ImportantTip;
TripFeature.WarmTip = this.PostNotice.WarmTip;
TripFeature.B2BRemark = this.PostNotice.B2BRemark;
TripFeature.ShopRemark = this.PostNotice.ShopRemark;
TripFeature.VisaRemark = this.PostNotice.VisaRemark;
if (
basicData.TrafficList != null &&
basicData.TrafficList.length > 0 &&
basicData.TrafficList[0].SubTraffic != null &&
basicData.TrafficList[0].SubTraffic.length > 0
) {
basicData["ArriveCityId"] =
basicData.TrafficList[0].SubTraffic[0].ArrivalCityId;
}
if (basicData.OpenState == 1) {
basicData["AfterOpenModify"] = true;
}
//"另存"新增团期
if (SaveType == 3) {
basicData.TravelInfoIsCopy = true;
}
//小包团
if (this.flagWangYue) {
basicData.TeamType = 1;
} else {
basicData.TeamType = 0;
}
var postType = 1;
if (postType == 1) {
this.apipost(
"travel_post_SetTravelConfigInfo",
basicData,
res => {
if (res.data.resultCode == 1) {
//配置编号
TripFeature.ConfigId = res.data.data;
this.$refs.TravelFeature.getHtml(TripFeature, SaveType,postType);
} else if (res.data.resultCode == 10009) {
this.FeatureData.IsSave = false;
//表单重复提交
this.isSubmit = true;
} else {
this.FeatureData.IsSave = false;
this.Error(res.data.message);
this.isSubmit = true;
this.submitText = "提交";
this.$refs.TravelFeature.del_show = true;
}
},
err => {}
);
} else {
this.ApiPost2(
"TripSetTravelConfigInfo",
basicData,
res => {
if (res.data.resultCode == 1) {
//配置编号
TripFeature.ConfigId = res.data.data;
this.$refs.TravelFeature.getHtml(TripFeature, SaveType,postType);
} else if (res.data.resultCode == 10009) {
this.FeatureData.IsSave = false;
//表单重复提交
this.isSubmit = true;
} else {
this.FeatureData.IsSave = false;
this.Error(res.data.message);
this.isSubmit = true;
this.submitText = "提交";
this.$refs.TravelFeature.del_show = true;
}
});
}
},
//初始化团的幻灯片
initFileList() {
for (var i = 0; i < 5; i++) {
var fileObj = this.$commonUtils.FileObject();
this.PostConfig.fileList.push(fileObj);
}
},
//初始化行程特色幻灯片
initFeatureFile() {
for (var i = 0; i < 5; i++) {
var fileObj = this.$commonUtils.FileObject();
this.FeatureData.fileList.push(fileObj);
}
},
custormAnchor(anchorName, index) {
// 找到锚点
let anchorElement = document.getElementById(anchorName);
// 如果对应id的锚点存在,就跳转到锚点
if (anchorElement) {
anchorElement.scrollIntoView();
}
this.ckedNav = index;
}, //滚动事件
ScrollMethod() {
var that = this;
var s1, s2, s3, s4, s5;
document
.getElementsByClassName("frame-box")[0]
.addEventListener("scroll", function () {
if (document.getElementById("firstAnchor") != null) {
s1 = document.getElementById("firstAnchor").offsetTop;
}
if (document.getElementById("secondAnchor") != null) {
s2 = document.getElementById("secondAnchor").offsetTop;
}
if (document.getElementById("thirdAnchor") != null) {
s3 = document.getElementById("thirdAnchor").offsetTop;
}
if (document.getElementById("fourAnchor") != null) {
s4 = document.getElementById("fourAnchor").offsetTop;
}
if (document.getElementById("fiveAnchor") != null) {
s5 = document.getElementById("fiveAnchor").offsetTop;
}
if (s1 >= this.scrollTop - 50 && s1 <= this.scrollTop + 50) {
that.ckedNav = 1;
} else if (s2 >= this.scrollTop - 50 && s2 <= this.scrollTop + 50) {
that.ckedNav = 2;
} else if (s3 >= this.scrollTop - 50 && s3 <= this.scrollTop + 50) {
that.ckedNav = 3;
} else if (s4 >= this.scrollTop - 50 && s4 <= this.scrollTop + 50) {
that.ckedNav = 4;
} else if (s5 >= this.scrollTop - 50 && s5 <= this.scrollTop + 50) {
that.ckedNav = 5;
}
});
},
//返回顶部
backTop() {
var timer = setInterval(function () {
var scrollTop = document.getElementsByClassName("frame-box")[0]
.scrollTop;
var ispeed = Math.floor(-scrollTop / 6);
if (scrollTop == 0) {
clearInterval(timer);
}
document.getElementsByClassName("frame-box")[0].scrollTop =
scrollTop + ispeed;
}, 30);
},
/*一键上传数据组装*/
setTravelUploadData(uploadConfig) {
if (uploadConfig != undefined) {
var configData = JSON.parse(uploadConfig);
//基础数据组装
//this.PostConfig.Title = "";
this.PostConfig.IsDirect = 0;
//线路行程组装
let dayList = [];
for (var i = 0; i < configData.Days.length; i++) {
let dayObj = configData.Days[i];
var dayItem = this.$tripUtils.tripDayobj();
dayItem.DayNum = i + 1;
//行程大点
var titleItem = this.$tripUtils.titleObj();
titleItem.DayNum = i + 1;
titleItem.Title = dayObj.Title;
dayItem.TitleObj = titleItem;
//交通对象
var trafficObj = this.$tripUtils.trafficObj();
trafficObj.DayNum = i + 1;
//交通子对象
var subTrafficObj = this.$tripUtils.subTrafficObj();
trafficObj.SubTraffic.push(subTrafficObj);
dayItem.TrafficObj = trafficObj;
//温馨提示
var warmTipObj = this.$tripUtils.warmtipObj();
warmTipObj.DayNum = i + 1;
warmTipObj.Description = dayObj.Tips;
dayItem.WarmTipObj = warmTipObj;
dayItem.isHide = false;
dayItem.isRead = false;
//景点
if (dayObj.ViewSpotList.length > 0) {
dayObj.ViewSpotList.forEach((viewSpot, index) => {
if ((index + 1) <= 5) {
var scenicObj = this.$tripUtils.scenicObj();
scenicObj.DayNum = i + 1;
scenicObj.CouponsName = viewSpot.Name;
scenicObj.Description = viewSpot.Description;
if (viewSpot.Imgs != null && viewSpot.Imgs.length > 0) {
let imaArray = [];
viewSpot.Imgs.forEach(img => {
imaArray.push({
Url: img,
Name: ""
});
});
scenicObj.NewImaArray = imaArray;
scenicObj.NewScenicImg = JSON.stringify(scenicObj.NewImaArray);
} else {
scenicObj.NewImaArray = [];
scenicObj.NewScenicImg = "";
}
dayItem.ScenicArray.push(scenicObj);
}
});
}
//餐厅
dayItem.DinnerArray.push(this.dinnerUploadFactory(i + 1, 1, dayObj.Breakfast));
dayItem.DinnerArray.push(this.dinnerUploadFactory(i + 1, 2, dayObj.Lanuch));
dayItem.DinnerArray.push(this.dinnerUploadFactory(i + 1, 3, dayObj.Dinner));
//酒店
var hotelObj = this.$tripUtils.hotelObj();
hotelObj.DayNum = i + 1;
hotelObj.HotelName = dayObj.Hotel;
dayItem.HotelArray.push(hotelObj);
dayList.push(dayItem);
}
this.journeyList.isFileUpload = true;
this.journeyList.DayNum = configData.Days.length;
this.journeyList.NightNum = this.journeyList.DayNum - 1;
this.journeyList.DayList = dayList;
//产品特色
this.FeatureData.FeatureType = 3;
this.FeatureData.FeatureContent = configData.Feature;
//行程补充信息
this.NoticeData.FeeInclude = configData.PriceInCloub;
this.NoticeData.FeeNonInclude = configData.PriceNoInCloub;
this.NoticeData.ImportantTip = configData.PriceNoInCloub;
this.NoticeData.WarmTip = configData.Tips;
this.NoticeData.ShopRemark = configData.Shopping;
}
},
//餐饮对象上传创建
dinnerUploadFactory(dayNum, useDinnerType, dinnerName) {
let dinnerObj = this.$tripUtils.dinnerObj();
dinnerObj.UseDinnerType = useDinnerType;
dinnerObj.DinnerName = dinnerName;
dinnerObj.BreakfastUseType = 0;
dinnerObj.DayNum = dayNum;
return dinnerObj;
},
firstLoadConfigInfo() {
if (this.$route.query.flag) {
this.flagWangYue = this.$route.query.flag === "false" ? false : true;
} else {
this.flagWangYue = false;
}
let configId = this.$route.query.configId;
this.modifyTcid = this.$route.query.tcid;
this.TCNUM = this.$route.query.TCNUM;
if (this.modifyTcid > 0) {
this.modifyType = 2;
} else {
this.modifyType = 1;
this.modifyTcid = 0;
}
var that = this;
if (configId > 0) {
this.isNewConfig = false;
this.ConfigId = configId;
let msg = {
configId: configId,
isSale: this.flagWangYue
};
this.loading = true;
this.apipost(
"travel_get_GetTravelConfigMakeInfo",
msg,
res => {
if (res.data.resultCode == 1) {
var tempData = res.data.data;
if (tempData.Feature != null) {
this.FeatureData.ID = tempData.Feature.ID;
this.FeatureData.ConfigId = tempData.Feature.ConfigId;
this.FeatureData.FeatureType = tempData.Feature.FeatureType;
this.FeatureData.FeatureImg = tempData.Feature.FeatureImg;
this.FeatureData.TemplateId = tempData.Feature.TemplateId;
this.FeatureData.FeatureContent = tempData.Feature.FeatureContent;
//图片列表
this.FeatureData.fileList = tempData.Feature.FeatureImgList;
this.FeatureData.FeatureHtmlJson =
tempData.Feature.FeatureHtmlJson &&
tempData.Feature.FeatureHtmlJson != "" && tempData.Feature.FeatureType > 3 ?
JSON.parse(tempData.Feature.FeatureHtmlJson) :
null;
this.FeatureData.FeatureHtmlJsonDelete = tempData.Feature.FeatureHtmlJsonDelete &&
tempData.Feature.FeatureHtmlJsonDelete != "" && tempData.Feature.FeatureType > 3 ?
JSON.parse(tempData.Feature.FeatureHtmlJsonDelete) :
null;
this.NoticeData.FeeInclude = tempData.Feature.FeeInclude;
this.NoticeData.FeeNonInclude = tempData.Feature.FeeNonInclude;
this.NoticeData.ImportantTip = tempData.Feature.ImportantTip;
this.NoticeData.WarmTip = tempData.Feature.WarmTip;
this.NoticeData.B2BRemark = tempData.Feature.B2BRemark;
this.NoticeData.ShopRemark = tempData.Feature.ShopRemark;
this.NoticeData.VisaRemark = tempData.Feature.VisaRemark;
}
if (tempData.PDFAlias !== null && tempData.PDFAlias !== "") {
this.FeatureData.Title = tempData.PDFAlias;
} else {
this.FeatureData.Title = tempData.Title;
}
if (tempData.PriceList != null) {
this.PriceList = tempData.PriceList;
}
this.FeatureData.Subtitle = tempData.LtName;
this.FeatureData.LineName = tempData.LineName;
this.FeatureData.DayList = tempData.DayList;
this.ConfigId = tempData.ID;
//HK 2019-01-08添加 NewConfigId B2B预览使用
this.NewConfigId = tempData.NewConfigId;
this.PostConfig.ID = tempData.ID;
this.PostConfig.StartCityId = tempData.StartCityId;
this.PostConfig.LineId = tempData.LineId;
this.PostConfig.LineteamId = tempData.LineteamId;
this.PostConfig.CountryID = tempData.CountryID;
//视频地址
this.PostConfig.VideoStr = tempData.VideoStr;
this.NoticeParameters.ConfigId = tempData.ConfigId;
this.NoticeParameters.CountryID = tempData.CountryID;
this.NoticeParameters.IsDirect = tempData.IsDirect;
this.NoticeParameters.LineId = tempData.LineId;
this.PostConfig.ImgCover = tempData.ImgCover;
this.PostConfig.LtName = tempData.LtName;
this.PostConfig.CreateBy = tempData.CreateBy;
if (tempData.ImgCover != "") {
if (tempData.ImgCoverList.length > 0) {
this.PostConfig.fileList = tempData.ImgCoverList;
}
} else {
this.initFileList();
}
this.PostConfig.Title = tempData.Title;
this.PostConfig.ProductRecommend = tempData.ProductRecommend;
this.PostConfig.IsSubstitution = tempData.IsSubstitution;
this.PostConfig.IsDirect = tempData.IsDirect;
this.PostConfig.PriceIsDirect = tempData.PriceIsDirect;
if (tempData.FlightList != null) {
this.PostConfig.FlightList = tempData.FlightList;
}
if (tempData.ShopList != null) {
this.PostConfig.ShopList = tempData.ShopList;
}
if (tempData.SelfpayingList != null) {
this.PostConfig.SelfpayingList = tempData.SelfpayingList;
}
this.journeyList.DayNum = tempData.DayNum;
this.journeyList.NightNum = tempData.NightNum;
this.journeyList.ReturnArriveCityId = tempData.ReturnArriveCityId;
this.journeyList.StartCityId = tempData.StartCityId;
this.journeyList.DayList = tempData.DayList;
this.journeyList.DayList.forEach(x => {
x["HotelChooseArray"] = [];
x["ChooseScenicArray"] = [];
x["isHide"] = false;
});
if (tempData.OfferList != null) {
this.OfferList = tempData.OfferList;
}
if (tempData.LineList != null) {
this.LineList = tempData.LineList;
}
if (tempData.AllCityList != null) {
this.AllCityList = tempData.AllCityList;
}
if (tempData.StartCity != null) {
this.StartCity = tempData.StartCity;
}
this.UseTypeArray = tempData.UseTypeArray;
this.AirPickUp = tempData.AirPickUp;
this.AirSend = tempData.AirSend;
this.PostConfig["OpenState"] = this.OpenState;
this.PostConfig.PDFAlias = tempData.PDFAlias;
} else {
this.Error(res.data.message);
}
this.loading = false;
},
err => {}
);
} else {
this.initFileList();
this.initFeatureFile();
this.loading = true;
this.apipost(
"travel_get_GetCommonTravelInfo", {
isSale: this.flagWangYue
},
res => {
if (res.data.resultCode == 1) {
var tempData = res.data.data;
if (tempData.LineList != null) {
let data = tempData.LineList;
let dataTwo = [];
if (this.flagWangYue) {
data.forEach(x => {
if (x.Is_PacketGroup == 1) {
dataTwo.push(x);
}
});
this.LineList = dataTwo;
} else {
this.LineList = tempData.LineList;
}
}
if (tempData.AllCityList != null) {
this.AllCityList = tempData.AllCityList;
}
if (tempData.StartCity != null) {
this.StartCity = tempData.StartCity;
}
this.UseTypeArray = tempData.UseTypeArray;
this.AirPickUp = tempData.AirPickUp;
this.AirSend = tempData.AirSend;
} else {
this.Error(res.data.message);
}
this.loading = false;
},
err => {}
);
}
},
goB2B() {
let userInfo = this.getLocalStorage();
var B2BDomain = userInfo.B2BDomain;
let configId = this.NewConfigId
window.open(
B2BDomain + "/#/detailTwo/" +
encodeURIComponent(configId) + '/' + 0 +
"/preview",
"_blank"
);
},
},
updated: function () {
this.MsgBus.$emit('FeatureDataFlag');
},
watch: {},
mounted() {
this.ScrollMethod();
},
created() {
this.firstLoadConfigInfo();
}
};
</script>
......@@ -66,6 +66,11 @@ export default {
name: 'BusExport',
component: resolve => require(['@/components/BusExport'], resolve),
},
{
path: '/leaderPay2', //领队报账
name: 'leaderPay2',
component: resolve => require(['@/components/leaderPay2'], resolve),
},
{
path: '/index',
name: 'index',
......@@ -1031,7 +1036,8 @@ export default {
meta: {
title: '机票列表'
},
}, {
},
{
path: '/individualTicket', //散客机票
name: 'individualTicket',
component: resolve => require(['@/components/Ticketing/individualTicket'], resolve),
......@@ -1039,14 +1045,15 @@ export default {
title: '散客机票'
},
},
,{
path: '/IndividualTicketOrder', //散客今日机票订单
name: 'IndividualTicketOrder',
component: resolve => require(['@/components/Ticketing/IndividualTicketOrder'], resolve),
meta: {
title: '散客机票今日订单'
},
},{
// ,{
// path: '/IndividualTicketOrder', //散客今日机票订单
// name: 'IndividualTicketOrder',
// component: resolve => require(['@/components/Ticketing/IndividualTicketOrder'], resolve),
// meta: {
// title: '散客机票今日订单'
// },
// },
{
path: '/IndividualTicketOrderDetails', //散客机票订单详情
name: 'IndividualTicketOrderDetails',
component: resolve => require(['@/components/Ticketing/IndividualTicketOrderDetails'], resolve),
......@@ -1866,14 +1873,14 @@ export default {
title: '机票订单'
},
},
{ // 销售 散卖机票订单
path: '/BulkAirTicketOrders',
name: 'BulkAirTicketOrders',
component: resolve => require(['@/components/SalesModule/BulkAirTicketOrders'], resolve),
meta: {
title: '散卖机票订单'
},
},
// { // 销售 散卖机票订单
// path: '/BulkAirTicketOrders',
// name: 'BulkAirTicketOrders',
// component: resolve => require(['@/components/SalesModule/BulkAirTicketOrders'], resolve),
// meta: {
// title: '散卖机票订单'
// },
// },
{ // 销售 报名统计
path: '/enrollTotal',
......
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