任教课程-历史学期页面样式及“进入课程”后各功能完善

This commit is contained in:
1378012178@qq.com 2024-12-12 14:56:36 +08:00
parent 334a9c1347
commit de29ed40c5
5 changed files with 293 additions and 234 deletions

View File

@ -270,7 +270,15 @@ const site: AppRouteModule = {
title: '答题结果',
},
},
{
path: 'WjxCywjV2Dtjghis',
name: 'WjxCywjV2Dtjghis',
component: () => import('/@/views/kc/wjxCswj/WjxCywjV2Dtjghis.vue'),
meta: {
// affix: true,
title: '答题结果',
},
},
],
};

View File

@ -1,69 +0,0 @@
import type { AppRouteModule } from '/@/router/types';
// import { LAYOUT } from '/@/router/constant';
import { t } from '/@/hooks/web/useI18n';
const zuoyehistory: AppRouteModule = {
path: '/history',
name: 'history',
component: () => import('/@/views/site/renKeJiaoCheng/checkKecheng/history/kcHistoryMain.vue'),
redirect: '/history/hismain',
meta: {
isAddStaticPath: true,//是否静态引入不用配置menu表
orderNo: 106,
title: '历史作业',
},
children: [
{
path: 'hismain',
name: 'zuoyeHistoryMain',
meta: {
title: '课程简介',
},
component: () => import('/@/views/site/renKeJiaoCheng/checkKecheng/history/kcHistoryDetail.vue'),
},
{
path: 'hisTzgg',
name: 'hisTzgg',
component: () => import('/@/views/zy/zyGonggao/StudentGonggaoList.vue'),
meta: {
title: '通知公告',
},
},
{
path: 'hisKczy',
name: 'hisKczy',
component: () => import('/@/views/zy/zyInfo/ZyInfoHisMainList.vue'),
meta: {
title: '课程作业',
},
},
{
path: 'hisdksbl',
name: 'hisdksbl',
component: () => import('/@/views/kc/detection/zyZhjsList.vue'),
meta: {
title: 'AI识别出勤率',
},
},
{
path: 'hisKccy',
name: 'hisKccy',
component: () => import('/@/views/kc/wjxCswj/WjxCswjHisMainList.vue'),
meta: {
title: '课程测验',
},
},
{
path: 'hisWjdc',
name: 'hisWjdc',
component: () => import('/@/views/kc/wjxDcwj/WjxDcwjHisMainList.vue'),
meta: {
title: '问卷调查',
},
},
]
}
export default zuoyehistory;

View File

