Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
杨炀
/
ztx_wx_gzt
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
132ee8c8
authored
2026-04-16 13:52:37 +0800
by
张猛
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
ztx个人审核
1 parent
6c6dcc02
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
246 additions
and
208 deletions
personalVip/audit.vue
personalVip/paymentDetail.vue
personalVip/audit.vue
View file @
132ee8c
...
...
@@ -43,32 +43,36 @@
</view>
<view
class=
"date"
@
click=
"goDetail(item)"
>
<uni-icons
color=
"#AD181F"
size=
"16"
type=
"calendar-filled"
></uni-icons>
{{
item
.
co
ntent
?.
co
mmitTime
}}
提交
{{
item
.
commitTime
}}
提交
</view>
<view
v-if=
"item?.wfCode"
class=
"text-primary"
@
click=
"goDetail(item)"
>
{{
item
?
.
wfCode
}}
<view
v-if=
"item?.wfCode"
class=
"text-primary"
@
click=
"goDetail(item)"
>
{{
item
.
wfCode
}}
</view>
<view
class=
"name"
@
click=
"goDetail(item)"
>
{{
item
.
n
ame
}}
</view>
<view
class=
"name"
@
click=
"goDetail(item)"
>
{{
item
.
memN
ame
}}
</view>
<view
class=
"flexbox"
@
click=
"goDetail(item)"
>
<view>
人数合计
<view>
{{
item
.
person
Count
}}
</view>
<view>
{{
item
.
all
Count
}}
</view>
</view>
<view>
年限合计
<view>
{{
item
.
totalYear
}}
</view>
<view>
{{
item
.
yearCount
}}
</view>
</view>
<view>
提交单位
<view>
{{
item
.
memberName
}}
</view>
新会员
<view>
{{
item
.
newCount
}}
</view>
</view>
<view>
费用
<view>
¥
{{
(
item
.
price
*
1
).
toFixed
(
2
)
}}
</view>
</view>
</view>
<view
v-if=
"item.auditStatus==0"
class=
"func"
>
<button
@
click=
"audit(item.recordId,'0')"
>
拒绝
</button>
<button
@
click=
"audit(item.recordId,'1')"
>
同意
</button>
</view>
<
view
v-if=
"item.auditStatus==1 && item.isView == 1"
class=
"func"
>
<button
@
click=
"handleDelete(item)"
>
撤回
</button
>
<
/view
>
<
!--
<view
v-if=
"item.auditStatus==1 && item.isView == 1"
class=
"func"
>
--
>
<!--
<button
@
click=
"handleDelete(item)"
>
撤回
</button>
--
>
<
!--
</view>
--
>
</view>
</view>
...
...
@@ -143,7 +147,6 @@ async function getList() {
const
res
=
await
api
.
auditList
(
queryParams
.
value
)
list
.
value
=
res
.
rows
total
.
value
=
res
.
total
statistical
.
value
=
{
totalCost
:
0
,
personCount
:
0
,
...
...
@@ -151,14 +154,12 @@ async function getList() {
oldPersonCount
:
0
,
totalYear
:
0
}
for
(
const
item
of
list
.
value
)
{
item
.
content
=
JSON
.
parse
(
item
.
content
)
item
.
doc
=
JSON
.
parse
(
item
.
doc
)
statistical
.
value
.
totalCost
+=
(
item
.
content
.
allFee
*
1
)
statistical
.
value
.
personCount
+=
(
item
.
content
.
personCount
*
1
)
statistical
.
value
.
newPersonCount
+=
(
item
.
content
.
newPersonCount
*
1
)
statistical
.
value
.
oldPersonCount
+=
(
item
.
content
.
oldPersonCount
*
1
)
statistical
.
value
.
totalYear
+=
(
item
.
content
.
totalYear
*
1
)
for
(
const
val
of
list
.
value
)
{
statistical
.
value
.
totalCost
+=
val
.
price
*
1
statistical
.
value
.
personCount
+=
val
.
allCount
*
1
statistical
.
value
.
newPersonCount
+=
val
.
newCount
*
1
statistical
.
value
.
oldPersonCount
+=
val
.
oldCount
*
1
statistical
.
value
.
totalYear
+=
val
.
yearCount
*
1
}
uni
.
hideLoading
()
...
...
@@ -244,8 +245,14 @@ function goDetail(item) {
const
form
=
encodeURIComponent
(
JSON
.
stringify
(
item
))
// console.log(userType.value)
// let path =
// `/personalVip/auditDetail?form=${form}`
// uni.navigateTo({
// url: path
// });
let
path
=
`/personalVip/
audi
tDetail?form=
${
form
}
`
`/personalVip/
paymen
tDetail?form=
${
form
}
`
uni
.
navigateTo
({
url
:
path
});
...
...
personalVip/paymentDetail.vue
View file @
132ee8c
<
template
>
<view>
<view
class=
"wBox"
>
<view
class=
"tt"
>
{{
form
.
paymentName
}}
</view>
<view
class=
"info"
>
<view>
共
<text>
{{
list
.
length
}}
</text>
人
</view>
</view>
<view
class=
"userlist"
>
<view
class=
"item"
v-for=
"(n,index) in list"
:key=
"index"
>
<view>
<view
class=
"name"
>
{{
n
.
perName
}}
<text
v-if=
"n.memberInfoName"
>
(
{{
n
.
memberInfoName
||
''
}}
)
</text></view>
<view
class=
"date"
>
原有效期至
{{
n
.
originValidityDate
?
n
.
originValidityDate
.
slice
(
0
,
10
)
:
'--'
}}
</view>
</view>
<view
class=
"nian"
>
{{
n
.
payYear
}}
年
</view>
</view>
</view>
</view>
<view
class=
"h3-padding"
v-if=
"feelList.length>0"
>
审核流程
</view>
<view
class=
"wBox"
v-if=
"feelList.length>0"
>
<view
class=
"stepItem"
v-for=
"(n,index) in feelList"
:key=
"index"
>
<view
class=
"time"
>
{{
n
.
auditTime
||
'待审批'
}}
</view>
<view
class=
"content"
>
<view
class=
"status"
>
<text
v-if=
"n.auditResult==0"
class=
"text-primary"
>
审核中
</text>
<text
v-if=
"n.auditResult==1"
class=
"text-success"
>
审核通过
</text>
<text
v-if=
"n.auditResult==2"
class=
"text-danger"
>
审核拒绝
</text>
<text
v-if=
"n.auditResult==3"
class=
"text-warning"
>
已撤回
</text>
</view>
<view
class=
"name"
>
第
{{
index
+
1
}}
步
</view>
<view
class=
"deptName"
>
{{
n
.
auditDeptName
||
n
.
auditBy
}}
</view>
<view>
备注:
{{
n
.
auditMsg
||
'/'
}}
</view>
</view>
</view>
</view>
</view>
<view>
<view
class=
"wBox"
>
<view
class=
"tt"
>
{{
form
.
memName
}}
</view>
<view
class=
"info"
style=
"flex-wrap: wrap;"
>
<view
class=
"w45"
>
共
<text
class=
"text-danger"
>
{{
form
?.
allCount
}}
</text>
人
</view>
<view
class=
"w45"
>
新会员
<text
class=
"text-primary"
>
{{
form
?.
newCount
}}
</text>
人
</view>
<view
class=
"w45"
>
续费合计
<text
class=
"text-primary"
>
{{
form
?.
oldCount
}}
</text>
人
</view>
<view
class=
"w45"
>
费用合计
<text
class=
"text-danger"
>
{{
form
?.
price
}}
</text>
元
</view>
</view>
</view>
<view
class=
"wBox"
>
<!--
<view
class=
"tt"
>
{{
// form.paymentName
}}
</view>
-->
<view
class=
"info"
>
<view>
共
<text>
{{
list
.
length
}}
</text>
人
</view>
</view>
<view
class=
"userlist"
>
<view
v-for=
"(n,index) in list"
:key=
"index"
class=
"item"
>
<view>
<view
class=
"name"
>
{{
n
.
perName
}}
<text
v-if=
"n.memberInfoName"
>
(
{{
n
.
memberInfoName
||
''
}}
)
</text>
</view>
<view
class=
"date"
>
原有效期至
{{
n
.
originValidityDate
?
n
.
originValidityDate
.
slice
(
0
,
10
)
:
'--'
}}
</view>
</view>
<view
class=
"nian"
>
{{
n
.
payYear
}}
年
</view>
</view>
</view>
</view>
<view
v-if=
"feelList.length>0"
class=
"h3-padding"
>
审核流程
</view>
<view
v-if=
"feelList.length>0"
class=
"wBox"
>
<view
v-for=
"(n,index) in feelList"
:key=
"index"
class=
"stepItem"
>
<view
class=
"time"
>
{{
n
.
auditTime
||
'待审批'
}}
</view>
<view
class=
"content"
>
<view
class=
"status"
>
<text
v-if=
"n.auditResult==0"
class=
"text-primary"
>
审核中
</text>
<text
v-if=
"n.auditResult==1"
class=
"text-success"
>
审核通过
</text>
<text
v-if=
"n.auditResult==2"
class=
"text-danger"
>
审核拒绝
</text>
<text
v-if=
"n.auditResult==3"
class=
"text-warning"
>
已撤回
</text>
</view>
<view
class=
"name"
>
第
{{
index
+
1
}}
步
</view>
<view
class=
"deptName"
>
{{
n
.
auditDeptName
||
n
.
auditBy
}}
</view>
<view>
备注:
{{
n
.
auditMsg
||
'/'
}}
</view>
</view>
</view>
</view>
</view>
</
template
>
<
script
setup
>
import
*
as
api
from
'@/common/api.js'
import
{
ref
}
from
'vue'
import
{
onLoad
}
from
'@dcloudio/uni-app'
// 查询参数(和PC保持一致)
const
queryParams
=
ref
({
rangeId
:
''
,
pageNum
:
1
,
pageSize
:
999
})
const
form
=
ref
({})
const
list
=
ref
([])
const
feelList
=
ref
([])
onLoad
((
option
)
=>
{
if
(
option
.
form
)
{
form
.
value
=
JSON
.
parse
(
decodeURIComponent
(
option
.
form
))
queryParams
.
value
.
rangeId
=
form
.
value
.
rangId
||
form
.
value
.
rangeId
getList
()
getAuditLogs
()
}
})
async
function
getList
()
{
try
{
const
res
=
await
api
.
listAPI
(
queryParams
.
value
)
list
.
value
=
res
.
rows
||
[]
}
catch
(
e
)
{
list
.
value
=
[]
console
.
error
(
'获取成员失败'
,
e
)
}
}
function
getAuditLogs
()
{
if
(
form
.
value
.
auditLogs
)
{
try
{
feelList
.
value
=
JSON
.
parse
(
form
.
value
.
auditLogs
)
}
catch
(
e
)
{
feelList
.
value
=
[]
}
}
}
import
*
as
api
from
'@/common/api.js'
import
{
ref
}
from
'vue'
import
{
onLoad
}
from
'@dcloudio/uni-app'
// 查询参数(和PC保持一致)
const
queryParams
=
ref
({
rangeId
:
''
,
pageNum
:
1
,
pageSize
:
999
})
const
form
=
ref
({})
const
list
=
ref
([])
const
feelList
=
ref
([])
onLoad
((
option
)
=>
{
if
(
option
.
form
)
{
form
.
value
=
JSON
.
parse
(
decodeURIComponent
(
option
.
form
))
queryParams
.
value
.
rangeId
=
form
.
value
.
rangId
||
form
.
value
.
rangeId
getList
()
getAuditLogs
()
}
console
.
log
(
form
.
value
)
})
async
function
getList
()
{
try
{
const
res
=
await
api
.
listAPI
(
queryParams
.
value
)
list
.
value
=
res
.
rows
||
[]
}
catch
(
e
)
{
list
.
value
=
[]
console
.
error
(
'获取成员失败'
,
e
)
}
}
function
getAuditLogs
()
{
if
(
form
.
value
.
auditLogs
)
{
try
{
feelList
.
value
=
JSON
.
parse
(
form
.
value
.
auditLogs
)
}
catch
(
e
)
{
feelList
.
value
=
[]
}
}
}
</
script
>
<
style
scoped
lang=
"scss"
>
.wBox
{
width
:
700
rpx
;
padding
:
30
rpx
;
margin
:
20
rpx
auto
0
;
background
:
#FFFFFF
;
box-shadow
:
0
rpx
12
rpx
116
rpx
0
rpx
rgba
(
196
,
203
,
214
,
0.1
);
border-radius
:
15
rpx
;
.tt
{
color
:
#0A1629
;
font-size
:
30
rpx
;
}
}
.userlist
{
.item
{
border-bottom
:
1px
dashed
#e5e5e5
;
position
:
relative
;
padding
:
20
rpx
0
;
.date
{
margin-top
:
10
rpx
;
font-size
:
24
rpx
;
color
:
#999
;
}
.name
{
font-size
:
30
rpx
;
text
{
margin-left
:
1em
;
color
:
#4C5359
;
font-size
:
26
rpx
;
}
}
.nian
{
position
:
absolute
;
right
:
0
;
top
:
30
rpx
;
font-size
:
30
rpx
;
color
:
#AD181F
;
}
}
}
.info
{
display
:
flex
;
margin
:
30
rpx
0
20
rpx
;
font-size
:
28
rpx
;
view
{
color
:
#7D8592
;
margin-right
:
20
rpx
;
text
{
color
:
#AD181F
;
}
}
}
.h3-padding
{
padding
:
20
rpx
30
rpx
0
;
font-size
:
30
rpx
;
font-weight
:
500
;
}
.stepItem
{
border-left
:
2
rpx
solid
#E60012
;
padding-left
:
20
rpx
;
position
:
relative
;
margin-bottom
:
30
rpx
;
&:before
{
content
:
''
;
width
:
12
rpx
;
height
:
12
rpx
;
background
:
#E60012
;
border-radius
:
50%
;
position
:
absolute
;
left
:
-7
rpx
;
top
:
0
;
}
.time
{
font-size
:
24
rpx
;
color
:
#999
;
}
.content
{
margin-top
:
10
rpx
;
font-size
:
28
rpx
;
.status
{
margin-bottom
:
8
rpx
;
}
.name
{
font-weight
:
500
;
}
.deptName
{
margin
:
6
rpx
0
;
color
:
#666
;
}
}
}
</
style
>
\ No newline at end of file
<
style
lang=
"scss"
scoped
>
.wBox
{
width
:
700
rpx
;
padding
:
30
rpx
;
margin
:
20
rpx
auto
0
;
background
:
#FFFFFF
;
box-shadow
:
0
rpx
12
rpx
116
rpx
0
rpx
rgba
(
196
,
203
,
214
,
0.1
);
border-radius
:
15
rpx
;
.tt
{
color
:
#0A1629
;
font-size
:
30
rpx
;
}
}
.userlist
{
.item
{
border-bottom
:
1px
dashed
#e5e5e5
;
position
:
relative
;
padding
:
20
rpx
0
;
.date
{
margin-top
:
10
rpx
;
font-size
:
24
rpx
;
color
:
#999
;
}
.name
{
font-size
:
30
rpx
;
text
{
margin-left
:
1em
;
color
:
#4C5359
;
font-size
:
26
rpx
;
}
}
.nian
{
position
:
absolute
;
right
:
0
;
top
:
30
rpx
;
font-size
:
30
rpx
;
color
:
#AD181F
;
}
}
}
.info
{
display
:
flex
;
margin
:
30
rpx
0
20
rpx
;
font-size
:
28
rpx
;
view
{
color
:
#7D8592
;
margin-right
:
20
rpx
;
text
{
color
:
#AD181F
;
}
}
}
.h3-padding
{
padding
:
20
rpx
30
rpx
0
;
font-size
:
30
rpx
;
font-weight
:
500
;
}
.stepItem
{
border-left
:
2
rpx
solid
#E60012
;
padding-left
:
20
rpx
;
position
:
relative
;
margin-bottom
:
30
rpx
;
&:before
{
content
:
''
;
width
:
12
rpx
;
height
:
12
rpx
;
background
:
#E60012
;
border-radius
:
50%
;
position
:
absolute
;
left
:
-7
rpx
;
top
:
0
;
}
.time
{
font-size
:
24
rpx
;
color
:
#999
;
}
.content
{
margin-top
:
10
rpx
;
font-size
:
28
rpx
;
.status
{
margin-bottom
:
8
rpx
;
}
.name
{
font-weight
:
500
;
}
.deptName
{
margin
:
6
rpx
0
;
color
:
#666
;
}
}
}
</
style
>
...
...
Write
Preview
Styling with
Markdown
is supported
Attach a file
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 post a comment