添加功能
This commit is contained in:
parent
d6f4305e58
commit
b52e6415e1
|
@ -0,0 +1,41 @@
|
||||||
|
|
||||||
|
#siteMain {
|
||||||
|
// font-size: ;
|
||||||
|
height: 100%;
|
||||||
|
background: #f3f3f4;
|
||||||
|
#maxSite {
|
||||||
|
//最大宽度
|
||||||
|
max-width: 1170px;
|
||||||
|
background: #fff;
|
||||||
|
//居中
|
||||||
|
margin: 0 auto;
|
||||||
|
.rowGutter{
|
||||||
|
margin-top: 1rem;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-layout-header {
|
||||||
|
color: #fff;
|
||||||
|
background: #1ab394;
|
||||||
|
}
|
||||||
|
.ant-layout-footer {
|
||||||
|
line-height: 1.5;
|
||||||
|
background: #FFF;
|
||||||
|
}
|
||||||
|
.ant-layout-sider {
|
||||||
|
color: #fff;
|
||||||
|
line-height: 120px;
|
||||||
|
background: #3ba0e9;
|
||||||
|
}
|
||||||
|
.ant-layout-content {
|
||||||
|
min-height: 120px;
|
||||||
|
color: #000;
|
||||||
|
line-height: 120px;
|
||||||
|
background: #f3f3f4;
|
||||||
|
}
|
||||||
|
.dictBox :deep(.ant-select) {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -38,7 +38,16 @@ const site: AppRouteModule = {
|
||||||
component: () => import('/@/views/site/tingKeZuJi/more.vue'),
|
component: () => import('/@/views/site/tingKeZuJi/more.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
// affix: true,
|
// affix: true,
|
||||||
title: '更多',
|
title: '听课足迹',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: 'yuyuekechengMore',
|
||||||
|
name: 'yuyuekechengMore',
|
||||||
|
component: () => import('/@/views/site/yuYueKeCheng/more.vue'),
|
||||||
|
meta: {
|
||||||
|
// affix: true,
|
||||||
|
title: '预约课程',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -5,5 +5,21 @@
|
||||||
</a-layout-footer>
|
</a-layout-footer>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
</script>
|
||||||
|
<style scoped lang="less">
|
||||||
|
|
||||||
</script>
|
.footerLeft{
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 700;
|
||||||
|
float:left;
|
||||||
|
}
|
||||||
|
.footerRight{
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 700;
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
|
.ant-layout-footer{
|
||||||
|
line-height: 0;
|
||||||
|
background: #FFF;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -39,7 +39,7 @@
|
||||||
<!-- 听课足迹 -->
|
<!-- 听课足迹 -->
|
||||||
<tingKeZuJiPage/>
|
<tingKeZuJiPage/>
|
||||||
<!-- 预约课程 -->
|
<!-- 预约课程 -->
|
||||||
<yuYueKeChengPage/>
|
<yuYueKeChengPage ref="yykcModeal" @ortherLoad="yykcLoad"/>
|
||||||
<!-- 精彩公开课 -->
|
<!-- 精彩公开课 -->
|
||||||
<jingCaiGongKaiKePage/>
|
<jingCaiGongKaiKePage/>
|
||||||
<!-- 今日课程列表 -->
|
<!-- 今日课程列表 -->
|
||||||
|
@ -47,24 +47,24 @@
|
||||||
<template #title>
|
<template #title>
|
||||||
<span style="font-size: 24px;font-weight: bold;">今日课程列表</span>
|
<span style="font-size: 24px;font-weight: bold;">今日课程列表</span>
|
||||||
</template>
|
</template>
|
||||||
<a-tabs v-model:activeKey="activeKey" type="card">
|
<a-tabs v-model:activeKey="activeKey" type="card" @change="kclbCard">
|
||||||
<a-tab-pane key="1">
|
<a-tab-pane key="1">
|
||||||
<template #tab>
|
<template #tab>
|
||||||
<div style="font-weight: 600;font-size: 16px;">正在上课</div>
|
<div style="font-weight: 600;font-size: 16px;">正在上课</div>
|
||||||
</template>
|
</template>
|
||||||
<kclbZzsk ref="zzskModeal"></kclbZzsk>
|
<kclbZzsk ref="zzskModeal" @jrkclbLoad="jrkclbLoad"></kclbZzsk>
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
<a-tab-pane key="2">
|
<a-tab-pane key="2">
|
||||||
<template #tab>
|
<template #tab>
|
||||||
<div style="font-weight: 600;font-size: 16px;">下一节课</div>
|
<div style="font-weight: 600;font-size: 16px;">下一节课</div>
|
||||||
</template>
|
</template>
|
||||||
<kclbXyjk ref="xyjkModeal"></kclbXyjk>
|
<kclbXyjk ref="xyjkModeal" @jrkclbLoad="jrkclbLoad"></kclbXyjk>
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
<a-tab-pane key="3">
|
<a-tab-pane key="3">
|
||||||
<template #tab>
|
<template #tab>
|
||||||
<div style="font-weight: 600;font-size: 16px;">日课表</div>
|
<div style="font-weight: 600;font-size: 16px;">日课表</div>
|
||||||
</template>
|
</template>
|
||||||
<kclbRkb ref="rkbModeal"></kclbRkb>
|
<kclbRkb ref="rkbModeal" @jrkclbLoad="jrkclbLoad"></kclbRkb>
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
</a-tabs>
|
</a-tabs>
|
||||||
|
|
||||||
|
@ -98,7 +98,11 @@
|
||||||
import kclbRkb from '/@/views/site/jrkclb/kclbRkb.vue';
|
import kclbRkb from '/@/views/site/jrkclb/kclbRkb.vue';
|
||||||
|
|
||||||
const activeKey = ref('1');
|
const activeKey = ref('1');
|
||||||
|
const zzskModeal = ref();
|
||||||
|
const xyjkModeal = ref();
|
||||||
|
const rkbModeal = ref();
|
||||||
|
const yykcModeal = ref();
|
||||||
|
|
||||||
// reactive
|
// reactive
|
||||||
let list = reactive({ list: [] });
|
let list = reactive({ list: [] });
|
||||||
//针对基础类型
|
//针对基础类型
|
||||||
|
@ -119,6 +123,29 @@
|
||||||
i.value++;
|
i.value++;
|
||||||
// list.list.push({ key: i.value });
|
// list.list.push({ key: i.value });
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 刷新预约课程列表数据
|
||||||
|
*/
|
||||||
|
function jrkclbLoad(){
|
||||||
|
yykcModeal.value.newFunction()
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 刷新今日课程列表数据
|
||||||
|
*/
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//-----------------------------yangjun-----------------------
|
//-----------------------------yangjun-----------------------
|
||||||
//-----------------------------yangjun-----------------------
|
//-----------------------------yangjun-----------------------
|
||||||
|
|
|
@ -11,18 +11,18 @@
|
||||||
{{funSj(item.rq)}} {{item.kssj}}-{{item.jssj}}
|
{{funSj(item.rq)}} {{item.kssj}}-{{item.jssj}}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<a :href="item.jslj?item.jslj:''" target="_blank">
|
<a href="javascript:void(0)" @click="funGkk(item.jslj)">
|
||||||
<div>
|
<div>
|
||||||
<span style="position: absolute;top: 4rem;border-radius: 0 10px 10px 0;background: #1c84c6;color: #FFF;padding: 3px 10px 3px 5px;z-index: 9999;">公开课预告</span>
|
<span style="position: absolute;top: 4rem;border-radius: 0 10px 10px 0;background: #1c84c6;color: #FFF;padding: 3px 10px 3px 5px;z-index: 2;">公开课预告</span>
|
||||||
<img style="border-radius: 10px 10px 0 0;margin-bottom: 8px;" v-if="!item.tpmc" src="/resource/img/kc/moren.jpg" height="170px"/>
|
<img style="border-radius: 10px 10px 0 0;margin-bottom: 8px;" v-if="!item.tpmc" src="/resource/img/kc/moren.jpg" height="170px"/>
|
||||||
<AImage style="border-radius: 10px 10px 0 0;" v-else :src="getFileAccessHttpUrl(item.tpmc)" :width="'100%'" height="170px"/>
|
<AImage style="border-radius: 10px 10px 0 0;" v-else :src="getFileAccessHttpUrl(item.tpmc)" :preview="false" :width="'100%'" height="170px"/>
|
||||||
</div>
|
</div>
|
||||||
<div style="padding: 10px 1rem 1rem;background: #f3f3f3;">
|
<div style="padding: 10px 1rem 1rem;background: #f3f3f3;">
|
||||||
<div class="ggkTitle ggkCcxs" :title="item.hxr +`·`+item.hxrlb">{{item.hxr}} · {{item.hxrlb}}</div>
|
<div class="ggkTitle ggkCcxs" :title="item.hxr +`·`+item.hxrlb">{{item.hxr}} · {{item.hxrlb}}</div>
|
||||||
<div class="ggkTwoTitle ggkCcxs" :title="item.zc +`·`+item.xy">{{item.zc}} {{item.xy}}</div>
|
<div class="ggkTwoTitle ggkCcxs" :title="item.zc +`·`+item.xy">{{item.zc}} {{item.xy}}</div>
|
||||||
<div class="ggkThreeTitle ggkCcxs">{{item.ktzt}}</div>
|
<div class="ggkThreeTitle ggkCcxs">{{item.ktzt}}</div>
|
||||||
<div class="ggkFourTitle">0人听课</div>
|
<div class="ggkFourTitle">0人听课</div>
|
||||||
<div><a-button type="primary" class="ggkButton" target="_blank" :href="item.kclj" :disabled="index%2==0">进入课堂</a-button></div>
|
<div><a-button type="primary" class="ggkButton" target="_blank" :href="item.kclj" >进入课堂</a-button></div>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -57,11 +57,26 @@ const { createMessage } = useMessage();
|
||||||
const queryParam = ref<any>({});
|
const queryParam = ref<any>({});
|
||||||
let pageNo = 1
|
let pageNo = 1
|
||||||
let current = 0
|
let current = 0
|
||||||
|
/**
|
||||||
|
* 公开课点击教师链接
|
||||||
|
* @param jslj 教师链接
|
||||||
|
*/
|
||||||
|
function funGkk(jslj){
|
||||||
|
if(jslj){
|
||||||
|
window.open(jslj,"_blank")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 公开课收起
|
||||||
|
*/
|
||||||
function funShouqi(){
|
function funShouqi(){
|
||||||
listData.value = []
|
listData.value = []
|
||||||
pageNo = 1
|
pageNo = 1
|
||||||
loadData()
|
loadData()
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 加载更多公开课
|
||||||
|
*/
|
||||||
function funMore(){
|
function funMore(){
|
||||||
if(current>pageNo){
|
if(current>pageNo){
|
||||||
pageNo ++;
|
pageNo ++;
|
||||||
|
@ -74,6 +89,9 @@ function funMore(){
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
loadData()
|
loadData()
|
||||||
});
|
});
|
||||||
|
/**
|
||||||
|
* 加载数据
|
||||||
|
*/
|
||||||
function loadData(){
|
function loadData(){
|
||||||
queryParam.value.sfxs = '1'
|
queryParam.value.sfxs = '1'
|
||||||
queryParam.value.pageSize = '4'
|
queryParam.value.pageSize = '4'
|
||||||
|
@ -85,6 +103,10 @@ function loadData(){
|
||||||
current = res.size
|
current = res.size
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 事件格式化
|
||||||
|
* @param rq 日期
|
||||||
|
*/
|
||||||
function funSj(rq){
|
function funSj(rq){
|
||||||
var sj = dateFormat(new Date(rq), 'MM月dd日')
|
var sj = dateFormat(new Date(rq), 'MM月dd日')
|
||||||
return sj;
|
return sj;
|
||||||
|
|
|
@ -53,10 +53,11 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref,watch,reactive } from 'vue';
|
import { ref,watch,reactive,defineExpose } 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 KcErrorreportIndexModal from '/@/views/kc/kcErrorreport/components/KcErrorreportIndexModal.vue'
|
import KcErrorreportIndexModal from '/@/views/kc/kcErrorreport/components/KcErrorreportIndexModal.vue'
|
||||||
|
import { getUserId } from '/@/views/site/utils/index';
|
||||||
|
|
||||||
//用户相关
|
//用户相关
|
||||||
import { useUserStore } from '/@/store/modules/user';
|
import { useUserStore } from '/@/store/modules/user';
|
||||||
|
@ -75,11 +76,15 @@ const props = defineProps({
|
||||||
});
|
});
|
||||||
|
|
||||||
//监听条件变化
|
//监听条件变化
|
||||||
watch(() => props.queryParam, async (newRow, oldRow) => {
|
// watch(() => props.queryParam, async (newRow, oldRow) => {
|
||||||
rkbLoadData(newRow)
|
// rkbLoadData()
|
||||||
},{ deep: true });
|
// },{ deep: true });
|
||||||
//查询数据
|
//查询数据
|
||||||
function rkbLoadData(newRow) {
|
function rkbLoadData() {
|
||||||
|
var newRow = ref<any>({});
|
||||||
|
console.log(`🚀 ~ fi1111111111111111111111111111ow:`)
|
||||||
|
newRow = props.queryParam;
|
||||||
|
newRow.userid = getUserId();
|
||||||
newRow.pageSize = -1
|
newRow.pageSize = -1
|
||||||
list(newRow).then(res => {
|
list(newRow).then(res => {
|
||||||
listData.value = res.records;
|
listData.value = res.records;
|
||||||
|
@ -88,12 +93,12 @@ function rkbLoadData(newRow) {
|
||||||
}
|
}
|
||||||
//预约事件
|
//预约事件
|
||||||
async function funYuyue(record){
|
async function funYuyue(record){
|
||||||
var params = {ketangbiaoid:record.id,userid:userStore?.getUserInfo?.username,username:userStore?.getUserInfo?.realname,skrq:record.skrq,hh:record.hh,zbpx:record.zbpx,link:'',isdeleted:0};
|
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);
|
const isUpdate = ref<boolean>(false);
|
||||||
await saveOrUpdate(params, isUpdate.value).then((res) => {
|
await saveOrUpdate(params, isUpdate.value).then((res) => {
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
createMessage.success("预约成功");
|
createMessage.success("预约成功");
|
||||||
rkbLoadData(props.queryParam);
|
rkbLoadData();
|
||||||
//加载数据
|
//加载数据
|
||||||
} else {
|
} else {
|
||||||
createMessage.warning(res.message);
|
createMessage.warning(res.message);
|
||||||
|
@ -122,12 +127,17 @@ enum Api {
|
||||||
importExcel = '/kcYuyue/kcYuyue/importExcel',
|
importExcel = '/kcYuyue/kcYuyue/importExcel',
|
||||||
exportXls = '/kcYuyue/kcYuyue/exportXls',
|
exportXls = '/kcYuyue/kcYuyue/exportXls',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
defineExpose({
|
||||||
|
rkbLoadData
|
||||||
|
});
|
||||||
//提交报错信息
|
//提交报错信息
|
||||||
const saveOrUpdate = (params, isUpdate) => {
|
const saveOrUpdate = (params, isUpdate) => {
|
||||||
let url = isUpdate ? Api.edit : Api.save;
|
let url = isUpdate ? Api.edit : Api.save;
|
||||||
console.log(`🚀 ~ file: kclbList.vue:107 ~ saveOrUpdate ~ url:`, url)
|
console.log(`🚀 ~ file: kclbList.vue:107 ~ saveOrUpdate ~ url:`, url)
|
||||||
return defHttp.post({ url: url, params }, { isTransformResponse: false });
|
return defHttp.post({ url: url, params }, { isTransformResponse: false });
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
|
|
@ -2,39 +2,39 @@
|
||||||
<div>
|
<div>
|
||||||
<div style="color:#1c84c6;font-weight: 600;font-size: 16px;">以下是 <span>{{queryParam.ywTime}}</span>全天 的课表</div>
|
<div style="color:#1c84c6;font-weight: 600;font-size: 16px;">以下是 <span>{{queryParam.ywTime}}</span>全天 的课表</div>
|
||||||
<a-row style="margin-top:20px;">
|
<a-row style="margin-top:20px;">
|
||||||
<a-col :span="4">
|
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||||
<a-form-item label="" style="padding: 10px;">
|
<a-form-item label="" style="padding: 10px;">
|
||||||
<a-date-picker :showTime="false" valueFormat="YYYY-MM-DD" :placeholder="'请选择结束时间'"
|
<a-date-picker :showTime="false" valueFormat="YYYY-MM-DD" :placeholder="'请选择结束时间'" style="width:100%;"
|
||||||
v-model:value="queryParam.ywTime"></a-date-picker>
|
v-model:value="queryParam.ywTime"></a-date-picker>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="4">
|
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||||
<a-form-item label="" style="padding: 10px;">
|
<a-form-item label="" style="padding: 10px;">
|
||||||
<JDictSelectTag placeholder="请选择院系" v-model:value="queryParam.kkdw"
|
<JDictSelectTag placeholder="请选择院系" v-model:value="queryParam.kkdw"
|
||||||
:dictCode="`tkrszdw_view,college,college`" />
|
:dictCode="`tkrszdw_view,college,college`" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="4">
|
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||||
<a-form-item label="" style="padding: 10px;">
|
<a-form-item label="" style="padding: 10px;">
|
||||||
<JDictSelectTag placeholder="请选择节次" v-model:value="queryParam.jieci" :dictCode="`kc_jieci_view,jieciname,jieci`" />
|
<JDictSelectTag placeholder="请选择节次" v-model:value="queryParam.jieci" :dictCode="`kc_jieci_view,jieciname,jieci`" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="4">
|
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||||
<a-form-item label="" style="padding: 10px;">
|
<a-form-item label="" style="padding: 10px;">
|
||||||
<JDictSelectTag placeholder="请选择课程性质" v-model:value="queryParam.kcxz" dictCode="kc_kcxz" />
|
<JDictSelectTag placeholder="请选择课程性质" v-model:value="queryParam.kcxz" dictCode="kc_kcxz" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="4">
|
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||||
<a-form-item label="" style="padding: 10px;">
|
<a-form-item label="" style="padding: 10px;">
|
||||||
<a-input placeholder="请输入课程或教师名称" v-model:value="queryParam.ywmc"></a-input>
|
<a-input placeholder="请输入课程或教师名称" v-model:value="queryParam.ywmc"></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="4" style="padding: 10px;">
|
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }" style="padding: 10px;">
|
||||||
<a-button type="primary" @click="rkbLoadData" style="background-color: rgb(26, 179, 148);">查询</a-button>
|
<a-button type="primary" @click="zbLoadData" style="background-color: rgb(26, 179, 148);">查询</a-button>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
|
|
||||||
<a-tabs v-model:activeKey="rkbActiveKey" type="card">
|
<a-tabs v-model:activeKey="rkbActiveKey" type="card" @change="zibiaoCard">
|
||||||
<a-tab-pane key="1">
|
<a-tab-pane key="1">
|
||||||
<template #tab>
|
<template #tab>
|
||||||
<div>
|
<div>
|
||||||
|
@ -62,7 +62,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref,onMounted } from 'vue';
|
import { ref,onMounted,defineExpose } from 'vue';
|
||||||
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||||
import kclbList from '/@/views/site/jrkclb/kclbList.vue';
|
import kclbList from '/@/views/site/jrkclb/kclbList.vue';
|
||||||
import { defHttp } from '/@/utils/http/axios';
|
import { defHttp } from '/@/utils/http/axios';
|
||||||
|
@ -73,11 +73,14 @@ const xxkcqueryParam = ref<any>({skxs:1});
|
||||||
const txhyqueryParam = ref<any>({zbpx:1});
|
const txhyqueryParam = ref<any>({zbpx:1});
|
||||||
const xxkcTotal = ref<any>(0);
|
const xxkcTotal = ref<any>(0);
|
||||||
const txhyTotal = ref<any>(0);
|
const txhyTotal = ref<any>(0);
|
||||||
function rkbLoadData() {
|
const wqxxkcModeal = ref();
|
||||||
|
const txhyModeal = ref();
|
||||||
|
const emit = defineEmits(['jrkclbLoad']);
|
||||||
|
|
||||||
|
function zbLoadData() {
|
||||||
//----------------------线下课程-------------------
|
//----------------------线下课程-------------------
|
||||||
xxkcqueryParam.value.skrq = queryParam.value.ywTime
|
xxkcqueryParam.value.skrq = queryParam.value.ywTime
|
||||||
if(queryParam.value.jieci){
|
if(queryParam.value.jieci){
|
||||||
console.log(`🚀 ~ file: kclbRkb.vue:80 ~ rkbLoadData ~ queryParam.value.jieci:`, queryParam.value.jieci)
|
|
||||||
xxkcqueryParam.value.hh = queryParam.value.jieci+","+queryParam.value.jieci.split("、").join(',')
|
xxkcqueryParam.value.hh = queryParam.value.jieci+","+queryParam.value.jieci.split("、").join(',')
|
||||||
}
|
}
|
||||||
xxkcqueryParam.value.kkdw = queryParam.value.kkdw
|
xxkcqueryParam.value.kkdw = queryParam.value.kkdw
|
||||||
|
@ -95,16 +98,48 @@ function rkbLoadData() {
|
||||||
txhyqueryParam.value.kcxz = queryParam.value.kcxz
|
txhyqueryParam.value.kcxz = queryParam.value.kcxz
|
||||||
txhyqueryParam.value.zbpx ='1'
|
txhyqueryParam.value.zbpx ='1'
|
||||||
txhyqueryParam.value.ywskxs = '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(() => {
|
onMounted(() => {
|
||||||
jclist(queryParam.value).then(res=>{
|
jclist(queryParam.value).then(res=>{
|
||||||
var list = res
|
var list = res
|
||||||
queryParam.value.ywTime = list[1].kssj
|
queryParam.value.ywTime = list[1].kssj
|
||||||
// queryParam.value.jieci = list[1].jieci
|
zbLoadData()
|
||||||
console.log(`🚀 ~ file: kclbZzsk.vue:64 ~ list ~ queryParam:`, queryParam)
|
|
||||||
rkbLoadData()
|
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
</script>
|
</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>
|
||||||
|
|
||||||
|
|
|
@ -4,23 +4,23 @@
|
||||||
以下是 <span>{{queryParam.ywTime}}</span><span>第{{queryParam.jieci}}节课</span> 的课表
|
以下是 <span>{{queryParam.ywTime}}</span><span>第{{queryParam.jieci}}节课</span> 的课表
|
||||||
</div>
|
</div>
|
||||||
<a-row style="margin-top:20px;">
|
<a-row style="margin-top:20px;">
|
||||||
<a-col :span="4">
|
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||||
<a-form-item label="" style="padding: 10px;">
|
<a-form-item label="" style="padding: 10px;">
|
||||||
<JDictSelectTag placeholder="请选择院系" v-model:value="queryParam.kkdw"
|
<JDictSelectTag placeholder="请选择院系" v-model:value="queryParam.kkdw"
|
||||||
:dictCode="`tkrszdw_view,college,college`" />
|
:dictCode="`tkrszdw_view,college,college`" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="4">
|
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||||
<a-form-item label="" style="padding: 10px;">
|
<a-form-item label="" style="padding: 10px;">
|
||||||
<a-input placeholder="请输入课程或教师名称" v-model:value="queryParam.ywmc"></a-input>
|
<a-input placeholder="请输入课程或教师名称" v-model:value="queryParam.ywmc"></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="4" style="padding: 10px;">
|
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }" style="padding: 10px;">
|
||||||
<a-button type="primary" @click="rkbLoadData" style="background-color: rgb(26, 179, 148);">查询</a-button>
|
<a-button type="primary" @click="zbLoadData" style="background-color: rgb(26, 179, 148);">查询</a-button>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
|
|
||||||
<a-tabs v-model:activeKey="rkbActiveKey" type="card">
|
<a-tabs v-model:activeKey="rkbActiveKey" type="card" @change="zibiaoCard">
|
||||||
<a-tab-pane key="1">
|
<a-tab-pane key="1">
|
||||||
<template #tab>
|
<template #tab>
|
||||||
<div>
|
<div>
|
||||||
|
@ -48,7 +48,7 @@
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref,onMounted } from 'vue';
|
import { ref,onMounted,defineExpose } from 'vue';
|
||||||
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||||
import kclbList from '/@/views/site/jrkclb/kclbList.vue';
|
import kclbList from '/@/views/site/jrkclb/kclbList.vue';
|
||||||
import { defHttp } from '/@/utils/http/axios';
|
import { defHttp } from '/@/utils/http/axios';
|
||||||
|
@ -59,7 +59,11 @@ const xxkcqueryParam = ref<any>({skxs:1});
|
||||||
const txhyqueryParam = ref<any>({zbpx:1});
|
const txhyqueryParam = ref<any>({zbpx:1});
|
||||||
const xxkcTotal = ref<any>(0);
|
const xxkcTotal = ref<any>(0);
|
||||||
const txhyTotal = ref<any>(0);
|
const txhyTotal = ref<any>(0);
|
||||||
function rkbLoadData() {
|
const wqxxkcModeal = ref();
|
||||||
|
const txhyModeal = ref();
|
||||||
|
const emit = defineEmits(['jrkclbLoad']);
|
||||||
|
|
||||||
|
function zbLoadData() {
|
||||||
//----------------------线下课程-------------------
|
//----------------------线下课程-------------------
|
||||||
xxkcqueryParam.value.skrq = queryParam.value.ywTime
|
xxkcqueryParam.value.skrq = queryParam.value.ywTime
|
||||||
xxkcqueryParam.value.hh = queryParam.value.jieci+","+queryParam.value.jieci.split("、").join(',')
|
xxkcqueryParam.value.hh = queryParam.value.jieci+","+queryParam.value.jieci.split("、").join(',')
|
||||||
|
@ -74,15 +78,46 @@ function rkbLoadData() {
|
||||||
txhyqueryParam.value.ywmc = queryParam.value.ywmc
|
txhyqueryParam.value.ywmc = queryParam.value.ywmc
|
||||||
txhyqueryParam.value.zbpx ='1'
|
txhyqueryParam.value.zbpx ='1'
|
||||||
txhyqueryParam.value.ywskxs = '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(() => {
|
onMounted(() => {
|
||||||
jclist(queryParam.value).then(res=>{
|
jclist(queryParam.value).then(res=>{
|
||||||
var list = res
|
var list = res
|
||||||
queryParam.value.ywTime = list[1].kssj
|
queryParam.value.ywTime = list[1].kssj
|
||||||
queryParam.value.jieci = list[1].jieci
|
queryParam.value.jieci = list[1].jieci
|
||||||
console.log(`🚀 ~ file: kclbZzsk.vue:64 ~ list ~ queryParam:`, queryParam)
|
zbLoadData()
|
||||||
rkbLoadData()
|
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
</script>
|
</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>
|
||||||
|
|
|
@ -4,23 +4,23 @@
|
||||||
以下是 <span>{{queryParam.ywTime}}</span><span>第{{queryParam.jieci}}节课</span> 的课表
|
以下是 <span>{{queryParam.ywTime}}</span><span>第{{queryParam.jieci}}节课</span> 的课表
|
||||||
</div>
|
</div>
|
||||||
<a-row style="margin-top:20px;">
|
<a-row style="margin-top:20px;">
|
||||||
<a-col :span="4">
|
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||||
<a-form-item label="" style="padding: 10px;">
|
<a-form-item label="" style="padding: 10px;">
|
||||||
<JDictSelectTag placeholder="请选择院系" v-model:value="queryParam.kkdw"
|
<JDictSelectTag placeholder="请选择院系" v-model:value="queryParam.kkdw"
|
||||||
:dictCode="`tkrszdw_view,college,college`" />
|
:dictCode="`tkrszdw_view,college,college`" />
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="4">
|
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }">
|
||||||
<a-form-item label="" style="padding: 10px;">
|
<a-form-item label="" style="padding: 10px;">
|
||||||
<a-input placeholder="请输入课程或教师名称" v-model:value="queryParam.ywmc"></a-input>
|
<a-input placeholder="请输入课程或教师名称" v-model:value="queryParam.ywmc"></a-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="4" style="padding: 10px;">
|
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 4 }" style="padding: 10px;">
|
||||||
<a-button type="primary" @click="rkbLoadData" style="background-color: rgb(26, 179, 148);">查询</a-button>
|
<a-button type="primary" @click="zbLoadData" style="background-color: rgb(26, 179, 148);">查询</a-button>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
|
|
||||||
<a-tabs v-model:activeKey="rkbActiveKey" type="card">
|
<a-tabs v-model:activeKey="rkbActiveKey" type="card" @change="zibiaoCard">
|
||||||
<a-tab-pane key="1">
|
<a-tab-pane key="1">
|
||||||
<template #tab>
|
<template #tab>
|
||||||
<div>
|
<div>
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
{{xxkcTotal}}</div>
|
{{xxkcTotal}}</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<kclbList ref="wqxxkcModeal" :queryParam="xxkcqueryParam" @setTotal="xxkcTotal = $event"></kclbList>
|
<kclbList ref="wqxxkcModeal" :queryParam="xxkcqueryParam" @setTotal="xxkcTotal = $event;jzzyload()"></kclbList>
|
||||||
|
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
<a-tab-pane key="2">
|
<a-tab-pane key="2">
|
||||||
|
@ -41,17 +41,19 @@
|
||||||
{{txhyTotal}}</div>
|
{{txhyTotal}}</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<kclbList ref="txhyModeal" :queryParam="txhyqueryParam" @setTotal="txhyTotal = $event"></kclbList>
|
<kclbList ref="txhyModeal" :queryParam="txhyqueryParam" @setTotal="txhyTotal = $event;jzzyload()"></kclbList>
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
</a-tabs>
|
</a-tabs>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref,onMounted } from 'vue';
|
import { ref,onMounted,defineExpose } from 'vue';
|
||||||
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||||
import kclbList from '/@/views/site/jrkclb/kclbList.vue';
|
import kclbList from '/@/views/site/jrkclb/kclbList.vue';
|
||||||
import { defHttp } from '/@/utils/http/axios';
|
import { defHttp } from '/@/utils/http/axios';
|
||||||
|
|
||||||
|
const emit = defineEmits(['jrkclbLoad']);
|
||||||
const rkbActiveKey = ref('1');
|
const rkbActiveKey = ref('1');
|
||||||
const jclist = (queryParam) => defHttp.get({ url: '/kcJieci/kcJieci/getIndexJcList', params:queryParam });
|
const jclist = (queryParam) => defHttp.get({ url: '/kcJieci/kcJieci/getIndexJcList', params:queryParam });
|
||||||
const queryParam = ref<any>({});
|
const queryParam = ref<any>({});
|
||||||
|
@ -59,7 +61,9 @@ const xxkcqueryParam = ref<any>({});
|
||||||
const txhyqueryParam = ref<any>({});
|
const txhyqueryParam = ref<any>({});
|
||||||
const xxkcTotal = ref<any>(0);
|
const xxkcTotal = ref<any>(0);
|
||||||
const txhyTotal = ref<any>(0);
|
const txhyTotal = ref<any>(0);
|
||||||
function rkbLoadData() {
|
const wqxxkcModeal = ref();
|
||||||
|
const txhyModeal = ref();
|
||||||
|
function zbLoadData() {
|
||||||
//----------------------线下课程-------------------
|
//----------------------线下课程-------------------
|
||||||
xxkcqueryParam.value.skrq = queryParam.value.ywTime
|
xxkcqueryParam.value.skrq = queryParam.value.ywTime
|
||||||
xxkcqueryParam.value.hh = queryParam.value.jieci+","+queryParam.value.jieci.split("、").join(',')
|
xxkcqueryParam.value.hh = queryParam.value.jieci+","+queryParam.value.jieci.split("、").join(',')
|
||||||
|
@ -74,15 +78,46 @@ function rkbLoadData() {
|
||||||
txhyqueryParam.value.ywmc = queryParam.value.ywmc
|
txhyqueryParam.value.ywmc = queryParam.value.ywmc
|
||||||
txhyqueryParam.value.zbpx = 1
|
txhyqueryParam.value.zbpx = 1
|
||||||
txhyqueryParam.value.ywskxs = '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(() => {
|
onMounted(() => {
|
||||||
jclist(queryParam.value).then(res=>{
|
jclist(queryParam.value).then(res=>{
|
||||||
var list = res
|
var list = res
|
||||||
queryParam.value.ywTime = list[0].kssj
|
queryParam.value.ywTime = list[0].kssj
|
||||||
queryParam.value.jieci = list[0].jieci
|
queryParam.value.jieci = list[0].jieci
|
||||||
console.log(`🚀 ~ file: kclbZzsk.vue:64 ~ list ~ queryParam:`, queryParam)
|
zbLoadData()
|
||||||
rkbLoadData()
|
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
</script>
|
</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>
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<span class="titleDownload"><a @click="downloadByUrl({url:'/downPath/tkjlb.docx',target: '_self',fileName:'东北师范大学听课记录表.docx'})">听课记录</a></span>
|
<span class="titleDownload"><a @click="downloadByUrl({url:'/downPath/tkjlb.docx',target: '_self',fileName:'东北师范大学听课记录表.docx'})">听课记录</a></span>
|
||||||
<span class="titleDownload"><a @click="downloadByUrl({url:'/downPath/jxzlpjb.docx',target: '_self',fileName:'东北师范大学本科课堂教学质量评价表(同行专家用)'})">同行评价表</a></span>
|
<span class="titleDownload"><a @click="downloadByUrl({url:'/downPath/jxzlpjb.docx',target: '_self',fileName:'东北师范大学本科课堂教学质量评价表(同行专家用)'})">同行评价表</a></span>
|
||||||
</template>
|
</template>
|
||||||
<template #extra><a href="javascript:void(0);">查看更多</a></template>
|
<template #extra><RouterLink target='_blank' to="/site/yuyuekechengMore">查看更多</RouterLink></template>
|
||||||
<a-row class="rowGutter" :gutter="[16,16]">
|
<a-row class="rowGutter" :gutter="[16,16]">
|
||||||
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 6 }" v-for="(item,index) in list" :key="index" class="itemBigBox">
|
<a-col :xs="{ span: 24 }" :sm="{ span: 8 }" :lg="{ span: 6 }" v-for="(item,index) in list" :key="index" class="itemBigBox">
|
||||||
<div class="itemDate">
|
<div class="itemDate">
|
||||||
|
@ -59,8 +59,10 @@ const { createMessage } = useMessage();
|
||||||
enum Api {
|
enum Api {
|
||||||
list = '/kcYuyue/kcYuyue/findTingkeZuJiByPage',
|
list = '/kcYuyue/kcYuyue/findTingkeZuJiByPage',
|
||||||
deleteOne = '/kcYuyue/kcYuyue/delete',
|
deleteOne = '/kcYuyue/kcYuyue/delete',
|
||||||
|
edit='/kcYuyue/kcYuyue/edit',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const emit = defineEmits(['ortherLoad']);
|
||||||
/**
|
/**
|
||||||
* 列表接口
|
* 列表接口
|
||||||
* @param params
|
* @param params
|
||||||
|
@ -69,7 +71,7 @@ const listApi = (params) => defHttp.get({ url: Api.list, params });
|
||||||
|
|
||||||
const list = ref<any>([]);
|
const list = ref<any>([]);
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
newFunction(listApi, list);
|
newFunction();
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -87,18 +89,25 @@ function formatTime(time: string) {
|
||||||
* @param record 主要获取课程id
|
* @param record 主要获取课程id
|
||||||
*/
|
*/
|
||||||
function funQxyy(record){
|
function funQxyy(record){
|
||||||
console.log(`🚀 ~ file: index.vue:85 ~ funQxyy ~ record:`, record)
|
var params = {id:record.yyid,isdeleted:1}
|
||||||
var params = {id:record.yyid}
|
defHttp.post({ url: Api.edit, params }, { isTransformResponse: false });
|
||||||
defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
|
newFunction();
|
||||||
newFunction(listApi, list);
|
emit('ortherLoad');
|
||||||
});
|
|
||||||
|
// defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
|
||||||
|
// newFunction();
|
||||||
|
// emit('ortherLoad');
|
||||||
|
// });
|
||||||
}
|
}
|
||||||
|
|
||||||
function newFunction(listApi: (params: any) => Promise<any>, list: any) {
|
function newFunction() {
|
||||||
listApi({ pageSize: 4, isdeleted: 0, userid: getUserId(), isOrderByNow: true }).then(res => {
|
listApi({ pageSize: 4, isdeleted: 0, userid: getUserId(), isOrderByNow: true }).then(res => {
|
||||||
list.value = (res?.records) ?? [];
|
list.value = (res?.records) ?? [];
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
defineExpose({
|
||||||
|
newFunction
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
.titleName {
|
.titleName {
|
||||||
|
|
|
@ -0,0 +1,293 @@
|
||||||
|
<template>
|
||||||
|
|
||||||
|
<div id="siteMain">
|
||||||
|
<div id="maxSite">
|
||||||
|
<!-- 页头 -->
|
||||||
|
<headerPage/>
|
||||||
|
<!-- 功能头 -->
|
||||||
|
<div style="padding: 20px">
|
||||||
|
<span class="titleName">预约课程</span>
|
||||||
|
<span class="titleDownload"><a @click="downloadByUrl({url:'/downPath/tkpjb.docx',target: '_self',fileName:'线上教学听课评价表-新.docx'})">线上课堂评价表</a></span>
|
||||||
|
<span class="titleDownload"><a @click="downloadByUrl({url:'/downPath/tkjlb.docx',target: '_self',fileName:'东北师范大学听课记录表.docx'})">听课记录</a></span>
|
||||||
|
<span class="titleDownload"><a @click="downloadByUrl({url:'/downPath/jxzlpjb.docx',target: '_self',fileName:'东北师范大学本科课堂教学质量评价表(同行专家用)'})">同行评价表</a></span>
|
||||||
|
</div>
|
||||||
|
<a-divider class="itemDivider"/>
|
||||||
|
<!-- 查询条件 -->
|
||||||
|
<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.startTime"></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;">
|
||||||
|
<a-date-picker :showTime="false" valueFormat="YYYY-MM-DD" :placeholder="'请选择结束时间'" style="width:100%;"
|
||||||
|
v-model:value="queryParam.endTime"></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="`tkrszdw_view,college,college`" />
|
||||||
|
</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;">
|
||||||
|
<a-input placeholder="请输入课程或教师名称" v-model:value="queryParam.ywmc"></a-input>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :xs="{ span: 12 }" :sm="{ span: 8 }" :lg="{ span: 2 }">
|
||||||
|
<a-form-item label="" style="padding: 10px;">
|
||||||
|
<JDictSelectTag placeholder="请选择预约类型" v-model:value="queryParam.isdeleted" dictCode="yyzt" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :xs="{ span: 12 }" :sm="{ span: 8 }" :lg="{ span: 2 }" style="padding: 10px;">
|
||||||
|
<a-button type="primary" @click="loadData" style="background-color: rgb(26, 179, 148);">查询</a-button>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</div>
|
||||||
|
<!-- 数据展示区 -->
|
||||||
|
<div style="padding:10px">
|
||||||
|
<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" class="itemBigBox">
|
||||||
|
<div class="itemDate">
|
||||||
|
{{ item.skrq }} {{ formatTime(item.hhks) }}-{{ formatTime(item.hhjs) }}
|
||||||
|
</div>
|
||||||
|
<div class="itemBox">
|
||||||
|
<div>
|
||||||
|
<div class="itemTitle"></div>
|
||||||
|
<div class="itemTtleName">{{ item.kcmc }}</div>
|
||||||
|
</div>
|
||||||
|
<a-divider class="itemDivider"/>
|
||||||
|
<div class="itemInteriorBox">
|
||||||
|
<a-row>
|
||||||
|
<a-col :span="16">
|
||||||
|
<div class="itemSkSj">{{ item.skjs }}</div>
|
||||||
|
<div class="itemKkDw">{{ item.kkdw }}</div>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="8" class="itemInteriorRow">
|
||||||
|
<div class="itemXkrsNum">{{ item.xkrs }}</div>
|
||||||
|
<div class="itemXkrs">选课人数</div>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="24">
|
||||||
|
<div>
|
||||||
|
{{ item.skdd }}
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
<a-col :span="24">
|
||||||
|
<div style="margin-top:20px;" v-if="item.isdeleted=='0'">
|
||||||
|
<a-button type="primary" class="itemYyButton">评价</a-button>
|
||||||
|
<a-button type="primary" class="itemBaoCuoButton" @click="funQxyy(item)">取消预约</a-button>
|
||||||
|
</div>
|
||||||
|
<div style="margin-top:20px;" v-if="item.isdeleted=='1'">
|
||||||
|
<a-button type="primary" class="itemYyButton" style="background-color: #95c9e8;" @click="funCxyy(item)">重新预约</a-button>
|
||||||
|
<a-button type="primary" class="itemBaoCuoButton" @click="funDelete(item)">删除预约</a-button>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</div>
|
||||||
|
<!-- 站行 -->
|
||||||
|
<div style="height: 30px;background-color: #f3f3f4;"></div>
|
||||||
|
<!-- 页尾 -->
|
||||||
|
<footerPage/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
<script setup lang="ts">
|
||||||
|
import { ref,onMounted,defineExpose } from 'vue';
|
||||||
|
import headerPage from '/@/views/site/common/header.vue';
|
||||||
|
import footerPage from '/@/views/site/common/footer.vue';
|
||||||
|
import { defHttp } from '/@/utils/http/axios';
|
||||||
|
import { downloadByUrl } from '/@/utils/file/download';
|
||||||
|
import { dateFormat } from '/@/utils/common/compUtils';
|
||||||
|
import { getUserId } from '/@/views/site/utils/index';
|
||||||
|
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
||||||
|
|
||||||
|
import { useMessage } from '/@/hooks/web/useMessage';
|
||||||
|
const { createMessage } = useMessage();
|
||||||
|
const list = (queryParam) => defHttp.get({ url: Api.list, params:queryParam });
|
||||||
|
|
||||||
|
enum Api {
|
||||||
|
list = '/kcYuyue/kcYuyue/findTingkeZuJiByPage',
|
||||||
|
deleteOne = '/kcYuyue/kcYuyue/delete',
|
||||||
|
edit='/kcYuyue/kcYuyue/edit',
|
||||||
|
}
|
||||||
|
|
||||||
|
const queryParam = ref<any>({});
|
||||||
|
let listData = ref<any>([]);
|
||||||
|
|
||||||
|
|
||||||
|
//进入就加载
|
||||||
|
onMounted(() => {
|
||||||
|
const format = 'yyyy-MM-dd';
|
||||||
|
const startTime = new Date('2023-02-19');
|
||||||
|
queryParam.value.startTime = dateFormat(startTime, format)
|
||||||
|
queryParam.value.endTime = dateFormat(new Date(), format)
|
||||||
|
queryParam.value.isdeleted = '0'
|
||||||
|
queryParam.value.pageSize = -1
|
||||||
|
queryParam.value.userid = getUserId()
|
||||||
|
loadData()
|
||||||
|
});
|
||||||
|
/**
|
||||||
|
* 加载数据
|
||||||
|
*/
|
||||||
|
function loadData(){
|
||||||
|
console.log(`🚀 ~ file: more.vue:148 ~ loadData ~ queryParam:`, queryParam.value)
|
||||||
|
list(queryParam.value).then(res => {
|
||||||
|
listData.value = res.records;
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 重新预约
|
||||||
|
* @param record 主要获取课程id
|
||||||
|
*/
|
||||||
|
function funCxyy(record){
|
||||||
|
var params = {id:record.yyid,isdeleted:0}
|
||||||
|
defHttp.post({ url: Api.edit, params }, { isTransformResponse: false });
|
||||||
|
createMessage.success("重新预约成功");
|
||||||
|
loadData();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取消预约
|
||||||
|
* @param record 主要获取课程id
|
||||||
|
*/
|
||||||
|
function funQxyy(record){
|
||||||
|
var params = {id:record.yyid,isdeleted:1}
|
||||||
|
defHttp.post({ url: Api.edit, params }, { isTransformResponse: false });
|
||||||
|
createMessage.success("取消预约成功");
|
||||||
|
loadData();
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 删除预约
|
||||||
|
* @param record
|
||||||
|
*/
|
||||||
|
function funDelete(record){
|
||||||
|
var params = {id:record.yyid}
|
||||||
|
defHttp.delete({url: Api.deleteOne, params}, {joinParamsToUrl: true}).then(() => {
|
||||||
|
loadData();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 转换时间由【0012】转成【00:12】
|
||||||
|
* @param time 四个字符,时分,无分隔
|
||||||
|
*/
|
||||||
|
function formatTime(time: string) {
|
||||||
|
if(!time) return '';
|
||||||
|
let t_i_m_e = time.split('');
|
||||||
|
return [t_i_m_e[0],t_i_m_e[1],':',t_i_m_e[2],t_i_m_e[3]].join('');
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style lang="less" scoped>
|
||||||
|
@import '/@/assets/less/IndexSite.less';
|
||||||
|
.titleName {
|
||||||
|
font-size: 24px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
.titleDownload {
|
||||||
|
padding: 15px;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
.itemBigBox {
|
||||||
|
margin-bottom: 40px;
|
||||||
|
}
|
||||||
|
.itemDate {
|
||||||
|
border-radius: 25px;
|
||||||
|
background: #cccccc8c;
|
||||||
|
width: 70%;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
text-align: center;
|
||||||
|
margin: 0 auto .5rem;
|
||||||
|
padding: 0.5rem;
|
||||||
|
}
|
||||||
|
.itemBox {
|
||||||
|
border: 2px #eef1f2 solid;
|
||||||
|
}
|
||||||
|
.itemTitle {
|
||||||
|
width: 100%;
|
||||||
|
height: 20px;
|
||||||
|
background-color: #1c84c6;
|
||||||
|
}
|
||||||
|
.itemTtleName {
|
||||||
|
width:100%;
|
||||||
|
white-space:normal;
|
||||||
|
word-break:break-all;
|
||||||
|
overflow:hidden;
|
||||||
|
padding: 10px;
|
||||||
|
height: 70px;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
.itemDivider {
|
||||||
|
margin: 0px;
|
||||||
|
color: #eef1f2;
|
||||||
|
}
|
||||||
|
.itemInteriorBox {
|
||||||
|
padding: 20px;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
.itemSkSj {
|
||||||
|
height: 30px;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
.itemKkDw {
|
||||||
|
height: 30px;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.itemInteriorRow {
|
||||||
|
text-align: center;
|
||||||
|
height: 70px;
|
||||||
|
}
|
||||||
|
.itemXkrsNum {
|
||||||
|
color: #1c84c6;
|
||||||
|
font-size: 24px;
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
.itemXkrs {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.itemSkdd {
|
||||||
|
height: 60px;
|
||||||
|
}
|
||||||
|
.itemYyButton {
|
||||||
|
background-color: #1c84c6;
|
||||||
|
float: left;
|
||||||
|
font-weight: 600;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
.itemBaoCuoButton {
|
||||||
|
background-color: #1c84c6;
|
||||||
|
float: right;
|
||||||
|
font-weight: 600;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.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>
|
Loading…
Reference in New Issue