2023-05-27 10:45:45 +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" >
2023-12-04 23:46:29 +08:00
< a -col :span ="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 >
<!-- < a -col :lg ="8" >
2023-05-27 10:45:45 +08:00
< a -form -item label = "课程编号" >
< a -input placeholder = "请输入课程编号" v -model :value ="queryParam.kcbh" > < / a - i n p u t >
< / a - f o r m - i t e m >
2023-12-04 23:46:29 +08:00
< / a - c o l > - - >
2023-05-27 10:45:45 +08:00
< a -col :lg ="8" >
< a -form -item label = "课程名称" >
2023-12-04 23:46:29 +08:00
< j -input placeholder = "请输入课程名称" v -model :value ="queryParam.kcmc" > < / j - i n p u t >
2023-05-27 10:45:45 +08:00
< / 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 = "授课教师" >
2023-12-04 23:46:29 +08:00
< j -input placeholder = "请输入授课教师" v -model :value ="queryParam.skjs" > < / j - i n p u t >
2023-05-27 10:45:45 +08:00
< / a - f o r m - i t e m >
< / a - c o l >
2023-12-04 23:46:29 +08:00
<!-- < a -col :lg ="8" >
2023-05-27 10:45:45 +08:00
< a -form -item label = "授课时间" >
2023-06-25 17:20:55 +08:00
< a -date -picker valueFormat = "YYYY-MM-DD" placeholder = "请选择授课时间" v -model :value ="queryParam.sksj" style = "width:100%" / >
2023-05-27 10:45:45 +08:00
< / a - f o r m - i t e m >
2023-12-04 23:46:29 +08:00
< / a - c o l > - - >
<!-- < a -col :lg ="8" >
2023-05-27 10:45:45 +08:00
< a -form -item label = "上课地点" >
< a -input placeholder = "请输入上课地点" v -model :value ="queryParam.skdd" > < / a - i n p u t >
< / a - f o r m - i t e m >
2023-12-04 23:46:29 +08:00
< / a - c o l > - - >
2023-05-27 10:45:45 +08:00
< a -col :lg ="8" >
2023-12-04 23:46:29 +08:00
< a -form -item label = "评课教师工号" >
< j -input placeholder = "请输入评课教师工号" v -model :value ="queryParam.tkjsgh" > < / j - i n p u t >
2023-05-27 10:45:45 +08:00
< / a - f o r m - i t e m >
< / a - c o l >
< a -col :lg ="8" >
2023-12-04 23:46:29 +08:00
< a -form -item label = "评课教师姓名" >
< j -input placeholder = "请输入评课教师姓名" v -model :value ="queryParam.tkjsxm" > < / j - i n p u t >
2023-05-27 10:45:45 +08:00
< / a - f o r m - i t e m >
< / a - c o l >
2023-12-04 23:46:29 +08:00
<!-- < a -col :lg ="8" >
< a -form -item label = "评课时间" >
< a -date -picker showTime valueFormat = "YYYY-MM-DD HH:mm:ss" placeholder = "请选择评课时间" v -model :value ="queryParam.tksj" style = "width:100%" / >
2023-05-27 10:45:45 +08:00
< / a - f o r m - i t e m >
2023-12-04 23:46:29 +08:00
< / a - c o l > - - >
2023-05-27 10:45:45 +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 >
<!-- < 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 >
<!-- 引用表格 -- >
< BasicTable @register ="registerTable" :rowSelection ="rowSelection" >
<!-- 插槽 : table标题 -- >
< template # tableTitle >
2023-10-14 17:20:11 +08:00
< a -button type = "primary" @click ="handleAdd" preIcon = "ant-design:plus-outlined" > 新增 < / a - b u t t o n >
2023-05-27 10:45:45 +08:00
< a -button type = "primary" preIcon = "ant-design:export-outlined" @click ="onExportXls" > 导出 < / a -button >
< j -upload -button type = "primary" preIcon = "ant-design:import-outlined" @click ="onImportXls" > 导入 < / j -upload -button >
< a -dropdown v-if ="selectedRowKeys.length > 0" >
< template # overlay >
< a -menu >
< a -menu -item key = "1" @click ="batchHandleDelete" >
< Icon icon = "ant-design:delete-outlined" > < / Icon >
删除
< / a - m e n u - i t e m >
< / a - m e n u >
< / template >
< a -button > 批量操作
< Icon icon = "mdi:chevron-down" > < / Icon >
< / a - b u t t o n >
< / a - d r o p d o w n >
< / template >
<!-- 操作栏 -- >
< template # action = "{ record }" >
2023-05-29 08:13:40 +08:00
< TableAction :actions ="getTableAction(record)" / >
2023-05-27 10:45:45 +08:00
< / template >
<!-- 字段回显插槽 -- >
< template # htmlSlot = "{text}" >
< div v-html ="text" > < / div >
< / template >
<!-- 省市区字段回显插槽 -- >
<!-- < template # pcaSlot = "{text}" >
{ { getAreaTextByCode ( text ) } }
< / template > -- >
< template # fileSlot = "{text}" >
< span v-if ="!text" style="font-size: 12px;font-style: italic;" > 无文件 < / span >
< a -button v -else :ghost ="true" type = "primary" preIcon = "ant-design:download-outlined" size = "small" @click ="downloadFile(text)" > 下载 < / a -button >
< / template >
< / BasicTable >
<!-- 表单区域 -- >
< KcZzXstkbModal ref = "registerModal" @success ="handleSuccess" > < / KcZzXstkbModal >
< / div >
< / template >
< script lang = "ts" name = "kcZzXstkb-kcZzXstkb" setup >
import { ref , reactive } from 'vue' ;
import { BasicTable , useTable , TableAction } from '/@/components/Table' ;
import { useListPage } from '/@/hooks/system/useListPage' ;
import { columns } from './KcZzXstkb.data' ;
import { list , deleteOne , batchDelete , getImportUrl , getExportUrl } from './KcZzXstkb.api' ;
import { downloadFile } from '/@/utils/common/renderUtils' ;
import KcZzXstkbModal from './components/KcZzXstkbModal.vue'
2023-12-04 23:46:29 +08:00
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue' ;
import { JInput } from '/@/components/Form' ;
2023-05-27 10:45:45 +08:00
const queryParam = ref < any > ( { } ) ;
const toggleSearchStatus = ref < boolean > ( false ) ;
const registerModal = ref ( ) ;
//注册table数据
const { prefixCls , tableContext , onExportXls , onImportXls } = useListPage ( {
tableProps : {
title : '纸质线上听课表' ,
api : list ,
columns ,
canResize : false ,
useSearchForm : false ,
actionColumn : {
width : 120 ,
fixed : 'right' ,
} ,
beforeFetch : ( params ) => {
params . column = '' , params . order = '' ; //新生成的默认不带排序
return Object . assign ( params , queryParam . value ) ;
} ,
} ,
exportConfig : {
name : "纸质线上听课表" ,
url : getExportUrl ,
} ,
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 ( ) ;
}
2023-06-25 17:20:55 +08:00
2023-05-27 10:45:45 +08:00
/ * *
* 编辑事件
* /
function handleEdit ( record : Recordable ) {
registerModal . value . disableSubmit = false ;
registerModal . value . edit ( record ) ;
}
2023-06-25 17:20:55 +08:00
2023-05-27 10:45:45 +08:00
/ * *
* 详情
* /
function handleDetail ( record : Recordable ) {
registerModal . value . disableSubmit = true ;
registerModal . value . edit ( record ) ;
}
2023-06-25 17:20:55 +08:00
2023-05-27 10:45:45 +08:00
/ * *
* 删除事件
* /
async function handleDelete ( record ) {
await deleteOne ( { id : record . id } , handleSuccess ) ;
}
2023-06-25 17:20:55 +08:00
2023-05-27 10:45:45 +08:00
/ * *
* 批量删除事件
* /
async function batchHandleDelete ( ) {
await batchDelete ( { ids : selectedRowKeys . value } , handleSuccess ) ;
}
2023-06-25 17:20:55 +08:00
2023-05-27 10:45:45 +08:00
/ * *
* 成功回调
* /
function handleSuccess ( ) {
( selectedRowKeys . value = [ ] ) && reload ( ) ;
}
2023-06-25 17:20:55 +08:00
2023-05-27 10:45:45 +08:00
/ * *
* 操作栏
* /
function getTableAction ( record ) {
return [
{
2023-05-29 08:13:40 +08:00
label : '删除' ,
popConfirm : {
title : '是否确认删除' ,
confirm : handleDelete . bind ( null , record ) ,
}
2023-05-27 10:45:45 +08:00
} ,
] ;
}
2023-06-25 17:20:55 +08:00
2023-05-27 10:45:45 +08:00
/ * *
* 下拉操作栏
* /
function getDropDownAction ( record ) {
2023-05-29 08:13:40 +08:00
return [ {
2023-05-27 10:45:45 +08:00
label : '删除' ,
popConfirm : {
title : '是否确认删除' ,
confirm : handleDelete . bind ( null , record ) ,
}
}
]
}
/ * *
* 查询
* /
function searchQuery ( ) {
reload ( ) ;
}
2023-06-25 17:20:55 +08:00
2023-05-27 10:45:45 +08:00
/ * *
* 重置
* /
function searchReset ( ) {
queryParam . value = { } ;
selectedRowKeys . value = [ ] ;
//刷新数据
reload ( ) ;
}
2023-06-25 17:20:55 +08:00
2023-05-27 10:45:45 +08:00
< / 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 >