@ -4,7 +4,9 @@
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 8 }" :key="index" v-for="(item, index) in allList">
<div class=" ketangback ketangCard ketangCardcol">
<div class="rjkcTopDiv">
<div style="text-align: left"><Icon icon="ant-design:read-outlined" /><span>{{ item.sksj }}</span></div>
<div style="text-align: left">
<Icon icon="ant-design:read-outlined" /><span>{{ item.sksj }}</span>
</div>
</div>
<div class="rjkcBodyDiv">
<div class="kcmcDiv">
@ -99,17 +101,20 @@ function openKechengDetail(item) {
.ketangCard {
margin: 0.5rem;
}
.ketangCardcol {
background-color: #f3f3f3;
padding: 1px;
box-shadow: 1px 1px 5px 1px #e1e1e1;
}
.rjkcTopDiv {
padding: 0.5rem;
color: #798394;
font-size: 15px;
text-align: right;
}
.nDayDiv {
top: -14px;
right: -14px;
@ -121,26 +126,31 @@ function openKechengDetail(item) {
border-radius: 0 0 0 5px;
text-align: left;
}
.rjkcBodyDiv {
margin-top: 1px;
background: #fff;
padding: 1rem;
}
.kcmcDiv {
font-size: 24px;
font-weight: bold;
}
.skddDiv {
color: #333333;
font-size: 14px;
// font-weight: bold;
}
.xkrsDiv {
padding-top: 1rem;
font-size: 18px;
font-weight: bold;
text-align: right;
}
.buttonClass {
background: #1ab394;
font-weight: 600;
@ -152,26 +162,32 @@ function openKechengDetail(item) {
background: #6cafda;
}
}
.skdd-Left-section {
display: flex;
align-items: flex-end;
justify-content: space-between;
}
.ketangback {
background: #f7f7f7;
border-radius: 5px;
}
.skdd-line {
text-align: left;
width: 30%;
margin-right: 10rpx;
}
.xkrs-color {
color: #18a689;
}
.xkrs-color:hover {
color: #ff5a00;
}
.ant-btn {
line-height: 1.5715;
position: relative;

View File

@ -5,7 +5,8 @@
<a-row>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 8 }">
<a-form-item label="学年学期" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag placeholder="学年学期" v-model:value="queryParam.xqxn" dictCode="kc_xqxn_history,title,title,true order by start_time desc" style="width:90%;"/>
<j-dict-select-tag placeholder="学年学期" v-model:value="queryParam.xqxn"
dictCode="kc_xqxn_history,title,title,true order by start_time desc" style="width:90%;" />
</a-form-item>
</a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 8 }">
@ -20,15 +21,39 @@
</a-row>
</a-col>
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 8 }" :key="index" v-for="(item, index) in allList">
<div class="ketangCard ketangCardcol" >
<div class=" ketangback ketangCard ketangCardcol">
<div class="rjkcTopDiv">
<div style="text-align: left;"><span>{{ item.sksj }}</span></div>
<div style="text-align: left">
<Icon icon="ant-design:read-outlined" /><span>{{ item.sksj }}</span>
</div>
</div>
<div class="rjkcBodyDiv">
<div class="kcmcDiv">{{ item.kcmc }}</div>
<div class="skddDiv" style="margin-top:20px;">{{ item.skdd }}</div>
<div class="xkrsDiv" style="margin-top:20px;">{{ item.xqxn }}</div>
<div class="xkrsDiv">{{ item.xkrs }}人选课&nbsp;&nbsp;&nbsp;<a-button class="buttonClass" @click="openKechengDetail(item)">进入课程</a-button></div>
<div class="kcmcDiv">
<!-- <a-badge :offset="[10|0]" :count="item.dbtxType" :title="'您有'+item.dbtxType+'条提醒信息'"> -->
<!-- <a-badge
:dot="item.dbtxType > 0 ? true : false"
:offset="[5 | 0]"
:numberStyle="{ backgroundColor: '#f00', width: '10px', height: '10px' }"
:title="'您有' + item.dbtxType + '条提醒信息'"
> -->
<span style="font-size: 20px">{{ item.kcmc }}</span>
<!-- </a-badge> -->
</div>
<div class="skddDiv">{{ item.skdd }}</div>
<!-- <div class="skddDiv">教课周次{{ item.jkzc }}</div> -->
<div class="xkrsDiv skdd-Left-section">
<div style="width:70%; display: flex; justify-content: flex-start; ">
<div class="skdd-line">
<div class="xkrs-color">{{ item.xf }}</div>
<div class="skddDiv">学分</div>
</div>
<div class="skdd-line" style="cursor: pointer;">
<div class="xkrs-color">{{ item.xkrs }}</div>
<div class="skddDiv" @click="openXkrs(item)">选课人数</div>
</div>
</div>
<a-button class="buttonClass" @click="openKechengDetail(item)">进入课程</a-button>
</div>
</div>
</div>
</a-col>
@ -79,25 +104,37 @@ function loadData(){
function openKechengDetail(item) {
console.log(`🚀 ~ openKechengDetail ~ item:`, item)
window.open('/history/hismain?rwbh='+item.rwbh+'&xqxn='+getSysConfig().flag1+"&type=0","_blank");
//
// window.open('/history/hismain?rwbh='+item.rwbh+'&xqxn='+getSysConfig().flag1+"&type=0","_blank");
//
window.open('/zyhis/tuGonggaohis?rwbh=' + item.rwbh + '&xqxn=' + getSysConfig().flag1 + '&type=1' + '&teano=' + item.jgh, '_blank');
}
//
function openXkrs(record) {
// console.log(`🚀 ~ openXkrs ~ record:`, record)
// XxhbbksListModalPage.value.disableSubmit = true;
// XxhbbksListModalPage.value.init(record);
}
</script>
<style lang="less" scoped>
.ketangCard {
margin: .5rem;
margin: 0.5rem;
}
.ketangCardcol {
background-color: #f3f3f3;
padding: 1px;
box-shadow: 1px 1px 5px 1px #e1e1e1;
}
.rjkcTopDiv {
background: #fff;
padding: .9rem;
color: #1ab394;
font-size: 18px;
font-weight: bold;
padding: 0.5rem;
color: #798394;
font-size: 15px;
text-align: right;
}
.nDayDiv {
top: -14px;
right: -14px;
@ -109,35 +146,88 @@ function loadData(){
border-radius: 0 0 0 5px;
text-align: left;
}
.rjkcBodyDiv {
margin-top: 1px;
background: #fff;
padding: 1rem 2rem 2rem 2rem;
padding: 1rem;
}
.kcmcDiv {
font-size: 24px;
font-weight: bold;
}
.skddDiv {
color: #1c84c6;
font-size: 16px;
color: #333333;
font-size: 14px;
// font-weight: bold;
}
.xkrsDiv {
padding-top: 2.5rem;
padding-top: 1rem;
font-size: 18px;
font-weight: bold;
text-align: right;
}
.buttonClass {
background: #1c84c6;
background: #1ab394;
font-weight: 600;
color: #fff;
border-radius: 5px;
line-height: 23px;
line-height: 22px;
&[disabled] {
background: #6cafda;
}
}
.skdd-Left-section {
display: flex;
align-items: flex-end;
justify-content: space-between;
}
.ketangback {
background: #f7f7f7;
border-radius: 5px;
}
.skdd-line {
text-align: left;
width: 30%;
margin-right: 10rpx;
}
.xkrs-color {
color: #18a689;
}
.xkrs-color:hover {
color: #ff5a00;
}
.ant-btn {
line-height: 1.5715;
position: relative;
display: inline-block;
font-weight: 400;
white-space: nowrap;
text-align: center;
background-image: none;
box-shadow: 0 2px 0 rgba(0, 0, 0, 0.015);
cursor: pointer;
transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
touch-action: manipulation;
height: 32px;
padding: 4px 15px;
font-size: 14px;
border-radius: 5px;
border-color: #fff;
color: #fff;
}
</style>

View File

@ -7,7 +7,8 @@
<a-col :span="24">
<a-row>
<a-col :lg="24" :xs="18">
<div style="width:100%;background: #fff;font-size: 18px;font-weight: bold;margin-top:10px;padding: 10px;">
<div
style="width:100%;background: #fff;font-size: 18px;font-weight: bold;margin-top:10px;padding: 10px;">
<a-row>
<a-col :xs="0" :lg="24">
<a-button type="primary" @click="toggleCollapsed">
@ -15,12 +16,12 @@
<MenuUnfoldOutlined v-else />
</a-button>
<span class="ellipsis">
课程名称1{{kcxxInfo.kcmc}}
课程名称{{ kcxxInfo.kcmc }}
</span>
</a-col>
<a-col :xs="24" :lg="0">
<span class="ellipsis">
课程名称1{{kcxxInfo.kcmc}}
课程名称{{ kcxxInfo.kcmc }}
</span>
</a-col>
</a-row>
@ -33,7 +34,8 @@
</a-row>
</a-col>
<a-col :lg="spanlg" :xs="0">
<dqxqkcMenu ref="dqxqkcMenuTag"/>
<dqxqkcMenu v-if="!readOnly" ref="dqxqkcMenuTag" />
<dqxqkcMenuHis v-else ref="dqxqkcMenuTag" />
</a-col>
<a-col :lg="spanlt" :xs="24">
<RouterView />
@ -57,6 +59,7 @@
import headerPage from '/@/views/site/common/header.vue';
import footerPage from '/@/views/site/common/footer.vue';
import dqxqkcMenu from '/@/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMenu.vue';
import dqxqkcMenuHis from '/@/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMenuHistory.vue';
import dqxqkc from '/@/views/site/renKeJiaoCheng/checkKecheng/dqxqkc.vue';
const maxClassName = ref<any>({});
@ -64,7 +67,9 @@
const selectedKeys = ref<string[]>([]);
//
const { currentRoute } = useRouter();
const { query } = unref(currentRoute);
const { query, matched } = unref(currentRoute);
const readOnly = ref(false)
if (matched[0].name == 'zyhis') readOnly.value = true
const { rwbh, xqxn } = query;//
let router = useRouter();
const kcxxInfo = ref<string>('');
@ -99,12 +104,14 @@ function toggleCollapsed() {
// font-size: ;
// height: 100%;
background: #f3f3f4;
#maxSite {
//
max-width: 1070px;
min-height: calc(100vh);
//
margin: 0 auto;
.rowGutter {
margin-top: 1rem;
margin-bottom: 1rem;
@ -114,15 +121,18 @@ function toggleCollapsed() {
color: #fff;
background: #1ab394;
}
.ant-layout-footer {
line-height: 1.5;
background: #FFF;
}
.ant-layout-sider {
color: #fff;
line-height: 120px;
background: #3ba0e9;
}
.ant-layout-content {
min-height: 120px;
color: #000;
@ -131,9 +141,13 @@ function toggleCollapsed() {
}
}
}
.ellipsis {
white-space: nowrap; /* 确保文本在一行内显示 */
overflow: hidden; /* 隐藏溢出的内容 */
text-overflow: ellipsis; /* 使用省略号表示溢出的文本 */
white-space: nowrap;
/* 确保文本在一行内显示 */
overflow: hidden;
/* 隐藏溢出的内容 */
text-overflow: ellipsis;
/* 使用省略号表示溢出的文本 */
}
</style>