修改bug
This commit is contained in:
parent
a3d33eed34
commit
08b87d995d
2
.env
2
.env
|
@ -2,7 +2,7 @@
|
|||
VITE_PORT = 3100
|
||||
|
||||
# 网站标题 //课程信息中心
|
||||
VITE_GLOB_APP_TITLE = 智慧教学服务中心
|
||||
VITE_GLOB_APP_TITLE = 东师智慧教学服务中心
|
||||
|
||||
# 简称,用于配置文件名字 不要出现空格、数字开头等特殊字符
|
||||
VITE_GLOB_APP_SHORT_NAME = CourseInformationCenter
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<a-col :span="24" style="text-align: center; color: #494b56">
|
||||
<div>老师您好,</div>
|
||||
<div>请根据课程教学大纲的要求,设置学生修完本课程需要完成的课程测验次数。</div>
|
||||
<div style="margin-top: 30px" class="ant-btn buttonClass"><a @click="handleShowType(1)">设置测验次数</a></div>
|
||||
<div style="margin-top: 30px" class="ant-btn buttonClass"><a @click="handleSzzycs(1)">设置测验次数</a></div>
|
||||
<div class="tishi">温馨提示:设置完成后,您也可以在课程教学过程中,随时根据实际情况进行调整。</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
@ -20,6 +20,19 @@
|
|||
<a-col :span="24"><span class="title">课程测验次数设置</span><a-divider /></a-col>
|
||||
<a-col :span="24" style="padding: 0 0 0 30px">
|
||||
<a-row>
|
||||
<a-col :span="24" style="margin-top: 10px; height: 50px">
|
||||
<a-row style="text-align: center">
|
||||
<a-col :span="8"
|
||||
><span>课程作业占比:</span><span>{{ kczyzb }}%;</span></a-col
|
||||
>
|
||||
<a-col :span="8"
|
||||
><span>期末考试占比:</span><span>{{ qmkszb }}%;</span></a-col
|
||||
>
|
||||
<a-col :span="8"
|
||||
><span>课堂测验占比:</span><span>{{ ktcyzb }}%;</span></a-col
|
||||
>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col :span="18" style="margin-top: 5px">
|
||||
<span style="color: #777777">学生修完本课程需要完成的测验次数:</span>
|
||||
<a-input-number style="width: 30%" v-model:value="zycs" @change="handleZycs" :max="100" :disabled="zycsDisabled" /><span
|
||||
|
@ -37,7 +50,7 @@
|
|||
<template #bodyCell="{ column, record }">
|
||||
<template v-if="column.key === 'score'">
|
||||
<span>
|
||||
<a-input-number v-model:value="record.score" :min="0" :max="100"> <template #addonAfter> % </template></a-input-number>
|
||||
<a-input-number v-model:value="record.score" :min="0" :max="100" @blur="handleJscjbfb"> <template #addonAfter> % </template></a-input-number>
|
||||
</span>
|
||||
</template>
|
||||
<template v-else-if="column.key === 'lstitle'">
|
||||
|
@ -552,7 +565,7 @@
|
|||
<a-row>
|
||||
<a-col :span="24"><span class="title">布置测验</span><a-divider /></a-col>
|
||||
<a-col :span="24" style="text-align: right; margin-top: 5px">
|
||||
<a-button type="primary" @click="handleShowType(1)"><Icon icon="ant-design:edit-outlined" />修改课程测验次数</a-button>
|
||||
<a-button type="primary" @click="handleSzzycs(1)"><Icon icon="ant-design:edit-outlined" />修改课程测验次数</a-button>
|
||||
<a-divider type="vertical" />
|
||||
<a-button type="primary" @click="handleAddOne" class="mar-right20"><Icon icon="ant-design:file-add-outlined" />新增测验</a-button>
|
||||
</a-col>
|
||||
|
@ -891,6 +904,10 @@ const qrCodeUrl = ref<string>('');
|
|||
const ewmvisible = ref<boolean>(false);
|
||||
const ewmInfo = ref<any>({});
|
||||
|
||||
const kczyzb = ref<number>(0);
|
||||
const qmkszb = ref<number>(0);
|
||||
const ktcyzb = ref<number>(0);
|
||||
|
||||
//设置测验删除功能
|
||||
const disabledDate = (current: Dayjs) => {
|
||||
return current && current < dayjs().subtract(1, 'days').endOf('day');
|
||||
|
@ -1017,6 +1034,37 @@ function handleYylx(sylx) {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
function handleJscjbfb(){
|
||||
var list = tableData.value;
|
||||
|
||||
var cjbfb = qmkszb.value; //成绩百分比
|
||||
var cjbfb2 = kczyzb.value; //成绩百分比
|
||||
var zcj = 0;
|
||||
var score22 = 0;
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
console.log('🥵', list);
|
||||
var score = list[i].score;
|
||||
if (score == null || score + '' == '') {
|
||||
createMessage.error('第' + (i + 1) + '次作业占总成绩的百分比不能为空!');
|
||||
break;
|
||||
}
|
||||
score22 = parseInt(score22)+parseInt(score);
|
||||
if (score < 0 || score > 100) {
|
||||
createMessage.error('作业成绩百分比必须在0-100之间!');
|
||||
break;
|
||||
}
|
||||
if (score22 > 100) {
|
||||
createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入');
|
||||
break;
|
||||
}
|
||||
}
|
||||
zcj = parseInt(score22)+ parseInt(cjbfb)+ parseInt(cjbfb2);
|
||||
if (zcj > 100) {
|
||||
createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入');
|
||||
}
|
||||
}
|
||||
|
||||
//引用题库回调
|
||||
function handleYytkSuccess(record) {
|
||||
for (var i = 0; i < record.length; i++) {
|
||||
|
@ -1313,40 +1361,67 @@ function handleDelZycs(index) {
|
|||
handleZycs();
|
||||
}
|
||||
|
||||
function handleSzzycs(val){
|
||||
|
||||
defHttp.get({ url: '/zyInfo/zyInfo/zyzb', params: { rwbh, xqxn, teano, zyLeixing: '1' } }).then((res) => {
|
||||
console.log('😥', res);
|
||||
var list = res;
|
||||
for(var i = 0; i < list.length; i++){
|
||||
if(list[i].zyLeixing == '0'){
|
||||
kczyzb.value = list[i].score
|
||||
}else if(list[i].zyLeixing == '1'){
|
||||
qmkszb.value = list[i].score
|
||||
}else if(list[i].zyLeixing == '2'){
|
||||
}else if(list[i].zyLeixing == '3'){
|
||||
ktcyzb.value = list[i].score
|
||||
}
|
||||
}
|
||||
});
|
||||
handleShowType(1)
|
||||
}
|
||||
//批量进行保存
|
||||
function handleBatchAdd() {
|
||||
var list = tableData.value;
|
||||
var sfjx = 0; //是否继续
|
||||
var cjbfb = 0; //成绩百分比
|
||||
var cjbfb = kczyzb.value; //成绩百分比
|
||||
var cjbfb2 = qmkszb.value; //成绩百分比
|
||||
var zcj = 0;
|
||||
|
||||
var score22 = 0;
|
||||
if (list.length == 0) {
|
||||
createMessage.error('测验次数不能为空!');
|
||||
createMessage.error('作业次数不能为空!');
|
||||
return;
|
||||
}
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
console.log('🥵', list);
|
||||
var score = list[i].score;
|
||||
console.log('👨❤️💋👨', !score);
|
||||
console.log('🤖', score == null);
|
||||
console.log('🤖', score + '' == '');
|
||||
if (score == null || score + '' == '') {
|
||||
createMessage.error('第' + (i + 1) + '次测验占期末总成绩的百分比不能为空!');
|
||||
createMessage.error('第' + (i + 1) + '次作业占总成绩的百分比不能为空!');
|
||||
sfjx = 1;
|
||||
break;
|
||||
}
|
||||
cjbfb = parseInt(cjbfb) + parseInt(score);
|
||||
if (score < 0 || score > 100) {
|
||||
createMessage.error('测验成绩百分比必须在0-100之间!');
|
||||
createMessage.error('作业成绩百分比必须在0-100之间!');
|
||||
sfjx = 1;
|
||||
break;
|
||||
}
|
||||
score22 = parseInt(score22) + parseInt(score);
|
||||
if (score22 > 100) {
|
||||
createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入');
|
||||
sfjx = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
zcj = parseInt(score22)+ parseInt(cjbfb)+ parseInt(cjbfb2);
|
||||
|
||||
if (zcj > 100) {
|
||||
createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入');
|
||||
sfjx = 1;
|
||||
}
|
||||
if (sfjx == 1) {
|
||||
return;
|
||||
}
|
||||
if (cjbfb > 100) {
|
||||
createMessage.error('本次测验占期末总成绩的百分比不得超过100%,当前测验总百分比为:' + cjbfb + '%');
|
||||
return;
|
||||
}
|
||||
|
||||
createConfirm({
|
||||
iconType: 'warning',
|
||||
|
@ -1374,7 +1449,7 @@ const columns = [
|
|||
key: 'lstitle',
|
||||
},
|
||||
{
|
||||
title: '本次测验占期末总成绩的百分比',
|
||||
title: '本次测验占总成绩的百分比',
|
||||
dataIndex: 'score',
|
||||
key: 'score',
|
||||
},
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
<a-col :span="24" v-if="addShow">
|
||||
<a-row>
|
||||
<a-col :span="24">
|
||||
<div style="width: 100%;padding:8px 0px 5px 18px;font-size:12px; color:#666; border-left:3px solid #18a689;"
|
||||
<div style="width: 100%; padding: 8px 0px 5px 18px; font-size: 12px; color: #666; border-left: 3px solid #18a689"
|
||||
><span>请选择填写的教学大纲版本</span></div
|
||||
>
|
||||
</a-col>
|
||||
|
@ -42,30 +42,30 @@
|
|||
</a-col>
|
||||
<a-col>
|
||||
<a-row>
|
||||
<a-col
|
||||
:span="23"
|
||||
v-for="(item, index) in zyJxdgMainTable.dataSource"
|
||||
:key="index"
|
||||
class="borderstyle"
|
||||
>
|
||||
<a-col :span="23" v-for="(item, index) in zyJxdgMainTable.dataSource" :key="index" class="borderstyle">
|
||||
<a-row>
|
||||
<a-col :span="24" style="height: 40px; line-height: 40px; background-color: #f7fbfa;border-radius:6px">
|
||||
<a-col :span="24" style="height: 40px; line-height: 40px; background-color: #f7fbfa; border-radius: 6px">
|
||||
<span class="title">{{ item.title }}</span>
|
||||
</a-col>
|
||||
<a-col :span="24" v-if="item.tsy">
|
||||
<span class="tishi">
|
||||
<span>{{ item.tsy }}</span>
|
||||
</span>
|
||||
</a-col>
|
||||
<!-- 单行文本 1 -->
|
||||
<a-col v-if="item.type === '1'" :span="24">
|
||||
<a-input placeholder="请输入内容" v-model:value="item.content" style="width: 100%;" @blur="handleGlxm(item)"></a-input>
|
||||
<a-input placeholder="请输入内容" v-model:value="item.content" style="width: 100%" @blur="handleGlxm(item)"></a-input>
|
||||
</a-col>
|
||||
<!-- 多行文本 2 -->
|
||||
<a-col v-else-if="item.type === '2'" :span="24">
|
||||
<a-textarea placeholder="请输入内容" v-model:value="item.content" style="width: 100%;"></a-textarea>
|
||||
<a-textarea placeholder="请输入内容" v-model:value="item.content" style="width: 100%"></a-textarea>
|
||||
</a-col>
|
||||
<!-- 富文本 3 -->
|
||||
<a-col v-else-if="item.type === '3'" :span="24">
|
||||
<j-editor placeholder="请输入内容" v-model:value="item.content" :disabled="disabled" />
|
||||
</a-col>
|
||||
<!-- 固定表单(基础信息) 4 -->
|
||||
<a-col v-else-if="item.type === '4'" v-model:value="item.content" :span="24" >
|
||||
<a-col v-else-if="item.type === '4'" v-model:value="item.content" :span="24">
|
||||
<a-form v-bind="formItemLayout">
|
||||
<a-row>
|
||||
<a-col v-for="(item2, index2) in item.zyJxdgPzxxList" :key="index2" :span="12">
|
||||
|
@ -80,7 +80,7 @@
|
|||
<a-col v-else-if="item.type === '5'" :span="24">
|
||||
<a-table :columns="getTableColumns(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
|
||||
<template #bodyCell="{ column, record }">
|
||||
<a-input placeholder="请输入内容" v-model:value="record[column.key]" style="width: 80%;"></a-input>
|
||||
<a-input placeholder="请输入内容" v-model:value="record[column.key]" style="width: 80%"></a-input>
|
||||
</template>
|
||||
</a-table>
|
||||
</a-col>
|
||||
|
@ -95,7 +95,7 @@
|
|||
placeholder="请输入内容"
|
||||
v-model:value="item2.title"
|
||||
class="form-pattern"
|
||||
style="width:90%; "
|
||||
style="width: 90%"
|
||||
@blur="handleGlxm(item)"
|
||||
></a-input>
|
||||
<button @click="handleDhwbDel(item, index2)" class="ant-btn">删除</button>
|
||||
|
@ -108,9 +108,9 @@
|
|||
<a-col>
|
||||
<a-button type="primary" @click="handleDhfwb(item)" class="increase" preIcon="ant-design:plus-outlined">添加</a-button>
|
||||
</a-col>
|
||||
<a-col v-for="(item2, index2) in item.list" :key="index2" style="text-align: right;">
|
||||
<a-col v-for="(item2, index2) in item.list" :key="index2" style="text-align: right">
|
||||
<j-editor placeholder="请输入内容" v-model:value="item2.title" :disabled="disabled" />
|
||||
<button @click="handleDhfwbDel(item, index2)" class="ant-btn" style="margin: 8px 0 ">删除</button>
|
||||
<button @click="handleDhfwbDel(item, index2)" class="ant-btn" style="margin: 8px 0">删除</button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
|
@ -120,7 +120,7 @@
|
|||
<a-col>
|
||||
<a-button type="primary" @click="handleDhwbArea(item)" class="increase" preIcon="ant-design:plus-outlined">添加</a-button>
|
||||
</a-col>
|
||||
<a-col v-for="(item2, index2) in item.list" :key="index2" style="text-align: right;">
|
||||
<a-col v-for="(item2, index2) in item.list" :key="index2" style="text-align: right">
|
||||
<a-textarea placeholder="请输入内容" v-model:value="item2.title" :disabled="disabled" />
|
||||
<button @click="handleDhwbAreaDel(item, index2)" class="ant-btn" style="margin: 8px 0">删除</button>
|
||||
</a-col>
|
||||
|
@ -154,7 +154,7 @@
|
|||
placeholder="请输入内容"
|
||||
v-model:value="record[column.key]"
|
||||
@blur="handleTwoGlxm(item)"
|
||||
style="width: 100%;"
|
||||
style="width: 100%"
|
||||
></a-input>
|
||||
</template>
|
||||
</template>
|
||||
|
@ -189,22 +189,22 @@
|
|||
<a-col style="margin-bottom: 15px"></a-col>
|
||||
<a-col v-for="(item2, index2) in item.list2Map" :key="index2">
|
||||
<!-- -{{ item2 }}- -->
|
||||
<a-row style="margin:10px">
|
||||
<a-col v-for="(item3, index3) in item2" :span="index3 == 0 ? '5' : '16'" :key="index3" >
|
||||
<a-row style="margin: 10px">
|
||||
<a-col v-for="(item3, index3) in item2" :span="index3 == 0 ? '5' : '16'" :key="index3">
|
||||
<!-- -{{ item3 }}- -->
|
||||
<span>
|
||||
<a-input
|
||||
placeholder="请输入内容"
|
||||
v-model:value="item3.title"
|
||||
class="Sheet"
|
||||
style="width:95%; "
|
||||
style="width: 95%"
|
||||
:disabled="index3 == 0"
|
||||
@blur="handle2Glxm(item)"
|
||||
></a-input>
|
||||
</span>
|
||||
</a-col>
|
||||
<a-col :span="2">
|
||||
<button @click="handleKcmbZzbgDel(item, index2)" class="ant-btn" >删除</button>
|
||||
<button @click="handleKcmbZzbgDel(item, index2)" class="ant-btn">删除</button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
|
@ -223,10 +223,10 @@
|
|||
<a-row v-for="(item2, index2) in item.list" :key="index2">
|
||||
<a-col v-for="(item3, index3) in item2.list" :key="index3" style="line-height: 40px">
|
||||
<a-row>
|
||||
<a-col style="text-align:right; color:#777;" :span="6"> {{ item3.title }}: </a-col>
|
||||
<a-col style="text-align: right; color: #777" :span="6"> {{ item3.title }}: </a-col>
|
||||
<a-col :span="18">
|
||||
<span v-if="item3.type === '1'">
|
||||
<a-input v-model:value="item3.content" style="width:97%; margin-left:10px; text-align: left"></a-input>
|
||||
<a-input v-model:value="item3.content" style="width: 97%; margin-left: 10px; text-align: left"></a-input>
|
||||
</span>
|
||||
<span v-if="item3.type === '2'">
|
||||
<a-select
|
||||
|
@ -234,7 +234,7 @@
|
|||
v-model:value="item3.content"
|
||||
mode="tags"
|
||||
:disabled="disabled"
|
||||
style="width:97%; text-align:left;margin-left:10px;"
|
||||
style="width: 97%; text-align: left; margin-left: 10px"
|
||||
>
|
||||
<a-select-option value="">{{ `请选择` + item3.title }}</a-select-option>
|
||||
<a-select-option :value="peizhi.title" v-for="(peizhi, index2) in kcmbDataSource" :key="index2">{{
|
||||
|
@ -245,8 +245,8 @@
|
|||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col style="text-align: right; margin-right:9px;">
|
||||
<button class="ant-btn" @click="handle13DelZzbg(item, index2)" style="margin:5px 0">删除</button>
|
||||
<a-col style="text-align: right; margin-right: 9px">
|
||||
<button class="ant-btn" @click="handle13DelZzbg(item, index2)" style="margin: 5px 0">删除</button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
|
@ -262,7 +262,7 @@
|
|||
<a-col v-if="kcmbShow">
|
||||
<a-row>
|
||||
<a-col :span="10">
|
||||
<a-select :placeholder="`请选择课程目标`" v-model:value="checkKcmb" :disabled="disabled" style="width: 90%; margin:10px 0">
|
||||
<a-select :placeholder="`请选择课程目标`" v-model:value="checkKcmb" :disabled="disabled" style="width: 90%; margin: 10px 0">
|
||||
<a-select-option value="">请选择课程目标</a-select-option>
|
||||
<a-select-option :value="peizhi.title" v-for="(peizhi, index2) in kcmbDataSource" :key="index2">{{
|
||||
peizhi.title
|
||||
|
@ -270,7 +270,13 @@
|
|||
</a-select>
|
||||
</a-col>
|
||||
<a-col :span="10">
|
||||
<a-select :placeholder="`请选择考核方式`" v-model:value="checkKhfs" :disabled="disabled" mode="tags" style="width: 90%;margin:10px 0">
|
||||
<a-select
|
||||
:placeholder="`请选择考核方式`"
|
||||
v-model:value="checkKhfs"
|
||||
:disabled="disabled"
|
||||
mode="tags"
|
||||
style="width: 90%; margin: 10px 0"
|
||||
>
|
||||
<a-select-option value="">请选择考核方式</a-select-option>
|
||||
<a-select-option :value="peizhi.title" v-for="(peizhi, index2) in khmbDataSource" :key="index2">{{
|
||||
peizhi.title
|
||||
|
@ -278,7 +284,7 @@
|
|||
</a-select>
|
||||
</a-col>
|
||||
<a-col :span="4">
|
||||
<button class="ant-btn" @click="handleKhmbqueren(item)" style="margin:10px 0">确认</button>
|
||||
<button class="ant-btn" @click="handleKhmbqueren(item)" style="margin: 10px 0">确认</button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
|
@ -305,12 +311,6 @@
|
|||
<!-- --------------------------------------20240824------------------------------------------------------ -->
|
||||
|
||||
<a-col v-else> </a-col>
|
||||
|
||||
<a-col :span="24" v-if="item.tsy">
|
||||
<span class="tishi">
|
||||
<span>{{ item.tsy }}</span>
|
||||
</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
@ -335,18 +335,18 @@
|
|||
>
|
||||
<a-divider />
|
||||
</a-col>
|
||||
<a-col
|
||||
:span="23"
|
||||
v-for="(item, index) in zyJxdgMainTable.dataSource"
|
||||
:key="index"
|
||||
class="borderstyle"
|
||||
>
|
||||
<a-col :span="23" v-for="(item, index) in zyJxdgMainTable.dataSource" :key="index" class="borderstyle">
|
||||
<a-row>
|
||||
<a-col :span="24" style="height: 40px; line-height: 40px; background-color: #f7fbfa;border-radius:6px">
|
||||
<a-col :span="24" style="height: 40px; line-height: 40px; background-color: #f7fbfa; border-radius: 6px">
|
||||
<span class="title">{{ item.title }}</span>
|
||||
</a-col>
|
||||
<a-col :span="24" v-if="item.tsy">
|
||||
<span class="tishi">
|
||||
<span>{{ item.tsy }}</span>
|
||||
</span>
|
||||
</a-col>
|
||||
<!-- 单行文本 1 -->
|
||||
<a-col v-if="item.type === '1'" :span="24" style="margin: 10px;">
|
||||
<a-col v-if="item.type === '1'" :span="24" style="margin: 10px">
|
||||
<span class="Text-Content" v-text="item.content"></span>
|
||||
</a-col>
|
||||
<!-- 多行文本 2 -->
|
||||
|
@ -424,7 +424,7 @@
|
|||
<a-row>
|
||||
<a-col v-for="(item3, index3) in item2" :span="index3 == 0 ? '5' : '16'" :key="index3">
|
||||
<!-- -{{ item3 }}- -->
|
||||
<span style="line-height: 40px; margin-left: 15px;" v-if="index3 == 0"> {{ item3.title }}: </span>
|
||||
<span style="line-height: 40px; margin-left: 15px" v-if="index3 == 0"> {{ item3.title }}: </span>
|
||||
<span style="line-height: 40px" v-else>
|
||||
{{ item3.title }}
|
||||
</span>
|
||||
|
@ -439,14 +439,24 @@
|
|||
<a-row>
|
||||
<a-col>
|
||||
<a-row v-for="(item2, index2) in item.list" :key="index2" class="dhxg">
|
||||
<a-col v-for="(item3, index3) in item2.list" :key="index3" style="line-height: 40px;">
|
||||
<a-row style="padding:5px; ">
|
||||
<a-col style="text-align: left" :span="7"> {{ item3.title }}: </a-col>
|
||||
<a-col v-for="(item3, index3) in item2.list" :key="index3" style="line-height: 40px">
|
||||
<a-row style="padding: 5px">
|
||||
<a-col v-if="index3 == 0 || index3 == 1">
|
||||
<a-row>
|
||||
<a-col style="text-align: left" :span="4"> {{ item3.title }}: </a-col>
|
||||
<a-col :span="15">
|
||||
{{ item3.content }}
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col v-else style="text-align: left" :span="24">
|
||||
<div> {{ item3.title }}: </div>
|
||||
<div style="padding: 0 0 0 15px">
|
||||
{{ item3.content }}
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col style="height: 20px"> </a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
|
@ -457,7 +467,8 @@
|
|||
<a-col v-else-if="item.type === '14'" :span="24">
|
||||
<a-row>
|
||||
<a-col>
|
||||
<a-table :columns="getTableZzColumns2(item.zyJxdgPzxxList)" :dataSource="item.list" :pagination="false">
|
||||
<!-- -{{ getTableZzColumns222(item.zyJxdgPzxxList, item.list) }}- -->
|
||||
<a-table :columns="getTableZzColumns222(item.zyJxdgPzxxList, item.list)" :dataSource="item.list" :pagination="false">
|
||||
<!-- <template #bodyCell="{ column, record }">
|
||||
<template v-if="column.key === 'action'">
|
||||
<button @click="handleZzbgDel(item.list, record.sort)" class="ant-btn">删除</button>
|
||||
|
@ -479,12 +490,6 @@
|
|||
<!-- --------------------------------------20240824------------------------------------------------------ -->
|
||||
|
||||
<a-col v-else> </a-col>
|
||||
|
||||
<a-col :span="24" v-if="item.tsy">
|
||||
<span class="tishi">
|
||||
<span>{{ item.tsy }}</span>
|
||||
</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
@ -572,6 +577,7 @@ function handleGlxm(item) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
function handleFabu(sffb) {
|
||||
if (sffb == '1') {
|
||||
var par = jxdgInfo.value;
|
||||
|
@ -746,12 +752,106 @@ function getTableZzColumns2(list) {
|
|||
title: par.title,
|
||||
dataIndex: par.id,
|
||||
key: par.id,
|
||||
customCell: (_, index) => {
|
||||
if (index === 2) {
|
||||
return { rowSpan: 2 };
|
||||
}
|
||||
// These two are merged into above cell
|
||||
if (index === 3) {
|
||||
return { rowSpan: 0 };
|
||||
}
|
||||
if (index === 4) {
|
||||
return { colSpan: 0 };
|
||||
}
|
||||
},
|
||||
};
|
||||
columns.push(inePar);
|
||||
}
|
||||
return columns;
|
||||
}
|
||||
|
||||
//获取自增列表列表头
|
||||
function getTableZzColumns222(list, datalist) {
|
||||
console.log('🙎♀️datalist-->', datalist);
|
||||
const data = datalist;
|
||||
// console.log('😊', data);
|
||||
let columns = reactive<any>([]);
|
||||
let namePar = '';
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
var par = list[i];
|
||||
var inePar = {
|
||||
title: par.title,
|
||||
dataIndex: par.id,
|
||||
key: par.id,
|
||||
customCell: (record, index, bhdata) => {
|
||||
// if (bhdata.title == '课程目标' && (index == 0 || index == 1)) {
|
||||
// let nextRecord = data[index + 1];
|
||||
// if (nextRecord && nextRecord[bhdata.key] === record[bhdata.key]) {
|
||||
// let rowSpan = 1;
|
||||
// while (nextRecord && nextRecord[bhdata.key] === record[bhdata.key]) {
|
||||
// nextRecord = data[index + rowSpan];
|
||||
// rowSpan += 1;
|
||||
// }
|
||||
// rowSpan -= 1;
|
||||
// console.log(rowSpan);
|
||||
// return {
|
||||
// rowSpan,
|
||||
// };
|
||||
// } else {
|
||||
// return {
|
||||
// rowSpan: 0,
|
||||
// };
|
||||
// }
|
||||
// }
|
||||
|
||||
if (bhdata.title == '课程目标') {
|
||||
let nextRecord = data[index + 1];
|
||||
let rowSpan = 0;
|
||||
while (nextRecord && nextRecord[bhdata.key] === record[bhdata.key]) {
|
||||
namePar = nextRecord[bhdata.key];
|
||||
rowSpan += 1;
|
||||
nextRecord = data[index + rowSpan];
|
||||
}
|
||||
let sizeNum = 0;
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
let beforeRecord = data[i];
|
||||
if (beforeRecord[bhdata.key] === record[bhdata.key]) {
|
||||
sizeNum += 1;
|
||||
}
|
||||
}
|
||||
console.log('👨🦳', sizeNum);
|
||||
if (sizeNum != rowSpan ) {
|
||||
rowSpan = 0;
|
||||
}
|
||||
if(sizeNum == 1){
|
||||
rowSpan = 1;
|
||||
}
|
||||
return {
|
||||
rowSpan,
|
||||
};
|
||||
}
|
||||
},
|
||||
};
|
||||
columns.push(inePar);
|
||||
}
|
||||
|
||||
// columns[0].customCell = (text, index,record ) => {
|
||||
// if (index === 0) {
|
||||
// return {
|
||||
// rowSpan: 2,
|
||||
// };
|
||||
// }
|
||||
// if (index === 1) {
|
||||
// return {
|
||||
// rowSpan: 0,
|
||||
// };
|
||||
// }
|
||||
// };
|
||||
|
||||
// console.log('columns-->', columns);
|
||||
return columns;
|
||||
}
|
||||
|
||||
//选择教学大纲版本
|
||||
async function handleCheckBanben(record) {
|
||||
jxdgInfo.value.banbenId = record.id;
|
||||
|
@ -1206,7 +1306,7 @@ onMounted(() => {
|
|||
font-feature-settings: tnum;
|
||||
/* margin-bottom: 24px; */
|
||||
vertical-align: top;
|
||||
background: #fafafa ;
|
||||
background: #fafafa;
|
||||
}
|
||||
.bled-countenance {
|
||||
color: #333333;
|
||||
|
@ -1222,7 +1322,7 @@ onMounted(() => {
|
|||
border-radius: 5px;
|
||||
border: 1px solid #e6e6e6;
|
||||
}
|
||||
.region:hover{
|
||||
.region:hover {
|
||||
margin: 6px 10px;
|
||||
padding-bottom: 20px;
|
||||
background: #fff;
|
||||
|
@ -1287,19 +1387,19 @@ onMounted(() => {
|
|||
margin: 17px;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.borderstyle{
|
||||
margin:8px auto;
|
||||
border:1px solid #e6e6e6;
|
||||
background:#fff;
|
||||
border-radius:6px;
|
||||
.borderstyle {
|
||||
margin: 8px auto;
|
||||
border: 1px solid #e6e6e6;
|
||||
background: #fff;
|
||||
border-radius: 6px;
|
||||
padding: 8px;
|
||||
}
|
||||
.borderstyle:hover{
|
||||
margin:8px auto;
|
||||
border:1px solid #e6e6e6;
|
||||
background:#fff;
|
||||
border-radius:6px;
|
||||
padding:8px;
|
||||
.borderstyle:hover {
|
||||
margin: 8px auto;
|
||||
border: 1px solid #e6e6e6;
|
||||
background: #fff;
|
||||
border-radius: 6px;
|
||||
padding: 8px;
|
||||
box-shadow: 2px 2px 10px 1px #d4d4d4;
|
||||
}
|
||||
</style>
|
|
@ -79,9 +79,9 @@
|
|||
|
||||
<span class="topTitle" >
|
||||
<div hidden @click="testKuayu">点击开始跨域报错</div>
|
||||
<RouterLink :to="{path:'/site/index'}" style="color:white;">{{ projectName }}<span style="font-size: 16px;">(听评课督导平台)</span>
|
||||
<span style="font-size: 16px;" v-if="getSysConfig().flag1">{{getSysConfig().flag1}}({{getSysConfig().bxqkssj}}至{{getSysConfig().bxqjssj}})</span>
|
||||
<span style="font-size: 16px;margin-left: 20px;" v-if="getUserSf()=='T'" >本学期听课要求:{{tkyqcs}}<span v-if="tkyqcs!='未配置'">次</span>;已完成:{{tkyqywc}}次</span>
|
||||
<RouterLink :to="{path:'/site/index'}" style="color:white;">{{ projectName }}<span style="">(听评课督导平台)</span>
|
||||
<!-- <span style="font-size: 16px;" v-if="getSysConfig().flag1">{{getSysConfig().flag1}}({{getSysConfig().bxqkssj}}至{{getSysConfig().bxqjssj}})</span>
|
||||
<span style="font-size: 16px;margin-left: 20px;" v-if="getUserSf()=='T'" >本学期听课要求:{{tkyqcs}}<span v-if="tkyqcs!='未配置'">次</span>;已完成:{{tkyqywc}}次</span> -->
|
||||
</RouterLink>
|
||||
<RouterLink hidden target='_blank' :to="{path:'/site/liveView',query:{ url: 'rtsp://176.139.87.16/axis-media/media.amp' }}">直播测试页rtsp</RouterLink>
|
||||
<RouterLink hidden target='_blank' :to="{path:'/site/liveFlvView',query:{ url: 'rtsp://176.139.87.16/axis-media/media.amp' }}">直播测试页flv</RouterLink>
|
||||
|
|
|
@ -3,208 +3,217 @@
|
|||
<div id="maxSite" :style="maxClassName">
|
||||
<a-layout>
|
||||
<!-- 页头 -->
|
||||
<headerPage showRightButton/>
|
||||
<headerPage showRightButton />
|
||||
<!-- 主体部分 -->
|
||||
<a-layout-content v-if="getUserSf()=='T'">
|
||||
<a-layout-content v-if="getUserSf() == 'T'">
|
||||
<!-- 学期学年及听课指标 -->
|
||||
<div class="bmdTitle" v-if="getSysConfig().sfbmd == 'y' && getSysConfig().bmdTitle">{{ getSysConfig().bmdTitle }}</div>
|
||||
<!-- 白名单说明文字 -->
|
||||
<div class="bmdTitle" v-if="getSysConfig().sfbmd=='y'&&getSysConfig().bmdTitle">{{getSysConfig().bmdTitle}}</div>
|
||||
<div class="xnxqClass" style="text-align: right;" v-if="getSysConfig().flag1">
|
||||
<span style="font-size: 16px;" v-if="getSysConfig().flag1">当前学期:{{getSysConfig().flag1}}({{getSysConfig().bxqkssj}}至{{getSysConfig().bxqjssj}})</span>
|
||||
<span style="font-size: 16px;margin-left: 20px;" v-if="getUserSf()=='T'" >本学期听课要求:{{tkyqcs}}<span v-if="tkyqcs!='未配置'">次</span>;已完成:{{tkyqywc}}次</span>
|
||||
</div>
|
||||
<!-- 统计 -->
|
||||
<tongjiPage v-if="getUserSf()=='T'&&getSysConfig().flag7=='1'&&getSysConfig().sfbmd=='n'&&sfxx=='1'"/>
|
||||
<tongjiPage v-if="getUserSf() == 'T' && getSysConfig().flag7 == '1' && getSysConfig().sfbmd == 'n' && sfxx == '1'" />
|
||||
<!-- 轮播图 -->
|
||||
<lunboPage v-if="getSysConfig().sfbmd=='n'"/>
|
||||
<lunboPage v-if="getSysConfig().sfbmd == 'n'" />
|
||||
<!-- 通知公告 -->
|
||||
<tongZhiGongGaoPage v-if="getSysConfig().sfbmd=='n'"/>
|
||||
<tongZhiGongGaoPage v-if="getSysConfig().sfbmd == 'n'" />
|
||||
|
||||
<!-- 教师代办提醒 -->
|
||||
<teacherDbtx v-if="getUserSf()=='T'"></teacherDbtx>
|
||||
<teacherDbtx v-if="getUserSf() == 'T'"></teacherDbtx>
|
||||
<!-- 任教教程 -->
|
||||
<renKeJiaoChengPage v-if="getUserSf()=='T'&&getSysConfig().flag2=='1'&&getSysConfig().sfbmd=='n'" />
|
||||
<renKeJiaoChengPage v-if="getUserSf() == 'T' && getSysConfig().flag2 == '1' && getSysConfig().sfbmd == 'n'" />
|
||||
<!-- 精彩公开课 -->
|
||||
<jingCaiGongKaiKePage v-if="getUserSf()=='T'&&getSysConfig().flag4=='1'&&getSysConfig().sfbmd=='n'"/>
|
||||
<jingCaiGongKaiKePage v-if="getUserSf() == 'T' && getSysConfig().flag4 == '1' && getSysConfig().sfbmd == 'n'" />
|
||||
<!-- 可线上听课课堂 -->
|
||||
<kxstkktPage v-if="getUserSf()=='T'&&getSysConfig().flag5=='1'"/>
|
||||
<kxstkktPage v-if="getUserSf() == 'T' && getSysConfig().flag5 == '1'" />
|
||||
<!-- 今日课程列表 -->
|
||||
<a-card class="rowGutter" v-if="getUserSf()=='T'&&getSysConfig().flag6=='1'" id="jrkclbDom">
|
||||
<a-card class="rowGutter" v-if="getUserSf() == 'T' && getSysConfig().flag6 == '1'" id="jrkclbDom">
|
||||
<template #title>
|
||||
<span style="font-size: 24px;font-weight: bold;">课程查询</span>
|
||||
<span style="margin-left: 5%;font-weight: 700;color: red;font-size: 16px;">{{getSysConfig().jrktTitle}}</span>
|
||||
<span style="font-size: 24px; font-weight: bold">课程查询</span>
|
||||
<span style="margin-left: 5%; font-weight: 700; color: red; font-size: 16px">{{ getSysConfig().jrktTitle }}</span>
|
||||
</template>
|
||||
<a-tabs v-model:activeKey="activeKey" type="card" @change="kclbCard">
|
||||
<a-tab-pane key="1">
|
||||
<template #tab>
|
||||
<div style="font-weight: 600;font-size: 16px;">{{zzskTitle}}</div>
|
||||
<div style="font-weight: 600; font-size: 16px">{{ zzskTitle }}</div>
|
||||
</template>
|
||||
<kclbZzsk ref="zzskModeal" @jrkclb-load="jrkclbLoad"></kclbZzsk>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane key="2">
|
||||
<template #tab>
|
||||
<div style="font-weight: 600;font-size: 16px;">下一节课</div>
|
||||
<div style="font-weight: 600; font-size: 16px">下一节课</div>
|
||||
</template>
|
||||
<kclbXyjk ref="xyjkModeal" @jrkclb-load="jrkclbLoad"></kclbXyjk>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane key="3">
|
||||
<template #tab>
|
||||
<div style="font-weight: 600;font-size: 16px;">日课表</div>
|
||||
<div style="font-weight: 600; font-size: 16px">日课表</div>
|
||||
</template>
|
||||
<kclbRkb ref="rkbModeal" @jrkclb-load="jrkclbLoad"></kclbRkb>
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
</a-card>
|
||||
<!-- 预约课程 -->
|
||||
<yuYueKeChengPage ref="yykcModeal" @orther-load="yykcLoad" v-if="getUserSf()=='T'&&getSysConfig().flag3=='1'"/>
|
||||
<yuYueKeChengPage ref="yykcModeal" @orther-load="yykcLoad" v-if="getUserSf() == 'T' && getSysConfig().flag3 == '1'" />
|
||||
<!-- 课堂随笔 -->
|
||||
<ktsbPage v-if="getSysConfig().sfbmd=='n'&&getUserSf()=='T'"/>
|
||||
<ktsbPage v-if="getSysConfig().sfbmd == 'n' && getUserSf() == 'T'" />
|
||||
<!-- 评价结果 -->
|
||||
<pjjgPage v-if="getSysConfig().sfbmd=='n'&&getUserSf()=='T'"/>
|
||||
<pjjgPage v-if="getSysConfig().sfbmd == 'n' && getUserSf() == 'T'" />
|
||||
<!-- 听课足迹 -->
|
||||
<tingKeZuJiPage v-if="getUserSf()=='T'"/>
|
||||
|
||||
<tingKeZuJiPage v-if="getUserSf() == 'T'" />
|
||||
</a-layout-content>
|
||||
<!-- 学生部分今日课表 -->
|
||||
<StudentJrkbPage v-if="getUserSf()=='S-'"></StudentJrkbPage>
|
||||
<StudentJrkbPage v-if="getUserSf() == 'S-'"></StudentJrkbPage>
|
||||
<!-- 学生部分近六日课表 -->
|
||||
<StudentJlrkbPage v-if="getUserSf()=='S-'"></StudentJlrkbPage>
|
||||
<StudentJlrkbPage v-if="getUserSf() == 'S-'"></StudentJlrkbPage>
|
||||
<!-- 学生代办提醒 -->
|
||||
<studentDbtx v-if="getUserSf()=='S'"></studentDbtx>
|
||||
<studentDbtx v-if="getUserSf() == 'S'"></studentDbtx>
|
||||
<!-- 我的课程 -->
|
||||
<studentWdkc v-if="getUserSf()=='S'"></studentWdkc>
|
||||
<studentWdkc v-if="getUserSf() == 'S'"></studentWdkc>
|
||||
<!-- 页尾 -->
|
||||
<footerPage/>
|
||||
<footerPage />
|
||||
</a-layout>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref, onMounted } from 'vue';
|
||||
import { ref, onMounted } from 'vue';
|
||||
|
||||
import headerPage from '/@/views/site/common/header.vue';
|
||||
import footerPage from '/@/views/site/common/footer.vue';
|
||||
import headerPage from '/@/views/site/common/header.vue';
|
||||
import footerPage from '/@/views/site/common/footer.vue';
|
||||
|
||||
import tongjiPage from '/@/views/site/tongJi/index.vue';
|
||||
import lunboPage from '/@/views/site/lunBo/index.vue';
|
||||
import tongZhiGongGaoPage from '/@/views/site/tongZhiGongGao/index.vue';
|
||||
import renKeJiaoChengPage from '/@/views/site/renKeJiaoCheng/index.vue'
|
||||
import tingKeZuJiPage from '/@/views/site/tingKeZuJi/index.vue'
|
||||
import yuYueKeChengPage from '/@/views/site/yuYueKeCheng/index.vue'
|
||||
import jingCaiGongKaiKePage from '/@/views/site/jingCaiGongKaiKe/index.vue'
|
||||
import kxstkktPage from '/@/views/site/kxstkkt/index.vue'
|
||||
import ktsbPage from '/@/views/site/ktsb/index.vue'
|
||||
import tongjiPage from '/@/views/site/tongJi/index.vue';
|
||||
import lunboPage from '/@/views/site/lunBo/index.vue';
|
||||
import tongZhiGongGaoPage from '/@/views/site/tongZhiGongGao/index.vue';
|
||||
import renKeJiaoChengPage from '/@/views/site/renKeJiaoCheng/index.vue';
|
||||
import tingKeZuJiPage from '/@/views/site/tingKeZuJi/index.vue';
|
||||
import yuYueKeChengPage from '/@/views/site/yuYueKeCheng/index.vue';
|
||||
import jingCaiGongKaiKePage from '/@/views/site/jingCaiGongKaiKe/index.vue';
|
||||
import kxstkktPage from '/@/views/site/kxstkkt/index.vue';
|
||||
import ktsbPage from '/@/views/site/ktsb/index.vue';
|
||||
|
||||
import kclbZzsk from '/@/views/site/jrkclb/kclbZzsk.vue';
|
||||
import kclbXyjk from '/@/views/site/jrkclb/kclbXyjk.vue';
|
||||
import kclbRkb from '/@/views/site/jrkclb/kclbRkb.vue';
|
||||
|
||||
import StudentJrkbPage from '/@/views/site/studentJrkb/index.vue';
|
||||
import StudentJlrkbPage from '/@/views/site/studentJlrkb/index.vue';
|
||||
import studentWdkc from '/@/views/site/studentWdkc/studentWdkc.vue';
|
||||
import studentDbtx from '/@/views/site/studentWdkc/studentDbtx.vue';
|
||||
import teacherDbtx from '/@/views/site/studentWdkc/teacherDbtx.vue';
|
||||
|
||||
import kclbZzsk from '/@/views/site/jrkclb/kclbZzsk.vue';
|
||||
import kclbXyjk from '/@/views/site/jrkclb/kclbXyjk.vue';
|
||||
import kclbRkb from '/@/views/site/jrkclb/kclbRkb.vue';
|
||||
import pjjgPage from '/@/views/site/pjjgPage/index.vue';
|
||||
|
||||
import { getUserSf, getSysConfig, getUserInfo } from '/@/views/site/utils/index';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
|
||||
import StudentJrkbPage from '/@/views/site/studentJrkb/index.vue';
|
||||
import StudentJlrkbPage from '/@/views/site/studentJlrkb/index.vue';
|
||||
import studentWdkc from '/@/views/site/studentWdkc/studentWdkc.vue';
|
||||
import studentDbtx from '/@/views/site/studentWdkc/studentDbtx.vue';
|
||||
import teacherDbtx from '/@/views/site/studentWdkc/teacherDbtx.vue';
|
||||
// const headerPage = () => import('/@/views/site/common/header.vue');
|
||||
// const footerPage = () => import('/@/views/site/common/footer.vue');
|
||||
|
||||
import pjjgPage from '/@/views/site/pjjgPage/index.vue';
|
||||
// const tongjiPage = () => import('/@/views/site/tongJi/index.vue');
|
||||
// const lunboPage = () => import('/@/views/site/lunBo/index.vue');
|
||||
// const tongZhiGongGaoPage = () => import('/@/views/site/tongZhiGongGao/index.vue');
|
||||
// const renKeJiaoChengPage = () => import('/@/views/site/renKeJiaoCheng/index.vue');
|
||||
// const tingKeZuJiPage = () => import('/@/views/site/tingKeZuJi/index.vue');
|
||||
// const yuYueKeChengPage = () => import('/@/views/site/yuYueKeCheng/index.vue');
|
||||
// const jingCaiGongKaiKePage = () => import('/@/views/site/jingCaiGongKaiKe/index.vue');
|
||||
// const kxstkktPage = () => import('/@/views/site/kxstkkt/index.vue');
|
||||
|
||||
import { getUserSf,getSysConfig,getUserInfo } from '/@/views/site/utils/index';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
// const kclbZzsk = () => import('/@/views/site/jrkclb/kclbZzsk.vue');
|
||||
// const kclbXyjk = () => import('/@/views/site/jrkclb/kclbXyjk.vue');
|
||||
// const kclbRkb = () => import('/@/views/site/jrkclb/kclbRkb.vue');
|
||||
|
||||
// const headerPage = () => import('/@/views/site/common/header.vue');
|
||||
// const footerPage = () => import('/@/views/site/common/footer.vue');
|
||||
// const StudentJrkbPage = () => import('/@/views/site/studentJrkb/index.vue');
|
||||
// const StudentJlrkbPage = () => import('/@/views/site/studentJlrkb/index.vue');
|
||||
|
||||
// const tongjiPage = () => import('/@/views/site/tongJi/index.vue');
|
||||
// const lunboPage = () => import('/@/views/site/lunBo/index.vue');
|
||||
// const tongZhiGongGaoPage = () => import('/@/views/site/tongZhiGongGao/index.vue');
|
||||
// const renKeJiaoChengPage = () => import('/@/views/site/renKeJiaoCheng/index.vue');
|
||||
// const tingKeZuJiPage = () => import('/@/views/site/tingKeZuJi/index.vue');
|
||||
// const yuYueKeChengPage = () => import('/@/views/site/yuYueKeCheng/index.vue');
|
||||
// const jingCaiGongKaiKePage = () => import('/@/views/site/jingCaiGongKaiKe/index.vue');
|
||||
// const kxstkktPage = () => import('/@/views/site/kxstkkt/index.vue');
|
||||
const activeKey = ref('1');
|
||||
const zzskModeal = ref();
|
||||
const xyjkModeal = ref();
|
||||
const rkbModeal = ref();
|
||||
const yykcModeal = ref();
|
||||
const maxClassName = ref<any>({});
|
||||
const zzskTitle = ref('正在上课');
|
||||
const queryParam = ref<any>({});
|
||||
|
||||
// const kclbZzsk = () => import('/@/views/site/jrkclb/kclbZzsk.vue');
|
||||
// const kclbXyjk = () => import('/@/views/site/jrkclb/kclbXyjk.vue');
|
||||
// const kclbRkb = () => import('/@/views/site/jrkclb/kclbRkb.vue');
|
||||
const sfxx = ref<string>('0');
|
||||
const tkyqcs = ref<string>('未配置');
|
||||
const tkyqywc = ref<string>('0');
|
||||
|
||||
const jclist = (queryParam) => defHttp.get({ url: '/kcJieci/kcJieci/getIndexJcList', params: queryParam });
|
||||
|
||||
// const StudentJrkbPage = () => import('/@/views/site/studentJrkb/index.vue');
|
||||
// const StudentJlrkbPage = () => import('/@/views/site/studentJlrkb/index.vue');
|
||||
const yqlist = (queryParam) => defHttp.get({ url: '/kcTingke/kcTingke/getUserTingkeInfo', params:queryParam });
|
||||
|
||||
|
||||
const activeKey = ref('1');
|
||||
const zzskModeal = ref();
|
||||
const xyjkModeal = ref();
|
||||
const rkbModeal = ref();
|
||||
const yykcModeal = ref();
|
||||
const maxClassName = ref<any>({});
|
||||
const zzskTitle = ref('正在上课');
|
||||
const queryParam = ref<any>({});
|
||||
|
||||
const sfxx = ref<string>('0');
|
||||
|
||||
const jclist = (queryParam) => defHttp.get({ url: '/kcJieci/kcJieci/getIndexJcList', params:queryParam });
|
||||
|
||||
//进入就加载
|
||||
onMounted(() => {
|
||||
//进入就加载
|
||||
onMounted(() => {
|
||||
let roleList = getUserInfo().roleList;
|
||||
if(roleList){
|
||||
for(var i=0;i<roleList.length;i++){
|
||||
var roleCode = roleList[i].roleCode
|
||||
console.log(`🚀 ~ onMounted ~ roleCode:`, roleCode)
|
||||
if(roleCode == 'admin' || roleCode == 'jwms'){
|
||||
sfxx.value = "1";
|
||||
if (roleList) {
|
||||
for (var i = 0; i < roleList.length; i++) {
|
||||
var roleCode = roleList[i].roleCode;
|
||||
console.log(`🚀 ~ onMounted ~ roleCode:`, roleCode);
|
||||
if (roleCode == 'admin' || roleCode == 'jwms') {
|
||||
sfxx.value = '1';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
jclist(queryParam.value).then(res=>{
|
||||
var list = res
|
||||
let sjsksj = list[0].sjsksj
|
||||
console.log(`🚀 ~ file: index.vue:135 ~ jclist ~ sjsksj:`, sjsksj)
|
||||
if(sjsksj){
|
||||
jclist(queryParam.value).then((res) => {
|
||||
var list = res;
|
||||
let sjsksj = list[0].sjsksj;
|
||||
console.log(`🚀 ~ file: index.vue:135 ~ jclist ~ sjsksj:`, sjsksj);
|
||||
if (sjsksj) {
|
||||
let nowDate = new Date();
|
||||
let nowDate2 = new Date(sjsksj);
|
||||
console.log(`🚀 ~ file: index.vue:140 ~ jclist ~ nowDate.getTime():`, nowDate.getTime(),nowDate2.getTime())
|
||||
if(nowDate.getTime()<nowDate2.getTime()){
|
||||
zzskTitle.value = "即将上课";
|
||||
}else{
|
||||
zzskTitle.value = "正在上课";
|
||||
console.log(`🚀 ~ file: index.vue:140 ~ jclist ~ nowDate.getTime():`, nowDate.getTime(), nowDate2.getTime());
|
||||
if (nowDate.getTime() < nowDate2.getTime()) {
|
||||
zzskTitle.value = '即将上课';
|
||||
} else {
|
||||
zzskTitle.value = '正在上课';
|
||||
}
|
||||
}else{
|
||||
zzskTitle.value = "正在上课";
|
||||
} else {
|
||||
zzskTitle.value = '正在上课';
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
/**
|
||||
|
||||
yqlist(null).then(res=>{
|
||||
var list = res
|
||||
if(list){
|
||||
tkyqcs.value = Number(list.tkyq)||'未配置'
|
||||
tkyqywc.value = list.sjtksl||'0'
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
/**
|
||||
* 刷新预约课程列表数据
|
||||
*/
|
||||
function jrkclbLoad(){
|
||||
console.log(`🚀 ~ file: index.vue:1301111111:`)
|
||||
yykcModeal.value.newFunction()
|
||||
}
|
||||
/**
|
||||
function jrkclbLoad() {
|
||||
console.log(`🚀 ~ file: index.vue:1301111111:`);
|
||||
yykcModeal.value.newFunction();
|
||||
}
|
||||
/**
|
||||
* 刷新今日课程列表数据
|
||||
*/
|
||||
function yykcLoad(){
|
||||
kclbCard(1)
|
||||
kclbCard(2)
|
||||
kclbCard(3)
|
||||
}
|
||||
function kclbCard(activeKey){
|
||||
if(activeKey==1){
|
||||
function yykcLoad() {
|
||||
kclbCard(1);
|
||||
kclbCard(2);
|
||||
kclbCard(3);
|
||||
}
|
||||
function kclbCard(activeKey) {
|
||||
if (activeKey == 1) {
|
||||
zzskModeal.value.zbLoadData();
|
||||
}else if(activeKey==2){
|
||||
} else if (activeKey == 2) {
|
||||
xyjkModeal.value.zbLoadData();
|
||||
}else if(activeKey==3){
|
||||
} else if (activeKey == 3) {
|
||||
rkbModeal.value.zbLoadData();
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------yangjun-----------------------
|
||||
//-----------------------------yangjun-----------------------
|
||||
}
|
||||
|
||||
//-----------------------------yangjun-----------------------
|
||||
//-----------------------------yangjun-----------------------
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
#siteMain {
|
||||
|
@ -216,7 +225,7 @@
|
|||
max-width: 1070px;
|
||||
//居中
|
||||
margin: 0 auto;
|
||||
.rowGutter{
|
||||
.rowGutter {
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
@ -227,7 +236,7 @@
|
|||
}
|
||||
.ant-layout-footer {
|
||||
line-height: 1.5;
|
||||
background: #FFF;
|
||||
background: #fff;
|
||||
}
|
||||
.ant-layout-sider {
|
||||
color: #fff;
|
||||
|
@ -244,7 +253,8 @@
|
|||
}
|
||||
/**暗黑模式特殊配色*/
|
||||
[data-theme='dark'] #siteMain #maxSite {
|
||||
.ant-layout-header, .ant-layout-footer {
|
||||
.ant-layout-header,
|
||||
.ant-layout-footer {
|
||||
background: #6aa0c7;
|
||||
}
|
||||
.ant-layout-content {
|
||||
|
@ -262,7 +272,7 @@
|
|||
a {
|
||||
color: #337ab7;
|
||||
}
|
||||
.bmdTitle{
|
||||
.bmdTitle {
|
||||
background-color: #fff;
|
||||
height: 100px;
|
||||
line-height: 23px;
|
||||
|
@ -271,6 +281,20 @@ a {
|
|||
align-items: center;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
font-weight: 600;font-size: 16px;
|
||||
font-weight: 600;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.xnxqClass{
|
||||
width: 100%;
|
||||
background-color: #fff;
|
||||
height: 50px;
|
||||
line-height: 25px;
|
||||
padding: 10px;
|
||||
align-items: center;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
</style>
|
|
@ -1,5 +1,5 @@
|
|||
<template>
|
||||
<div class="rowGutter">
|
||||
<div class="rowGutter" v-if="list.length > 0">
|
||||
<!-- --{{ list }}-- -->
|
||||
<a-carousel autoplay>
|
||||
<div v-for="(item,index) in list" :key="index">
|
||||
|
|
|
@ -21,12 +21,12 @@
|
|||
</template>
|
||||
<span @click="getGzt('kcjs')">课程简介</span>
|
||||
</a-menu-item >
|
||||
<!-- <a-menu-item key="sub2">
|
||||
<a-menu-item key="sub2">
|
||||
<template #icon>
|
||||
<SettingOutlined />
|
||||
</template>
|
||||
<span @click="getGzt('jxdg')">教学大纲</span>
|
||||
</a-menu-item > -->
|
||||
</a-menu-item >
|
||||
<a-menu-item key="sub3">
|
||||
<template #icon>
|
||||
<SnippetsOutlined />
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<template>
|
||||
<a-row class="rowGutter maxRow" :gutter="gutter">
|
||||
<div style="margin-top: 15px;">
|
||||
<a-row class="rowGutter maxRow" :gutter="gutter" style="line-height: 0;">
|
||||
<a-col :xs="{ span: 15 }" :sm="{ span: 8 }" :lg="{ span: 5 }">
|
||||
<a-card class="cardDiv" title="今日课堂数">
|
||||
<a-row class="" :gutter="gutter">
|
||||
|
@ -121,6 +122,8 @@
|
|||
<ykkttkrc ref="ykkttkrcRef"/>
|
||||
<jrtkkts ref="jrtkktsRef"/>
|
||||
<jrtktkrc ref="jrtktkrcRef"/>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, computed, onMounted } from 'vue';
|
||||
|
|
|
@ -28,9 +28,9 @@
|
|||
<div class="rotate" :style="classFun(item.qpublish)">{{item.qpublish_dictText}}</div>
|
||||
<a-row style="top: -48px;position: relative;">
|
||||
<a-col :span="24" style="margin-bottom: 10px;height:53px;overflow:hidden;">
|
||||
<div style="font-size: 18px;font-weight: bold;">{{item.title}}</div>
|
||||
<div style="font-size: 18px;font-weight: bold;">{{item.title?item.title:'暂未填写'}}</div>
|
||||
</a-col>
|
||||
<a-col :span="24" class="zyCon">
|
||||
<a-col :span="24" class="zyCon" v-if="item.endTime">
|
||||
<a-row>
|
||||
<a-col :span="24" class="zyCon">时间:{{dayjs(item.startTime).format('YYYY.MM.DD')}} - {{dayjs(item.endTime).format('YYYY.MM.DD')}}</a-col>
|
||||
</a-row>
|
||||
|
|
|
@ -28,9 +28,9 @@
|
|||
<div class="rotate" :style="classFun(item.zyStatus)">{{item.zyStatus_dictText}}</div>
|
||||
<a-row style="top: -48px;position: relative;">
|
||||
<a-col :span="24" style="margin-bottom: 10px;height:53px;overflow:hidden;" :title="item.title">
|
||||
<div style="font-size: 18px;font-weight: bold;">{{item.title}}</div>
|
||||
<div style="font-size: 18px;font-weight: bold;">{{item.title?item.title:'暂未填写'}}</div>
|
||||
</a-col>
|
||||
<a-col :span="24" class="zyCon">时间:{{dayjs(item.startTime).format('YYYY.MM.DD')}} - {{dayjs(item.endTime).format('YYYY.MM.DD')}}</a-col>
|
||||
<a-col :span="24" class="zyCon" v-if="item.endTime">时间:{{dayjs(item.startTime).format('YYYY.MM.DD')}} - {{dayjs(item.endTime).format('YYYY.MM.DD')}}</a-col>
|
||||
<a-col :span="24" class="zyCon"><div style="float:left"> </div><div style="float:right;" ><a>{{item.xkxs}}人选课</a></div></a-col>
|
||||
<a-col :span="24" class="zyCon"><div style="float:left">未提交:{{item.wtjnum}}人;</div><div style="float:right;" >已提交:{{item.ytjnum}}人</div></a-col>
|
||||
<a-col :span="24" class="zyCon"><div style="float:left">未评阅:{{item.wpynum}}人;</div><div style="float:right;" >已评阅:{{item.ypynum}}人</div></a-col>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<a-col :span="24" v-for="(item, index) in tableData" :key="index" style="padding: 0px 0px 5px 5px; border-radius: 10px; overflow: hidden;">
|
||||
<div style="width: 100%; height:40px;border-radius: 10px 10px 0 0; background-color: #f7f7f7">
|
||||
<!-- <a-col :span="24" style="height:40px; line-height:40px; padding-left:15px; color:#333; overflow: hidden;" > -->
|
||||
<div style="font-size: 18px; font-weight: bold">第{{ item.sort }}次作业(本次作业在期末成绩中的占比:{{item.zyzb}}%)</div>
|
||||
<div style="font-size: 18px; font-weight: bold">第{{ item.sort }}次作业(本次作业在总成绩中的占比:{{item.zyzb}}%)</div>
|
||||
<!-- </a-col> -->
|
||||
</div>
|
||||
<a-card style="height: 240px; border: 1px solid #eeeeee">
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<a-col :span="24" v-for="(item, index) in tableData" :key="index" style="padding: 0px 0px 5px 5px; border-radius: 10px; overflow: hidden;">
|
||||
<div style="width: 100%; height:40px;border-radius: 10px 10px 0 0; background-color: #f7f7f7">
|
||||
<!-- <a-col :span="24" style="height:40px; line-height:40px; padding-left:15px; color:#333; overflow: hidden;" > -->
|
||||
<div style="font-size: 18px; font-weight: bold">第{{ item.sort }}次考试(本次考试在期末成绩中的占比:{{item.zyzb}}%)</div>
|
||||
<div style="font-size: 18px; font-weight: bold">第{{ item.sort }}次考试(本次考试在总成绩中的占比:{{item.zyzb}}%)</div>
|
||||
<!-- </a-col> -->
|
||||
</div>
|
||||
<a-card style="height: 240px; border: 1px solid #eeeeee">
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<a-col :span="24" style="text-align: center; color: #494b56">
|
||||
<div>老师您好,</div>
|
||||
<div>请根据课程教学大纲的要求,</div>
|
||||
<div>设置学生修完本课程需要完成的考试次数及每次考试在期末总成绩中所占的比例。</div>
|
||||
<div>设置学生修完本课程需要完成的考试次数及每次考试在总成绩中所占的比例。</div>
|
||||
<div style="margin-top: 30px" class="ant-btn buttonClass"><a @click="handleSzzycs(1)">设置考试次数</a></div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
@ -20,10 +20,18 @@
|
|||
<a-col :span="24"><span class="title">期末考试次数设置</span><a-divider /></a-col>
|
||||
<a-col :span="24" style="padding: 0 0 0 30px">
|
||||
<a-row>
|
||||
<a-col :span="24" style="margin-top: 10px;text-align: right;">
|
||||
<div class="title">
|
||||
<span>课程作业占比:</span><span>{{ otherKszb }}%</span>
|
||||
</div>
|
||||
<a-col :span="24" style="margin-top: 10px; height: 50px">
|
||||
<a-row style="text-align: center">
|
||||
<a-col :span="8"
|
||||
><span>课程作业占比:</span><span>{{ kczyzb }}%;</span></a-col
|
||||
>
|
||||
<a-col :span="8"
|
||||
><span>期末考试占比:</span><span>{{ qmkszb }}%;</span></a-col
|
||||
>
|
||||
<a-col :span="8"
|
||||
><span>课堂测验占比:</span><span>{{ ktcyzb }}%;</span></a-col
|
||||
>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col :span="18" style="margin-top: 5px">
|
||||
<span style="color: #777777">学生修完本课程需要完成的考试次数:</span>
|
||||
|
@ -39,7 +47,7 @@
|
|||
<template #bodyCell="{ column, record }">
|
||||
<template v-if="column.key === 'score'">
|
||||
<span>
|
||||
<a-input-number v-model:value="record.score" :min="0" :max="100"> <template #addonAfter> % </template></a-input-number>
|
||||
<a-input-number v-model:value="record.score" :min="0" :max="100" @blur="handleJscjbfb"> <template #addonAfter> % </template></a-input-number>
|
||||
</span>
|
||||
</template>
|
||||
<template v-else-if="column.key === 'lstitle'">
|
||||
|
@ -599,6 +607,9 @@ const tableData = ref<any>([]);
|
|||
const showType = ref<number>(0);
|
||||
const zycs = ref<number>(0);
|
||||
const otherKszb = ref<number>(0);
|
||||
const kczyzb = ref<number>(0);
|
||||
const qmkszb = ref<number>(0);
|
||||
const ktcyzb = ref<number>(0);
|
||||
const zycsDisabled = ref<boolean>(false);
|
||||
const zyInfo = ref<any>({});
|
||||
const formRef = ref();
|
||||
|
@ -964,36 +975,45 @@ function handleSzzynr(record) {
|
|||
function handleBatchAdd() {
|
||||
var list = tableData.value;
|
||||
var sfjx = 0; //是否继续
|
||||
var cjbfb = otherKszb.value; //成绩百分比
|
||||
if (list.length == 0) {
|
||||
createMessage.error('考试次数不能为空!');
|
||||
var cjbfb = kczyzb.value; //成绩百分比
|
||||
var cjbfb2 = ktcyzb.value; //成绩百分比
|
||||
var zcj = 0;
|
||||
|
||||
var score22 = 0;
|
||||
if (list.length == 0) {
|
||||
createMessage.error('作业次数不能为空!');
|
||||
return;
|
||||
}
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
}
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
console.log('🥵', list);
|
||||
var score = list[i].score;
|
||||
console.log('👨❤️💋👨', !score);
|
||||
console.log('🤖', score == null);
|
||||
console.log('🤖', score+"" == '');
|
||||
if (score == null || score+"" == '') {
|
||||
createMessage.error('第' + (i + 1) + '次考试占期末总成绩的百分比不能为空!');
|
||||
if (score == null || score + '' == '') {
|
||||
createMessage.error('第' + (i + 1) + '次作业占总成绩的百分比不能为空!');
|
||||
sfjx = 1;
|
||||
break;
|
||||
}
|
||||
cjbfb = parseInt(cjbfb) + parseInt(score);
|
||||
if (score < 0 || score > 100) {
|
||||
createMessage.error('考试成绩百分比必须在0-100之间!');
|
||||
createMessage.error('作业成绩百分比必须在0-100之间!');
|
||||
sfjx = 1;
|
||||
break;
|
||||
}
|
||||
score22 = parseInt(score22) + parseInt(score);
|
||||
if (score22 > 100) {
|
||||
createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入');
|
||||
sfjx = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
zcj = parseInt(score22)+ parseInt(cjbfb)+ parseInt(cjbfb2);
|
||||
|
||||
if (zcj > 100) {
|
||||
createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入');
|
||||
sfjx = 1;
|
||||
}
|
||||
if (sfjx == 1) {
|
||||
return;
|
||||
}
|
||||
if (cjbfb > 100) {
|
||||
createMessage.error('本次考试占期末总成绩的百分比不得超过100%,当前考试总百分比为:' + cjbfb + '%');
|
||||
return;
|
||||
}
|
||||
|
||||
createConfirm({
|
||||
iconType: 'warning',
|
||||
|
@ -1008,9 +1028,52 @@ function handleBatchAdd() {
|
|||
},
|
||||
});
|
||||
}
|
||||
|
||||
function handleJscjbfb(){
|
||||
var list = tableData.value;
|
||||
|
||||
var cjbfb = qmkszb.value; //成绩百分比
|
||||
var cjbfb2 = kczyzb.value; //成绩百分比
|
||||
var zcj = 0;
|
||||
var score22 = 0;
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
console.log('🥵', list);
|
||||
var score = list[i].score;
|
||||
if (score == null || score + '' == '') {
|
||||
createMessage.error('第' + (i + 1) + '次作业占总成绩的百分比不能为空!');
|
||||
break;
|
||||
}
|
||||
score22 = parseInt(score22)+parseInt(score);
|
||||
if (score < 0 || score > 100) {
|
||||
createMessage.error('作业成绩百分比必须在0-100之间!');
|
||||
break;
|
||||
}
|
||||
if (score22 > 100) {
|
||||
createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入');
|
||||
break;
|
||||
}
|
||||
}
|
||||
zcj = parseInt(score22)+ parseInt(cjbfb)+ parseInt(cjbfb2);
|
||||
if (zcj > 100) {
|
||||
createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入');
|
||||
}
|
||||
}
|
||||
|
||||
function handleSzzycs(val){
|
||||
defHttp.get({ url: '/zyInfo/zyInfo/zyzb', params:{rwbh,xqxn,teano,zyLeixing:'0'}}).then((res) => {
|
||||
otherKszb.value = res?.score?res.score:0;
|
||||
|
||||
defHttp.get({ url: '/zyInfo/zyInfo/zyzb', params: { rwbh, xqxn, teano, zyLeixing: '1' } }).then((res) => {
|
||||
console.log('😥', res);
|
||||
var list = res;
|
||||
for(var i = 0; i < list.length; i++){
|
||||
if(list[i].zyLeixing == '0'){
|
||||
kczyzb.value = list[i].score
|
||||
}else if(list[i].zyLeixing == '1'){
|
||||
qmkszb.value = list[i].score
|
||||
}else if(list[i].zyLeixing == '2'){
|
||||
}else if(list[i].zyLeixing == '3'){
|
||||
ktcyzb.value = list[i].score
|
||||
}
|
||||
}
|
||||
});
|
||||
if (val == 1) {
|
||||
zycs.value = 1;
|
||||
|
@ -1210,7 +1273,7 @@ const columns = [
|
|||
key: 'lstitle',
|
||||
},
|
||||
{
|
||||
title: '本次考试占期末总成绩的百分比',
|
||||
title: '本次考试占总成绩的百分比',
|
||||
dataIndex: 'score',
|
||||
key: 'score',
|
||||
},
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<a-col :span="24" style="text-align: center; color: #494b56">
|
||||
<div>老师您好,</div>
|
||||
<div>请根据课程教学大纲的要求,</div>
|
||||
<div>设置学生修完本课程需要完成的作业次数及每次作业在期末总成绩中所占的比例。</div>
|
||||
<div>设置学生修完本课程需要完成的作业次数及每次作业在总成绩中所占的比例。</div>
|
||||
<div style="margin-top: 30px" class="ant-btn buttonClass"><a @click="handleSzzycs(1)">设置作业次数</a></div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
@ -18,16 +18,27 @@
|
|||
<div v-if="showType == 1">
|
||||
<a-row>
|
||||
<a-col :span="24"><span class="title">课程作业次数设置</span><a-divider /></a-col>
|
||||
<a-col :span="24" style="margin-top: 10px">
|
||||
<div class="title">
|
||||
<span>期末考试占比:</span><span>{{ otherKszb }}%</span>
|
||||
</div>
|
||||
<a-col :span="24" style="margin-top: 10px; height: 50px">
|
||||
<a-row style="text-align: center">
|
||||
<a-col :span="8"
|
||||
><span>课程作业占比:</span><span>{{ kczyzb }}%;</span></a-col
|
||||
>
|
||||
<a-col :span="8"
|
||||
><span>期末考试占比:</span><span>{{ qmkszb }}%;</span></a-col
|
||||
>
|
||||
<a-col :span="8"
|
||||
><span>课堂测验占比:</span><span>{{ ktcyzb }}%;</span></a-col
|
||||
>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col :span="24" style="padding: 0 0 0 30px">
|
||||
<a-row>
|
||||
<a-col :span="18" style="margin-top: 5px">
|
||||
<span style="color: #777777">学生修完本课程需要完成的作业次数:</span>
|
||||
<a-input-number style="width: 30%" v-model:value="zycs" @change="handleZycs" :max="100" :disabled="zycsDisabled"/><span style="margin-left: 5px">次</span>
|
||||
<a-input-number style="width: 30%" v-model:value="zycs" @change="handleZycs" :max="100" :disabled="zycsDisabled" /><span
|
||||
style="margin-left: 5px"
|
||||
>次</span
|
||||
>
|
||||
</a-col>
|
||||
<a-col :span="6" style="text-align: right; padding: 5px 0 0 0">
|
||||
<a-button type="primary" @click="handleAddZycs" class="mar-right20"><Icon icon="ant-design:file-add-outlined" />新增作业</a-button>
|
||||
|
@ -39,7 +50,7 @@
|
|||
<template #bodyCell="{ column, record }">
|
||||
<template v-if="column.key === 'score'">
|
||||
<span>
|
||||
<a-input-number v-model:value="record.score" :min="0" :max="100"> <template #addonAfter> % </template></a-input-number>
|
||||
<a-input-number v-model:value="record.score" :min="0" :max="100" @blur="handleJscjbfb"> <template #addonAfter> % </template></a-input-number>
|
||||
</span>
|
||||
</template>
|
||||
<template v-else-if="column.key === 'lstitle'">
|
||||
|
@ -195,7 +206,12 @@
|
|||
<template #addonAfter>人</template>
|
||||
</a-input-number>
|
||||
</a-form-item> -->
|
||||
<a-form-item label="互评结果使用" :labelCol="labelCol3" :wrapperCol="wrapperCol3" style="margin-top: 20px; margin-left: -30px">
|
||||
<a-form-item
|
||||
label="互评结果使用"
|
||||
:labelCol="labelCol3"
|
||||
:wrapperCol="wrapperCol3"
|
||||
style="margin-top: 20px; margin-left: -30px"
|
||||
>
|
||||
<a-radio-group v-model:value="zyInfo.sfzzcj" style="width: 100%" size="default" :disabled="editDisabled">
|
||||
<a-radio :value="'1'" style="width: 100%; margin-bottom: 5px">互评成绩为最终成绩</a-radio>
|
||||
<a-radio :value="'0'" style="width: 100%; margin-bottom: 5px">互评成绩作为教师评分的参考成绩</a-radio>
|
||||
|
@ -205,10 +221,10 @@
|
|||
label="是否允许学生看到互评成绩"
|
||||
:labelCol="labelCol4"
|
||||
:wrapperCol="wrapperCol4"
|
||||
style="margin-top: 20px; margin-left: -10px;"
|
||||
style="margin-top: 20px; margin-left: -10px"
|
||||
>
|
||||
<a-radio-group v-model:value="zyInfo.xssfck">
|
||||
<a-radio :value="'1'" style="margin-top: 5px;">是(匿名)</a-radio>
|
||||
<a-radio :value="'1'" style="margin-top: 5px">是(匿名)</a-radio>
|
||||
<a-radio :value="'0'" style="margin-top: 5px">否</a-radio>
|
||||
</a-radio-group>
|
||||
<!-- <j-dict-select-tag
|
||||
|
@ -345,7 +361,7 @@
|
|||
<a-button type="primary" preIcon="ant-design:export-outlined" @click="batchHandleFabu" style="margin-left: 8px"
|
||||
>一键发布评分</a-button
|
||||
>
|
||||
<span class="tishi" style="margin-left: 20px;padding:10px;">温馨提示:作业完成后,请及时发布评分</span>
|
||||
<span class="tishi" style="margin-left: 20px; padding: 10px">温馨提示:作业完成后,请及时发布评分</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
|
@ -439,16 +455,10 @@
|
|||
<a-button type="primary" @click="handleAddOne" class="mar-right20"><Icon icon="ant-design:file-add-outlined" />新增作业</a-button>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<a-row style="padding: 10px;">
|
||||
<a-col :lg="24" v-for="(item, index) in tableData" style="padding: 0 5px 12px 5px;border-radius:5px;" :key="index">
|
||||
<a-card
|
||||
:title="'第' + item.sort + '次作业(占比' + item.score + '%)'"
|
||||
v-if="!item.endTime"
|
||||
class="cardClass module-bg"
|
||||
>
|
||||
<template #extra
|
||||
><span class="card-label3"> 待设置</span>
|
||||
</template>
|
||||
<a-row style="padding: 10px">
|
||||
<a-col :lg="24" v-for="(item, index) in tableData" style="padding: 0 5px 12px 5px; border-radius: 5px" :key="index">
|
||||
<a-card :title="'第' + item.sort + '次作业(占比' + item.score + '%)'" v-if="!item.endTime" class="cardClass module-bg">
|
||||
<template #extra><span class="card-label3"> 待设置</span> </template>
|
||||
<p class="sznrClass">尚未布置作业题目及具体要求</p>
|
||||
<div style="text-align: right">
|
||||
<a @click="handleEdit(item, false)" class="home-status"><Icon icon="ant-design:file-text-outlined" />设置作业内容及要求</a>
|
||||
|
@ -461,9 +471,7 @@
|
|||
v-if="item.endTime && item.zyStatus == '1'"
|
||||
class="cardClass module-bg"
|
||||
>
|
||||
<template #extra
|
||||
><span class="card-label">已发布</span>
|
||||
</template>
|
||||
<template #extra><span class="card-label">已发布</span> </template>
|
||||
<div class="ellip-title">
|
||||
<span class="ellipsis elli-title" :title="item.title">{{ item.title }}</span>
|
||||
<a class="button-zhta" @click="openXkrs(item)">{{ item.xkxs }}人选课</a>
|
||||
|
@ -484,12 +492,15 @@
|
|||
>
|
||||
</div>
|
||||
<div class="flex">
|
||||
<div style="width:100%;display:flex;margin-top:20px">
|
||||
<div class="ellip-word"><span class="ellip-word2">作业发布时间:</span>{{ item.startTime ? dayjs(item.startTime).format('YYYY.MM.DD HH:mm') : '未设置' }}</div>
|
||||
<div style="width: 100%; display: flex; margin-top: 20px">
|
||||
<div class="ellip-word"
|
||||
><span class="ellip-word2">作业发布时间:</span
|
||||
>{{ item.startTime ? dayjs(item.startTime).format('YYYY.MM.DD HH:mm') : '未设置' }}</div
|
||||
>
|
||||
<div class="ellip-word"><span class="ellip-word2">作业截止时间:</span>{{ dayjs(item.endTime).format('YYYY.MM.DD HH:mm') }}</div>
|
||||
</div>
|
||||
<div style="text-align: right; margin-top: 20px; margin-bottom: -10px; width: 100%">
|
||||
<a @click="handleEdit(item, true)" v-if="item.ytjnum > 0" class="home-status" ><Icon icon="ant-design:form-outlined" />编辑作业</a>
|
||||
<a @click="handleEdit(item, true)" v-if="item.ytjnum > 0" class="home-status"><Icon icon="ant-design:form-outlined" />编辑作业</a>
|
||||
<a @click="handleChehui(item)" v-if="item.ytjnum == 0" class="home-status"><Icon icon="ant-design:import-outlined" />撤回作业</a>
|
||||
<a-divider type="vertical" />
|
||||
<a @click="handleZyxx(item, '')" class="home-status"><Icon icon="ant-design:file-done-outlined" />批阅作业</a>
|
||||
|
@ -504,15 +515,16 @@
|
|||
class="cardClass"
|
||||
bodyStyle="background: #fff;"
|
||||
>
|
||||
<template #extra
|
||||
><span class="card-label2">待发布</span>
|
||||
</template>
|
||||
<template #extra><span class="card-label2">待发布</span> </template>
|
||||
<div class="ellip-title">
|
||||
<span class="ellipsis elli-title" :title="item.title">{{ item.title }}</span>
|
||||
<a class="button-zhta" @click="openXkrs(item)">{{ item.xkxs }}人选课</a>
|
||||
</div>
|
||||
<div style="width: 100%;">
|
||||
<div class="ellip-word"><span class="ellip-word2">作业发布时间:</span>{{ item.startTime ? dayjs(item.startTime).format('YYYY.MM.DD HH:mm') : '未设置' }}</div>
|
||||
<div style="width: 100%">
|
||||
<div class="ellip-word"
|
||||
><span class="ellip-word2">作业发布时间:</span
|
||||
>{{ item.startTime ? dayjs(item.startTime).format('YYYY.MM.DD HH:mm') : '未设置' }}</div
|
||||
>
|
||||
<div class="ellip-word"><span class="ellip-word2">作业截止时间:</span>{{ dayjs(item.endTime).format('YYYY.MM.DD HH:mm') }}</div>
|
||||
</div>
|
||||
<div style="height: 45px"> </div>
|
||||
|
@ -597,6 +609,10 @@ const tableData = ref<any>([]);
|
|||
const showType = ref<number>(0);
|
||||
const zycs = ref<number>(0);
|
||||
const otherKszb = ref<number>(0);
|
||||
const kczyzb = ref<number>(0);
|
||||
const qmkszb = ref<number>(0);
|
||||
const ktcyzb = ref<number>(0);
|
||||
|
||||
const zycsDisabled = ref<boolean>(false);
|
||||
const zyInfo = ref<any>({});
|
||||
const formRef = ref();
|
||||
|
@ -671,6 +687,37 @@ function handleEndTime(record) {
|
|||
zyInfo.value.xshpkssj = record;
|
||||
}
|
||||
|
||||
function handleJscjbfb(){
|
||||
var list = tableData.value;
|
||||
|
||||
var cjbfb = qmkszb.value; //成绩百分比
|
||||
var cjbfb2 = kczyzb.value; //成绩百分比
|
||||
var zcj = 0;
|
||||
var score22 = 0;
|
||||
for (var i = 0; i < list.length; i++) {
|
||||
console.log('🥵', list);
|
||||
var score = list[i].score;
|
||||
if (score == null || score + '' == '') {
|
||||
createMessage.error('第' + (i + 1) + '次作业总成绩的百分比不能为空!');
|
||||
break;
|
||||
}
|
||||
score22 = parseInt(score22)+parseInt(score);
|
||||
if (score < 0 || score > 100) {
|
||||
createMessage.error('作业成绩百分比必须在0-100之间!');
|
||||
break;
|
||||
}
|
||||
if (score22 > 100) {
|
||||
createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入');
|
||||
break;
|
||||
}
|
||||
}
|
||||
zcj = parseInt(score22)+ parseInt(cjbfb)+ parseInt(cjbfb2);
|
||||
if (zcj > 100) {
|
||||
createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//获取查重结果
|
||||
function handleViewInfo(record) {
|
||||
defHttp.get({ url: '/zyCcjg/zyCcjg/ccjglist', params: { zyStuId: record.id } }).then((res) => {
|
||||
|
@ -763,7 +810,7 @@ function searchQueryZyxq() {
|
|||
|
||||
//新增一次作业
|
||||
function handleAddOne() {
|
||||
defHttp.post({ url: '/zyInfo/zyInfo/addOne', params: { rwbh, xnxq: xqxn, teano,zyLeixing: '0' } }).then((res) => {
|
||||
defHttp.post({ url: '/zyInfo/zyInfo/addOne', params: { rwbh, xnxq: xqxn, teano, zyLeixing: '0' } }).then((res) => {
|
||||
handleSuccess2();
|
||||
});
|
||||
}
|
||||
|
@ -962,7 +1009,12 @@ function handleSzzynr(record) {
|
|||
function handleBatchAdd() {
|
||||
var list = tableData.value;
|
||||
var sfjx = 0; //是否继续
|
||||
var cjbfb = otherKszb.value; //成绩百分比
|
||||
var cjbfb = qmkszb.value; //成绩百分比
|
||||
var cjbfb2 = ktcyzb.value; //成绩百分比
|
||||
var zcj = 0;
|
||||
|
||||
|
||||
var score22 = 0;
|
||||
if (list.length == 0) {
|
||||
createMessage.error('作业次数不能为空!');
|
||||
return;
|
||||
|
@ -970,28 +1022,33 @@ function handleBatchAdd() {
|
|||
for (var i = 0; i < list.length; i++) {
|
||||
console.log('🥵', list);
|
||||
var score = list[i].score;
|
||||
console.log('👨❤️💋👨', !score);
|
||||
console.log('🤖', score == null);
|
||||
console.log('🤖', score+"" == '');
|
||||
if (score == null || score+"" == '') {
|
||||
createMessage.error('第' + (i + 1) + '次作业占期末总成绩的百分比不能为空!');
|
||||
if (score == null || score + '' == '') {
|
||||
createMessage.error('第' + (i + 1) + '次作业总成绩的百分比不能为空!');
|
||||
sfjx = 1;
|
||||
break;
|
||||
}
|
||||
cjbfb = parseInt(cjbfb) + parseInt(score);
|
||||
if (score < 0 || score > 100) {
|
||||
createMessage.error('作业成绩百分比必须在0-100之间!');
|
||||
sfjx = 1;
|
||||
break;
|
||||
}
|
||||
score22 = parseInt(score22) + parseInt(score);
|
||||
if (score22 > 100) {
|
||||
createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入');
|
||||
sfjx = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
zcj = parseInt(score22)+ parseInt(cjbfb)+ parseInt(cjbfb2);
|
||||
|
||||
if (zcj > 100) {
|
||||
createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入');
|
||||
sfjx = 1;
|
||||
}
|
||||
if (sfjx == 1) {
|
||||
return;
|
||||
}
|
||||
if (cjbfb > 100) {
|
||||
createMessage.error('本次作业占期末总成绩的百分比不得超过100%,当前作业总百分比为:' + cjbfb + '%');
|
||||
return;
|
||||
}
|
||||
|
||||
createConfirm({
|
||||
iconType: 'warning',
|
||||
|
@ -1007,25 +1064,34 @@ function handleBatchAdd() {
|
|||
});
|
||||
}
|
||||
|
||||
function handleSzzycs(val){
|
||||
defHttp.get({ url: '/zyInfo/zyInfo/zyzb', params:{rwbh,xqxn,teano,zyLeixing:'1'}}).then((res) => {
|
||||
otherKszb.value = res?.score?res.score:0;
|
||||
function handleSzzycs(val) {
|
||||
defHttp.get({ url: '/zyInfo/zyInfo/zyzb', params: { rwbh, xqxn, teano, zyLeixing: '1' } }).then((res) => {
|
||||
console.log('😥', res);
|
||||
var list = res;
|
||||
for(var i = 0; i < list.length; i++){
|
||||
if(list[i].zyLeixing == '0'){
|
||||
kczyzb.value = list[i].score
|
||||
}else if(list[i].zyLeixing == '1'){
|
||||
qmkszb.value = list[i].score
|
||||
}else if(list[i].zyLeixing == '2'){
|
||||
}else if(list[i].zyLeixing == '3'){
|
||||
ktcyzb.value = list[i].score
|
||||
}
|
||||
}
|
||||
});
|
||||
handleShowType(1)
|
||||
handleShowType(1);
|
||||
}
|
||||
|
||||
//显示第几个类型模块
|
||||
function handleShowType(val) {
|
||||
|
||||
if(tableData.value.length>0){
|
||||
if (tableData.value.length > 0) {
|
||||
zycsDisabled.value = true;
|
||||
}else{
|
||||
} else {
|
||||
zycsDisabled.value = false;
|
||||
}
|
||||
console.log('👩👩👧👧', zycsDisabled)
|
||||
console.log('👩👩👧👧', zycsDisabled);
|
||||
|
||||
showType.value = val;
|
||||
|
||||
}
|
||||
//新增一次作业,再最后面添加
|
||||
function handleAddZycs() {
|
||||
|
@ -1206,7 +1272,7 @@ const columns = [
|
|||
key: 'lstitle',
|
||||
},
|
||||
{
|
||||
title: '本次作业占期末总成绩的百分比',
|
||||
title: '本次作业占总成绩的百分比',
|
||||
dataIndex: 'score',
|
||||
key: 'score',
|
||||
},
|
||||
|
@ -1566,7 +1632,7 @@ onMounted(() => {
|
|||
font-weight: bold;
|
||||
}
|
||||
.title2 {
|
||||
font-size:16px;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.ant-divider-horizontal {
|
||||
|
@ -1607,7 +1673,7 @@ onMounted(() => {
|
|||
border: 1px solid #f0f0f0;
|
||||
background: #f7f7f7;
|
||||
}
|
||||
.ant-card:hover{
|
||||
.ant-card:hover {
|
||||
box-sizing: border-box;
|
||||
box-shadow: 2px 2px 10px 1px #d4d4d4;
|
||||
}
|
||||
|
@ -1638,12 +1704,12 @@ onMounted(() => {
|
|||
font-weight: bold;
|
||||
}
|
||||
.ellip-word {
|
||||
font-size:12px;
|
||||
font-size: 12px;
|
||||
color: #666666;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.ellip-word2{
|
||||
font-size:12px;
|
||||
.ellip-word2 {
|
||||
font-size: 12px;
|
||||
color: #333;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
@ -1657,7 +1723,7 @@ onMounted(() => {
|
|||
flex-direction: column;
|
||||
text-align: center;
|
||||
width: 25%;
|
||||
margin-right:5px;
|
||||
margin-right: 5px;
|
||||
padding: 8px 3px;
|
||||
border-radius: 5px;
|
||||
background: #f7f7f7;
|
||||
|
@ -1729,7 +1795,7 @@ onMounted(() => {
|
|||
border-radius: 5px;
|
||||
border: 1px solid #e6e6e6;
|
||||
}
|
||||
.region:hover{
|
||||
.region:hover {
|
||||
margin: 6px 12px;
|
||||
padding-bottom: 20px;
|
||||
background: #fff;
|
||||
|
@ -1740,48 +1806,51 @@ onMounted(() => {
|
|||
.region-title {
|
||||
font-size: 16px;
|
||||
color: #333;
|
||||
height:50px;
|
||||
line-height:50px;
|
||||
border-bottom:1px solid #e1e4eb ;
|
||||
height: 50px;
|
||||
line-height: 50px;
|
||||
border-bottom: 1px solid #e1e4eb;
|
||||
margin-bottom: 20px;
|
||||
display: flex;
|
||||
}
|
||||
.region-title-headline{
|
||||
.region-title-headline {
|
||||
display: block;
|
||||
width: 5px;
|
||||
height:16px;
|
||||
height: 16px;
|
||||
background: #18a689;
|
||||
border-radius: 6px;
|
||||
margin-top:18px;
|
||||
margin-top: 18px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
.module-bg{
|
||||
.module-bg {
|
||||
background: #fff;
|
||||
border-radius:6px;
|
||||
border-radius: 6px;
|
||||
border: 1px solid #e6e6e6;
|
||||
}
|
||||
.home-status{
|
||||
.home-status {
|
||||
color: #1ab394;
|
||||
}
|
||||
.home-status:hover{
|
||||
.home-status:hover {
|
||||
color: #333;
|
||||
}
|
||||
.card-label{
|
||||
.card-label {
|
||||
background: #81cbbc;
|
||||
border-radius:4px;
|
||||
border-radius: 4px;
|
||||
color: #fff;
|
||||
padding: 2px 6px;
|
||||
}
|
||||
.card-label2{
|
||||
.card-label2 {
|
||||
background: #84c4fa;
|
||||
border-radius:4px;
|
||||
border-radius: 4px;
|
||||
color: #fff;
|
||||
padding: 2px 6px;
|
||||
}
|
||||
.card-label3{
|
||||
.card-label3 {
|
||||
background: #fabe84;
|
||||
border-radius:4px;
|
||||
border-radius: 4px;
|
||||
color: #fff;
|
||||
padding: 2px 6px;
|
||||
}
|
||||
.zbClass {
|
||||
margin-left: 15px;
|
||||
}
|
||||
</style>
|
Loading…
Reference in New Issue