Merge remote-tracking branch 'nyx/250207-growth-prod-master-zp' into dev0731

This commit is contained in:
joshen
2025-02-25 15:35:52 +08:00
3 changed files with 99 additions and 161 deletions

View File

@@ -338,86 +338,55 @@
</el-dialog>
<!-- 开课列表弹框 -->
<el-dialog
title=""
title="开课列表"
v-model="openCourseVisible"
:show-close="false"
style="
display: flex;
justify-content: center;
align-items: center;
min-height: 320px;
padding: 0;
border-radius: 4px;
"
width="502px"
:show-close="true"
style="padding: 0; border-radius: 4px"
width="600px"
>
<div
style="
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 22px;
"
>
<div
style="
width: 288px;
color: #333333;
font-size: 16px;
font-weight: 600;
"
>
开课列表
</div>
<div
@click="openCourseVisible = false"
style="font-size: 12px; cursor: pointer"
>
X
</div>
</div>
<div style="width: 100%; min-height: 210px; margin-top: 12px">
<div
v-for="(item, key) in openCourseList"
style="
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 12px;
background: rgb(247, 251, 253);
height: 40px;
padding: 5px;
border-radius: 5px;
"
>
<el-scrollbar height="400px">
<div>
<div
v-for="(item, key) in openCourseList"
style="
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
width: 320px;
"
>
{{ item.name }}
</div>
<div
@click="toOffcoursePlanPage(item)"
style="
width: 60px;
height: 30px;
text-align: center;
line-height: 30px;
background: #0078fc;
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 12px;
background: rgb(247, 251, 253);
height: 40px;
padding: 5px 20px;
border-radius: 5px;
color: #fff;
cursor: pointer;
"
>
去上课
<div
style="
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
width: 320px;
"
>
{{ item.name }}
</div>
<div
@click="toOffcoursePlanPage(item)"
style="
width: 60px;
height: 30px;
text-align: center;
line-height: 30px;
background: #0078fc;
border-radius: 5px;
color: #fff;
cursor: pointer;
"
>
去上课
</div>
</div>
</div>
</div>
</el-scrollbar>
</el-dialog>
<el-backtop :right="100" :bottom="100" />
@@ -605,10 +574,6 @@ async function toFinish(d) {
ElMessage.warning(`请先完成“${d.superTaskName}”的学习任务`);
return;
}
if (!d.canLearn && d.courseType != 2) {
ElMessage.warning(`学习任务暂未开始`);
return;
}
//更新学员当前任务
await growthRequest(PROFESSIONAL_STUDENT_LEARN, {

View File

@@ -231,86 +231,55 @@
</el-dialog>
<!-- 开课列表弹框 -->
<el-dialog
title=""
title="开课列表"
v-model="openCourseVisible"
:show-close="false"
style="
display: flex;
justify-content: center;
align-items: center;
min-height: 320px;
padding: 0;
border-radius: 4px;
"
width="502px"
:show-close="true"
style="padding: 0; border-radius: 4px"
width="600px"
>
<div
style="
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 22px;
"
>
<div
style="
width: 288px;
color: #333333;
font-size: 16px;
font-weight: 600;
"
>
开课列表
</div>
<div
@click="openCourseVisible = false"
style="font-size: 12px; cursor: pointer"
>
X
</div>
</div>
<div style="width: 100%; min-height: 210px; margin-top: 12px">
<div
v-for="(item, key) in openCourseList"
style="
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 12px;
background: rgb(247, 251, 253);
height: 40px;
padding: 5px;
border-radius: 5px;
"
>
<el-scrollbar height="400px">
<div>
<div
v-for="(item, key) in openCourseList"
style="
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
width: 320px;
"
>
{{ item }}
</div>
<div
@click="toOffcoursePlanPage(openCourseIdList[key])"
style="
width: 60px;
height: 30px;
text-align: center;
line-height: 30px;
background: #0078fc;
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 12px;
background: rgb(247, 251, 253);
height: 40px;
padding: 5px 20px;
border-radius: 5px;
color: #fff;
cursor: pointer;
"
>
去上课
<div
style="
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
width: 320px;
"
>
{{ item.name }}
</div>
<div
@click="toOffcoursePlanPage(item)"
style="
width: 60px;
height: 30px;
text-align: center;
line-height: 30px;
background: #0078fc;
border-radius: 5px;
color: #fff;
cursor: pointer;
"
>
去上课
</div>
</div>
</div>
</div>
</el-scrollbar>
</el-dialog>
</div>
</template>
@@ -463,7 +432,6 @@ watch(
);
const openCourseVisible = ref(false);
const openCourseList = ref([]);
const openCourseIdList = ref([]);
const dialogVisible = ref(false);
const dialogVisibleTip = ref("该任务无法学习,请联系管理员进行替换!");
@@ -477,7 +445,7 @@ async function toFinish(d) {
ElMessage.warning(`请先完成“${d.superTaskName}”的学习任务`);
return;
}
if (!d.canLearn && d.courseType != 2) {
if (!d.canLearn && d.completionStatus === '0') {
ElMessage.warning(`学习任务暂未开始`);
return;
}
@@ -492,8 +460,7 @@ async function toFinish(d) {
return ElMessage.error("还未添加开课,请联系管理员!");
}
if (d.targetId.split(",").length > 1) {
openCourseList.value = d.targetName?.split(",");
openCourseIdList.value = d.targetId?.split(",");
openCourseList.value = d.offcoursePlanList;
openCourseVisible.value = true;
return;
}
@@ -710,11 +677,17 @@ async function toFinish(d) {
}
}
function toOffcoursePlanPage(id) {
function toOffcoursePlanPage(item) {
let date1 = new Date(item.endTime).getTime();
let date2 = new Date().getTime();
if (date1 < date2) {
ElMessage.warning(`当前开课已结束`);
return;
}
window.open(
`${location.protocol}//${location.host}${
import.meta.env.VITE_BASE_API
}/stu/project/redirectDetail?courseId=${id}`,
}/stu/project/redirectDetail?courseId=${item.id}`,
"_top"
);
}

View File

@@ -38,16 +38,16 @@ export default defineConfig(({ command, mode }) =>
},
server: {
proxy: {
"/professional": {
// target: 'http://192.168.16.195:32002',
// target: 'http://192.168.150.97:32002',
target: 'http://192.168.38.211:32002',
changeOrigin: true,
},
// '/growth': {
// target: 'https://u-pre.boe.com',
// "/professional": {
// // target: 'http://192.168.16.195:32002',
// // target: 'http://192.168.150.97:32002',
// target: 'http://192.168.38.211:32002',
// changeOrigin: true,
// },
// },
'/growth': {
target: 'https://u-pre.boe.com',
changeOrigin: true,
},
'/file/upload': {
target: loadEnv(mode, process.cwd()).VITE_PROXY_URL,
changeOrigin: true,