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
bbc048f7
authored
2026-04-17 15:05:28 +0800
by
lttnew
Browse Files
Options
Browse Files
Tag
Download
Plain Diff
Merge branch 'master' of
https://code.itechtop.cn/yangyang/ztx_wx_gzt
2 parents
322dceef
b9272f18
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
163 additions
and
130 deletions
common/api.js
config.js
level/ztx/cert.vue
pages/index/home.vue
personal/order.vue
personal/sucPay.vue
personalVip/changeLevelAudit.vue
common/api.js
View file @
bbc048f
...
...
@@ -937,6 +937,7 @@ export function auditJi(data) {
params
:
data
})
}
export
function
auditDuanExam
(
data
)
{
// 基础 URL
let
url
=
`/exam/info/auditDuanExam/
${
data
.
ids
}
?flag=
${
data
.
flag
}
&ids=
${
data
.
ids
}
`
;
...
...
@@ -952,6 +953,7 @@ export function auditDuanExam(data) {
params
:
data
})
}
export
function
auditDuanScore
(
data
)
{
// 基础 URL
let
url
=
`/exam/info/auditDuanScore/
${
data
.
ids
}
?flag=
${
data
.
flag
}
&ids=
${
data
.
ids
}
`
;
...
...
@@ -1367,6 +1369,13 @@ export function changeLevelAudit(data) {
})
}
export
function
changeLevelShenAudit
(
data
)
{
return
request
({
url
:
`/person/levelModRange/shenAudit/
${
data
.
ids
}
?flag=
${
data
.
flag
}
&reason=
${
data
.
reason
}
`
,
method
:
'post'
})
}
export
function
changeLevelWithDraw
(
data
)
{
return
request
({
url
:
`/person/levelModRange/withDraw/
${
data
}
`
,
...
...
config.js
View file @
bbc048f
// dev
const
baseUrl_api
=
'http://192.168.1.137:8787'
//
const baseUrl_api = 'http://tk001.wxjylt.com/stage-api'
//
const baseUrl_api = 'http://192.168.1.137:8787'
const
baseUrl_api
=
'http://tk001.wxjylt.com/stage-api'
const
loginImage_api
=
'http://tk001.wxjylt.com/stage-api'
const
payUrl
=
'https://wxpay.cmbc.com.cn/mobilePlatform/appserver/lcbpPay.do'
...
...
level/ztx/cert.vue
View file @
bbc048f
...
...
@@ -94,11 +94,11 @@ onLoad((option) => {
})
}
})
onShow
(()
=>
{
if
(
app
.
globalData
.
isLogin
)
{
init
()
}
else
{
app
.
firstLoadCallback
=
()
=>
{
init
()
};
...
...
pages/index/home.vue
View file @
bbc048f
...
...
@@ -58,6 +58,10 @@
<image
:src=
"config.baseUrl_api+'/fs/static/icon/3.png'"
/>
级位考试申请
</view>
<view
@
click=
"goPath('/personalVip/changeLevel')"
>
<image
:src=
"config.baseUrl_api+'/fs/static/icon/26.png'"
/>
级位变更
</view>
</view>
<view
v-if=
"userType=='3'"
class=
"girdBox"
>
<view
@
click=
"goPath('/group/apply/applyList')"
>
...
...
@@ -133,10 +137,16 @@
<!--
<view
@
click=
"goPath('/pages/exam/payment?type=1')"
>
<image
:src=
"config.baseUrl_api+'/fs/static/icon/10.png'"
/>
考试缴费单
</view>
-->
<view
@
click=
"goPath('/personalVip/changeLevel')"
>
<!--
<view
@
click=
"goPath('/personalVip/changeLevel')"
>
-->
<!--
<image
:src=
"config.baseUrl_api+'/fs/static/icon/26.png'"
/>
-->
<!-- 级位变更-->
<!--
</view>
-->
<view
@
click=
"goPath('/personalVip/changeLevelAudit')"
>
<image
:src=
"config.baseUrl_api+'/fs/static/icon/26.png'"
/>
级位变更
变更审核
</view>
<view
@
click=
"goPath('/level/auditRecord2')"
>
<image
:src=
"config.baseUrl_api+'/fs/static/icon/17.png'"
/>
审核记录
...
...
personal/order.vue
View file @
bbc048f
...
...
@@ -22,7 +22,7 @@
<!--
<image
v-if=
"item.payTime"
:src=
"config.baseUrl_api + '/fs/static/calendar@2x.png'"
mode=
"widthFix"
--
>
<!-- style="width:30rpx;height:30rpx;"/> -->
<!--
<text
v-if=
"item.payTime"
class=
"date-text"
>
{{
item
.
payTime
}}
</text>
-->
<text
class=
"value text-primary"
>
{{
item
.
wfCode
||
'——'
}}
</text>
<text
class=
"value text-primary"
>
{{
item
.
wfCode
||
'——'
}}
</text>
</view>
<view
:class=
"
{
...
...
@@ -124,7 +124,7 @@
<
script
setup
>
import
{
ref
,
reactive
,
onMounted
,
computed
}
from
'vue'
;
import
{
onReachBottom
}
from
'@dcloudio/uni-app'
import
{
useUserStore
}
from
"
..
/store/modules/user"
;
import
{
useUserStore
}
from
"
@
/store/modules/user"
;
import
*
as
api
from
'@/common/api.js'
import
config
from
'@/config.js'
...
...
@@ -242,7 +242,7 @@ const confirmDel = async () => {
uni
.
showToast
({
title
:
'删除成功'
,
icon
:
'success'
});
pageNum
.
value
=
1
;
list
.
value
=
[];
initData
();
await
initData
();
closeDelPopup
();
}
catch
(
e
)
{
uni
.
showToast
({
title
:
'删除失败'
,
icon
:
'error'
});
...
...
@@ -288,7 +288,7 @@ const confirmCancel = async () => {
uni
.
showToast
({
title
:
'取消成功'
,
icon
:
'success'
});
pageNum
.
value
=
1
;
list
.
value
=
[];
initData
();
await
initData
();
closeCancelPopup
();
}
catch
(
e
)
{
uni
.
showToast
({
title
:
'取消失败'
,
icon
:
'error'
});
...
...
personal/sucPay.vue
View file @
bbc048f
...
...
@@ -15,7 +15,7 @@
<view
class=
"info-card"
>
<view
class=
"info-item"
>
<text
class=
"label"
>
交易流水号
</text>
<text
class=
"value"
>
{{
orderInfo
.
tradeNo
||
'--'
}}
</text>
<text
class=
"value"
>
{{
orderInfo
.
tradeNo
||
'--'
}}
</text>
</view>
<view
class=
"info-item"
>
<text
class=
"label"
>
商户名称
</text>
...
...
@@ -35,29 +35,30 @@
</
template
>
<
script
setup
>
import
{
import
{
ref
}
from
'vue'
import
{
}
from
'vue'
import
{
onLoad
}
from
'@dcloudio/uni-app'
import
to
from
'await-to-js'
import
*
as
api
from
'@/common/api.js'
}
from
'@dcloudio/uni-app'
import
to
from
'await-to-js'
import
*
as
api
from
'@/common/api.js'
const
orderInfo
=
ref
({
const
orderInfo
=
ref
({
id
:
''
,
tradeNo
:
''
,
merchantName
:
'中国跆拳道协会'
,
price
:
''
})
})
const
goBack
=
()
=>
{
uni
.
reLaunch
({
url
:
'/login/login'
const
goBack
=
()
=>
{
uni
.
redirectTo
({
// url: '/login/login'
url
:
'/personal/order'
})
}
}
onLoad
(
async
(
option
)
=>
{
onLoad
(
async
(
option
)
=>
{
if
(
option
.
orderId
)
{
const
[
err
,
res
]
=
await
to
(
api
.
getOrderInfo
(
option
.
orderId
))
if
(
!
err
&&
res
.
data
)
{
...
...
@@ -66,12 +67,12 @@
orderInfo
.
value
.
id
=
option
.
orderId
}
}
})
})
</
script
>
<
style
scoped
>
/* 全局容器 */
.success-container
{
/* 全局容器 */
.success-container
{
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
...
...
@@ -79,16 +80,16 @@
min-height
:
100vh
;
background-color
:
#f8f9fa
;
box-sizing
:
border-box
;
}
}
/* 成功图标容器 */
.success-icon
{
/* 成功图标容器 */
.success-icon
{
margin-bottom
:
40
rpx
;
animation
:
fadeIn
0.6s
ease-out
;
}
}
/* 渐变圆形背景 */
.icon-circle
{
/* 渐变圆形背景 */
.icon-circle
{
width
:
180
rpx
;
height
:
180
rpx
;
border-radius
:
50%
;
...
...
@@ -100,34 +101,34 @@
box-shadow
:
0
8
rpx
30
rpx
rgba
(
6
,
193
,
174
,
0.3
);
/* 轻微上浮动效 */
animation
:
scaleIn
0.8s
ease-out
;
}
}
/* 对勾图标 */
.check-icon
{
/* 对勾图标 */
.check-icon
{
font-size
:
90
rpx
;
color
:
#ffffff
;
font-weight
:
bold
;
}
}
/* 支付成功标题 */
.success-title
{
/* 支付成功标题 */
.success-title
{
font-size
:
48
rpx
;
font-weight
:
700
;
color
:
#333333
;
margin-bottom
:
12
rpx
;
animation
:
slideUp
0.6s
ease-out
;
}
}
/* 副标题 */
.success-subtitle
{
/* 副标题 */
.success-subtitle
{
font-size
:
28
rpx
;
color
:
#666666
;
margin-bottom
:
60
rpx
;
animation
:
slideUp
0.8s
ease-out
;
}
}
/* 订单信息卡片 */
.info-card
{
/* 订单信息卡片 */
.info-card
{
width
:
100%
;
background
:
#ffffff
;
border-radius
:
20
rpx
;
...
...
@@ -135,55 +136,55 @@
box-shadow
:
0
6
rpx
20
rpx
rgba
(
0
,
0
,
0
,
0.05
);
margin-bottom
:
80
rpx
;
animation
:
fadeIn
1s
ease-out
;
}
}
/* 单个信息项 */
.info-item
{
/* 单个信息项 */
.info-item
{
display
:
flex
;
justify-content
:
space-between
;
align-items
:
center
;
padding
:
24
rpx
0
;
border-bottom
:
1
rpx
solid
#f5f5f5
;
}
}
/* 最后一项去掉下划线 */
.info-item
:last-child
{
/* 最后一项去掉下划线 */
.info-item
:last-child
{
border-bottom
:
none
;
}
}
/* 标签样式 */
.label
{
/* 标签样式 */
.label
{
font-size
:
32
rpx
;
color
:
#666666
;
white-space
:
nowrap
;
margin-right
:
20
rpx
;
flex-shrink
:
0
;
}
}
/* 值样式 */
.value
{
/* 值样式 */
.value
{
font-size
:
32
rpx
;
color
:
#333333
;
text-align
:
right
;
word-break
:
break-all
;
word-wrap
:
break-word
;
}
}
/* 金额特殊样式 */
.amount
{
/* 金额特殊样式 */
.amount
{
color
:
#cd1e27
;
font-weight
:
600
;
}
}
/* 确定按钮区域 */
.confirm-btn-area
{
/* 确定按钮区域 */
.confirm-btn-area
{
width
:
100%
;
padding
:
0
20
rpx
;
box-sizing
:
border-box
;
}
}
/* 确定按钮(渐变+动效) */
.confirm-btn
{
/* 确定按钮(渐变+动效) */
.confirm-btn
{
width
:
100%
;
height
:
90
rpx
;
line-height
:
90
rpx
;
...
...
@@ -198,20 +199,20 @@
/* 禁止默认样式 */
position
:
relative
;
overflow
:
hidden
;
}
}
/* 按钮点击反馈 */
.confirm-btn
::after
{
/* 按钮点击反馈 */
.confirm-btn
::after
{
border
:
none
;
}
}
.confirm-btn
:active
{
.confirm-btn
:active
{
transform
:
scale
(
0.98
);
box-shadow
:
0
4
rpx
10
rpx
rgba
(
6
,
193
,
174
,
0.2
);
}
}
/* 动画定义 */
@keyframes
fadeIn
{
/* 动画定义 */
@keyframes
fadeIn
{
0
%
{
opacity
:
0
;
}
...
...
@@ -219,9 +220,9 @@
100
%
{
opacity
:
1
;
}
}
}
@keyframes
scaleIn
{
@keyframes
scaleIn
{
0
%
{
transform
:
scale
(
0
);
}
...
...
@@ -233,9 +234,9 @@
100
%
{
transform
:
scale
(
1
);
}
}
}
@keyframes
slideUp
{
@keyframes
slideUp
{
0
%
{
opacity
:
0
;
transform
:
translateY
(
30
rpx
);
...
...
@@ -245,5 +246,5 @@
opacity
:
1
;
transform
:
translateY
(
0
);
}
}
}
</
style
>
...
...
personalVip/changeLevelAudit.vue
View file @
bbc048f
<
template
>
<view>
<view
class=
"searchbar"
>
<uni-easyinput
placeholderStyle=
"font-size:30rpx"
:input-border=
"false"
prefixIcon=
"search
"
v-model=
"queryParams.code"
placeholder=
"搜索变更单号
"
@
blur=
"getList"
@
clear=
"getList"
>
<uni-easyinput
v-model=
"queryParams.code"
:input-border=
"false"
placeholder=
"搜索变更单号
"
placeholderStyle=
"font-size:30rpx"
prefixIcon=
"search
"
@
blur=
"getList"
@
clear=
"getList"
>
</uni-easyinput>
</view>
<view
class=
"vipData"
>
<view>
级位变更人数合计:
<text>
{{
statistical
.
personCount
}}
</text>
人
</view>
<view>
级位变更人数合计:
<text>
{{
statistical
.
personCount
}}
</text>
人
</view>
</view>
<view
class=
"appList"
>
<view
class=
"appItem"
v-for=
"(item,index) in list"
:key=
"index
"
>
<view
v-for=
"(item,index) in list"
:key=
"index"
class=
"appItem
"
>
<view
class=
"status"
@
click=
"goDetail(item)"
>
<view>
<text
v-if=
"item.status == 0"
class=
"text-warning"
>
待提交
</text>
<text
v-if=
"item.status == 1"
class=
"text-primary"
>
审核中
</text>
<text
v-if=
"item.status == 2"
class=
"text-success"
>
审核通过
</text>
<text
v-if=
"item.status == 3"
class=
"text-danger"
>
审核拒绝
</text>
<text
v-if=
"item.status == 4"
class=
"text-warning"
>
已撤回
</text>
<text
v-if=
"userType==1?item.status == 1:item.shenAuditStatus==0"
class=
"text-primary"
>
审核中
</text>
<text
v-if=
"userType==1?item.status == 2:item.shenAuditStatus==1"
class=
"text-success"
>
审核通过
</text>
<text
v-if=
"userType==1?item.status == 3:item.shenAuditStatus==2"
class=
"text-danger"
>
审核拒绝
</text>
<text
v-if=
"userType==1?item.status == 4:item.shenAuditStatus==3"
class=
"text-warning"
>
已撤回
</text>
</view>
</view>
<view
class=
"name mt0"
@
click=
"goDetail(item)"
>
<text
class=
"text-primary"
>
{{
item
.
code
}}
</text>
-
{{
item
.
shenMemName
}}
<text
class=
"text-primary"
>
{{
item
.
code
}}
</text>
-
{{
item
.
shenMemName
}}
</view>
<view
class=
"flexbox"
@
click=
"goDetail(item)"
>
<view>
变更人数
<view>
<text
class=
"text-danger"
>
{{
item
.
count
}}
人
</text>
<text
class=
"text-danger"
>
{{
item
.
count
}}
人
</text>
</view>
</view>
<view
class=
"w50"
>
提交时间
<view>
{{
item
.
commitTime
||
'--'
}}
</view>
<view>
{{
item
.
commitTime
||
'--'
}}
</view>
</view>
</view>
<view
class=
"func"
v-if=
"item.status==1
"
>
<view
v-if=
"userType==1?item.status == 1:item.shenAuditStatus==0 "
class=
"func
"
>
<button
@
click=
"audit(item.id,'0')"
>
拒绝
</button>
<button
@
click=
"audit(item.id,'1')"
>
同意
</button>
</view>
<view
class=
"func"
v-if=
"item.status==2"
>
<button
@
click=
"handleDelete(item)"
>
撤回
</button
>
</view
>
<!--
<view
v-if=
"item.status==2"
class=
"func"
>
--
>
<!--
<button
@
click=
"handleDelete(item)"
>
撤回
</button>
--
>
<!--
</view>
--
>
</view>
</view>
<view
class=
"nodata"
v-if=
"list.length==0
"
>
<image
mode=
"aspectFit"
:src=
"config.baseUrl_api + '/fs/static/nodata.png'
"
></image>
<view
v-if=
"list.length==0"
class=
"nodata
"
>
<image
:src=
"config.baseUrl_api + '/fs/static/nodata.png'"
mode=
"aspectFit
"
></image>
<text>
暂无数据
</text>
</view>
</view>
</
template
>
<
script
setup
>
import
*
as
api
from
'@/common/api.js'
import
config
from
'@/config.js'
import
{
import
*
as
api
from
'@/common/api.js'
import
config
from
'@/config.js'
import
{
ref
}
from
'vue'
import
{
}
from
'vue'
import
{
onLoad
,
onShow
}
from
'@dcloudio/uni-app'
const
app
=
getApp
();
const
queryParams
=
ref
({
}
from
'@dcloudio/uni-app'
import
{
changeLevelShenAudit
}
from
"@/common/api.js"
;
const
app
=
getApp
();
const
queryParams
=
ref
({
code
:
''
,
ztxList
:
0
})
const
list
=
ref
([])
const
statistical
=
ref
({
// shenAuditStatus
: 0
})
const
list
=
ref
([])
const
statistical
=
ref
({
personCount
:
0
})
const
total
=
ref
(
0
)
onShow
(()
=>
{
})
const
total
=
ref
(
0
)
const
userType
=
ref
(
2
)
onShow
(()
=>
{
userType
.
value
=
app
.
globalData
.
userType
getList
()
})
})
function
getList
()
{
function
getList
()
{
uni
.
showLoading
({
title
:
'加载中'
})
...
...
@@ -88,20 +97,20 @@
total
.
value
=
res
.
total
uni
.
hideLoading
()
})
}
}
function
goDetail
(
item
)
{
function
goDetail
(
item
)
{
let
path
=
`/personalVip/changeLevelDetail?rangeId=
${
item
.
id
}
`
uni
.
navigateTo
({
url
:
path
});
}
}
function
handleDelete
(
row
)
{
function
handleDelete
(
row
)
{
uni
.
showModal
({
title
:
'提示'
,
content
:
`确定撤回吗`
,
success
:
function
(
res
)
{
success
:
function
(
res
)
{
if
(
res
.
confirm
)
{
api
.
changeLevelWithDraw
([
row
.
id
]).
then
(
Response
=>
{
uni
.
showToast
({
...
...
@@ -113,16 +122,16 @@
}
}
})
}
}
function
audit
(
id
,
flag
)
{
function
audit
(
id
,
flag
)
{
if
(
flag
==
0
)
{
// 拒绝
// 弹出框填写理由
uni
.
showModal
({
title
:
'请输入拒绝理由'
,
editable
:
true
,
success
:
function
(
res
)
{
success
:
function
(
res
)
{
if
(
res
.
confirm
)
{
if
(
!
res
.
content
)
{
uni
.
showToast
({
...
...
@@ -140,17 +149,17 @@
uni
.
showModal
({
title
:
'提示'
,
content
:
`确定审批通过吗`
,
success
:
function
(
res
)
{
success
:
function
(
res
)
{
if
(
res
.
confirm
)
{
doApproval
(
id
,
flag
)
}
}
})
}
}
}
function
doApproval
(
id
,
flag
,
reason
)
{
var
obj
=
{
async
function
doApproval
(
id
,
flag
,
reason
)
{
let
obj
=
{
flag
:
flag
,
reason
:
reason
||
''
,
ids
:
[
id
]
...
...
@@ -159,19 +168,23 @@
uni
.
showLoading
({
title
:
'加载中'
})
api
.
changeLevelAudit
(
obj
).
then
((
res
)
=>
{
if
(
userType
.
value
==
1
)
{
await
api
.
changeLevelAudit
(
obj
)
}
else
{
await
api
.
changeLevelShenAudit
(
obj
)
}
uni
.
hideLoading
()
uni
.
showToast
({
title
:
'操作成功'
,
icon
:
'none'
})
getList
()
})
}
}
</
script
>
<
style
lang=
'scss'
scoped
>
.searchbar
{
.searchbar
{
display
:
flex
;
align-items
:
center
;
padding
:
25
rpx
;
...
...
@@ -194,5 +207,5 @@
font-size
:
30
rpx
;
padding
:
10
rpx
20
rpx
;
}
}
}
</
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