Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
project-online-fi
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
project-online-fi
Commits
3c8079d9
提交
3c8079d9
authored
11月 23, 2022
作者:
matian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
updates
上级
da6e909b
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
9 个修改的文件
包含
212 行增加
和
31 行删除
+212
-31
base.ts
src/api/base.ts
+2
-2
PreviewFiles.vue
src/components/base/PreviewFiles.vue
+111
-0
RightAside.vue
src/components/layout/RightAside.vue
+1
-2
Course.vue
src/modules/home/components/Course.vue
+0
-0
Confirm.vue
src/modules/pay/components/Confirm.vue
+19
-1
ContactDialog.vue
src/modules/shop/components/ContactDialog.vue
+70
-24
CourseFooter.vue
src/modules/shop/components/CourseFooter.vue
+2
-0
CourseList.vue
src/modules/shop/components/CourseList.vue
+6
-2
DetailBanner.vue
src/modules/shop/components/DetailBanner.vue
+1
-0
没有找到文件。
src/api/base.ts
浏览文件 @
3c8079d9
...
@@ -53,8 +53,8 @@ export function checkCode(params: any) {
...
@@ -53,8 +53,8 @@ export function checkCode(params: any) {
/**
/**
* 提交留咨信息
* 提交留咨信息
*/
*/
export
function
postNes
(
data
:
any
)
{
export
function
postNes
(
data
:
any
)
{
return
httpRequest
.
post
(
'/api/enrollment/v1.0/applications'
,
data
,
{
return
httpRequest
.
post
(
'
https://project-api.ezijing.com
/api/enrollment/v1.0/applications'
,
data
,
{
headers
:
{
'Content-Type'
:
'multipart/form-data'
}
headers
:
{
'Content-Type'
:
'multipart/form-data'
}
})
})
}
}
...
...
src/components/base/PreviewFiles.vue
0 → 100644
浏览文件 @
3c8079d9
<
script
setup
lang=
"ts"
>
const
props
=
defineProps
({
item
:
{
type
:
Object
,
require
:
true
}
})
const
isShowType
:
any
=
ref
(
1
)
// 判断用什么标签展示内容
if
(
props
.
item
?.
url
?.
indexOf
(
'.pdf'
)
!==
-
1
||
props
.
item
?.
url
?.
indexOf
(
'.txt'
)
!==
-
1
)
{
isShowType
.
value
=
2
}
else
if
(
props
.
item
?.
url
?.
indexOf
(
'.mp4'
)
!==
-
1
)
{
isShowType
.
value
=
3
}
else
if
(
props
.
item
?.
url
?.
indexOf
(
'.mp3'
)
!==
-
1
)
{
isShowType
.
value
=
4
}
else
if
(
props
.
item
?.
url
?.
indexOf
(
'.png'
)
!==
-
1
||
props
.
item
?.
url
?.
indexOf
(
'.jpg'
)
!==
-
1
||
props
.
item
?.
url
?.
indexOf
(
'.jpeg'
)
!==
-
1
)
{
isShowType
.
value
=
5
}
else
if
(
props
.
item
?.
url
?.
indexOf
(
'.rar'
)
!==
-
1
||
props
.
item
?.
url
?.
indexOf
(
'.zip'
)
!==
-
1
)
{
isShowType
.
value
=
6
}
</
script
>
<
template
>
<el-card>
<div
class=
"max-w-h"
>
<iframe
v-if=
"isShowType === 1"
:src=
"`https://view.officeapps.live.com/op/view.aspx?src=$
{props.item?.url}`"
>
</iframe>
<embed
:src=
"props.item?.url"
v-else-if=
"isShowType === 2"
/>
<video
v-else-if=
"isShowType === 3"
controls
id=
"video"
>
<source
:src=
"props.item?.url"
/>
</video>
<audio
v-else-if=
"isShowType === 4"
:src=
"props.item?.url"
controls
></audio>
<img
v-else-if=
"isShowType === 5"
:src=
"props.item?.url"
/>
<div
v-else-if=
"isShowType === 6"
class=
"zip_con"
>
<a
:href=
"props.item?.url"
style=
"color: #aa1941"
>
<img
v-if=
"props.item?.url?.indexOf('.rar') !== -1"
src=
"https://webapp-pub.ezijing.com/center_resource/rar.png"
class=
"img_zip"
/>
<img
v-else-if=
"props.item?.url?.indexOf('.zip') !== -1"
src=
"https://webapp-pub.ezijing.com/center_resource/zip.png"
class=
"img_zip"
/>
{{
props
.
item
?.
name
}}
</a>
<div
class=
"zip_tips"
>
* 该文件格式暂不支持预览,可点击上方文件名下载
</div>
</div>
</div>
</el-card>
</
template
>
<
style
lang=
"scss"
scoped
>
.max-w-h
{
// max-width: 1200px;
width
:
100%
;
height
:
600px
;
margin
:
0
auto
;
display
:
flex
;
justify-content
:
center
;
iframe
,
embed
,
video
{
width
:
100%
;
height
:
100%
;
}
.zip_con
{
border
:
1px
solid
#ccc
;
width
:
100%
;
display
:
block
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
flex-direction
:
column
;
}
.img_zip
{
width
:
100px
;
height
:
100px
;
margin
:
auto
;
}
.zip_tips
{
font-size
:
14px
;
margin-top
:
10px
;
}
img
{
width
:
100%
;
display
:
block
;
}
}
</
style
>
src/components/layout/RightAside.vue
浏览文件 @
3c8079d9
...
@@ -7,7 +7,6 @@ export default {
...
@@ -7,7 +7,6 @@ export default {
return
{
return
{
tabBtnActive
:
false
,
tabBtnActive
:
false
,
tabBtnTarget
:
''
,
tabBtnTarget
:
''
,
projectName
:
'金融硕士保研项目'
,
sendCode
:
''
,
sendCode
:
''
,
isBtnDisabled
:
false
,
isBtnDisabled
:
false
,
formInfo
:
{
formInfo
:
{
...
@@ -267,7 +266,7 @@ export default {
...
@@ -267,7 +266,7 @@ export default {
}
}
.tab_cont
{
.tab_cont
{
position
:
absolute
;
position
:
absolute
;
left
:
-3
60
px
;
left
:
-3
46
px
;
top
:
-120px
;
top
:
-120px
;
width
:
346px
;
width
:
346px
;
height
:
390px
;
height
:
390px
;
...
...
src/modules/home/components/Course.vue
浏览文件 @
3c8079d9
差异被折叠。
点击展开。
src/modules/pay/components/Confirm.vue
浏览文件 @
3c8079d9
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
PreviewFiles
from
'@/components/base/PreviewFiles.vue'
import
{
ElMessage
}
from
'element-plus'
import
{
ElMessage
}
from
'element-plus'
import
{
Check
}
from
'@element-plus/icons-vue'
import
{
Check
}
from
'@element-plus/icons-vue'
import
{
useUserStore
}
from
'@/stores/user'
import
{
useUserStore
}
from
'@/stores/user'
...
@@ -14,6 +15,10 @@ const props = defineProps({
...
@@ -14,6 +15,10 @@ const props = defineProps({
type
:
Object
type
:
Object
}
}
})
})
const
dialogVisible
=
ref
(
false
)
const
item
=
ref
({
url
:
'https://webapp-pub.oss-cn-beijing.aliyuncs.com/center_resource/%E7%B4%AB%E8%8D%86%E6%95%99%E8%82%B2%E7%94%A8%E6%88%B7%E5%85%A5%E9%A9%BB%E5%8F%8A%E7%BD%91%E7%BB%9C%E6%95%99%E5%AD%A6%E8%B5%84%E6%BA%90%E5%8D%8F%E8%AE%AE(1).docx'
})
const
orderInfo
:
any
=
ref
([])
const
orderInfo
:
any
=
ref
([])
const
orderInfoDetail
:
any
=
ref
([])
const
orderInfoDetail
:
any
=
ref
([])
const
payMode
=
ref
(
1
)
const
payMode
=
ref
(
1
)
...
@@ -126,6 +131,9 @@ const handlePrev = () => {
...
@@ -126,6 +131,9 @@ const handlePrev = () => {
}
}
})
})
}
}
const changeProtocol = () => {
dialogVisible.value = false
}
</
script
>
</
script
>
<
template
>
<
template
>
...
@@ -179,7 +187,9 @@ const handlePrev = () => {
...
@@ -179,7 +187,9 @@ const handlePrev = () => {
<el-checkbox
v-model=
"isAgree"
<el-checkbox
v-model=
"isAgree"
><span
style=
"color: #666666; font-size: 16px; font-weight: 400"
><span
style=
"color: #666666; font-size: 16px; font-weight: 400"
>
同意
</span
>
同意
</span
><a
style=
"color: #e3a232; font-size: 16px; font-weight: 400"
><a
style=
"color: #e3a232; font-size: 16px; font-weight: 400"
@
click=
"dialogVisible = true"
>
紫荆金保服务协议
</a
>
紫荆金保服务协议
</a
></el-checkbox
></el-checkbox
>
>
...
@@ -277,6 +287,14 @@ const handlePrev = () => {
...
@@ -277,6 +287,14 @@ const handlePrev = () => {
</div>
</div>
</div>
</div>
</div>
</div>
<el-dialog
v-model=
"dialogVisible"
title=
"提示"
width=
"850px"
>
<PreviewFiles
:item=
"item"
></PreviewFiles>
<
template
#
footer
>
<el-button
type=
"primary"
@
click=
"changeProtocol"
>
我已阅读并同意
</el-button
>
</
template
>
</el-dialog>
</div>
</div>
</template>
</template>
...
...
src/modules/shop/components/ContactDialog.vue
浏览文件 @
3c8079d9
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
{
useDevice
}
from
'@/composables/useDevice'
const
{
mobile
}
=
useDevice
()
defineProps
({
defineProps
({
// 是否弹框
// 是否弹框
buyDialogVisible
:
{
buyDialogVisible
:
{
...
@@ -17,9 +19,18 @@ const handleCancel = () => {
...
@@ -17,9 +19,18 @@ const handleCancel = () => {
<
template
>
<
template
>
<div>
<div>
<el-dialog
:model-value=
"buyDialogVisible"
width=
"25%"
top=
"16%"
:modal=
"false"
:before-close=
"handleCancel"
>
<el-dialog
:model-value=
"buyDialogVisible"
:width=
"!mobile ? '20%' : '70%'"
:top=
"!mobile ? '16%' : '50%'"
:modal=
"false"
:before-close=
"handleCancel"
>
<div
class=
"buy_alert"
>
<div
class=
"buy_alert"
>
<img
src=
"https://webapp-pub.ezijing.com/project_online/fi/icon_contact.png"
alt=
""
/>
<img
src=
"https://webapp-pub.ezijing.com/project_online/fi/icon_contact.png"
alt=
""
/>
<div
class=
"alert_con"
>
<div
class=
"alert_con"
>
<div
class=
"con_tit"
>
请联系我们
</div>
<div
class=
"con_tit"
>
请联系我们
</div>
<div
class=
"con_desc"
>
PAA秘书处:13263110169(同微信)
</div>
<div
class=
"con_desc"
>
PAA秘书处:13263110169(同微信)
</div>
...
@@ -30,33 +41,68 @@ const handleCancel = () => {
...
@@ -30,33 +41,68 @@ const handleCancel = () => {
</
template
>
</
template
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
scoped
>
.buy_alert
{
.is-pc
{
display
:
flex
;
.buy_alert
{
align-items
:
center
;
display
:
flex
;
.alert_con
{
align-items
:
center
;
margin-left
:
10px
;
.alert_con
{
.con_tit
{
margin-left
:
10px
;
font-size
:
16px
;
.con_tit
{
font-weight
:
400
;
font-size
:
16px
;
line-height
:
34px
;
font-weight
:
400
;
color
:
#333333
;
line-height
:
34px
;
color
:
#333333
;
}
.con_desc
{
font-size
:
14px
;
font-weight
:
400
;
line-height
:
34px
;
color
:
#666666
;
}
}
}
.con_desc
{
}
font-size
:
14px
;
:deep
(
.el-dialog
)
{
font-weight
:
400
;
width
:
315px
;
line-height
:
34px
;
box-shadow
:
0px
0px
16px
rgba
(
0
,
0
,
0
,
0
.16
);
color
:
#666666
;
border-radius
:
10px
;
margin-left
:
50%
;
.el-dialog__header
{
padding-bottom
:
0
;
}
}
}
}
}
}
:deep
(
.el-dialog
)
{
.is-h5
{
width
:
315px
;
.buy_alert
{
box-shadow
:
0px
0px
16px
rgba
(
0
,
0
,
0
,
0
.16
);
display
:
flex
;
border-radius
:
10px
;
align-items
:
center
;
margin-left
:
50%
;
justify-content
:
center
;
flex-direction
:
column
;
.alert_con
{
text-align
:
center
;
.con_tit
{
font-size
:
0
.24rem
;
font-weight
:
400
;
color
:
#333333
;
margin-top
:
0
.25rem
;
}
.con_desc
{
font-size
:
0
.24rem
;
font-weight
:
400
;
color
:
#666666
;
margin-top
:
0
.51rem
;
}
}
}
:deep
(
.el-dialog
)
{
box-shadow
:
0px
0px
16px
rgba
(
0
,
0
,
0
,
0
.16
);
border-radius
:
0
.12rem
;
margin-left
:
50%
;
padding
:
0
1
.35rem
0
.85rem
1
.35rem
;
.el-dialog__header
{
.el-dialog__header
{
padding-bottom
:
0
;
padding-bottom
:
0
;
}
}
}
}
}
</
style
>
</
style
>
src/modules/shop/components/CourseFooter.vue
浏览文件 @
3c8079d9
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
ContactDialog
from
'../components/ContactDialog.vue'
import
{
useDevice
}
from
'@/composables/useDevice'
import
{
useDevice
}
from
'@/composables/useDevice'
import
{
useUserStore
}
from
'@/stores/user'
import
{
useUserStore
}
from
'@/stores/user'
const
user
=
useUserStore
()
const
user
=
useUserStore
()
...
@@ -77,6 +78,7 @@ const handleBuyCourse = () => {
...
@@ -77,6 +78,7 @@ const handleBuyCourse = () => {
<div
class=
"btn_buy"
>
立即购买
</div>
<div
class=
"btn_buy"
>
立即购买
</div>
</div>
</div>
</div>
</div>
<ContactDialog
v-model:buyDialogVisible=
"buyDialogVisible"
/>
</div>
</div>
</template>
</template>
...
...
src/modules/shop/components/CourseList.vue
浏览文件 @
3c8079d9
...
@@ -57,13 +57,17 @@ const handleCurrentChange = (val: number) => {
...
@@ -57,13 +57,17 @@ const handleCurrentChange = (val: number) => {
</
script
>
</
script
>
<
template
>
<
template
>
<div
class=
"course_list"
v-for=
"(item, index) in courseListAllNew"
:key=
"index"
>
<div
class=
"course_list"
v-for=
"(item, index) in courseListAllNew"
:key=
"index"
>
<CourseListItem
:courseItem=
"item"
:key=
"type"
></CourseListItem>
<CourseListItem
:courseItem=
"item"
:key=
"type"
></CourseListItem>
</div>
</div>
<el-pagination
<el-pagination
class=
"pagination"
class=
"pagination"
layout=
"total, sizes, prev, pager, next, jumper"
layout=
"total, sizes, prev, pager, next, jumper"
:page-sizes=
"[
3, 5, 10, 15, 2
0]"
:page-sizes=
"[
10, 15, 20, 30, 5
0]"
:page-size=
"page.size"
:page-size=
"page.size"
:total=
"courseListAll.length"
:total=
"courseListAll.length"
v-model:currentPage=
"page.currentPage"
v-model:currentPage=
"page.currentPage"
...
...
src/modules/shop/components/DetailBanner.vue
浏览文件 @
3c8079d9
...
@@ -367,6 +367,7 @@ const handleBuyCourse = () => {
...
@@ -367,6 +367,7 @@ const handleBuyCourse = () => {
font-weight
:
400
;
font-weight
:
400
;
line-height
:
30px
;
line-height
:
30px
;
color
:
#898989
;
color
:
#898989
;
white-space
:
nowrap
;
}
}
.left_con
{
.left_con
{
.con_num
{
.con_num
{
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论