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
979e3470
Commit
979e3470
authored
Jun 04, 2019
by
Mac
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/superman
parents
6a65f53c
38803b85
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
1440 additions
and
155 deletions
+1440
-155
CashAccDetail.vue
src/components/FinancialModule/accDetail/CashAccDetail.vue
+14
-10
addFinancialDocuments.vue
src/components/FinancialModule/addFinancialDocuments.vue
+12
-4
FoodOrder.vue
src/components/Restaurant/FoodOrder.vue
+931
-0
AddSupplierComplaints.vue
src/components/Supplier/AddSupplierComplaints.vue
+280
-0
roomQuery.vue
src/components/Supplier/roomQuery.vue
+85
-139
TravelControlList.vue
...components/TravelManager/TravelList/TravelControlList.vue
+33
-1
CouponList.vue
src/components/activity/CouponList.vue
+4
-0
lineManagement.vue
src/components/systemManagement/lineManagement.vue
+63
-0
config.js
src/router/config.js
+18
-1
No files found.
src/components/FinancialModule/accDetail/CashAccDetail.vue
View file @
979e3470
...
...
@@ -163,7 +163,7 @@
<th
width=
""
>
{{
$t
(
'fnc.yueacc'
)
}}
</th>
</tr>
<tr>
<td
:colspan=
"7"
>
{{
$t
(
'fnc.a_qcyue'
)
}}
:
</td>
<td
:colspan=
"7"
>
{{
$t
(
'fnc.a_qcyue'
)
}}
:
期初余额
</td>
<td></td>
<td></td>
<td>
{{
moneyFormat
(
RStartMoney
)
}}
</td>
...
...
@@ -196,13 +196,13 @@
{{
item
.
AccountNumber
}}
</td>
<td>
{{
item
.
Type
===
1
?
moneyFormat
(
item
.
OriginalMoney
)
:
''
}}
收入:
{{
item
.
Type
===
1
?
moneyFormat
(
item
.
OriginalMoney
)
:
''
}}
</td>
<td>
{{
item
.
Type
===
2
?
moneyFormat
(
item
.
OriginalMoney
)
:
''
}}
支出:
{{
item
.
Type
===
2
?
moneyFormat
(
item
.
OriginalMoney
)
:
''
}}
</td>
<td>
{{
moneyFormat
(
item
.
enRSMoney
)
}}
余额:
{{
moneyFormat
(
item
.
enRSMoney
)
}}
</td>
<td>
{{
item
.
Rate
}}
...
...
@@ -916,26 +916,30 @@ export default {
this
.
apipost
(
'Financial_post_GetAccountDetailList'
,
this
.
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
===
1
){
let
data
=
res
.
data
.
data
;
console
.
log
(
"data"
,
data
)
if
(
data
.
length
){
this
.
StartMoney
=
data
[
0
].
StartMoney
?
data
[
0
].
StartMoney
:
0
;
// 外币
this
.
RStartMoney
=
data
[
0
].
StartMoney
?
data
[
0
].
StartMoney
:
0
;
// 本位币
let
endStartMoney
=
0
,
endRStartMoney
=
0
;
this
.
RStartMoney
=
data
[
0
].
RStartMoney
?
data
[
0
].
R
StartMoney
:
0
;
// 本位币
let
endStartMoney
=
this
.
StartMoney
;
let
endRStartMoney
=
this
.
RStartMoney
;
data
.
forEach
(
(
x
)
=>
{
if
(
x
.
Type
===
1
){
if
(
x
.
Type
===
1
){
//收入
this
.
bShou
=
this
.
bShou
+
x
.
Money
;
this
.
wShou
=
this
.
wShou
+
x
.
OriginalMoney
;
endRStartMoney
=
endRStartMoney
+
x
.
OriginalMoney
;
endStartMoney
=
endStartMoney
+
x
.
Money
;
x
.
enRSMoney
=
endRStartMoney
;
x
.
enRSMoney
=
endRStartMoney
;
//外币收入
x
.
enSMoney
=
endStartMoney
;
}
else
if
(
x
.
Type
===
2
){
}
else
if
(
x
.
Type
===
2
){
//支出
this
.
bZhi
=
this
.
bZhi
+
x
.
Money
;
this
.
wZhi
=
this
.
bZhi
+
x
.
OriginalMoney
;
endRStartMoney
=
endRStartMoney
-
x
.
OriginalMoney
;
endStartMoney
=
endStartMoney
-
x
.
Money
;
x
.
enRSMoney
=
endRStartMoney
;
x
.
enSMoney
=
endStartMoney
;
console
.
log
(
"this.wZhi"
,
this
.
wZhi
);
}
x
.
check
=
false
;
x
.
disabled
=
false
;
...
...
src/components/FinancialModule/addFinancialDocuments.vue
View file @
979e3470
...
...
@@ -674,6 +674,7 @@ export default {
describeList
:[],
isFrompassenger
:
false
,
showDisable
:
false
,
editTemplateId
:
-
1
,
}
},
methods
:{
...
...
@@ -1204,6 +1205,9 @@ export default {
if
(
res
.
data
.
resultCode
==
1
)
{
console
.
log
(
"res.data"
,
res
.
data
)
let
data
=
res
.
data
.
data
;
this
.
editTemplateId
=
data
.
TemplateId
;
this
.
getCompany
();
data
.
IsLeader
=
1
;
this
.
msg
=
JSON
.
parse
(
JSON
.
stringify
(
data
));
this
.
msg
.
ClientType
=
this
.
msg
.
ClientType
==
0
?
''
:
this
.
msg
.
ClientType
;
...
...
@@ -1341,7 +1345,13 @@ export default {
}
this
.
companyList
=
data
;
if
(
!
Status
){
let
id
=
this
.
$route
.
query
.
id
;
let
id
=
0
;
if
(
this
.
$route
.
query
.
id
){
id
=
this
.
$route
.
query
.
id
;
}
else
{
id
=
this
.
editTemplateId
;
}
this
.
apipost
(
'FinancialFlowTemplate_post_GetTemplateBranch'
,
{
ID
:
id
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
resdata
=
res
.
data
.
data
;
...
...
@@ -1452,12 +1462,10 @@ export default {
var
that
=
this
;
this
.
orderObj
=
this
.
$route
.
query
.
orderObj
?
JSON
.
parse
(
this
.
$route
.
query
.
orderObj
):
null
;
this
.
isFrompassenger
=
this
.
orderObj
.
isFromPassenger
;
console
.
log
(
this
.
orderObj
,
'orderObj'
);
// console.log(this.$route.query.orderObj)
if
(
this
.
orderObj
!=
null
&&
this
.
orderObj
.
OrderSource
===
10
&&
this
.
isFrompassenger
==
undefined
){
that
.
Description
=
"旅客名单:"
;
that
.
describeList
=
JSON
.
parse
(
sessionStorage
.
getItem
(
"saveGuestInfo"
));
console
.
log
(
"that.describeList"
,
that
.
describeList
)
if
(
that
.
describeList
){
that
.
describeList
.
forEach
(
item
=>
{
that
.
Description
+=
item
.
GuestName
+
" "
;
...
...
@@ -1484,8 +1492,8 @@ export default {
let
minute
=
myDate
.
getMinutes
()
<
10
?
"0"
+
myDate
.
getMinutes
()
:
myDate
.
getMinutes
();
let
second
=
myDate
.
getSeconds
()
<
10
?
"0"
+
myDate
.
getSeconds
()
:
myDate
.
getSeconds
();
this
.
timer
=
hour
+
':'
+
minute
+
':'
+
second
;
this
.
getCompany
();
if
(
this
.
$route
.
query
.
edit
){
// 编辑
this
.
msg
.
FrID
=
this
.
$route
.
query
.
FrID
;
this
.
Financial_post_Get
(
this
.
$route
.
query
.
FrID
,
0
);
}
else
{
...
...
src/components/Restaurant/FoodOrder.vue
0 → 100644
View file @
979e3470
<
template
>
<div
class=
"flexOne"
style=
"min-width: 1200px;"
>
<div
class=
"groupTourOrderSearch"
>
<ul>
<li>
<span>
<em>
关键字
</em><el-input
v-model=
'msg.searchKey'
class=
'w150'
></el-input>
</span>
</li>
<li>
<span>
<em>
公司
</em>
<el-select
v-model=
"msg.rbBranchId"
placeholder=
"请选择"
>
<el-option
label=
"不限"
:value=
"-1"
></el-option>
<el-option
v-for=
"item in companyList"
:label=
'item.BName'
:value=
'item.Id'
:key=
'item.Id'
></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>
业务员
</em>
<el-select
v-model=
"msg.enterID"
placeholder=
"请选择"
>
<el-option
label=
"不限"
:value=
"-1"
></el-option>
<el-option
v-for=
"item in employeeList"
:label=
"item.name"
:value=
"item.empId"
:key=
"item.empId"
></el-option>
</el-select>
</span>
</li>
<li>
<span>
<em>
状态
</em>
<el-select
v-model=
"msg.status"
placeholder=
"请选择"
>
<el-option
key=
"0"
label=
"正常"
:value=
"0"
></el-option>
<el-option
key=
"1"
label=
"取消"
:value=
"1"
></el-option>
<el-option
key=
"2"
label=
"待付款"
:value=
"2"
></el-option>
</el-select>
</span>
</li>
<li>
<span><em>
日期
</em>
<el-date-picker
v-model=
'msg.startDate'
@
change=
"dataDui()"
class=
'w150'
value-format=
"yyyy-MM-dd"
type=
"date"
></el-date-picker>
-
<el-date-picker
v-model=
'msg.endDate'
@
change=
"dataDui()"
class=
'w150'
value-format=
"yyyy-MM-dd"
type=
"date"
></el-date-picker>
</span>
</li>
<li>
<input
type=
"button"
class=
"hollowFixedBtn"
value=
"查询"
@
click=
"getList();resetPageIndex()"
/>
</li>
</ul>
</div>
<!-- 表格 -->
<div
style=
"width: 100%; height: auto;min-height:500px;overflow-x: auto;"
class=
"ownScrollbarStyle"
>
<table
class=
"groupTourOrderSearchTable"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
v-loading=
'loading'
>
<tr
class=
"title_tr"
>
<th>
单号
</th>
<th>
餐厅名称
</th>
<th>
套餐名称
</th>
<th>
使用日期
</th>
<th>
总金额
</th>
<th>
客户信息
</th>
<th>
客户数量
</th>
<th>
订单状态
</th>
<th>
退款状态
</th>
</tr>
<tr>
<td
v-show=
"dataList.length==0"
colspan=
"16"
align=
"center"
>
暂无数据
</td>
</tr>
<tbody
v-for=
"(item,index) in dataList"
:key=
"index"
>
<tr>
<td>
{{
item
.
id
}}
</td>
<td>
<p
class=
"fz12 over_ellipsis"
>
{{
item
.
diningName
}}
</p>
</td>
<!--
<td><span
@
click=
"goUrl('散客机票','individualTicket',item.AirTicketId)"
class=
"guest_num"
>
{{
item
.
AirTicketId
}}
</span></td>
-->
<td>
{{
item
.
mealName
}}
</td>
<td
class=
"fz12"
>
{{
item
.
useDate
}}
</td>
<td>
<p>
应付金额:
{{
item
.
preferPrice
}}
</p>
</td>
<td
class=
"fz12"
>
<p>
姓名:
{{
item
.
customerName
}}
</p>
<p>
电话:
{{
item
.
customerMobile
}}
</p>
</td>
<td
class=
"fz12"
>
<p>
客户数量:
{{
item
.
guestNum
}}
</p>
<p>
成人:
{{
item
.
adultNum
}}
</p>
<p>
儿童:
{{
item
.
childNum
}}
</p>
</td>
<td>
<span
v-if=
"item.status==1"
>
正常
</span>
<span
v-if=
"item.status==2"
>
取消
</span>
<span
v-if=
"item.status==3"
>
待付款
</span>
</td>
<td>
<p
v-if=
"item.RefundStatus!=1"
>
<span
v-if=
"item.RefundStatus==2"
>
退款中
</span>
<span
v-if=
"item.RefundStatus==3"
>
已退款
</span>
</p>
</td>
</tr>
</tbody>
</table>
</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>
</
template
>
<
script
>
import
payURL
from
"../commonPage/payURL.vue"
;
import
moment
from
"moment"
;
export
default
{
data
()
{
return
{
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
AirTicketId
:
0
,
AirOrderId
:
0
,
status
:
0
,
startDate
:
moment
().
format
(
"YYYY-MM-DD"
),
endDate
:
""
,
searchKey
:
""
,
rbBranchId
:
-
1
,
enterID
:
-
1
,
},
dataList
:
[],
loading
:
false
,
total
:
0
,
currentPage
:
1
,
showID
:
-
1
,
companyList
:[],
employeeList
:[],
};
},
components
:
{},
created
()
{
this
.
getCompanyList
();
this
.
getEmployee
();
},
methods
:
{
getEmployee
()
{
this
.
apipost
(
"app_get_company_employee"
,
this
.
employeeMsg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
employeeList
=
res
.
data
.
data
;
}
},
err
=>
{}
);
},
getCompanyList
()
{
let
userInfo
=
this
.
getLocalStorage
();
let
RB_Group_id
=
userInfo
.
RB_Group_id
;
let
msg
=
{
Status
:
0
,
is_show
:
0
,
RB_Group_Id
:
RB_Group_id
}
this
.
apipost
(
'admin_get_BranchGetList'
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
companyList
=
res
.
data
.
data
;
}
},
err
=>
{})
},
// 退款操作
RefundPay
(
item
)
{
let
orderObj
=
{
OrderID
:
item
.
Id
,
//订单号
OrderSource
:
12
,
//12
Obj
:
{},
SourceID
:
item
.
AirTicketId
,
//机票id
TCIDList
:
[]
};
this
.
$router
.
push
({
name
:
"ChoiceAddFinancialDocuments"
,
query
:
{
Type
:
2
,
companyID
:
item
.
RB_Branch_Id
,
//公司id
path
:
""
,
blank
:
"y"
,
orderObj
:
JSON
.
stringify
(
orderObj
)
}
});
},
goUrl
:
function
(
name
,
path
,
id
)
{
this
.
$router
.
push
({
name
:
path
,
query
:
{
id
:
id
,
blank
:
"y"
,
tab
:
name
}
});
},
handleCurrentChange
(
val
)
{
this
.
msg
.
pageIndex
=
val
;
this
.
getList
();
},
resetPageIndex
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
currentPage
=
1
;
},
getList
()
{
this
.
loading
=
true
;
this
.
apiJavaPost
(
"/api/erp/dining/getDiningOrder"
,
this
.
msg
,
res
=>
{
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
===
1
)
{
this
.
total
=
res
.
data
.
data
.
count
;
this
.
dataList
=
res
.
data
.
data
.
pageData
;
console
.
log
(
this
.
dataList
,
'datalist'
);
}
else
{
this
.
Error
(
res
.
data
.
message
)
}
},
null
);
},
// 结束日期不能大于开始日期
dataDui
()
{
if
(
this
.
msg
.
startDate
>
this
.
msg
.
endDate
&&
this
.
msg
.
endDate
!==
""
)
{
this
.
$message
.
error
(
"结束日期不能大于开始日期"
);
this
.
msg
.
endDate
=
""
;
}
}
},
mounted
()
{
this
.
getList
();
}
};
</
script
>
<
style
scoped
>
@import
"../../assets/css/newTravelManager.css"
;
.tickets_green
{
color
:
#008000
;
text-decoration
:
underline
;
margin-right
:
6px
;
}
.title_tr
th
{
/* width: 9%; */
}
.color_red_order
{
color
:
#e95252
!important
;
}
.groupTourOrderSearch
{
width
:
100%
;
min-height
:
auto
;
padding
:
0
0
20px
0
;
}
.groupTourOrderSearch
li
{
float
:
left
;
font-size
:
12px
;
color
:
#666
;
margin
:
20px
0
0px
0
;
}
.groupTourOrderSearch
li
>
span
{
display
:
inline-block
;
}
.groupTourOrderSearch
li
span
>
em
{
display
:
inline-block
;
min-width
:
60px
;
text-align
:
right
;
font-style
:
normal
;
margin
:
0
12px
0
0
;
}
.groupTourOrderSearch
li
:last-child
{
position
:
fixed
;
z-index
:
10
;
top
:
36px
;
right
:
20px
;
}
.groupTourOrderSearch
ul
{
overflow
:
hidden
;
}
.groupTourOrderSearchTable
{
width
:
100%
;
min-width
:
1500px
;
font-size
:
14px
;
color
:
#333
;
border-bottom
:
1px
solid
#cccccc
;
border-right
:
1px
solid
#cccccc
;
/* border-collapse: collapse; */
}
.groupTourOrderSearchTable
tr
th
{
background
:
#e6e6e6
;
height
:
30px
;
font-size
:
12px
;
text-align
:
left
;
text-indent
:
15px
;
border-top
:
1px
solid
#cccccc
;
border-left
:
1px
solid
#cccccc
;
}
.groupTourOrderSearchTable
tr
{
background
:
#fff
;
text-align
:
left
;
}
.groupTourOrderSearchTable
tr
td
{
padding
:
8px
;
border-top
:
1px
solid
#cccccc
;
border-left
:
1px
solid
#cccccc
;
}
.groupTourOrderSearchTable
tr
td
p
{
line-height
:
20px
;
}
.groupTourOrderSearchTable
.dowloadSpan
:hover
{
text-decoration
:
underline
;
cursor
:
pointer
;
}
.groupTourOrderSearchTable
span
.personNo
{
text-decoration
:
underline
;
cursor
:
pointer
;
}
.groupTourOrderSearchTable
span
.personNo
:hover
{
font-weight
:
bold
;
color
:
#e95252
;
}
.personNolayer
p
{
height
:
28px
;
line-height
:
28px
;
padding-left
:
15px
;
}
.personNolayer
p
>
span
{
font-size
:
12px
;
color
:
#333
;
margin-right
:
15px
;
}
.personNolayer
table
{
padding
:
10px
0
0
20px
;
width
:
100%
;
background-color
:
#ededed
;
border-collapse
:
collapse
;
border
:
1px
solid
#d2d2d2
;
font-size
:
12px
;
}
.personNolayer
table
th
{
background-color
:
#ededed
;
height
:
34px
;
text-indent
:
15px
;
}
.personNolayer
table
td
{
background-color
:
#ffffff
;
padding
:
9px
15px
;
color
:
#333333
;
border
:
1px
solid
#d2d2d2
;
}
.personNolayer
table
._color_666
{
color
:
#666666
;
}
.personNolayer
table
tr
._color_666
th
{
padding
:
9px
15px
;
}
.groupSuperSearchLayer
{
}
.groupSuperSearchLayer
>
p
{
padding
:
20px
0
;
font-size
:
14px
;
color
:
#333
;
font-weight
:
bold
;
}
.groupSuperSearchLayerTable
{
font-size
:
12px
;
color
:
#666
;
}
.groupSuperSearchLayerTable
tr
{
height
:
50px
;
}
.groupSuperSearchLayerTable
td
{
padding-right
:
15px
;
}
.groupTourOrderIcon
button
{
width
:
30px
;
height
:
30px
;
border-radius
:
4px
;
}
.groupTourOrderIcon
.el-button--primary
{
padding
:
5px
;
margin
:
0
;
font-size
:
14px
!important
;
}
.groupTourOrderIcon
.el-button
+
.el-button
{
margin-left
:
0
!important
;
}
.productQuerybottomLayer
{
overflow
:
auto
;
position
:
fixed
;
min-height
:
300px
;
z-index
:
50
;
bottom
:
0
;
left
:
0
;
border-top
:
3px
solid
#38425d
;
background-color
:
#ffffff
;
padding
:
10px
10px
0
;
width
:
100%
;
}
.productQuerybottomLayer
.el-form-item__label
{
font-size
:
12px
!important
;
}
.productQuerybottomLayer
>
p
{
border-left
:
3px
solid
#e95252
;
text-indent
:
15px
;
height
:
16px
;
font-family
:
"PingFangSc-Fine"
;
font-size
:
16px
;
margin-bottom
:
20px
;
line-height
:
14px
;
color
:
#000
;
}
.productQuerybottomLayer
.el-input-number
{
width
:
auto
!important
;
}
.groupTourOrder_count_green
{
color
:
#1bc594
;
}
.groupTourOrder_count_blue
{
color
:
#4d7afd
;
}
.groupTourOrder_count_yellow
{
color
:
#ff9c00
;
}
.groupTourOrder_count_gray
{
color
:
#999999
;
}
.groupTourOrder_count
{
margin
:
0
0
20px
0
;
width
:
100%
;
height
:
auto
;
}
.groupTourOrder_count_col
{
height
:
80px
;
}
.groupTourOrder_count_item
{
font-weight
:
400
;
padding
:
10px
;
height
:
100%
;
border
:
1px
solid
#e6e6e6
;
background-color
:
#ffffff
;
color
:
#333333
;
}
.groupTourOrder_count_item
>
div
>
i
{
font-size
:
12px
;
vertical-align
:
bottom
;
}
.groupTourOrder_count_item
>
div
>
span
:nth-child
(
2
)
{
font-size
:
14px
;
vertical-align
:
bottom
;
}
.groupTourOrder_count_item
>
div
>
span
:nth-child
(
3
)
{
font-weight
:
bold
;
font-size
:
16px
;
vertical-align
:
bottom
;
}
.groupTourOrder_count_item
>
p
{
font-size
:
12px
;
line-height
:
18px
;
}
.groupTourOrder_count_item
>
p
>
span
{
margin
:
0
5px
0
0
;
white-space
:
nowrap
;
}
.groupTourOrder_more
{
margin
:
0
-12px
;
}
.groupTourOrder_more
>
div
{
width
:
100%
;
height
:
30px
;
line-height
:
30px
;
text-align
:
center
;
font-size
:
12px
;
color
:
#333333
;
background-color
:
#ffffff
;
cursor
:
pointer
;
}
.groupTourOrder_more
>
div
:hover
{
color
:
#297bef
;
background-color
:
#dcebff
;
}
.groupTourOrder_remarks
{
font-size
:
0px
;
}
.groupTourOrder_remarks
>
div
{
}
.groupTourOrder_remarks
>
div
>
div
:nth-child
(
1
)
{
float
:
left
;
display
:
flex
;
align-items
:
flex-start
;
}
.groupTourOrder_remarks
>
div
>
div
:nth-child
(
1
)
>
span
{
line-height
:
20px
;
font-size
:
12px
;
color
:
#e95252
;
white-space
:
nowrap
;
}
.groupTourOrder_remarks
>
div
>
div
:nth-child
(
1
)
>
p
{
line-height
:
20px
;
font-size
:
12px
;
color
:
#e95252
;
}
.groupTourOrder_remarks
>
div
>
div
:nth-child
(
2
)
{
float
:
right
;
text-align
:
right
;
font-size
:
12px
;
color
:
#e95252
;
}
.groupTourOrder_remarks
>
div
>
div
:nth-child
(
2
)
>
i
{
font-size
:
10px
;
cursor
:
pointer
;
}
.groupTourOrder_remarks
>
div
::after
{
display
:
block
;
clear
:
both
;
content
:
""
;
visibility
:
hidden
;
height
:
0
;
}
.groupTourOrder_remarks_btn
{
padding
:
0px
;
width
:
12px
;
height
:
12px
;
border
:
none
;
background-color
:
transparent
;
}
.groupTourOrder_remarks_btn
>
i
{
color
:
#e95252
;
font-size
:
12px
;
}
.groupTourOrder_remarks_popover
>
div
{
display
:
inline-block
;
font-size
:
14px
;
color
:
#000000
;
}
.groupTourOrder_remarks_popover
>
div
::before
{
content
:
""
;
display
:
inline-block
;
margin
:
0
5px
0
0
;
width
:
2px
;
height
:
12px
;
background-color
:
#e95252
;
}
.groupTourOrder_remarks_popover
>
span
{
display
:
block
;
margin
:
0
0
0
0
;
width
:
100%
;
text-align
:
center
;
font-size
:
12px
;
color
:
#000000
;
}
.groupTourOrder_remarks_popover
>
p
{
margin
:
5px
0
0
0
;
padding
:
3px
;
width
:
100%
;
max-height
:
300px
;
overflow-y
:
auto
;
font-size
:
12px
;
color
:
#000000
;
}
.groupTourOrder_remarks_popover
>
p
:nth-child
(
even
)
{
background-color
:
#e6e6e6
;
}
.groupTourOrder_remarks_popover
>
p
>
span
:nth-child
(
1
)
{
float
:
left
;
}
.groupTourOrder_remarks_popover
>
p
>
span
:nth-child
(
2
)
{
margin
:
0
10px
0
0
;
float
:
right
;
}
.groupTourOrder_remarks_popover
>
p
::after
{
display
:
block
;
clear
:
both
;
content
:
""
;
visibility
:
hidden
;
height
:
0
;
}
.groupTourOrder_tickets
>
div
{
display
:
table
;
}
.groupTourOrder_tickets
>
div
>
div
{
display
:
table-cell
;
cursor
:
pointer
;
}
.groupTourOrder_tickets
>
div
>
div
:nth-child
(
1
)
{
width
:
80px
;
}
.groupTourOrder_tickets
>
div
>
div
>
span
{
display
:
inline-block
;
margin
:
0
10px
0
0
;
}
.groupTourOrder_tickets_red
{
color
:
#ff0000
;
text-decoration
:
underline
;
}
.groupTourOrder_tickets_blue
{
color
:
#0000ff
;
text-decoration
:
underline
;
}
.groupTourOrder_tickets_green
{
color
:
#008000
;
text-decoration
:
underline
;
}
.groupTourOrder_tickets_black
{
color
:
#000000
;
text-decoration
:
underline
;
}
.groupTourOrderByTuan_ico
{
margin
:
0
10px
0
0
;
}
.groupTourOrderByTuan_ico
>
i
{
display
:
inline-block
;
margin
:
0
2px
0
0
;
width
:
8px
;
height
:
8px
;
border-radius
:
2px
;
vertical-align
:
middle
;
}
.groupTourOrderByTuan_ico
>
span
{
vertical-align
:
middle
;
}
/* 出团通知书打印选择 */
.travelControlTripLayer
{
position
:
fixed
;
z-index
:
99
;
width
:
100%
;
height
:
100%
;
background
:
rgba
(
0
,
0
,
0
,
0.3
);
left
:
0
;
top
:
0
;
}
.travelControlTripLayerCont
{
position
:
absolute
;
left
:
50%
;
margin-left
:
-300px
;
background
:
#fff
;
top
:
50%
;
margin-top
:
-180px
;
width
:
600px
;
}
.travelControlTripLayerCont
>
div
{
padding
:
0
30px
;
}
.travelControlTripLayerCont
>
div
label
{
cursor
:
pointer
;
vertical-align
:
middle
;
}
.travelControlTripLayerCont
>
div
label
input
{
vertical-align
:
middle
;
}
.travelControlTripBtn
{
color
:
#fff
;
width
:
90px
;
height
:
30px
;
background
:
#e95252
;
border
:
1px
solid
#e95252
;
cursor
:
pointer
;
border-radius
:
15px
;
margin-left
:
10px
;
}
.travelControlTripLayer
input
[
type
=
"checkbox"
]
+
label
::before
{
content
:
"\A0"
;
display
:
inline-block
;
width
:
15px
;
height
:
15px
;
margin-right
:
5px
;
border-radius
:
4px
;
background-color
:
white
;
text-indent
:
0.15em
;
line-height
:
15px
;
color
:
white
;
border
:
1px
solid
#e95252
;
}
.travelControlTripLayer
input
[
type
=
"checkbox"
]
:checked
+
label
::before
{
content
:
"\2713"
;
background-color
:
#e95252
;
}
.travelControlTripLayer
input
[
type
=
"checkbox"
]
{
position
:
absolute
;
clip
:
rect
(
0
,
0
,
0
,
0
);
}
.travelControlTripLayer
input
[
type
=
"checkbox"
]
:focus
+
label
::before
{
box-shadow
:
none
;
}
.travelControlTripLayer
input
[
type
=
"checkbox"
]
:disabled
+
label
::before
{
background-color
:
gray
;
box-shadow
:
none
;
color
:
#555
;
}
.groupTourOrder_transfer
{
position
:
fixed
;
z-index
:
50
;
bottom
:
0
;
left
:
50px
;
padding
:
10px
10px
;
width
:
100%
;
min-width
:
1366px
;
min-height
:
200px
;
border-top
:
3px
solid
#38425d
;
background-color
:
#ffffff
;
overflow-y
:
auto
;
}
.groupTourOrder_transfer
>
.transfer_header
{
position
:
relative
;
width
:
100%
;
height
:
30px
;
}
.groupTourOrder_transfer
>
.transfer_header
>
div
:nth-child
(
1
)
{
display
:
inline-block
;
padding
:
0
10px
;
width
:
200px
;
height
:
30px
;
line-height
:
30px
;
border-left
:
3px
solid
#e95252
;
text-indent
:
10px
;
font-size
:
16px
;
color
:
#000000
;
}
.groupTourOrder_transfer
>
.transfer_header
>
div
:nth-child
(
2
)
{
position
:
absolute
;
top
:
0px
;
right
:
80px
;
height
:
30px
;
}
.groupTourOrder_transfer
>
.transfer_header
>
div
:nth-child
(
2
)
>
div
:nth-child
(
1
)
{
display
:
inline-block
;
padding
:
0
15px
;
height
:
30px
;
line-height
:
28px
;
font-size
:
14px
;
color
:
#e95252
;
border
:
1px
solid
#e95252
;
background
:
#fff
;
border-radius
:
15px
;
cursor
:
pointer
;
vertical-align
:
top
;
}
.groupTourOrder_transfer
>
.transfer_header
>
div
:nth-child
(
2
)
>
div
:nth-child
(
2
)
{
display
:
inline-block
;
margin
:
0
0
0
10px
;
padding
:
0
15px
;
height
:
30px
;
line-height
:
28px
;
font-size
:
14px
;
color
:
#fff
;
border
:
1px
solid
#e95252
;
background
:
#e95252
;
border-radius
:
15px
;
cursor
:
pointer
;
vertical-align
:
top
;
}
.groupTourOrder_transfer
>
.transfer_info
{
padding
:
20px
0
;
width
:
100%
;
font-size
:
0px
;
border-bottom
:
1px
dashed
#999999
;
}
.groupTourOrder_transfer
>
.transfer_info
>
div
{
display
:
inline-block
;
padding
:
0
10px
;
width
:
25%
;
height
:
30px
;
vertical-align
:
top
;
}
.groupTourOrder_transfer
>
.transfer_info
>
div
>
em
{
display
:
inline-block
;
padding
:
0
10px
;
width
:
35%
;
height
:
30px
;
line-height
:
30px
;
text-align
:
right
;
font-size
:
16px
;
vertical-align
:
top
;
}
.groupTourOrder_transfer
>
.transfer_info
>
div
>
span
{
display
:
inline-block
;
padding
:
0
10px
;
width
:
65%
;
height
:
30px
;
line-height
:
30px
;
text-align
:
left
;
font-size
:
16px
;
border-radius
:
3px
;
background-color
:
#e5e5e5
;
vertical-align
:
top
;
}
.groupTourOrder_transfer
>
.transfer_input
{
padding
:
20px
0
;
width
:
100%
;
font-size
:
0px
;
}
.groupTourOrder_transfer
>
.transfer_input
>
div
{
display
:
inline-block
;
padding
:
0
10px
;
width
:
25%
;
height
:
30px
;
vertical-align
:
top
;
}
.groupTourOrder_transfer
>
.transfer_input
>
div
>
em
{
display
:
inline-block
;
padding
:
0
10px
;
width
:
35%
;
height
:
30px
;
line-height
:
30px
;
text-align
:
right
;
font-size
:
16px
;
vertical-align
:
top
;
}
.groupTourOrder_transfer
>
.transfer_input
>
div
>
.el-input
{
display
:
inline-block
;
width
:
65%
;
height
:
30px
;
line-height
:
30px
;
text-align
:
left
;
font-size
:
14px
;
vertical-align
:
top
;
}
</
style
>
src/components/Supplier/AddSupplierComplaints.vue
0 → 100644
View file @
979e3470
<
style
type=
"text/css"
>
.Supplier_AC_content
{
width
:
800px
;
margin
:
50px
auto
;
min-height
:
730px
;
padding
:
20px
;
font-size
:
14px
;
background-color
:
#fff
;
border
:
1px
solid
#ccc
;
}
.Supplier_AC_inputGroup
{
margin-bottom
:
20px
;
}
.Supplier_AC_contDetail
>
p
{
background
:
#ccc
;
color
:
#333
;
padding
:
5px
;
text-indent
:
11px
;
}
.Supplier_AC_inputGroup
.el-input-group__append
{
background-color
:
#CD2929
;
color
:
#fff
;
}
.Supplier_AC_OrderList
{
overflow
:
hidden
;
width
:
800px
;
}
.Supplier_AC_OrderList
ul
li
{
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
float
:
left
;
width
:
380px
;
height
:
36px
;
line-height
:
36px
;
border-bottom
:
1px
solid
#ccc
;
}
.Supplier_AC_OrderList
ul
li
:nth-child
(
2n
+
1
)
{
border-right
:
1px
solid
#ccc
;
box-sizing
:
border-box
;
}
.Supplier_AC_OrderList
ul
li
span
{
display
:
inline-block
;
width
:
80px
;
text-align
:
right
;
}
.Supplier_AC_complaintList
{
padding
:
10px
0
0
0
;
height
:
auto
;
overflow
:
hidden
;
}
.Supplier_AC_complaintList
.t
{
padding
:
4px
0
0
0
;
}
.Supplier_AC_complaintList
.t
,
.Supplier_AC_complaintList
ul
{
float
:
left
;
}
.Supplier_AC_complaintList
ul
li
{
border
:
1px
solid
#ccc
;
padding
:
4px
8px
;
float
:
left
;
margin
:
0
5px
5px
0
;
cursor
:
pointer
;
}
.Supplier_AC_complaintList
ul
li
:hover
{
border
:
1px
#d81e06
solid
;
}
.Supplier_AC_complaintList
ul
li
.checked
{
border
:
1px
#d81e06
solid
;
}
.Supplier_AC_contDetail
>
a
{
color
:
#3980c8
!important
;
}
.Supplier_AC_contDetail
a
:hover
{
color
:
#bd2e40
!important
;
text-decoration
:
underline
!important
;
}
.Supplier_AC_content
.w757
{
width
:
757px
!important
;
}
</
style
>
<
template
>
<div
class=
"Supplier_AC_content"
>
<div
class=
"Supplier_AC_inputGroup"
>
<el-input
placeholder=
"请输入团号/编号"
class=
"w757"
v-model=
"QMsg.TCID"
>
<el-button
slot=
"append"
@
click=
"CheckTCID()"
>
验证
</el-button>
</el-input>
</div>
<div
class=
"Supplier_AC_contDetail"
>
<p>
团队情况
</p>
<div
class=
"Supplier_AC_OrderList"
>
<ul>
<li><span>
线路:
</span>
{{
this
.
PriceInfo
.
LineName
}}
</li>
<li><span>
系列:
</span>
{{
this
.
PriceInfo
.
LtName
}}
</li>
<li><span>
团队编号:
</span><a>
{{
this
.
PriceInfo
.
TCID
}}
</a></li>
<li><span>
行程天数:
</span>
{{
this
.
PriceInfo
.
DayNum
}}
</li>
<li><span>
出发日期:
</span>
{{
this
.
PriceInfo
.
StartDate
}}
</li>
<li><span>
返回日期:
</span>
{{
this
.
PriceInfo
.
BackDate
}}
</li>
<li><span>
操作OP:
</span>
{{
this
.
PriceInfo
.
OpName
}}
</li>
<li><span>
领队:
</span>
{{
this
.
PriceInfo
.
LeaderName
}}
</li>
<li><span>
导游:
</span>
{{
this
.
PriceInfo
.
GuideName
}}
</li>
</ul>
</div>
<p>
投诉情况
</p>
<div
class=
"Supplier_AC_complaintList"
>
<div
class=
"t"
>
主题内容:
</div>
<ul
style=
"width:90%;"
>
<li
v-for=
"subItem in themeList"
@
click=
"getTheme(subItem)"
:class=
"
{'checked':subItem.isCheck}">
{{
subItem
.
Name
}}
</li>
</ul>
</div>
<el-input
type=
"textarea"
style=
"margin-top:10px;"
:rows=
"5"
v-model=
"EditMsg.ComplainContent"
placeholder=
"具体问题描述,以及投诉人的姓名、联系方式"
></el-input>
</div>
<p
style=
"text-align: center; margin: 10px 0 15px 0;"
>
<input
type=
"button"
class=
"normalBtn"
value=
"保存"
@
click=
"SaveData()"
/>
<input
type=
"button"
class=
"normalBtn"
value=
"取消"
/>
</p>
</div>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
//主题内容
themeList
:
[],
//主题选中数组
themeCked
:
[],
//添加修改投诉
EditMsg
:
{
Id
:
0
,
//编号
SupplierId
:
0
,
//供应商编号
TCID
:
0
,
//团队编号
ComplainContentrs
:
''
,
//投诉内容
ComplainContent
:
''
,
//问题描述
},
//查询参数
QMsg
:
{
TCID
:
""
},
//团信息
PriceInfo
:
{},
//订单投诉条数
ExitCount
:
0
};
},
mounted
()
{},
methods
:
{
//选取主题内容
getTheme
(
item
)
{
item
.
isCheck
=
!
item
.
isCheck
;
this
.
themeCked
=
[];
this
.
themeList
.
forEach
(
x
=>
{
if
(
x
.
isCheck
)
{
this
.
themeCked
.
push
(
x
.
Id
)
}
})
},
//验证订单
CheckTCID
()
{
this
.
ApiPost2
(
'supplierComplain_Get_GetPriceData'
,
{
TCID
:
this
.
QMsg
.
TCID
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
PriceInfo
=
res
.
data
.
data
.
PriceInfo
;
if
(
this
.
PriceInfo
==
null
)
{
this
.
PriceInfo
=
{};
}
else
{
this
.
EditMsg
.
TCID
=
this
.
PriceInfo
.
TCID
;
}
}
else
{
this
.
Error
(
res
.
data
.
message
)
}
},
err
=>
{});
},
//保存数据
SaveData
(
status
)
{
if
(
this
.
themeCked
.
length
===
0
)
{
this
.
Error
(
"请选择主题内容"
);
return
false
;
}
//数据组装
this
.
EditMsg
.
ComplainContentrs
=
""
;
let
contentrArr
=
[];
this
.
themeList
.
forEach
(
x
=>
{
if
(
x
.
isCheck
)
{
contentrArr
.
push
(
x
.
Name
);
}
});
if
(
contentrArr
.
length
>
0
)
{
this
.
EditMsg
.
ComplainContentrs
=
contentrArr
.
join
(
","
)
}
this
.
ApiPost2
(
'supplierComplain_Post_SetSupplierComplain'
,
this
.
EditMsg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Success
(
"添加成功"
);
this
.
$router
.
push
({
path
:
"roomQuery2"
,
query
:
{}
});
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{});
},
//获取投诉枚举集合
getEnumeration
()
{
this
.
ApiPost2
(
"conplain_get_GetComplainEnumList"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
themeList
=
[];
res
.
data
.
data
.
ComplainContentEnumList
.
forEach
(
x
=>
{
x
[
"isCheck"
]
=
false
;
this
.
themeList
.
push
(
x
);
})
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
});
},
GetData
()
{
this
.
ApiPost2
(
'supplierComplain_Get_GetSupplierComplain'
,
{
Id
:
this
.
EditMsg
.
Id
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
EditMsg
=
res
.
data
.
data
;
if
(
this
.
EditMsg
.
ComplainContentrs
&&
this
.
EditMsg
.
ComplainContentrs
!=
''
)
{
var
array
=
this
.
EditMsg
.
ComplainContentrs
.
split
(
','
);
if
(
array
!=
null
&&
array
.
length
>
0
)
{
array
.
forEach
(
subItem
=>
{
this
.
themeList
.
forEach
(
x
=>
{
if
(
subItem
==
x
.
Name
)
{
x
.
isCheck
=
true
;
this
.
themeCked
.
push
(
x
.
Id
)
}
});
});
}
}
}
else
{
this
.
Error
(
res
.
data
.
message
);
}
},
err
=>
{});
}
},
created
()
{
this
.
EditMsg
.
Id
=
this
.
$route
.
query
.
Id
;
this
.
QMsg
.
TCID
=
this
.
$route
.
query
.
TCID
;
},
mounted
()
{
this
.
getEnumeration
();
if
(
this
.
QMsg
.
TCID
)
{
this
.
CheckTCID
();
}
if
(
this
.
EditMsg
.
Id
&&
this
.
EditMsg
.
Id
>
0
)
{
this
.
GetData
();
}
}
};
</
script
>
src/components/Supplier/roomQuery.vue
View file @
979e3470
...
...
@@ -101,67 +101,68 @@
</div>
<div
style=
"width: 100%; overflow-x: auto;padding-bottom: 10px; "
class=
"ownScrollbarStyle"
>
<div
style=
"font-size:12px;padding:2px 4px 3px 4px; color:red"
>
注意事项:每次导出数据最好不要超过一个月。
</div>
<table
border=
"0"
cellspacing=
"1"
cellpadding=
"0"
class=
"roomQuery
Talb
e"
v-loading=
'loading'
>
<table
border=
"0"
cellspacing=
"1"
cellpadding=
"0"
class=
"roomQuery
_SupplierTabl
e"
v-loading=
'loading'
>
<tr>
<th
width=
"
w
100"
>
序号
</th>
<th
width=
"100"
>
序号
</th>
<th
width=
"120"
>
出发地
</th>
<th
width=
"
8
0"
>
公司团号
</th>
<th
width=
"
10
0"
>
公司团号
</th>
<th
width=
"100"
>
系列
</th>
<th
width=
"120"
>
机位总数
<br
/>
(Y/E/F)
</th>
<th>
使用时间
&
酒店情况
</th>
<th
width=
"100"
>
时间
</th>
<th
width=
"150"
>
酒店
</th>
<th
width=
"100"
>
酒店使用情况
</th>
<th
width=
"100"
>
操作
</th>
</tr>
<tr
v-if=
"dataList.length==0"
>
<td
colspan=
"
10
"
>
暂无数据
</td>
<td
colspan=
"
9
"
>
暂无数据
</td>
</tr>
<tbody
v-for=
"(outItem,outindex) in dataList"
:class=
"
{roomQuerySplitTrCss:outindex%2!=0}">
<template
v-for=
"(item,index) in outItem.StaticsReportList"
>
<tr>
<td
:rowspan=
"outItem.StaticsReportList.length"
v-if=
'index==0'
>
<div
style=
"max-width: 100px; min-width: 50px;margin:auto;"
>
{{
outindex
+
1
}}
</div>
<div
v-if=
'outItem.StaticsReportList.length>0'
class=
"w150"
>
{{
outItem
.
NewCombinationNum
}}
</div>
<template
v-for=
"(item,index) in dataList"
>
<template
v-for=
"(subItem,subIndex) in item.subList"
>
<tr
v-for=
"(childItem,childIndex) in subItem.hotelList"
:class=
"
{roomQuerySplitTrCss:index%2!=0}">
<td
v-if=
"childIndex==0&&subIndex==0"
:rowspan=
"subItem.hotelList.length*item.subList.length"
>
{{
item
.
NewCombinationNum
}}
</td>
<td>
<div
class=
"w80"
>
{{
item
.
StartCityNames
}}
</div>
<td
v-if=
"childIndex==0"
:rowspan=
"subItem.hotelList.length"
>
{{
subItem
.
StartCityNames
}}
</td>
<td>
<div
class=
"w120 link"
>
<p
@
click=
"goUrlT('productQuery',item.TCNUMS,'产品查询')"
>
{{
item
.
TCNUMS
}}
</p>
</div>
<td
v-if=
"childIndex==0"
:rowspan=
"subItem.hotelList.length"
>
{{
subItem
.
TCNUMS
}}
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"subItem.hotelList.length"
>
{{
subItem
.
LineteamIdNames
}}
</td>
<td
v-if=
"childIndex==0"
:rowspan=
"subItem.hotelList.length"
>
{{
subItem
.
TotalSeat
}}
/
{{
subItem
.
RealityYSeatNum
}}
/
{{
subItem
.
RealityESeatNum
}}
/
{{
subItem
.
RealityFSeatNum
}}
</td>
<td>
<div
class=
"w120 link"
>
{{
item
.
LineteamIdNames
}}
</div>
{{
childItem
.
CheckInDateStr
}}
</td>
<td
class=
"tdLeft"
>
{{
childItem
.
NewHotelName
}}
</td>
<td>
<
div
class=
"w120 link
"
>
<
p
@
click=
"goUrlT('RegistrationList',item.TCIDS,'报名清单')"
>
{{
item
.
TotalSeat
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityYSeatNum
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityESeatNum
}}
/
{{
item
.
CommonReport
.
HouseStatistics
.
RealityFSeatNum
}}
</
p
>
</
div
>
<
span
style=
"color:red;
"
>
<
template
v-if=
"childItem.OPState==1"
>
[OP选房-OK]
</
template
>
<
template
v-else
>
{{
childItem
.
DMCState
==
1
?
"[地接-OK]"
:(
childItem
.
DMCState
==
0
?
"[未操作]"
:
"[暂定]"
)
}}
</
template
>
</
span
>
</td>
<td
style=
"vertical-align: top;"
>
<div
:style=
"
{width:150*item.CommonReport.newHotel.length+'px'}">
<div
class=
"w150"
v-for=
"childItem in item.CommonReport.newHotel"
style=
"float:left;border-right:1px solid #d1d1d1;"
>
<p
class=
"pDateStyle"
>
{{
childItem
.
CheckInDateStr
}}
</p>
<p
@
click=
"goUrlR('HotelManagement',childItem.HotelId,'酒店管理')"
class=
"pDateStyle phoverStype ownScrollbarStyle"
style=
"height: 50px!important; overflow:auto;"
>
{{
childItem
.
NewHotelName
}}
<span
class=
"colorE95252"
>
(
{{
childItem
.
HotelOrderState
==
1
?
"OK"
:
"暂定"
}}
)
</span>
</p>
</div>
</div>
<td
v-if=
"childIndex==0"
:rowspan=
"subItem.hotelList.length"
>
<a
style=
"text-decoration:underline;color:blue;cursor:pointer"
@
click=
"AddSupplierComplain(subItem.Complain_Extend.Id,subItem.Complain_Extend.TCID)"
>
<
template
v-if=
"subItem.Complain_Extend.Id>0"
>
编辑
</
template
>
<
template
v-else
>
添加
</
template
>
</a>
<a
style=
"text-decoration:underline;color:red;cursor:pointer"
v-if=
"subItem.Complain_Extend.Id>0"
@
click=
"DeleteSupplierComplain(subItem.Complain_Extend.Id)"
>
删除
</a>
</td>
</tr>
</template>
</t
body
>
</t
emplate
>
</table>
</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>
layout=
"total,prev, pager, next, jumper"
:page-size=
"msg.pageSize"
:total=
"total"
>
</el-pagination>
</div>
</template>
<
script
>
...
...
@@ -181,7 +182,6 @@
HotelId
:
0
,
//日期
DateStr
:
""
,
//出团公司
OutBranchIds
:
[],
LineId
:
14
,
...
...
@@ -193,11 +193,10 @@
TCNUM
:
''
,
PriceStatus
:
0
,
CombinationNum
:
''
},
//分公司类表
companyList
:
[],
//酒店
类
表
//酒店
列
表
HotelList
:
[],
LineList
:
[],
LineTeamList
:
[],
...
...
@@ -232,6 +231,26 @@
}
},
methods
:
{
//删除投诉
DeleteSupplierComplain
(
Id
)
{
if
(
Id
>
0
)
{
var
that
=
this
;
this
.
Confirm
(
"是否此投诉信息删除?"
,
function
()
{
var
msg
=
{
Id
:
Id
};
that
.
ApiPost2
(
"supplierComplain_Post_RemoveSupplierComplain"
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
that
.
Success
(
'删除成功!'
);
that
.
getList
();
}
else
{
that
.
Error
(
res
.
data
.
data
);
}
},
null
);
});
}
},
getLineList
()
{
this
.
ApiPost2
(
"line_post_GetAllList"
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
...
...
@@ -255,6 +274,17 @@
}
);
},
AddSupplierComplain
(
id
,
tcid
)
{
this
.
$router
.
push
({
name
:
'AddSupplierComplaints'
,
query
:
{
Id
:
id
,
TCID
:
tcid
,
blank
:
'y'
,
tab
:
'供应商投诉'
}
})
},
goUrlR
(
path
,
obj
,
title
)
{
this
.
$router
.
push
({
name
:
path
,
...
...
@@ -303,25 +333,7 @@
this
.
loading
=
false
;
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
total
=
res
.
data
.
data
.
count
;
this
.
dataList
=
res
.
data
.
data
.
pageData
.
data
;
this
.
thLengthTitle
=
[];
for
(
let
i
=
1
;
i
<=
res
.
data
.
data
.
pageData
.
columnsCount
;
i
++
)
{
this
.
thLengthTitle
.
push
(
'第'
+
i
+
'晚'
)
}
this
.
dataList
.
forEach
(
x
=>
{
x
.
StaticsReportList
.
forEach
(
y
=>
{
y
.
CommonReport
.
newHotel
=
[];
if
(
y
.
CommonReport
.
HotelOrderListReport
!=
null
&&
y
.
CommonReport
.
HotelOrderListReport
.
length
>
0
)
{
y
.
CommonReport
.
HotelOrderListReport
.
forEach
(
z
=>
{
z
.
HotelOrderList
.
forEach
(
q
=>
{
y
.
CommonReport
.
newHotel
.
push
(
q
);
})
})
}
y
.
colNum
=
9
+
y
.
CommonReport
.
newHotel
.
length
;
})
})
this
.
dataList
=
res
.
data
.
data
.
pageData
;
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
)
}
...
...
@@ -470,98 +482,32 @@
background
:
#eee
!important
;
}
.roomQuery
Talb
e
{
.roomQuery
_SupplierTabl
e
{
background
:
#ccc
;
}
.roomQuery
Talb
e
tr
th
{
.roomQuery
_SupplierTabl
e
tr
th
{
background
:
#E6E6E6
;
height
:
40px
;
font-size
:
12px
;
color
:
#333
;
}
.roomQuery
Talb
e
tr
{
.roomQuery
_SupplierTabl
e
tr
{
background
:
#fff
;
text-align
:
center
;
height
:
40px
;
}
.roomQueryTalbe
tr
td
{
font-size
:
12px
;
}
.roomQueryTalbe
tr
td
.pDateStyle
{
border-bottom
:
1px
solid
#ccc
;
min-height
:
24px
;
line-height
:
24px
;
margin-top
:
0
;
box-sizing
:
content-box
;
}
.roomQueryTalbe
tr
td
.pDateStyle
:last-child
{
border-bottom
:
none
;
}
.roomQueryTalbe
tr
td
.pDateStyle
>
span
:after
{
content
:
'/'
;
}
.roomQueryTalbe
tr
td
.pDateStyle
>
span
:last-child:after
{
content
:
''
}
.roomQueryTalbe
tr
td
.link
p
:hover
{
text-decoration
:
underline
;
cursor
:
pointer
;
}
.roomQueryTalbe
tr
td
.phoverStype
:hover
{
text-decoration
:
underline
;
cursor
:
pointer
;
}
.roomQuery_tripDetails
{
padding
:
0
;
box-shadow
:
0px
1px
3px
0px
#dedede
;
max-height
:
400px
;
overflow-y
:
auto
;
}
.roomQuery_tripDetails
.popper__arrow
::after
{
border-bottom-color
:
#ededed
!important
;
}
.roomQuery_tripDetails
table
{
padding
:
10px
0
0
20px
;
background-color
:
#ededed
;
border-collapse
:
collapse
;
border
:
1px
solid
#d2d2d2
;
.roomQuery_SupplierTable
tr
td
{
font-size
:
12px
;
line-height
:
22px
;
height
:
22px
;
;
}
.roomQuery_tripDetails
table
th
{
background-color
:
#ededed
;
padding
:
5px
;
}
.roomQuery_tripDetails
table
td
{
background-color
:
#ffffff
;
padding
:
9px
15px
;
color
:
#333333
;
border
:
1px
solid
#d2d2d2
;
}
.roomQuery_tripDetails
table
td
._d_name
{
background-color
:
#ededed
;
}
.roomQuery_tripDetails
table
._color_666
{
color
:
#666666
;
}
.roomQuery_tripDetails
table
tr
._color_666
th
{
padding
:
9px
15px
;
.roomQuery_SupplierTable
.tdLeft
{
text-align
:
left
;
padding-left
:
5px
;
}
</
style
>
src/components/TravelManager/TravelList/TravelControlList.vue
View file @
979e3470
...
...
@@ -388,6 +388,7 @@
<span
v-if=
"item.IsUnion==1&&item.UnionTypeStr==2"
title=
"联"
>
{{
$t
(
'Operation.Op_lian'
)
}}
</span>
<span
v-if=
"item.Status==2"
title=
"结团"
>
{{
$t
(
'Operation.Op_jietuan'
)
}}
</span>
<span
v-if=
"item.Status==1"
title=
"销售"
>
{{
$t
(
'visaT.sale'
)
}}
</span>
<span
v-if=
"item.GroupRecommendType==1"
title=
"精品"
>
精
</span>
</div>
<div
class=
"TCL-OutBranchName"
title=
"销售公司"
>
{{
item
.
UnionBranchName
}}
</div>
<div
class=
"TCL-TOPTCNUM"
>
(
{{
item
.
TCID
}}
)
{{
item
.
TCNUM
}}
</div>
...
...
@@ -777,6 +778,12 @@
<i
class=
"el-icon-arrow-down el-icon--right"
></i>
</span>
<el-dropdown-menu
slot=
"dropdown"
class=
"TC-dropdown"
>
<el-dropdown-item
@
click
.
native=
"SetGroupRecommendType(item,1)"
v-if=
"item.b2b&&item.GroupRecommendType==0"
>
设为精品推荐
</el-dropdown-item>
<el-dropdown-item
@
click
.
native=
"SetGroupRecommendType(item,0)"
v-if=
"item.b2b&&item.GroupRecommendType==1"
>
取消设为精品
</el-dropdown-item>
<el-dropdown-item
@
click
.
native=
"goTeamBalance(item.TCID,item.OutBranchId)"
>
{{$t('Operation.Op_shouzhiDetail')}}
</el-dropdown-item>
...
...
@@ -1097,6 +1104,26 @@
}
},
methods
:
{
SetGroupRecommendType
(
item
,
num
){
let
msg
=
{};
msg
.
groupRecommendType
=
num
;
msg
.
tcid
=
item
.
TCID
;
this
.
apipost
(
'travel_post_SetGroupRecommendType'
,
msg
,
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
Success
(
res
.
data
.
message
)
this
.
getControlList
()
}
else
{
this
.
Error
(
res
.
data
.
message
)
}
},
err
=>
{}
)
},
downloadFile
:
function
(
item
)
{
let
reg
=
/^http
(
s
)?
:
\/\/(
.*
?)\/
/
this
.
downloadFileRename
(
item
.
FullUrl
.
replace
(
reg
,
''
),
item
.
Name
)
...
...
@@ -1119,7 +1146,8 @@
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
queryCommonData
.
LineList
=
res
.
data
.
data
this
.
queryCommonData
.
PlaceList
=
[]
this
.
queryCommonData
.
LineTeamList
=
[]
this
.
queryCommonData
.
LineTeamList
=
[];
}
})
},
...
...
@@ -1227,12 +1255,16 @@
this
.
queryCommonData
.
dataList
.
forEach
(
item
=>
{
item
.
SalePlatList
=
[]
if
(
item
.
SalePlat
!==
null
)
{
if
(
item
.
SalePlat
.
indexOf
(
"1"
)
!=
-
1
){
item
.
b2b
=
true
;
}
var
SalePlatArr
=
item
.
SalePlat
.
split
(
','
)
SalePlatArr
.
forEach
(
y
=>
{
item
.
SalePlatList
.
push
(
parseInt
(
y
))
})
}
});
// console.log('this.queryCommonData', this.queryCommonData.dataList)
}
},
err
=>
{}
...
...
src/components/activity/CouponList.vue
View file @
979e3470
...
...
@@ -92,6 +92,8 @@
<el-option
:label=
"$t('active.cl_jipiao')"
:value=
"4"
></el-option>
<el-option
label=
"门票"
:value=
"5"
></el-option>
<el-option
label=
"车辆"
:value=
"6"
></el-option>
<el-option
label=
"自由行"
:value=
"7"
></el-option>
<el-option
label=
"当地游"
:value=
"8"
></el-option>
</el-select>
</span>
</li>
...
...
@@ -369,6 +371,8 @@
<el-option
:label=
"$t('active.cl_jipiao')"
:value=
"4"
></el-option>
<el-option
label=
"门票"
:value=
"5"
></el-option>
<el-option
label=
"车辆"
:value=
"6"
></el-option>
<el-option
label=
"自由行"
:value=
"7"
></el-option>
<el-option
label=
"当地游"
:value=
"8"
></el-option>
</el-select>
</el-form-item>
</td>
...
...
src/components/systemManagement/lineManagement.vue
View file @
979e3470
...
...
@@ -283,6 +283,33 @@ input[type="number"] {
box-shadow
:
0px
0px
20px
rgba
(
191
,
191
,
191
,
1
);
transition
:
all
linear
0.5s
;
}
.lineManagement
.TFimgList
{
float
:
left
;
width
:
170px
;
height
:
100px
;
border-radius
:
4px
;
position
:
relative
;
margin
:
0
10px
10px
0
;
overflow
:
hidden
;
}
.lineManagement
.TFimgList
img
{
width
:
100%
;
height
:
100%
;
}
.lineManagement
.TFIMGzhe
{
width
:
100%
;
height
:
100%
;
background
:
rgba
(
0
,
0
,
0
,
0.4
);
position
:
absolute
;
top
:
0
;
text-align
:
center
;
line-height
:
115px
;
border-radius
:
4px
;
display
:
none
;
}
.lineManagement
.TFimgList
:hover
.TFIMGzhe
{
display
:
block
;
}
</
style
>
<
template
>
<div
class=
"flexOne lineManagement"
>
...
...
@@ -501,6 +528,25 @@ input[type="number"] {
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"5"
>
<el-form-item
label=
"线路图片"
>
<div
class=
"TFimgList"
>
<img
v-if=
"!addMsg.BackgroundImage"
src=
"../../assets/img/bg_c3@3x.png"
>
<img
v-else
:src=
'addMsg.BackgroundImage'
>
<div
class=
"TFIMGzhe"
>
<div
class=
"TFreupload"
>
<el-upload
:file-list=
"fileList"
:http-request=
"uploadTest"
:multiple=
"true"
:limit=
"2"
:on-change=
"handleChange1"
accept=
"image/jpeg, image/gif, image/png, image/bmp"
:show-file-list=
"false"
action=
""
>
<i
class=
"iconfont icon-Edit"
></i>
</el-upload>
</div>
</div>
</div>
</el-form-item>
</el-col>
<div
class=
"LM_Btcontent"
>
<input
type=
"button"
class=
"normalBtn"
@
click=
"submitForm('addMsg')"
:value=
"$t('pub.saveBtn')"
/>
<input
type=
"button"
class=
"hollowFixedBtn"
@
click=
"isShowDIv=false"
:value=
"$t('pub.cancelBtn')"
/>
...
...
@@ -588,6 +634,7 @@ input[type="number"] {
export
default
{
data
()
{
return
{
fileList
:[],
msg
:
{
pageIndex
:
1
,
pageSize
:
6
,
...
...
@@ -609,6 +656,7 @@ export default {
IsShare
:
0
,
Is_PacketGroup
:
0
,
LineDirection
:
2
,
BackgroundImage
:
""
,
},
departCompany
:
""
,
departDepartment
:
""
,
...
...
@@ -649,6 +697,19 @@ export default {
};
},
methods
:
{
handleChange1
(
file
,
fileList
)
{
this
.
fileList
=
fileList
.
slice
(
-
1
);
},
uploadTest
(
file
)
{
let
newArr
=
[];
newArr
.
push
(
file
.
file
);
let
path
=
"/Upload/DMC/Icon/"
;
this
.
UploadSelfFileT
(
path
,
newArr
,
x
=>
{
let
url
=
this
.
domainManager
().
ViittoFileUrl
+
x
.
data
.
FilePath
;
this
.
addMsg
.
BackgroundImage
=
url
;
});
},
getList
()
{
//获取现有线路列表
this
.
loading
=
true
;
...
...
@@ -748,6 +809,8 @@ export default {
this
.
addMsg
.
IsShare
=
getInfo
.
isShare
;
this
.
addMsg
.
Is_PacketGroup
=
getInfo
.
is_PacketGroup
;
this
.
addMsg
.
LineDirection
=
getInfo
.
lineDirection
;
this
.
addMsg
.
BackgroundImage
=
getInfo
.
BackgroundImage
;
console
.
log
(
"this.addMsg.BackgroundImage"
,
getInfo
)
},
deletelist
(
lineID
)
{
var
that
=
this
;
...
...
src/router/config.js
View file @
979e3470
...
...
@@ -1002,6 +1002,14 @@ export default {
title
:
'餐厅套餐查询'
},
},
{
path
:
'/FoodOrder'
,
//餐厅订单
name
:
'FoodOrder'
,
component
:
resolve
=>
require
([
'@/components/Restaurant/FoodOrder'
],
resolve
),
meta
:
{
title
:
'餐厅订单'
},
},
{
path
:
'/ChangeDining'
,
//更换餐厅
name
:
'ChangeDining'
,
...
...
@@ -3423,7 +3431,16 @@ export default {
meta
:
{
title
:
'酒店查询'
},
}]
},
{
path
:
'/AddSupplierComplaints'
,
//供应商=>供应商投诉
name
:
'AddSupplierComplaints'
,
component
:
resolve
=>
require
([
'@/components/Supplier/AddSupplierComplaints'
],
resolve
),
meta
:
{
title
:
'供应商投诉'
},
}
]
},
]
}
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