2024-06-09 17:39:16 +08:00
< template >
< div >
<!-- 查询区域 -- >
< 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 ="6" >
< 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 >
< a -col :lg ="6" >
< a -form -item label = "开课单位" >
2024-06-17 17:02:31 +08:00
<!-- < a -input placeholder = "请输入开课单位" v -model :value ="queryParam.kkdw" / > -- >
< JDictSelectTag placeholder = "开课单位" v -model :value ="queryParam.kkdw" :dictCode ="`kc_kkdw_view,kkdw,kkdw`" / >
2024-06-09 17:39:16 +08:00
< / a - f o r m - i t e m >
< / a - c o l >
< a -col :lg ="6" >
< a -form -item label = "课程名称" >
< a -input placeholder = "请输入课程名称" v -model :value ="queryParam.kcmc" / >
< / a - f o r m - i t e m >
< / a - c o l >
< a -col :lg ="6" >
< a -form -item label = "课程编号" >
< a -input placeholder = "请输入课程编号" v -model :value ="queryParam.kcbh" / >
< / a - f o r m - i t e m >
< / a - c o l >
< a -col :lg ="6" >
< 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 ="6" >
< a -form -item label = "学生姓名" >
2024-06-17 17:02:31 +08:00
< a -input placeholder = "请输入学生姓名" v -model :value ="queryParam.stuName" / >
2024-06-09 17:39:16 +08:00
< / a - f o r m - i t e m >
< / a - c o l >
< a -col :lg ="6" >
< a -form -item label = "学号" >
2024-06-17 17:02:31 +08:00
< a -input placeholder = "请输入学号" v -model :value ="queryParam.stuNo" / >
2024-06-09 17:39:16 +08:00
< / a - f o r m - i t e m >
< / a - c o l >
2024-06-12 11:27:09 +08:00
< a -col :lg ="6" >
< a -form -item label = "提交状态" >
< a -select v -model :value ="queryParam.status" >
< template v-for ="(item,index) in dictOptions2" :key ="index" >
< a -select -option :value ="item.value" > { { item . label } } < / a - s e l e c t - o p t i o n >
< / template >
< / a - s e l e c t >
< / a - f o r m - i t e m >
< / a - c o l >
< a -col :lg ="6" >
< a -form -item label = "外网是否通过" >
< a -select v -model :value ="queryParam.wwsftg" >
< template v-for ="(item,index) in dictOptions" :key ="index" >
< a -select -option :value ="item.value" > { { item . label } } < / a - s e l e c t - o p t i o n >
< / template >
< / a - s e l e c t >
< / a - f o r m - i t e m >
< / a - c o l >
< a -col :lg ="6" >
< a -form -item label = "作业是否通过" >
< a -select v -model :value ="queryParam.nwsftg" >
< template v-for ="(item,index) in dictOptions" :key ="index" >
< a -select -option :value ="item.value" > { { item . label } } < / a - s e l e c t - o p t i o n >
< / template >
< / a - s e l e c t >
< / a - f o r m - i t e m >
< / a - c o l >
< a -col :lg ="6" >
< a -form -item label = "aigc是否通过" >
< a -select v -model :value ="queryParam.aigcsftg" >
< template v-for ="(item,index) in dictOptions" :key ="index" >
< a -select -option :value ="item.value" > { { item . label } } < / a - s e l e c t - o p t i o n >
< / template >
< / a - s e l e c t >
< / a - f o r m - i t e m >
< / a - c o l >
< a -col :lg ="6" >
< a -form -item label = "全校是否通过" >
< a -select v -model :value ="queryParam.xnsftg" >
< template v-for ="(item,index) in dictOptions" :key ="index" >
< a -select -option :value ="item.value" > { { item . label } } < / a - s e l e c t - o p t i o n >
< / template >
< / a - s e l e c t >
< / a - f o r m - i t e m >
< / a - c o l >
2024-06-09 17:39:16 +08:00
< a -col :xl ="6" :lg ="6" :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 type = "primary" preIcon = "ant-design:plus-outlined" @click ="handleAdd" style = "margin-left: 8px" > 新增 < / a - b u t t o n > - - >
< a -button type = "primary" preIcon = "ant-design:export-outlined" @click ="onExportXls" style = "margin-left: 8px" > 导出 < / a - b u t t o n >
< / a - c o l >
< / span >
< / a - c o l >
< / a - r o w >
< / a - f o r m >
< / div >
<!-- 引用表格 -- >
< BasicTable @register ="registerTable" >
<!-- 插槽 : table标题 -- >
<!-- 操作栏 -- >
< template # action = "{ record }" >
< TableAction :actions ="getTableAction(record)" / >
< / template >
<!-- 字段回显插槽 -- >
< template # htmlSlot = "{text}" >
< div v-html ="text" > < / div >
< / template >
<!-- 省市区字段回显插槽 -- >
<!-- < template # pcaSlot = "{text}" >
{ { getAreaTextByCode ( text ) } }
< / template > -- >
< template # fileSlot = "{text,record}" >
< span v-if ="!text" style="font-size: 12px;font-style: italic;" > 无文件 < / span >
< span v -else >
< a -button :ghost ="true" type = "primary" preIcon = "ant-design:download-outlined" size = "small" @click ="downloadFile(text)" > 下载 < / a -button >
2024-08-01 13:48:43 +08:00
< a -button :ghost ="true" type = "primary" preIcon = "ant-design:menu-unfold-outlined" size = "small" @click ="openPdf(record.pdfPath)" style = "margin-left:5px;" > 预览 < / a - b u t t o n >
2024-06-09 17:39:16 +08:00
< / span >
< / template >
< template # wwsftgaction = "{text,record}" >
< span v-if ="record.wwcc=='0'" > - < / span >
< span v-else >
< span v-if ="text=='通过'" style="color: green;padding: 5px 15px;" title="通过" @click="handleYulan(record.wwpaperviewurl)" > {{ record.wwxsl }} % < / span >
< span v -else -if = " text = = ' 未通过 ' " style = "color: red;padding: 5px 15px;" title = "未通过" @click ="handleYulan(record.wwpaperviewurl)" > {{ record.wwxsl }} % < / span >
< span v-else >
2024-06-17 17:02:31 +08:00
< span v-if ="record.wwcc=='1'" >
< span v-if ="record.filePath" > 检测中 < / span >
< span v-else > - < / span >
< / span >
2024-06-12 11:27:09 +08:00
< span v-else > - < / span >
2024-06-09 17:39:16 +08:00
< / span >
< / span >
< / template >
< template # nwsftgaction = "{text,record}" >
< span v-if ="record.nwcc=='0'" > - < / span >
< span v-else >
< span v-if ="text=='通过'" style="color: green;padding: 5px 15px;" title="通过" @click="handleYulan(record.zypaperviewurl)" > {{ record.nwxsl }} % < / span >
< span v -else -if = " text = = ' 未通过 ' " style = "color: red;padding: 5px 15px;" title = "未通过" @click ="handleYulan(record.zypaperviewurl)" > {{ record.nwxsl }} % < / span >
< span v-else >
2024-06-17 17:02:31 +08:00
< span v-if ="record.nwcc=='1'" >
< span v-if ="record.filePath" > 检测中 < / span >
< span v-else > - < / span >
< / span >
2024-06-12 11:27:09 +08:00
< span v-else > - < / span >
2024-06-09 17:39:16 +08:00
< / span >
< / span >
< / template >
< template # aigcsftgaction = "{text,record}" >
< span v-if ="record.aigccc=='0'" > - < / span >
< span v-else >
< span v-if ="text=='通过'" style="color: green;padding: 5px 15px;" title="通过" @click="handleYulan(record.aigcpaperviewurl)" > {{ record.aigcxsl }} % < / span >
< span v -else -if = " text = = ' 未通过 ' " style = "color: red;padding: 5px 15px;" title = "未通过" @click ="handleYulan(record.aigcpaperviewurl)" > {{ record.aigcxsl }} % < / span >
< span v-else >
2024-06-17 17:02:31 +08:00
< span v-if ="record.aigccc=='1'" >
< span v-if ="record.filePath" > 检测中 < / span >
< span v-else > - < / span >
< / span >
2024-06-12 11:27:09 +08:00
< span v-else > - < / span >
2024-06-09 17:39:16 +08:00
< / span >
< / span >
< / template >
< template # xnsftgaction = "{text,record}" >
< span v-if ="record.aigccc=='0'" > - < / span >
< span v-else >
< span v-if ="text=='通过'" style="color: green;padding: 5px 15px;" title="通过" @click="handleYulan(record.xxpaperviewurl)" > {{ record.xnxsl }} % < / span >
< span v -else -if = " text = = ' 未通过 ' " style = "color: red;padding: 5px 15px;" title = "未通过" @click ="handleYulan(record.xxpaperviewurl)" > {{ record.xnxsl }} % < / span >
< span v-else >
2024-06-17 17:02:31 +08:00
< span v-if ="record.xncc=='1'" >
2024-06-09 17:39:16 +08:00
< span v-if ="record.filePath" > 检测中 < / span >
2024-06-12 11:27:09 +08:00
< span v-else > - < / span >
2024-06-17 17:02:31 +08:00
< / span >
< span v-else > - < / span >
2024-06-09 17:39:16 +08:00
< / span >
< / span >
< / template >
< / BasicTable >
< / div >
< / template >
< script lang = "ts" name = "zyJxdg-zyJxdg" setup >
import { ref , reactive } from 'vue' ;
import { BasicTable , useTable , TableAction } from '/@/components/Table' ;
import { useListPage } from '/@/hooks/system/useListPage' ;
import { columns } from './Studentzygl.data' ;
import { list , deleteOne , batchDelete , getImportUrl , getExportUrl } from './Studentzygl.api' ;
import { downloadFile } from '/@/utils/common/renderUtils' ;
import { JInput , JDictSelectTag } from '/@/components/Form' ;
import { useMessage } from '/@/hooks/web/useMessage' ;
import { getFileAccessHttpUrl } from '/@/utils/common/compUtils' ;
import { useGlobSetting } from '/@/hooks/setting' ;
const globSetting = useGlobSetting ( ) ;
const baseApiUrl = globSetting . domainUrl ;
const { createMessage } = useMessage ( ) ;
const queryParam = ref < any > ( { } ) ;
2024-06-12 11:27:09 +08:00
const dictOptions2 = ref < any > ( [ { value : '' , label : '全部' } , { value : '未提交' , label : '未提交' } , { value : '已提交' , label : '已提交' } , { value : '已评分' , label : '已评分' } ] ) ;
const dictOptions = ref < any > ( [ { value : '' , label : '全部' } , { value : '未通过' , label : '未通过' } , { value : '通过' , label : '通过' } , ] ) ;
2024-06-09 17:39:16 +08:00
const toggleSearchStatus = ref < boolean > ( false ) ;
const registerModal = ref ( ) ;
//注册table数据
const { prefixCls , tableContext , onExportXls , onImportXls } = useListPage ( {
tableProps : {
api : list ,
columns ,
canResize : false ,
useSearchForm : false ,
showActionColumn : false ,
actionColumn : {
width : 120 ,
fixed : 'right' ,
} ,
beforeFetch : ( params ) => {
params . column = '' , params . order = '' ; //新生成的默认不带排序
return Object . assign ( params , queryParam . value ) ;
} ,
} ,
exportConfig : {
name : "课程作业管理" ,
url : getExportUrl ,
params : ( ) => {
return Object . assign ( { } , queryParam . value ) ;
}
} ,
importConfig : {
url : getImportUrl ,
success : handleSuccess
} ,
} ) ;
const [ registerTable , { reload , collapseAll , updateTableDataRecord , findTableDataRecord , getDataSource } , { rowSelection , selectedRowKeys } ] = tableContext ;
const labelCol = reactive ( {
xs : { span : 24 } ,
sm : { span : 7 } ,
} ) ;
const wrapperCol = reactive ( {
xs : { span : 24 } ,
sm : { span : 16 } ,
} ) ;
/ * *
* 新增事件
* /
function handleAdd ( ) {
registerModal . value . disableSubmit = false ;
registerModal . value . add ( ) ;
}
/ * *
* 编辑事件
* /
function handleEdit ( record : Recordable ) {
if ( record . filePath ) {
if ( ! record . pdfPath ) {
createMessage . warning ( "正在向文件服务器进行传输, 请稍等10秒刷新后进行编辑" )
return ;
}
}
if ( record . jxrlFilePath ) {
if ( ! record . jxrlPdfPath ) {
createMessage . warning ( "正在向文件服务器进行传输, 请稍等10秒刷新后进行编辑" )
return ;
}
}
registerModal . value . disableSubmit = false ;
registerModal . value . edit ( record ) ;
}
function openPdf ( record ) {
if ( record ) {
var url2 = getFileAccessHttpUrl ( record )
let url = baseApiUrl + "/generic/web/viewer.html?file=" + encodeURIComponent ( url2 ) ;
window . open ( url , "_blank" )
} else {
createMessage . warning ( "正在向文件服务器进行传输, 请稍等10秒刷新后进行预览" )
}
}
/ * *
* 详情
* /
function handleDetail ( record : Recordable ) {
registerModal . value . disableSubmit = true ;
registerModal . value . edit ( record ) ;
}
/ * *
* 删除事件
* /
async function handleDelete ( record ) {
await deleteOne ( { id : record . id } , handleSuccess ) ;
}
/ * *
* 批量删除事件
* /
async function batchHandleDelete ( ) {
await batchDelete ( { ids : selectedRowKeys . value } , handleSuccess ) ;
}
/ * *
* 成功回调
* /
function handleSuccess ( ) {
( selectedRowKeys . value = [ ] ) && reload ( ) ;
}
/ * *
* 操作栏
* /
function getTableAction ( record ) {
return [
{
label : '详情' ,
onClick : handleDetail . bind ( null , record ) ,
} ,
] ;
}
/ * *
* 下拉操作栏
* /
function getDropDownAction ( record ) {
return [
{
label : '详情' ,
onClick : handleDetail . bind ( null , record ) ,
} , {
label : '删除' ,
popConfirm : {
title : '是否确认删除' ,
confirm : handleDelete . bind ( null , record ) ,
}
}
]
}
/ * *
* 查询
* /
function searchQuery ( ) {
reload ( ) ;
}
/ * *
* 重置
* /
function searchReset ( ) {
queryParam . value = { } ;
selectedRowKeys . value = [ ] ;
//刷新数据
reload ( ) ;
}
< / script >
< style lang = "less" scoped >
. jeecg - basic - table - form - container {
. 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
}
}
< / style >