修改bug

This commit is contained in:
yangjun 2024-06-18 19:48:24 +08:00
parent 586136a30e
commit 74b180333f
16 changed files with 287 additions and 72 deletions

View File

@ -75,7 +75,7 @@ const stuzy: AppRouteModule = {
name: 'stuTlq', name: 'stuTlq',
component: () => import('/@/views/zy/zyTlq/StuZyTlqList.vue'), component: () => import('/@/views/zy/zyTlq/StuZyTlqList.vue'),
meta: { meta: {
title: '通知公告', title: '讨论区',
}, },
}, },

View File

@ -20,7 +20,7 @@ const zuoye: AppRouteModule = {
meta: { meta: {
title: '作业管理', title: '作业管理',
}, },
component: () => import('/@/views/site/renKeJiaoCheng/checkKecheng/dqxqkcDetail.vue'), component: () => import('/@/views/zy/zyGonggao/ZyGonggaoList.vue'),
}, },
{ {
path: 'dqkcDetail', path: 'dqkcDetail',

View File

@ -1,6 +1,6 @@
<template> <template>
<BasicModal v-bind="$attrs" @register="registerModal" destroyOnClose :title="title" :width="'80%'" @ok="handleSubmit"> <BasicModal v-bind="$attrs" @register="registerModal" destroyOnClose :title="title" :width="'80%'" @ok="handleSubmit">
<BasicForm @register="registerForm"> <!-- <BasicForm @register="registerForm">
<template #detectionDetailedList="{ values }"> <template #detectionDetailedList="{ values }">
<div style="width: 100%"> <div style="width: 100%">
<a-table :columns="detectionDetailedListColumns" :dataSource="values.detectionDetailedList" :pagination="false"> <a-table :columns="detectionDetailedListColumns" :dataSource="values.detectionDetailedList" :pagination="false">
@ -14,7 +14,35 @@
</a-table> </a-table>
</div> </div>
</template> </template>
</BasicForm> </BasicForm> -->
<a-row>
<a-col :span="24">
<span style="font-weight:700;">{{form.xnxq}}</span>
<span style="font-weight:700;">{{form.kcmc}}</span>,
<span style="font-weight:700;">{{form.createTime}}</span>
<span style="font-weight:700;">{{form.ketangbiaoInfo?.hh}}</span>
<!-- </a-col>
<a-col :span="24"> -->
<!-- <span>上课地点是{{form.ketangbiaoInfo?.skdd}}</span> -->
共抓取了<span style="font-weight:700;">{{form.detectionNum}}</span>
选课总人数是<span style="font-weight:700;">{{form.ketangbiaoInfo?.xkrs}}</span>,
迟到人数是<span style="font-weight:700;">{{form.cdrs}}</span>早退人数是<span style="font-weight:700;">{{form.ztrs}}</span>
出勤率<span style="font-weight:700;">{{form.averageNum}}%</span>
</a-col>
</a-row>
<div style="width: 100%">
<a-table :columns="detectionDetailedListColumns" :dataSource="form.detectionDetailedList" :pagination="false">
<template #imgSlot="{ text, record }">
<span v-if="!text" style="font-size: 12px; font-style: italic">无图片</span>
<Image v-else :src="getImgView(text)" :preview="record.id" alt="" :width="100"/>
</template>
<template #skkd="{ text, record }">{{ record.ketangbiaoInfo?.skdd }}</template>
<template #xkrs="{ text, record }">{{ record.ketangbiaoInfo?.xkrs }}</template>
<!-- <template #skkd>{{ getFieldsValue('ketangbiaoInfo')?.ketangbiaoInfo?.skdd }}</template>
<template #xkrs>{{ getFieldsValue('ketangbiaoInfo')?.ketangbiaoInfo?.xkrs }}</template> -->
<template #dksbl="{ record }"><div v-html="calcAverageNum(record)"></div></template>
</a-table>
</div>
</BasicModal> </BasicModal>
</template> </template>
@ -29,6 +57,7 @@ import { saveOrUpdate } from '../KcDetectionMain.api';
// Emits // Emits
const emit = defineEmits(['register', 'success']); const emit = defineEmits(['register', 'success']);
const isUpdate = ref(true); const isUpdate = ref(true);
const form = ref({});
// //
const [registerForm, { setProps, getFieldsValue, resetFields, setFieldsValue, validate }] = useForm({ const [registerForm, { setProps, getFieldsValue, resetFields, setFieldsValue, validate }] = useForm({
//labelWidth: 150, //labelWidth: 150,
@ -38,21 +67,36 @@ const [registerForm, { setProps, getFieldsValue, resetFields, setFieldsValue, va
}); });
// //
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => { const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
console.log(`🚀 ~ 11111111111111 ~ data:`, data)
form.value = data.record;
form.value.hh = data.record.ketangbiaoInfo.hh;
form.value.hh = data.record.ketangbiaoInfo.xkrs;
console.log(`🚀 ~ const[registerModal,{setModalProps,closeModal}]=useModalInner ~ form:`, form)
form.value.detectionDetailedList.forEach(item => {
item.ketangbiaoInfo = data.record.ketangbiaoInfo;
})
// //
await resetFields(); await resetFields();
setModalProps({ confirmLoading: false, showCancelBtn: !!data?.showFooter, showOkBtn: !!data?.showFooter }); setModalProps({ confirmLoading: false, showCancelBtn: !!data?.showFooter, showOkBtn: !!data?.showFooter });
isUpdate.value = !!data?.isUpdate; isUpdate.value = !!data?.isUpdate;
if (unref(isUpdate)) { // if (unref(isUpdate)) {
// // form.value = data.record;
await setFieldsValue({ // //
...data.record, // await setFieldsValue({
}); // ...data.record,
} // });
// }
// //
setProps({ disabled: !data?.showFooter }) setProps({ disabled: !data?.showFooter })
}); });
// //
const title = computed(() => '查看'); const title = computed(() => 'AI识别出勤情况');
// //
async function handleSubmit(v) { async function handleSubmit(v) {
try { try {
@ -70,7 +114,7 @@ async function handleSubmit(v) {
} }
function calcAverageNum(record){ function calcAverageNum(record){
let xkrs = getFieldsValue('ketangbiaoInfo')?.ketangbiaoInfo?.xkrs; let xkrs = record?.ketangbiaoInfo?.xkrs;
let { num: averageNum } = record; let { num: averageNum } = record;
let xkrsNum = Number(xkrs); let xkrsNum = Number(xkrs);
if(!isNaN(xkrsNum) && xkrsNum != 0 && averageNum != 0) { if(!isNaN(xkrsNum) && xkrsNum != 0 && averageNum != 0) {

View File

@ -10,15 +10,15 @@ export const columns: BasicColumn[] = [
dataIndex: 'createTime' dataIndex: 'createTime'
}, },
{ {
title: '教师姓名', title: '工号',
align: "center",
dataIndex: 'openid'
},
{
title: '姓名',
align: "center", align: "center",
dataIndex: 'teacherName' dataIndex: 'teacherName'
}, },
// {
// title: '学期学年',
// align: "center",
// dataIndex: 'xqxn'
// },
{ {
title: '发送内容', title: '发送内容',
align: "center", align: "center",
@ -29,11 +29,11 @@ export const columns: BasicColumn[] = [
// align: "center", // align: "center",
// dataIndex: 'sjtkcs' // dataIndex: 'sjtkcs'
// }, // },
{ // {
title: '发送结果', // title: '发送结果',
align: "center", // align: "center",
dataIndex: 'remark' // dataIndex: 'remark'
}, // },
]; ];
//查询数据 //查询数据

View File

@ -4,17 +4,22 @@
<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"> <a-col :lg="6">
<a-form-item label="教师姓名"> <a-form-item label="工号">
<a-input placeholder="请输入教师姓名" v-model:value="queryParam.teacherName"></a-input> <j-input placeholder="请输入工号" v-model:value="queryParam.teacherName"></j-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col :lg="8"> <a-col :lg="6">
<a-form-item label="姓名">
<j-input placeholder="请输入姓名" v-model:value="queryParam.teacherName"></j-input>
</a-form-item>
</a-col>
<!-- <a-col :lg="6">
<a-form-item label="学期学年"> <a-form-item label="学期学年">
<a-input placeholder="请输入学期学年" v-model:value="queryParam.xqxn"></a-input> <a-input placeholder="请输入学期学年" v-model:value="queryParam.xqxn"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col> -->
<a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-col :lg="6">
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons"> <span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
<a-col :lg="6"> <a-col :lg="6">
<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>
@ -80,6 +85,7 @@
import { list, deleteOne, batchDelete, getImportUrl, getExportUrl } from './KcWechatSendLog.api'; import { list, deleteOne, batchDelete, getImportUrl, getExportUrl } from './KcWechatSendLog.api';
import { downloadFile } from '/@/utils/common/renderUtils'; import { downloadFile } from '/@/utils/common/renderUtils';
import KcWechatSendLogModal from './components/KcWechatSendLogModal.vue' import KcWechatSendLogModal from './components/KcWechatSendLogModal.vue'
import { JInput } from '/@/components/Form';
const queryParam = ref<any>({}); const queryParam = ref<any>({});
const toggleSearchStatus = ref<boolean>(false); const toggleSearchStatus = ref<boolean>(false);

View File

@ -2,14 +2,14 @@
<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">
<a-form-item label="教师姓名" v-bind="validateInfos.teacherName">
<a-input v-model:value="formData.teacherName" placeholder="请输入教师姓名" :disabled="disabled" @change="handleTeacherNameChange"></a-input>
</a-form-item>
</a-col> -->
<a-col :span="24"> <a-col :span="24">
<a-form-item label="教师工号" v-bind="validateInfos.openid"> <a-form-item label="工号" v-bind="validateInfos.openid">
<a-input v-model:value="formData.openid" placeholder="请输入微信openid" :disabled="disabled"></a-input> <a-input v-model:value="formData.openid" placeholder="请输入工号" :disabled="disabled" @change="handleTeacherNameChange"></a-input>
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item label="姓名" v-bind="validateInfos.teacherName">
<a-input v-model:value="formData.teacherName" placeholder="请输入姓名" :disabled="disabled"></a-input>
</a-form-item> </a-form-item>
</a-col> </a-col>
<!-- <a-col :span="24"> <!-- <a-col :span="24">
@ -108,16 +108,14 @@
} }
const queryParam = ref<any>({}); const queryParam = ref<any>({});
const getopenid = (queryParam) => defHttp.get({ url: '/KcBdgxbcopy/kcBdgxbcopy/getOpenIdByName', params:queryParam }); const getopenid = (queryParam) => defHttp.post({ url: '/config/kcExportConfigTpkwcqkjzglx/getTeacherInfo', params:queryParam });
function handleTeacherNameChange(){ function handleTeacherNameChange(){
var teacherName = formData.teacherName; var gh = formData.openid;
console.log(`🚀 ~ file: KcWechatSendLogForm.vue:95 ~ handleTeacherNameChange ~ teacherName:`, teacherName) queryParam.value.gh = gh
queryParam.value.name = teacherName
getopenid(queryParam.value).then(res=>{ getopenid(queryParam.value).then(res=>{
console.log(`🚀 ~ file: KcWechatSendLogForm.vue:106 ~ jclist ~ res:`, res) console.log(`🚀 ~ getopenid ~ res:`, res)
formData.openid = res.openid formData.teacherName = res?.xm
console.log(`🚀 ~ file: KcWechatSendLogForm.vue:110 ~ jclist ~ formData:`, formData)
}) })
} }

View File

@ -1,11 +1,13 @@
<template> <template>
<div class="tktjClass"> <div class="tktjClass">
<a-tabs v-model:activeKey="activeKey">
<a-tab-pane key="1" tab="最新动态">
<a-row> <a-row>
<a-col :span="24"><strong style="font-size: 16px;margin-left: 20px;">最新动态</strong></a-col> <!-- <a-col :span="24"><strong style="font-size: 16px;margin-left: 20px;">最新动态</strong></a-col> -->
<a-col :span="24"><p style="width:100%;height:1px;margin:0px auto;padding:0px;background-color:#D5D5D5;overflow:hidden;margin-top: 5px;"></p></a-col> <!-- <a-col :span="24"><p style="width:100%;height:1px;margin:0px auto;padding:0px;background-color:#D5D5D5;overflow:hidden;margin-top: 5px;"></p></a-col> -->
<a-col :span="24" style="text-align: center;" v-show="listData.length==0"><strong style="font-size: 16px;margin-left: 20px;margin-top: 10px;">暂无数据</strong></a-col> <a-col :span="24" style="text-align: center;" v-show="listData.length==0"><strong style="font-size: 16px;margin-left: 20px;margin-top: 10px;">暂无数据</strong></a-col>
<a-col :span="24" v-show="listData.length>0"> <a-col :span="24" v-show="listData.length>0">
<div style="height: 330px;overflow-y: auto;"> <div style="height: 305px;overflow-y: auto;">
<div style="font-size: 14px;margin-left: 20px;margin-top: 10px;line-height: 20px;" v-for="(item,index) in listData" :key="index"> <div style="font-size: 14px;margin-left: 20px;margin-top: 10px;line-height: 20px;" v-for="(item,index) in listData" :key="index">
<div v-if="item.type == '1'"> <div v-if="item.type == '1'">
<i class="fas fa-users green" /> {{item.username}},听了 {{item.kkdw}} 的课程 <i class="fas fa-users green" /> {{item.username}},听了 {{item.kkdw}} 的课程
@ -24,7 +26,29 @@
</div> </div>
</a-col> </a-col>
</a-row></a-tab-pane>
<a-tab-pane key="2" tab="活跃信息" force-render>
<a-row>
<a-col :span="24" style="text-align: center;" v-show="listLogData.length==0"><strong style="font-size: 16px;margin-left: 20px;margin-top: 10px;">暂无数据</strong></a-col>
<a-col :span="24" v-show="listLogData.length>0">
<div style="height: 305px;overflow-y: auto;">
<div style="font-size: 14px;margin-left: 20px;margin-top: 10px;line-height: 20px;" v-for="(item,index) in listLogData" :key="index">
<div>
<i class="fas fa-users green" /> {{item.logContent}}
<p style="font-size: 10px;"><i class="fas fa-history" /> {{item.createTime}}</p>
</div>
<a-divider style="margin:12px 0;"/>
</div>
</div>
<div style="text-align: center;margin-top: 10px;" v-show="pageNo>0">
<a @click="handlLoginLog">统计</a>
</div>
</a-col>
</a-row> </a-row>
</a-tab-pane>
</a-tabs>
<BlLoginLogModal ref="BlLoginLogModalPage"/>
</div> </div>
</template> </template>
@ -33,6 +57,10 @@
import { ref, reactive, onMounted } from 'vue'; import { ref, reactive, onMounted } from 'vue';
import { defHttp } from '/@/utils/http/axios'; import { defHttp } from '/@/utils/http/axios';
import { getSysConfig } from '/@/views/site/utils/index'; import { getSysConfig } from '/@/views/site/utils/index';
import BlLoginLogModal from '/@/views/kc/blLoginLog/BlLoginLogModal.vue'
enum Api { enum Api {
list = '/kcTingke/kcTingke/getHtindexTkmxlist', list = '/kcTingke/kcTingke/getHtindexTkmxlist',
} }
@ -41,16 +69,20 @@ const list = (params) => defHttp.get({ url: Api.list, params });
const queryParam = ref<any>({}); const queryParam = ref<any>({});
let listData = ref<any>([]); let listData = ref<any>([]);
let listLogData = ref<any>([]);
let lslist = ref<any>([]); let lslist = ref<any>([]);
let pageKs = ref<any>(0); let pageKs = ref<any>(0);
let pageJs = ref<any>(5); let pageJs = ref<any>(5);
let pageNo = ref<any>(1); let pageNo = ref<any>(1);
let activeKey = ref<any>('1');
const BlLoginLogModalPage = ref();
// //
onMounted(() => { onMounted(() => {
queryParam.value.skrq = getSysConfig().bxqkssj queryParam.value.skrq = getSysConfig().bxqkssj
queryParam.value.pageKs = pageKs.value queryParam.value.pageKs = pageKs.value
queryParam.value.pageJs = pageJs.value queryParam.value.pageJs = pageJs.value
loadData() loadData();
loadLogData();
}); });
function funMore(){ function funMore(){
let djy = pageNo.value let djy = pageNo.value
@ -59,6 +91,12 @@ function funMore(){
console.log(`🚀 ~ file: zxdt.vue:55 ~ funMore ~ queryParam:`, queryParam) console.log(`🚀 ~ file: zxdt.vue:55 ~ funMore ~ queryParam:`, queryParam)
loadData() loadData()
} }
function handlLoginLog(){
BlLoginLogModalPage.value.disableSubmit = true;
BlLoginLogModalPage.value.add();
}
function loadData(){ function loadData(){
list(queryParam.value).then(res => { list(queryParam.value).then(res => {
lslist = res lslist = res
@ -72,6 +110,13 @@ function loadData(){
console.log(`🚀 ~ file: zxdt.vue:43 ~ list ~ listData:`, listData) console.log(`🚀 ~ file: zxdt.vue:43 ~ list ~ listData:`, listData)
}) })
} }
function loadLogData(){
defHttp.get({url:'/blLoginLog/blLoginLog/list',params:{pageNo:1,pageSize:5}}).then(res=>{
console.log(`🚀 ~ defHttp.get ~ res:`, res.records)
listLogData.value = res.records;
})
}
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>

View File

@ -62,6 +62,8 @@
<StudentJrkbPage v-if="getUserSf()=='S-'"></StudentJrkbPage> <StudentJrkbPage v-if="getUserSf()=='S-'"></StudentJrkbPage>
<!-- 学生部分近六日课表 --> <!-- 学生部分近六日课表 -->
<StudentJlrkbPage v-if="getUserSf()=='S-'"></StudentJlrkbPage> <StudentJlrkbPage v-if="getUserSf()=='S-'"></StudentJlrkbPage>
<!-- 学生代办提醒 -->
<studentDbtx v-if="getUserSf()=='S'"></studentDbtx>
<!-- 我的课程 --> <!-- 我的课程 -->
<studentWdkc v-if="getUserSf()=='S'"></studentWdkc> <studentWdkc v-if="getUserSf()=='S'"></studentWdkc>
<!-- 页尾 --> <!-- 页尾 -->
@ -97,6 +99,7 @@
import StudentJrkbPage from '/@/views/site/studentJrkb/index.vue'; import StudentJrkbPage from '/@/views/site/studentJrkb/index.vue';
import StudentJlrkbPage from '/@/views/site/studentJlrkb/index.vue'; import StudentJlrkbPage from '/@/views/site/studentJlrkb/index.vue';
import studentWdkc from '/@/views/site/studentWdkc/studentWdkc.vue'; import studentWdkc from '/@/views/site/studentWdkc/studentWdkc.vue';
import studentDbtx from '/@/views/site/studentWdkc/studentDbtx.vue';
import pjjgPage from '/@/views/site/pjjgPage/index.vue'; import pjjgPage from '/@/views/site/pjjgPage/index.vue';

View File

@ -60,11 +60,11 @@ function toWeek(week){
function openKechengDetail(item){ function openKechengDetail(item){
console.log(`🚀 ~ openKechengDetail ~ item:`, item) console.log(`🚀 ~ openKechengDetail ~ item:`, item)
defHttp.post({ url: '/zyDbtx/zyDbtx/deleteByRwbhCreate',params:{rwbh:item.rwbh} }).then((res) => { defHttp.post({ url: '/zyDbtx/zyDbtx/deleteByRwbhCreate',params:{rwbh:item.rwbh,fbr:item.jgh} }).then((res) => {
loadData() loadData()
}); });
window.open('/zy/dqkcDetail?rwbh='+item.rwbh+'&xqxn='+getSysConfig().flag1+"&type=1"+"&teano="+item.jgh,"_blank"); window.open('/zy/tuGonggao?rwbh='+item.rwbh+'&xqxn='+getSysConfig().flag1+"&type=1"+"&teano="+item.jgh,"_blank");
} }
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>

View File

@ -5,12 +5,19 @@
<headerPage/> <headerPage/>
<a-row> <a-row>
<a-col :span="24"> <a-col :span="24">
<a-row>
<a-col :lg="24" :xs="18">
<div style="width:100%;background: #fff;font-size: 18px;font-weight: bold;margin-top:10px;padding: 10px;">课程名称{{kcxxInfo.kcmc}}</div> <div style="width:100%;background: #fff;font-size: 18px;font-weight: bold;margin-top:10px;padding: 10px;">课程名称{{kcxxInfo.kcmc}}</div>
</a-col> </a-col>
<a-col :span="5"> <a-col :lg="0" :xs="6">
<dqxqkcMenu/> <dqxqkcMenu/>
</a-col> </a-col>
<a-col :span="19"> </a-row>
</a-col>
<a-col :lg="5" :xs="0">
<dqxqkcMenu/>
</a-col>
<a-col :lg="19" :xs="24">
<RouterView/> <RouterView/>
</a-col> </a-col>
</a-row> </a-row>

View File

@ -1,17 +1,19 @@
<template> <template>
<div id="siteMain" style="min-height: calc(100vh - 205px);"> <div id="siteMain" >
<a-row> <a-row>
<a-col :span="24"> <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"
> >
<a-menu-item key="sub0">
<span @click="getGzt('gonggao')">通知公告</span>
</a-menu-item>
<a-sub-menu key="sub1"> <a-sub-menu key="sub1">
<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('gonggao')">通知公告</a-menu-item>
<a-menu-item key="3" @click="gotoPageByName('jiaoXueDanYuanNeiRong')">教学单元内容</a-menu-item> <a-menu-item key="3" @click="gotoPageByName('jiaoXueDanYuanNeiRong')">教学单元内容</a-menu-item>
</a-sub-menu> </a-sub-menu>
<a-sub-menu key="sub2"> <a-sub-menu key="sub2">
@ -47,6 +49,52 @@
</a-menu-item> --> </a-menu-item> -->
</a-menu> </a-menu>
</a-col> </a-col>
<a-col :lg="0" :xs="24">
<a-menu
v-model:openKeys="openKeys"
v-model:selectedKeys="selectedKeys"
style="width: 98%;margin: 10px 0;"
mode="horizontal"
>
<a-sub-menu key="min0">
<template #icon>
<!-- <SettingOutlined /> -->
<MenuUnfoldOutlined />
</template>
<!-- <template #title>功能菜单</template> -->
<a-menu-item key="sub0">
<span @click="getGzt('gonggao')">通知公告</span>
</a-menu-item>
<a-menu-item key="sub1">
<span @click="getGzt('kcjs')">课程简介</span>
</a-menu-item>
<a-menu-item key="sub2">
<span @click="gotoPageByName('jiaoXueDanYuanNeiRong')">教学单元内容</span>
</a-menu-item>
<a-menu-item key="sub3">
<span @click="getGzt('dqzy')">课程作业</span>
</a-menu-item>
<a-menu-item key="sub4">
<span @click="getGzt('kcjc')">课程测验</span>
</a-menu-item>
<a-menu-item key="sub5">
<span @click="getGzt('dcwj')">问卷调查</span>
</a-menu-item>
<a-menu-item key="sub6">
<span @click="getGzt('gongju')">到课识别率</span>
</a-menu-item>
<a-menu-item key="sub7">
<span @click="getGzt('zycd')">作业存档</span>
</a-menu-item>
<a-menu-item key="sub8">
<span @click="getGzt('yiykzyk')">教学资源库</span>
</a-menu-item>
<a-menu-item key="sub9">
<span @click="getGzt('tlq')">讨论区</span>
</a-menu-item>
</a-sub-menu>
</a-menu>
</a-col>
</a-row> </a-row>
</div> </div>
</template> </template>
@ -57,6 +105,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 { MailOutlined, AppstoreOutlined, SettingOutlined,MenuUnfoldOutlined } from '@ant-design/icons-vue';
import headerPage from '/@/views/site/common/header.vue'; import headerPage from '/@/views/site/common/header.vue';
@ -72,7 +121,6 @@
const { rwbh,xqxn,type,teano } = query;// const { rwbh,xqxn,type,teano } = query;//
let router = useRouter(); let router = useRouter();
function getGzt(zytype){ function getGzt(zytype){
var param = {rwbh,xqxn,type}; var param = {rwbh,xqxn,type};
// console.log(`🚀 ~ getGzt ~ type:`, zytype) // console.log(`🚀 ~ getGzt ~ type:`, zytype)
@ -151,4 +199,7 @@
} }
} }
} }
.ant-menu-overflow {
flex-direction: row-reverse
}
</style> </style>

View File

@ -115,7 +115,7 @@ function openKecheng(item){
function openDetailKecheng(item){ function openDetailKecheng(item){
console.log(`🚀 ~ openDetailKecheng ~ item:`, item) console.log(`🚀 ~ openDetailKecheng ~ item:`, item)
window.open('/zy/dqkcDetail?rwbh='+item.rwbh+'&xqxn='+getSysConfig().flag1+"&type=1","_blank"); window.open('/zy/main?rwbh='+item.rwbh+'&xqxn='+getSysConfig().flag1+"&type=1","_blank");
} }
async function getTeacherzzsk() { async function getTeacherzzsk() {

View File

@ -5,14 +5,28 @@
<headerPage/> <headerPage/>
<a-row> <a-row>
<a-col :span="24"> <a-col :span="24">
<a-row>
<a-col :lg="24" :xs="18">
<div style="width:100%;background: #fff;font-size: 18px;font-weight: bold;margin-top:10px;padding: 10px;">课程名称{{kcxxInfo.kcmc}}</div> <div style="width:100%;background: #fff;font-size: 18px;font-weight: bold;margin-top:10px;padding: 10px;">课程名称{{kcxxInfo.kcmc}}</div>
</a-col> </a-col>
<a-col :span="5"> <a-col :lg="0" :xs="6">
<studentMenu/> <studentMenu/>
</a-col> </a-col>
<a-col :span="19"> </a-row>
</a-col>
<a-col :lg="5" :xs="0">
<studentMenu/>
</a-col>
<a-col :lg="19" :xs="24">
<RouterView/> <RouterView/>
</a-col> </a-col>
<!-- <a-col :lg="5" :xs="{ span: 24 }">
<studentMenu/>
</a-col>
<a-col :lg="19" :xs="{ span: 24 }">
<RouterView style="padding:10px;"/>
</a-col> -->
</a-row> </a-row>
<footerPage/> <footerPage/>
</a-layout> </a-layout>

View File

@ -1,16 +1,19 @@
<template> <template>
<div id="siteMain" style="min-height: calc(100vh - 205px);"> <div id="siteMain">
<a-row> <a-row>
<a-col :span="24"> <a-col :lg="24" :xs="{ span: 0 }">
<a-menu <a-menu
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"
> >
<a-sub-menu key="sub1"> <a-menu-item key="sub1">
<template #title>课程简介</template> <span @click="getGzt('tzgg')">通知公告</span>
</a-menu-item>
<a-sub-menu key="sub2">
<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-sub-menu key="sub4"> <a-sub-menu key="sub4">
@ -30,6 +33,42 @@
--> -->
</a-menu> </a-menu>
</a-col> </a-col>
<a-col :lg="0" :xs="{ span: 24 }" style="text-align: right;">
<a-menu
v-model:selectedKeys="selectedKeys"
style="width: 98%; margin: 10px 0; "
mode="horizontal"
>
<a-sub-menu key="min0">
<template #icon>
<!-- <SettingOutlined /> -->
<MenuUnfoldOutlined />
</template>
<!-- <template #title>菜单</template> -->
<a-menu-item key="min1">
<span @click="getGzt('tzgg')">通知公告</span>
</a-menu-item>
<a-menu-item key="min2">
<span @click="getGzt('kcjs')">课程简介</span>
</a-menu-item>
<a-menu-item key="min3">
<span @click="getGzt('stuJiaoXueDanYuanNeiRong')">教学单元</span>
</a-menu-item>
<a-menu-item key="min4">
<span @click="getGzt('dqzy')">课程作业</span>
</a-menu-item>
<a-menu-item key="min5">
<span @click="getGzt('kcjc')">课程测验</span>
</a-menu-item>
<a-menu-item key="min6">
<span @click="getGzt('dcwj')">问卷调查</span>
</a-menu-item>
<a-menu-item key="min7">
<span @click="getGzt('tlq')">讨论区</span>
</a-menu-item>
</a-sub-menu>
</a-menu>
</a-col>
</a-row> </a-row>
</div> </div>
</template> </template>
@ -45,6 +84,7 @@
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';
const maxClassName = ref<any>({}); const maxClassName = ref<any>({});
const selectedKeys = ref<string[]>([]); const selectedKeys = ref<string[]>([]);
@ -92,7 +132,6 @@
#maxSite { #maxSite {
// //
max-width: 1070px; max-width: 1070px;
min-height: 750px;
// //
margin: 0 auto; margin: 0 auto;
.rowGutter{ .rowGutter{
@ -121,4 +160,7 @@
} }
} }
} }
.ant-menu-overflow {
flex-direction: row-reverse
}
</style> </style>

View File

@ -59,7 +59,7 @@ function openKecheng(record){
defHttp.post({ url: '/zyDbtx/zyDbtx/deleteByRwbhCreate',params:{rwbh:record.rwbh,fbr:record.jgh} }).then((res) => { defHttp.post({ url: '/zyDbtx/zyDbtx/deleteByRwbhCreate',params:{rwbh:record.rwbh,fbr:record.jgh} }).then((res) => {
loaddata() loaddata()
}); });
var url = "/stuzy/studentMain?rwbh="+record.rwbh+"&xqxn="+record.xqxn+"&teano="+record.jgh; var url = "/stuzy/StudentGonggaoList?rwbh="+record.rwbh+"&xqxn="+record.xqxn+"&teano="+record.jgh;
window.open(url,'_blank') window.open(url,'_blank')
} }

View File

@ -22,8 +22,8 @@
</div> </div>
<a-row> <a-row>
<a-col :span="24" v-for="(item,index) in dataSource" style="padding: 5px 10px;"> <a-col :span="24" v-for="(item,index) in dataSource" style="padding: 5px 10px;">
<a-collapse expand-icon-position="right"> <a-collapse expand-icon-position="right" v-model:activeKey="activeKey" class="animateItem" >
<a-collapse-panel :key="index" > <a-collapse-panel :key="String(index)" forceRender >
<template #header> <template #header>
<sapn style="font-size: 16px; font-weight: bold;">{{index+1}}.{{item.title}}</sapn> <sapn style="font-size: 16px; font-weight: bold;">{{index+1}}.{{item.title}}</sapn>
</template> </template>
@ -77,7 +77,7 @@
xs: { span: 24 }, xs: { span: 24 },
sm: { span: 16 }, sm: { span: 16 },
}); });
let activeKey = ref(['0','1','2','3','4','5','6','7','8','9']);
/** /**
* 查询 * 查询
@ -118,6 +118,11 @@
defHttp.get({ url: '/zyGonggao/zyGonggao/list', params: queryParam.value }).then((res) => { defHttp.get({ url: '/zyGonggao/zyGonggao/list', params: queryParam.value }).then((res) => {
console.log(res); console.log(res);
dataSource.value = res.records; dataSource.value = res.records;
for(var i=0;i<dataSource.value.length;i++){
var key = i+"";
activeKey.push(...key);
}
console.log(`🚀 ~ defHttp.get ~ activeKey:`, activeKey)
total.value = res.total; total.value = res.total;
pageNo.value = res.pages; pageNo.value = res.pages;
current.value = res.current; current.value = res.current;