Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
jijin
/
dance-pc
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
9dc18f50
authored
2024-05-27 17:58:43 +0800
by
杨炀
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
大师课
1 parent
c1726908
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
218 additions
and
52 deletions
src/apiPc/common.js
src/viewsPc/components/masterClass.vue
src/viewsPc/home.vue
src/viewsPc/index.vue
src/viewsPc/index_en.vue
vite.config.js
src/apiPc/common.js
View file @
9dc18f5
...
...
@@ -47,6 +47,7 @@ export function newbilllist(query) {
params
:
query
})
}
export
function
vistorRegister
(
data
)
{
return
request
({
url
:
`/pcSimpleRegister`
,
...
...
@@ -68,3 +69,40 @@ export function upgradeTeam(data) {
data
:
data
})
}
export
function
submitMasterApply
(
data
)
{
return
request
({
url
:
`/league/courseUser`
,
method
:
'post'
,
data
:
data
})
}
export
function
masterClassList
(
query
)
{
return
request
({
url
:
`/league/courseItem/list`
,
method
:
'get'
,
params
:
query
})
}
export
function
getByCard
(
query
)
{
return
request
({
url
:
`/league/courseUser/getByCard`
,
method
:
'get'
,
params
:
query
})
}
export
function
getMasterApply
(
query
)
{
return
request
({
url
:
`/league/courseUser/getCourseByUser`
,
method
:
'get'
,
params
:
query
})
}
export
function
delByCard
(
card
)
{
return
request
({
url
:
`/league/courseUser/delByCard?card=
${
card
}
`
,
method
:
'delete'
})
}
...
...
src/viewsPc/components/masterClass.vue
View file @
9dc18f5
...
...
@@ -5,25 +5,29 @@
destroy-on-close
>
<div
class=
"boxInvitation pd20"
>
<div
class=
"text-center pd20"
v-if=
"showR"
>
<img
class=
"mauto"
src=
"@/assets/dance/ok.png"
/>
<!--
<h2
class=
"text-center"
>
{{
language
==
0
?
'申请已提交'
:
'Submitted successfully'
}}
</h2>
-->
<h4
class=
"text-center"
v-if=
"language == 0"
>
我们已收到您的邀请函申请,并将尽快处理。请耐心等待。
</h4>
<h4
v-else
>
Your invitation letter application has been received,
<br/>
and we will process it as soon as possible.
<el-steps
:active=
"activeStep"
align-center
class=
"mb20"
>
<el-step
:title=
"language==0?'报名须知':'Notice'"
/>
<el-step
:title=
"language==0?'填写信息':'Information'"
/>
<el-step
:title=
"language==0?'选择课程':'Courses'"
/>
</el-steps>
<div
v-if=
"activeStep==0"
>
<div
class=
"mb60"
>
1.每班够开课标准后,将电话通知开课时间,请保持电话畅通。
<br/>
Please be patient while waiting.
</h4>
<el-button
size=
"large"
type=
"primary"
@
click=
"conti"
round
class=
"btn-lineG"
>
{{
language
==
0
?
'继续提交'
:
'Continue To Submit'
}}
</el-button>
2.报名缴费成功后五日内,可申请全额退费;时间超出五日,申请退费则需缴纳总课程费用的20%(占用名额手续费);第二节课(含第二节)后不再接收办理退费事宜。(退费到账时间预计二十个工作日完成)
<br/>
3.我单位所有培训课程根据法定节假日正常休息,如遇不可抗力,课程顺延。
<br/>
4.课程所需书本教材、部分课程画笔颜料、舞蹈服装、跳绳等学习用品皆需学员自行准备。
<br/>
5.学员在首次开课前需填写免责协议书并交给所在班级的班主任。
</div>
<el-form
:model=
"form"
:rules=
"rules"
ref=
"iformRef"
label-position=
"right"
label-width=
"150px"
v-else
>
<div
class=
"text-center"
>
<el-button
type=
"primary"
class=
"btn-lineG"
round
@
click=
"setActive(1)"
>
下一步
</el-button>
</div>
</div>
<div
v-if=
"activeStep==1"
>
<el-form
:model=
"form"
:rules=
"rules"
ref=
"iformRef"
label-position=
"right"
:label-width=
"language==0?'80px':'150px'"
>
<el-form-item
:label=
"language==0?'姓名':'Name'"
required
prop=
"name"
>
<el-input
v-model=
"form.name"
/>
</el-form-item>
...
...
@@ -49,8 +53,8 @@
<el-form-item
:label=
"language==0?'邮箱':'Email'"
required
prop=
"email"
>
<el-input
v-model=
"form.email"
type=
"email"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'护照号':'Passport
No.'"
required
prop=
"passportNo"
>
<el-input
v-model=
"form.passportNo
"
/>
<el-form-item
:label=
"language==0?'证件号':'ID
No.'"
required
prop=
"passportNo"
>
<el-input
v-model=
"form.passportNo"
@
blur=
"checkCard
"
/>
</el-form-item>
<el-form-item
:label=
"language==0?'有效证件':'Passport Copy'"
required
prop=
"passportCopy"
>
<image-upload
v-model=
"form.passportCopy"
:limit=
"1"
:is-show-tip=
"false"
...
...
@@ -75,12 +79,48 @@
</el-form-item>
<div
class=
"text-center"
>
<el-button
type=
"primary"
size=
"large"
@
click=
"submit"
round
class=
"btn-lineG"
>
{{
language
==
0
?
'提交'
:
'SUBMIT'
}}
<el-button
size=
"large"
@
click=
"setActive(0)"
round
plain
type=
"primary"
>
{{
language
==
0
?
'上一步'
:
'PREV'
}}
</el-button>
<el-button
type=
"primary"
size=
"large"
@
click=
"checkApplyCourse(2)"
round
class=
"btn-lineG"
>
{{
language
==
0
?
'下一步'
:
'NEXT'
}}
</el-button>
</div>
</el-form>
</div>
<div
v-if=
"activeStep==2"
>
<div
class=
"text-center pd20"
v-if=
"showR"
>
<img
class=
"mauto"
src=
"@/assets/dance/ok.png"
/>
<h2
class=
"text-center"
>
{{
language
==
0
?
'申请已提交'
:
'Submitted successfully'
}}
</h2>
<h4
class=
"text-center"
v-if=
"language == 0"
>
我们已收到您的申请,并将尽快处理。请耐心等待。
</h4>
<h4
v-else
>
Your application has been received,
<br/>
and we will process it as soon as possible.
<br/>
Please be patient while waiting.
</h4>
</div>
<div
v-else
>
<div
class=
"tip text-danger mb20"
>
*选择参加的课程(最少一项,最多两项)
</div>
<el-checkbox-group
size=
"large"
v-model=
"form.courseId"
@
change=
"courseChange"
>
<div
v-for=
"c in courseList"
class=
"mb20"
>
<el-checkbox
:value=
"c.id"
border
class=
"w100"
:disabled=
"(form.courseId?.length>=2&&form.courseId.indexOf(c.id)==-1)||disChoose"
>
{{
language
==
0
?
c
.
name
:
c
.
nameEn
}}
</el-checkbox>
</div>
</el-checkbox-group>
<div
class=
"text-center"
>
<el-button
size=
"large"
@
click=
"setActive(1)"
round
plain
type=
"primary"
>
{{
language
==
0
?
'上一步'
:
'PREV'
}}
</el-button>
<el-button
type=
"primary"
v-if=
"!disChoose"
size=
"large"
@
click=
"submit"
round
class=
"btn-lineG w200px"
>
{{
language
==
0
?
'提交'
:
'SUBMIT'
}}
</el-button>
</div>
</div>
</div>
</div>
</el-dialog>
</
template
>
...
...
@@ -92,6 +132,7 @@ import {nextTick} from "@vue/runtime-core";
import
{
ElMessage
,
ElMessageBox
}
from
"element-plus"
;
import
{
addInvitation
,
countryList
}
from
"@/apiPc/match"
;
import
ImageUpload
from
"@/components/ImageUpload"
;
import
{
masterClassList
,
getByCard
,
submitMasterApply
,
getMasterApply
,
delByCard
}
from
"@/apiPc/common"
;
const
{
proxy
}
=
getCurrentInstance
()
const
language
=
useStorage
(
'language'
,
0
)
...
...
@@ -100,8 +141,11 @@ const form = ref({
})
const
show
=
ref
(
false
)
const
showR
=
ref
(
false
)
const
disChoose
=
ref
(
false
)
const
title
=
ref
(
''
)
const
activeStep
=
ref
(
0
)
const
countrys
=
ref
([])
const
courseList
=
ref
([])
const
cptId
=
ref
(
''
)
const
rules
=
ref
(
{
...
...
@@ -119,6 +163,7 @@ const open = (params) => {
show
.
value
=
true
title
.
value
=
params
.
title
cptId
.
value
=
params
.
cptId
getCourse
()
}
defineExpose
({
open
})
watch
(
show
,
(
value
)
=>
{
...
...
@@ -134,6 +179,71 @@ watch(show, (value) => {
// proxy.$refs['dialogRef'].clearValidate()
})
})
function
getCourse
()
{
masterClassList
({
cptId
:
'1777256058082189313'
}).
then
(
res
=>
{
courseList
.
value
=
res
.
rows
})
}
function
setActive
(
n
)
{
activeStep
.
value
=
n
}
function
courseChange
(
e
){
console
.
log
(
'已选'
,
e
)
}
function
checkApplyCourse
(
n
)
{
getMasterApply
({
card
:
form
.
value
.
passportNo
}).
then
(
res
=>
{
if
(
res
.
data
?.
length
>
0
){
form
.
value
.
courseId
=
[]
for
(
var
n
of
res
.
data
){
form
.
value
.
courseId
.
push
(
n
.
itemId
)
}
ElMessageBox
.
confirm
(
language
.
value
==
0
?
'您已提交过信息,是否更新?'
:
'You have submitted the information, do you want to update?'
,
language
.
value
==
0
?
'提示'
:
'Tips'
,
{
confirmButtonText
:
language
.
value
==
0
?
'是'
:
'Confirm'
,
cancelButtonText
:
language
.
value
==
0
?
'否'
:
'Cancel'
,
type
:
'warning'
}).
then
(()
=>
{
//删除原记录
delByCard
(
form
.
value
.
passportNo
).
then
(
res
=>
{
form
.
value
.
courseId
=
[]
disChoose
.
value
=
false
to2
()
})
}).
catch
(()
=>
{
disChoose
.
value
=
true
to2
()
})
}
else
{
to2
()
}
})
}
function
to2
()
{
proxy
.
$refs
.
iformRef
.
validate
(
valid
=>
{
if
(
form
.
value
.
email
.
indexOf
(
'@'
)
==
-
1
)
{
if
(
language
.
value
==
0
)
{
ElMessage
.
warning
(
'请填写正确的邮箱'
)
}
else
{
ElMessage
.
warning
(
'Please fill in the correct email'
)
}
return
}
if
(
valid
)
{
setActive
(
2
)
}
})
}
function
checkCard
()
{
getByCard
({
card
:
form
.
value
.
passportNo
}).
then
(
res
=>
{
if
(
res
.
data
){
form
.
value
=
res
.
data
}
})
}
getCountryList
()
function
getCountryList
()
{
...
...
@@ -143,34 +253,35 @@ function getCountryList() {
}
const
submit
=
()
=>
{
proxy
.
$refs
.
iformRef
.
validate
(
valid
=>
{
if
(
form
.
value
.
email
.
indexOf
(
'@'
)
==
-
1
)
{
if
(
form
.
value
.
courseId
.
length
==
0
)
{
if
(
language
.
value
==
0
)
{
ElMessage
.
warning
(
'请填写正确的邮箱
'
)
ElMessage
.
warning
(
'请至少选择一门课程
'
)
}
else
{
ElMessage
.
warning
(
'Please fill in the correct email
'
)
ElMessage
.
warning
(
'Please select at least one course
'
)
}
return
}
if
(
valid
)
{
ElMessageBox
.
confirm
(
language
.
value
==
0
?
'请确认信息正确并提交吗?'
:
'Please confirm that the information is correct and submit it
'
,
language
.
value
==
0
?
'确认提交吗?'
:
'Are you sure to submit?
'
,
language
.
value
==
0
?
'提示'
:
'Tips'
,
{
confirmButtonText
:
language
.
value
==
0
?
'确定'
:
'Confirm'
,
cancelButtonText
:
language
.
value
==
0
?
'取消'
:
'Cancel'
,
type
:
'warning'
}).
then
(()
=>
{
form
.
value
.
cptId
=
cptId
.
value
//
form.value.cptId = cptId.value
if
(
Array
.
isArray
(
form
.
value
.
passportCopy
))
{
form
.
value
.
passportCopy
=
form
.
value
.
passportCopy
[
0
].
url
}
addInvitation
(
form
.
value
).
then
((
res
)
=>
{
// form.value.courseId = form.value.courseId.toString()
form
.
value
.
itemIds
=
form
.
value
.
courseId
.
toString
()
delete
form
.
value
.
courseId
submitMasterApply
(
form
.
value
).
then
((
res
)
=>
{
ElMessage
.
success
(
language
.
value
==
0
?
'提交成功'
:
'Successfully!'
)
showR
.
value
=
true
}).
catch
(()
=>
{
})
})
}
})
}
const
conti
=
()
=>
{
showR
.
value
=
false
...
...
src/viewsPc/home.vue
View file @
9dc18f5
<
template
>
<div>
<index-Ch
v-if=
"language ==0"
/>
<index-En
v-else
/>
<index-Ch
v-if=
"language ==0"
@
pop=
"openMaster"
/>
<index-En
v-else
@
pop=
"openMaster"
/>
<div
v-if=
"showgg"
class=
"fixed_gg"
>
<!--天气-->
<el-icon
class=
"cclose"
@
click
.
stop=
"showgg=false"
><circle-close
/></el-icon>
...
...
@@ -59,6 +59,8 @@
</div>
</el-dialog>
</div>
<dialog-master-class
ref=
"masterClassRef"
/>
</div>
</
template
>
...
...
@@ -67,10 +69,12 @@
import
IndexCh
from
'/src/viewsPc/index'
import
IndexEn
from
'/src/viewsPc/index_en'
import
WeatherIcon
from
'@/viewsPc/components/weatherIcon'
import
DialogMasterClass
from
'@/viewsPc/components/masterClass'
import
{
useStorage
}
from
"@vueuse/core/index"
;
import
{
ref
}
from
"vue"
;
import
{
getWeather
}
from
"@/apiPc/webSite"
;
import
{
getCurrentInstance
}
from
"@vue/runtime-core"
;
const
{
proxy
}
=
getCurrentInstance
()
const
showgg
=
ref
(
true
)
const
language
=
useStorage
(
'language'
,
0
)
...
...
@@ -91,7 +95,14 @@ function init(){
const
popWeather
=
()
=>
{
weatherdialog
.
value
=
true
}
const
openMaster
=
(
params
)
=>
{
console
.
log
(
params
)
var
obj
=
{
title
:
'大师课申请'
,
cptId
:
params
.
cptId
}
proxy
.
$refs
[
'masterClassRef'
].
open
(
obj
)
}
</
script
>
<
style
scoped
lang=
"scss"
>
...
...
src/viewsPc/index.vue
View file @
9dc18f5
...
...
@@ -94,7 +94,7 @@
</el-icon>
</a>
<el-button>
大师公益课报名
</el-button>
<el-button
class=
"zn-btn ml20"
@
click=
"popMaster"
>
大师公益课报名
</el-button>
</div>
</el-col>
<el-col
:sm=
"24"
:lg=
"14"
>
...
...
@@ -361,7 +361,7 @@ import HomeQuick from '@/viewsPc/components/homeQuick'
import
HomeCalendar
from
'@/viewsPc/components/homeCalendar'
import
{
ref
,
nextTick
,
onMounted
,
watch
}
from
'vue'
import
{
getCurrentInstance
}
from
'@vue/runtime-core'
import
{
getHomePage
,
getNewsListById
,
getNewsList
,
getWeather
}
from
'@/apiPc/webSite'
import
{
getHomePage
,
getNewsListById
,
getNewsList
}
from
'@/apiPc/webSite'
import
{
useRouter
}
from
'vue-router'
import
{
rankList
}
from
'@/assets/js/data'
import
_
from
'lodash'
...
...
@@ -377,14 +377,7 @@ const navigationPic = ref({
})
const
router
=
useRouter
()
const
{
proxy
}
=
getCurrentInstance
()
const
bannerVideo
=
ref
(
null
)
const
isPlay
=
ref
(
false
)
const
canPrev
=
ref
(
false
)
const
canNext
=
ref
(
false
)
const
activeRankName
=
ref
(
0
)
const
weatherObj
=
ref
({
forecast
:[]
})
const
emit
=
defineEmits
([
'pop'
])
const
time
=
ref
(
0
)
const
personList
=
ref
([
{
name
:
'Wolfgang Eliasch'
,
pp
:
'拉丁舞裁判长 奥地利'
,
src
:
'/img/1.png'
},
...
...
@@ -402,12 +395,10 @@ const news = ref([])
const
notice
=
ref
([])
const
display
=
ref
([])
const
scores
=
ref
([])
const
nowscores
=
ref
([])
const
livelist
=
ref
([])
const
matchData
=
ref
({})
const
maList
=
ref
([])
const
loading
=
ref
(
false
)
const
weatherdialog
=
ref
(
false
)
const
picList
=
ref
([])
onMounted
(()
=>
{
...
...
@@ -493,9 +484,6 @@ const goMatch = (n) => {
path
:
`/match/list/
${
n
.
id
}
`
})
}
const
popWeather
=
()
=>
{
weatherdialog
.
value
=
true
}
const
goGuide
=
()
=>
{
router
.
push
({
...
...
@@ -505,6 +493,13 @@ const goGuide = () => {
}
})
}
const
popMaster
=
()
=>
{
var
params
=
{
cptId
:
matchData
.
value
.
id
}
emit
(
'pop'
,
params
)
}
</
script
>
<
style
scoped
lang=
"scss"
>
...
...
src/viewsPc/index_en.vue
View file @
9dc18f5
...
...
@@ -89,6 +89,10 @@
GUIDELINE
<el-icon><download
/></el-icon>
</a>
<a
@
click=
"popMaster"
>
</a>
</div>
</el-col>
<el-col
:sm=
"24"
:lg=
"14"
>
...
...
@@ -385,6 +389,7 @@ const navigationPic = ref({
})
const
router
=
useRouter
()
const
{
proxy
}
=
getCurrentInstance
()
const
emit
=
defineEmits
([
'pop'
])
const
time
=
ref
(
0
)
const
personList
=
ref
([
...
...
@@ -498,6 +503,12 @@ const goGuide = () => {
}
})
}
const
popMaster
=
()
=>
{
var
params
=
{
cptId
:
matchData
.
value
.
id
}
emit
(
'pop'
,
params
)
}
</
script
>
<
style
scoped
lang=
"scss"
>
...
...
vite.config.js
View file @
9dc18f5
...
...
@@ -82,9 +82,9 @@ export default defineConfig(({ mode, command }) => {
rewrite
:
(
p
)
=>
p
.
replace
(
/^
\/
dev-api
\/
ztx-webSite/
,
''
)
},
'/dev-api'
:
{
// target: 'http://192.168.1.118:8081/',
target
:
'http://192.168.1.118:8081/'
,
// target: 'https://jijin.wtwuxicenter.com/stage-api',
// target: 'https://jijin.wtwuxicenter.com/stage-api',
target
:
'https://jijin.wtwuxicenter.com/stage-api'
,
changeOrigin
:
true
,
rewrite
:
(
p
)
=>
p
.
replace
(
/^
\/
dev-api/
,
''
)
}
...
...
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