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
c41a172e
Commit
c41a172e
authored
Apr 18, 2023
by
youjie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
no message
parent
757bc97c
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
224 additions
and
72 deletions
+224
-72
TeamRevenueReport.vue
...mponents/FinancialModule/ReportForm/TeamRevenueReport.vue
+28
-0
groupApproval.vue
src/components/FinancialModule/groupApproval.vue
+149
-70
priceGroup.vue
src/components/TravelManager/TravelTeam/priceGroup.vue
+36
-0
order-form.vue
src/components/orderCommon/order-form.vue
+11
-2
No files found.
src/components/FinancialModule/ReportForm/TeamRevenueReport.vue
View file @
c41a172e
...
@@ -946,6 +946,24 @@ Vue.component("TCStatusport", {
...
@@ -946,6 +946,24 @@ Vue.component("TCStatusport", {
}
}
}
}
});
});
Vue
.
component
(
"clumpingStatus"
,
{
template
:
`<span>
<span v-if="rowData.TravelStatus==1" style="color: red;">未结团</span>
<span v-if="rowData.TravelStatus==2" style="color: #47BF8C;">已结团</span>
<span v-if="rowData.TravelStatus==5">待结团审核</span>
</span>`
,
props
:
{
rowData
:
{
type
:
Object
},
field
:
{
type
:
String
},
index
:
{
type
:
Number
}
}
});
Vue
.
component
(
"Transport"
,
{
Vue
.
component
(
"Transport"
,
{
// 是否联运团
// 是否联运团
template
:
`<span><span v-if="rowData.Is_Transport==='是'" style="color: red;">{{rowData.Is_Transport}}</span><span v-else>{{rowData.Is_Transport}}</span></span>`
,
template
:
`<span><span v-if="rowData.Is_Transport==='是'" style="color: red;">{{rowData.Is_Transport}}</span><span v-else>{{rowData.Is_Transport}}</span></span>`
,
...
@@ -1139,6 +1157,16 @@ export default {
...
@@ -1139,6 +1157,16 @@ export default {
isFrozen
:
true
,
isFrozen
:
true
,
componentName
:
"TCStatusport"
componentName
:
"TCStatusport"
},
},
{
field
:
"TravelStatus"
,
title
:
"结团状态"
,
width
:
80
,
titleAlign
:
"left"
,
columnAlign
:
"left"
,
isResize
:
true
,
isFrozen
:
true
,
componentName
:
"clumpingStatus"
},
{
{
field
:
"LeaderName"
,
field
:
"LeaderName"
,
title
:
"领队"
,
title
:
"领队"
,
...
...
src/components/FinancialModule/groupApproval.vue
View file @
c41a172e
...
@@ -38,6 +38,9 @@
...
@@ -38,6 +38,9 @@
<ul
class=
"_nav clearfix"
>
<ul
class=
"_nav clearfix"
>
<li
:class=
"active==1?'_active':''"
@
click=
"active=1, msg.OutGroupAuditState=1, getControlList()"
>
待审批
</li>
<li
:class=
"active==1?'_active':''"
@
click=
"active=1, msg.OutGroupAuditState=1, getControlList()"
>
待审批
</li>
<li
:class=
"active==2?'_active':''"
@
click=
"active=2, msg.OutGroupAuditState=2, getControlList()"
>
已审批
</li>
<li
:class=
"active==2?'_active':''"
@
click=
"active=2, msg.OutGroupAuditState=2, getControlList()"
>
已审批
</li>
<div
style=
"float: right;"
v-if=
"multipleSelection.length>0"
>
<button
class=
"hollowFixedBtn"
@
click=
"setAudit()"
>
批量审核
</button>
</div>
</ul>
</ul>
<ul
style=
"overflow: initial!important"
>
<ul
style=
"overflow: initial!important"
>
...
@@ -45,76 +48,107 @@
...
@@ -45,76 +48,107 @@
</li>
</li>
</ul>
</ul>
<table
class=
"singeRowTable"
border=
"0"
cellspacing=
"0"
cellpadding=
"0"
v-loading=
"loading"
>
<el-table
<thead>
v-loading=
"loading"
<tr>
ref=
"multipleTable"
<th
width=
"160"
>
团队编号
</th>
:data=
"dataList"
<th>
系列
</th>
tooltip-effect=
"dark"
<th
width=
"400"
>
团名
</th>
style=
"width: 100%"
<th>
OP
</th>
@
selection-change=
"handleSelectionChange"
<th>
团队类型
</th>
>
<th>
应收
</th>
<el-table-column
<th>
实收
</th>
type=
"selection"
<th>
待收
</th>
width=
"55"
:selectable=
"selectable"
>
<th>
应付
</th>
</el-table-column>
<th>
实付
</th>
<el-table-column
<th>
待付
</th>
label=
"团队编号"
<th>
团队利润
</th>
width=
"170"
>
<th
v-if=
"active==1"
>
审批人
</th>
<template
slot-scope=
"scope"
>
<th
v-if=
"active==2"
>
审批结果
</th>
<span
style=
"cursor: pointer;text-decoration: underline;"
<th
v-if=
"active==2"
>
审批信息
</th>
@
click=
"goTravel(scope.row.TCID)"
>
{{
scope
.
row
.
TCNUM
}}
(
{{
scope
.
row
.
TCID
}}
)
</span>
<th
width=
"200"
>
操作
</th>
</
template
>
</tr>
</el-table-column>
</thead>
<el-table-column
<tbody>
prop=
"LtName"
label=
"系列"
show-overflow-tooltip
></el-table-column>
<tr
v-for=
"(item,index) in dataList"
:key=
"index"
>
<el-table-column
<td
style=
"cursor: pointer;text-decoration: underline;"
@
click=
"goTravel(item.TCID)"
>
{{
item
.
TCNUM
}}
(
{{
item
.
TCID
}}
)
</td>
prop=
"Title"
<td>
{{
item
.
LtName
}}
</td>
label=
"团名"
<td
style=
"padding: 5px;"
>
{{
item
.
Title
}}
</td>
width=
"400"
<td>
{{
item
.
OPName
}}
</td>
show-overflow-tooltip
></el-table-column>
<td>
{{
item
.
PriceTeamTypeName
}}
</td>
<el-table-column
<td>
{{
item
.
ShouldReceive
}}
</td>
prop=
"OPName"
<td>
{{
item
.
ActualReceive
}}
</td>
label=
"OP"
></el-table-column>
<td>
{{
item
.
WaitRecive
}}
</td>
<el-table-column
<td>
{{
item
.
ShouldPay
}}
</td>
prop=
"PriceTeamTypeName"
<td>
{{
item
.
ActualPay
}}
</td>
label=
"团队类型"
></el-table-column>
<td>
{{
item
.
WaitPay
}}
</td>
<el-table-column
<td>
{{
item
.
ActualProfit
}}
</td>
prop=
"ShouldReceive"
<td
v-if=
"active==1"
>
{{
item
.
AuditEmpName
}}
</td>
label=
"应收"
></el-table-column>
<td
v-if=
"active==2"
>
<el-table-column
<span
v-if=
"item.OutGroupAuditState == 2"
style=
"color: green;"
>
通过
</span>
prop=
"ActualReceive"
<span
v-if=
"item.OutGroupAuditState == 3"
style=
"color: red;"
>
拒绝
</span>
label=
"实收"
></el-table-column>
</td>
<el-table-column
<td
v-if=
"active==2"
>
prop=
"WaitRecive"
<div>
{{
item
.
AuditEmpName
}}
</div>
label=
"待收"
></el-table-column>
<div>
{{
item
.
OutGroupAuditDate
}}
</div>
<el-table-column
</td>
prop=
"ShouldPay"
<td
class=
"_icon_btn"
>
label=
"应付"
></el-table-column>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"审核"
placement=
"top"
v-if=
"active==1 && EmployeeId==item.OutGroupAuditEmpId"
>
<el-table-column
<i
class=
"iconfont icon-ico_commodity_defaul"
@
click=
"shenhei(item)"
v-if=
"active==1 && EmployeeId==item.OutGroupAuditEmpId"
></i>
prop=
"ActualPay"
label=
"实付"
></el-table-column>
<el-table-column
prop=
"WaitPay"
label=
"待付"
></el-table-column>
<el-table-column
prop=
"ActualProfit"
label=
"团队利润"
></el-table-column>
<el-table-column
v-if=
"active==1"
prop=
"AuditEmpName"
label=
"审批人"
></el-table-column>
<el-table-column
v-if=
"active==2"
prop=
""
label=
"审批结果"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.OutGroupAuditState == 2"
style=
"color: green;"
>
通过
</span>
<span
v-if=
"scope.row.OutGroupAuditState == 3"
style=
"color: red;"
>
拒绝
</span>
</
template
>
</el-table-column>
<el-table-column
v-if=
"active==2"
prop=
""
label=
"审批信息"
>
<
template
slot-scope=
"scope"
>
<p>
{{
scope
.
row
.
AuditEmpName
}}
</p>
<p>
{{
scope
.
row
.
OutGroupAuditDate
}}
</p>
</
template
>
</el-table-column>
<el-table-column
prop=
""
label=
"操作"
width=
"150"
>
<
template
slot-scope=
"scope"
>
<div
class=
"_icon_btn"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"审核"
placement=
"top"
v-if=
"active==1 && EmployeeId==scope.row.OutGroupAuditEmpId"
>
<i
class=
"iconfont icon-ico_commodity_defaul"
@
click=
"shenhei(scope.row)"
v-if=
"active==1 && EmployeeId==scope.row.OutGroupAuditEmpId"
></i>
</el-tooltip>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"驳回"
placement=
"top"
v-if=
"active==1 && EmployeeId==
item
.OutGroupAuditEmpId"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"驳回"
placement=
"top"
v-if=
"active==1 && EmployeeId==
scope.row
.OutGroupAuditEmpId"
>
<i
class=
"iconfont icon-shenhebohui"
@
click=
"bohui(
item)"
v-if=
"active==1 && EmployeeId==item
.OutGroupAuditEmpId"
></i>
<i
class=
"iconfont icon-shenhebohui"
@
click=
"bohui(
scope.row)"
v-if=
"active==1 && EmployeeId==scope.row
.OutGroupAuditEmpId"
></i>
</el-tooltip>
</el-tooltip>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"收支明细"
placement=
"top"
>
<el-tooltip
class=
"item"
effect=
"dark"
content=
"收支明细"
placement=
"top"
>
<i
class=
"iconfont icon-mingxi"
@
click=
"goTeamBalance(
item
.TCID)"
></i>
<i
class=
"iconfont icon-mingxi"
@
click=
"goTeamBalance(
scope.row
.TCID)"
></i>
</el-tooltip>
</el-tooltip>
</div>
</
template
>
</td>
</el-table-column>
</tr>
</el-table>
</tbody>
<tr
v-if=
"dataList.length==0"
>
<td
:colspan=
"active==1?14:15"
style=
"text-align:center"
>
暂无数据
</td>
</tr>
</table>
<div
style=
"width: 100%;"
>
<div
style=
"width: 100%;"
>
<el-pagination
background
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"msg.pageIndex"
<el-pagination
background
layout=
"total,prev, pager, next, jumper"
:page-size=
"msg.pageSize"
:total=
"total"
>
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page
.
sync=
"msg.pageIndex"
layout=
"sizes,total,prev, pager, next, jumper"
:page-sizes=
"[5, 10, 20, 30,50,100]"
:page-size=
"msg.pageSize"
:total=
"total"
>
</el-pagination>
</el-pagination>
</div>
</div>
...
@@ -166,7 +200,7 @@
...
@@ -166,7 +200,7 @@
active
:
'1'
,
active
:
'1'
,
msg
:
{
msg
:
{
pageIndex
:
1
,
pageIndex
:
1
,
pageSize
:
5
,
pageSize
:
10
,
PriceTeamType
:
"0"
,
PriceTeamType
:
"0"
,
TCNUM
:
''
,
//团号
TCNUM
:
''
,
//团号
TCID
:
''
,
TCID
:
''
,
...
@@ -176,6 +210,8 @@
...
@@ -176,6 +210,8 @@
TeamListArr
:[],
TeamListArr
:[],
total
:
0
,
total
:
0
,
EmployeeId
:
0
,
EmployeeId
:
0
,
multipleSelection
:
[],
AuditLoading
:
false
}
}
},
},
created
()
{
created
()
{
...
@@ -197,10 +233,44 @@
...
@@ -197,10 +233,44 @@
},
},
methods
:
{
methods
:
{
selectable
(
row
,
index
)
{
if
(
this
.
active
==
1
){
return
true
}
else
{
return
false
}
},
setAudit
(
type
){
let
ids
=
this
.
multipleSelection
.
map
(
x
=>
{
return
x
.
TCID
})
if
(
ids
.
length
==
0
){
return
this
.
$message
.
error
(
'请勾选需要批量审核的数据'
);
}
let
that
=
this
;
that
.
$confirm
(
'是否通过该批量审核数据?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
for
(
let
i
=
0
;
i
<
ids
.
length
;
i
++
){
setTimeout
(()
=>
{
this
.
groupAudit
(
2
,
ids
[
i
],
'multiple'
,(
i
+
1
)
==
ids
.
length
?
ids
.
length
:
0
)
},
500
)
}
}).
catch
(()
=>
{
});
},
handleSelectionChange
(
val
)
{
this
.
multipleSelection
=
val
;
},
getControlList
()
{
getControlList
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
msg
.
pageIndex
=
1
;
this
.
getList
()
this
.
getList
()
},
},
handleSizeChange
(
e
){
this
.
msg
.
pageSize
=
e
;
this
.
getList
()
},
handleCurrentChange
(
e
){
handleCurrentChange
(
e
){
this
.
msg
.
pageIndex
=
e
;
this
.
msg
.
pageIndex
=
e
;
this
.
getList
()
this
.
getList
()
...
@@ -271,16 +341,25 @@
...
@@ -271,16 +341,25 @@
});
});
},
},
groupAudit
(
type
,
TCID
){
groupAudit
(
type
,
TCID
,
name
,
length
){
this
.
apipost
(
"travel_post_SetOutGroupAuditInfo"
,
{
this
.
apipost
(
"travel_post_SetOutGroupAuditInfo"
,
{
TCID
:
TCID
,
TCID
:
TCID
,
OutGroupAuditState
:
type
,
OutGroupAuditState
:
type
,
OutGroupAuditRemark
:
this
.
cancelRemark
OutGroupAuditRemark
:
this
.
cancelRemark
},
res
=>
{
},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
if
(
res
.
data
.
resultCode
==
1
)
{
if
(
!
name
){
this
.
cancelOrderDialog
=
false
this
.
Success
(
res
.
data
.
message
);
this
.
getList
()
}
else
{
if
(
length
){
this
.
cancelOrderDialog
=
false
this
.
cancelOrderDialog
=
false
this
.
Success
(
res
.
data
.
message
);
this
.
Success
(
res
.
data
.
message
);
this
.
getList
()
this
.
getList
()
}
}
}
else
{
}
else
{
this
.
Error
(
res
.
data
.
message
);
this
.
Error
(
res
.
data
.
message
);
}
}
...
...
src/components/TravelManager/TravelTeam/priceGroup.vue
View file @
c41a172e
...
@@ -976,6 +976,42 @@
...
@@ -976,6 +976,42 @@
components
:
{
components
:
{
orderForm
:
orderForm
orderForm
:
orderForm
},
},
filters
:
{
priceFormat
(
value
)
{
if
(
value
==
null
)
{
return
0.0
;
}
let
nStr
=
value
.
toFixed
(
2
);
nStr
+=
""
;
let
x
=
nStr
.
split
(
"."
);
let
x1
=
x
[
0
];
let
x2
=
x
.
length
>
1
?
"."
+
x
[
1
]
:
""
;
var
rgx
=
/
(\d
+
)(\d{3})
/
;
while
(
rgx
.
test
(
x1
))
{
x1
=
x1
.
replace
(
rgx
,
"$1"
+
","
+
"$2"
);
}
return
x1
+
x2
;
},
priceFormat2
(
value
)
{
if
(
value
==
null
)
{
return
"已包含"
;
}
let
nStr
=
value
.
toFixed
(
2
);
nStr
+=
""
;
let
x
=
nStr
.
split
(
"."
);
let
x1
=
x
[
0
];
let
x2
=
x
.
length
>
1
?
"."
+
x
[
1
]
:
""
;
var
rgx
=
/
(\d
+
)(\d{3})
/
;
while
(
rgx
.
test
(
x1
))
{
x1
=
x1
.
replace
(
rgx
,
"$1"
+
","
+
"$2"
);
}
let
result
=
x1
+
x2
;
if
(
result
===
"0.00"
)
{
result
=
"已包含"
;
}
return
result
;
},
},
methods
:
{
methods
:
{
//刷新页面
//刷新页面
reSearchPage
()
{
reSearchPage
()
{
...
...
src/components/orderCommon/order-form.vue
View file @
c41a172e
<
style
scoped
>
<
style
scoped
>
.commonOrderForm
{
overflow
:
auto
;
.commonOrderForm
{
position
:
fixed
;
left
:
0
;
right
:
0
;
bottom
:
0
;
z-index
:
2
;
overflow
:
auto
;
height
:
600px
;
height
:
600px
;
border-top
:
3px
solid
#38425d
;
border-top
:
3px
solid
#38425d
;
background-color
:
#ffffff
;
background-color
:
#ffffff
;
...
@@ -1618,6 +1624,9 @@
...
@@ -1618,6 +1624,9 @@
(
res
)
=>
{
(
res
)
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
if
(
res
.
data
.
resultCode
==
1
)
{
this
.
joinTypeList
=
res
.
data
.
data
;
this
.
joinTypeList
=
res
.
data
.
data
;
this
.
joinTypeList
.
splice
(
-
1
)
this
.
joinTypeList
.
splice
(
-
1
)
this
.
joinTypeList
.
splice
(
-
1
)
}
}
},
},
);
);
...
...
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