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
ba1474f1
Commit
ba1474f1
authored
Nov 25, 2019
by
黄媛媛
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/superman
parents
c6085d73
332303e1
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
1255 additions
and
585 deletions
+1255
-585
Ground.js
src/assets/common/lang/zhCN/Ground.js
+1
-0
Ground.js
src/assets/common/lang/zhTW/Ground.js
+1
-0
HotelSupplier.vue
src/components/Hotel/HotelSupplier.vue
+581
-365
HotelSupplierHotel.vue
src/components/Hotel/HotelSupplierHotel.vue
+251
-182
roomReservationsDetails.vue
src/components/Hotel/roomReservationsDetails.vue
+43
-34
leaderReimbursement.vue
src/components/LeaderManagement/leaderReimbursement.vue
+15
-4
customerMap.vue
src/components/SalesModule/customerMap.vue
+147
-0
customerTransfer.vue
src/components/SalesModule/customerTransfer.vue
+9
-0
appUpdateLog.vue
src/components/systemManagement/appUpdateLog.vue
+191
-0
config.js
src/router/config.js
+16
-0
No files found.
src/assets/common/lang/zhCN/Ground.js
View file @
ba1474f1
...
...
@@ -677,5 +677,6 @@ export const obj = {
suoshusj
:
'所属上级'
,
shangpinlxmc
:
'商品类型名称'
,
qingshangctp
:
'请上传图片'
,
kehuditu
:
'客户地图'
}
export
default
obj
;
\ No newline at end of file
src/assets/common/lang/zhTW/Ground.js
View file @
ba1474f1
...
...
@@ -677,5 +677,6 @@ xiugaishangplx: '修改商品類型',
suoshusj
:
'所屬上級'
,
shangpinlxmc
:
'商品類型名稱'
,
qingshangctp
:
'請上傳圖片'
,
kehuditu
:
'客戶地圖'
}
export
default
obj
;
\ No newline at end of file
src/components/Hotel/HotelSupplier.vue
View file @
ba1474f1
This diff is collapsed.
Click to expand it.
src/components/Hotel/HotelSupplierHotel.vue
View file @
ba1474f1
This diff is collapsed.
Click to expand it.
src/components/Hotel/roomReservationsDetails.vue
View file @
ba1474f1
...
...
@@ -29,7 +29,8 @@
</ul>
{{
$t
(
'ground.jisuan1'
)
}}
<br
/>
{{
$t
(
'ground.jisuan2'
)
}}
<br
/>
{{
$t
(
'ground.sidaobsuan'
)
}}
{{
$t
(
'ground.sidaobsuan'
)
}}
<br
/>
付款方式是现付的,必須上传手配书.
</div>
<div
style=
"width: 100%; overflow-x: auto;padding-bottom: 10px; "
:style=
"
{height: boxHeight + 'px'}"
class="ownScrollbarStyle" ref="ownScrollbarStyle">
...
...
@@ -164,7 +165,10 @@
<tr>
<td
colspan=
"2"
>
<p
style=
"padding-top: 5px;"
>
<a
v-if=
"subItem.ContractUrl"
target=
"_blank"
style=
"color:green"
:href=
"subItem.ContractUrl"
>
已上传手配书
</a>
<template
v-if=
"subItem.ContractUrl!=''"
>
<span
style=
"color:green"
>
已上传手配书
</span>
<a
v-if=
"subItem.ContractUrl"
target=
"_blank"
style=
"color:red"
:href=
"subItem.ContractUrl"
>
查看
</a>
</
template
>
</p>
<el-upload
:http-request=
"uploadFileBtnS"
:multiple=
"false"
:show-file-list=
"false"
action=
''
>
<el-button
size=
"small"
type=
"danger"
@
click=
'getItem(index, subIndex)'
>
...
...
@@ -875,9 +879,9 @@
var
str
=
""
;
this
.
list
.
forEach
(
item
=>
{
item
.
HotelOrderList
.
forEach
(
subItem
=>
{
if
(
isUpload
&&
subItem
.
PayStyle
==
1
&&
subItem
.
ContractUrl
==
''
){
str
+=
""
isUpload
=
false
;
if
(
isUpload
&&
subItem
.
PayStyle
==
1
&&
subItem
.
ContractUrl
==
''
&&
this
.
CurrentUserInfo
.
EmployeeId
!=
615
){
str
+=
`请上传
${
item
.
UseTimeStr
}
的手配书`
isUpload
=
false
;
}
subItem
.
OrderDetailsList
.
forEach
((
y
,
sIndex
)
=>
{
if
(
y
.
HouseTypeCount
)
{
...
...
@@ -907,31 +911,34 @@
}
});
})
if
(
flag
){
this
.
loading
=
true
;
this
.
apipost
(
'dmcstatistics_get_SetHotelOrder'
,
this
.
list
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
getList
();
this
.
Success
(
res
.
data
.
message
);
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{})
if
(
!
isUpload
){
this
.
Error
(
str
);
return
;
}
this
.
loading
=
true
;
this
.
apipost
(
'dmcstatistics_get_SetHotelOrder'
,
this
.
list
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
getList
();
this
.
Success
(
res
.
data
.
message
);
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{})
},
//单条保存
SaveSingle
(
item
)
{
item
.
HotelOrderState
=
1
;
var
flag
=
true
;
var
isUpload
=
true
;
var
str
=
""
;
this
.
list
.
forEach
(
item
=>
{
item
.
HotelOrderList
.
forEach
(
subItem
=>
{
if
(
isUpload
&&
subItem
.
PayStyle
==
1
&&
subItem
.
ContractUrl
==
''
&&
this
.
CurrentUserInfo
.
EmployeeId
!=
615
){
str
+=
`请上传
${
item
.
UseTimeStr
}
的手配书`
isUpload
=
false
;
}
subItem
.
OrderDetailsList
.
forEach
(
y
=>
{
if
(
subItem
.
CurrencyId
==
3
&&
subItem
.
ContractUrl
==
''
){
this
.
Error
(
'请上传手配书'
);
flag
=
false
;
}
if
(
y
.
HouseTypeCount
)
{
y
.
HouseTypeCount
=
parseFloat
(
y
.
HouseTypeCount
);
}
else
{
...
...
@@ -960,20 +967,22 @@
}
});
})
if
(
flag
){
let
mag
=
{
TotalList
:
this
.
list
,
SingleItem
:
item
};
this
.
apipost
(
'dmcstatistics_get_SetHotelOrder'
,
this
.
list
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Success
(
res
.
data
.
message
);
this
.
getList
();
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{})
if
(
!
isUpload
){
this
.
Error
(
str
);
return
;
}
let
mag
=
{
TotalList
:
this
.
list
,
SingleItem
:
item
};
this
.
apipost
(
'dmcstatistics_get_SetHotelOrder'
,
this
.
list
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Success
(
res
.
data
.
message
);
this
.
getList
();
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{})
},
// 获取供应商
...
...
src/components/LeaderManagement/leaderReimbursement.vue
View file @
ba1474f1
...
...
@@ -363,13 +363,24 @@
<span
v-else-if=
"subItem.DMCPayType === 9"
>
月结
</span>
<span
v-else-if=
"subItem.DMCPayType === 11"
>
刷卡
</span>
<span
v-else-if=
"subItem.DMCPayType === 10"
>
领队导游垫付
</span>
<
/br
>
<
br/
>
<span
v-show=
"subItem.DMCPayType==6"
>
付款团号:{{subItem.PayTypeTCNUM}}
</span>
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"6"
>
<span>
{{subItem.SupplierName}}
<span
v-if=
"subItem.SupplierPayType !== 0"
:style=
"{'color': subItem.SupplierPayType == 2 ? '#E95252': '#111111'}"
>
{{subItem.SupplierPayType == 2 ? '签单' : '现付'}}
</span></span>
<span>
{{subItem.SupplierName}}
<br/>
<
template
v-if=
"subItem.SupplierPayType !== 0"
>
<span
v-if=
"subItem.SupplierPayType == 1"
>
现付
</span>
<span
v-else-if=
"subItem.SupplierPayType == 2"
>
签单
</span>
<span
v-else-if=
"subItem.SupplierPayType == 4"
>
预付
</span>
</
template
>
</span>
<div
v-if=
"subItem.IsHaveShouPeiFee==0"
style=
"color:red;"
>
无手配费
</div>
<div
v-if=
"subItem.IsHaveShouPeiFee==1"
style=
"color:red;"
>
手配费:{{subItem.ShouPeiMoney}}
</div>
...
...
src/components/SalesModule/customerMap.vue
0 → 100644
View file @
ba1474f1
<
style
>
.customerMap
{
width
:
100%
;
height
:
100%
;
}
</
style
>
<
template
>
<div
class=
"customerMap"
>
<div
:style=
"
{height:'100%',width:'100%'}" ref="myEchart" id="centerMpBaidu">
</div>
</div>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
map
:
{},
baiduMapData
:
[
{
lng
:
120.03469
,
lat
:
30.303904
,
type
:
2
},
{
lng
:
120.088499
,
lat
:
30.275182
,
type
:
2
},
{
lng
:
120.089249
,
lat
:
30.317759
,
type
:
0
},
{
lng
:
120.161941
,
lat
:
30.283073
,
type
:
0
},
{
lng
:
120.174941
,
lat
:
30.275073
,
type
:
0
},
{
lng
:
120.186941
,
lat
:
30.297073
,
type
:
1
},
{
lng
:
120.198941
,
lat
:
30.299073
,
type
:
1
},
]
};
},
methods
:
{
creatMap
(){
let
_this
=
this
let
data
=
this
.
baiduMapData
;
//实例化,并设置最大最小缩放层级
const
map
=
new
BMap
.
Map
(
"centerMpBaidu"
,
{
minZoom
:
3
,
maxZoom
:
20
,
});
//设置中心点、默认缩放层级
if
(
data
.
length
>
0
)
{
map
.
centerAndZoom
(
new
BMap
.
Point
(
data
[
0
].
lng
,
data
[
0
].
lat
),
10
);
}
else
{
map
.
centerAndZoom
(
new
BMap
.
Point
(
104.0727017791
,
30.6643622306
),
10
);
}
//可以鼠标缩放
map
.
enableScrollWheelZoom
(
true
);
const
points
=
data
const
markerClusterers
=
[[],
[],
[]]
points
.
forEach
(
item
=>
{
//实例化点
const
point
=
new
BMap
.
Point
(
item
.
lng
,
item
.
lat
)
//自定义点的样式
// type 0 激活 绿色 20191125015057879
// 1 未拜访 紫色 20191125015102111
// 2 未激活 红色 20191125015100234
const
icon
=
new
BMap
.
Icon
(
item
.
type
===
0
?
'http://imgfile.oytour.com/New/Upload/Cloud/2019-11/20191125015057879.png'
:
item
.
type
===
1
?
'http://imgfile.oytour.com/New/Upload/Cloud/2019-11/20191125015102111.png'
:
'http://imgfile.oytour.com/New/Upload/Cloud/2019-11/20191125015100234.png'
,
new
BMap
.
Size
(
30
,
30
)
);
//生成点标注
const
marker
=
new
BMap
.
Marker
(
point
,
{
icon
:
icon
});
// const infoWindow = new BMap.InfoWindow('简易的信息窗口')
//绑定事件,显示窗口
marker
.
addEventListener
(
"click"
,
function
(){
_this
.
markerClick
(
point
,
item
)
// map.openInfoWindow(infoWindow,point);
});
markerClusterers
[
item
.
type
||
0
].
push
(
marker
)
//添加点标注即添加覆盖物
map
.
addOverlay
(
marker
);
})
// //2种聚合的实现
const
size
=
new
BMap
.
Size
(
30
,
30
)
var
markerClusterer1
=
new
window
.
BMapLib
.
MarkerClusterer
(
map
,
{
markers
:
markerClusterers
[
1
],
styles
:
[{
url
:
'http://imgfile.oytour.com/New/Upload/Cloud/2019-11/20191125015102111.png'
,
size
:
size
,
textSize
:
18
,
textColor
:
'white'
,
},
{
url
:
'http://imgfile.oytour.com/New/Upload/Cloud/2019-11/20191125015102111.png'
,
size
:
size
,
textSize
:
18
,
textColor
:
'white'
,
},
{
url
:
'http://imgfile.oytour.com/New/Upload/Cloud/2019-11/20191125015102111.png'
,
size
:
size
,
textSize
:
18
,
textColor
:
'white'
,
}]
})
var
markerClusterer2
=
new
window
.
BMapLib
.
MarkerClusterer
(
map
,
{
markers
:
markerClusterers
[
2
],
styles
:
[{
url
:
'http://imgfile.oytour.com/New/Upload/Cloud/2019-11/20191125015100234.png'
,
size
:
size
,
textSize
:
18
,
textColor
:
'white'
,
},
{
url
:
'http://imgfile.oytour.com/New/Upload/Cloud/2019-11/20191125015100234.png'
,
size
:
size
,
textSize
:
18
,
textColor
:
'white'
,
},
{
url
:
'http://imgfile.oytour.com/New/Upload/Cloud/2019-11/20191125015100234.png'
,
size
:
size
,
textSize
:
18
,
textColor
:
'white'
,
}]
})
var
markerClusterer4
=
new
window
.
BMapLib
.
MarkerClusterer
(
map
,
{
markers
:
markerClusterers
[
0
],
styles
:
[{
url
:
'http://imgfile.oytour.com/New/Upload/Cloud/2019-11/20191125015057879.png'
,
size
:
size
,
textSize
:
18
,
textColor
:
'white'
,
},
{
url
:
'http://imgfile.oytour.com/New/Upload/Cloud/2019-11/20191125015057879.png'
,
size
:
size
,
textSize
:
18
,
textColor
:
'white'
,
},
{
url
:
'http://imgfile.oytour.com/New/Upload/Cloud/2019-11/20191125015057879.png'
,
size
:
size
,
textSize
:
18
,
textColor
:
'white'
,
}]
})
this
.
map
=
map
},
markerClick
(
point
,
item
){
this
.
apipost
(
'financestatistics_post_GetCustomerInfoForB2BKB'
,
{
CustomerId
:
item
.
CustomerId
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
const
infoWindow
=
new
BMap
.
InfoWindow
(
`
<p>联系人:
${
res
.
data
.
data
.
Contact
}
</p>
<p>联系电话:
${
res
.
data
.
data
.
ContactNumber
}
</p>
<p>门店名称:
${
res
.
data
.
data
.
CustomerName
}
</p>
<p>门店地址:
${
res
.
data
.
data
.
Address
}
</p>
`
)
this
.
map
.
openInfoWindow
(
infoWindow
,
point
);
}
})
}
},
mounted
()
{
this
.
creatMap
()
}
};
</
script
>
\ No newline at end of file
src/components/SalesModule/customerTransfer.vue
View file @
ba1474f1
...
...
@@ -75,6 +75,12 @@
</li>
<li
style=
"float:right;padding-top:10px;color:#111111"
>
{{
$t
(
'salesModule.JYETJ'
)
}}
:
{{
datainfo
.
sumMoney
}}
</li>
<li>
<input
type=
"button"
class=
"hollowFixedBtn"
:value=
"$t('ground.kehuditu')"
@
click=
"getMap()"
>
<input
type=
"button"
class=
"hollowFixedBtn"
...
...
@@ -633,6 +639,9 @@ export default {
getUrl
(
item
){
this
.
$router
.
push
({
name
:
"CustomerAnalysis"
,
query
:{
"customerId"
:
item
.
CustomerIdS
,
blank
:
'y'
}
})
},
getMap
(){
this
.
$router
.
push
({
name
:
"customerMap"
,
query
:{
blank
:
'y'
}
})
},
updateData
:
function
(
obj
)
{
this
.
apipost
(
"app_customer_GetLeaderCustomerInfo"
,
...
...
src/components/systemManagement/appUpdateLog.vue
0 → 100644
View file @
ba1474f1
<
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 @
ba1474f1
...
...
@@ -940,6 +940,14 @@ export default {
title
:
'系统更新与日志管理'
},
},
{
path
:
'/appUpdateLog'
,
//App更新与日志管理
name
:
'appUpdateLog'
,
component
:
resolve
=>
require
([
'@/components/systemManagement/appUpdateLog'
],
resolve
),
meta
:
{
title
:
'系统更新与日志管理'
},
},
{
path
:
'/destinationManagement'
,
//目的地管理
name
:
'destinationManagement'
,
...
...
@@ -2200,6 +2208,14 @@ export default {
title
:
'客户转交'
},
},
{
// 客户 地图
path
:
'/customerMap'
,
name
:
'customerMap'
,
component
:
resolve
=>
require
([
'@/components/SalesModule/customerMap'
],
resolve
),
meta
:
{
title
:
'客户地图'
},
},
{
// 销售 活动统计
path
:
'/ActivityStatistics'
,
name
:
'ActivityStatistics'
,
...
...
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