修改bug
This commit is contained in:
parent
2d327ea307
commit
440470d9e4
|
@ -7,17 +7,23 @@
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :lg="24" :xs="18">
|
<a-col :lg="24" :xs="18">
|
||||||
<div style="width:100%;background: #fff;font-size: 18px;font-weight: bold;margin-top:10px;padding: 10px;">课程名称:{{kcxxInfo.kcmc}}</div>
|
<div style="width:100%;background: #fff;font-size: 18px;font-weight: bold;margin-top:10px;padding: 10px;">
|
||||||
|
|
||||||
|
<a-button type="primary" @click="toggleCollapsed">
|
||||||
|
<MenuUnfoldOutlined v-if="collapsed" />
|
||||||
|
<MenuUnfoldOutlined v-else />
|
||||||
|
</a-button>
|
||||||
|
课程名称:{{kcxxInfo.kcmc}}</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="0" :xs="6">
|
<a-col :lg="0" :xs="6">
|
||||||
<dqxqkcMenu/>
|
<dqxqkcMenu/>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="5" :xs="0">
|
<a-col :lg="spanlg" :xs="0">
|
||||||
<dqxqkcMenu/>
|
<dqxqkcMenu ref="dqxqkcMenuTag"/>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="19" :xs="24">
|
<a-col :lg="spanlt" :xs="24">
|
||||||
<RouterView/>
|
<RouterView/>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
|
@ -35,12 +41,14 @@
|
||||||
import { useRouter } from 'vue-router';
|
import { useRouter } from 'vue-router';
|
||||||
|
|
||||||
|
|
||||||
|
import { MenuUnfoldOutlined } from '@ant-design/icons-vue';
|
||||||
import headerPage from '/@/views/site/common/header.vue';
|
import headerPage from '/@/views/site/common/header.vue';
|
||||||
import footerPage from '/@/views/site/common/footer.vue';
|
import footerPage from '/@/views/site/common/footer.vue';
|
||||||
import dqxqkcMenu from '/@/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMenu.vue';
|
import dqxqkcMenu from '/@/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMenu.vue';
|
||||||
import dqxqkc from '/@/views/site/renKeJiaoCheng/checkKecheng/dqxqkc.vue';
|
import dqxqkc from '/@/views/site/renKeJiaoCheng/checkKecheng/dqxqkc.vue';
|
||||||
|
|
||||||
const maxClassName = ref<any>({});
|
const maxClassName = ref<any>({});
|
||||||
|
const dqxqkcMenuTag = ref();
|
||||||
const selectedKeys = ref<string[]>([]);
|
const selectedKeys = ref<string[]>([]);
|
||||||
//当前路由信息
|
//当前路由信息
|
||||||
const { currentRoute } = useRouter();
|
const { currentRoute } = useRouter();
|
||||||
|
@ -48,8 +56,22 @@
|
||||||
const { rwbh,xqxn } = query;//获取传递参数
|
const { rwbh,xqxn } = query;//获取传递参数
|
||||||
let router = useRouter();
|
let router = useRouter();
|
||||||
const kcxxInfo = ref<string>('');
|
const kcxxInfo = ref<string>('');
|
||||||
|
const spanlg = ref<number>(5);
|
||||||
|
const spanlt = ref<number>(19);
|
||||||
|
const collapsed = ref<any>(false);
|
||||||
|
|
||||||
|
|
||||||
|
function toggleCollapsed() {
|
||||||
|
collapsed.value = !collapsed.value;
|
||||||
|
dqxqkcMenuTag.value.toggleCollapsed();
|
||||||
|
if(collapsed.value){
|
||||||
|
spanlg.value = 1;
|
||||||
|
spanlt.value = 23;
|
||||||
|
}else{
|
||||||
|
spanlg.value = 5;
|
||||||
|
spanlt.value = 19;
|
||||||
|
}
|
||||||
|
}
|
||||||
//进入就加载
|
//进入就加载
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
// console.log('rwbh:',rwbh);
|
// console.log('rwbh:',rwbh);
|
||||||
|
|
|
@ -1,172 +1,197 @@
|
||||||
<template>
|
<template>
|
||||||
<div id="siteMain" >
|
<div id="siteMain">
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :lg="24" :xs="0">
|
<a-col :lg="24" :xs="0">
|
||||||
<a-menu
|
<a-menu
|
||||||
v-model:openKeys="openKeys"
|
v-model:openKeys="openKeys"
|
||||||
v-model:selectedKeys="selectedKeys"
|
v-model:selectedKeys="selectedKeys"
|
||||||
style="width: 98%;min-height: calc(100vh - 225px);margin: 10px 0;"
|
style="width: 98%; min-height: calc(100vh - 225px); margin: 10px 0"
|
||||||
mode="inline"
|
mode="inline"
|
||||||
>
|
:inline-collapsed="collapsed"
|
||||||
<a-menu-item key="sub0">
|
>
|
||||||
<span @click="getGzt('gonggao')">通知公告</span>
|
<a-menu-item key="sub0">
|
||||||
</a-menu-item>
|
<template #icon>
|
||||||
<a-sub-menu key="sub1">
|
<PieChartOutlined />
|
||||||
<template #title>教学内容</template>
|
</template>
|
||||||
<a-menu-item key="1" @click="getGzt('kcjs')">课程简介</a-menu-item>
|
<span @click="getGzt('gonggao')">通知公告</span>
|
||||||
<a-menu-item key="3" @click="gotoPageByName('jiaoXueDanYuanNeiRong')">教学单元</a-menu-item>
|
</a-menu-item>
|
||||||
</a-sub-menu>
|
<a-sub-menu key="sub1">
|
||||||
<a-menu-item key="sub2">
|
<template #icon>
|
||||||
<span @click="getGzt('dqzy')">课程作业</span>
|
<PieChartOutlined />
|
||||||
</a-menu-item>
|
</template>
|
||||||
<a-menu-item key="sub21">
|
<template #title>教学内容</template>
|
||||||
<span @click="getGzt('kcjc')">课程测验</span>
|
<a-menu-item key="1" @click="getGzt('kcjs')">课程简介</a-menu-item>
|
||||||
</a-menu-item>
|
<a-menu-item key="3" @click="gotoPageByName('jiaoXueDanYuanNeiRong')">教学单元</a-menu-item>
|
||||||
<!-- <a-sub-menu key="sub2">
|
</a-sub-menu>
|
||||||
|
<a-menu-item key="sub2">
|
||||||
|
<template #icon>
|
||||||
|
<PieChartOutlined />
|
||||||
|
</template>
|
||||||
|
<span @click="getGzt('dqzy')">课程作业</span>
|
||||||
|
</a-menu-item>
|
||||||
|
<a-menu-item key="sub21">
|
||||||
|
<template #icon>
|
||||||
|
<PieChartOutlined />
|
||||||
|
</template>
|
||||||
|
<span @click="getGzt('kcjc')">课程测验</span>
|
||||||
|
</a-menu-item>
|
||||||
|
<!-- <a-sub-menu key="sub2">
|
||||||
<template #title>作业/测验</template>
|
<template #title>作业/测验</template>
|
||||||
<a-menu-item key="4" @click="getGzt('dqzy')">课程作业</a-menu-item>
|
<a-menu-item key="4" @click="getGzt('dqzy')">课程作业</a-menu-item>
|
||||||
<a-menu-item key="5" @click="getGzt('kcjc')">课程测验</a-menu-item>
|
<a-menu-item key="5" @click="getGzt('kcjc')">课程测验</a-menu-item>
|
||||||
</a-sub-menu> -->
|
</a-sub-menu> -->
|
||||||
<a-sub-menu key="sub3">
|
<a-sub-menu key="sub3">
|
||||||
<template #title>教学工具</template>
|
<template #icon>
|
||||||
<a-menu-item key="6" @click="getGzt('dcwj')">问卷调查</a-menu-item>
|
<PieChartOutlined />
|
||||||
<a-menu-item key="7" @click="getGzt('gongju')">到课识别率</a-menu-item>
|
</template>
|
||||||
<a-menu-item key="8" @click="getGzt('zycd')">作业存档</a-menu-item>
|
<template #title>教学工具</template>
|
||||||
</a-sub-menu>
|
<a-menu-item key="6" @click="getGzt('dcwj')">问卷调查</a-menu-item>
|
||||||
<a-menu-item key="sub4">
|
<a-menu-item key="7" @click="getGzt('gongju')">到课识别率</a-menu-item>
|
||||||
<span @click="getGzt('yiykzyk')">教学资源库</span>
|
<a-menu-item key="8" @click="getGzt('zycd')">作业存档</a-menu-item>
|
||||||
</a-menu-item>
|
</a-sub-menu>
|
||||||
<!-- <a-menu-item key="sub5">
|
<a-menu-item key="sub4">
|
||||||
|
<template #icon>
|
||||||
|
<PieChartOutlined />
|
||||||
|
</template>
|
||||||
|
<span @click="getGzt('yiykzyk')">教学资源库</span>
|
||||||
|
</a-menu-item>
|
||||||
|
<!-- <a-menu-item key="sub5">
|
||||||
<span @click="getGzt('jxzyk')">教学资源库</span>
|
<span @click="getGzt('jxzyk')">教学资源库</span>
|
||||||
</a-menu-item> -->
|
</a-menu-item> -->
|
||||||
<a-menu-item key="sub6">
|
<a-menu-item key="sub6">
|
||||||
<span @click="getGzt('tlq')">讨论区</span>
|
<template #icon>
|
||||||
</a-menu-item>
|
<PieChartOutlined />
|
||||||
<!-- <a-menu-item key="sub3">
|
</template>
|
||||||
|
<span @click="getGzt('tlq')">讨论区</span>
|
||||||
|
</a-menu-item>
|
||||||
|
<!-- <a-menu-item key="sub3">
|
||||||
<span @click="getGzt('dqwj')">问卷调查</span>
|
<span @click="getGzt('dqwj')">问卷调查</span>
|
||||||
</a-menu-item> -->
|
</a-menu-item> -->
|
||||||
<!-- <a-sub-menu key="sub3">
|
<!-- <a-sub-menu key="sub3">
|
||||||
<template #title>问卷管理</template>
|
<template #title>问卷管理</template>
|
||||||
<a-menu-item key="6" @click="getGzt('dqwj')">当前问卷</a-menu-item>
|
<a-menu-item key="6" @click="getGzt('dqwj')">当前问卷</a-menu-item>
|
||||||
<a-menu-item key="7">历史问卷</a-menu-item>
|
<a-menu-item key="7">历史问卷</a-menu-item>
|
||||||
</a-sub-menu> -->
|
</a-sub-menu> -->
|
||||||
<!-- <a-menu-item key="sub5">
|
<!-- <a-menu-item key="sub5">
|
||||||
<span @click="getGzt('gongju')">教学工具</span>
|
<span @click="getGzt('gongju')">教学工具</span>
|
||||||
</a-menu-item> -->
|
</a-menu-item> -->
|
||||||
</a-menu>
|
</a-menu>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="0" :xs="24">
|
<a-col :lg="0" :xs="24">
|
||||||
<a-menu
|
<a-menu v-model:openKeys="openKeys" v-model:selectedKeys="selectedKeys" style="width: 98%; margin: 10px 0" mode="horizontal">
|
||||||
v-model:openKeys="openKeys"
|
<a-sub-menu key="min0">
|
||||||
v-model:selectedKeys="selectedKeys"
|
<template #icon>
|
||||||
style="width: 98%;margin: 10px 0;"
|
<!-- <SettingOutlined /> -->
|
||||||
mode="horizontal"
|
<MenuUnfoldOutlined />
|
||||||
>
|
</template>
|
||||||
<a-sub-menu key="min0">
|
<!-- <template #title>功能菜单</template> -->
|
||||||
<template #icon>
|
<a-menu-item key="sub0">
|
||||||
<!-- <SettingOutlined /> -->
|
<span @click="getGzt('gonggao')">通知公告</span>
|
||||||
<MenuUnfoldOutlined />
|
</a-menu-item>
|
||||||
</template>
|
<a-menu-item key="sub1">
|
||||||
<!-- <template #title>功能菜单</template> -->
|
<span @click="getGzt('kcjs')">课程简介</span>
|
||||||
<a-menu-item key="sub0">
|
</a-menu-item>
|
||||||
<span @click="getGzt('gonggao')">通知公告</span>
|
<a-menu-item key="sub2">
|
||||||
</a-menu-item>
|
<span @click="gotoPageByName('jiaoXueDanYuanNeiRong')">教学单元</span>
|
||||||
<a-menu-item key="sub1">
|
</a-menu-item>
|
||||||
<span @click="getGzt('kcjs')">课程简介</span>
|
<a-menu-item key="sub3">
|
||||||
</a-menu-item>
|
<span @click="getGzt('dqzy')">课程作业</span>
|
||||||
<a-menu-item key="sub2">
|
</a-menu-item>
|
||||||
<span @click="gotoPageByName('jiaoXueDanYuanNeiRong')">教学单元</span>
|
<a-menu-item key="sub4">
|
||||||
</a-menu-item>
|
<span @click="getGzt('kcjc')">课程测验</span>
|
||||||
<a-menu-item key="sub3">
|
</a-menu-item>
|
||||||
<span @click="getGzt('dqzy')">课程作业</span>
|
<a-menu-item key="sub5">
|
||||||
</a-menu-item>
|
<span @click="getGzt('dcwj')">问卷调查</span>
|
||||||
<a-menu-item key="sub4">
|
</a-menu-item>
|
||||||
<span @click="getGzt('kcjc')">课程测验</span>
|
<a-menu-item key="sub6">
|
||||||
</a-menu-item>
|
<span @click="getGzt('gongju')">到课识别率</span>
|
||||||
<a-menu-item key="sub5">
|
</a-menu-item>
|
||||||
<span @click="getGzt('dcwj')">问卷调查</span>
|
<a-menu-item key="sub7">
|
||||||
</a-menu-item>
|
<span @click="getGzt('zycd')">作业存档</span>
|
||||||
<a-menu-item key="sub6">
|
</a-menu-item>
|
||||||
<span @click="getGzt('gongju')">到课识别率</span>
|
<a-menu-item key="sub8">
|
||||||
</a-menu-item>
|
<span @click="getGzt('yiykzyk')">教学资源库</span>
|
||||||
<a-menu-item key="sub7">
|
</a-menu-item>
|
||||||
<span @click="getGzt('zycd')">作业存档</span>
|
<a-menu-item key="sub9">
|
||||||
</a-menu-item>
|
<span @click="getGzt('tlq')">讨论区</span>
|
||||||
<a-menu-item key="sub8">
|
</a-menu-item>
|
||||||
<span @click="getGzt('yiykzyk')">教学资源库</span>
|
</a-sub-menu>
|
||||||
</a-menu-item>
|
</a-menu>
|
||||||
<a-menu-item key="sub9">
|
</a-col>
|
||||||
<span @click="getGzt('tlq')">讨论区</span>
|
</a-row>
|
||||||
</a-menu-item>
|
|
||||||
</a-sub-menu>
|
|
||||||
</a-menu>
|
|
||||||
</a-col>
|
|
||||||
</a-row>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref, onMounted, unref } from 'vue';
|
import { ref, onMounted, unref,defineExpose } from 'vue';
|
||||||
|
|
||||||
import { getUserSf,getSysConfig } from '/@/views/site/utils/index';
|
import { getUserSf, getSysConfig } from '/@/views/site/utils/index';
|
||||||
import { defHttp } from '/@/utils/http/axios';
|
import { defHttp } from '/@/utils/http/axios';
|
||||||
import { useRouter } from 'vue-router';
|
import { useRouter } from 'vue-router';
|
||||||
import { MailOutlined, AppstoreOutlined, SettingOutlined,MenuUnfoldOutlined } from '@ant-design/icons-vue';
|
import { MailOutlined, AppstoreOutlined, SettingOutlined, MenuUnfoldOutlined,PieChartOutlined } from '@ant-design/icons-vue';
|
||||||
|
|
||||||
|
import headerPage from '/@/views/site/common/header.vue';
|
||||||
|
import footerPage from '/@/views/site/common/footer.vue';
|
||||||
|
import dqxqkc from '/@/views/site/renKeJiaoCheng/checkKecheng/dqxqkc.vue';
|
||||||
|
|
||||||
import headerPage from '/@/views/site/common/header.vue';
|
const maxClassName = ref<any>({});
|
||||||
import footerPage from '/@/views/site/common/footer.vue';
|
const selectedKeys = ref<string[]>(['sub0']);
|
||||||
import dqxqkc from '/@/views/site/renKeJiaoCheng/checkKecheng/dqxqkc.vue';
|
const openKeys = ref<string[]>(['sub0']);
|
||||||
|
const collapsed = ref<any>(false);
|
||||||
|
//当前路由信息
|
||||||
|
const { currentRoute } = useRouter();
|
||||||
|
const { query } = unref(currentRoute);
|
||||||
|
const { rwbh, xqxn, type, teano } = query; //获取传递参数
|
||||||
|
let router = useRouter();
|
||||||
|
|
||||||
const maxClassName = ref<any>({});
|
function getGzt(zytype) {
|
||||||
const selectedKeys = ref<string[]>(['sub0']);
|
var param = { rwbh, xqxn, type };
|
||||||
const openKeys = ref<string[]>(['sub0']);
|
// console.log(`🚀 ~ getGzt ~ type:`, zytype)
|
||||||
//当前路由信息
|
var href = '/zy/dqkcDqzy';
|
||||||
const { currentRoute } = useRouter();
|
if (zytype == 'dqzy') {
|
||||||
const { query } = unref(currentRoute);
|
href = '/zy/dqkcDqzy';
|
||||||
const { rwbh,xqxn,type,teano } = query;//获取传递参数
|
} else if (zytype == 'dcwj') {
|
||||||
let router = useRouter();
|
href = '/zy/dcwjWenjuan';
|
||||||
|
} else if (zytype == 'lszy') {
|
||||||
function getGzt(zytype){
|
href = '/zy/dqkcLszy';
|
||||||
var param = {rwbh,xqxn,type};
|
} else if (zytype == 'gonggao') {
|
||||||
// console.log(`🚀 ~ getGzt ~ type:`, zytype)
|
href = '/zy/tuGonggao';
|
||||||
var href = "/zy/dqkcDqzy";
|
} else if (zytype == 'kcjs') {
|
||||||
if(zytype=='dqzy'){
|
href = '/zy/dqkcDetail';
|
||||||
href = "/zy/dqkcDqzy";
|
} else if (zytype == 'kcjc') {
|
||||||
}else if(zytype=='dcwj'){
|
href = '/zy/ceshiWenjuan';
|
||||||
href = "/zy/dcwjWenjuan";
|
} else if (zytype == 'gongju') {
|
||||||
}else if(zytype=='lszy'){
|
href = '/zy/dqkcGongju';
|
||||||
href = "/zy/dqkcLszy";
|
} else if (zytype == 'yiykzyk') {
|
||||||
}else if(zytype=='gonggao'){
|
href = '/zy/yiykzyk';
|
||||||
href = "/zy/tuGonggao";
|
} else if (zytype == 'jxzyk') {
|
||||||
}else if(zytype=='kcjs'){
|
href = '/zy/dqkcJxzyk';
|
||||||
href = "/zy/dqkcDetail";
|
} else if (zytype == 'tlq') {
|
||||||
}else if(zytype=='kcjc'){
|
href = '/zy/dqkcTlq';
|
||||||
href = "/zy/ceshiWenjuan";
|
} else if (zytype == 'zycd') {
|
||||||
}else if(zytype=='gongju'){
|
href = '/zy/dqkcCdxx';
|
||||||
href = "/zy/dqkcGongju";
|
|
||||||
}else if(zytype=='yiykzyk'){
|
|
||||||
href = "/zy/yiykzyk";
|
|
||||||
}else if(zytype=='jxzyk'){
|
|
||||||
href = "/zy/dqkcJxzyk";
|
|
||||||
}else if(zytype=='tlq'){
|
|
||||||
href = "/zy/dqkcTlq";
|
|
||||||
}else if(zytype=='zycd'){
|
|
||||||
href = "/zy/dqkcCdxx";
|
|
||||||
}
|
|
||||||
|
|
||||||
router.push({path:href,query: {rwbh,xqxn,type,teano}});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function gotoPageByName(name) {
|
router.push({ path: href, query: { rwbh, xqxn, type, teano } });
|
||||||
router.push({ name, query: { rwbh, xqxn, type,teano } });
|
}
|
||||||
}
|
|
||||||
|
|
||||||
//进入就加载
|
function toggleCollapsed() {
|
||||||
onMounted(() => {
|
collapsed.value = !collapsed.value;
|
||||||
// console.log('rwbh:',rwbh);
|
openKeys.value = collapsed.value ? [] : selectedKeys.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function gotoPageByName(name) {
|
||||||
|
router.push({ name, query: { rwbh, xqxn, type, teano } });
|
||||||
|
}
|
||||||
|
|
||||||
|
//进入就加载
|
||||||
|
onMounted(() => {
|
||||||
|
// console.log('rwbh:',rwbh);
|
||||||
|
});
|
||||||
|
|
||||||
|
defineExpose({
|
||||||
|
toggleCollapsed
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
#siteMain {
|
#siteMain {
|
||||||
|
@ -179,7 +204,7 @@
|
||||||
min-height: 730px;
|
min-height: 730px;
|
||||||
//居中
|
//居中
|
||||||
margin: 0 auto;
|
margin: 0 auto;
|
||||||
.rowGutter{
|
.rowGutter {
|
||||||
margin-top: 1rem;
|
margin-top: 1rem;
|
||||||
margin-bottom: 1rem;
|
margin-bottom: 1rem;
|
||||||
}
|
}
|
||||||
|
@ -190,7 +215,7 @@
|
||||||
}
|
}
|
||||||
.ant-layout-footer {
|
.ant-layout-footer {
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
background: #FFF;
|
background: #fff;
|
||||||
}
|
}
|
||||||
.ant-layout-sider {
|
.ant-layout-sider {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
|
@ -206,6 +231,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.ant-menu-overflow {
|
.ant-menu-overflow {
|
||||||
flex-direction: row-reverse
|
flex-direction: row-reverse;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -7,17 +7,23 @@
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :lg="24" :xs="18">
|
<a-col :lg="24" :xs="18">
|
||||||
<div style="width:100%;background: #fff;font-size: 18px;font-weight: bold;margin-top:10px;padding: 10px;">课程名称:{{kcxxInfo.kcmc}}</div>
|
<div style="width:100%;background: #fff;font-size: 18px;font-weight: bold;margin-top:10px;padding: 10px;">
|
||||||
|
|
||||||
|
<a-button type="primary" @click="toggleCollapsed">
|
||||||
|
<MenuUnfoldOutlined v-if="collapsed" />
|
||||||
|
<MenuUnfoldOutlined v-else />
|
||||||
|
</a-button>
|
||||||
|
课程名称:{{kcxxInfo.kcmc}}</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="0" :xs="6">
|
<a-col :lg="0" :xs="6">
|
||||||
<studentMenu/>
|
<studentMenu/>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="5" :xs="0">
|
<a-col :lg="spanlg" :xs="0">
|
||||||
<studentMenu/>
|
<studentMenu ref="dqxqkcMenuTag"/>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :lg="19" :xs="24">
|
<a-col :lg="spanlt" :xs="24">
|
||||||
<RouterView/>
|
<RouterView/>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
|
||||||
|
@ -40,6 +46,7 @@
|
||||||
import { getUserSf,getSysConfig } from '/@/views/site/utils/index';
|
import { getUserSf,getSysConfig } from '/@/views/site/utils/index';
|
||||||
import { defHttp } from '/@/utils/http/axios';
|
import { defHttp } from '/@/utils/http/axios';
|
||||||
import { useRouter } from 'vue-router';
|
import { useRouter } from 'vue-router';
|
||||||
|
import { MenuUnfoldOutlined } from '@ant-design/icons-vue';
|
||||||
|
|
||||||
|
|
||||||
import headerPage from '/@/views/site/common/header.vue';
|
import headerPage from '/@/views/site/common/header.vue';
|
||||||
|
@ -49,13 +56,28 @@
|
||||||
const maxClassName = ref<any>({});
|
const maxClassName = ref<any>({});
|
||||||
const selectedKeys = ref<string[]>([]);
|
const selectedKeys = ref<string[]>([]);
|
||||||
const kcxxInfo = ref<string>('');
|
const kcxxInfo = ref<string>('');
|
||||||
|
const dqxqkcMenuTag = ref();
|
||||||
//当前路由信息
|
//当前路由信息
|
||||||
const { currentRoute } = useRouter();
|
const { currentRoute } = useRouter();
|
||||||
const { query } = unref(currentRoute);
|
const { query } = unref(currentRoute);
|
||||||
const { rwbh,xqxn } = query;//获取传递参数
|
const { rwbh,xqxn } = query;//获取传递参数
|
||||||
let router = useRouter();
|
let router = useRouter();
|
||||||
|
const spanlg = ref<number>(5);
|
||||||
|
const spanlt = ref<number>(19);
|
||||||
|
const collapsed = ref<any>(false);
|
||||||
|
|
||||||
|
|
||||||
|
function toggleCollapsed() {
|
||||||
|
collapsed.value = !collapsed.value;
|
||||||
|
dqxqkcMenuTag.value.toggleCollapsed();
|
||||||
|
if(collapsed.value){
|
||||||
|
spanlg.value = 1;
|
||||||
|
spanlt.value = 23;
|
||||||
|
}else{
|
||||||
|
spanlg.value = 5;
|
||||||
|
spanlt.value = 19;
|
||||||
|
}
|
||||||
|
}
|
||||||
//进入就加载
|
//进入就加载
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
defHttp.get({ url: '/ktgl/kcKechengbiao/getKcxxByRwbhXqxn', params: { rwbh: rwbh,xqxn:xqxn } }).then((res) => {
|
defHttp.get({ url: '/ktgl/kcKechengbiao/getKcxxByRwbhXqxn', params: { rwbh: rwbh,xqxn:xqxn } }).then((res) => {
|
||||||
|
|
|
@ -3,26 +3,40 @@
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :lg="24" :xs="{ span: 0 }">
|
<a-col :lg="24" :xs="{ span: 0 }">
|
||||||
<a-menu
|
<a-menu
|
||||||
|
v-model:openKeys="openKeys"
|
||||||
v-model:selectedKeys="selectedKeys"
|
v-model:selectedKeys="selectedKeys"
|
||||||
style="width: 98%;min-height: calc(100vh - 225px); margin: 10px 0;"
|
style="width: 98%;min-height: calc(100vh - 225px); margin: 10px 0;"
|
||||||
mode="inline"
|
mode="inline"
|
||||||
|
:inline-collapsed="collapsed"
|
||||||
>
|
>
|
||||||
<a-menu-item key="sub1">
|
<a-menu-item key="sub1">
|
||||||
|
<template #icon>
|
||||||
|
<PieChartOutlined />
|
||||||
|
</template>
|
||||||
<span @click="getGzt('tzgg')">通知公告</span>
|
<span @click="getGzt('tzgg')">通知公告</span>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-sub-menu key="sub2">
|
<a-sub-menu key="sub2">
|
||||||
|
<template #icon>
|
||||||
|
<PieChartOutlined />
|
||||||
|
</template>
|
||||||
<template #title>课程内容</template>
|
<template #title>课程内容</template>
|
||||||
<a-menu-item key="1" @click="getGzt('kcjs')">课程简介</a-menu-item>
|
<a-menu-item key="1" @click="getGzt('kcjs')">课程简介</a-menu-item>
|
||||||
<!-- <a-menu-item key="2" @click="getGzt('tzgg')">通知公告</a-menu-item> -->
|
<!-- <a-menu-item key="2" @click="getGzt('tzgg')">通知公告</a-menu-item> -->
|
||||||
<a-menu-item key="3" @click="getGzt('stuJiaoXueDanYuanNeiRong')">教学单元</a-menu-item>
|
<a-menu-item key="3" @click="getGzt('stuJiaoXueDanYuanNeiRong')">教学单元</a-menu-item>
|
||||||
</a-sub-menu>
|
</a-sub-menu>
|
||||||
<a-menu-item key="sub4">
|
<a-menu-item key="sub4">
|
||||||
|
<template #icon>
|
||||||
|
<PieChartOutlined />
|
||||||
|
</template>
|
||||||
<span @click="getGzt('dqzy')">课程作业</span>
|
<span @click="getGzt('dqzy')">课程作业</span>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<!-- <a-menu-item key="sub8">
|
<!-- <a-menu-item key="sub8">
|
||||||
<span @click="getGzt('zyhp')">作业互评</span>
|
<span @click="getGzt('zyhp')">作业互评</span>
|
||||||
</a-menu-item> -->
|
</a-menu-item> -->
|
||||||
<a-menu-item key="sub7">
|
<a-menu-item key="sub7">
|
||||||
|
<template #icon>
|
||||||
|
<PieChartOutlined />
|
||||||
|
</template>
|
||||||
<span @click="getGzt('kcjc')">课程测验</span>
|
<span @click="getGzt('kcjc')">课程测验</span>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<!-- <a-sub-menu key="sub4">
|
<!-- <a-sub-menu key="sub4">
|
||||||
|
@ -31,9 +45,15 @@
|
||||||
<a-menu-item key="5" @click="getGzt('kcjc')">课程测验</a-menu-item>
|
<a-menu-item key="5" @click="getGzt('kcjc')">课程测验</a-menu-item>
|
||||||
</a-sub-menu> -->
|
</a-sub-menu> -->
|
||||||
<a-menu-item key="sub5">
|
<a-menu-item key="sub5">
|
||||||
|
<template #icon>
|
||||||
|
<PieChartOutlined />
|
||||||
|
</template>
|
||||||
<span @click="getGzt('dcwj')">问卷调查</span>
|
<span @click="getGzt('dcwj')">问卷调查</span>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
<a-menu-item key="sub6">
|
<a-menu-item key="sub6">
|
||||||
|
<template #icon>
|
||||||
|
<PieChartOutlined />
|
||||||
|
</template>
|
||||||
<span @click="getGzt('tlq')">讨论区</span>
|
<span @click="getGzt('tlq')">讨论区</span>
|
||||||
</a-menu-item>
|
</a-menu-item>
|
||||||
</a-menu>
|
</a-menu>
|
||||||
|
@ -79,7 +99,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref, onMounted, unref } from 'vue';
|
import { ref, onMounted, unref ,defineExpose } from 'vue';
|
||||||
|
|
||||||
import { getUserSf,getSysConfig } from '/@/views/site/utils/index';
|
import { getUserSf,getSysConfig } from '/@/views/site/utils/index';
|
||||||
import { defHttp } from '/@/utils/http/axios';
|
import { defHttp } from '/@/utils/http/axios';
|
||||||
|
@ -89,15 +109,18 @@
|
||||||
import headerPage from '/@/views/site/common/header.vue';
|
import headerPage from '/@/views/site/common/header.vue';
|
||||||
import footerPage from '/@/views/site/common/footer.vue';
|
import footerPage from '/@/views/site/common/footer.vue';
|
||||||
import dqxqkc from '/@/views/site/renKeJiaoCheng/checkKecheng/dqxqkc.vue';
|
import dqxqkc from '/@/views/site/renKeJiaoCheng/checkKecheng/dqxqkc.vue';
|
||||||
import { MailOutlined, AppstoreOutlined, SettingOutlined,MenuUnfoldOutlined } from '@ant-design/icons-vue';
|
import { MailOutlined, AppstoreOutlined, SettingOutlined, MenuUnfoldOutlined,PieChartOutlined } from '@ant-design/icons-vue';
|
||||||
|
|
||||||
|
|
||||||
const maxClassName = ref<any>({});
|
const maxClassName = ref<any>({});
|
||||||
const selectedKeys = ref<string[]>([]);
|
const selectedKeys = ref<string[]>([]);
|
||||||
|
const openKeys = ref<string[]>(['sub0']);
|
||||||
//当前路由信息
|
//当前路由信息
|
||||||
const { currentRoute } = useRouter();
|
const { currentRoute } = useRouter();
|
||||||
const { query } = unref(currentRoute);
|
const { query } = unref(currentRoute);
|
||||||
const { rwbh,xqxn,type,teano } = query;//获取传递参数
|
const { rwbh,xqxn,type,teano } = query;//获取传递参数
|
||||||
let router = useRouter();
|
let router = useRouter();
|
||||||
|
const collapsed = ref<any>(false);
|
||||||
|
|
||||||
|
|
||||||
function getGzt(zytype){
|
function getGzt(zytype){
|
||||||
|
@ -125,10 +148,17 @@
|
||||||
router.push({path:href,query: {rwbh,xqxn,type,teano}});
|
router.push({path:href,query: {rwbh,xqxn,type,teano}});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function toggleCollapsed() {
|
||||||
|
collapsed.value = !collapsed.value;
|
||||||
|
openKeys.value = collapsed.value ? [] : selectedKeys.value;
|
||||||
|
}
|
||||||
//进入就加载
|
//进入就加载
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
console.log('rwbh:',rwbh);
|
console.log('rwbh:',rwbh);
|
||||||
});
|
});
|
||||||
|
defineExpose({
|
||||||
|
toggleCollapsed
|
||||||
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
|
|
@ -21,20 +21,21 @@
|
||||||
</a-form>
|
</a-form>
|
||||||
</div> -->
|
</div> -->
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="12" v-for="(item, index) in tableData" :key="index" style="padding: 0px 0px 5px 5px; border-radius: 10px; overflow: hidden;">
|
<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: #cdf5ed">
|
<div style="width: 100%; height:40px;border-radius: 10px 10px 0 0; background-color: #cdf5ed">
|
||||||
<a-col :span="24" style="height:40px; line-height:40px; padding-left:15px; color:#333; overflow: hidden;" :title="item.title">
|
<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;" class="ellipsis">{{item.title}}</div> -->
|
<!-- <div style="font-size: 18px;font-weight: bold;" class="ellipsis">{{item.title}}</div> -->
|
||||||
<div style="font-size: 18px; font-weight: bold">{{ item.title }}</div>
|
<div style="font-size: 18px; font-weight: bold">第{{ item.sort }}次作业</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
</div>
|
</div>
|
||||||
<a-card style="height:310px; border: 1px solid #eeeeee">
|
<a-card style="height:165px; border: 1px solid #eeeeee">
|
||||||
<div class="rotate" :style="classFun(item)">{{ callText(item) }}</div>
|
<div class="rotate" :style="classFun(item)">{{ callText(item) }}</div>
|
||||||
<a-row style="top: -60px; position: relative">
|
<a-row style="top: -60px; position: relative">
|
||||||
<a-col :span="24" class="zyCon"><span class="zyCon-word">作业时间:</span>{{ dayjs(item.startTime).format('YYYY.MM.DD HH:mm') }} ~ {{ dayjs(item.endTime).format('YYYY.MM.DD HH:mm') }}</a-col>
|
<a-col :span="24" class="zytitle" :title="item.title">{{ item.title }}</a-col>
|
||||||
<a-col :span="24" class="zyCon"><span class="zyCon-word">互评时间:</span><span v-if="item.xshpkg == '1'">{{ dayjs(item.xshpkssj).format('YYYY.MM.DD HH:mm') }} ~ {{ dayjs(item.xshpjssj).format('YYYY.MM.DD HH:mm') }}</span><span v-else>未设置互评</span></a-col>
|
<a-col :span="12" class="zyCon"><span class="zyCon-word">作业时间:</span>{{ dayjs(item.startTime).format('YYYY.MM.DD HH:mm') }} ~ {{ dayjs(item.endTime).format('YYYY.MM.DD HH:mm') }}</a-col>
|
||||||
<a-col :span="24" class="zyCon Score-List">
|
<a-col :span="12" class="zyCon"><span class="zyCon-word">互评时间:</span><span v-if="item.xshpkg == '1'">{{ dayjs(item.xshpkssj).format('YYYY.MM.DD HH:mm') }} ~ {{ dayjs(item.xshpjssj).format('YYYY.MM.DD HH:mm') }}</span><span v-else>未设置互评</span></a-col>
|
||||||
<div class="Score-List-row">
|
<a-col :span="12" class="zyCon Score-List">
|
||||||
|
<!-- <div class="Score-List-row">
|
||||||
<span class="List-row-number">{{ item.stuscore ? item.stuscore : '未评' }}分</span>
|
<span class="List-row-number">{{ item.stuscore ? item.stuscore : '未评' }}分</span>
|
||||||
<span class="List-row-word">作业得分</span>
|
<span class="List-row-word">作业得分</span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -45,21 +46,43 @@
|
||||||
<div class="Score-List-row" v-if="handleSfkshp(item)">
|
<div class="Score-List-row" v-if="handleSfkshp(item)">
|
||||||
<span class="List-row-number">{{ item.jxfs ? item.jxfs : '未评' }}分</span>
|
<span class="List-row-number">{{ item.jxfs ? item.jxfs : '未评' }}分</span>
|
||||||
<span class="List-row-word">互评奖励</span>
|
<span class="List-row-word">互评奖励</span>
|
||||||
</div>
|
</div> -->
|
||||||
<div class="Score-List-row">
|
<a-popover title="得分情况">
|
||||||
<span class="List-row-number">{{ item.zzdf ? item.zzdf : '未评' }}分</span>
|
<template #content>
|
||||||
<span class="List-row-word">总分</span>
|
<p>作业得分:{{ item.stuscore ? item.stuscore : '未评' }}分</p>
|
||||||
</div>
|
<p v-if="item.jxfs">互评奖励:{{ item.jxfs ? item.jxfs : '未评' }}分</p>
|
||||||
|
</template>
|
||||||
|
<div class="Score-List-row">
|
||||||
|
<span class="List-row-number">{{ item.zzdf ? item.zzdf : '未评' }}分</span>
|
||||||
|
<span class="List-row-word">总分</span>
|
||||||
|
</div>
|
||||||
|
</a-popover>
|
||||||
|
<a-popover title="查重情况">
|
||||||
|
<template #content>
|
||||||
|
<p><span class="zyCon-word">维普资源库查重:</span>{{ getCctype(item, '1') }}</p>
|
||||||
|
<p><span class="zyCon-word">本次作业查重:</span>{{ getCctype(item, '2') }}</p>
|
||||||
|
<p><span class="zyCon-word">学校作业库查重:</span>{{ getCctype(item, '4') }}</p>
|
||||||
|
<p><span class="zyCon-word">Aigc查重:</span>{{ getCctype(item, '3') }}</p>
|
||||||
|
</template>
|
||||||
|
<div class="Score-List-row">
|
||||||
|
<span class="List-row-number">{{ item.zgccl?item.zgccl:'-' }}</span>
|
||||||
|
<span class="List-row-word">查重率</span>
|
||||||
|
</div>
|
||||||
|
</a-popover>
|
||||||
|
<!-- <div class="Score-List-row">
|
||||||
|
<span class="List-row-number">{{ item.zgccl?item.zgccl:'-' }}</span>
|
||||||
|
<span class="List-row-word">查重率</span>
|
||||||
|
</div> -->
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24" class="zyCon">
|
<!-- <a-col :span="24" class="zyCon">
|
||||||
<div style="float: left" class="wpopen" :title="item.wwsftg" @click="handleOpenCcjg(item, '0')"><span class="zyCon-word">维普资源库查重:</span>{{ getCctype(item, '1') }}</div>
|
<div style="float: left" class="wpopen" :title="item.wwsftg" @click="handleOpenCcjg(item, '0')"><span class="zyCon-word">维普资源库查重:</span>{{ getCctype(item, '1') }}</div>
|
||||||
<div style="float: right" class="wpopen" :title="item.nwsftg" @click="handleOpenCcjg(item, '1')"><span class="zyCon-word">本次作业查重:</span>{{ getCctype(item, '2') }}</div>
|
<div style="float: right" class="wpopen" :title="item.nwsftg" @click="handleOpenCcjg(item, '1')"><span class="zyCon-word">本次作业查重:</span>{{ getCctype(item, '2') }}</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24" class="zyCon">
|
<a-col :span="24" class="zyCon">
|
||||||
<div style="float: left" class="wpopen" :title="item.xnsftg" @click="handleOpenCcjg(item, '3')"><span class="zyCon-word">学校作业库查重:</span>{{ getCctype(item, '4') }}</div>
|
<div style="float: left" class="wpopen" :title="item.xnsftg" @click="handleOpenCcjg(item, '3')"><span class="zyCon-word">学校作业库查重:</span>{{ getCctype(item, '4') }}</div>
|
||||||
<div style="float: right" class="wpopen" :title="item.aigcsftg" @click="handleOpenCcjg(item, '2')"><span class="zyCon-word">Aigc查重:</span>{{ getCctype(item, '3') }}</div>
|
<div style="float: right" class="wpopen" :title="item.aigcsftg" @click="handleOpenCcjg(item, '2')"><span class="zyCon-word">Aigc查重:</span>{{ getCctype(item, '3') }}</div>
|
||||||
</a-col>
|
</a-col> -->
|
||||||
<a-col :span="24" style="text-align: center; margin-top:12px; border-top: 1px solid #f6f6f6; padding-top:15px">
|
<a-col :span="12" style="text-align: center; margin-top:12px; border-top: 1px solid #f6f6f6; padding-top:15px">
|
||||||
<a-button class="zyCon-button" type="primary" @click="handleDetail(item)">
|
<a-button class="zyCon-button" type="primary" @click="handleDetail(item)">
|
||||||
详情
|
详情
|
||||||
</a-button>
|
</a-button>
|
||||||
|
@ -72,7 +95,7 @@
|
||||||
<a-button class="zyCon-button" type="primary" @click="handlePreview(item)" v-if="item.stuFilePath">
|
<a-button class="zyCon-button" type="primary" @click="handlePreview(item)" v-if="item.stuFilePath">
|
||||||
预览
|
预览
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button class="zyCon-button" type="primary" @click="handleHuping(item)" v-if="handleSfkshp(item)">
|
<a-button class="zyCon-button" type="primary" @click="handleHuping(item)" v-if="handleSfkshp(item)==1 || handleSfkshp(item)==2" :disabled="handleSfkshp(item)!=1" :title="handleSfkshp(item)==1?'':'未到互评时间或已过互评时间'">
|
||||||
互评
|
互评
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
@ -198,9 +221,12 @@ function handleSfkshp(record) {
|
||||||
var xshpjssj = new Date(record.xshpjssj);
|
var xshpjssj = new Date(record.xshpjssj);
|
||||||
var nowTime = new Date();
|
var nowTime = new Date();
|
||||||
if (record.stuFilePath && sfkshp == '1' && nowTime.getTime() >= xshpkssj.getTime() && nowTime.getTime() <= xshpjssj.getTime()) {
|
if (record.stuFilePath && sfkshp == '1' && nowTime.getTime() >= xshpkssj.getTime() && nowTime.getTime() <= xshpjssj.getTime()) {
|
||||||
return true;
|
return 1;
|
||||||
|
}else if(record.stuFilePath && sfkshp == '1'){
|
||||||
|
return 2
|
||||||
|
}else{
|
||||||
|
return 3;
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleHuping(record) {
|
function handleHuping(record) {
|
||||||
|
@ -439,8 +465,8 @@ onMounted(() => {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
position: relative;
|
position: relative;
|
||||||
top: -60px;
|
top: -68px;
|
||||||
right: -183px;
|
right: -400px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
@ -457,7 +483,7 @@ onMounted(() => {
|
||||||
}
|
}
|
||||||
.Score-List-row{
|
.Score-List-row{
|
||||||
display: flex;
|
display: flex;
|
||||||
width: 25%;
|
width: 50%;
|
||||||
flex-direction:column;
|
flex-direction:column;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
@ -481,4 +507,11 @@ onMounted(() => {
|
||||||
.zyCon-button{
|
.zyCon-button{
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
}
|
}
|
||||||
|
.zytitle{
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 700;
|
||||||
|
overflow: hidden; /* 确保超出容器的内容被裁剪 */
|
||||||
|
white-space: nowrap; /* 确保文本在一行内显示 */
|
||||||
|
text-overflow: ellipsis; /* 超出部分显示省略号 */
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -93,6 +93,7 @@ d<template>
|
||||||
valueFormat="YYYY-MM-DD HH:mm"
|
valueFormat="YYYY-MM-DD HH:mm"
|
||||||
format="YYYY-MM-DD HH:mm"
|
format="YYYY-MM-DD HH:mm"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
|
@change="handleEndTime"
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
@ -113,7 +114,7 @@ d<template>
|
||||||
<a-form-item label="作业要求" v-bind="validateInfos.content">
|
<a-form-item label="作业要求" v-bind="validateInfos.content">
|
||||||
<j-editor v-model:value="zyInfo.content" v-if="zyyqShow" @blur="handleZyyqShow(0)" />
|
<j-editor v-model:value="zyInfo.content" v-if="zyyqShow" @blur="handleZyyqShow(0)" />
|
||||||
<div style="color: #777777" v-html="zyInfo.content" v-if="!zyyqShow"></div>
|
<div style="color: #777777" v-html="zyInfo.content" v-if="!zyyqShow"></div>
|
||||||
<div @click="handleZyyqShow(1)" class="tishi" v-if="zyInfo.xshpkg == '1'">温馨提示:点击可编辑作业要求</div>
|
<div @click="handleZyyqShow(1)" class="tishi">温馨提示:点击可编辑作业要求</div>
|
||||||
<!-- <div @click="handleZyyqShow(1)"><span style="cursor: pointer; color: #18a689">温馨提示:点击可编辑作业要求</span></div> -->
|
<!-- <div @click="handleZyyqShow(1)"><span style="cursor: pointer; color: #18a689">温馨提示:点击可编辑作业要求</span></div> -->
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
@ -123,7 +124,7 @@ d<template>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-form-item label="评分标准" layout="inline">
|
<a-form-item label="评分标准" layout="inline" v-bind="validateInfos.pfbz">
|
||||||
<a-form-item
|
<a-form-item
|
||||||
label="是否允许学生查看"
|
label="是否允许学生查看"
|
||||||
:labelCol="labelCol2"
|
:labelCol="labelCol2"
|
||||||
|
@ -132,7 +133,7 @@ d<template>
|
||||||
>
|
>
|
||||||
<j-dict-select-tag type="radio" v-model:value="zyInfo.sturead" dictCode="yn" placeholder="请选择评分标准是否允许学生查看" />
|
<j-dict-select-tag type="radio" v-model:value="zyInfo.sturead" dictCode="yn" placeholder="请选择评分标准是否允许学生查看" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="" v-if="zyInfo.sturead == '1'">
|
<a-form-item label="">
|
||||||
<j-editor v-model:value="zyInfo.pfbz" v-if="pfbzShow" @blur="handlePfbzShow(0)" />
|
<j-editor v-model:value="zyInfo.pfbz" v-if="pfbzShow" @blur="handlePfbzShow(0)" />
|
||||||
<div v-html="zyInfo.pfbz" v-if="!pfbzShow"></div>
|
<div v-html="zyInfo.pfbz" v-if="!pfbzShow"></div>
|
||||||
<div class="tishi" @click="handlePfbzShow(1)">温馨提示:点击可编辑评分标准</div>
|
<div class="tishi" @click="handlePfbzShow(1)">温馨提示:点击可编辑评分标准</div>
|
||||||
|
@ -144,7 +145,6 @@ d<template>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<div class="region">
|
<div class="region">
|
||||||
<div class="region-title">学生互评</div>
|
<div class="region-title">学生互评</div>
|
||||||
<div style="float:right;margin-right:8px;" v-if="zyInfo.xshpkg == '1'"><span style="color:#18a689; cursor: pointer;" @click="handleHpsf">预览互评算法</span></div>
|
|
||||||
<a-form-item label="学生互评">
|
<a-form-item label="学生互评">
|
||||||
<div class="tishi" v-if="zyInfo.xshpkg == '1'">温馨提示:每份作业至少互评3次,每个学生互评5份作业</div>
|
<div class="tishi" v-if="zyInfo.xshpkg == '1'">温馨提示:每份作业至少互评3次,每个学生互评5份作业</div>
|
||||||
<j-dict-select-tag
|
<j-dict-select-tag
|
||||||
|
@ -185,7 +185,7 @@ d<template>
|
||||||
style="margin-top: 15px"
|
style="margin-top: 15px"
|
||||||
/> -->
|
/> -->
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
<a-form-item label="互评开始时间" :labelCol="labelCol2" :wrapperCol="wrapperCol2">
|
<a-form-item label="互评开始时间" :labelCol="labelCol2" :wrapperCol="wrapperCol2" hidden>
|
||||||
<a-date-picker
|
<a-date-picker
|
||||||
placeholder="请选择互评开始时间"
|
placeholder="请选择互评开始时间"
|
||||||
v-model:value="zyInfo.xshpkssj"
|
v-model:value="zyInfo.xshpkssj"
|
||||||
|
@ -251,7 +251,7 @@ d<template>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</div>
|
</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24" style="text-align: center; margin-top: 10px; margin-bottom: 40px; ">
|
<a-col :span="24" style="text-align: center; margin-top: 10px; margin-bottom: 40px">
|
||||||
<a-button type="primary" @click="submitForm">保存</a-button>
|
<a-button type="primary" @click="submitForm">保存</a-button>
|
||||||
<a-button type="primary" @click="reloadZy" style="margin-left: 15px">返回</a-button>
|
<a-button type="primary" @click="reloadZy" style="margin-left: 15px">返回</a-button>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
@ -275,8 +275,7 @@ d<template>
|
||||||
<span class="tishi">
|
<span class="tishi">
|
||||||
温馨提示:<br />
|
温馨提示:<br />
|
||||||
1、非高峰期预计30分钟内返回检测结果,高峰期预计时间会更长,请您耐心等待! <br />
|
1、非高峰期预计30分钟内返回检测结果,高峰期预计时间会更长,请您耐心等待! <br />
|
||||||
2、点击互评分数,可查看同学间互评作业详情
|
2、点击互评分数,可查看同学间互评作业详情
|
||||||
<span style="color:#18a689; cursor: pointer;" @click="handleHpsf">预览互评算法</span>
|
|
||||||
<br />
|
<br />
|
||||||
3、点击最高查重率,可分别查看学生“维普作业库查重”、“学校作业库查重”、“本次作业查重”、“AIGC查重”相似率<br />
|
3、点击最高查重率,可分别查看学生“维普作业库查重”、“学校作业库查重”、“本次作业查重”、“AIGC查重”相似率<br />
|
||||||
4、学生上传的课程作业全部存档<br />
|
4、学生上传的课程作业全部存档<br />
|
||||||
|
@ -345,7 +344,9 @@ d<template>
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="24"
|
<a-col :span="24"
|
||||||
><span class="title">查重相似度详情</span>
|
><span class="title">查重相似度详情</span>
|
||||||
<a-button type="primary" @click="handleShowType(3)" style="float: right; margin-right: 8px"><Icon icon="ant-design:export-outlined" />返回</a-button>
|
<a-button type="primary" @click="handleShowType(3)" style="float: right; margin-right: 8px"
|
||||||
|
><Icon icon="ant-design:export-outlined" />返回</a-button
|
||||||
|
>
|
||||||
<a-divider
|
<a-divider
|
||||||
/></a-col>
|
/></a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
|
@ -365,7 +366,9 @@ d<template>
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="24"
|
<a-col :span="24"
|
||||||
><span class="title">学生互评详情</span>
|
><span class="title">学生互评详情</span>
|
||||||
<a-button type="primary" @click="handleShowType(3)" style="float: right; margin-right: 8px"><Icon icon="ant-design:export-outlined" />返回</a-button>
|
<a-button type="primary" @click="handleShowType(3)" style="float: right; margin-right: 8px"
|
||||||
|
><Icon icon="ant-design:export-outlined" />返回</a-button
|
||||||
|
>
|
||||||
<a-divider
|
<a-divider
|
||||||
/></a-col>
|
/></a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
|
@ -384,7 +387,7 @@ d<template>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-row style="padding: 10px">
|
<a-row style="padding: 10px">
|
||||||
<a-col :lg="12" v-for="(item, index) in tableData" style="padding: 0 5px 5px 5px" :key="index">
|
<a-col :lg="24" v-for="(item, index) in tableData" style="padding: 0 5px 5px 5px" :key="index">
|
||||||
<a-card
|
<a-card
|
||||||
:title="'第' + item.sort + '次作业(占比' + item.score + '%)'"
|
:title="'第' + item.sort + '次作业(占比' + item.score + '%)'"
|
||||||
v-if="!item.endTime"
|
v-if="!item.endTime"
|
||||||
|
@ -411,7 +414,7 @@ d<template>
|
||||||
><span style="color: #02aa56; font-weight: bold"><Icon icon="ant-design:check-outlined" />已发布</span>
|
><span style="color: #02aa56; font-weight: bold"><Icon icon="ant-design:check-outlined" />已发布</span>
|
||||||
</template>
|
</template>
|
||||||
<div class="ellip-title">
|
<div class="ellip-title">
|
||||||
<span class="ellipsis elli-title" :title="item.title">作业名称:{{ item.title }}</span>
|
<span class="ellipsis elli-title" :title="item.title">{{ item.title }}</span>
|
||||||
<a class="button-zhta" @click="openXkrs(item)">{{ item.xkxs }}人选课</a>
|
<a class="button-zhta" @click="openXkrs(item)">{{ item.xkxs }}人选课</a>
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 100%">
|
<div style="width: 100%">
|
||||||
|
@ -420,13 +423,13 @@ d<template>
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 100%; display: flex">
|
<div style="width: 100%; display: flex">
|
||||||
<div class="data-suggest zuanqu" @click="handleZyxx(item, '1')"
|
<div class="data-suggest zuanqu" @click="handleZyxx(item, '1')"
|
||||||
><span>{{ item.wtjnum }}人</span><span>未提交</span></div
|
><span>{{ item.wtjnum }}人</span><span>待提交</span></div
|
||||||
>
|
>
|
||||||
<div class="data-suggest zuanqu" @click="handleZyxx(item, '2')"
|
<!-- <div class="data-suggest zuanqu" @click="handleZyxx(item, '2')"
|
||||||
><span>{{ item.ytjnum }}人</span><span>已提交</span></div
|
><span>{{ item.ytjnum }}人</span><span>已提交</span></div
|
||||||
>
|
> -->
|
||||||
<div class="data-suggest zuanqu" @click="handleZyxx(item, '3')"
|
<div class="data-suggest zuanqu" @click="handleZyxx(item, '5')"
|
||||||
><span>{{ item.wpynum }}人</span><span>未评阅</span></div
|
><span>{{ item.dpynum }}人</span><span>待评阅</span></div
|
||||||
>
|
>
|
||||||
<div class="data-suggest zuanqu" @click="handleZyxx(item, '4')"
|
<div class="data-suggest zuanqu" @click="handleZyxx(item, '4')"
|
||||||
><span>{{ item.ypynum }}人</span><span>已评阅</span></div
|
><span>{{ item.ypynum }}人</span><span>已评阅</span></div
|
||||||
|
@ -436,9 +439,9 @@ d<template>
|
||||||
<div style="text-align: right; margin-top: 10px; margin-bottom: -10px; width: 100%">
|
<div style="text-align: right; margin-top: 10px; margin-bottom: -10px; width: 100%">
|
||||||
<a @click="handleEdit(item, true)">编辑作业</a>
|
<a @click="handleEdit(item, true)">编辑作业</a>
|
||||||
<a-divider type="vertical" />
|
<a-divider type="vertical" />
|
||||||
<a @click="handleZyxx(item, '')">查看作业</a>
|
<a @click="handleZyxx(item, '')">批阅作业</a>
|
||||||
<a-divider type="vertical" />
|
<a-divider type="vertical" />
|
||||||
<a @click="handleDelete(item)">删除</a>
|
<a @click="handleDelete(item)" v-if="item.ytjnum == '0'">删除</a>
|
||||||
</div>
|
</div>
|
||||||
</a-card>
|
</a-card>
|
||||||
<a-card
|
<a-card
|
||||||
|
@ -451,7 +454,7 @@ d<template>
|
||||||
><span style="color: #ff8710; font-weight: bold"><Icon icon="ant-design:send-outlined" />待发布</span>
|
><span style="color: #ff8710; font-weight: bold"><Icon icon="ant-design:send-outlined" />待发布</span>
|
||||||
</template>
|
</template>
|
||||||
<div class="ellip-title">
|
<div class="ellip-title">
|
||||||
<span class="ellipsis elli-title" :title="item.title">作业名称:{{ item.title }}</span>
|
<span class="ellipsis elli-title" :title="item.title">{{ item.title }}</span>
|
||||||
<a class="button-zhta" @click="openXkrs(item)">{{ item.xkxs }}人选课</a>
|
<a class="button-zhta" @click="openXkrs(item)">{{ item.xkxs }}人选课</a>
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 100%">
|
<div style="width: 100%">
|
||||||
|
@ -607,15 +610,11 @@ function handleXshpkg(record) {
|
||||||
console.log('👨👧👦', record);
|
console.log('👨👧👦', record);
|
||||||
}
|
}
|
||||||
|
|
||||||
//预览互评算法
|
function handleEndTime(record) {
|
||||||
function handleHpsf(){
|
console.log('👽', record);
|
||||||
// openByUrl({url:'/downPath/ylhpsf.pdf',target: '_blank',fileName:'算法说明.pdf'})
|
zyInfo.value.xshpkssj = record;
|
||||||
// window.open(pdfUrl.value, '_blank');
|
|
||||||
// window.open(require('../../../downPath/ylhpsf.pdf'), '_blank');
|
|
||||||
window.open(baseApiUrl+'/temp/ylhpsf.pdf');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//获取查重结果
|
//获取查重结果
|
||||||
function handleViewInfo(record) {
|
function handleViewInfo(record) {
|
||||||
defHttp.get({ url: '/zyCcjg/zyCcjg/ccjglist', params: { zyStuId: record.id } }).then((res) => {
|
defHttp.get({ url: '/zyCcjg/zyCcjg/ccjglist', params: { zyStuId: record.id } }).then((res) => {
|
||||||
|
@ -717,20 +716,18 @@ function yulanFile(record) {
|
||||||
}
|
}
|
||||||
//驳回
|
//驳回
|
||||||
function handleBohui(record: Recordable) {
|
function handleBohui(record: Recordable) {
|
||||||
|
|
||||||
|
|
||||||
createConfirm({
|
createConfirm({
|
||||||
iconType: 'warning',
|
iconType: 'warning',
|
||||||
title: '驳回',
|
title: '驳回',
|
||||||
content: '您确定驳回此作业吗,驳回后需要学生重新提交?',
|
content: '您确定驳回此作业吗,驳回后需要学生重新提交?',
|
||||||
okText: '确认',
|
okText: '确认',
|
||||||
cancelText: '取消',
|
cancelText: '取消',
|
||||||
onOk: () => {
|
onOk: () => {
|
||||||
defHttp.post({ url: '/zyInfoStudent/zyInfoStudent/editBohui', params: { id: record.id } }).then((res) => {
|
defHttp.post({ url: '/zyInfoStudent/zyInfoStudent/editBohui', params: { id: record.id } }).then((res) => {
|
||||||
handleSuccess();
|
handleSuccess();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
//填写评分
|
//填写评分
|
||||||
function handleScore(record: Recordable) {
|
function handleScore(record: Recordable) {
|
||||||
|
@ -834,6 +831,7 @@ async function batchHandleFabu() {
|
||||||
const validatorRules = {
|
const validatorRules = {
|
||||||
title: [{ required: true, message: '请输入作业名称!' }],
|
title: [{ required: true, message: '请输入作业名称!' }],
|
||||||
endTime: [{ required: true, message: '请输入结束时间!' }],
|
endTime: [{ required: true, message: '请输入结束时间!' }],
|
||||||
|
pfbz: [{ required: true, message: '请输入评分标准!' }],
|
||||||
};
|
};
|
||||||
const { resetFields, validate, validateInfos } = useForm(zyInfo, validatorRules, { immediate: true });
|
const { resetFields, validate, validateInfos } = useForm(zyInfo, validatorRules, { immediate: true });
|
||||||
const labelCol = reactive({
|
const labelCol = reactive({
|
||||||
|
@ -857,10 +855,10 @@ const wrapperCol3 = reactive({
|
||||||
sm: { span: 20 },
|
sm: { span: 20 },
|
||||||
});
|
});
|
||||||
const labelCol4 = reactive({
|
const labelCol4 = reactive({
|
||||||
sm: { span: 8 },
|
sm: { span: 10 },
|
||||||
});
|
});
|
||||||
const wrapperCol4 = reactive({
|
const wrapperCol4 = reactive({
|
||||||
sm: { span: 14 },
|
sm: { span: 12 },
|
||||||
});
|
});
|
||||||
//作业要求切换
|
//作业要求切换
|
||||||
function handleZyyqShow(type) {
|
function handleZyyqShow(type) {
|
||||||
|
@ -1242,9 +1240,23 @@ function handleAdd() {
|
||||||
* 编辑事件
|
* 编辑事件
|
||||||
*/
|
*/
|
||||||
function handleEdit(record, type) {
|
function handleEdit(record, type) {
|
||||||
|
console.log('👩🎓1111111', record);
|
||||||
|
if (!record.sturead) {
|
||||||
|
record.sturead = '1';
|
||||||
|
}
|
||||||
|
if (!record.xshpkg) {
|
||||||
|
record.xshpkg = '1';
|
||||||
|
}
|
||||||
|
if (!record.sfzzcj) {
|
||||||
|
record.sfzzcj = '1';
|
||||||
|
}
|
||||||
|
if (!record.xssfck) {
|
||||||
|
record.xssfck = '1';
|
||||||
|
}
|
||||||
|
console.log('💂♀️2222222', record);
|
||||||
editDisabled.value = type;
|
editDisabled.value = type;
|
||||||
console.log('👨👨👧👧', editDisabled);
|
|
||||||
zyInfo.value = record;
|
zyInfo.value = record;
|
||||||
|
console.log('😔3333333', zyInfo.value);
|
||||||
dataKhnr.value = [];
|
dataKhnr.value = [];
|
||||||
var kcnr = zyInfo.value.kcnr;
|
var kcnr = zyInfo.value.kcnr;
|
||||||
if (kcnr) {
|
if (kcnr) {
|
||||||
|
@ -1269,7 +1281,7 @@ function handleDetail(record: Recordable) {
|
||||||
registerDetialModal.value.edit(record);
|
registerDetialModal.value.edit(record);
|
||||||
}
|
}
|
||||||
|
|
||||||
//查看作业信息
|
//批阅作业信息
|
||||||
function handleZyxx(record, type) {
|
function handleZyxx(record, type) {
|
||||||
if (type == '1') {
|
if (type == '1') {
|
||||||
if (!record.wtjnum || record.wtjnum == '0') {
|
if (!record.wtjnum || record.wtjnum == '0') {
|
||||||
|
@ -1291,6 +1303,11 @@ function handleZyxx(record, type) {
|
||||||
createMessage.error('当前人数为0,不能进行查询');
|
createMessage.error('当前人数为0,不能进行查询');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
} else if (type == '4') {
|
||||||
|
if (!record.dpynum || record.dpynum == '0') {
|
||||||
|
createMessage.error('当前人数为0,不能进行查询');
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
zyInfo.value = record;
|
zyInfo.value = record;
|
||||||
|
@ -1450,7 +1467,7 @@ onMounted(() => {
|
||||||
min-height: 200px;
|
min-height: 200px;
|
||||||
}
|
}
|
||||||
.sznrClass {
|
.sznrClass {
|
||||||
line-height: 126px;
|
line-height: 40px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
.ant-card {
|
.ant-card {
|
||||||
|
|
|
@ -4,12 +4,12 @@
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
<a-row>
|
<a-row>
|
||||||
<div class="wrapper-back">
|
<div class="wrapper-back">
|
||||||
<div class="wrapper-title">基本信息</div>
|
<div class="wrapper-title">基本信息</div>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-form-item label="作业题目">
|
<a-form-item label="作业题目">
|
||||||
<span class="spanb-word">{{formData.title}}</span>
|
<span class="spanb-word">{{ formData.title }}</span>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24" v-if="dataKhnr.length > 0">
|
<a-col :span="24" v-if="dataKhnr.length > 0">
|
||||||
|
@ -19,67 +19,61 @@
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="作业截止时间" :labelCol="labelCol2" :wrapperCol="wrapperCol2">
|
<a-form-item label="作业截止时间" :labelCol="labelCol2" :wrapperCol="wrapperCol2">
|
||||||
<span class="spanb-word">{{formData.endTime}}</span>
|
<span class="spanb-word">{{ formData.endTime }}</span>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="12">
|
<a-col :span="12">
|
||||||
<a-form-item label="作业发布时间" :labelCol="labelCol2" :wrapperCol="wrapperCol2">
|
<a-form-item label="作业发布时间" :labelCol="labelCol2" :wrapperCol="wrapperCol2">
|
||||||
<span class="spanb-word">{{formData.startTime}}</span>
|
<span class="spanb-word">{{ formData.startTime }}</span>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-form-item label="作业要求" >
|
<a-form-item label="作业要求">
|
||||||
<div class="spanb-word" v-html="formData.content"></div>
|
<div class="spanb-word" v-html="formData.content"></div>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24" v-if="formData.filePath">
|
<a-col :span="24" v-if="formData.filePath">
|
||||||
<a-form-item label="参考资料" >
|
<a-form-item label="参考资料">
|
||||||
|
<span>{{ lastString(formData.filePath) }}</span>
|
||||||
<a-button type="primary" style="margin-left: 10px" @click="downLoad(formData.filePath)">下载</a-button>
|
<a-button type="primary" style="margin-left: 10px" @click="downLoad(formData.filePath)">下载</a-button>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
|
|
||||||
<a-col :span="24" v-show="formData.sturead=='1' && formData.pfbz">
|
<a-col :span="24" v-show="formData.sturead == '1' && formData.pfbz">
|
||||||
<a-form-item label="评分标准" layout="inline">
|
<a-form-item label="评分标准" layout="inline">
|
||||||
<div class="spanb-word" v-html="formData.pfbz"></div>
|
<div class="spanb-word" v-html="formData.pfbz"></div>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</div>
|
</div>
|
||||||
<a-col :span="24" v-if="formData.wwtgl" class="wrapper-back">
|
<a-col :span="24" v-if="formData.wwtgl" class="wrapper-back">
|
||||||
<div class="wrapper-title">查重设置</div>
|
<div class="wrapper-title">查重设置</div>
|
||||||
<a-form-item layout="inline" style="margin-left:100px">
|
<a-form-item layout="inline" style="margin-left: 100px">
|
||||||
<a-form-item label="检测通过率" :labelCol="labelCol3" :wrapperCol="wrapperCol3">
|
<a-form-item label="检测通过率" :labelCol="labelCol3" :wrapperCol="wrapperCol3">
|
||||||
<span style="padding: 7px 20px"></span>
|
<span style="padding: 7px 20px"></span>
|
||||||
<a-input-number
|
<a-input-number v-model:value="formData.wwtgl" placeholder="检测通过率" style="width: 60%" :max="100" :min="0" disabled>
|
||||||
v-model:value="formData.wwtgl"
|
<template #addonAfter> % </template>
|
||||||
placeholder="检测通过率"
|
</a-input-number>
|
||||||
style="width: 60%"
|
|
||||||
:max="100"
|
|
||||||
:min="0"
|
|
||||||
disabled
|
|
||||||
>
|
|
||||||
<template #addonAfter> % </template>
|
|
||||||
</a-input-number>
|
|
||||||
</a-form-item>
|
|
||||||
<a-form-item label="比对库设置" :labelCol="labelCol3" :wrapperCol="wrapperCol3" >
|
|
||||||
<div style="padding: 7px 20px">维普</div>
|
|
||||||
<div style="padding: 0 40px">
|
|
||||||
<a-checkbox v-model:checked="formData.wwcc" style="margin-left: 10px" disabled
|
|
||||||
>维普资源库查重:中文科技期刊数据库、硕博学位论文库、高校特色论文库、互联网数据资源/互联网文档资源</a-checkbox
|
|
||||||
>
|
|
||||||
<a-checkbox v-model:checked="formData.xncc" disabled>学校作业库查重:历届学生提供的作业库内查重</a-checkbox>
|
|
||||||
<a-checkbox v-model:checked="formData.nwcc" disabled>本次作业查重:本次学生提交的作业间查重</a-checkbox>
|
|
||||||
</div>
|
|
||||||
<div style="padding: 7px 20px">AIGC</div>
|
|
||||||
<div style="padding: 0 40px">
|
|
||||||
<a-checkbox v-model:checked="formData.aigccc" style="margin-left: 10px" disabled
|
|
||||||
>AIGC查重:检测作业是否部分或全部由AI模型生成</a-checkbox
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</a-form-item>
|
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
<a-form-item label="比对库设置" :labelCol="labelCol3" :wrapperCol="wrapperCol3">
|
||||||
</a-row>
|
<div style="padding: 7px 20px">维普</div>
|
||||||
</a-form>
|
<div style="padding: 0 40px">
|
||||||
|
<a-checkbox v-model:checked="formData.wwcc" style="margin-left: 10px" disabled
|
||||||
|
>维普资源库查重:中文科技期刊数据库、硕博学位论文库、高校特色论文库、互联网数据资源/互联网文档资源</a-checkbox
|
||||||
|
>
|
||||||
|
<a-checkbox v-model:checked="formData.xncc" disabled>学校作业库查重:历届学生提供的作业库内查重</a-checkbox>
|
||||||
|
<a-checkbox v-model:checked="formData.nwcc" disabled>本次作业查重:本次学生提交的作业间查重</a-checkbox>
|
||||||
|
</div>
|
||||||
|
<div style="padding: 7px 20px">AIGC</div>
|
||||||
|
<div style="padding: 0 40px">
|
||||||
|
<a-checkbox v-model:checked="formData.aigccc" style="margin-left: 10px" disabled
|
||||||
|
>AIGC查重:检测作业是否部分或全部由AI模型生成</a-checkbox
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</a-form-item>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-form>
|
||||||
</a-col>
|
</a-col>
|
||||||
<!-- <a-col :span="24">
|
<!-- <a-col :span="24">
|
||||||
<span class="spana">作业分值:{{formData.score?formData.score:'未填写'}}</span>
|
<span class="spana">作业分值:{{formData.score?formData.score:'未填写'}}</span>
|
||||||
|
@ -121,103 +115,101 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref, reactive, defineExpose, nextTick, defineProps, computed, onMounted,unref } from 'vue';
|
import { ref, reactive, defineExpose, nextTick, defineProps, computed, onMounted, unref } from 'vue';
|
||||||
import { defHttp } from '/@/utils/http/axios';
|
import { defHttp } from '/@/utils/http/axios';
|
||||||
import { useMessage } from '/@/hooks/web/useMessage';
|
import { useMessage } from '/@/hooks/web/useMessage';
|
||||||
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||||
import { getValueType } from '/@/utils';
|
import { getValueType } from '/@/utils';
|
||||||
import { saveOrUpdate } from '../ZyInfo.api';
|
import { saveOrUpdate } from '../ZyInfo.api';
|
||||||
import { Form } from 'ant-design-vue';
|
import { Form } from 'ant-design-vue';
|
||||||
import { useRouter } from 'vue-router';
|
import { useRouter } from 'vue-router';
|
||||||
import dayjs, { Dayjs } from 'dayjs';
|
import dayjs, { Dayjs } from 'dayjs';
|
||||||
import JUpload from '/@/components/Form/src/jeecg/components/JUpload/JUpload.vue';
|
import JUpload from '/@/components/Form/src/jeecg/components/JUpload/JUpload.vue';
|
||||||
import {getFileAccessHttpUrl} from "/@/utils/common/compUtils";
|
import { getFileAccessHttpUrl } from '/@/utils/common/compUtils';
|
||||||
|
|
||||||
import { downloadFile } from '/@/utils/common/renderUtils';
|
|
||||||
//当前路由信息
|
|
||||||
const { currentRoute } = useRouter();
|
|
||||||
const { query } = unref(currentRoute);
|
|
||||||
const { rwbh } = query;//获取传递参数
|
|
||||||
const props = defineProps({
|
|
||||||
formDisabled: { type: Boolean, default: false },
|
|
||||||
formData: { type: Object, default: ()=>{} },
|
|
||||||
formBpm: { type: Boolean, default: true }
|
|
||||||
});
|
|
||||||
const formRef = ref();
|
|
||||||
const useForm = Form.useForm;
|
|
||||||
const emit = defineEmits(['register', 'ok']);
|
|
||||||
const dataKhnr = ref<any>([]);
|
|
||||||
const formData = reactive<Record<string, any>>({
|
|
||||||
id: '',
|
|
||||||
title: '',
|
|
||||||
zyType: '0',
|
|
||||||
content: '',
|
|
||||||
filePath: '',
|
|
||||||
startTime: '',
|
|
||||||
endTime: '',
|
|
||||||
wwcc: '0',
|
|
||||||
wwtgl: undefined,
|
|
||||||
nwcc: '0',
|
|
||||||
nwtgl: undefined,
|
|
||||||
aigccc: '0',
|
|
||||||
aigctgl: undefined,
|
|
||||||
rwbh: '',
|
|
||||||
xncc: '0',
|
|
||||||
xntgl: undefined,
|
|
||||||
});
|
|
||||||
const { createMessage } = useMessage();
|
|
||||||
const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 5 } });
|
|
||||||
const wrapperCol = ref<any>({ xs: { span: 24 }, sm: { span: 16 } });
|
|
||||||
// const labelCol2 = ref<any>({ xs: { span: 24 }, sm: { span: 3 } });
|
|
||||||
// const wrapperCol2 = ref<any>({ xs: { span: 24 }, sm: { span: 20 } });
|
|
||||||
|
|
||||||
|
import { downloadFile } from '/@/utils/common/renderUtils';
|
||||||
|
//当前路由信息
|
||||||
|
const { currentRoute } = useRouter();
|
||||||
|
const { query } = unref(currentRoute);
|
||||||
|
const { rwbh } = query; //获取传递参数
|
||||||
|
const props = defineProps({
|
||||||
|
formDisabled: { type: Boolean, default: false },
|
||||||
|
formData: { type: Object, default: () => {} },
|
||||||
|
formBpm: { type: Boolean, default: true },
|
||||||
|
});
|
||||||
|
const formRef = ref();
|
||||||
|
const useForm = Form.useForm;
|
||||||
|
const emit = defineEmits(['register', 'ok']);
|
||||||
|
const dataKhnr = ref<any>([]);
|
||||||
|
const formData = reactive<Record<string, any>>({
|
||||||
|
id: '',
|
||||||
|
title: '',
|
||||||
|
zyType: '0',
|
||||||
|
content: '',
|
||||||
|
filePath: '',
|
||||||
|
startTime: '',
|
||||||
|
endTime: '',
|
||||||
|
wwcc: '0',
|
||||||
|
wwtgl: undefined,
|
||||||
|
nwcc: '0',
|
||||||
|
nwtgl: undefined,
|
||||||
|
aigccc: '0',
|
||||||
|
aigctgl: undefined,
|
||||||
|
rwbh: '',
|
||||||
|
xncc: '0',
|
||||||
|
xntgl: undefined,
|
||||||
|
});
|
||||||
|
const { createMessage } = useMessage();
|
||||||
|
const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 5 } });
|
||||||
|
const wrapperCol = ref<any>({ xs: { span: 24 }, sm: { span: 16 } });
|
||||||
|
// const labelCol2 = ref<any>({ xs: { span: 24 }, sm: { span: 3 } });
|
||||||
|
// const wrapperCol2 = ref<any>({ xs: { span: 24 }, sm: { span: 20 } });
|
||||||
|
|
||||||
const labelCol2 = reactive({
|
const labelCol2 = reactive({
|
||||||
sm: { span: 10 },
|
sm: { span: 10 },
|
||||||
});
|
});
|
||||||
const wrapperCol2 = reactive({
|
const wrapperCol2 = reactive({
|
||||||
sm: { span: 10 },
|
sm: { span: 10 },
|
||||||
});
|
});
|
||||||
const labelCol3 = reactive({
|
const labelCol3 = reactive({
|
||||||
sm: { span: 4 },
|
sm: { span: 4 },
|
||||||
});
|
});
|
||||||
const wrapperCol3 = reactive({
|
const wrapperCol3 = reactive({
|
||||||
sm: { span: 20 },
|
sm: { span: 20 },
|
||||||
});
|
});
|
||||||
|
|
||||||
const confirmLoading = ref<boolean>(false);
|
const confirmLoading = ref<boolean>(false);
|
||||||
//表单验证
|
//表单验证
|
||||||
const validatorRules = {
|
const validatorRules = {
|
||||||
title: [{ required: true, message: '请输入作业名称!'},],
|
title: [{ required: true, message: '请输入作业名称!' }],
|
||||||
// zyType: [{ required: true, message: '请输入类型!'},],
|
// zyType: [{ required: true, message: '请输入类型!'},],
|
||||||
startTime: [{ required: true, message: '请输入开始时间!'},],
|
startTime: [{ required: true, message: '请输入开始时间!' }],
|
||||||
endTime: [{ required: true, message: '请输入结束时间!'},],
|
endTime: [{ required: true, message: '请输入结束时间!' }],
|
||||||
wwcc: [{ required: true, message: '请输入外网是否查重!'},],
|
wwcc: [{ required: true, message: '请输入外网是否查重!' }],
|
||||||
wwtgl: [{ required: false}, { pattern: /^-?\d+\.?\d*$/, message: '请输入数字!'},],
|
wwtgl: [{ required: false }, { pattern: /^-?\d+\.?\d*$/, message: '请输入数字!' }],
|
||||||
nwcc: [{ required: true, message: '请输入内网查重!'},],
|
nwcc: [{ required: true, message: '请输入内网查重!' }],
|
||||||
nwtgl: [{ required: false}, { pattern: /^-?\d+\.?\d*$/, message: '请输入数字!'},],
|
nwtgl: [{ required: false }, { pattern: /^-?\d+\.?\d*$/, message: '请输入数字!' }],
|
||||||
aigccc: [{ required: true, message: '请输入aigc查重!'},],
|
aigccc: [{ required: true, message: '请输入aigc查重!' }],
|
||||||
aigctgl: [{ required: false}, { pattern: /^-?\d+\.?\d*$/, message: '请输入数字!'},],
|
aigctgl: [{ required: false }, { pattern: /^-?\d+\.?\d*$/, message: '请输入数字!' }],
|
||||||
xncc: [{ required: true, message: '请输入aigc查重!'},],
|
xncc: [{ required: true, message: '请输入aigc查重!' }],
|
||||||
xntgl: [{ required: false}, { pattern: /^-?\d+\.?\d*$/, message: '请输入数字!'},],
|
xntgl: [{ required: false }, { pattern: /^-?\d+\.?\d*$/, message: '请输入数字!' }],
|
||||||
};
|
};
|
||||||
const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false });
|
const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false });
|
||||||
const disabledDate = (current: Dayjs) => {
|
const disabledDate = (current: Dayjs) => {
|
||||||
return current && current < dayjs().subtract(1,'days').endOf('day');
|
return current && current < dayjs().subtract(1, 'days').endOf('day');
|
||||||
};
|
};
|
||||||
// 表单禁用
|
// 表单禁用
|
||||||
const disabled = computed(()=>{
|
const disabled = computed(() => {
|
||||||
if(props.formBpm === true){
|
if (props.formBpm === true) {
|
||||||
if(props.formData.disabled === false){
|
if (props.formData.disabled === false) {
|
||||||
return false;
|
return false;
|
||||||
}else{
|
} else {
|
||||||
return true;
|
return true;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return props.formDisabled;
|
}
|
||||||
});
|
return props.formDisabled;
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
const columnsKhnr = [
|
const columnsKhnr = [
|
||||||
{
|
{
|
||||||
title: '序号',
|
title: '序号',
|
||||||
|
@ -240,7 +232,7 @@ const columnsKhnr = [
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
function downLoad(file) {
|
function downLoad(file) {
|
||||||
if (file) {
|
if (file) {
|
||||||
let url = getFileAccessHttpUrl(file);
|
let url = getFileAccessHttpUrl(file);
|
||||||
if (url) {
|
if (url) {
|
||||||
|
@ -251,147 +243,153 @@ const columnsKhnr = [
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增
|
||||||
|
*/
|
||||||
|
function add() {
|
||||||
|
edit({ rwbh });
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增
|
* 编辑
|
||||||
*/
|
*/
|
||||||
function add() {
|
function edit(record) {
|
||||||
edit({rwbh});
|
nextTick(() => {
|
||||||
|
resetFields();
|
||||||
|
//赋值
|
||||||
|
Object.assign(formData, record);
|
||||||
|
handleKcnr(formData.kcnr);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function lastString(record) {
|
||||||
|
console.log('😓', record);
|
||||||
|
const parts = record.split('/');
|
||||||
|
console.log('🧔', parts);
|
||||||
|
return parts[parts.length - 1];
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 提交数据
|
||||||
|
*/
|
||||||
|
async function submitForm() {
|
||||||
|
// 触发表单验证
|
||||||
|
await validate();
|
||||||
|
confirmLoading.value = true;
|
||||||
|
const isUpdate = ref<boolean>(false);
|
||||||
|
//时间格式化
|
||||||
|
let model = formData;
|
||||||
|
if (model.id) {
|
||||||
|
isUpdate.value = true;
|
||||||
|
}
|
||||||
|
//循环数据
|
||||||
|
for (let data in model) {
|
||||||
|
//如果该数据是数组并且是字符串类型
|
||||||
|
if (model[data] instanceof Array) {
|
||||||
|
let valueType = getValueType(formRef.value.getProps, data);
|
||||||
|
//如果是字符串类型的需要变成以逗号分割的字符串
|
||||||
|
if (valueType === 'string') {
|
||||||
|
model[data] = model[data].join(',');
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
if (model.wwcc == '1') {
|
||||||
* 编辑
|
if (!model.wwtgl) {
|
||||||
*/
|
createMessage.warning('网络通过率不能为空');
|
||||||
function edit(record) {
|
confirmLoading.value = false;
|
||||||
nextTick(() => {
|
return;
|
||||||
resetFields();
|
}
|
||||||
//赋值
|
}
|
||||||
Object.assign(formData, record);
|
if (model.nwcc == '1') {
|
||||||
handleKcnr(formData.kcnr);
|
if (!model.nwtgl) {
|
||||||
|
createMessage.warning('内网通过率不能为空');
|
||||||
|
confirmLoading.value = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (model.aigccc == '1') {
|
||||||
|
if (!model.aigctgl) {
|
||||||
|
createMessage.warning('AIGC通过率不能为空');
|
||||||
|
confirmLoading.value = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (model.xncc == '1') {
|
||||||
|
if (!model.xntgl) {
|
||||||
|
createMessage.warning('校内通过率不能为空');
|
||||||
|
confirmLoading.value = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
await saveOrUpdate(model, isUpdate.value)
|
||||||
|
.then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
createMessage.success(res.message);
|
||||||
|
emit('ok');
|
||||||
|
} else {
|
||||||
|
createMessage.warning(res.message);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
confirmLoading.value = false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 提交数据
|
|
||||||
*/
|
|
||||||
async function submitForm() {
|
|
||||||
// 触发表单验证
|
|
||||||
await validate();
|
|
||||||
confirmLoading.value = true;
|
|
||||||
const isUpdate = ref<boolean>(false);
|
|
||||||
//时间格式化
|
|
||||||
let model = formData;
|
|
||||||
if (model.id) {
|
|
||||||
isUpdate.value = true;
|
|
||||||
}
|
|
||||||
//循环数据
|
|
||||||
for (let data in model) {
|
|
||||||
//如果该数据是数组并且是字符串类型
|
|
||||||
if (model[data] instanceof Array) {
|
|
||||||
let valueType = getValueType(formRef.value.getProps, data);
|
|
||||||
//如果是字符串类型的需要变成以逗号分割的字符串
|
|
||||||
if (valueType === 'string') {
|
|
||||||
model[data] = model[data].join(',');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(model.wwcc=='1'){
|
|
||||||
if(!model.wwtgl){
|
|
||||||
createMessage.warning('网络通过率不能为空');
|
|
||||||
confirmLoading.value = false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(model.nwcc=='1'){
|
|
||||||
if(!model.nwtgl){
|
|
||||||
createMessage.warning('内网通过率不能为空');
|
|
||||||
confirmLoading.value = false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(model.aigccc=='1'){
|
|
||||||
if(!model.aigctgl){
|
|
||||||
createMessage.warning('AIGC通过率不能为空');
|
|
||||||
confirmLoading.value = false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(model.xncc=='1'){
|
|
||||||
if(!model.xntgl){
|
|
||||||
createMessage.warning('校内通过率不能为空');
|
|
||||||
confirmLoading.value = false;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
await saveOrUpdate(model, isUpdate.value)
|
|
||||||
.then((res) => {
|
|
||||||
if (res.success) {
|
|
||||||
createMessage.success(res.message);
|
|
||||||
emit('ok');
|
|
||||||
} else {
|
|
||||||
createMessage.warning(res.message);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.finally(() => {
|
|
||||||
confirmLoading.value = false;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
//选择考察内容
|
//选择考察内容
|
||||||
function handleKcnr(kcnr) {
|
function handleKcnr(kcnr) {
|
||||||
if(kcnr){
|
if (kcnr) {
|
||||||
defHttp.get({ url: '/teachingunitcontent/kcTeachingUnitContentOne/getAllList', params: { id: kcnr } }).then((res) => {
|
defHttp.get({ url: '/teachingunitcontent/kcTeachingUnitContentOne/getAllList', params: { id: kcnr } }).then((res) => {
|
||||||
console.log('🤦♀️', res);
|
console.log('🤦♀️', res);
|
||||||
dataKhnr.value = res;
|
dataKhnr.value = res;
|
||||||
});
|
});
|
||||||
}else{
|
} else {
|
||||||
dataKhnr.value = [];
|
dataKhnr.value = [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
defineExpose({
|
defineExpose({
|
||||||
add,
|
add,
|
||||||
edit,
|
edit,
|
||||||
submitForm,
|
submitForm,
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
.antd-modal-form {
|
.antd-modal-form {
|
||||||
min-height: 300px !important;
|
min-height: 300px !important;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
padding: 24px 24px 24px 24px;
|
padding: 24px 24px 24px 24px;
|
||||||
}
|
}
|
||||||
.spanSm{
|
.spanSm {
|
||||||
top: -22px;
|
top: -22px;
|
||||||
position: inherit;
|
position: inherit;
|
||||||
padding: 0 0 0 164px;
|
padding: 0 0 0 164px;
|
||||||
color: #a9a9a9;
|
color: #a9a9a9;
|
||||||
}
|
}
|
||||||
.spana{
|
.spana {
|
||||||
margin-left: 30px;
|
margin-left: 30px;
|
||||||
line-height: 30px;
|
line-height: 30px;
|
||||||
}
|
}
|
||||||
.spanb{
|
.spanb {
|
||||||
margin-left: 30px;
|
margin-left: 30px;
|
||||||
line-height: 30px;
|
line-height: 30px;
|
||||||
}
|
}
|
||||||
.spanb-word{
|
.spanb-word {
|
||||||
color: #999999;
|
color: #999999;
|
||||||
}
|
}
|
||||||
.wrapper-back{
|
.wrapper-back {
|
||||||
background: #f7f7f7;
|
background: #f7f7f7;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
margin-top:10px;
|
margin-top: 10px;
|
||||||
padding-top: 15px;
|
padding-top: 15px;
|
||||||
}
|
width: 100%;
|
||||||
.wrapper-title{
|
}
|
||||||
|
.wrapper-title {
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
border-left:4px solid #1ab394 ;
|
border-left: 4px solid #1ab394;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
padding-left: 20PX;
|
padding-left: 20px;
|
||||||
margin-bottom:20px;
|
margin-bottom: 20px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -0,0 +1,336 @@
|
||||||
|
<template>
|
||||||
|
<a-spin :spinning="confirmLoading">
|
||||||
|
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
|
<a-row>
|
||||||
|
<a-col :span="24">
|
||||||
|
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
|
<a-row>
|
||||||
|
<div class="wrapper-back">
|
||||||
|
<div class="wrapper-title">评分标准</div>
|
||||||
|
<a-col :span="24" v-show="formData.sturead == '1' && formData.pfbz">
|
||||||
|
<a-form-item label="评分标准" layout="inline">
|
||||||
|
<div class="spanb-word" v-html="formData.pfbz"></div>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
</div>
|
||||||
|
</a-row>
|
||||||
|
</a-form>
|
||||||
|
</a-col>
|
||||||
|
<!-- <a-col :span="24">
|
||||||
|
<span class="spana">作业分值:{{formData.score?formData.score:'未填写'}}</span>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="24">
|
||||||
|
<span class="spana">描述:
|
||||||
|
<span v-if="formData.content">
|
||||||
|
{{formData.content}}
|
||||||
|
</span>
|
||||||
|
<span v-else>暂无内容</span>
|
||||||
|
</span>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
|
<span class="spana">附件:
|
||||||
|
<span v-if="formData.filePath">
|
||||||
|
<a-button :ghost="true" type="primary" preIcon="ant-design:download" size="small" @click="downloadFile(formData.filePath)"> 下载 </a-button>
|
||||||
|
</span>
|
||||||
|
<span v-else>暂无内容</span>
|
||||||
|
</span>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
|
<span class="spana">上传时间:{{formData.startTime}} ~ {{formData.endTime}}</span>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
|
<span class="spana">是否网络查重:{{formData.wwcc=='0'?'否':'是'}}</span> <span class="spanb">网络通过率:{{formData.wwtgl?formData.wwtgl+"%":'未配置'}}</span>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
|
<span class="spana">是否课程内查重:{{formData.nwcc=='0'?'否':'是'}}</span> <span class="spanb">网络通过率:{{formData.nwtgl?formData.nwtgl+"%":'未配置'}}</span>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
|
<span class="spana">Aigc是否查重:{{formData.aigccc=='0'?'否':'是'}}</span> <span class="spanb">网络通过率:{{formData.aigctgl?formData.aigctgl+"%":'未配置'}}</span>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="12">
|
||||||
|
<span class="spana">是否校内查重:{{formData.xncc=='0'?'否':'是'}}</span> <span class="spanb">网络通过率:{{formData.xntgl?formData.xntgl+"%":'未配置'}}</span>
|
||||||
|
</a-col> -->
|
||||||
|
</a-row>
|
||||||
|
</a-form>
|
||||||
|
</a-spin>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { ref, reactive, defineExpose, nextTick, defineProps, computed, onMounted, unref } from 'vue';
|
||||||
|
import { defHttp } from '/@/utils/http/axios';
|
||||||
|
import { useMessage } from '/@/hooks/web/useMessage';
|
||||||
|
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||||
|
import { getValueType } from '/@/utils';
|
||||||
|
import { saveOrUpdate } from '../ZyInfo.api';
|
||||||
|
import { Form } from 'ant-design-vue';
|
||||||
|
import { useRouter } from 'vue-router';
|
||||||
|
import dayjs, { Dayjs } from 'dayjs';
|
||||||
|
import JUpload from '/@/components/Form/src/jeecg/components/JUpload/JUpload.vue';
|
||||||
|
import { getFileAccessHttpUrl } from '/@/utils/common/compUtils';
|
||||||
|
|
||||||
|
import { downloadFile } from '/@/utils/common/renderUtils';
|
||||||
|
//当前路由信息
|
||||||
|
const { currentRoute } = useRouter();
|
||||||
|
const { query } = unref(currentRoute);
|
||||||
|
const { rwbh } = query; //获取传递参数
|
||||||
|
const props = defineProps({
|
||||||
|
formDisabled: { type: Boolean, default: false },
|
||||||
|
formData: { type: Object, default: () => {} },
|
||||||
|
formBpm: { type: Boolean, default: true },
|
||||||
|
});
|
||||||
|
const formRef = ref();
|
||||||
|
const useForm = Form.useForm;
|
||||||
|
const emit = defineEmits(['register', 'ok']);
|
||||||
|
const dataKhnr = ref<any>([]);
|
||||||
|
const formData = reactive<Record<string, any>>({
|
||||||
|
id: '',
|
||||||
|
title: '',
|
||||||
|
zyType: '0',
|
||||||
|
content: '',
|
||||||
|
filePath: '',
|
||||||
|
startTime: '',
|
||||||
|
endTime: '',
|
||||||
|
wwcc: '0',
|
||||||
|
wwtgl: undefined,
|
||||||
|
nwcc: '0',
|
||||||
|
nwtgl: undefined,
|
||||||
|
aigccc: '0',
|
||||||
|
aigctgl: undefined,
|
||||||
|
rwbh: '',
|
||||||
|
xncc: '0',
|
||||||
|
xntgl: undefined,
|
||||||
|
});
|
||||||
|
const { createMessage } = useMessage();
|
||||||
|
const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 5 } });
|
||||||
|
const wrapperCol = ref<any>({ xs: { span: 24 }, sm: { span: 16 } });
|
||||||
|
// const labelCol2 = ref<any>({ xs: { span: 24 }, sm: { span: 3 } });
|
||||||
|
// const wrapperCol2 = ref<any>({ xs: { span: 24 }, sm: { span: 20 } });
|
||||||
|
|
||||||
|
const labelCol2 = reactive({
|
||||||
|
sm: { span: 10 },
|
||||||
|
});
|
||||||
|
const wrapperCol2 = reactive({
|
||||||
|
sm: { span: 10 },
|
||||||
|
});
|
||||||
|
const labelCol3 = reactive({
|
||||||
|
sm: { span: 4 },
|
||||||
|
});
|
||||||
|
const wrapperCol3 = reactive({
|
||||||
|
sm: { span: 20 },
|
||||||
|
});
|
||||||
|
|
||||||
|
const confirmLoading = ref<boolean>(false);
|
||||||
|
//表单验证
|
||||||
|
const validatorRules = {
|
||||||
|
title: [{ required: true, message: '请输入作业名称!' }],
|
||||||
|
// zyType: [{ required: true, message: '请输入类型!'},],
|
||||||
|
startTime: [{ required: true, message: '请输入开始时间!' }],
|
||||||
|
endTime: [{ required: true, message: '请输入结束时间!' }],
|
||||||
|
wwcc: [{ required: true, message: '请输入外网是否查重!' }],
|
||||||
|
wwtgl: [{ required: false }, { pattern: /^-?\d+\.?\d*$/, message: '请输入数字!' }],
|
||||||
|
nwcc: [{ required: true, message: '请输入内网查重!' }],
|
||||||
|
nwtgl: [{ required: false }, { pattern: /^-?\d+\.?\d*$/, message: '请输入数字!' }],
|
||||||
|
aigccc: [{ required: true, message: '请输入aigc查重!' }],
|
||||||
|
aigctgl: [{ required: false }, { pattern: /^-?\d+\.?\d*$/, message: '请输入数字!' }],
|
||||||
|
xncc: [{ required: true, message: '请输入aigc查重!' }],
|
||||||
|
xntgl: [{ required: false }, { pattern: /^-?\d+\.?\d*$/, message: '请输入数字!' }],
|
||||||
|
};
|
||||||
|
const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false });
|
||||||
|
const disabledDate = (current: Dayjs) => {
|
||||||
|
return current && current < dayjs().subtract(1, 'days').endOf('day');
|
||||||
|
};
|
||||||
|
// 表单禁用
|
||||||
|
const disabled = computed(() => {
|
||||||
|
if (props.formBpm === true) {
|
||||||
|
if (props.formData.disabled === false) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return props.formDisabled;
|
||||||
|
});
|
||||||
|
|
||||||
|
const columnsKhnr = [
|
||||||
|
{
|
||||||
|
title: '序号',
|
||||||
|
dataIndex: 'no',
|
||||||
|
key: 'no',
|
||||||
|
customRender: (text) => {
|
||||||
|
return text.index + 1;
|
||||||
|
},
|
||||||
|
width: 80,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '章次',
|
||||||
|
dataIndex: 'title',
|
||||||
|
key: 'title',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '节次',
|
||||||
|
dataIndex: 'twoTitle',
|
||||||
|
key: 'twoTitle',
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
function downLoad(file) {
|
||||||
|
if (file) {
|
||||||
|
let url = getFileAccessHttpUrl(file);
|
||||||
|
if (url) {
|
||||||
|
window.open(url);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
createMessage.warning('暂无文件或文件上传中');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增
|
||||||
|
*/
|
||||||
|
function add() {
|
||||||
|
edit({ rwbh });
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编辑
|
||||||
|
*/
|
||||||
|
function edit(record) {
|
||||||
|
nextTick(() => {
|
||||||
|
resetFields();
|
||||||
|
//赋值
|
||||||
|
Object.assign(formData, record);
|
||||||
|
handleKcnr(formData.kcnr);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function lastString(record) {
|
||||||
|
console.log('😓', record);
|
||||||
|
const parts = record.split('/');
|
||||||
|
console.log('🧔', parts);
|
||||||
|
return parts[parts.length - 1];
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 提交数据
|
||||||
|
*/
|
||||||
|
async function submitForm() {
|
||||||
|
// 触发表单验证
|
||||||
|
await validate();
|
||||||
|
confirmLoading.value = true;
|
||||||
|
const isUpdate = ref<boolean>(false);
|
||||||
|
//时间格式化
|
||||||
|
let model = formData;
|
||||||
|
if (model.id) {
|
||||||
|
isUpdate.value = true;
|
||||||
|
}
|
||||||
|
//循环数据
|
||||||
|
for (let data in model) {
|
||||||
|
//如果该数据是数组并且是字符串类型
|
||||||
|
if (model[data] instanceof Array) {
|
||||||
|
let valueType = getValueType(formRef.value.getProps, data);
|
||||||
|
//如果是字符串类型的需要变成以逗号分割的字符串
|
||||||
|
if (valueType === 'string') {
|
||||||
|
model[data] = model[data].join(',');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (model.wwcc == '1') {
|
||||||
|
if (!model.wwtgl) {
|
||||||
|
createMessage.warning('网络通过率不能为空');
|
||||||
|
confirmLoading.value = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (model.nwcc == '1') {
|
||||||
|
if (!model.nwtgl) {
|
||||||
|
createMessage.warning('内网通过率不能为空');
|
||||||
|
confirmLoading.value = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (model.aigccc == '1') {
|
||||||
|
if (!model.aigctgl) {
|
||||||
|
createMessage.warning('AIGC通过率不能为空');
|
||||||
|
confirmLoading.value = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (model.xncc == '1') {
|
||||||
|
if (!model.xntgl) {
|
||||||
|
createMessage.warning('校内通过率不能为空');
|
||||||
|
confirmLoading.value = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
await saveOrUpdate(model, isUpdate.value)
|
||||||
|
.then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
createMessage.success(res.message);
|
||||||
|
emit('ok');
|
||||||
|
} else {
|
||||||
|
createMessage.warning(res.message);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.finally(() => {
|
||||||
|
confirmLoading.value = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//选择考察内容
|
||||||
|
function handleKcnr(kcnr) {
|
||||||
|
if (kcnr) {
|
||||||
|
defHttp.get({ url: '/teachingunitcontent/kcTeachingUnitContentOne/getAllList', params: { id: kcnr } }).then((res) => {
|
||||||
|
console.log('🤦♀️', res);
|
||||||
|
dataKhnr.value = res;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
dataKhnr.value = [];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
defineExpose({
|
||||||
|
add,
|
||||||
|
edit,
|
||||||
|
submitForm,
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
.antd-modal-form {
|
||||||
|
min-height: 300px !important;
|
||||||
|
overflow-y: auto;
|
||||||
|
padding: 24px 24px 24px 24px;
|
||||||
|
}
|
||||||
|
.spanSm {
|
||||||
|
top: -22px;
|
||||||
|
position: inherit;
|
||||||
|
padding: 0 0 0 164px;
|
||||||
|
color: #a9a9a9;
|
||||||
|
}
|
||||||
|
.spana {
|
||||||
|
margin-left: 30px;
|
||||||
|
line-height: 30px;
|
||||||
|
}
|
||||||
|
.spanb {
|
||||||
|
margin-left: 30px;
|
||||||
|
line-height: 30px;
|
||||||
|
}
|
||||||
|
.spanb-word {
|
||||||
|
color: #999999;
|
||||||
|
}
|
||||||
|
.wrapper-back {
|
||||||
|
background: #f7f7f7;
|
||||||
|
border-radius: 10px;
|
||||||
|
margin-top: 10px;
|
||||||
|
padding-top: 15px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.wrapper-title {
|
||||||
|
font-size: 18px;
|
||||||
|
border-left: 4px solid #1ab394;
|
||||||
|
font-weight: bold;
|
||||||
|
padding-left: 20px;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -0,0 +1,75 @@
|
||||||
|
<template>
|
||||||
|
<a-modal :title="title" :width="width" :visible="visible" @ok="handleOk" :okButtonProps="{ class: { 'jee-hidden': disableSubmit } }" @cancel="handleCancel" cancelText="关闭">
|
||||||
|
<ZyInfoForm ref="registerForm" @ok="submitCallback" :formDisabled="disableSubmit" :formBpm="false"></ZyInfoForm>
|
||||||
|
</a-modal>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { ref, nextTick, defineExpose } from 'vue';
|
||||||
|
import ZyInfoForm from './ZyInfoPfbzForm.vue'
|
||||||
|
|
||||||
|
const title = ref<string>('');
|
||||||
|
const width = ref<number>(1000);
|
||||||
|
const visible = ref<boolean>(false);
|
||||||
|
const disableSubmit = ref<boolean>(false);
|
||||||
|
const registerForm = ref();
|
||||||
|
const emit = defineEmits(['register', 'success']);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增
|
||||||
|
*/
|
||||||
|
function add() {
|
||||||
|
title.value = '新增';
|
||||||
|
visible.value = true;
|
||||||
|
nextTick(() => {
|
||||||
|
registerForm.value.add();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编辑
|
||||||
|
* @param record
|
||||||
|
*/
|
||||||
|
function edit(record) {
|
||||||
|
title.value = disableSubmit.value ? '详情' : '编辑';
|
||||||
|
visible.value = true;
|
||||||
|
nextTick(() => {
|
||||||
|
registerForm.value.edit(record);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 确定按钮点击事件
|
||||||
|
*/
|
||||||
|
function handleOk() {
|
||||||
|
registerForm.value.submitForm();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* form保存回调事件
|
||||||
|
*/
|
||||||
|
function submitCallback() {
|
||||||
|
handleCancel();
|
||||||
|
emit('success');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取消按钮回调事件
|
||||||
|
*/
|
||||||
|
function handleCancel() {
|
||||||
|
visible.value = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
defineExpose({
|
||||||
|
add,
|
||||||
|
edit,
|
||||||
|
disableSubmit,
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
/**隐藏样式-modal确定按钮 */
|
||||||
|
.jee-hidden {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -87,7 +87,7 @@ export const newcolumns: BasicColumn[] = [
|
||||||
sorter: true,
|
sorter: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '学生评分',
|
title: '互评分数',
|
||||||
align: "center",
|
align: "center",
|
||||||
dataIndex: 'xshpfs',
|
dataIndex: 'xshpfs',
|
||||||
sorter: true,
|
sorter: true,
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<div class="jeecg-basic-table-form-con tainer">
|
<div class="jeecg-basic-table-form-con tainer">
|
||||||
<a-form @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol">
|
<a-form @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||||||
<a-row :gutter="24">
|
<a-row :gutter="24">
|
||||||
<a-col :lg="8" :sm="24">
|
<!-- <a-col :lg="8" :sm="24">
|
||||||
<a-form-item label="作业名称">
|
<a-form-item label="作业名称">
|
||||||
<a-input placeholder="请输入作业名称" v-model:value="queryParam.zytitle"></a-input>
|
<a-input placeholder="请输入作业名称" v-model:value="queryParam.zytitle"></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
@ -14,11 +14,12 @@
|
||||||
<a-form-item label="学生姓名">
|
<a-form-item label="学生姓名">
|
||||||
<j-input placeholder="请输入学生姓名" v-model:value="queryParam.studentName"></j-input>
|
<j-input placeholder="请输入学生姓名" v-model:value="queryParam.studentName"></j-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col> -->
|
||||||
<a-col :xl="6" :lg="8" :md="8" :sm="24">
|
<a-col :span="24" style="text-align: right;">
|
||||||
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
|
<span style="overflow: hidden" class="table-page-search-submitButtons">
|
||||||
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>
|
<!-- <a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button> -->
|
||||||
<a-button type="primary" @click="handleZyxxDetail" style="margin-left: 8px;;">作业信息</a-button>
|
<a-button type="primary" @click="handleZyxxDetail" style="margin-right: 8px;;">作业信息</a-button>
|
||||||
|
<a-button type="primary" @click="handlePfbz" style="margin-right: 8px;;" v-if="zyInfo.sturead == '1' && zyInfo.pfbz">评分标准</a-button>
|
||||||
</span>
|
</span>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
|
@ -53,12 +54,13 @@
|
||||||
<!-- 表单区域 -->
|
<!-- 表单区域 -->
|
||||||
<ZyInfoStudentHpModal ref="registerModal" @success="handleSuccess"></ZyInfoStudentHpModal>
|
<ZyInfoStudentHpModal ref="registerModal" @success="handleSuccess"></ZyInfoStudentHpModal>
|
||||||
<ZyInfoDetailModal ref="registerZyxxModal" @success="handleSuccess"></ZyInfoDetailModal>
|
<ZyInfoDetailModal ref="registerZyxxModal" @success="handleSuccess"></ZyInfoDetailModal>
|
||||||
|
<ZyInfoPfbzModal ref="registerPfbzModal" @success="handleSuccess"></ZyInfoPfbzModal>
|
||||||
<ZyInfoStudentHpOneModal ref="registerOneModal" @success="handleSuccess"></ZyInfoStudentHpOneModal>
|
<ZyInfoStudentHpOneModal ref="registerOneModal" @success="handleSuccess"></ZyInfoStudentHpOneModal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" name="zyInfoStudentHp-zyInfoStudentHp" setup>
|
<script lang="ts" name="zyInfoStudentHp-zyInfoStudentHp" setup>
|
||||||
import { ref, reactive, unref,defineExpose } from 'vue';
|
import { ref, reactive, unref,defineExpose,onMounted } from 'vue';
|
||||||
import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
||||||
import { useListPage } from '/@/hooks/system/useListPage';
|
import { useListPage } from '/@/hooks/system/useListPage';
|
||||||
import { columns, columnsZyhp } from './ZyInfoStudentHp.data';
|
import { columns, columnsZyhp } from './ZyInfoStudentHp.data';
|
||||||
|
@ -66,6 +68,7 @@ import { list, deleteOne, batchDelete, getImportUrl, getExportUrl, getHpxxList }
|
||||||
import { downloadFile } from '/@/utils/common/renderUtils';
|
import { downloadFile } from '/@/utils/common/renderUtils';
|
||||||
import ZyInfoStudentHpModal from './components/ZyInfoStudentHpModal.vue';
|
import ZyInfoStudentHpModal from './components/ZyInfoStudentHpModal.vue';
|
||||||
import ZyInfoDetailModal from '/@/views/zy/zyInfo/components/ZyInfoDetailModal.vue';
|
import ZyInfoDetailModal from '/@/views/zy/zyInfo/components/ZyInfoDetailModal.vue';
|
||||||
|
import ZyInfoPfbzModal from '/@/views/zy/zyInfo/components/ZyInfoPfbzModal.vue';
|
||||||
import ZyInfoStudentHpOneModal from '/@/views/zy/zyInfoStudentHp/components/ZyInfoStudentHpOneModal.vue';
|
import ZyInfoStudentHpOneModal from '/@/views/zy/zyInfoStudentHp/components/ZyInfoStudentHpOneModal.vue';
|
||||||
import { defHttp } from '/@/utils/http/axios';
|
import { defHttp } from '/@/utils/http/axios';
|
||||||
import { JInput } from '/@/components/Form';
|
import { JInput } from '/@/components/Form';
|
||||||
|
@ -87,6 +90,8 @@ const toggleSearchStatus = ref<boolean>(false);
|
||||||
const registerModal = ref();
|
const registerModal = ref();
|
||||||
const registerZyxxModal = ref();
|
const registerZyxxModal = ref();
|
||||||
const registerOneModal = ref();
|
const registerOneModal = ref();
|
||||||
|
const registerPfbzModal = ref();
|
||||||
|
const zyInfo = ref<any>({});
|
||||||
//注册table数据
|
//注册table数据
|
||||||
const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
|
const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
|
||||||
tableProps: {
|
tableProps: {
|
||||||
|
@ -142,6 +147,15 @@ function handleAdd() {
|
||||||
registerModal.value.add();
|
registerModal.value.add();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function handlePfbz(){
|
||||||
|
// defHttp.get({ url: '/zyInfo/zyInfo/queryById', params: { id: mainId } }).then((res) => {
|
||||||
|
// console.log('😒', res);
|
||||||
|
// registerPfbzModal.value.disableSubmit = true;
|
||||||
|
// registerPfbzModal.value.edit(res);
|
||||||
|
// });
|
||||||
|
registerPfbzModal.value.disableSubmit = true;
|
||||||
|
registerPfbzModal.value.edit(zyInfo.value);
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 编辑事件
|
* 编辑事件
|
||||||
*/
|
*/
|
||||||
|
@ -186,11 +200,13 @@ function handleSuccess() {
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleZyxxDetail(record: Recordable) {
|
function handleZyxxDetail(record: Recordable) {
|
||||||
defHttp.get({ url: '/zyInfo/zyInfo/queryById', params: { id: mainId } }).then((res) => {
|
// defHttp.get({ url: '/zyInfo/zyInfo/queryById', params: { id: mainId } }).then((res) => {
|
||||||
console.log('😒', res);
|
// console.log('😒', res);
|
||||||
|
// registerZyxxModal.value.disableSubmit = true;
|
||||||
|
// registerZyxxModal.value.edit(res);
|
||||||
|
// });
|
||||||
registerZyxxModal.value.disableSubmit = true;
|
registerZyxxModal.value.disableSubmit = true;
|
||||||
registerZyxxModal.value.edit(res);
|
registerZyxxModal.value.edit(zyInfo.value);
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -238,6 +254,18 @@ function getDropDownAction(record) {
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getZyinfo(){
|
||||||
|
|
||||||
|
defHttp.get({ url: '/zyInfo/zyInfo/queryById', params: { id: mainId } }).then((res) => {
|
||||||
|
zyInfo.value = res;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
getZyinfo();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询
|
* 查询
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div style="width:100%;text-align: right;"><a-button type="primary" @click="handleZyxxDetail" style="margin-left: 8px;;">作业信息</a-button></div>
|
<div style="width:100%;text-align: right;"><a-button type="primary" @click="handleZyxxDetail" style="margin-right: 8px;;">作业信息</a-button></div>
|
||||||
<!--引用表格-->
|
<!--引用表格-->
|
||||||
<BasicTable @register="registerTable">
|
<BasicTable @register="registerTable">
|
||||||
<!--操作栏-->
|
<!--操作栏-->
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<!--查询区域-->
|
<!--查询区域-->
|
||||||
<div class="jeecg-basic-table-form-container">
|
<!-- <div class="jeecg-basic-table-form-container"> -->
|
||||||
|
<div class="jeecg-basic-table-form-container">
|
||||||
<a-form @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol">
|
<a-form @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||||||
<a-row :gutter="24">
|
<a-row :gutter="24">
|
||||||
<a-col :lg="8" :sm="24">
|
<!-- <a-col :lg="8" :sm="24">
|
||||||
<a-form-item label="作业名称">
|
<a-form-item label="作业名称">
|
||||||
<a-input placeholder="请输入作业名称" v-model:value="queryParam.zytitle"></a-input>
|
<a-input placeholder="请输入作业名称" v-model:value="queryParam.zytitle"></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
@ -19,6 +20,12 @@
|
||||||
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>
|
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>
|
||||||
<a-button type="primary" @click="handleZyxxDetail" style="margin-left: 8px;;">作业信息</a-button>
|
<a-button type="primary" @click="handleZyxxDetail" style="margin-left: 8px;;">作业信息</a-button>
|
||||||
</span>
|
</span>
|
||||||
|
</a-col> -->
|
||||||
|
<a-col :span="24" style="text-align: right">
|
||||||
|
<span style="overflow: hidden" class="table-page-search-submitButtons">
|
||||||
|
<!-- <a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button> -->
|
||||||
|
<a-button type="primary" @click="handleZyxxDetail" style="margin-right: 8px;;">作业信息</a-button>
|
||||||
|
</span>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
</a-form>
|
</a-form>
|
||||||
|
|
|
@ -2,8 +2,7 @@
|
||||||
<div style="background: #fff; margin: 10px 0;padding:10px;">
|
<div style="background: #fff; margin: 10px 0;padding:10px;">
|
||||||
<div style="width:100%;">
|
<div style="width:100%;">
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="12" style="text-align: left;"><span style="color:#18a689; cursor: pointer;" @click="handleHpsf">预览互评算法</span></a-col>
|
<a-col :span="24" style="text-align: right;"><a-button type="primary" @click="handleback">返回</a-button></a-col>
|
||||||
<a-col :span="12" style="text-align: right;"><a-button type="primary" @click="handleback">返回</a-button></a-col>
|
|
||||||
</a-row>
|
</a-row>
|
||||||
</div>
|
</div>
|
||||||
<a-tabs v-model:activeKey="activeKey" @change="handleChange">
|
<a-tabs v-model:activeKey="activeKey" @change="handleChange">
|
||||||
|
@ -51,13 +50,6 @@ function handleChange(record) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//预览互评算法
|
|
||||||
function handleHpsf(){
|
|
||||||
// openByUrl({url:'/downPath/ylhpsf.pdf',target: '_blank',fileName:'算法说明.pdf'})
|
|
||||||
// window.open(pdfUrl.value, '_blank');
|
|
||||||
// window.open(require('../../../downPath/ylhpsf.pdf'), '_blank');
|
|
||||||
window.open(baseApiUrl+'/temp/ylhpsf.pdf');
|
|
||||||
}
|
|
||||||
function handleback(){
|
function handleback(){
|
||||||
var href = "/stuzy/studentDqzy";
|
var href = "/stuzy/studentDqzy";
|
||||||
router.push({path:href,query: {rwbh,xqxn,type,teano}});
|
router.push({path:href,query: {rwbh,xqxn,type,teano}});
|
||||||
|
|
|
@ -2,14 +2,13 @@
|
||||||
<a-spin :spinning="confirmLoading">
|
<a-spin :spinning="confirmLoading">
|
||||||
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
<a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="24" v-show="formData.sturead == '1' && formData.pfbz">
|
<!-- <a-col :span="24" v-show="formData.sturead == '1' && formData.pfbz">
|
||||||
<a-form-item label="评分标准" layout="inline">
|
<a-form-item label="评分标准" layout="inline">
|
||||||
<div v-html="formData.pfbz" style="margin-top: 5px"></div>
|
<div v-html="formData.pfbz" style="margin-top: 5px"></div>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col> -->
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-form-item label="评分" v-bind="validateInfos.stuScore">
|
<a-form-item label="评分" v-bind="validateInfos.stuScore">
|
||||||
<div style="width: 100%; padding: 5px 10px; font-size: 14px; color: darkgrey">说明:评分范围0-100之间;</div>
|
|
||||||
<a-input-number
|
<a-input-number
|
||||||
v-model:value="formData.stuScore"
|
v-model:value="formData.stuScore"
|
||||||
placeholder="请输入评分"
|
placeholder="请输入评分"
|
||||||
|
@ -18,6 +17,7 @@
|
||||||
:disabled="disabled"
|
:disabled="disabled"
|
||||||
@change="handleScoreChange"
|
@change="handleScoreChange"
|
||||||
></a-input-number>
|
></a-input-number>
|
||||||
|
<div style="width: 100%; padding: 5px 10px; font-size: 14px; color: darkgrey">说明:评分范围0-100之间;</div>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
|
|
Loading…
Reference in New Issue