Commit ddaccdc9 authored by youjie's avatar youjie

no message

parent 8356d4c1
......@@ -18,7 +18,7 @@
<span>
<em>团号</em>
<el-input maxlength="50" v-model="msg.TCNUM" class="permiss-input w200"
@keyup.native.enter="getControlList" :placeholder="$t('pub.pleaseImport')"></el-input>
@keyup.enter="getControlList" :placeholder="$t('pub.pleaseImport')"></el-input>
</span>
</li>
<li>
......@@ -29,7 +29,10 @@
@keyup.native="checkInteger(msg,'TCID')"></el-input>
</span>
</li>
<li></li>
<li>
<button class="hollowFixedBtn" type="button"
@click="getControlList">{{$t('pub.searchBtn')}}</button>
</li>
</ul>
</div>
<ul class="_nav clearfix">
......@@ -141,7 +144,7 @@
type="button"
class="hollowFixedBtn"
value="关闭"
@click="cancelOrderDialog = false"
@click="cancelOrderDialog = false,cancelRemark=''"
/>
</el-col>
</el-row>
......@@ -282,7 +285,7 @@
this.Error(res.data.message);
}
},
err => { }
err => { }
);
},
goTeamBalance(id, OutBranchId) {//团队收支明细
......
......@@ -1047,7 +1047,7 @@
<div class="TC_remarkContent" v-if="item.OPRemark||item.OPInnerRemark||item.DmcRemarkLast||item.OutGroupAuditRemark">
<div class="clearfix TCL-redType" v-if="item.OutGroupAuditState==3&&item.OutGroupAuditRemark">
<div class="TCL_remarkTitle">驳回缘由:</div>
<div class="TCL_Content">{{item.OutGroupAuditRemark}} 日期:{{item.OutGroupAuditDate}}</div>
<div class="TCL_Content">{{item.OutGroupAuditRemark}} {{item.OutGroupAuditDate}}</div>
</div>
<div class="clearfix TCL-redType" v-if="item.OPRemark">
<div class="TCL_remarkTitle">{{$t('Operation.Op_duiwaiRemark')}}:</div>
......
......@@ -637,7 +637,7 @@
<div class="TC_remarkContent" v-if="item.OPRemark||item.OPInnerRemark||item.DmcRemarkLast||item.OutGroupAuditRemark">
<div class="clearfix TCL-redType" v-if="item.OutGroupAuditState==3&&item.OutGroupAuditRemark">
<div class="TCL_remarkTitle">驳回缘由:</div>
<div class="TCL_Content">{{item.OutGroupAuditRemark}} 日期:{{item.OutGroupAuditDate}}</div>
<div class="TCL_Content">{{item.OutGroupAuditRemark}} {{item.OutGroupAuditDate}}</div>
</div>
<div class="clearfix TCL-redType" v-if="item.OPRemark">
<div class="TCL_remarkTitle">{{$t('Operation.Op_duiwaiRemark')}}</div>
......
<style>
.addlist{
position: absolute;
right: 158px;
top: 6px;
cursor: pointer;
color: #E95252;
width: 30px;
height: 30px;
display: inline-block;
text-align: center;
line-height: 30px;
border-radius: 50%;
font-size: 22px;
}
.scenicSpotInfoManage .resourceImgAdd {
width: 620px;
margin: auto;
......@@ -385,6 +399,9 @@
.scenicSpotInfoManage .resourcerightTop span {
display: inline-block;
}
.scenicSpotInfoManage .resourcerightTop span.width62 {
width: 62px;
}
.scenicSpotInfoManage .sheshi {
margin-bottom: 20px;
......@@ -514,7 +531,7 @@
}
.scenicSpotInfoManage .footabs {
width: 300px;
width: 286px;
min-height: 34px;
border: 1px solid #d1d1d1;
margin-left: 10px;
......@@ -742,29 +759,37 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="区" prop="District" v-if="item.City>0">
<!-- <el-form-item label="区" prop="District" v-if="item.City>0">
<el-select v-model="item.District" class="w300" @change="getArea" filterable :placeholder="$t('hotel.hotel_area')">
<el-option :label="$t('pub.unlimitedSel')" :value='SelectDefaultValue'></el-option>
<el-option v-for="item in district" :key="item.ID" :label="item.Name" :value="item.ID"></el-option>
</el-select>
</el-form-item>
</el-form-item> -->
</template>
<template v-for="(item,index) in addMsg.AirportList">
<el-form-item label="机场" :prop="`AirportList.${index}.AirportId`" :rules="rules.AirportId">
<el-select placeholder="请选择机场" filterable v-model="item.AirportId" @change="getAirportItem(item.AirportId)"
class='multiple_input w300'
>
<el-option v-for='item in Departure_airport' :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
<div style="position: relative;">
<el-select placeholder="请选择机场" filterable v-model="item.AirportId" @change="getAirportItem(item,item.AirportId)"
class='multiple_input w300'
>
<el-option v-for='item in Departure_airport' :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
<i v-if="index==0" class="el-icon-circle-plus addlist" @click="clickAirport(index,1)"></i>
<i v-else class="el-icon-delete addlist" @click="clickAirport(index)"></i>
</div>
</el-form-item>
<el-form-item :label="$t('hotel.hotel_detailinfo')" :prop="`AirportList.${index}.Address`" :rules="rules.Address">
<el-input placeholder="请输入详细地址" class="w300 addAddress" v-model="item.Address">
<el-button slot="append" @click="selectAddress = true" icon="iconfont icon-img_dw"></el-button>
<el-form-item label="机场(IATA)" :prop="`AirportList.${index}.Name`" :rules="rules.Name2">
{{item.AirportName}}
<el-input maxlength="100" placeholder="请输入机场地址(IATA)" class="w300 addAddress" v-model="item.Name"></el-input>
</el-form-item>
<el-form-item label="机场详细地址" :prop="`AirportList.${index}.Address`" :rules="rules.Address">
<el-input maxlength="600" placeholder="请输入机场详细地址" class="w300 addAddress" v-model="item.Address">
<el-button slot="append" @click="clickMapAddress(1,item.Address,index)" icon="iconfont icon-img_dw"></el-button>
</el-input>
</el-form-item>
<div class="toolOne">
<span class="fanbili">地理位置</span>
<div class="toolOne" style="margin: 0 0 28px 13px;">
<span class="fanbili">机场地理位置</span>
<div class="RabateDiv clearfix">
<div class="RebateCount reOne">
<div class="leftPnum">经度</div>
......@@ -776,51 +801,80 @@
</div>
</div>
</div>
</template>
<template v-for="(item,index) in addMsg.PlaceList">
<el-form-item label="距离范围" prop="">
<el-input type="Number" placeholder="距离中心点范围" class="w300 addAddress" v-model="item.Range"></el-input>
<el-form-item label="上车地址" :prop="`PlaceList.${index}.Name`" :rules="rules.Name3">
<div style="position: relative;">
<el-input maxlength="100" placeholder="请输入上车地址" class="w300 addAddress" v-model="item.Name"></el-input>
<i v-if="index==0" class="el-icon-circle-plus addlist" @click="clickPlace(index,1)"></i>
<i v-else class="el-icon-delete addlist" @click="clickPlace(index)"></i>
</div>
</el-form-item>
<el-form-item label="上车详细地址" :prop="`PlaceList.${index}.Address`" :rules="rules.Address">
<el-input maxlength="300" placeholder="请输入上车详细地址" class="w300 addAddress" v-model="item.Address">
<el-button slot="append" @click="clickMapAddress(2,item.Address,index)" icon="iconfont icon-img_dw"></el-button>
</el-input>
</el-form-item>
<el-form-item label="多边形描点" prop="">
<el-input type="Number" placeholder="距离中心点范围" class="w300 addAddress" v-model="item.LngLatMultiple">
<div class="toolOne" style="margin: 0 0 28px 13px;">
<span class="fanbili">上车地理位置</span>
<div class="RabateDiv clearfix">
<div class="RebateCount reOne">
<div class="leftPnum">经度</div>
<input type="text" class="toolInput inpuOne" v-model="item.Lng" maxlength="20">
</div>
<div class="RebateCount reTwo">
<div class="fanNum">纬度</div>
<input type="text" class="toolInput inpuTwo" v-model="item.Lat" maxlength="20">
</div>
</div>
</div>
<el-form-item label="距离中心范围" :prop="`PlaceList.${index}.Range`" :rules="rules.Range" >
<el-input type="Number" placeholder="上车距离中心范围" class="w300 addAddress" v-model="item.Range"></el-input>
</el-form-item>
<!-- <el-form-item label="上车多边形描点" prop="">
<el-input type="Number" placeholder="上车多边形描点" class="w300 addAddress" v-model="item.LngLatMultiple">
<el-button slot="append" @click="selectAddress = true" icon="iconfont icon-img_dw"></el-button>
</el-input>
</el-form-item>
</el-form-item> -->
</template>
<el-form-item label="包车时长" prop="TravelHours" v-if="addMsg.CarType==3">
<el-input type="Number" placeholder="请输入包车时长" class="w300 addAddress" :min="0" v-model="addMsg.TravelHours">
<span slot="append"> 小时 </span>
</el-input>
</el-form-item>
<el-form-item label="提前取消时间" prop="">
<el-input type="Number" placeholder="提前几天可免费取消" class="w300 addAddress" :min="0" v-model="addMsg.FreeCancelDay">
<span slot="append"></span>
</el-input>
</el-form-item>
<div class="toolOne">
<span class="fdTag">费用包含</span>
<div class="footabs">
<el-tag :key="tag" v-for="tag in addMsg.PriceIncludeList" closable :disable-transitions="false"
@close="handleClose(tag)">{{tag}}</el-tag>
<el-input class="input-new-tag" v-if="inputVisible" v-model="inputValue" maxlength="6"
ref="saveTagInput" size="small" @keyup.enter.native="handleInputConfirm" @blur="handleInputConfirm">
</el-input>
<el-button v-else class="button-new-tag" size="small" @click="showInput">+ {{$t('pub.addBtn')}}
</el-button>
</div>
</div>
<div class="toolOne">
<span class="fdTag">费用不包含</span>
<div class="footabs">
<el-tag :key="tag" v-for="tag in addMsg.PriceNotIncludeList" closable :disable-transitions="false"
@close="handleClose2(tag)">{{tag}}</el-tag>
<el-input class="input-new-tag" v-if="inputVisible2" v-model="inputValue2" maxlength="6"
ref="saveTagInput" size="small" @keyup.enter.native="handleInputConfirm2" @blur="handleInputConfirm2">
</el-input>
<el-button v-else class="button-new-tag" size="small" @click="showInput2">+ {{$t('pub.addBtn')}}
</el-button>
</div>
</div>
</div>
<div class="resource-imginfo">
<div class="resourcerightTop">
<div class="toolOne">
<span class="fdTag width62">费用包含</span>
<div class="footabs">
<el-tag :key="tag" v-for="tag in addMsg.PriceIncludeList" closable :disable-transitions="false"
@close="handleClose(tag)">{{tag}}</el-tag>
<el-input class="input-new-tag" v-if="inputVisible" v-model="inputValue" maxlength="6"
ref="saveTagInput" size="small" @keyup.enter.native="handleInputConfirm" @blur="handleInputConfirm">
</el-input>
<el-button v-else class="button-new-tag" size="small" @click="showInput">+ {{$t('pub.addBtn')}}
</el-button>
</div>
</div>
<div class="toolOne">
<span class="fdTag width62">费用不包含</span>
<div class="footabs">
<el-tag :key="tag" v-for="tag in addMsg.PriceNotIncludeList" closable :disable-transitions="false"
@close="handleClose2(tag)">{{tag}}</el-tag>
<el-input class="input-new-tag" v-if="inputVisible2" v-model="inputValue2" maxlength="6"
ref="saveTagInput" size="small" @keyup.enter.native="handleInputConfirm2" @blur="handleInputConfirm2">
</el-input>
<el-button v-else class="button-new-tag" size="small" @click="showInput2">+ {{$t('pub.addBtn')}}
</el-button>
</div>
</div>
<el-form-item label="产品介绍">
<el-input type="textarea" class="w300" maxlength="1000" v-model="addMsg.Introduce"></el-input>
</el-form-item>
......@@ -834,7 +888,7 @@
<el-input type="textarea" maxlength="1000" v-model="addMsg.CancelPolicy" class="w300"></el-input>
</el-form-item>
<el-form-item label="描述" prop="">
<el-input type="textarea" maxlength="1000" v-model="addMsg.Description" class="w300"></el-input>
<el-input type="textarea" maxlength="300" v-model="addMsg.Description" class="w300"></el-input>
</el-form-item>
</div>
<span class="resource-lititle">{{$t('hotel.hotel_imgintroduce')}}</span>
......@@ -880,13 +934,21 @@
</el-dialog>
<el-dialog custom-class="mapList" title="地图选址" center :visible.sync="selectAddress">
<Map @refList="selectAddress=false" v-on:headCallBack="headCall" v-bind:Address="addMsg.AirportList[0].Address" :id="ID"></Map>
<Map @refList="selectAddress=false" v-on:headCallBack="headCall"
v-bind:Address="Address"
:id="ID" :type="MapType" :index="index"></Map>
<!-- <template v-if="MapType==1">
<Map @refList="selectAddress=false" v-on:headCallBack="headCall" v-bind:Address="addMsg.AirportList[0].Address" :id="ID" :type="MapType"></Map>
</template>
<template v-else>
<Map2 @refList="selectAddress=false" v-on:headCallBack="headCall" v-bind:Address="addMsg.AirportList[0].Address" :id="ID" :type="MapType"></Map2>
</template> -->
</el-dialog>
<div class="btn-list">
<span class="common-lefttit"></span>
<button class="save-Btn" @click="submitForm('addMsg')">{{$t('pub.saveBtn')}}</button>
<button class="cancel-Btn" @click="goUrl('scenicSpotList')">{{$t('pub.cancelBtn')}}</button>
<button class="cancel-Btn" @click="goUrl('CharteringProductList')">{{$t('pub.cancelBtn')}}</button>
</div>
<viewer :images="images" :options='imageOptions' @inited="inited" class="viewer" ref="viewer">
<img v-for="src in images" :src="src" :key="src">
......@@ -895,10 +957,14 @@
</template>
<script>
import Map from "./components/Map.vue";
import Map2 from "./components/Map.vue";
import DMCchooseImg from "../../commonPage/DMCchooseImg.vue";
export default {
data() {
return {
index:'',
Address: '',//地址
MapType:1,//1机场 2上车
imageOptions: {
navbar: false,
title: false
......@@ -971,6 +1037,7 @@
],
addMsg: {
TravelHours: '',//包车时长
Id: 0,
Name: "",//产品名称
CarType: "",//1接机 2送机 3包车
......@@ -983,7 +1050,7 @@
Description: '',//副标题、描述
PriceIncludeList: [],//费用包含
PriceNotIncludeList: [],//费用不包含
PlaceList: [
PlaceList: [//接机地址
{
Id:0,
ProductId: 0,//产品id
......@@ -995,7 +1062,7 @@
LngLatMultiple: '',//地图多边形描点, 自定义存多边形的点 (1,2 二选一)
}
],
AirportList:[
AirportList:[//送机地址
{
Id:0,
ProductId: 0,//产品id
......@@ -1051,6 +1118,16 @@
message: "请填写产品名称",
trigger: "blur"
}],
Name2: [{
required: true,
message: "请填写机场地址",
trigger: "blur"
}],
Name3: [{
required: true,
message: "请填写上车地址",
trigger: "blur"
}],
CarType: [{
required: true,
message: "请选择产品类型",
......@@ -1130,20 +1207,52 @@
pattern: this.$commonUtils.Regex.el_isInteger,
message: "请输入正确的数字"
}],
Range: [{
required: true,
message: "请输入上车距离中心范围",
trigger: "blur"
}],
TravelHours: [{
required: true,
message: "请输入包车时长",
trigger: "blur"
}],
},
Departure_airport:[]
Departure_airport:[],
querys:null,
loading: false
};
},
components: {
Map: Map,
Map2: Map2,
DMCchooseImg: DMCchooseImg
},
methods: {
clickMapAddress(type,index){
this.index = index
this.MapType = type
this.selectAddress = true
},
clickAirport(index,type){
if(type){
this.addMsg.AirportList.push(JSON.parse(JSON.stringify(this.AirportList)))
}else{
this.addMsg.AirportList.splice(index, 1)
}
},
clickPlace(index,type){
if(type){
this.addMsg.PlaceList.push(JSON.parse(JSON.stringify(this.PlaceList)))
}else{
this.addMsg.PlaceList.splice(index, 1)
}
},
// 获取机场名称
getAirportItem(id){
getAirportItem(item,id){
this.Departure_airport.forEach(x=>{
if(x.ID==id){
this.addMsg.AirportList[0].Name = x.Name
item.Name = x.Name
}
})
},
......@@ -1162,10 +1271,10 @@
this.addMsg.AirportList&&this.addMsg.AirportList.forEach(x=>{
// x.Id=0,
// x.ProductId= 0//产品id
x.AirportId= ''//机场id
x.AirportId= x.AirportId?x.AirportId:''//机场id
// x.Lng= ''
// x.Lat= ''
x.Name= ''//机场名称 包含IATA
x.Name= x.Name?x.Name:''//机场名称 包含IATA
// x.Address= ''//详细地址
})
}
......@@ -1174,10 +1283,10 @@
this.addMsg.AirportList&&this.addMsg.AirportList.forEach(x=>{
// x.Id=0,
// x.ProductId= 0//产品id
x.AirportId= 0//机场id
x.AirportId= x.AirportId?x.AirportId:''//机场id
// x.Lng= ''
// x.Lat= ''
x.Name= ''//机场名称 包含IATA
x.Name= x.Name?x.Name:''//机场名称 包含IATA
// x.Address= ''//详细地址
})
this.Departure_airport = res.data.data;
......@@ -1190,17 +1299,17 @@
this.$viewer = viewer
},
showImg: function (src) {
console.log(src,'---src')
return
let srcArr = src.split('?')
src = srcArr[0]
let isExsit = false
this.images.forEach(x => {
if (x === src)
isExsit = true
})
if (!isExsit)
this.images.push(src)
this.images = []
this.images = JSON.parse(JSON.stringify(this.addMsg.ImageList))
// let srcArr = src.split('?')
// src = srcArr[0]
// let isExsit = false
// this.images.forEach(x => {
// if (x === src)
// isExsit = true
// })
// if (!isExsit)
// this.images.push(src)
this.$viewer.show()
this.$viewer.view(this.images.indexOf(src))
},
......@@ -1218,7 +1327,6 @@
obj.Path = str;
obj.ShowPath = imgUrl;
this.addMsg.ImageList.push(obj.ShowPath)
console.log(this.addMsg.ImageList,'----imig')
});
},
//更新景点图片
......@@ -1253,22 +1361,19 @@
this.addimg = false;
},
saveResource() {
if(this.loading) return
this.addMsg.CityList.forEach(x=>{
this.addMsg.AirportList.forEach(y=>{
y.Country = x.Country
y.Province = x.Province
y.City = x.City
y.District = x.District
// y.District = x.District
})
})
console.log(this.addMsg,'======')
if (this.ID != "undefined") {
this.addMsg.Id = this.ID;
}
// let picPathArr = [];
// this.addMsg.ImageList.forEach(x => {
// picPathArr.push(x);
// });
this.loading = true
this.apipost(
"CarSingle_post_SetCarSingleProduct",
this.addMsg,
......@@ -1280,6 +1385,7 @@
} else {
this.tips(res.data.message, "error");
}
this.loading = false
},
null
);
......@@ -1334,6 +1440,7 @@
if (res.data.resultCode == 1) {
let dataInfo = res.data.data;
this.addMsg = {
TravelHours: dataInfo.TravelHours,
Id: this.ID,
Name: dataInfo.Name,//产品名称
CarType: String(dataInfo.CarType),//1接机 2送机 3包车
......@@ -1406,16 +1513,12 @@
District: ''//区
})
}else{
dataInfo.CityList.forEach(x=>{
dataInfo.CityList2.forEach(x=>{
let dataS = {
Country: x.Country,
Province: '',
City: '',
District: '',
Province: x.Province,
City: x.City,
}
x.City.forEach(y=>{
dataS.Province = y.City
})
this.addMsg.CityList.push(dataS)
})
}
......@@ -1429,38 +1532,6 @@
this.GetSubAreaList(this.addMsg.CityList[0].City, 3);
this.getaAirport(this.addMsg.CityList[0].City,true)
}
// this.addMsg.CarType = String(this.addMsg.CarType)
// this.addMsg.FreeCancelDay = Number(this.addMsg.FreeCancelDay)
return
if (this.addMsg.OpenPlatform) {
this.OpenPlatformStrings = this.addMsg.OpenPlatform.split(",");
this.OpenPlatformStrings.forEach(x => {
this.openplatString.push(Number(x));
});
}
if (res.data.data.ScenicSpotTag) {
this.tipsList = res.data.data.ScenicSpotTag.split(",");
}
if (res.data.data.GeographicTag) {
this.Geographic = res.data.data.GeographicTag.split(",");
}
if (res.data.data.Sure != null) {
this.addMsg.Sure = res.data.data.Sure.toString();
}
this.isBook = this.addMsg.IsSelfBook;
res.data.data.PicPath.split(",").forEach(x => {
if (x != "") {
var obj = this.$DMCUtils.DMCImageObj();
obj.ID = res.data.data.ID;
obj.Path = x;
obj.PicID = 0;
obj.ShowPath =
this.domainManager().ViittoFileUrl +
x +
"?x-oss-process=image/resize,l_140";
this.addMsg.ImageList.push(obj);
}
});
} else {
this.tips(res.data.message, "error");
}
......@@ -1477,6 +1548,12 @@
});
},
submitForm(addMsg) {
if(this.addMsg.PlaceList[0].Range&&this.addMsg.PlaceList[0].LngLatMultiple){
return this.tips('请输入距离中心点范围', "error");
}
if(!this.addMsg.ImageList[0]){
return this.tips('请上传图片', "error");
}
//提交创建、修改表单
let that = this;
that.$refs[addMsg].validate(valid => {
......@@ -1528,15 +1605,15 @@
},
getItemList(type) {
if (type == 1) {
this.tipsList.push(this.tipsItem);
this.addMsg.PriceIncludeList.push(this.tipsItem);
this.tipsItem = "";
} else {
this.Geographic.push(this.GeoItem);
this.addMsg.PriceNotIncludeList.push(this.GeoItem);
this.GeoItem = "";
}
},
handleClose(tag) {
this.tipsList.splice(this.tipsList.indexOf(tag), 1);
this.addMsg.PriceIncludeList.splice(this.addMsg.PriceIncludeList.indexOf(tag), 1);
},
showInput() {
......@@ -1555,7 +1632,7 @@
this.inputValue = "";
},
handleClose2(tag) {
this.Geographic.splice(this.Geographic.indexOf(tag), 1);
this.addMsg.PriceNotIncludeList.splice(this.addMsg.PriceNotIncludeList.indexOf(tag), 1);
},
showInput2() {
......@@ -1576,17 +1653,24 @@
googleMap() {
this.selectAddress = false;
},
headCall(msg) {
headCall(msg,type) {
// this.addMsg.QCountry = msg.country;
// this.addMsg.QProvince = msg.province;
// this.addMsg.QCity = msg.city;
// this.addMsg.Address = msg.address;
this.addMsg.AirportList.forEach(x=>{
x.Lng = msg.lng;
x.Lat = msg.lat;
})
if(type==1){
this.addMsg.AirportList.forEach(x=>{
x.Lng = msg.lng;
x.Lat = msg.lat;
})
}else{
this.addMsg.PlaceList.forEach(x=>{
x.Lng = msg.lng;
x.Lat = msg.lat;
})
}
this.addMsg.Lat = msg.lat;
},
//获取国家
GetCounrty() {
......@@ -1672,7 +1756,9 @@
this.IsHaveAuth = 1;
}
this.GetPayList();
this.ID = this.$route.query.id;
this.querys = this.$route.query
this.ID = this.querys.id;
this.addMsg.Name = this.querys.Name
this.init(); //开放平台
this.GetCounrty();
if (typeof this.ID != "undefined") {
......
<style scoped>
.combottomDiv{
width: inherit;
}
.lineMG .query_box {
font-size: 12px;
padding: 29px 0;
padding-right: 30px;
display: flex;
justify-content: space-between;
}
.lineMG .el-switch.is-checked .el-switch__core {
border-color: #4bca81;
background-color: #4bca81;
}
.lineMG .addCompany {
width: 440px;
max-height: 600px;
}
.lineMG .addCompany .el-dialog__body {
height: 486px;
overflow: auto;
}
.lineMG .query_box div label {
display: inline-block;
min-width: 80px;
text-align: right;
font-style: normal;
margin: 0 20px 0 0;
}
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
-webkit-appearance: none;
}
input[type="number"] {
-moz-appearance: textfield;
}
.lineType {
width: 51px;
height: 24px;
display: inline-block;
text-align: center;
line-height: 24px;
margin-top: 25px;
border-radius: 4px;
background-color: #ff9c00;
color: #ffffff;
}
.lineMG .LMTable tr {
height: 70px;
text-align: center !important;
background-color: #fff;
}
.comPanyNum {
font-size: 14px;
color: #333333;
display: inline-block;
font-weight: bold;
cursor: pointer;
margin-bottom: 5px;
text-decoration: underline;
}
.comPanyNum:hover {
color: #e95252;
}
.zhicai:first-child {
margin-top: 23px;
}
.zhicai {
color: #47bf8c;
}
.partCompany {
padding: 0;
box-shadow: 0px 1px 3px 0px #dedede;
}
.partCompany .popper__arrow::after {
border-bottom-color: #ededed !important;
}
.partCompany table {
padding: 10px 0 0 20px;
background-color: #ededed;
border-collapse: collapse;
border: 1px solid #d2d2d2;
font-size: 12px;
}
.partCompany table th {
background-color: #ededed;
padding: 5px;
}
.partCompany table td {
background-color: #ffffff;
padding: 9px 15px;
color: #333333;
border: 1px solid #d2d2d2;
}
.partCompany table td._d_name {
background-color: #ededed;
}
.partCompany table ._color_666 {
color: #666666;
}
.partCompany table tr._color_666 th {
padding: 9px 15px;
}
.LineName {
display: inline-block;
width: 170px;
margin: 30px 0 0 20px;
text-align: left;
}
.lineMG .LM_Back {
background-color: #f2f2f2;
}
.redType {
color: #e95252;
}
.lineMG .tbDiv {
overflow-y: auto;
}
.departListDiv {
width: 100%;
height: 200px;
overflow-y: auto;
}
.lineMG .tbDiv::-webkit-scrollbar {
width: 4px;
height: 8px;
}
.lineMG .tbDiv::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
border-radius: 4px;
background: #ededed;
}
.lineMG .tbDiv::-webkit-scrollbar-thumb {
border-radius: 4px;
-webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
background: #c9c9c9;
}
.departListDiv::-webkit-scrollbar {
width: 4px;
height: 8px;
}
.departListDiv::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
border-radius: 4px;
background: #ededed;
}
.departListDiv::-webkit-scrollbar-thumb {
border-radius: 4px;
-webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2);
background: #c9c9c9;
}
.LMTable {
width: 100%;
font-size: 12px;
}
.lineMG .LMTable tr th {
border-bottom: 1px solid #d1d1d1;
}
.lineMG .tbDiv .LMTable td {
border-bottom: 1px solid #d1d1d1;
border-right: 1px solid #d1d1d1;
position: relative;
text-align: center;
padding: 5px;
min-width: 250px;
}
.lineMG .tbDiv table {
padding-right: 80px;
margin-top: 10px;
border-top: 1px solid #d1d1d1;
border-left: 1px solid #d1d1d1;
border-right: 1px solid #d1d1d1;
}
.upFentan {
text-decoration: underline;
cursor: pointer;
position: absolute;
right: 13px;
top: 32%;
}
.subCountryList {
width: 150px;
text-align: left;
display: inline-block;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
position: relative;
top: 3px;
}
.lineMG ._addLineTB tr {
height: 40px !important;
}
.saveCompanyBtn {
margin-top: 20px;
}
.setItem {
cursor: pointer;
text-decoration: underline;
position: absolute;
right: 13px;
top: 32%;
}
._LMComdiv {
float: left;
width: 32%;
text-align: left;
margin-top: 20px;
}
.LineRank {
width: 24px;
height: 24px;
background-color: #2aaef2;
border-radius: 50%;
text-align: center;
line-height: 24px;
color: #fff;
margin: 15px auto 5px;
}
.lineMG .joinDepart {
display: inline-block;
margin-right: 50px;
text-align: left;
float: left;
width: 180px;
}
.lineMG .LM_Rank {
text-align: center;
}
._LowDisMoney {
text-align: left;
margin: 20px 0 0 25px;
}
.LM_Btcontent {
margin-left: 20px;
}
.LM_ul li {
height: 78px;
margin: 20px 0 0px 0px;
transition: linear all 0.5s;
background-color: #fff;
font-size: 12px;
border: 1px solid #dddddd;
overflow: hidden;
position: relative;
}
.LM_BTNList {
margin-top: 25px;
}
.lineMG .el-button-group .el-button {
padding: 5px;
}
.lineMG .LM_ul > li:hover {
box-shadow: 0px 0px 20px rgba(191, 191, 191, 1);
transition: all linear 0.5s;
}
.lineMG .el-date-editor.el-input,
.el-date-editor.el-input__inner {
width: auto;
}
.SP_datePicker .el-input__inner {
padding-right: 0 !important;
}
.SP_AddTicket {
margin: 10px 10px 0 30px;
}
</style>
<template>
<div class="flexOne lineMG">
<div class="query-box">
<ul>
<li>
<span>
<em>时间</em>
<el-date-picker class="w150" type="date" v-model='msg.QDate' value-format="yyyy-MM-dd" placeholder="">
</el-date-picker>
</span>
</li>
<li>
<input type="button" class="hollowFixedBtn" :value="$t('pub.searchBtn')" @click="resetPageIndex(),initDataTable()" />
<input type="button" class="normalBtn" :value="$t('pub.addBtn')" @click="clearInfo(),isShowDIv=true,divTitle='新增报价'" />
</li>
</ul>
</div>
<div class="commonContent" v-loading="loading">
<ul class="LM_ul">
<li v-for="(item,index) in tableData" :key="index">
<el-row :gutter="10">
<el-col :span="3">
<span class="LineName">{{item.StartDate}}{{item.EndDate}}</span>
</el-col>
<el-col :span="2">
<div class="_LowDisMoney">
<div>成本价</div>
{{item.CostPrice}}
</div>
</el-col>
<el-col :span="2">
<div class="_LowDisMoney">
<div>库存</div>
<div>{{item.Inventory}}</div>
</div>
</el-col>
<el-col :span="2">
<div class="_LowDisMoney">
<div>B2B价格</div>
<div>{{item.B2BPrice}}</div>
</div>
</el-col>
<el-col :span="2">
<div class="_LowDisMoney">
<div>B2C价格</div>
<div>{{item.B2CPrice}}</div>
</div>
</el-col>
<el-col :span="2">
<div class="_LowDisMoney">
<div>内部价格</div>
<div>{{item.SalesPrice}}</div>
</div>
</el-col>
<el-col :span="3">
<div class="_LowDisMoney">
<div>机场</div>
<div>{{item.AirportName}}</div>
</div>
</el-col>
<el-col :span="2">
<div class="_LowDisMoney">
<div>备注</div>
<div>{{item.Remark}}</div>
</div>
</el-col>
<el-col :span="2">
<div class="_LowDisMoney">
<div>币种</div>
<div>{{ getCurrencyName(item.CurrencyId )}}</div>
</div>
</el-col>
<el-col :span="2">
<div class="_LowDisMoney">
<div>汇率</div>
<div>{{item.CurrentRate}}</div>
</div>
</el-col>
<el-col :span="2">
<div class="LM_BTNList">
<el-tooltip class="item" effect="dark" :content="$t('system.table_edit')" placement="top-start">
<el-button type="primary" circle icon="el-icon-edit" @click="isShowDIv = true,divTitle='修改报价',updateData(item)"></el-button>
</el-tooltip>
<el-tooltip class="item" effect="dark" :content="$t('system.table_delete')" placement="top-start">
<el-button type="danger" circle icon="el-icon-delete" @click="isdelete(item.Id)"></el-button>
</el-tooltip>
</div>
</el-col>
</el-row>
</li>
</ul>
<div class="noData" v-show="noData">
{{$t('system.content_noData')}}
</div>
</div>
<div class="combottomDiv" v-if="isShowDIv">
<div class="combottomTitle">{{divTitle}}</div>
<div class="">
<el-form :model="addMsg" :rules="rules" ref="addMsg" label-width="100px">
<el-col :span="4">
<el-form-item :label="$t('hotel.hotel_StartDate')" prop="StartDate">
<el-date-picker class="SP_datePicker" :clearable="false" v-model='addMsg.StartDate' type="date" :picker-options="addPickerBeginDateBefore"
value-format="yyyy-MM-dd" placeholder="">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('hotel.hotel_EndDate')" prop="EndDate">
<el-date-picker class="SP_datePicker" :clearable="false" v-model='addMsg.EndDate' type="date" value-format="yyyy-MM-dd" :picker-options="addPickerBeginDateAfter"
placeholder="">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('hotel.hotel_CostPrice')" prop="CostPrice">
<el-input v-model="addMsg.CostPrice" @keyup.native="checkPrice(addMsg,'CostPrice')"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('hotel.hotel_Inventory')" prop="Inventory">
<el-input type="text" maxlength="8" v-model="addMsg.Inventory" @keyup.native="checkInteger(addMsg,'Inventory')"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('hotel.hotel_B2BPrice')" prop="B2BPrice">
<el-input type="text" v-model="addMsg.B2BPrice" @keyup.native="checkPrice(addMsg,'B2BPrice')"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('hotel.hotel_B2CPrice')" prop="B2CPrice">
<el-input type="text" v-model="addMsg.B2CPrice" @keyup.native="checkPrice(addMsg,'B2CPrice')"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('hotel.hotel_SalesPrice')" prop="SalesPrice">
<el-input type="text" v-model="addMsg.SalesPrice" @keyup.native="checkPrice(addMsg,'SalesPrice')"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label="机场" prop="AirportId" v-if="dataInfo.CarType==1||dataInfo.CarType==2">
<el-select v-model="addMsg.AirportId" filterable placeholder="请选择机场">
<!-- <el-option :label="$t('pub.unlimitedSel')" :value='SelectDefaultValue'></el-option> -->
<el-option v-for="item in AirportList" :key="item.AirportId" :label="item.AirportName" :value="item.AirportId"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('hotel.hotel_Currency')" prop="CurrencyId">
<el-select placeholder="请选币种" filterable @change="getCurrentRate(addMsg.CurrencyId)" v-model="addMsg.CurrencyId">
<el-option :label="$t('pub.unlimitedSel')" :value='SelectDefaultValue'></el-option>
<el-option v-for="item in allCurrencyList" :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item :label="$t('hotel.hotel_CurrentRate')" prop="CurrentRate">
<el-input v-model='addMsg.CurrentRate' @keyup.native="checkRate(addMsg,'CurrentRate')"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item :label="$t('hotel.hotel_remark')" prop="Remark">
<el-input type="textarea" v-model="addMsg.Remark"></el-input>
</el-form-item>
</el-col>
<el-col :span="4">
<div style="position: absolute;right: 10px;top: 12px;">
<button type="success" class="normalBtn subPrice" @click="submitForm('addMsg')">{{comBtnText}}</button>
<input type="button" class="normalBtn" @click="isShowDIv=false" value="取消" />
</div>
</el-col>
</el-form>
</div>
</div>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="msg.currentPage" layout="total,prev, pager, next, jumper"
:page-size="msg.pageSize" :total="msg.total">
</el-pagination>
</div>
</template>
<script>
export default {
data() {
var validateCurrent = (rule, value, callback) => {
if (value === 0) {
callback(new Error("请选择币种"));
}
};
return {
querys:null,
//供应商列表
AirportList: [],
//门票编号
ProductId: "",
//景点编号
CarId: "",
//是否自定(自定-不需要选择供应商,)
IsSelfBook: false,
//提交报价中
comBtnText: "保存",
//新增数据
addMsg: {
ID: 0,
CarId: 0,
ProductId: 0,
StartDate: "",
EndDate: "",
Inventory: 0,//库存数量
B2BPrice: 0.0,//B2B价格
B2CPrice: 0.0,//B2C价格
SalesPrice: 0.0,//内部价格
Remark: "",
CostPrice: 0.0,//成本价格
CurrencyId: 0,//币种
CurrentRate: 0.0,//汇率
AirportId: '',//机场ID (接送机才有)
},
rules: {
//表单必填验证
StartDate: [
{
required: true,
message: "开始日期必填",
trigger: "change"
}
],
EndDate: [
{
required: true,
message: "结束日期必填",
trigger: "change"
}
],
CostPrice: [
{
required: true,
message: "请输入成本价",
trigger: "change"
},
{
pattern: this.$commonUtils.Regex.el_Isdecimal,
message: "请输入两位小数"
}
],
Inventory: [
{
required: true,
message: "请输入库存",
trigger: "change"
},
{
pattern: this.$commonUtils.Regex.el_isInteger,
message: "请输入正确的数字"
}
],
B2BPrice: [
{
required: true,
message: "请输入B2B价格",
trigger: "change"
},
{
pattern: this.$commonUtils.Regex.el_Isdecimal,
message: "请输入两位小数"
}
],
B2CPrice: [
{
required: true,
message: "请输入B2C价格",
trigger: "change"
},
{
pattern: this.$commonUtils.Regex.el_Isdecimal,
message: "请输入两位小数"
}
],
SalesPrice: [
{
required: true,
message: "请输入成本价格",
trigger: "change"
},
{
pattern: this.$commonUtils.Regex.el_Isdecimal,
message: "请输入两位小数"
}
],
AirportId: [
{
required: true,
message: "请选择机场",
trigger: "change"
},
],
CurrencyId: [
// {
// validator:validateCurrent,
// trigger: "change"
// }
],
CurrentRate: [
{
required: true,
message: "请输输入汇率",
trigger: "change"
}
]
},
msg: {
pageIndex: 1,
pageSize: 14,
CarId: 0,
ProductId: 0,
QDate: "",
// EndDate: "",
total: 0,
currentPage: 1
},
tableData: [],
isShowDIv: false,
loading: true,
noData: false,
SelectDefaultValue: 0,
//所有币种
allCurrencyList: [],
addPickerBeginDateBefore: {
disabledDate: time => {
let endTime = new Date(this.addMsg.EndDate);
return endTime.getTime() < time.getTime();
}
},
addPickerBeginDateAfter: {
disabledDate: time => {
let startTime = new Date(this.addMsg.StartDate);
return startTime.getTime() >= time.getTime();
}
},
dataInfo:null
};
},
methods: {
//初始化列表数据
initDataTable() {
this.loading = true;
this.apipost(
"CarSingle_post_GetCarSinglePricePageList",
this.msg,
res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.msg.total = res.data.data.count;
this.tableData = res.data.data.pageData;
this.noData = !this.msg.total > 0;
}
},
null
);
},
resetPageIndex() {
this.msg.pageIndex = 1;
this.msg.currentPage = 1;
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.initDataTable();
},
//重置信息
clearInfo() {
this.addMsg.Id = 0;
this.addMsg.Inventory = "";
this.addMsg.B2BPrice = "";
this.addMsg.B2CPrice = "";
this.addMsg.SalesPrice = "";
this.addMsg.Remark = "";
this.addMsg.CostPrice = "";
this.addMsg.StartDate = "";
this.addMsg.EndDate = "";
this.addMsg.CurrencyId = 0;
this.addMsg.CurrentRate = "";
this.addMsg.AirportId = "";
},
//修改报价信息
updateData(item) {
this.addMsg = {
Id: item.Id,
CarId: this.CarId,
ProductId: this.ProductId,
StartDate: item.StartDate,
EndDate: item.EndDate,
Inventory: item.Inventory,//库存数量
B2BPrice: item.B2BPrice,//B2B价格
B2CPrice: item.B2CPrice,//B2C价格
SalesPrice: item.SalesPrice,//内部价格
Remark: item.Remark,
CostPrice: item.CostPrice,//成本价格
CurrencyId: item.CurrencyId,//币种
CurrentRate: item.CurrentRate,//汇率
AirportId: item.AirportId,
}
},
//获取所有币种
getAllCurrency() {
this.apipost(
"financeinfo_post_GetList",
{},
res => {
if (res.data.resultCode == 1) {
this.allCurrencyList = res.data.data;
}
},
err => {}
);
},
//获取当前下拉选中币种汇率
getCurrentRate(currencyId) {
this.addMsg.CurrentRate = 0.0;
this.allCurrencyList.forEach(x => {
if (x.ID == currencyId) {
this.addMsg.CurrentRate = x.Rate;
}
});
},
//获取去币种名
getCurrencyName(currencyId) {
let currencyName = "";
this.allCurrencyList.forEach(x => {
if (x.ID == currencyId) {
currencyName = x.Name + "(" + x.Code + ")";
}
});
return currencyName;
},
//HK新增查询条件
initAirport() {
this.apipost(
"CarSingle_post_GetCarSingleAirportList",
{ ProductId: this.ProductId },
response => {
if (response.data.resultCode == 1) {
this.AirportList = response.data.data;
}
},
null
);
},
// 获取产品详情
getInfo() {
this.apipost(
"CarSingle_post_GetCarSingleProductInfo",
{
ProductId: this.ProductId
},
res => {
if (res.data.resultCode == 1) {
this.dataInfo = res.data.data;
}
}
);
},
//提交景点报价
hotelOfferSet() {
this.addMsg.ProductId = this.ProductId;
this.addMsg.CarId = this.CarId;
let msg = []
msg.push(this.addMsg)
this.apipost(
"CarSingle_post_SetCarSinglePrice",
msg,
res => {
if (res.data.resultCode == 1) {
this.initDataTable();
this.Success("保存成功!");
this.isShowDIv = false;
this.resetForm("addMsg");
this.goUrl('CharteringProductList',this.CarId);
} else {
this.Error(res.data.message);
}
},
null
);
},
isdelete(Id) {
var that = this;
that.Confirm("是否删除?", function() {
that.apipost(
"ticketcouponsprice_post_Remove",
{
PriceId: Id
},
res => {
if (res.data.resultCode == 1) {
that.Success("删除成功!");
that.initDataTable();
that.goUrl('ticketManagement',that.CarId);
} else {
that.Error(res.data.message);
}
},
null
);
});
},
//提交创建、修改表单
submitForm(addMsg) {
let that = this;
that.$refs[addMsg].validate(valid => {
if (valid) {
that.hotelOfferSet();
} else {
return false;
}
});
},
resetForm(formName) {
this.$refs[formName].resetFields();
},
//获取供应商是否显示
getSuplier() {
this.apipost(
"ticketcoupons_post_Get",
{
ID: this.CarId
},
res => {
if (res.data.resultCode == 1) {
this.IsSelfBook = res.data.data.IsSelfBook;
}
}
);
},
goUrl(path, id) {
this.$router.push({
name: path,
query: {
id: id
}
});
},
},
mounted() {
if(this.$route.query&&this.$route.query.obj){
this.querys = JSON.parse(this.$route.query.obj)
this.CarId = this.querys.CarId;
this.ProductId = this.querys.ProductId;
this.msg.CarId = this.querys.CarId;
this.msg.ProductId = this.querys.ProductId;
}
this.getSuplier();
this.initAirport();
this.getAllCurrency();
this.initDataTable();
this.getInfo()
}
};
</script>
\ No newline at end of file
......@@ -252,7 +252,7 @@
@click="resetPageIndex(),selectResource()">{{$t('pub.searchBtn')}}</button>
<button class="normalBtn" type="button"
@click="$router.push('CharteringInfoManage')">{{$t('pub.addBtn')}}</button>
<button class="hollowFixedBtn" type="button" @click="DownLoadFile()">{{$t('adm.adm_download')}}</button>
<!-- <button class="hollowFixedBtn" type="button" @click="DownLoadFile()">{{$t('adm.adm_download')}}</button> -->
</li>
</ul>
</div>
......@@ -296,6 +296,7 @@
<div class="btnList">
<button @click="goUrl('CharteringInfoManage',item.Id)" class="hotelBtn">{{$t('pub.updateMsg')}}</button>
<button @click="goUrlT('CharteringQuotation',item.Id,item.Name)" class="hotelBtn">报价</button>
<button class="hotelBtn" @click="clickShelf(item)">{{item.ProductState==2?'上架':'下架'}}</button>
</div>
</div>
<div class="noData" v-show="noData">{{$t('system.content_noData')}}</div>
......@@ -355,6 +356,34 @@
};
},
methods: {
// 上下架
clickShelf(item){
var that = this;
let text
if(item.ProductState==1){
text = '下架'
}if(item.ProductState==2){
text = '上架'
}
that.Confirm(`是否要${text}该包车产品?`, function () {
var msg = {
ProductId: item.Id
};
that.apipost(
"CarSingle_post_SetCarSingleProcudtState",
msg,
res => {
if (res.data.resultCode == 1) {
that.Success(res.data.message);
that.selectResource();
} else {
that.Error(res.data.message);
}
},
null
);
});
},
CopyScenic(Id) {
var that = this;
that.Confirm('是否要复制此景点?', function () {
......@@ -435,7 +464,7 @@
},
response => {
if (response.data.resultCode == 1) {
that.Success(that.$$t('tips.shanchuchenggong'));
that.Success(that.$t('tips.shanchuchenggong'));
that.selectResource();
} else {
that.Error(response.data.message);
......@@ -508,12 +537,15 @@
}
});
},
goUrlT(path, id) {
goUrlT(path, id,Name) {
let data = {
id: id,
Name: Name,
}
this.$router.push({
path: path,
query: {
id: id,
Name: Name,
obj: JSON.stringify(data),
blank: 'y',
tab: '产品报价'
}
......
......@@ -107,13 +107,13 @@
<div class="query-box">
<ul>
<li>
<label class="">{{$t('scen.sc_name')}}</label>
<label class="">类型名称</label>
<el-input v-model="msg.CarName" maxlength="30" @keyup.native.enter="getList"></el-input>
</li>
<li>
<input type="button" class="hollowFixedBtn" :value="$t('pub.searchBtn')"
@click="getList(),resetPageIndex()" />
<input type="button" class="normalBtn" @click="outerVisible = true,dialogTitle='添加门票'"
<input type="button" class="normalBtn" @click="outerVisible = true,dialogTitle='添加包车'"
:value="$t('pub.addBtn')" />
</li>
</ul>
......@@ -121,11 +121,12 @@
<table class="singeRowTable centerTable" border="0" cellspacing="0" cellpadding="0" v-loading="loading"
style="border-collapse:separate;border-spacing:0px 10px;table-layout:fixed;">
<tr>
<th width="200">{{$t('scen.sc_name')}}</th>
<th width="200">包车名称</th>
<th width="200">{{$t('scen.sc_bjts')}}</th>
<th>{{$t('scen.sc_dj')}}</th>
<th>{{$t('scen.sc_gj')}}</th>
<th width="300">{{$t('hotel.hotel_remark')}}</th>
<th>操作人</th>
<th>{{$t('system.table_operation')}}</th>
</tr>
<tr v-for="item in DataList" :key="item.subCode">
......@@ -136,37 +137,43 @@
</el-tooltip>
</td>
<td class="DaysInfo">
<span><i class="iconfont icon-kaoqintongji"></i>{{item.Days}}{{$t('hotel.hotel_item')}}</span>
<span><i class="iconfont icon-kaoqintongji"></i>{{item.PeopleNum}}{{$t('hotel.hotel_item')}}</span>
</td>
<td>
<p class="clearfix">
<span class="tit_name T1">{{getCurrencyCode(item.CurrencyId)}}</span><span
class='tit_name T2'>{{item.LPrice}}</span>
<!-- <span class="tit_name T1">{{getCurrencyCode(item.CurrencyId)}}</span> -->
<span
class='tit_name T2'>{{item.MinPrice}}</span>
</p>
<p class="Ldata">{{item.LDate}}</p>
<!-- <p class="Ldata">{{item.LDate}}</p> -->
</td>
<td>
<p class="clearfix">
<span class="tit_name T1">{{getCurrencyCode(item.CurrencyId)}}</span><span
class='tit_name HP'>{{item.HPrice}}</span>
<!-- <span class="tit_name T1">{{getCurrencyCode(item.CurrencyId)}}</span> -->
<span
class='tit_name HP'>{{item.MaxPrice}}</span>
</p>
<p class="Ldata">{{item.HDate}}</p>
<!-- <p class="Ldata">{{item.HDate}}</p> -->
</td>
<td>
<el-tooltip class="item" effect="dark" v-if="item.TicketDesc" :content="item.TicketDesc" placement="top-start"
<el-tooltip class="item" effect="dark" v-if="item.Description" :content="item.Description" placement="top-start"
popper-class="max-w250">
<span class="descripTion">{{item.TicketDesc}}</span>
<span class="descripTion">{{item.Description}}</span>
</el-tooltip>
</td>
<td>
{{item.UpdateByName}}
<p style="color: #6E6E6E;">{{item.UpdateTime}}</p>
</td>
<td>
<el-button-group>
<el-tooltip class="item" effect="dark" content="修改" placement="top-start">
<el-button type="primary" icon="iconfont icon-Edit"
@click="outerVisible = true,dialogTitle='修改门票',updateResturant(item.Id)"></el-button>
@click="outerVisible = true,dialogTitle='修改包车',updateResturant(item)"></el-button>
</el-tooltip>
<el-tooltip class="item" effect="dark" content="报价管理" placement="top-start">
<el-button type="primary" icon="iconfont icon-ico_shezhi"
@click="goUrl('scenicSpotPackagePrice',item.Id)"></el-button>
@click="goUrl('CharteringPackagePrice',item.Id)"></el-button>
</el-tooltip>
<el-tooltip class="item" effect="dark" :content="$t('system.table_delete')" placement="top-start">
<el-button type="danger" icon="el-icon-delete" @click="isDelete(item.Id)"></el-button>
......@@ -178,23 +185,14 @@
<el-dialog custom-class='w500' :visible.sync="outerVisible" :title="dialogTitle" center
:before-close="closeChangeMachie">
<el-form :model="addMsg" :rules="rules" ref="addMsg" label-width="110px">
<el-form-item :label="$t('scen.sc_mpzy')" prop="ProductId">
<el-select :placeholder="$t('pub.pleaseSel')" class="w300" disabled v-model="addMsg.ProductId">
<el-option v-for="item in TicketCouponsList" :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('scen.sc_name')" prop="CarName">
<el-form-item label="包车名称" prop="CarName">
<el-input class="w300" type="text" v-model="addMsg.CarName" maxlength="20"></el-input>
</el-form-item>
<el-form-item :label="$t('scen.sc_type_name')" prop="TicketCouponsType">
<el-select filterable v-model='addMsg.TicketCouponsType' :placeholder="$t('pub.pleaseSel')" class="w300">
<el-option v-for='item in TickettTypeList' :label='item.Name' :value='item.ID' :key='item.ID'>
</el-option>
</el-select>
<el-form-item label="包车类型" prop="PeopleNum">
<el-input-number v-model="addMsg.PeopleNum":min="1" label="最大可乘坐人数"></el-input-number>
</el-form-item>
<el-form-item :label="$t('hotel.hotel_produceDes')" prop="TicketDesc">
<el-input class="w300" type="textarea" v-model="addMsg.TicketDesc" maxlength="200"></el-input>
<el-form-item :label="$t('hotel.hotel_produceDes')" prop="">
<el-input class="w300" type="textarea" v-model="addMsg.Description" maxlength="300"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
......@@ -219,7 +217,6 @@
msg: {
pageIndex: 1,
pageSize: 6,
CarName: "",
ProductId: "",
CarName: "",
Status: "-1"
......@@ -228,11 +225,10 @@
Id: "0",
ProductId: "",
CarName: "",
TicketDesc: "",
TicketCouponsType: "",
Description: "",
PeopleNum: "",
},
TicketID: "",
TickettTypeList: [],
ProductId: "",
loading: true,
total: 0,
currentPage: 1,
......@@ -243,21 +239,24 @@
TicketCouponsList: "",
rules: {
//表单必填验证
ProductId: [{
CarName: [{
required: true,
message: "请选择门票资源"
message: "请输入产品名称",
trigger: "blur"
}],
TicketCouponsType: [{
PeopleNum: [{
required: true,
message: "请选择门票类型"
message: "请请输入最大可乘坐人数"
}]
},
allCurrencyList: []
allCurrencyList: [],
querys:null
};
},
methods: {
getList() {
this.loading = true;
// CarSingle_post_GetCarSingleTypePageList
this.apipost(
"CarSingle_post_GetCarSingleTypePageList",
this.msg,
......@@ -274,7 +273,7 @@
},
saveResource() {
this.apipost(
"ticketcouponsticket_post_Set",
"CarSingle_post_SetCarSingleType",
this.addMsg,
res => {
if (res.data.resultCode == 1) {
......@@ -289,23 +288,14 @@
null
);
},
updateResturant(Id) {
let msg = {
ID: Id
};
this.addMsg.Id = Id;
this.apipost(
"ticketcouponsticket_post_Get",
msg,
res => {
if (res.data.resultCode == 1) {
this.addMsg = res.data.data;
} else {
this.Error(res.data.message);
}
},
null
);
updateResturant(item) {
this.addMsg = {
Id: item.Id,
ProductId: this.ProductId,
CarName: item.CarName,
Description: item.Description,
PeopleNum: item.PeopleNum,
}
},
isDelete(ID) {
this.$confirm('是否删除?', '提示', {
......@@ -317,8 +307,8 @@
type: 'success',
message: '删除成功!'
});
this.apipost('ticketcouponsticket_post_Remove', {
ID: ID
this.apipost('CarSingle_post_DelCarSingleType', {
CarTypeId: ID
}, res => {
if (res.data.resultCode == 1) {
this.getList()
......@@ -332,23 +322,19 @@
});
},
goUrl(path, id) {
let data = {
CarId: id,
ProductId: this.ProductId,
}
this.$router.push({
path: path,
query: {
TicketID: id,
ProductId: this.TicketID,
obj: JSON.stringify(data),
blank: 'y',
tab: '报价管理'
}
});
},
GetTicketType() {
this.apipost('ticketcouponsprice_post_GetTicketType', {}, res => {
if (res.data.resultCode == 1) {
this.TickettTypeList = res.data.data
}
}, err => {})
},
//翻页功能按钮
handleCurrentChange(val) {
this.msg.pageIndex = val;
......@@ -359,7 +345,7 @@
this.msg.pageIndex = 1;
this.currentPage = 1;
},
//初始化门票资源
//初始化包车资源
initResrestaurant() {
let msg = {};
this.apipost(
......@@ -375,12 +361,6 @@
},
submitForm(addMsg) {
//提交创建、修改表单
this.TickettTypeList.forEach(item => {
if (this.addMsg.TicketCouponsType == item.ID) {
// HK 2020-05-06注释
//this.addMsg.CarName = item.Name
}
})
let that = this;
that.$refs[addMsg].validate(valid => {
if (valid) {
......@@ -404,7 +384,7 @@
//弹出框关闭初始化弹框内表单
done();
this.resetForm("addMsg");
this.addMsg.ProductId = parseInt(this.$route.query.id);
this.addMsg.ProductId = parseInt(this.querys.id);
},
resetForm(formName) {
this.clearMsg();
......@@ -434,14 +414,14 @@
}
},
mounted() {
this.msg.ProductId = this.$route.query.id;
this.msg.CarName = this.$route.query.Name;
this.addMsg.ProductId = parseInt(this.$route.query.id);
this.querys = JSON.parse(this.$route.query.obj)
this.msg.ProductId = this.querys.id;
this.addMsg.CarName = this.querys.Name
this.addMsg.ProductId = parseInt(this.querys.id);
this.initResrestaurant();
this.TicketID = this.$route.query.id;
this.ProductId = this.querys.id;
this.getAllCurrency();
this.getList();
this.GetTicketType();
}
};
</script>
\ No newline at end of file
......@@ -4,7 +4,7 @@
<el-input class="w300" style="margin-right: 10px;" id="suggestId" v-model="city" placeholder="请输入搜索名称" name="address_detail" />
<input type="button" class="normalBtn sureBtn" value="搜索" @click="search"/>
</div>
<div style="height: 330px;width: 100%;margin-top: 15px;" :id="`allmap_${id}`"></div>
<div style="height: 330px;width: 100%;margin-top: 15px;" :id="`allmap_${id}${type}_${index}`"></div>
<div class="btnList">
<input type="button" class="normalBtn sureBtn" value="确定" @click="sendMsg"/>
<input type="button" class="hollowFixedBtn" value="取消" @click="closeDialog"/>
......@@ -14,7 +14,7 @@
<script>
export default {
props: ["Address","id"],
props: ["Address","id","type","index"],
data(){
return{
city: '',
......@@ -47,15 +47,15 @@ export default {
},
sendMsg() {
if (!this.point.lng) {
this.tips("请搜索选择", "info");
this.Error("请搜索选择");
} else {
this.$emit("headCallBack", this.point);
this.$emit("headCallBack", this.point,this.type);
this.$emit("refList");
}
},
search(){
var that = this
var map = new BMap.Map(`allmap_${that.id}`)
var map = new BMap.Map(`allmap_${that.id}${that.type}_${that.index}`)
var local = new BMap.LocalSearch(map, { // 智能搜索
onSearchComplete: function (){
if(local.getResults()&&local.getResults().getPoi(0)&&local.getResults().getPoi(0).point){
......@@ -85,7 +85,7 @@ export default {
this.$nextTick(function() {
var that = this
// 创建Map实例
var map = new BMap.Map(`allmap_${that.id}`)
var map = new BMap.Map(`allmap_${that.id}${that.type}_${that.index}`)
// 初始化地图,设置中心点坐标,
var point = new BMap.Point(120.211877, 30.255194) // 创建点坐标
map.centerAndZoom(point, 15)
......
......@@ -2066,7 +2066,15 @@ export default {
name: 'CharteringQuotation',
component: resolve => require(['@/components/busManagement/CharteringManagement/CharteringQuotation'], resolve),
meta: {
title: '产品报价'
title: '包车产品类型'
},
},
{
path: '/CharteringPackagePrice', //包车产品报价
name: 'CharteringPackagePrice',
component: resolve => require(['@/components/busManagement/CharteringManagement/CharteringPackagePrice'], resolve),
meta: {
title: '包车产品报价'
},
},
{
......
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