Commit 69ebc795 authored by 沈良进's avatar 沈良进

save

parent 7a0c775d
......@@ -1591,6 +1591,13 @@
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="24">
<el-form-item label="联运备注" prop="UnionRemark">
<el-input v-model="addMsg.UnionRemark" type="textarea" maxlength="500"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<!-- 修改房型 -->
......@@ -5143,6 +5150,13 @@
return;
}
}
// 选择联运,联运备注必填
if (this.addMsg.IsIntermodal == 1 || this.addMsg.IsReturnIntermodal == 1) {
if (!this.addMsg.UnionRemark) {
this.Error("请填写联运备注!");
return;
}
}
//验证人数和机位数 20190807 修改 如果是不是单地接才判断
if (this.addMsg.GroupType !== "4" && this.addMsg.GroupType !== "3") {
......
<style>
@import "../../assets/css/newTravelManager.css";
.productQuerySearch {
width: 100%;
min-height: auto;
overflow: hidden;
padding: 0 0 20px 0;
}
.productQuerySearch li {
float: left;
font-size: 12px;
color: #666;
margin: 20px 0 0px 0;
}
.productQuerySearch li>span {
display: inline-block;
}
.productQuerySearch li span>em {
display: inline-block;
min-width: 60px;
text-align: right;
font-style: normal;
margin: 0 12px 0 0;
}
.productQuerySearch li:last-child {
position: fixed;
z-index: 50;
top: 36px;
right: 20px;
}
.productQuerySearch ul {
position: relative;
overflow: hidden;
}
.elPopoverLayer {
padding: 0px 10px;
}
.elPopoverLayer p {
line-height: 34px;
font-size: 12px;
}
.elPopoverLayer p>i {
font-style: normal;
border: 1px solid #999;
padding: 0 3px;
font-size: 12px;
margin-right: 10px;
font-weight: bold;
color: #333;
}
.elPopoverLayer p>span {
display: inline-block;
width: 130px;
}
.elPopoverLayer p>span>b {
margin-left: 10px;
color: #2aaef2;
}
.superSearchLayer>p {
padding: 20px 0;
font-size: 14px;
color: #333;
font-weight: bold;
}
.superSearchLayer>div {
margin-top: 20px;
color: #666;
font-size: 12px;
}
.superSearchLayer>div>span {
margin: 0 15px 0 5px;
}
.productQuerybottomLayer {
overflow: auto;
position: fixed;
max-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 {
width: auto !important;
}
.productQueryList .disabledBtn {
background: #999 !important;
border-color: #999 !important;
}
.product_union {
position: absolute;
top: 0px;
left: 0px;
width: 0px;
height: 0px;
border-top: 15px solid red;
border-bottom: 15px solid transparent;
border-left: 15px solid red;
border-right: 15px solid transparent;
}
.product_union::after {
content: "联";
position: absolute;
top: -14px;
left: -11px;
white-space: nowrap;
color: #ffffff;
font-size: 12px;
}
.product_union1 {
position: absolute;
top: 0px;
left: 0px;
width: 0px;
height: 0px;
border-top: 15px solid red;
border-bottom: 15px solid transparent;
border-left: 15px solid red;
border-right: 15px solid transparent;
}
.product_union1::after {
content: "内";
position: absolute;
top: -14px;
left: -11px;
white-space: nowrap;
color: #ffffff;
font-size: 12px;
}
.product_warning {
position: absolute;
top: 0px;
right: 0px;
width: 0px;
height: 0px;
border-top: 10px solid red;
border-bottom: 10px solid transparent;
border-left: 10px solid transparent;
border-right: 10px solid red;
}
.product_warning::after {
content: "!";
position: absolute;
top: -12px;
right: -5px;
white-space: nowrap;
color: #ffffff;
font-size: 12px;
}
.PQ_detail {
width: 100%;
border-collapse: collapse;
}
.PQ_detail tr th,
.v-table-title-cell {
background: #e6e6e6;
height: 40px;
font-size: 14px;
border-right: 1px solid #e6e6e6;
color: #333;
}
.PQ_detail tr {
background: #fff;
text-align: center;
height: 40px;
}
.PQ_detail tr td {
font-size: 12px;
border: 1px solid #e5e5e5;
}
.PQ_HotelPop {
overflow: auto;
max-height: 350px;
}
.PQ_HotelPop table td {
padding: 5px 0;
text-align: center;
}
.PQ_HotelPop table th {
text-align: center;
}
.productQuerybottomLayer .el-upload-list {
width: 200px;
}
</style>
<template>
<div class="flexOne">
<div class="productQuerySearch" v-if="!TCIDList">
<ul>
<li>
<span><em>{{ $t("scen.sc_cp") }}</em>
<el-select class="w150" v-model="msg.BranchId" filterable :placeholder="$t('pub.pleaseSel')">
<el-option v-for="item in companyList" :label="item.BName" :value="item.Id" :key="item.Id">
</el-option>
</el-select>
</span>
</li>
<li>
<span><em>{{ $t("advmanager.v_line") }}</em>
<el-select class="w150" v-model="msg.LineId" filterable :placeholder="$t('pub.pleaseSel')" @change="
getLineTeamList(msg.LineId), getAimPlaceList(msg.LineId, '')
">
<el-option :label="$t('pub.unlimitedSel')" value="-1"></el-option>
<el-option v-for="(item,index) in LineList" :label="item.LineName" :value="item.LineID" :key="index">
</el-option>
</el-select>
</span>
</li>
<li>
<span><em>{{ $t("advmanager.v_xilie") }}</em>
<el-select class="w150" v-model="msg.LineTeamId" filterable :placeholder="$t('pub.pleaseSel')"
@change="getAimPlaceList('', msg.LineTeamId)">
<el-option :label="$t('pub.unlimitedSel')" value="-1"></el-option>
<el-option v-for="item in LineTeamList" :label="item.LtName" :value="item.LtID" :key="item.LtID">
</el-option>
</el-select>
</span>
</li>
<li>
<span><em>{{ $t("system.query_dest") }}</em>
<el-select class="w150" v-model="msg.AimPlaceId" filterable :placeholder="$t('pub.pleaseSel')">
<el-option :label="$t('pub.unlimitedSel')" value="-1"></el-option>
<el-option v-for="item in AimPlaceList" :label="item.PlaceName" :value="item.PlaceID" :key="item.PlaceID">
</el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>{{ $t("visa.v_tuanhao") }}</em>
<el-input v-model="msg.TCID" class="w150"></el-input>
</span>
</li>
<li>
<span>
<em>团名</em>
<el-input v-model="msg.Title" class="w150" clearable></el-input>
</span>
</li>
<li>
<span><em>{{ $t("hotel.hotel_StarDate") }}</em>
<el-date-picker v-model="msg.StartTime" @change="dataDui()" class="w135" value-format="yyyy-MM-dd"
type="date"></el-date-picker>
-
<el-date-picker v-model="msg.EndTime" @change="dataDui()" class="w135" value-format="yyyy-MM-dd"
type="date"></el-date-picker>
</span>
</li>
<li>
<span><em>{{ $t("system.table_goCity") }}</em>
<el-select class="w150" v-model="msg.CityId" filterable :placeholder="$t('pub.pleaseSel')">
<el-option :label="$t('pub.unlimitedSel')" value="-1"></el-option>
<el-option v-for="item in startCityList1" :label="item.startCityName" :value="item.ID" :key="item.ID">
</el-option>
</el-select>
</span>
</li>
<li style="
height: 34px;
line-height: 34px;
padding: 0 0 0 20px;
vertical-align: middle;
">
<el-popover width="270" trigger="click">
<div class="superSearchLayer">
<p>{{ $t("visa.v_tkgjcx") }}</p>
<div>
<span>{{ $t("system.query_airCompanyName") }}</span>
<el-select v-model="msg.FlightID" filterable :placeholder="$t('system.ph_buxian')" class="w150">
<el-option :label="$t('pub.unlimitedSel')" value="-1"></el-option>
<el-option v-for="item in airlineList" :key="item.AirLineId" :label="item.AlName"
:value="item.AirLineId">
</el-option>
</el-select>
</div>
<div>
<span>{{ $t("visa.v_xcdays") }}</span>
<el-input class="w150" v-model="msg.DaysTrip" @keyup.native="checkInteger(msg, 'DaysTrip')"></el-input>
</div>
<div>
<span>{{ $t("visa.v_teamnum") }}</span>
<el-input class="w69" v-model="msg.minGroupSize" @keyup.native="checkInteger(msg, 'minGroupSize')">
</el-input>
-
<el-input class="w69" v-model="msg.maxGroupSize" @keyup.native="checkInteger(msg, 'maxGroupSize')">
</el-input>
</div>
<div>
<span>{{ $t("leader.leader_registraNum") }}</span>
<el-input class="w69" v-model="msg.minApplySize" @keyup.native="checkInteger(msg, 'minApplySize')">
</el-input>
-
<el-input class="w69" v-model="msg.maxApplySize" @keyup.native="checkInteger(msg, 'maxApplySize')">
</el-input>
</div>
<div>
<span>{{ $t("Airticket.Air_salesPlatform") }}</span>
<el-select filterable multiple v-model="msg.SalePlat" :placeholder="$t('system.ph_buxian')"
class="w150 multiple_input">
<el-option v-for="item in salePlace" :key="item.Id" :label="item.Name" :value="item.Id">
</el-option>
</el-select>
</div>
<div>
<input type="button" style="width: 230px !important" class="normalBtn" :value="$t('pub.searchBtn')"
@click="
getList();
resetPageIndex();
" />
</div>
</div>
<span slot="reference" style="cursor: pointer">{{ $t("visa.v_gjchaxun") }}<i
class="el-icon-caret-bottom"></i></span>
</el-popover>
</li>
<li style="
height: 34px;
line-height: 34px;
padding: 0 0 0 20px;
vertical-align: middle;
">
<el-popover width="260" trigger="click">
<div>
<div class="TC_queryTitle">
{{ $t("Operation.Op_TeamWarningSearch") }}
</div>
<div class="clearfix">
<div class="TC_leftSearch">
<div>
<span style="
display: inline-block;
margin: 0 5px 0 0;
width: 50px;
text-align: right;
">{{ $t("leader.leader_registraNum") }}</span>
<el-select v-model="msg.WarningQuery" filterable :placeholder="$t('system.ph_buxian')" class="w150">
<el-option :label="$t('system.ph_buxian')" value="-1"></el-option>
<el-option :label="$t('salesModule.Nobaoming')" value="1"></el-option>
<el-option :label="$t('salesModule.Less10')" value="2"></el-option>
<el-option :label="$t('salesModule.More10')" value="3"></el-option>
<el-option :label="$t('salesModule.YWLess5')" value="4"></el-option>
<el-option :label="$t('salesModule.YHBRS')" value="5"></el-option>
</el-select>
</div>
<div>
<span style="
display: inline-block;
margin: 0 5px 0 0;
width: 50px;
text-align: right;
">{{ $t("Operation.Op_daysChoice") }}</span>
<el-select v-model="msg.RateOnDay" filterable :placeholder="$t('system.ph_buxian')" class="w150">
<el-option :label="$t('system.ph_buxian')" value="-1"></el-option>
<el-option :label="$t('salesModule.Inner10')" value="1"></el-option>
<el-option :label="$t('salesModule.Inner15')" value="2"></el-option>
<el-option :label="$t('salesModule.Inner20')" value="3"></el-option>
<el-option :label="$t('salesModule.Out20')" value="4"></el-option>
</el-select>
</div>
<div>
<span style="
display: inline-block;
margin: 0 5px 0 0;
width: 50px;
text-align: right;
">{{ $t("Operation.Op_Attendance") }}</span>
<el-select v-model="msg.RateOn" filterable :placeholder="$t('system.ph_buxian')" class="w150">
<el-option :label="$t('system.ph_buxian')" value="-1"></el-option>
<el-option label="100%" value="1"></el-option>
<el-option :label="$t('salesModule.Nomore80')" value="2"></el-option>
<el-option :label="$t('salesModule.Nomore60')" value="3"></el-option>
<el-option :label="$t('salesModule.Nomore40')" value="4"></el-option>
</el-select>
</div>
</div>
</div>
<button class="normalBtn TC_SearchBtn" @click="
getList();
resetPageIndex();
">
{{ $t("pub.searchBtn") }}
</button>
</div>
<span slot="reference" style="cursor: pointer">{{ $t("Operation.Op_warningSearch")
}}<i class="iconfont icon-xiaotuziCduan_1"></i></span>
</el-popover>
</li>
<li>
<input type="button" class="hollowFixedBtn" :value="$t('pub.searchBtn')" @click="
getList();
resetPageIndex();
" />
</li>
</ul>
</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>
<!-- 产品列表 -->
<productOrderList :loading="loading" :list="list" @success="reSearchPage" :pagesTitle="pagesTitle"></productOrderList>
<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 productOrderList from "../orderCommon/productOrderList.vue";
export default {
data() {
return {
pagesTitle: '跟团游产品',
//当前登录用户信息
CurrentUserInfo: {},
userId: "",
loading: true,
currentPage: 1,
total: 0,
msg: {
pageIndex: 1,
pageSize: 10,
LineId: "-1",
LineTeamId: "-1",
AimPlaceId: "-1",
TCID: "",
StartTime: "",
EndTime: "",
BranchId: "-1",
CityId: "-1",
DaysTrip: "",
SalePlat: [],
minGroupSize: "",
maxGroupSize: "",
minApplySize: "",
maxApplySize: "",
FlightID: "-1",
TCIDList: "",
WarningQuery: "-1",
RateOnDay: "-1",
RateOn: "-1",
Title: "", //团名
},
list: [],
LineList: [],
LineTeamList: [],
AimPlaceList: [],
airlineList: [],
companyList: [],
salePlace: [],
startCityList: [],
startCityList1: [],
TCIDList: null,
userInfo: {},
crmOrderObj: null,
};
},
components: {
productOrderList
},
methods: {
//刷新页面
reSearchPage() {
this.getList();
},
// 结束日期不能大于开始日期
dataDui() {
if (this.msg.StartTime > this.msg.EndTime && this.msg.EndTime !== "") {
this.$message.error("结束日期不能大于开始日期");
this.msg.EndTime = "";
}
},
getList() {
this.loading = true;
this.apipost(
"TaskManagemnet_get_GetSellProductCenter",
this.msg,
(res) => {
if (res.data.resultCode == 1) {
this.loading = false;
this.total = res.data.data.count;
for (let i = 0; i < res.data.data.pageData.length; i++) {
res.data.data.pageData[i]["wxImage"] = "";
}
this.list = res.data.data.pageData;
} else {
this.Error(res.data.message);
}
},
(err) => {}
);
},
// 线路
getLineList() {
this.apipost("line_post_GetAllList_V2", {
LineDirection: 0
}, (res) => {
if (res.data.resultCode == 1) {
this.LineList = res.data.data;
}
});
},
//获取系列列表
getLineTeamList(lineId) {
this.LineTeamList = [];
this.apipost(
"team_post_GetList", {
lineID: lineId,
isTOOP: 1,
},
(res) => {
if (res.data.resultCode == 1) {
this.msg.LineTeamId = "-1";
this.LineTeamList = res.data.data;
}
}
);
},
//获取目的地列表
getAimPlaceList(lineId, lineTeamId) {
let myLineId = lineId === "" ? this.msg.LineId : lineId;
let myLineTeamId = lineTeamId === "" ? this.msg.LineTeamId : lineTeamId;
this.AimPlaceList = [];
this.apipost(
"team_post_GetListForCascading", {
LineID: myLineId,
LtID: myLineTeamId,
},
(res) => {
if (res.data.resultCode == 1) {
this.msg.AimPlaceId = "-1";
this.AimPlaceList = res.data.data;
}
}
);
},
// 出发城市、目的地
getStartList() {
this.apipost("sellorder_get_GetAllStartCity", {}, (res) => {
if (res.data.resultCode == 1) {
this.startCityList = res.data.data;
} else {}
});
},
getStartList1() {
this.apipost(
"city_post_GetList", {
isDefault: -1,
priceType: -1,
},
(res) => {
if (res.data.resultCode == 1) {
this.startCityList1 = res.data.data;
} else {}
}
);
},
// 公司
getCompanyList() {
let RB_Group_id = this.CurrentUserInfo.RB_Group_id;
let msg = {
Status: 0,
is_show: 0,
RB_Group_Id: RB_Group_id,
};
this.apipost(
"admin_get_BranchGetList",
msg,
(res) => {
if (res.data.resultCode == 1) {
this.companyList = [{
Id: "-1",
BName: "不限",
}, ];
res.data.data.forEach((x) => {
var obj = {
Id: "",
BName: "",
};
obj.Id = x.Id.toString();
obj.BName = x.BName;
this.companyList.push(obj);
});
}
},
(err) => {}
);
},
getAirlineList() {
//获取航空公司*
let msg = {};
this.apipost(
"airline_post_GetList",
msg,
(res) => {
this.airlineList = res.data.data;
},
(err) => {}
);
},
getSalePlace() {
this.apipost(
"travel_get_GetTravelSelectEnum", {},
(res) => {
if (res.data.resultCode == 1) {
this.salePlace = res.data.data.SalePlat;
}
},
(err) => {}
);
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.getList();
},
resetPageIndex() {
this.msg.pageIndex = 1;
this.currentPage = 1;
},
},
mounted() {
this.userInfo = this.getLocalStorage();
this.CurrentUserInfo = this.userInfo ;
this.userId = this.userInfo.EmployeeId;
this.msg.BranchId = this.userInfo.RB_Branch_id.toString();
if (this.$route.query.id) {
this.msg.BranchId = "-1";
this.msg.TCID = this.$route.query.id;
}
if (this.$route.query.TCIDList) {
this.msg.TCIDList = this.TCIDList = this.$route.query.TCIDList;
}
if (this.msg.StartTime === "") {
let nowDay = this.FormartDate(new Date());
this.msg.StartTime = nowDay;
}
this.getCompanyList();//公司
this.getList();//产品列表
this.getLineList();//线路
this.getSalePlace();//销售平台
this.getAirlineList();//获取航空公司
this.getStartList();//出发城市
this.getStartList1();//目的地
},
};
</script>
......@@ -120,7 +120,7 @@ export default {
let locationName = window.location.hostname;
// domainUrl = "http://192.168.10.128";
// domainUrl = "http://192.168.10.9:8083" // 刘东电脑
domainUrl = "http://192.168.10.226";
domainUrl = "http://192.168.10.226:8015";
// domainUrl = "http://reborn.oytour.com";
let crmLocalFileStreamDownLoadUrl = "";
crmLocalFileStreamDownLoadUrl = locationName.indexOf('oytour') !== -1 ? "http://crm.oytour.com" : "http://testcrm.oytour.com";
......
......@@ -3243,6 +3243,14 @@ export default {
title: '产品查询'
},
},
{ // 团信息列表
path: '/productOrderList',
name: 'productOrderList',
component: resolve => require(['@/components/SalesModule/productOrderList'], resolve),
meta: {
title: '产品查询'
},
},
{ // 销售 一日游产品查询
path: '/productQueryOne',
name: 'productQueryOne',
......
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