提交 3c8079d9 authored 作者: matian's avatar matian

updates

上级 da6e909b
......@@ -53,8 +53,8 @@ export function checkCode(params: any) {
/**
* 提交留咨信息
*/
export function postNes(data: any) {
return httpRequest.post('/api/enrollment/v1.0/applications', data, {
export function postNes(data: any) {
return httpRequest.post('https://project-api.ezijing.com/api/enrollment/v1.0/applications', data, {
headers: { 'Content-Type': 'multipart/form-data' }
})
}
......
<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>
......@@ -7,7 +7,6 @@ export default {
return {
tabBtnActive: false,
tabBtnTarget: '',
projectName: '金融硕士保研项目',
sendCode: '',
isBtnDisabled: false,
formInfo: {
......@@ -267,7 +266,7 @@ export default {
}
.tab_cont {
position: absolute;
left: -360px;
left: -346px;
top: -120px;
width: 346px;
height: 390px;
......
<script lang="ts" setup>
import { useDevice } from '@/composables/useDevice'
const { mobile } = useDevice()
const courseList: Array<{ tit: string; desc: string; img: string }> = [
const router = useRouter()
const courseList: Array<{
tit: string
desc: string
img: string
id: string
}> = [
{
id: '1',
tit: 'PAAP(I)',
desc: 'PAAP(Ⅰ)即通过权属资产全面预算的系统学习,具备完成资产分析所需要的系统源点知识的底层逻辑,精确盘点资产,建立资产分析的多维模型。',
img: 'https://webapp-pub.ezijing.com/project_online/paa/course_set1.png'
},
{
id: '2',
tit: 'PAAP(II)',
desc: 'PAAP(Ⅱ)是学员通过深入学习资产分析的模型,并能熟练地通过模型,结合不同维度客户资产情况,准确分析形成并出具资产分析报告。',
img: 'https://webapp-pub.ezijing.com/project_online/paa/course_set2.png'
}
]
const courseList1: Array<{ tit: string; desc: string; img: string }> = [
const courseList1: Array<{
tit: string
desc: string
img: string
id: string
}> = [
{
id: '3',
tit: '',
desc: '',
img: 'https://webapp-pub.ezijing.com/project_online/paa/course_set3.png'
......@@ -23,6 +36,9 @@ const courseList1: Array<{ tit: string; desc: string; img: string }> = [
]
const courseIndex = $ref(0)
const handleDetail = (id: any) => {
router.push(`/shop/detail/${id}`)
}
</script>
<template>
......@@ -31,19 +47,31 @@ const courseIndex = $ref(0)
<div class="main_con" id="product">
<div class="con_tit">
<div class="tit_img">
<img src="https://webapp-pub.ezijing.com/project_online/fi/tit_icon.png" class="img_box" />
<img
src="https://webapp-pub.ezijing.com/project_online/fi/tit_icon.png"
class="img_box"
/>
</div>
<div class="tit_txt">课程介绍</div>
<div class="tit_img">
<img src="https://webapp-pub.ezijing.com/project_online/fi/tit_icon.png" class="img_box" />
<img
src="https://webapp-pub.ezijing.com/project_online/fi/tit_icon.png"
class="img_box"
/>
</div>
</div>
<el-tabs class="my-tabs">
<el-tab-pane>
<template #label>
<div class="tab_con con1">
<img src="https://webapp-pub.ezijing.com/project_online/paa/tab1.png" class="con_img" />
<img src="https://webapp-pub.ezijing.com/project_online/paa/tab1_active.png" class="con_img_active" />
<img
src="https://webapp-pub.ezijing.com/project_online/paa/tab1.png"
class="con_img"
/>
<img
src="https://webapp-pub.ezijing.com/project_online/paa/tab1_active.png"
class="con_img_active"
/>
</div>
<div class="h"></div>
</template>
......@@ -53,7 +81,11 @@ const courseIndex = $ref(0)
Planner,简称PAAP)认证系列,目前包括资产分析规划师(一级)/PAAP(Ⅰ)和资产分析规划师(二级)/PAAP(Ⅱ)。
</div>
<div class="con_list con_list1">
<div class="list_item" v-for="(item, index) in courseList" :key="index">
<div
class="list_item"
v-for="(item, index) in courseList"
:key="index"
>
<ul>
<li>
<p>{{ item.tit }}</p>
......@@ -61,6 +93,9 @@ const courseIndex = $ref(0)
</ul>
<div class="item_desc">{{ item.desc }}</div>
<img :src="item.img" class="item_img item_img1" />
<div class="item_btn" @click="handleDetail(item.id)">
查看详情
</div>
</div>
</div>
</div>
......@@ -68,8 +103,14 @@ const courseIndex = $ref(0)
<el-tab-pane>
<template #label>
<div class="tab_con con2">
<img src="https://webapp-pub.ezijing.com/project_online/paa/tab2.png" class="con_img" />
<img src="https://webapp-pub.ezijing.com/project_online/paa/tab2_active.png" class="con_img_active" />
<img
src="https://webapp-pub.ezijing.com/project_online/paa/tab2.png"
class="con_img"
/>
<img
src="https://webapp-pub.ezijing.com/project_online/paa/tab2_active.png"
class="con_img_active"
/>
</div>
<div class="h"></div>
</template>
......@@ -79,9 +120,17 @@ const courseIndex = $ref(0)
Manager,简称PAAM)系统,即通过学习资产配置管理的通识课程,运用资产分析的多维模型系统解读和规划,构建权属资产管理体系,对不良资产进行处置,对权属资产进行最优化配置,实现资产全面增值。
</div>
<div class="con_list con_list2">
<div class="list_item" v-for="(item, index) in courseList1" :key="index">
<div
class="list_item"
v-for="(item, index) in courseList1"
:key="index"
@click="handleDetail(item.id)"
>
<div class="item_desc">{{ item.desc }}</div>
<img :src="item.img" class="item_img" />
<div class="item_btn" @click="handleDetail(item.id)">
查看详情
</div>
</div>
</div>
</div>
......@@ -110,10 +159,16 @@ const courseIndex = $ref(0)
<div class="h5-main" v-else>
<h1>师资团队</h1>
<div class="tab-btn">
<div :class="courseIndex === 0 ? 'btn active' : 'btn'" @click="courseIndex = 0">
<div
:class="courseIndex === 0 ? 'btn active' : 'btn'"
@click="courseIndex = 0"
>
<div class="logo"></div>
</div>
<div :class="courseIndex === 1 ? 'btn active' : 'btn'" @click="courseIndex = 1">
<div
:class="courseIndex === 1 ? 'btn active' : 'btn'"
@click="courseIndex = 1"
>
<div class="logo"></div>
</div>
</div>
......@@ -127,18 +182,24 @@ const courseIndex = $ref(0)
<h3>
PAAP(Ⅰ)即通过私人权属资产全面预算的系统学习,具备完成私人资产分析所需要的系统源点知识的底层逻辑,精确盘点私人资产,建立私人资产分析的多维模型。
</h3>
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/project_online/fi/h5/paa-course1.png" class="img1" />
<img
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/project_online/fi/h5/paa-course1.png"
class="img1"
/>
<div class="btn-box">
<div class="btn1">查看详情</div>
<div class="btn1" @click="handleDetail('1')">查看详情</div>
<div class="btn2">立即购买</div>
</div>
<h1 class="mt7">PAAP(II)</h1>
<h3>
PAAP(Ⅱ)是学员通过深入学习资产分析的模型,并能熟练地通过模型,结合不同维度客户资产情况,准确分析形成并出具私人资产分析报告。
</h3>
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/project_online/fi/h5/paa-course2.png" class="img1" />
<img
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/project_online/fi/h5/paa-course2.png"
class="img1"
/>
<div class="btn-box">
<div class="btn1">查看详情</div>
<div class="btn1" @click="handleDetail('2')">查看详情</div>
<div class="btn2">立即购买</div>
</div>
</template>
......@@ -147,9 +208,12 @@ const courseIndex = $ref(0)
高级私人资产分析管理师(Senior Private Asset Analysis
Manager,简称PAAM)系统,即通过学习资产配置管理的通识课程,运用私人资产分析的多维模型系统解读和规划,构建私人权属资产管理体系,对不良资产进行处置,对权属资产进行最优化配置,实现私人资产全面增值。
</h2>
<img src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/project_online/fi/h5/paa-course3.png" class="img1" />
<img
src="https://webapp-pub.oss-cn-beijing.aliyuncs.com/project_online/fi/h5/paa-course3.png"
class="img1"
/>
<div class="btn-box">
<div class="btn1">查看详情</div>
<div class="btn1" @click="handleDetail('3')">查看详情</div>
<div class="btn2">立即购买</div>
</div>
</template>
......@@ -231,6 +295,10 @@ const courseIndex = $ref(0)
}
.con_list {
.list_item {
cursor: pointer;
display: flex;
flex-direction: column;
align-items: center;
ul {
padding-left: 20px;
......@@ -252,6 +320,16 @@ const courseIndex = $ref(0)
line-height: 30px;
color: #535353;
}
.item_btn {
width: 131px;
height: 42px;
line-height: 42px;
border: 1px solid #c1ab85;
border-radius: 4px;
color: #b79c6d;
text-align: center;
margin-top: 21px;
}
}
}
}
......@@ -289,7 +367,8 @@ const courseIndex = $ref(0)
.con_part {
width: 480px;
height: 175px;
background: url('https://webapp-pub.ezijing.com/project_online/paa/education_bg.png') center no-repeat;
background: url('https://webapp-pub.ezijing.com/project_online/paa/education_bg.png')
center no-repeat;
font-size: 16px;
font-weight: 400;
line-height: 30px;
......
<script setup lang="ts">
import PreviewFiles from '@/components/base/PreviewFiles.vue'
import { ElMessage } from 'element-plus'
import { Check } from '@element-plus/icons-vue'
import { useUserStore } from '@/stores/user'
......@@ -14,6 +15,10 @@ const props = defineProps({
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 orderInfoDetail: any = ref([])
const payMode = ref(1)
......@@ -126,6 +131,9 @@ const handlePrev = () => {
}
})
}
const changeProtocol = () => {
dialogVisible.value = false
}
</script>
<template>
......@@ -179,7 +187,9 @@ const handlePrev = () => {
<el-checkbox v-model="isAgree"
><span style="color: #666666; font-size: 16px; font-weight: 400"
>同意</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
></el-checkbox
>
......@@ -277,6 +287,14 @@ const handlePrev = () => {
</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>
</template>
......
<script setup lang="ts">
import { useDevice } from '@/composables/useDevice'
const { mobile } = useDevice()
defineProps({
// 是否弹框
buyDialogVisible: {
......@@ -17,9 +19,18 @@ const handleCancel = () => {
<template>
<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">
<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="con_tit">请联系我们</div>
<div class="con_desc">PAA秘书处:13263110169(同微信)</div>
......@@ -30,7 +41,8 @@ const handleCancel = () => {
</template>
<style lang="scss" scoped>
.buy_alert {
.is-pc {
.buy_alert {
display: flex;
align-items: center;
.alert_con {
......@@ -48,8 +60,8 @@ const handleCancel = () => {
color: #666666;
}
}
}
:deep(.el-dialog) {
}
:deep(.el-dialog) {
width: 315px;
box-shadow: 0px 0px 16px rgba(0, 0, 0, 0.16);
border-radius: 10px;
......@@ -58,5 +70,39 @@ const handleCancel = () => {
.el-dialog__header {
padding-bottom: 0;
}
}
}
.is-h5 {
.buy_alert {
display: flex;
align-items: center;
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 {
padding-bottom: 0;
}
}
}
</style>
<script lang="ts" setup>
import ContactDialog from '../components/ContactDialog.vue'
import { useDevice } from '@/composables/useDevice'
import { useUserStore } from '@/stores/user'
const user = useUserStore()
......@@ -77,6 +78,7 @@ const handleBuyCourse = () => {
<div class="btn_buy">立即购买</div>
</div>
</div>
<ContactDialog v-model:buyDialogVisible="buyDialogVisible" />
</div>
</template>
......
......@@ -57,13 +57,17 @@ const handleCurrentChange = (val: number) => {
</script>
<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>
</div>
<el-pagination
class="pagination"
layout="total, sizes, prev, pager, next, jumper"
:page-sizes="[3, 5, 10, 15, 20]"
:page-sizes="[10, 15, 20, 30, 50]"
:page-size="page.size"
:total="courseListAll.length"
v-model:currentPage="page.currentPage"
......
......@@ -367,6 +367,7 @@ const handleBuyCourse = () => {
font-weight: 400;
line-height: 30px;
color: #898989;
white-space: nowrap;
}
.left_con {
.con_num {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论