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
b9272f18
authored
2026-04-17 13:40:44 +0800
by
张猛
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
级位变更
1 parent
07d82489
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
225 additions
and
193 deletions
common/api.js
config.js
pages/index/home.vue
personalVip/changeLevelAudit.vue
common/api.js
View file @
b9272f1
...
...
@@ -930,13 +930,14 @@ export function auditJi(data) {
if
(
data
.
reason
&&
data
.
reason
.
trim
()
!==
''
)
{
url
+=
`&reason=
${
data
.
reason
}
`
;
}
return
request
({
url
:
url
,
method
:
'post'
,
params
:
data
})
}
export
function
auditDuanExam
(
data
)
{
// 基础 URL
let
url
=
`/exam/info/auditDuanExam/
${
data
.
ids
}
?flag=
${
data
.
flag
}
&ids=
${
data
.
ids
}
`
;
...
...
@@ -945,13 +946,14 @@ export function auditDuanExam(data) {
if
(
data
.
reason
&&
data
.
reason
.
trim
()
!==
''
)
{
url
+=
`&reason=
${
data
.
reason
}
`
;
}
return
request
({
url
:
url
,
method
:
'post'
,
params
:
data
})
}
export
function
auditDuanScore
(
data
)
{
// 基础 URL
let
url
=
`/exam/info/auditDuanScore/
${
data
.
ids
}
?flag=
${
data
.
flag
}
&ids=
${
data
.
ids
}
`
;
...
...
@@ -960,7 +962,7 @@ export function auditDuanScore(data) {
if
(
data
.
reason
&&
data
.
reason
.
trim
()
!==
''
)
{
url
+=
`&reason=
${
data
.
reason
}
`
;
}
return
request
({
url
:
url
,
method
:
'post'
,
...
...
@@ -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 @
b9272f1
// 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'
...
...
pages/index/home.vue
View file @
b9272f1
...
...
@@ -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'"
/>
审核记录
...
...
personalVip/changeLevelAudit.vue
View file @
b9272f1
<
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>
</view>
<view
class=
"vipData"
>
<view>
级位变更人数合计:
<text>
{{
statistical
.
personCount
}}
</text>
人
</view>
</view>
<view
class=
"appList"
>
<view
class=
"appItem"
v-for=
"(item,index) in list"
:key=
"index"
>
<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>
</view>
</view>
<view
class=
"name mt0"
@
click=
"goDetail(item)"
>
<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>
</view>
</view>
<view
class=
"w50"
>
提交时间
<view>
{{
item
.
commitTime
||
'--'
}}
</view>
</view>
</view>
<view
class=
"func"
v-if=
"item.status==1"
>
<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>
</view>
<view
class=
"nodata"
v-if=
"list.length==0"
>
<image
mode=
"aspectFit"
:src=
"config.baseUrl_api + '/fs/static/nodata.png'"
></image>
<text>
暂无数据
</text>
</view>
</view>
<view>
<view
class=
"searchbar"
>
<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>
<view
class=
"appList"
>
<view
v-for=
"(item,index) in list"
:key=
"index"
class=
"appItem"
>
<view
class=
"status"
@
click=
"goDetail(item)"
>
<view>
<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
}}
</view>
<view
class=
"flexbox"
@
click=
"goDetail(item)"
>
<view>
变更人数
<view>
<text
class=
"text-danger"
>
{{
item
.
count
}}
人
</text>
</view>
</view>
<view
class=
"w50"
>
提交时间
<view>
{{
item
.
commitTime
||
'--'
}}
</view>
</view>
</view>
<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
v-if=
"item.status==2"
class=
"func"
>
-->
<!--
<button
@
click=
"handleDelete(item)"
>
撤回
</button>
-->
<!--
</view>
-->
</view>
</view>
<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
{
ref
}
from
'vue'
import
{
onLoad
,
onShow
}
from
'@dcloudio/uni-app'
const
app
=
getApp
();
const
queryParams
=
ref
({
code
:
''
,
ztxList
:
0
})
const
list
=
ref
([])
const
statistical
=
ref
({
personCount
:
0
})
const
total
=
ref
(
0
)
onShow
(()
=>
{
getList
()
})
function
getList
()
{
uni
.
showLoading
({
title
:
'加载中'
})
statistical
.
value
.
personCount
=
0
api
.
getChangelevelList
(
queryParams
.
value
).
then
(
res
=>
{
list
.
value
=
res
.
rows
list
.
value
.
forEach
(
item
=>
{
statistical
.
value
.
personCount
+=
(
item
.
count
*
1
)
})
total
.
value
=
res
.
total
uni
.
hideLoading
()
})
}
import
*
as
api
from
'@/common/api.js'
import
config
from
'@/config.js'
import
{
ref
}
from
'vue'
import
{
onLoad
,
onShow
}
from
'@dcloudio/uni-app'
import
{
changeLevelShenAudit
}
from
"@/common/api.js"
;
function
goDetail
(
item
)
{
let
path
=
`/personalVip/changeLevelDetail?rangeId=
${
item
.
id
}
`
uni
.
navigateTo
({
url
:
path
});
}
const
app
=
getApp
();
const
queryParams
=
ref
({
code
:
''
,
// shenAuditStatus: 0
})
const
list
=
ref
([])
const
statistical
=
ref
({
personCount
:
0
})
const
total
=
ref
(
0
)
const
userType
=
ref
(
2
)
function
handleDelete
(
row
)
{
uni
.
showModal
({
title
:
'提示'
,
content
:
`确定撤回吗`
,
success
:
function
(
res
)
{
if
(
res
.
confirm
)
{
api
.
changeLevelWithDraw
([
row
.
id
]).
then
(
Response
=>
{
uni
.
showToast
({
icon
:
"none"
,
title
:
'撤回成功!'
})
getList
()
})
}
}
})
}
onShow
(()
=>
{
userType
.
value
=
app
.
globalData
.
userType
getList
()
})
function
audit
(
id
,
flag
)
{
if
(
flag
==
0
)
{
// 拒绝
// 弹出框填写理由
uni
.
showModal
({
title
:
'请输入拒绝理由'
,
editable
:
true
,
success
:
function
(
res
)
{
if
(
res
.
confirm
)
{
if
(
!
res
.
content
)
{
uni
.
showToast
({
title
:
'请输入拒绝理由'
,
icon
:
'none'
})
}
else
{
doApproval
(
id
,
flag
,
res
.
content
)
}
}
}
})
}
else
if
(
flag
==
'1'
)
{
// 二次确认
uni
.
showModal
({
title
:
'提示'
,
content
:
`确定审批通过吗`
,
success
:
function
(
res
)
{
if
(
res
.
confirm
)
{
doApproval
(
id
,
flag
)
}
}
})
}
}
function
getList
()
{
uni
.
showLoading
({
title
:
'加载中'
})
statistical
.
value
.
personCount
=
0
api
.
getChangelevelList
(
queryParams
.
value
).
then
(
res
=>
{
list
.
value
=
res
.
rows
list
.
value
.
forEach
(
item
=>
{
statistical
.
value
.
personCount
+=
(
item
.
count
*
1
)
})
total
.
value
=
res
.
total
uni
.
hideLoading
()
})
}
function
doApproval
(
id
,
flag
,
reason
)
{
var
obj
=
{
flag
:
flag
,
reason
:
reason
||
''
,
ids
:
[
id
]
}
console
.
log
(
obj
)
uni
.
showLoading
({
title
:
'加载中'
})
api
.
changeLevelAudit
(
obj
).
then
((
res
)
=>
{
uni
.
hideLoading
()
uni
.
showToast
({
title
:
'操作成功'
,
icon
:
'none'
})
getList
()
})
}
</
script
>
function
goDetail
(
item
)
{
let
path
=
`/personalVip/changeLevelDetail?rangeId=
${
item
.
id
}
`
uni
.
navigateTo
({
url
:
path
});
}
<
style
lang=
'scss'
scoped
>
.searchbar
{
display
:
flex
;
align-items
:
center
;
padding
:
25
rpx
;
box-sizing
:
border-box
;
function
handleDelete
(
row
)
{
uni
.
showModal
({
title
:
'提示'
,
content
:
`确定撤回吗`
,
success
:
function
(
res
)
{
if
(
res
.
confirm
)
{
api
.
changeLevelWithDraw
([
row
.
id
]).
then
(
Response
=>
{
uni
.
showToast
({
icon
:
"none"
,
title
:
'撤回成功!'
})
getList
()
})
}
}
})
}
:deep(.uni-easyinput
.uni-easyinput__content)
{
border-radius
:
35
rpx
;
border
:
none
;
height
:
70
rpx
;
}
function
audit
(
id
,
flag
)
{
if
(
flag
==
0
)
{
// 拒绝
// 弹出框填写理由
uni
.
showModal
({
title
:
'请输入拒绝理由'
,
editable
:
true
,
success
:
function
(
res
)
{
if
(
res
.
confirm
)
{
if
(
!
res
.
content
)
{
uni
.
showToast
({
title
:
'请输入拒绝理由'
,
icon
:
'none'
})
}
else
{
doApproval
(
id
,
flag
,
res
.
content
)
}
}
}
})
}
else
if
(
flag
==
'1'
)
{
// 二次确认
uni
.
showModal
({
title
:
'提示'
,
content
:
`确定审批通过吗`
,
success
:
function
(
res
)
{
if
(
res
.
confirm
)
{
doApproval
(
id
,
flag
)
}
}
})
}
}
:deep
(
.uni-easyinput__content-input
)
{
font-size
:
26
rpx
;
}
.invertedbtn-red
{
border-radius
:
50px
;
background-color
:
#fff
;
async
function
doApproval
(
id
,
flag
,
reason
)
{
let
obj
=
{
flag
:
flag
,
reason
:
reason
||
''
,
ids
:
[
id
]
}
console
.
log
(
obj
)
uni
.
showLoading
({
title
:
'加载中'
})
if
(
userType
.
value
==
1
)
{
await
api
.
changeLevelAudit
(
obj
)
}
else
{
await
api
.
changeLevelShenAudit
(
obj
)
}
uni
.
hideLoading
()
uni
.
showToast
({
title
:
'操作成功'
,
icon
:
'none'
})
getList
()
}
</
script
>
font-size
:
30
rpx
;
padding
:
10
rpx
20
rpx
;
}
}
</
style
>
\ No newline at end of file
<
style
lang=
'scss'
scoped
>
.searchbar
{
display
:
flex
;
align-items
:
center
;
padding
:
25
rpx
;
box-sizing
:
border-box
;
:deep(.uni-easyinput
.uni-easyinput__content)
{
border-radius
:
35
rpx
;
border
:
none
;
height
:
70
rpx
;
}
:deep
(
.uni-easyinput__content-input
)
{
font-size
:
26
rpx
;
}
.invertedbtn-red
{
border-radius
:
50px
;
background-color
:
#fff
;
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