Commit 22dc2c8a authored by 吴春's avatar 吴春

1

parent 6c9a4c8f
<style>
@import "../../assets/css/DMC.css";
</style>
<template>
<div class="flexOne changInfo">
<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('hotel.hotel_name')" prop="Name">
<el-input type="text" disabled v-model="addMsg.Name" maxlength="100" class="w300"></el-input>
</el-form-item>
<el-form-item :label="$t('ground.jiudianmingzi')">
<el-input type="text" disabled v-model="addMsg.HotelRealName" maxlength="100" class="w300"></el-input>
</el-form-item>
<el-form-item :label="$t('hotel.hotel_describle')" prop="Descriptions">
<el-input type="textarea" disabled v-model="addMsg.Descriptions" class="w300"></el-input>
</el-form-item>
<el-form-item :label="$t('hotel.hotel_openplatform')">
<el-select disabled 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('hotel.hotel_brand')">
<el-input disabled type="text" v-model="addMsg.ChainBrand" maxlength="50" class="w300"></el-input>
</el-form-item>
<el-form-item :label="$t('hotel.hotel_starlevel')">
<el-select disabled class="w300" :placeholder="$t('pub.unlimitedSel')" v-model="addMsg.Star">
<el-option :label="$t('pub.unlimitedSel')" :value='SelectDefaultValue'></el-option>
<el-option v-for="item in starslevel" :key="item.ID" :label="item.Name" :value="item.ID"></el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('hotel.hotel_website')">
<el-input disabled class="w300" v-model="addMsg.URL" maxlength="50">
<template slot="prepend">https://</template>
</el-input>
</el-form-item>
<el-form-item :label="$t('ground.shifouyuyue')">
<el-switch disabled v-model="addMsg.AppointmentStyle" :active-value="inActive" :inactive-value="notInActive">
</el-switch>
</el-form-item>
<el-form-item :label="$t('hotel.hotel_payType')">
<el-select disabled 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="$t('ground.jiudianleixing')">
<el-select disabled v-model="addMsg.HotelType" class='multiple_input w300' :placeholder="$t('pub.pleaseSel')">
<el-option :label="$t('pub.unlimitedSel')" :value='SelectDefaultValue'></el-option>
<el-option v-for="item in HotelTypeList" :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('Operation.Op_price')">
<el-select disabled v-model="addMsg.HotelPriceType" class='multiple_input w300' :placeholder="$t('pub.pleaseSel')">
<el-option :label="$t('pub.unlimitedSel')" :value='SelectDefaultValue'></el-option>
<el-option v-for="item in HotelPirceTypeList" :key="item.ID" :label="item.Name" :value="item.ID">
</el-option>
</el-select>
</el-form-item>
<span class="resource-lititle sheshi">{{$t('hotel.hotel_services')}}</span>
<div class="res-span" v-for="item in serviceList" :key="item.subCode">
<span class="common-lefttit">{{item.Content}}</span>
<span>
<el-select disabled multiple :placeholder="$t('pub.pleaseSel')" class='multiple_input w300' v-model="item.checked">
<el-option v-for="subitem in item.list" :key="subitem.ID" :label="subitem.Content" :value="subitem.ID">
</el-option>
</el-select>
</span>
</div>
<span class="resource-lititle sheshi">{{$t('ground.jiudianyouhui')}} <el-button icon="el-icon-plus" circle
@click="addAir"></el-button>
</span>
<div class="jiudianyouhuiDiv">
<el-row v-for="(list,index) in addMsg.DiscountList" :key="index">
<el-col :span="6" :gutter="35">
<el-form-item :label="$t('ground.kaishishuliang')">
<el-input disabled class='w80' type="text" v-model="list.StartNum"
@keyup.native="checkInteger(list,'StartNum')" maxlength="2"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" :gutter="35">
<el-form-item :label="$t('ground.jieshushuliang')">
<el-input disabled class='w80' type="text" v-model="list.EndNum" @keyup.native="checkInteger(list,'EndNum')"
maxlength="2"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" :gutter="35">
<el-form-item :label="$t('ground.fanhuanshuliang')">
<el-input disabled class='w80' type="text" v-model="list.DisCountNum"
@keyup.native="checkInteger(list,'DisCountNum')" maxlength="2"></el-input>
</el-form-item>
</el-col>
<el-col :span="6" :gutter="35" v-if="index==0">
</el-col>
<el-col :span="6" :gutter="35">
<el-button icon="el-icon-minus" circle @click="deleteAir(index)" disabled> </el-button>
</el-col>
</el-row>
</div>
<span class="resource-lititle sheshi">{{$t('hotel.hotel_type')}}</span>
<div class="res-span">
<el-tree :data="categoryTree" disabled default-expand-all :props="{label: 'CategoryName', children: 'SubList'}"
show-checkbox node-key="Id" ref="treeForm" @check-change="handleNodeClick">
</el-tree>
</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" disabled 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" disabled class="toolInput inpuTwo" v-model="addMsg.RebateRatio"
onkeyup="value=value.replace(/[^\d]/g,'')" maxlength="20">
<div class="percentCon">%</div>
</div>
</div>
</div>
<el-form-item :label="$t('hotel.hotel_landline')">
<el-input type="text" disabled v-model="addMsg.Tel" maxlength="20" :placeholder="$t('hotel.hotel_landline')"
class="w300"></el-input>
</el-form-item>
<el-form-item :label="$t('system.table_country')">
<el-select disabled :placeholder="$t('visaT.qxzguojia')" filterable v-model="addMsg.Country"
class='multiple_input w300' @change="GetSubAreaList(addMsg.Country,1)">
<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="$t('hotel.hotel_province')">
<el-select disabled :placeholder="$t('ground.qingxuanzesheng')" filterable class='multiple_input w300'
v-model="addMsg.Province" @change="GetSubAreaList(addMsg.Province,2)">
<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="$t('hotel.hotel_city')">
<el-select disabled :placeholder="$t('ground.qingxuanzeshi')" filterable 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="$t('hotel.hotel_detailinfo')" prop="Address">
<el-input disabled :placeholder="$t('fnc.qsrneirong')" 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">{{$t('objFill.diliweizhi')}}</span>
<div class="RabateDiv clearfix">
<div class="RebateCount reOne">
<div class="leftPnum">{{$t('hotel.hotel_jingdu')}}</div>
<input disabled type="text" class="toolInput inpuOne" v-model="addMsg.Lng" maxlength="20">
</div>
<div class="RebateCount reTwo">
<div class="fanNum">{{$t('hotel.hotel_weidu')}}</div>
<input disabled type="text" class="toolInput inpuTwo" v-model="addMsg.Lat" maxlength="20">
</div>
</div>
</div>
<el-form-item :label="$t('hotel.hotel_fax')">
<el-input disabled type="text" v-model="addMsg.Fax" maxlength="20" class="w300"></el-input>
</el-form-item>
<el-form-item :label="$t('hotel.hotel_deadday')" prop="DieLine">
<el-input disabled type="text" onkeyup="value=value.replace(/[^\d]/g,'')" maxlength="50" v-model="addMsg.DieLine"
class="w300"></el-input><span class="hotelDay">{{$t('hotel.hotel_day')}}</span>
</el-form-item>
<el-form-item :label="$t('hotel.hotel_remark')">
<el-input disabled type="textarea" v-model="addMsg.Remark" class="w300"></el-input>
</el-form-item>
<el-form-item :label="$t('hotel.hotel_warm')">
<el-input disabled type="textarea" v-model="addMsg.WarmTip" class="w300"></el-input>
</el-form-item>
<el-form-item>
<el-switch disabled v-model="isBook" active-color="#13ce66" inactive-color="#ff4949"
:active-text="$t('hotel.hotel_Supplier')" :inactive-text="$t('ground.ziding')"></el-switch>
</el-form-item>
<el-form-item>
<el-switch disabled v-model="isDinner" active-color="#13ce66" @change="getDinnerList" inactive-color="#ff4949"
:active-text="$t('commonPickUp.Pick_Ding')" :inactive-text="$t('ground.buyongcan')"></el-switch>
</el-form-item>
<el-form-item :label="$t('ground.yongcanleixing')" v-show="isDinner">
<el-select disabled v-model="UseDinnerString" class='multiple_input w300' multiple
:placeholder="$t('pub.pleaseSel')">
<el-option v-for="item in dinerList" :key="item.Id" :label="item.Name" :value="item.Id">
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('ground.tingchechang')">
<el-switch disabled v-model="addMsg.IsHavearking" :active-value="1" :inactive-value="0"></el-switch>
</el-form-item>
<el-form-item :label="$t('ground.tingchefei')" v-if="addMsg.IsHavearking==1">
<el-input disabled type="text" v-model="addMsg.ParkFee" class="w300" maxlength="10"
@keyup.native="checkPrice(addMsg,'ParkFee')"></el-input>
</el-form-item>
<el-form-item :label="$t('ground.rutangshui')">
<el-input disabled type="text" v-model="addMsg.InTangTax" class="w300" maxlength="10"
@keyup.native="checkPrice(addMsg,'InTangTax')"></el-input>
</el-form-item>
<el-form-item :label="$t('ground.chengshishui')">
<el-input disabled type="text" v-model="addMsg.CityTax" class="w300" maxlength="10"
@keyup.native="checkPrice(addMsg,'CityTax')"></el-input>
</el-form-item>
<el-form-item :label="$t('ground.fanyongleixing')">
<el-select disabled v-model="addMsg.RebateType" class='multiple_input w300' :placeholder="$t('pub.pleaseSel')">
<el-option :key="0" :label="$t('pub.unlimitedSel')" :value="0"> </el-option>
<el-option :key="1" :label="$t('ground.hanshuifanyong')" :value="1"> </el-option>
<el-option :key="2" :label="$t('ground.bhanshuifanyong')" :value="2"> </el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('ground.sidaojianshifoufany')">
<el-select disabled v-model="addMsg.DriverGuideIsRebate" class='multiple_input w300'
:placeholder="$t('pub.pleaseSel')">
<el-option :key="0" :label="$t('ground.bufanyong')" :value="0"> </el-option>
<el-option :key="1" :label="$t('hotel.hotel_commission')" :value="1"> </el-option>
</el-select>
</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 HotelImageArray" :key="item.subCode">
<img :src="item.ShowPath" />
<div class="imgzhe">
<div class="re-delte"><i @click.stop="showImg(item.ShowPath)" class="iconfont icon-img_cz"></i></div>
</div>
</div>
</div>
</div>
</div>
</el-form>
</div>
<el-dialog custom-class="resourceImgAdd" :title="$t('ground.xuanzetupian')" center :visible.sync="addimg">
<DMCchooseImg @closeImg="closeDMCchooseImg" ref="DMCchooseImg1" @headCallBack="getDMCimg" v-bind:imgType="1">
</DMCchooseImg>
</el-dialog>
<el-dialog custom-class="mapList" :title="$t('hotel.hotel_mapLocation')" center :visible.sync="selectAddress">
<googleMap @refList="googleMap" v-bind:address="addMsg.Address" @headCallBack="headCall"></googleMap>
</el-dialog>
<div class="btn-list">
<span class="common-lefttit"></span>
<button class="cancel-Btn" @click="goUrl('HotelManagement')">返回</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 DMCchooseImg from "../commonPage/DMCchooseImg.vue";
import googleMap from "../commonPage/googleMap.vue";
export default {
data() {
return {
categoryTree: [],
imageOptions: {
navbar: false,
title: false
},
//是否有权限操作支付方式
IsHaveAuth: 0,
images: [],
//是否显示添加图片
addimg: false,
//地图选中地址
selectAddress: false,
//上传的文件数组
HotelImageArray: [],
//删除的图片文件数组
DeleteImageArray: [],
//地接资源图片
imglistArry: [],
//地接图片搜索关键字
imgKeyword: "",
openplatform: "", //获取开放平台
starslevel: "", //获取酒店星级
serviceList: [], //获取酒店服务
GetPolicy: "", //获取酒店政策
OpenPlatformStrings: "",
UseDinnerformString: "",
totalimg: "",
selecnum: 0,
hotelID: "",
openplatString: "",
UseDinnerString: "",
inActive: 1, //已选中
notInActive: 0, //未选中
SupplierList: "",
imgBeforeFile: this.domainManager().ViittoFileUrl,
isBook: true,
isDinner: false,
dinerList: "",
//下拉框默认值
SelectDefaultValue: 0,
//国家列表
CountryList: [],
//省份列表
ProvinceList: [],
//城市列表
CityList: [],
//支付方式
PayList: [],
//酒店类型
HotelTypeList: [],
//酒店价格
HotelPirceTypeList: [],
addMsg: {
ID: 0,
Name: "",
HotelRealName: "",
Descriptions: "",
Tel: "",
Remark: "",
//温馨提示
WarmTip: "",
Star: "",
URL: "",
Fax: "",
QCountry: "",
QProvince: "",
QCity: "",
District: 0,
Address: "",
Lng: "",
Lat: "",
HotelType: 0,
HotelPriceType: 0,
DieLine: "",
HotelImageList: [], //现在的图片
DeleteImageList: [], //要删除的图片
DiscountList: [],
RoomNumber: "",
ChainBrand: "",
FacilityServices: "",
HotelPolicy: "",
OpenPlatform: "",
RebateCount: "",
RebateRatio: "",
IsSelfBook: "",
IsUseDinner: "0",
UseDinnerType: "",
Country: 0,
Province: 0,
City: 0,
//是否预约
AppointmentStyle: 0,
//支付方式
PayStyle: 0,
//是否有停车场
IsHavearking: 0,
//入汤税
InTangTax: 0,
//城市税
CityTax: 0,
//停车费
ParkFee: 0,
//返佣类型:1-含税返佣,2-不含税返佣
RebateType: 0,
//司导房是否返佣:0-不返佣,1-返佣
DriverGuideIsRebate: 0,
},
DiscountList: {
ID: 0,
StartNum: '',
EndNum: '',
DisCountNum: ''
},
qMsg: {},
rules: {
//表单必填验证
Name: [{
required: true,
message: this.$t('ground.qingtianxiemc'),
trigger: "change"
}],
Address: [{
required: true,
message: this.$t('ground.qingxuanzedz'),
trigger: "change"
}],
Descriptions: [{
required: true,
message: this.$t('ground.qingshuruwzms'),
trigger: "change"
}],
DieLine: [{
pattern: this.$commonUtils.Regex.el_isInteger,
message: this.$t('ground.qingshuruzqdsz')
}]
}
};
},
components: {
googleMap: googleMap,
DMCchooseImg: DMCchooseImg
},
methods: {
deleteAir(i) {
this.addMsg.DiscountList.splice(i, 1);
},
addAir() {
this.addMsg.DiscountList.push(JSON.parse(JSON.stringify(this.DiscountList)));
},
//上传酒店图片
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.HotelImageArray.push(obj);
});
},
//更新酒店图片
updatePic() {
if (this.hotelID > 0) {
var postMsg = {
ID: this.hotelID,
Name: this.addMsg.Name,
HotelImageList: this.HotelImageArray, //新增修改
DeleteImageList: this.DeleteImageArray //删除的图片
};
this.apipost(
"hotel_post_UpateHotelPic",
postMsg,
res => {
if (res.data.resultCode == 1) {
this.Success(this.$t('ground.tupianczcg'));
}
},
null
);
}
},
//删除图片
delImg(index) {
var item = this.HotelImageArray[index];
this.DeleteImageArray.push(item);
this.HotelImageArray.splice(index, 1);
},
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)
} else {
this.$viewer.view(this.images.indexOf(src))
}
this.$viewer.show()
},
addImgOpen() {
this.addimg = true;
this.initimgList();
},
saveResource() {
//保存酒店信息
if (this.isBook) {
this.addMsg.IsSelfBook = 1;
} else {
this.addMsg.IsSelfBook = 0;
}
this.addMsg.FacilityServices = `${JSON.stringify(this.serviceList)}`;
this.addMsg.HotelPolicy = `${JSON.stringify(this.GetPolicy)}`;
this.addMsg.OpenPlatform = this.openplatString.toString();
this.addMsg.UseDinnerType = this.UseDinnerString.toString();
if (this.addMsg.IsUseDinner == 0) {
this.addMsg.UseDinnerType = "";
}
if (this.hoteID != "undefined") {
this.addMsg.ID = this.hotelID;
}
this.addMsg.HotelImageList = this.HotelImageArray;
this.addMsg.DeleteImageList = this.DeleteImageArray;
// this.addMsg.WebSiteCategoryIds = this.checkedId.join(',')
this.addMsg.WebSiteCategoryIds = this.getLastSubmitIds()
this.apipost(
"hotel_post_Set",
this.addMsg,
response => {
//修改添加接口
if (response.data.resultCode == 1) {
this.Success(this.$t('tips.saveYes'));
this.goUrl("HotelManagement");
} else {
this.Error(response.data.message);
}
},
null
);
},
init() {
var msg = {};
this.apipost(
"hotel_post_GetStar",
msg,
response => {
//初始化星级
if (response.data.resultCode == 1) {
this.starslevel = response.data.data;
}
},
null
);
this.apipost("hotel_post_GetPlatform", msg, res => {
//获取开放平台
this.openplatform = res.data.data;
});
},
inithotelService() {
//初始化酒店服务
let msg = {
Key: "SK_HOTEL_SERVICE"
};
this.apipost("dict_post_GetList", msg, res => {
if (res.data.resultCode == 1) {
var tempArray = res.data.data;
tempArray.forEach(item => {
item.checked = [];
});
this.serviceList = tempArray;
}
});
},
inithotelPolicy() {
//初始化酒店政策
let msg = {
Key: "SK_HOTEL_POLICY"
};
this.apipost("dict_post_GetList", msg, response => {
if (response.data.resultCode == 1) {
this.GetPolicy = response.data.data;
}
});
},
initimgList() {
//初始化弹窗图片列表
var keyWord = this.imgKeyword;
this.imglistArry = [];
let msg = {
Name: keyWord
};
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;
if (this.imglistArry != null) {
this.imglistArry.forEach(x => {
if (x.isShow == true) {
num++;
}
this.selecnum = num;
});
}
},
initCategoryTree() {
var msg = {};
var _self = this;
this.apipost(
"ws_post_GetCategoryTreeList",
msg,
res => {
if (res.data.resultCode == 1) {
let categoryTree = res.data.data.filter(item => item.CategoryName === '住宿')
this.addParentId(categoryTree, [])
this.categoryTree = categoryTree
this.setSelectedKeys()
} else {
_self.Error(res.data.message);
}
},
null
);
},
addParentId(tree, idArr) {
tree.forEach(item => {
item.ids = [...idArr, item.Id]
if (item.SubList && item.SubList.length) {
this.addParentId(item.SubList, item.ids)
}
})
},
setSelectedKeys() {
this.arr = []
if (this.checkedId.length && this.categoryTree.length) {
this.findSelcetedKey(this.categoryTree)
if (this.$refs.treeForm) {
this.$refs.treeForm.setCheckedKeys(this.arr)
}
}
},
findSelcetedKey(tree, ) {
tree.forEach(item => {
if (item.SubList && item.SubList.length) {
this.findSelcetedKey(item.SubList)
} else {
if (this.checkedId.includes(item.Id)) {
this.arr.push(item.Id)
}
}
})
},
getLastSubmitIds() {
this.idsList = []
this.selectedKeys = this.$refs.treeForm.getCheckedKeys()
this.getSelcetedKeyIds(this.categoryTree)
return [...new Set(this.idsList)].join(',')
},
getSelcetedKeyIds(tree) {
tree.forEach(item => {
if (item.SubList && item.SubList.length) {
this.getSelcetedKeyIds(item.SubList)
}
if (this.selectedKeys.includes(item.Id)) {
this.idsList = this.idsList.concat(item.ids)
}
})
},
handleNodeClick(data, checked, node) {},
initHotelData() {
var msg = {
hotelID: this.hotelID
};
this.getDinnerList();
var _self = this;
this.apipost(
"hotel_post_GetAll",
msg,
res => {
if (res.data.resultCode == 1) {
this.checkedId = res.data.data.WebSiteCategoryIds ? res.data.data.WebSiteCategoryIds.split(',').map(
item => Number(item)) : []
this.setSelectedKeys()
_self.addMsg = res.data.data;
if (_self.addMsg.Country > 0) {
this.GetSubAreaList(_self.addMsg.Country, 1, 1);
}
if (_self.addMsg.Province > 0) {
this.GetSubAreaList(_self.addMsg.Province, 2, 1);
}
if (_self.addMsg.IsUseDinner == 1) {
_self.isDinner = true;
} else {
_self.isDinner = false;
}
if (_self.addMsg.UseDinnerType != "") {
_self.UseDinnerformString = _self.addMsg.UseDinnerType.split(",");
_self.UseDinnerformString.forEach(x => {
_self.UseDinnerString.push(Number(x));
});
}
if (_self.addMsg.OpenPlatform != "") {
_self.OpenPlatformStrings = _self.addMsg.OpenPlatform.split(",");
_self.OpenPlatformStrings.forEach(x => {
_self.openplatString.push(Number(x));
});
}
if (_self.addMsg.FacilityServices != "") {
var itemArray = JSON.parse(_self.addMsg.FacilityServices);
_self.serviceList.forEach(item => {
var isFind = false;
for (var i = 0; i < itemArray.length; i++) {
if (
item.ID == itemArray[i].ID &&
itemArray[i].hasOwnProperty("checked")
) {
item.checked = itemArray[i].checked;
break;
}
}
});
}
if (_self.addMsg.HotelPolicy != "") {
_self.GetPolicy = JSON.parse(_self.addMsg.HotelPolicy);
}
_self.isBook = _self.addMsg.IsSelfBook;
if (res.data.data.List != null) {
//临时文件
res.data.data.List.forEach(imgItem => {
var obj = this.$DMCUtils.DMCImageObj();
obj.ID = imgItem.ID;
obj.Path = imgItem.Path;
obj.PicID = imgItem.PicID;
obj.ShowPath =
_self.imgBeforeFile +
imgItem.Path;
this.HotelImageArray.push(obj);
});
}
} else {
_self.Error(res.data.message);
}
},
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() {
if (this.imglistArry != null) {
this.imglistArry.forEach(x => {
if (x.isShow == true) {
var obj = this.$DMCUtils.DMCImageObj();
obj.Path = "/U" + this.$commonUtils.getCaption(x.Path, "Upload");
obj.ShowPath = x.Path;
obj.PicID = x.ID;
this.HotelImageArray.push(obj);
}
x.isShow = false;
this.selecnum = 0;
});
}
this.addimg = false;
},
googleMap() {
this.selectAddress = false;
},
closeDMCchooseImg() {
this.addimg = 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;
},
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.HotelImageArray.push(obj);
});
},
getSuplier() {
let msg = {
Type: 1
}; //HK新增查询条件
this.apipost(
"supplier_post_GetAllList",
msg,
response => {
if (response.data.resultCode == 1) {
this.SupplierList = response.data.data;
}
},
null
);
},
//获取用餐列表
getDinnerList() {
if (this.isDinner) {
this.addMsg.IsUseDinner = 1;
} else {
this.addMsg.IsUseDinner = 0;
}
let msg = {};
this.apipost(
"hotel_get_GetUseDinnerTypeList",
msg,
res => {
if (res.data.resultCode == 1) {
this.dinerList = res.data.data;
}
},
null
);
},
//获取国家
GetCounrty() {
this.apipost(
"dict_post_Destination_GetCountry", {},
res => {
this.CountryList = res.data.data;
},
err => {}
);
},
//获取省份和城市
GetSubAreaList(ID, type, isClear) {
let msg = {
Id: ID
};
if (type == 1) {
if (isClear != 1) {
this.addMsg.Province = 0;
this.addMsg.City = 0;
}
} else if (type == 2) {
if (isClear != 1) {
this.addMsg.City = 0;
}
}
if (this.addMsg.Country != 0) {
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;
}
},
err => {}
);
}
},
//获取支付方式列表
GetPayList() {
this.apipost(
"dmc_post_Get_GetPayStyleList", {},
res => {
if (res.data.resultCode == 1) {
this.PayList = res.data.data;
}
},
err => {}
);
},
//获取酒店类型列表
GetHotelTypeList() {
this.apipost(
"dmc_post_Get_GetHotelType", {},
res => {
if (res.data.resultCode == 1) {
this.HotelTypeList = res.data.data;
}
},
err => {}
);
},
GetHotelPirceTypeList() {
this.apipost(
"dmc_post_Get_GetHotelPriceType", {},
res => {
if (res.data.resultCode == 1) {
this.HotelPirceTypeList = res.data.data;
}
},
err => {}
);
},
//图片左移右移
ExchangeImg(index, IsMove) {
var imgItem = this.HotelImageArray[index];
//左移
if (IsMove == 0) {
var upItem = this.HotelImageArray[index - 1];
this.$set(this.HotelImageArray, index - 1, imgItem);
this.$set(this.HotelImageArray, index, upItem);
} else {
//右移动
var downItem = this.HotelImageArray[index + 1];
this.$set(this.HotelImageArray, index + 1, imgItem);
this.$set(this.HotelImageArray, index, downItem);
}
},
},
mounted() {
this.checkedId = []
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||userInfo.RB_Group_id==100) {
this.IsHaveAuth = 1;
}
this.GetPayList();
this.GetHotelTypeList();
this.GetHotelPirceTypeList();
this.qMsg = this.$route.query.qMsg;
this.hotelID = this.$route.query.id;
this.GetCounrty();
this.inithotelService(); //初始化酒店服务
this.inithotelPolicy(); //初始化酒店政策
this.init(); //初始化星级和开放平台
this.getSuplier(); //初始化供应商
if (this.hotelID > 0) {
this.initHotelData();
}
this.initCategoryTree()
}
};
</script>
...@@ -374,9 +374,11 @@ ...@@ -374,9 +374,11 @@
L5: items.ID == 5, L5: items.ID == 5,
}">{{ items.Name }}</span> }">{{ items.Name }}</span>
</div> </div>
<template v-if="msg.IsRecommend==0" >
<div class="delScien" @click.stop="isdelete(item.ID)"> <div class="delScien" @click.stop="isdelete(item.ID)">
<i class="iconfont icon-xingzhuang"></i> <i class="iconfont icon-xingzhuang"></i>
</div> </div></template>
<div class="starSu"> <div class="starSu">
<div class="star" v-if="item.Star < 8"> <div class="star" v-if="item.Star < 8">
<i v-for="(items, index) in item.starArr" class="iconfont icon-star1" :key="index"></i> <i v-for="(items, index) in item.starArr" class="iconfont icon-star1" :key="index"></i>
...@@ -434,27 +436,36 @@ ...@@ -434,27 +436,36 @@
</el-tooltip> </el-tooltip>
<div class="btnList"> <div class="btnList">
<template v-if="userInfo.RB_Group_id==2"> <template v-if="userInfo.RB_Group_id==2">
<template v-if="msg.IsRecommend==0">
<button @click="goSubInfo('HotelInfo', item.ID)" class="hotelBtnMan"> <button @click="goSubInfo('HotelInfo', item.ID)" class="hotelBtnMan">
{{ $t("pub.updateMsg") }} {{ $t("pub.updateMsg") }}
</button> </button>
</template>
<button @click="goSubInfo('HotelInfoDetails', item.ID)" class="hotelBtnMan">
详情
</button>
<template v-if="msg.IsRecommend==0">
<button @click="CopyHotel(item.ID)" class="hotelBtnMan" v-if="userInfo.RB_Group_id == QjGroupId()"> <button @click="CopyHotel(item.ID)" class="hotelBtnMan" v-if="userInfo.RB_Group_id == QjGroupId()">
{{$t('objFill.copy')}} {{$t('objFill.copy')}}
</button> </button>
</template>
<template v-if="msg.IsRecommend==0">
<button @click="goproduct('HotelProductManage', item)" class="hotelBtnMan" <button @click="goproduct('HotelProductManage', item)" class="hotelBtnMan"
v-if="userInfo.RB_Group_id != QjGroupId()"> v-if="userInfo.RB_Group_id != QjGroupId()">
{{$t('hotel.hotel_roomType')}} {{$t('hotel.hotel_roomType')}}
</button> </button>
</template>
<br /> <br />
<button v-if="IsHotelPriceStock==1||userInfo.RB_Group_id!=2" style="width: 80px; margin-top: 10px" <button v-if="(IsHotelPriceStock==1||userInfo.RB_Group_id!=2)&&msg.IsRecommend==0" style="width: 80px; margin-top: 10px"
@click="goUrl('HotelProductManage2', item)" class="hotelBtnMan"> @click="goUrl('HotelProductManage2', item)" class="hotelBtnMan">
{{ $t("ground.baojiayukucun") }} {{ $t("ground.baojiayukucun") }}
</button> </button>
<button v-if="IsHotelPriceStock==1" style="width: 80px; margin-top: 10px" @click="downloadFile(item)" <button v-if="IsHotelPriceStock==1&&msg.IsRecommend==0" style="width: 80px; margin-top: 10px" @click="downloadFile(item)"
class="hotelBtnMan"> class="hotelBtnMan">
{{$t('objFill.shangchuanbj')}} {{$t('objFill.shangchuanbj')}}
</button> </button>
<template v-if="item.MaxFileDate&&item.MaxFileDate!=''"> <template v-if="item.MaxFileDate&&item.MaxFileDate!=''&&msg.IsRecommend==0">
<span style="color:red">{{$t('objFill.zuijinscsij')}}:{{item.MaxFileDate}}</span> <span style="color:red">{{$t('objFill.zuijinscsij')}}:{{item.MaxFileDate}}</span>
</template> </template>
</template> </template>
...@@ -556,6 +567,8 @@ ...@@ -556,6 +567,8 @@
], ],
defaultImg: 'this.src="' + require("../../assets/img/bg_z1@2x.png") + '"', defaultImg: 'this.src="' + require("../../assets/img/bg_z1@2x.png") + '"',
loading: true, loading: true,
IsHotelPriceStock: 0, //1-有获取餐厅与报价添加修改权限
IsEditDmcSource: 0, //是否有新增修改权限
msg: { msg: {
pageIndex: 1, pageIndex: 1,
pageSize: 14, pageSize: 14,
...@@ -575,6 +588,7 @@ ...@@ -575,6 +588,7 @@
QFileStartDate: "", //报价上传开始日期 QFileStartDate: "", //报价上传开始日期
QFileEndDate: "", //报价上传结束日期 QFileEndDate: "", //报价上传结束日期
IsUpFile: 0, //是否上传报价(1-已上传,2-未上传) IsUpFile: 0, //是否上传报价(1-已上传,2-未上传)
IsRecommend:0,
}, },
isDisableCountry: false, //是否禁用国家查询 isDisableCountry: false, //是否禁用国家查询
}; };
...@@ -876,6 +890,31 @@ ...@@ -876,6 +890,31 @@
}, },
(err) => {} (err) => {}
); );
},
//获取酒店修改与报价添加修改权限
GetHotelPirceStockAuth() {
let isStock = "IsHotelPriceStock";
let editDmcSource = "F_EditDmcSource";
this.apipost('userauth_get_CheckUserAuthNewService', '', res => {
if (res.data.resultCode == 1) {
var tempData = res.data.data;
if (tempData && tempData.length > 0) {
if (tempData.includes(isStock)) {
this.IsHotelPriceStock = 1;
}
if (tempData.includes(editDmcSource)) {//查看列表权限
this.IsEditDmcSource = 1;
}
else{
this.msg.IsRecommend=1;
}
}
}
else{
this.msg.IsRecommend=1;
}
this.selectResource();
});
}, },
}, },
mounted() { mounted() {
...@@ -886,7 +925,7 @@ ...@@ -886,7 +925,7 @@
this.isDisableCountry = true; this.isDisableCountry = true;
this.getProvinceList(this.msg.QCountry, 1); this.getProvinceList(this.msg.QCountry, 1);
} }
this.selectResource(); this.GetHotelPirceStockAuth();
}, },
created() { created() {
if (this.$route.query.hasOwnProperty("cache")) { if (this.$route.query.hasOwnProperty("cache")) {
......
...@@ -812,6 +812,14 @@ export default { ...@@ -812,6 +812,14 @@ export default {
title: '添加修改酒店信息' title: '添加修改酒店信息'
}, },
}, },
{
path: '/HotelInfoDetails', //添加修改酒店信息
name: 'HotelInfoDetails',
component: resolve => require(['@/components/Hotel/HotelInfoDetails'], resolve),
meta: {
title: '添加修改酒店信息'
},
},
{ {
path: '/GnHotelInfo', //添加修改国内酒店信息 path: '/GnHotelInfo', //添加修改国内酒店信息
name: 'GnHotelInfo', name: 'GnHotelInfo',
......
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