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
d17e81f7
authored
2023-11-02 14:36:16 +0800
by
杨炀
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
no message
1 parent
65316219
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
324 additions
and
259 deletions
common/mystyle.scss
config.js
pages/group/apply/mergeUpDetail.vue
pages/group/detail.vue
pages/group/list.vue
pages/group/vipList.vue
pages/index/index.vue
pages/index/msgList.vue
pages/level/addApply.vue
pages/level/chooseExaminer.vue
pages/personalVip/addMobilize.vue
pages/personalVip/auditDetail.vue
pages/personalVip/list.vue
pages/personalVip/paymentDetail.vue
common/mystyle.scss
View file @
d17e81f
...
...
@@ -141,7 +141,7 @@ color: #7D8592;}
}
text
{
font-size
:
30rpx
;
padding
:
30rpx
0
0
;}
}
.status
{
position
:
absolute
;
font-size
:
30
rpx
;
right
:
30rpx
;}
.status
{
position
:
absolute
;
font-size
:
26
rpx
;
right
:
30rpx
;}
}
.text-primary
{
color
:
#1561CB
;}
...
...
config.js
View file @
d17e81f
...
...
@@ -4,8 +4,8 @@
// staging
// const baseUrl_api = "http://22yidpjzjifv.ngrok.xiaomiqiu123.top/stage-api/";
const
baseUrl_api
=
"http://182.92.233.247/stage-api/"
;
// const baseUrl_api = 'http://192.168.1.97
:8787'
//
const baseUrl_api = "http://182.92.233.247/stage-api/";
const
baseUrl_api
=
'http://192.168.1.11
:8787'
export
default
{
baseUrl_api
...
...
pages/group/apply/mergeUpDetail.vue
View file @
d17e81f
...
...
@@ -28,7 +28,7 @@
<!-- 成员 -->
<view
class=
"userlist"
>
<view
class=
"item"
v-for=
"
n in list
"
>
<view
class=
"item"
v-for=
"
(n,index) in list"
:key=
"n.index
"
>
<view
style=
"width: 100%"
>
<view
class=
"name"
>
{{
n
.
memberName
}}
</view>
<view
class=
"date"
>
单位类型:
...
...
@@ -42,11 +42,11 @@
<view>
<view>
原有效期
<text>
{{
n
.
validityTime
?.
slice
(
0
,
10
)
}}
</text>
<text>
{{
n
.
validityTime
?.
slice
(
0
,
10
)
||
'-'
}}
</text>
</view>
<view>
提交日期
<text>
{{
n
.
commitTime
?.
slice
(
0
,
10
)
}}
</text>
<text>
{{
n
.
commitTime
?.
slice
(
0
,
10
)
||
'-'
}}
</text>
</view>
</view>
<view>
...
...
@@ -74,7 +74,7 @@
<view
class=
"h3-padding"
>
审核记录
</view>
<view
class=
"wBox"
>
<view
class=
"stepItem"
v-for=
"(n,index) in auditList"
>
<view
class=
"stepItem"
v-for=
"(n,index) in auditList"
:key=
"index"
>
<view
class=
"time"
>
{{
n
.
handleDate
||
'待审批'
}}
</view>
<view
class=
"content"
>
<view
class=
"status"
>
...
...
pages/group/detail.vue
View file @
d17e81f
...
...
@@ -9,31 +9,30 @@
<view
class=
"wBox"
>
<!-- 成员 -->
<view
class=
"userlist"
>
<view
class=
"item"
v-for=
"
n in list
"
@
click=
"goDetail(n)"
>
<view
class=
"item"
v-for=
"
(n,index) in list"
:key=
"index
"
@
click=
"goDetail(n)"
>
<view
class=
"photobox"
>
<view
class=
"colorful"
>
{{
n
.
name
?.
slice
(
0
,
1
)
}}
</view>
</view>
<view>
<view
class=
"name"
>
{{
n
.
name
}}
<text
v-if=
"n.sex == 1"
>
(女)
</text>
<text
v-else
>
(男)
</text>
</view>
<!--
<view
class=
"date"
>
{{
n
.
ancestorNameList
[
0
]
}}
{{
n
.
ancestorNameList
[
1
]
}}
{{
n
.
ancestorNameList
[
2
]
}}
</view>
-->
<!--
<view
class=
"date"
>
{{
n
.
ancestorNameList
[
0
]
}}
{{
n
.
ancestorNameList
[
1
]
}}
{{
n
.
ancestorNameList
[
2
]
}}
{{
n
.
memName
}}
</view>
-->
<view
class=
"date"
>
注册时间
{{
n
.
createTime
}}
注册时间
{{
n
.
createTime
?.
slice
(
0
,
10
)
}}
</view>
</view>
<view
class=
"nian"
>
<!--
<view
class=
"nian"
>
<text
v-if=
"n.perType==1"
>
个人
</text>
<text
v-if=
"n.perType==2"
>
教练
</text>
<text
v-if=
"n.perType==3"
>
考官
</text>
<text
v-if=
"n.perType==4"
>
裁判
</text>
<text
v-if=
"n.perType==5"
>
临时
</text>
</view>
</view>
-->
</view>
</view>
<view
class=
"nodata"
v-if=
"list.length==0"
>
...
...
pages/group/list.vue
View file @
d17e81f
<
template
>
<view>
<uni-segmented-control
class=
"whitebg"
:current=
"current"
:values=
"navs"
@
clickItem=
"onClickItem"
styleType=
"text"
activeColor=
"#AD181F"
></uni-segmented-control>
<view>
<uni-segmented-control
class=
"whitebg"
:current=
"current"
:values=
"navs"
@
clickItem=
"onClickItem"
styleType=
"text"
activeColor=
"#AD181F"
></uni-segmented-control>
<view
class=
"searchbar"
>
<uni-easyinput
placeholderStyle=
"font-size:30rpx"
:input-border=
"false"
prefixIcon=
"search"
v-model=
"query.name"
placeholder=
"搜索团队会员名称"
@
blur=
"getList"
@
clear=
"getList"
>
</uni-easyinput>
</view>
<view
class=
"vipData"
>
<view>
共计
<text>
{{
forms
?.
total
}}
</text></view>
<view>
有效会员
<text>
{{
forms
?.
effective
}}
</text></view>
<view>
过期会员
<text>
{{
forms
?.
expired
}}
</text></view>
<view>
即将过期会员
<text>
{{
forms
?.
soon
}}
</text></view>
</view>
<view
class=
"vipData"
>
<view>
共计
<text>
{{
forms
?.
total
}}
</text></view>
<view>
有效会员
<text>
{{
forms
?.
effective
}}
</text></view>
<view>
过期会员
<text>
{{
forms
?.
expired
}}
</text></view>
<view>
即将过期会员
<text>
{{
forms
?.
soon
}}
</text></view>
</view>
<view
class=
"indexboxre"
>
<view
class=
"userlist mt30"
>
<view
class=
"item"
v-for=
"n in infoList"
@
click=
"handleInfo(n)"
>
<view
@
click=
"handleInfo(n)"
>
<view
class=
"item"
v-for=
"n in infoList"
:key=
"n.memId"
@
click=
"handleInfo(n)"
>
<view
@
click=
"handleInfo(n)"
>
<view
class=
"name"
>
{{
n
.
name
}}
<text
v-if=
"n.memCode"
>
(
{{
n
.
memCode
}}
)
</text></view>
<view
class=
"date"
>
到期时间:
{{
n
.
validityDate
?.
slice
(
0
,
10
)
||
'--'
}}
</view>
</view>
<view
class=
"status"
>
会员
<text
class=
"text-success"
>
{{
n
.
validityMemberCount
}}
</text>
/
{{
n
.
allMemberCount
}}
<view
class=
"status"
style=
"bottom: 20rpx;"
>
<text
class=
"text-success"
>
{{
n
.
validityMemberCount
}}
</text>
/
{{
n
.
allMemberCount
}}
</view>
</view>
</view>
<view
class=
"nodata"
v-if=
"infoList.length==0"
>
<image
mode=
"aspectFit"
src=
"/static/nodata.png"
></image>
<text>
暂无数据
</text>
<view
class=
"nodata"
v-if=
"infoList.length==0"
>
<image
mode=
"aspectFit"
src=
"/static/nodata.png"
></image>
<text>
暂无数据
</text>
</view>
</view>
...
...
@@ -47,73 +48,76 @@
}
=
getCurrentInstance
()
const
app
=
getApp
();
const
query
=
ref
({
fromList
:
1
,
dType
:
4
,
fromList
:
1
,
dType
:
4
,
})
const
navs
=
ref
([
'道馆'
,
'三级协会'
,
'二级协会'
,
'一级协会'
])
const
list
=
ref
([])
const
forms
=
ref
({})
const
navs
=
ref
([
'道馆'
,
'三级协会'
,
'二级协会'
,
'一级协会'
])
const
list
=
ref
([])
const
forms
=
ref
({})
const
infoList
=
ref
([])
const
total
=
ref
(
0
)
const
current
=
ref
(
0
)
const
total
=
ref
(
0
)
const
current
=
ref
(
0
)
const
currentTabName
=
ref
(
'道馆'
)
const
userType
=
ref
(
''
)
const
userType
=
ref
(
''
)
const
deptType
=
ref
(
''
)
onLoad
(()
=>
{
userType
.
value
=
app
.
globalData
.
userType
deptType
.
value
=
app
.
globalData
.
deptType
// 部门类型 1:中跆协 2:省 3:直属 4:市 5:区 6: 团体
if
(
deptType
.
value
==
2
||
deptType
.
value
==
3
){
navs
.
value
=
[
'道馆'
,
'三级协会'
,
'二级协会'
]
}
else
if
(
deptType
.
value
==
4
){
navs
.
value
=
[
'道馆'
,
'三级协会'
]
userType
.
value
=
app
.
globalData
.
userType
deptType
.
value
=
app
.
globalData
.
deptType
// 部门类型 1:中跆协 2:省 3:直属 4:市 5:区 6: 团体
if
(
deptType
.
value
==
2
||
deptType
.
value
==
3
)
{
navs
.
value
=
[
'道馆'
,
'三级协会'
,
'二级协会'
]
}
else
if
(
deptType
.
value
==
4
)
{
navs
.
value
=
[
'道馆'
,
'三级协会'
]
}
getList
()
getList
()
getGroupInfo
()
})
function
getList
()
{
uni
.
showLoading
({
title
:
'加载中'
})
console
.
log
(
current
.
value
,
currentTabName
.
value
,
query
.
value
.
dType
)
function
getList
()
{
uni
.
showLoading
({
title
:
'加载中'
})
console
.
log
(
current
.
value
,
currentTabName
.
value
,
query
.
value
.
dType
)
api
.
getGroupVipList
(
query
.
value
).
then
(
res
=>
{
infoList
.
value
=
res
.
rows
total
.
value
=
res
.
total
total
.
value
=
res
.
total
uni
.
hideLoading
()
})
}
function
getGroupInfo
(){
api
.
getMemberCountInfo
({
dType
:
query
.
value
.
dType
,
fromList
:
1
}).
then
(
res
=>
{
forms
.
value
=
res
})
}
function
onClickItem
(
e
){
current
.
value
=
e
.
currentIndex
currentTabName
.
value
=
navs
.
value
[
e
.
currentIndex
]
if
(
currentTabName
.
value
==
'道馆'
){
query
.
value
.
dType
=
4
}
else
if
(
currentTabName
.
value
==
'三级协会'
){
query
.
value
.
dType
=
3
}
else
if
(
currentTabName
.
value
==
'二级协会'
){
query
.
value
.
dType
=
2
}
else
if
(
currentTabName
.
value
==
'一级协会'
){
query
.
value
.
dType
=
1
}
getList
()
getGroupInfo
()
function
getGroupInfo
()
{
api
.
getMemberCountInfo
({
dType
:
query
.
value
.
dType
,
fromList
:
1
}).
then
(
res
=>
{
forms
.
value
=
res
})
}
function
onClickItem
(
e
)
{
current
.
value
=
e
.
currentIndex
currentTabName
.
value
=
navs
.
value
[
e
.
currentIndex
]
if
(
currentTabName
.
value
==
'道馆'
)
{
query
.
value
.
dType
=
4
}
else
if
(
currentTabName
.
value
==
'三级协会'
)
{
query
.
value
.
dType
=
3
}
else
if
(
currentTabName
.
value
==
'二级协会'
)
{
query
.
value
.
dType
=
2
}
else
if
(
currentTabName
.
value
==
'一级协会'
)
{
query
.
value
.
dType
=
1
}
getList
()
getGroupInfo
()
}
function
handleInfo
(
n
)
{
uni
.
navigateTo
({
url
:
`/pages/group/detail?deptId=
${
n
.
deptId
}
`
})
}
</
script
>
<
style
scoped
lang=
"scss"
>
.indexboxre
{
padding
:
0
30
rpx
;
...
...
pages/group/vipList.vue
View file @
d17e81f
...
...
@@ -15,7 +15,7 @@
<image
class=
"icon"
v-else
src=
"@/static/member/dx.png"
/>
</view>
<!--
<view
class=
"photobox"
>
<image
class=
"photo"
v-if=
"n.photo"
:src=
"
config.baseUrl_api+
n.photo"
mode=
'aspectFill'
></image>
<image
class=
"photo"
v-if=
"n.photo"
:src=
"n.photo"
mode=
'aspectFill'
></image>
<view
class=
"colorful"
v-else
>
{{
n
.
name
.
slice
(
0
,
1
)
}}
</view>
</view>
-->
<view>
...
...
pages/index/index.vue
View file @
d17e81f
...
...
@@ -115,7 +115,7 @@
<text
@
click=
"goMsgList"
class=
"more"
>
更多>
</text>
</
template
>
<view
class=
"msglist"
>
<view
class=
"msgitem"
v-for=
"n in messageList"
@
click=
"readMessage(n)"
>
<view
class=
"msgitem"
v-for=
"n in messageList"
:key=
"n.id"
@
click=
"readMessage(n)"
>
<text
class=
"dot"
:class=
"n.readFlag=='1'?'done':''"
></text>
<view
class=
"tt esp"
>
{{n.name}}
</view>
<view
class=
"date"
>
{{n.createTime}}
</view>
...
...
@@ -276,7 +276,7 @@
break
case
30005
:
d
.
name
=
'你有一条团体会员认证等待审批,点击去处理!'
d
.
path
=
'/pages/group/
pay
'
d
.
path
=
'/pages/group/
apply/applyList
'
break
case
30006
:
d
.
name
=
'你有一条段位成绩等待审批,点击去处理!'
...
...
pages/index/msgList.vue
View file @
d17e81f
<
template
>
<view>
<z-paging
ref=
"paging"
v-model=
"dataList"
@
query=
"queryList"
>
<z-paging
ref=
"paging"
v-model=
"dataList"
@
query=
"queryList"
emptyViewImg=
"/static/nodata.png"
>
<!-- z-paging默认铺满全屏,此时页面所有view都应放在z-paging标签内,否则会被盖住 -->
<!-- 需要固定在页面顶部的view请通过slot="top"插入,包括自定义的导航栏 -->
<uni-section
title=
"待办提醒"
padding
>
<view
class=
"msglist"
>
<view
class=
"msgitem"
v-for=
"n in dataList"
@
click=
"readMessage(n)"
>
<view
class=
"msgitem"
v-for=
"n in dataList"
:key=
"n.id"
@
click=
"readMessage(n)"
>
<text
class=
"dot"
:class=
"
{'done':n.readFlag=='1'}">
</text>
<view
class=
"tt esp"
>
{{
n
.
name
}}
</view>
<view
class=
"date"
>
{{
n
.
createTime
}}
</view>
...
...
@@ -19,69 +19,75 @@
<
script
setup
>
import
{
ref
}
from
'vue'
}
from
'vue'
import
*
as
api
from
'@/common/api.js'
;
const
dataList
=
ref
([])
const
dataList
=
ref
([])
const
paging
=
ref
(
null
)
const
current
=
ref
(
2
)
function
queryList
(
pageNum
,
pageSize
){
api
.
getMessage
({
pageNum
,
pageSize
}).
then
(
res
=>
{
for
(
var
d
of
res
.
rows
)
{
switch
(
d
.
type
)
{
case
30001
:
d
.
name
=
'你有一条会员缴费等待审批,点击去处理!'
d
.
path
=
'/member/audit'
break
case
30002
:
d
.
name
=
'你有一条级位考试等待审批,点击去处理!'
d
.
path
=
'/level/approval'
break
case
30003
:
d
.
name
=
'你有一条段位考试等待审批,点击去处理!'
d
.
path
=
'/rank/approval'
break
case
30004
:
d
.
name
=
'你有一条会员调动等待审批,点击去处理!'
d
.
path
=
'/member/mobillize'
break
case
30005
:
d
.
name
=
'你有一条团体会员认证等待审批,点击去处理!'
d
.
path
=
'/group/authentication'
break
case
30006
:
d
.
name
=
'你有一条段位成绩等待审批,点击去处理!'
d
.
path
=
'/rank/score/approval'
break
case
40001
:
d
.
name
=
'你有一条级位申请待提交,点击去处理!'
d
.
path
=
'/level/apply/modify/'
+
d
.
eventId
break
case
40002
:
d
.
name
=
'你有一条段位申请待提交,点击去处理!'
d
.
path
=
'/rank/apply/modify/'
+
d
.
eventId
break
case
40003
:
d
.
name
=
'你有一条成绩维护的数据待提交,点击去处理!'
d
.
path
=
'/rank/score/modify/'
+
d
.
eventId
break
case
50001
:
d
.
name
=
'你有一条新的个人会员申请,点击去处理!'
d
.
path
=
'/member/list'
break
}
}
paging
.
value
.
complete
(
res
.
rows
);
})
}
function
readMessage
(
item
)
{
uni
.
navigateTo
({
url
:
item
.
path
});
api
.
reader
({
id
:
item
.
id
}).
then
(
res
=>
{
item
.
readFlag
=
'1'
})
const
current
=
ref
(
2
)
function
queryList
(
pageNum
,
pageSize
)
{
api
.
getMessage
({
pageNum
,
pageSize
}).
then
(
res
=>
{
for
(
var
d
of
res
.
rows
)
{
switch
(
d
.
type
)
{
case
30001
:
d
.
name
=
'你有一条会员缴费等待审批,点击去处理!'
d
.
path
=
'/pages/personalVip/audit'
break
case
30002
:
d
.
name
=
'你有一条级位考试等待审批,点击去处理!'
d
.
path
=
'/pages/level/approval'
break
case
30003
:
d
.
name
=
'你有一条段位考试等待审批,点击去处理!'
d
.
path
=
'/pages/rank/approval'
break
case
30004
:
d
.
name
=
'你有一条会员调动等待审批,点击去处理!'
d
.
path
=
'/pages/personalVip/mobillize'
break
case
30005
:
d
.
name
=
'你有一条团体会员认证等待审批,点击去处理!'
d
.
path
=
'/pages/group/apply/applyList'
break
case
30006
:
d
.
name
=
'你有一条段位成绩等待审批,点击去处理!'
d
.
path
=
'/pages/rank/scoreApproval'
break
case
40001
:
d
.
name
=
'你有一条级位申请待提交,点击去处理!'
d
.
path
=
`/pages/level/apply?id=
${
d
.
eventId
}
`
break
case
40002
:
d
.
name
=
'你有一条段位申请待提交,点击去处理!'
d
.
path
=
`/pages/rank/apply?id=
${
d
.
eventId
}
`
break
case
40003
:
d
.
name
=
'你有一条成绩维护的数据待提交,点击去处理!'
d
.
path
=
`/pages/rank/score/modify?id=
${
d
.
eventId
}
`
break
case
50001
:
d
.
name
=
'你有一条新的个人会员申请,点击去处理!'
d
.
path
=
'/pages/personalVip/list'
break
}
}
paging
.
value
.
complete
(
res
.
rows
);
})
}
function
readMessage
(
item
)
{
uni
.
navigateTo
({
url
:
item
.
path
});
api
.
reader
({
id
:
item
.
id
}).
then
(
res
=>
{
item
.
readFlag
=
'1'
})
}
</
script
>
...
...
pages/level/addApply.vue
View file @
d17e81f
...
...
@@ -55,7 +55,7 @@
<view
class=
"w100"
>
<view
style=
"display: flex;"
>
<view
class=
"photobox"
>
<image
class=
"photo"
v-if=
"n.photo"
:src=
"
config.baseUrl_api+
n.photo"
<image
class=
"photo"
v-if=
"n.photo"
:src=
"n.photo"
mode=
'aspectFill'
></image>
<view
class=
"colorful"
v-else
>
{{
n
.
realName
?.
slice
(
0
,
1
)
}}
</view>
</view>
...
...
@@ -116,7 +116,7 @@
<image
class=
"icon"
v-else
src=
"@/static/member/dx.png"
/>
</view>
<view
class=
"photobox"
>
<image
class=
"photo"
v-if=
"n.photo"
:src=
"
config.baseUrl_api+
n.photo"
mode=
'aspectFill'
>
<image
class=
"photo"
v-if=
"n.photo"
:src=
"n.photo"
mode=
'aspectFill'
>
</image>
<view
class=
"colorful"
v-else
>
{{
n
.
name
.
slice
(
0
,
1
)
}}
</view>
</view>
...
...
@@ -404,7 +404,11 @@
api
.
chooseStudentsList
(
obj
).
then
(
response
=>
{
studentList
.
value
=
response
.
rows
for
(
var
s
of
studentList
.
value
)
{
s
.
checked
=
false
s
.
checked
=
false
if
(
s
.
photo
&&
s
.
photo
.
indexOf
(
'http'
)
==-
1
){
s
.
photo
=
config
.
baseUrl_api
+
s
.
photo
}
}
choseStudent
.
value
.
open
()
})
...
...
@@ -462,6 +466,9 @@
if
(
!
d
.
isPass
)
{
d
.
isPass
=
'1'
}
if
(
d
.
photo
&&
d
.
photo
.
indexOf
(
'http'
)
==-
1
){
d
.
photo
=
config
.
baseUrl_api
+
d
.
photo
}
})
...
...
pages/level/chooseExaminer.vue
View file @
d17e81f
...
...
@@ -7,9 +7,9 @@
</view>
<view
class=
"indexboxre"
>
<view
class=
"userlist"
>
<view
class=
"item"
v-for=
"
n in list
"
>
<view
class=
"item"
v-for=
"
(n,index) in list"
:key=
"index
"
>
<view
class=
"photobox"
>
<image
class=
"photo"
v-if=
"n.photo"
:src=
"
config.baseUrl_api+
n.photo"
mode=
'aspectFill'
></image>
<image
class=
"photo"
v-if=
"n.photo"
:src=
"n.photo"
mode=
'aspectFill'
></image>
<view
class=
"colorful"
v-else
>
{{
n
.
name
.
slice
(
1
,
2
)
}}
</view>
</view>
<view>
...
...
@@ -69,7 +69,6 @@
title
:
`查找中`
})
api
.
getCoachList
(
query
.
value
).
then
(
res
=>
{
uni
.
hideLoading
()
if
(
res
.
data
.
length
==
0
)
{
uni
.
showToast
({
title
:
'未查询到考官信息'
,
...
...
@@ -77,7 +76,13 @@
})
return
}
list
.
value
=
res
.
data
list
.
value
=
res
.
data
for
(
var
l
of
list
.
value
){
if
(
l
.
photo
&&
l
.
photo
.
indexOf
(
'http'
)
==-
1
){
l
.
photo
=
config
.
baseUrl_api
+
l
.
photo
}
}
uni
.
hideLoading
()
})
}
...
...
pages/personalVip/addMobilize.vue
View file @
d17e81f
<
template
>
<
template
>
<view
class=
"hasfixedbottom"
>
<view
class=
"nolineform"
>
<uni-forms
:border=
"true"
:modelValue=
"baseFormData"
label-width=
"120"
>
<uni-forms-item
label=
"姓名"
required
name=
"name"
>
<uni-easyinput
:styles=
"inputstyle"
:clearable=
'false'
:placeholderStyle=
"placeholderStyle"
v-model=
"baseFormData.name"
placeholder=
"请输入姓名"
/>
</uni-forms-item>
<uni-forms-item
label=
"证件类型"
required
name=
"idcType"
>
<uni-data-select
v-model=
"baseFormData.idcType"
:localdata=
"idcTypeList"
:clear=
"false"
></uni-data-select>
</uni-forms-item>
<uni-forms-item
label=
"证件号码"
required
name=
"idcCode"
>
<uni-easyinput
:styles=
"inputstyle"
:clearable=
'false'
:placeholderStyle=
"placeholderStyle"
v-model=
"baseFormData.idcCode"
placeholder=
"请输入证件号码"
/>
</uni-forms-item>
</uni-forms>
<view
class=
"button-group"
>
<button
type=
"primary"
size=
"mini"
@
click=
"selectMember"
>
查询
</button>
<button
type=
"primary"
size=
"mini"
:disabled=
"flag"
@
click=
"submitForm"
>
添加
</button>
<view
class=
"nolineform"
>
<uni-forms
:border=
"true"
:modelValue=
"baseFormData"
label-width=
"120"
>
<uni-forms-item
label=
"姓名"
required
name=
"name"
>
<uni-easyinput
:styles=
"inputstyle"
:clearable=
'false'
:placeholderStyle=
"placeholderStyle"
v-model=
"baseFormData.name"
placeholder=
"请输入姓名"
/>
</uni-forms-item>
<uni-forms-item
label=
"证件类型"
required
name=
"idcType"
>
<uni-data-select
v-model=
"baseFormData.idcType"
:localdata=
"idcTypeList"
:clear=
"false"
></uni-data-select>
</uni-forms-item>
<uni-forms-item
label=
"证件号码"
required
name=
"idcCode"
>
<uni-easyinput
:styles=
"inputstyle"
:clearable=
'false'
:placeholderStyle=
"placeholderStyle"
v-model=
"baseFormData.idcCode"
placeholder=
"请输入证件号码"
/>
</uni-forms-item>
</uni-forms>
<view
class=
"button-group"
>
<button
type=
"primary"
size=
"mini"
@
click=
"selectMember"
>
查询
</button>
<button
type=
"primary"
size=
"mini"
:disabled=
"flag"
@
click=
"submitForm"
>
添加
</button>
</view>
</view>
</view
>
<view
class=
"wBox
"
>
<view
class=
"info"
>
<
view>
人数合计
<text
class=
"text-danger"
>
{{
total
}}
</text>
人
<
/view>
</view
>
<uni-swipe-action
>
<uni-swipe-action-item
class=
"personitem"
v-for=
"n in list
"
>
<view
class=
"content-box"
@
click=
"handleInfo(n)
"
>
<view
class=
"flex
box"
>
<view
class=
"photobox"
>
<
view
class=
"colorful"
>
{{
n
.
perName
?.
slice
(
0
,
1
)
}}
<
/view>
</
view>
<view>
{{
n
.
perName
}}
<view
class=
"date"
>
{{
idcTypeList
[
n
.
perIdcType
].
text
}}
:
{{
n
.
perIdcCode
}}
<view
class=
"wBox"
>
<view
class=
"info
"
>
<view>
人数合计
<text
class=
"text-danger"
>
{{
total
}}
</text>
人
</view
>
</view>
<uni-swipe-action
>
<uni-swipe-action-item
class=
"personitem"
v-for=
"n in list"
>
<view
class=
"content-box"
@
click=
"handleInfo(n)
"
>
<view
class=
"flexbox
"
>
<view
class=
"photo
box"
>
<view
class=
"colorful"
>
{{
n
.
perName
?.
slice
(
0
,
1
)
}}
</view
>
</view>
<
view>
{{
n
.
perName
}}
<view
class=
"date"
>
{{
idcTypeList
[
n
.
perIdcType
].
text
}}
:
{{
n
.
perIdcCode
}}
</view>
</view>
</view>
</view>
</view>
<template
v-slot:right
>
<view
class=
"slot-button"
>
<view
class=
"danger-button"
@
click=
"handleDelete(n)"
>
<uni-icons
type=
"trash"
color=
"#fff"
size=
"20"
></uni-icons>
<text
class=
"slot-button-text"
>
删除
</text>
</view>
</view>
</
template
>
</uni-swipe-action-item>
</uni-swipe-action>
</view>
</view>
<view
class=
"fixedBottom"
>
<template
v-slot:right
>
<view
class=
"slot-button"
>
<view
class=
"danger-button"
@
click=
"handleDelete(n)"
>
<uni-icons
type=
"trash"
color=
"#fff"
size=
"20"
></uni-icons>
<text
class=
"slot-button-text"
>
删除
</text>
</view>
</view>
</
template
>
</uni-swipe-action-item>
</uni-swipe-action>
</view>
</view>
<view
class=
"fixedBottom"
>
<button
class=
"btn-red"
:disabled=
"list?.length <= 0"
@
click=
"commitFN"
>
保存并提交
</button>
</view>
</view>
</template>
<
script
setup
>
...
...
@@ -65,14 +65,14 @@
}
from
'vue'
import
{
onLoad
}
from
'@dcloudio/uni-app'
import
*
as
api
from
'@/common/api.js'
}
from
'@dcloudio/uni-app'
import
*
as
api
from
'@/common/api.js'
const
inputstyle
=
ref
({
borderColor
:
'#fff'
,
fontSize
:
'30rpx'
})
const
placeholderStyle
=
ref
(
'text-align: right;font-size:30rpx'
)
})
const
placeholderStyle
=
ref
(
'text-align: right;font-size:30rpx'
)
const
idcTypeList
=
ref
([{
value
:
'0'
,
text
:
"身份证"
...
...
@@ -89,7 +89,7 @@
const
baseFormData
=
ref
({
idcType
:
'0'
})
const
list
=
ref
([])
const
list
=
ref
([])
const
total
=
ref
(
0
)
const
flag
=
ref
(
true
)
const
queryParams
=
ref
({
...
...
@@ -168,15 +168,16 @@
list
.
value
=
res
.
rows
total
.
value
=
res
.
total
})
}
function
commitFN
()
{
if
(
baseFormData
.
value
.
rangeId
==
-
1
)
return
api
.
commit
([
baseFormData
.
value
.
rangeId
]
||
[
queryParams
.
value
.
rangeId
]).
then
(
res
=>
{
uni
.
showToast
({
title
:
'提交成功!'
})
uni
.
navigateBack
()
})
}
function
commitFN
()
{
if
(
baseFormData
.
value
.
rangeId
==
-
1
)
return
api
.
commit
([
baseFormData
.
value
.
rangeId
]
||
[
queryParams
.
value
.
rangeId
]).
then
(
res
=>
{
uni
.
showToast
({
title
:
'提交成功!'
})
uni
.
navigateBack
()
})
}
</
script
>
...
...
pages/personalVip/auditDetail.vue
View file @
d17e81f
...
...
@@ -10,7 +10,7 @@
<view
class=
"userlist"
>
<view
class=
"item"
v-for=
"n in list"
>
<view
class=
"photobox"
>
<image
class=
"photo"
v-if=
"n.photo"
:src=
"
config.baseUrl_api+
n.photo"
mode=
'aspectFill'
></image>
<image
class=
"photo"
v-if=
"n.photo"
:src=
"n.photo"
mode=
'aspectFill'
></image>
<view
class=
"colorful"
v-else
>
{{
n
.
personName
?.
slice
(
0
,
1
)
}}
</view>
</view>
<view>
...
...
@@ -116,6 +116,11 @@
list
.
value
=
form
.
value
.
content
.
personList
for
(
var
n
of
list
.
value
)
{
totalYear
.
value
+=
n
.
payYear
if
(
n
.
photo
&&
n
.
photo
.
indexOf
(
'http'
)
==-
1
){
n
.
photo
=
config
.
baseUrl_api
+
n
.
photo
}
}
}
...
...
pages/personalVip/list.vue
View file @
d17e81f
...
...
@@ -12,7 +12,7 @@
<view
class=
"content-box"
@
click=
"handleInfo(n)"
>
<view
class=
"flexbox"
>
<view
class=
"photobox"
>
<image
class=
"photo"
v-if=
"n.photo"
:src=
"
config.baseUrl_api+
n.photo"
mode=
'aspectFill'
></image>
<image
class=
"photo"
v-if=
"n.photo"
:src=
"n.photo"
mode=
'aspectFill'
></image>
<view
class=
"colorful"
v-else
>
{{
n
.
name
.
slice
(
0
,
1
)
}}
</view>
</view>
<view>
...
...
@@ -91,14 +91,23 @@
})
function
getList
()
{
uni
.
showLoading
({
title
:
'加载中'
})
if
(
app
.
globalData
.
userType
==
'4'
)
{
// 道馆
query
.
value
.
multiDeptFlag
=
null
query
.
value
.
showMyPersonFlag
=
1
}
api
.
selectPageList
(
query
.
value
).
then
(
res
=>
{
list
.
value
=
res
.
rows
total
.
value
=
res
.
total
list
.
value
=
res
.
rows
for
(
var
l
of
list
.
value
){
if
(
l
.
photo
&&
l
.
photo
.
indexOf
(
'http'
)
==-
1
){
l
.
photo
=
config
.
baseUrl_api
+
l
.
photo
}
}
total
.
value
=
res
.
total
uni
.
hideLoading
()
})
}
...
...
pages/personalVip/paymentDetail.vue
View file @
d17e81f
...
...
@@ -2,14 +2,14 @@
<view>
<view
class=
"wBox"
>
<view
class=
"tt"
>
{{
form
.
paymentName
}}
</view>
<view
class=
"info"
>
<view>
共
<text>
{{
list
.
length
}}
</text>
人
</view>
<view
class=
"info"
>
<view>
共
<text>
{{
list
.
length
}}
</text>
人
</view>
</view>
<!-- 成员 -->
<view
class=
"userlist"
>
<view
class=
"item"
v-for=
"n in list"
>
<view
class=
"photobox"
>
<image
class=
"photo"
v-if=
"n.photo"
:src=
"
config.baseUrl_api+
n.photo"
mode=
'aspectFill'
></image>
<image
class=
"photo"
v-if=
"n.photo"
:src=
"n.photo"
mode=
'aspectFill'
></image>
<view
class=
"colorful"
v-else
>
{{
n
.
personName
?.
slice
(
0
,
1
)
}}
</view>
</view>
<view>
...
...
@@ -36,9 +36,9 @@
<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
class=
"deptName"
>
{{
n
.
auditDeptName
||
n
.
auditBy
}}
</view>
<view>
备注:
{{
n
.
auditMsg
||
'/'
}}
</view>
</view>
</view>
...
...
@@ -66,17 +66,22 @@
const
feelList
=
ref
([])
const
total
=
ref
(
0
)
onLoad
((
option
)
=>
{
if
(
'form'
in
option
)
{
form
.
value
=
JSON
.
parse
(
decodeURIComponent
(
option
.
form
))
if
(
'form'
in
option
)
{
form
.
value
=
JSON
.
parse
(
decodeURIComponent
(
option
.
form
))
}
getFillList
(
form
.
value
.
rangId
)
getFillList
(
form
.
value
.
rangId
)
getPersons
()
})
function
getPersons
()
{
queryParams
.
value
.
rangeId
=
form
.
value
.
rangId
function
getPersons
()
{
queryParams
.
value
.
rangeId
=
form
.
value
.
rangId
api
.
addSelectPageList
(
queryParams
.
value
).
then
(
res
=>
{
list
.
value
=
res
.
pageData
.
rows
for
(
var
l
of
list
.
value
)
{
if
(
l
.
photo
&&
l
.
photo
.
indexOf
(
'http'
)
==
-
1
)
{
l
.
photo
=
config
.
baseUrl_api
+
l
.
photo
}
}
})
}
...
...
@@ -88,34 +93,58 @@
</
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
;
.date{
margin-top
:
10
rpx
;}
.name
{
text{
margin-left
:
1em
;
color
:
#4C5359
;
font-size
:
26
rpx
;}
}
.nian
{
position
:
absolute
;
right
:
0
;
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
;}
}
}
.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
;
.date
{
margin-top
:
10
rpx
;
}
.name
{
text
{
margin-left
:
1em
;
color
:
#4C5359
;
font-size
:
26
rpx
;
}
}
.nian
{
position
:
absolute
;
right
:
0
;
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
;
}
}
}
</
style
>
\ No newline at end of file
...
...
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