dbsd_kczx/src/views/zy/sysZy/studentwjgl/StudentwjglList.vue

279 lines
8.5 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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-form-item>
</a-col>
<a-col :lg="6">
<a-form-item label="开课单位">
<!-- <a-input placeholder="请输入开课单位" v-model:value="queryParam.kkdw"/> -->
<JDictSelectTag placeholder="开课单位" v-model:value="queryParam.kkdw" :dictCode="`kc_kkdw_view,kkdw,kkdw`"/>
</a-form-item>
</a-col>
<a-col :lg="6">
<a-form-item label="课程名称">
<a-input placeholder="请输入课程名称" v-model:value="queryParam.kcmc"/>
</a-form-item>
</a-col>
<a-col :lg="6">
<a-form-item label="课程编号">
<a-input placeholder="请输入课程编号" v-model:value="queryParam.kcbh"/>
</a-form-item>
</a-col>
<a-col :lg="6">
<a-form-item label="授课教师">
<a-input placeholder="请输入授课教师" v-model:value="queryParam.skjs"/>
</a-form-item>
</a-col>
<a-col :lg="6">
<a-form-item label="学生姓名">
<a-input placeholder="请输入学生姓名" v-model:value="queryParam.stuName"/>
</a-form-item>
</a-col>
<a-col :lg="6">
<a-form-item label="学号">
<a-input placeholder="请输入学号" v-model:value="queryParam.stuNo"/>
</a-form-item>
</a-col>
<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-button>
<!-- <a-button type="primary" preIcon="ant-design:plus-outlined" @click="handleAdd" style="margin-left: 8px"> 新增</a-button> -->
<a-button type="primary" preIcon="ant-design:export-outlined" @click="onExportXls" style="margin-left: 8px"> 导出</a-button>
</a-col>
</span>
</a-col>
</a-row>
</a-form>
</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>
<a-button :ghost="true" type="primary" preIcon="ant-design:copy-outlined" size="small" @click="openPdf(record.pdfPath)" style="margin-left:5px;">预览</a-button>
</span>
</template>
</BasicTable>
<WjxWjxxTmlbDjjgModal ref="registerModal" ></WjxWjxxTmlbDjjgModal>
</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 './Studentwjgl.data';
import { list, deleteOne, batchDelete, getImportUrl, getExportUrl } from './Studentwjgl.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';
import WjxWjxxTmlbDjjgModal from '/@/views/kc/wjxWjxx/components/WjxWjxxTmlbDjjgModal.vue'
const globSetting = useGlobSetting();
const baseApiUrl = globSetting.domainUrl;
const { createMessage } = useMessage();
const queryParam = ref<any>({atype:'1'});
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.id);
}
/**
* 删除事件
*/
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: 24px;
white-space: nowrap;
}
.query-group-cust{
width: calc(50% - 15px);
min-width: 100px !important;
}
.query-group-split-cust{
width: 30px;
display: inline-block;
text-align: center
}
}
</style>