mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-15 05:46:45 +08:00
Merge branch 'develop' of http://gitlab.dongwu-inc.com:10080/BOE/fe-manage into develop
This commit is contained in:
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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 = [];
|
||||
|
||||
@@ -107,6 +107,7 @@
|
||||
<a-list :data-source="stuValue === 1 ? datascoreg : datascore" :loading="scoreRankLoading">
|
||||
<template #renderItem="{ item }">
|
||||
<div class="item">
|
||||
<div v-if="!isSearchRank">
|
||||
<div v-if="item.index == 1" class="itemleft">
|
||||
<div class="itemimage">
|
||||
<img src="../../assets/images/taskpage/gold.png" />
|
||||
@@ -128,7 +129,7 @@
|
||||
<div v-else class="itemleft">
|
||||
<div class="elseid">{{ item.index }}</div>
|
||||
</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 = [];
|
||||
|
||||
@@ -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 = [];
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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"
|
||||
>拒绝
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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: [],
|
||||
|
||||
@@ -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,
|
||||
});
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 = () => {
|
||||
|
||||
Reference in New Issue
Block a user