dev-QQq
方佳 博 2 years ago
parent b3ce3d8556
commit c8f5d73ef9

@ -148,7 +148,7 @@ export function creatWordCloud(query) {
// 实训任务提交 // 实训任务提交
export function submitTask(data) { export function submitTask(data) {
return request({ return request({
url: '/api/stu/digital/industrialization/practicalTrainingSubmission', url: '/api/userBehavior/practicalTrainingSubmission',
method: 'post', method: 'post',
params:data params:data
}) })

@ -28,7 +28,7 @@ export const uploadBusinessRegistrationCertificate=(data)=> {
//实训任务提交 //实训任务提交
export const submitTrainingTask=(data)=> { export const submitTrainingTask=(data)=> {
return request({ return request({
url: '/api/stu/digital/industrialization/practicalTrainingSubmission', url: '/api/userBehavior/practicalTrainingSubmission',
method: 'post', method: 'post',
params:data params:data
}) })

@ -242,7 +242,7 @@ const submit = () => {
return proxy.$modal.msgWarning("请先完成实训") return proxy.$modal.msgWarning("请先完成实训")
} }
commonality commonality
.submitTask({module:'人工智能',numberOfErrors:errorCount.value>10?10:errorCount.value,taskName:'文字之别OCR',userId:JSON.parse(getUserInfo()).userId}) .submitTask({module:'文字识别',numberOfErrors:errorCount.value>10?10:errorCount.value,taskName:'文字识别',userId:JSON.parse(getUserInfo()).userId})
.then((response) => { .then((response) => {
proxy.$modal.msgSuccess("提交成功"); proxy.$modal.msgSuccess("提交成功");
textDialogVisible.value=false textDialogVisible.value=false

@ -2185,7 +2185,7 @@ p {
width: 84px; width: 84px;
height: 25px; height: 25px;
top: 208px; top: 208px;
left: 204px; left: 200px;
background: #FFFFFF; background: #FFFFFF;
cursor: pointer; cursor: pointer;
border-radius: 5px; border-radius: 5px;

@ -1071,13 +1071,13 @@ const sendTask=async()=>{
module:'数字金融', module:'数字金融',
numberOfErrors:errorNumber > 10 ? 10 : errorNumber, numberOfErrors:errorNumber > 10 ? 10 : errorNumber,
taskName:'数字营销', taskName:'数字营销',
userId:getUserId() userId:JSON.parse(getUserInfo()).userId
} }
const res=await submitTrainingTask(sendData) const res=await submitTrainingTask(sendData)
proxy.$modal.msgSuccess("提交成功!") proxy.$modal.msgSuccess("提交成功!")
handleCloseSend() handleCloseSend()
dialogVisible.value=false dialogVisible.value=false
}catch{} }catch(e){console.log(e);}
} }
const gitListDig=async()=>{ const gitListDig=async()=>{
try{ try{
@ -1192,7 +1192,7 @@ const handleCloseSend=async()=>{
"stepTwoB": null, "stepTwoB": null,
"stepTwoC": null, "stepTwoC": null,
"subState": null, "subState": null,
"userId": getUserId() "userId": JSON.parse(getUserInfo()).userId
} }
const res=await digitalSavesAutomatically(sendData) const res=await digitalSavesAutomatically(sendData)
dialogVisible.value=false dialogVisible.value=false

@ -2,7 +2,7 @@
<div class="app-container2"> <div class="app-container2">
<div class="Hadoop"> <div class="Hadoop">
<div class="left"> <div class="left">
<el-scrollbar height="625px" style="height:93%"> <el-scrollbar height="615px" style="height:93%" ref="scrollbar">
<p>以下是Hadoop的技术框架图请选择相应的组件填入其中</p> <p>以下是Hadoop的技术框架图请选择相应的组件填入其中</p>
<div class="Module"> <div class="Module">
<div class="title"> <div class="title">
@ -142,7 +142,7 @@
</div> </div>
</el-scrollbar> </el-scrollbar>
<div class="dialog-footer"> <div class="dialog-footer" style="margin-top:5px">
<el-button @click="sendTitle()" class="tj">提交任务</el-button> <el-button @click="sendTitle()" class="tj">提交任务</el-button>
<el-button type="primary" @click="startOver" class="cxks"> <el-button type="primary" @click="startOver" class="cxks">
重新开始 重新开始
@ -474,6 +474,7 @@ const clickRadio=async(item1,index1)=>{
} }
}catch{} }catch{}
} }
const scrollbar = ref(null);
const selectIndex=ref(0) const selectIndex=ref(0)
const selectEnglish=(index)=>{ const selectEnglish=(index)=>{
if(selection.value[index-1]!==''){ if(selection.value[index-1]!==''){
@ -481,6 +482,17 @@ const selectEnglish=(index)=>{
} }
isHadoop.value=!isHadoop.value isHadoop.value=!isHadoop.value
selectIndex.value=index selectIndex.value=index
nextTick(() => {
setTimeout(() => {
const scrollContainer = scrollbar.value?.$el.querySelector('.el-scrollbar__wrap');
if (scrollContainer) {
scrollContainer.scrollTo({
top: scrollContainer.scrollHeight,
behavior: 'smooth' //
});
}
}, 100);
});
} }
watch(async()=>{ watch(async()=>{
const sendData={ const sendData={
@ -812,6 +824,8 @@ echoHaop()
div:nth-child(1) { div:nth-child(1) {
width: 270px; width: 270px;
margin-left: 258px; margin-left: 258px;
align-items: center;
display: flex;
} }
div:nth-child(2) { div:nth-child(2) {
display: flex; display: flex;
@ -838,6 +852,9 @@ echoHaop()
line-height: 44px; line-height: 44px;
background: linear-gradient(0deg, #5ea346 0%, #6bba4d 100%); background: linear-gradient(0deg, #5ea346 0%, #6bba4d 100%);
border-radius: 4px; border-radius: 4px;
span{
margin-top: 5px;
}
} }
} }
.right { .right {

@ -248,7 +248,7 @@ import { getUserInfo } from '@/utils/auth'
const sendTask=async()=>{ const sendTask=async()=>{
try{ try{
const sendData={ const sendData={
module:'大数据', module:'大数据技术框架',
numberOfErrors:errorNumber > 10 ? 10 :errorNumber , numberOfErrors:errorNumber > 10 ? 10 :errorNumber ,
taskName:'大数据技术框架', taskName:'大数据技术框架',
userId:JSON.parse(getUserInfo()).userId userId:JSON.parse(getUserInfo()).userId

@ -277,6 +277,7 @@ import { getUserInfo } from '@/utils/auth'
}, },
]); ]);
const error=ref()
const TaskAssessment1 = async (TaskData) => { const TaskAssessment1 = async (TaskData) => {
try { try {
const res = await submitJudgmentResults(TaskData); const res = await submitJudgmentResults(TaskData);
@ -300,7 +301,7 @@ import { getUserInfo } from '@/utils/auth'
module: "什么是大数据", module: "什么是大数据",
topicId: item.topicId, topicId: item.topicId,
type: item.topicType, type: item.topicType,
userId: JSON.parse(getUserInfo()).userId userId: JSON.parse(getUserInfo()).userId,
} }
}) })
newTable.forEach( newTable.forEach(

@ -7,7 +7,7 @@
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
--> -->
<template> <template>
<div class="rgzn_top app-container2"> <div class="rgzn_top app-container">
<div class="top_item"> <div class="top_item">
<el-button :class="{'active':isActive===1}" @click="activeIndex(1)"><img src="@/assets/images/大数据.png">大数据</el-button> <el-button :class="{'active':isActive===1}" @click="activeIndex(1)"><img src="@/assets/images/大数据.png">大数据</el-button>
<el-button :class="{'active':isActive===2}" @click="activeIndex(2)"><img src="@/assets/images/人工智能.png">人工智能</el-button> <el-button :class="{'active':isActive===2}" @click="activeIndex(2)"><img src="@/assets/images/人工智能.png">人工智能</el-button>

@ -293,6 +293,7 @@ onMounted(()=>{
const optionData=()=>{ const optionData=()=>{
API.viewingMetrics({userId:JSON.parse(getUserInfo()).userId,tableName:input.value,algorithmName:'关联规则挖掘'}).then((res)=>{ API.viewingMetrics({userId:JSON.parse(getUserInfo()).userId,tableName:input.value,algorithmName:'关联规则挖掘'}).then((res)=>{
tableData.value=[] tableData.value=[]
input3.value=''
res.data.forEach(element => { res.data.forEach(element => {
tableData.value.push({ tableData.value.push({
text:element text:element

@ -305,6 +305,7 @@ const algorithmicKnowledge=()=>{
const optionData=()=>{ const optionData=()=>{
API.viewingMetrics({userId:JSON.parse(getUserInfo()).userId,tableName:input.value,algorithmName:'聚类分析'}).then((res)=>{ API.viewingMetrics({userId:JSON.parse(getUserInfo()).userId,tableName:input.value,algorithmName:'聚类分析'}).then((res)=>{
tableData.value=[] tableData.value=[]
input3.value=''
res.data.forEach(element => { res.data.forEach(element => {
tableData.value.push({ tableData.value.push({
text:element text:element

@ -116,7 +116,7 @@
<el-table :data="tableData2" style="width: 94%;margin-top:10px" :header-cell-style="headerCellStyle" height="350"> <el-table :data="tableData2" style="width: 94%;margin-top:10px" :header-cell-style="headerCellStyle" height="350">
<el-table-column v-for="column in tableLabel" :key="column.prop" :prop="column.prop" :label="column.label" align="center"/> <el-table-column v-for="column in tableLabel" :key="column.prop" :prop="column.prop" :label="column.label" align="center"/>
</el-table> </el-table>
<el-pagination style="margin-top:10px" background layout="prev, pager, next" :total="1000" /> <!-- <el-pagination style="margin-top:10px" background layout="prev, pager, next" :total="1000" /> -->
</div> </div>
<div class="analysisResults" style="margin-top: 20px"> <div class="analysisResults" style="margin-top: 20px">
<span style="font-weight: bold;font-size: 18px;color: #3596EB;display: block;">分析结果</span> <span style="font-weight: bold;font-size: 18px;color: #3596EB;display: block;">分析结果</span>
@ -282,6 +282,7 @@
const optionData=()=>{ const optionData=()=>{
API.viewingMetrics({userId:JSON.parse(getUserInfo()).userId,tableName:input.value,algorithmName:'回归分析'}).then((res)=>{ API.viewingMetrics({userId:JSON.parse(getUserInfo()).userId,tableName:input.value,algorithmName:'回归分析'}).then((res)=>{
tableData.value=[] tableData.value=[]
input3.value=''
res.data.forEach(element => { res.data.forEach(element => {
tableData.value.push({ tableData.value.push({
text:element text:element

@ -30,30 +30,42 @@
</div> </div>
<!-- action="http://qkljr.sztzjy.com:90/api/stu/concept/block/upload" --> <!-- action="http://qkljr.sztzjy.com:90/api/stu/concept/block/upload" -->
<el-upload ref="uploadRef" class="upload-demo" :file-list="fileList" :auto-upload="false" :on-change="handleChange" :show-file-list="false" multiple="multiple"> <!-- <el-upload ref="uploadRef" class="upload-demo" :file-list="fileList" :auto-upload="false" :on-change="handleChange" :show-file-list="false" multiple="multiple">
<template #trigger> <template #trigger>
<el-button color="#626aef" round> <el-button color="#626aef" round>
<el-icon><UploadFilled /></el-icon> <el-icon><UploadFilled /></el-icon>
点击上传 点击上传
</el-button> </el-button>
</template> </template>
<!-- <div class="reportPromptFile" v-html="item[`${index}`].path"></div> --> </el-upload> -->
</el-upload>
<div class="study_main_but_foot"> <div class="study_main_but_foot">
<el-table :data="tableData2" stripe style="width: 100%" border :header-cell-style="{ background: '#A2C9FF' }"> <el-table :data="tableData2" :span-method="arraySpanMethod2" stripe style="width: 100%" border :header-cell-style="{ background: '#A2C9FF' }">
<el-table-column prop="module" label="模块" width="289" align="center" />
<el-table-column prop="reportName" label="报告名称" width="289" align="center" /> <el-table-column prop="reportName" label="报告名称" width="289" align="center" />
<el-table-column prop="uploadTime" label="上传时间" width="289" align="center" /> <el-table-column prop="uploadTime" label="上传时间" width="289" align="center" />
<el-table-column prop="size" label="文件大小" width="290" align="center" /> <el-table-column prop="fileSize" label="文件大小" width="150" align="center" />
<el-table-column prop="rating" label="评分" width="289" align="center" /> <el-table-column prop="tchScoreuploadTime" label="评分" width="150" align="center" />
<el-table-column label="操作" class="controls" width="286" align="center"> <el-table-column label="操作" class="controls" align="center">
<el-link type="success" @click="uploadReport"> <template #default="scope">
<div style="display:flex;margin-left:10px">
<el-upload class="upload-item" ref="uploadRef" :file-list="fileList" :auto-upload="false" :on-change="(info) => handleChange(info, scope.row)" :show-file-list="false" multiple="multiple">
<template #trigger>
<el-link type="primary">
<el-icon><Plus /></el-icon>
上传
</el-link>
</template>
</el-upload>
<el-link type="success" @click="uploadReport(scope.row.id)">
<el-icon><Download /></el-icon> <el-icon><Download /></el-icon>
下载 下载
</el-link> </el-link>
<el-link type="warning" @click="showComments"> <el-link type="warning" @click="showComments(scope.row)">
<el-icon><Tickets /></el-icon> <el-icon><Tickets /></el-icon>
查看评语 查看评语
</el-link> </el-link>
</div>
</template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
@ -62,7 +74,7 @@
</div> </div>
<el-dialog v-model="dialogVisible" title="评语" width="30%" :before-close="handleClose"> <el-dialog v-model="dialogVisible" title="评语" width="30%" :before-close="handleClose">
<span>{{ tableData2[0].teacherComments }}</span> <span>{{ comments }}</span>
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
<el-button @click="dialogVisible = false">确定</el-button> <el-button @click="dialogVisible = false">确定</el-button>
@ -103,7 +115,209 @@ const arraySpanMethod = ({ row, column, rowIndex, columnIndex }) => {
} }
} }
}; };
const tableData2 = ref([]); const arraySpanMethod2=({
row,
column,
rowIndex,
columnIndex,
})=>{
if (columnIndex === 0) {
if (rowIndex % 3 === 0) {
return {
rowspan: 3,
colspan: 1,
}
} else {
return {
rowspan: 0,
colspan: 0,
}
}
}
}
const tableData2 = ref([
{
module:"AI文生图",
reportName:"",
updateTime:"",
fileSize:"",
id:"",
filePath:"",
tchScore:"",
ascription:"1",
tchComment:""
},{
module:"AI文生图",
reportName:"",
updateTime:"",
fileSize:"",
id:"",
filePath:"",
tchScore:"",
tchComment:"",
ascription:"2",
},{
module:"AI文生图",
reportName:"",
updateTime:"",
fileSize:"",
id:"",
filePath:"",
tchScore:"",
tchComment:"",
ascription:"3",
},{
module:"AI修图",
reportName:"",
updateTime:"",
fileSize:"",
id:"",
filePath:"",
tchScore:"",
tchComment:"",
ascription:"1",
},{
module:"AI修图",
reportName:"",
updateTime:"",
fileSize:"",
id:"",
filePath:"",
tchScore:"",
tchComment:"",
ascription:"2",
},{
module:"AI修图",
reportName:"",
updateTime:"",
fileSize:"",
id:"",
filePath:"",
tchScore:"",
tchComment:"",
ascription:"3",
},{
module:"AI视频",
reportName:"",
updateTime:"",
fileSize:"",
id:"",
filePath:"",
tchScore:"",
tchComment:"",
ascription:"1",
},{
module:"AI视频",
reportName:"",
updateTime:"",
fileSize:"",
id:"",
filePath:"",
tchScore:"",
tchComment:"",
ascription:"2",
},{
module:"AI视频",
reportName:"",
updateTime:"",
fileSize:"",
id:"",
filePath:"",
tchScore:"",
tchComment:"",
ascription:"3",
},{
module:"AI写作",
reportName:"",
updateTime:"",
fileSize:"",
id:"",
filePath:"",
tchScore:"",
tchComment:"",
ascription:"1",
},{
module:"AI写作",
reportName:"",
updateTime:"",
fileSize:"",
id:"",
filePath:"",
tchScore:"",
tchComment:"",
ascription:"2",
},{
module:"AI写作",
reportName:"",
updateTime:"",
fileSize:"",
id:"",
filePath:"",
tchScore:"",
tchComment:"",
ascription:"3",
},{
module:"AI数据分析",
reportName:"",
updateTime:"",
fileSize:"",
id:"",
filePath:"",
tchScore:"",
tchComment:"",
ascription:"1",
},{
module:"AI数据分析",
reportName:"",
updateTime:"",
fileSize:"",
id:"",
filePath:"",
tchScore:"",
tchComment:"",
ascription:"2",
},{
module:"AI数据分析",
reportName:"",
updateTime:"",
fileSize:"",
id:"",
filePath:"",
tchScore:"",
tchComment:"",
ascription:"3",
},{
module:"BI可视化分析",
reportName:"",
updateTime:"",
fileSize:"",
id:"",
filePath:"",
tchScore:"",
tchComment:"",
ascription:"1",
},{
module:"BI可视化分析",
reportName:"",
updateTime:"",
fileSize:"",
id:"",
filePath:"",
tchScore:"",
tchComment:"",
ascription:"2",
},{
module:"BI可视化分析",
reportName:"",
updateTime:"",
fileSize:"",
id:"",
filePath:"",
tchScore:"",
tchComment:"",
ascription:"3",
},
]);
const tableData = ref([]); const tableData = ref([]);
const tableData4 = ref([ const tableData4 = ref([
{ {
@ -191,12 +405,15 @@ const calculateAverageScore = () => {
}; };
const fileList = ref([]); const fileList = ref([]);
const data = ref({ const data = ref({
ascription: "", module: "",
userId: JSON.parse(getUserInfo()).userId, userId: JSON.parse(getUserInfo()).userId,
schoolId: JSON.parse(getUserInfo()).schoolId, schoolId: JSON.parse(getUserInfo()).schoolId,
count:""
}); });
const handleChange = (info) => { const handleChange = (info,rowData) => {
fileList.value.push(info); fileList.value.push(info);
data.value.module=rowData.module
data.value.count=rowData.ascription
let formData2 = new FormData(); let formData2 = new FormData();
formData2.append("file", fileList.value[0].raw); formData2.append("file", fileList.value[0].raw);
formData2.append("stuBlockProduct", JSON.stringify(data.value)); formData2.append("stuBlockProduct", JSON.stringify(data.value));
@ -206,13 +423,37 @@ const handleChange = (info) => {
}); });
}; };
const uploadRef = ref(null); const uploadRef = ref(null);
function padZero(value) {
return value.toString().padStart(2, '0');
}
const formt=(timestamp)=>{
const date = new Date(timestamp);
const year = date.getFullYear();
const month = padZero(date.getMonth() + 1); // 01
const day = padZero(date.getDate());
const hours = padZero(date.getHours());
const minutes = padZero(date.getMinutes());
const seconds = padZero(date.getSeconds());
return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
}
const getReports = () => { const getReports = () => {
API.getDetailsTrainingReport(data.value).then((res) => { API.getDetailsTrainingReport(data.value).then((res) => {
tableData2.value.splice(0, tableData2.value.length); // tableData2.value.splice(0, tableData2.value.length);
if (res.data !== null) { if (res.data !== null) {
tableData2.value.push(res.data); tableData2.value.forEach(item => {
tableData2.value[0].size = tableData2.value[0].size + "kb"; const match = res.data.find(dataItem => dataItem.module === item.module && dataItem.ascription === item.ascription);
if (match) {
item.reportName = match.reportName
item.uploadTime = formt(match.uploadTime);
item.fileSize = (match.size/1024).toFixed(2)+'KB';
item.filePath = match.url;
item.tchScore = match.rating;
item.tchComment = match.teacherComments;
item.id=match.id
}
})
} }
}); });
}; };
@ -222,21 +463,26 @@ const data2 = {
TOKEN: "Bearer " + getToken(), TOKEN: "Bearer " + getToken(),
}; };
// //
const uploadReport = async () => { const uploadReport = async (id) => {
window.open(`http://118.31.7.2:7899/api/stu/concept/block/download?TOKEN= ${"Bearer " + getToken()}&userId=${data2.userId}`); if(!id){
return
}
window.open(`http://192.168.2.16:9868/api/stu/concept/block/download?TOKEN=${'Bearer '+getToken()}&id=${id}`);
// window.open(`http://202.97.179.126:8800/api/stu/concept/block/download?reportName=${tableData2.value[0].reportName}&TOKEN= ${'Bearer '+getToken()}&module=${data2.module}&userId=${data.userId}`) // window.open(`http://202.97.179.126:8800/api/stu/concept/block/download?reportName=${tableData2.value[0].reportName}&TOKEN= ${'Bearer '+getToken()}&module=${data2.module}&userId=${data.userId}`)
// window.open(`http://202.199.90.115:8800/api/stu/concept/block/download?reportName=${tableData2.value[0].reportName}&TOKEN= ${'Bearer '+getToken()}&module=${data2.module}&userId=${data.userId}`) // window.open(`http://202.199.90.115:8800/api/stu/concept/block/download?reportName=${tableData2.value[0].reportName}&TOKEN= ${'Bearer '+getToken()}&module=${data2.module}&userId=${data.userId}`)
}; };
const isUpdate = ref(false); const isUpdate = ref(false);
// //
const showComments = () => { const comments=ref('')
if (tableData2.value.length <= 0) { const showComments = (item) => {
if (!item.tchComment) {
ElMessage({ ElMessage({
message: "暂无评语", message: "暂无评语",
type: "warning", type: "warning",
}); });
return; return;
} }
comments.value=item.tchComment
dialogVisible.value = true; dialogVisible.value = true;
}; };
onMounted(() => { onMounted(() => {
@ -380,10 +626,13 @@ const updateReportGrade = () => {
} }
} }
.is-underline:nth-child(1) { .is-underline:nth-child(1) {
margin-left: 26px; margin-left: 20px;
} }
.is-underline:nth-child(2) { .is-underline:nth-child(2) {
margin-left: 36px; margin-left: 20px;
}
.is-underline:nth-child(3) {
margin-left: 20px;
} }
.study_main_but_foot { .study_main_but_foot {
margin-top: 20px; margin-top: 20px;
@ -423,4 +672,11 @@ const updateReportGrade = () => {
font-family: "微软雅黑"; font-family: "微软雅黑";
font-weight: 300; font-weight: 300;
} }
.upload-item{
display: inline;
height: 23px !important;
:deep(.el-upload){
align-items:flex-end !important;
}
}
</style> </style>

Loading…
Cancel
Save