From a5f0f6010f5d984c1cf464e0f95d14401cd4934a Mon Sep 17 00:00:00 2001 From: yangjun <1173114630@qq.com> Date: Wed, 23 Oct 2024 19:46:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=B0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user-dropdown/UpdatePassword.vue | 4 + src/views/kc/wjxCswj/WjxCywjV2List.vue | 735 +++++++---------- src/views/kc/wjxWjxx/WjxWjxx.data.ts | 44 ++ src/views/kc/wjxWjxx/YycyList.vue | 225 ++++++ src/views/kc/wjxWjxx/YycyListModal.vue | 80 ++ .../components/WjxWjxxTmlbDjV2Form.vue | 4 +- .../kc/wjxWjxx/components/WjxWjxxTmlbForm.vue | 12 +- .../kc/wjxWjxx/components/YycyxqForm.vue | 739 ++++++++++++++++++ .../kc/wjxWjxx/components/YycyxqModal.vue | 75 ++ src/views/kc/wjxWjxxTmlb/TikuGongyouList.vue | 8 +- src/views/kc/wjxWjxxTmlb/TikuList.vue | 41 +- .../kc/wjxWjxxTmlb/WjdcTikuGongyouList.vue | 7 +- src/views/kc/wjxWjxxTmlb/WjdcTikuList.vue | 7 +- src/views/kc/wjxWjxxTmlb/WjxWjxxTmlb.data.ts | 32 +- .../kc/wjxWjxxTmlb/YinyongTikuDcList.vue | 8 +- src/views/kc/wjxWjxxTmlb/YinyongTikuList.vue | 9 +- .../components/WjxWjxxTmlbForm.vue | 22 +- .../checkKecheng/dqxqkcMain.vue | 29 +- src/views/system/user/user.data.ts | 8 + src/views/zy/jiaoXueDanYuanNeiRong/index.vue | 4 +- .../zy/jiaoXueDanYuanNeiRong/stuIndex.vue | 2 +- src/views/zy/zyInfo/StudentZyInfoList.vue | 2 +- src/views/zy/zyInfo/StudentZyInfoQmksList.vue | 46 +- src/views/zy/zyInfo/YyzyList.vue | 226 ++++++ src/views/zy/zyInfo/YyzyListModal.vue | 80 ++ src/views/zy/zyInfo/ZyInfo.data.ts | 34 + src/views/zy/zyInfo/ZyInfoQimoV2List.vue | 488 ++++++++---- src/views/zy/zyInfo/ZyInfoV2List.vue | 158 ++-- .../zy/zyInfoStudent/ZyInfoStudent.api.ts | 7 + .../components/ZyInfoStudentForm.vue | 2 +- src/views/zy/zyZyxx/ZyZyxxList.vue | 2 +- src/views/zy/zyZyxx/ZyZyxxStudentList.vue | 2 +- 32 files changed, 2412 insertions(+), 730 deletions(-) create mode 100644 src/views/kc/wjxWjxx/YycyList.vue create mode 100644 src/views/kc/wjxWjxx/YycyListModal.vue create mode 100644 src/views/kc/wjxWjxx/components/YycyxqForm.vue create mode 100644 src/views/kc/wjxWjxx/components/YycyxqModal.vue create mode 100644 src/views/zy/zyInfo/YyzyList.vue create mode 100644 src/views/zy/zyInfo/YyzyListModal.vue diff --git a/src/layouts/default/header/components/user-dropdown/UpdatePassword.vue b/src/layouts/default/header/components/user-dropdown/UpdatePassword.vue index 4668c57..207a2a8 100644 --- a/src/layouts/default/header/components/user-dropdown/UpdatePassword.vue +++ b/src/layouts/default/header/components/user-dropdown/UpdatePassword.vue @@ -36,6 +36,10 @@ required: true, message: '请输入新密码', }, + { + pattern: /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/, + message: '密码由8位数字、大小写字母和特殊符号组成!', + }, ], }, { diff --git a/src/views/kc/wjxCswj/WjxCywjV2List.vue b/src/views/kc/wjxCswj/WjxCywjV2List.vue index 93cf359..ff45a9e 100644 --- a/src/views/kc/wjxCswj/WjxCywjV2List.vue +++ b/src/views/kc/wjxCswj/WjxCywjV2List.vue @@ -80,6 +80,9 @@ + 编辑测验 - 布置测验:设置第{{ zyInfo.sort }}次测验内容及要求 @@ -158,23 +161,23 @@

单选单选题

多选多选题

填空填空题

文件文件题

@@ -195,7 +198,7 @@
- {{ index + 1 }}、[单选] + {{ index + 1 }}、[单选题] @@ -235,16 +238,7 @@
- - -
+
是否加入题库: + +
- - 注:选中即为正确答案 @@ -303,7 +263,6 @@ :bordered="false" :disabled="editDisabled" /> - (正确答案) - {{ index + 1 }}、[多选] + {{ index + 1 }}、[多选题] @@ -380,54 +339,10 @@ :disabled="editDisabled" v-if="!editDisabled"/>
- +
是否加入题库: + +
- - 注:选中即为正确答案 @@ -467,20 +382,10 @@
- - - {{ index + 1 }}、[文件] + {{ index + 1 }}、[文件题] @@ -632,76 +498,18 @@
-
- - - + +
是否加入题库: + +
- @@ -763,9 +571,6 @@ > 未完成人数 -
基本信息
@@ -774,8 +579,6 @@
- - 注:选中即为正确答案 @@ -89,7 +92,7 @@
- {{ index + 1 }}、[多选] + {{ index + 1 }}、[多选题] @@ -129,6 +132,9 @@ :auto-size="{ minRows: 1, maxRows: 5 }" :disabled="editDisabled" v-if="!editDisabled"/>
+
是否加入题库: + +
注:选中即为正确答案 @@ -169,7 +175,7 @@
- {{ index + 1 }}、[填空] + {{ index + 1 }}、[填空题] @@ -209,6 +215,9 @@ :auto-size="{ minRows: 1, maxRows: 5 }" :disabled="editDisabled" v-if="!editDisabled"/>
+
是否加入题库: + +
@@ -229,7 +238,7 @@
- {{ index + 1 }}、[文件] + {{ index + 1 }}、[文件题] @@ -269,6 +278,9 @@ :auto-size="{ minRows: 5, maxRows: 5 }" :disabled="editDisabled" v-if="!editDisabled"/>
+
是否加入题库: + +
@@ -293,6 +305,7 @@ import { useMessage } from '/@/hooks/web/useMessage'; import { Form } from 'ant-design-vue'; import JEditor2 from '/@/components/Form/src/jeecg/components/JEditor2.vue'; import draggable from 'vuedraggable'; +import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue'; const useForm = Form.useForm; export default defineComponent({ @@ -301,6 +314,7 @@ export default defineComponent({ JVxeTable, draggable, JEditor2, + JDictSelectTag, }, props: { formDisabled: { diff --git a/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMain.vue b/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMain.vue index 867e009..32df57d 100644 --- a/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMain.vue +++ b/src/views/site/renKeJiaoCheng/checkKecheng/dqxqkcMain.vue @@ -8,12 +8,24 @@
- - - - - - 课程名称:{{kcxxInfo.kcmc}}
+ + + + + + + + 课程名称1:{{kcxxInfo.kcmc}} + + + + + 课程名称1:{{kcxxInfo.kcmc}} + + + + +
@@ -119,4 +131,9 @@ function toggleCollapsed() { } } } +.ellipsis { + white-space: nowrap; /* 确保文本在一行内显示 */ + overflow: hidden; /* 隐藏溢出的内容 */ + text-overflow: ellipsis; /* 使用省略号表示溢出的文本 */ +} diff --git a/src/views/system/user/user.data.ts b/src/views/system/user/user.data.ts index c41c3f9..026a0ff 100644 --- a/src/views/system/user/user.data.ts +++ b/src/views/system/user/user.data.ts @@ -152,6 +152,10 @@ export const formSchema: FormSchema[] = [ required: true, message: '请输入登录密码', }, + { + pattern: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@#$%&*]).{8,}$|^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d).{8,}$|^(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%&*]).{8,}$|^(?=.*[a-z])(?=.*\\d)(?=.*[@#$%&*]).{8,}$|^(?=.*[A-Z])(?=.*\\d)(?=.*[@#$%&*]).{8,}$/, + message: '密码长度要求8位及以上,须由大写字母、小写字母、数字及特殊符号中的三种或三种以上', + }, ], }, { @@ -335,6 +339,10 @@ export const formPasswordSchema: FormSchema[] = [ required: true, message: '请输入登录密码', }, + { + pattern: /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[~!@#$%^&*()_+`\-={}:";'<>?,./]).{8,}$/, + message: '密码由8位数字、大小写字母和特殊符号组成!', + }, ], }, { diff --git a/src/views/zy/jiaoXueDanYuanNeiRong/index.vue b/src/views/zy/jiaoXueDanYuanNeiRong/index.vue index 338ef68..39fab47 100644 --- a/src/views/zy/jiaoXueDanYuanNeiRong/index.vue +++ b/src/views/zy/jiaoXueDanYuanNeiRong/index.vue @@ -819,14 +819,14 @@ async function viewThreePage(three) { // console.log('🤬', file); // let url = getFileAccessHttpUrl(encodeURIComponent(file)); // var t2 = encryptByBase64(url); - // window.open('https://fileview.jeecg.com/onlinePreview?url=' + encodeURIComponent(t2)); + // window.open('https://jxdd.nenu.edu.cn/onlinePreview/onlinePreview?url=' + encodeURIComponent(t2)); // var file = 'https://kczxcs.nenu.edu.cn/jeecg-boot/temp/ylhpsf.pdf'; var file = baseApiUrl + "/"+three.filePath; console.log('🤬', file); // let url = getFileAccessHttpUrl(encodeURIComponent(file)); // var t2 = encryptByBase64(url); - window.open('https://fileview.jeecg.com/onlinePreview?url=' + encodeURIComponent(encryptByBase64(file))); + window.open('https://jxdd.nenu.edu.cn/onlinePreview/onlinePreview?url=' + encodeURIComponent(encryptByBase64(file))); } else if (three.type == 'richText') { diff --git a/src/views/zy/jiaoXueDanYuanNeiRong/stuIndex.vue b/src/views/zy/jiaoXueDanYuanNeiRong/stuIndex.vue index 989a66e..73bb0ad 100644 --- a/src/views/zy/jiaoXueDanYuanNeiRong/stuIndex.vue +++ b/src/views/zy/jiaoXueDanYuanNeiRong/stuIndex.vue @@ -555,7 +555,7 @@ function handleVideo(three){ handleVideo(three); } else if (three.type == 'document') { var file = baseApiUrl + "/"+three.filePath; - window.open('https://fileview.jeecg.com/onlinePreview?url=' + encodeURIComponent(encryptByBase64(file))); + window.open('https://kczxcs.nenu.edu.cn/onlinePreview/onlinePreview?url=' + encodeURIComponent(encryptByBase64(file))); } else if (three.type == 'richText') { threePageOpen.value = true; threePageDisableSubmit.value = true; diff --git a/src/views/zy/zyInfo/StudentZyInfoList.vue b/src/views/zy/zyInfo/StudentZyInfoList.vue index e63de78..09b5f7b 100644 --- a/src/views/zy/zyInfo/StudentZyInfoList.vue +++ b/src/views/zy/zyInfo/StudentZyInfoList.vue @@ -340,7 +340,7 @@ function handlePreview(record) { if(filetype=='jpg' || filetype=='png' || filetype=='jpeg' || filetype=='xls' || filetype=='xlsx' || filetype=='text' ){ var file = baseApiUrl + "/"+record.stuFilePath; console.log('🤬', file); - window.open('https://fileview.jeecg.com/onlinePreview?url=' + encodeURIComponent(encryptByBase64(file))); + window.open('https://jxdd.nenu.edu.cn/onlinePreview/onlinePreview?url=' + encodeURIComponent(encryptByBase64(file))); }else if(filetype=='doc' || filetype=='docx' || filetype=='pdf'){ var url2 = getFileAccessHttpUrl(record.stuPdfPath); let url = baseApiUrl + '/generic/web/viewer.html?file=' + encodeURIComponent(url2); diff --git a/src/views/zy/zyInfo/StudentZyInfoQmksList.vue b/src/views/zy/zyInfo/StudentZyInfoQmksList.vue index e80c54d..1b2040d 100644 --- a/src/views/zy/zyInfo/StudentZyInfoQmksList.vue +++ b/src/views/zy/zyInfo/StudentZyInfoQmksList.vue @@ -4,20 +4,20 @@
-
第{{ item.sort }}次考试(本次考试在总成绩中的占比:{{item.zyzb}}%)
+
第{{ item.sort }}次作业(本次作业在总成绩中的占比:{{item.zyzb}}%)
- +
{{ callText(item) }}
{{ item.title }}{{ item.title }}
- 考试时间:{{ dayjs(item.startTime).format('YYYY.MM.DD HH:mm') }} ~ + 作业时间:{{ dayjs(item.startTime).format('YYYY.MM.DD HH:mm') }} ~ {{ dayjs(item.endTime).format('YYYY.MM.DD HH:mm') }} - 互评时间:{{ dayjs(item.xshpkssj).format('YYYY.MM.DD HH:mm') }} ~ {{ dayjs(item.xshpjssj).format('YYYY.MM.DD HH:mm') }}
@@ -42,11 +42,11 @@ >{{ getCctype(item, '1') }}报告 - 本次考试查重:本次作业查重:{{ getCctype(item, '2') }}报告 - 学校考试库查重:学校作业库查重:{{ getCctype(item, '4') }}报告 @@ -121,6 +121,7 @@ import ZyInfoStudentListModal from '/@/views/zy/zyInfoStudent/ZyInfoStudentListM import ZyInfoStudentModal from '/@/views/zy/zyInfoStudent/components/ZyInfoStudentModal.vue'; import XxhbbksListModal from '/@/views/kc/xxhbbks/XxhbbksListModal.vue'; import { def } from '@vue/shared'; +import { encryptByBase64 } from '/@/utils/cipher'; //当前路由信息 const { currentRoute } = useRouter(); @@ -296,6 +297,7 @@ function classFun(record) { } } function callText(record) { + console.log('record--->',record); if (record.stuscore) { return '已完成'; } else if (record.stuFilePath) { @@ -312,30 +314,42 @@ function handleDetail(record: Recordable) { registerModal.value.edit(record); } -//上传考试附件 +//上传作业附件 function handleShangchuan(record) { let timestamp = new Date().getTime(); let startTimestamp = Date.parse(record.startTime); if (timestamp < startTimestamp) { - createMessage.error('还未到提交考试时间!'); + createMessage.error('还未到提交作业时间!'); return; } let endTimestamp = Date.parse(record.endTime); if (timestamp > endTimestamp) { - createMessage.error('提交考试时间已过!'); + createMessage.error('提交作业时间已过!'); return; } ZyInfoStudentModalPage.value.disableSubmit = false; - var param = { id: record.stuId, zyfj: record.filePath }; + var param = { id: record.id,stuId:record.stuId, zyfj: record.filePath }; + console.log('------->',param); ZyInfoStudentModalPage.value.edit(param); } //预览 function handlePreview(record) { - var url2 = getFileAccessHttpUrl(record.stuPdfPath); - let url = baseApiUrl + '/generic/web/viewer.html?file=' + encodeURIComponent(url2); - window.open(url, '_blank'); + const parts = record.stuFilePath.split('.'); + const filetype = parts[parts.length - 1]; + if(filetype=='jpg' || filetype=='png' || filetype=='jpeg' || filetype=='xls' || filetype=='xlsx' || filetype=='text' ){ + var file = baseApiUrl + "/"+record.stuFilePath; + console.log('🤬', file); + window.open('https://jxdd.nenu.edu.cn/onlinePreview/onlinePreview?url=' + encodeURIComponent(encryptByBase64(file))); + }else if(filetype=='doc' || filetype=='docx' || filetype=='pdf'){ + var url2 = getFileAccessHttpUrl(record.stuPdfPath); + let url = baseApiUrl + '/generic/web/viewer.html?file=' + encodeURIComponent(url2); + window.open(url, '_blank'); + }else{ + createMessage.error('暂不支持该文件预览!'); + } + } function handleDownload(record) { diff --git a/src/views/zy/zyInfo/YyzyList.vue b/src/views/zy/zyInfo/YyzyList.vue new file mode 100644 index 0000000..bea23b3 --- /dev/null +++ b/src/views/zy/zyInfo/YyzyList.vue @@ -0,0 +1,226 @@ + + + + + diff --git a/src/views/zy/zyInfo/YyzyListModal.vue b/src/views/zy/zyInfo/YyzyListModal.vue new file mode 100644 index 0000000..b8a5d6d --- /dev/null +++ b/src/views/zy/zyInfo/YyzyListModal.vue @@ -0,0 +1,80 @@ + + + + + diff --git a/src/views/zy/zyInfo/ZyInfo.data.ts b/src/views/zy/zyInfo/ZyInfo.data.ts index eaf9181..0deac81 100644 --- a/src/views/zy/zyInfo/ZyInfo.data.ts +++ b/src/views/zy/zyInfo/ZyInfo.data.ts @@ -63,6 +63,40 @@ export const columns: BasicColumn[] = [ }, ]; +//列表数据 +export const columns2: BasicColumn[] = [ + { + title: '作业名称', + align: "center", + dataIndex: 'title' + }, + { + title: '开始时间', + align: "center", + dataIndex: 'startTime', + customRender:({text}) =>{ + return !text?"":(text.length>10?text.substr(0,10):text); + }, + }, + { + title: '结束时间', + align: "center", + dataIndex: 'endTime', + customRender:({text}) =>{ + return !text?"":(text.length>10?text.substr(0,10):text); + }, + }, + { + title: '状态', + align: "center", + dataIndex: 'zyStatus_dictText' + }, + { + title: '学年学期', + align: "center", + dataIndex: 'xnxq' + }, +]; //查询数据 export const searchFormSchema: FormSchema[] = [ { diff --git a/src/views/zy/zyInfo/ZyInfoQimoV2List.vue b/src/views/zy/zyInfo/ZyInfoQimoV2List.vue index 2d8fec5..7babd97 100644 --- a/src/views/zy/zyInfo/ZyInfoQimoV2List.vue +++ b/src/views/zy/zyInfo/ZyInfoQimoV2List.vue @@ -35,7 +35,9 @@ 学生修完本课程需要完成的考试次数: - + + 编辑考试 - 布置考试:设置第{{ zyInfo.sort }}次考试内容及要求 @@ -86,7 +89,7 @@
-
基本信息
+
基本信息
@@ -147,7 +150,7 @@
-
温馨提示:点击可编辑考试要求
+
温馨提示:点击可编辑考试要求
@@ -183,7 +186,7 @@
-
学生互评
+
学生互评
每份考试至少互评三次,每个学生互评五份考试。按时完成互评任务的学生,可额外获得最终分数的2%作为互评奖励;互评考试质量高的学生,可额外获得最终分数的5%作为互评奖励。
--> - + 互评成绩为最终成绩 互评成绩作为教师评分的参考成绩 @@ -255,8 +263,23 @@
-
查重设置
- +
查重设置
+ + + + % - +
维普
@@ -276,17 +305,17 @@ 中文科技期刊数据库、硕博学位论文库、高校特色论文库、互联网数据资源/互联网文档资源 - 学校考试库查重
历届学生提供的考试库内查重 + 学校作业库查重
历届学生提供的作业库内查重
- 本次考试查重
本次学生提交的考试间查重 + 本次作业查重
本次学生提交的作业间查重
AIGC
AIGC查重
检测考试是否部分或全部由AI模型生成检测作业是否部分或全部由AI模型生成
@@ -350,10 +379,11 @@ 查询 重置 导出 - 一键发布评分发布成绩 + 上传考核材料 - 温馨提示:考试完成后,请及时发布评分 + 温馨提示:考试完成后,请及时发布评分 @@ -448,37 +478,27 @@ - - - -

尚未布置考试题目及具体要求

+ + + +

尚未布置作业题目及具体要求

- +
{{ item.title }} {{ item.xkxs }}人选课
- +
{{ item.wtjnum }}人待提交
-
-
考试发布时间:{{ item.startTime ? dayjs(item.startTime).format('YYYY.MM.DD HH:mm') : '未设置' }}
-
考试截止时间:{{ dayjs(item.endTime).format('YYYY.MM.DD HH:mm') }}
-
- +
+
作业发布时间:{{ item.startTime ? dayjs(item.startTime).format('YYYY.MM.DD HH:mm') : '未设置' }}
+
作业截止时间:{{ dayjs(item.endTime).format('YYYY.MM.DD HH:mm') }}
+
+
- +
{{ item.title }} {{ item.xkxs }}人选课
-
-
考试发布时间:{{ item.startTime ? dayjs(item.startTime).format('YYYY.MM.DD HH:mm') : '未设置' }}
-
考试截止时间:{{ dayjs(item.endTime).format('YYYY.MM.DD HH:mm') }}
+
+
作业发布时间:{{ item.startTime ? dayjs(item.startTime).format('YYYY.MM.DD HH:mm') : '未设置' }}
+
作业截止时间:{{ dayjs(item.endTime).format('YYYY.MM.DD HH:mm') }}
 
@@ -550,6 +580,7 @@ +
@@ -571,7 +602,7 @@ import JEditor from '/@/components/Form/src/jeecg/components/JEditor.vue'; import dayjs, { Dayjs } from 'dayjs'; import { useListPage } from '/@/hooks/system/useListPage'; import { newcolumns } from '/@/views/zy/zyInfoStudent/ZyInfoStudent.data'; -import { newlist, getExportUrl, batchFabu } from '/@/views/zy/zyInfoStudent/ZyInfoStudent.api'; +import { newlist, getExportUrl, batchFabu, batchFabu2, batchKhcl } from '/@/views/zy/zyInfoStudent/ZyInfoStudent.api'; import { downloadFile } from '/@/utils/common/renderUtils'; import { getFileAccessHttpUrl } from '/@/utils/common/compUtils'; import { useGlobSetting } from '/@/hooks/setting'; @@ -587,6 +618,7 @@ import ZyInfoStudentListModal from '/@/views/zy/zyInfoStudent/ZyInfoStudentListM import ZyInfoStudentModal from '/@/views/zy/zyInfoStudent/components/ZyInfoStudentModal.vue'; import XxhbbksListModal from '/@/views/kc/xxhbbks/XxhbbksListModal.vue'; import ZyInfoEditModal from './components/ZyInfoEditModal.vue'; +import YyzyListModal from '/@/views/zy/zyInfo/YyzyListModal.vue'; const globSetting = useGlobSetting(); const baseApiUrl = globSetting.domainUrl; @@ -633,6 +665,7 @@ const ZyInfoStudentModalPage = ref(); const XxhbbksListModalPage = ref(); const registerEditModal = ref(); const registerDetialModal = ref(); +const YyzyListModalPage = ref(); const pdfUrl = ref('/downPath/ylhpsf.pdf'); //注册table数据 const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({ @@ -675,6 +708,23 @@ const disabledDate = (current: Dayjs) => { }; const useForm = Form.useForm; +//引用作业 +function handleYyzy() { + var params = { xqxn, rwbh }; + YyzyListModalPage.value.disableSubmit = true; + YyzyListModalPage.value.init(params); +} +//引用作业回调 +function handleCallYinyong(record) { + console.log('👯‍♂️', record); + var zysort = zyInfo.value.sort; //防止顺序错误 + var zyid = zyInfo.value.id; //替换原来的id,防止新增 + record.id = zyid; + record.sort = zysort; + record.zyLeixing = '1'; //作业类型,期末考试 + zyInfo.value = record; + console.log('😠', zyInfo); +} function handleXshpkg(record) { console.log('👨‍👧‍👦', record); } @@ -890,31 +940,60 @@ function getTableAction(record) { } } -//发布考试评分 +//发布作业评分 async function batchHandleFabu() { - if (selectedRowKeys.value.length == 0) { - createMessage.warn('请勾选要发布的数据!'); - return; - } - - var datapar2 = rowSelection.selectedRows; - console.log('👌', datapar2); - var sfjx = '0'; - for (var i = 0; i < datapar2.length; i++) { - var score = datapar2[i].score; - if (!score) { - sfjx = '1'; - break; + console.log('🧐', { id: zyInfo.value.id }); + defHttp.post({ url: '/zyInfoStudent/zyInfoStudent/getNoScore', params: { id: zyInfo.value.id } }).then((res) => { + console.log('🦴', res); + var list = res; + console.log('🧚‍♀️', list.length); + if (list.length > 0) { + var studentName = ''; + for (var i = 0; i < list.length; i++) { + studentName = studentName + list[i].studentName + '、'; + } + createConfirm({ + iconType: 'warning', + title: '确认发布', + content: + '当前学生:' + + studentName + + '没有给与评分,若继续发布成绩,学生成绩为0,是否发布成绩数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + batchFabu2({ id: zyInfo.value.id }, handleBatchSuccess); + }, + }); + } else { + createConfirm({ + iconType: 'warning', + title: '确认发布', + content: '是否发布成绩数据', + okText: '确认', + cancelText: '取消', + onOk: () => { + batchFabu2({ id: zyInfo.value.id }, handleBatchSuccess); + }, + }); } - } - if (sfjx == '1') { - createMessage.warning('您有未填写的评分信息,不可一键发布,请检查您的评分数据!'); - return; - } else { - await batchFabu({ ids: selectedRowKeys.value }, reload); - } + }); } +function handleBatchSuccess() { + //正常刷新列表 + reload(); + //提交校内查重记录 + defHttp.post({ url: '/zyInfoStudent/zyInfoStudent/xnccBatchWeipu', params: { id: zyInfo.value.id } }).then((res) => {}); +} + +function batchHandleKhcl() { + if (selectedRowKeys.value.length == 0) { + createMessage.warn('请勾选要上传的数据!'); + return; + } + batchKhcl({ ids: selectedRowKeys.value }, reload); +} // //表单验证 const validatorRules = { @@ -979,38 +1058,38 @@ function handleBatchAdd() { var cjbfb2 = ktcyzb.value; //成绩百分比 var zcj = 0; -var score22 = 0; -if (list.length == 0) { - createMessage.error('作业次数不能为空!'); - return; -} -for (var i = 0; i < list.length; i++) { - console.log('🥵', list); - var score = list[i].score; - if (score == null || score + '' == '') { - createMessage.error('第' + (i + 1) + '次作业占总成绩的百分比不能为空!'); - sfjx = 1; - break; + var score22 = 0; + if (list.length == 0) { + createMessage.error('作业次数不能为空!'); + return; } - if (score < 0 || score > 100) { - createMessage.error('作业成绩百分比必须在0-100之间!'); - sfjx = 1; - break; + for (var i = 0; i < list.length; i++) { + console.log('🥵', list); + var score = list[i].score; + if (score == null || score + '' == '') { + createMessage.error('第' + (i + 1) + '次作业占总成绩的百分比不能为空!'); + sfjx = 1; + break; + } + if (score < 0 || score > 100) { + createMessage.error('作业成绩百分比必须在0-100之间!'); + sfjx = 1; + break; + } + score22 = parseInt(score22) + parseInt(score); + if (score22 > 100) { + createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入'); + sfjx = 1; + break; + } } - score22 = parseInt(score22) + parseInt(score); - if (score22 > 100) { + + zcj = parseInt(score22) + parseInt(cjbfb) + parseInt(cjbfb2); + + if (zcj > 100) { createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入'); sfjx = 1; - break; } -} - -zcj = parseInt(score22)+ parseInt(cjbfb)+ parseInt(cjbfb2); - -if (zcj > 100) { - createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入'); - sfjx = 1; -} if (sfjx == 1) { return; } @@ -1029,9 +1108,9 @@ if (zcj > 100) { }); } -function handleJscjbfb(){ +function handleJscjbfb() { var list = tableData.value; - + var cjbfb = qmkszb.value; //成绩百分比 var cjbfb2 = kczyzb.value; //成绩百分比 var zcj = 0; @@ -1043,7 +1122,7 @@ function handleJscjbfb(){ createMessage.error('第' + (i + 1) + '次作业占总成绩的百分比不能为空!'); break; } - score22 = parseInt(score22)+parseInt(score); + score22 = parseInt(score22) + parseInt(score); if (score < 0 || score > 100) { createMessage.error('作业成绩百分比必须在0-100之间!'); break; @@ -1053,25 +1132,24 @@ function handleJscjbfb(){ break; } } - zcj = parseInt(score22)+ parseInt(cjbfb)+ parseInt(cjbfb2); + zcj = parseInt(score22) + parseInt(cjbfb) + parseInt(cjbfb2); if (zcj > 100) { createMessage.error('作业总的百分比(课程作业占比+期末考试占比+课堂测验占比)已经超过100%,请重新输入'); } } -function handleSzzycs(val){ - +function handleSzzycs(val) { defHttp.get({ url: '/zyInfo/zyInfo/zyzb', params: { rwbh, xqxn, teano, zyLeixing: '1' } }).then((res) => { console.log('😥', res); var list = res; - for(var i = 0; i < list.length; i++){ - if(list[i].zyLeixing == '0'){ - kczyzb.value = list[i].score - }else if(list[i].zyLeixing == '1'){ - qmkszb.value = list[i].score - }else if(list[i].zyLeixing == '2'){ - }else if(list[i].zyLeixing == '3'){ - ktcyzb.value = list[i].score + for (var i = 0; i < list.length; i++) { + if (list[i].zyLeixing == '0') { + kczyzb.value = list[i].score; + } else if (list[i].zyLeixing == '1') { + qmkszb.value = list[i].score; + } else if (list[i].zyLeixing == '2') { + } else if (list[i].zyLeixing == '3') { + ktcyzb.value = list[i].score; } } }); @@ -1079,19 +1157,18 @@ function handleSzzycs(val){ zycs.value = 1; handleZycs(); } - handleShowType(1) + handleShowType(1); } //显示第几个类型模块 function handleShowType(val) { - if(tableData.value.length>0){ + if (tableData.value.length > 0) { zycsDisabled.value = true; - }else{ + } else { zycsDisabled.value = false; } - console.log('👩‍👩‍👧‍👧', zycsDisabled) - - showType.value = val; + console.log('👩‍👩‍👧‍👧', zycsDisabled); + showType.value = val; } //新增一次考试,再最后面添加 function handleAddZycs() { @@ -1120,7 +1197,7 @@ function handleZycs() { rwbh: rwbh, xqxn: xqxn, createBy: teano, - zyLeixing:'1', + zyLeixing: '1', }); } } else if (changeZycs < dataList.length) { @@ -1192,25 +1269,44 @@ async function submitForm() { } var wwtgl = model.wwtgl; + console.log('💂‍♂️', wwtgl); var wwcc = model.wwcc; var xncc = model.xncc; var nwcc = model.nwcc; var aigccc = model.aigccc; console.log('🚶‍♂️', model); - if (wwtgl) { - if ((wwcc == false && xncc == false && nwcc == false && aigccc == false) || (!wwcc && !xncc && !nwcc && !aigccc)) { - createMessage.warning('您设置了检测通过率,但您没有设置查重比对库,请先设置查重比对库!'); - confirmLoading.value = false; - return; + var sfcc = model.sfcc; + console.log('🚶‍♂️', model); + if (sfcc == '1') { + //开启查重再进行验证,否则不进行验证 + if (wwtgl) { + if ((wwcc == false && xncc == false && nwcc == false && aigccc == false) || (!wwcc && !xncc && !nwcc && !aigccc)) { + createMessage.warning('您设置了检测通过率,但您没有设置查重比对库,请先设置查重比对库!'); + confirmLoading.value = false; + return; + } + console.log('1111111111', wwtgl, wwcc, xncc, aigccc); + } else { + console.log('22222222222', wwtgl, wwcc, xncc, aigccc); + if(!wwtgl){ + createMessage.warning('您设置了查重,但您没设置检测通过率,请先设置检测通过率'); + confirmLoading.value = false; + return; + } + + if (wwcc == true || xncc == true || nwcc == true || aigccc == true || wwcc == 'true' || xncc == 'true' || nwcc == 'true' || aigccc == 'true') { + createMessage.warning('您设置了查重比对库,但您没设置检测通过率,请先设置检测通过率'); + confirmLoading.value = false; + return; + } } - console.log('1111111111', wwtgl, wwcc, xncc, aigccc); } else { - console.log('22222222222', wwtgl, wwcc, xncc, aigccc); - if (wwcc == true || xncc == true || nwcc == true || aigccc == true || wwcc == 'true' || xncc == 'true' || nwcc == 'true' || aigccc == 'true') { - createMessage.warning('您设置了查重比对库,但您没设置检测通过率,请先设置检测通过率'); - confirmLoading.value = false; - return; - } + //如果不进行查重,则强制清空查重配置数据 + model.wwtgl = null; + model.wwcc = null; + model.xncc = null; + model.nwcc = null; + model.aigccc = null; } var xshpkssj = model.xshpkssj; @@ -1437,6 +1533,9 @@ function handleEdit(record, type) { if (!record.xssfck) { record.xssfck = '1'; } + if (!record.sfcc) { + record.sfcc = '1'; + } editDisabled.value = type; zyInfo.value = record; dataKhnr.value = []; @@ -1570,7 +1669,7 @@ function handleZySuccess(zyid) { var url = '/zyInfo/zyInfo/editStudent'; defHttp.get({ url: url, params: { id: zyid } }).then((res) => {}); -defHttp.get({ url: '/zyInfo/zyInfo/sendZyWechat', params: { id: zyid } }).then((res) => {}); + defHttp.get({ url: '/zyInfo/zyInfo/sendZyWechat', params: { id: zyid } }).then((res) => {}); } /** @@ -1633,7 +1732,7 @@ onMounted(() => { font-weight: bold; } .title2 { - font-size:16px; + font-size: 16px; font-weight: bold; } .ant-divider-horizontal { @@ -1671,9 +1770,13 @@ onMounted(() => { font-feature-settings: tnum; position: relative; border-radius: 5px; - border: 1px solid #dadada; + border: 1px solid #f0f0f0; background: #f7f7f7; } +.ant-card:hover { + box-sizing: border-box; + box-shadow: 2px 2px 10px 1px #d4d4d4; +} .ant-card-head { min-height: 48px; margin-bottom: -1px; @@ -1701,25 +1804,26 @@ onMounted(() => { font-weight: bold; } .ellip-word { - font-size:12px; + font-size: 12px; color: #666666; margin-right: 10px; } -.ellip-word2{ - font-size:12px; - color: #333; - font-weight: bold; +.ellip-word2 { + font-size: 12px; + color: #333; + font-weight: bold; } .zuanqu:hover { cursor: pointer; color: #18a689; + background: #eff6f4; } .data-suggest { display: flex; flex-direction: column; text-align: center; width: 25%; - margin-right: 3px; + margin-right: 5px; padding: 8px 3px; border-radius: 5px; background: #f7f7f7; @@ -1778,23 +1882,91 @@ onMounted(() => { vertical-align: top; } .bled-countenance { - color: #333333; + color: #666; } .bled-countenance2 { color: #999999; font-size: 12px; } .region { - margin: 5px 10px; + margin: 6px 12px; padding-bottom: 20px; background: #fff; border-radius: 5px; + border: 1px solid #e6e6e6; +} +.region:hover { + margin: 6px 12px; + padding-bottom: 20px; + background: #fff; + border-radius: 5px; + border: 1px solid #e6e6e6; + box-shadow: 2px 2px 10px 1px #d4d4d4; } .region-title { font-size: 16px; - color: #029c88; - padding: 8px 20px; - border-left: 5px solid #029c88; + color: #333; + height: 50px; + line-height: 50px; + border-bottom: 1px solid #e1e4eb; margin-bottom: 20px; + display: flex; +} +.region-title-headline { + display: block; + width: 5px; + height: 16px; + background: #18a689; + border-radius: 6px; + margin-top: 18px; + margin-right: 20px; +} +.module-bg { + background: #fff; + border-radius: 6px; + border: 1px solid #e6e6e6; +} +.home-status { + color: #1ab394; +} +.home-status:hover { + color: #333; +} +.card-label { + background: #81cbbc; + border-radius: 4px; + color: #fff; + padding: 2px 6px; +} +.card-label2 { + background: #84c4fa; + border-radius: 4px; + color: #fff; + padding: 2px 6px; +} +.card-label3 { + background: #fabe84; + border-radius: 4px; + color: #fff; + padding: 2px 6px; +} +.zbClass { + margin-left: 15px; +} +.image-container { + padding: 10px; + width: 100%; /* 设置容器宽度 */ + height: auto; /* 设置容器高度 */ + overflow: hidden; /* 隐藏溢出的部分 */ + display: flex; + align-items: center; + justify-content: center; +} + +.rotated-image { + max-width: 100%; /* 最大宽度为容器宽度 */ + max-height: 100%; /* 最大高度为容器高度 */ + object-fit: contain; /* 保持图片内容不失真 */ + transform: rotate(90deg); /* 假设图片已经旋转90度 */ } diff --git a/src/views/zy/zyInfo/ZyInfoV2List.vue b/src/views/zy/zyInfo/ZyInfoV2List.vue index aa9e80f..0a5a6ef 100644 --- a/src/views/zy/zyInfo/ZyInfoV2List.vue +++ b/src/views/zy/zyInfo/ZyInfoV2List.vue @@ -50,9 +50,7 @@