Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
courseSign
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
JIRA
JIRA
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
szh
courseSign
Commits
20a82ef3
Commit
20a82ef3
authored
Nov 12, 2024
by
szh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update
parent
ca7a5aa8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
34 changed files
with
589 additions
and
469 deletions
+589
-469
README.md
server/README.md
+3
-3
course_action_users.go
server/api/v1/course/course_action_users.go
+61
-61
course_banners.go
server/api/v1/course/course_banners.go
+62
-62
course_signup.go
server/api/v1/course/course_signup.go
+6
-0
course_users.go
server/api/v1/course/course_users.go
+95
-13
enter.go
server/api/v1/course/enter.go
+2
-2
gorm.go
server/initialize/gorm.go
+2
-2
router.go
server/initialize/router.go
+2
-2
course_action_users.go
server/model/course/course_action_users.go
+8
-7
course_banners.go
server/model/course/course_banners.go
+6
-6
course_signup.go
server/model/course/course_signup.go
+10
-0
course_users.go
server/model/course/course_users.go
+4
-0
courser_action_users.go
server/model/course/request/courser_action_users.go
+2
-2
courser_banners.go
server/model/course/request/courser_banners.go
+2
-2
course_action_users.go
server/router/course/course_action_users.go
+27
-0
course_banners.go
server/router/course/course_banners.go
+36
-0
course_users.go
server/router/course/course_users.go
+5
-3
courser_action_users.go
server/router/course/courser_action_users.go
+0
-27
courser_banners.go
server/router/course/courser_banners.go
+0
-36
enter.go
server/router/course/enter.go
+2
-2
course_action_users.go
server/service/course/course_action_users.go
+24
-24
course_banners.go
server/service/course/course_banners.go
+22
-22
course_signup.go
server/service/course/course_signup.go
+22
-5
enter.go
server/service/course/enter.go
+2
-2
courseActionUsers.js
web/src/api/courseActionUsers.js
+36
-36
courseBanners.js
web/src/api/courseBanners.js
+36
-36
courseAction.vue
web/src/view/courseAction/courseAction.vue
+36
-38
courseActionUsers.vue
web/src/view/courseActionUsers/courseActionUsers.vue
+20
-20
courseActionUsersForm.vue
web/src/view/courseActionUsers/courseActionUsersForm.vue
+10
-10
courseBanners.vue
web/src/view/courseBanners/courseBanners.vue
+20
-20
courseBannersForm.vue
web/src/view/courseBanners/courseBannersForm.vue
+10
-10
courseSignup.vue
web/src/view/courseSignup/courseSignup.vue
+12
-12
courseUsers.vue
web/src/view/courseUsers/courseUsers.vue
+3
-3
twiActTemplate.vue
web/src/view/twiActTemplate/twiActTemplate.vue
+1
-1
No files found.
server/README.md
View file @
20a82ef3
...
...
@@ -3,10 +3,10 @@
``
1.用户通过WEB3钱包访问H5页面,需要链接钱包
1.用户通过WEB3钱包访问H5页面,需要链接钱包
(login)
2.首次访问,如果没有通过其他推广链接访问,则首页不显示连接钱包按钮,不显示报名按钮
3.首次访问,如果是通过其他推广链接访问的,则可以链接钱包后,点击报名(即必须认有推荐人才可以报名)
4.报名填写申请表,需要上传1寸照,如果没有,可以唤醒手机摄像头自拍
3.首次访问,如果是通过其他推广链接访问的,则可以链接钱包后,点击报名(即必须认有推荐人才可以报名)
(sign)
4.报名填写申请表,需要上传1寸照,如果没有,可以唤醒手机摄像头自拍
(upload)
5.报名后,信息提交后台,需要人工审核(确认照片是否真人,确认其他条件是否符合),后台需要一张用户表(地址,姓名,性别,电话,公司,职务,推荐地址,注册时间,以及调整推荐关系的操作)
6.报名后,不管有没有审核通过,用户都可以生成专属的推广二维码和推广链接,进行分享了
7.审核通过后,点击首页右上角钱包,可以进入我的活动页面,活动根据时间倒序
...
...
server/api/v1/course/course
r
_action_users.go
→
server/api/v1/course/course_action_users.go
View file @
20a82ef3
This diff is collapsed.
Click to expand it.
server/api/v1/course/course
r
_banners.go
→
server/api/v1/course/course_banners.go
View file @
20a82ef3
This diff is collapsed.
Click to expand it.
server/api/v1/course/course_signup.go
View file @
20a82ef3
...
...
@@ -8,6 +8,7 @@ import (
courseReq
"courseSign/server/model/course/request"
"courseSign/server/service"
"courseSign/server/utils"
"github.com/33cn/chain33/common/address"
"github.com/gin-gonic/gin"
"go.uber.org/zap"
)
...
...
@@ -186,6 +187,10 @@ func (courseSignupApi *CourseSignupApi) SignCourse(c *gin.Context) {
global
.
GVA_LOG
.
Error
(
"创建失败!"
,
zap
.
Error
(
err
))
response
.
FailWithMessage
(
err
.
Error
(),
c
)
}
if
!
address
.
IsEthAddress
(
courseSignup
.
Addr
)
{
global
.
GVA_LOG
.
Error
(
"地址格式错误!"
,
zap
.
Error
(
err
),
zap
.
String
(
"addr"
,
courseSignup
.
Addr
))
response
.
FailWithMessage
(
err
.
Error
(),
c
)
}
user
,
err
:=
courseUsersService
.
GetCourseUsersByAddr
(
courseSignup
.
Addr
)
if
err
!=
nil
{
global
.
GVA_LOG
.
Error
(
"查询失败!"
,
zap
.
Error
(
err
))
...
...
@@ -194,6 +199,7 @@ func (courseSignupApi *CourseSignupApi) SignCourse(c *gin.Context) {
if
user
.
Invitor
==
""
{
response
.
FailWithMessage
(
"无推荐人"
,
c
)
}
if
err
:=
courseSignupService
.
CreateCourseSignup
(
courseSignup
);
err
!=
nil
{
global
.
GVA_LOG
.
Error
(
"报名失败!"
,
zap
.
Error
(
err
))
response
.
FailWithMessage
(
"报名失败"
,
c
)
...
...
server/api/v1/course/course_users.go
View file @
20a82ef3
package
course
import
(
"time"
"courseSign/server/global"
"courseSign/server/model/common/request"
"courseSign/server/model/common/response"
"courseSign/server/model/course"
courseReq
"courseSign/server/model/course/request"
"courseSign/server/model/system"
systemReq
"courseSign/server/model/system/request"
twiReq
"courseSign/server/model/twi/request"
"courseSign/server/service"
"courseSign/server/utils"
"github.com/33cn/chain33/common/address"
"github.com/gin-gonic/gin"
"github.com/go-redis/redis/v8"
"go.uber.org/zap"
)
...
...
@@ -16,7 +23,7 @@ type CourseUsersApi struct {
}
var
courseUsersService
=
service
.
ServiceGroupApp
.
CourseServiceGroup
.
CourseUsersService
var
jwtService
=
service
.
ServiceGroupApp
.
SystemServiceGroup
.
JwtService
// CreateCourseUsers 创建CourseUsers
// @Tags CourseUsers
...
...
@@ -119,19 +126,25 @@ func (courseUsersApi *CourseUsersApi) UpdateCourseUsers(c *gin.Context) {
response
.
FailWithMessage
(
err
.
Error
(),
c
)
return
}
verify
:=
utils
.
Rules
{
"Address"
:
{
utils
.
NotEmpty
()},
"Name"
:
{
utils
.
NotEmpty
()},
"Age"
:
{
utils
.
NotEmpty
()},
"Sex"
:
{
utils
.
NotEmpty
()},
"Phone"
:
{
utils
.
NotEmpty
()},
"Photo"
:
{
utils
.
NotEmpty
()},
"Invitor"
:
{
utils
.
NotEmpty
()},
}
verify
:=
utils
.
Rules
{
"Address"
:
{
utils
.
NotEmpty
()},
"Name"
:
{
utils
.
NotEmpty
()},
"Age"
:
{
utils
.
NotEmpty
()},
"Sex"
:
{
utils
.
NotEmpty
()},
"Phone"
:
{
utils
.
NotEmpty
()},
"Photo"
:
{
utils
.
NotEmpty
()},
"Invitor"
:
{
utils
.
NotEmpty
()},
}
if
err
:=
utils
.
Verify
(
courseUsers
,
verify
);
err
!=
nil
{
response
.
FailWithMessage
(
err
.
Error
(),
c
)
return
}
}
if
!
address
.
IsEthAddress
(
courseUsers
.
Invitor
)
{
global
.
GVA_LOG
.
Error
(
"错误地址"
,
zap
.
Any
(
"invitor"
,
courseUsers
.
Invitor
))
response
.
FailWithMessage
(
"地址错误"
,
c
)
}
if
err
:=
courseUsersService
.
UpdateCourseUsers
(
courseUsers
);
err
!=
nil
{
global
.
GVA_LOG
.
Error
(
"更新失败!"
,
zap
.
Error
(
err
))
response
.
FailWithMessage
(
"更新失败"
,
c
)
...
...
@@ -193,7 +206,7 @@ func (courseUsersApi *CourseUsersApi) GetCourseUsersList(c *gin.Context) {
}
}
// FindCourseUsers
Web
用id查询CourseUsers
// FindCourseUsers
MM
用id查询CourseUsers
// @Tags CourseUsers
// @Summary 用id查询CourseUsers
// @accept application/json
...
...
@@ -201,7 +214,7 @@ func (courseUsersApi *CourseUsersApi) GetCourseUsersList(c *gin.Context) {
// @Param data query course.CourseUsers true "用id查询CourseUsers"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"查询成功"}"
// @Router /courseUsers/findUsers [get]
func
(
courseUsersApi
*
CourseUsersApi
)
FindCourseUsers
Web
(
c
*
gin
.
Context
)
{
func
(
courseUsersApi
*
CourseUsersApi
)
FindCourseUsers
MM
(
c
*
gin
.
Context
)
{
var
courseUsers
course
.
CourseUsers
err
:=
c
.
ShouldBindQuery
(
&
courseUsers
)
if
err
!=
nil
{
...
...
@@ -225,3 +238,71 @@ func (courseUsersApi *CourseUsersApi) FindCourseUsersWeb(c *gin.Context) {
}
}
// MetaMaskLogin 创建CourseUsers
// @Tags CourseUsers
// @Summary 创建CourseUsers
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data body course.CourseUsers true "创建CourseUsers"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
// @Router /courseUsers/createCourseUsers [post]
func
(
courseUsersApi
*
CourseUsersApi
)
MetaMaskLogin
(
c
*
gin
.
Context
)
{
var
loginUser
twiReq
.
TwiUserLogin
err
:=
c
.
ShouldBindJSON
(
&
loginUser
)
if
err
!=
nil
{
response
.
FailWithMessage
(
err
.
Error
(),
c
)
return
}
if
err
:=
utils
.
Verify
(
loginUser
,
utils
.
MetaMaskVerify
);
err
!=
nil
{
response
.
FailWithMessage
(
err
.
Error
(),
c
)
return
}
signTime
,
err
:=
utils
.
GetTimeStampFromMsg
(
loginUser
.
Msg
)
if
err
!=
nil
{
response
.
FailWithMessage
(
err
.
Error
(),
c
)
return
}
if
time
.
Now
()
.
Unix
()
-
1800
>
signTime
{
response
.
FailWithMessage
(
"签名时间已过期,请重新签名"
,
c
)
return
}
j
:=
&
utils
.
JWT
{
SigningKey
:
[]
byte
(
global
.
GVA_CONFIG
.
JWT
.
SigningKey
)}
// 唯一签名
claims
:=
j
.
CreateClaims
(
systemReq
.
BaseClaims
{
//ID: user.ID,
NickName
:
loginUser
.
Addr
,
Username
:
loginUser
.
Addr
,
})
token
,
err
:=
j
.
CreateToken
(
claims
)
if
err
!=
nil
{
global
.
GVA_LOG
.
Error
(
"获取token失败!"
,
zap
.
Error
(
err
))
response
.
FailWithMessage
(
"获取token失败"
,
c
)
return
}
if
jwtStr
,
err
:=
jwtService
.
GetRedisJWT
(
loginUser
.
Addr
);
err
==
redis
.
Nil
{
if
err
:=
jwtService
.
SetRedisJWT
(
token
,
loginUser
.
Addr
);
err
!=
nil
{
global
.
GVA_LOG
.
Error
(
"设置登录状态失败!"
,
zap
.
Error
(
err
))
response
.
FailWithMessage
(
"设置登录状态失败"
,
c
)
return
}
response
.
OkWithData
(
token
,
c
)
}
else
if
err
!=
nil
{
global
.
GVA_LOG
.
Error
(
"设置登录状态失败!"
,
zap
.
Error
(
err
))
response
.
FailWithMessage
(
"设置登录状态失败"
,
c
)
}
else
{
var
blackJWT
system
.
JwtBlacklist
blackJWT
.
Jwt
=
jwtStr
if
err
:=
jwtService
.
JsonInBlacklist
(
blackJWT
);
err
!=
nil
{
response
.
FailWithMessage
(
"jwt作废失败"
,
c
)
return
}
if
err
:=
jwtService
.
SetRedisJWT
(
token
,
loginUser
.
Addr
);
err
!=
nil
{
response
.
FailWithMessage
(
"设置登录状态失败"
,
c
)
return
}
response
.
OkWithData
(
token
,
c
)
}
}
\ No newline at end of file
server/api/v1/course/enter.go
View file @
20a82ef3
...
...
@@ -5,6 +5,6 @@ type ApiGroup struct {
CourseActionApi
CourseSignupApi
CourseUsersApi
Course
r
ActionUsersApi
Course
r
BannersApi
CourseActionUsersApi
CourseBannersApi
}
server/initialize/gorm.go
View file @
20a82ef3
...
...
@@ -54,8 +54,8 @@ func RegisterTables() {
course
.
CourseAction
{},
course
.
CourseSignup
{},
course
.
CourseUsers
{},
course
.
Course
r
ActionUsers
{},
course
.
Course
r
Banners
{},
course
.
CourseActionUsers
{},
course
.
CourseBanners
{},
)
if
err
!=
nil
{
global
.
GVA_LOG
.
Error
(
"register table failed"
,
zap
.
Error
(
err
))
...
...
server/initialize/router.go
View file @
20a82ef3
...
...
@@ -136,8 +136,8 @@ func Routers() *gin.Engine {
courseRouter
.
InitCourseActionRouter
(
PrivateGroup
)
courseRouter
.
InitCourseSignupRouter
(
PrivateGroup
)
courseRouter
.
InitCourseUsersRouter
(
PrivateGroup
)
courseRouter
.
InitCourse
r
ActionUsersRouter
(
PrivateGroup
)
courseRouter
.
InitCourse
r
BannersRouter
(
PrivateGroup
)
courseRouter
.
InitCourseActionUsersRouter
(
PrivateGroup
)
courseRouter
.
InitCourseBannersRouter
(
PrivateGroup
)
}
global
.
GVA_LOG
.
Info
(
"router register success"
)
...
...
server/model/course/course
r
_action_users.go
→
server/model/course/course_action_users.go
View file @
20a82ef3
// 自动生成模板Course
r
ActionUsers
// 自动生成模板CourseActionUsers
package
course
import
(
"courseSign/server/global"
"time"
"courseSign/server/global"
)
// Course
r
ActionUsers 结构体
type
Course
r
ActionUsers
struct
{
// CourseActionUsers 结构体
type
CourseActionUsers
struct
{
global
.
GVA_MODEL
Uid
*
int
`json:"uid" form:"uid" gorm:"column:uid;comment:用户;size:10;"`
Cid
*
int
`json:"cid" form:"cid" gorm:"column:cid;comment:课程;size:10;"`
...
...
@@ -17,8 +18,8 @@ type CourserActionUsers struct {
}
// TableName Course
r
ActionUsers 表名
func
(
Course
r
ActionUsers
)
TableName
()
string
{
return
"course
r
_action_users"
// TableName CourseActionUsers 表名
func
(
CourseActionUsers
)
TableName
()
string
{
return
"course_action_users"
}
server/model/course/course
r
_banners.go
→
server/model/course/course_banners.go
View file @
20a82ef3
// 自动生成模板Course
r
Banners
// 自动生成模板CourseBanners
package
course
import
(
...
...
@@ -6,8 +6,8 @@ import (
)
// Course
r
Banners 结构体
type
Course
r
Banners
struct
{
// CourseBanners 结构体
type
CourseBanners
struct
{
global
.
GVA_MODEL
Banner
string
`json:"banner" form:"banner" gorm:"column:banner;comment:图片;size:128;"`
Name
string
`json:"name" form:"name" gorm:"column:name;comment:名称;size:128;"`
...
...
@@ -15,8 +15,8 @@ type CourserBanners struct {
}
// TableName Course
r
Banners 表名
func
(
Course
r
Banners
)
TableName
()
string
{
return
"course
r
_banners"
// TableName CourseBanners 表名
func
(
CourseBanners
)
TableName
()
string
{
return
"course_banners"
}
server/model/course/course_signup.go
View file @
20a82ef3
...
...
@@ -14,9 +14,19 @@ type CourseSignup struct {
IsPass
*
bool
`json:"isPass" form:"isPass" gorm:"column:is_pass;comment:通过 0 未 1 通过;"`
Addr
string
`json:"addr" form:"addr" gorm:"-"`
CourseName
string
`json:"courseName" form:"courseName" gorm:"-"`
}
type
CourseSignupRead
struct
{
global
.
GVA_MODEL
Uid
*
int
`json:"uid" form:"uid" gorm:"column:uid;comment:用户;size:10;"`
Cid
*
int
`json:"cid" form:"cid" gorm:"column:cid;comment:课程;size:10;"`
IsPass
*
bool
`json:"isPass" form:"isPass" gorm:"column:is_pass;comment:通过 0 未 1 通过;"`
Addr
string
`json:"addr" form:"addr" `
CourseName
string
`json:"courseName" form:"courseName" `
}
// TableName CourseSignup 表名
func
(
CourseSignup
)
TableName
()
string
{
return
"course_signup"
...
...
server/model/course/course_users.go
View file @
20a82ef3
...
...
@@ -18,6 +18,10 @@ type CourseUsers struct {
Company
string
`json:"company" form:"company" gorm:"column:company;comment:公司;size:128;"`
Position
string
`json:"position" form:"position" gorm:"column:position;comment:职务;size:36;"`
Invitor
string
`json:"invitor" form:"invitor" gorm:"column:invitor;comment:邀请者;size:72;"`
IsAdmin
*
bool
`json:"isAdmin" form:"isAdmin" gorm:"column:is_admin;comment:管理员;size:72;"`
// CourseSignup `gorm:"foreignKey:Uid"`
// CourseActionUsers `gorm:"foreignKey:Uid"`
}
...
...
server/model/course/request/courser_action_users.go
View file @
20a82ef3
...
...
@@ -6,8 +6,8 @@ import (
"time"
)
type
Course
r
ActionUsersSearch
struct
{
course
.
Course
r
ActionUsers
type
CourseActionUsersSearch
struct
{
course
.
CourseActionUsers
StartCreatedAt
*
time
.
Time
`json:"startCreatedAt" form:"startCreatedAt"`
EndCreatedAt
*
time
.
Time
`json:"endCreatedAt" form:"endCreatedAt"`
request
.
PageInfo
...
...
server/model/course/request/courser_banners.go
View file @
20a82ef3
...
...
@@ -6,8 +6,8 @@ import (
"time"
)
type
Course
r
BannersSearch
struct
{
course
.
Course
r
Banners
type
CourseBannersSearch
struct
{
course
.
CourseBanners
StartCreatedAt
*
time
.
Time
`json:"startCreatedAt" form:"startCreatedAt"`
EndCreatedAt
*
time
.
Time
`json:"endCreatedAt" form:"endCreatedAt"`
request
.
PageInfo
...
...
server/router/course/course_action_users.go
0 → 100644
View file @
20a82ef3
package
course
import
(
"courseSign/server/api/v1"
"courseSign/server/middleware"
"github.com/gin-gonic/gin"
)
type
CourseActionUsersRouter
struct
{
}
// InitCourseActionUsersRouter 初始化 CourseActionUsers 路由信息
func
(
s
*
CourseActionUsersRouter
)
InitCourseActionUsersRouter
(
Router
*
gin
.
RouterGroup
)
{
courseActionUsersRouter
:=
Router
.
Group
(
"courseActionUsers"
)
.
Use
(
middleware
.
OperationRecord
())
courseActionUsersRouterWithoutRecord
:=
Router
.
Group
(
"courseActionUsers"
)
var
courseActionUsersApi
=
v1
.
ApiGroupApp
.
CourseApiGroup
.
CourseActionUsersApi
{
courseActionUsersRouter
.
POST
(
"createCourseActionUsers"
,
courseActionUsersApi
.
CreateCourseActionUsers
)
// 新建CourseActionUsers
courseActionUsersRouter
.
DELETE
(
"deleteCourseActionUsers"
,
courseActionUsersApi
.
DeleteCourseActionUsers
)
// 删除CourseActionUsers
courseActionUsersRouter
.
DELETE
(
"deleteCourseActionUsersByIds"
,
courseActionUsersApi
.
DeleteCourseActionUsersByIds
)
// 批量删除CourseActionUsers
courseActionUsersRouter
.
PUT
(
"updateCourseActionUsers"
,
courseActionUsersApi
.
UpdateCourseActionUsers
)
// 更新CourseActionUsers
}
{
courseActionUsersRouterWithoutRecord
.
GET
(
"findCourseActionUsers"
,
courseActionUsersApi
.
FindCourseActionUsers
)
// 根据ID获取CourseActionUsers
courseActionUsersRouterWithoutRecord
.
GET
(
"getCourseActionUsersList"
,
courseActionUsersApi
.
GetCourseActionUsersList
)
// 获取CourseActionUsers列表
}
}
server/router/course/course_banners.go
0 → 100644
View file @
20a82ef3
package
course
import
(
"courseSign/server/api/v1"
"courseSign/server/middleware"
"github.com/gin-gonic/gin"
)
type
CourseBannersRouter
struct
{
}
// InitCourseBannersRouter 初始化 CourseBanners 路由信息
func
(
s
*
CourseBannersRouter
)
InitCourseBannersRouter
(
Router
*
gin
.
RouterGroup
)
{
courseBannersRouter
:=
Router
.
Group
(
"courseBanners"
)
.
Use
(
middleware
.
OperationRecord
())
courseBannersRouterWithoutRecord
:=
Router
.
Group
(
"courseBanners"
)
var
courseBannersApi
=
v1
.
ApiGroupApp
.
CourseApiGroup
.
CourseBannersApi
{
courseBannersRouter
.
POST
(
"createCourseBanners"
,
courseBannersApi
.
CreateCourseBanners
)
// 新建CourseBanners
courseBannersRouter
.
DELETE
(
"deleteCourseBanners"
,
courseBannersApi
.
DeleteCourseBanners
)
// 删除CourseBanners
courseBannersRouter
.
DELETE
(
"deleteCourseBannersByIds"
,
courseBannersApi
.
DeleteCourseBannersByIds
)
// 批量删除CourseBanners
courseBannersRouter
.
PUT
(
"updateCourseBanners"
,
courseBannersApi
.
UpdateCourseBanners
)
// 更新CourseBanners
}
{
courseBannersRouterWithoutRecord
.
GET
(
"findCourseBanners"
,
courseBannersApi
.
FindCourseBanners
)
// 根据ID获取CourseBanners
courseBannersRouterWithoutRecord
.
GET
(
"getCourseBannersList"
,
courseBannersApi
.
GetCourseBannersList
)
// 获取CourseBanners列表
}
}
// InitCourseBannersWebRouter 初始化 CourseBanners 路由信息
func
(
s
*
CourseBannersRouter
)
InitCourseBannersWebRouter
(
Router
*
gin
.
RouterGroup
)
{
courseBannersRouterWithoutRecord
:=
Router
.
Group
(
"courseBanners"
)
var
courseBannersApi
=
v1
.
ApiGroupApp
.
CourseApiGroup
.
CourseBannersApi
{
courseBannersRouterWithoutRecord
.
GET
(
"getBanners"
,
courseBannersApi
.
GetCourseBannersListWeb
)
// web端展示bannner 列表
}
}
server/router/course/course_users.go
View file @
20a82ef3
...
...
@@ -27,10 +27,12 @@ func (s *CourseUsersRouter) InitCourseUsersRouter(Router *gin.RouterGroup) {
}
// InitCourseUsersWebRouter 初始化 CourseUsers 路由信息
func
(
s
*
CourseUsersRouter
)
InitCourseUsersWebRouter
(
Router
*
gin
.
RouterGroup
)
{
courseUsersRouterWithoutRecord
:=
Router
.
Group
(
"courseUsers"
)
func
(
s
*
CourseUsersRouter
)
InitCourseUsersMetaMaskRouter
(
Router
*
gin
.
RouterGroup
)
{
courseUsersRouter
:=
Router
.
Group
(
"courseUsers"
)
.
Use
(
middleware
.
OperationRecord
())
//courseUsersRouterWithoutRecord := Router.Group("courseUsers")
var
courseUsersApi
=
v1
.
ApiGroupApp
.
CourseApiGroup
.
CourseUsersApi
{
courseUsersRouterWithoutRecord
.
GET
(
"findUsers"
,
courseUsersApi
.
FindCourseUsersWeb
)
// 根据ID,addr获取用户信息
courseUsersRouter
.
GET
(
"findUsers"
,
courseUsersApi
.
FindCourseUsersMM
)
// 根据ID,addr获取用户信息
courseUsersRouter
.
POST
(
"login"
,
courseUsersApi
.
MetaMaskLogin
)
}
}
server/router/course/courser_action_users.go
deleted
100644 → 0
View file @
ca7a5aa8
package
course
import
(
"courseSign/server/api/v1"
"courseSign/server/middleware"
"github.com/gin-gonic/gin"
)
type
CourserActionUsersRouter
struct
{
}
// InitCourserActionUsersRouter 初始化 CourserActionUsers 路由信息
func
(
s
*
CourserActionUsersRouter
)
InitCourserActionUsersRouter
(
Router
*
gin
.
RouterGroup
)
{
courserActionUsersRouter
:=
Router
.
Group
(
"courserActionUsers"
)
.
Use
(
middleware
.
OperationRecord
())
courserActionUsersRouterWithoutRecord
:=
Router
.
Group
(
"courserActionUsers"
)
var
courserActionUsersApi
=
v1
.
ApiGroupApp
.
CourseApiGroup
.
CourserActionUsersApi
{
courserActionUsersRouter
.
POST
(
"createCourserActionUsers"
,
courserActionUsersApi
.
CreateCourserActionUsers
)
// 新建CourserActionUsers
courserActionUsersRouter
.
DELETE
(
"deleteCourserActionUsers"
,
courserActionUsersApi
.
DeleteCourserActionUsers
)
// 删除CourserActionUsers
courserActionUsersRouter
.
DELETE
(
"deleteCourserActionUsersByIds"
,
courserActionUsersApi
.
DeleteCourserActionUsersByIds
)
// 批量删除CourserActionUsers
courserActionUsersRouter
.
PUT
(
"updateCourserActionUsers"
,
courserActionUsersApi
.
UpdateCourserActionUsers
)
// 更新CourserActionUsers
}
{
courserActionUsersRouterWithoutRecord
.
GET
(
"findCourserActionUsers"
,
courserActionUsersApi
.
FindCourserActionUsers
)
// 根据ID获取CourserActionUsers
courserActionUsersRouterWithoutRecord
.
GET
(
"getCourserActionUsersList"
,
courserActionUsersApi
.
GetCourserActionUsersList
)
// 获取CourserActionUsers列表
}
}
server/router/course/courser_banners.go
deleted
100644 → 0
View file @
ca7a5aa8
package
course
import
(
"courseSign/server/api/v1"
"courseSign/server/middleware"
"github.com/gin-gonic/gin"
)
type
CourserBannersRouter
struct
{
}
// InitCourserBannersRouter 初始化 CourserBanners 路由信息
func
(
s
*
CourserBannersRouter
)
InitCourserBannersRouter
(
Router
*
gin
.
RouterGroup
)
{
courserBannersRouter
:=
Router
.
Group
(
"courserBanners"
)
.
Use
(
middleware
.
OperationRecord
())
courserBannersRouterWithoutRecord
:=
Router
.
Group
(
"courserBanners"
)
var
courserBannersApi
=
v1
.
ApiGroupApp
.
CourseApiGroup
.
CourserBannersApi
{
courserBannersRouter
.
POST
(
"createCourserBanners"
,
courserBannersApi
.
CreateCourserBanners
)
// 新建CourserBanners
courserBannersRouter
.
DELETE
(
"deleteCourserBanners"
,
courserBannersApi
.
DeleteCourserBanners
)
// 删除CourserBanners
courserBannersRouter
.
DELETE
(
"deleteCourserBannersByIds"
,
courserBannersApi
.
DeleteCourserBannersByIds
)
// 批量删除CourserBanners
courserBannersRouter
.
PUT
(
"updateCourserBanners"
,
courserBannersApi
.
UpdateCourserBanners
)
// 更新CourserBanners
}
{
courserBannersRouterWithoutRecord
.
GET
(
"findCourserBanners"
,
courserBannersApi
.
FindCourserBanners
)
// 根据ID获取CourserBanners
courserBannersRouterWithoutRecord
.
GET
(
"getCourserBannersList"
,
courserBannersApi
.
GetCourserBannersList
)
// 获取CourserBanners列表
}
}
// InitCourserBannersWebRouter 初始化 CourserBanners 路由信息
func
(
s
*
CourserBannersRouter
)
InitCourserBannersWebRouter
(
Router
*
gin
.
RouterGroup
)
{
courserBannersRouterWithoutRecord
:=
Router
.
Group
(
"courserBanners"
)
var
courserBannersApi
=
v1
.
ApiGroupApp
.
CourseApiGroup
.
CourserBannersApi
{
courserBannersRouterWithoutRecord
.
GET
(
"getBanners"
,
courserBannersApi
.
GetCourserBannersListWeb
)
// web端展示bannner 列表
}
}
server/router/course/enter.go
View file @
20a82ef3
...
...
@@ -5,6 +5,6 @@ type RouterGroup struct {
CourseActionRouter
CourseSignupRouter
CourseUsersRouter
Course
r
ActionUsersRouter
Course
r
BannersRouter
CourseActionUsersRouter
CourseBannersRouter
}
server/service/course/course
r
_action_users.go
→
server/service/course/course_action_users.go
View file @
20a82ef3
...
...
@@ -2,57 +2,57 @@ package course
import
(
"courseSign/server/global"
"courseSign/server/model/course"
"courseSign/server/model/common/request"
courseReq
"courseSign/server/model/course/request"
"courseSign/server/model/course"
courseReq
"courseSign/server/model/course/request"
)
type
Course
r
ActionUsersService
struct
{
type
CourseActionUsersService
struct
{
}
// CreateCourse
rActionUsers 创建Courser
ActionUsers记录
// CreateCourse
ActionUsers 创建Course
ActionUsers记录
// Author [piexlmax](https://github.com/piexlmax)
func
(
course
rActionUsersService
*
CourserActionUsersService
)
CreateCourserActionUsers
(
courserActionUsers
course
.
Courser
ActionUsers
)
(
err
error
)
{
err
=
global
.
GVA_DB
.
Create
(
&
course
r
ActionUsers
)
.
Error
func
(
course
ActionUsersService
*
CourseActionUsersService
)
CreateCourseActionUsers
(
courseActionUsers
course
.
Course
ActionUsers
)
(
err
error
)
{
err
=
global
.
GVA_DB
.
Create
(
&
courseActionUsers
)
.
Error
return
err
}
// DeleteCourse
rActionUsers 删除Courser
ActionUsers记录
// DeleteCourse
ActionUsers 删除Course
ActionUsers记录
// Author [piexlmax](https://github.com/piexlmax)
func
(
course
rActionUsersService
*
CourserActionUsersService
)
DeleteCourserActionUsers
(
courserActionUsers
course
.
Courser
ActionUsers
)
(
err
error
)
{
err
=
global
.
GVA_DB
.
Delete
(
&
course
r
ActionUsers
)
.
Error
func
(
course
ActionUsersService
*
CourseActionUsersService
)
DeleteCourseActionUsers
(
courseActionUsers
course
.
Course
ActionUsers
)
(
err
error
)
{
err
=
global
.
GVA_DB
.
Delete
(
&
courseActionUsers
)
.
Error
return
err
}
// DeleteCourse
rActionUsersByIds 批量删除Courser
ActionUsers记录
// DeleteCourse
ActionUsersByIds 批量删除Course
ActionUsers记录
// Author [piexlmax](https://github.com/piexlmax)
func
(
course
rActionUsersService
*
CourserActionUsersService
)
DeleteCourser
ActionUsersByIds
(
ids
request
.
IdsReq
)
(
err
error
)
{
err
=
global
.
GVA_DB
.
Delete
(
&
[]
course
.
Course
r
ActionUsers
{},
"id in ?"
,
ids
.
Ids
)
.
Error
func
(
course
ActionUsersService
*
CourseActionUsersService
)
DeleteCourse
ActionUsersByIds
(
ids
request
.
IdsReq
)
(
err
error
)
{
err
=
global
.
GVA_DB
.
Delete
(
&
[]
course
.
CourseActionUsers
{},
"id in ?"
,
ids
.
Ids
)
.
Error
return
err
}
// UpdateCourse
rActionUsers 更新Courser
ActionUsers记录
// UpdateCourse
ActionUsers 更新Course
ActionUsers记录
// Author [piexlmax](https://github.com/piexlmax)
func
(
course
rActionUsersService
*
CourserActionUsersService
)
UpdateCourserActionUsers
(
courserActionUsers
course
.
Courser
ActionUsers
)
(
err
error
)
{
err
=
global
.
GVA_DB
.
Save
(
&
course
r
ActionUsers
)
.
Error
func
(
course
ActionUsersService
*
CourseActionUsersService
)
UpdateCourseActionUsers
(
courseActionUsers
course
.
Course
ActionUsers
)
(
err
error
)
{
err
=
global
.
GVA_DB
.
Save
(
&
courseActionUsers
)
.
Error
return
err
}
// GetCourse
rActionUsers 根据id获取Courser
ActionUsers记录
// GetCourse
ActionUsers 根据id获取Course
ActionUsers记录
// Author [piexlmax](https://github.com/piexlmax)
func
(
course
rActionUsersService
*
CourserActionUsersService
)
GetCourserActionUsers
(
id
uint
)
(
courserActionUsers
course
.
Courser
ActionUsers
,
err
error
)
{
err
=
global
.
GVA_DB
.
Where
(
"id = ?"
,
id
)
.
First
(
&
course
r
ActionUsers
)
.
Error
func
(
course
ActionUsersService
*
CourseActionUsersService
)
GetCourseActionUsers
(
id
uint
)
(
courseActionUsers
course
.
Course
ActionUsers
,
err
error
)
{
err
=
global
.
GVA_DB
.
Where
(
"id = ?"
,
id
)
.
First
(
&
courseActionUsers
)
.
Error
return
}
// GetCourse
rActionUsersInfoList 分页获取Courser
ActionUsers记录
// GetCourse
ActionUsersInfoList 分页获取Course
ActionUsers记录
// Author [piexlmax](https://github.com/piexlmax)
func
(
course
rActionUsersService
*
CourserActionUsersService
)
GetCourserActionUsersInfoList
(
info
courseReq
.
CourserActionUsersSearch
)
(
list
[]
course
.
Courser
ActionUsers
,
total
int64
,
err
error
)
{
func
(
course
ActionUsersService
*
CourseActionUsersService
)
GetCourseActionUsersInfoList
(
info
courseReq
.
CourseActionUsersSearch
)
(
list
[]
course
.
Course
ActionUsers
,
total
int64
,
err
error
)
{
limit
:=
info
.
PageSize
offset
:=
info
.
PageSize
*
(
info
.
Page
-
1
)
// 创建db
db
:=
global
.
GVA_DB
.
Model
(
&
course
.
Course
r
ActionUsers
{})
var
course
rActionUserss
[]
course
.
Courser
ActionUsers
db
:=
global
.
GVA_DB
.
Model
(
&
course
.
CourseActionUsers
{})
var
course
ActionUserss
[]
course
.
Course
ActionUsers
// 如果有条件搜索 下方会自动创建搜索语句
if
info
.
StartCreatedAt
!=
nil
&&
info
.
EndCreatedAt
!=
nil
{
db
=
db
.
Where
(
"created_at BETWEEN ? AND ?"
,
info
.
StartCreatedAt
,
info
.
EndCreatedAt
)
...
...
@@ -77,6 +77,6 @@ func (courserActionUsersService *CourserActionUsersService)GetCourserActionUsers
return
}
err
=
db
.
Limit
(
limit
)
.
Offset
(
offset
)
.
Find
(
&
course
r
ActionUserss
)
.
Error
return
course
r
ActionUserss
,
total
,
err
err
=
db
.
Limit
(
limit
)
.
Offset
(
offset
)
.
Find
(
&
courseActionUserss
)
.
Error
return
courseActionUserss
,
total
,
err
}
server/service/course/course
r
_banners.go
→
server/service/course/course_banners.go
View file @
20a82ef3
...
...
@@ -7,52 +7,52 @@ import (
courseReq
"courseSign/server/model/course/request"
)
type
Course
r
BannersService
struct
{
type
CourseBannersService
struct
{
}
// CreateCourse
rBanners 创建Courser
Banners记录
// CreateCourse
Banners 创建Course
Banners记录
// Author [piexlmax](https://github.com/piexlmax)
func
(
course
rBannersService
*
CourserBannersService
)
CreateCourserBanners
(
courserBanners
course
.
Courser
Banners
)
(
err
error
)
{
err
=
global
.
GVA_DB
.
Create
(
&
course
r
Banners
)
.
Error
func
(
course
BannersService
*
CourseBannersService
)
CreateCourseBanners
(
courseBanners
course
.
Course
Banners
)
(
err
error
)
{
err
=
global
.
GVA_DB
.
Create
(
&
courseBanners
)
.
Error
return
err
}
// DeleteCourse
rBanners 删除Courser
Banners记录
// DeleteCourse
Banners 删除Course
Banners记录
// Author [piexlmax](https://github.com/piexlmax)
func
(
course
rBannersService
*
CourserBannersService
)
DeleteCourserBanners
(
courserBanners
course
.
Courser
Banners
)
(
err
error
)
{
err
=
global
.
GVA_DB
.
Delete
(
&
course
r
Banners
)
.
Error
func
(
course
BannersService
*
CourseBannersService
)
DeleteCourseBanners
(
courseBanners
course
.
Course
Banners
)
(
err
error
)
{
err
=
global
.
GVA_DB
.
Delete
(
&
courseBanners
)
.
Error
return
err
}
// DeleteCourse
rBannersByIds 批量删除Courser
Banners记录
// DeleteCourse
BannersByIds 批量删除Course
Banners记录
// Author [piexlmax](https://github.com/piexlmax)
func
(
course
rBannersService
*
CourserBannersService
)
DeleteCourser
BannersByIds
(
ids
request
.
IdsReq
)
(
err
error
)
{
err
=
global
.
GVA_DB
.
Delete
(
&
[]
course
.
Course
r
Banners
{},
"id in ?"
,
ids
.
Ids
)
.
Error
func
(
course
BannersService
*
CourseBannersService
)
DeleteCourse
BannersByIds
(
ids
request
.
IdsReq
)
(
err
error
)
{
err
=
global
.
GVA_DB
.
Delete
(
&
[]
course
.
CourseBanners
{},
"id in ?"
,
ids
.
Ids
)
.
Error
return
err
}
// UpdateCourse
rBanners 更新Courser
Banners记录
// UpdateCourse
Banners 更新Course
Banners记录
// Author [piexlmax](https://github.com/piexlmax)
func
(
course
rBannersService
*
CourserBannersService
)
UpdateCourserBanners
(
courserBanners
course
.
Courser
Banners
)
(
err
error
)
{
err
=
global
.
GVA_DB
.
Save
(
&
course
r
Banners
)
.
Error
func
(
course
BannersService
*
CourseBannersService
)
UpdateCourseBanners
(
courseBanners
course
.
Course
Banners
)
(
err
error
)
{
err
=
global
.
GVA_DB
.
Save
(
&
courseBanners
)
.
Error
return
err
}
// GetCourse
rBanners 根据id获取Courser
Banners记录
// GetCourse
Banners 根据id获取Course
Banners记录
// Author [piexlmax](https://github.com/piexlmax)
func
(
course
rBannersService
*
CourserBannersService
)
GetCourserBanners
(
id
uint
)
(
courserBanners
course
.
Courser
Banners
,
err
error
)
{
err
=
global
.
GVA_DB
.
Where
(
"id = ?"
,
id
)
.
First
(
&
course
r
Banners
)
.
Error
func
(
course
BannersService
*
CourseBannersService
)
GetCourseBanners
(
id
uint
)
(
courseBanners
course
.
Course
Banners
,
err
error
)
{
err
=
global
.
GVA_DB
.
Where
(
"id = ?"
,
id
)
.
First
(
&
courseBanners
)
.
Error
return
}
// GetCourse
rBannersInfoList 分页获取Courser
Banners记录
// GetCourse
BannersInfoList 分页获取Course
Banners记录
// Author [piexlmax](https://github.com/piexlmax)
func
(
course
rBannersService
*
CourserBannersService
)
GetCourserBannersInfoList
(
info
courseReq
.
CourserBannersSearch
)
(
list
[]
course
.
Courser
Banners
,
total
int64
,
err
error
)
{
func
(
course
BannersService
*
CourseBannersService
)
GetCourseBannersInfoList
(
info
courseReq
.
CourseBannersSearch
)
(
list
[]
course
.
Course
Banners
,
total
int64
,
err
error
)
{
limit
:=
info
.
PageSize
offset
:=
info
.
PageSize
*
(
info
.
Page
-
1
)
// 创建db
db
:=
global
.
GVA_DB
.
Model
(
&
course
.
Course
r
Banners
{})
var
course
rBannerss
[]
course
.
Courser
Banners
db
:=
global
.
GVA_DB
.
Model
(
&
course
.
CourseBanners
{})
var
course
Bannerss
[]
course
.
Course
Banners
// 如果有条件搜索 下方会自动创建搜索语句
if
info
.
StartCreatedAt
!=
nil
&&
info
.
EndCreatedAt
!=
nil
{
db
=
db
.
Where
(
"created_at BETWEEN ? AND ?"
,
info
.
StartCreatedAt
,
info
.
EndCreatedAt
)
...
...
@@ -62,6 +62,6 @@ func (courserBannersService *CourserBannersService)GetCourserBannersInfoList(inf
return
}
err
=
db
.
Limit
(
limit
)
.
Offset
(
offset
)
.
Find
(
&
course
r
Bannerss
)
.
Error
return
course
r
Bannerss
,
total
,
err
err
=
db
.
Limit
(
limit
)
.
Offset
(
offset
)
.
Find
(
&
courseBannerss
)
.
Error
return
courseBannerss
,
total
,
err
}
server/service/course/course_signup.go
View file @
20a82ef3
...
...
@@ -2,9 +2,9 @@ package course
import
(
"courseSign/server/global"
"courseSign/server/model/course"
"courseSign/server/model/common/request"
courseReq
"courseSign/server/model/course/request"
"courseSign/server/model/course"
courseReq
"courseSign/server/model/course/request"
)
type
CourseSignupService
struct
{
...
...
@@ -51,8 +51,9 @@ func (courseSignupService *CourseSignupService)GetCourseSignupInfoList(info cour
limit
:=
info
.
PageSize
offset
:=
info
.
PageSize
*
(
info
.
Page
-
1
)
// 创建db
db
:=
global
.
GVA_DB
.
Model
(
&
course
.
CourseSignup
{})
db
:=
global
.
GVA_DB
.
Debug
()
.
Model
(
&
course
.
CourseSignup
{})
var
courseSignups
[]
course
.
CourseSignup
var
courseSignupsRead
[]
course
.
CourseSignupRead
// 如果有条件搜索 下方会自动创建搜索语句
if
info
.
StartCreatedAt
!=
nil
&&
info
.
EndCreatedAt
!=
nil
{
db
=
db
.
Where
(
"created_at BETWEEN ? AND ?"
,
info
.
StartCreatedAt
,
info
.
EndCreatedAt
)
...
...
@@ -64,10 +65,26 @@ func (courseSignupService *CourseSignupService)GetCourseSignupInfoList(info cour
db
=
db
.
Where
(
"cid = ?"
,
info
.
Cid
)
}
err
=
db
.
Count
(
&
total
)
.
Error
db
=
db
.
Select
(
"course_signup.*,course_users.address as addr,course_list.course_name"
)
.
Joins
(
"join course_users on course_users.id = course_signup.uid"
)
.
Joins
(
"join course_list on course_list.id = course_signup.cid"
)
if
err
!=
nil
{
return
}
err
=
db
.
Limit
(
limit
)
.
Offset
(
offset
)
.
Find
(
&
courseSignups
)
.
Error
err
=
db
.
Limit
(
limit
)
.
Offset
(
offset
)
.
Find
(
&
courseSignupsRead
)
.
Error
for
_
,
v
:=
range
courseSignupsRead
{
var
cs
course
.
CourseSignup
cs
.
ID
=
v
.
ID
cs
.
CourseName
=
v
.
CourseName
cs
.
Addr
=
v
.
Addr
cs
.
Uid
=
v
.
Uid
cs
.
Cid
=
v
.
Cid
cs
.
CreatedAt
=
v
.
CreatedAt
cs
.
IsPass
=
v
.
IsPass
courseSignups
=
append
(
courseSignups
,
cs
)
}
return
courseSignups
,
total
,
err
}
server/service/course/enter.go
View file @
20a82ef3
...
...
@@ -5,6 +5,6 @@ type ServiceGroup struct {
CourseActionService
CourseSignupService
CourseUsersService
Course
r
ActionUsersService
Course
r
BannersService
CourseActionUsersService
CourseBannersService
}
web/src/api/course
r
ActionUsers.js
→
web/src/api/courseActionUsers.js
View file @
20a82ef3
import
service
from
'@/utils/request'
// @Tags Course
r
ActionUsers
// @Summary 创建Course
r
ActionUsers
// @Tags CourseActionUsers
// @Summary 创建CourseActionUsers
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data body model.Course
rActionUsers true "创建Courser
ActionUsers"
// @Param data body model.Course
ActionUsers true "创建Course
ActionUsers"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
// @Router /course
rActionUsers/createCourser
ActionUsers [post]
export
const
createCourse
r
ActionUsers
=
(
data
)
=>
{
// @Router /course
ActionUsers/createCourse
ActionUsers [post]
export
const
createCourseActionUsers
=
(
data
)
=>
{
return
service
({
url
:
'/course
rActionUsers/createCourser
ActionUsers'
,
url
:
'/course
ActionUsers/createCourse
ActionUsers'
,
method
:
'post'
,
data
})
}
// @Tags Course
r
ActionUsers
// @Summary 删除Course
r
ActionUsers
// @Tags CourseActionUsers
// @Summary 删除CourseActionUsers
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data body model.Course
rActionUsers true "删除Courser
ActionUsers"
// @Param data body model.Course
ActionUsers true "删除Course
ActionUsers"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"删除成功"}"
// @Router /course
rActionUsers/deleteCourser
ActionUsers [delete]
export
const
deleteCourse
r
ActionUsers
=
(
data
)
=>
{
// @Router /course
ActionUsers/deleteCourse
ActionUsers [delete]
export
const
deleteCourseActionUsers
=
(
data
)
=>
{
return
service
({
url
:
'/course
rActionUsers/deleteCourser
ActionUsers'
,
url
:
'/course
ActionUsers/deleteCourse
ActionUsers'
,
method
:
'delete'
,
data
})
}
// @Tags Course
r
ActionUsers
// @Summary 删除Course
r
ActionUsers
// @Tags CourseActionUsers
// @Summary 删除CourseActionUsers
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data body request.IdsReq true "批量删除Course
r
ActionUsers"
// @Param data body request.IdsReq true "批量删除CourseActionUsers"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"删除成功"}"
// @Router /course
rActionUsers/deleteCourser
ActionUsers [delete]
export
const
deleteCourse
r
ActionUsersByIds
=
(
data
)
=>
{
// @Router /course
ActionUsers/deleteCourse
ActionUsers [delete]
export
const
deleteCourseActionUsersByIds
=
(
data
)
=>
{
return
service
({
url
:
'/course
rActionUsers/deleteCourser
ActionUsersByIds'
,
url
:
'/course
ActionUsers/deleteCourse
ActionUsersByIds'
,
method
:
'delete'
,
data
})
}
// @Tags Course
r
ActionUsers
// @Summary 更新Course
r
ActionUsers
// @Tags CourseActionUsers
// @Summary 更新CourseActionUsers
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data body model.Course
rActionUsers true "更新Courser
ActionUsers"
// @Param data body model.Course
ActionUsers true "更新Course
ActionUsers"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"更新成功"}"
// @Router /course
rActionUsers/updateCourser
ActionUsers [put]
export
const
updateCourse
r
ActionUsers
=
(
data
)
=>
{
// @Router /course
ActionUsers/updateCourse
ActionUsers [put]
export
const
updateCourseActionUsers
=
(
data
)
=>
{
return
service
({
url
:
'/course
rActionUsers/updateCourser
ActionUsers'
,
url
:
'/course
ActionUsers/updateCourse
ActionUsers'
,
method
:
'put'
,
data
})
}
// @Tags Course
r
ActionUsers
// @Summary 用id查询Course
r
ActionUsers
// @Tags CourseActionUsers
// @Summary 用id查询CourseActionUsers
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data query model.Course
rActionUsers true "用id查询Courser
ActionUsers"
// @Param data query model.Course
ActionUsers true "用id查询Course
ActionUsers"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"查询成功"}"
// @Router /course
rActionUsers/findCourser
ActionUsers [get]
export
const
findCourse
r
ActionUsers
=
(
params
)
=>
{
// @Router /course
ActionUsers/findCourse
ActionUsers [get]
export
const
findCourseActionUsers
=
(
params
)
=>
{
return
service
({
url
:
'/course
rActionUsers/findCourser
ActionUsers'
,
url
:
'/course
ActionUsers/findCourse
ActionUsers'
,
method
:
'get'
,
params
})
}
// @Tags Course
r
ActionUsers
// @Summary 分页获取Course
r
ActionUsers列表
// @Tags CourseActionUsers
// @Summary 分页获取CourseActionUsers列表
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data query request.PageInfo true "分页获取Course
r
ActionUsers列表"
// @Param data query request.PageInfo true "分页获取CourseActionUsers列表"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
// @Router /course
rActionUsers/getCourser
ActionUsersList [get]
export
const
getCourse
r
ActionUsersList
=
(
params
)
=>
{
// @Router /course
ActionUsers/getCourse
ActionUsersList [get]
export
const
getCourseActionUsersList
=
(
params
)
=>
{
return
service
({
url
:
'/course
rActionUsers/getCourser
ActionUsersList'
,
url
:
'/course
ActionUsers/getCourse
ActionUsersList'
,
method
:
'get'
,
params
})
...
...
web/src/api/course
r
Banners.js
→
web/src/api/courseBanners.js
View file @
20a82ef3
import
service
from
'@/utils/request'
// @Tags Course
r
Banners
// @Summary 创建Course
r
Banners
// @Tags CourseBanners
// @Summary 创建CourseBanners
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data body model.Course
rBanners true "创建Courser
Banners"
// @Param data body model.Course
Banners true "创建Course
Banners"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
// @Router /course
rBanners/createCourser
Banners [post]
export
const
createCourse
r
Banners
=
(
data
)
=>
{
// @Router /course
Banners/createCourse
Banners [post]
export
const
createCourseBanners
=
(
data
)
=>
{
return
service
({
url
:
'/course
rBanners/createCourser
Banners'
,
url
:
'/course
Banners/createCourse
Banners'
,
method
:
'post'
,
data
})
}
// @Tags Course
r
Banners
// @Summary 删除Course
r
Banners
// @Tags CourseBanners
// @Summary 删除CourseBanners
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data body model.Course
rBanners true "删除Courser
Banners"
// @Param data body model.Course
Banners true "删除Course
Banners"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"删除成功"}"
// @Router /course
rBanners/deleteCourser
Banners [delete]
export
const
deleteCourse
r
Banners
=
(
data
)
=>
{
// @Router /course
Banners/deleteCourse
Banners [delete]
export
const
deleteCourseBanners
=
(
data
)
=>
{
return
service
({
url
:
'/course
rBanners/deleteCourser
Banners'
,
url
:
'/course
Banners/deleteCourse
Banners'
,
method
:
'delete'
,
data
})
}
// @Tags Course
r
Banners
// @Summary 删除Course
r
Banners
// @Tags CourseBanners
// @Summary 删除CourseBanners
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data body request.IdsReq true "批量删除Course
r
Banners"
// @Param data body request.IdsReq true "批量删除CourseBanners"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"删除成功"}"
// @Router /course
rBanners/deleteCourser
Banners [delete]
export
const
deleteCourse
r
BannersByIds
=
(
data
)
=>
{
// @Router /course
Banners/deleteCourse
Banners [delete]
export
const
deleteCourseBannersByIds
=
(
data
)
=>
{
return
service
({
url
:
'/course
rBanners/deleteCourser
BannersByIds'
,
url
:
'/course
Banners/deleteCourse
BannersByIds'
,
method
:
'delete'
,
data
})
}
// @Tags Course
r
Banners
// @Summary 更新Course
r
Banners
// @Tags CourseBanners
// @Summary 更新CourseBanners
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data body model.Course
rBanners true "更新Courser
Banners"
// @Param data body model.Course
Banners true "更新Course
Banners"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"更新成功"}"
// @Router /course
rBanners/updateCourser
Banners [put]
export
const
updateCourse
r
Banners
=
(
data
)
=>
{
// @Router /course
Banners/updateCourse
Banners [put]
export
const
updateCourseBanners
=
(
data
)
=>
{
return
service
({
url
:
'/course
rBanners/updateCourser
Banners'
,
url
:
'/course
Banners/updateCourse
Banners'
,
method
:
'put'
,
data
})
}
// @Tags Course
r
Banners
// @Summary 用id查询Course
r
Banners
// @Tags CourseBanners
// @Summary 用id查询CourseBanners
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data query model.Course
rBanners true "用id查询Courser
Banners"
// @Param data query model.Course
Banners true "用id查询Course
Banners"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"查询成功"}"
// @Router /course
rBanners/findCourser
Banners [get]
export
const
findCourse
r
Banners
=
(
params
)
=>
{
// @Router /course
Banners/findCourse
Banners [get]
export
const
findCourseBanners
=
(
params
)
=>
{
return
service
({
url
:
'/course
rBanners/findCourser
Banners'
,
url
:
'/course
Banners/findCourse
Banners'
,
method
:
'get'
,
params
})
}
// @Tags Course
r
Banners
// @Summary 分页获取Course
r
Banners列表
// @Tags CourseBanners
// @Summary 分页获取CourseBanners列表
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data query request.PageInfo true "分页获取Course
r
Banners列表"
// @Param data query request.PageInfo true "分页获取CourseBanners列表"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
// @Router /course
rBanners/getCourser
BannersList [get]
export
const
getCourse
r
BannersList
=
(
params
)
=>
{
// @Router /course
Banners/getCourse
BannersList [get]
export
const
getCourseBannersList
=
(
params
)
=>
{
return
service
({
url
:
'/course
rBanners/getCourser
BannersList'
,
url
:
'/course
Banners/getCourse
BannersList'
,
method
:
'get'
,
params
})
...
...
web/src/view/courseAction/courseAction.vue
View file @
20a82ef3
...
...
@@ -95,9 +95,6 @@
</div>
<el-dialog
v-model=
"dialogFormVisible"
:before-close=
"closeDialog"
title=
"添加活动"
custom-class=
"user-dialog"
>
<el-form
:model=
"formData"
label-position=
"right"
ref=
"elFormRef"
:rules=
"rule"
label-width=
"80px"
>
<el-form-item
label=
"课程:"
prop=
"cid"
>
<el-input
v-model
.
number=
"formData.cid"
:clearable=
"true"
placeholder=
"请输入"
/>
</el-form-item>
<el-form-item
label=
"活动名称:"
prop=
"actionName"
>
<el-input
v-model=
"formData.actionName"
:clearable=
"true"
placeholder=
"请输入"
/>
</el-form-item>
...
...
@@ -127,7 +124,7 @@
</div>
</
template
>
</el-dialog>
<ChooseImg
ref=
"chooseImg"
:target=
"formData"
:target-key=
"`
b
anner`"
/>
<ChooseImg
ref=
"chooseImg"
:target=
"formData"
:target-key=
"`
actionB
anner`"
/>
</div>
</template>
...
...
@@ -148,17 +145,17 @@ import {
}
from
'@/api/courseAction'
// 全量引入格式化工具 请按需保留
import
{
useRouter
,
onBeforeRouteUpdate
}
from
'vue-router'
import
{
getDictFunc
,
formatDate
,
formatBoolean
,
filterDict
}
from
'@/utils/format'
import
{
ElMessage
,
ElMessageBox
}
from
'element-plus'
import
{
useRoute
,
onBeforeRouteUpdate
}
from
'vue-router'
import
{
ref
,
reactive
}
from
'vue'
import
ChooseImg
from
'@/components/chooseImg/index.vue'
const
path
=
ref
(
import
.
meta
.
env
.
VITE_BASE_API
+
'/'
)
const
route
r
=
useRouter
()
const
route
=
useRoute
()
//console.log(route)
onBeforeRouteUpdate
((
to
)
=>
{
if
(
to
.
name
===
'courseAction'
)
{
console
.
log
(
to
)
...
...
@@ -205,11 +202,11 @@ const total = ref(0)
const
pageSize
=
ref
(
10
)
const
tableData
=
ref
([])
const
searchInfo
=
ref
({})
//const searchInfo = ref({ cid: Number(route
r
.params.id) })
//const searchInfo = ref({ cid: Number(route.params.id) })
// 重置
const
onReset
=
()
=>
{
searchInfo
.
value
=
{
cid
:
Number
(
route
r
.
params
.
id
)
}
searchInfo
.
value
=
{
cid
:
Number
(
route
.
params
.
id
)
}
getTableData
()
}
...
...
@@ -360,6 +357,7 @@ const closeDialog = () => {
}
// 弹窗确定
const
enterDialog
=
async
()
=>
{
formData
.
value
.
aid
=
Number
(
route
.
params
.
id
)
elFormRef
.
value
?.
validate
(
async
(
valid
)
=>
{
if
(
!
valid
)
return
let
res
...
...
@@ -386,35 +384,35 @@ const enterDialog = async () => {
}
</
script
>
<
style
>
<
style
lang=
"scss"
>
.user-dialog
{
.header-img-box
{
width
:
200px
;
height
:
200px
;
border
:
1px
dashed
#ccc
;
border-radius
:
20px
;
text-align
:
center
;
line-height
:
200px
;
cursor
:
pointer
;
}
.avatar-uploader
.el-upload
:hover
{
border-color
:
#409eff
;
}
.avatar-uploader-icon
{
border
:
1px
dashed
#d9d9d9
!important
;
border-radius
:
6px
;
font-size
:
28px
;
color
:
#8c939d
;
width
:
178px
;
height
:
178px
;
line-height
:
178px
;
text-align
:
center
;
}
.avatar
{
width
:
178px
;
height
:
178px
;
display
:
block
;
}
.header-img-box
{
width
:
200px
;
height
:
200px
;
border
:
1px
dashed
#ccc
;
border-radius
:
20px
;
text-align
:
center
;
line-height
:
200px
;
cursor
:
pointer
;
}
.avatar-uploader
.el-upload
:hover
{
border-color
:
#409eff
;
}
.avatar-uploader-icon
{
border
:
1px
dashed
#d9d9d9
!
important
;
border-radius
:
6px
;
font-size
:
28px
;
color
:
#8c939d
;
width
:
178px
;
height
:
178px
;
line-height
:
178px
;
text-align
:
center
;
}
.avatar
{
width
:
178px
;
height
:
178px
;
display
:
block
;
}
}
.nickName
{
display
:
flex
;
...
...
web/src/view/courseActionUsers/courseActionUsers.vue
View file @
20a82ef3
...
...
@@ -84,7 +84,7 @@
</el-table-column>
<el-table-column
align=
"left"
label=
"按钮组"
>
<
template
#
default=
"scope"
>
<el-button
type=
"primary"
link
icon=
"edit"
class=
"table-button"
@
click=
"updateCourse
r
ActionUsersFunc(scope.row)"
>
变更
</el-button>
<el-button
type=
"primary"
link
icon=
"edit"
class=
"table-button"
@
click=
"updateCourseActionUsersFunc(scope.row)"
>
变更
</el-button>
<el-button
type=
"primary"
link
icon=
"delete"
@
click=
"deleteRow(scope.row)"
>
删除
</el-button>
</
template
>
</el-table-column>
...
...
@@ -131,19 +131,19 @@
<
script
>
export
default
{
name
:
'Course
r
ActionUsers'
name
:
'CourseActionUsers'
}
</
script
>
<
script
setup
>
import
{
createCourse
r
ActionUsers
,
deleteCourse
r
ActionUsers
,
deleteCourse
r
ActionUsersByIds
,
updateCourse
r
ActionUsers
,
findCourse
r
ActionUsers
,
getCourse
r
ActionUsersList
}
from
'@/api/course
r
ActionUsers'
createCourseActionUsers
,
deleteCourseActionUsers
,
deleteCourseActionUsersByIds
,
updateCourseActionUsers
,
findCourseActionUsers
,
getCourseActionUsersList
}
from
'@/api/courseActionUsers'
// 全量引入格式化工具 请按需保留
import
{
getDictFunc
,
formatDate
,
formatBoolean
,
filterDict
}
from
'@/utils/format'
...
...
@@ -203,7 +203,7 @@ const handleCurrentChange = (val) => {
// 查询
const
getTableData
=
async
()
=>
{
const
table
=
await
getCourse
r
ActionUsersList
({
page
:
page
.
value
,
pageSize
:
pageSize
.
value
,
...
searchInfo
.
value
})
const
table
=
await
getCourseActionUsersList
({
page
:
page
.
value
,
pageSize
:
pageSize
.
value
,
...
searchInfo
.
value
})
if
(
table
.
code
===
0
)
{
tableData
.
value
=
table
.
data
.
list
total
.
value
=
table
.
data
.
total
...
...
@@ -238,7 +238,7 @@ const deleteRow = (row) => {
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
deleteCourse
r
ActionUsersFunc
(
row
)
deleteCourseActionUsersFunc
(
row
)
})
}
...
...
@@ -260,7 +260,7 @@ const onDelete = async() => {
multipleSelection
.
value
.
map
(
item
=>
{
ids
.
push
(
item
.
ID
)
})
const
res
=
await
deleteCourse
r
ActionUsersByIds
({
ids
})
const
res
=
await
deleteCourseActionUsersByIds
({
ids
})
if
(
res
.
code
===
0
)
{
ElMessage
({
type
:
'success'
,
...
...
@@ -278,19 +278,19 @@ const onDelete = async() => {
const
type
=
ref
(
''
)
// 更新行
const
updateCourse
r
ActionUsersFunc
=
async
(
row
)
=>
{
const
res
=
await
findCourse
r
ActionUsers
({
ID
:
row
.
ID
})
const
updateCourseActionUsersFunc
=
async
(
row
)
=>
{
const
res
=
await
findCourseActionUsers
({
ID
:
row
.
ID
})
type
.
value
=
'update'
if
(
res
.
code
===
0
)
{
formData
.
value
=
res
.
data
.
recourse
r
ActionUsers
formData
.
value
=
res
.
data
.
recourseActionUsers
dialogFormVisible
.
value
=
true
}
}
// 删除行
const
deleteCourse
r
ActionUsersFunc
=
async
(
row
)
=>
{
const
res
=
await
deleteCourse
r
ActionUsers
({
ID
:
row
.
ID
})
const
deleteCourseActionUsersFunc
=
async
(
row
)
=>
{
const
res
=
await
deleteCourseActionUsers
({
ID
:
row
.
ID
})
if
(
res
.
code
===
0
)
{
ElMessage
({
type
:
'success'
,
...
...
@@ -330,13 +330,13 @@ const enterDialog = async () => {
let
res
switch
(
type
.
value
)
{
case
'create'
:
res
=
await
createCourse
r
ActionUsers
(
formData
.
value
)
res
=
await
createCourseActionUsers
(
formData
.
value
)
break
case
'update'
:
res
=
await
updateCourse
r
ActionUsers
(
formData
.
value
)
res
=
await
updateCourseActionUsers
(
formData
.
value
)
break
default
:
res
=
await
createCourse
r
ActionUsers
(
formData
.
value
)
res
=
await
createCourseActionUsers
(
formData
.
value
)
break
}
if
(
res
.
code
===
0
)
{
...
...
web/src/view/courseActionUsers/courseActionUsersForm.vue
View file @
20a82ef3
...
...
@@ -28,16 +28,16 @@
<
script
>
export
default
{
name
:
'Course
r
ActionUsers'
name
:
'CourseActionUsers'
}
</
script
>
<
script
setup
>
import
{
createCourse
r
ActionUsers
,
updateCourse
r
ActionUsers
,
findCourse
r
ActionUsers
}
from
'@/api/course
r
ActionUsers'
createCourseActionUsers
,
updateCourseActionUsers
,
findCourseActionUsers
}
from
'@/api/courseActionUsers'
// 自动获取字典
import
{
getDictFunc
}
from
'@/utils/format'
...
...
@@ -65,9 +65,9 @@ const elFormRef = ref()
const
init
=
async
()
=>
{
// 建议通过url传参获取目标数据ID 调用 find方法进行查询数据操作 从而决定本页面是create还是update 以下为id作为url参数示例
if
(
route
.
query
.
id
)
{
const
res
=
await
findCourse
r
ActionUsers
({
ID
:
route
.
query
.
id
})
const
res
=
await
findCourseActionUsers
({
ID
:
route
.
query
.
id
})
if
(
res
.
code
===
0
)
{
formData
.
value
=
res
.
data
.
recourse
r
ActionUsers
formData
.
value
=
res
.
data
.
recourseActionUsers
type
.
value
=
'update'
}
}
else
{
...
...
@@ -83,13 +83,13 @@ const save = async() => {
let
res
switch
(
type
.
value
)
{
case
'create'
:
res
=
await
createCourse
r
ActionUsers
(
formData
.
value
)
res
=
await
createCourseActionUsers
(
formData
.
value
)
break
case
'update'
:
res
=
await
updateCourse
r
ActionUsers
(
formData
.
value
)
res
=
await
updateCourseActionUsers
(
formData
.
value
)
break
default
:
res
=
await
createCourse
r
ActionUsers
(
formData
.
value
)
res
=
await
createCourseActionUsers
(
formData
.
value
)
break
}
if
(
res
.
code
===
0
)
{
...
...
web/src/view/courseBanners/courseBanners.vue
View file @
20a82ef3
...
...
@@ -44,7 +44,7 @@
<el-table-column
align=
"left"
label=
"详情"
prop=
"desc"
width=
"120"
/>
<el-table-column
align=
"left"
label=
"按钮组"
>
<
template
#
default=
"scope"
>
<el-button
type=
"primary"
link
icon=
"edit"
class=
"table-button"
@
click=
"updateCourse
r
BannersFunc(scope.row)"
>
变更
</el-button>
<el-button
type=
"primary"
link
icon=
"edit"
class=
"table-button"
@
click=
"updateCourseBannersFunc(scope.row)"
>
变更
</el-button>
<el-button
type=
"primary"
link
icon=
"delete"
@
click=
"deleteRow(scope.row)"
>
删除
</el-button>
</
template
>
</el-table-column>
...
...
@@ -89,19 +89,19 @@
<
script
>
export
default
{
name
:
'Course
r
Banners'
name
:
'CourseBanners'
}
</
script
>
<
script
setup
>
import
{
createCourse
r
Banners
,
deleteCourse
r
Banners
,
deleteCourse
r
BannersByIds
,
updateCourse
r
Banners
,
findCourse
r
Banners
,
getCourse
r
BannersList
}
from
'@/api/course
r
Banners'
createCourseBanners
,
deleteCourseBanners
,
deleteCourseBannersByIds
,
updateCourseBanners
,
findCourseBanners
,
getCourseBannersList
}
from
'@/api/courseBanners'
// 全量引入格式化工具 请按需保留
import
{
getDictFunc
,
formatDate
,
formatBoolean
,
filterDict
}
from
'@/utils/format'
...
...
@@ -158,7 +158,7 @@ const handleCurrentChange = (val) => {
// 查询
const
getTableData
=
async
()
=>
{
const
table
=
await
getCourse
r
BannersList
({
page
:
page
.
value
,
pageSize
:
pageSize
.
value
,
...
searchInfo
.
value
})
const
table
=
await
getCourseBannersList
({
page
:
page
.
value
,
pageSize
:
pageSize
.
value
,
...
searchInfo
.
value
})
if
(
table
.
code
===
0
)
{
tableData
.
value
=
table
.
data
.
list
total
.
value
=
table
.
data
.
total
...
...
@@ -193,7 +193,7 @@ const deleteRow = (row) => {
cancelButtonText
:
'取消'
,
type
:
'warning'
}).
then
(()
=>
{
deleteCourse
r
BannersFunc
(
row
)
deleteCourseBannersFunc
(
row
)
})
}
...
...
@@ -219,7 +219,7 @@ const onDelete = async() => {
multipleSelection
.
value
.
map
(
item
=>
{
ids
.
push
(
item
.
ID
)
})
const
res
=
await
deleteCourse
r
BannersByIds
({
ids
})
const
res
=
await
deleteCourseBannersByIds
({
ids
})
if
(
res
.
code
===
0
)
{
ElMessage
({
type
:
'success'
,
...
...
@@ -237,19 +237,19 @@ const onDelete = async() => {
const
type
=
ref
(
''
)
// 更新行
const
updateCourse
r
BannersFunc
=
async
(
row
)
=>
{
const
res
=
await
findCourse
r
Banners
({
ID
:
row
.
ID
})
const
updateCourseBannersFunc
=
async
(
row
)
=>
{
const
res
=
await
findCourseBanners
({
ID
:
row
.
ID
})
type
.
value
=
'update'
if
(
res
.
code
===
0
)
{
formData
.
value
=
res
.
data
.
recourse
r
Banners
formData
.
value
=
res
.
data
.
recourseBanners
dialogFormVisible
.
value
=
true
}
}
// 删除行
const
deleteCourse
r
BannersFunc
=
async
(
row
)
=>
{
const
res
=
await
deleteCourse
r
Banners
({
ID
:
row
.
ID
})
const
deleteCourseBannersFunc
=
async
(
row
)
=>
{
const
res
=
await
deleteCourseBanners
({
ID
:
row
.
ID
})
if
(
res
.
code
===
0
)
{
ElMessage
({
type
:
'success'
,
...
...
@@ -287,13 +287,13 @@ const enterDialog = async () => {
let
res
switch
(
type
.
value
)
{
case
'create'
:
res
=
await
createCourse
r
Banners
(
formData
.
value
)
res
=
await
createCourseBanners
(
formData
.
value
)
break
case
'update'
:
res
=
await
updateCourse
r
Banners
(
formData
.
value
)
res
=
await
updateCourseBanners
(
formData
.
value
)
break
default
:
res
=
await
createCourse
r
Banners
(
formData
.
value
)
res
=
await
createCourseBanners
(
formData
.
value
)
break
}
if
(
res
.
code
===
0
)
{
...
...
web/src/view/courseBanners/courseBannersForm.vue
View file @
20a82ef3
...
...
@@ -22,16 +22,16 @@
<
script
>
export
default
{
name
:
'Course
r
Banners'
name
:
'CourseBanners'
}
</
script
>
<
script
setup
>
import
{
createCourse
r
Banners
,
updateCourse
r
Banners
,
findCourse
r
Banners
}
from
'@/api/course
r
Banners'
createCourseBanners
,
updateCourseBanners
,
findCourseBanners
}
from
'@/api/courseBanners'
// 自动获取字典
import
{
getDictFunc
}
from
'@/utils/format'
...
...
@@ -57,9 +57,9 @@ const elFormRef = ref()
const
init
=
async
()
=>
{
// 建议通过url传参获取目标数据ID 调用 find方法进行查询数据操作 从而决定本页面是create还是update 以下为id作为url参数示例
if
(
route
.
query
.
id
)
{
const
res
=
await
findCourse
r
Banners
({
ID
:
route
.
query
.
id
})
const
res
=
await
findCourseBanners
({
ID
:
route
.
query
.
id
})
if
(
res
.
code
===
0
)
{
formData
.
value
=
res
.
data
.
recourse
r
Banners
formData
.
value
=
res
.
data
.
recourseBanners
type
.
value
=
'update'
}
}
else
{
...
...
@@ -75,13 +75,13 @@ const save = async() => {
let
res
switch
(
type
.
value
)
{
case
'create'
:
res
=
await
createCourse
r
Banners
(
formData
.
value
)
res
=
await
createCourseBanners
(
formData
.
value
)
break
case
'update'
:
res
=
await
updateCourse
r
Banners
(
formData
.
value
)
res
=
await
updateCourseBanners
(
formData
.
value
)
break
default
:
res
=
await
createCourse
r
Banners
(
formData
.
value
)
res
=
await
createCourseBanners
(
formData
.
value
)
break
}
if
(
res
.
code
===
0
)
{
...
...
web/src/view/courseSignup/courseSignup.vue
View file @
20a82ef3
...
...
@@ -9,7 +9,7 @@
</el-form-item>
<el-form-item
label=
"用户"
>
<el-input
v-model
.
number=
"searchInfo.
uid
"
placeholder=
"搜索条件"
/>
<el-input
v-model
.
number=
"searchInfo.
addr
"
placeholder=
"搜索条件"
/>
</el-form-item>
<el-form-item
label=
"课程"
>
...
...
@@ -25,7 +25,7 @@
</div>
<div
class=
"gva-table-box"
>
<div
class=
"gva-btn-list"
>
<el-button
type=
"primary"
icon=
"plus"
@
click=
"openDialog"
>
新增
</el-button
>
<!--
<el-button
type=
"primary"
icon=
"plus"
@
click=
"openDialog"
>
新增
</el-button>
--
>
<el-popover
v-model:visible=
"deleteVisible"
placement=
"top"
width=
"160"
>
<p>
确定要删除吗?
</p>
<div
style=
"text-align: right; margin-top: 8px;"
>
...
...
@@ -49,14 +49,14 @@
<el-table-column
align=
"left"
label=
"日期"
width=
"180"
>
<
template
#
default=
"scope"
>
{{
formatDate
(
scope
.
row
.
CreatedAt
)
}}
</
template
>
</el-table-column>
<el-table-column
align=
"left"
label=
"用户"
prop=
"
uid
"
width=
"120"
/>
<el-table-column
align=
"left"
label=
"课程"
prop=
"c
id
"
width=
"120"
/>
<el-table-column
align=
"left"
label=
"用户"
prop=
"
addr
"
width=
"120"
/>
<el-table-column
align=
"left"
label=
"课程"
prop=
"c
ourseName
"
width=
"120"
/>
<el-table-column
align=
"left"
label=
"通过 0 未 1 通过"
prop=
"isPass"
width=
"120"
>
<
template
#
default=
"scope"
>
{{
formatBoolean
(
scope
.
row
.
isPass
)
}}
</
template
>
</el-table-column>
<el-table-column
align=
"left"
label=
"按钮组"
>
<
template
#
default=
"scope"
>
<el-button
type=
"primary"
link
icon=
"edit"
class=
"table-button"
@
click=
"updateCourseSignupFunc(scope.row)"
>
变更
</el-button>
<el-button
type=
"primary"
link
icon=
"edit"
class=
"table-button"
@
click=
"updateCourseSignupFunc(scope.row)"
>
审核
</el-button>
<el-button
type=
"primary"
link
icon=
"delete"
@
click=
"deleteRow(scope.row)"
>
删除
</el-button>
</
template
>
</el-table-column>
...
...
@@ -75,13 +75,13 @@
</div>
<el-dialog
v-model=
"dialogFormVisible"
:before-close=
"closeDialog"
title=
"弹窗操作"
>
<el-form
:model=
"formData"
label-position=
"right"
ref=
"elFormRef"
:rules=
"rule"
label-width=
"80px"
>
<el-form-item
label=
"用户:"
prop=
"uid"
>
<el-input
v-model
.
number=
"formData.uid"
:clearable=
"true"
placeholder=
"请输入"
/
>
</el-form-item
>
<el-form-item
label=
"课程:"
prop=
"cid"
>
<el-input
v-model
.
number=
"formData.cid"
:clearable=
"true"
placeholder=
"请输入"
/
>
</el-form-item
>
<el-form-item
label=
"通过
0 未 1 通过
:"
prop=
"isPass"
>
<!-- <el-form-item label="用户:" prop="uid" >--
>
<!-- <el-input v-model.number="formData.uid" :clearable="true" placeholder="请输入" />--
>
<!-- </el-form-item>--
>
<!-- <el-form-item label="课程:" prop="cid" >--
>
<!-- <el-input v-model.number="formData.cid" :clearable="true" placeholder="请输入" />--
>
<!-- </el-form-item>--
>
<el-form-item
label=
"通过:"
prop=
"isPass"
>
<el-switch
v-model=
"formData.isPass"
active-color=
"#13ce66"
inactive-color=
"#ff4949"
active-text=
"是"
inactive-text=
"否"
clearable
></el-switch>
</el-form-item>
</el-form>
...
...
web/src/view/courseUsers/courseUsers.vue
View file @
20a82ef3
...
...
@@ -116,9 +116,9 @@
<el-form-item
label=
"电话:"
prop=
"phone"
>
<el-input
v-model=
"formData.phone"
:clearable=
"true"
placeholder=
"请输入"
/>
</el-form-item>
<el-form-item
label=
"头像:"
prop=
"photo"
>
<el-input
v-model=
"formData.photo"
:clearable=
"true"
placeholder=
"请输入"
/
>
</el-form-item
>
<!-- <el-form-item label="头像:" prop="photo" >--
>
<!-- <el-input v-model="formData.photo" :clearable="true" placeholder="请输入" />--
>
<!-- </el-form-item>--
>
<el-form-item
label=
"公司:"
prop=
"company"
>
<el-input
v-model=
"formData.company"
:clearable=
"true"
placeholder=
"请输入"
/>
</el-form-item>
...
...
web/src/view/twiActTemplate/twiActTemplate.vue
View file @
20a82ef3
...
...
@@ -152,7 +152,7 @@ const path = ref(import.meta.env.VITE_BASE_API + '/')
const
twi_act_temp_typeOptions
=
ref
([])
const
twi_act_templateOptions
=
ref
([])
const
route
=
useRoute
()
console
.
log
(
route
)
onBeforeRouteUpdate
((
to
)
=>
{
if
(
to
.
name
===
'twiActTemplate'
)
{
searchInfo
.
value
.
actId
=
to
.
params
.
Id
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
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 comment