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
1cd34054
Commit
1cd34054
authored
Sep 19, 2019
by
华国豪
🙄
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/superman
parents
101fdafa
9ae32a5e
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
862 additions
and
233 deletions
+862
-233
HotelManagement.vue
src/components/Hotel/HotelManagement.vue
+255
-231
restaurantList.vue
src/components/Restaurant/restaurantList.vue
+15
-1
TravelContractDetail.vue
src/components/TravelContractDetail.vue
+1
-1
RoomMealImport.vue
src/components/systemManagement/RoomMealImport.vue
+583
-0
config.js
src/router/config.js
+8
-0
No files found.
src/components/Hotel/HotelManagement.vue
View file @
1cd34054
<
style
>
.hotelmanagement
.hotelResource
{
width
:
100%
;
min-height
:
500px
;
margin-top
:
20px
;
}
.hotelmanagement
.resourceList
{
width
:
215px
;
height
:
320px
;
background-color
:
#fff
;
border
:
1px
dashed
#ededed
;
border-radius
:
4px
;
margin
:
0
20px
20px
0
;
font-size
:
12px
;
color
:
#333333
;
float
:
left
;
}
.hotelmanagement
.resourceList
: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
:
16px
;
text-align
:
center
;
}
.hotelmanagement
.hotelBtn
{
width
:
80px
;
height
:
28px
;
border-radius
:
14px
;
color
:
#fff
;
cursor
:
pointer
;
background-color
:
#f76f6f
;
}
.hotelmanagement
.hotelBtn
:first-child
{
margin-right
:
19px
;
}
.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
.resourceList
:hover
.delScien
{
display
:
block
;
}
.hotelmanagement
.comCursorUrl
{
cursor
:
pointer
;
}
width
:
100%
;
min-height
:
500px
;
margin-top
:
20px
;
}
.hotelmanagement
.resourceList
{
width
:
215px
;
height
:
320px
;
background-color
:
#fff
;
border
:
1px
dashed
#ededed
;
border-radius
:
4px
;
margin
:
0
20px
20px
0
;
font-size
:
12px
;
color
:
#333333
;
float
:
left
;
}
.hotelmanagement
.resourceList
: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
:
16px
;
text-align
:
center
;
}
.hotelmanagement
.hotelBtn
{
width
:
80px
;
height
:
28px
;
border-radius
:
14px
;
color
:
#fff
;
cursor
:
pointer
;
background-color
:
#f76f6f
;
}
.hotelmanagement
.hotelBtn
:first-child
{
margin-right
:
19px
;
}
.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
.resourceList
:hover
.delScien
{
display
:
block
;
}
.hotelmanagement
.comCursorUrl
{
cursor
:
pointer
;
}
</
style
>
<
template
>
<div
class=
"flexOne hotelmanagement"
>
...
...
@@ -225,21 +229,23 @@
<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>
<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-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-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')"
>
...
...
@@ -270,12 +276,14 @@
<em>
价格
</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-option
v-for=
"item in HotelPirceTypeList"
:key=
"item.ID"
:label=
"item.Name"
:value=
"item.ID"
>
</el-option>
</el-select>
</span>
</li>
<li>
<button
class=
"hollowFixedBtn"
type=
"button"
@
click=
"resetPageIndex(),selectResource()"
>
{{
$t
(
'pub.searchBtn'
)
}}
</button>
<button
class=
"hollowFixedBtn"
type=
"button"
@
click=
"resetPageIndex(),selectResource()"
>
{{
$t
(
'pub.searchBtn'
)
}}
</button>
<button
class=
"normalBtn"
type=
"button"
@
click=
"goSubInfo('HotelInfo')"
>
{{
$t
(
'pub.addBtn'
)
}}
</button>
</li>
</ul>
...
...
@@ -287,7 +295,8 @@
<img
v-else
:src=
'compressImg(item.PicPath, "filt", 213, "")'
:onerror=
"defaultImg"
>
<!--
<div
class=
"RemainingInventory"
>
{{
item
.
RemainingInventory
}}
</div>
-->
<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>
<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>
...
...
@@ -300,12 +309,13 @@
<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"
>
<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"
>
真实名称:
{{
item
.
HotelRealName
}}
</div>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
:content=
"item.HotelRealName"
placement=
"top-start"
popper-class=
"max-w250"
>
<div
class=
"hotelTitle fz12"
>
真实名称:
{{
item
.
HotelRealName
}}
</div>
</el-tooltip>
<div
class=
"brandList clearfix"
>
<div
class=
"brand"
>
<i
class=
"iconfont honor icon-img_biaozhi"
></i>
...
...
@@ -326,18 +336,19 @@
</div>
<div
class=
"btnList"
>
<button
@
click=
"goSubInfo('HotelInfo',item.ID)"
class=
"hotelBtn"
>
{{
$t
(
'pub.updateMsg'
)
}}
</button>
<button
@
click=
"goUrl('HotelProductManage2',item)"
class=
"hotelBtn"
>
报价与库存
</button>
<button
v-if=
"IsHotelPriceStock==1"
@
click=
"goUrl('HotelProductManage2',item)"
class=
"hotelBtn"
>
报价与库存
</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>
<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
{
IsHotelPriceStock
:
0
,
//1-有获取酒店库存与报价添加修改权限
countryList
:
""
,
provinceList
:
""
,
cityList
:
""
,
...
...
@@ -511,9 +522,22 @@
},
err
=>
{}
);
},
//获取酒店修改与报价添加修改权限
GetHotelPirceStockAuth
()
{
this
.
apipost
(
"hotel_post_GetHotelPriceStockAuthService"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
IsHotelPriceStock
=
res
.
data
.
data
;
}
},
err
=>
{}
);
}
},
mounted
()
{
this
.
GetHotelPirceStockAuth
();
this
.
getCountryList
();
this
.
GetHotelTypeList
();
this
.
GetHotelPirceTypeList
();
...
...
src/components/Restaurant/restaurantList.vue
View file @
1cd34054
...
...
@@ -338,7 +338,7 @@
</div>
<div
class=
"btnList"
>
<button
@
click=
"goSubInfo('restaurantInfoManage',item.ID)"
class=
"hotelBtn"
>
{{
$t
(
'pub.updateMsg'
)
}}
</button>
<button
@
click=
"goUrl('RestaurantPackage',item.ID)"
class=
"hotelBtn"
>
{{
$t
(
'restaurant.res_package'
)
}}
</button>
<button
v-if=
"IsHotelPriceStock==1"
@
click=
"goUrl('RestaurantPackage',item.ID)"
class=
"hotelBtn"
>
{{
$t
(
'restaurant.res_package'
)
}}
</button>
</div>
</div>
</div>
...
...
@@ -351,6 +351,7 @@
export
default
{
data
()
{
return
{
IsHotelPriceStock
:
0
,
//1-有获取餐厅与报价添加修改权限
total
:
0
,
currentPage
:
1
,
countryList
:
""
,
...
...
@@ -543,6 +544,18 @@
err
=>
{}
);
},
//获取酒店修改与报价添加修改权限
GetHotelPirceStockAuth
()
{
this
.
apipost
(
"hotel_post_GetHotelPriceStockAuthService"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
IsHotelPriceStock
=
res
.
data
.
data
;
}
},
err
=>
{}
);
}
},
created
()
{
if
(
this
.
$route
.
query
.
hasOwnProperty
(
"cache"
))
{
...
...
@@ -556,6 +569,7 @@
}
},
mounted
()
{
this
.
GetHotelPirceStockAuth
();
this
.
getCountryList
();
this
.
selectResource
();
this
.
GetDiningTypeList
();
...
...
src/components/TravelContractDetail.vue
View file @
1cd34054
...
...
@@ -527,7 +527,7 @@
<span
v-if=
"dataList.payType==2"
>
转账
</span>
<span
v-if=
"dataList.payType==3"
>
支票
</span>
。
</p>
<p>
旅游费用支付时间:
<span>
{{
getDate
(
dataList
.
payDate
)
}}
</span>
。
</p>
<p>
旅游费用支付时间:
<span
v-if=
"dataList.payDate"
>
{{
getDate
(
dataList
.
payDate
)
}}
</span>
。
</p>
<h3>
第二十二条 人身意外伤害保险
</h3>
<p>
1.出境社提示旅游者购买人身意外伤害保险;
</p>
<p>
...
...
src/components/systemManagement/RoomMealImport.vue
0 → 100644
View file @
1cd34054
<
style
>
.currentManage
._vMG_edit
{
overflow
:
auto
;
display
:
none
;
position
:
absolute
;
font-family
:
'PingFangSc-Fine'
;
bottom
:
0
;
left
:
0
;
border-top
:
1px
solid
#d1d1d1
;
background-color
:
#FFFFFF
;
padding
:
10px
;
width
:
100%
;}
.currentManage
._vMG_edit
._tit
{
padding-left
:
10px
;
border-left
:
3px
solid
#E95252
;
font-size
:
16px
;
color
:
#000000
}
.currentManage
._vMG_edit
._tit
span
{
color
:
#666666
;
font-size
:
14px
;}
._edHeight
{
height
:
400px
;}
.edHeight
{
display
:
block
!important
;
height
:
230px
;}
._scrollbar
::-webkit-scrollbar
{
width
:
4px
;
height
:
8px
;}
._scrollbar
::-webkit-scrollbar-thumb
{
border-radius
:
4px
;
box-shadow
:
inset
0
0
2px
rgba
(
0
,
0
,
0
,
0.2
);
background
:
#c9c9c9
;}
._scrollbar
::-webkit-scrollbar-track
{
box-shadow
:
inset
0
0
2px
rgba
(
0
,
0
,
0
,
0.2
);
border-radius
:
4px
;
background
:
#EDEDED
;}
.currentManage
._info_box
ul
{
margin-top
:
15px
}
.currentManage
._info_box
ul
li
{
float
:
left
;
width
:
250px
;}
.currentManage
.po_content
{
border-collapse
:
collapse
;
}
.currentManage
.po_content
{
width
:
100%
;
}
.currentManage
.po_content
tr
:first-child
{
font-size
:
12px
;
color
:
#666666
;
background-color
:
#DCDCDC
;
}
.currentManage
.po_content
tr
th
,
.currentManage
.po_content
tr
td
{
padding
:
10px
20px
;
text-align
:
left
;
}
.currentManage
.po_content
tr
td
{
color
:
#333333
;
font-size
:
14px
;
border
:
1px
solid
#E6E6E6
;
}
.currentManage
.po_content
tr
td
.iconfont
{
font-size
:
14px
;
padding
:
4px
;
}
.query-box
.iconfont
{
cursor
:
pointer
;
background-color
:
#E95252
;
color
:
white
;
width
:
30px
;
height
:
30px
;
display
:
inline-block
;
text-align
:
center
;
line-height
:
30px
;
border-radius
:
50%
;
margin-left
:
10px
;
}
.currentManage
._yuan
{
width
:
12px
;
height
:
12px
;
background
:
rgba
(
233
,
82
,
82
,
1
);
border-radius
:
50%
;
display
:
inline-block
;
}
.currentManage
._yuan._yuan_red
{
background
:
#47BF8C
;
}
.RoomMealImport
.picload
{
width
:
138px
;
height
:
92px
;
border-radius
:
2px
;
cursor
:
pointer
;
margin-bottom
:
10px
;
padding
:
5px
;
margin-right
:
10px
;
position
:
relative
;
}
.RoomMealImport
.picload
.el-upload
{
width
:
138px
;
height
:
92px
;
}
.RoomMealImport
.picload
.el-upload-dragger
{
width
:
100%
;
height
:
100%
;
}
.RoomMealImport
._addUpload_box
>
div
{
float
:
left
;
width
:
138px
;
height
:
92px
;
border
:
1px
dashed
rgba
(
210
,
210
,
210
,
1
);
border-radius
:
2px
;
cursor
:
pointer
;
margin-bottom
:
10px
;
padding
:
5px
;
margin-right
:
10px
;
position
:
relative
;
}
.RoomMealImport
._addUpload_box
.icon-excel
,
.RoomMealImport
._addUpload_box
.icon-pdf
{
text-align
:
center
;
font-size
:
38px
;
color
:
green
;
line-height
:
75px
;
}
.RoomMealImport
._addUpload_box
.icon-guanbi1
{
font-size
:
12px
;
color
:
white
;
display
:
inline-block
;
margin-left
:
15px
;
position
:
absolute
;
right
:
-6px
;
top
:
-9px
;
background-color
:
#f56c6c
;
border-radius
:
50%
;
height
:
20px
;
width
:
20px
;
text-align
:
center
;
line-height
:
20px
;
}
</
style
>
<
template
>
<div
class=
"flexOne currentManage RoomMealImport"
>
<div>
<ul
style=
"margin:10px 0;text-align:right"
>
<li>
<a
class=
"hollowFixedBtn downBtn"
style=
"padding:4px 9px;"
:href=
"downList"
>
导入模板下载
</a>
<button
class=
"hollowFixedBtn"
@
click=
"outerVisible=true"
>
导入
</button>
<button
class=
"hollowFixedBtn"
@
click=
"AddR"
>
提交
</button>
<button
class=
"hollowFixedBtn"
@
click=
"Gourl"
>
跳转到我的财务单据
</button>
</li>
</ul>
</div>
<div
class=
"cm_content _scrollbar"
>
<table
class=
"po_content singeRowTable"
style=
"border:1px solid #E6E6E6;"
cellspacing=
"0"
cellpadding=
"0"
v-loading=
"loading"
>
<tr>
<th>
编号
</th>
<th>
出团公司
</th>
<th>
入住日期
</th>
<th>
订房团号
</th>
<th>
团号
</th>
<th>
原币金额
</th>
<th>
币种
</th>
<th>
人民币
</th>
<!--
<th>
操作
</th>
-->
</tr>
<tr
v-for=
"(item,index) in DataList"
:key=
"index"
>
<td>
{{
item
.
ID
}}
</td>
<td>
{{
item
.
BranchName
}}
</td>
<td>
{{
item
.
CheckInDate
}}
</td>
<td>
{{
item
.
ReservationsTCNUM
}}
</td>
<td>
{{
item
.
TCNUM
}}
</td>
<td>
{{
item
.
WBMoney
}}
</td>
<td>
{{
item
.
CurrencyName
}}
</td>
<td>
{{
item
.
Money
}}
</td>
<!--
<td>
<span
style=
"cursor: pointer;color:blue;text-decoration:underline"
v-if=
"item.Type==2"
>
认领
</span>
<span
style=
"cursor: pointer;color:red;text-decoration:underline"
@
click=
"Delete(item)"
v-if=
"item.IsDelete==1"
>
删除
</span>
</td>
-->
</tr>
</table>
<div
class=
"noData"
v-if=
"DataList.length==0"
>
{{
$t
(
'system.content_noData'
)
}}
</div>
<!--
<div>
<el-pagination
background
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"currentPage"
layout=
"total,prev, pager, next, jumper"
:page-size=
msg.pageSize
:total=
total
>
</el-pagination>
</div>
-->
</div>
<el-dialog
custom-class=
'w700'
title=
"导入"
:visible
.
sync=
"outerVisible"
center
>
<el-upload
:show-file-list=
"false"
style=
"text-align: center;"
drag
class=
"upload-demo"
:action=
"importFileUrl2"
:on-success=
"handleAvatarSuccess"
:before-upload=
"beforeAvatarUpload"
>
<i
class=
"el-icon-upload"
></i>
<div
class=
"el-upload__text"
>
将文件拖到此处,或
<em>
点击上传
</em></div>
<!--
<div
slot=
"tip"
class=
"el-upload__tip"
>
只能上传Excel文件
</div>
-->
</el-upload>
</el-dialog>
<el-dialog
width=
"1000px"
title=
"保存"
:visible
.
sync=
"moneyR"
center
>
<el-form
:rules=
"rules"
class=
"Rform"
ref=
"form"
:model=
"form"
label-width=
"110px"
>
<el-row>
<el-col
:span=
"8"
>
<el-form-item
label=
"导入类型"
>
<el-select
filterable
prop=
"ImportType"
v-model=
'msg.ImportType'
>
<el-option
label=
"房费"
:value=
'1'
></el-option>
<el-option
label=
"餐费"
:value=
'2'
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"预计付款日期"
>
<el-date-picker
v-model=
"msg.PayDate"
value-format=
"yyyy-MM-dd"
type=
"date"
placeholder=
"选择日期"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"8"
>
<el-form-item
label=
"付款类型"
>
<el-select
filterable
prop=
"IsPublic"
v-model=
'msg.IsPublic'
>
<el-option
:label=
"$t('fnc.gongzhang')"
:value=
'1'
:key=
'1'
></el-option>
<el-option
:label=
"$t('fnc.sizhang')"
:value=
'0'
:key=
'0'
></el-option>
<el-option
:label=
"$t('fnc.rmbxianjin')"
:value=
'2'
:key=
'2'
></el-option>
<el-option
:label=
"$t('fnc.wbxianjin')"
:value=
'3'
:key=
'3'
></el-option>
<el-option
:label=
"$t('fnc.zjinchi')"
:value=
'4'
:key=
'4'
></el-option>
<el-option
:label=
"$t('fnc.ptxnzhanghu')"
:value=
'5'
:key=
'5'
></el-option>
<el-option
:label=
"$t('fnc.djxnzhanghu')"
:value=
'6'
:key=
'6'
></el-option>
<el-option
:label=
"$t('fnc.szxiangdi')"
:value=
'7'
:key=
'7'
></el-option>
<el-option
label=
"原路退款"
:value=
'8'
:key=
'8'
></el-option>
<el-option
label=
"地接预支款"
:value=
'9'
:key=
'9'
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"客户类型"
>
<el-select
v-if=
"!showDisable"
filterable
v-model=
'msg.ClientType'
@
change=
"financeinfo_post_GetClientAccountList(msg.ClientType)"
>
<el-option
v-for=
'item in ClientTypeList'
:label=
'item.Name'
:value=
'item.ID'
:key=
'item.ID'
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"客户名称"
>
<el-select
filterable
v-model=
'msg.ClientID'
>
<el-option
v-for=
'item in ClientAccountList'
:label=
'item.Name'
:value=
'item.ID'
:key=
'item.ID'
>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col
:span=
"8"
>
<el-form-item
label=
"上传附件"
>
<div
class=
"picload"
>
<el-upload
style=
"width: 138px;height: 92px;"
drag
:http-request=
"uploadFileBtn"
:multiple=
"true"
:show-file-list=
"false"
action=
""
>
<i
class=
"el-icon-plus avatar-uploader-icon"
></i>
<div
class=
"el-upload__text"
>
{{
$t
(
'active.ld_djscwj'
)
}}
</div>
</el-upload>
</div>
</el-form-item>
</el-col>
<el-col
:span=
"16"
style=
"padding-top:5px"
>
<div
class=
"_addUpload_box"
v-for=
"(file,fIndex) in saveMsg"
:key=
"fIndex"
>
<div
v-if=
"file.Type==3"
>
<div
style=
"width:100%;height:100%;overflow: hidden;"
>
<img
style=
"width:100%"
:src=
"file.Url?file.Url:file.Content"
@
click=
"showUpLoadFile(file)"
>
</div>
<span
class=
"iconfont icon-guanbi1"
@
click=
"deleteUploadFile(fIndex)"
></span>
</div>
<div
v-if=
"file.Type==1"
>
<div
class=
"iconfont "
:class=
"file.Content.substring(file.Content.lastIndexOf('.')+1,file.Content.length).toUpperCase()=='PDF'? 'icon-pdf' : 'icon-excel'"
@
click=
"showUpLoadFile(file)"
>
</div>
<span
class=
"iconfont icon-guanbi1"
@
click=
"deleteUploadFile(fIndex)"
></span>
</div>
<div
v-if=
"file.Type==2"
>
<div
class=
"iconfont icon-excel"
@
click=
"showUpLoadFile(file)"
>
</div>
<span
class=
"iconfont icon-guanbi1"
@
click=
"deleteUploadFile(fIndex)"
></span>
</div>
</div>
</el-col>
</el-row>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
size=
"small"
@
click=
"moneyR = false"
>
取 消
</el-button>
<el-button
:loading=
"Btnloading"
size=
"small"
type=
"danger"
@
click=
"RSumbit"
>
确 定
</el-button>
</span>
</el-dialog>
</div>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
form
:{
ID
:
""
,
FrId
:
''
,
},
moneyR
:
false
,
outerVisible
:
false
,
msg
:{
ImportType
:
''
,
IsPublic
:
""
,
ClientType
:
""
,
ClientID
:
""
,
vorcherInos
:[],
PayDate
:
''
,
},
productionDate
:[],
DataList
:[],
loading
:
false
,
currentPage
:
1
,
total
:
0
,
currencyTypeList
:[],
importFileUrl2
:
""
,
downList
:
""
,
showDisable
:
false
,
ClientAccountList
:[],
ClientTypeList
:[],
saveMsg
:[],
rules
:
{
ImportType
:
[
{
required
:
true
,
message
:
'请选择导入类型'
,
trigger
:
'change'
}
],
IsPublic
:
[
{
required
:
true
,
message
:
'请选择付款类型'
,
trigger
:
'change'
}
],
},
Btnloading
:
false
,
}
},
created
(){
let
userInfo
=
this
.
getLocalStorage
();
this
.
importFileUrl2
=
this
.
domainManager
().
UploadFileUrl
+
"?cmd=dmc_post_LocalFileUpload&fileType=1&fileLimit=1&RB_Group_id=2&Type=7&EmployeeId="
+
userInfo
.
EmployeeId
;
this
.
downList
=
this
.
domainManager
().
LocalTemplateFileDownLoadUrl
+
"/Upload/Template/房餐批量导入模板.xls"
;
},
filters
:{
PNumber
(
val
){
if
(
val
){
return
val
.
substr
(
0
,
4
)
+
"****"
+
val
.
substr
(
-
4
,
4
)
}
},
},
mounted
(){
this
.
GetAccount
();
this
.
financeinfo_post_GetClientTypeList
();
},
methods
:
{
financeinfo_post_GetClientTypeList
(){
// 获取对象类型
this
.
apipost
(
'financeinfo_post_GetClientTypeList'
,{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
ClientTypeList
=
res
.
data
.
data
;
}
},
err
=>
{})
},
showUpLoadFile
(
i
){
// 预览上传文件
if
(
i
.
Type
==
3
){
this
.
picObj
.
push
(
i
.
Url
);
this
.
picIsShow
=
true
;
}
else
{
if
(
i
.
Content
.
substring
(
i
.
Content
.
lastIndexOf
(
'.'
)
+
1
,
i
.
Content
.
length
).
toUpperCase
()
==
'PDF'
){
this
.
previewPDF
(
i
.
Url
)
}
else
{
window
.
open
(
"https://view.officeapps.live.com/op/view.aspx?src="
+
i
.
Url
)
}
}
},
deleteUploadFile
(
i
){
// 删除上传文件
this
.
saveMsg
.
splice
(
i
,
1
);
},
uploadFileBtn
(
file
)
{
//上传
if
(
file
.
file
.
size
>
1024
*
1024
*
10
)
{
this
.
$message
.
warning
(
this
.
$t
(
'tips.wjdxbncgsz'
))
return
}
// 1 文档 2 数据 3 图片
let
typeArr
=
[
{
stringArr
:
'GIF|JPG|JPEG|PNG|BMP'
,
type
:
3
},
{
stringArr
:
'DOCX|DOC|XLSX|XLS|PPT|PPTX|PDF'
,
type
:
1
},
]
let
ft
=
file
.
file
.
name
.
substring
(
file
.
file
.
name
.
lastIndexOf
(
'.'
)
+
1
,
file
.
file
.
name
.
length
).
toUpperCase
();
let
fileTypeNumber
=
2
;
let
typeOk
=
false
;
typeArr
.
forEach
(
x
=>
{
if
(
x
.
stringArr
.
indexOf
(
ft
)
!=
'-1'
)
{
fileTypeNumber
=
x
.
type
;
typeOk
=
true
;
}
})
if
(
!
typeOk
)
return
this
.
$message
.
error
(
this
.
$t
(
'tips.qscWEfile'
));
let
newArr
=
[];
newArr
.
push
(
file
.
file
)
let
path
=
"/Upload/Temporary/"
this
.
$message
.
info
(
this
.
$t
(
'tips.shangchuanzhong'
))
this
.
UploadSelfFileT
(
path
,
newArr
,
x
=>
{
let
fileSize
=
file
.
file
.
size
<
1024
?
file
.
file
.
size
:(
file
.
file
.
size
/
1024
).
toFixed
(
0
);
this
.
saveMsg
.
push
({
Content
:
x
.
data
.
FilePath
,
ID
:
0
,
Type
:
fileTypeNumber
,
Url
:
this
.
domainManager
().
ViittoFileUrl
+
x
.
data
.
FilePath
,
})
this
.
$message
.
success
(
this
.
$t
(
'tips.scchenggong'
))
},
1
);
},
IsPublicChange
(
val
){
this
.
showDisable
=
false
;
this
.
msg
.
ClientType
=
''
;
this
.
msg
.
ClientID
=
''
;
this
.
msg
.
AccountNumber
=
''
;
this
.
ClientAccountListS
=
[];
if
(
val
==
8
||
val
==
9
){
this
.
showDisable
=
true
;
}
},
financeinfo_post_GetClientAccountList
(
t
,
i
){
//获取付款 对象类型 新增用
let
msg
=
{
ID
:
0
,
Type
:
t
,
ObjID
:
0
,
CardNum
:
''
}
if
(
i
>=
0
){
msg
.
ID
=
i
;
}
else
{
this
.
msg
.
ClientID
=
''
;
this
.
msg
.
AccountNumber
=
''
;
this
.
msg
.
RemitterName
=
''
;
this
.
msg
.
IsLeader
=
1
;
}
this
.
apipost
(
'financeinfo_post_GetClientAccountList'
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
;
let
ClientAccountList
=
[];
if
(
i
){
data
.
forEach
(
x
=>
{
let
obj
=
{
ID
:
x
.
ID
,
Name
:
x
.
AccountHolder
+
+
`(
${
x
.
AccountAlias
}
)`
,
Nom
:
x
.
CardNum
,
OpenBankName
:
x
.
OpenBankName
,
allName
:
x
.
CardNum
+
" "
+
x
.
OpenBankName
,
ObjID
:
x
.
ObjID
,
}
ClientAccountList
.
push
(
obj
)
})
this
.
ClientAccountListS
=
ClientAccountList
;
}
else
{
data
.
forEach
(
x
=>
{
let
obj
=
{
ID
:
x
.
ID
,
Name
:
x
.
AccountHolder
+
`(
${
x
.
AccountAlias
}
)`
,
Nom
:
x
.
CardNum
,
OpenBankName
:
x
.
OpenBankName
,
ObjID
:
x
.
ObjID
,
}
ClientAccountList
.
push
(
obj
)
})
this
.
ClientAccountList
=
ClientAccountList
;
}
}
},
err
=>
{})
},
GetClientAccountList
(
i
){
//获取客户名称并且根据费用类型和付款对象获取客户账号
this
.
msg
.
AccountNumber
=
''
;
this
.
ClientAccountList
.
forEach
(
x
=>
{
if
(
x
.
ID
==
i
){
this
.
msg
.
RemitterName
=
x
.
Name
;
this
.
financeinfo_post_GetClientAccountList
(
this
.
msg
.
ClientType
,
x
.
ID
);
}
})
},
AddR
(
item
){
this
.
moneyR
=
true
;
},
Delete
(
item
){
var
msg
=
{
ID
:
item
.
ID
}
this
.
$confirm
(
'是否删除?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
this
.
apipost
(
'Financial_post_DelFinanceRemittanceClaim'
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Success
(
res
.
data
.
message
)
this
.
getList
()
}
else
{
this
.
Error
(
res
.
data
.
message
)
}
},
null
)
}).
catch
(()
=>
{
});
},
RSumbit
(){
this
.
msg
.
vorcherInos
=
this
.
saveMsg
;
if
(
this
.
msg
.
PayDate
==
""
){
this
.
Error
(
"请选择时间!"
);
return
;
}
if
(
!
this
.
msg
.
HouseMealList
||
this
.
msg
.
HouseMealList
.
length
==
0
){
this
.
Error
(
"请先导入模板!"
);
return
;
}
this
.
Btnloading
=
true
;
this
.
apipost
(
'Financial_post_SetHouseMealBetchImport'
,
this
.
msg
,
res
=>
{
this
.
Btnloading
=
false
;
if
(
res
.
data
.
resultCode
==
1
){
this
.
Success
(
res
.
data
.
message
)
this
.
DataList
=
[];
this
.
initMsg
();
this
.
moneyR
=
false
;
}
else
{
this
.
Error
(
res
.
data
.
message
)
}
},
err
=>
{})
},
initMsg
(){
this
.
saveMsg
=
[];
this
.
msg
=
{
ImportType
:
''
,
IsPublic
:
""
,
ClientType
:
""
,
ClientID
:
""
,
vorcherInos
:[],
PayDate
:
''
,
}
},
Gourl
(){
this
.
$router
.
push
({
name
:
"FinancialDocuments"
,
query
:
{
blank
:
'y'
}
})
},
beforeAvatarUpload
(
file
)
{
return
;
const
isJPG
=
file
.
type
===
"application/x-msdownload"
;
if
(
!
isJPG
)
{
this
.
$message
.
error
(
"上传文件只能是 excel 格式!"
);
}
return
isJPG
&&
isLt2M
;
},
//上传
handleAvatarSuccess
(
res
,
file
)
{
if
(
res
.
resultCode
==
1
)
{
this
.
msg
.
HouseMealList
=
res
.
data
;
this
.
DataList
=
res
.
data
;
this
.
outerVisible
=
false
;
}
else
{
this
.
Error
(
res
.
message
);
}
},
GetAccount
(){
this
.
apipost
(
'bankaccount_post_GetList'
,{
TypeId
:
'0'
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
){
this
.
currencyTypeList
=
res
.
data
.
data
;
}
else
{
}
},
err
=>
{})
},
},
}
</
script
>
src/router/config.js
View file @
1cd34054
...
...
@@ -1084,6 +1084,14 @@ export default {
title
:
'未认款管理'
},
},
{
path
:
'/RoomMealImport'
,
//房餐批量制单
name
:
'RoomMealImport'
,
component
:
resolve
=>
require
([
'@/components/systemManagement/RoomMealImport'
],
resolve
),
meta
:
{
title
:
'房餐批量制单'
},
},
{
path
:
'/Maninfo'
,
//未认款信息
name
:
'Maninfo'
,
...
...
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