Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
center-register
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
center-register
Commits
809749d5
提交
809749d5
authored
4月 02, 2022
作者:
matian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat:新增审核模块
上级
3dbc23c0
隐藏空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
323 行增加
和
24 行删除
+323
-24
Aside.vue
src/components/layout/Aside.vue
+2
-1
FormType.vue
src/modules/activity/components/FormType.vue
+30
-2
Create.vue
src/modules/activity/views/Create.vue
+3
-1
api.js
src/modules/audit/api.js
+14
-0
audltDialog.vue
src/modules/audit/components/audltDialog.vue
+50
-0
payVoucher.vue
src/modules/audit/components/payVoucher.vue
+32
-0
index.js
src/modules/audit/index.js
+11
-0
List.vue
src/modules/audit/views/List.vue
+133
-0
Pay.vue
src/modules/register/components/Pay.vue
+8
-2
Detail.vue
src/modules/register/views/Detail.vue
+16
-3
List.vue
src/modules/register/views/List.vue
+24
-15
没有找到文件。
src/components/layout/Aside.vue
浏览文件 @
809749d5
...
...
@@ -25,7 +25,8 @@ export default {
return
{
menuList
:
[
{
name
:
'活动列表'
,
path
:
'/activity/list'
,
icon
:
'el-icon-notebook-2'
},
{
name
:
'报名列表'
,
path
:
'/register/list'
,
icon
:
'el-icon-user'
}
{
name
:
'报名列表'
,
path
:
'/register/list'
,
icon
:
'el-icon-user'
},
{
name
:
'审核管理'
,
path
:
'/audit/list'
,
icon
:
'el-icon-connection'
}
]
}
},
...
...
src/modules/activity/components/FormType.vue
浏览文件 @
809749d5
...
...
@@ -38,6 +38,11 @@
</div>
<div
class=
"form-set-pay"
>
<div
class=
"sub-title"
>
缴费设置
</div>
<!--导入功能 新增 -->
<el-form-item
label=
"导入功能:"
>
<el-radio
v-model=
"data.can_import"
label=
"1"
>
开启
</el-radio>
<el-radio
v-model=
"data.can_import"
label=
"0"
>
关闭
</el-radio>
</el-form-item>
<el-form-item
label=
"缴费功能:"
>
<el-radio
v-model=
"data.can_pay"
:label=
"1"
>
开启
</el-radio>
<el-radio
v-model=
"data.can_pay"
:label=
"0"
>
关闭
</el-radio>
...
...
@@ -50,6 +55,17 @@
<el-radio
v-model=
"data.can_invoice"
:label=
"1"
>
开启
</el-radio>
<el-radio
v-model=
"data.can_invoice"
:label=
"0"
>
关闭
</el-radio>
</el-form-item>
<!-- 缴费方式 新增-->
<el-form-item
label=
"缴费方式:"
>
<el-select
v-model=
"data.pay_type"
multiple
>
<el-option
v-for=
"item in payType"
:key=
"item.key"
:label=
"item.value"
:value=
"item.key"
>
{{
item
.
value
}}
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"线下支付联系方式:"
prop=
"offline_info"
>
<el-input
style=
"width: 20%"
v-model=
"data.offline_info"
></el-input>
</el-form-item>
<el-form-item
label=
"单位优惠:"
>
<el-radio
v-model=
"data.can_company"
:label=
"1"
>
开启
</el-radio>
<el-radio
v-model=
"data.can_company"
:label=
"0"
>
关闭
</el-radio>
...
...
@@ -94,9 +110,19 @@
import
VEditor
from
'@/components/tinymce/Index.vue'
export
default
{
components
:
{
VEditor
},
props
:
{
data
:
{
type
:
Object
,
default
:
()
=>
{}
}
},
props
:
{
data
:
{
type
:
Object
,
default
:
()
=>
{}
}
},
data
()
{
return
{
payType
:
[
{
key
:
'1'
,
value
:
'微信'
},
{
key
:
'2'
,
value
:
'支付宝'
},
{
key
:
'3'
,
value
:
'线下支付'
}
],
rules
:
{
title
:
{
required
:
true
,
message
:
'请填写标题'
,
trigger
:
'blur'
},
pay_price
:
[
...
...
@@ -114,7 +140,7 @@ export default {
}
],
jump_url
:
{
required
:
true
,
message
:
'请填写跳转链接'
,
trigger
:
'blur'
},
shop_id
:
{
required
:
true
,
message
:
'请选择支付平台'
,
trigger
:
'
blur
'
},
shop_id
:
{
required
:
true
,
message
:
'请选择支付平台'
,
trigger
:
'
change
'
},
skip_pay_title
:
{
required
:
true
,
message
:
'请填写跳过支付文案'
,
trigger
:
'blur'
}
},
options
:
[],
...
...
@@ -166,6 +192,7 @@ export default {
}
},
mounted
()
{
console
.
log
(
this
.
data
,
'pay_type'
)
this
.
setInfoFields
()
},
methods
:
{
...
...
@@ -195,6 +222,7 @@ export default {
})
return
a
},
[])
this
.
data
.
pay_type
=
this
.
data
.
pay_type
.
toString
()
},
submitForm
()
{
let
flag
=
false
...
...
src/modules/activity/views/Create.vue
浏览文件 @
809749d5
...
...
@@ -163,14 +163,16 @@ export default {
order
:
order
,
title
:
''
,
desc
:
''
,
can_import
:
'0'
,
can_pay
:
0
,
pay_price
:
'0.00'
,
can_invoice
:
0
,
pay_type
:
'1'
,
offline_info
:
''
,
can_company
:
0
,
can_jump
:
0
,
jump_url
:
''
,
shop_id
:
''
,
pay_type
:
'2'
,
can_skip_pay
:
0
,
user_fields
:
[
{
key
:
'name'
,
required
:
true
,
enable_edit
:
true
},
...
...
src/modules/audit/api.js
0 → 100644
浏览文件 @
809749d5
import
httpRequest
from
'@/utils/axios'
/**
* 获取审核列表
*/
export
function
getAuditList
(
params
)
{
return
httpRequest
.
get
(
'/api/register/v1/audit/index'
,
{
params
})
}
/**
* 获取审核列表
*/
export
function
auditResult
(
data
)
{
return
httpRequest
.
post
(
'/api/register/v1/audit/audit'
,
data
)
}
src/modules/audit/components/audltDialog.vue
0 → 100644
浏览文件 @
809749d5
<
template
>
<el-dialog
v-bind=
"$attrs"
v-on=
"$listeners"
width=
"20%"
center
>
<el-form
ref=
"form"
label-width=
"10px"
>
<el-form-item
prop=
"status"
>
<el-radio-group
v-model=
"auditInfo.status"
>
<el-radio
label=
"1"
:disabled=
"auditInfo.status !== '0'"
>
通过
</el-radio>
<el-radio
label=
"2"
:disabled=
"auditInfo.status !== '0'"
>
驳回
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
prop=
"reason"
>
<el-input
type=
"textarea"
:rows=
"2"
placeholder=
"原因(选填)"
v-model=
"auditInfo.cause"
:disabled=
"auditInfo.status !== '0'"
>
</el-input>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"$emit('update:visible', false)"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"handleAudit"
>
确 定
</el-button>
</span>
</el-dialog>
</
template
>
<
script
>
export
default
{
props
:
{
auditInfo
:
{
type
:
Object
,
default
:
()
=>
{}
}
},
data
()
{
return
{
dialogVisible
:
false
}
},
methods
:
{
// 提交审核结果
handleAudit
()
{
this
.
$emit
(
'update:visible'
,
false
)
this
.
$emit
(
'audlt'
,
this
.
auditInfo
)
}
}
}
</
script
>
src/modules/audit/components/payVoucher.vue
0 → 100644
浏览文件 @
809749d5
<
template
>
<el-dialog
v-bind=
"$attrs"
v-on=
"$listeners"
center
width=
"40%"
>
<!--
<img
src=
"https://img0.baidu.com/it/u=2631861690,326885075&fm=253&fmt=auto&app=138&f=JPEG?w=550&h=392"
alt=
""
class=
"voucher_img"
/>
-->
<div
class=
"voucher_img"
>
{{
row
}}
</div>
</el-dialog>
</
template
>
<
script
>
export
default
{
props
:
{
row
:
{
type
:
String
,
default
:
''
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
::v-deep
{
.el-dialog__body
{
width
:
80%
!
important
;
img
{
width
:
100%
;
margin-left
:
50px
;
}
}
}
</
style
>
src/modules/audit/index.js
0 → 100644
浏览文件 @
809749d5
import
AppLayout
from
'@/components/layout/Index.vue'
const
routes
=
[
{
path
:
'/audit'
,
component
:
AppLayout
,
children
:
[{
path
:
'list'
,
component
:
()
=>
import
(
'./views/List.vue'
)
}]
}
]
export
{
routes
}
src/modules/audit/views/List.vue
0 → 100644
浏览文件 @
809749d5
<
template
>
<app-card>
<app-list
v-bind=
"tableOptions"
ref=
"list"
>
<el-divider></el-divider>
<template
v-slot:voucher=
"
{ row }">
<el-button
type=
"text"
@
click=
"handleLook(row)"
>
点击查看
</el-button>
</
template
>
<
template
v-slot:table-x=
"{ row }"
>
<el-button
type=
"text"
@
click=
"handleAudltDialog(row)"
>
审核
</el-button>
</
template
>
</app-list>
<!-- 点击查看凭证 -->
<pay-voucher
:visible
.
sync=
"centerDialogVisible"
:row=
"voucher"
/>
<!-- 审核弹框 -->
<audlt-dialog
:visible
.
sync=
"dialogVisible"
@
cancel=
"dialogVisible = false"
@
audlt=
"handleAudlt"
:auditInfo=
"auditInfo"
/>
</app-card>
</template>
<
script
>
import
{
getAuditList
,
auditResult
}
from
'../api'
import
audltDialog
from
'../components/audltDialog.vue'
import
PayVoucher
from
'../components/payVoucher.vue'
const
statusMap
=
[
{
value
:
'待审核'
,
id
:
'0'
},
{
value
:
'审核通过'
,
id
:
'1'
},
{
value
:
'驳回'
,
id
:
'2'
}
]
export
default
{
components
:
{
audltDialog
,
PayVoucher
},
data
()
{
return
{
voucher
:
''
,
auditInfo
:
{
cause
:
''
,
status
:
''
,
id
:
''
},
dialogVisible
:
false
,
centerDialogVisible
:
false
,
multipleSelection
:
[]
// 选择项
}
},
computed
:
{
tableOptions
()
{
return
{
remote
:
{
httpRequest
:
getAuditList
,
params
:
{
activity_name
:
''
,
user_mobile
:
''
,
status
:
''
}
},
filters
:
[
{
type
:
'input'
,
prop
:
'activity_name'
,
label
:
'活动名称:'
},
{
type
:
'input'
,
prop
:
'user_mobile'
,
label
:
'手机号:'
},
{
type
:
'select'
,
prop
:
'status'
,
options
:
statusMap
,
labelKey
:
'value'
,
valueKey
:
'id'
,
label
:
'审核状态:'
}
],
columns
:
[
{
label
:
'id'
,
prop
:
'id'
,
align
:
'center'
},
{
label
:
'活动名称'
,
prop
:
'activity_name'
,
align
:
'center'
},
{
label
:
'步骤名称'
,
prop
:
'activity_detail_name'
,
align
:
'center'
},
{
label
:
'申请时间'
,
prop
:
'apply_time'
,
align
:
'center'
},
{
label
:
'审核状态'
,
prop
:
'status'
,
align
:
'center'
,
computed
({
row
})
{
if
(
row
.
status
===
'0'
)
{
return
'待审核'
}
else
if
(
row
.
status
===
'1'
)
{
return
'审核通过'
}
else
if
(
row
.
status
===
'2'
)
{
return
'驳回'
}
}
},
{
label
:
'姓名'
,
prop
:
'user_name'
,
align
:
'center'
},
{
label
:
'手机号'
,
prop
:
'user_mobile'
,
align
:
'center'
},
{
label
:
'支付金额'
,
prop
:
'amount'
,
align
:
'center'
},
{
label
:
'凭证'
,
align
:
'center'
,
slots
:
'voucher'
,
prop
:
'voucher'
},
{
label
:
'备注'
,
align
:
'center'
,
prop
:
'comment'
},
{
label
:
'操作'
,
slots
:
'table-x'
,
align
:
'center'
}
]
}
}
},
methods
:
{
handleLook
(
row
)
{
this
.
voucher
=
row
.
voucher
this
.
centerDialogVisible
=
true
},
handleAudltDialog
(
row
)
{
console
.
log
(
row
.
status
,
row
.
cause
,
row
.
id
)
this
.
auditInfo
.
status
=
row
.
status
this
.
auditInfo
.
cause
=
row
.
cause
this
.
auditInfo
.
id
=
row
.
id
this
.
dialogVisible
=
true
},
// 审核
handleAudlt
(
val
)
{
auditResult
(
val
).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
$message
.
success
(
'审核通过'
)
}
this
.
$refs
.
list
.
refetch
()
})
// 审核接口
}
}
}
</
script
>
src/modules/register/components/Pay.vue
浏览文件 @
809749d5
<
template
>
<div
class=
"pay-list"
>
<div
class=
"item"
v-for=
"(item, index) in checkList"
:key=
"index"
>
<el-radio-group
v-model=
"pay_type"
>
<el-radio
:label=
"1"
>
微信扫码支付
</el-radio>
<el-radio
:label=
"11"
>
支付宝扫码支付
</el-radio>
</el-radio-group>
<div
class=
"title"
>
{{
item
.
title
}}
</div>
<div
class=
"checkbox"
>
<el-checkbox-group
v-model=
"item.form"
>
...
...
@@ -24,7 +28,8 @@ import { getPayList, recordsQr } from '../api.js'
export
default
{
data
()
{
return
{
checkList
:
[]
checkList
:
[],
pay_type
:
''
}
},
mounted
()
{
...
...
@@ -50,7 +55,8 @@ export default {
},
recordsQr
(
index
)
{
console
.
log
(
this
.
checkList
[
index
].
form
,
'form'
)
recordsQr
({
pay_record_ids
:
this
.
checkList
[
index
].
form
.
join
()
}).
then
(
res
=>
{
const
params
=
{
pay_type
:
this
.
pay_type
,
pay_record_ids
:
this
.
checkList
[
index
].
form
.
join
()
}
recordsQr
(
params
).
then
(
res
=>
{
this
.
copyToClipboard
(
res
.
data
.
url
)
})
},
...
...
src/modules/register/views/Detail.vue
浏览文件 @
809749d5
...
...
@@ -17,6 +17,8 @@
<el-form-item
v-for=
"(item, index) in payStatus"
:key=
"index"
:label=
"item.title"
>
<el-radio
v-model=
"item.value"
label=
"0"
>
未支付
</el-radio>
<el-radio
v-model=
"item.value"
label=
"1"
>
已支付
</el-radio>
<el-radio
v-model=
"item.value"
label=
"2"
>
待审核
</el-radio>
<el-radio
v-model=
"item.value"
label=
"3"
>
审核不通过
</el-radio>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
@
click=
"getRecordsDetail"
>
搜索
</el-button>
...
...
@@ -43,9 +45,9 @@
归属人id:
<span>
{{
item
.
belong_user_id
}}
</span>
</div>
<div
class=
"item"
>
缴费状态:
<span>
{{
parseInt
(
item
.
pay_status
)
?
'已支付'
:
'未支付'
}}
</span>
缴费状态:
<span>
{{
gatPayStatus
(
item
)
}}
</span>
</div>
<div
class=
"btn"
v-if=
"
!parseInt(item.pay_status)
"
@
click=
"deletePay(item.id)"
>
移除
</div>
<div
class=
"btn"
v-if=
"
item.pay_status === '0'
"
@
click=
"deletePay(item.id)"
>
移除
</div>
</div>
</div>
</
template
>
...
...
@@ -135,6 +137,17 @@ export default {
this
.
getRecordsDetail
()
},
methods
:
{
gatPayStatus
(
item
)
{
if
(
item
.
pay_status
===
'0'
)
{
return
'未支付'
}
else
if
(
item
.
pay_status
===
'1'
)
{
return
'已支付'
}
else
if
(
item
.
pay_status
===
'2'
)
{
return
'待审核'
}
else
if
(
item
.
pay_status
===
'3'
)
{
return
'审核未通过'
}
},
getRowClass
(
row
)
{
if
(
row
.
row
.
pay_records
.
length
===
0
)
{
return
'row-expand-cover'
...
...
@@ -165,7 +178,7 @@ export default {
})
}
this
.
tableData
=
res
.
data
.
records
.
list
.
map
(
item
=>
{
const
findData
=
item
.
pay_records
.
find
(
pay
=>
pay
.
pay_status
===
'1'
)
const
findData
=
item
.
pay_records
.
find
(
pay
=>
pay
.
pay_status
===
'1'
||
pay
.
pay_status
===
'2'
)
item
.
isDelete
=
!!
findData
item
.
gender
=
parseInt
(
item
.
gender
)
?
(
parseInt
(
item
.
gender
)
===
1
?
'男'
:
'女'
)
:
'未知'
Object
.
keys
(
item
).
forEach
(
cItem
=>
{
...
...
src/modules/register/views/List.vue
浏览文件 @
809749d5
...
...
@@ -20,16 +20,6 @@
<el-option
label=
"归属人"
value=
"2"
></el-option>
</el-select>
</el-form-item>
<!--
<el-form-item
label=
"活动时间"
>
<el-date-picker
v-model=
"form.date"
type=
"daterange"
range-separator=
"至"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
>
</el-date-picker>
</el-form-item>
-->
<el-form-item>
<el-button
type=
"primary"
@
click=
"handleScreen"
>
搜索
</el-button>
<el-button
@
click=
"handleReset"
>
重置
</el-button>
...
...
@@ -57,9 +47,9 @@
归属人id:
<span>
{{
item
.
belong_user_id
}}
</span>
</div>
<div
class=
"item"
>
缴费状态:
<span>
{{
pa
rseInt
(
item
.
pay_status
)
?
'已支付'
:
'未支付'
}}
</span>
缴费状态:
<span>
{{
pa
yStatus
(
item
)
}}
</span>
</div>
<div
class=
"btn"
v-if=
"
!parseInt(item.pay_status)
"
@
click=
"deletePay(item.id)"
>
移除
</div>
<div
class=
"btn"
v-if=
"
item.pay_status === '0'
"
@
click=
"deletePay(item.id)"
>
移除
</div>
</div>
</div>
</
template
>
...
...
@@ -68,7 +58,7 @@
<el-table-column
v-if=
"item.visible"
:label=
"item.label"
:prop=
"item.key"
:key=
"item.key"
></el-table-column>
</
template
>
<el-table-column
label=
"操作"
>
<el-table-column
label=
"操作"
style=
"width: 200px"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"text"
@
click=
"$router.push(
{ path: '/register/detail', query: { id: scope.row.id } })"
>详情
</el-button
...
...
@@ -88,7 +78,11 @@
</el-pagination>
</div>
</div>
<import-people
@
cancel=
"importDialogVisible = false"
width=
"400px"
:visible
.
sync=
"importDialogVisible"
></import-people>
<import-people
@
cancel=
"importDialogVisible = false"
width=
"400px"
:visible
.
sync=
"importDialogVisible"
></import-people>
<set-tabel-heade
@
closeSetHeader=
"columnsOptionsVisible = false"
@
handleConfirm=
"handleConfirm"
...
...
@@ -155,6 +149,7 @@ export default {
]
}
},
mounted
()
{
this
.
getAppList
()
if
(
window
.
localStorage
.
registerTabelField
)
{
...
...
@@ -162,6 +157,17 @@ export default {
}
},
methods
:
{
payStatus
(
item
)
{
if
(
item
.
pay_status
===
'0'
)
{
return
'未支付'
}
else
if
(
item
.
pay_status
===
'1'
)
{
return
'已支付'
}
else
if
(
item
.
pay_status
===
'2'
)
{
return
'待审核'
}
else
if
(
item
.
pay_status
===
'3'
)
{
return
'审核未通过'
}
},
getRowClass
(
row
)
{
if
(
row
.
row
.
pay_records
.
length
===
0
)
{
return
'row-expand-cover'
...
...
@@ -196,7 +202,7 @@ export default {
getAppList
(
form
).
then
(
res
=>
{
this
.
page
.
total
=
res
.
data
.
total
this
.
tableData
=
res
.
data
.
list
.
map
(
item
=>
{
const
findData
=
item
.
pay_records
.
find
(
pay
=>
pay
.
pay_status
===
'1'
)
const
findData
=
item
.
pay_records
.
find
(
pay
=>
pay
.
pay_status
===
'1'
||
pay
.
pay_status
===
'2'
)
item
.
isDelete
=
!!
findData
item
.
gender
=
parseInt
(
item
.
gender
)
?
(
parseInt
(
item
.
gender
)
===
1
?
'男'
:
'女'
)
:
'未知'
Object
.
keys
(
item
).
forEach
(
cItem
=>
{
...
...
@@ -299,4 +305,7 @@ export default {
.row-expand-cover
td
.el-table__expand-icon
{
visibility
:
hidden
!
important
;
}
.el-table
.cell
{
padding-left
:
0
;
}
</
style
>
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论