mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-06 09:26:44 +08:00
fix:iframe页面token过期跳转登录
This commit is contained in:
@@ -22,7 +22,7 @@
|
||||
style="width: 100%; height: 100%"
|
||||
:src="iframeUrl + '/course/manages'"
|
||||
name="myframe"
|
||||
sandbox="allow-forms allow-scripts allow-downloads allow-same-origin allow-popups"
|
||||
sandbox="allow-forms allow-scripts allow-downloads allow-same-origin allow-popups allow-top-navigation"
|
||||
></iframe>
|
||||
</a-modal>
|
||||
</div>
|
||||
|
||||
@@ -1,281 +1,289 @@
|
||||
<!-- 查看系统考试答卷--iframe嵌套 -->
|
||||
<template>
|
||||
<a-drawer
|
||||
<a-drawer
|
||||
:visible="CAvisible"
|
||||
class="drawerStyle CheckAnsware"
|
||||
placement="right"
|
||||
width="40%"
|
||||
@after-visible-change="afterVisibleChange"
|
||||
>
|
||||
<div class="drawerMain">
|
||||
<div class="headersub">
|
||||
<div class="headerTitle">查看答卷</div>
|
||||
<img
|
||||
style="width:29px;height:29px;cursor:pointer"
|
||||
src="../../assets/images/basicinfo/close.png"
|
||||
@click="closeDrawer"
|
||||
/>
|
||||
</div>
|
||||
<!-- <div class="headersup"><span>评估名称:<span style="color:#999ba3">管理者进阶作业</span></span><span style="margin-left:25px">考试总分:<span style="color:#999ba3">100分</span></span><span style="margin-left:25px">及格分:<span style="color:#999ba3">60分</span></span></div> -->
|
||||
<div class="main" style="height:860px;display: flex;">
|
||||
<iframe
|
||||
id="iframe"
|
||||
style="width: 100%; height: 100%;"
|
||||
:src="iframeUrl+'/exam/viewanswer?id='+(answerId?answerId:datasource.answerId)"
|
||||
frameborder="0"
|
||||
name="myframe"
|
||||
security="restricted"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups"
|
||||
>
|
||||
</iframe>
|
||||
</div>
|
||||
<!-- <div class="btnn">
|
||||
>
|
||||
<div class="drawerMain">
|
||||
<div class="headersub">
|
||||
<div class="headerTitle">查看答卷</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="../../assets/images/basicinfo/close.png"
|
||||
@click="closeDrawer"
|
||||
/>
|
||||
</div>
|
||||
<!-- <div class="headersup"><span>评估名称:<span style="color:#999ba3">管理者进阶作业</span></span><span style="margin-left:25px">考试总分:<span style="color:#999ba3">100分</span></span><span style="margin-left:25px">及格分:<span style="color:#999ba3">60分</span></span></div> -->
|
||||
<div class="main" style="height: 860px; display: flex">
|
||||
<iframe
|
||||
id="iframe"
|
||||
style="width: 100%; height: 100%"
|
||||
:src="
|
||||
iframeUrl +
|
||||
'/exam/viewanswer?id=' +
|
||||
(answerId ? answerId : datasource.answerId)
|
||||
"
|
||||
frameborder="0"
|
||||
name="myframe"
|
||||
security="restricted"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups allow-top-navigation"
|
||||
>
|
||||
</iframe>
|
||||
</div>
|
||||
<!-- <div class="btnn">
|
||||
<button class="btn1">取消</button>
|
||||
<button class="btn2">确定</button>
|
||||
</div> -->
|
||||
</div>
|
||||
</a-drawer>
|
||||
</div>
|
||||
</a-drawer>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { toRefs,reactive } from '@vue/reactivity';
|
||||
import { message } from 'ant-design-vue';
|
||||
import { toRefs, reactive } from "@vue/reactivity";
|
||||
import { message } from "ant-design-vue";
|
||||
import { iframeUrl } from "../../api/method";
|
||||
import {queryUserAnswerDetail} from '@/api/indexExam';
|
||||
import { queryUserAnswerDetail } from "@/api/indexExam";
|
||||
export default {
|
||||
name:"CheckAnsware",
|
||||
props:{
|
||||
CAvisible:{
|
||||
type:Boolean,
|
||||
default:false,
|
||||
},
|
||||
datasource:{
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
},
|
||||
},
|
||||
answerId:{
|
||||
type: String,
|
||||
default: "",
|
||||
}
|
||||
name: "CheckAnsware",
|
||||
props: {
|
||||
CAvisible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
setup(props,ctx){
|
||||
const state = reactive({
|
||||
score:null, //传过来赋给score
|
||||
queData:[
|
||||
{
|
||||
quetype:"判断",
|
||||
quename:"当前项目对您是否有帮助?",
|
||||
value:1,
|
||||
answer:[
|
||||
{
|
||||
value:1,
|
||||
answercontent:"错误",
|
||||
analysis:"暂无解析",
|
||||
},
|
||||
]
|
||||
},
|
||||
{
|
||||
quetype:"多选",
|
||||
quename:"哪些项目跨年快乐memememememeemme?",
|
||||
value:2,
|
||||
answer:[
|
||||
{
|
||||
value:1,
|
||||
answercontent:"A、有帮助"
|
||||
},
|
||||
{
|
||||
value:2,
|
||||
answercontent:"B、mei帮助"
|
||||
},
|
||||
{
|
||||
value:3,
|
||||
answercontent:"C、mei5155帮助"
|
||||
},
|
||||
{
|
||||
value:4,
|
||||
answercontent:"D、12345mei帮助"
|
||||
}
|
||||
],
|
||||
answercontent:"错误",
|
||||
analysis:"暂无解析",
|
||||
},
|
||||
{
|
||||
quetype:"多选",
|
||||
quename:"哪些项目跨年快乐memememememeemme?",
|
||||
value:3,
|
||||
answer:[
|
||||
{
|
||||
value:1,
|
||||
answercontent:"A、有帮助"
|
||||
},
|
||||
{
|
||||
value:2,
|
||||
answercontent:"B、mei帮助"
|
||||
},
|
||||
{
|
||||
value:3,
|
||||
answercontent:"C、mei5155帮助"
|
||||
},
|
||||
{
|
||||
value:4,
|
||||
answercontent:"D、12345mei帮助"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
quetype:"判断",
|
||||
quename:"当前项目对您是否有帮助?",
|
||||
value:4,
|
||||
answer:[
|
||||
{
|
||||
value:1,
|
||||
answercontent:"错误",
|
||||
analysis:"暂无解析",
|
||||
},
|
||||
]
|
||||
},
|
||||
],
|
||||
iframeUrl: iframeUrl,
|
||||
})
|
||||
datasource: {
|
||||
type: Object,
|
||||
default: function () {
|
||||
return {};
|
||||
},
|
||||
},
|
||||
answerId: {
|
||||
type: String,
|
||||
default: "",
|
||||
},
|
||||
},
|
||||
setup(props, ctx) {
|
||||
const state = reactive({
|
||||
score: null, //传过来赋给score
|
||||
queData: [
|
||||
{
|
||||
quetype: "判断",
|
||||
quename: "当前项目对您是否有帮助?",
|
||||
value: 1,
|
||||
answer: [
|
||||
{
|
||||
value: 1,
|
||||
answercontent: "错误",
|
||||
analysis: "暂无解析",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
quetype: "多选",
|
||||
quename: "哪些项目跨年快乐memememememeemme?",
|
||||
value: 2,
|
||||
answer: [
|
||||
{
|
||||
value: 1,
|
||||
answercontent: "A、有帮助",
|
||||
},
|
||||
{
|
||||
value: 2,
|
||||
answercontent: "B、mei帮助",
|
||||
},
|
||||
{
|
||||
value: 3,
|
||||
answercontent: "C、mei5155帮助",
|
||||
},
|
||||
{
|
||||
value: 4,
|
||||
answercontent: "D、12345mei帮助",
|
||||
},
|
||||
],
|
||||
answercontent: "错误",
|
||||
analysis: "暂无解析",
|
||||
},
|
||||
{
|
||||
quetype: "多选",
|
||||
quename: "哪些项目跨年快乐memememememeemme?",
|
||||
value: 3,
|
||||
answer: [
|
||||
{
|
||||
value: 1,
|
||||
answercontent: "A、有帮助",
|
||||
},
|
||||
{
|
||||
value: 2,
|
||||
answercontent: "B、mei帮助",
|
||||
},
|
||||
{
|
||||
value: 3,
|
||||
answercontent: "C、mei5155帮助",
|
||||
},
|
||||
{
|
||||
value: 4,
|
||||
answercontent: "D、12345mei帮助",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
quetype: "判断",
|
||||
quename: "当前项目对您是否有帮助?",
|
||||
value: 4,
|
||||
answer: [
|
||||
{
|
||||
value: 1,
|
||||
answercontent: "错误",
|
||||
analysis: "暂无解析",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
iframeUrl: iframeUrl,
|
||||
});
|
||||
|
||||
const closeDrawer = ()=> {
|
||||
ctx.emit("update:CAvisible",false)
|
||||
}
|
||||
const afterVisibleChange = (bool) => {
|
||||
console.log(bool);
|
||||
if(bool == true) {
|
||||
console.log(props.datasource)
|
||||
console.log(props.answerId?props.answerId:props.datasource.answerId)
|
||||
}
|
||||
}
|
||||
const getQue = () => {
|
||||
queryUserAnswerDetail(1).then(res => {
|
||||
console.log(res)
|
||||
}).catch(err =>{
|
||||
message.error('用户答卷信息获取失败'+err)
|
||||
})
|
||||
}
|
||||
return{
|
||||
...toRefs(state),
|
||||
closeDrawer,
|
||||
afterVisibleChange,
|
||||
getQue
|
||||
}
|
||||
}
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:CAvisible", false);
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
console.log(bool);
|
||||
if (bool == true) {
|
||||
console.log(props.datasource);
|
||||
console.log(
|
||||
props.answerId ? props.answerId : props.datasource.answerId
|
||||
);
|
||||
}
|
||||
};
|
||||
const getQue = () => {
|
||||
queryUserAnswerDetail(1)
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
})
|
||||
.catch((err) => {
|
||||
message.error("用户答卷信息获取失败" + err);
|
||||
});
|
||||
};
|
||||
return {
|
||||
...toRefs(state),
|
||||
closeDrawer,
|
||||
afterVisibleChange,
|
||||
getQue,
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.CheckAnsware {
|
||||
z-index: 99999;
|
||||
.drawerMain {
|
||||
min-width: 400px;
|
||||
margin: 0px 32px 0px 32px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.headersub {
|
||||
height: 73px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
z-index: 99999;
|
||||
.drawerMain {
|
||||
min-width: 400px;
|
||||
margin: 0px 32px 0px 32px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.headersub {
|
||||
height: 73px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
.headerTitle {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: #333333;
|
||||
line-height: 25px;
|
||||
}
|
||||
}
|
||||
.headersup{
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
.main {
|
||||
width: 100%;
|
||||
overflow-y: auto;
|
||||
margin-bottom: 70px;
|
||||
.basetext{
|
||||
color: #333333;
|
||||
line-height: 25px;
|
||||
margin-top: 27px ;
|
||||
margin-bottom: 27px ;
|
||||
}
|
||||
.basequestion{
|
||||
.ques{
|
||||
.quename{
|
||||
margin: 10px auto ;
|
||||
font-weight: bold;
|
||||
}
|
||||
.queanswer{
|
||||
padding-left: 25px;
|
||||
.queabox{
|
||||
margin-bottom: 10px;
|
||||
.single{
|
||||
padding: 5px;
|
||||
.queaboxs{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.analysisbox{
|
||||
border: 1px solid #e8e8e8;
|
||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07);
|
||||
border-radius: 8px;
|
||||
margin-left: -10px;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
}
|
||||
.multiple{
|
||||
padding: 5px;
|
||||
.queaboxs{
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.analysisbox{
|
||||
border: 1px solid #e8e8e8;
|
||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07);
|
||||
border-radius: 8px;
|
||||
margin-left: -10px;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btnn {
|
||||
height: 72px;
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
background-color: #fff;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
|
||||
.btn1 {
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
border: 1px solid #4ea6ff;
|
||||
border-radius: 8px;
|
||||
color: #4ea6ff;
|
||||
background-color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
.btn2 {
|
||||
cursor: pointer;
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
background: #4ea6ff;
|
||||
border-radius: 8px;
|
||||
border: 0;
|
||||
margin-left: 15px;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
.headerTitle {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: #333333;
|
||||
line-height: 25px;
|
||||
}
|
||||
}
|
||||
.headersup {
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
.main {
|
||||
width: 100%;
|
||||
overflow-y: auto;
|
||||
margin-bottom: 70px;
|
||||
.basetext {
|
||||
color: #333333;
|
||||
line-height: 25px;
|
||||
margin-top: 27px;
|
||||
margin-bottom: 27px;
|
||||
}
|
||||
.basequestion {
|
||||
.ques {
|
||||
.quename {
|
||||
margin: 10px auto;
|
||||
font-weight: bold;
|
||||
}
|
||||
.queanswer {
|
||||
padding-left: 25px;
|
||||
.queabox {
|
||||
margin-bottom: 10px;
|
||||
.single {
|
||||
padding: 5px;
|
||||
.queaboxs {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.analysisbox {
|
||||
border: 1px solid #e8e8e8;
|
||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07);
|
||||
border-radius: 8px;
|
||||
margin-left: -10px;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
}
|
||||
.multiple {
|
||||
padding: 5px;
|
||||
.queaboxs {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
.analysisbox {
|
||||
border: 1px solid #e8e8e8;
|
||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07);
|
||||
border-radius: 8px;
|
||||
margin-left: -10px;
|
||||
padding: 5px 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btnn {
|
||||
height: 72px;
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
background-color: #fff;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
|
||||
.btn1 {
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
border: 1px solid #4ea6ff;
|
||||
border-radius: 8px;
|
||||
color: #4ea6ff;
|
||||
background-color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
.btn2 {
|
||||
cursor: pointer;
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
background: #4ea6ff;
|
||||
border-radius: 8px;
|
||||
border: 0;
|
||||
margin-left: 15px;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -17,13 +17,13 @@
|
||||
:src="`${iframeUrl}/course/manages?f=choose&refId=${props.id}&refType=${props.type}&courseIds=${couresIdArray}&projectId=${props.projectId}`"
|
||||
name="myframe"
|
||||
security="restricted"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups allow-top-navigation"
|
||||
></iframe>
|
||||
</a-modal>
|
||||
</template>
|
||||
<script setup>
|
||||
import {defineProps, ref} from "vue";
|
||||
import {iframeUrl} from "@/api/method";
|
||||
import { defineProps, ref } from "vue";
|
||||
import { iframeUrl } from "@/api/method";
|
||||
|
||||
const visible = ref(false);
|
||||
const couresIdArray = ref();
|
||||
@@ -31,17 +31,17 @@ const props = defineProps({
|
||||
type: Number,
|
||||
id: Number,
|
||||
courseIds: Array,
|
||||
projectId: String
|
||||
projectId: String,
|
||||
});
|
||||
// 把任务列表里类型为在线课的课程ID放到数组里
|
||||
if(props.courseIds && props.courseIds.length){
|
||||
var arr = []
|
||||
for(var i = 0;i<props.courseIds.length;i++){
|
||||
if(props.courseIds[i].type === 1){
|
||||
arr.push(props.courseIds[i].courseId)
|
||||
if (props.courseIds && props.courseIds.length) {
|
||||
var arr = [];
|
||||
for (var i = 0; i < props.courseIds.length; i++) {
|
||||
if (props.courseIds[i].type === 1) {
|
||||
arr.push(props.courseIds[i].courseId);
|
||||
}
|
||||
}
|
||||
couresIdArray.value = arr
|
||||
couresIdArray.value = arr;
|
||||
}
|
||||
function openModal() {
|
||||
visible.value = true;
|
||||
@@ -52,11 +52,8 @@ function closeModal() {
|
||||
}
|
||||
|
||||
defineExpose({ closeModal });
|
||||
|
||||
</script>
|
||||
<style lang="scss">
|
||||
|
||||
|
||||
.ant-table-striped :deep(.table-striped) td {
|
||||
background-color: #fafafa !important;
|
||||
}
|
||||
@@ -238,8 +235,8 @@ defineExpose({ closeModal });
|
||||
}
|
||||
|
||||
.ant-table-tbody
|
||||
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
|
||||
> td {
|
||||
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
|
||||
> td {
|
||||
background: #f6f9fd;
|
||||
}
|
||||
|
||||
@@ -319,8 +316,8 @@ defineExpose({ closeModal });
|
||||
justify-content: center;
|
||||
|
||||
background: linear-gradient(
|
||||
rgba(78, 166, 255, 0.2) 0%,
|
||||
rgba(78, 166, 255, 0) 100%
|
||||
rgba(78, 166, 255, 0.2) 0%,
|
||||
rgba(78, 166, 255, 0) 100%
|
||||
);
|
||||
|
||||
.inhe {
|
||||
|
||||
@@ -3,18 +3,18 @@
|
||||
<slot></slot>
|
||||
</div>
|
||||
<a-drawer
|
||||
:visible="visible"
|
||||
class="drawerStyle TimeManage"
|
||||
placement="right"
|
||||
width="1000"
|
||||
:visible="visible"
|
||||
class="drawerStyle TimeManage"
|
||||
placement="right"
|
||||
width="1000"
|
||||
>
|
||||
<div class="drawerMain">
|
||||
<div class="header">
|
||||
<div class="headerTitle">选择试卷</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="../../assets/images/basicinfo/close.png"
|
||||
@click="closeDrawer"
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="../../assets/images/basicinfo/close.png"
|
||||
@click="closeDrawer"
|
||||
/>
|
||||
</div>
|
||||
<div class="main">
|
||||
@@ -23,18 +23,14 @@
|
||||
<div class="namecon" style="margin-right: 30px">
|
||||
<div class="name">试卷名称:</div>
|
||||
<a-input
|
||||
v-model:value="params.keyWord"
|
||||
style="width: 270px; height: 40px; border-radius: 8px"
|
||||
placeholder="请输入试卷名称"
|
||||
v-model:value="params.keyWord"
|
||||
style="width: 270px; height: 40px; border-radius: 8px"
|
||||
placeholder="请输入试卷名称"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btns">
|
||||
<div
|
||||
class="btn btn1"
|
||||
style="margin-right: 20px"
|
||||
@click="search"
|
||||
>
|
||||
<div class="btn btn1" style="margin-right: 20px" @click="search">
|
||||
<div class="img1"></div>
|
||||
<div class="wz">搜索</div>
|
||||
</div>
|
||||
@@ -51,15 +47,17 @@
|
||||
</div>
|
||||
<div class="tab" style="margin-top: 20px; margin-bottom: 100px">
|
||||
<a-table
|
||||
:customRow="customRow"
|
||||
class="ant-table-striped"
|
||||
:row-class-name="(_, index) => (index % 2 === 1 ? 'table-striped' : null)"
|
||||
row-key="id"
|
||||
:columns="columns"
|
||||
:data-source="data"
|
||||
:loading="loading"
|
||||
:pagination="pagination"
|
||||
:row-selection="rowSelection"
|
||||
:customRow="customRow"
|
||||
class="ant-table-striped"
|
||||
:row-class-name="
|
||||
(_, index) => (index % 2 === 1 ? 'table-striped' : null)
|
||||
"
|
||||
row-key="id"
|
||||
:columns="columns"
|
||||
:data-source="data"
|
||||
:loading="loading"
|
||||
:pagination="pagination"
|
||||
:row-selection="rowSelection"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -72,36 +70,36 @@
|
||||
|
||||
<!-- 新建考试 -->
|
||||
<a-modal
|
||||
v-model:visible="createVisible"
|
||||
:footer="null"
|
||||
:closable="false"
|
||||
wrapClassName="modalStyle addExamModal"
|
||||
:zIndex="9999"
|
||||
v-model:visible="createVisible"
|
||||
:footer="null"
|
||||
:closable="false"
|
||||
wrapClassName="modalStyle addExamModal"
|
||||
:zIndex="9999"
|
||||
>
|
||||
<iframe
|
||||
id="iframe"
|
||||
style="width: 100%; height: 100%"
|
||||
:src="iframeUrl + '/exam/papers?addnew=true'"
|
||||
name="myframe"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups"
|
||||
id="iframe"
|
||||
style="width: 100%; height: 100%"
|
||||
:src="iframeUrl + '/exam/papers?addnew=true'"
|
||||
name="myframe"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups allow-top-navigation"
|
||||
></iframe>
|
||||
</a-modal>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import {computed, defineEmits, defineProps, ref} from "vue";
|
||||
import {iframeUrl} from "@/api/method";
|
||||
import {useBoeApiPage} from "@/api/request";
|
||||
import {EXAM_PAPER_PAGE} from "@/api/ThirdApi";
|
||||
import {message} from "ant-design-vue";
|
||||
import { computed, defineEmits, defineProps, ref } from "vue";
|
||||
import { iframeUrl } from "@/api/method";
|
||||
import { useBoeApiPage } from "@/api/request";
|
||||
import { EXAM_PAPER_PAGE } from "@/api/ThirdApi";
|
||||
import { message } from "ant-design-vue";
|
||||
|
||||
defineProps({
|
||||
id: String,
|
||||
name: String
|
||||
})
|
||||
const visible = ref(false)
|
||||
const createVisible = ref(false)
|
||||
const emit = defineEmits({})
|
||||
name: String,
|
||||
});
|
||||
const visible = ref(false);
|
||||
const createVisible = ref(false);
|
||||
const emit = defineEmits({});
|
||||
|
||||
const columns = ref([
|
||||
{
|
||||
@@ -131,31 +129,35 @@ const columns = ref([
|
||||
className: "h",
|
||||
ellipsis: true,
|
||||
},
|
||||
])
|
||||
]);
|
||||
const initParams = {
|
||||
keyWord: '',
|
||||
keyWord: "",
|
||||
pageIndex: 1,
|
||||
pageSize: 10,
|
||||
orderAsc: true
|
||||
}
|
||||
const params = ref(initParams)
|
||||
orderAsc: true,
|
||||
};
|
||||
const params = ref(initParams);
|
||||
|
||||
const rowSelectKeys = ref([]);
|
||||
const selectsData = ref([]);
|
||||
|
||||
const {data, loading, total, fetch} = useBoeApiPage(EXAM_PAPER_PAGE, params.value, {
|
||||
init: false,
|
||||
result: res => res.result.list,
|
||||
totalPage: res => res.result.totalPages,
|
||||
total: res => res.result.count
|
||||
})
|
||||
const { data, loading, total, fetch } = useBoeApiPage(
|
||||
EXAM_PAPER_PAGE,
|
||||
params.value,
|
||||
{
|
||||
init: false,
|
||||
result: (res) => res.result.list,
|
||||
totalPage: (res) => res.result.totalPages,
|
||||
total: (res) => res.result.count,
|
||||
}
|
||||
);
|
||||
|
||||
const customRow = (record) => ({
|
||||
onClick: () => {
|
||||
rowSelectKeys.value = [record.id]
|
||||
selectsData.value = [record]
|
||||
}
|
||||
})
|
||||
rowSelectKeys.value = [record.id];
|
||||
selectsData.value = [record];
|
||||
},
|
||||
});
|
||||
|
||||
const pagination = computed(() => ({
|
||||
total: total.value,
|
||||
@@ -167,20 +169,20 @@ const pagination = computed(() => ({
|
||||
|
||||
const changePagination = (e) => {
|
||||
params.value.pageIndex = e;
|
||||
fetch()
|
||||
fetch();
|
||||
};
|
||||
const rowSelection = computed(() => ({
|
||||
type: 'radio',
|
||||
type: "radio",
|
||||
columnWidth: 20,
|
||||
selectedRowKeys: rowSelectKeys.value,
|
||||
onChange: onSelectChange,
|
||||
preserveSelectedRowKeys: true,
|
||||
getCheckboxProps: getCheckboxProps
|
||||
getCheckboxProps: getCheckboxProps,
|
||||
}));
|
||||
const getCheckboxProps = () => ({
|
||||
// 某几项默认禁止选中(R: 当state等于1时)
|
||||
disabled: false
|
||||
})
|
||||
disabled: false,
|
||||
});
|
||||
|
||||
function onSelectChange(e, l) {
|
||||
rowSelectKeys.value = e;
|
||||
@@ -188,42 +190,42 @@ function onSelectChange(e, l) {
|
||||
}
|
||||
|
||||
function search() {
|
||||
params.value.pageIndex = 1
|
||||
fetch()
|
||||
params.value.pageIndex = 1;
|
||||
fetch();
|
||||
}
|
||||
|
||||
function reset() {
|
||||
rowSelectKeys.value = [];
|
||||
selectsData.value = [];
|
||||
params.value.pageIndex = 1
|
||||
params.value.keyWord = ''
|
||||
fetch()
|
||||
params.value.pageIndex = 1;
|
||||
params.value.keyWord = "";
|
||||
fetch();
|
||||
}
|
||||
|
||||
const closeDrawer = () => {
|
||||
visible.value = false
|
||||
reset()
|
||||
visible.value = false;
|
||||
reset();
|
||||
};
|
||||
|
||||
function confirm() {
|
||||
if (!selectsData.value.length || !rowSelectKeys.value.length) {
|
||||
message.warning("请选择试卷!");
|
||||
return
|
||||
return;
|
||||
}
|
||||
emit('update:id', selectsData.value[0].id)
|
||||
emit('update:name', selectsData.value[0].testName)
|
||||
closeDrawer()
|
||||
emit("update:id", selectsData.value[0].id);
|
||||
emit("update:name", selectsData.value[0].testName);
|
||||
closeDrawer();
|
||||
}
|
||||
|
||||
function openDrawer() {
|
||||
visible.value = true
|
||||
visible.value = true;
|
||||
}
|
||||
|
||||
function createPage() {
|
||||
createVisible.value = true
|
||||
createVisible.value = true;
|
||||
}
|
||||
|
||||
defineExpose({openDrawer})
|
||||
defineExpose({ openDrawer });
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
@@ -264,7 +266,6 @@ defineExpose({openDrawer})
|
||||
flex-wrap: wrap;
|
||||
margin-top: 20px;
|
||||
|
||||
|
||||
.sealeft {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
@@ -353,8 +354,8 @@ defineExpose({openDrawer})
|
||||
}
|
||||
|
||||
.ant-table-tbody
|
||||
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
|
||||
> td {
|
||||
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
|
||||
> td {
|
||||
background: #f6f9fd;
|
||||
}
|
||||
|
||||
|
||||
@@ -331,13 +331,13 @@
|
||||
style="width: 100%; height: 100%; border: none"
|
||||
:src="iframeUrl + '/exam/papers?addnew=true'"
|
||||
name="myframe"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups allow-top-navigation"
|
||||
></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { defineEmits, defineProps, ref, watch, computed,onMounted } from "vue";
|
||||
import { defineEmits, defineProps, ref, watch, computed, onMounted } from "vue";
|
||||
import GrowthSelectTest from "./GrowthSelectTest.vue";
|
||||
import { Form, message } from "ant-design-vue";
|
||||
import { useResetRef } from "@/utils/useCommon";
|
||||
@@ -490,7 +490,7 @@ async function confirm() {
|
||||
message.warning("请输入数据来源");
|
||||
return;
|
||||
}
|
||||
console.log(formData.value)
|
||||
console.log(formData.value);
|
||||
await validate().catch(({ errorFields }) => {
|
||||
message.warning(errorFields[0].errors.join());
|
||||
throw Error("数据校验不通过");
|
||||
|
||||
@@ -377,7 +377,7 @@
|
||||
style="width: 100%; height: 100%; border: none"
|
||||
:src="iframeUrl + '/exam/papers?addnew=true'"
|
||||
name="myframe"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups allow-top-navigation"
|
||||
></iframe>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
}&refType=${14}&courseIds=&projectId=${props.growId}`"
|
||||
name="myframe"
|
||||
security="restricted"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups allow-top-navigation"
|
||||
></iframe>
|
||||
</div>
|
||||
</a-spin>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
frameborder="0"
|
||||
name="myframe"
|
||||
security="restricted"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups allow-top-navigation"
|
||||
></iframe>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
frameborder="0"
|
||||
name="myframe"
|
||||
security="restricted"
|
||||
sandbox="allow-forms allow-scripts allow-same-origin allow-popups allow-downloads"
|
||||
sandbox="allow-forms allow-scripts allow-same-origin allow-popups allow-downloads allow-top-navigation"
|
||||
></iframe>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
frameborder="0"
|
||||
name="myframe"
|
||||
security="restricted"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups allow-top-navigation"
|
||||
></iframe>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -11,28 +11,27 @@
|
||||
<template>
|
||||
<div class="courseManage">
|
||||
<iframe
|
||||
id="iframe"
|
||||
style="width: 100%; height: 100%"
|
||||
:src="iframeUrl + '/course/manages?page=manage'"
|
||||
frameborder="0"
|
||||
name="myframe"
|
||||
security="restricted"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups"
|
||||
id="iframe"
|
||||
style="width: 100%; height: 100%"
|
||||
:src="iframeUrl + '/course/manages?page=manage'"
|
||||
frameborder="0"
|
||||
name="myframe"
|
||||
security="restricted"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups allow-top-navigation"
|
||||
></iframe>
|
||||
<OnlineClassModelStudent ref="stuRef" :type="13"></OnlineClassModelStudent>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import {onMounted, ref} from "vue";
|
||||
import {iframeUrl} from "@/api/method";
|
||||
import { onMounted, ref } from "vue";
|
||||
import { iframeUrl } from "@/api/method";
|
||||
import OnlineClassModelStudent from "@/components/student/OnlineClassModelStudent";
|
||||
|
||||
const stuRef = ref()
|
||||
const stuRef = ref();
|
||||
|
||||
onMounted(() => {
|
||||
window.openSelectStu = stuRef.value.openDrawer
|
||||
})
|
||||
|
||||
window.openSelectStu = stuRef.value.openDrawer;
|
||||
});
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.courseManage {
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
frameborder="0"
|
||||
name="myframe"
|
||||
security="restricted"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups allow-top-navigation"
|
||||
></iframe>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
frameborder="0"
|
||||
name="myframe"
|
||||
security="restricted"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups allow-top-navigation"
|
||||
></iframe>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
frameborder="0"
|
||||
name="myframe"
|
||||
security="restricted"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups allow-top-navigation"
|
||||
></iframe>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,13 +7,12 @@
|
||||
frameborder="0"
|
||||
name="myframe"
|
||||
security="restricted"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups allow-top-navigation"
|
||||
></iframe>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import {iframeUrl} from "@/api/method";
|
||||
|
||||
import { iframeUrl } from "@/api/method";
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.courseManage {
|
||||
|
||||
@@ -7,13 +7,12 @@
|
||||
frameborder="0"
|
||||
name="myframe"
|
||||
security="restricted"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups allow-top-navigation"
|
||||
></iframe>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import {iframeUrl} from "@/api/method";
|
||||
|
||||
import { iframeUrl } from "@/api/method";
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.courseManage {
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
frameborder="0"
|
||||
name="myframe"
|
||||
security="restricted"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups allow-top-navigation"
|
||||
></iframe>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -1,19 +1,17 @@
|
||||
<template>
|
||||
<div class="courseManage">
|
||||
<iframe
|
||||
id="iframe"
|
||||
style="width: 100%; height: 100%"
|
||||
:src="`${BOE_URL}/pc/iframe/ugroup/manages`"
|
||||
name="myframe"
|
||||
security="restricted"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups"
|
||||
id="iframe"
|
||||
style="width: 100%; height: 100%"
|
||||
:src="`${BOE_URL}/pc/iframe/ugroup/manages`"
|
||||
name="myframe"
|
||||
security="restricted"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups allow-top-navigation"
|
||||
></iframe>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
|
||||
const BOE_URL = window.location.protocol + process.env.VUE_APP_BOE_API_URL
|
||||
|
||||
const BOE_URL = window.location.protocol + process.env.VUE_APP_BOE_API_URL;
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.courseManage {
|
||||
|
||||
@@ -1,19 +1,17 @@
|
||||
<template>
|
||||
<div class="courseManage">
|
||||
<iframe
|
||||
id="iframe"
|
||||
style="width: 100%; height: 100%"
|
||||
:src="`${BOE_URL}/platform/sys/dwdictionary`"
|
||||
name="myframe"
|
||||
security="restricted"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups"
|
||||
id="iframe"
|
||||
style="width: 100%; height: 100%"
|
||||
:src="`${BOE_URL}/platform/sys/dwdictionary`"
|
||||
name="myframe"
|
||||
security="restricted"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups allow-top-navigation"
|
||||
></iframe>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
|
||||
const BOE_URL = window.location.protocol + process.env.VUE_APP_BOE_API_URL
|
||||
|
||||
const BOE_URL = window.location.protocol + process.env.VUE_APP_BOE_API_URL;
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.courseManage {
|
||||
|
||||
@@ -1,19 +1,17 @@
|
||||
<template>
|
||||
<div class="courseManage">
|
||||
<iframe
|
||||
id="iframe"
|
||||
style="width: 100%; height: 100%"
|
||||
:src="`${BOE_URL}/resource/index.html`"
|
||||
name="myframe"
|
||||
security="restricted"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups"
|
||||
id="iframe"
|
||||
style="width: 100%; height: 100%"
|
||||
:src="`${BOE_URL}/resource/index.html`"
|
||||
name="myframe"
|
||||
security="restricted"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups allow-top-navigation"
|
||||
></iframe>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
|
||||
const BOE_URL = window.location.protocol + process.env.VUE_APP_BOE_API_URL
|
||||
|
||||
const BOE_URL = window.location.protocol + process.env.VUE_APP_BOE_API_URL;
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.courseManage {
|
||||
|
||||
@@ -1,19 +1,17 @@
|
||||
<template>
|
||||
<div class="courseManage">
|
||||
<iframe
|
||||
id="iframe"
|
||||
style="width: 100%; height: 100%"
|
||||
:src="`${BOE_URL}/train/manager/index.html`"
|
||||
name="myframe"
|
||||
security="restricted"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups"
|
||||
id="iframe"
|
||||
style="width: 100%; height: 100%"
|
||||
:src="`${BOE_URL}/train/manager/index.html`"
|
||||
name="myframe"
|
||||
security="restricted"
|
||||
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups allow-top-navigation"
|
||||
></iframe>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
|
||||
const BOE_URL = window.location.protocol + process.env.VUE_APP_BOE_API_URL
|
||||
|
||||
const BOE_URL = window.location.protocol + process.env.VUE_APP_BOE_API_URL;
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.courseManage {
|
||||
|
||||
Reference in New Issue
Block a user