修改bug

This commit is contained in:
yangjun 2024-06-08 15:48:41 +08:00
parent 2af714b850
commit 304cb4fa90
11 changed files with 309 additions and 111 deletions

View File

@ -96,6 +96,7 @@ export const loadCategoryData = (params) => {
export const uploadFile = (params, success) => {
return defHttp.uploadFile({ url: uploadUrl }, params, { success });
};
/**
*
* @param url
@ -103,8 +104,8 @@ export const uploadFile = (params, success) => {
* @param parameter
* @returns {*}
*/
export const downloadFile = (url, fileName?, parameter?) => {
return getFileblob(url, parameter).then((data) => {
export const downloadFile = (url, fileName?, parameter?, cellBack?, config?) => {
return getFileblob(url, parameter, config).then((data) => {
if (!data || data.size === 0) {
message.warning('文件下载失败');
return;
@ -122,6 +123,9 @@ export const downloadFile = (url, fileName?, parameter?) => {
document.body.removeChild(link); //下载完成移除元素
window.URL.revokeObjectURL(url); //释放掉blob对象
}
if(cellBack){
cellBack(data);
}
});
};
@ -131,14 +135,14 @@ export const downloadFile = (url, fileName?, parameter?) => {
* @param parameter
* @returns {*}
*/
export const getFileblob = (url, parameter) => {
export const getFileblob = (url, parameter, config = { isTransformResponse: false }) => {
return defHttp.get(
{
url: url,
params: parameter,
responseType: 'blob',
},
{ isTransformResponse: false }
config
);
};

View File

@ -44,6 +44,8 @@
import { buildUUID } from '/@/utils/uuid';
import CryptoJS from 'crypto-js';
import { downloadFile as ajaxDownloadFileFn } from '/@/api/common/api';
const spinning = ref<boolean>(false);
const { createMessage, createConfirm } = useMessage();
const { prefixCls } = useDesign('j-upload');
@ -408,31 +410,44 @@
* 自定义下载事件带加载中
*/
function openWindowWithLoading(url){
let xhr = new XMLHttpRequest();
spinning.value = true;
xhr.open('GET',url,true);
// xhr.onprogress = function (e){
// let percent = Math.floor(e.loaded / e.total * 100);//
// console.log(percent);
// }
xhr.send();
xhr.responseType = "arraybuffer";
xhr.onreadystatechange = event =>{
console.log(xhr);
if(xhr.readyState == 4){
if(xhr.status == 200){
let fileName = url.substring(url.lastIndexOf("/")+1);
let blob = new Blob([xhr.response]);
const downLoadLink = document.createElement('a');
downLoadLink.download = fileName;
downLoadLink.href = URL.createObjectURL(blob);
downLoadLink.click();
}else if (xhr.status == 404){
createMessage.warning('没有找到可下载的资源!');
}
}
spinning.value = false;
let fileName = url.substring(url.lastIndexOf("/")+1);
let uploadAxiosHttpConfig = {
// * * 60
timeout: 60 * 60 * 1000,
//
joinPrefix: false,
//
apiUrl: '',
//
isTransformResponse: false
}
ajaxDownloadFileFn(url, fileName, {}, () => { spinning.value = false; }, uploadAxiosHttpConfig);
//spinning.value = false;
// let xhr = new XMLHttpRequest();
// xhr.open('GET',url,true);
// // xhr.onprogress = function (e){
// // let percent = Math.floor(e.loaded / e.total * 100);//
// // console.log(percent);
// // }
// xhr.send();
// xhr.responseType = "arraybuffer";
// xhr.onreadystatechange = event =>{
// console.log(xhr);
// if(xhr.readyState == 4){
// if(xhr.status == 200){
// let fileName = url.substring(url.lastIndexOf("/")+1);
// let blob = new Blob([xhr.response]);
// const downLoadLink = document.createElement('a');
// downLoadLink.download = fileName;
// downLoadLink.href = URL.createObjectURL(blob);
// downLoadLink.click();
// }else if (xhr.status == 404){
// createMessage.warning('');
// }
// }
// spinning.value = false;
// }
}
function emitValue(value) {

View File

@ -58,16 +58,16 @@ export const columns: BasicColumn[] = [
align: "center",
dataIndex: 'detectionNum'
},
{
title: '累计抓取人数',
align: "center",
dataIndex: 'allNum'
},
{
title: '平均抓取人数',
align: "center",
dataIndex: 'averageNum',
},
// {
// title: '累计抓取人数',
// align: "center",
// dataIndex: 'allNum'
// },
// {
// title: '平均抓取人数',
// align: "center",
// dataIndex: 'averageNum',
// },
{
title: '出勤率',
align: "center",
@ -107,16 +107,25 @@ export const formSchema: FormSchema[] = [
label: '学年学期',
field: 'xnxq',
component: 'Input',
colProps: {
span: 8,
},
},
{
label: '课程名称',
field: 'kcmc',
component: 'Input',
colProps: {
span: 8,
},
},
{
label: '授课日期',
field: 'createTime',
component: 'Input',
colProps: {
span: 8,
},
render: ({ values }) => {
let text = values?.ketangbiaoInfo?.skrq;
return h(Input, { value: text, disabled: true });
@ -126,6 +135,9 @@ export const formSchema: FormSchema[] = [
label: '授课节次',
field: 'ketangbiaoInfo',
component: 'Input',
colProps: {
span: 8,
},
render: ({ values }) => {
let text = values?.ketangbiaoInfo?.hh;
return h(Input, { value: text, disabled: true });
@ -136,12 +148,18 @@ export const formSchema: FormSchema[] = [
field: 'rwbh',
component: 'Input',
show: false,
colProps: {
span: 8,
},
},
{
label: '课程编号',
field: 'kcbh',
component: 'Input',
show: false,
colProps: {
span: 8,
},
},
{
label: '教室编号',
@ -159,21 +177,33 @@ export const formSchema: FormSchema[] = [
label: '抓取次数',
field: 'detectionNum',
component: 'InputNumber',
colProps: {
span: 8,
},
},
{
label: '累计抓取人数',
field: 'allNum',
component: 'InputNumber',
colProps: {
span: 8,
},
},
{
label: '平均抓取人数',
field: 'averageNum',
component: 'InputNumber',
colProps: {
span: 8,
},
},
{
label: '选课人数',
field: 'xkrs',
component: "Input",
colProps: {
span: 8,
},
render: ({ values }) => {
let text = values?.ketangbiaoInfo?.xkrs;
return h(Input, { value: text, disabled: true });
@ -184,6 +214,9 @@ export const formSchema: FormSchema[] = [
label: '出勤率',
field: 'averageNum',
component: "Input",
colProps: {
span: 8,
},
render: ({ values }) => {
let text = '';
let { ketangbiaoInfo, averageNum } = values??{};

View File

@ -68,6 +68,8 @@
<a-button type="primary" @click="handleDetail(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==1||item.qpublish==2">试卷详情</a-button>
<a-button type="primary" @click="handlePeizhiXq(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==1||item.qpublish==2">预览题目</a-button>
<a-button type="primary" @click="handleDjjgs(item,'')" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==1||item.qpublish==2">测验结果</a-button>
<a-button type="primary" @click="handleTjfx(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==1||item.qpublish==2">统计分析</a-button>
<a-button type="primary" @click="handleXzdj(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==1||item.qpublish==2">下载答卷</a-button>
</a-col>
<!-- <a-col :span="24" style="text-align:center;margin-top:20px;">-->
<!-- <a-button type="primary" @click="handleDj(item)" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);" v-if="item.qpublish==1">答卷</a-button>-->
@ -92,6 +94,7 @@
<WjxWjxxTmlbDjjgsModal ref="WjxWjxxTmlbDjjgsModalPage" @success="handleSuccess"></WjxWjxxTmlbDjjgsModal>
<XxhbbksListModal ref="XxhbbksListModalPage"></XxhbbksListModal>
<TikuListModal ref="TikuListModalPage"></TikuListModal>
<WjxWjxxTjfxModal ref="WjxWjxxTjfxModalPage"></WjxWjxxTjfxModal>
</div>
</template>
@ -109,13 +112,14 @@
import XxhbbksListModal from '/@/views/kc/xxhbbks/XxhbbksListModal.vue';
import {useMessage} from "/@/hooks/web/useMessage";
import TikuListModal from '/@/views/kc/wjxWjxxTmlb/TikuListModal.vue';
import WjxWjxxTjfxModal from '/@/views/kc/wjxCswj/WjxWjxxTjfxModal.vue';
import dayjs from 'dayjs';
//
const { currentRoute } = useRouter();
const { query } = unref(currentRoute);
const { rwbh,xqxn,typa } = query;//
const { createConfirm } = useMessage();
const { createConfirm,createMessage } = useMessage();
const APagination = Pagination;
const queryParam = ref<any>({});
const current = ref<number>(0);
@ -131,6 +135,7 @@
const WjxWjxxTmlbDjjgsDcModalPage = ref();
const XxhbbksListModalPage = ref();
const TikuListModalPage = ref();
const WjxWjxxTjfxModalPage = ref();
const labelCol = reactive({
xs: { span: 24 },
@ -140,7 +145,31 @@
xs: { span: 24 },
sm: { span: 16 },
});
//
function handleTjfx(record){
WjxWjxxTjfxModalPage.value.disableSubmit = true;
WjxWjxxTjfxModalPage.value.edit(record);
// defHttp.get({ url: '/wjxWjxx/wjxWjxx/wjxxTjfx', params: { id: record.id } }).then(res => {
// console.log(`🚀 ~ defHttp.get ~ res:`, res)
// });
}
//
function handleXzdj(record){
defHttp.get({ url: '/wjxWjxx/wjxWjxx/wjxxDownLoad', params: { id: record.id } }).then(res => {
console.log(`🚀 ~ defHttp.get ~ res:`, res)
if(res.result){
var downUrl = res.data.download_url;
console.log(`🚀 ~ defHttp.get ~ downUrl:`, downUrl)
if(downUrl){
window.open(downUrl)
}else{
createMessage.warning("下载异常请联系管理员")
}
}else{
createMessage.warning(res.errormsg)
}
});
}
//61
function handleTiku(wjLeixing){

View File

@ -59,14 +59,16 @@
</a-row>
</a-col>
<a-col :span="24" style="text-align:center;margin-top:8px;">
<a-button type="primary" @click="handlePeizhi(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">设置问卷</a-button>
<a-button type="primary" @click="handleEdit(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">基本信息</a-button>
<a-button type="primary" @click="handleFabu(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">发布问卷</a-button>
<a-button type="primary" @click="handleDelete(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">删除问卷</a-button>
<a-button type="primary" @click="handleEdit(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">编辑问卷</a-button>
<a-button type="primary" @click="handlePeizhi(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">添加试题</a-button>
<a-button type="primary" @click="handlePeizhiXq(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==0">预览问卷</a-button>
<a-button type="primary" @click="handleDetail(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==1||item.qpublish==2">问卷详情</a-button>
<a-button type="primary" @click="handlePeizhiXq(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==1||item.qpublish==2">预览问卷</a-button>
<a-button type="primary" @click="handleDjjgs(item,'')" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);" v-if="item.qpublish==1||item.qpublish==2">问卷结果</a-button>
<a-button type="primary" @click="handleTjfx(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==1||item.qpublish==2">统计分析</a-button>
<a-button type="primary" @click="handleXzdj(item)" style="margin-left:5px;margin-bottom:5px;padding: 0px 4px;background:rgb(28, 132, 198);" v-if="item.qpublish==1||item.qpublish==2">下载答卷</a-button>
</a-col>
<!-- <a-col :span="24" style="text-align:center;margin-top:20px;">-->
<!-- <a-button type="primary" @click="handleDj(item)" style="margin-left:5px;padding: 0px 8px;background:rgb(28, 132, 198);" v-if="item.qpublish==1">答卷</a-button>-->
@ -92,6 +94,7 @@
<WjxWjxxTmlbDjjgsDcModal ref="WjxWjxxTmlbDjjgsDcModalPage" @success="handleSuccess"></WjxWjxxTmlbDjjgsDcModal>
<XxhbbksListModal ref="XxhbbksListModalPage"></XxhbbksListModal>
<WjdcTikuListModal ref="TikuListModalPage"></WjdcTikuListModal>
<WjxWjxxTjfxModal ref="WjxWjxxTjfxModalPage"></WjxWjxxTjfxModal>
</div>
</template>
@ -110,13 +113,14 @@
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
import {useMessage} from "/@/hooks/web/useMessage";
import WjdcTikuListModal from '/@/views/kc/wjxWjxxTmlb/WjdcTikuListModal.vue';
import WjxWjxxTjfxModal from '/@/views/kc/wjxCswj/WjxWjxxTjfxModal.vue';
import dayjs from 'dayjs';
//
const { currentRoute } = useRouter();
const { query } = unref(currentRoute);
const { rwbh,xqxn,typa} = query;//
const { createConfirm } = useMessage();
const { createConfirm,createMessage } = useMessage();
const APagination = Pagination;
const queryParam = ref<any>({});
const current = ref<number>(0);
@ -131,6 +135,7 @@
const WjxWjxxTmlbDjjgsDcModalPage = ref();
const XxhbbksListModalPage = ref();
const TikuListModalPage = ref();
const WjxWjxxTjfxModalPage = ref();
const labelCol = reactive({
xs: { span: 24 },
@ -141,6 +146,28 @@
sm: { span: 16 },
});
//
function handleTjfx(record){
WjxWjxxTjfxModalPage.value.disableSubmit = true;
WjxWjxxTjfxModalPage.value.edit(record);
}
//
function handleXzdj(record){
defHttp.get({ url: '/wjxWjxx/wjxWjxx/wjxxDownLoad', params: { id: record.id } }).then(res => {
console.log(`🚀 ~ defHttp.get ~ res:`, res)
if(res.result){
var downUrl = res.data.download_url;
console.log(`🚀 ~ defHttp.get ~ downUrl:`, downUrl)
if(downUrl){
window.open(downUrl)
}else{
createMessage.warning("下载异常请联系管理员")
}
}else{
createMessage.warning(res.errormsg)
}
});
}
//61
function handleTiku(wjLeixing){
var record = {wjLeixing}

View File

@ -18,21 +18,35 @@
<span style="float: right;margin-left: 10px;background: #1c84c6;color: #fff;padding: 9px;border-radius: 5px;font-size: 16px;" @click="() => tingKeZuJiAddModal.view({ ketangbiaoid: route.query.ktId })">填写评价表</span>
<div style="font-size: 12px;">
{{ ktangInfo.zc || ' ' }}&nbsp;&nbsp;{{ ktangInfo.skjs || ' ' }}&nbsp;&nbsp;学分{{ ktangInfo.xf || ' ' }}
&nbsp;&nbsp;选课人数{{ ktangInfo.xkrs || ' ' }}
&nbsp;&nbsp;课程性质{{ ktangInfo.kcxz || ' ' }}
&nbsp;&nbsp;开课单位{{ ktangInfo.kkdw || ' ' }}
&nbsp;&nbsp;节次{{ ktangInfo.hh || ' ' }}
</div>
<div style="font-size: 12px;text-wrap: wrap;width: 100%;word-wrap: break-word;">
<div style="font-size: 12px;text-wrap: wrap;width: 100%;word-wrap: break-word;" hidden>
课程介绍{{ ktangInfo?.zyJxdg?.kcjs }}
</div>
</template>
<div style="padding: 1rem;">
<div style="font-size: 16px;float: left;">{{ mainVideoCardBoxTitle || '' }}</div>
<div style="float: right;">
<!-- <div style="float: right;">
AI识别出勤率{{ calcPercentage((ktangInfo?.detectionMain?.averageNum || 0),(ktangInfo?.jiaoshirongliang?.jsrl || 0))}}&nbsp;&nbsp;
<template v-if="ktangInfo?.jiaoshirongliang?.jsrl">本教室容量{{ktangInfo?.jiaoshirongliang?.jsrl}}座位</template>
</div> -->
<div style="float: right;">
<span>本教室容量{{ktangInfo?.jiaoshirongliang?.jsrl || ' '}}座位</span>
<span style="margin-left:15px;">选课人数{{ ktangInfo.xkrs || ' ' }}</span>
<span style="margin-left:15px;">出勤人数: <a @click="handleZqrs(ktangInfo)">{{ ktangInfo?.kcDetectionDetailed?.num||'89' }}</a></span>
<span style="margin-left:15px;">
<a-tooltip placement="topRight">
<template #title>
<span>抓取时间上课后10分课中50分钟下课前10分钟 </span>
</template>
<Icon icon="ant-design:question-circle-outlined" />
</a-tooltip>
</span>
</div>
<bVideo ref="mainVideo" videoId="mainVideo" :videoOption="{ autoplay: true }" @load-end="mainVideoLoadEnd"/>
<div class="jxDiv">
<a-space>
@ -112,6 +126,7 @@
</div>
</a-modal>
<KcDetectionMainModal @register="registerModal" ></KcDetectionMainModal>
</template>
<script lang="ts" setup name="zhihuijiaoshiIndexPage">
@ -128,6 +143,8 @@ import videojs from "video.js";
import { getSysConfig } from '/@/views/site/utils/index';
import { useMessage } from '/@/hooks/web/useMessage';
import { baseApiUrl, getFileAccessHttpUrl } from '/@/utils/common/compUtils';
import KcDetectionMainModal from '/@/views/kc/detection/components/KcDetectionMainModal.vue'
import { useModal } from '/@/components/Modal';
const { createMessage, createInfoModal, createErrorModal } = useMessage();
@ -149,6 +166,9 @@ const playStatus = ref(false);
const model = reactive<Record<string, any>>({ notes:'' });
//model
const [registerModal, { openModal }] = useModal();
const route = useRoute();
enum Api {
@ -396,6 +416,31 @@ function downloadFile(miniUrl) {
window.open(url,"_blank");
}
function handleZqrs(record){
console.log(`🚀 ~ handleZqrs ~ record:`, record)
console.log(`🚀 ~ handleZqrs ~ zqrsList:`, record.zqrsList)
var a = record.detectionMain;
a.detectionDetailedList = record.zqrsList
handleZqrsDetail(a);
// if(record.zqrsList){
// a.detectionDetailedList = record.zqrsList
// handleZqrsDetail(a);
// }else{
// createMessage.warning("")
// // a.detectionDetailedList = [{}]
// // handleZqrsDetail(a);
// }
}
function handleZqrsDetail(record: Recordable) {
openModal(true, {
record,
isUpdate: true,
showFooter: false,
});
}
</script>

View File

@ -56,7 +56,7 @@ function loaddata(){
function openKecheng(record){
console.log(`🚀 ~ openKecheng ~ record:`, record)
defHttp.post({ url: '/zyDbtx/zyDbtx/deleteByRwbhCreate',params:{rwbh:record.rwbh} }).then((res) => {
defHttp.post({ url: '/zyDbtx/zyDbtx/deleteByRwbhCreate',params:{rwbh:record.rwbh,fbr:record.jgh} }).then((res) => {
loaddata()
});
var url = "/stuzy/studentMain?rwbh="+record.rwbh+"&xqxn="+record.xqxn+"&teano="+record.jgh;

View File

@ -22,8 +22,9 @@
</template>
<script lang="ts" name="jiaoXueDanYuanNeiRongIndexDownload" setup>
import { getFileAccessHttpUrl } from '/@/utils/common/compUtils'
import {ref} from "vue";
import {useMessage} from "/@/hooks/web/useMessage";
import { ref } from "vue";
import { useMessage } from "/@/hooks/web/useMessage";
import { downloadFile as ajaxDownloadFileFn } from '/@/api/common/api';
const { createMessage } = useMessage();
const spinning = ref<boolean>(false);
const props = defineProps({
@ -56,26 +57,40 @@
}
function openWindowWithLoading(url){
let xhr = new XMLHttpRequest();
spinning.value = true;
xhr.open('GET',url,true);
xhr.send();
xhr.responseType = "arraybuffer";
xhr.onreadystatechange = event =>{
if(xhr.readyState == 4){
if(xhr.status == 200){
let fileName = url.substring(url.lastIndexOf("/")+1);
let blob = new Blob([xhr.response]);
const downLoadLink = document.createElement('a');
downLoadLink.download = fileName;
downLoadLink.href = URL.createObjectURL(blob);
downLoadLink.click();
}else if (xhr.status == 404){
createMessage.warning('没有找到可下载的资源!');
}
}
spinning.value = false;
let fileName = url.substring(url.lastIndexOf("/")+1);
let uploadAxiosHttpConfig = {
// * * 60
timeout: 60 * 60 * 1000,
//
joinPrefix: false,
//
apiUrl: '',
//
isTransformResponse: false
}
ajaxDownloadFileFn(url, fileName, {}, () => { spinning.value = false; }, uploadAxiosHttpConfig);
// let xhr = new XMLHttpRequest();
// spinning.value = true;
// xhr.open('GET',url,true);
// xhr.send();
// xhr.responseType = "arraybuffer";
// xhr.onreadystatechange = event =>{
// if(xhr.readyState == 4){
// if(xhr.status == 200){
// let fileName = url.substring(url.lastIndexOf("/")+1);
// let blob = new Blob([xhr.response]);
// const downLoadLink = document.createElement('a');
// downLoadLink.download = fileName;
// downLoadLink.href = URL.createObjectURL(blob);
// downLoadLink.click();
// }else if (xhr.status == 404){
// createMessage.warning('');
// }
// }
// spinning.value = false;
// }
}
</script>

View File

@ -43,7 +43,7 @@
<template #extra>
<span v-show="one.showBtn">
<a-space>
<div v-show="one.fabu=='0'"><a-button type="primary" size="small" @click="handleFabu(one,'1')" class="addBtn" title="发布"><Icon icon="ant-design:check-outlined"/></a-button></div>
<div v-show="one.fabu=='0'||!one.fabu"><a-button type="primary" size="small" @click="handleFabu(one,'1')" class="addBtn" title="发布"><Icon icon="ant-design:check-outlined"/></a-button></div>
<div v-show="one.fabu=='1'"><a-button type="primary" size="small" @click="handleFabu(one,'0')" class="addBtn" title="取消发布"><Icon icon="ant-design:rollback-outlined"/></a-button></div>
<div><a-button type="primary" size="small" @click="addTwo($event, one)" class="twoBtn addBtn" title="新增节次"><Icon icon="ant-design:plus-outlined"/></a-button></div>
<div><a-button type="primary" size="small" danger @click="delOne($event, one)" class="addBtn" title="删除"><Icon icon="ant-design:delete"/></a-button></div>
@ -166,6 +166,7 @@
import JEditor from '/@/components/Form/src/jeecg/components/JEditor.vue';
import downloadAssembly from '/@/views/zy/jiaoXueDanYuanNeiRong/downloadAssembly.vue';
import stuIndex from './stuIndex.vue';
import { downloadFile as ajaxDownloadFileFn } from '/@/api/common/api';
const spinning = ref<boolean>(false);
//
@ -520,26 +521,40 @@
}
function openWindowWithLoading(url){
let xhr = new XMLHttpRequest();
spinning.value = true;
xhr.open('GET',url,true);
xhr.send();
xhr.responseType = "arraybuffer";
xhr.onreadystatechange = event =>{
if(xhr.readyState == 4){
if(xhr.status == 200){
let fileName = url.substring(url.lastIndexOf("/")+1);
let blob = new Blob([xhr.response]);
const downLoadLink = document.createElement('a');
downLoadLink.download = fileName;
downLoadLink.href = URL.createObjectURL(blob);
downLoadLink.click();
}else if (xhr.status == 404){
createMessage.warning('没有找到可下载的资源!');
}
}
spinning.value = false;
let fileName = url.substring(url.lastIndexOf("/")+1);
let uploadAxiosHttpConfig = {
// * * 60
timeout: 60 * 60 * 1000,
//
joinPrefix: false,
//
apiUrl: '',
//
isTransformResponse: false
}
ajaxDownloadFileFn(url, fileName, {}, () => { spinning.value = false; }, uploadAxiosHttpConfig);
// let xhr = new XMLHttpRequest();
// spinning.value = true;
// xhr.open('GET',url,true);
// xhr.send();
// xhr.responseType = "arraybuffer";
// xhr.onreadystatechange = event =>{
// if(xhr.readyState == 4){
// if(xhr.status == 200){
// let fileName = url.substring(url.lastIndexOf("/")+1);
// let blob = new Blob([xhr.response]);
// const downLoadLink = document.createElement('a');
// downLoadLink.download = fileName;
// downLoadLink.href = URL.createObjectURL(blob);
// downLoadLink.click();
// }else if (xhr.status == 404){
// createMessage.warning('');
// }
// }
// spinning.value = false;
// }
}
//,

View File

@ -117,7 +117,7 @@
const globSetting = useGlobSetting();
const baseApiUrl = globSetting.domainUrl;
const queryParam = ref<any>({xqxn,teacherNo:userStore.getUserInfo.username});
const queryParam = ref<any>({xqxn,rwbh,teacherNo:userStore.getUserInfo.username});
const mainId = ref<string>('');
const toggleSearchStatus = ref<boolean>(false);

View File

@ -86,7 +86,7 @@
</template>
<script lang="ts" name="zyk-zykInfo" setup>
import {ref, reactive, onMounted} from 'vue';
import { ref, reactive, onMounted } from 'vue';
import { BasicTable, useTable, TableAction } from '/@/components/Table';
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
import { useListPage } from '/@/hooks/system/useListPage';
@ -96,8 +96,10 @@ import { list, deleteOne, batchDelete, getImportUrl, getExportUrl } from './ZykI
import { useUserStore } from '/@/store/modules/user';
import ZykInfoModal from './components/ZykInfoModal.vue'
import { getUserSf,getSysConfig } from '/@/views/site/utils/index';
import {baseApiUrl, getFileAccessHttpUrl} from "/@/utils/common/compUtils";
import {useMessage} from "/@/hooks/web/useMessage";
import { baseApiUrl, getFileAccessHttpUrl } from "/@/utils/common/compUtils";
import { useMessage } from "/@/hooks/web/useMessage";
import { downloadFile as ajaxDownloadFileFn } from '/@/api/common/api';
const spinning = ref<boolean>(false);
const { createMessage } = useMessage();
const userStore = useUserStore();
@ -174,30 +176,43 @@ function downloadFile(url){
}
function openWindowWithLoading(url){
let xhr = new XMLHttpRequest();
spinning.value = true;
xhr.open('GET',url,true);
// xhr.onprogress = function (e){
// let percent = Math.floor(e.loaded / e.total * 100);//
// console.log(percent);
// }
xhr.send();
xhr.responseType = "arraybuffer";
xhr.onreadystatechange = event =>{
if(xhr.readyState == 4){
if(xhr.status == 200){
let fileName = url.substring(url.lastIndexOf("/")+1);
let blob = new Blob([xhr.response]);
const downLoadLink = document.createElement('a');
downLoadLink.download = fileName;
downLoadLink.href = URL.createObjectURL(blob);
downLoadLink.click();
}else if (xhr.status == 404){
createMessage.warning('没有找到可下载的资源!');
}
let fileName = url.substring(url.lastIndexOf("/")+1);
let uploadAxiosHttpConfig = {
// * * 60
timeout: 60 * 60 * 1000,
//
joinPrefix: false,
//
apiUrl: '',
//
isTransformResponse: false
}
spinning.value = false;
}
ajaxDownloadFileFn(url, fileName, {}, () => { spinning.value = false; }, uploadAxiosHttpConfig);
// let xhr = new XMLHttpRequest();
// spinning.value = true;
// xhr.open('GET',url,true);
// // xhr.onprogress = function (e){
// // let percent = Math.floor(e.loaded / e.total * 100);//
// // console.log(percent);
// // }
// xhr.send();
// xhr.responseType = "arraybuffer";
// xhr.onreadystatechange = event =>{
// if(xhr.readyState == 4){
// if(xhr.status == 200){
// let fileName = url.substring(url.lastIndexOf("/")+1);
// let blob = new Blob([xhr.response]);
// const downLoadLink = document.createElement('a');
// downLoadLink.download = fileName;
// downLoadLink.href = URL.createObjectURL(blob);
// downLoadLink.click();
// }else if (xhr.status == 404){
// createMessage.warning('');
// }
// }
// spinning.value = false;
// }
}
function changeXqxnDic(){