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
1d933336
authored
2025-03-18 15:13:26 +0800
by
杨炀
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
no message
1 parent
51c28ec6
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
264 additions
and
42 deletions
common/api.js
config.js
group/feeBill.vue
level/addApply.vue
level/apply.vue
level/chooseExaminer.vue
personalVip/addMobilize.vue
personalVip/addVip.vue
personalVip/feeBill.vue
common/api.js
View file @
1d93333
...
...
@@ -220,7 +220,14 @@ export function addPersonToMyDept(data) {
params
:
data
})
}
// 提交人工审核
export
function
addPersonCommit
(
data
)
{
return
request
({
url
:
`/system/input/commit?fileUrl=
${
data
.
fileUrl
}
`
,
method
:
'post'
,
params
:
data
})
}
// 图片上传
export
function
uploadImg
(
e
)
{
const
tempFilePaths
=
e
.
tempFilePaths
;
...
...
config.js
View file @
1d93333
...
...
@@ -4,7 +4,7 @@
// staging 会员系统
// const baseUrl_api = "http://22yidpjzjifv.ngrok.xiaomiqiu123.top/stage-api/";
const
baseUrl_api
=
"http
://36.153.235.222:7899
/stage-api"
;
const
baseUrl_api
=
"http
s://ztx.itechtop.cn:8443
/stage-api"
;
// const baseUrl_api = 'http://192.168.1.132:8787'
// const baseUrl_api = 'https://tkcn.19wk.cn:8443/stage-api'
...
...
group/feeBill.vue
View file @
1d93333
...
...
@@ -10,7 +10,7 @@
<text
v-if=
"item.record.auditStatus==0"
class=
"text-primary"
>
审核中
</text>
<text
v-if=
"item.record.auditStatus==1"
class=
"text-success"
>
审核通过
</text>
<text
v-if=
"item.record.auditStatus==2"
class=
"text-danger"
>
审核拒绝
</text>
<text
v-if=
"item.record.auditStatus==3"
class=
"text-warning"
>
已
撤回
</text>
<text
v-if=
"item.record.auditStatus==3"
class=
"text-warning"
>
审核
撤回
</text>
</view>
<view
class=
"date"
@
click=
"goDetail(item)"
v-if=
"item.payTime"
>
<uni-icons
type=
"calendar-filled"
size=
"16"
color=
"#AD181F"
></uni-icons>
...
...
@@ -44,8 +44,18 @@
</view>
</view>
<view
class=
"func"
>
<button
v-if=
"deptType == 1"
:disabled=
"!(item.payEvidence?.[0]?.url)"
@
click=
"downloadOrder(item)"
>
下载凭证
</button>
<button
v-if=
"(deptType == 2 || deptType == 3)&&item.settleFlag != 1"
:disabled=
"!(item.payEvidence?.[0]?.url)"
@
click=
"downloadOrder(item)"
>
下载凭证
</button>
<button
v-if=
"(deptType == 2 || deptType == 3)&&item?.record?.auditStatus != 2 && item?.record?.auditStatus != 3"
v-if=
"(deptType == 2 || deptType == 3)&&item.settleFlag == 1"
:disabled=
"!item.record?.auditStatus||item.record?.auditStatus == 2||item.record?.auditStatus == 3"
@
click=
"handleUpdate(item)"
>
上传凭证
</button>
</view>
</view>
...
...
@@ -201,9 +211,77 @@ function goDetail(item) {
url
:
path
});
}
function
downloadOrder
(
item
)
{
//下载凭证
showImg
(
item
.
payEvidence
[
0
]?.
url
)
}
function
showImg
(
url
)
{
var
str
=
config
.
baseUrl_api
+
url
if
(
url
.
indexOf
(
'png'
)
>
-
1
||
url
.
indexOf
(
'jpg'
)
>
-
1
||
url
.
indexOf
(
'jpeg'
)
>
-
1
)
{
uni
.
previewImage
({
urls
:
[
str
],
success
:
function
(
res
)
{
console
.
log
(
'success'
,
res
)
},
fail
:
function
(
res
)
{
console
.
log
(
'fail'
,
res
)
},
complete
:
function
(
res
)
{
console
.
log
(
'complete'
,
res
)
}
})
}
else
{
goWebView
(
str
)
}
}
function
goWebView
(
url
)
{
url
=
url
.
replace
(
"http://"
,
"https://"
)
uni
.
showLoading
({
title
:
'下载中'
});
uni
.
downloadFile
({
url
:
url
,
success
:
function
(
res
)
{
uni
.
hideLoading
();
var
filePath
=
res
.
tempFilePath
;
uni
.
showLoading
({
title
:
'正在打开'
});
uni
.
openDocument
({
filePath
:
filePath
,
showMenu
:
true
,
success
:
function
(
res
)
{
uni
.
hideLoading
();
},
fail
:
function
(
err
)
{
uni
.
hideLoading
();
uni
.
showToast
({
title
:
err
,
icon
:
'none'
,
duration
:
2000
});
}
});
},
fail
:
function
(
error
)
{
uni
.
hideLoading
();
uni
.
showToast
({
title
:
`下载失败`
,
icon
:
'none'
,
duration
:
2000
});
}
});
}
</
script
>
<
style
scoped
lang=
"scss"
>
.appList
.appItem
.func
button
[
disabled
]
{
opacity
:
0.3
;
}
.popBody
{
font-size
:
28
rpx
;
line-height
:
1.5
;
...
...
level/addApply.vue
View file @
1d93333
...
...
@@ -76,7 +76,6 @@
考试级别
<!--
<text
style=
"padding: 15rpx 0;"
>
{{
szToHz
(
n
.
levelNew
)
}}
级
</text>
-->
<view
@
click=
"changeLevelfather(n)"
>
<uni-data-select
v-model=
"n.levelNew"
:localdata=
"levelArr"
@
change=
"changeLevel"
></uni-data-select>
</view>
...
...
@@ -278,7 +277,6 @@
})
function
updateData
(
e
)
{
// console.log(e)
examinerArr
.
push
(
e
.
obj
)
form
.
value
[
`examiner_
${
e
.
ec
}
`
]
=
e
.
obj
.
name
}
...
...
@@ -534,19 +532,24 @@
api
.
jiDropDownBox
({
perId
:
row
.
perId
}).
then
(
res
=>
{
console
.
log
(
res
.
data
)
for
(
var
l
of
res
.
data
)
{
levelArr
.
value
=
res
.
data
for
(
var
l
of
levelArr
.
value
)
{
l
.
text
=
l
.
name
l
.
disabled
=
l
.
status
l
.
disabled
=
!
(
l
.
status
)
}
levelArr
.
value
=
res
.
data
})
}
function
changeLevel
(
e
)
{
console
.
log
(
e
)
if
(
e
==
nowRow
.
levelOld
)
{
uni
.
showToast
({
title
:
`考试级别重复,请重新选择!`
,
icon
:
'none'
})
nowRow
.
levelNew
=
nowRow
.
levelRecommend
return
}
if
(
e
!==
nowRow
.
levelRecommend
)
{
uni
.
showModal
({
title
:
'提示'
,
...
...
@@ -566,6 +569,23 @@
}
function
submitForm2
(
flag
)
{
//循环infoList.value 如果item.levelNew == item.levelOld 提示错误
for
(
var
item
of
infoList
.
value
)
{
if
(
item
.
levelNew
==
item
.
levelOld
)
{
uni
.
showToast
({
title
:
`
${
item
.
realName
}
考试级别重复,请重新选择!`
,
icon
:
'none'
})
return
}
if
(
!
item
.
levelNew
)
{
uni
.
showToast
({
title
:
`
${
item
.
realName
}
请选择考试级别!`
,
icon
:
'none'
})
return
}
}
if
(
flag
===
1
)
{
if
(
infoList
.
value
.
length
==
0
)
{
uni
.
showToast
({
...
...
@@ -574,6 +594,7 @@
})
return
}
// if (!form.value.transcript) {
// uni.showToast({
// title: '请上传成绩单',
...
...
@@ -638,7 +659,6 @@
}
for
(
const
n
in
e
.
tempFiles
)
{
api
.
uploadFileList
(
e
.
tempFilePaths
[
n
]).
then
(
data
=>
{
console
.
log
(
data
)
selectFileValue
=
{
url
:
data
,
name
:
e
.
tempFiles
[
n
].
name
,
...
...
@@ -659,11 +679,9 @@
transcript
.
value
=
_
.
remove
(
transcript
.
value
,
function
(
n
)
{
return
n
.
name
!=
e
.
tempFile
.
name
;
});
console
.
log
(
transcript
.
value
)
}
function
uploadSure
()
{
console
.
log
(
transcript
.
value
)
// 上传确定
if
(
transcript
.
value
.
length
==
0
)
{
uni
.
showToast
({
...
...
level/apply.vue
View file @
1d93333
...
...
@@ -38,7 +38,7 @@
<view
class=
"func"
v-if=
"item.status=='0'||item.status=='3'||item.status=='4'"
>
<button
@
click=
"handleDelete(item)"
>
删除
</button>
<button
@
click=
"editThis(item)"
>
编辑
</button>
<button
@
click=
"handleSubmit(item)"
>
提交审核
</button>
<button
:disabled=
"!(item.totalNum?item.totalNum:(item.pass+item.noPass))"
@
click=
"handleSubmit(item)"
>
提交审核
</button>
</view>
</view>
</view>
...
...
level/chooseExaminer.vue
View file @
1d93333
<
template
>
<view>
<view
class=
"searchbar"
>
<uni-easyinput
placeholderStyle=
"font-size:30rpx"
:input-border=
"false"
prefixIcon=
"search"
v-model=
"query.idcCode"
placeholder=
"证件号码"
@
blur=
"getList"
>
<view
class=
"nolineform"
>
<uni-form
@
submit=
"getList"
>
<uni-forms-item
label=
"考官姓名"
>
<uni-easyinput
:placeholderStyle=
"placeholderStyle"
:input-border=
"false"
v-model=
"query.name"
placeholder=
"考官姓名"
>
</uni-easyinput>
</uni-forms-item>
<uni-forms-item
label=
"考官编号"
>
<uni-easyinput
:placeholderStyle=
"placeholderStyle"
:input-border=
"false"
v-model=
"query.certCode"
placeholder=
"考官编号"
>
</uni-easyinput>
</uni-forms-item>
</uni-form>
<view
class=
"button-group"
>
<button
size=
"mini"
@
click=
"resetQuery"
>
重置
</button>
<button
type=
"primary"
size=
"mini"
@
click=
"getList"
>
查询
</button>
</view>
</view>
<view
class=
"indexboxre"
>
<view
class=
"userlist"
>
...
...
@@ -15,9 +30,11 @@
<view>
<view
class=
"name"
>
{{
n
.
name
}}
</view>
<view
class=
"date"
>
会员号:
{{
n
.
perCode
||
'-'
}}
</view>
<view
class=
"date"
>
证件号码:
{{
n
.
idcCode
||
'-'
}}
</view>
<view
class=
"date"
>
注册地:
{{
n
.
memName
||
'-'
}}
</view>
</view>
<view
class=
"status"
>
<text
v-if=
"n.disabled"
>
选择
</text>
<text
v-if=
"n.disabled"
>
已选
</text>
<text
v-else
class=
"text-primary"
@
click=
"handleChoose(n)"
>
选择
</text>
</view>
...
...
@@ -25,7 +42,7 @@
</view>
<view
class=
"nodata"
v-if=
"list.length==0"
>
<image
mode=
"aspectFit"
src=
"/static/nodata.png"
></image>
<text>
请输入
证件号
查找
</text>
<text>
请输入
考官姓名和编号精确
查找
</text>
</view>
</view>
...
...
@@ -49,6 +66,7 @@
const
query
=
ref
({
})
const
placeholderStyle
=
ref
(
'text-align: right;font-size:30rpx'
)
const
list
=
ref
([])
const
total
=
ref
(
0
)
const
userType
=
ref
(
''
)
...
...
@@ -60,16 +78,22 @@
ec
=
option
.
ec
console
.
log
(
chosen
)
})
function
resetQuery
()
{
query
.
value
=
{}
list
.
value
=
[]
}
function
getList
()
{
if
(
!
query
.
value
.
idcCode
)
{
if
(
!
query
.
value
.
name
)
{
return
}
if
(
!
query
.
value
.
certCode
)
{
return
}
uni
.
showLoading
({
title
:
`查找中`
})
api
.
getCoachList
(
query
.
value
).
then
(
res
=>
{
if
(
res
.
data
.
length
==
0
)
{
if
(
res
.
rows
.
length
==
0
)
{
uni
.
showToast
({
title
:
'未查询到考官信息'
,
icon
:
"error"
...
...
@@ -77,11 +101,11 @@
list
.
value
=
[]
return
}
list
.
value
=
res
.
data
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
}
//
if(l.photo&&l.photo.indexOf('http')==-1){
//
l.photo = config.baseUrl_api + l.photo
//
}
for
(
var
t
of
chosen
){
if
(
t
.
perId
==
l
.
perId
){
l
.
disabled
=
true
...
...
@@ -99,6 +123,14 @@
}
function
handleChoose
(
row
)
{
if
(
row
.
canChoose
!=
1
){
uni
.
showToast
({
title
:
'该考官资质已过期!'
,
icon
:
"error"
})
return
}
var
pages
=
getCurrentPages
()
var
prevPage
=
pages
[
pages
.
length
-
2
]
var
obj
=
{
...
...
@@ -151,4 +183,11 @@
font-size
:
26
rpx
;
}
}
.button-group
{
text-align
:
right
;
button
{
margin-left
:
30
rpx
;
}
}
</
style
>
...
...
personalVip/addMobilize.vue
View file @
1d93333
<
template
>
<view
class=
"hasfixedbottom"
>
<view
class=
"nolineform"
>
<uni-forms
:border=
"true"
:modelValue=
"baseFormData"
label-width=
"
12
0"
>
<uni-forms
:border=
"true"
:modelValue=
"baseFormData"
label-width=
"
9
0"
>
<!--
<uni-forms-item
label=
"姓名"
required
name=
"name"
>
<uni-easyinput
:styles=
"inputstyle"
:clearable=
'false'
:placeholderStyle=
"placeholderStyle"
v-model=
"baseFormData.name"
placeholder=
"请输入姓名"
/>
...
...
@@ -34,7 +34,7 @@
<view>
{{
n
.
perName
}}
<view
class=
"date"
>
{{
idcTypeList
[
n
.
perIdcType
].
text
}}
:
{{
n
.
perIdcCode
}}
{{
getIdcType
(
n
.
perIdcType
)
}}
:
{{
n
.
perIdcCode
}}
</view>
</view>
</view>
...
...
@@ -79,15 +79,15 @@
},
{
value
:
'1'
,
text
:
"
港澳台通信身份证
"
text
:
"
来往大陆(内地)通行证
"
},
{
value
:
'3'
,
text
:
"
外国
护照"
text
:
"护照"
},
{
value
:
'
4
'
,
text
:
"
其他
"
value
:
'
5
'
,
text
:
"
香港身份证
"
}
])
const
baseFormData
=
ref
({
...
...
@@ -106,6 +106,14 @@
getList
()
}
})
function
getIdcType
(
type
)
{
for
(
var
item
of
idcTypeList
.
value
){
if
(
item
.
value
==
type
)
{
return
item
.
text
}
}
}
// 查询会员
function
selectMember
()
{
// if (!baseFormData.value.name) {
...
...
personalVip/addVip.vue
View file @
1d93333
...
...
@@ -145,7 +145,7 @@
idcType
:
'0'
,
perType
:
'1'
,
// (1:个人会员;2:教练;3:考官;4:裁判;5:临时会员;)
})
const
items
=
ref
([
'
手动录入'
,
'自动
录入'
])
const
items
=
ref
([
'
身份证添加'
,
'证件照
录入'
])
const
idcTypeList
=
ref
([{
value
:
'0'
,
text
:
"身份证"
...
...
@@ -502,9 +502,9 @@
delete
baseFormData
.
value
.
card
const
time
=
new
Date
().
valueOf
()
+
''
baseFormData
.
t
=
time
+
Math
.
floor
(
Math
.
random
()
*
10
)
baseFormData
.
signT
=
aes2
.
AESEncrypt
(
baseFormData
.
idcType
+
time
)
baseFormData
.
value
.
t
=
time
+
Math
.
floor
(
Math
.
random
()
*
10
)
baseFormData
.
value
.
signT
=
aes2
.
AESEncrypt
(
baseFormData
.
value
.
idcType
+
time
)
console
.
log
(
baseFormData
.
value
)
api
.
addPersonToMyDept
(
baseFormData
.
value
).
then
(
Response
=>
{
if
(
Response
.
data
==
0
)
{
let
msg
=
'该成员,实名认证未通过,注册失败!'
...
...
personalVip/feeBill.vue
View file @
1d93333
...
...
@@ -21,9 +21,10 @@
<view>
缴费状态
<view>
<text
v-if=
"item.settleFlag == 0"
class=
"text-warning"
>
已结算
</text>
<text
v-if=
"item.settleFlag == 1 && item.payFlag == 0"
class=
"text-success"
>
已上传
</text>
<text
v-if=
"item.settleFlag == 1 && item.payFlag == 1"
class=
"text-danger"
>
未上传
</text>
<text
v-if=
"item.settleFlag == 0"
class=
"text-success"
>
已结算
</text>
<text
v-if=
"item.settleFlag == 1"
class=
"text-danger"
>
未结算
</text>
<!--
<text
v-if=
"item.settleFlag == 1 && item.payFlag == 0"
class=
"text-success"
>
已上传
</text>
-->
<!--
<text
v-if=
"item.settleFlag == 1 && item.payFlag == 1"
class=
"text-danger"
>
未上传
</text>
-->
</view>
</view>
<view>
...
...
@@ -41,8 +42,11 @@
</view>
<view
class=
"func"
>
<button
v-if=
"item.settleFlag == 0"
:disabled=
"!(item.payFlag == 0)"
@
click=
"downloadOrder(item)"
>
下载凭证
</button>
<button
v-if=
"(deptType == 2 || deptType == 3)&&item?.record?.auditStatus != 2 && item?.record?.auditStatus != 3"
v-if=
"(deptType == 2 || deptType == 3) && item.settleFlag != 0"
:disabled=
"item?.record?.auditStatus == 2 || item?.record?.auditStatus == 3||item.yjFlag==1"
@
click=
"handleUpdate(item)"
>
上传凭证
</button>
</view>
</view>
...
...
@@ -121,6 +125,71 @@ function handleUpdate(item) {
form
.
value
.
docId
=
item
.
docId
UpPop
.
value
.
open
()
}
function
downloadOrder
(
item
)
{
//下载凭证
var
arr
=
JSON
.
parse
(
item
.
payEvidence
)
||
[]
showImg
(
arr
[
0
]?.
url
)
}
function
showImg
(
url
)
{
var
str
=
config
.
baseUrl_api
+
url
if
(
url
.
indexOf
(
'png'
)
>
-
1
||
url
.
indexOf
(
'jpg'
)
>
-
1
||
url
.
indexOf
(
'jpeg'
)
>
-
1
)
{
uni
.
previewImage
({
urls
:
[
str
],
success
:
function
(
res
)
{
console
.
log
(
'success'
,
res
)
},
fail
:
function
(
res
)
{
console
.
log
(
'fail'
,
res
)
},
complete
:
function
(
res
)
{
console
.
log
(
'complete'
,
res
)
}
})
}
else
{
goWebView
(
str
)
}
}
function
goWebView
(
url
)
{
url
=
url
.
replace
(
"http://"
,
"https://"
)
uni
.
showLoading
({
title
:
'下载中'
});
uni
.
downloadFile
({
url
:
url
,
success
:
function
(
res
)
{
uni
.
hideLoading
();
var
filePath
=
res
.
tempFilePath
;
uni
.
showLoading
({
title
:
'正在打开'
});
uni
.
openDocument
({
filePath
:
filePath
,
showMenu
:
true
,
success
:
function
(
res
)
{
uni
.
hideLoading
();
},
fail
:
function
(
err
)
{
uni
.
hideLoading
();
uni
.
showToast
({
title
:
err
,
icon
:
'none'
,
duration
:
2000
});
}
});
},
fail
:
function
(
error
)
{
uni
.
hideLoading
();
uni
.
showToast
({
title
:
`下载失败`
,
icon
:
'none'
,
duration
:
2000
});
}
});
}
let
selectFileValue
=
{}
function
selectFile
(
e
)
{
let
file
=
e
.
tempFiles
[
0
]
...
...
@@ -166,6 +235,9 @@ function goDetail(item) {
</
script
>
<
style
scoped
lang=
"scss"
>
.appList
.appItem
.func
button
[
disabled
]
{
opacity
:
0.3
;
}
.popBody
{
font-size
:
28
rpx
;
line-height
:
1.5
;
...
...
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