This commit is contained in:
dongruihua
2023-03-06 09:16:37 +08:00
16 changed files with 94 additions and 128 deletions

View File

@@ -252,12 +252,12 @@
</a-menu-item>
</a-sub-menu>
<a-menu-item key="sub5" v-if="checkMenu('researchmanage')">
<!-- <a-menu-item key="sub5" v-if="checkMenu('researchmanage')">
<div class="imgBox">
<img style="width: 16px; height: 16px" src="../assets/images/navleft/system.png"/>
</div>
<router-link to="/researchmanage">评估管理</router-link>
</a-menu-item>
</a-menu-item> -->
<!-- 2022-12-10注释 后面放开 -->
<!-- <a-menu-item key="sub6" @titleClick="titleClick">
<div class="imgBox">
@@ -502,18 +502,18 @@
mode="inline"
@click="handleClick"
>
<a-menu-item key="sub10" @titleClick="titleClick">
<a-menu-item key="sub10" @titleClick="titleClick" v-if="checkMenu('coursereviewedn')">
<router-link to="/coursereviewedn">审核</router-link>
</a-menu-item>
<a-menu-item key="sub1" @titleClick="titleClick">
<a-menu-item key="sub1" @titleClick="titleClick" v-if="checkMenu('learningpath')">
<router-link to="/learningpath">学习</router-link>
</a-menu-item>
<a-menu-item key="sub2" @titleClick="titleClick">
<a-menu-item key="sub2" @titleClick="titleClick" v-if="checkMenu('projectmanage')">
<router-link to="/projectmanage">项目</router-link>
</a-menu-item>
<a-menu-item key="sub3" @titleClick="titleClick">
<a-menu-item key="sub3" @titleClick="titleClick" v-if="checkMenu('coursewaremanage')">
<router-link to="/coursewaremanage">课程</router-link>
</a-menu-item>
<!-- 2022-12-10注释 后面放开 -->
@@ -521,7 +521,7 @@
<span>考试</span>
</a-menu-item> -->
<a-menu-item key="sub5" @titleClick="titleClick">
<a-menu-item key="sub5" @titleClick="titleClick" v-if="checkMenu('researchmanage')">
<router-link to="/researchmanage">评估</router-link>
</a-menu-item>
<!-- 2022-12-10注释 后面放开 -->
@@ -540,20 +540,20 @@
<span>系统</span>
</a-menu-item> -->
<a-menu-item key="sub11" @titleClick="titleClick">
<a-menu-item key="sub11" @titleClick="titleClick" v-if="checkMenu('examinationcenter')">
<router-link to="/examinationcenter">考试</router-link>
</a-menu-item>
<a-menu-item key="sub12" @titleClick="titleClick">
<a-menu-item key="sub12" @titleClick="titleClick" v-if="checkMenu('casemanage')">
<router-link to="/casemanage">案例</router-link>
</a-menu-item>
<a-menu-item key="sub13" @titleClick="titleClick">
<a-menu-item key="sub13" @titleClick="titleClick" v-if="checkMenu('articlemanage')">
<router-link to="/articlemanage">文章</router-link>
</a-menu-item>
<a-menu-item key="sub14" @titleClick="titleClick">
<a-menu-item key="sub14" @titleClick="titleClick" v-if="checkMenu('qamanage')">
<router-link to="/qamanage">问答</router-link>
</a-menu-item>
<a-menu-item key="sub15" @titleClick="titleClick">
<router-link to="/download">问答</router-link>
<a-menu-item key="sub15" @titleClick="titleClick" v-if="checkMenu('download')">
<router-link to="/download">下载</router-link>
</a-menu-item>
</a-menu>
</div>

View File

