@ -0,0 +1,341 @@
< template >
< div style = "width:100%;height: 100%;" >
< div class = "jeecg-basic-table-form-container" >
< 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 = "学期" >
< j -dict -select -tag ref = "xqDictTag" placeholder = "请选择学期" v -model :value ="queryParam.xqxn" dictCode = "kc_xqxn_history,title,title,true order by start_time desc" / >
< / a - f o r m - i t e m >
< / a - c o l >
<!-- < template v-if ="toggleSearchStatus" > - - >
<!-- < 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 > - - >
<!-- < a -col :lg ="8" >
< a -form -item label = "开课单位" >
< a -input placeholder = "请输入开课单位" v -model :value ="queryParam.kkdw" / >
< / 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.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" >
< a -form -item label = "评课教师姓名" >
< a -input placeholder = "请输入评课教师姓名" v -model :value ="queryParam.upUserName" / >
< / 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.upuseridLike" / >
< / a - f o r m - i t e m >
< / a - c o l >
< a -col :lg ="8" >
< a -form -item label = "评课身份" >
<!-- < j -dict -select -tag placeholder = "请选择评课身份" v -model :value ="queryParam.tksf" style = "width: 100%;" dictCode = "kc_tksfrzb,ZWMC,ZWMC,true group by ZWMC" / > -- >
< j -dict -select -tag placeholder = "请选择评课身份" style = "width: 100%;" v -model :value ="queryParam.tksf" dictCode = "tpkwcqkjzglx" / >
< / 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.tksfLike" / > -- >
<!-- < j -dict -select -tag placeholder = "请选择评课身份" v -model :value ="queryParam.tksfLike" style = "width: 100%;" dictCode = "pjlbtjsf" / >
< / 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 >
< a -col :lg ="8" >
< a -form -item label = "数据来源" >
< j -dict -select -tag
placeholder = "请选择数据来源" v - model : value = "queryParam.source"
: options = "[{ value: 0, label: '课程中心'}, { value: 1, label: '老系统'},{ value: 2, label: '服务大厅'},{ value: 3, label: '纸质评价'}]"
/ >
< / a - f o r m - i t e m >
< / a - c o l >
< a -col :lg ="8" >
< a -form -item label = "评价量表" >
<!-- / / s o u r c e D i c t M a p . p u t ( 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 >
<!-- < / 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 >
< 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 >
<!-- < a @ click = "toggleSearchStatus = !toggleSearchStatus" style = "margin-left: 8px" >
{ { toggleSearchStatus ? '收起' : '展开' } }
< Icon : icon = "toggleSearchStatus ? 'ant-design:up-outlined' : 'ant-design:down-outlined'" / >
< / a > -- >
< / a - c o l >
< / span >
< / a - c o l >
< / a - r o w >
< / a - f o r m >
< / div >
< 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 " / >
< 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 >
< 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 " / >
< a -table -column width = "200px" title = "评课教师单位" data -index = " tkdwmc " / >
< a -table -column width = "110px" v -if = " roleList.filter ( x = > x . roleCode == 'admin' ) . length " title=" 评课教师工号 " data-index=" tkjgh " / >
< a -table -column width = "110px" v -if = " roleList.filter ( x = > x . roleCode == 'admin' ) . length " title=" 评课教师姓名 " data-index=" tkjsxm " / >
< a -table -column width = "150px" title = "评课身份" data -index = " tksf " / >
<!-- 管理员才能看结果 -- >
< a -table -column width = "200px" v -if = " roleList.filter ( x = > x . roleCode == 'admin' ) . length " title=" 评课评价结果 ( 5 分制 ) " data-index=" tkpjjg " / >
<!-- < a -table -column title = "评价量表" data -index = " sourceName " / > -- >
<!-- 一般听课表 、 线上听课表 、 同行评价表
evaluationver ? ? ? -- >
< a -table -column width = "100px" title = "评价量表" align = "center" data -index = " pjlblx " / >
<!-- < template # default = "{ text }" >
< span v-if ="text == '2'" > 线上课堂评价表 < / span >
< span v -else -if = " text = = ' 3 ' " > 听课记录表 < / span >
< span v -else -if = " text = = ' 4 ' " > 同行评价表 < / span >
< / template > -- >
<!-- < / a - t a b l e - c o l u m n > - - >
< a -table -column width = "100px" title = "数据来源" data -index = " sourceName " / >
< / 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 >
< viewModalPage ref = "viewModal" / >
< / template >
< script lang = "ts" setup name = "viewsKcStatisticsEvaluationListIndex" >
import { defHttp } from '/@/utils/http/axios' ;
import { ref , onMounted , Ref , watch , reactive , computed } from 'vue' ;
import { nextTick } from 'vue' ;
import { useMessage } from '/@/hooks/web/useMessage' ;
import { execAvyApi , getAvyCtrlLiveOpenOrCloseUrl } from "/@/views/site/utils/index" ;
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue' ;
import { useMethods } from '/@/hooks/system/useMethods' ;
import { JInput } from '/@/components/Form' ;
import { getUserInfo , getUserId } from '/@/views/site/utils/index' ;
import viewModalPage from '/@/views/site/tingKeZuJi/components/viewModal.vue' ;
const showAllLiveRef = ref ( ) ;
const viewModal = ref ( ) ;
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 ( ( ) => {
loadData ( 1 ) ;
} ) ;
const roleList = computed ( ( ) => getUserInfo ( ) ? . roleList ? ? [ ] ) ;
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 ,
pageSize : 10 ,
pageSizeOptions : [ '10' , '20' , '30' ] ,
showTotal : ( total , range ) => {
return range [ 0 ] + '-' + range [ 1 ] + ' 共' + total + '条' ;
} ,
showQuickJumper : true ,
showSizeChanger : true ,
total : 0 ,
}
) ;
const xqDictTag = ref ( ) ;
watch ( ( ) => xqDictTag . value ? . dictOptions , ( d ) => {
if ( d ) {
queryParam . value . xqxn = d [ 0 ] ? . value
nextTick ( ( ) => {
loadData ( 1 ) ;
} )
}
} , {
deep : true ,
immediate : true ,
} ) ;
function loadData ( pageNo ? ) {
loading . value = true ;
let params = { pageNo : 0 , pageSize : 10 , findByBeiTkkdwmc : true , findGh : getUserId ( ) } ;
params . pageNo = ipagination . value . current ;
params . pageSize = ipagination . value . pageSize ;
if ( pageNo === 1 ) {
params . pageNo = 1 ;
}
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 ( ) {
loadData ( 1 ) ;
}
/ * *
* 重置
* /
function searchReset ( ) {
queryParam . value = { } ;
/ / 刷 新 数 据
loadData ( 1 ) ;
}
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 )
}
/ / 导 入 导 出 方 法
const { handleExportXls } = useMethods ( ) ;
/ / 导 出 e x c e l
function onExportXls ( ) {
let url = '/statistics/exportEvaluationXls' ;
if ( url ) {
let title = '评价量表统计' ;
return handleExportXls ( title as string , url , queryParam . value ) ;
} else {
createMessage . warn ( '没有传递 export.url 参数' ) ;
return Promise . reject ( ) ;
}
}
/ / 导 出 e x c e l
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 ( ) ;
}
}
< / 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 ;
}
. 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 >