2023-04-09 16:09:29 +08:00
< template >
2023-04-15 09:45:50 +08:00
2023-04-09 16:09:29 +08:00
< 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 >
2023-05-19 21:31:41 +08:00
< span class = "titleDownload" > < a @ click = "downloadByUrl({url:'/downPath/tkjlb.docx',target: '_self',fileName:'东北师范大学听课记录表.docx'})" > 听课记录表 < / a > < / span >
2023-04-09 16:09:29 +08:00
< 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;" >
2023-08-12 08:45:07 +08:00
< a -col : xs = "{ span: 24 }" : sm = "{ span: 8 }" : lg = "{ span: 4 }" >
< a -form -item label = "" style = "padding: 10px;" >
2023-08-18 19:53:49 +08:00
< j -dict -select -tag v -model :value ="queryParam.xnxq" dictCode = "kc_xqxn_history,title,title,true order by start_time desc" placeholder = "请选择学年学期" style = "width: 100%;" / >
2023-08-12 08:45:07 +08:00
< / a - f o r m - i t e m >
< / a - c o l >
<!-- < a -col : xs = "{ span: 24 }" : sm = "{ span: 8 }" : lg = "{ span: 4 }" >
2023-04-09 16:09:29 +08:00
< a -form -item label = "" style = "padding: 10px;" >
2023-04-15 09:45:50 +08:00
< a -date -picker :showTime ="false" valueFormat = "YYYY-MM-DD" :placeholder ="'请选择开始时间'" style = "width:100%;" v -model :value ="queryParam.startTime" > < / a - d a t e - p i c k e r >
2023-04-09 16:09:29 +08:00
< / a - f o r m - i t e m >
< / a - c o l >
< a -col : xs = "{ span: 24 }" : sm = "{ span: 8 }" : lg = "{ span: 4 }" >
< a -form -item label = "" style = "padding: 10px;" >
2023-04-15 09:45:50 +08:00
< a -date -picker :showTime ="false" valueFormat = "YYYY-MM-DD" :placeholder ="'请选择结束时间'" style = "width:100%;" v -model :value ="queryParam.endTime" > < / a - d a t e - p i c k e r >
2023-04-09 16:09:29 +08:00
< / a - f o r m - i t e m >
2023-08-12 08:45:07 +08:00
< / a - c o l > - - >
2023-04-09 16:09:29 +08:00
< a -col : xs = "{ span: 24 }" : sm = "{ span: 8 }" : lg = "{ span: 4 }" >
< a -form -item label = "" style = "padding: 10px;" >
2023-04-15 15:49:46 +08:00
< JDictSelectTag placeholder = "请选择院系" v -model :value ="queryParam.kkdw" :dictCode ="`kc_kkdw_view,kkdw,id`" / >
2023-04-09 16:09:29 +08:00
< / a - f o r m - i t e m >
< / a - c o l >
< 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 - f o r m - i t e m >
< / a - c o l >
< 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 - i n p u t >
< / a - f o r m - i t e m >
< / a - c o l >
< 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 - f o r m - i t e m >
< / a - c o l >
< 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 - b u t t o n >
< / a - c o l >
< / a - r o w >
< / 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 - c o l >
< a -col :span ="8" class = "itemInteriorRow" >
< div class = "itemXkrsNum" > { { item . xkrs } } < / div >
< div class = "itemXkrs" > 选课人数 < / div >
< / a - c o l >
< a -col :span ="24" >
< div >
{ { item . skdd } }
< / div >
< / a - c o l >
< a -col :span ="24" >
< div style = "margin-top:20px;" v-if ="item.isdeleted=='0'" >
2023-04-15 09:45:50 +08:00
< a -button type = "primary" class = "itemYyButton" @ click = "tingKeZuJiAddModal.view({ ketangbiaoid: item.id })" > 评价 < / a - b u t t o n >
2023-04-09 16:09:29 +08:00
< 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 - c o l >
< / a - r o w >
< / div >
< / div >
< / a - c o l >
< / a - r o w >
< / div >
<!-- 站行 -- >
< div style = "height: 30px;background-color: #f3f3f4;" > < / div >
<!-- 页尾 -- >
< footerPage / >
< / div >
< / div >
2023-04-15 09:45:50 +08:00
< addModalPage ref = "tingKeZuJiAddModal" / >
2023-04-09 16:09:29 +08:00
< / 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' ;
2023-04-10 23:14:07 +08:00
import { getSysConfig } from '/@/views/site/utils/index' ;
2023-04-09 16:09:29 +08:00
import { useMessage } from '/@/hooks/web/useMessage' ;
2023-04-15 09:45:50 +08:00
import addModalPage from '/@/views/site/tingKeZuJi/components/addModal.vue' ;
2023-04-09 16:09:29 +08:00
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' ,
}
2023-04-15 09:45:50 +08:00
const tingKeZuJiAddModal = ref ( ) ;
2023-04-09 16:09:29 +08:00
const queryParam = ref < any > ( { } ) ;
let listData = ref < any > ( [ ] ) ;
//进入就加载
onMounted ( ( ) => {
const format = 'yyyy-MM-dd' ;
2023-04-10 23:14:07 +08:00
const startTime = new Date ( getSysConfig ( ) . bxqkssj ) ;
2023-04-09 16:09:29 +08:00
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 ( )
2023-08-12 08:45:07 +08:00
queryParam . value . xnxq = getSysConfig ( ) . flag1
2023-04-09 16:09:29 +08:00
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 ( ) ;
}
/ * *
* 删除预约
2023-04-15 09:45:50 +08:00
* @ param record
2023-04-09 16:09:29 +08:00
* /
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 : 24 px ;
font - weight : bold ;
}
. titleDownload {
padding : 15 px ;
font - size : 16 px ;
}
. itemBigBox {
margin - bottom : 40 px ;
}
. itemDate {
border - radius : 25 px ;
background : # cccccc8c ;
2023-06-09 08:31:51 +08:00
width : 90 % ;
2023-04-09 16:09:29 +08:00
margin - bottom : 0.5 rem ;
text - align : center ;
margin : 0 auto .5 rem ;
padding : 0.5 rem ;
2023-06-09 08:31:51 +08:00
font - weight : 700 ;
font - size : 16 px ;
2023-04-09 16:09:29 +08:00
}
. itemBox {
border : 2 px # eef1f2 solid ;
}
. itemTitle {
width : 100 % ;
height : 20 px ;
background - color : # 1 c84c6 ;
}
. itemTtleName {
width : 100 % ;
white - space : normal ;
word - break : break - all ;
overflow : hidden ;
padding : 10 px ;
height : 70 px ;
font - weight : 600 ;
font - size : 16 px ;
}
. itemDivider {
margin : 0 px ;
color : # eef1f2 ;
}
. itemInteriorBox {
padding : 20 px ;
font - weight : 600 ;
}
. itemSkSj {
height : 30 px ;
font - size : 16 px ;
}
. itemKkDw {
height : 30 px ;
font - size : 14 px ;
}
. itemInteriorRow {
text - align : center ;
height : 70 px ;
}
. itemXkrsNum {
color : # 1 c84c6 ;
font - size : 24 px ;
font - weight : 600 ;
}
. itemXkrs {
font - size : 14 px ;
}
. itemSkdd {
height : 60 px ;
}
. itemYyButton {
background - color : # 1 c84c6 ;
float : left ;
font - weight : 600 ;
border - radius : 5 px ;
}
. itemBaoCuoButton {
background - color : # 1 c84c6 ;
float : right ;
font - weight : 600 ;
border - radius : 5 px ;
}
. ant - form - item {
box - sizing : border - box ;
margin : 0 ;
padding : 0 ;
color : rgba ( 0 , 0 , 0 , 0.85 ) ;
font - size : 14 px ;
font - variant : tabular - nums ;
line - height : 1.5715 ;
list - style : none ;
font - feature - settings : tnum ;
vertical - align : top ;
}
< / style >