@@ -38,11 +38,11 @@
:multiple="false"
@change="handleChange"
:data="{
targetId: Number(courseId),
type: courseType,
userId: userInfo.id,
userName: userInfo.realName,
} "
targetId: Number(courseId),
type: courseType,
userId: userInfo.id,
userName: userInfo.realName,
}"
:showUploadList="false"
>
<p class="ant-upload-drag-icon">
@@ -182,7 +182,7 @@
</template>
<script>
import {computed, reactive, toRefs} from "vue";
import { computed, reactive, toRefs } from "vue";
import { message } from "ant-design-vue";
import * as api from "../../api/index1";
import { BATCH_IMPORT_SCORE } from "@/api/config";
@@ -209,7 +209,8 @@ export default {
locationHref:
location.href.indexOf("http://") !== -1
? "http://43.143.139.204:12016/"
: location.href.slice(0, location.href.indexOf("/m")) + "/upload/",
: location.href.slice(0, location.href.indexOf("/m")) +
process.env.VUE_APP_FILE_PATH,
template: process.env.VUE_APP_UP_LOAD_STUDENT_TEMPLATE,
importStudent:
process.env.VUE_APP_BASE_API + "/admin/student/importStudent",
@@ -226,7 +227,7 @@ export default {
fileName: "",
});
const userInfo = computed(()=>store.state.userInfo)
const userInfo = computed(() => store.state.userInfo);
const closeDrawer = () => {
clearInterval(state.timers);

View File

@@ -46,6 +46,7 @@ import {message} from "ant-design-vue";
import CreateOnline from "@/components/drawers/CreateOnline.vue";
const props = defineProps({
type: Number,
infoType: Number,
courseSyncFlag: Number,
id: Number,

View File

@@ -43,7 +43,7 @@
</div>
<div class="btnbox">
<a-input v-model:value="formData.examinationName" style="width: 400px; height: 40px; border-radius: 8px"
placeholder="请输入考试名称" :maxlength="20" :disabled="taskIndex >= 0 && isEdit" />
placeholder="请输入考试名称" :maxlength="20" />
</div>
</div>
@@ -206,7 +206,7 @@
<span style="margin-right: 3px">考试名称</span>
</div>
<div class="btnbox">
<a-input v-model:value="formData.examinationName" style="width: 400px; height: 40px; border-radius: 8px" :disabled="taskIndex >= 0 && isEdit"
<a-input v-model:value="formData.examinationName" style="width: 400px; height: 40px; border-radius: 8px"
placeholder="请输入考试名称" :maxlength="20" />
</div>
</div>

View File

@@ -67,7 +67,7 @@
<div class="tit">{{ fileName }}</div>
<div class="stateloading">正在上传</div>
</div>
<a-progress :percent="uploadpercent"/>
<a-progress :percent="uploadpercent" />
<!-- <div class="prog">
<div class="inprogloading"></div>
</div> -->
@@ -87,7 +87,7 @@
<div class="tit">{{ fileName }}</div>
<div class="statedefeat">上传失败</div>
</div>
<a-progress :percent="uploadpercent"/>
<a-progress :percent="uploadpercent" />
<!-- <div class="prog">
<div class="inprogdefeat"></div>
</div> -->
@@ -122,7 +122,7 @@
<div class="tit">{{ fileName }}</div>
<div class="statesucce">上传成功</div>
</div>
<a-progress :percent="uploadpercent"/>
<a-progress :percent="uploadpercent" />
<!-- <div class="prog">
<div class="inprogsucce"></div>
</div> -->
@@ -186,15 +186,15 @@
</div>
<!-- 加载动画 -->
<div class="aeLoading" :style="{ display: addLoading ? 'flex' : 'none' }">
<a-spin :spinning="addLoading" tip=""/>
<a-spin :spinning="addLoading" tip="" />
</div>
</a-drawer>
</template>
<script>
import {reactive, toRefs} from "vue";
import {message} from "ant-design-vue";
import { reactive, toRefs } from "vue";
import { message } from "ant-design-vue";
import * as api from "../../api/index1";
import {BATCH_IMPORT_SCORE} from "@/api/config";
import { BATCH_IMPORT_SCORE } from "@/api/config";
export default {
name: "EScore",
@@ -254,7 +254,8 @@ export default {
locationHref:
location.href.indexOf("http://") !== -1
? "http://43.143.139.204:12016/"
: location.href.slice(0, location.href.indexOf("/m")) + "/upload/",
: location.href.slice(0, location.href.indexOf("/m")) +
process.env.VUE_APP_FILE_PATH,
template: process.env.VUE_APP_UP_LOAD_STUDENT_SCORE_TEMPLATE,
});
const closeDrawer = () => {
@@ -392,7 +393,10 @@ export default {
};
function downTemplate() {
window.open(process.env.VUE_APP_FILE_PATH + process.env.VUE_APP_UP_LOAD_STUDENT_SCORE_TEMPLATE);
window.open(
process.env.VUE_APP_FILE_PATH +
process.env.VUE_APP_UP_LOAD_STUDENT_SCORE_TEMPLATE
);
}
return {

View File

@@ -261,7 +261,7 @@ export default {
},
},
setup(props, ctx) {
console.log(1222)
console.log(1222);
const state = reactive({
fileType: ["xls", "xlsx"],
importLeader:
@@ -278,11 +278,11 @@ export default {
locationHref:
location.href.indexOf("http://") !== -1
? "http://43.143.139.204:12016/"
: location.href.slice(0, location.href.indexOf("/m")) + "/upload/",
: location.href.slice(0, location.href.indexOf("/m")) +
process.env.VUE_APP_FILE_PATH,
template: process.env.VUE_APP_UP_LOAD_STUDENT_SCORE_TEMPLATE,
});
const closeDrawer = () => {
ctx.emit("closeDraw", true);
ctx.emit("update:TaskFaceImpStuvisible", false);
state.fileList = [];

View File

@@ -107,28 +107,29 @@
<a-list :data-source="stuValue === 1 ? datascoreg : datascore" :loading="scoreRankLoading">
<template #renderItem="{ item }">
<div class="item">
<div v-if="item.index == 1" class="itemleft">
<div class="itemimage">
<img src="../../assets/images/taskpage/gold.png" />
<div v-if="!isSearchRank">
<div v-if="item.index == 1" class="itemleft">
<div class="itemimage">
<img src="../../assets/images/taskpage/gold.png" />
</div>
<div class="itemid">{{ item.index }}</div>
</div>
<div class="itemid">{{ item.index }}</div>
</div>
<div v-else-if="item.index == 2" class="itemleft">
<div class="itemimage">
<img src="../../assets/images/taskpage/siler.png" />
<div v-else-if="item.index == 2" class="itemleft">
<div class="itemimage">
<img src="../../assets/images/taskpage/siler.png" />
</div>
<div class="itemid">{{ item.index }}</div>
</div>
<div class="itemid">{{ item.index }}</div>
</div>
<div v-else-if="item.index == 3" class="itemleft">
<div class="itemimage">
<img src="../../assets/images/taskpage/copper.png" />
<div v-else-if="item.index == 3" class="itemleft">
<div class="itemimage">
<img src="../../assets/images/taskpage/copper.png" />
</div>
<div class="itemid">{{ item.index }}</div>
</div>
<div v-else class="itemleft">
<div class="elseid">{{ item.index }}</div>
</div>
<div class="itemid">{{ item.index }}</div>
</div>
<div v-else class="itemleft">
<div class="elseid">{{ item.index }}</div>
</div>
<div class="itemcenter">{{ item.name }}</div>
<div class="itemright">{{ item.pointsCountStr }}</div>
</div>
@@ -428,7 +429,8 @@ export default {
checkStuId: null,
proId: null,
startTime: (new Date(new Date(new Date().toLocaleDateString()).getTime())).getTime().toString(),
scoresum: 0
scoresum: 0,
isSearchRank: false
});
const getTableData = () => {
let datas = state.tabledataStu;
@@ -524,6 +526,11 @@ export default {
state.datascore = res.data.data;
state.datascoreg = res.data.data;
state.scoreRankLoading = false;
if(state.searchRankName==""){
state.isSearchRank = false;
}else{
state.isSearchRank = true;
}
}else{
state.datascore = [];
state.datascoreg = [];

View File

@@ -8,7 +8,7 @@
>
<div class="drawerMain">
<!-- 2022-11-30注释 后面放开 -->
<div class="header">
<div class="header">
<div class="headerTitle">批量面授报名</div>
<img
style="width: 29px; height: 29px; cursor: pointer"
@@ -220,11 +220,11 @@ export default {
locationHref:
location.href.indexOf("http://") !== -1
? "http://43.143.139.204:12016/"
: location.href.slice(0, location.href.indexOf("/m")) + "/upload/",
: location.href.slice(0, location.href.indexOf("/m")) +
process.env.VUE_APP_FILE_PATH,
template: process.env.VUE_APP_UP_LOAD_STUDENT_SCORE_TEMPLATE,
});
const closeDrawer = () => {
ctx.emit("closeDraw", true);
ctx.emit("update:TaskFaceImpStuvisible", false);
state.fileList = [];

View File

@@ -39,27 +39,6 @@
/>
</div>
</div>
<!-- <div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">证书</span>
</div>
<div class="btnbox">
<button
class="xkbtn11"
@click="CreateCertificate"
style="margin-top: 0px"
>
创建证书
</button>
</div>
</div> -->
<div class="main_item" style="align-items: flex-start">
<div class="signbox">
<div class="sign">
@@ -141,7 +120,6 @@
class="main_item"
style="
border: 1px solid rgba(0, 0, 0, 0.1);
width: ;
margin-left: 35px;
padding-top: 30px;
margin-top: 0px;
@@ -326,39 +304,11 @@
分可获得当前项目积分为 {{ projectPoints }}
</div>
</div>
<!-- <a-radio v-model:checked="checked" :value="6" >
完成作业
</a-radio>
<br/>
<div style="height:60px;margin-left: 24px;display: flex;align-items: center;">
<a-button style="border:0px solid red;box-shadow: none;">高于</a-button>
<a-input-number id="inputNumber" v-model:value="value" :min="1" :max="100" style="width:70px;" />
<a-button style="border:0px solid red;box-shadow: none;">分可获得证书</a-button>
</div>
<a-radio v-model:checked="checked" :value="7" >
优秀小组长
</a-radio>
<br/>
<div style="height:60px;margin-left: 24px;display: flex;align-items: center;">
<a-button style="border:0px solid red;box-shadow: none;">小组积分高于</a-button>
<a-input-number id="inputNumber" v-model:value="value" :min="1" :max="100" style="width:70px;" />
<a-button style="border:0px solid red;box-shadow: none;">分小组长可获得证书</a-button>
</div>
<a-radio v-model:checked="checked" :value="8" >
考勤按时签到可获得证书
</a-radio> -->
<br />
<div style="height: 40px"></div>
</a-radio-group>
</div>
</div>
<!-- <div class="main_item" style="height: 40px">
<div class="signbox">
<span style="margin-right: 3px"></span>
</div>
<div class="btnbox"></div>
</div> -->
</div>
</div>
<div class="main_btns">
@@ -531,7 +481,7 @@ export default {
const selectStage = (e, k) => {
console.log("选择阶段", e, k);
state.selectStageName = e;
state.selectStageId = k.stageId;
state.selectStageId = k.id;
state.selectTaskName = null;
state.selectTaskId = null;
state.selectExamName = null;
@@ -543,7 +493,7 @@ export default {
state.selectStageName = null;
state.selectStageId = null;
state.selectTaskName = e;
state.selectTaskId = k.projectTaskId;
state.selectTaskId = k.id;
state.selectExamName = null;
state.selectExamId = null;
};
@@ -555,7 +505,7 @@ export default {
state.selectTaskName = null;
state.selectTaskId = null;
state.selectExamName = e;
state.selectExamId = k.projectTaskId;
state.selectExamId = k.id;
};
//选择的获得条件
const selectCondition = (e) => {
@@ -639,19 +589,19 @@ export default {
) {
if (info.finishType == 2) {
let stageItem = state.stageList.filter((item) => {
return item.stageId == info.finishValue;
return item.id == info.finishValue;
});
state.selectStageName = stageItem ? stageItem[0].name : null;
}
if (info.finishType == 3) {
let taskItem = state.taskList.filter((item) => {
return item.projectTaskId == info.finishValue;
return item.id == info.finishValue;
});
state.selectTaskName = taskItem ? taskItem[0].name : null;
}
if (info.finishType == 4) {
let taskItem = state.examList.filter((item) => {
return item.projectTaskId == info.finishValue;
return item.id == info.finishValue;
});
console.log("taskItem", taskItem);
state.selectExamName = taskItem ? taskItem[0].name : null;

View File

@@ -219,14 +219,14 @@
<slot name="extension" v-bind:data="{ record }"></slot>
<a-button
v-if="type === 3 && record.status !== 0 && checkPer(permissions)"
v-if="type === 3 && record.status !== 2 && record.status !== 0 && checkPer(permissions)"
@click="updateStatus(0, record.id)"
type="link"
>通过
</a-button
>
<a-button
v-if="type === 3 && record.status !== 0 && checkPer(permissions)"
v-if="type === 3 && record.status !== 2 && record.status !== 0 && checkPer(permissions)"
@click="updateStatus(2, record.id)"
type="link"
>拒绝

View File

@@ -32,7 +32,7 @@ const admin = [5, 6, 8, 9, 11, 12];
//检查 管理权和归属权
export function checkPer(per) {
if (store?.state?.userInfo?.roleList.some(t => t.code === "learning-admin")) {
if (store?.state?.userInfo?.roleList.some(t => t.code === "system-admin")) {
return true;
}
if (!per) {

View File

@@ -75,7 +75,7 @@
<div class="search"></div>
<div class="btnText">搜索</div>
</div>
<div class="btnn btn2" @click="handleRest1" style="width: 103px">
<div class="btnn btn2" @click="handleRest1" style="width: 110px">
<div class="search"></div>
<div class="btnText">重置</div>
</div>
@@ -757,7 +757,7 @@
<div
class="btnn btn2"
@click="handleRestTable"
style="width: 103px"
style="width: 110px"
>
<div class="search"></div>
<div class="btnText">重置</div>

View File

@@ -372,7 +372,8 @@ export default defineComponent({
locationHref:
location.href.indexOf("http://") !== -1
? "http://43.143.139.204:12016/"
: location.href.slice(0, location.href.indexOf("/m")) + "/upload/",
: location.href.slice(0, location.href.indexOf("/m")) +
process.env.VUE_APP_FILE_PATH,
//目标任务
orgSelect: [],

View File

@@ -713,7 +713,7 @@
v-if="docChecked == true"
v-model:file-list="fileList"
name="file"
action="/manageApi/file/uploadunlimit"
:action="process.env.VUE_APP_BASE_API + '/file/uploadunlimit'"
@change="handleChange"
>
<span
@@ -1629,7 +1629,7 @@ export default {
locationHref:
location.href.indexOf("http://") !== -1
? "http://43.143.139.204:12016/"
: location.href.slice(0, location.href.indexOf("/m")) + "/upload/",
: location.href.slice(0, location.href.indexOf("/m")) + process.env.VUE_APP_FILE_PATH,
isreload: true,
TaskFaceImpStuvisible: false,
});

View File

@@ -623,7 +623,7 @@
v-if="attachSwitch == true"
v-model:file-list="fileList"
name="file"
action="/manageApi/file/uploadunlimit"
:action="process.env.VUE_APP_BASE_API + '/file/uploadunlimit'"
@change="handleChange2"
>
<span

View File

@@ -1299,7 +1299,7 @@
v-if="docChecked == true"
v-model:file-list="fileList"
name="file"
action="/manageApi/file/uploadunlimit"
:action="process.env.VUE_APP_BASE_API + '/file/uploadunlimit'"
@change="handleChange"
>
<span
@@ -1765,7 +1765,7 @@
</div>
<div class="pubtn">
<a-button class="pubtn1" @click="closeModal2">取消</a-button>
<a-button class="pubtn2" @click="createG">确定</a-button>
<a-button class="pubtn2" :loading="buttonLoading" @click="createG">确定</a-button>
</div>
</div>
</a-modal>
@@ -2262,6 +2262,7 @@ export default {
choosedStageIndex: 0,
hasTask: false,
tabFlag: true,
buttonLoading: false,
stage: [],
stuColumns: [
{
@@ -3948,14 +3949,15 @@ export default {
return message.warn(d[0].leaderName + "已是小组长,请重新选择");
}
}
state.isEdit = false;
state.buttonLoading = true;
await editGroup({ ...state.groupInfo, projectId: state.projectId });
message.success(id ? "小组编辑成功" : "小组创建成功");
getGroup();
console.log("state.groupPageList:");
getStu();
closeModal2();
state.buttonLoading = false;
};
//搜索小组重置
const resetGroupName = () => {