Merge remote-tracking branch 'origin/manage-release' into release

This commit is contained in:
yujicun
2022-12-27 09:44:55 +08:00
17 changed files with 6982 additions and 6895 deletions

View File

@@ -29,6 +29,7 @@ export const studentProcess = (obj) => http.get('/admin/project/studentProcess',
//是否优秀学员
export const topStudent = (obj) => http.post('/admin/project/topStudent', obj)
export const updateStudent = (obj) => http.post('/admin/student/updateStudent', obj)
//项目概览
export const overview = (obj) => http.get('/admin/project/overview', { params: obj })

View File

@@ -264,7 +264,7 @@ export default {
workEnclosureAddress: state.attach
? state.attach
: "",
workId: props.edit ? props.EditWorkId : 0,
workId: props.EditWorkId >0 ? props.EditWorkId:0 ,
workName: state.name,
workRequirement: state.workRequirement,
};

View File

@@ -538,11 +538,13 @@ export default {
//TODO缺少paperName字段
state.test.examinationTestName = state.paperName;
//考试推送
state.test.targetId = 0;
state.test.type = 0;
if (props.isLevel == 1) {
state.test.targetId = props.routerId;
state.test.type = 2;
state.test.targetId = 0;
state.test.type = 0;
state.test.chapterId=0;
if(props.isLevel == 1){
state.test.targetId = props.routerId;
state.test.chapterId = props.isactive;
state.test.type = 2;
} else if (props.isLevel == 2) {
state.test.targetId = props.projectId;

View File

@@ -39,7 +39,7 @@
<div class="set_content">
<div class="setc_name"><span>资源归属</span></div>
<div class="setc_main">
<span style="color: #999999">{{ projectInfo.sourceBelongName }}</span>
<span style="color: #999999">{{ (projectInfo.sourceBelongFullName || '')+projectInfo.sourceBelongName }}</span>
</div>
</div>
<div class="set_content">

View File

@@ -15,7 +15,8 @@
@click="closeDrawer"
/>
</div>
<div class="main">
<a-spin v-if="loading" :spinning="loading"/>
<div v-if="!loading" class="main">
<div class="stuinfor">
<div class="portrait">
<img src="../../assets/images/studentimg/character.png" />
@@ -176,6 +177,7 @@ export default {
},
setup(props, ctx) {
const state = reactive({
loading:false,
userName: null, //用户名
deptName: null, //部门
jobName: null, //岗位
@@ -302,11 +304,13 @@ export default {
state.stageList = array;
};
const check = () => {
state.loading = true
let obj = {
projectId: 37,
studentId: 3,
projectId: props.projectId,
studentId: props.checkStuId,
};
studentProcess(obj).then((res) => {
state.loading = false
console.log("查看了学员", res.data.data);
let result = res.data.data;
state.userName = result.userInfoBo.userName;

View File

@@ -43,9 +43,9 @@ const id = computed(() => {
return props.value
})
function change(key, obj) {
console.log(obj[0], key, props.value);
function change(key, obj, {triggerNode: {props: {namePath}}}) {
emit('update:name', obj[0])
emit('update:fullName', namePath)
emit('update:value', key)
}

View File

@@ -107,7 +107,7 @@ function change(e, l) {
memberParam.value.page = 1
isOpen.value = false
Array.isArray(l) && (selectOptions.value = l)
Array.isArray(selectOptions.value) && emit('onChange', e, l, selectOptions.value.find(e => e.departId)?.departId, selectOptions.value.find(e => e.departId)?.departName)
Array.isArray(selectOptions.value) && emit('onChange', e, l, selectOptions.value.find(e => e.departId)?.departId, selectOptions.value.find(e => e.departId)?.departName, selectOptions.value.find(e => e.departId)?.orgName)
if (Array.isArray(l)) {
emit('update:name', l.map(t => t.label).join(','))
emit('update:value', l.map(t => t.value).join(','))

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -76,13 +76,13 @@
</div>
</div>
</div>
<div class="mbl_items" v-if="detail.sceneId">
<div class="mbl_items" v-if="detail.sceneContent">
<div class="item_nam">
<span style="margin-right: 14px">场景</span>
</div>
<div class="item_inp">
<div class="select i7_input">
{{ filterSenceTxt(detail.sceneId) }}
{{ detail.sceneContent }}
</div>
</div>
</div>
@@ -123,10 +123,10 @@
<div class="i12_box1" style="position: relative" v-for="(item, index) in detail.attach" :key="index">
<div class="file_img">
<img v-if="
item.indexOf('jpg') !== -1 ||
item.indexOf('jpeg') !== -1 ||
item.indexOf('png') !== -1
" src="@/assets/images/coursewareManage/pngpic.png" />
item.indexOf('jpg') !== -1 ||
item.indexOf('jpeg') !== -1 ||
item.indexOf('png') !== -1
" src="@/assets/images/coursewareManage/pngpic.png" />
<div v-else>
<img v-if="item.indexOf('doc') !== -1" src="@/assets/images/coursewareManage/docpic.png" />
<div v-else>
@@ -160,13 +160,13 @@
left: 72px;
">
{{
item.indexOf("-") !== -1
? item.slice(
item.lastIndexOf("/") + 1,
item.lastIndexOf("-")
) + item.slice(item.lastIndexOf("."))
: item
}}
item.indexOf("-") !== -1
? item.slice(
item.lastIndexOf("/") + 1,
item.lastIndexOf("-")
) + item.slice(item.lastIndexOf("."))
: item
}}
</span>
</div>

View File

@@ -154,10 +154,10 @@
<!-- />-->
<a-tree-select style="width: 440px" placeholder="请选择内容分类" :treeDefaultExpandAll="true"
:getPopupContainer="
(triggerNode) => {
return triggerNode.parentNode || document.body;
}
" @change="changeTreeSelectValue" v-model:value="fen_lei" :tree-data="options2222">
(triggerNode) => {
return triggerNode.parentNode || document.body;
}
" @change="changeTreeSelectValue" v-model:value="fen_lei" :tree-data="options2222">
</a-tree-select>
</div>
</div>
@@ -192,26 +192,34 @@
</div>
</div>
</div>
<!--
<div class="mbl_items">
<div class="item_nam">
<span style="margin-right: 14px">场景</span>
</div>
<div class="item_inp">
<div class="select i7_input">
<a-select :getPopupContainer="
(triggerNode) => {
return triggerNode.parentNode || document.body;
}
" v-model:value="chang_jin" dropdownClassName="dropdown-style" style="width: 440px" placeholder="请选择"
:options="options3" allowClear showSearch />
<div class="i1_input">
<a-input v-model:value="chang_jin" maxlength="50"
style="width: 440px; height: 40px; border-radius: 8px" placeholder="请输入场景" />
<div class="inp_num">
<span style="color: #c7cbd2">
{{ chang_jin.length }}/50
</span>
</div>
</div>
</div>
<!-- <div class="item_inp">
<div class="select i7_input">
<a-select :getPopupContainer="
(triggerNode) => {
return triggerNode.parentNode || document.body;
}
" v-model:value="chang_jin" dropdownClassName="dropdown-style" style="width: 440px" placeholder="请选择"
:options="options3" allowClear showSearch />
</div>
</div> -->
</div>
-->
<div class="mbl_items">
<div class="item_nam">
<span style="margin-right: 14px">内容标签</span>
@@ -359,7 +367,7 @@ export default defineComponent({
fen_lei: null,
fen_lei1: null,
feng_mian_1: null,
chang_jin: null,
chang_jin: "",
tags_val_single: "",
tags_val: [],
qdms_inputV6: "",
@@ -564,7 +572,7 @@ export default defineComponent({
state.fen_lei = null;
state.fen_lei1 = null;
state.feng_mian_1 = null;
state.chang_jin = null;
state.chang_jin = "";
state.tags_val_single = "";
state.tags_val = [];
state.qdms_inputV6 = "";
@@ -751,7 +759,7 @@ export default defineComponent({
targetUser: state.qdms_inputV2,
meaning: state.qdms_inputV3,
categoryId: state.fen_lei,
sceneId: state.chang_jin,
sceneContent: state.chang_jin,
tips: state.tags_val ? state.tags_val.join(",") : null,
teacherId: state.member.value,
teacher: state.member.name,
@@ -841,7 +849,7 @@ export default defineComponent({
state.qdms_inputV3 = item.meaning;
state.fen_lei = String(item.categoryId);
state.fen_lei1 = changeTreeSelectValue(String(item.categoryId));
state.chang_jin = String(item.sceneId);
state.chang_jin = String(item.sceneContent ? item.sceneContent : '');
state.tags_val = item.tips ? item.tips.split(",") : [];
state.qdms_inputV6 = item.intro;
state.member = { value: item.teacherId, name: item.teacher };

View File

@@ -536,7 +536,7 @@
<div class="setc_name"><span>资源归属</span></div>
<div class="setc_main">
<span style="color: #999999">{{
projectInfo.sourceBelongName
(projectInfo.sourceBelongFullName || '') + projectInfo.sourceBelongName
}}</span>
</div>
</div>

View File

@@ -3,14 +3,15 @@
<div class="projectAdd">
<div class="header">
<span class="title"
>{{ projectInfo.projectId ? "编辑" : "创建"
>{{
projectInfo.projectId ? "编辑" : "创建"
}}{{ ptojectType == "3" ? "班级" : "项目" }}</span
>
<div
@click="backPage"
style="cursor: pointer"
to="/projectmanage"
class="goback"
@click="backPage"
style="cursor: pointer"
to="/projectmanage"
class="goback"
>
<span class="return"></span><span class="returntext">返回</span>
</div>
@@ -20,8 +21,8 @@
<div class="name" v-if="projectInfo.parentName">
<div class="namebox">
<img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">项目归属</div>
</div>
@@ -34,8 +35,8 @@
<div class="name">
<div class="namebox">
<img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">
{{ ptojectType == 3 ? "班级名称" : "项目名称" }}
@@ -43,27 +44,27 @@
</div>
<div class="in">
<NameInput
placeholder="请输入项目名称"
v-model:value="projectInfo.name"
v-model:validate="projectInfo.validate"
:maxlength="30"
show-count
:id="projectInfo.projectId"
placeholder="请输入项目名称"
v-model:value="projectInfo.name"
v-model:validate="projectInfo.validate"
:maxlength="30"
show-count
:id="projectInfo.projectId"
></NameInput>
</div>
</div>
<div class="name flex-top">
<div class="namebox" style="margin-top: 10px">
<img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">封面图</div>
</div>
<div class="in select" style="flex: 1; display: flex">
<div
:class="`box ${projectInfo.picUrl === src.value ? 'active' : ''}`"
style="
:class="`box ${projectInfo.picUrl === src.value ? 'active' : ''}`"
style="
width: 100px;
height: 100px;
border-radius: 5px;
@@ -71,19 +72,19 @@
position: relative;
overflow: hidden;
"
v-for="(src, index) in projectPic"
:key="index"
@click="() => (projectInfo.picUrl = src.value)"
v-for="(src, index) in projectPic"
:key="index"
@click="() => (projectInfo.picUrl = src.value)"
>
<img
style="
style="
width: 100px;
height: 100px;
margin-bottom: 4px;
margin-right: 4px;
"
:src="src.value"
alt="avatar"
:src="src.value"
alt="avatar"
/>
</div>
</div>
@@ -91,64 +92,65 @@
<div class="name">
<div class="namebox">
<img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">项目时间</div>
</div>
<div class="in">
<a-range-picker
separator="至"
:show-time="{ format: 'HH:mm' }"
:placeholder="[' 开始时间', ' 结束时间']"
:disabled-date="disabledDate"
v-model:value="projectInfo.rangeTime"
style="width: 100%; height: 40px; border-radius: 5px"
valueFormat="YYYY-MM-DD HH:mm"
@change="timeChange"
:disabled="viewDetail ? true : false"
separator="至"
:show-time="{ format: 'HH:mm' }"
:placeholder="[' 开始时间', ' 结束时间']"
:disabled-date="disabledDate"
v-model:value="projectInfo.rangeTime"
style="width: 100%; height: 40px; border-radius: 5px"
valueFormat="YYYY-MM-DD HH:mm"
@change="timeChange"
:disabled="viewDetail ? true : false"
/>
</div>
</div>
<div class="name">
<div class="namebox">
<img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">项目经理</div>
</div>
<div class="in">
<ProjectManager
v-model:value="projectInfo.managerId"
v-model:name="projectInfo.manager"
@onChange="managerChange"
mode="multiple"
v-model:value="projectInfo.managerId"
v-model:name="projectInfo.manager"
@onChange="managerChange"
mode="multiple"
></ProjectManager>
</div>
</div>
<div class="name">
<div class="namebox">
<img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">资源归属</div>
</div>
<div class="in select">
<OrgClass
v-model:value="projectInfo.sourceBelongId"
v-model:name="projectInfo.sourceBelongName"
v-model:value="projectInfo.sourceBelongId"
v-model:name="projectInfo.sourceBelongName"
v-model:fullName="projectInfo.sourceBelongFullName"
></OrgClass>
</div>
</div>
<div class="name">
<div class="namebox">
<img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">项目级别</div>
</div>
@@ -159,8 +161,8 @@
<div class="name">
<div class="namebox">
<img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">培训分类</div>
</div>
@@ -171,15 +173,15 @@
<div class="name">
<div class="namebox">
<img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">是否BOEU实施</div>
</div>
<div class="in">
<a-radio-group
v-model:value="projectInfo.boeFlag"
:disabled="viewDetail ? true : false"
v-model:value="projectInfo.boeFlag"
:disabled="viewDetail ? true : false"
>
<a-radio :style="radioStyle" :value="1"></a-radio>
<a-radio :style="radioStyle" :value="0"></a-radio>
@@ -192,16 +194,16 @@
</div>
<div class="in">
<a-checkbox
v-model:checked="courseSyncFlag"
:disabled="viewDetail ? true : false"
><span
v-model:checked="courseSyncFlag"
:disabled="viewDetail ? true : false"
><span
style="
width: 100%;
color: rgba(109, 117, 132, 1);
font-size: 14px;
"
>同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span
></a-checkbox
>同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span
></a-checkbox
>
</div>
</div>
@@ -211,12 +213,12 @@
</div>
<div class="in">
<a-textarea
v-model:value="projectInfo.remark"
style="height: 80px"
placeholder="请输入说明"
show-count
:maxlength="200"
:disabled="viewDetail ? true : false"
v-model:value="projectInfo.remark"
style="height: 80px"
placeholder="请输入说明"
show-count
:maxlength="200"
:disabled="viewDetail ? true : false"
/>
</div>
</div>
@@ -235,18 +237,18 @@
<div class="inname" style="width: 50px">模版</div>
<div class="in select" style="margin-left: 2px">
<a-select
:getPopupContainer="
:getPopupContainer="
(triggerNode) => {
return triggerNode.parentNode || document.body;
}
"
placeholder="请选择模版"
:size="size"
style="width: 100%"
:options="classifyList5"
@change="classificationChange5"
@popupScroll="templateScroll"
:fieldNames="{
placeholder="请选择模版"
:size="size"
style="width: 100%"
:options="classifyList5"
@change="classificationChange5"
@popupScroll="templateScroll"
:fieldNames="{
label: 'name',
value: 'projectTemplateId',
}"
@@ -260,33 +262,33 @@
<div class="btn">
<a-button @click="backPage" class="btn2">取消</a-button>
<a-button
:loading="loading"
v-on:click="createProject"
type="primary"
class="btn1"
style="margin-left: 20px"
>确定
:loading="loading"
v-on:click="createProject"
type="primary"
class="btn1"
style="margin-left: 20px"
>确定
</a-button>
</div>
</div>
</div>
</template>
<script>
import { onMounted, reactive, toRefs, watch } from "vue";
import { message } from "ant-design-vue";
import { useRoute, useRouter } from "vue-router";
import {onMounted, reactive, toRefs, watch} from "vue";
import {message} from "ant-design-vue";
import {useRoute, useRouter} from "vue-router";
import * as api from "../../api/index";
import { useStore } from "vuex";
import {useStore} from "vuex";
// import ProjectClass from "@/components/project/ProjectClass";
import TrainClass from "@/components/project/TrainClass";
import OrgClass from "@/components/project/OrgClass";
import ProjectManager from "@/components/project/ProjectManagerNew";
import NameInput from "@/components/project/NameInput";
import ProjectLevel from "@/components/project/ProjectLevel";
import { changeOwnership, scrollLoad } from "@/api/method";
import { storage } from "../../api/storage";
import {changeOwnership, scrollLoad} from "@/api/method";
import {storage} from "../../api/storage";
import * as api2 from "../../api/indexAudit";
import { validateName } from "@/api/index1";
import {validateName} from "@/api/index1";
import dayjs from "dayjs";
export default {
@@ -304,7 +306,7 @@ export default {
const routers = useRoute();
const router = useRouter();
const state = reactive({
loading:false,
loading: false,
currentPage: 1, //当前页
tableDataTotal: -1, //模版列表总数
pageSize: 10, //每页10条数据
@@ -351,10 +353,10 @@ export default {
state.projectInfo.parentId = routers.query.parentId;
state.projectInfo.projectId = routers.query.projectId;
(state.projectInfo.projectId || state.projectInfo.parentId) &&
api
api
.getProjectDetail({
projectId:
state.projectInfo.projectId || state.projectInfo.parentId,
state.projectInfo.projectId || state.projectInfo.parentId,
})
.then((res) => {
state.projectInfo = {
@@ -380,8 +382,8 @@ export default {
if (res.rows && res.rows.length > 0) {
let i = res.rows.length;
state.auditDescription = res.rows[i - 1].description
? res.rows[i - 1].description
: "-";
? res.rows[i - 1].description
: "-";
}
}
});
@@ -490,24 +492,26 @@ export default {
api.createProject(state.projectInfo).then((res) => {
state.loading = false
state.projectInfo.projectId ||
changeOwnership("project", res.data.data.projectId, [
{ id: res.data.data.createId, name: res.data.data.createName },
]);
changeOwnership("project", res.data.data.projectId, [
{id: res.data.data.createId, name: res.data.data.createName},
]);
message.destroy();
message.success(state.projectInfo.projectId ? "编辑成功" : "创建成功");
// router.back();
router.push({
path: "/taskpage",
query: { projectId: res.data.data.projectId },
query: {projectId: res.data.data.projectId},
});
storage.set("projectId", res.data.data.projectId);
});
};
function managerChange(e, l, d, t) {
function managerChange(e, l, d, t, orgName) {
state.projectInfo.sourceBelongId = d
state.projectInfo.sourceBelongName = t
state.projectInfo.sourceBelongFullName = orgName
}
const disabledDate = (current) => {
return current && current < dayjs().startOf('day');
};

View File

@@ -231,6 +231,7 @@
<OrgClass
v-model:value="projectInfo.sourceBelongId"
v-model:name="projectInfo.sourceBelongName"
v-model:fullName="projectInfo.sourceBelongFullName"
></OrgClass>
</div>
</div>
@@ -1229,22 +1230,13 @@ export default {
};
//确认复制
const copyProject = () => {
let obj = {
state.tableLoading = true
api.handleProject({
projectId: state.copyProjectId,
type: 2,
};
api
.handleProject(obj)
.then((res) => {
console.log("复制成功", res);
message.destroy();
message.success("复制成功");
state.copyModal = false;
getTableDate();
})
.catch((err) => {
console.log("复制失败", err);
});
}).then(() => getTableDate())
message.success("复制成功");
state.copyModal = false;
};
//打开提交审核弹窗
const showReviewModal = (projectId) => {
@@ -1803,9 +1795,10 @@ export default {
}
);
function managerChange(e, l, d, t) {
function managerChange(e, l, d, t,orgName) {
state.projectInfo.sourceBelongId = d
state.projectInfo.sourceBelongName = t
state.projectInfo.sourceBelongFullName = orgName
}
return {

View File

@@ -83,7 +83,7 @@
</div>
<div class="in select">
<OrgClass v-model:value="projectInfo.sourceBelongId" v-model:name="projectInfo.sourceBelongName"></OrgClass>
<OrgClass v-model:value="projectInfo.sourceBelongId" v-model:name="projectInfo.sourceBelongName" v-model:fullName="projectInfo.sourceBelongFullName"></OrgClass>
</div>
</div>
<div class="name">
@@ -313,9 +313,10 @@ export default {
});
};
function managerChange(e, l, d, t) {
function managerChange(e, l, d, t,orgName) {
state.projectInfo.sourceBelongId = d
state.projectInfo.sourceBelongName = t
state.projectInfo.sourceBelongFullName = orgName
}
const disabledDate = (current) => {
return current && current < dayjs().startOf('day');

View File

@@ -688,7 +688,7 @@
<div style="display: flex; height: 20px"></div>
</div>
</a-tab-pane>
<a-tab-pane key="3" tab="学员">
<div class="split"></div>
<div class="content3">
@@ -700,7 +700,24 @@
:columns="stuColumns"
:stage="stage"
:visable ="tabFlag"
></TableStudent>
>
<template #extension="{data:{record}}">
<div style="display:flex">
<div
@click="showStudent(record)"
style="color: #4ea6ff; font-size: 14px; text-align: center;margin-left: 20px;cursor: pointer;"
>
查看
</div>
<div
@click="settingTopFlag(record)"
style="color: #4ea6ff; font-size: 14px; text-align: center;margin-left: 20px;cursor: pointer;"
>
{{record.topFlag?'取消优秀':'优秀学员'}}
</div>
</div>
</template>
</TableStudent>
</a-tab-pane>
</a-tabs>
</div>
@@ -1275,7 +1292,7 @@
:closable="close"
wrapClassName="canclestu"
centered="true"
@cancel="closeModal1"
@cancel="cancelyou"
>
<div class="delete">
<div class="del_header"></div>
@@ -1288,11 +1305,11 @@
<span>您是否授予此学员优秀学员称号?</span>
</div>
<div class="del_btnbox">
<div class="del_btn btn1">
<div class="btnText" @click="cancelyou">取消</div>
<div class="del_btn btn1" @click="cancelyou">
<div class="btnText">取消</div>
</div>
<div class="del_btn btn2">
<div class="btnText" @click="closeModal1">确定</div>
<div class="del_btn btn2" @click="closeModal1">
<div class="btnText">确定</div>
</div>
</div>
</div>
@@ -1320,11 +1337,11 @@
<span>您是否取消此学员优学员称号?</span>
</div>
<div class="del_btnbox">
<div class="del_btn btn1">
<div class="btnText" @click="cancelcanyou">取消</div>
<div class="del_btn btn1" @click="cancelcanyou">
<div class="btnText">取消</div>
</div>
<div class="del_btn btn2">
<div class="btnText" @click="closeModal3">确定</div>
<div class="del_btn btn2" @click="closeModal3">
<div class="btnText">确定</div>
</div>
</div>
</div>
@@ -1678,7 +1695,7 @@ import {
getGroupList,
deleteGroup,
editGroup,
topStudent,
updateStudent,
} from "../../api/indexProjStu";
import { message, Modal } from "ant-design-vue";
import * as apitl from "../../api/index";
@@ -1725,6 +1742,7 @@ export default {
const store = useStore();
const route = useRoute();
const state = reactive({
editRecord:{},
tabFlag:true,
stage: [],
stuColumns: [
@@ -2559,26 +2577,12 @@ export default {
};
//点击确定授予优秀学员后
const closeModal1 = () => {
let obj = {
projectId: state.projectId,
studentIds: state.changeGoods,
topFlag: 1,
};
topStudent(obj)
.then((res) => {
console.log(`优秀学员授予成功${res.data}`);
message.success("优秀学员称号授予成功");
getStu();
})
.catch((err) => {
console.log(`优秀学员授予成功${err}`);
message.warning("优秀学员称号授予失败");
});
state.changeGoods = [];
state.editRecord.topFlag = 1
updateStudent(state.editRecord)
state.canclestu = false;
message.success("优秀学员称号授予成功");
};
//点击取消授予优秀学员后
const cancelyou = () => {
state.changeGoods = [];
@@ -2589,24 +2593,10 @@ export default {
};
//点击确定取消优秀学员称号
const closeModal3 = () => {
let obj = {
projectId: state.projectId,
studentIds: state.changeGoods,
topFlag: 0,
};
topStudent(obj)
.then((res) => {
console.log(`取消优秀学员称号成功${res}`);
message.success("优秀学员称号取消成功");
getStu();
})
.catch((err) => {
console.log(`取消优秀学员称号失败${err}`);
message.warning("优秀学员称号取消失败");
});
state.changeGoods = [];
state.editRecord.topFlag = 0
updateStudent(state.editRecord)
state.canclestu1 = false;
message.success("优秀学员称号取消成功");
};
//点击取消取消授予优秀学员后
const cancelcanyou = () => {
@@ -3071,8 +3061,8 @@ export default {
//tabs切换
const tabsChange = (e) => {
//排行榜
if (e == 6) {
//获取进度榜
@@ -3390,7 +3380,7 @@ export default {
let end = info.endTime;
state.tstartTime = info.beginTime;
state.tendTime = info.endTime;
state.tsourceBelong = info.sourceBelongName;
state.tsourceBelong = (info.sourceBelongFullName || '')+info.sourceBelongName;
state.parentId = info.parentId;
state.name = info.name;
state.startTime = start;
@@ -3417,7 +3407,7 @@ export default {
// state.attach = info.attach;
// state.templateId = info.templateId;
state.sourceBelong = info.sourceBelongName;
state.sourceBelong = (info.sourceBelongFullName || '')+info.sourceBelongName;
// state.fileList=info.attach.split(",")
let d = info.attach.indexOf(",");
// console.log(info.attach, "xgo", info.attach.length);
@@ -4024,9 +4014,19 @@ export default {
};
state.codeInfo = obj;
};
function settingTopFlag(record){
record.topFlag?(state.canclestu1 = true):(state.canclestu=true)
state.editRecord = record
}
function showStudent(record){
state.Seevisible = true
state.checkStuId = record.studentId
}
return {
...toRefs(state),
...toRefs(levelList),
showStudent,
settingTopFlag,
totask,
tostudent,
showModal,
@@ -4037,7 +4037,7 @@ export default {
closeModal2,
showModal3,
closeModal3,
showDeleteOne,
closeDeleteOne,
showTime,

View File

@@ -119,6 +119,7 @@
<OrgClass
v-model:value="projectInfo.sourceBelongId"
v-model:name="projectInfo.sourceBelongName"
v-model:fullName="projectInfo.sourceBelongFullName"
></OrgClass>
</div>
</div>
@@ -296,9 +297,10 @@ const createProject = () => {
});
};
function managerChange(e, l, d, t) {
function managerChange(e, l, d, t,orgName) {
projectInfo.value.valuesourceBelongId = d;
projectInfo.value.sourceBelongName = t;
projectInfo.value.sourceBelongFullName = orgName
}
</script>
<style lang="scss">