Commit 69568692 authored by 罗超's avatar 罗超

1

parent 8c9c1b69
......@@ -595,7 +595,6 @@
if(this.defaultAccount==undefined){
this.defaultA=true;
}else{
this.defaultA=this.defaultAccount;
}
this.myToolbar = "toolbar_" + this.guid();
......
......@@ -854,9 +854,10 @@
<el-time-select
v-model="item.StartTime"
:picker-options="{
start: '08:30',
start: '00:00',
step: '00:15',
end: '18:30',
end: '23:45',
maxTime:item.EndTime
}"
placeholder="选择开始时间"
>
......@@ -864,9 +865,10 @@
<el-time-select
v-model="item.EndTime"
:picker-options="{
start: '08:30',
start: '00:00',
step: '00:15',
end: '18:30',
end: '23:45',
minTime:item.StartTime
}"
placeholder="选择结束时间"
>
......@@ -1057,7 +1059,7 @@
</el-select>
</el-form-item>
<el-form-item label="美食分类">
<el-select
<!-- <el-select
v-model="addMsg.FoodType"
class="multiple_input w300"
:placeholder="$t('pub.pleaseSel')"
......@@ -1071,7 +1073,8 @@
:value="item.ID"
>
</el-option>
</el-select>
</el-select> -->
<el-cascader :options="FoodTypeList" v-model="addMsg.FoodType" :props="FoodTypeProps"></el-cascader>
</el-form-item>
<el-form-item :label="$t('Operation.Op_price')">
<el-select
......@@ -1622,7 +1625,26 @@ export default {
endDay: "", //结束日
showaddTag:false,
tagName:"",
tagIndex:0
tagIndex:0,
FoodTypeProps:{
label:'Name',
value:"ID",
lazy: true,
lazyLoad (node, resolve) {
const { level } = node;
console.log(node)
setTimeout(() => {
const nodes = Array.from({ length: level + 1 })
.map(item => ({
value: ++id,
label: `选项${id}`,
leaf: level >= 2
}));
resolve(nodes);
}, 1000);
}
}
};
},
components: {
......@@ -1839,7 +1861,8 @@ export default {
} else {
this.tips(res.data.message, "error");
}
console.log("图片",this.DiningImageArray);
this.startDay=parseInt(res.data.data.BusinessWeek.slice(0,1))
this.endDay=parseInt(res.data.data.BusinessWeek.slice(-1))
},
null
);
......@@ -2071,6 +2094,9 @@ export default {
(res) => {
if (res.data.resultCode == 1) {
this.FoodTypeList = res.data.data;
this.FoodTypeList.forEach(item=>{
item.children=[]
})
}
},
(err) => {}
......@@ -2088,6 +2114,7 @@ export default {
delFood(index) {
this.addMsg.FoodRecommendList.splice(index, 1);
},
//获取周长枚举
getweekenum() {
this.apipost(
"appletsdining_Post_GetBusinessWeekEnumType",
......
......@@ -180,15 +180,22 @@
<el-form-item :label="$t('restaurant.res_packageName')" prop="MealName">
<el-input class="w300" type="text" v-model="addMsg.MealName" maxlength="20"></el-input>
</el-form-item>
<el-form-item :label="$t('restaurant.res_package_type_Name')" prop="DiningMealType">
<!-- <el-form-item :label="$t('restaurant.res_package_type_Name')" prop="DiningMealType">
<el-select filterable v-model='addMsg.DiningMealType' :placeholder="$t('pub.pleaseSel')" class="w300">
<el-option v-for='item in DiningMealTypeList' :label='item.Name' :value='item.ID' :key='item.ID'>
</el-option>
</el-select>
</el-form-item>
</el-form-item> -->
<el-form-item :label="$t('hotel.hotel_produceDes')" prop="MealDesc">
<!-- <el-form-item :label="$t('hotel.hotel_produceDes')" prop="MealDesc">
<el-input class="w300" type="textarea" v-model="addMsg.MealDesc" maxlength="200"></el-input>
</el-form-item> -->
<el-form-item label="使用时间" prop="MealDesc">
<el-input class="w300" type="text" v-model="addMsg.MealDesc" maxlength="200"></el-input>
</el-form-item>
<el-form-item label="使用说明" prop="MealDesc">
<el-input class="w300" type="text" v-model="addMsg.MealDesc" maxlength="200"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
......@@ -222,6 +229,7 @@
MealName: "",
MealDesc: "",
DiningMealType: "",
UsageTimeList:[]
},
loading: true,
DiningMealTypeList: [],
......
......@@ -438,7 +438,7 @@
<el-input type="text" class="w210" v-model="addMsg.CostPrice"
@keyup.native="checkPrice(addMsg,'CostPrice')"></el-input>
</el-form-item>
<el-form-item :label="$t('hotel.hotel_SalesPrice')" prop="SalesPrice">
<el-form-item label="原价" prop="SalesPrice">
<el-input type="text" class="w210" v-model="addMsg.SalesPrice"
@keyup.native="checkPrice(addMsg,'SalesPrice')"></el-input>
</el-form-item>
......
<style>
.scenicSpotInfoManage .resourceImgAdd {
width: 620px;
margin: auto;
}
.scenicSpotInfoManage .clearfix:after {
content: "\0020";
display: block;
height: 0;
clear: both;
}
.scenicSpotInfoManage .resource-content {
width: 100%;
margin-top: 30px;
font-size: 12px;
min-width: 1200px;
}
.scenicSpotInfoManage .resource-baseinfo {
float: left;
height: auto;
width: 600px;
margin: 0 0 20px 30px;
}
.scenicSpotInfoManage .resource-imginfo {
float: left;
width: 510px;
margin-top: 35px;
}
.scenicSpotInfoManage .resource-lititle {
display: block;
border-left: 4px solid #e95252;
padding-left: 10px;
margin-bottom: 20px;
}
.scenicSpotInfoManage .resource-baseinfo span {
display: inline-block;
}
.scenicSpotInfoManage .resource-name {
width: 300px;
height: 34px;
background: rgba(255, 255, 255, 1);
border-radius: 17px;
outline: none;
border: 1px solid #d6d6d6;
padding-left: 10px;
}
.scenicSpotInfoManage .common-lefttit {
width: 80px;
text-align: right;
margin: 0 7px 0 8px;
display: inline-block;
}
.scenicSpotInfoManage .resource-net {
position: relative;
}
.scenicSpotInfoManage .resource-http {
position: absolute;
color: #999999;
width: 70px !important;
background-color: #f5f7fa;
border-right: 1px solid #d1d1d1;
height: 32px;
border-top-left-radius: 17px;
border-bottom-left-radius: 17px;
top: 5px;
left: 1px;
text-align: center;
line-height: 32px;
text-align: center;
}
.scenicSpotInfoManage .R1 {
width: 300px;
padding: 0 15px 0 80px;
transition: all 0.3s ease-in-out;
}
.scenicSpotInfoManage .areaInput {
width: 300px;
padding-right: 120px;
}
.scenicSpotInfoManage .areaInput:focus {
border: 1px solid #e95252;
}
.scenicSpotInfoManage .map-icon {
position: absolute;
right: 1px;
top: 1px;
line-height: 32px;
text-align: center;
border-left: 1px solid #cccccc;
border-top-right-radius: 17px;
border-bottom-right-radius: 17px;
padding-right: 15px;
padding-left: 10px;
cursor: pointer;
display: inline-block;
height: 32px;
background-color: #f5f7fa;
}
.scenicSpotInfoManage .map-icon i {
margin: 0 5px;
position: relative;
top: 1px;
}
.scenicSpotInfoManage .save-Btn {
width: 90px;
height: 30px;
background: rgba(233, 82, 82, 1);
border-radius: 15px;
color: #fff;
outline: none;
cursor: pointer;
margin-right: 20px;
}
.scenicSpotInfoManage .cancel-Btn,
.save-Btn:hover {
opacity: 0.8;
}
.scenicSpotInfoManage .cancel-Btn {
width: 90px;
height: 30px;
background: rgba(255, 255, 255, 1);
border-radius: 15px;
color: #e95252;
outline: none;
cursor: pointer;
border: 1px solid #e95252;
}
.scenicSpotInfoManage .re-img {
width: 140px;
height: 93px;
border-radius: 10px;
float: left;
margin: 0 30px 30px 0;
position: relative;
}
.scenicSpotInfoManage .re-img:first-child {
margin-left: 0;
}
.scenicSpotInfoManage .resource-imglist {
width: 100%;
height: auto;
margin-top: 20px;
}
.scenicSpotInfoManage .resource-imglist img {
width: 100%;
height: 100%;
border-radius: 10px;
}
.scenicSpotInfoManage .add-img {
margin-top: 20px;
}
.scenicSpotInfoManage .reimg-add {
width: 140px;
height: 93px;
background: rgba(236, 236, 236, 1);
border-radius: 10px;
position: relative;
cursor: pointer;
}
.scenicSpotInfoManage .ad-one {
display: none;
background: rgba(0, 0, 0, 0.4);
width: 100%;
height: 100%;
border-radius: 10px;
position: absolute;
top: 0;
z-index: 999;
}
.scenicSpotInfoManage .bigAdd {
font-size: 50px;
color: #d1d1d1;
position: absolute;
left: 45px;
top: 10px;
}
.scenicSpotInfoManage .imgzhe {
display: none;
background: rgba(0, 0, 0, 0.4);
width: 100%;
height: 100%;
text-align: center;
line-height: 93px;
border-radius: 10px;
position: absolute;
top: 0;
}
.scenicSpotInfoManage .reimg-add:hover .ad-one {
display: block;
}
.scenicSpotInfoManage .re-img:hover .imgzhe {
display: block;
}
.scenicSpotInfoManage .ad-one div {
width: 32px;
height: 32px;
border-radius: 50%;
line-height: 32px;
text-align: center;
background: gray;
color: #fff;
}
.scenicSpotInfoManage .ad-one div:hover {
background-color: #fff;
color: #e95252;
}
.scenicSpotInfoManage .re-upload {
position: absolute;
top: 30px;
left: 30px;
}
.scenicSpotInfoManage .re-find {
position: absolute;
top: 30px;
right: 30px;
}
.scenicSpotInfoManage .search-imgicon {
padding-right: 20px;
margin-left: -40px;
}
.scenicSpotInfoManage .resAddImg {
width: 520px;
padding-right: 45px;
}
.scenicSpotInfoManage .addimgContent {
height: 290px;
overflow: auto;
margin: 30px 0 30px 25px;
width: 545px;
}
.scenicSpotInfoManage .addimgDiv {
width: 160px;
height: 155px;
float: left;
margin: 0 20px 15px 0;
overflow: hidden;
}
.scenicSpotInfoManage .addimgContent div:first-child {
margin-left: 0;
}
.addimgContent div:nth-child(3n) {
margin-right: 0;
}
.scenicSpotInfoManage .itemImgdiv {
width: 160px;
height: 106px;
position: relative;
}
.scenicSpotInfoManage .itemImgdiv img {
width: 100%;
height: 100%;
border-radius: 10px;
}
.scenicSpotInfoManage .imgseclet {
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.4);
border-radius: 10px;
position: absolute;
top: 0;
text-align: center;
line-height: 106px;
color: #e95252;
}
.icon-dagouyouquan {
font-size: 25px;
}
.scenicSpotInfoManage .test-1::-webkit-scrollbar {
width: 0px;
height: 0px;
background-color: #f5f5f5;
}
.scenicSpotInfoManage .test-1::-webkit-scrollbar-track {
background-color: #f5f5f5;
}
.scenicSpotInfoManage .test-1::-webkit-scrollbar-thumb {
border-radius: 20px;
background-color: #aaa;
margin-bottom: 24px;
}
.scenicSpotInfoManage .test-1:hover::-webkit-scrollbar {
width: 4px;
height: 4px;
background-color: #f5f5f5;
}
.scenicSpotInfoManage .addimg-btnlist {
text-align: center;
}
.scenicSpotInfoManage .addimg-select {
font-size: 14px;
color: #999999;
float: right;
margin-bottom: 10px;
position: relative;
bottom: 20px;
}
.scenicSpotInfoManage .re-delte {
width: 32px;
height: 32px;
background: gray;
border-radius: 50%;
text-align: center;
display: inline-block;
line-height: 32px;
color: #fff;
cursor: pointer;
}
.scenicSpotInfoManage .re-delte:hover {
color: #e95252;
background: #fff;
}
.scenicSpotInfoManage .imgDescription {
font-size: 12px;
margin-top: 12px;
color: #333333;
width: 100%;
line-height: 20px;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
.scenicSpotInfoManage .el-upload-dragger {
border: none;
}
.scenicSpotInfoManage .res-span span:last-child {
display: inline;
}
.scenicSpotInfoManage .resourcerightTop span {
display: inline-block;
}
.scenicSpotInfoManage .sheshi {
margin-bottom: 20px;
}
.scenicSpotInfoManage .dialog-footer {
padding-bottom: 30px;
}
.scenicSpotInfoManage .btn-list {
margin: 0 0 40px 30px;
}
.scenicSpotInfoManage .input-with-select .el-input-group__prepend {
background-color: #fff;
}
.scenicSpotInfoManage .el-textarea__inner {
resize: none;
height: 120px;
font-family: "微软雅黑";
}
.scenicSpotInfoManage .R1:focus {
border: 1px solid #e95252;
}
.scenicSpotInfoManage .el-form-item__label {
width: 96px;
font-size: 12px;
}
.scenicSpotInfoManage .el-form-item__error {
left: 100px;
}
.scenicSpotInfoManage .hotelDay {
margin-left: 10px;
}
.scenicSpotInfoManage .searchImgIcon {
cursor: pointer;
}
.scenicSpotInfoManage .el-dialog--center .el-dialog__body {
padding: 25px 25px 0;
}
.scenicSpotInfoManage .addressInput .el-input-group__append {
border-top-right-radius: 17px;
border-bottom-right-radius: 17px;
}
.scenicSpotInfoManage ::-webkit-input-placeholder {
color: #d1d1d1;
}
.scenicSpotInfoManage :-moz-placeholder {
color: #d1d1d1;
}
.scenicSpotInfoManage ::-moz-placeholder {
color: #d1d1d1;
}
.scenicSpotInfoManage :-ms-input-placeholder {
color: #d1d1d1;
}
.scenicSpotInfoManage .el-switch.is-checked .el-switch__core {
border-color: #4bca81;
background-color: #4bca81;
}
.scenicSpotInfoManage .orderAdd {
position: relative;
width: 340px;
}
.scenicSpotInfoManage .minus:hover {
background-color: #cccccc;
cursor: pointer;
}
.scenicSpotInfoManage .minus {
width: 34px;
height: 32px;
border: #dcdfe6;
color: #fff;
text-align: center;
line-height: 34px;
position: absolute;
left: 101px;
border-radius: 50%;
z-index: 999;
top: 4px;
background-color: #dcdfe6;
}
.scenicSpotInfoManage .addPeople {
width: 34px;
height: 32px;
top: 4px;
background-color: #dcdfe6;
color: #fff;
text-align: center;
line-height: 34px;
position: absolute;
right: 41px;
border-radius: 50%;
z-index: 999;
}
.scenicSpotInfoManage .addPeople:hover {
background-color: #cccccc;
cursor: pointer;
}
.scenicSpotInfoManage .orderAdd .el-input__inner {
padding-left: 90px;
}
.scenicSpotInfoManage .littleadd {
font-size: 12px !important;
color: #fff;
display: inline-block;
}
.scenicSpotInfoManage .footabs {
width: 300px;
min-height: 34px;
border: 1px solid #d1d1d1;
margin-left: 10px;
display: inline-block;
background-color: #fff;
padding: 5px 10px;
display: flex;
flex-wrap: wrap;
}
.scenicSpotInfoManage .foodtips {
display: inline-block;
padding: 3px 5px;
background-color: #efefef;
margin: 3px;
position: relative;
}
.scenicSpotInfoManage .toolOne {
margin: 0 0 28px 38px;
display: flex;
}
.scenicSpotInfoManage .foodTipsDiv {
max-width: 200px;
display: inline;
}
.scenicSpotInfoManage .wInput {
border: none;
height: 30px;
}
.scenicSpotInfoManage .wInput .el-input__inner {
border: none !important;
height: 28px;
padding: 0;
border-radius: 0;
margin-top: 2px;
}
.scenicSpotInfoManage .delTips {
position: absolute;
right: -5px;
top: -5px;
cursor: pointer;
color: #999;
font-size: 14px;
}
.scenicSpotInfoManage .delTips:hover {
color: #e95252;
}
.scenicSpotInfoManage .fanyong {
font-size: 12px;
color: #666666;
margin-right: 10px;
}
.scenicSpotInfoManage .footabs .el-tag {
margin: 0 5px 5px 0;
}
.scenicSpotInfoManage .footabs .el-input__inner {
height: 30px;
position: relative;
}
.scenicSpotInfoManage .button-new-tag {
height: 30px;
line-height: 30px;
padding-top: 0;
padding-bottom: 0;
}
.scenicSpotInfoManage .input-new-tag {
width: 90px;
margin-left: 10px;
vertical-align: bottom;
}
.scenicSpotInfoManage .el-dialog--center .el-dialog__body {
padding: 15px 25px 0 !important;
}
.scenicSpotInfoManage .mapList {
width: 850px !important;
height: 510px !important;
}
.scenicSpotInfoManage .fanbili {
margin-top: 8px;
}
.scenicSpotInfoManage .RabateDiv {
margin-left: 10px;
}
.scenicSpotInfoManage .RebateCount {
height: 34px;
border-radius: 17px;
float: left;
}
.scenicSpotInfoManage .reOne,
.scenicSpotInfoManage .reTwo,
.scenicSpotInfoManage .dayNum {
position: relative;
}
.scenicSpotInfoManage .leftPnum {
float: left;
width: 50px;
height: 32px;
line-height: 32px;
text-align: center;
border-right: 1px solid #cccccc;
position: absolute;
left: 1px;
top: 1px;
border-top-left-radius: 17px;
border-bottom-left-radius: 17px;
}
.scenicSpotInfoManage .toolInput {
height: 34px;
padding-left: 5px;
border: none;
}
.scenicSpotInfoManage .inpuOne {
width: 135px;
padding-left: 55px;
border: 1px solid #d1d1d1;
border-right: none;
}
.scenicSpotInfoManage .inpuTwo {
width: 166px;
padding: 0 45px 0 55px;
border: 1px solid #d1d1d1;
}
.scenicSpotInfoManage .percentCon {
float: right;
width: 40px;
height: 32px;
text-align: center;
border-left: 1px solid #cccccc;
line-height: 32px;
border-top-right-radius: 17px;
border-bottom-right-radius: 17px;
position: absolute;
right: 1px;
top: 1px;
}
.scenicSpotInfoManage .fanNum {
float: left;
width: 50px;
height: 32px;
line-height: 32px;
text-align: center;
border-right: 1px solid #cccccc;
position: absolute;
left: 1px;
top: 1px;
}
.scenicSpotInfoManage .fdTag {
margin-top: 13px;
}
.scenicSpotInfoManage .addAddress .el-input__inner {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
border: 1px solid #d1d1d1 !important;
}
.scenicSpotInfoManage .el-input-group__append {
border-top-right-radius: 0 !important;
border-bottom-right-radius: 0 !important;
}
.scenicSpotInfoManage #imageUploader{
display: none !important;
}
</style>
<template>
<div class="flexOne scenicSpotInfoManage">
<div class="resource-content clearfix">
<el-form :model="addMsg" :rules="rules" ref="addMsg">
<div class="resource-baseinfo">
<span class="resource-lititle">{{$t('hotel.hotel_baseinfo')}}</span>
<el-form-item :label="$t('scen.sc_resName')" prop="Name">
<el-input type="text" v-model="addMsg.Name" maxlength="100" class="w300"></el-input>
</el-form-item>
<el-form-item label="景区类型" prop="FoodType">
<el-select placeholder="请选择景区类型" filterable v-model="addMsg.FoodType" class='multiple_input w300'>
<el-option label="不限" :value='0'></el-option>
<el-option v-for="item in scenicList" :key="item.ID" :label="item.Name"
:value="item.ID">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="是否上架" prop="FoodType">
<el-radio v-model="addMsg.IsShelves" :label="1"></el-radio>
<el-radio v-model="addMsg.IsShelves" :label="0"></el-radio>
</el-form-item>
<el-form-item label="网址">
<el-input type="text" v-model="addMsg.Url" maxlength="100" class="w300"></el-input>
</el-form-item>
<el-form-item label="国家">
<el-select placeholder="请选择国家" filterable v-model="addMsg.Country" class='multiple_input w300'
@change="GetSubAreaList(addMsg.Country,1),addMsg.Province=0,addMsg.City=0,addMsg.District=0">
<el-option :label="$t('pub.unlimitedSel')" :value='SelectDefaultValue'></el-option>
<el-option v-for="childItem in CountryList" :key="childItem.ID" :label="childItem.Name"
:value="childItem.ID">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="省">
<el-select placeholder="请选择省" filterable class='multiple_input w300' v-model="addMsg.Province"
@change="GetSubAreaList(addMsg.Province,2),addMsg.City=0,addMsg.District=0">
<el-option :label="$t('pub.unlimitedSel')" :value='SelectDefaultValue'></el-option>
<el-option v-for="childItem in ProvinceList" :key="childItem.ID" :label="childItem.Name"
:value="childItem.ID">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="市">
<el-select placeholder="请选择市" filterable @change="GetSubAreaList(addMsg.City,3),addMsg.District=0" class='multiple_input w300' v-model="addMsg.City">
<el-option :label="$t('pub.unlimitedSel')" :value='SelectDefaultValue'></el-option>
<el-option v-for="childItem in CityList" :key="childItem.ID" :label="childItem.Name"
:value="childItem.ID">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="区">
<el-select v-model="addMsg.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 :label="$t('hotel.hotel_detailinfo')" prop="Address">
<el-input placeholder="请输入内容" class="w300 addAddress" v-model="addMsg.Address">
<el-button slot="append" @click="selectAddress = true" icon="iconfont icon-img_dw"></el-button>
</el-input>
</el-form-item>
<div class="toolOne">
<span class="fanbili">地理位置</span>
<div class="RabateDiv clearfix">
<div class="RebateCount reOne">
<div class="leftPnum">经度</div>
<input type="text" class="toolInput inpuOne" v-model="addMsg.Lng" maxlength="20">
</div>
<div class="RebateCount reTwo">
<div class="fanNum">纬度</div>
<input type="text" class="toolInput inpuTwo" v-model="addMsg.Lat" maxlength="20">
</div>
</div>
</div>
<el-form-item :label="$t('scen.sc_tel')" prop="Tel">
<el-input type="text" maxlength="20" v-model="addMsg.Tel" class="w300"></el-input>
</el-form-item>
<span class="resource-lititle">开放时间
<el-tooltip
class="item"
effect="dark"
content="添加开放时间"
placement="top-end"
>
<el-button
type="primary"
icon="el-icon-plus"
circle
style="margin-left: 10px"
@click="addOpenTime"
></el-button>
</el-tooltip>
</span>
<div v-for="(item,index) in addMsg.OpenTimeList" :key="index">
<template v-if="index!=0">
<el-form-item label="操作" prop="StartDay">
<el-tooltip
class="item"
effect="dark"
content="删除开放时间"
placement="top-end"
>
<el-button
type="danger"
icon="el-icon-delete"
circle
size="small"
@click="delOpenTime(index)"
></el-button>
</el-tooltip>
</el-form-item>
</template>
<template>
<el-form-item label="开放开始日期" prop="StartDay">
<el-date-picker
v-model="item.StartDay"
type="date"
placeholder="开放开始日期"
format="MM - dd "
value-format="MM-dd"
:picker-options="{
disabledDate: (time) => {
if (item.EndDay != '') {
return time.getTime() >= new Date(new Date().getFullYear()+'-'+item.EndDay).getTime()
}
}
}">
</el-date-picker>
</el-form-item>
<el-form-item label="开放结束日期" prop="EndDay">
<el-date-picker
v-model="item.EndDay"
type="date"
placeholder="开放结束日期"
format="MM - dd "
value-format="MM-dd"
:picker-options="{
disabledDate: (time) => {
if (item.StartDay != '') {
return time.getTime() <= new Date(new Date().getFullYear()+'-'+item.StartDay).getTime()
}
}
}">
</el-date-picker>
</el-form-item>
</template>
<template>
<el-form-item label="是否是次年" prop="OpeningHours">
<el-radio v-model="item.IsNextYear" :label="1"></el-radio>
<el-radio v-model="item.IsNextYear" :label="0"></el-radio>
</el-form-item>
</template>
<template>
<el-form-item label="营业开始周" prop="OpeningHours">
<el-select
v-model="item.BusinessStartWeek"
filterable
allow-create
placeholder="请选择"
>
<el-option label="不限" :value="0"></el-option>
<el-option
v-for="item in weekEnumList"
:key="item.ID"
:label="item.Name"
:value="item.ID"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item label="营业结束周" prop="OpeningHours">
<el-select
v-model="item.BusinessEndWeek"
filterable
allow-create
placeholder="请选择"
>
<el-option label="不限" :value="0"></el-option>
<el-option
v-for="item in weekEnumList"
:key="item.ID"
:label="item.Name"
:value="item.ID"
>
</el-option>
</el-select>
</el-form-item>
</template>
<template>
<el-form-item label="营业开始时间" prop="OpeningHours">
<el-time-select
v-model="item.StartTime"
:picker-options="{
start: '00:00',
step: '00:15',
end: '23:45',
maxTime:item.EndTime
}"
placeholder="选择时间">
</el-time-select>
</el-form-item>
<el-form-item label="营业结束时间" prop="OpeningHours">
<el-time-select
v-model="item.EndTime"
:picker-options="{
start: '00:00',
step: '00:15',
end: '23:45',
minTime:item.StartTime
}"
placeholder="选择时间">
</el-time-select>
</el-form-item>
</template>
<template>
<el-form-item label="禁止入园时间" prop="OpeningHours">
<el-time-select
v-model="item.StopTime"
:picker-options="{
start: '00:00',
step: '00:15',
end: '23:45'
}"
placeholder="选择时间">
</el-time-select>
</el-form-item>
</template>
</div>
<span class="resource-lititle sheshi">{{$t('restaurant.res_detailInformation')}}</span>
<el-form-item :label="$t('restaurant.res_salePlatform')">
<el-select v-model="openplatString" class='multiple_input w300' multiple :placeholder="$t('pub.pleaseSel')">
<el-option v-for="item in openplatform" :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('restaurant.res_advanceDays')" prop="DieLine">
<el-input type="text" maxlength="10" class="w300" v-model="addMsg.DieLine"
@keyup.native="checkInteger(addMsg,'DieLine')"></el-input>&nbsp;{{$t('hotel.hotel_day')}}
</el-form-item>
<el-form-item label="是否预约">
<el-switch v-model="addMsg.AppointmentStyle" :active-value="inActive" :inactive-value="notInActive">
</el-switch>
</el-form-item>
<el-form-item label="支付方式">
<el-select v-model="addMsg.PayStyle" class='multiple_input w300' :placeholder="$t('pub.pleaseSel')"
:disabled="IsHaveAuth==1?false:true">
<el-option :label="$t('pub.unlimitedSel')" :value='SelectDefaultValue'></el-option>
<el-option v-for="item in PayList" :key="item.Id" :label="item.Name" :value="item.Id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="是否免费">
<el-select v-model="addMsg.IsFree" class='multiple_input w300' :placeholder="$t('pub.pleaseSel')">
<el-option v-for="item in IsFreeList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<div class="toolOne">
<span class="fanbili">游玩时间</span>
<div class="RabateDiv clearfix">
<div class="RebateCount reOne">
<div class="leftPnum">小时</div>
<input type="text" class="toolInput inpuOne" v-model="addMsg.PlayTimeHour" maxlength="20">
</div>
<div class="RebateCount reTwo">
<div class="fanNum">分钟</div>
<input type="text" class="toolInput inpuTwo" v-model="addMsg.PlayTimeMinutes" maxlength="20">
</div>
</div>
</div>
</div>
<div class="resource-imginfo">
<div class="resourcerightTop">
<div class="toolOne">
<span class="fanbili">{{$t('restaurant.res_commissionColumn')}}</span>
<div class="RabateDiv clearfix">
<div class="RebateCount reOne">
<div class="leftPnum">{{$t('admin.admin_personNumber')}}></div>
<input type="text" class="toolInput inpuOne" v-model="addMsg.RebateCount"
onkeyup="value=value.replace(/[^\d]/g,'')" maxlength="20">
</div>
<div class="RebateCount reTwo">
<div class="fanNum">{{$t('restaurant.res_return')}}</div>
<input type="text" class="toolInput inpuTwo" v-model="addMsg.RebateRatio"
onkeyup="value=value.replace(/[^\d]/g,'')" maxlength="20">
<div class="percentCon">%</div>
</div>
</div>
</div>
<div class="toolOne">
<span class="fdTag">{{$t('scen.sc_fdTag')}}</span>
<div class="footabs">
<el-tag :key="tag" v-for="tag in tipsList" 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">{{$t('scen.sc_dlTag')}}</span>
<div class="footabs">
<el-tag :key="tag" v-for="tag in Geographic" 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="$t('restaurant.res_special')">
<!-- <el-input type="textarea" class="w300" maxlength="1000" v-model="addMsg.Feature"></el-input> -->
<div class="w300" style="margin-left:96px">
<my-edit v-on:edit-value="addMsg.Feature = arguments[0]" v-bind:editValue="addMsg.Feature"
v-bind:toolbarShow="toolbar" v-bind:referenceList="DefaultList" v-bind:placeholder="placeholder"></my-edit>
</div>
</el-form-item>
<el-form-item label="官方公告" prop="TicketNotice">
<!-- <el-input type="textarea" maxlength="1000" v-model="addMsg.TicketNotice" class="w300"></el-input> -->
<div class="w300" style="margin-left:96px">
<my-edit v-on:edit-value="addMsg.TicketNotice = arguments[0]" v-bind:editValue="addMsg.TicketNotice"
v-bind:toolbarShow="toolbar" v-bind:referenceList="DefaultList" v-bind:placeholder="placeholder"></my-edit>
</div>
</el-form-item>
<el-form-item label="温馨提示" prop="About">
<!-- <el-input type="textarea" maxlength="1000" v-model="addMsg.About" class="w300"></el-input> -->
<div class="w300" style="margin-left:96px">
<my-edit v-on:edit-value="addMsg.About = arguments[0]" v-bind:editValue="addMsg.About"
v-bind:toolbarShow="toolbar" v-bind:referenceList="DefaultList" v-bind:placeholder="placeholder"></my-edit>
</div>
</el-form-item>
<el-form-item label="购票须知" prop="BookingInfo">
<!-- <el-input type="textarea" maxlength="1000" v-model="addMsg.BookingInfo" class="w300"></el-input> -->
<div class="w300" style="margin-left:96px">
<my-edit v-on:edit-value="addMsg.BookingInfo = arguments[0]" v-bind:editValue="addMsg.BookingInfo"
v-bind:toolbarShow="toolbar" v-bind:referenceList="DefaultList" v-bind:placeholder="placeholder"></my-edit>
</div>
</el-form-item>
<el-form-item :label="$t('restaurant.res_WhetherToConfirm')">
<el-switch v-model="addMsg.Sure" active-value="1" inactive-value="0"></el-switch>
</el-form-item>
<el-form-item>
<el-switch v-model="isBook" active-color="#13ce66" inactive-color="#ff4949" active-text="供应商"
inactive-text="自订"></el-switch>
</el-form-item>
<el-form-item label="是否包含领队">
<el-switch v-model="addMsg.IsIncludeLeader" :active-value="0" :inactive-value="1"></el-switch>
</el-form-item>
</div>
<span class="resource-lititle">{{$t('hotel.hotel_imgintroduce')}}</span>
<div class="resource-list">
<div class="resource-imglist clearfix">
<div class="re-img" v-for="(item,index) in TicketCouponsImageArray" :key="item.subCode">
<img v-if="!item" src="../../assets/img/bg_c3@3x.png">
<img :src="item.ShowPath" :onerror='defaultImg' />
<div class="imgzhe">
<div class="re-delte"><i @click.stop="showImg(item.ShowPath)" class="iconfont icon-img_cz"></i></div>
<div class="re-delte" @click="delImg(index)"><i class="iconfont icon-xingzhuang"></i></div>
<div class="re-delte" @click.stop="ExchangeImg(index,0)" v-if="index!=0&&item.ShowPath">
<i class="iconfont icon-zuoyi"></i>
</div>
<div class="re-delte" @click.stop="ExchangeImg(index,1)"
v-if="index!=TicketCouponsImageArray.length-1&&item.ShowPath">
<i class="iconfont icon-youyi"></i>
</div>
</div>
</div>
</div>
<div class="add-img">
<div class="reimg-add">
<i class="iconfont icon-img_haha bigAdd"></i>
<div class="ad-one">
<div class="re-upload">
<el-upload :file-list="fileList" :http-request="UploadImage" :multiple="true"
accept="image/jpeg,image/gif,image/png,image/bmp" :show-file-list="false" action="">
<i class="iconfont icon-img_bdsc"></i>
</el-upload>
</div>
<div class="re-find" @click="addImgOpen"><i class="iconfont icon-img_cz"></i></div>
</div>
</div>
</div>
</div>
</div>
</el-form>
</div>
<el-dialog custom-class="resourceImgAdd" title="添加图片" center :visible.sync="addimg">
<DMCchooseImg @closeImg="closeDMCchooseImg" ref="DMCchooseImg1" @headCallBack="getDMCimg" v-bind:imgType="3">
</DMCchooseImg>
</el-dialog>
<el-dialog custom-class="mapList" title="地图选址" center :visible.sync="selectAddress">
<googleMap @refList="googleMap" v-on:headCallBack="headCall" v-bind:address="addMsg.Address"></googleMap>
</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('domesticScenicSpotList')">{{$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">
</viewer>
</div>
</template>
<script>
import googleMap from "../commonPage/googleMap.vue";
import DMCchooseImg from "../commonPage/DMCchooseImg.vue";
import MyEdit from "@/components/EditTemplate.vue";
export default {
data() {
return {
imageOptions: {
navbar: false,
title: false
},
//是否有权限操作支付方式
IsHaveAuth: 0,
images: [],
selectAddress: false,
addimg: false,
imgKeyword: "",
imglistArry: [],
openplatform: "",
totalimg: "",
selecnum: 0,
ID: "",
tipsList: [],
tipsItem: "",
Geographic: [],
GeoItem: "",
value1: "true",
value2: "false",
defaultImg: 'this.src="' + require("../../assets/img/bg_z1@2x.png") + '"',
openplatString: "",
OpenPlatformStrings: "",
inputVisible: false,
inputValue: "",
inputVisible2: false,
inputValue2: "",
IsFreeList: [{
value: 0,
label: "是"
},
{
value: 1,
label: "否"
}
],
isBook: true,
fileList: [],
//下拉框默认值
SelectDefaultValue: 0,
//国家列表
CountryList: [],
//省份列表
ProvinceList: [],
//城市列表
CityList: [],
//区域
district: [],
inActive: 1, //已选中
notInActive: 0, //未选中
//支付方式
PayList: [],
//上传的文件数组
TicketCouponsImageArray: [],
//删除的图片文件数组
DeleteImageArray: [],
addMsg: {
ID: 0,
Name: "",
ScenicSpotTag: "",
GeographicTag: "",
OpeningHours: "",
Tel: "",
TrafficInfo: "",
IsFree: 0,
Feature: "",
About: "",
BookingInfo: "",
Sure: "",
OpenPlatform: "",
DieLine: "",
QCountry: "",
QProvince: "",
QCity: "",
District: 0,
Address: "",
Lng: "",
Lat: "",
PicPath: "",
RebateCount: "",
RebateRatio: "",
Url: "",
IsSelfBook: "",
Country: 0,
Province: 0,
City: 0,
TicketCouponsImageList: [], //现在的图片
DeleteImageList: [], //要删除的图片
//是否预约
AppointmentStyle: 0,
//支付方式
PayStyle: 0,
PlayTimeHour: "", //游玩小时
PlayTimeMinutes: "", //游玩分钟
IsIncludeLeader: 0, //是否包含领队:0-包含,1-不包含
TicketNotice:"",//官方公告
OpenTimeList:[//开放时间
{
StartDay:"",
EndDay:"",
IsNextYear:0,
BusinessStartWeek:"",
BusinessEndWeek:"",
StartTime:"",
EndTime:"",
StopTime:"",
}
],
FoodType:0,
IsShelves:0,
},
rules: {
//表单必填验证
Name: [{
required: true,
message: "请填写名称",
trigger: "change"
}],
Address: [{
required: true,
message: "请选择地址",
trigger: "change"
}],
Descriptions: [{
required: true,
message: "请输入文字描述",
trigger: "change"
}],
DieLine: [{
pattern: this.$commonUtils.Regex.el_isInteger,
message: "请输入正确的数字"
}],
RebateCount: [{
pattern: this.$commonUtils.Regex.el_isInteger,
message: "请输入正确的数字"
}],
RebateRatio: [{
pattern: this.$commonUtils.Regex.el_isInteger,
message: "请输入正确的数字"
}],
SupportCount: [{
required: true,
message: "请填写可预订人数",
trigger: "change"
}]
},
weekEnumList:[],//营业周长枚举
scenicList:[],//景区类型列表
toolbar: {
clean: true,
font: false, //字体
narrative: false, //叙述,
image:false,
bold: true, //加粗
underline: true, //下划线
header1: true, //H1
header2: true, //H2
fontColor: false, //字体颜色
fontBackgroundColor: false, //背景颜色
},
DefaultList: [],
placeholder: "请输入",
};
},
components: {
googleMap: googleMap,
DMCchooseImg: DMCchooseImg,
MyEdit
},
methods: {
inited(viewer) {
this.$viewer = viewer
},
showImg: function (src) {
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))
},
//上传景点图片
UploadImage(file) {
let newArr = [];
newArr.push(file.file);
let fileName = file.file.name;
var path = "/Upload/DMC/";
this.UploadSelfFileT(path, newArr, x => {
//统一图片处理
var obj = this.$DMCUtils.DMCImageObj();
var str = x.data.FilePath;
var imgUrl = this.domainManager().ViittoFileUrl + x.data.FilePath;
obj.Path = str;
obj.ShowPath = imgUrl;
this.TicketCouponsImageArray.push(obj);
});
},
//更新景点图片
updatePic() {
if (this.ID > 0) {
var postMsg = {
ID: this.ID,
PicPath: this.PicPathArray.toString(),
HotelImageList: this.HotelImageArray, //新增修改
DeleteImageList: this.DeleteImageArray //删除的图片
};
this.apipost(
"ticketcoupons_post_UpdateTicketCouponsPic",
postMsg,
res => {},
null
);
}
},
//删除图片
delImg(index) {
//更新图片
var item = this.TicketCouponsImageArray[index];
this.DeleteImageArray.push(item);
this.TicketCouponsImageArray.splice(index, 1);
},
addImgOpen() {
this.addimg = true;
this.initimgList();
},
closeDMCchooseImg() {
this.addimg = false;
},
saveResource() {
//保存餐厅信息
if (this.isBook) {
this.addMsg.IsSelfBook = 1;
} else {
this.addMsg.IsSelfBook = 0;
}
this.addMsg.OpenPlatform = this.openplatString.toString();
if (this.ID != "undefined") {
this.addMsg.ID = this.ID;
}
let picPathArr = [];
this.TicketCouponsImageArray.forEach(x => {
picPathArr.push(x.Path);
});
this.addMsg.PicPath = picPathArr.join(",");
this.addMsg.ScenicSpotTag = this.tipsList.join(",");
this.addMsg.GeographicTag = this.Geographic.join(",");
this.addMsg.TicketCouponsImageList = this.TicketCouponsImageArray;
this.addMsg.DeleteImageList = this.DeleteImageArray;
this.apipost(
"appletsticketcoupons_post_Set",
this.addMsg,
res => {
//修改添加接口
if (res.data.resultCode == 1) {
this.tips("保存成功!", "success");
this.goUrl("domesticScenicSpotList");
} else {
this.tips(res.data.message, "error");
}
},
null
);
},
init() {
var msg = {};
this.apipost("hotel_post_GetPlatform", msg, res => {
//获取开放平台
this.openplatform = res.data.data;
});
},
initimgList() {
//初始化弹窗图片列表
var keyWord = this.imgKeyword;
this.imglistArry = [];
let msg = {
Name: keyWord,
Type: 4
};
this.apipost(
"hotel_post_GetPicList",
msg,
res => {
if (res.data.resultCode == 1) {
this.imglistArry = res.data.data;
this.totalimg = this.imglistArry.length;
}
},
null
);
},
selectImg(index) {
//选取弹窗图片
this.imglistArry[index].isShow = !this.imglistArry[index].isShow;
let num = 0;
this.imglistArry.forEach(x => {
if (x.isShow == true) {
num++;
}
this.selecnum = num;
});
},
initHotelData() {
//获取信息
var msg = {
ID: this.ID
};
this.apipost(
"appletsticketcoupons_post_Get",
msg,
res => {
if (res.data.resultCode == 1) {
this.addMsg = res.data.data;
console.log(1283,this.addMsg)
if (this.addMsg.Country > 0) {
this.GetSubAreaList(this.addMsg.Country, 1);
}
if (this.addMsg.Province > 0) {
this.GetSubAreaList(this.addMsg.Province, 2);
}
if(this.addMsg.City > 0){
this.GetSubAreaList(this.addMsg.City, 3);
}
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.TicketCouponsImageArray.push(obj);
}
});
} else {
this.tips(res.data.message, "error");
}
},
null
);
},
goUrl(path) {
this.$router.push({
path: path,
query: {
cache: true
}
});
},
submitForm(addMsg) {
//提交创建、修改表单
let that = this;
that.$refs[addMsg].validate(valid => {
if (valid) {
that.saveResource();
} else {
return false;
}
});
},
checkImgList() {
this.imglistArry.forEach(x => {
if (x.isShow == true) {
this.imgArray.push(x.Path);
let arr = x.Path.split(".com");
this.PicPathArray.push(arr[1]);
}
x.isShow = false;
this.selecnum = 0;
});
this.addimg = false;
},
resetImg() {
this.imglistArry.forEach(x => {
if (x.isShow == true) {
x.isShow = false;
}
this.selecnum = 0;
});
},
tips(msg, type) {
this.$message({
message: msg,
duration: 2000,
type: type
});
},
minusCount() {
let SupportCount = parseInt(this.addMsg.SupportCount);
if (SupportCount > 0) {
SupportCount--;
}
this.addMsg.SupportCount = SupportCount;
},
addCount() {
let SupportCount = parseInt(this.addMsg.SupportCount);
SupportCount++;
this.addMsg.SupportCount = SupportCount;
},
getItemList(type) {
if (type == 1) {
this.tipsList.push(this.tipsItem);
this.tipsItem = "";
} else {
this.Geographic.push(this.GeoItem);
this.GeoItem = "";
}
},
handleClose(tag) {
this.tipsList.splice(this.tipsList.indexOf(tag), 1);
},
showInput() {
this.inputVisible = true;
this.$nextTick(_ => {
this.$refs.saveTagInput.$refs.input.focus();
});
},
handleInputConfirm() {
let inputValue = this.inputValue;
if (inputValue) {
this.tipsList.push(inputValue);
}
this.inputVisible = false;
this.inputValue = "";
},
handleClose2(tag) {
this.Geographic.splice(this.Geographic.indexOf(tag), 1);
},
showInput2() {
this.inputVisible2 = true;
this.$nextTick(_ => {
this.$refs.saveTagInput.$refs.input.focus();
});
},
handleInputConfirm2() {
let inputValue = this.inputValue2;
if (inputValue) {
this.Geographic.push(inputValue);
}
this.inputVisible2 = false;
this.inputValue2 = "";
},
googleMap() {
this.selectAddress = false;
},
headCall(msg) {
// this.addMsg.QCountry = msg.country;
// this.addMsg.QProvince = msg.province;
// this.addMsg.QCity = msg.city;
// this.addMsg.Address = msg.address;
this.addMsg.Lng = msg.lng;
this.addMsg.Lat = msg.lat;
},
//获取国家
GetCounrty() {
this.apipost(
"dict_post_Destination_GetCountry", {},
res => {
this.CountryList = res.data.data;
},
err => {}
);
},
//获取省份和城市
GetSubAreaList(ID, type) {
let msg = {
Id: ID
};
if (this.addMsg.Country != 0) {
this.apipost(
"dict_post_Destination_GetChildList",
msg,
res => {
if (type == 1) {
this.ProvinceList = res.data.data;
this.CityList=[];
this.district=[];
} else if (type == 2) {
this.CityList = res.data.data;
this.district=[];
}else if (type == 3) {
this.district = res.data.data;
}
},
err => {}
);
}
},
getDMCimg(imgArr) {
imgArr.forEach(imgItem => {
var obj = this.$DMCUtils.DMCImageObj();
obj.ID = 0;
obj.Path = "/" + this.$commonUtils.removeDomain(imgItem.Path);
obj.PicID = imgItem.ID;
obj.ShowPath = imgItem.Path + "?x-oss-process=image/resize,l_140";
this.TicketCouponsImageArray.push(obj);
});
},
//获取支付方式列表
GetPayList() {
this.apipost(
"dmc_post_Get_GetPayStyleList", {},
res => {
if (res.data.resultCode == 1) {
this.PayList = res.data.data;
}
},
err => {}
);
},
//图片左移右移
ExchangeImg(index, IsMove) {
var imgItem = this.TicketCouponsImageArray[index];
//左移
if (IsMove == 0) {
var upItem = this.TicketCouponsImageArray[index - 1];
this.$set(this.TicketCouponsImageArray, index - 1, imgItem);
this.$set(this.TicketCouponsImageArray, index, upItem);
} else {
//右移动
var downItem = this.TicketCouponsImageArray[index + 1];
this.$set(this.TicketCouponsImageArray, index + 1, imgItem);
this.$set(this.TicketCouponsImageArray, index, downItem);
}
},
getArea(){
this.$forceUpdate();
},
//获取周长枚举
getweekenum() {
this.apipost(
"appletsdining_Post_GetBusinessWeekEnumType",
{},
(res) => {
if (res.data.resultCode == 1) {
this.weekEnumList = res.data.data;
}
},
(err) => {}
);
},
// 添加开放时间
addOpenTime(){
let obj={
BusinessEndWeek: "",
BusinessStartWeek: "",
EndDay: "",
EndTime: "",
IsNextYear: 0,
StartDay: "",
StartTime: "",
StopTime: "",
}
this.addMsg.OpenTimeList.push(obj)
},
delOpenTime(index){
this.addMsg.OpenTimeList.splice(index,1)
},
//获取景区类型列表
getScenicList(){
this.apipost(
"foodtype_post_GetDropDownFoodType",
{ParentID:0,ClassType:1},
(res) => {
if (res.data.resultCode == 1) {
this.scenicList = res.data.data;
}
},
(err) => {}
);
}
},
mounted() {
let userInfo = this.getLocalStorage()
//有权限操作的部门
if (userInfo.RB_Department_Id == 240 || userInfo.RB_Department_Id == 1 || userInfo.RB_Department_Id == 3 ||
userInfo.RB_Branch_id == 49) {
this.IsHaveAuth = 1;
}
this.GetPayList();
this.ID = this.$route.query.id;
this.init(); //开放平台
this.GetCounrty();
if (typeof this.ID != "undefined") {
this.initHotelData();
}
this.getweekenum();
this.getScenicList();
}
};
</script>
<style>
.scenicSpotList .clearfix:after {
content: "\0020";
display: block;
height: 0;
clear: both;
}
.scenicSpotList .hotelResource {
width: 100%;
min-height: 500px;
margin-top: 20px;
}
.scenicSpotList .resourceList {
width: 215px;
background-color: #fff;
border: 1px dashed #ededed;
border-radius: 4px;
margin: 0 20px 20px 0;
font-size: 12px;
color: #333333;
float: left;
}
.scenicSpotList .resourceList:hover {
box-shadow: 0px 0px 20px rgba(191, 191, 191, 1);
transition: all linear 0.5s;
}
.scenicSpotList .reTopInfo {
width: 100%;
height: 123px;
position: relative;
}
.scenicSpotList .reTopInfo img {
position: absolute;
width: 100%;
height: 100%;
top: 0;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
}
.scenicSpotList .resTypeList {
position: absolute;
top: 10px;
left: 10px;
}
.scenicSpotList .resTypeList span {
display: inline-block;
padding: 1px 5px;
border-radius: 10px;
color: #fff;
margin-right: 10px;
}
.scenicSpotList .L1 {
background-color: #e95252;
}
.scenicSpotList .L2 {
background-color: #47bf8c;
}
.scenicSpotList .L3 {
background-color: #2aaef2;
}
.scenicSpotList .L4 {
background-color: #9cf;
}
.scenicSpotList .L5 {
background-color: #00c6ff;
margin-top: 5px;
}
.scenicSpotList .starSu {
position: absolute;
bottom: 8px;
right: 10px;
display: flex;
}
.scenicSpotList .starSu .star {
margin-left: 5px;
}
.scenicSpotList .sushe {
background-color: #ffc800;
display: inline-block;
padding: 1px 5px;
border-radius: 10px;
color: #fff;
}
.scenicSpotList .hotelTitle {
margin: 20px 16px 0 16px;
font-size: 14px;
color: #333333;
height: 20px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.scenicSpotList .brandList i {
position: relative;
top: 2px;
}
.scenicSpotList .brand {
float: left;
width: 49%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
text-align: center;
}
.scenicSpotList .dayNum {
float: right;
text-align: center;
width: 50%;
}
.scenicSpotList .iconfont {
margin-right: 5px;
}
.scenicSpotList .dieline {
color: #2aaef2;
font-size: 14px;
top: 1px !important;
}
.scenicSpotList .AddressInner {
float: right;
width: 160px;
height: 18px;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.scenicSpotList .btnList {
padding: 10px 0 20px 0;
text-align: center;
}
.scenicSpotList .hotelBtn {
width: 60px;
height: 28px;
background: #f76f6f;
border-radius: 14px;
color: #fff;
cursor: pointer;
}
.scenicSpotList .w150 .el-input {
width: 150px !important;
}
.scenicSpotList .SupportCount {
color: #4bca81;
font-size: 18px;
font-weight: bold;
margin: 0 5px 5px 0;
display: inline-block;
}
.scenicSpotList .dayNumber {
color: #2aaef2;
font-size: 18px;
font-weight: bold;
margin: 0 5px 5px 5px;
display: inline-block;
}
.scenicSpotList .line {
float: left;
width: 1px;
height: 35px;
background-color: #ededed;
margin-top: 6px;
}
.scenicSpotList .foodList {
display: inline-block;
padding: 1px 5px;
background-color: #ff9c00;
color: #fff;
margin-right: 6px;
border-radius: 2px;
}
.scenicSpotList .foodList:last-child {
margin-right: 0;
}
.scenicSpotList .delScien {
position: absolute;
right: 10px;
top: 10px;
display: none;
}
.scenicSpotList .delScien:hover {
color: #f76f6f;
cursor: pointer;
}
.scenicSpotList .resourceList:hover .delScien {
display: block;
}
.scenicSpotList .comCursorUrl {
cursor: pointer;
}
/* 景区列表 */
</style>
<template>
<div class="flexOne scenicSpotList">
<div class="query-box">
<ul>
<li>
<span class="hotel_name">
<em>{{$t('scen.sc_resName')}}</em>
<el-input maxlength="50" @keyup.native.enter="resetPageIndex(),selectResource()" v-model="msg.Name">
</el-input>
</span>
</li>
<li>
<span>
<em>{{$t('system.quety_area')}}</em>
<el-select v-model="msg.QCountry" clearable class="w150" filterable
@change="getProvinceList(msg.QCountry,1)" :placeholder="$t('hotel.hotel_country')">
<el-option v-for="item in countryList" :key="item.ID" :label="item.Name" :value="item.ID"></el-option>
</el-select>
<el-select v-model="msg.QProvince" class="w150" filterable @change="getProvinceList(msg.QProvince,2)"
:placeholder="$t('hotel.hotel_province')">
<el-option v-for="item in provinceList" :key="item.ID" :label="item.Name" :value="item.ID"></el-option>
</el-select>
<el-select v-model="msg.QCity" class="w150" filterable @change="getProvinceList(msg.QCity,3)"
:placeholder="$t('hotel.hotel_city')">
<el-option v-for="item in cityList" :key="item.ID" :label="item.Name" :value="item.ID"></el-option>
</el-select>
<el-select v-model="msg.QDistrict" class="w150" filterable :placeholder="$t('hotel.hotel_area')">
<el-option v-for="item in district" :key="item.ID" :label="item.Name" :value="item.ID"></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>{{$t('hotel.hotel_status')}}</em>
<el-select v-model="msg.Status" class="w210" :placeholder="$t('pub.unlimitedSel')">
<el-option :label="$t('pub.unlimitedSel')" value="-1"></el-option>
<el-option v-for="item in status" :key="item.value" :label="item.label" :value="item.value"></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>{{$t('ground.menpiaozhongl')}}</em>
<el-select v-model="msg.IsFree" class='multiple_input w210' :placeholder="$t('pub.pleaseSel')">
<!-- <el-option :label="$t('pub.unlimitedSel')" :value='-1'></el-option> -->
<el-option v-for="item in IsFreeList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</span>
</li>
<li>
<span><em>{{$t('visa.v_czuser')}}</em></span>
<el-select class="w150" v-model="msg.UpdateBy" filterable :placeholder="$t('pub.pleaseSel')">
<el-option :label="$t('pub.unlimitedSel')" :value="0">
</el-option>
<el-option v-for="item in EmployeeList" :label="item.EmName" :value="item.EmployeeId"
:key="item.EmployeeId"></el-option>
</el-select>
</li>
<li>
<button class="hollowFixedBtn" type="button"
@click="resetPageIndex(),selectResource()">{{$t('pub.searchBtn')}}</button>
<button class="normalBtn" type="button"
@click="$router.push('domesticScenicSpotInfoManage')">{{$t('pub.addBtn')}}</button>
<!-- <button class="hollowFixedBtn" type="button" @click="DownLoadFile()">{{$t('adm.adm_download')}}</button> -->
</li>
</ul>
</div>
<div class="hotelResource clearfix" v-loading="loading">
<div class="resourceList" v-for="item in tableData" :key="item.subCode">
<div class="reTopInfo" :class="{'comCursorUrl':item.Url}" @click="OpenNewUrl(item.Url)">
<img v-if="!item.PicPath" src="../../assets/img/bg_c3@3x.png">
<img v-else :src='compressImg(item.PicPath, "filt", 213, "")' :onerror="defaultImg">
<div class="resTypeList">
<span v-for="(items,index) in item.OpenPlatformList"
:class="{'L1':items.ID==1,'L2':items.ID==2,'L3':items.ID==3,'L4':items.ID==4,'L5':items.ID==5}"
:key="index">{{items.Name}}</span>
</div>
<div class="delScien" @click.stop="isdelete(item.ID)">
<i class="iconfont icon-xingzhuang"></i>
</div>
<div class="starSu">
<div class="star" v-if="item.newAr[0].Aname!=''" v-for="(items,index) in item.newAr">
<el-tooltip class="item" effect="dark" :content="items.Bname" placement="bottom-start"
popper-class="max-w250">
<span class="foodList" :key="items.subCode" v-if="index<3">{{items.Aname}}</span>
</el-tooltip>
</div>
<span v-if="item.Star==8" class="sushe">{{$t('restaurant.res_homeFacility')}}</span>
<span v-if="item.Star==9" class="sushe">{{$t('restaurant.res_SpringHotel')}}</span>
</div>
</div>
<el-tooltip class="item" effect="dark" :content="item.Name" placement="top-start" popper-class="max-w250">
<div class="hotelTitle">{{item.Name}}</div>
</el-tooltip>
<el-tooltip class="item" effect="dark" :content="item.UpdateName+''+item.UpdateTimeStr" placement="top-start"
popper-class="max-w250">
<div style="padding-left:15px;margin:10px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;">
<i style="top: 1px;position: relative;" class="iconfont icon-renyuanguanli"></i>
<span v-if="item.UpdateName && item.UpdateName!=''">{{item.UpdateName}}</span>
{{item.UpdateTimeStr}}
</div>
</el-tooltip>
<div class="btnList">
<button @click="goUrl('domesticScenicSpotInfoManage',item.ID)" class="hotelBtn">{{$t('pub.updateMsg')}}</button>
<button @click="CopyScenic(item.ID)" class="hotelBtn">复制</button>
<button @click="goUrlT('domesticTicketManagement',item.ID)" class="hotelBtn">{{$t('scen.sc_piao')}}</button>
</div>
</div>
<div class="noData" v-show="noData">{{$t('system.content_noData')}}</div>
</div>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="msg.currentPage"
:page-size="msg.pageSize" layout="total,prev, pager, next, jumper" :total="msg.total"></el-pagination>
</div>
</template>
<script>
export default {
data() {
return {
countryList: "",
provinceList: "",
cityList: "",
district: "",
Ids: [],
tableData: "",
noData: false,
deleteID: "",
status: [{
value: "0",
label: this.$t('pub.normalSel')
},
{
value: "1",
label: this.$t('system.table_delete')
}
],
IsFreeList: [{
value: "-1",
label: this.$t('pub.unlimitedSel')
}, {
value: "0",
label: this.$t('advmanager.v_free')
},
{
value: "1",
label: this.$t('ground.youjia')
}
],
loading: true,
EmployeeList: [],
defaultImg: 'this.src="' + require("../../assets/img/bg_z1@2x.png") + '"',
msg: {
pageIndex: 1,
pageSize: 14,
Name: "",
IsFree: "-1",
QCountry: "",
QProvince: "",
QCity: "",
QDistrict: "",
Status: "0",
total: 0,
currentPage: 1,
ID: 0,
UpdateBy: 0,
}
};
},
methods: {
CopyScenic(Id) {
var that = this;
that.Confirm('是否要复制此景点?', function () {
var msg = {
ID: Id
};
that.apipost(
"appletsticketcoupons_post_CopyTicketCouponsService",
msg,
res => {
if (res.data.resultCode == 1) {
that.Success(res.data.message);
that.selectResource();
} else {
that.Error(res.data.message);
}
},
null
);
});
},
handleCurrentChange(val) {
this.msg.pageIndex = val;
this.selectResource();
},
resetPageIndex() {
this.msg.pageIndex = 1;
this.msg.currentPage = 1;
},
//根据省份获取城市
getProvinceList(ID, type) {
let msg = {
Id: ID
};
if (type == 1) {
this.msg.QProvince = "";
this.msg.QCity = "";
this.msg.QDistrict = "";
} else if (type == 2) {
this.msg.QCity = "";
this.msg.QDistrict = "";
} else if (type == 3) {
this.msg.QDistrict = "";
}
if (this.msg.QCountry !== "") {
this.apipost(
"dict_post_Destination_GetChildList",
msg,
res => {
if (type == 1) {
this.provinceList = res.data.data;
} else if (type == 2) {
this.cityList = res.data.data;
} else if (type == 3) {
this.district = res.data.data;
}
},
err => {}
);
}
},
//获取国家
getCountryList() {
this.apipost(
"dict_post_Destination_GetCountry", {},
res => {
this.countryList = res.data.data;
},
err => {}
);
},
isdelete(ID) {
var that = this;
that.Confirm(that.$t('tips.shifoushanchu'), function () {
that.apipost(
"ticketcoupons_post_Remove", {
ID: ID
},
response => {
if (response.data.resultCode == 1) {
that.Success(that.$$t('tips.shanchuchenggong'));
that.selectResource();
} else {
that.Error(response.data.message);
}
},
null
);
});
},
DownLoadFile() {
this.loading = true;
let myDate = new Date();
let _year = myDate.getFullYear();
let _month = myDate.getMonth() >= 9 ? myDate.getMonth() + 1 : '0' + (myDate.getMonth() + 1);
let _date = myDate.getDate() > 9 ? myDate.getDate() : '0' + myDate.getDate();
let _hours = myDate.getHours() > 9 ? myDate.getHours() : '0' + myDate.getHours();
let _minutes = myDate.getMinutes() > 9 ? myDate.getMinutes() : '0' + myDate.getMinutes();
let _seconds = myDate.getSeconds() > 9 ? myDate.getSeconds() : '0' + myDate.getSeconds();
let downDate = _year + _month + _date + _hours + _minutes + _seconds;
var fileName = this.$t('ground.jingdanxinx') + downDate + ".xls";
this.GetLocalFile("dmcstatistics_post_GetTicketCouponsExport", this.msg, fileName,
res => {
this.loading = false;
});
},
selectResource() {
this.loading = true;
if (this.msg.Status == "") {
this.msg.Status = "-1";
}
this.apipost(
"appletsticketcoupons_post_GetPageList",
this.msg,
res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.msg.total = res.data.data.count;
var tempData = res.data.data.pageData;
this.noData = !this.msg.total > 0;
tempData.forEach(x => {
if (x.ScenicSpotTag != null && x.ScenicSpotTag !== "") {
x.FoodTagArr = x.ScenicSpotTag.split(",");
var newAr = [];
if (x.FoodTagArr != null) {
x.FoodTagArr.forEach(o => {
newAr.push({
Aname: o.slice(0, 3),
Bname: o
});
});
x.newAr = newAr;
}
}
});
this.tableData = tempData;
}
},
null
);
},
goUrl(path, id) {
this.$store.commit("pageConditionUpdate", this.msg);
this.$router.push({
path: path,
query: {
id: id,
blank: 'y',
tab: '修改景区信息'
}
});
},
goUrlT(path, id) {
this.$router.push({
path: path,
query: {
id: id,
blank: 'y',
tab: '门票管理'
}
});
},
//根据当前员工所在部门获取该部门及子部门员工信息
getEmployeeList() {
let userInfo = this.getLocalStorage();
let msg = {
GroupId: userInfo.RB_Group_id,
BranchId: "-1",
DepartmentId: "-1",
PostId: "-1",
IsLeave: "0"
};
this.apipost(
"admin_get_EmployeeGetList", {},
res => {
if (res.data.resultCode == 1) {
this.EmployeeList = res.data.data;
}
},
err => {}
);
},
},
mounted() {
this.getEmployeeList();
this.getCountryList();
},
created() {
if (this.$route.query.hasOwnProperty("cache")) {
if (this.$store.state.pageCondition != null) {
this.msg = this.$store.state.pageCondition;
}
}
if(this.$route.query.StatisticsSTime){
this.msg.StatisticsSTime=this.$route.query.StatisticsSTime
}
if(this.$route.query.StatisticsETime){
this.msg.StatisticsETime=this.$route.query.StatisticsETime
}
if(this.$route.query.type){
if(this.$route.query.type==1){
this.msg.CreateBy =this.$route.query.EmployeeId;
}
if(this.$route.query.type==2){
this.msg.UpdateBy =this.$route.query.EmployeeId;
}
}
var id = this.$route.query.ID;
if (id) {
this.msg.ID = id;
}
this.selectResource();
}
};
</script>
<style>
.ticketManagement .singeRowTable tr:nth-child(n + 2):hover {
background-color: white;
box-shadow: 0px 0px 14px 0px #adadad;
z-index: 10;
position: relative;
}
.ticketManagement .DaysInfo span {
display: inline-block;
background-color: #2aaef2;
color: white;
border-radius: 4px;
padding: 0 10px;
height: 30px;
line-height: 30px;
}
.ticketManagement .DaysInfo span i {
margin-right: 10px;
}
.ticketManagement .singeRowTable tr:nth-child(n + 2) {
height: 80px;
text-align: center;
}
.ticketManagement .detailsIT .singeRowTable tr:nth-child(n + 2):hover {
background-color: white;
box-shadow: 0px 0px 14px 0px #adadad;
z-index: 10;
position: relative;
}
.ticketManagement .Ldata {
color: #333333;
margin-top: 5px;
}
.ticketManagement .LP {
color: #e95252;
}
.ticketManagement .HP {
color: #2aaef2;
text-align: left;
font-size: 14px;
font-weight: bold;
padding-left: 5px;
display: inline-block;
}
.ticketManagement .T1 {
text-align: right;
color: #666666;
display: inline-block;
}
.ticketManagement .T2 {
text-align: left;
color: #e95252;
font-size: 14px;
font-weight: bold;
padding-left: 5px;
display: inline-block;
}
.ticketManagement .descripTion {
border-radius: 4px;
width: 266px;
text-align: left;
padding: 3px;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
/*! autoprefixer: off */
-webkit-box-orient: vertical;
/* autoprefixer: on */
-webkit-line-clamp: 2;
}
.ticketManagement .singeRowTable tr:nth-child(n + 2):hover .descripTion {
background-color: #ededed;
}
.ticketManagement .roomName {
display: inline-block;
width: 200px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
text-align: left;
padding-left: 20px;
}
.ticketManagement .w300 .el-textarea__inner {
height: 140px;
}
.ticketManagement .el-dialog--center .el-dialog__body {
padding: 25px 25px 0;
}
</style>
<template>
<div class='flexOne ticketManagement'>
<div class="query-box">
<ul>
<li>
<label class="">{{$t('scen.sc_name')}}</label>
<el-input v-model="msg.TicketName" 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='添加门票'"
:value="$t('pub.addBtn')" />
</li>
</ul>
</div>
<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">{{$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>{{$t('system.table_operation')}}</th>
</tr>
<tr v-for="item in DataList" :key="item.subCode">
<td>
<el-tooltip class="item" effect="dark" :content="item.TicketName" placement="top-start"
popper-class="max-w250">
<span class="roomName">{{item.TicketName}}</span>
</el-tooltip>
</td>
<td class="DaysInfo">
<span><i class="iconfont icon-kaoqintongji"></i>{{item.Days}}{{$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>
</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>
</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"
popper-class="max-w250">
<span class="descripTion">{{item.TicketDesc}}</span>
</el-tooltip>
</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>
</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>
</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>
</el-tooltip>
</el-button-group>
</td>
</tr>
</table>
<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="CouponsId">
<el-select :placeholder="$t('pub.pleaseSel')" class="w300" disabled v-model="addMsg.CouponsId">
<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="TicketName">
<el-input class="w300" type="text" v-model="addMsg.TicketName" maxlength="20"></el-input>
</el-form-item>
<el-form-item label="门票副标题" prop="TicketSubName">
<el-input class="w300" type="text" v-model="addMsg.TicketSubName" maxlength="200"></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> -->
<el-form-item label="是否闪入园" prop="IsSameDayBuy">
<el-radio v-model="addMsg.IsSameDayBuy" :label="1"></el-radio>
<el-radio v-model="addMsg.IsSameDayBuy" :label="0"></el-radio>
</el-form-item>
<el-form-item label="闪入园最晚购买时间" prop="DayBuyTime">
<el-date-picker
v-model="addMsg.DayBuyTime"
type="date"
placeholder="闪入园最晚购买时间"
format="MM - dd "
value-format="MM-dd"
>
</el-date-picker>
</el-form-item>
<el-form-item label="是否无忧退款" prop="IsWorryFreeRefund">
<el-radio v-model="addMsg.IsWorryFreeRefund" :label="1">有条件退</el-radio>
<el-radio v-model="addMsg.IsWorryFreeRefund" :label="0"></el-radio>
</el-form-item>
<el-form-item label="可定时间" prop="SubscribeTime">
<el-input class="w300" type="text" v-model="addMsg.AllTime" maxlength="200"></el-input>
</el-form-item>
<el-form-item label="随买随用" prop="AllTime">
<el-input class="w300" type="text" v-model="addMsg.SubscribeTime" maxlength="200"></el-input>
</el-form-item>
<el-form-item label="出票速度" prop="OutTicket">
<el-input class="w300" type="text" v-model="addMsg.OutTicket" maxlength="200"></el-input>
</el-form-item>
<el-form-item label="无需换票" prop="ChangeTickets">
<el-input class="w300" type="text" v-model="addMsg.ChangeTickets" maxlength="200"></el-input>
</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>
</el-form>
<div slot="footer" class="dialog-footer">
<button class="hollowFixedBtn"
@click="resetForm('addMsg'),outerVisible = false">{{$t('pub.cancelBtn')}}</button>
&nbsp;
<button class="normalBtn" type="primary" @click="submitForm('addMsg')">{{$t('pub.saveBtn')}}</button>
</div>
</el-dialog>
<div class="noData" v-show="noData">
{{$t('system.content_noData')}}
</div>
<el-pagination background @current-change="handleCurrentChange" :current-page.sync="currentPage"
layout="total,prev, pager, next, jumper" :page-size='msg.pageSize' :total='msg.total'>
</el-pagination>
</div>
</template>
<script>
export default {
data() {
return {
msg: {
pageIndex: 1,
pageSize: 6,
CouponsId: "",
TicketName: "",
Status: "-1"
},
addMsg: {
Id: "0",
CouponsId: "",
TicketName: "",
TicketDesc: "",
TicketCouponsType: "",
},
TicketID: "",
TickettTypeList: [],
loading: true,
total: 0,
currentPage: 1,
outerVisible: false,
dialogTitle: "",
noData: false,
DataList: "",
TicketCouponsList: "",
rules: {
//表单必填验证
CouponsId: [{
required: true,
message: "请选择门票资源"
}],
TicketCouponsType: [{
required: true,
message: "请选择门票类型"
}]
},
allCurrencyList: []
};
},
methods: {
getList() {
this.loading = true;
this.apipost(
"appletsticketcouponsticket_post_GetPageList",
this.msg,
res => {
this.loading = false;
if (res.data.resultCode == 1) {
this.total = res.data.data.count;
this.DataList = res.data.data.pageData;
this.noData = !this.total > 0;
}
},
null
);
},
saveResource() {
this.apipost(
"appletsticketcouponsticket_post_Set",
this.addMsg,
res => {
if (res.data.resultCode == 1) {
this.getList();
this.Success("保存成功!");
this.outerVisible = false;
this.resetForm("addMsg");
} else {
this.Error(res.data.message);
}
},
null
);
},
updateResturant(Id) {
let msg = {
ID: Id
};
this.addMsg.Id = Id;
this.apipost(
"appletsticketcouponsticket_post_Get",
msg,
res => {
if (res.data.resultCode == 1) {
this.addMsg = res.data.data;
} else {
this.Error(res.data.message);
}
},
null
);
},
isDelete(ID) {
this.$confirm('是否删除?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$message({
type: 'success',
message: '删除成功!'
});
this.apipost('appletsticketcouponsticket_post_Remove', {
ID: ID
}, res => {
if (res.data.resultCode == 1) {
this.getList()
} else {}
}, err => {})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消删除'
});
});
},
goUrl(path, id) {
this.$router.push({
path: path,
query: {
TicketID: id,
CouponsId: this.TicketID,
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;
this.getList();
},
//查询初始化页码
resetPageIndex() {
this.msg.pageIndex = 1;
this.currentPage = 1;
},
//初始化门票资源
initResrestaurant() {
let msg = {};
this.apipost(
"ticketcoupons_post_GetList",
msg,
res => {
if (res.data.resultCode == 1) {
this.TicketCouponsList = res.data.data;
}
},
null
);
},
submitForm(addMsg) {
//提交创建、修改表单
this.TickettTypeList.forEach(item => {
if (this.addMsg.TicketCouponsType == item.ID) {
// HK 2020-05-06注释
//this.addMsg.TicketName = item.Name
}
})
let that = this;
that.$refs[addMsg].validate(valid => {
if (valid) {
that.saveResource();
} else {
return false;
}
});
},
clearMsg() {
let newMsg = {
Id: "0",
CouponsId: "",
TicketName: "",
TicketDesc: "",
TicketCouponsType: ''
};
this.addMsg = newMsg;
},
closeChangeMachie(done) {
//弹出框关闭初始化弹框内表单
done();
this.resetForm("addMsg");
this.addMsg.CouponsId = parseInt(this.$route.query.id);
},
resetForm(formName) {
this.clearMsg();
this.$refs[formName].resetFields();
},
//获取所有币种
getAllCurrency() {
this.apipost(
"financeinfo_post_GetList", {},
res => {
if (res.data.resultCode == 1) {
this.allCurrencyList = res.data.data;
}
},
err => {}
);
},
//获取币种编码
getCurrencyCode(currencyId) {
let currencyCode = "CNY";
this.allCurrencyList.forEach(x => {
if (x.ID == currencyId) {
currencyCode = x.Code;
}
});
return currencyCode;
}
},
mounted() {
this.msg.CouponsId = this.$route.query.id;
this.addMsg.CouponsId = parseInt(this.$route.query.id);
this.initResrestaurant();
this.TicketID = this.$route.query.id;
this.getAllCurrency();
this.getList();
this.GetTicketType();
}
};
</script>
\ No newline at end of file
......@@ -1532,6 +1532,14 @@ export default {
meta: {
title: '景区门票管理'
},
},
{
path: '/domesticTicketManagement', //国内景区门票管理
name: 'domesticTicketManagement',
component: resolve => require(['@/components/scenicSpot/domesticTicketManagement'], resolve),
meta: {
title: '国内景区门票管理'
},
}, {
path: '/scenicSpotOrder', //景区门票订单管理
name: 'scenicSpotOrder',
......
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