Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
SuperMan
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
罗超
SuperMan
Commits
98d22fb8
Commit
98d22fb8
authored
May 17, 2021
by
zhengke
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加
parent
f6f76472
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
1765 additions
and
0 deletions
+1765
-0
GnHotelInfo.vue
src/components/Hotel/GnHotelInfo.vue
+903
-0
GnHotelManagement.vue
src/components/Hotel/GnHotelManagement.vue
+647
-0
HotelConfig.vue
src/components/Hotel/HotelConfig.vue
+191
-0
config.js
src/router/config.js
+24
-0
No files found.
src/components/Hotel/GnHotelInfo.vue
0 → 100644
View file @
98d22fb8
<
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"
v-model=
"addMsg.Name"
maxlength=
"100"
class=
"w300"
></el-input>
</el-form-item>
<el-form-item
:label=
"$t('ground.jiudianmingzi')"
>
<el-input
type=
"text"
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"
v-model=
"addMsg.Descriptions"
class=
"w300"
></el-input>
</el-form-item>
<el-form-item
:label=
"$t('hotel.hotel_openplatform')"
>
<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('hotel.hotel_brand')"
>
<el-input
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
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
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
v-model=
"addMsg.AppointmentStyle"
:active-value=
"inActive"
:inactive-value=
"notInActive"
>
</el-switch>
</el-form-item>
<el-form-item
:label=
"$t('ground.zhifufangshi')"
>
<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=
"$t('ground.jiudianleixing')"
>
<el-select
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
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
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
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
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
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)"
>
</el-button>
</el-col>
</el-row>
</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>
<el-form-item
:label=
"$t('hotel.hotel_landline')"
>
<el-input
type=
"text"
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
: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
: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
: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
: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"
>
地理位置
</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('hotel.hotel_fax')"
>
<el-input
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
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
type=
"textarea"
v-model=
"addMsg.Remark"
class=
"w300"
></el-input>
</el-form-item>
<el-form-item
:label=
"$t('Operation.Op_Warmprompt')"
>
<el-input
type=
"textarea"
v-model=
"addMsg.WarmTip"
class=
"w300"
></el-input>
</el-form-item>
<el-form-item>
<el-switch
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
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
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
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
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
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
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
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
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
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!=HotelImageArray.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"
></i>
<div
class=
"ad-one"
>
<div
class=
"re-upload"
>
<el-upload
class=
"upload-demo"
: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=
"$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=
"save-Btn"
@
click=
"submitForm('addMsg')"
>
{{$t('pub.saveBtn')}}
</button>
<button
class=
"cancel-Btn"
@
click=
"goUrl('HotelManagement')"
>
{{$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
DMCchooseImg
from
"../commonPage/DMCchooseImg.vue"
;
import
googleMap
from
"../commonPage/googleMap.vue"
;
export
default
{
data
()
{
return
{
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
.
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
;
});
}
},
initHotelData
()
{
var
msg
=
{
hotelID
:
this
.
hotelID
};
this
.
getDinnerList
();
var
_self
=
this
;
this
.
apipost
(
"hotel_post_GetAll"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
_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
()
{
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
.
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
();
}
}
};
</
script
>
src/components/Hotel/GnHotelManagement.vue
0 → 100644
View file @
98d22fb8
<
style
>
.hotelmanagement
.hotelResource
{
width
:
100%
;
min-height
:
500px
;
margin-top
:
20px
;
}
.hotelmanagement
.resourceListMan
{
width
:
215px
;
height
:
350px
;
background-color
:
#fff
;
border
:
1px
dashed
#ededed
;
border-radius
:
4px
;
margin
:
0
20px
20px
0
;
font-size
:
12px
;
color
:
#333333
;
float
:
left
;
}
.hotelmanagement
.resourceListMan
:hover
{
box-shadow
:
0px
0px
20px
rgba
(
191
,
191
,
191
,
1
);
transition
:
all
linear
0.5s
;
}
.hotelmanagement
.reTopInfo
{
width
:
100%
;
height
:
123px
;
position
:
relative
;
}
.hotelmanagement
.reTopInfo
img
{
position
:
absolute
;
width
:
100%
;
height
:
100%
;
top
:
0
;
border-top-left-radius
:
4px
;
border-top-right-radius
:
4px
;
}
.hotelmanagement
.resTypeList
{
position
:
absolute
;
top
:
10px
;
left
:
10px
;
}
.hotelmanagement
.resTypeList
span
{
display
:
inline-block
;
padding
:
1px
5px
;
border-radius
:
10px
;
color
:
#fff
;
margin-right
:
10px
;
}
.hotelmanagement
.L1
{
background-color
:
#e95252
;
}
.hotelmanagement
.L2
{
background-color
:
#47bf8c
;
}
.hotelmanagement
.L3
{
background-color
:
#2aaef2
;
}
.hotelmanagement
.L4
{
background-color
:
#9cf
;
}
.hotelmanagement
.L5
{
background-color
:
#00c6ff
;
margin-top
:
5px
;
}
.hotelmanagement
.starSu
{
position
:
absolute
;
bottom
:
8px
;
right
:
10px
;
}
.hotelmanagement
.sushe
{
background-color
:
#ffc800
;
display
:
inline-block
;
padding
:
1px
5px
;
border-radius
:
10px
;
color
:
#fff
;
}
.hotelmanagement
.hotelTitle
{
margin
:
22px
16px
0
16px
;
font-size
:
14px
;
color
:
#333333
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
}
.hotelmanagement
.brandList
{
margin
:
10px
16px
;
}
.hotelmanagement
.brandList
i
{
position
:
relative
;
top
:
2px
;
}
.hotelmanagement
.brand
{
float
:
left
;
width
:
120px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
}
.hotelmanagement
.dayNum
{
float
:
right
;
}
.hotelmanagement
.Address
{
margin
:
0
16px
;
height
:
17px
;
overflow
:
hidden
;
}
.hotelmanagement
.Address
i
{
color
:
#bbbbbb
;
}
.hotelmanagement
.iconfont
{
margin-right
:
5px
;
position
:
relative
;
top
:
-4px
;
}
.hotelmanagement
.icon-star1
{
color
:
#ffc800
;
}
.hotelmanagement
.star
i
{
margin-right
:
3px
;
font-size
:
12px
;
}
.hotelmanagement
.honor
{
color
:
#ff793e
;
}
.hotelmanagement
.dieline
{
color
:
#2aaef2
;
font-size
:
14px
;
top
:
1px
!important
;
}
.hotelmanagement
.AddressInner
{
float
:
right
;
width
:
160px
;
height
:
18px
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
display
:
-webkit-box
;
-webkit-line-clamp
:
1
;
-webkit-box-orient
:
vertical
;
}
.hotelmanagement
.btnList
{
margin-top
:
12px
;
text-align
:
center
;
}
.hotelmanagement
.hotelBtnMan
{
width
:
50px
;
height
:
28px
;
border-radius
:
14px
;
color
:
#fff
;
cursor
:
pointer
;
background-color
:
#f76f6f
;
}
.hotelmanagement
.w150
.el-input
{
width
:
150px
;
}
.hotelmanagement
.RemainingInventory
{
position
:
absolute
;
width
:
60px
;
height
:
60px
;
background-color
:
rgba
(
0
,
0
,
0
,
0.35
);
border-radius
:
50%
;
margin
:
auto
;
top
:
30px
;
color
:
#fff
;
font-size
:
16px
;
text-align
:
center
;
font-weight
:
bold
;
line-height
:
60px
;
left
:
50%
;
margin-left
:
-30px
;
}
.hotelmanagement
.delScien
{
position
:
absolute
;
right
:
10px
;
top
:
10px
;
display
:
none
;
}
.hotelmanagement
.delScien
:hover
{
color
:
#f76f6f
;
cursor
:
pointer
;
}
.hotelmanagement
.resourceListMan
:hover
.delScien
{
display
:
block
;
}
.hotelmanagement
.comCursorUrl
{
cursor
:
pointer
;
}
</
style
>
<
template
>
<div
class=
"flexOne hotelmanagement"
>
<div
class=
"query-box"
>
<ul>
<li>
<span
class=
"hotel_name"
>
<em>
{{
$t
(
'hotel.hotel_name'
)
}}
</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.jiudianleixing'
)
}}
</em>
<el-select
v-model=
"msg.HotelType"
class=
"w210"
:placeholder=
"$t('pub.unlimitedSel')"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
value=
"-1"
></el-option>
<el-option
v-for=
"item in HotelTypeList"
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>
{{
$t
(
'Operation.Op_price'
)
}}
</em>
<el-select
v-model=
"msg.HotelPirceType"
class=
"w210"
:placeholder=
"$t('pub.unlimitedSel')"
>
<el-option
:label=
"$t('pub.unlimitedSel')"
value=
"-1"
></el-option>
<el-option
v-for=
"item in HotelPirceTypeList"
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
>
</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=
"goSubInfo('GnHotelInfo')"
>
{{
$t
(
'pub.addBtn'
)
}}
</button>
</li>
</ul>
</div>
<div
class=
"hotelResource clearfix"
v-loading=
"loading"
>
<div
class=
"resourceListMan"
v-for=
"(item,index) in tableData"
:key=
"index"
>
<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"
:key=
"index"
:class=
"
{'L1':items.ID==1,'L2':items.ID==2,'L3':items.ID==3,'L4':items.ID==4,'L5':items.ID==5}">
{{
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.Star
<8
"
>
<i
v-for=
"(items,index) in item.starArr"
class=
"iconfont icon-star1"
:key=
"index"
></i>
</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.HotelRealName"
placement=
"top-start"
popper-class=
"max-w250"
>
<div
class=
"hotelTitle fz12"
>
{{
$t
(
'ground.zhenshimingcheng'
)
}}
:
{{
item
.
HotelRealName
}}
</div>
</el-tooltip>
<div
class=
"brandList clearfix"
style=
"display:none;"
>
<div
class=
"brand"
>
<i
class=
"iconfont honor icon-img_biaozhi"
></i>
{{
item
.
ChainBrand
}}
</div>
<div
class=
"dayNum"
>
<i
class=
"iconfont dieline icon-img_shijian"
></i>
{{
item
.
DieLine
}}{{
$t
(
'hotel.hotel_day'
)
}}
</div>
</div>
<div
class=
"Address"
>
<div
v-show=
"item.Address"
>
<i
class=
"iconfont icon-img_dz"
></i>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"item.Address"
placement=
"top-start"
>
<div
class=
"AddressInner"
>
{{
item
.
Address
}}
</div>
</el-tooltip>
</div>
</div>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"item.UpdateName+''+item.UpdateTimeStr"
placement=
"top-start"
>
<div
style=
"padding-left:15px;padding-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;"
>
<i
style=
"top:2px"
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=
"goSubInfo('GnHotelInfo',item.ID)"
class=
"hotelBtnMan"
>
{{
$t
(
'pub.updateMsg'
)
}}
</button>
<button
@
click=
"CopyHotel(item.ID)"
class=
"hotelBtnMan"
v-if=
"userInfo.RB_Group_id==QjGroupId()"
>
复制
</button>
<button
@
click=
"goproduct('HotelProductManage',item)"
class=
"hotelBtnMan"
v-if=
"userInfo.RB_Group_id!=QjGroupId()"
>
房型
</button>
<br/>
<button
v-if=
"IsHotelPriceStock==1"
style=
"width:80px;margin-top:10px;"
@
click=
"goUrl('HotelProductManage2',item)"
class=
"hotelBtnMan"
>
{{
$t
(
'ground.baojiayukucun'
)
}}
</button>
</div>
</div>
</div>
<el-pagination
background
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"msg.currentPage"
:page-size=
"this.msg.pageSize"
layout=
"total,prev, pager, next, jumper"
:total=
"msg.total"
></el-pagination>
</div>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
userInfo
:{},
//登录用户信息
IsHotelPriceStock
:
0
,
//1-有获取酒店库存与报价添加修改权限
countryList
:
""
,
provinceList
:
""
,
cityList
:
""
,
district
:
""
,
tableData
:
[],
EmployeeList
:
[],
//员工列表
//酒店类型
HotelTypeList
:
[],
//酒店价格
HotelPirceTypeList
:
[],
status
:
[{
value
:
"0"
,
label
:
this
.
$t
(
'pub.normalSel'
)
},
{
value
:
"1"
,
label
:
this
.
$t
(
'system.table_delete'
)
}
],
defaultImg
:
'this.src="'
+
require
(
"../../assets/img/bg_z1@2x.png"
)
+
'"'
,
loading
:
true
,
msg
:
{
pageIndex
:
1
,
pageSize
:
14
,
Name
:
""
,
QCountry
:
""
,
QProvince
:
""
,
QCity
:
""
,
Status
:
"0"
,
HotelPirceType
:
"-1"
,
HotelType
:
"-1"
,
QDistrict
:
""
,
total
:
0
,
currentPage
:
1
,
ID
:
0
,
UpdateBy
:
0
,
//操作人
}
};
},
methods
:
{
CopyHotel
(
Id
)
{
var
that
=
this
;
that
.
Confirm
(
'是否要复制此酒店?'
,
function
()
{
var
msg
=
{
Id
:
Id
};
that
.
apipost
(
"hotel_post_CopyHotelService"
,
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
;
},
isdelete
(
ID
)
{
var
that
=
this
;
that
.
Confirm
(
this
.
$t
(
"tips.shifoushanchu"
),
function
()
{
var
msg
=
{
hotelID
:
ID
};
that
.
apipost
(
"hotel_post_Remove"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
that
.
Success
(
res
.
data
.
message
);
that
.
selectResource
();
}
},
null
);
});
},
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
.
Country
!==
""
)
{
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
=>
{}
);
},
selectResource
()
{
this
.
loading
=
true
;
if
(
this
.
msg
.
Status
==
""
)
{
this
.
msg
.
Status
=
"-1"
;
}
this
.
apipost
(
"hotel_post_GetPageList"
,
this
.
msg
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
tableData
=
res
.
data
.
data
.
pageData
;
this
.
msg
.
total
=
res
.
data
.
data
.
count
;
let
starArr
;
this
.
tableData
.
forEach
(
x
=>
{
x
.
starArr
=
new
Array
(
x
.
Star
);
});
}
},
null
);
},
//调整到产品列表
goUrl
(
path
,
item
)
{
this
.
$router
.
push
({
path
:
path
,
query
:
{
id
:
item
.
ID
,
Country
:
item
.
Country
,
IsSelfBook
:
item
.
IsSelfBook
,
blank
:
'y'
,
tab
:
'报价详情'
}
});
},
//调整到房型列表
goproduct
(
path
,
item
)
{
this
.
$router
.
push
({
path
:
path
,
query
:
{
id
:
item
.
ID
,
Country
:
item
.
Country
,
IsSelfBook
:
item
.
IsSelfBook
,
blank
:
'y'
,
tab
:
'房型列表'
}
});
},
goSubInfo
(
path
,
id
)
{
this
.
$store
.
commit
(
"pageConditionUpdate"
,
this
.
msg
);
this
.
$router
.
push
({
path
:
path
,
query
:
{
id
:
id
,
blank
:
'y'
}
});
},
//获取酒店类型列表
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
=>
{}
);
},
//获取酒店修改与报价添加修改权限
GetHotelPirceStockAuth
()
{
this
.
apipost
(
"hotel_post_GetHotelPriceStockAuthService"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
IsHotelPriceStock
=
res
.
data
.
data
;
}
},
err
=>
{}
);
},
//根据当前员工所在部门获取该部门及子部门员工信息
getEmployeeList
()
{
let
msg
=
{
GroupId
:
this
.
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
.
userInfo
=
this
.
getLocalStorage
();
this
.
getEmployeeList
();
this
.
GetHotelPirceStockAuth
();
this
.
getCountryList
();
this
.
GetHotelTypeList
();
this
.
GetHotelPirceTypeList
();
},
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
>
src/components/Hotel/HotelConfig.vue
0 → 100644
View file @
98d22fb8
<
style
>
.syslog_Content
{
width
:
100%
;
}
.syslog_ul
li
{
width
:
100%
;
min-height
:
135px
;
margin-bottom
:
10px
;
}
.syslog_top
{
width
:
100%
;
height
:
34px
;
line-height
:
34px
;
background-color
:
#dfdfdf
;
}
.sys_content
{
width
:
100%
;
min-height
:
101px
;
padding
:
20px
;
font-size
:
14px
;
background-color
:
#fff
;
}
.appUpdateLog
.ql-editor
{
min-height
:
200px
;
}
.sysTop_left
{
float
:
left
;
}
.sysTop_banben
{
display
:
inline-block
;
color
:
#38425d
;
font-size
:
14px
;
font-weight
:
bold
;
margin
:
0
30px
;
}
.sysTop_uptime
{
font-size
:
14px
;
color
:
#666666
;
}
.sysTop_right
{
float
:
right
;
margin-right
:
30px
;
}
.sysliteleBtn
{
color
:
#fff
;
padding
:
0
10px
;
height
:
20px
;
background
:
#e95252
;
border
:
1px
solid
#e95252
;
cursor
:
pointer
;
border-radius
:
15px
;
margin-left
:
10px
;
}
</
style
>
<
template
>
<div
class=
"flexOne appUpdateLog"
>
<table
v-loading=
"loading"
class=
"singeRowTable"
>
<tr>
<th
width=
"150"
>
名称
</th>
<th
width=
"150"
>
Code
</th>
<th>
Content
</th>
<th
width=
"100"
>
操作
</th>
</tr>
<tr
v-for=
"(item, index) in dataList"
:key=
"index"
>
<td>
{{
item
.
Name
}}
</td>
<td>
{{
item
.
Code
}}
</td>
<td
style=
"text-align:left;padding:0 5px;"
>
{{
item
.
Content
}}
</td>
<td>
<input
type=
"button"
class=
"sysliteleBtn"
@
click=
"updateLog(item)"
value=
"修改"
/>
</td>
</tr>
</table>
<el-dialog
custom-class=
"w800"
:title=
"dialogTitle"
:visible
.
sync=
"outerVisible"
center
>
<el-form
:model=
"addMsg"
label-width=
"80px"
>
<table
style=
"width:100%"
>
<tr>
<td
colspan=
"2"
>
<el-form-item
label=
"更新內容"
>
<el-input
v-model=
"addMsg.Content"
class=
"w595"
placeholder=
"请输入"
/>
</el-form-item>
</td>
</tr>
</table>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<button
class=
"normalBtn"
@
click=
"SaveAppLog()"
>
{{
$t
(
"pub.saveBtn"
)
}}
</button>
<button
class=
"hollowFixedBtn"
@
click=
"(outerVisible = false), clearMsg()"
>
{{
$t
(
"pub.cancelBtn"
)
}}
</button>
</div>
</el-dialog>
</div>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
msg
:
{},
loading
:
false
,
dataList
:
[],
dialogTitle
:
""
,
outerVisible
:
false
,
addMsg
:
{
ID
:
0
,
Content
:
""
}
};
},
methods
:
{
getList
()
{
//获取现有线路列表
this
.
loading
=
true
;
this
.
apipost
(
"admin_get_GetDictValueListService"
,
this
.
msg
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
dataList
=
res
.
data
.
data
;
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
},
//修改获取数据
updateLog
(
item
)
{
this
.
addMsg
.
ID
=
item
.
ID
;
this
.
addMsg
.
Content
=
item
.
Content
;
this
.
dialogTitle
=
"修改更新日志"
;
this
.
outerVisible
=
true
;
},
clearMsg
()
{
this
.
addMsg
.
ID
=
0
;
this
.
addMsg
.
Content
=
""
;
},
SaveAppLog
()
{
this
.
apipost
(
"admin_post_SetDictValueListService"
,
this
.
addMsg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
outerVisible
=
false
;
this
.
clearMsg
();
this
.
Success
(
res
.
data
.
message
);
this
.
getList
();
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{}
);
}
},
mounted
()
{
this
.
getList
();
}
};
</
script
>
src/router/config.js
View file @
98d22fb8
...
...
@@ -768,6 +768,14 @@ export default {
title
:
'酒店管理'
},
},
{
path
:
'/GnHotelManagement'
,
//九寨酒店管理
name
:
'GnHotelManagement'
,
component
:
resolve
=>
require
([
'@/components/Hotel/GnHotelManagement'
],
resolve
),
meta
:
{
title
:
'酒店管理'
},
},
{
path
:
'/HotelInfo'
,
//添加修改酒店信息
name
:
'HotelInfo'
,
...
...
@@ -776,6 +784,22 @@ export default {
title
:
'添加修改酒店信息'
},
},
{
path
:
'GnHotelInfo'
,
//添加修改国内酒店信息
name
:
'GnHotelInfo'
,
component
:
resolve
=>
require
([
'@/components/Hotel/GnHotelInfo'
],
resolve
),
meta
:
{
title
:
'添加修改酒店信息'
},
},
{
path
:
'HotelConfig'
,
//酒店配置
name
:
'HotelConfig'
,
component
:
resolve
=>
require
([
'@/components/Hotel/HotelConfig'
],
resolve
),
meta
:
{
title
:
'酒店配置'
},
},
{
path
:
'/hotelpropertyManage'
,
//酒店属性管理
name
:
'HotelPropertyManage'
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment