2023-06-14 08:40:36 +08:00
< template >
< div style = "width:100%;height: 100%;" >
2023-06-14 09:27:13 +08:00
< div class = "jeecg-basic-table-form-container" >
2023-06-14 08:40:36 +08:00
< a -form @keyup.enter.native ="searchQuery" :model ="queryParam" :label-col ="labelCol" :wrapper-col ="wrapperCol" >
< a -row :gutter ="24" >
< a -col :lg ="8" >
< a -form -item label = "学期" >
2023-06-15 10:11:02 +08:00
< j -dict -select -tag ref = "xqDictTag" placeholder = "请选择学期" v -model :value ="queryParam.xqxn" dictCode = "kc_xqxn_history,title,title,true order by start_time desc" / >
2023-06-14 08:40:36 +08:00
< / a - f o r m - i t e m >
< / a - c o l >
<!-- < template v-if ="toggleSearchStatus" > - - >
2023-06-16 01:05:55 +08:00
<!-- < a -col :lg ="8" >
< a -form -item label = "开课单位" >
< j -dict -select -tag placeholder = "请选择开课单位" v -model :value ="queryParam.dwmc" dictCode = "xxhbuser,DWMC,DWH,true group by DWH" / >
< / a - f o r m - i t e m >
< / a - c o l > - - >
2023-06-14 08:40:36 +08:00
< a -col :lg ="8" >
2023-06-16 01:05:55 +08:00
< a -form -item label = "开课单位" >
< a -input placeholder = "请输入开课单位" v -model :value ="queryParam.kkdw" / >
2023-06-14 08:40:36 +08:00
< / a - f o r m - i t e m >
< / a - c o l >
< a -col :lg ="8" >
2023-06-16 01:05:55 +08:00
< a -form -item label = "授课教师姓名" >
< a -input placeholder = "请输入授课教师姓名" v -model :value ="queryParam.skjs" / >
< / a - f o r m - i t e m >
< / a - c o l >
< a -col :lg ="8" >
< a -form -item label = "授课教师工号" >
< a -input placeholder = "请输入授课教师工号" v -model :value ="queryParam.skjgh" / >
< / a - f o r m - i t e m >
< / a - c o l >
< a -col :lg ="8" >
2023-06-20 02:03:12 +08:00
< a -form -item label = "评课教师姓名" >
< a -input placeholder = "请输入评课教师姓名" v -model :value ="queryParam.upUserName" / >
2023-06-16 01:05:55 +08:00
< / a - f o r m - i t e m >
< / a - c o l >
< a -col :lg ="8" >
2023-06-20 02:03:12 +08:00
< a -form -item label = "评课教师工号" >
< a -input placeholder = "请输入评课教师工号" v -model :value ="queryParam.upuseridLike" / >
2023-06-16 01:05:55 +08:00
< / a - f o r m - i t e m >
< / a - c o l >
2023-06-25 23:36:24 +08:00
< a -col :lg ="8" >
< a -form -item label = "评课身份" >
2023-06-28 00:18:32 +08:00
< j -dict -select -tag placeholder = "请选择评课身份" v -model :value ="queryParam.tksf" style = "width: 100%;" dictCode = "kc_tksfrzb,ZWMC,ZWMC,true group by ZWMC" / >
< / a - f o r m - i t e m >
< / a - c o l >
< a -col :lg ="8" >
< a -form -item label = "评课身份" >
2023-06-28 23:05:19 +08:00
<!-- < a -input placeholder = "请输入评课身份" v -model :value ="queryParam.tksfLike" / > -- >
< j -dict -select -tag placeholder = "请选择评课身份" v -model :value ="queryParam.tksfLike" style = "width: 100%;" dictCode = "pjlbtjsf" / >
2023-06-25 23:36:24 +08:00
< / a - f o r m - i t e m >
< / a - c o l >
< a -col :lg ="8" >
< a -form -item label = "评课教师单位" >
< a -input placeholder = "请输入评课教师单位" v -model :value ="queryParam.tkdwmc" / >
< / a - f o r m - i t e m >
< / a - c o l >
2023-06-17 00:43:38 +08:00
< a -col :lg ="8" >
2023-06-14 08:40:36 +08:00
< a -form -item label = "数据来源" >
< j -dict -select -tag
placeholder = "请选择数据来源" v - model : value = "queryParam.source"
2023-06-17 22:47:28 +08:00
: options = "[{ value: 0, label: '课程中心'}, { value: 1, label: '老系统'},{ value: 2, label: '服务大厅'},{ value: 3, label: '纸质评价'}]"
2023-06-14 08:40:36 +08:00
/ >
< / a - f o r m - i t e m >
2023-06-17 00:43:38 +08:00
< / a - c o l >
2023-07-19 21:30:43 +08:00
< a -col :lg ="8" >
< a -form -item label = "评价量表" >
<!-- // sourceDictMap.put(1,"老系统"); -->
< j -dict -select -tag
placeholder = "请选择评价量表" v - model : value = "queryParam.evaluationver"
: options = "[{ value: 2, label: '线上课堂评价表'},{ value: 3, label: '听课记录表'},{ value: 4, label: '同行评价表'}]"
/ >
< / a - f o r m - i t e m >
< / a - c o l >
2023-06-14 08:40:36 +08:00
<!-- < / template > -- >
< a -col :xl ="6" :lg ="7" :md ="8" :sm ="24" >
< span style = "float: left; overflow: hidden" class = "table-page-search-submitButtons" >
< a -col :lg ="6" >
< a -button type = "primary" preIcon = "ant-design:search-outlined" @click ="searchQuery" > 查询 < / a -button >
< a -button type = "primary" preIcon = "ant-design:reload-outlined" @click ="searchReset" style = "margin-left: 8px" > 重置 < / a - b u t t o n >
2023-06-17 22:44:42 +08:00
< a -button v-if ="roleList.filter(x => x.roleCode == 'admin' ).length" type="primary" preIcon="ant-design:export-outlined" @click="onExportXls()" style="margin-left: 8px" > 导出 < / a -button >
< a -button v -else type = "primary" preIcon = "ant-design:export-outlined" @click ="onExportXls2()" style = "margin-left: 8px" > 导出 < / a - b u t t o n >
2023-06-14 08:40:36 +08:00
<!-- < a @ click = "toggleSearchStatus = !toggleSearchStatus" style = "margin-left: 8px" >
{ { toggleSearchStatus ? '收起' : '展开' } }
2023-06-14 23:26:13 +08:00
< Icon : icon = "toggleSearchStatus ? 'ant-design:up-outlined' : 'ant-design:down-outlined'" / >
2023-06-14 08:40:36 +08:00
< / a > -- >
< / a - c o l >
< / span >
< / a - c o l >
< / a - r o w >
< / a - f o r m >
< / div >
2023-06-18 17:27:33 +08:00
< a -table sticky :loading ="loading" :data-source ="dataSource" :pagination ="ipagination" @change ="tableChange" bordered size = "middle" class = "ant-table-striped" : scroll = "{ x: 1500 }" >
< a -table -column width = "120px" title = "学期" data -index = " xqxn " / >
2023-07-19 21:30:43 +08:00
< a -table -column width = "200px" title = "课程名称" data -index = " kcmc " >
< template # default = "{ text, record }" >
< span >
< a @click ="openEve(record)" > {{ text }} < / a >
< / span >
< / template >
< / a - t a b l e - c o l u m n >
2023-06-18 17:27:33 +08:00
< a -table -column width = "200px" title = "开课单位" data -index = " kkdw " / >
< a -table -column width = "100px" title = "授课教师" data -index = " skjs " / >
< a -table -column width = "110px" title = "授课教师工号" data -index = " skjgh " / >
< a -table -column width = "110px" title = "授课日期" data -index = " skrq " / >
< a -table -column width = "80px" title = "授课时间" data -index = " sksj " / >
< a -table -column width = "80px" title = "授课节次" data -index = " jieci " / >
< a -table -column width = "150px" title = "授课地点" data -index = " skdd " / >
2023-06-20 02:03:12 +08:00
< a -table -column width = "200px" title = "评课教师单位" data -index = " tkdwmc " / >
< a -table -column width = "110px" title = "评课教师工号" data -index = " tkjgh " / >
< a -table -column width = "110px" title = "评课教师姓名" data -index = " tkjsxm " / >
< a -table -column width = "150px" title = "评课身份" data -index = " tksf " / >
2023-06-17 22:44:42 +08:00
<!-- 管理员才能看结果 -- >
2023-06-20 02:03:12 +08:00
< a -table -column width = "200px" v -if = " roleList.filter ( x = > x . roleCode == 'admin' ) . length " title=" 评课评价结果 ( 5 分制 ) " data-index=" tkpjjg " / >
2023-06-14 08:40:36 +08:00
<!-- < a -table -column title = "评价量表" data -index = " sourceName " / > -- >
<!-- 一般听课表 、 线上听课表 、 同行评价表
evaluationver ? ? ? -- >
2023-06-18 17:27:33 +08:00
< a -table -column width = "100px" title = "评价量表" align = "center" data -index = " pjlblx " / >
<!-- < template # default = "{ text }" >
2023-06-14 08:40:36 +08:00
< span v-if ="text == '2'" > 线上课堂评价表 < / span >
< span v -else -if = " text = = ' 3 ' " > 听课记录表 < / span >
< span v -else -if = " text = = ' 4 ' " > 同行评价表 < / span >
2023-06-18 17:27:33 +08:00
< / template > -- >
<!-- < / a - t a b l e - c o l u m n > - - >
< a -table -column width = "100px" title = "数据来源" data -index = " sourceName " / >
2023-06-14 08:40:36 +08:00
< / a - t a b l e >
< / div >
< a -modal :visible ="isShowAllLive" width = "80%" style = "top: 20px" title = "直播" : ok -button -props = " { style : { display : ' none ' } } " cancelText = "关闭" @ cancel = "() => (isShowAllLive = false,showAllLiveRef.close())" >
<!-- < showAllLive ref = "showAllLiveRef" :currentItem ="currentItem" / > -- >
< / a - m o d a l >
2023-07-19 21:30:43 +08:00
< viewModalPage ref = "viewModal" / >
2023-06-14 08:40:36 +08:00
< / template >
< script lang = "ts" setup name = "viewsKcStatisticsEvaluationListIndex" >
import { defHttp } from '/@/utils/http/axios' ;
2023-06-17 22:44:42 +08:00
import { ref , onMounted , Ref , watch , reactive , computed } from 'vue' ;
2023-06-14 08:40:36 +08:00
import { nextTick } from 'vue' ;
import { useMessage } from '/@/hooks/web/useMessage' ;
import { execAvyApi , getAvyCtrlLiveOpenOrCloseUrl } from "/@/views/site/utils/index" ;
2023-06-14 09:27:13 +08:00
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue' ;
2023-06-16 01:05:55 +08:00
import { useMethods } from '/@/hooks/system/useMethods' ;
import { JInput } from '/@/components/Form' ;
2023-06-17 22:44:42 +08:00
import { getUserInfo } from '/@/views/site/utils/index' ;
2023-07-19 21:30:43 +08:00
import viewModalPage from '/@/views/site/tingKeZuJi/components/viewModal.vue' ;
2023-06-14 08:40:36 +08:00
2023-06-15 08:34:32 +08:00
const showAllLiveRef = ref ( ) ;
2023-07-19 21:30:43 +08:00
const viewModal = ref ( ) ;
2023-06-14 08:40:36 +08:00
const leftList : Ref < any > = ref ( [ ] ) ;
const currentItem : Ref < any > = ref ( { } ) ;
const showAllLiveKey : Ref < string > = ref ( 'showAllLiveKey' ) ;
const isShowAllLive : Ref < boolean > = ref ( false ) ;
const loading : Ref < boolean > = ref ( false ) ;
const dataSource = ref < any > ( [ ] ) ;
const queryParam : Ref < any > = ref ( { } ) ;
const { createMessage } = useMessage ( ) ;
onMounted ( ( ) => {
2023-06-28 00:18:32 +08:00
loadData ( 1 ) ;
2023-06-14 08:40:36 +08:00
} ) ;
2023-06-17 22:44:42 +08:00
const roleList = computed ( ( ) => getUserInfo ( ) ? . roleList ? ? [ ] ) ;
2023-06-14 08:40:36 +08:00
enum Api {
list = '/statistics/getEvaluationList' ,
}
/ * *
* 列表接口
* @ param params
* /
const list = ( params ) => defHttp . get ( { url : Api . list , params } ) ;
const labelCol = reactive ( {
xs : { span : 24 } ,
sm : { span : 7 } ,
} ) ;
const wrapperCol = reactive ( {
xs : { span : 24 } ,
sm : { span : 16 } ,
} ) ;
const ipagination = ref (
{
current : 1 ,
2023-06-14 09:27:13 +08:00
pageSize : 10 ,
2023-06-14 08:40:36 +08:00
pageSizeOptions : [ '10' , '20' , '30' ] ,
showTotal : ( total , range ) => {
return range [ 0 ] + '-' + range [ 1 ] + ' 共' + total + '条' ;
} ,
showQuickJumper : true ,
showSizeChanger : true ,
total : 0 ,
}
) ;
2023-06-15 10:11:02 +08:00
const xqDictTag = ref ( ) ;
watch ( ( ) => xqDictTag . value ? . dictOptions , ( d ) => {
if ( d ) {
queryParam . value . xqxn = d [ 0 ] ? . value
nextTick ( ( ) => {
2023-06-28 00:18:32 +08:00
loadData ( 1 ) ;
2023-06-15 10:11:02 +08:00
} )
}
} , {
deep : true ,
immediate : true ,
} ) ;
2023-06-14 08:40:36 +08:00
2023-06-28 00:18:32 +08:00
function loadData ( pageNo ? ) {
2023-06-14 08:40:36 +08:00
loading . value = true ;
let params = { pageNo : 0 , pageSize : 10 } ;
params . pageNo = ipagination . value . current ;
params . pageSize = ipagination . value . pageSize ;
2023-06-28 00:18:32 +08:00
if ( pageNo === 1 ) {
params . pageNo = 1 ;
}
2023-06-14 08:40:36 +08:00
list ( { ... params , ... queryParam . value } ) . then ( res => {
dataSource . value = ( res ? . records ) ? ? [ ] ;
ipagination . value . total = res . total ;
} ) . finally ( ( ) => {
loading . value = false ;
} ) ;
}
function tableChange ( pagination ) {
ipagination . value . current = pagination . current ;
ipagination . value . pageSize = pagination . pageSize ;
loadData ( ) ;
}
/ * *
* 查询
* /
function searchQuery ( ) {
2023-06-28 00:18:32 +08:00
loadData ( 1 ) ;
2023-06-14 08:40:36 +08:00
}
/ * *
* 重置
* /
function searchReset ( ) {
queryParam . value = { } ;
//刷新数据
2023-06-28 00:18:32 +08:00
loadData ( 1 ) ;
2023-06-14 08:40:36 +08:00
}
2023-07-19 21:30:43 +08:00
function openEve ( record ) {
let { tkjgh , evaluationver , minkcid , kcmc , skjs , WEEK , hh } = record
let param = { userid : tkjgh , ketangbiaoid : minkcid , evaluationver , kcmc , skjs , WEEK , hh }
viewModal . value . view ( param )
}
2023-06-16 01:05:55 +08:00
//导入导出方法
const { handleExportXls } = useMethods ( ) ;
// 导出 excel
function onExportXls ( ) {
let url = '/statistics/exportEvaluationXls' ;
if ( url ) {
let title = '评价量表统计' ;
2023-06-17 00:43:38 +08:00
return handleExportXls ( title as string , url , queryParam . value ) ;
2023-06-16 01:05:55 +08:00
} else {
createMessage . warn ( '没有传递 export.url 参数' ) ;
return Promise . reject ( ) ;
2023-06-17 22:44:42 +08:00
}
}
// 导出 excel
function onExportXls2 ( ) {
let url = '/statistics/exportEvaluationXls2' ;
if ( url ) {
let title = '评价量表统计' ;
return handleExportXls ( title as string , url , queryParam . value ) ;
} else {
createMessage . warn ( '没有传递 export.url 参数' ) ;
return Promise . reject ( ) ;
2023-06-16 01:05:55 +08:00
}
}
2023-06-14 08:40:36 +08:00
< / script >
< style lang = "less" scoped >
. videoMax {
width : 25 % ;
}
. videoCardMain {
: deep ( . ant - card - body ) {
padding : 0 ;
}
}
/* 隐藏video 进度条 */
video : : - webkit - media - controls - timeline {
display : none ;
}
. green {
color : green ;
}
. red {
color : red ;
}
2023-06-14 09:27:13 +08:00
. jeecg - basic - table - form - container {
. ant - form {
padding : 12 px 10 px 6 px 10 px ;
margin - bottom : 8 px ;
background - color : # fff ;
border - radius : 2 px ;
}
. table - page - search - submitButtons {
display : block ;
margin - bottom : 24 px ;
white - space : nowrap ;
}
. query - group - cust {
width : calc ( 50 % - 15 px ) ;
min - width : 100 px ! important ;
}
. query - group - split - cust {
width : 30 px ;
display : inline - block ;
text - align : center
}
}
. jeecg - basic - table - form - containera {
line - height : 24 px ;
background : # fff ;
padding : 20 px 0 0 10 px ;
margin - bottom : - 20 px ;
}
. jeecg - basic - table . ant - table - wrapper . ant - table - title {
min - height : 0 px ! important ;
padding : 0 0 8 px 0 ! important ;
}
< / style >