749 lines
27 KiB
Vue
749 lines
27 KiB
Vue
<template>
|
|
<div class="p-2">
|
|
<!-- 未选课页面 -->
|
|
<div v-if="sfxk == 0">
|
|
<div style="text-align: center">
|
|
<img src="../../../assets/images/Course-selection.png" style="margin-top: 100px; width: 600px" />
|
|
<div style="color: #606266; font-weight: 700; font-size: 20px; margin-top: 20px">您还没有考核论文,请先选择考核论文</div>
|
|
<a-button type="primary" style="margin-left: 10px; margin-top: 10px" @click="handleXuanke">选考核论文</a-button>
|
|
</div>
|
|
</div>
|
|
<!-- 选课页面 -->
|
|
<div v-if="sfxk == 1">
|
|
<div class="jeecg-basic-table-form-container">
|
|
<a-form class="query-criteria">
|
|
<!-- <div style="margin-bottom: 20px">
|
|
<a-breadcrumb>
|
|
<a-breadcrumb-item><a class="mbxtitle" @click="handleFanhui">论文考核材料</a></a-breadcrumb-item>
|
|
<a-breadcrumb-item><span class="mbxtitle">选择论文</span></a-breadcrumb-item>
|
|
</a-breadcrumb>
|
|
</div> -->
|
|
<a-button type="primary" style="margin-left: 10px; margin-bottom: 15px" @click="handleFanhui">查看材料</a-button>
|
|
</a-form>
|
|
</div>
|
|
<a-table :columns="columns2" :data-source="checkData"
|
|
v-model:current="paginationYxkcProp.current"
|
|
:total="paginationYxkcProp.total"
|
|
:pagination="paginationYxkcProp"
|
|
@change="onPageYxkcChange">
|
|
<template #title><span class="seleciton-line">1</span> <span class="selection-title">已选论文</span></template>
|
|
<template #bodyCell="{ column, record }">
|
|
<template v-if="column.dataIndex === 'action'">
|
|
<a @click="handleDel(record)">移除</a>
|
|
</template>
|
|
</template>
|
|
</a-table>
|
|
|
|
<div class="jeecg-basic-table-form-container" style="margin-top: 10px">
|
|
<a-form
|
|
ref="formRef"
|
|
@keyup.enter.native="searchQuery2"
|
|
:model="queryParam"
|
|
:label-col="labelCol"
|
|
:wrapper-col="wrapperCol"
|
|
class="query-criteria"
|
|
>
|
|
<a-row :gutter="24">
|
|
<a-col :lg="6">
|
|
<a-form-item name="ssyxmc">
|
|
<template #label><span title="院系名称">院系名称</span></template>
|
|
<a-input placeholder="请输入院系名称" v-model:value="queryParam2.ssyxmc" allow-clear></a-input>
|
|
</a-form-item>
|
|
</a-col>
|
|
<a-col :lg="6">
|
|
<a-form-item name="ssxnzymc">
|
|
<template #label><span title="校内专业">校内专业</span></template>
|
|
<a-input placeholder="请输入校内专业" v-model:value="queryParam2.ssxnzymc" allow-clear></a-input>
|
|
</a-form-item>
|
|
</a-col>
|
|
<a-col :lg="6">
|
|
<a-form-item name="xsxh">
|
|
<template #label><span title="学生学号">学生学号</span></template>
|
|
<a-input placeholder="请输入学生学号" v-model:value="queryParam2.xsxh" allow-clear></a-input>
|
|
</a-form-item>
|
|
</a-col>
|
|
<a-col :lg="6">
|
|
<a-form-item name="xsxm">
|
|
<template #label><span title="学生姓名">学生姓名</span></template>
|
|
<a-input placeholder="请输入学生姓名" v-model:value="queryParam2.xsxm" allow-clear></a-input>
|
|
</a-form-item>
|
|
</a-col>
|
|
<a-col :lg="6">
|
|
<a-form-item name="bylwTm">
|
|
<template #label><span title="论文题目">论文题目</span></template>
|
|
<a-input placeholder="请输入学生姓名" v-model:value="queryParam2.bylwTm" allow-clear></a-input>
|
|
</a-form-item>
|
|
</a-col>
|
|
<a-col :lg="6">
|
|
<a-form-item name="bylwCj">
|
|
<template #label><span title="论文成绩">论文成绩</span></template>
|
|
<a-select placeholder="请选择论文成绩" v-model:value="queryParam2.bylwCjPar">
|
|
<a-select-option value="">全部</a-select-option>
|
|
<a-select-option value="1">优秀</a-select-option>
|
|
<a-select-option value="2">良好</a-select-option>
|
|
<a-select-option value="3">中等</a-select-option>
|
|
<a-select-option value="4">及格</a-select-option>
|
|
<a-select-option value="5">不及格</a-select-option>
|
|
</a-select>
|
|
</a-form-item>
|
|
</a-col>
|
|
<a-col :span="12" style="text-align: right">
|
|
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery2">查询</a-button>
|
|
</a-col>
|
|
</a-row>
|
|
</a-form>
|
|
</div>
|
|
<a-table
|
|
:columns="columns2"
|
|
:data-source="dataList"
|
|
v-model:current="paginationProp.current"
|
|
:total="paginationProp.total"
|
|
:pagination="paginationProp"
|
|
@change="onPageChange"
|
|
>
|
|
<template #title><span class="seleciton-line">1</span> <span class="selection-title">可选论文</span></template>
|
|
<template #bodyCell="{ column, record }">
|
|
<template v-if="column.dataIndex === 'action'">
|
|
<a @click="handleXUanze(record)" v-if="record.sfxk == '0'">选择</a>
|
|
<a disabled v-if="record.sfxk == '1'">已选择</a>
|
|
</template>
|
|
</template>
|
|
</a-table>
|
|
</div>
|
|
<!-- 查看论文材料 -->
|
|
<div v-if="sfxk == 2">
|
|
<div class="jeecg-basic-table-form-container">
|
|
<a-form class="query-criteria">
|
|
<!-- <div style="margin-bottom: 20px">
|
|
<a-breadcrumb>
|
|
<a-breadcrumb-item><a class="mbxtitle" @click="handleFanhui">论文考核材料</a></a-breadcrumb-item>
|
|
<a-breadcrumb-item><span class="mbxtitle">查看论文材料</span></a-breadcrumb-item>
|
|
</a-breadcrumb>
|
|
</div> -->
|
|
<a-button type="primary" style="margin-left: 10px; margin-bottom: 15px" @click="handleFanhui">查看材料</a-button>
|
|
</a-form>
|
|
</div>
|
|
<div class="jeecg-basic-table-form-container">
|
|
<a-form class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
|
<span class="seleciton-line">1</span> <span class="selection-title">基础信息</span>
|
|
<a-row>
|
|
<a-col :span="8">
|
|
<a-form-item label="院系名称">
|
|
{{ lwinfo.value.ssyxmc }}
|
|
</a-form-item>
|
|
</a-col>
|
|
<a-col :span="8">
|
|
<a-form-item label="校内专业">
|
|
{{ lwinfo.value.ssxnzymc }}
|
|
</a-form-item>
|
|
</a-col>
|
|
<a-col :span="8">
|
|
<a-form-item label="指导教师姓名">
|
|
{{ lwinfo.value.zdjsxm }}
|
|
</a-form-item>
|
|
</a-col>
|
|
|
|
<a-col :span="8">
|
|
<a-form-item label="学生学号">
|
|
{{ lwinfo.value.xsxh }}
|
|
</a-form-item>
|
|
</a-col>
|
|
<a-col :span="8">
|
|
<a-form-item label="学生姓名">
|
|
{{ lwinfo.value.xsxm }}
|
|
</a-form-item>
|
|
</a-col>
|
|
<a-col :span="8">
|
|
<a-form-item label="主辅修">
|
|
{{ lwinfo.value.zfx }}
|
|
</a-form-item>
|
|
</a-col>
|
|
<a-col :span="8">
|
|
<a-form-item label="论文题目">
|
|
{{ lwinfo.value.bylwTm }}
|
|
</a-form-item>
|
|
</a-col>
|
|
|
|
<a-col :span="8">
|
|
<a-form-item label="毕业年份">
|
|
{{ lwinfo.value.bynf }}
|
|
</a-form-item>
|
|
</a-col>
|
|
<a-col :span="8">
|
|
<a-form-item label="论文类别">
|
|
{{ lwinfo.value.bylwLb }}
|
|
</a-form-item>
|
|
</a-col>
|
|
<a-col :span="8">
|
|
<a-form-item label="论文成绩">
|
|
{{ lwinfo.value.bylwCj }}
|
|
</a-form-item>
|
|
</a-col>
|
|
<a-col :span="8">
|
|
<a-form-item label="终稿查重相似率">
|
|
{{ lwinfo.value.ccjgxsl }}
|
|
</a-form-item>
|
|
</a-col>
|
|
</a-row>
|
|
<span class="seleciton-line">1</span> <span class="selection-title">材料信息</span>
|
|
<div style="width: 100; text-align: right"><a-button type="primary" @click="batchHandleDown(lwinfo)">下载全部材料</a-button></div>
|
|
<a-tabs v-model:activeKey="activeKey" type="card">
|
|
<a-tab-pane key="1" tab="开题报告">
|
|
<div v-if="lwinfo.value.ktbg">
|
|
<div style="width: 100; text-align: right; padding: 10px"
|
|
><a-button type="primary" @click="handleDownload(lwinfo.value.ktbg)">下载开题报告</a-button></div
|
|
>
|
|
<iframe :src="ktbgUrl" width="100%" height="600px"></iframe>
|
|
</div>
|
|
<div v-else style="height: 300px; line-height: 300px; text-align: center">暂无文件</div>
|
|
</a-tab-pane>
|
|
<a-tab-pane key="2" tab="开题报告审核意见">
|
|
<div v-if="lwinfo.value.ktbgshyj">
|
|
<div style="width: 100; text-align: right; padding: 10px"
|
|
><a-button type="primary" @click="handleDownload(lwinfo.value.ktbgshyj)">下载开题报告审核意见</a-button></div
|
|
>
|
|
<iframe :src="ktbgshyjUrl" width="100%" height="600px"></iframe>
|
|
</div>
|
|
<div v-else style="height: 300px; line-height: 300px; text-align: center">暂无文件</div>
|
|
</a-tab-pane>
|
|
<!-- <a-tab-pane key="3" tab="中期检查">
|
|
<div v-if="lwinfo.value.zqjc">
|
|
<div style="width: 100; text-align: right; padding: 10px"
|
|
><a-button type="primary" @click="handleDownload(lwinfo.value.zqjc)">下载中期检查</a-button></div
|
|
>
|
|
<iframe :src="zqjcUrl" width="100%" height="600px"></iframe>
|
|
</div>
|
|
<div v-else style="height: 300px; line-height: 300px; text-align: center">暂无文件</div>
|
|
</a-tab-pane> -->
|
|
<a-tab-pane key="4" tab="论文终稿">
|
|
<div v-if="lwinfo.value.lwzg">
|
|
<div style="width: 100; text-align: right; padding: 10px"
|
|
><a-button type="primary" @click="handleDownload(lwinfo.value.lwzg)">下载论文终稿</a-button></div
|
|
>
|
|
<iframe :src="lwzgUrl" width="100%" height="600px"></iframe>
|
|
</div>
|
|
<div v-else style="height: 300px; line-height: 300px; text-align: center">暂无文件</div>
|
|
</a-tab-pane>
|
|
<a-tab-pane key="5" tab="指导记录单">
|
|
<div v-if="lwinfo.value.zdjld">
|
|
<div style="width: 100; text-align: right; padding: 10px"
|
|
><a-button type="primary" @click="handleDownload(lwinfo.value.zdjld)">下载指导记录单</a-button></div
|
|
>
|
|
<iframe :src="zdjldUrl" width="100%" height="600px"></iframe>
|
|
</div>
|
|
<div v-else style="height: 300px; line-height: 300px; text-align: center">暂无文件</div>
|
|
</a-tab-pane>
|
|
<a-tab-pane key="6" tab="检测报告等材料">
|
|
<div v-if="lwinfo.value.jcbgdcl">
|
|
<!-- <div><a @click="handleDownload(lwinfo.value.jcbgdcl)">下载</a></div> -->
|
|
<iframe :src="jcbgUrl" width="100%" height="600px"></iframe>
|
|
</div>
|
|
<div v-else style="height: 300px; line-height: 300px; text-align: center">暂无文件</div>
|
|
</a-tab-pane>
|
|
</a-tabs>
|
|
</a-form>
|
|
</div>
|
|
</div>
|
|
<!-- 选课后的列表 -->
|
|
<div v-if="sfxk == 999">
|
|
<div class="jeecg-basic-table-form-container">
|
|
<a-form class="query-criteria">
|
|
<a-button type="primary" preIcon="ant-design:copy-outlined" @click="handleXuanke" style="margin-left: 8px; margin-bottom: 15px">
|
|
返回选择论文</a-button
|
|
>
|
|
<!-- <div style="margin-bottom: 20px">
|
|
<a-breadcrumb>
|
|
<a-breadcrumb-item><a class="mbxtitle" @click="handleXuanke">论文考核材料</a></a-breadcrumb-item>
|
|
<a-breadcrumb-item><span class="mbxtitle">已选论文</span></a-breadcrumb-item>
|
|
</a-breadcrumb>
|
|
</div> -->
|
|
</a-form>
|
|
</div>
|
|
|
|
<!--查询区域-->
|
|
<div class="jeecg-basic-table-form-container">
|
|
<a-form
|
|
ref="formRef3"
|
|
@keyup.enter.native="searchQuery"
|
|
:model="queryParam"
|
|
:label-col="labelCol"
|
|
:wrapper-col="wrapperCol"
|
|
class="query-criteria"
|
|
>
|
|
<a-row :gutter="24">
|
|
<a-col :lg="6">
|
|
<a-form-item name="ssyxmc">
|
|
<template #label><span title="院系名称">院系名称</span></template>
|
|
<j-input placeholder="请输入院系名称" v-model:value="queryParam.ssyxmc" allow-clear></j-input>
|
|
</a-form-item>
|
|
</a-col>
|
|
<a-col :lg="6">
|
|
<a-form-item name="ssxnzymc">
|
|
<template #label><span title="校内专业">校内专业</span></template>
|
|
<j-input placeholder="请输入校内专业" v-model:value="queryParam.ssxnzymc" allow-clear></j-input>
|
|
</a-form-item>
|
|
</a-col>
|
|
<a-col :lg="6">
|
|
<a-form-item name="xsxh">
|
|
<template #label><span title="学生学号">学生学号</span></template>
|
|
<j-input placeholder="请输入学生学号" v-model:value="queryParam.xsxh" allow-clear></j-input>
|
|
</a-form-item>
|
|
</a-col>
|
|
<a-col :lg="6">
|
|
<a-form-item name="xsxm">
|
|
<template #label><span title="学生姓名">学生姓名</span></template>
|
|
<j-input placeholder="请输入学生姓名" v-model:value="queryParam.xsxm" allow-clear></j-input>
|
|
</a-form-item>
|
|
</a-col>
|
|
<a-col :lg="6">
|
|
<a-form-item name="bylwTm">
|
|
<template #label><span title="论文题目">论文题目</span></template>
|
|
<j-input placeholder="请输入学生姓名" v-model:value="queryParam.bylwTm" allow-clear></j-input>
|
|
</a-form-item>
|
|
</a-col>
|
|
<a-col :lg="6">
|
|
<a-form-item name="bylwCj">
|
|
<template #label><span title="论文成绩">论文成绩</span></template>
|
|
<a-select placeholder="请选择论文成绩" v-model:value="queryParam.bylwCjPar">
|
|
<a-select-option value="">全部</a-select-option>
|
|
<a-select-option value="1">优秀</a-select-option>
|
|
<a-select-option value="2">良好</a-select-option>
|
|
<a-select-option value="3">中等</a-select-option>
|
|
<a-select-option value="4">及格</a-select-option>
|
|
<a-select-option value="5">不及格</a-select-option>
|
|
</a-select>
|
|
</a-form-item>
|
|
</a-col>
|
|
<a-col :span="12" style="text-align: right">
|
|
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>
|
|
</a-col>
|
|
</a-row>
|
|
</a-form>
|
|
</div>
|
|
<!--引用表格-->
|
|
<BasicTable @register="registerTable" class="table-style">
|
|
<template #tableTitle> <span class="seleciton-line">1</span> <span class="selection-title">已选论文</span> </template>
|
|
<!--操作栏-->
|
|
<template #action="{ record }">
|
|
<TableAction :actions="getTableAction(record)" />
|
|
</template>
|
|
</BasicTable>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
|
|
<script lang="ts" name="lwKhclXz-lwKhclXz" setup>
|
|
import { ref, reactive, onMounted } from 'vue';
|
|
import { useListPage } from '/@/hooks/system/useListPage';
|
|
import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
|
import { columns, columns2, columns3, superQuerySchema } from './LwKhclXz.data';
|
|
import { list, deleteOne, deleteXkxxOne, batchDelete, getImportUrl, getExportUrl } from './LwKhclXz.api';
|
|
import { useUserStore } from '/@/store/modules/user';
|
|
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
|
|
import { downloadFile, downloadFileLoacl } from '/@/utils/common/renderUtils';
|
|
import { getFileAccessHttpUrl } from '@/utils/common/compUtils';
|
|
import { encryptByBase64 } from '@/utils/cipher';
|
|
import JInput from '/@/components/Form/src/jeecg/components/JInput.vue';
|
|
import dayjs from 'dayjs';
|
|
|
|
import { defHttp } from '/@/utils/http/axios';
|
|
import { useGlobSetting } from '/@/hooks/setting';
|
|
|
|
const globSetting = useGlobSetting();
|
|
const baseApiUrl = globSetting.domainUrl;
|
|
const formRef = ref();
|
|
const queryParam = reactive<any>({});
|
|
const toggleSearchStatus = ref<boolean>(false);
|
|
const registerModal = ref();
|
|
const userStore = useUserStore();
|
|
const queryParam2 = ref<any>({});
|
|
const emit = defineEmits(['callback']);
|
|
const checkData = ref<any>([]);
|
|
const dataList = ref<any>([]);
|
|
const sfxk = ref<number>(0);
|
|
const lwinfo = reactive<any>({});
|
|
const docUrl = ref<string>('');
|
|
const activeKey = ref('1');
|
|
const ktbgUrl = ref<string>('');
|
|
const ktbgshyjUrl = ref<string>('');
|
|
const zqjcUrl = ref<string>('');
|
|
const lwzgUrl = ref<string>('');
|
|
const zdjldUrl = ref<string>('');
|
|
const jcbgUrl = ref<string>('');
|
|
|
|
let onlinePreviewDomain = '';
|
|
//注册table数据
|
|
const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
|
|
tableProps: {
|
|
api: list,
|
|
columns: columns3,
|
|
canResize: false,
|
|
useSearchForm: false,
|
|
actionColumn: {
|
|
width: 120,
|
|
fixed: 'right',
|
|
},
|
|
beforeFetch: async (params) => {
|
|
return Object.assign(params, queryParam);
|
|
},
|
|
},
|
|
exportConfig: {
|
|
name: '教务系统教学任务',
|
|
url: getExportUrl,
|
|
params: queryParam,
|
|
},
|
|
});
|
|
const [registerTable, { reload, collapseAll, updateTableDataRecord, findTableDataRecord, getDataSource }] = tableContext;
|
|
//批量下载
|
|
async function batchHandleDown(record) {
|
|
console.log('🙍♂️', record);
|
|
// 毕业论文-学院-专业-学生姓名-学号
|
|
var downName =
|
|
'毕业论文-' +
|
|
record.value.ssyxmc +
|
|
'-' +
|
|
(record.value.ssxnzymc ? record.value.ssxnzymc : '') +
|
|
'-' +
|
|
record.value.xsxm +
|
|
'-' +
|
|
record.value.xsxh +
|
|
'';
|
|
var params = { id: record.value.id, downName };
|
|
console.log('🕵', params);
|
|
defHttp.post({ url: '/lwKhclXz/lwKhclXz/getLwBatchDown', params: { id: record.value.id, downName } }).then((res) => {
|
|
console.log('---------', res);
|
|
downloadFileLoacl(res.downLoadPath);
|
|
});
|
|
}
|
|
//下载
|
|
function handleDownload(record) {
|
|
downloadFile(record);
|
|
}
|
|
//预览
|
|
function handleYulan(record) {
|
|
console.log('😶', record);
|
|
var file = getFileAccessHttpUrl(record);
|
|
window.open('https://jxdd.nenu.edu.cn/onlinePreview/onlinePreview?url=' + encodeURIComponent(encryptByBase64(file)));
|
|
}
|
|
//查看论文材料
|
|
async function handleChakan(record) {
|
|
console.log("record--->",record)
|
|
lwinfo.value = record;
|
|
console.log("lwinfo--->",lwinfo)
|
|
sfxk.value = 2;
|
|
const xsxh = record.xsxh;
|
|
|
|
var filename = "";
|
|
|
|
if (record.ktbg) {
|
|
filename = filename+record.ktbg+",";
|
|
}
|
|
if (record.ktbgshyj) {
|
|
filename = filename+record.ktbgshyj+",";
|
|
}
|
|
if (record.lwzg) {
|
|
filename = filename+record.lwzg+",";
|
|
}
|
|
if (record.zdjld) {
|
|
filename = filename+record.zdjld+",";
|
|
}
|
|
|
|
if(filename){
|
|
console.log("filename--->",filename)
|
|
await defHttp.post({ url: '/sys/common/ycxz2',params:{filename,xsxh} }).then((res) => {});
|
|
}
|
|
|
|
ktbgUrl.value = '';
|
|
if (record.ktbg) {
|
|
var file = record.ktbg;
|
|
file = file.substring(0,file.lastIndexOf(".")) + xsxh + file.substring(file.lastIndexOf("."),file.length);
|
|
console.log("🚀 ~ handleChakan ~ record.ktbg:", file)
|
|
var file1 = getFileAccessHttpUrl(file.replaceAll(" ",""));
|
|
ktbgUrl.value = 'https://jxdd.nenu.edu.cn/onlinePreview/onlinePreview?url=' + encodeURIComponent(encryptByBase64(file1));
|
|
console.log("🚀 ~ handleChakan ~ ktbgUrl.value:", ktbgUrl.value)
|
|
} else {
|
|
ktbgUrl.value = '';
|
|
}
|
|
|
|
ktbgshyjUrl.value = '';
|
|
if (record.ktbgshyj) {
|
|
var file = record.ktbgshyj;
|
|
file = file.substring(0,file.lastIndexOf(".")) + xsxh + file.substring(file.lastIndexOf("."),file.length);
|
|
console.log("🚀 ~ handleChakan ~ record.ktbgshyj:", file)
|
|
var file1 = getFileAccessHttpUrl(file.replaceAll(" ",""));
|
|
ktbgshyjUrl.value = 'https://jxdd.nenu.edu.cn/onlinePreview/onlinePreview?url=' + encodeURIComponent(encryptByBase64(file1));
|
|
} else {
|
|
ktbgshyjUrl.value = '';
|
|
}
|
|
|
|
// if (lwinfo.value.zqjc) {
|
|
// var file1 = getFileAccessHttpUrl(record.zqjc.replace(" ",""));
|
|
// zqjcUrl.value = 'https://jxdd.nenu.edu.cn/onlinePreview/onlinePreview?url=' + encodeURIComponent(encryptByBase64(file1));
|
|
// } else {
|
|
// zqjcUrl.value = '';
|
|
// }
|
|
|
|
lwzgUrl.value = '';
|
|
if (record.lwzg) {
|
|
var file = record.lwzg;
|
|
file = file.substring(0,file.lastIndexOf(".")) + xsxh + file.substring(file.lastIndexOf("."),file.length);
|
|
console.log("🚀 ~ handleChakan ~ record.lwzg:", file)
|
|
var file1 = getFileAccessHttpUrl(file.replaceAll(" ",""));
|
|
lwzgUrl.value = 'https://jxdd.nenu.edu.cn/onlinePreview/onlinePreview?url=' + encodeURIComponent(encryptByBase64(file1));
|
|
} else {
|
|
lwzgUrl.value = '';
|
|
}
|
|
zdjldUrl.value = '';
|
|
if (record.zdjld) {
|
|
var file = record.zdjld;
|
|
file = file.substring(0,file.lastIndexOf(".")) + xsxh + file.substring(file.lastIndexOf("."),file.length);
|
|
console.log("🚀 ~ handleChakan ~ record.zdjld:", file)
|
|
var file1 = getFileAccessHttpUrl(file.replaceAll(" ",""));
|
|
zdjldUrl.value = 'https://jxdd.nenu.edu.cn/onlinePreview/onlinePreview?url=' + encodeURIComponent(encryptByBase64(file1));
|
|
} else {
|
|
zdjldUrl.value = '';
|
|
}
|
|
|
|
if (record.ccjg) {
|
|
jcbgUrl.value = record.ccjg;
|
|
} else {
|
|
jcbgUrl.value = '';
|
|
}
|
|
|
|
}
|
|
|
|
const getViewFileDomain = () => defHttp.get({ url: '/sys/comment/getFileViewDomain' });
|
|
/**
|
|
* 初始化domain
|
|
*/
|
|
async function initViewDomain() {
|
|
if (!onlinePreviewDomain) {
|
|
onlinePreviewDomain = await getViewFileDomain();
|
|
}
|
|
if (!onlinePreviewDomain.startsWith('http')) {
|
|
onlinePreviewDomain = 'http://' + onlinePreviewDomain;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 操作栏
|
|
*/
|
|
function getTableAction(record) {
|
|
return [
|
|
{
|
|
label: '查看论文材料',
|
|
onClick: handleChakan.bind(null, record),
|
|
},
|
|
// {
|
|
// label: '考核评价材料',
|
|
// onClick: handleKhpjcl.bind(null, record),
|
|
// },
|
|
// {
|
|
// label: '学生原始材料',
|
|
// onClick: handleXsyscl.bind(null, record),
|
|
// },
|
|
];
|
|
}
|
|
//注册table数据
|
|
const labelCol = reactive({
|
|
xs: 24,
|
|
sm: 8,
|
|
xl: 8,
|
|
xxl: 8,
|
|
});
|
|
const wrapperCol = reactive({
|
|
xs: 24,
|
|
sm: 14,
|
|
});
|
|
|
|
const paginationProp = ref<any>({
|
|
total: 1,
|
|
current: 1,
|
|
pageSize: 10,
|
|
pageNo: 1,
|
|
});
|
|
const paginationYxkcProp = ref<any>({
|
|
total: 1,
|
|
current: 1,
|
|
pageSize: 10,
|
|
pageNo: 1,
|
|
});
|
|
/**
|
|
* 查询
|
|
*/
|
|
function searchQuery() {
|
|
reload();
|
|
}
|
|
//选课
|
|
function handleXuanke() {
|
|
sfxk.value = 1;
|
|
searchQuery2();
|
|
}
|
|
|
|
//选课提交
|
|
function handleXUanze(record) {
|
|
record.mainId = record.id;
|
|
record.id = null;
|
|
console.log('😰record----------', record);
|
|
defHttp
|
|
.post({
|
|
url: '/lwKhclXz/lwKhclXz/add',
|
|
params: record,
|
|
})
|
|
.then((res) => {
|
|
console.log('🤛', res);
|
|
});
|
|
xtsuccess();
|
|
}
|
|
//选课删除
|
|
async function handleDel(record) {
|
|
await deleteXkxxOne({ id: record.id }, xtsuccess);
|
|
}
|
|
|
|
function xtsuccess() {
|
|
//获取是否有选课信息
|
|
defHttp.get({ url: '/lwKhclXz/lwKhclXz/list', params: {pageNo: paginationYxkcProp.value.current,pageSize:paginationYxkcProp.value.pageSize } }).then((res) => {
|
|
console.log('🧛', res);
|
|
checkData.value = res.records;
|
|
if(res.current>res.pages){
|
|
paginationYxkcProp.value.current =res.pages
|
|
xtsuccess()
|
|
}else{
|
|
paginationYxkcProp.value.current = res.current;
|
|
}
|
|
paginationYxkcProp.value.total = res.total;
|
|
});
|
|
searchQuery2();
|
|
}
|
|
/**
|
|
* 查询
|
|
*/
|
|
function searchQuery2() {
|
|
queryParam2.value.pageNo = paginationProp.value.current;
|
|
defHttp.get({ url: '/lwKhcl/lwKhcl/getXkList', params: { pageNo: paginationProp.value.current,pageSize:paginationProp.value.pageSize, ...queryParam2.value } }).then((res) => {
|
|
dataList.value = res.records;
|
|
paginationProp.value.total = res.total;
|
|
// paginationProp.value.current = res.pageNo;
|
|
});
|
|
}
|
|
|
|
//翻页方法
|
|
async function onPageChange(record) {
|
|
console.log('👬', record);
|
|
paginationProp.value.current = record.current;
|
|
paginationProp.value.pageSize = record.pageSize;
|
|
await searchQuery2();
|
|
}
|
|
//翻页方法
|
|
async function onPageYxkcChange(record) {
|
|
paginationYxkcProp.value.current = record.current;
|
|
paginationYxkcProp.value.pageSize = record.pageSize;
|
|
console.log("🚀 ~ onPageYxkcChange ~ paginationYxkcProp.value:", paginationYxkcProp.value)
|
|
await init();
|
|
}
|
|
|
|
//返回首页
|
|
function handleFanhui() {
|
|
sfxk.value = 999;
|
|
init();
|
|
}
|
|
|
|
function init() {
|
|
//获取是否有选课信息
|
|
defHttp.get({ url: '/lwKhclXz/lwKhclXz/list', params: { pageNo: paginationYxkcProp.value.current,pageSize:paginationYxkcProp.value.pageSize } }).then((res) => {
|
|
console.log('🧛', res);
|
|
checkData.value = res.records;
|
|
paginationYxkcProp.value.total = res.total;
|
|
paginationYxkcProp.value.current = res.current;
|
|
});
|
|
}
|
|
|
|
function init2() {
|
|
//获取是否有选课信息
|
|
defHttp.get({ url: '/lwKhclXz/lwKhclXz/list', params: { pageNo: paginationYxkcProp.value.current,pageSize:paginationYxkcProp.value.pageSize } }).then((res) => {
|
|
console.log('🧛', res);
|
|
if (res.records.length == 0) {
|
|
sfxk.value = 0;
|
|
checkData.value = [];
|
|
} else {
|
|
sfxk.value = 1;
|
|
checkData.value = res.records;
|
|
paginationYxkcProp.value.total = res.total;
|
|
paginationYxkcProp.value.current = res.current;
|
|
searchQuery2();
|
|
}
|
|
});
|
|
}
|
|
// 自动请求并暴露内部方法
|
|
onMounted(() => {
|
|
init2();
|
|
});
|
|
</script>
|
|
|
|
<style lang="less" scoped>
|
|
.jeecg-basic-table-form-container {
|
|
padding: 0;
|
|
.table-page-search-submitButtons {
|
|
display: block;
|
|
margin-bottom: 24px;
|
|
white-space: nowrap;
|
|
}
|
|
.query-group-cust {
|
|
min-width: 100px !important;
|
|
}
|
|
.query-group-split-cust {
|
|
width: 30px;
|
|
display: inline-block;
|
|
text-align: center;
|
|
}
|
|
.ant-form-item:not(.ant-form-item-with-help) {
|
|
margin-bottom: 16px;
|
|
height: 32px;
|
|
}
|
|
:deep(.ant-picker),
|
|
:deep(.ant-input-number) {
|
|
width: 100%;
|
|
}
|
|
}
|
|
.query-criteria {
|
|
padding-top: 22px;
|
|
border: 1px solid #eaeef6;
|
|
border-radius: 4px;
|
|
}
|
|
.query-criteria:hover {
|
|
border: 1px solid #c5d8ff;
|
|
box-shadow: 2px 2px 10px 2px #e8ecf4;
|
|
border-radius: 4px;
|
|
}
|
|
.table-style {
|
|
padding: 10px;
|
|
background: #fff;
|
|
border: 1px solid #eaeef6;
|
|
border-radius: 4px;
|
|
}
|
|
.table-style:hover {
|
|
border: 1px solid #e8ecf4;
|
|
box-shadow: 2px 2px 10px 2px #e8ecf4;
|
|
border-radius: 4px;
|
|
}
|
|
.xn-title {
|
|
font-size: 16px;
|
|
font-weight: 700;
|
|
}
|
|
|
|
.selection-title {
|
|
font-size: 18px;
|
|
font-weight: 700;
|
|
padding-left: 10px;
|
|
}
|
|
.seleciton-line {
|
|
background: #1890ff;
|
|
border-radius: 10px;
|
|
color: #1890ff;
|
|
}
|
|
.mbxtitle {
|
|
font-size: 22px;
|
|
line-height: 22px;
|
|
}
|
|
</style>
|