fix:iframe页面token过期跳转登录

This commit is contained in:
zxj
2025-11-21 10:56:43 +08:00
parent 24ca49ce78
commit cf7e1f5d69
22 changed files with 1368 additions and 1241 deletions

View File

@@ -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>

View File

@@ -17,15 +17,19 @@
/>
</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;">
<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)"
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"
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups allow-top-navigation"
>
</iframe>
</div>
@@ -38,10 +42,10 @@
</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: {
@@ -58,7 +62,7 @@ export default {
answerId: {
type: String,
default: "",
}
},
},
setup(props, ctx) {
const state = reactive({
@@ -74,7 +78,7 @@ export default {
answercontent: "错误",
analysis: "暂无解析",
},
]
],
},
{
quetype: "多选",
@@ -83,20 +87,20 @@ export default {
answer: [
{
value: 1,
answercontent:"A、有帮助"
answercontent: "A、有帮助",
},
{
value: 2,
answercontent:"B、mei帮助"
answercontent: "B、mei帮助",
},
{
value: 3,
answercontent:"C、mei5155帮助"
answercontent: "C、mei5155帮助",
},
{
value: 4,
answercontent:"D、12345mei帮助"
}
answercontent: "D、12345mei帮助",
},
],
answercontent: "错误",
analysis: "暂无解析",
@@ -108,21 +112,21 @@ export default {
answer: [
{
value: 1,
answercontent:"A、有帮助"
answercontent: "A、有帮助",
},
{
value: 2,
answercontent:"B、mei帮助"
answercontent: "B、mei帮助",
},
{
value: 3,
answercontent:"C、mei5155帮助"
answercontent: "C、mei5155帮助",
},
{
value: 4,
answercontent:"D、12345mei帮助"
}
]
answercontent: "D、12345mei帮助",
},
],
},
{
quetype: "判断",
@@ -134,36 +138,40 @@ export default {
answercontent: "错误",
analysis: "暂无解析",
},
]
],
},
],
iframeUrl: iframeUrl,
})
});
const closeDrawer = () => {
ctx.emit("update:CAvisible",false)
}
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)
}
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)
queryUserAnswerDetail(1)
.then((res) => {
console.log(res);
})
}
.catch((err) => {
message.error("用户答卷信息获取失败" + err);
});
};
return {
...toRefs(state),
closeDrawer,
afterVisibleChange,
getQue
}
}
getQue,
};
},
};
</script>
<style lang="scss">

View File

@@ -17,7 +17,7 @@
: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>
@@ -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 = []
var arr = [];
for (var i = 0; i < props.courseIds.length; i++) {
if (props.courseIds[i].type === 1) {
arr.push(props.courseIds[i].courseId)
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;
}

View File

@@ -30,11 +30,7 @@
</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>
@@ -53,7 +49,9 @@
<a-table
:customRow="customRow"
class="ant-table-striped"
:row-class-name="(_, index) => (index % 2 === 1 ? 'table-striped' : null)"
:row-class-name="
(_, index) => (index % 2 === 1 ? 'table-striped' : null)
"
row-key="id"
:columns="columns"
:data-source="data"
@@ -83,7 +81,7 @@
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"
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups allow-top-navigation"
></iframe>
</a-modal>
</template>
@@ -97,11 +95,11 @@ 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, {
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
})
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;

View File

@@ -331,7 +331,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>
@@ -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("数据校验不通过");

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>
<OnlineClassModelStudent ref="stuRef" :type="13"></OnlineClassModelStudent>
</div>
@@ -27,12 +27,11 @@ 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 {

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -21,30 +21,41 @@
value: 'code',
}"
allow-clear
:getPopupContainer="triggerNode => triggerNode.parentNode || document.body"
:getPopupContainer="
(triggerNode) => triggerNode.parentNode || document.body
"
v-model:value="valueproj"
show-search
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
placeholder="请选择内容分类"
tree-default-expand-all
:tree-data="sysTypeOptions">
:tree-data="sysTypeOptions"
>
</a-tree-select>
</div>
<div class="inpbox1">
<a-input v-model:value="valuecreater" style="
<a-input
v-model:value="valuecreater"
style="
width: 270px;
height: 40px;
border-radius: 8px;
margin-right: 5%;
" placeholder="请输入创建人" />
"
placeholder="请输入创建人"
/>
</div>
<div class="inpbox1">
<a-input v-model:value="valuename" style="
<a-input
v-model:value="valuename"
style="
width: 270px;
height: 40px;
border-radius: 8px;
margin-right: 5%;
" placeholder="请输入名称" />
"
placeholder="请输入名称"
/>
</div>
<div class="select addTimeBox">
<div class="addTime">创建时间</div>
@@ -71,20 +82,40 @@
</div>
<div class="tmpl_body">
<div class="tmpl_tabbox">
<a-table :columns="columns1" :data-source="tableData1" :loading="loading" expandRowByClick="true"
@expand="expandTable" :scroll="{ x: 1300 }" :pagination="false" />
<a-table
:columns="columns1"
:data-source="tableData1"
:loading="loading"
expandRowByClick="true"
@expand="expandTable"
:scroll="{ x: 1300 }"
:pagination="false"
/>
</div>
<div class="tableBox">
<div class="pa">
<a-pagination v-if="total > 10" :showSizeChanger="false" show-quick-jumper :pageSize="pageSize"
v-model:current="currentPage" :total="total" class="pagination" @change="changePagination" />
<a-pagination
v-if="total > 10"
:showSizeChanger="false"
show-quick-jumper
:pageSize="pageSize"
v-model:current="currentPage"
:total="total"
class="pagination"
@change="changePagination"
/>
</div>
</div>
</div>
</div>
<!-- 审核弹窗 -->
<a-modal v-model:visible="courAuditModal" :footer="null" :closable="closeBack" wrapClassName="courAuditModal"
centered="true">
<a-modal
v-model:visible="courAuditModal"
:footer="null"
:closable="closeBack"
wrapClassName="courAuditModal"
centered="true"
>
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
@@ -95,12 +126,14 @@
</div>
<div class="body">
<div class="item">
<div class="left" style="color:#4ea6ff;">修改意见</div>
<div class="rig">
</div>
<div class="left" style="color: #4ea6ff">修改意见</div>
<div class="rig"></div>
</div>
<!-- 修改记录详情 -->
<div v-if="openDetailVisibie" style="display: flex;width: 100%;margin-top: 12px;">
<div
v-if="openDetailVisibie"
style="display: flex; width: 100%; margin-top: 12px"
>
<a-table
:columns="columns2"
:data-source="tableData2"
@@ -108,10 +141,28 @@
expandRowByClick="true"
@expand="expandTable"
:scroll="{ y: 250 }"
:pagination="false" />
:pagination="false"
/>
</div>
<div style="display: flex;justify-content: center;align-items: center;height: 70px;">
<div @click="openDetail" style="cursor:pointer;padding: 2px 12px;border-radius: 4px;background: #4ea6ff;color: #fff;font-size: 14px;">
<div
style="
display: flex;
justify-content: center;
align-items: center;
height: 70px;
"
>
<div
@click="openDetail"
style="
cursor: pointer;
padding: 2px 12px;
border-radius: 4px;
background: #4ea6ff;
color: #fff;
font-size: 14px;
"
>
{{ openDetailVisibie ? "详情折叠" : "详情展开" }}
</div>
</div>
@@ -125,61 +176,101 @@
</div>
</div>
<div class="item" style="margin-top: 20px">
<div class="sign" style="position: relative; left: 30px; top: -2px">
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
<div
class="sign"
style="position: relative; left: 30px; top: -2px"
>
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<div class="left">审核意见</div>
<div class="rig">
<a-textarea v-model:value="valueSugg" :rows="4" show-count :maxlength="20" />
<a-textarea
v-model:value="valueSugg"
:rows="4"
show-count
:maxlength="20"
/>
</div>
</div>
</div>
<div class="del_btnbox">
<div class="del_btn btn2" @click="closeCourAuditModal" style="margin-right: 32px;">
<div
class="del_btn btn2"
@click="closeCourAuditModal"
style="margin-right: 32px"
>
<div class="btnText">取消</div>
</div>
<div class="del_btn btn2" @click="sureCourAuditModal">
<div class="btnText">确定</div>
</div>
</div>
<div style="height:20px;"></div>
<div style="height: 20px"></div>
</div>
</div>
</a-modal>
<!-- 邀请审核弹窗 -->
<a-modal v-model:visible="courInvitationAuditModal" :footer="null" :closable="closeBack" wrapClassName="courAuditModal"
centered="true" style="height:400px;">
<a-modal
v-model:visible="courInvitationAuditModal"
:footer="null"
:closable="closeBack"
wrapClassName="courAuditModal"
centered="true"
style="height: 400px"
>
<div class="delete">
<div class="del_header"></div>
<div class="del_main" style="height:400px;">
<div class="del_main" style="height: 400px">
<div class="header">
<div class="icon"></div>
<span>请选择教师</span>
<div class="close_exit" @click="closeInvitationCourAuditModal"></div>
<div
class="close_exit"
@click="closeInvitationCourAuditModal"
></div>
</div>
<div class="body">
<div class="item" style="align-items: center;">
<div class="item" style="align-items: center">
<div class="left">教师</div>
<div class="rig" style="margin-left: 10px;">
<div class="rig" style="margin-left: 10px">
<ProjectManager
placeholder="请输入教师姓名"
v-model:value="memberValue.value"
v-model:name="memberValue.label">
v-model:name="memberValue.label"
>
</ProjectManager>
</div>
</div>
<div class="item" style="margin-top: 20px">
<div class="sign" style="position: relative; left: 30px; top: -2px">
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
<div
class="sign"
style="position: relative; left: 30px; top: -2px"
>
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<div class="left">邀请说明</div>
<div class="rig">
<a-textarea v-model:value="valueSuggInvitation" :rows="4" show-count :maxlength="20" />
<a-textarea
v-model:value="valueSuggInvitation"
:rows="4"
show-count
:maxlength="20"
/>
</div>
</div>
</div>
<div class="del_btnbox">
<div class="del_btn btn2" @click="closeInvitationCourAuditModal" style="margin-right: 32px;">
<div
class="del_btn btn2"
@click="closeInvitationCourAuditModal"
style="margin-right: 32px"
>
<div class="btnText">取消</div>
</div>
<div class="del_btn btn2" @click="sureInvitationCourAuditModal">
@@ -190,48 +281,74 @@
</div>
</a-modal>
<!-- 转审完成弹窗 -->
<a-modal v-model:visible="transferInvitationAuditModal" :footer="null" :closable="closeBack" wrapClassName="courAuditModal"
centered="true">
<div class="delete" style="height:460px;">
<a-modal
v-model:visible="transferInvitationAuditModal"
:footer="null"
:closable="closeBack"
wrapClassName="courAuditModal"
centered="true"
>
<div class="delete" style="height: 460px">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="icon"></div>
<span>审核信息</span>
<div class="close_exit" @click="closeTransferInvitationCourAuditModal"></div>
<div
class="close_exit"
@click="closeTransferInvitationCourAuditModal"
></div>
</div>
<div class="body">
<div class="item" style="align-items: center;">
<div class="item" style="align-items: center">
<div class="left">审核人</div>
<div class="rig" style="margin-left: 10px;">
<div class="rig" style="margin-left: 10px">
<span>{{ transferCompletedModel.name }}</span>
</div>
</div>
<div class="item" style="align-items: center;margin-top: 20px;">
<div class="item" style="align-items: center; margin-top: 20px">
<div class="left">审核结果</div>
<div class="rig" style="margin-left: 10px;">
<a-tag v-if="transferCompletedModel.result=='审核拒绝'" color="red">拒绝</a-tag>
<a-tag v-if="transferCompletedModel.result=='审核通过'" color="green">通过</a-tag>
<div class="rig" style="margin-left: 10px">
<a-tag
v-if="transferCompletedModel.result == '审核拒绝'"
color="red"
>拒绝</a-tag
>
<a-tag
v-if="transferCompletedModel.result == '审核通过'"
color="green"
>通过</a-tag
>
</div>
</div>
<div class="item" style="margin-top: 20px">
<div class="sign" style="position: relative; left: 30px; top: -2px">
<div
class="sign"
style="position: relative; left: 30px; top: -2px"
>
<!-- <img src="@/assets/images/coursewareManage/asterisk.png" alt="" /> -->
</div>
<div class="left">审核备注</div>
<div class="rig">
<a-textarea v-model:value="transferCompletedModel.remarks" :rows="4" :disabled="true" />
<a-textarea
v-model:value="transferCompletedModel.remarks"
:rows="4"
:disabled="true"
/>
</div>
</div>
<div class="item" style="align-items: center;margin-top: 20px;">
<div class="item" style="align-items: center; margin-top: 20px">
<div class="left">审核时间</div>
<div class="rig" style="margin-left: 10px;">
<div class="rig" style="margin-left: 10px">
<span>{{ transferCompletedModel.times }}</span>
</div>
</div>
</div>
<div class="del_btnbox">
<div class="del_btn btn2" @click="closeTransferInvitationCourAuditModal">
<div
class="del_btn btn2"
@click="closeTransferInvitationCourAuditModal"
>
<div class="btnText">关闭</div>
</div>
</div>
@@ -239,13 +356,27 @@
</div>
</a-modal>
<!-- 预览弹窗 -->
<SeeModal :visible="lookCourseModal" :detail="faceDetailObj" @cancel="ft_exit" />
<SeeModal
:visible="lookCourseModal"
:detail="faceDetailObj"
@cancel="ft_exit"
/>
<!-- 审核在线课 -->
<a-modal v-model:visible="onlineClassesVisible" :footer="null" :closable="false"
wrapClassName="modalStyle onlineClassesStyle" :zIndex="9999">
<iframe id="iframe" style="width: 100%; height: 100%" :src="iframeUrl + 'course/noapproved'" name="myframe"
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups"></iframe>
<a-modal
v-model:visible="onlineClassesVisible"
:footer="null"
:closable="false"
wrapClassName="modalStyle onlineClassesStyle"
:zIndex="9999"
>
<iframe
id="iframe"
style="width: 100%; height: 100%"
:src="iframeUrl + 'course/noapproved'"
name="myframe"
sandbox="allow-forms allow-downloads allow-scripts allow-same-origin allow-popups allow-top-navigation"
></iframe>
</a-modal>
</div>
</template>
@@ -1079,8 +1210,10 @@ export default {
position: absolute;
width: calc(100%);
height: 68px;
background: linear-gradient(rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%);
background: linear-gradient(
rgba(78, 166, 255, 0.2) 0%,
rgba(78, 166, 255, 0) 100%
);
}
.del_main {
@@ -1188,7 +1321,6 @@ export default {
.lookCourseModal {
.ant-modal {
.ant-modal-content {
// width:1358px !important;
.ant-modal-body {
.modalHeader {

View File

@@ -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";
</script>
<style lang="scss">
.courseManage {

View File

@@ -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";
</script>
<style lang="scss">
.courseManage {

View File

@@ -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>

View File

@@ -6,14 +6,12 @@
:src="`${BOE_URL}/pc/iframe/ugroup/manages`"
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>
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 {

View File

@@ -6,14 +6,12 @@
:src="`${BOE_URL}/platform/sys/dwdictionary`"
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>
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 {

View File

@@ -6,14 +6,12 @@
:src="`${BOE_URL}/resource/index.html`"
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>
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 {

View File

@@ -6,14 +6,12 @@
:src="`${BOE_URL}/train/manager/index.html`"
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>
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 {