修改bug
This commit is contained in:
parent
92ff34bfa0
commit
98f73c6977
Binary file not shown.
|
@ -0,0 +1,75 @@
|
||||||
|
|
||||||
|
高校思政课教学指导组听课评价表
|
||||||
|
任课教师: 听课专家: 听课日期:
|
||||||
|
班级规模: 50 人以下 □ 51 -- 100 人 □ 101 -- 150 人 □
|
||||||
|
151 -- 200 人 □ 201 人以上 □
|
||||||
|
到 课 率: 90%以上 □
|
||||||
|
80% -- 89% □
|
||||||
|
70% -- 79% □
|
||||||
|
60% -- 69% □
|
||||||
|
59%以下 □
|
||||||
|
|
||||||
|
授课对象: 文科□ 理科□ 工科□ 农科□ 医科□ 多科混合□
|
||||||
|
评估指标
|
||||||
|
评估内容
|
||||||
|
得分
|
||||||
|
教学态度
|
||||||
|
(10%)
|
||||||
|
仪表整洁、举止得体、精神饱满(3%)
|
||||||
|
|
||||||
|
|
||||||
|
遵守教学纪律,严格课堂管理(2%)
|
||||||
|
|
||||||
|
|
||||||
|
备课充分,精心设计教学(有课件、教案等教学素材),教学投入(5%)
|
||||||
|
|
||||||
|
教学内容
|
||||||
|
(35%)
|
||||||
|
坚持马克思主义立场观点方法,具有较为扎实的马克思主义理论功底, 教学目标明确(10%)
|
||||||
|
|
||||||
|
|
||||||
|
有效使用统编教材配套课件、参考讲义、辅导用书,教学内容科学完整, 基本理论阐释清楚,基本事实讲述准确,重点、难点比较突出(10%)
|
||||||
|
|
||||||
|
|
||||||
|
理论联系实际,熟悉党史、新中国史、改革开放史、社会主义发展史、 中华民族发展史,注重史论结合,教学素材多样,案例鲜活生动,及时 将新时代中国特色社会主义的生动实践转化为课堂教学资源(10%)
|
||||||
|
|
||||||
|
|
||||||
|
贴近学生实际,善于发掘身边人身边事蕴含的育人元素,有效回应学生 关心问题和思想困惑(5%)
|
||||||
|
|
||||||
|
教学方法
|
||||||
|
(25%)
|
||||||
|
熟悉教学法基本原理,注重教学逻辑与学术逻辑的辩证统一,教学设计 符合学生认知规律、关注学生差异性(9%)
|
||||||
|
|
||||||
|
|
||||||
|
熟练运用启发式、案例式等教学法,注重课堂互动,不照本宣科,善于 调动学生积极性,启发学生思考(8%)
|
||||||
|
|
||||||
|
|
||||||
|
综合运用现代信息技术手段,增强课堂教学的生动性、吸引力,帮助学 生理解领会教学内容(8%)
|
||||||
|
|
||||||
|
教学效果
|
||||||
|
(30%)
|
||||||
|
注重思想性和理论性,具有亲和力和感染力,能够把道理讲深、讲透、 讲活,学生学习积极性高,愿意与教师交流反馈(12%)
|
||||||
|
|
||||||
|
|
||||||
|
注重价值引领,增进对党的创新理论的政治认同、思想认同、理论认同、 情感认同,坚定" 四个自信 "(12%)
|
||||||
|
|
||||||
|
|
||||||
|
完成教学计划,课堂秩序良好(6%)
|
||||||
|
|
||||||
|
课堂诊断
|
||||||
|
|
||||||
|
总体评价
|
||||||
|
优秀 (>=90)
|
||||||
|
|
||||||
|
良好(89 -- 80)
|
||||||
|
|
||||||
|
合格(79 -- 60)
|
||||||
|
|
||||||
|
不合格(<60)
|
||||||
|
|
||||||
|
|
||||||
|
指导建议
|
||||||
|
|
||||||
|
课堂诊断及指导建议不少于30个字,可另附页。
|
||||||
|
本人承诺以上填写认真属实,如有不实之处,愿承担相应责任。
|
||||||
|
承诺人: 听课日期: 年 月 日
|
|
@ -371,12 +371,12 @@ export const columns: BasicColumn[] = [
|
||||||
dataIndex: 'col73'
|
dataIndex: 'col73'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '14.课堂诊断',
|
title: '14.总体评价',
|
||||||
align: "center",
|
align: "center",
|
||||||
dataIndex: 'col74'
|
dataIndex: 'col74'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: '15.总体评价',
|
title: '15.课堂诊断',
|
||||||
align: "center",
|
align: "center",
|
||||||
dataIndex: 'col75'
|
dataIndex: 'col75'
|
||||||
},
|
},
|
||||||
|
|
|
@ -50,7 +50,9 @@
|
||||||
<template #bodyCell="{ column, record }">
|
<template #bodyCell="{ column, record }">
|
||||||
<template v-if="column.key === 'score'">
|
<template v-if="column.key === 'score'">
|
||||||
<span>
|
<span>
|
||||||
<a-input-number v-model:value="record.score" :min="0" :max="100" @blur="handleJscjbfb"> <template #addonAfter> % </template></a-input-number>
|
<a-input-number v-model:value="record.score" :min="0" :max="100" @blur="handleJscjbfb">
|
||||||
|
<template #addonAfter> % </template></a-input-number
|
||||||
|
>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
<template v-else-if="column.key === 'lstitle'">
|
<template v-else-if="column.key === 'lstitle'">
|
||||||
|
@ -68,7 +70,7 @@
|
||||||
<div style="text-align: center">
|
<div style="text-align: center">
|
||||||
<a-button type="primary" @click="handleBatchAdd"><Icon icon="ant-design:save-outlined" />保存</a-button>
|
<a-button type="primary" @click="handleBatchAdd"><Icon icon="ant-design:save-outlined" />保存</a-button>
|
||||||
<a-divider type="vertical" />
|
<a-divider type="vertical" />
|
||||||
<a-button type="primary" @click="reloadZy"><Icon icon="ant-design:export-outlined" style="margin-right: 10px" />返回</a-button>
|
<a-button type="primary" @click="reloadZy"><Icon icon="ant-design:export-outlined" style="margin-right: 10px" />返回</a-button>
|
||||||
</div>
|
</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
|
@ -179,6 +181,7 @@
|
||||||
<a-card title="引用题库">
|
<a-card title="引用题库">
|
||||||
<p><a-button type="primary" @click="handleYylx('0')" :disabled="editDisabled">我的题库</a-button></p>
|
<p><a-button type="primary" @click="handleYylx('0')" :disabled="editDisabled">我的题库</a-button></p>
|
||||||
<p><a-button type="primary" @click="handleYylx('1')" :disabled="editDisabled">公有题库</a-button></p>
|
<p><a-button type="primary" @click="handleYylx('1')" :disabled="editDisabled">公有题库</a-button></p>
|
||||||
|
<p><a-button type="primary" @click="importOpen = true">导入试题</a-button></p>
|
||||||
</a-card>
|
</a-card>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="20" style="overflow-y: scroll; min-height: 100px">
|
<a-col :span="20" style="overflow-y: scroll; min-height: 100px">
|
||||||
|
@ -194,7 +197,7 @@
|
||||||
placeholder="请填写单选题题干"
|
placeholder="请填写单选题题干"
|
||||||
v-model:value="item.wjTitle"
|
v-model:value="item.wjTitle"
|
||||||
:bordered="false"
|
:bordered="false"
|
||||||
:style="{ width: handinpwei(item.wjTitle) }"
|
:style="{ width: '30rem' }"
|
||||||
:auto-size="{ minRows: 1, maxRows: 5 }"
|
:auto-size="{ minRows: 1, maxRows: 5 }"
|
||||||
:disabled="editDisabled"
|
:disabled="editDisabled"
|
||||||
/>
|
/>
|
||||||
|
@ -245,10 +248,11 @@
|
||||||
<a-input
|
<a-input
|
||||||
placeholder="请填写选项"
|
placeholder="请填写选项"
|
||||||
v-model:value="tmxx.itemTitle"
|
v-model:value="tmxx.itemTitle"
|
||||||
:style="{ width: handinpwei(tmxx.itemTitle) }"
|
:style="{ width: '30rem' }"
|
||||||
:bordered="false"
|
:bordered="false"
|
||||||
:disabled="editDisabled"
|
:disabled="editDisabled"
|
||||||
/>
|
/>
|
||||||
|
<!-- :style="{ width: handinpwei(tmxx.itemTitle) }" -->
|
||||||
<span style="color: #ecb646" v-if="item.itemSelected == tmxx.itemIndex">(正确答案)</span>
|
<span style="color: #ecb646" v-if="item.itemSelected == tmxx.itemIndex">(正确答案)</span>
|
||||||
<a-tooltip placement="topLeft" title="在下方添加新的选项"
|
<a-tooltip placement="topLeft" title="在下方添加新的选项"
|
||||||
><Icon
|
><Icon
|
||||||
|
@ -278,7 +282,7 @@
|
||||||
placeholder="请填写多选题题干"
|
placeholder="请填写多选题题干"
|
||||||
v-model:value="item.wjTitle"
|
v-model:value="item.wjTitle"
|
||||||
:bordered="false"
|
:bordered="false"
|
||||||
:style="{ width: handinpwei(item.wjTitle) }"
|
:style="{ width: '30rem' }"
|
||||||
:auto-size="{ minRows: 1, maxRows: 5 }"
|
:auto-size="{ minRows: 1, maxRows: 5 }"
|
||||||
:disabled="editDisabled"
|
:disabled="editDisabled"
|
||||||
/>
|
/>
|
||||||
|
@ -332,7 +336,7 @@
|
||||||
placeholder="请填写选项"
|
placeholder="请填写选项"
|
||||||
v-model:value="tmxx.itemTitle"
|
v-model:value="tmxx.itemTitle"
|
||||||
:bordered="false"
|
:bordered="false"
|
||||||
:style="{ width: handinpwei(tmxx.itemTitle) }"
|
:style="{ width: '30rem' }"
|
||||||
:disabled="editDisabled"
|
:disabled="editDisabled"
|
||||||
/></a-checkbox>
|
/></a-checkbox>
|
||||||
<span style="color: #ecb646" v-if="cheGrp(item.itemSelected, tmxx.itemIndex)">(正确答案)</span>
|
<span style="color: #ecb646" v-if="cheGrp(item.itemSelected, tmxx.itemIndex)">(正确答案)</span>
|
||||||
|
@ -364,7 +368,7 @@
|
||||||
placeholder="请填写填空题题干"
|
placeholder="请填写填空题题干"
|
||||||
v-model:value="item.wjTitle"
|
v-model:value="item.wjTitle"
|
||||||
:bordered="false"
|
:bordered="false"
|
||||||
:style="{ width: handinpwei(item.wjTitle) }"
|
:style="{ width: '30rem' }"
|
||||||
:auto-size="{ minRows: 1, maxRows: 5 }"
|
:auto-size="{ minRows: 1, maxRows: 5 }"
|
||||||
:disabled="editDisabled"
|
:disabled="editDisabled"
|
||||||
/>
|
/>
|
||||||
|
@ -429,7 +433,7 @@
|
||||||
placeholder="请填写文件上传题题干"
|
placeholder="请填写文件上传题题干"
|
||||||
v-model:value="item.wjTitle"
|
v-model:value="item.wjTitle"
|
||||||
:bordered="false"
|
:bordered="false"
|
||||||
:style="{ width: handinpwei(item.wjTitle) }"
|
:style="{ width: '30rem' }"
|
||||||
:auto-size="{ minRows: 1, maxRows: 5 }"
|
:auto-size="{ minRows: 1, maxRows: 5 }"
|
||||||
:disabled="editDisabled"
|
:disabled="editDisabled"
|
||||||
/>
|
/>
|
||||||
|
@ -474,8 +478,6 @@
|
||||||
</a-card>
|
</a-card>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div v-else></div>
|
<div v-else></div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
@ -506,7 +508,7 @@
|
||||||
<span class="title">统计分析</span>
|
<span class="title">统计分析</span>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="4" style="text-align: right">
|
<a-col :span="4" style="text-align: right">
|
||||||
<a-button class="buttonClass" @click="reloadZy" style="margin-right:10px"><Icon icon="ant-design:export-outlined" />返回</a-button>
|
<a-button class="buttonClass" @click="reloadZy" style="margin-right: 10px"><Icon icon="ant-design:export-outlined" />返回</a-button>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
<a-divider />
|
<a-divider />
|
||||||
|
@ -630,7 +632,7 @@
|
||||||
<a-divider type="vertical" />
|
<a-divider type="vertical" />
|
||||||
<a-button type="primary" @click="handleAddOne"><Icon icon="ant-design:file-add-outlined" />新增测验</a-button>
|
<a-button type="primary" @click="handleAddOne"><Icon icon="ant-design:file-add-outlined" />新增测验</a-button>
|
||||||
<a-divider type="vertical" />
|
<a-divider type="vertical" />
|
||||||
<a-button type="primary" @click="handleTiku('6')" style="margin-left: 8px;margin-right: 18px;">题库</a-button>
|
<a-button type="primary" @click="handleTiku('6')" style="margin-left: 8px; margin-right: 18px">题库</a-button>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="24">
|
<a-col :span="24">
|
||||||
<a-row style="padding: 10px">
|
<a-row style="padding: 10px">
|
||||||
|
@ -639,9 +641,7 @@
|
||||||
<!-- class="cardClass" -->
|
<!-- class="cardClass" -->
|
||||||
<a-card v-if="!item.endTime" bodyStyle="">
|
<a-card v-if="!item.endTime" bodyStyle="">
|
||||||
<template #title>第{{ item.sort }}次测验:暂未设置测验信息 <span class="card-label3"> 待设置</span> </template>
|
<template #title>第{{ item.sort }}次测验:暂未设置测验信息 <span class="card-label3"> 待设置</span> </template>
|
||||||
<template #extra
|
<template #extra> </template>
|
||||||
>
|
|
||||||
</template>
|
|
||||||
<!-- <p class="sznrClass">尚未布置测验题目及具体要求</p> -->
|
<!-- <p class="sznrClass">尚未布置测验题目及具体要求</p> -->
|
||||||
<a-row>
|
<a-row>
|
||||||
<a-col :span="18">
|
<a-col :span="18">
|
||||||
|
@ -713,14 +713,14 @@
|
||||||
</a-row>
|
</a-row>
|
||||||
</a-card>
|
</a-card>
|
||||||
|
|
||||||
<a-card v-if="item.endTime && (item.qpublish == '1' || item.qpublish == '2') " bodyStyle="">
|
<a-card v-if="item.endTime && (item.qpublish == '1' || item.qpublish == '2')" bodyStyle="">
|
||||||
<template #title>
|
<template #title>
|
||||||
<span>第{{ item.sort }}次测验:{{ item.title }}</span>
|
<span>第{{ item.sort }}次测验:{{ item.title }}</span>
|
||||||
<span class="card-label">已发布</span>
|
<span class="card-label">已发布</span>
|
||||||
</template>
|
</template>
|
||||||
<template #extra>
|
<template #extra>
|
||||||
<span>ID:{{ item.id }}</span>
|
<span>ID:{{ item.id }}</span>
|
||||||
|
|
||||||
<span style="margin-left: 10px">{{ dayjs(item.endTime).format('MM.DD HH:mm') }}</span>
|
<span style="margin-left: 10px">{{ dayjs(item.endTime).format('MM.DD HH:mm') }}</span>
|
||||||
</template>
|
</template>
|
||||||
<a-row>
|
<a-row>
|
||||||
|
@ -805,7 +805,7 @@
|
||||||
<a-card v-if="item.endTime && item.qpublish == '0'" bodyStyle="">
|
<a-card v-if="item.endTime && item.qpublish == '0'" bodyStyle="">
|
||||||
<template #title>
|
<template #title>
|
||||||
<span>第{{ item.sort }}次测验:{{ item.title }}</span>
|
<span>第{{ item.sort }}次测验:{{ item.title }}</span>
|
||||||
<span class="card-label2" >待发布</span>
|
<span class="card-label2">待发布</span>
|
||||||
</template>
|
</template>
|
||||||
<template #extra>
|
<template #extra>
|
||||||
<span>ID:{{ item.id }}</span>
|
<span>ID:{{ item.id }}</span>
|
||||||
|
@ -897,6 +897,34 @@
|
||||||
</div>
|
</div>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
|
||||||
|
<a-modal
|
||||||
|
title="Excel导入指导"
|
||||||
|
:width="800"
|
||||||
|
:visible="importOpen"
|
||||||
|
:maskClosable="false"
|
||||||
|
:okButtonProps="{ class: { 'jee-hidden': true } }"
|
||||||
|
@cancel="importOpen = false"
|
||||||
|
cancelText="关闭"
|
||||||
|
>
|
||||||
|
<div style="padding: 20px; background-color: rgb(225, 243, 237); border-radius: 5px; margin: 20px">
|
||||||
|
<p>Excel导入指导</p>
|
||||||
|
<p style="font-size: 18px; font-weight: 700p; color: red">*注意:导入题目时请先保存手动添加的题目,防止手动添加的题目丢失!!!</p>
|
||||||
|
<p>1.下载题目导入模板文件。</p>
|
||||||
|
<p>2.按要求格式填写题目信息。</p>
|
||||||
|
<p>3.在模板内录入信息后,上传文件导入题目。</p>
|
||||||
|
<p>4.点击导入题目,选择已完成录入的文件,平台将会验证数据的正确性。</p>
|
||||||
|
<p>5.若发现错误,会给予提示,重新修正后再次上传:若无错误,即将数据导入到平台中。</p>
|
||||||
|
<p
|
||||||
|
><a @click="downloadByUrl({ url: '/downPath/stdrmb.xls', target: '_self', fileName: '试题导入模板.xls' })"
|
||||||
|
><Icon icon="ant-design:download-outlined" :size="20" />导入模板下载</a
|
||||||
|
></p
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div style="text-align: center; margin-top: 20px; margin-bottom: 20px">
|
||||||
|
<j-upload-button type="primary" preIcon="ant-design:import-outlined" @click="importDrtmXls">导入试题</j-upload-button>
|
||||||
|
</div>
|
||||||
|
</a-modal>
|
||||||
|
|
||||||
<KcTeachingUnitContentOneListModal ref="registerZcjcModal" @success="handleCheckZcjcSuccess"></KcTeachingUnitContentOneListModal>
|
<KcTeachingUnitContentOneListModal ref="registerZcjcModal" @success="handleCheckZcjcSuccess"></KcTeachingUnitContentOneListModal>
|
||||||
<WjxWjxxTmlbDjjgsModal ref="WjxWjxxTmlbDjjgsModalPage"></WjxWjxxTmlbDjjgsModal>
|
<WjxWjxxTmlbDjjgsModal ref="WjxWjxxTmlbDjjgsModalPage"></WjxWjxxTmlbDjjgsModal>
|
||||||
<XxhbbksListModal ref="XxhbbksListModalPage"></XxhbbksListModal>
|
<XxhbbksListModal ref="XxhbbksListModalPage"></XxhbbksListModal>
|
||||||
|
@ -934,11 +962,10 @@ import { downloadByUrl } from '/@/utils/file/download';
|
||||||
const glob = useGlobSetting();
|
const glob = useGlobSetting();
|
||||||
const globSetting = useGlobSetting();
|
const globSetting = useGlobSetting();
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 导出文件xlsx的mime-type
|
* 导出文件xlsx的mime-type
|
||||||
*/
|
*/
|
||||||
const XLSX_MIME_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
|
const XLSX_MIME_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';
|
||||||
/**
|
/**
|
||||||
* 导出文件xlsx的文件后缀
|
* 导出文件xlsx的文件后缀
|
||||||
*/
|
*/
|
||||||
|
@ -948,7 +975,7 @@ const XLSX_FILE_SUFFIX = '.xlsx';
|
||||||
const { currentRoute } = useRouter();
|
const { currentRoute } = useRouter();
|
||||||
const { query } = unref(currentRoute);
|
const { query } = unref(currentRoute);
|
||||||
const { rwbh, xqxn, type, teano } = query; //获取传递参数
|
const { rwbh, xqxn, type, teano } = query; //获取传递参数
|
||||||
const { createConfirm, createMessage,createWarningModal } = useMessage();
|
const { createConfirm, createMessage, createWarningModal } = useMessage();
|
||||||
//用户相关
|
//用户相关
|
||||||
const userStore = useUserStore();
|
const userStore = useUserStore();
|
||||||
const XxhbbksListModalPage = ref();
|
const XxhbbksListModalPage = ref();
|
||||||
|
@ -985,6 +1012,7 @@ const ewmInfo = ref<any>({});
|
||||||
const kczyzb = ref<number>(0);
|
const kczyzb = ref<number>(0);
|
||||||
const qmkszb = ref<number>(0);
|
const qmkszb = ref<number>(0);
|
||||||
const ktcyzb = ref<number>(0);
|
const ktcyzb = ref<number>(0);
|
||||||
|
const importOpen = ref<boolean>(false);
|
||||||
|
|
||||||
//设置测验删除功能
|
//设置测验删除功能
|
||||||
const disabledDate = (current: Dayjs) => {
|
const disabledDate = (current: Dayjs) => {
|
||||||
|
@ -1031,91 +1059,129 @@ function handleViewEwm(record) {
|
||||||
ewmInfo.value = record;
|
ewmInfo.value = record;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//题库类型(6作业,1问卷)
|
//题库类型(6作业,1问卷)
|
||||||
function handleTiku(wjLeixing){
|
function handleTiku(wjLeixing) {
|
||||||
var record = {wjLeixing}
|
var record = { wjLeixing };
|
||||||
TikuListModalPage.value.disableSubmit = true;
|
TikuListModalPage.value.disableSubmit = true;
|
||||||
TikuListModalPage.value.init(record);
|
TikuListModalPage.value.init(record);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function exportTmlbXls(isXlsx = false) {
|
async function exportTmlbXls(isXlsx = false) {
|
||||||
var name = "问卷导入模板";var url = "/wjxWjxxTmlb/wjxWjxxTmlb/exportDownXls"; var params ={title: '-1'} ;
|
var name = '问卷导入模板';
|
||||||
const data = await defHttp.get({ url: url, params: params, responseType: 'blob', timeout: 9000000 }, { isTransformResponse: false });
|
var url = '/wjxWjxxTmlb/wjxWjxxTmlb/exportDownXls';
|
||||||
if (!data) {
|
var params = { title: '-1' };
|
||||||
createMessage.warning('文件下载失败');
|
const data = await defHttp.get({ url: url, params: params, responseType: 'blob', timeout: 9000000 }, { isTransformResponse: false });
|
||||||
return;
|
if (!data) {
|
||||||
}
|
createMessage.warning('文件下载失败');
|
||||||
if (!name || typeof name != 'string') {
|
return;
|
||||||
name = '导出文件';
|
|
||||||
}
|
|
||||||
let blobOptions = { type: 'application/vnd.ms-excel' };
|
|
||||||
let fileSuffix = '.xls';
|
|
||||||
if (isXlsx === true) {
|
|
||||||
blobOptions['type'] = XLSX_MIME_TYPE;
|
|
||||||
fileSuffix = XLSX_FILE_SUFFIX;
|
|
||||||
}
|
|
||||||
if (typeof window.navigator.msSaveBlob !== 'undefined') {
|
|
||||||
window.navigator.msSaveBlob(new Blob([data], blobOptions), name + fileSuffix);
|
|
||||||
} else {
|
|
||||||
let url = window.URL.createObjectURL(new Blob([data], blobOptions));
|
|
||||||
let link = document.createElement('a');
|
|
||||||
link.style.display = 'none';
|
|
||||||
link.href = url;
|
|
||||||
link.setAttribute('download', name + fileSuffix);
|
|
||||||
document.body.appendChild(link);
|
|
||||||
link.click();
|
|
||||||
document.body.removeChild(link); //下载完成移除元素
|
|
||||||
window.URL.revokeObjectURL(url); //释放掉blob对象
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
if (!name || typeof name != 'string') {
|
||||||
|
name = '导出文件';
|
||||||
|
}
|
||||||
|
let blobOptions = { type: 'application/vnd.ms-excel' };
|
||||||
|
let fileSuffix = '.xls';
|
||||||
|
if (isXlsx === true) {
|
||||||
|
blobOptions['type'] = XLSX_MIME_TYPE;
|
||||||
|
fileSuffix = XLSX_FILE_SUFFIX;
|
||||||
|
}
|
||||||
|
if (typeof window.navigator.msSaveBlob !== 'undefined') {
|
||||||
|
window.navigator.msSaveBlob(new Blob([data], blobOptions), name + fileSuffix);
|
||||||
|
} else {
|
||||||
|
let url = window.URL.createObjectURL(new Blob([data], blobOptions));
|
||||||
|
let link = document.createElement('a');
|
||||||
|
link.style.display = 'none';
|
||||||
|
link.href = url;
|
||||||
|
link.setAttribute('download', name + fileSuffix);
|
||||||
|
document.body.appendChild(link);
|
||||||
|
link.click();
|
||||||
|
document.body.removeChild(link); //下载完成移除元素
|
||||||
|
window.URL.revokeObjectURL(url); //释放掉blob对象
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async function importDrtmXls(data, url) {
|
||||||
/**
|
url = '/wjxWjxxTmlb/wjxWjxxTmlb/importTmlbExcel?mainId=' + zyInfo.value.id;
|
||||||
* 导入xls
|
console.log('🧤', url);
|
||||||
* @param data 导入的数据
|
const isReturn = (fileInfo) => {
|
||||||
* @param url
|
try {
|
||||||
*/
|
if (fileInfo.code === 201) {
|
||||||
async function importXls(data, url) {
|
let {
|
||||||
url = "/wjxWjxxTmlb/wjxWjxxTmlb/importExcel";
|
message,
|
||||||
const isReturn = (fileInfo) => {
|
result: { msg, fileUrl, fileName },
|
||||||
try {
|
} = fileInfo;
|
||||||
if (fileInfo.code === 201) {
|
let href = glob.uploadUrl + fileUrl;
|
||||||
let {
|
createWarningModal({
|
||||||
message,
|
title: message,
|
||||||
result: { msg, fileUrl, fileName },
|
centered: false,
|
||||||
} = fileInfo;
|
content: `<div>
|
||||||
let href = glob.uploadUrl + fileUrl;
|
|
||||||
createWarningModal({
|
|
||||||
title: message,
|
|
||||||
centered: false,
|
|
||||||
content: `<div>
|
|
||||||
<span>${msg}</span><br/>
|
<span>${msg}</span><br/>
|
||||||
<span>具体详情请<a href = ${href} download = ${fileName}> 点击下载 </a> </span>
|
<span>具体详情请<a href = ${href} download = ${fileName}> 点击下载 </a> </span>
|
||||||
</div>`,
|
</div>`,
|
||||||
});
|
});
|
||||||
//update-begin---author:wangshuai ---date:20221121 for:[VUEN-2827]导入无权限,提示图标错误------------
|
//update-begin---author:wangshuai ---date:20221121 for:[VUEN-2827]导入无权限,提示图标错误------------
|
||||||
} else if (fileInfo.code === 500 || fileInfo.code === 510) {
|
} else if (fileInfo.code === 500 || fileInfo.code === 510) {
|
||||||
createMessage.error(fileInfo.message || `${data.file.name} 导入失败`);
|
createMessage.error(fileInfo.message || `${data.file.name} 导入失败`);
|
||||||
//update-end---author:wangshuai ---date:20221121 for:[VUEN-2827]导入无权限,提示图标错误------------
|
//update-end---author:wangshuai ---date:20221121 for:[VUEN-2827]导入无权限,提示图标错误------------
|
||||||
} else {
|
} else {
|
||||||
createWarningModal({
|
createWarningModal({
|
||||||
centered: false,
|
centered: false,
|
||||||
content: `<div>
|
content: `<div>
|
||||||
<span>${fileInfo.message}</span><br/>
|
<span>${fileInfo.message}</span><br/>
|
||||||
</div>`,
|
</div>`,
|
||||||
});
|
});
|
||||||
}
|
|
||||||
} catch (error) {
|
|
||||||
console.log('导入的数据异常', error);
|
|
||||||
} finally {
|
|
||||||
}
|
}
|
||||||
};
|
} catch (error) {
|
||||||
await defHttp.uploadFile({ url }, { file: data.file }, { success: isReturn });
|
console.log('导入的数据异常', error);
|
||||||
}
|
} finally {
|
||||||
|
}
|
||||||
|
};
|
||||||
|
await defHttp.uploadFile({ url }, { file: data.file }, { success: isReturn });
|
||||||
|
console.log('22222222222222222222222',zyInfo.value);
|
||||||
|
handleEdit(zyInfo.value, false);
|
||||||
|
importOpen.value = false
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 导入xls
|
||||||
|
* @param data 导入的数据
|
||||||
|
* @param url
|
||||||
|
*/
|
||||||
|
async function importXls(data, url) {
|
||||||
|
url = '/wjxWjxxTmlb/wjxWjxxTmlb/importExcel';
|
||||||
|
const isReturn = (fileInfo) => {
|
||||||
|
try {
|
||||||
|
if (fileInfo.code === 201) {
|
||||||
|
let {
|
||||||
|
message,
|
||||||
|
result: { msg, fileUrl, fileName },
|
||||||
|
} = fileInfo;
|
||||||
|
let href = glob.uploadUrl + fileUrl;
|
||||||
|
createWarningModal({
|
||||||
|
title: message,
|
||||||
|
centered: false,
|
||||||
|
content: `<div>
|
||||||
|
<span>${msg}</span><br/>
|
||||||
|
<span>具体详情请<a href = ${href} download = ${fileName}> 点击下载 </a> </span>
|
||||||
|
</div>`,
|
||||||
|
});
|
||||||
|
//update-begin---author:wangshuai ---date:20221121 for:[VUEN-2827]导入无权限,提示图标错误------------
|
||||||
|
} else if (fileInfo.code === 500 || fileInfo.code === 510) {
|
||||||
|
createMessage.error(fileInfo.message || `${data.file.name} 导入失败`);
|
||||||
|
//update-end---author:wangshuai ---date:20221121 for:[VUEN-2827]导入无权限,提示图标错误------------
|
||||||
|
} else {
|
||||||
|
createWarningModal({
|
||||||
|
centered: false,
|
||||||
|
content: `<div>
|
||||||
|
<span>${fileInfo.message}</span><br/>
|
||||||
|
</div>`,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.log('导入的数据异常', error);
|
||||||
|
} finally {
|
||||||
|
}
|
||||||
|
};
|
||||||
|
await defHttp.uploadFile({ url }, { file: data.file }, { success: isReturn });
|
||||||
|
}
|
||||||
|
|
||||||
//答题结果
|
//答题结果
|
||||||
function handleTeaDtjg(item) {
|
function handleTeaDtjg(item) {
|
||||||
|
@ -1198,10 +1264,9 @@ function handleYylx(sylx) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function handleJscjbfb() {
|
||||||
function handleJscjbfb(){
|
|
||||||
var list = tableData.value;
|
var list = tableData.value;
|
||||||
|
|
||||||
var cjbfb = qmkszb.value; //成绩百分比
|
var cjbfb = qmkszb.value; //成绩百分比
|
||||||
var cjbfb2 = kczyzb.value; //成绩百分比
|
var cjbfb2 = kczyzb.value; //成绩百分比
|
||||||
var zcj = 0;
|
var zcj = 0;
|
||||||
|
@ -1213,7 +1278,7 @@ function handleJscjbfb(){
|
||||||
createMessage.error('第' + (i + 1) + '次作业占总成绩的百分比不能为空!');
|
createMessage.error('第' + (i + 1) + '次作业占总成绩的百分比不能为空!');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
score22 = parseInt(score22)+parseInt(score);
|
score22 = parseInt(score22) + parseInt(score);
|
||||||
if (score < 0 || score > 100) {
|
if (score < 0 || score > 100) {
|
||||||
createMessage.error('作业成绩百分比必须在0-100之间!');
|
createMessage.error('作业成绩百分比必须在0-100之间!');
|
||||||
break;
|
break;
|
||||||
|
@ -1223,7 +1288,7 @@ function handleJscjbfb(){
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
zcj = parseInt(score22)+ parseInt(cjbfb)+ parseInt(cjbfb2);
|
zcj = parseInt(score22) + parseInt(cjbfb) + parseInt(cjbfb2);
|
||||||
if (zcj > 100) {
|
if (zcj > 100) {
|
||||||
createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入');
|
createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入');
|
||||||
}
|
}
|
||||||
|
@ -1338,17 +1403,35 @@ function handleDelTigan(record, index) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function letterCount(val) {
|
||||||
|
return val.replace(/[^a-zA-Z]/g, '').length;
|
||||||
|
}
|
||||||
|
|
||||||
|
function digitCount(val) {
|
||||||
|
return val.replace(/\D/g, '').length;
|
||||||
|
}
|
||||||
|
|
||||||
|
function chineseCharCount(val) {
|
||||||
|
const regex = /[\u4e00-\u9fa5]/g;
|
||||||
|
return val.match(regex)?.length || 0;
|
||||||
|
}
|
||||||
|
|
||||||
//计算输入框宽度
|
//计算输入框宽度
|
||||||
function handinpwei(value) {
|
function handinpwei(value) {
|
||||||
if (!value) {
|
if (!value) {
|
||||||
return '20rem';
|
return '20rem';
|
||||||
} else {
|
} else {
|
||||||
if (String(value).length * 1.1 < 20) {
|
var a = letterCount(value); //判断字母
|
||||||
|
var b = digitCount(value); //判断数字
|
||||||
|
var c = chineseCharCount(value); //判断中文
|
||||||
|
|
||||||
|
var d = a + b + c;
|
||||||
|
if (d * 1.1 < 20) {
|
||||||
return '20rem';
|
return '20rem';
|
||||||
} else if (String(value).length * 1.1 > 60) {
|
} else if (d * 1.1 > 60) {
|
||||||
return '60rem';
|
return '60rem';
|
||||||
} else {
|
} else {
|
||||||
return String(value).length * 1.1 + 'rem';
|
return d * 1.1 + 'rem';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1417,7 +1500,7 @@ function addTigan(type) {
|
||||||
};
|
};
|
||||||
list.push(params);
|
list.push(params);
|
||||||
tiganData.value = [...list];
|
tiganData.value = [...list];
|
||||||
}else if (type == 8) {
|
} else if (type == 8) {
|
||||||
var chk = '';
|
var chk = '';
|
||||||
if (isShow.value) {
|
if (isShow.value) {
|
||||||
chk = '1';
|
chk = '1';
|
||||||
|
@ -1493,7 +1576,7 @@ function handleFabu(record: Recordable) {
|
||||||
});
|
});
|
||||||
//推送微信信息
|
//推送微信信息
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
defHttp.get({ url: '/wjxWjxx/wjxWjxx/sendWjWechat', params: { id: record.id, wjlx: wjLeixing.value } }).then((res) => {});
|
defHttp.get({ url: '/wjxWjxx/wjxWjxx/sendWjWechat', params: { id: record.id, wjlx: wjLeixing.value } }).then((res) => {});
|
||||||
}, 5000);
|
}, 5000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1540,23 +1623,22 @@ function handleDelZycs(index) {
|
||||||
handleZycs();
|
handleZycs();
|
||||||
}
|
}
|
||||||
|
|
||||||
function handleSzzycs(val){
|
function handleSzzycs(val) {
|
||||||
|
|
||||||
defHttp.get({ url: '/zyInfo/zyInfo/zyzb', params: { rwbh, xqxn, zyLeixing: '1' } }).then((res) => {
|
defHttp.get({ url: '/zyInfo/zyInfo/zyzb', params: { rwbh, xqxn, zyLeixing: '1' } }).then((res) => {
|
||||||
console.log('😥', res);
|
console.log('😥', res);
|
||||||
var list = res;
|
var list = res;
|
||||||
for(var i = 0; i < list.length; i++){
|
for (var i = 0; i < list.length; i++) {
|
||||||
if(list[i].zyLeixing == '0'){
|
if (list[i].zyLeixing == '0') {
|
||||||
kczyzb.value = list[i].score
|
kczyzb.value = list[i].score;
|
||||||
}else if(list[i].zyLeixing == '1'){
|
} else if (list[i].zyLeixing == '1') {
|
||||||
qmkszb.value = list[i].score
|
qmkszb.value = list[i].score;
|
||||||
}else if(list[i].zyLeixing == '2'){
|
} else if (list[i].zyLeixing == '2') {
|
||||||
}else if(list[i].zyLeixing == '3'){
|
} else if (list[i].zyLeixing == '3') {
|
||||||
ktcyzb.value = list[i].score
|
ktcyzb.value = list[i].score;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
handleShowType(1)
|
handleShowType(1);
|
||||||
}
|
}
|
||||||
//批量进行保存
|
//批量进行保存
|
||||||
function handleBatchAdd() {
|
function handleBatchAdd() {
|
||||||
|
@ -1584,15 +1666,15 @@ function handleBatchAdd() {
|
||||||
sfjx = 1;
|
sfjx = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
score22 = parseInt(score22) + parseInt(score);
|
score22 = parseInt(score22) + parseInt(score);
|
||||||
if (score22 > 100) {
|
if (score22 > 100) {
|
||||||
createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入');
|
createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入');
|
||||||
sfjx = 1;
|
sfjx = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
zcj = parseInt(score22)+ parseInt(cjbfb)+ parseInt(cjbfb2);
|
zcj = parseInt(score22) + parseInt(cjbfb) + parseInt(cjbfb2);
|
||||||
|
|
||||||
if (zcj > 100) {
|
if (zcj > 100) {
|
||||||
createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入');
|
createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入');
|
||||||
|
@ -1743,9 +1825,8 @@ async function submitForm() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else if(wjType == 8){
|
} else if (wjType == 8) {
|
||||||
|
} else if (wjType == 6) {
|
||||||
} else if(wjType == 6) {
|
|
||||||
if (isShow.value) {
|
if (isShow.value) {
|
||||||
var wjAnswer = values[i].wjAnswer;
|
var wjAnswer = values[i].wjAnswer;
|
||||||
if (!wjAnswer || wjAnswer == 'NaN' || wjAnswer == 'undefined') {
|
if (!wjAnswer || wjAnswer == 'NaN' || wjAnswer == 'undefined') {
|
||||||
|
@ -1958,13 +2039,13 @@ onMounted(() => {
|
||||||
}
|
}
|
||||||
.ant-card {
|
.ant-card {
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
border-radius:5px;
|
border-radius: 5px;
|
||||||
border:1px solid #e6e6e6;
|
border: 1px solid #e6e6e6;
|
||||||
margin: 6px 0;
|
margin: 6px 0;
|
||||||
background: #fff;
|
background: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ant-card:hover{
|
.ant-card:hover {
|
||||||
box-shadow: 2px 2px 10px 1px #d4d4d4;
|
box-shadow: 2px 2px 10px 1px #d4d4d4;
|
||||||
}
|
}
|
||||||
.ant-card-head {
|
.ant-card-head {
|
||||||
|
@ -2154,41 +2235,41 @@ onMounted(() => {
|
||||||
color: #ff8710;
|
color: #ff8710;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
.ant-dropdown-link{
|
.ant-dropdown-link {
|
||||||
color: #029c88;
|
color: #029c88;
|
||||||
}
|
}
|
||||||
.ant-dropdown-link:hover{
|
.ant-dropdown-link:hover {
|
||||||
color: #333;
|
color: #333;
|
||||||
}
|
}
|
||||||
.ant-dropdown-link1{
|
.ant-dropdown-link1 {
|
||||||
color: #666;
|
color: #666;
|
||||||
}
|
}
|
||||||
.ant-dropdown-link1:hover{
|
.ant-dropdown-link1:hover {
|
||||||
color: #029c88;
|
color: #029c88;
|
||||||
}
|
}
|
||||||
.card-label{
|
.card-label {
|
||||||
background: #81cbbc;
|
background: #81cbbc;
|
||||||
border-radius:4px;
|
border-radius: 4px;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
padding: 3px 6px;
|
padding: 3px 6px;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
.card-label2{
|
.card-label2 {
|
||||||
background: #84c4fa;
|
background: #84c4fa;
|
||||||
border-radius:4px;
|
border-radius: 4px;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
padding: 3px 6px;
|
padding: 3px 6px;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
.card-label3{
|
.card-label3 {
|
||||||
background: #fabe84;
|
background: #fabe84;
|
||||||
border-radius:4px;
|
border-radius: 4px;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
padding: 3px 6px;
|
padding: 3px 6px;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
/deep/.ant-card-head-title {
|
/deep/.ant-card-head-title {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|
|
@ -420,7 +420,7 @@ watch(
|
||||||
function handleOk() {
|
function handleOk() {
|
||||||
const data = tiganData.value;
|
const data = tiganData.value;
|
||||||
console.log('🧝♀️', data);
|
console.log('🧝♀️', data);
|
||||||
defHttp.post({ url: '/wjxWjxxTmlb/wjxWjxxTmlb/add', params: data }).then((res) => {
|
defHttp.post({ url: '/wjxWjxxTmlb/wjxWjxxTmlb/addNew', params: {addList:data} }).then((res) => {
|
||||||
console.log('👞', res);
|
console.log('👞', res);
|
||||||
addOpen.value = false;
|
addOpen.value = false;
|
||||||
searchQuery();
|
searchQuery();
|
||||||
|
@ -590,7 +590,8 @@ function addTigan(type) {
|
||||||
* @param url
|
* @param url
|
||||||
*/
|
*/
|
||||||
async function importXls(data, url) {
|
async function importXls(data, url) {
|
||||||
url = '/wjxWjxxTmlb/wjxWjxxTmlb/importExcel';
|
// url = '/wjxWjxxTmlb/wjxWjxxTmlb/importTmlbExcel?mainId=1234';
|
||||||
|
url = '/wjxWjxxTmlb/wjxWjxxTmlb/importTmlbExcel';
|
||||||
const isReturn = (fileInfo) => {
|
const isReturn = (fileInfo) => {
|
||||||
try {
|
try {
|
||||||
if (fileInfo.code === 201) {
|
if (fileInfo.code === 201) {
|
||||||
|
|
|
@ -302,7 +302,7 @@ function isNow(item) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function funpingjia(record) {
|
function funpingjia(record) {
|
||||||
var item = { ketangbiaoid: record.id };
|
var item = { ketangbiaoid: record.id ,szkc:record.szkc};
|
||||||
let userid = getUserId();
|
let userid = getUserId();
|
||||||
listTkjlApi({ userid: userid, ketangbiaoid: item.ketangbiaoid }).then((res) => {
|
listTkjlApi({ userid: userid, ketangbiaoid: item.ketangbiaoid }).then((res) => {
|
||||||
var list = res;
|
var list = res;
|
||||||
|
|
|
@ -343,7 +343,7 @@ function isNow(item) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function funpingjia(record) {
|
function funpingjia(record) {
|
||||||
var item = { ketangbiaoid: record.id };
|
var item = { ketangbiaoid: record.id,szkc:record.szkc };
|
||||||
let userid = getUserId();
|
let userid = getUserId();
|
||||||
listTkjlApi({ userid: userid, ketangbiaoid: item.ketangbiaoid }).then((res) => {
|
listTkjlApi({ userid: userid, ketangbiaoid: item.ketangbiaoid }).then((res) => {
|
||||||
var list = res;
|
var list = res;
|
||||||
|
|
|
@ -2,6 +2,17 @@
|
||||||
<a-card class="rowGutter" id="ktsbDom">
|
<a-card class="rowGutter" id="ktsbDom">
|
||||||
<template #title>
|
<template #title>
|
||||||
<span class="titleName">听课笔记</span>
|
<span class="titleName">听课笔记</span>
|
||||||
|
<span class="titleDownload"><a @click="downloadByUrl({url:'/downPath/tkjlb.docx',target: '_self',fileName:'东北师范大学听课记录表.docx'})">一般听课评价表</a></span>
|
||||||
|
<span class="titleDownload"><a @click="downloadByUrl({url:'/downPath/jxzlpjb.docx',target: '_self',fileName:'东北师范大学本科课堂教学质量评价表(同行专家用)'})">同行听课评价表</a></span>
|
||||||
|
<span class="titleDownload"><a @click="downloadByUrl({url:'/downPath/szkcpjb.docx',target: '_self',fileName:'东北师范大学政课评价表'})">思政课评价表</a></span>
|
||||||
|
<span class="titleDownload"><a @click="downloadByUrl({url:'/downPath/tkpjb.docx',target: '_self',fileName:'线上教学听课评价表-新.docx'})">线上课评价表</a></span>
|
||||||
|
<span class="titleDownload">
|
||||||
|
<a-tooltip placement="topLeft">
|
||||||
|
<template #title>
|
||||||
|
<span>登录后教师可以预约课程,听课完成后可以对课程进行评价,评价有助于快速完成本学期的听课任务</span>
|
||||||
|
</template>
|
||||||
|
<span class="helpClass">?</span>
|
||||||
|
</a-tooltip></span>
|
||||||
<span style="float:right;">
|
<span style="float:right;">
|
||||||
<a style="padding-right: 0.5rem;" @click="addTkbj()">新增笔记</a>
|
<a style="padding-right: 0.5rem;" @click="addTkbj()">新增笔记</a>
|
||||||
<RouterLink to="/site/ktsbMore">查看更多</RouterLink>
|
<RouterLink to="/site/ktsbMore">查看更多</RouterLink>
|
||||||
|
@ -19,6 +30,7 @@ import { ref, onMounted } from 'vue';
|
||||||
import { getSysConfig } from '/@/views/site/utils/index';
|
import { getSysConfig } from '/@/views/site/utils/index';
|
||||||
import ktsbPage from '/@/views/site/ktsb/ktsbList.vue'
|
import ktsbPage from '/@/views/site/ktsb/ktsbList.vue'
|
||||||
import ktsbModalPage from '/@/views/site/ktsb/components/ktsbModal.vue'
|
import ktsbModalPage from '/@/views/site/ktsb/components/ktsbModal.vue'
|
||||||
|
import { downloadByUrl } from '/@/utils/file/download';
|
||||||
|
|
||||||
const zzskTitle = ref('正在上课');
|
const zzskTitle = ref('正在上课');
|
||||||
const queryParam = ref<any>({});
|
const queryParam = ref<any>({});
|
||||||
|
@ -58,4 +70,18 @@ function addTkbj(){
|
||||||
font-size: 24px;
|
font-size: 24px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
.titleDownload {
|
||||||
|
padding: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.helpClass{
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 700;
|
||||||
|
/* background: #1c84c6; */
|
||||||
|
color: #1c84c6;
|
||||||
|
border-radius: 5px;
|
||||||
|
padding: 1px 8px;
|
||||||
|
border: 1px #1c84c6 solid;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -150,7 +150,7 @@ function loadData(num?) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function funpingjia(record){
|
function funpingjia(record){
|
||||||
var item = {ketangbiaoid:record.id}
|
var item = {ketangbiaoid:record.id ,szkc:record.szkc}
|
||||||
let userid = getUserId();
|
let userid = getUserId();
|
||||||
listTkjlApi({ userid: userid, ketangbiaoid:item.ketangbiaoid}).then(res => {
|
listTkjlApi({ userid: userid, ketangbiaoid:item.ketangbiaoid}).then(res => {
|
||||||
var list = res
|
var list = res
|
||||||
|
|
|
@ -142,7 +142,7 @@ function loadData(num?) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function funpingjia(record){
|
function funpingjia(record){
|
||||||
var item = {ketangbiaoid:record.id}
|
var item = {ketangbiaoid:record.id ,szkc:record.szkc}
|
||||||
let userid = getUserId();
|
let userid = getUserId();
|
||||||
listTkjlApi({ userid: userid, ketangbiaoid:item.ketangbiaoid}).then(res => {
|
listTkjlApi({ userid: userid, ketangbiaoid:item.ketangbiaoid}).then(res => {
|
||||||
var list = res
|
var list = res
|
||||||
|
|
|
@ -133,7 +133,7 @@ function loadData(num?) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function funpingjia(record){
|
function funpingjia(record){
|
||||||
var item = {ketangbiaoid:record.id}
|
var item = {ketangbiaoid:record.id ,szkc:record.szkc}
|
||||||
let userid = getUserId();
|
let userid = getUserId();
|
||||||
listTkjlApi({ userid: userid, ketangbiaoid:item.ketangbiaoid}).then(res => {
|
listTkjlApi({ userid: userid, ketangbiaoid:item.ketangbiaoid}).then(res => {
|
||||||
var list = res
|
var list = res
|
||||||
|
|
|
@ -1,62 +1,70 @@
|
||||||
<template>
|
<template>
|
||||||
<a-card class="wenZiJiaCu" style="font-size: 1.1rem;">
|
<a-card class="wenZiJiaCu" style="font-size: 1.1rem">
|
||||||
您可根据实际情况选择下面两个评价表中的一个或者两个给予评价:
|
您可根据实际情况选择下面评价表中的一个给予评价:
|
||||||
<div class="p15">
|
<div class="p15">
|
||||||
<a-row>
|
<a-row>
|
||||||
<!-- <a-col :span="9">
|
<!-- <a-col :span="9">
|
||||||
<a-button type="primary" class="wenZiJiaCu" style="font-size: 18px;height: 45px;"><RouterLink target='_blank' :to="{path:'/site/qaAddPageXsktpjb',query:{ type: 2, ktId }}">线上课堂评价表</RouterLink></a-button>
|
<a-button type="primary" class="wenZiJiaCu" style="font-size: 18px;height: 45px;"><RouterLink target='_blank' :to="{path:'/site/qaAddPageXsktpjb',query:{ type: 2, ktId }}">线上课堂评价表</RouterLink></a-button>
|
||||||
</a-col> -->
|
</a-col> -->
|
||||||
<a-col :span="8" style="text-align: center;">
|
<a-col :span="12" style="text-align: center" v-if="szkc != '1'">
|
||||||
<a-button type="primary" class="wenZiJiaCu" style="font-size: 18px;height: 45px;"><RouterLink target='_blank' :to="{path:'/site/qaAddPageTkjlb',query:{ type: 3, ktId }}">听课记录表</RouterLink></a-button>
|
<a-button type="primary" class="wenZiJiaCu" style="font-size: 18px; height: 45px"
|
||||||
|
><RouterLink target="_blank" :to="{ path: '/site/qaAddPageTkjlb', query: { type: 3, ktId } }">听课记录表</RouterLink></a-button
|
||||||
|
>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="8" style="text-align: center;">
|
<a-col :span="12" style="text-align: center" v-if="szkc != '1'">
|
||||||
<a-button type="primary" class="wenZiJiaCu" style="font-size: 18px;height: 45px;"><RouterLink target='_blank' :to="{path:'/site/qaAddPageThpjb',query:{ type: 4, ktId }}">同行评价表</RouterLink></a-button>
|
<a-button type="primary" class="wenZiJiaCu" style="font-size: 18px; height: 45px"
|
||||||
|
><RouterLink target="_blank" :to="{ path: '/site/qaAddPageThpjb', query: { type: 4, ktId } }">同行评价表</RouterLink></a-button
|
||||||
|
>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="8" style="text-align: center;">
|
<a-col :span="24" v-if="szkc == '1'" style="text-align: center">
|
||||||
<a-button type="primary" class="wenZiJiaCu" style="font-size: 18px;height: 45px;"><RouterLink target='_blank' :to="{path:'/site/qaAddPageThpjb',query:{ type: 5, ktId }}">思政课听课表</RouterLink></a-button>
|
<a-button type="primary" class="wenZiJiaCu" style="font-size: 18px; height: 45px"
|
||||||
|
><RouterLink target="_blank" :to="{ path: '/site/qaAddPageThpjb', query: { type: 5, ktId } }">思政课评价表</RouterLink></a-button
|
||||||
|
>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
</div>
|
</div>
|
||||||
<p>
|
<div v-if="szkc != '1'">
|
||||||
说明:
|
<p> 说明: </p>
|
||||||
</p>
|
|
||||||
<!-- <p>
|
<!-- <p>
|
||||||
1.线上课堂评价表:是根据线上课堂的特点研制的,如果您听的是线上课堂,请您填写该评价表;如果您同时是该课程所属学科的专家/教师,也欢迎您同时填写《同行评价表》。
|
1.线上课堂评价表:是根据线上课堂的特点研制的,如果您听的是线上课堂,请您填写该评价表;如果您同时是该课程所属学科的专家/教师,也欢迎您同时填写《同行评价表》。
|
||||||
</p> -->
|
</p> -->
|
||||||
<p>
|
<p>
|
||||||
1.听课记录表:是方便行政人员和非该课程所属学科的教师听课使用的评价表,主要用来反映课堂教学的整体情况。
|
1.听课记录表:是方便行政人员和非该课程所属学科的教师听课使用的评价表,主要用来反映课堂教学的整体情况。
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p> 2.同行评价表:是专门为该课程方面的专家/教师听课研制的评价表,更能反映该课堂的教学质量。 </p>
|
||||||
2.同行评价表:是专门为该课程方面的专家/教师听课研制的评价表,更能反映该课堂的教学质量。
|
</div>
|
||||||
</p>
|
|
||||||
</a-card>
|
</a-card>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref, defineExpose } from 'vue';
|
import { ref, defineExpose } from 'vue';
|
||||||
|
|
||||||
let ktId = ref('');
|
let ktId = ref('');
|
||||||
|
let szkc = ref('');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 编辑
|
* 编辑
|
||||||
*/
|
*/
|
||||||
function view( ...data ) {
|
function view(...data) {
|
||||||
let record = data[0]??{};
|
let record = data[0] ?? {};
|
||||||
ktId.value = record.ketangbiaoid
|
console.log('👛', record);
|
||||||
}
|
ktId.value = record.ketangbiaoid;
|
||||||
|
szkc.value = record.szkc;
|
||||||
|
}
|
||||||
|
|
||||||
defineExpose({
|
defineExpose({
|
||||||
view,
|
view,
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
.antd-modal-form {
|
.antd-modal-form {
|
||||||
// min-height: 500px !important;
|
// min-height: 500px !important;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
padding: 24px 24px 24px 24px;
|
padding: 24px 24px 24px 24px;
|
||||||
}
|
}
|
||||||
.p15 {
|
.p15 {
|
||||||
padding: 15px;
|
padding: 15px;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -2,16 +2,16 @@
|
||||||
<a-card class="rowGutter" id="yykcDom">
|
<a-card class="rowGutter" id="yykcDom">
|
||||||
<template #title>
|
<template #title>
|
||||||
<span class="titleName">我的预约</span>
|
<span class="titleName">我的预约</span>
|
||||||
<span class="titleDownload"><a @click="downloadByUrl({url:'/downPath/tkpjb.docx',target: '_self',fileName:'线上教学听课评价表-新.docx'})">线上课堂评价表</a></span>
|
<!-- <span class="titleDownload"><a @click="downloadByUrl({url:'/downPath/tkpjb.docx',target: '_self',fileName:'线上教学听课评价表-新.docx'})">线上课堂评价表</a></span>
|
||||||
<span class="titleDownload"><a @click="downloadByUrl({url:'/downPath/tkjlb.docx',target: '_self',fileName:'东北师范大学听课记录表.docx'})">听课记录表</a></span>
|
<span class="titleDownload"><a @click="downloadByUrl({url:'/downPath/tkjlb.docx',target: '_self',fileName:'东北师范大学听课记录表.docx'})">听课记录表</a></span>
|
||||||
<span class="titleDownload"><a @click="downloadByUrl({url:'/downPath/jxzlpjb.docx',target: '_self',fileName:'东北师范大学本科课堂教学质量评价表(同行专家用)'})">同行评价表</a></span>
|
<span class="titleDownload"><a @click="downloadByUrl({url:'/downPath/jxzlpjb.docx',target: '_self',fileName:'东北师范大学本科课堂教学质量评价表(同行专家用)'})">同行评价表</a></span> -->
|
||||||
<span class="titleDownload">
|
<!-- <span class="titleDownload">
|
||||||
<a-tooltip placement="topLeft">
|
<a-tooltip placement="topLeft">
|
||||||
<template #title>
|
<template #title>
|
||||||
<span>登录后教师可以预约课程,听课完成后可以对课程进行评价,评价有助于快速完成本学期的听课任务</span>
|
<span>登录后教师可以预约课程,听课完成后可以对课程进行评价,评价有助于快速完成本学期的听课任务</span>
|
||||||
</template>
|
</template>
|
||||||
<span class="helpClass">?</span>
|
<span class="helpClass">?</span>
|
||||||
</a-tooltip></span>
|
</a-tooltip></span> -->
|
||||||
<!-- <br> -->
|
<!-- <br> -->
|
||||||
<span class="titleDownload tipClass">当前时间之前的预约课程点击“查看更多”</span>
|
<span class="titleDownload tipClass">当前时间之前的预约课程点击“查看更多”</span>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -37,7 +37,7 @@ export const columnsZyhp: BasicColumn[] = [
|
||||||
{
|
{
|
||||||
title: '作业预览',
|
title: '作业预览',
|
||||||
align: "center",
|
align: "center",
|
||||||
dataIndex: 'pdfPath',
|
dataIndex: 'filePath',
|
||||||
slots: { customRender: 'fileSlot' },
|
slots: { customRender: 'fileSlot' },
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
@ -57,7 +57,7 @@ export const columnsZyhpYhp: BasicColumn[] = [
|
||||||
{
|
{
|
||||||
title: '作业预览',
|
title: '作业预览',
|
||||||
align: "center",
|
align: "center",
|
||||||
dataIndex: 'pdfPath',
|
dataIndex: 'filePath',
|
||||||
slots: { customRender: 'fileSlot' },
|
slots: { customRender: 'fileSlot' },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
@ -2,9 +2,9 @@
|
||||||
<!-- <div style="height: calc(100% - 87px);overflow-y: auto;"> -->
|
<!-- <div style="height: calc(100% - 87px);overflow-y: auto;"> -->
|
||||||
<div>
|
<div>
|
||||||
<!--查询区域-->
|
<!--查询区域-->
|
||||||
<div class="jeecg-basic-table-form-con tainer">
|
<div class="jeecg-basic-table-form-con tainer">
|
||||||
<a-form @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol">
|
<a-form @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||||||
<a-row :gutter="24">
|
<a-row :gutter="24">
|
||||||
<!-- <a-col :lg="8" :sm="24">
|
<!-- <a-col :lg="8" :sm="24">
|
||||||
<a-form-item label="作业名称">
|
<a-form-item label="作业名称">
|
||||||
<a-input placeholder="请输入作业名称" v-model:value="queryParam.zytitle"></a-input>
|
<a-input placeholder="请输入作业名称" v-model:value="queryParam.zytitle"></a-input>
|
||||||
|
@ -15,11 +15,11 @@
|
||||||
<j-input placeholder="请输入学生姓名" v-model:value="queryParam.studentName"></j-input>
|
<j-input placeholder="请输入学生姓名" v-model:value="queryParam.studentName"></j-input>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</a-col> -->
|
</a-col> -->
|
||||||
<a-col :span="24" style="text-align: right;">
|
<a-col :span="24" style="text-align: right">
|
||||||
<span style="overflow: hidden" class="table-page-search-submitButtons">
|
<span style="overflow: hidden" class="table-page-search-submitButtons">
|
||||||
<!-- <a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button> -->
|
<!-- <a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button> -->
|
||||||
<a-button type="primary" @click="handleZyxxDetail" style="margin-right: 8px;;">作业信息</a-button>
|
<a-button type="primary" @click="handleZyxxDetail" style="margin-right: 8px">作业信息</a-button>
|
||||||
<a-button type="primary" @click="handlePfbz" style="margin-right: 8px;;" v-if="zyInfo.sturead == '1' && zyInfo.pfbz">评分标准</a-button>
|
<a-button type="primary" @click="handlePfbz" style="margin-right: 8px" v-if="zyInfo.sturead == '1' && zyInfo.pfbz">评分标准</a-button>
|
||||||
</span>
|
</span>
|
||||||
</a-col>
|
</a-col>
|
||||||
</a-row>
|
</a-row>
|
||||||
|
@ -35,9 +35,7 @@
|
||||||
<template #htmlSlot="{ text }">
|
<template #htmlSlot="{ text }">
|
||||||
<div v-html="text"></div>
|
<div v-html="text"></div>
|
||||||
</template>
|
</template>
|
||||||
<template #stuNameSlot="{ text }">
|
<template #stuNameSlot="{ text }"> 匿名 </template>
|
||||||
匿名
|
|
||||||
</template>
|
|
||||||
<template #sfpfSlot="{ text }">
|
<template #sfpfSlot="{ text }">
|
||||||
<div v-if="text == '0'">否</div>
|
<div v-if="text == '0'">否</div>
|
||||||
<div v-if="text == '1'">是</div>
|
<div v-if="text == '1'">是</div>
|
||||||
|
@ -46,9 +44,11 @@
|
||||||
<!--<template #pcaSlot="{text}">
|
<!--<template #pcaSlot="{text}">
|
||||||
{{ getAreaTextByCode(text) }}
|
{{ getAreaTextByCode(text) }}
|
||||||
</template>-->
|
</template>-->
|
||||||
<template #fileSlot="{ text }">
|
<template #fileSlot="{ text, record }">
|
||||||
<span v-if="!text" style="font-size: 12px; font-style: italic">无文件</span>
|
<span v-if="!text" style="font-size: 12px; font-style: italic">无文件</span>
|
||||||
<a-button v-else :ghost="true" type="primary" preIcon="ant-design:menu-unfold-outlined" size="small" @click="openPdf(text)">预览</a-button>
|
<a-button v-else :ghost="true" type="primary" preIcon="ant-design:menu-unfold-outlined" size="small" @click="openPdf(text, record)"
|
||||||
|
>预览</a-button
|
||||||
|
>
|
||||||
</template>
|
</template>
|
||||||
</BasicTable>
|
</BasicTable>
|
||||||
<!-- 表单区域 -->
|
<!-- 表单区域 -->
|
||||||
|
@ -56,11 +56,17 @@
|
||||||
<ZyInfoDetailModal ref="registerZyxxModal" @success="handleSuccess"></ZyInfoDetailModal>
|
<ZyInfoDetailModal ref="registerZyxxModal" @success="handleSuccess"></ZyInfoDetailModal>
|
||||||
<ZyInfoPfbzModal ref="registerPfbzModal" @success="handleSuccess"></ZyInfoPfbzModal>
|
<ZyInfoPfbzModal ref="registerPfbzModal" @success="handleSuccess"></ZyInfoPfbzModal>
|
||||||
<ZyInfoStudentHpOneModal ref="registerOneModal" @success="handleSuccess"></ZyInfoStudentHpOneModal>
|
<ZyInfoStudentHpOneModal ref="registerOneModal" @success="handleSuccess"></ZyInfoStudentHpOneModal>
|
||||||
|
|
||||||
|
<a-modal v-model:visible="imgvisible" title="图片预览" width="800px" :cancelText="`关闭`" :okButtonProps="{ class: { 'jee-hidden': true } }">
|
||||||
|
<div style="padding: 15px; text-align: center">
|
||||||
|
<img :src="ylimgurl" />
|
||||||
|
</div>
|
||||||
|
</a-modal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" name="zyInfoStudentHp-zyInfoStudentHp" setup>
|
<script lang="ts" name="zyInfoStudentHp-zyInfoStudentHp" setup>
|
||||||
import { ref, reactive, unref,defineExpose,onMounted } from 'vue';
|
import { ref, reactive, unref, defineExpose, onMounted } from 'vue';
|
||||||
import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
import { BasicTable, useTable, TableAction } from '/@/components/Table';
|
||||||
import { useListPage } from '/@/hooks/system/useListPage';
|
import { useListPage } from '/@/hooks/system/useListPage';
|
||||||
import { columns, columnsZyhp } from './ZyInfoStudentHp.data';
|
import { columns, columnsZyhp } from './ZyInfoStudentHp.data';
|
||||||
|
@ -76,6 +82,7 @@ import { useRouter } from 'vue-router';
|
||||||
import { getFileAccessHttpUrl } from '/@/utils/common/compUtils';
|
import { getFileAccessHttpUrl } from '/@/utils/common/compUtils';
|
||||||
import { useGlobSetting } from '/@/hooks/setting';
|
import { useGlobSetting } from '/@/hooks/setting';
|
||||||
import { useMessage } from '/@/hooks/web/useMessage';
|
import { useMessage } from '/@/hooks/web/useMessage';
|
||||||
|
import { encryptByBase64 } from '/@/utils/cipher';
|
||||||
|
|
||||||
const globSetting = useGlobSetting();
|
const globSetting = useGlobSetting();
|
||||||
const baseApiUrl = globSetting.domainUrl;
|
const baseApiUrl = globSetting.domainUrl;
|
||||||
|
@ -84,14 +91,16 @@ const { createMessage } = useMessage();
|
||||||
//当前路由信息
|
//当前路由信息
|
||||||
const { currentRoute } = useRouter();
|
const { currentRoute } = useRouter();
|
||||||
const { query } = unref(currentRoute);
|
const { query } = unref(currentRoute);
|
||||||
const { rwbh, xqxn, type, teano ,mainId,zyStuId} = query; //获取传递参数
|
const { rwbh, xqxn, type, teano, mainId, zyStuId } = query; //获取传递参数
|
||||||
const toggleSearchStatus = ref<boolean>(false);
|
const toggleSearchStatus = ref<boolean>(false);
|
||||||
const queryParam = ref<any>({rwbh,mainId});
|
const queryParam = ref<any>({ rwbh, mainId });
|
||||||
const registerModal = ref();
|
const registerModal = ref();
|
||||||
const registerZyxxModal = ref();
|
const registerZyxxModal = ref();
|
||||||
const registerOneModal = ref();
|
const registerOneModal = ref();
|
||||||
const registerPfbzModal = ref();
|
const registerPfbzModal = ref();
|
||||||
const zyInfo = ref<any>({});
|
const zyInfo = ref<any>({});
|
||||||
|
const imgvisible = ref<boolean>(false);
|
||||||
|
const ylimgurl = ref<any>('');
|
||||||
//注册table数据
|
//注册table数据
|
||||||
const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
|
const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
|
||||||
tableProps: {
|
tableProps: {
|
||||||
|
@ -129,15 +138,31 @@ const wrapperCol = reactive({
|
||||||
sm: { span: 16 },
|
sm: { span: 16 },
|
||||||
});
|
});
|
||||||
|
|
||||||
function openPdf(record) {
|
function openPdf(text, record) {
|
||||||
console.log('🤢', record);
|
console.log('👩👦👦', record);
|
||||||
if (record) {
|
console.log('🤢', text);
|
||||||
var url2 = getFileAccessHttpUrl(record);
|
const parts = text.split('.');
|
||||||
|
const filetype = parts[parts.length - 1];
|
||||||
|
if (filetype == 'jpg' || filetype == 'png' || filetype == 'jpeg' || filetype == 'xls' || filetype == 'xlsx' || filetype == 'text') {
|
||||||
|
imgvisible.value = true;
|
||||||
|
var url2 = getFileAccessHttpUrl(text);
|
||||||
|
console.log('👀', url2);
|
||||||
|
ylimgurl.value = url2;
|
||||||
|
} else if (filetype == 'doc' || filetype == 'docx' || filetype == 'pdf') {
|
||||||
|
var url2 = getFileAccessHttpUrl(record.pdfPath);
|
||||||
let url = baseApiUrl + '/generic/web/viewer.html?file=' + encodeURIComponent(url2);
|
let url = baseApiUrl + '/generic/web/viewer.html?file=' + encodeURIComponent(url2);
|
||||||
window.open(url, '_blank');
|
window.open(url, '_blank');
|
||||||
} else {
|
} else {
|
||||||
createMessage.warning('暂无文件');
|
downloadFile(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if (record) {
|
||||||
|
// var url2 = getFileAccessHttpUrl(record);
|
||||||
|
// let url = baseApiUrl + '/generic/web/viewer.html?file=' + encodeURIComponent(url2);
|
||||||
|
// window.open(url, '_blank');
|
||||||
|
// } else {
|
||||||
|
// createMessage.warning('暂无文件');
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 新增事件
|
* 新增事件
|
||||||
|
@ -147,7 +172,7 @@ function handleAdd() {
|
||||||
registerModal.value.add();
|
registerModal.value.add();
|
||||||
}
|
}
|
||||||
|
|
||||||
function handlePfbz(){
|
function handlePfbz() {
|
||||||
// defHttp.get({ url: '/zyInfo/zyInfo/queryById', params: { id: mainId } }).then((res) => {
|
// defHttp.get({ url: '/zyInfo/zyInfo/queryById', params: { id: mainId } }).then((res) => {
|
||||||
// console.log('😒', res);
|
// console.log('😒', res);
|
||||||
// registerPfbzModal.value.disableSubmit = true;
|
// registerPfbzModal.value.disableSubmit = true;
|
||||||
|
@ -205,34 +230,33 @@ function handleZyxxDetail(record: Recordable) {
|
||||||
// registerZyxxModal.value.disableSubmit = true;
|
// registerZyxxModal.value.disableSubmit = true;
|
||||||
// registerZyxxModal.value.edit(res);
|
// registerZyxxModal.value.edit(res);
|
||||||
// });
|
// });
|
||||||
registerZyxxModal.value.disableSubmit = true;
|
registerZyxxModal.value.disableSubmit = true;
|
||||||
registerZyxxModal.value.edit(zyInfo.value);
|
registerZyxxModal.value.edit(zyInfo.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 操作栏
|
* 操作栏
|
||||||
*/
|
*/
|
||||||
function getTableAction(record) {
|
function getTableAction(record) {
|
||||||
if(record.sfpf == '0'){
|
if (record.sfpf == '0') {
|
||||||
return [
|
return [
|
||||||
// {
|
// {
|
||||||
// label: '作业信息',
|
// label: '作业信息',
|
||||||
// onClick: handleZyxxDetail.bind(null, record),
|
// onClick: handleZyxxDetail.bind(null, record),
|
||||||
// },
|
// },
|
||||||
{
|
{
|
||||||
label: '评分',
|
label: '评分',
|
||||||
onClick: handleOneScore.bind(null, record),
|
onClick: handleOneScore.bind(null, record),
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
}else{
|
} else {
|
||||||
return [
|
return [
|
||||||
// {
|
// {
|
||||||
// label: '作业信息',
|
// label: '作业信息',
|
||||||
// onClick: handleZyxxDetail.bind(null, record),
|
// onClick: handleZyxxDetail.bind(null, record),
|
||||||
// },
|
// },
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -254,8 +278,7 @@ function getDropDownAction(record) {
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
function getZyinfo(){
|
function getZyinfo() {
|
||||||
|
|
||||||
defHttp.get({ url: '/zyInfo/zyInfo/queryById', params: { id: mainId } }).then((res) => {
|
defHttp.get({ url: '/zyInfo/zyInfo/queryById', params: { id: mainId } }).then((res) => {
|
||||||
zyInfo.value = res;
|
zyInfo.value = res;
|
||||||
});
|
});
|
||||||
|
@ -265,7 +288,6 @@ onMounted(() => {
|
||||||
getZyinfo();
|
getZyinfo();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询
|
* 查询
|
||||||
*/
|
*/
|
||||||
|
@ -283,11 +305,9 @@ function searchReset() {
|
||||||
reload();
|
reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
defineExpose({
|
defineExpose({
|
||||||
reload
|
reload,
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
|
|
@ -51,15 +51,23 @@
|
||||||
<!--<template #pcaSlot="{text}">
|
<!--<template #pcaSlot="{text}">
|
||||||
{{ getAreaTextByCode(text) }}
|
{{ getAreaTextByCode(text) }}
|
||||||
</template>-->
|
</template>-->
|
||||||
<template #fileSlot="{ text }">
|
<template #fileSlot="{ text, record }">
|
||||||
<span v-if="!text" style="font-size: 12px; font-style: italic">无文件</span>
|
<span v-if="!text" style="font-size: 12px; font-style: italic">无文件</span>
|
||||||
<a-button v-else :ghost="true" type="primary" preIcon="ant-design:menu-unfold-outlined" size="small" @click="openPdf(text)">预览</a-button>
|
<a-button v-else :ghost="true" type="primary" preIcon="ant-design:menu-unfold-outlined" size="small" @click="openPdf(text, record)"
|
||||||
|
>预览</a-button
|
||||||
|
>
|
||||||
</template>
|
</template>
|
||||||
</BasicTable>
|
</BasicTable>
|
||||||
<!-- 表单区域 -->
|
<!-- 表单区域 -->
|
||||||
<ZyInfoStudentHpModal ref="registerModal" @success="handleSuccess"></ZyInfoStudentHpModal>
|
<ZyInfoStudentHpModal ref="registerModal" @success="handleSuccess"></ZyInfoStudentHpModal>
|
||||||
<ZyInfoDetailModal ref="registerZyxxModal" @success="handleSuccess"></ZyInfoDetailModal>
|
<ZyInfoDetailModal ref="registerZyxxModal" @success="handleSuccess"></ZyInfoDetailModal>
|
||||||
<ZyInfoStudentHpOneModal ref="registerOneModal" @success="handleSuccess"></ZyInfoStudentHpOneModal>
|
<ZyInfoStudentHpOneModal ref="registerOneModal" @success="handleSuccess"></ZyInfoStudentHpOneModal>
|
||||||
|
|
||||||
|
<a-modal v-model:visible="imgvisible" title="图片预览" width="800px" :cancelText="`关闭`" :okButtonProps="{ class: { 'jee-hidden': true } }">
|
||||||
|
<div style="padding: 15px;text-align: center;">
|
||||||
|
<img :src="ylimgurl" />
|
||||||
|
</div>
|
||||||
|
</a-modal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -92,6 +100,8 @@ const queryParam = ref<any>({ rwbh, mainId });
|
||||||
const registerModal = ref();
|
const registerModal = ref();
|
||||||
const registerZyxxModal = ref();
|
const registerZyxxModal = ref();
|
||||||
const registerOneModal = ref();
|
const registerOneModal = ref();
|
||||||
|
const imgvisible = ref<boolean>(false);
|
||||||
|
const ylimgurl = ref<any>('');
|
||||||
//注册table数据
|
//注册table数据
|
||||||
const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
|
const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
|
||||||
tableProps: {
|
tableProps: {
|
||||||
|
@ -129,15 +139,32 @@ const wrapperCol = reactive({
|
||||||
sm: { span: 16 },
|
sm: { span: 16 },
|
||||||
});
|
});
|
||||||
|
|
||||||
function openPdf(record) {
|
function openPdf(text, record) {
|
||||||
console.log('🤢', record);
|
console.log('👩👦👦', record);
|
||||||
if (record) {
|
console.log('🤢', text);
|
||||||
var url2 = getFileAccessHttpUrl(record);
|
const parts = text.split('.');
|
||||||
|
const filetype = parts[parts.length - 1];
|
||||||
|
if (filetype == 'jpg' || filetype == 'png' || filetype == 'jpeg' || filetype == 'xls' || filetype == 'xlsx' || filetype == 'text') {
|
||||||
|
imgvisible.value = true;
|
||||||
|
var url2 = getFileAccessHttpUrl(text);
|
||||||
|
console.log('👀', url2);
|
||||||
|
ylimgurl.value = url2;
|
||||||
|
} else if (filetype == 'doc' || filetype == 'docx' || filetype == 'pdf') {
|
||||||
|
var url2 = getFileAccessHttpUrl(record.pdfPath);
|
||||||
let url = baseApiUrl + '/generic/web/viewer.html?file=' + encodeURIComponent(url2);
|
let url = baseApiUrl + '/generic/web/viewer.html?file=' + encodeURIComponent(url2);
|
||||||
window.open(url, '_blank');
|
window.open(url, '_blank');
|
||||||
} else {
|
} else {
|
||||||
createMessage.warning('暂无文件');
|
downloadFile(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// console.log('🤢', record);
|
||||||
|
// if (record) {
|
||||||
|
// var url2 = getFileAccessHttpUrl(record);
|
||||||
|
// let url = baseApiUrl + '/generic/web/viewer.html?file=' + encodeURIComponent(url2);
|
||||||
|
// window.open(url, '_blank');
|
||||||
|
// } else {
|
||||||
|
// createMessage.warning('暂无文件');
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 新增事件
|
* 新增事件
|
||||||
|
|
Loading…
Reference in New Issue