修改bug
This commit is contained in:
parent
c0fc2a41a8
commit
39db01fb57
|
@ -8,13 +8,13 @@ VITE_PUBLIC_PATH = /
|
|||
VITE_PROXY = [["/jeecgboot","http://localhost:8090/jeecg-boot"],["/upload","http://localhost:3300/upload"]]
|
||||
|
||||
# 控制台不输出
|
||||
VITE_DROP_CONSOLE = false
|
||||
VITE_DROP_CONSOLE = true
|
||||
|
||||
#后台接口父地址(必填)
|
||||
VITE_GLOB_API_URL=/jeecgboot
|
||||
|
||||
#后台接口全路径地址(必填)
|
||||
VITE_GLOB_DOMAIN_URL=http://localhost:8090/jeecg-boot
|
||||
VITE_GLOB_DOMAIN_URL=http://localhost:8080/jeecg-boot
|
||||
|
||||
# 接口前缀
|
||||
VITE_GLOB_API_URL_PREFIX=
|
||||
|
|
|
@ -16,10 +16,10 @@ VITE_BUILD_COMPRESS = 'gzip'
|
|||
VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE = false
|
||||
|
||||
#后台接口父地址(必填)
|
||||
VITE_GLOB_API_URL=/jeecgboot
|
||||
VITE_GLOB_API_URL=/jeecg-boot
|
||||
|
||||
#后台接口全路径地址(必填)
|
||||
VITE_GLOB_DOMAIN_URL=http://210.47.17.166/jeecg-boot
|
||||
VITE_GLOB_DOMAIN_URL=http://bylwcs.nenu.edu.cn/jeecg-boot
|
||||
|
||||
# 接口父路径前缀
|
||||
VITE_GLOB_API_URL_PREFIX=
|
||||
|
|
|
@ -13,5 +13,54 @@ export function formatToDateTime(date: dayjs.ConfigType | undefined = undefined,
|
|||
export function formatToDate(date: dayjs.ConfigType | undefined = undefined, format = DATE_FORMAT): string {
|
||||
return dayjs(date).format(format);
|
||||
}
|
||||
/**
|
||||
* 计算日期加几天
|
||||
* @param date 计算的日期
|
||||
* @param days 加几天
|
||||
*/
|
||||
export function formatAddDate(date,days){
|
||||
var dates = new Date(date)
|
||||
dates.setDate(dates.getDate()+days)
|
||||
var year = dates.getFullYear()
|
||||
var month = dates.getMonth()+1
|
||||
var day = dates.getDate()
|
||||
if(month<9)
|
||||
{
|
||||
month="0"+month
|
||||
}
|
||||
if(day<9)
|
||||
{
|
||||
day="0"+day
|
||||
}
|
||||
var time = year +'-'+month+'-'+day
|
||||
return time
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取今天星期几
|
||||
* @param date 时间
|
||||
*/
|
||||
export function formatToWeekOne(date: dayjs.ConfigType | undefined = undefined): string {
|
||||
console.log(`🚀 ~ file: dateUtil.ts:18 ~ formatToWeekOne ~ date:`, date)
|
||||
let xqj = date.getDay()
|
||||
console.log(`🚀 ~ file: dateUtil.ts:19 ~ formatToWeekOne ~ xqj:`, xqj)
|
||||
let xqjtitle = "";
|
||||
if(xqj==1){
|
||||
xqjtitle = "星期一";
|
||||
}else if(xqj==2){
|
||||
xqjtitle = "星期二";
|
||||
}else if(xqj==3){
|
||||
xqjtitle = "星期三";
|
||||
}else if(xqj==4){
|
||||
xqjtitle = "星期四";
|
||||
}else if(xqj==5){
|
||||
xqjtitle = "星期五";
|
||||
}else if(xqj==6){
|
||||
xqjtitle = "星期六";
|
||||
}else if(xqj==0){
|
||||
xqjtitle = "星期日";
|
||||
}
|
||||
return xqjtitle;
|
||||
}
|
||||
|
||||
export const dateUtil = dayjs;
|
||||
|
|
|
@ -1,78 +1,60 @@
|
|||
<template>
|
||||
<div id="siteMain">
|
||||
<div id="maxSite">
|
||||
<!-- <a-card>
|
||||
<div>
|
||||
<h1>首页</h1>
|
||||
</div>
|
||||
<div>{{ list }} - {{ stateCount }}</div>
|
||||
<div>
|
||||
{{ state }}
|
||||
<a-button type="primary" @click="() => state.count++">点击+1</a-button>
|
||||
</div>
|
||||
<div>
|
||||
{{ i }}
|
||||
<a-button type="primary" @click="changeClick">点击+1</a-button>
|
||||
</div>
|
||||
<div>
|
||||
<RouterLink to="/site/index2">跳转到子页</RouterLink>
|
||||
</div>
|
||||
<br/>
|
||||
<div>
|
||||
<RouterLink to="/dashboard/analysis">跳转到首页</RouterLink>
|
||||
</div>
|
||||
</a-card>
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -->
|
||||
<a-layout>
|
||||
<!-- 页头 -->
|
||||
<headerPage showRightButton/>
|
||||
<!-- 主体部分 -->
|
||||
<a-layout-content>
|
||||
<!-- 统计 -->
|
||||
<tongjiPage/>
|
||||
<!-- 轮播图 -->
|
||||
<lunboPage/>
|
||||
<!-- 通知公告 -->
|
||||
<tongZhiGongGaoPage/>
|
||||
<!-- 任课教程 -->
|
||||
<renKeJiaoChengPage/>
|
||||
<!-- 听课足迹 -->
|
||||
<tingKeZuJiPage/>
|
||||
<!-- 预约课程 -->
|
||||
<yuYueKeChengPage ref="yykcModeal" @ortherLoad="yykcLoad"/>
|
||||
<!-- 精彩公开课 -->
|
||||
<jingCaiGongKaiKePage/>
|
||||
<!-- 今日课程列表 -->
|
||||
<a-card class="rowGutter">
|
||||
<template #title>
|
||||
<span style="font-size: 24px;font-weight: bold;">今日课程列表</span>
|
||||
</template>
|
||||
<a-tabs v-model:activeKey="activeKey" type="card" @change="kclbCard">
|
||||
<a-tab-pane key="1">
|
||||
<template #tab>
|
||||
<div style="font-weight: 600;font-size: 16px;">正在上课</div>
|
||||
</template>
|
||||
<kclbZzsk ref="zzskModeal" @jrkclbLoad="jrkclbLoad"></kclbZzsk>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane key="2">
|
||||
<template #tab>
|
||||
<div style="font-weight: 600;font-size: 16px;">下一节课</div>
|
||||
</template>
|
||||
<kclbXyjk ref="xyjkModeal" @jrkclbLoad="jrkclbLoad"></kclbXyjk>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane key="3">
|
||||
<template #tab>
|
||||
<div style="font-weight: 600;font-size: 16px;">日课表</div>
|
||||
</template>
|
||||
<kclbRkb ref="rkbModeal" @jrkclbLoad="jrkclbLoad"></kclbRkb>
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
<a-layout>
|
||||
<!-- 页头 -->
|
||||
<headerPage showRightButton/>
|
||||
<!-- 主体部分 -->
|
||||
<a-layout-content>
|
||||
<!-- 统计 -->
|
||||
<tongjiPage v-if="getUserSf()=='T'"/>
|
||||
<!-- 轮播图 -->
|
||||
<lunboPage/>
|
||||
<!-- 通知公告 -->
|
||||
<tongZhiGongGaoPage/>
|
||||
<!-- 任课教程 -->
|
||||
<renKeJiaoChengPage v-if="getUserSf()=='T'"/>
|
||||
<!-- 听课足迹 -->
|
||||
<tingKeZuJiPage v-if="getUserSf()=='T'"/>
|
||||
<!-- 预约课程 -->
|
||||
<yuYueKeChengPage ref="yykcModeal" @ortherLoad="yykcLoad" v-if="getUserSf()=='T'"/>
|
||||
<!-- 精彩公开课 -->
|
||||
<jingCaiGongKaiKePage v-if="getUserSf()=='T'"/>
|
||||
<!-- 今日课程列表 -->
|
||||
<a-card class="rowGutter" v-if="getUserSf()=='T'">
|
||||
<template #title>
|
||||
<span style="font-size: 24px;font-weight: bold;">今日课程列表</span>
|
||||
</template>
|
||||
<a-tabs v-model:activeKey="activeKey" type="card" @change="kclbCard">
|
||||
<a-tab-pane key="1">
|
||||
<template #tab>
|
||||
<div style="font-weight: 600;font-size: 16px;">正在上课</div>
|
||||
</template>
|
||||
<kclbZzsk ref="zzskModeal" @jrkclbLoad="jrkclbLoad"></kclbZzsk>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane key="2">
|
||||
<template #tab>
|
||||
<div style="font-weight: 600;font-size: 16px;">下一节课</div>
|
||||
</template>
|
||||
<kclbXyjk ref="xyjkModeal" @jrkclbLoad="jrkclbLoad"></kclbXyjk>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane key="3">
|
||||
<template #tab>
|
||||
<div style="font-weight: 600;font-size: 16px;">日课表</div>
|
||||
</template>
|
||||
<kclbRkb ref="rkbModeal" @jrkclbLoad="jrkclbLoad"></kclbRkb>
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
</a-card>
|
||||
|
||||
</a-card>
|
||||
</a-layout-content>
|
||||
<!-- 学生部分今日课表 -->
|
||||
<StudentJrkbPage v-if="getUserSf()=='S'"></StudentJrkbPage>
|
||||
<!-- 学生部分近六日课表 -->
|
||||
<StudentJlrkbPage v-if="getUserSf()=='S'"></StudentJlrkbPage>
|
||||
<!-- 页尾 -->
|
||||
<footerPage/>
|
||||
</a-layout>
|
||||
</a-layout>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
@ -97,6 +79,12 @@
|
|||
import kclbXyjk from '/@/views/site/jrkclb/kclbXyjk.vue';
|
||||
import kclbRkb from '/@/views/site/jrkclb/kclbRkb.vue';
|
||||
|
||||
|
||||
import StudentJrkbPage from '/@/views/site/studentJrkb/index.vue';
|
||||
import StudentJlrkbPage from '/@/views/site/studentJlrkb/index.vue';
|
||||
|
||||
import { getUserSf } from '/@/views/site/utils/index';
|
||||
|
||||
const activeKey = ref('1');
|
||||
const zzskModeal = ref();
|
||||
const xyjkModeal = ref();
|
||||
|
|
|
@ -36,10 +36,18 @@
|
|||
{{ item.skdd }}
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24" v-if="listData == 1">
|
||||
<a-button type="primary" class="yyyClass" disabled >听课</a-button>
|
||||
<a-button type="primary" class="yyClass" >评价</a-button>
|
||||
<a-button type="primary" class="bcClass" @click="handleBaocuo(item)">报错</a-button>
|
||||
<a-col :span="24" v-if="listType == 1">
|
||||
<a-row style="text-align: center;">
|
||||
<a-col :span="8">
|
||||
<a-button type="primary" class="yyyClass" disabled >听课</a-button>
|
||||
</a-col>
|
||||
<a-col :span="8">
|
||||
<a-button type="primary" class="yyClass" @click="funpingjia(item)" >评价</a-button>
|
||||
</a-col>
|
||||
<a-col :span="8">
|
||||
<a-button type="primary" class="bcClass" @click="handleBaocuo(item)">报错</a-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col :span="24" v-else>
|
||||
<!-- <a-col :span="24"> -->
|
||||
|
@ -54,6 +62,7 @@
|
|||
</a-row>
|
||||
<!-- 报错列表 -->
|
||||
<KcErrorreportIndexModal ref="kcErrorreportIndexModal"></KcErrorreportIndexModal>
|
||||
<addModalPage ref="tingKeZuJiAddModal"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
@ -63,18 +72,21 @@ import { defHttp } from '/@/utils/http/axios';
|
|||
import { useMessage } from '/@/hooks/web/useMessage';
|
||||
import KcErrorreportIndexModal from '/@/views/kc/kcErrorreport/components/KcErrorreportIndexModal.vue'
|
||||
import { getUserId } from '/@/views/site/utils/index';
|
||||
import addModalPage from '/@/views/site/tingKeZuJi/components/addModal.vue';
|
||||
|
||||
//用户相关
|
||||
import { useUserStore } from '/@/store/modules/user';
|
||||
const userStore = useUserStore();
|
||||
const kcErrorreportIndexModal = ref();
|
||||
const tingKeZuJiAddModal = ref();
|
||||
|
||||
|
||||
const emit = defineEmits(['setTotal']);
|
||||
|
||||
const { createMessage } = useMessage();
|
||||
const confirmLoading = ref<boolean>(false);
|
||||
let listData = ref<any>([]);let listType = ref<any>(String);
|
||||
let listData = ref<any>([]);
|
||||
let listType = ref<any>(String);
|
||||
const list = (params) => defHttp.get({ url: '/ktgl/kcKetangbiao/getKclblist', params });
|
||||
const props = defineProps({
|
||||
queryParam:{type:Object}
|
||||
|
@ -82,9 +94,9 @@ const props = defineProps({
|
|||
|
||||
//监听条件变化
|
||||
watch(() => props.queryParam, async (newRow, oldRow) => {
|
||||
// var newRowa = ref<any>({});
|
||||
// newRowa = newRow
|
||||
// listType = newRowa.type
|
||||
var newRowa = ref<any>({});
|
||||
newRowa = newRow
|
||||
listType = newRowa.type
|
||||
},{ deep: true });
|
||||
//查询数据
|
||||
function rkbLoadData() {
|
||||
|
@ -118,7 +130,10 @@ async function funYuyue(record){
|
|||
});
|
||||
}
|
||||
|
||||
|
||||
function funpingjia(record){
|
||||
var item = {ketangbiaoid:record.id}
|
||||
tingKeZuJiAddModal.value.view(item)
|
||||
}
|
||||
/**
|
||||
* 报错事件
|
||||
*/
|
||||
|
@ -154,7 +169,7 @@ const saveOrUpdate = (params, isUpdate) => {
|
|||
background: #6cafda;float: left;font-weight: 600;color:#fff;border-radius: 5px;line-height: 23px;
|
||||
}
|
||||
.yyClass{
|
||||
background-color: #1c84c6;float: left;font-weight: 600;color:#fff;border-radius: 5px;line-height: 23px;
|
||||
background-color: #1c84c6;font-weight: 600;color:#fff;border-radius: 5px;line-height: 23px;
|
||||
}
|
||||
.bcClass{
|
||||
background-color: #1c84c6;float: right;font-weight: 600;border-radius: 5px;line-height: 23px;
|
||||
|
|
|
@ -0,0 +1,174 @@
|
|||
<template>
|
||||
<div class="indexBackClass">
|
||||
<div style="margin-top: 20px;">
|
||||
<span style="margin-left: 30px;font-size: 24px;font-weight: 600;">进六日课表</span>
|
||||
<span style="margin-left: 10px;"><a href="javascript:void(0);" @click="openChangeKcPage">修改课程提醒</a></span>
|
||||
</div>
|
||||
<a-divider></a-divider>
|
||||
<div>
|
||||
|
||||
<a-row :gutter="[16, 16]" v-for="(itemPar, index) in listNewData" :key="index" style="margin-top:30px">
|
||||
<a-col :span="24">
|
||||
<div style="font-size: 24px; font-weight: 600; color: green; padding: 10px;">
|
||||
{{itemPar.time}} {{formatToWeekOne(new Date(itemPar.time))}}
|
||||
<a-divider></a-divider>
|
||||
</div>
|
||||
</a-col>
|
||||
<!-- <a-divider></a-divider> -->
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 12 }" :lg="{ span: 6 }" style="padding: 0 20px;" v-for="(item,index2) in itemPar.list" :key="index2">
|
||||
<div style="border: 2px #eef1f2 solid;">
|
||||
<div>
|
||||
<div class="jtkcTitleClass"></div>
|
||||
<div style="width:100%;white-space:normal; word-break:break-all;overflow:hidden;padding: 15px;font-weight: 600;font-size: 16px; color: #a50a0a;">
|
||||
第<span>{{ item.hh }}</span>节
|
||||
</div>
|
||||
</div>
|
||||
<a-divider style="margin: 0px;color: #eef1f2;" />
|
||||
<div style="padding: 20px;font-weight: 600;">
|
||||
<a-row>
|
||||
<a-col :span="24">
|
||||
<div style="font-size: 16px;margin-top: 0px; padding: 0px; height: 45px;max-width:75%;color:#0e6393;float: left;">{{ item.kcmc }}</div>
|
||||
<div style="font-size: 16px;margin-top: 0px; padding: 0px; height: 45px;float: right;">{{ item.skjs }}</div>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<div :id="item.id+`xs`" style="float:right;margin-top:20px;font-size: 12px;font-weight: 1;color:#0e6393;" @click="item.xqxx=true" v-show="!item.xqxx">查看详情</div>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<div v-show="item.xqxx">
|
||||
<a-row>
|
||||
<a-col :span="24">
|
||||
<div style="width:100%;text-align: center;line-height: 60px;">
|
||||
————线下上课地点————
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<div style="line-height: 15px;">
|
||||
{{ item.skdd }}
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<div style="float:right;font-size: 12px;font-weight: 1;color:#0e6393;" @click="item.xqxx=false">收起详情</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
||||
<a-row >
|
||||
<a-col >
|
||||
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
<baseModal ref="registerForm"/>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, computed, onMounted } from 'vue';
|
||||
import { dateUtil, formatToDate,formatToWeekOne,formatAddDate } from '/@/utils/dateUtil';
|
||||
|
||||
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
import { getUserId } from '/@/views/site/utils/index';
|
||||
import baseModal from '/@/views/site/renKeJiaoCheng/baseModal.vue';
|
||||
const registerForm = ref();
|
||||
let listData = ref<any>([]);
|
||||
let listNewData = ref<any>([]);
|
||||
|
||||
|
||||
/**
|
||||
* 列表接口
|
||||
* @param params
|
||||
*/
|
||||
const list = (params) => defHttp.get({ url: '/ktgl/kcKetangbiao/getStudentKclblist', params });
|
||||
|
||||
|
||||
onMounted(() => {
|
||||
let startTime = formatAddDate(new Date(),0);
|
||||
let endTime = formatAddDate(new Date(),8);
|
||||
list({ startTime,endTime,xh:getUserId(),pageSize:-1 }).then(res => {
|
||||
listData.value = res?.records;
|
||||
let newList = <any>[]
|
||||
let newMap = {}
|
||||
listData.value.forEach(x => {
|
||||
if(newMap[x.skrq]){
|
||||
newMap[x.skrq].push(x);
|
||||
}else{
|
||||
let list = <any>[];
|
||||
newMap[x.skrq] = list;
|
||||
list.push(x);
|
||||
}
|
||||
});
|
||||
// newList =
|
||||
let newKeys = Object.keys(newMap).sort((x1,x2) => Number(x1.replaceAll('-','')) - Number(x2.replaceAll('-','')));
|
||||
newKeys.forEach(key => {
|
||||
newList.push({
|
||||
time: key,
|
||||
list: newMap[key]
|
||||
})
|
||||
});
|
||||
listNewData.value = newList;
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 打开修改课程提醒的表单
|
||||
*/
|
||||
function openChangeKcPage(){
|
||||
registerForm.value.add();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.indexBackClass{
|
||||
background: #fff;
|
||||
}
|
||||
.yyyClass{
|
||||
background: #6cafda;font-weight: 600;color:#fff;border-radius: 5px;line-height: 23px;
|
||||
}
|
||||
.yyClass{
|
||||
background-color: #1c84c6;font-weight: 600;color:#fff;border-radius: 5px;line-height: 23px;
|
||||
}
|
||||
.bcClass{
|
||||
background-color: #1c84c6;font-weight: 600;border-radius: 5px;line-height: 23px;
|
||||
}
|
||||
|
||||
|
||||
.jtkcTitleClass{
|
||||
background-image: linear-gradient(to right ,#1c84c6, #67b4e5);
|
||||
color: white;
|
||||
line-height: 30px;
|
||||
padding: 3px 0 0 10px;
|
||||
font-weight: 600;
|
||||
height: 30px;
|
||||
}
|
||||
|
||||
.ant-divider-horizontal {
|
||||
display: flex;
|
||||
clear: both;
|
||||
width: 100%;
|
||||
min-width: 100%;
|
||||
margin: 0;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,140 @@
|
|||
<template>
|
||||
<div class="indexBackClass">
|
||||
<a-card class="rowGutter">
|
||||
<template #title>
|
||||
<span style="font-size: 24px;font-weight: bold;">今日课程列表</span>
|
||||
</template>
|
||||
<a-tabs v-model:activeKey="activeKey" type="card" @change="kclbCard">
|
||||
<a-tab-pane key="1">
|
||||
<template #tab>
|
||||
<div style="font-weight: 600;font-size: 16px;">正在上课</div>
|
||||
</template>
|
||||
<kclbZzsk ref="zzskModeal" @jrkclbLoad="jrkclbLoad"></kclbZzsk>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane key="2">
|
||||
<template #tab>
|
||||
<div style="font-weight: 600;font-size: 16px;">下一节课</div>
|
||||
</template>
|
||||
<kclbXyjk ref="xyjkModeal" @jrkclbLoad="jrkclbLoad"></kclbXyjk>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane key="3">
|
||||
<template #tab>
|
||||
<div style="font-weight: 600;font-size: 16px;">日课表</div>
|
||||
</template>
|
||||
<kclbRkb ref="rkbModeal" @jrkclbLoad="jrkclbLoad"></kclbRkb>
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
</a-card>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, computed, onMounted } from 'vue';
|
||||
import { dateUtil, formatToDate,formatToWeekOne } from '/@/utils/dateUtil';
|
||||
|
||||
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
import { getUserId } from '/@/views/site/utils/index';
|
||||
|
||||
|
||||
|
||||
import kclbZzsk from '/@/views/site/studentJrkb/kclbZzsk.vue';
|
||||
import kclbXyjk from '/@/views/site/studentJrkb/kclbXyjk.vue';
|
||||
import kclbRkb from '/@/views/site/studentJrkb/kclbRkb.vue';
|
||||
|
||||
|
||||
const tingKeZuJiAddModal = ref();
|
||||
const kcErrorreportIndexModal = ref();
|
||||
let listData = ref<any>([]);
|
||||
let sjtime = ref<any>('');
|
||||
let sjtitle = ref<any>('');
|
||||
|
||||
|
||||
const activeKey = ref('1');
|
||||
const zzskModeal = ref();
|
||||
const xyjkModeal = ref();
|
||||
const rkbModeal = ref();
|
||||
|
||||
function yykcLoad(){
|
||||
kclbCard(1)
|
||||
kclbCard(2)
|
||||
kclbCard(3)
|
||||
}
|
||||
function kclbCard(activeKey){
|
||||
if(activeKey==1){
|
||||
zzskModeal.value.zbLoadData();
|
||||
}else if(activeKey==2){
|
||||
xyjkModeal.value.zbLoadData();
|
||||
}else if(activeKey==3){
|
||||
rkbModeal.value.zbLoadData();
|
||||
}
|
||||
}
|
||||
function jrkclbLoad(){
|
||||
console.log(`🚀 ~ file: index.vue:1301111111:`)
|
||||
}
|
||||
|
||||
/**
|
||||
* 列表接口
|
||||
* @param params
|
||||
*/
|
||||
const list = (params) => defHttp.get({ url: '/ktgl/kcKetangbiao/getKclblist', params });
|
||||
|
||||
|
||||
onMounted(() => {
|
||||
let skrq = formatToDate(new Date());
|
||||
sjtime.value = skrq
|
||||
sjtitle.value = formatToWeekOne(new Date());
|
||||
list({ skrq,userId:getUserId() }).then(res => {
|
||||
console.log(`🚀 ~ file: index.vue:83 ~ list ~ res:`, res)
|
||||
listData.value = res?.records;
|
||||
console.log(`🚀 ~ file: index.vue:85 ~ list ~ listData.value:`, listData.value)
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 报错事件
|
||||
*/
|
||||
function handleBaocuo(item) {
|
||||
kcErrorreportIndexModal.value.disableSubmit = false;
|
||||
kcErrorreportIndexModal.value.add(item);
|
||||
}
|
||||
|
||||
/**
|
||||
* 评价
|
||||
* @param record
|
||||
*/
|
||||
function funpingjia(record){
|
||||
var item = {ketangbiaoid:record.id}
|
||||
tingKeZuJiAddModal.value.view(item)
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.indexBackClass{
|
||||
background: #fff;
|
||||
}
|
||||
.yyyClass{
|
||||
background: #6cafda;font-weight: 600;color:#fff;border-radius: 5px;line-height: 23px;
|
||||
}
|
||||
.yyClass{
|
||||
background-color: #1c84c6;font-weight: 600;color:#fff;border-radius: 5px;line-height: 23px;
|
||||
}
|
||||
.bcClass{
|
||||
background-color: #1c84c6;font-weight: 600;border-radius: 5px;line-height: 23px;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,161 @@
|
|||
<template>
|
||||
<div class="indexBackClass">
|
||||
<div style="margin-top: 20px;">
|
||||
<span style="margin-left: 30px;font-size: 24px;font-weight: 600;">今日课表</span>
|
||||
<span style="margin-left: 30px;color: #1c84c6;font-weight: 600;">{{sjtime}} {{ sjtitle }}</span>
|
||||
</div>
|
||||
<a-divider></a-divider>
|
||||
<div>
|
||||
<a-row :gutter="[16, 16]">
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 12 }" :lg="{ span: 6 }" v-for="(item, index) in listData"
|
||||
:key="index" style="padding: 20px;">
|
||||
<div style="border: 2px #eef1f2 solid;">
|
||||
<div>
|
||||
<div class="jtkcTitleClass">已上课程</div>
|
||||
<div style="width:100%;white-space:normal; word-break:break-all;overflow:hidden;padding: 15px;font-weight: 600;font-size: 16px; color: #a50a0a;">
|
||||
第<span>{{ item.hh }}</span>节
|
||||
</div>
|
||||
</div>
|
||||
<a-divider style="margin: 0px;color: #eef1f2;" />
|
||||
<div style="padding: 20px;font-weight: 600;">
|
||||
<a-row>
|
||||
<a-col :span="24">
|
||||
<div style="font-size: 16px;margin-top: 0px; padding: 0px; height: 45px;max-width:75%;color:#0e6393;float: left;">{{ item.kcmc }}</div>
|
||||
<div style="font-size: 16px;margin-top: 0px; padding: 0px; height: 45px;float: right;">{{ item.skjs }}</div>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<div>评价:</div>
|
||||
<div>
|
||||
<span>
|
||||
<a-rate v-model:value="item.pjxj" :tooltips="desc" @change="pingfenCli(item)" style="color: #b17215;"/>
|
||||
<span class="ant-rate-text">{{ desc[item.pjxj - 1] }}</span>
|
||||
</span>
|
||||
</div>
|
||||
<div v-show="item.pjxj">
|
||||
<div style="margin-top: 6px;">
|
||||
<a-textarea placeholder="请填写评价信息" v-model:value="item.textdeail" style="height: 80px;"></a-textarea>
|
||||
</div>
|
||||
<div style="margin-top: 6px;">
|
||||
<a-checkbox v-model:value="item.nmtj">匿名提交</a-checkbox>
|
||||
</div>
|
||||
<div style="text-align: center;margin-top: 6px;">
|
||||
<a-button class="yyClass" type="primary" @click="qxtjxx(item)">取消</a-button>
|
||||
<a-button class="yyClass" type="primary" @click="tjpjxxFun(item)" style="margin-left: 15px;">提交</a-button>
|
||||
</div>
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<div :id="item.id+`xs`" style="float:right;margin-top:20px;font-size: 12px;font-weight: 1;color:#0e6393;" @click="item.xqxx=true" v-show="!item.xqxx">查看详情</div>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<div v-show="item.xqxx">
|
||||
<a-row>
|
||||
<a-col :span="24">
|
||||
<div style="width:100%;text-align: center;line-height: 60px;">
|
||||
————线下上课地点————
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<div style="line-height: 15px;">
|
||||
{{ item.skdd }}
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<div style="float:right;font-size: 12px;font-weight: 1;color:#0e6393;" @click="item.xqxx=false">收起详情</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
<!-- 报错列表 -->
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, computed, onMounted } from 'vue';
|
||||
import { dateUtil, formatToDate,formatToWeekOne,formatAddDate } from '/@/utils/dateUtil';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
import { getUserId } from '/@/views/site/utils/index';
|
||||
|
||||
|
||||
let listData = ref<any>([]);
|
||||
let sjtime = ref<any>('');
|
||||
let sjtitle = ref<any>('');
|
||||
const desc = ref<string[]>(['1分 没有收获', '2分 收获很少', '3分 收获一般', '4分 收获较大', '5分 收获很大']);
|
||||
|
||||
|
||||
/**
|
||||
* 列表接口
|
||||
* @param params
|
||||
*/
|
||||
const list = (params) => defHttp.get({ url: '/ktgl/kcKetangbiao/getStudentKclblist', params });
|
||||
const save = (params) => defHttp.post({ url: '/ktgl/kcKetangbiao/add', params });
|
||||
|
||||
function pingfenCli(item){
|
||||
console.log(`🚀 ~ file: index.vue:108 ~ pingfenCli ~ item:`, item)
|
||||
item.nmtj = 1
|
||||
}
|
||||
/**
|
||||
* 取消提交信息
|
||||
*/
|
||||
function qxtjxx(item){
|
||||
item.pjxj = null
|
||||
}
|
||||
|
||||
function tjpjxxFun(item){
|
||||
console.log(`🚀 ~ file: index.vue:123 ~ tjpjxxFun ~ item:`, item)
|
||||
let ketangbiaoid = item.ketangbiaoid
|
||||
let sid = getUserId();
|
||||
let sname = "";
|
||||
let textdeail = item.textdeail;
|
||||
let sfnm = item.nmtj;
|
||||
let stars = item.pjxj;
|
||||
|
||||
// save({ ketangbiaoid,sid,sname,textdeail,sfnm,stars}).then(res => {
|
||||
// console.log(`🚀 ~ file: index.vue:83 ~ list ~ res:`, res)
|
||||
// });
|
||||
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
// let startTime = formatAddDate(new Date(),1);
|
||||
let skrq = formatAddDate(new Date(),8);
|
||||
sjtime.value = skrq
|
||||
sjtitle.value = formatToWeekOne(new Date());
|
||||
list({ skrq,xh:getUserId() }).then(res => {
|
||||
console.log(`🚀 ~ file: index.vue:83 ~ list ~ res:`, res)
|
||||
listData.value = res?.records;
|
||||
console.log(`🚀 ~ file: index.vue:85 ~ list ~ listData.value:`, listData.value)
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.indexBackClass{
|
||||
background: #fff;
|
||||
}
|
||||
.yyyClass{
|
||||
background: #6cafda;font-weight: 600;color:#fff;border-radius: 5px;line-height: 23px;
|
||||
}
|
||||
.yyClass{
|
||||
background-color: #1c84c6;font-weight: 600;color:#fff;border-radius: 5px;line-height: 23px;
|
||||
}
|
||||
.bcClass{
|
||||
background-color: #1c84c6;font-weight: 600;border-radius: 5px;line-height: 23px;
|
||||
}
|
||||
|
||||
.jtkcTitleClass{
|
||||
background-image: linear-gradient(to right ,rgba(10,10,10,0.42), rgba(158,166,185,0.57));
|
||||
color: white;
|
||||
line-height: 30px;
|
||||
padding: 3px 0 0 10px;
|
||||
font-weight: 600;
|
||||
}
|
||||
.ant-rate-star{
|
||||
margin-right: 0px;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,177 @@
|
|||
<template>
|
||||
<div>
|
||||
<a-row class="rowGutter" :gutter="[16, 16]">
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 6 }" v-for="(item, index) in listData"
|
||||
:key="index" style="margin-bottom: 40px;">
|
||||
<div style="border: 2px #eef1f2 solid;">
|
||||
<div>
|
||||
<div style="width: 100%;height: 20px;background-color: #1c84c6;"></div>
|
||||
<div style="width:100%;white-space:normal; word-break:break-all;overflow:hidden;padding: 10px;height: 70px;font-weight: 600;font-size: 16px;">
|
||||
{{ item.kcmc }}
|
||||
</div>
|
||||
</div>
|
||||
<a-divider style="margin: 0px;color: #eef1f2;" />
|
||||
<div style="padding: 20px;font-weight: 600;">
|
||||
<a-row>
|
||||
<a-col :span="16">
|
||||
<div style="height: 30px;font-size: 16px;">{{ item.skjs }}</div>
|
||||
<div style="height: 30px;font-size: 14px;">{{ item.kkdw }}</div>
|
||||
</a-col>
|
||||
<a-col :span="8" style="text-align: center;height: 70px;">
|
||||
<div style="color: #1c84c6;font-size: 24px;font-weight: 600;">{{ item.xkrs }}</div>
|
||||
<div style="font-size: 14px;">选课人数</div>
|
||||
</a-col>
|
||||
<a-col :span="24" style="margin-top:20px;">
|
||||
<div>
|
||||
第<span>{{ item.hh }}</span>节
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<div style="width:100%;text-align: center;">
|
||||
—————线下上课地点—————
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24">
|
||||
<div style="height: 60px;">
|
||||
{{ item.skdd }}
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col :span="24" v-if="listType == 1">
|
||||
<a-row style="text-align: center;">
|
||||
<a-col :span="8">
|
||||
<a-button type="primary" class="yyyClass" disabled >听课</a-button>
|
||||
</a-col>
|
||||
<a-col :span="8">
|
||||
<a-button type="primary" class="yyClass" @click="funpingjia(item)" >评价</a-button>
|
||||
</a-col>
|
||||
<a-col :span="8">
|
||||
<a-button type="primary" class="bcClass" @click="handleBaocuo(item)">报错</a-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col :span="24" v-else>
|
||||
<!-- <a-col :span="24"> -->
|
||||
<a-button type="primary" class="yyyClass" disabled v-if="item.sfyy==1 && item.isdeleted==0">已预约</a-button>
|
||||
<a-button type="primary" class="yyClass" @click="funYuyue(item)" v-if="item.sfyy==0 || (item.sfyy==1 && item.isdeleted==1)">预约</a-button>
|
||||
<a-button type="primary" class="bcClass" @click="handleBaocuo(item)">报错</a-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
</div>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 报错列表 -->
|
||||
<KcErrorreportIndexModal ref="kcErrorreportIndexModal"></KcErrorreportIndexModal>
|
||||
<addModalPage ref="tingKeZuJiAddModal"/>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref,watch,reactive,defineExpose } from 'vue';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
import { useMessage } from '/@/hooks/web/useMessage';
|
||||
import KcErrorreportIndexModal from '/@/views/kc/kcErrorreport/components/KcErrorreportIndexModal.vue'
|
||||
import { getUserId } from '/@/views/site/utils/index';
|
||||
import addModalPage from '/@/views/site/tingKeZuJi/components/addModal.vue';
|
||||
|
||||
//用户相关
|
||||
import { useUserStore } from '/@/store/modules/user';
|
||||
const userStore = useUserStore();
|
||||
const kcErrorreportIndexModal = ref();
|
||||
const tingKeZuJiAddModal = ref();
|
||||
|
||||
|
||||
const emit = defineEmits(['setTotal']);
|
||||
|
||||
const { createMessage } = useMessage();
|
||||
const confirmLoading = ref<boolean>(false);
|
||||
let listData = ref<any>([]);
|
||||
let listType = ref<any>(String);
|
||||
const list = (params) => defHttp.get({ url: '/ktgl/kcKetangbiao/getStudentKclblist', params });
|
||||
const props = defineProps({
|
||||
queryParam:{type:Object}
|
||||
});
|
||||
|
||||
//监听条件变化
|
||||
watch(() => props.queryParam, async (newRow, oldRow) => {
|
||||
var newRowa = ref<any>({});
|
||||
newRowa = newRow
|
||||
listType = newRowa.type
|
||||
},{ deep: true });
|
||||
//查询数据
|
||||
function rkbLoadData() {
|
||||
var newRow = ref<any>({});
|
||||
newRow = props.queryParam;
|
||||
newRow.xh = getUserId();
|
||||
newRow.pageSize = -1
|
||||
if(newRow.hh!=","){
|
||||
listType = newRow.type
|
||||
list(newRow).then(res => {
|
||||
listData.value = res.records;
|
||||
emit('setTotal', res.records.length);
|
||||
})
|
||||
}
|
||||
}
|
||||
//预约事件
|
||||
async function funYuyue(record){
|
||||
var params = {ketangbiaoid:record.id,userid:getUserId(),username:userStore?.getUserInfo?.realname,skrq:record.skrq,hh:record.hh,zbpx:record.zbpx,link:'',isdeleted:0};
|
||||
const isUpdate = ref<boolean>(false);
|
||||
await saveOrUpdate(params, isUpdate.value).then((res) => {
|
||||
if (res.success) {
|
||||
createMessage.success("预约成功");
|
||||
rkbLoadData();
|
||||
//加载数据
|
||||
} else {
|
||||
createMessage.warning(res.message);
|
||||
}
|
||||
})
|
||||
.finally(() => {
|
||||
confirmLoading.value = false;
|
||||
});
|
||||
}
|
||||
|
||||
function funpingjia(record){
|
||||
var item = {ketangbiaoid:record.id}
|
||||
tingKeZuJiAddModal.value.view(item)
|
||||
}
|
||||
/**
|
||||
* 报错事件
|
||||
*/
|
||||
function handleBaocuo(item) {
|
||||
kcErrorreportIndexModal.value.disableSubmit = false;
|
||||
kcErrorreportIndexModal.value.add(item);
|
||||
}
|
||||
|
||||
enum Api {
|
||||
list = '/kcYuyue/kcYuyue/list',
|
||||
save='/kcYuyue/kcYuyue/add',
|
||||
edit='/kcYuyue/kcYuyue/edit',
|
||||
deleteOne = '/kcYuyue/kcYuyue/delete',
|
||||
deleteBatch = '/kcYuyue/kcYuyue/deleteBatch',
|
||||
importExcel = '/kcYuyue/kcYuyue/importExcel',
|
||||
exportXls = '/kcYuyue/kcYuyue/exportXls',
|
||||
}
|
||||
|
||||
defineExpose({
|
||||
rkbLoadData
|
||||
});
|
||||
//提交报错信息
|
||||
const saveOrUpdate = (params, isUpdate) => {
|
||||
let url = isUpdate ? Api.edit : Api.save;
|
||||
console.log(`🚀 ~ file: kclbList.vue:107 ~ saveOrUpdate ~ url:`, url)
|
||||
return defHttp.post({ url: url, params }, { isTransformResponse: false });
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.yyyClass{
|
||||
background: #6cafda;float: left;font-weight: 600;color:#fff;border-radius: 5px;line-height: 23px;
|
||||
}
|
||||
.yyClass{
|
||||
background-color: #1c84c6;font-weight: 600;color:#fff;border-radius: 5px;line-height: 23px;
|
||||
}
|
||||
.bcClass{
|
||||
background-color: #1c84c6;float: right;font-weight: 600;border-radius: 5px;line-height: 23px;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,145 @@
|
|||
<template>
|
||||
<div>
|
||||
<div style="color:#1c84c6;font-weight: 600;font-size: 16px;">以下是 <span>{{queryParam.ywTime}}</span>全天 的课表</div>
|
||||
<a-row style="margin-top:20px;">
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||
<a-form-item label="" style="padding: 10px;">
|
||||
<a-date-picker :showTime="false" valueFormat="YYYY-MM-DD" :placeholder="'请选择结束时间'" style="width:100%;"
|
||||
v-model:value="queryParam.ywTime"></a-date-picker>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||
<a-form-item label="" style="padding: 10px;">
|
||||
<JDictSelectTag placeholder="请选择院系" v-model:value="queryParam.kkdw"
|
||||
:dictCode="`kc_kkdw_view,kkdw,kkdw`" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||
<a-form-item label="" style="padding: 10px;">
|
||||
<JDictSelectTag placeholder="请选择节次" v-model:value="queryParam.jieci" :dictCode="`kc_jieci_view,jieciname,jieci`" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||
<a-form-item label="" style="padding: 10px;">
|
||||
<JDictSelectTag placeholder="请选择课程性质" v-model:value="queryParam.kcxz" dictCode="kc_kcxz" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||
<a-form-item label="" style="padding: 10px;">
|
||||
<a-input placeholder="请输入课程或教师名称" v-model:value="queryParam.ywmc"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }" style="padding: 10px;">
|
||||
<a-button type="primary" @click="zbLoadData" style="background-color: rgb(26, 179, 148);">查询</a-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
||||
<a-tabs v-model:activeKey="rkbActiveKey" type="card" @change="zibiaoCard">
|
||||
<a-tab-pane key="1">
|
||||
<template #tab>
|
||||
<div>
|
||||
<div style="float: left;">完全线下课程</div>
|
||||
<div style="background-color: rgb(26, 179, 148);color: rgb(255, 255, 255);border-radius: 18px;min-width: 22px;text-align: center;float: left;margin-left: 10px;">
|
||||
{{xxkcTotal}}</div>
|
||||
</div>
|
||||
</template>
|
||||
<kclbList ref="wqxxkcModeal" :queryParam="xxkcqueryParam" @setTotal="xxkcTotal = $event;jzzyload()"></kclbList>
|
||||
|
||||
</a-tab-pane>
|
||||
<a-tab-pane key="2">
|
||||
<template #tab>
|
||||
<div>
|
||||
<div style="float: left;">腾讯会议</div>
|
||||
<div
|
||||
style="background-color: rgb(26, 179, 148);color: rgb(255, 255, 255);border-radius: 18px;width: 22px;text-align: center;float: left;margin-left: 10px;">
|
||||
{{txhyTotal}}</div>
|
||||
</div>
|
||||
</template>
|
||||
<kclbList ref="txhyModeal" :queryParam="txhyqueryParam" @setTotal="txhyTotal = $event;jzzyload()"></kclbList>
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref,onMounted,defineExpose } from 'vue';
|
||||
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||
import kclbList from '/@/views/site/studentJrkb/kclbList.vue';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
const rkbActiveKey = ref('1');
|
||||
const jclist = (queryParam) => defHttp.get({ url: '/kcJieci/kcJieci/getIndexJcList', params:queryParam });
|
||||
const queryParam = ref<any>({});
|
||||
const xxkcqueryParam = ref<any>({skxs:1});
|
||||
const txhyqueryParam = ref<any>({zbpx:1});
|
||||
const xxkcTotal = ref<any>(0);
|
||||
const txhyTotal = ref<any>(0);
|
||||
const wqxxkcModeal = ref();
|
||||
const txhyModeal = ref();
|
||||
const emit = defineEmits(['jrkclbLoad']);
|
||||
|
||||
function zbLoadData() {
|
||||
//----------------------线下课程-------------------
|
||||
xxkcqueryParam.value.skrq = queryParam.value.ywTime
|
||||
if(queryParam.value.jieci){
|
||||
xxkcqueryParam.value.hh = queryParam.value.jieci+","+queryParam.value.jieci.split("、").join(',')
|
||||
}
|
||||
xxkcqueryParam.value.kkdw = queryParam.value.kkdw
|
||||
xxkcqueryParam.value.ywmc = queryParam.value.ywmc
|
||||
xxkcqueryParam.value.kcxz = queryParam.value.kcxz
|
||||
xxkcqueryParam.value.skxs = '1'
|
||||
|
||||
//----------------------腾讯会议-------------------
|
||||
txhyqueryParam.value.skrq = queryParam.value.ywTime
|
||||
if(queryParam.value.jieci){
|
||||
txhyqueryParam.value.hh = queryParam.value.jieci+","+queryParam.value.jieci.split("、").join(',')
|
||||
}
|
||||
txhyqueryParam.value.kkdw = queryParam.value.kkdw
|
||||
txhyqueryParam.value.ywmc = queryParam.value.ywmc
|
||||
txhyqueryParam.value.kcxz = queryParam.value.kcxz
|
||||
txhyqueryParam.value.zbpx ='1'
|
||||
txhyqueryParam.value.ywskxs = '1'
|
||||
|
||||
zibiaoCard(1);
|
||||
}
|
||||
/**
|
||||
* 加载主页数据
|
||||
*/
|
||||
function jzzyload(){
|
||||
emit('jrkclbLoad');
|
||||
}
|
||||
|
||||
function zibiaoCard(index){
|
||||
if(index == 1){
|
||||
wqxxkcModeal.value.rkbLoadData();
|
||||
}else if(index == 2){
|
||||
txhyModeal.value.rkbLoadData();
|
||||
console.log(`🚀 ~ file: kclbZzsk.vue:86 ~ zibiaoCard ~ txhyModeal.value:`, txhyModeal.value)
|
||||
}
|
||||
}
|
||||
defineExpose({
|
||||
zbLoadData
|
||||
});
|
||||
//进入就加载
|
||||
onMounted(() => {
|
||||
jclist(queryParam.value).then(res=>{
|
||||
var list = res
|
||||
queryParam.value.ywTime = list[1].kssj
|
||||
zbLoadData()
|
||||
})
|
||||
});
|
||||
</script>
|
||||
<style scoped lang="less">
|
||||
.ant-form-item {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: rgba(0, 0, 0, 0.85);
|
||||
font-size: 14px;
|
||||
font-variant: tabular-nums;
|
||||
line-height: 1.5715;
|
||||
list-style: none;
|
||||
font-feature-settings: tnum;
|
||||
vertical-align: top;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,125 @@
|
|||
<template>
|
||||
<div>
|
||||
<div style="color:#1c84c6;font-weight: 600;font-size: 16px;">
|
||||
以下是 <span>{{queryParam.ywTime}}</span><span>第{{queryParam.jieci}}节课</span> 的课表
|
||||
</div>
|
||||
<a-row style="margin-top:20px;">
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||
<a-form-item label="" style="padding: 10px;">
|
||||
<JDictSelectTag placeholder="请选择院系" v-model:value="queryParam.kkdw"
|
||||
:dictCode="`kc_kkdw_view,kkdw,kkdw`" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||
<a-form-item label="" style="padding: 10px;">
|
||||
<a-input placeholder="请输入课程或教师名称" v-model:value="queryParam.ywmc"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }" style="padding: 10px;">
|
||||
<a-button type="primary" @click="zbLoadData" style="background-color: rgb(26, 179, 148);">查询</a-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
||||
<a-tabs v-model:activeKey="rkbActiveKey" type="card" @change="zibiaoCard">
|
||||
<a-tab-pane key="1">
|
||||
<template #tab>
|
||||
<div>
|
||||
<div style="float: left;">完全线下课程</div>
|
||||
<div style="background-color: rgb(26, 179, 148);color: rgb(255, 255, 255);border-radius: 18px;width: 22px;text-align: center;float: left;margin-left: 10px;">
|
||||
{{xxkcTotal}}</div>
|
||||
</div>
|
||||
</template>
|
||||
<kclbList ref="wqxxkcModeal" :queryParam="xxkcqueryParam" @setTotal="xxkcTotal = $event;jzzyload()"></kclbList>
|
||||
|
||||
</a-tab-pane>
|
||||
<a-tab-pane key="2">
|
||||
<template #tab>
|
||||
<div>
|
||||
<div style="float: left;">腾讯会议</div>
|
||||
<div
|
||||
style="background-color: rgb(26, 179, 148);color: rgb(255, 255, 255);border-radius: 18px;width: 22px;text-align: center;float: left;margin-left: 10px;">
|
||||
{{txhyTotal}}</div>
|
||||
</div>
|
||||
</template>
|
||||
<kclbList ref="txhyModeal" :queryParam="txhyqueryParam" @setTotal="txhyTotal = $event;jzzyload()"></kclbList>
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref,onMounted,defineExpose } from 'vue';
|
||||
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||
import kclbList from '/@/views/site/studentJrkb/kclbList.vue';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
const rkbActiveKey = ref('1');
|
||||
const jclist = (queryParam) => defHttp.get({ url: '/kcJieci/kcJieci/getIndexJcList', params:queryParam });
|
||||
const queryParam = ref<any>({});
|
||||
const xxkcqueryParam = ref<any>({skxs:1});
|
||||
const txhyqueryParam = ref<any>({zbpx:1});
|
||||
const xxkcTotal = ref<any>(0);
|
||||
const txhyTotal = ref<any>(0);
|
||||
const wqxxkcModeal = ref();
|
||||
const txhyModeal = ref();
|
||||
const emit = defineEmits(['jrkclbLoad']);
|
||||
|
||||
function zbLoadData() {
|
||||
//----------------------线下课程-------------------
|
||||
xxkcqueryParam.value.skrq = queryParam.value.ywTime
|
||||
xxkcqueryParam.value.hh = queryParam.value.jieci+","+queryParam.value.jieci.split("、").join(',')
|
||||
xxkcqueryParam.value.kkdw = queryParam.value.kkdw
|
||||
xxkcqueryParam.value.ywmc = queryParam.value.ywmc
|
||||
xxkcqueryParam.value.skxs = '1'
|
||||
xxkcqueryParam.value.type = 0
|
||||
|
||||
//----------------------腾讯会议-------------------
|
||||
txhyqueryParam.value.skrq = queryParam.value.ywTime
|
||||
txhyqueryParam.value.hh = queryParam.value.jieci+","+queryParam.value.jieci.split("、").join(',')
|
||||
txhyqueryParam.value.kkdw = queryParam.value.kkdw
|
||||
txhyqueryParam.value.ywmc = queryParam.value.ywmc
|
||||
txhyqueryParam.value.zbpx ='1'
|
||||
txhyqueryParam.value.ywskxs = '1'
|
||||
xxkcqueryParam.value.type = 0
|
||||
zibiaoCard(1);
|
||||
}
|
||||
/**
|
||||
* 加载主页数据
|
||||
*/
|
||||
function jzzyload(){
|
||||
emit('jrkclbLoad');
|
||||
}
|
||||
function zibiaoCard(index){
|
||||
if(index == 1){
|
||||
wqxxkcModeal.value.rkbLoadData();
|
||||
}else if(index == 2){
|
||||
txhyModeal.value.rkbLoadData();
|
||||
console.log(`🚀 ~ file: kclbZzsk.vue:86 ~ zibiaoCard ~ txhyModeal.value:`, txhyModeal.value)
|
||||
}
|
||||
}
|
||||
defineExpose({
|
||||
zbLoadData
|
||||
});
|
||||
//进入就加载
|
||||
onMounted(() => {
|
||||
jclist(queryParam.value).then(res=>{
|
||||
var list = res
|
||||
queryParam.value.ywTime = list[1].kssj
|
||||
queryParam.value.jieci = list[1].jieci
|
||||
zbLoadData()
|
||||
})
|
||||
});
|
||||
</script>
|
||||
<style scoped lang="less">
|
||||
.ant-form-item {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: rgba(0, 0, 0, 0.85);
|
||||
font-size: 14px;
|
||||
font-variant: tabular-nums;
|
||||
line-height: 1.5715;
|
||||
list-style: none;
|
||||
font-feature-settings: tnum;
|
||||
vertical-align: top;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,131 @@
|
|||
<template>
|
||||
<div>
|
||||
<div style="color:#1c84c6;font-weight: 600;font-size: 16px;" v-show="queryParam.jieci">
|
||||
以下是 <span>{{queryParam.ywTime}}</span><span>第{{queryParam.jieci}}节课</span> 的课表
|
||||
</div>
|
||||
|
||||
<div style="color:#1c84c6;font-weight: 600;font-size: 16px;" v-show="!queryParam.jieci">
|
||||
现在是 <span>{{queryParam.ywTime}}</span> 非上课时段
|
||||
</div>
|
||||
|
||||
|
||||
<a-row style="margin-top:20px;">
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||
<a-form-item label="" style="padding: 10px;">
|
||||
<JDictSelectTag placeholder="请选择院系" v-model:value="queryParam.kkdw"
|
||||
:dictCode="`kc_kkdw_view,kkdw,kkdw`" />
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||
<a-form-item label="" style="padding: 10px;">
|
||||
<a-input placeholder="请输入课程或教师名称" v-model:value="queryParam.ywmc"></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }" style="padding: 10px;">
|
||||
<a-button type="primary" @click="zbLoadData" style="background-color: rgb(26, 179, 148);">查询</a-button>
|
||||
</a-col>
|
||||
</a-row>
|
||||
|
||||
<a-tabs v-model:activeKey="rkbActiveKey" type="card" @change="zibiaoCard">
|
||||
<a-tab-pane key="1">
|
||||
<template #tab>
|
||||
<div>
|
||||
<div style="float: left;">完全线下课程</div>
|
||||
<div style="background-color: rgb(26, 179, 148);color: rgb(255, 255, 255);border-radius: 18px;width: 22px;text-align: center;float: left;margin-left: 10px;">
|
||||
{{xxkcTotal}}</div>
|
||||
</div>
|
||||
</template>
|
||||
<kclbList ref="wqxxkcModeal" :queryParam="xxkcqueryParam" @setTotal="xxkcTotal = $event;jzzyload()"></kclbList>
|
||||
|
||||
</a-tab-pane>
|
||||
<a-tab-pane key="2">
|
||||
<template #tab>
|
||||
<div>
|
||||
<div style="float: left;">腾讯会议</div>
|
||||
<div
|
||||
style="background-color: rgb(26, 179, 148);color: rgb(255, 255, 255);border-radius: 18px;width: 22px;text-align: center;float: left;margin-left: 10px;">
|
||||
{{txhyTotal}}</div>
|
||||
</div>
|
||||
</template>
|
||||
<kclbList ref="txhyModeal" :queryParam="txhyqueryParam" @setTotal="txhyTotal = $event;jzzyload()"></kclbList>
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref,onMounted,defineExpose } from 'vue';
|
||||
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||
import kclbList from '/@/views/site/studentJrkb/kclbList.vue';
|
||||
import { defHttp } from '/@/utils/http/axios';
|
||||
|
||||
const emit = defineEmits(['jrkclbLoad']);
|
||||
const rkbActiveKey = ref('1');
|
||||
const jclist = (queryParam) => defHttp.get({ url: '/kcJieci/kcJieci/getIndexJcList', params:queryParam });
|
||||
const queryParam = ref<any>({});
|
||||
const xxkcqueryParam = ref<any>({});
|
||||
const txhyqueryParam = ref<any>({});
|
||||
const xxkcTotal = ref<any>(0);
|
||||
const txhyTotal = ref<any>(0);
|
||||
const wqxxkcModeal = ref();
|
||||
const txhyModeal = ref();
|
||||
function zbLoadData() {
|
||||
//----------------------线下课程-------------------
|
||||
xxkcqueryParam.value.skrq = queryParam.value.ywTime
|
||||
xxkcqueryParam.value.hh = queryParam.value.jieci+","+queryParam.value.jieci.split("、").join(',')
|
||||
xxkcqueryParam.value.kkdw = queryParam.value.kkdw
|
||||
xxkcqueryParam.value.ywmc = queryParam.value.ywmc
|
||||
xxkcqueryParam.value.skxs = 1
|
||||
xxkcqueryParam.value.type = 1
|
||||
|
||||
//----------------------腾讯会议-------------------
|
||||
txhyqueryParam.value.skrq = queryParam.value.ywTime
|
||||
txhyqueryParam.value.hh = queryParam.value.jieci+","+queryParam.value.jieci.split("、").join(',')
|
||||
txhyqueryParam.value.kkdw = queryParam.value.kkdw
|
||||
txhyqueryParam.value.ywmc = queryParam.value.ywmc
|
||||
txhyqueryParam.value.zbpx = 1
|
||||
txhyqueryParam.value.ywskxs = '1'
|
||||
xxkcqueryParam.value.type = 1
|
||||
zibiaoCard(1);
|
||||
}
|
||||
/**
|
||||
* 加载主页数据
|
||||
*/
|
||||
function jzzyload(){
|
||||
emit('jrkclbLoad');
|
||||
}
|
||||
function zibiaoCard(index){
|
||||
if(index == 1){
|
||||
wqxxkcModeal.value.rkbLoadData();
|
||||
}else if(index == 2){
|
||||
txhyModeal.value.rkbLoadData();
|
||||
console.log(`🚀 ~ file: kclbZzsk.vue:86 ~ zibiaoCard ~ txhyModeal.value:`, txhyModeal.value)
|
||||
}
|
||||
}
|
||||
defineExpose({
|
||||
zbLoadData
|
||||
});
|
||||
//进入就加载
|
||||
onMounted(() => {
|
||||
jclist(queryParam.value).then(res=>{
|
||||
var list = res
|
||||
queryParam.value.ywTime = list[0].kssj
|
||||
queryParam.value.jieci = list[0].jieci
|
||||
zbLoadData()
|
||||
})
|
||||
});
|
||||
</script>
|
||||
<style scoped lang="less">
|
||||
.ant-form-item {
|
||||
box-sizing: border-box;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: rgba(0, 0, 0, 0.85);
|
||||
font-size: 14px;
|
||||
font-variant: tabular-nums;
|
||||
line-height: 1.5715;
|
||||
list-style: none;
|
||||
font-feature-settings: tnum;
|
||||
vertical-align: top;
|
||||
}
|
||||
</style>
|
|
@ -57,7 +57,7 @@
|
|||
</a-col>
|
||||
<a-col :xs="{ span: 8 }" :sm="{ span: 8 }" :lg="{ span: 8 }">
|
||||
<div class="numberBlob">
|
||||
<div class="numSpan blue">{{ tjData?.yiKaiKeTang?.btkktnum??0 }}</div>
|
||||
<div class="numSpan blue">{{ tjData?.yiKaiKeTangNew?.btkktnum??0 }}</div>
|
||||
<div class="numberName">
|
||||
<!-- <StockOutlined class="blue"/> -->
|
||||
<i class="fa fa-bolt blue"></i>
|
||||
|
@ -67,7 +67,7 @@
|
|||
</a-col>
|
||||
<a-col :xs="{ span: 8 }" :sm="{ span: 8 }" :lg="{ span: 8 }">
|
||||
<div class="numberBlob">
|
||||
<div class="numSpan orange">{{ tjData?.yiKaiKeTang?.tkrcnum??0 }}</div>
|
||||
<div class="numSpan orange">{{ tjData?.yiKaiKeTangNew?.tkrcnum??0 }}</div>
|
||||
<div class="numberName">
|
||||
<!-- <RiseOutlined class="orange"/> -->
|
||||
<i class="fa fa-level-up orange"></i>
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
import { defHttp } from '/@/utils/http/axios';
|
||||
|
||||
export const getUserId = () => {
|
||||
return '2016900057';
|
||||
return '2022010920';
|
||||
}
|
||||
|
||||
export const getUserSf = () => {
|
||||
return 'S';
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue