This commit is contained in:
宋文超
2022-11-17 10:06:32 +08:00
25 changed files with 2459 additions and 1841 deletions

View File

@@ -27,6 +27,54 @@
@openChange="onOpenChange" @openChange="onOpenChange"
@select="selectItem" @select="selectItem"
> >
<a-sub-menu key="sub10" @titleClick="titleClick">
<template #icon>
<div class="imgBox">
<img
style="width: 15px; height: 15px"
src="../assets/images/navleft/project.png"
/>
</div>
</template>
<template #title>审核管理</template>
<a-menu-item key="sub10-1">
<span
:class="{
circleActive: selectedKeys[0] === 'sub10-1' ? true : false,
circle: selectedKeys[0] === 'sub10-1' ? false : true,
}"
></span>
<router-link to="/coursereviewedn">待审核课程</router-link>
</a-menu-item>
<a-menu-item key="sub10-2">
<span
:class="{
circleActive: selectedKeys[0] === 'sub10-2' ? true : false,
circle: selectedKeys[0] === 'sub10-2' ? false : true,
}"
></span>
<router-link to="/coursereviewed">已审核课程</router-link>
</a-menu-item>
<a-menu-item key="sub10-3">
<span
:class="{
circleActive: selectedKeys[0] === 'sub10-3' ? true : false,
circle: selectedKeys[0] === 'sub10-3' ? false : true,
}"
></span>
<router-link to="/projecreviewedn">待审核项目</router-link>
</a-menu-item>
<a-menu-item key="sub10-4">
<span
:class="{
circleActive: selectedKeys[0] === 'sub10-4' ? true : false,
circle: selectedKeys[0] === 'sub10-4' ? false : true,
}"
></span>
<router-link to="/projecreviewed">已审核项目</router-link>
</a-menu-item>
</a-sub-menu>
<a-menu-item key="sub1" @titleClick="titleClick"> <a-menu-item key="sub1" @titleClick="titleClick">
<div class="imgBox"> <div class="imgBox">
<img <img
@@ -246,6 +294,30 @@ export default {
: ["sub1"], //默认选择以及选择的二级导航 : ["sub1"], //默认选择以及选择的二级导航
keysList: [ keysList: [
{
href: "/coursereviewedn",
openKeys: "sub10",
selectedKeys: "sub10-1",
pagename: "待审核课程",
},
{
href: "/coursereviewed",
openKeys: "sub10",
selectedKeys: "sub10-2",
pagename: "已审核课程",
},
{
href: "/projectviewedn",
openKeys: "sub10",
selectedKeys: "sub10-3",
pagename: "待审核项目",
},
{
href: "/projectviewed",
openKeys: "sub10",
selectedKeys: "sub10-4",
pagename: "已审核项目",
},
{ {
href: "/learningpath", href: "/learningpath",
openKeys: "sub1", openKeys: "sub1",

View File

@@ -97,7 +97,6 @@ export default {
}); });
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:assessmentVisible", false); ctx.emit("update:assessmentVisible", false);
}; };
const afterVisibleChange = (bool) => { const afterVisibleChange = (bool) => {
console.log("state getAllInvistText", bool); console.log("state getAllInvistText", bool);

View File

@@ -145,6 +145,9 @@ export default {
} }
const afterVisibleChange = (bool) => { const afterVisibleChange = (bool) => {
console.log("state", bool); console.log("state", bool);
state.assessmentId=null;
state.assessmentName="";
state.assessment=null;
}; };
const updateTask =()=>{ const updateTask =()=>{

View File

@@ -59,10 +59,10 @@
<div class="mntc_left"> <div class="mntc_left">
<div class="notice_icon"></div> <div class="notice_icon"></div>
<span style="color: rgba(0, 0, 0, 0.65); margin-right: 17px" <span style="color: rgba(0, 0, 0, 0.65); margin-right: 17px"
>已选择 <span style="color: #388be1">4</span> </span >已选择 <span style="color: #388be1">{{RowsNum}}</span> </span
> >
<span style="color: rgba(0, 0, 0, 0.65)" <span style="color: rgba(0, 0, 0, 0.65)"
>列表选项总计<span>14</span> </span >列表选项总计<span>{{tableDataTotal}}</span> </span
> >
</div> </div>
<div class="mntc_right"> <div class="mntc_right">
@@ -169,6 +169,7 @@ export default {
time: undefined, time: undefined,
assessmentId:null, assessmentId:null,
assessmentName:"", assessmentName:"",
RowsNum: 0,
tableData: [], tableData: [],
currentPage: 1, currentPage: 1,
tableDataTotal: 0, tableDataTotal: 0,
@@ -230,10 +231,24 @@ export default {
return columns; return columns;
}; };
const rowSelection = { const rowSelection = {
checkStrictly: false,
onSelectAll: (selected) => {
console.log(selected);
if (selected == true) {
state.RowsNum = state.tableDataTotal
} else {
state.RowsNum = 0
}
},
onSelect: (selectedRows, selected, selectedRowKeys) => { onSelect: (selectedRows, selected, selectedRowKeys) => {
console.log( console.log(
"selectedRowKeys", selectedRowKeys, "selectedRows", selectedRows, "selected", selected); "selectedRowKeys", selectedRowKeys, "selectedRows", selectedRows, "selected", selected);
console.log(selectedRows.assessmentId); console.log(selectedRows.assessmentId);
if (selected == true) {
state.RowsNum++
} else {
state.RowsNum--
}
state.assessmentId = selectedRows.assessmentId; state.assessmentId = selectedRows.assessmentId;
state.assessmentName = selectedRows.name; state.assessmentName = selectedRows.name;
}, },

View File

@@ -17,9 +17,9 @@
</div> </div>
<div style="display: flex; flex-direction: row"> <div style="display: flex; flex-direction: row">
<a-button style="width:100px;" <a-button style="width:100px;"
@click="()=>{isOuter = 1}" @click="changeOuter(1)"
:class="[isOuter == 1? 'outer' : '' ]">系统考试</a-button> :class="[isOuter == 1? 'outer' : '' ]">系统考试</a-button>
<a-button style="width:100px;" @click="()=>{isOuter = 2}" <a-button style="width:100px;" @click="changeOuter(2)"
:class="[isOuter == 2? 'outer' : '' ]" >外部考试</a-button> :class="[isOuter == 2? 'outer' : '' ]" >外部考试</a-button>
</div> </div>
<a-form <a-form
@@ -551,6 +551,10 @@ export default {
formState.questionArrangement = ""; formState.questionArrangement = "";
} }
} }
const changeOuter = (value) => {
console.log(value)
state.isOuter = value
}
return { return {
formState, formState,
afterVisibleChange, afterVisibleChange,
@@ -569,6 +573,7 @@ export default {
rules, rules,
updateTest, updateTest,
queryTest, queryTest,
changeOuter,
...toRefs(state) ...toRefs(state)
}; };
}, },

View File

@@ -40,7 +40,7 @@
/> />
<div class="votename">创建投票</div> <div class="votename">创建投票</div>
</div> </div>
<div class="votebtn">创建投票</div> <div class="votebtn" @click="showVoteDrawer">创建投票</div>
</div> </div>
<!-- 创建投票 --> <!-- 创建投票 -->
<!-- 起止时间 --> <!-- 起止时间 -->
@@ -135,6 +135,17 @@
</div> </div>
</div> </div>
</a-drawer> </a-drawer>
<a-drawer
v-model:visible="voteDrawerShow"
class="custom-class"
title="创建投票"
placement="right"
@after-visible-change="afterVoteVisibleChange"
>
<p>Some contents...</p>
<p>Some contents...</p>
<p>Some contents...</p>
</a-drawer>
</template> </template>
<script> <script>
import { reactive, toRefs } from "vue"; import { reactive, toRefs } from "vue";
@@ -147,7 +158,9 @@ export default {
}, },
}, },
setup(props, ctx) { setup(props, ctx) {
const state = reactive({}); const state = reactive({
voteDrawerShow:false,
});
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:addvoteVisible", false); ctx.emit("update:addvoteVisible", false);
}; };
@@ -160,12 +173,20 @@ export default {
state.visible = true; state.visible = true;
}; };
const showVoteDrawer = () => {
state.voteDrawerShow = true;
}
const afterVoteVisibleChange = () => {
};
return { return {
...toRefs(state), ...toRefs(state),
afterVisibleChange, afterVisibleChange,
showDrawer, showDrawer,
closeDrawer, closeDrawer,
// change, // change,
showVoteDrawer,
afterVoteVisibleChange
}; };
}, },
}; };

View File

@@ -239,9 +239,10 @@ export default {
} }
// for (let i = 0; i < state.questions.length; i++) { // for (let i = 0; i < state.questions.length; i++) {
// for (let k = 0; k < state.questions[i].options.length; k++) { // for (let k = 0; k < state.questions[i].options.length; k++) {
// // console.log('1111111111111111', state.questions); // console.log('1111111111111111', state.questions);
// // console.log('2222222222222222', state.questions[i].options); // console.log('2222222222222222', state.questions[i]);
// console.log(' state.questions[i].inputV', state.questions[i].inputV,);
// console.log('state.questions[i].options[k].opvalue',state.questions[i].options[k].opvalue)
// } // }
// } // }
let obj = { let obj = {

View File

@@ -8,7 +8,7 @@
> >
<div class="drawerMain"> <div class="drawerMain">
<div class="header"> <div class="header">
<div class="headerTitle">面授管理</div> <div class="headerTitle">{{title}}管理</div>
<img <img
style="width: 29px; height: 29px; cursor: pointer" style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png" src="../../assets/images/basicinfo/close.png"
@@ -70,6 +70,9 @@
<div class="img2"></div> <div class="img2"></div>
<div class="wz">导出数据</div> <div class="wz">导出数据</div>
</div> </div>
<div class="btn btn2">
<div class="wz">导出作业</div>
</div>
</div> </div>
<div class="line"> <div class="line">
<div class="inline"> <div class="inline">
@@ -162,6 +165,10 @@ export default {
type: Boolean, type: Boolean,
default: false, default: false,
}, },
title: {
type: String,
default: "",
},
projectTaskId: { projectTaskId: {
type: Number, type: Number,
default: null, default: null,
@@ -199,16 +206,7 @@ export default {
label: "已完成", label: "已完成",
}, },
], ],
tabledata: [ tabledata: [],
// {
// key: 1,
// name: "哈哈",
// bum: "产品部",
// gangw: "产品经理",
// score: "-",
// state: "未完成",
// },
],
tablecolumns: [ tablecolumns: [
{ {
title: "姓名", title: "姓名",
@@ -250,8 +248,53 @@ export default {
align: "center", align: "center",
className: "h", className: "h",
}, },
{
title: "操作",
dataIndex: "operation",
key: "operation",
width: 100,
align: "center",
className: "h",
},
], ],
}); });
//面授直播管理列表操作
const ListOpera = () => {
let arr = state.tabledata;
console.log(arr,'-=-=-=-=-=-=-=-=--=-==----=-=-=-');
arr.map((value) => {
value.operation = (
<div
style={{
display: "flex",
alignItems: "center",
justifyContent: "center",
}}
>
<div
class="studentopea1"
onClick={() => {
console.log('---------')
}}
>
查看作业
</div>
<div
class="studentopea2"
onClick={() => {
console.log( "--------");
}}
>
查看答卷
</div>
</div>
);
});
state.tabledata = arr;
console.log(state.tabledata,'++++++++++++-------------+++++++++-----------+++++++++++++++');
};
ListOpera();
const selectProjectName = (value, index) => { const selectProjectName = (value, index) => {
console.log("value", value, index); console.log("value", value, index);
state.projectName = value; state.projectName = value;
@@ -362,7 +405,7 @@ export default {
let timer; let timer;
onMounted(() => { onMounted(() => {
setTimeout(() => { setTimeout(() => {
// getManageList(); getManageList();
}, 1000); }, 1000);
timer = setInterval(() => { timer = setInterval(() => {
state.open = false; state.open = false;
@@ -379,6 +422,7 @@ export default {
onSelectChange, onSelectChange,
showModal, showModal,
closeModal, closeModal,
ListOpera, //渲染列表操作
showEntryScore, showEntryScore,
showdoneModal, showdoneModal,
closedoneModal, closedoneModal,

View File

@@ -219,10 +219,6 @@ export default {
const onChange = (pageNumber) => { const onChange = (pageNumber) => {
console.log("Page: ", pageNumber); console.log("Page: ", pageNumber);
}; };
// watch(props.visible, ()=>{
// getManageList()
// },{immediate:true});
//获取任务管理列表 //获取任务管理列表
const getManageList = () => { const getManageList = () => {
let obj = { let obj = {
@@ -237,7 +233,6 @@ export default {
api api
.taskStudentList(obj) .taskStudentList(obj)
.then((res) => { .then((res) => {
console.log("csscas成功");
state.pageNo = res.data.data.pageNo; state.pageNo = res.data.data.pageNo;
state.pageSize = res.data.data.pageSize; state.pageSize = res.data.data.pageSize;
state.pageSize = res.data.data.pageSize; state.pageSize = res.data.data.pageSize;
@@ -291,7 +286,7 @@ export default {
let timer; let timer;
onMounted(() => { onMounted(() => {
setTimeout(() => { setTimeout(() => {
// getManageList(); getManageList();
}, 500); }, 500);
timer = setInterval(() => { timer = setInterval(() => {
state.open = false; state.open = false;

View File

@@ -8,7 +8,7 @@
> >
<div class="drawerMain"> <div class="drawerMain">
<div class="header"> <div class="header">
<div class="headerTitle">作业管理</div> <div class="headerTitle">{{title}}管理</div>
<img <img
style="width: 29px; height: 29px; cursor: pointer" style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png" src="../../assets/images/basicinfo/close.png"
@@ -65,6 +65,9 @@
<div class="btn btn2" @click="showModal"> <div class="btn btn2" @click="showModal">
<div class="wz">导出作业</div> <div class="wz">导出作业</div>
</div> </div>
<div class="btn btn2" @click="showModal">
<div class="wz">导入成绩</div>
</div>
</div> </div>
<div class="tab" style="margin-top: 20px; margin-bottom: 100px"> <div class="tab" style="margin-top: 20px; margin-bottom: 100px">
<a-table <a-table
@@ -139,6 +142,10 @@ export default {
type: Boolean, type: Boolean,
default: false, default: false,
}, },
title: {
type: String,
default: "",
},
projectTaskId: { projectTaskId: {
type: Number, type: Number,
default: null, default: null,
@@ -312,7 +319,7 @@ export default {
onMounted(() => { onMounted(() => {
setTimeout(() => { setTimeout(() => {
// getManageList(); getManageList();
}, 1000); }, 1000);
}); });
return { return {

View File

@@ -79,7 +79,7 @@
</div> </div>
<!-- 创建投票侧弹窗 --> <!-- 创建投票侧弹窗 -->
<div> <div>
<cre-vote <create-vote
v-model:crevoteVisible="crevotevisible" v-model:crevoteVisible="crevotevisible"
@getData="getStemId" @getData="getStemId"
v-model:ballotId="ballotId" v-model:ballotId="ballotId"
@@ -136,7 +136,7 @@
</template> </template>
<script> <script>
import { reactive, toRefs} from "vue"; import { reactive, toRefs} from "vue";
import CreVote from "./CreateVote.vue"; import CreateVote from "./CreateVote.vue";
import * as api from "../../api/indexVote"; import * as api from "../../api/indexVote";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import { RouterEditTask } from "@/api/indexTask"; import { RouterEditTask } from "@/api/indexTask";
@@ -147,7 +147,7 @@ import * as apiTask from "../../api/indexTaskadd";
export default { export default {
name: "AddVote", name: "AddVote",
components: { components: {
CreVote, CreateVote,
}, },
props: { props: {
addvoteVisible: { addvoteVisible: {

View File

@@ -1,86 +1,52 @@
<!-- 评估管理-创建评估页面 --> <!-- 评估管理-创建评估页面 -->
<template> <template>
<a-drawer <a-drawer :visible="createVoteVisible" class="drawerStyle createvoteDrawer" width="100%" placement="right"
:visible="createVoteVisible" @after-visible-change="afterVisibleChange">
class="drawerStyle createvoteDrawer"
width="80%"
placement="right"
@after-visible-change="afterVisibleChange"
>
<div class="researchadd"> <div class="researchadd">
<div class="header"> <div class="header">
<div class="headerTitle">创建投票</div> <div class="headerTitle">创建投票</div>
<img <img style="width: 29px; height: 29px; cursor: pointer" src="../../assets/images/basicinfo/close.png"
style="width: 29px; height: 29px; cursor: pointer" @click="closeDrawer" />
src="../../assets/images/basicinfo/close.png"
@click="closeDrawer"
/>
</div> </div>
<div class="main_left"> <div class="main_left">
<div class="main_item"> <div class="main_item">
<div class="signbox"> <div class="signbox">
<div class="sign"> <div class="sign">
<img <img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div> </div>
<span style="margin-right: 3px">投票名称</span> <span style="margin-right: 3px">投票名称</span>
</div> </div>
<div class="btnbox"> <div class="btnbox">
<a-input <a-input v-model:value="voteName" style="width: 424px; height: 32px" placeholder="请输入任务名称" maxlength="20" />
v-model:value="voteName"
style="width: 424px; height: 32px"
placeholder="请输入任务名称"
maxlength="20"
/>
</div> </div>
</div> </div>
<div class="main_item"> <div class="main_item">
<div class="signbox"> <div class="signbox">
<div class="sign"> <div class="sign">
<img <img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div> </div>
<span>创建题干</span> <span>创建题干</span>
</div> </div>
<div class="btnbox"> <div class="btnbox">
<button <button class="xkbtn" @click="handleTypes">
class="xkbtn" 添加题干
@click="handleTypes"
>
创建题干
</button> </button>
</div> </div>
</div> <!-- 创建投票侧弹窗 --> </div> <!-- 创建投票侧弹窗 -->
</div> </div>
<div v-for="(item, index) in allFormsData" :key="index"> <div v-for="(item, index) in allFormsData" :key="index">
<VoteQuestion <VoteQuestion :item="item" :ballotId="ballotId" @del="handleDel" />
:item="item"
:ballotId="ballotId"
@del="handleDel"
/>
</div> </div>
<div class="footer"> <div class="footer">
<div class="btn"> <div class="btn">
<a-button <a-button type="primary" style="width: 100px;height: 40px;border-radius: 8px; background-color: #409eff;"
type="primary" @click="handleSave">
style="width: 100px;height: 40px;border-radius: 8px; background-color: #409eff;"
@click="handleSave"
>
保存 保存
</a-button> </a-button>
<a-button <a-button type="primary" ghost style="width: 100px;height: 40px;margin-left: 14px;border-radius: 8px;"
type="primary" @click="handleAllCancel">
ghost
style="width: 100px;height: 40px;margin-left: 14px;border-radius: 8px;"
@click="handleAllCancel"
>
取消 取消
</a-button> </a-button>
</div> </div>
@@ -103,16 +69,8 @@ traverseArr,
//import store from "@/store"; //import store from "@/store";
import { import * as api from "@/api/indexVote";
//createOptionMessage, import {} from "@/api/indexResearch";
queryStemByStemId
}from "@/api/indexVote";
import {
} from "@/api/indexResearch";
//import { message } from "ant-design-vue"; //import { message } from "ant-design-vue";
@@ -157,7 +115,8 @@ setup(props,ctx) {
const getInfoDate = async () => { const getInfoDate = async () => {
if (props.editChild) { if (props.editChild) {
//stemId 多余字段 //stemId 多余字段
let res = await queryStemByStemId({stemId:0, let res = await api.queryStemByStemId({
stemId: 0,
ballotId: state.ballotId, ballotId: state.ballotId,
}).then((res) => { }).then((res) => {
if (res.data.code === 200) { if (res.data.code === 200) {
@@ -363,8 +322,6 @@ setup(props,ctx) {
console.log("curItem.orderNumber", curItem.orderNumber); console.log("curItem.orderNumber", curItem.orderNumber);
// orderNumber: curItem.orderNumber, // orderNumber: curItem.orderNumber,
}; };
const handleSave = () => { const handleSave = () => {
@@ -508,6 +465,7 @@ setup(props,ctx) {
align-items: center; align-items: center;
flex-shrink: 0; flex-shrink: 0;
margin-bottom: 25px; margin-bottom: 25px;
.headerTitle { .headerTitle {
font-size: 18px; font-size: 18px;
font-weight: 600; font-weight: 600;
@@ -516,27 +474,34 @@ setup(props,ctx) {
margin-left: 24px; margin-left: 24px;
} }
} }
.main_left { .main_left {
margin-left: 50px;
padding-right: 30px; padding-right: 30px;
flex: 1; flex: 1;
border-right: 1px solid #e8e8e8; border-right: 1px solid #e8e8e8;
.main_item { .main_item {
display: flex; display: flex;
align-items: center; align-items: center;
margin-bottom: 32px; margin-bottom: 32px;
.signbox { .signbox {
width: 120px; width: 120px;
display: flex; display: flex;
justify-content: end; justify-content: end;
align-items: center; align-items: center;
.sign { .sign {
margin-right: 5px; margin-right: 5px;
} }
} }
.btnbox { .btnbox {
display: flex; display: flex;
flex: 1; flex: 1;
align-items: center; align-items: center;
.xkbtn { .xkbtn {
cursor: pointer; cursor: pointer;
width: 130px; width: 130px;
@@ -548,14 +513,17 @@ setup(props,ctx) {
color: #fff; color: #fff;
margin-right: 10px; margin-right: 10px;
} }
.fileTigan { .fileTigan {
display: flex; display: flex;
align-items: center; align-items: center;
padding: 3px 5px; padding: 3px 5px;
background-color: rgba(42, 103, 209, 0.4); background-color: rgba(42, 103, 209, 0.4);
span { span {
margin-right: 5px; margin-right: 5px;
} }
.delBox { .delBox {
width: 13px; width: 13px;
height: 13px; height: 13px;
@@ -566,28 +534,34 @@ setup(props,ctx) {
} }
} }
} }
.main_item2 { .main_item2 {
display: flex; display: flex;
align-items: flex-start; align-items: flex-start;
margin-bottom: 32px; margin-bottom: 32px;
.signbox { .signbox {
width: 120px; width: 120px;
display: flex; display: flex;
justify-content: end; justify-content: end;
align-items: center; align-items: center;
.sign { .sign {
margin-right: 5px; margin-right: 5px;
} }
} }
.kqszbox { .kqszbox {
.qdqtbox { .qdqtbox {
margin-left: 56px; margin-left: 56px;
} }
.setbox { .setbox {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
margin-top: 10px; margin-top: 10px;
margin-bottom: 24px; margin-bottom: 24px;
.timerbox { .timerbox {
margin-top: 6px; margin-top: 6px;
margin-right: 32px; margin-right: 32px;
@@ -597,10 +571,12 @@ setup(props,ctx) {
} }
} }
} }
.btnbox2 { .btnbox2 {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: flex-start; justify-content: flex-start;
.xkbtn { .xkbtn {
cursor: pointer; cursor: pointer;
width: 130px; width: 130px;

View File

@@ -1,4 +1,12 @@
import { createRouter, createWebHashHistory } from 'vue-router'; /*
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-09 09:26:26
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-11-16 09:56:16
* @FilePath: /fe-manage/src/router/index.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import { createRouter,createWebHistory } from 'vue-router';
import routesConfig from './config'; import routesConfig from './config';
console.log('routesConfig', routesConfig) console.log('routesConfig', routesConfig)
@@ -12,7 +20,7 @@ const routes = [
] ]
const router = createRouter({ const router = createRouter({
history: createWebHashHistory(), history: createWebHistory(),
routes routes
}) })

View File

@@ -0,0 +1,39 @@
<!--
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-16 20:59:06
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-11-16 21:08:27
* @FilePath: /fe-manage/src/views/examine/CourseReviewed.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%A
-->
<!-- 已审核课程页面 -->
<template>
<div class="coursereviewed">
</div>
</template>
<script>
import { reactive, toRefs, } from "vue";
export default {
name: "CoursereViewed",
setup() {
const state = reactive({
});
return {
...toRefs(state),
};
},
};
</script>
<style lang="scss">
.coursereviewed {
}
</style>

View File

@@ -0,0 +1,39 @@
<!--
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-16 20:59:33
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-11-16 21:09:01
* @FilePath: /fe-manage/src/views/examine/CourseReviewedN.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<!-- 待审核课程页面 -->
<template>
<div class="coursereviewedn">
</div>
</template>
<script>
import { reactive, toRefs, } from "vue";
export default {
name: "CoursereViewedN",
setup() {
const state = reactive({
});
return {
...toRefs(state),
};
},
};
</script>
<style lang="scss">
.coursereviewedn {
}
</style>

View File

@@ -0,0 +1,39 @@
<!--
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-16 21:00:40
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-11-16 21:09:49
* @FilePath: /fe-manage/src/views/examine/ProjectReviewed.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<!-- 待审核课程页面 -->
<template>
<div class="projectviewed">
</div>
</template>
<script>
import { reactive, toRefs, } from "vue";
export default {
name: "ProjectViewed",
setup() {
const state = reactive({
});
return {
...toRefs(state),
};
},
};
</script>
<style lang="scss">
.projectviewed {
}
</style>

View File

@@ -0,0 +1,38 @@
<!--
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-16 21:01:51
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-11-16 21:10:02
* @FilePath: /fe-manage/src/views/examine/ProjectReviewedN.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<template>
<div class="projectviewedn">
</div>
</template>
<script>
import { reactive, toRefs, } from "vue";
export default {
name: "ProjectViewedN",
setup() {
const state = reactive({
});
return {
...toRefs(state),
};
},
};
</script>
<style lang="scss">
.projectviewedn {
}
</style>

View File

@@ -323,6 +323,13 @@
> >
<!-- <img class="im" :src="item.source" /> --> <!-- <img class="im" :src="item.source" /> -->
</div> </div>
<div
@click="showImgMore"
v-if="imgData.length >= 5"
class="learnBgItem"
>
<!-- <img class="im" :src="item.source" /> -->
</div>
</div> </div>
</div> </div>
<div class="info"> <div class="info">
@@ -430,10 +437,10 @@
<span>您确定要复制此路径吗</span> <span>您确定要复制此路径吗</span>
</div> </div>
<div class="del_btnbox"> <div class="del_btnbox">
<div class="del_btn btn1" @click="delete_exit"> <div class="del_btn btn1" @click="closeCopyModal">
<div class="btnText">取消</div> <div class="btnText">取消</div>
</div> </div>
<div class="del_btn btn2" @click="delete_exit"> <div class="del_btn btn2" @click="copyLearnPath">
<div class="btnText">确定</div> <div class="btnText">确定</div>
</div> </div>
</div> </div>
@@ -724,6 +731,7 @@ export default {
routeStudentsNum: 0, routeStudentsNum: 0,
recallPathId: null, //撤回路径id recallPathId: null, //撤回路径id
stopPathId: null, //停用路径id stopPathId: null, //停用路径id
copyPathId: null, //复制路径iid
lpLoading: false, lpLoading: false,
}); });
@@ -816,12 +824,34 @@ export default {
const closePub = () => { const closePub = () => {
state.pub = false; state.pub = false;
}; };
//显示复制窗口
const showCopyModal = () => { const showCopyModal = () => {
state.copyModal = true; state.copyModal = true;
}; };
//关闭复制窗口
const closeCopyModal = () => { const closeCopyModal = () => {
state.copyModal = false; state.copyModal = false;
}; };
//确认复制
const copyLearnPath = () => {
let obj = {
routerId: state.copyPathId,
type: 2,
};
api
.handleLearnPath(obj)
.then((res) => {
console.log("复制成功", res);
message.destroy();
message.success("复制成功");
state.copyModal = false;
getLearnPath();
})
.catch((err) => {
console.log("复制失败", err);
});
};
//显示结束窗口 //显示结束窗口
const showStopModal = () => { const showStopModal = () => {
state.stopModal = true; state.stopModal = true;
@@ -1137,6 +1167,7 @@ export default {
> >
<div <div
onClick={() => { onClick={() => {
state.copyPathId = text.record.id;
showCopyModal(); showCopyModal();
}} }}
> >
@@ -1177,6 +1208,7 @@ export default {
> >
<div <div
onClick={() => { onClick={() => {
state.copyPathId = text.record.id;
showCopyModal(); showCopyModal();
}} }}
> >
@@ -1230,6 +1262,7 @@ export default {
> >
<div <div
onClick={() => { onClick={() => {
state.copyPathId = text.record.id;
showCopyModal(); showCopyModal();
}} }}
> >
@@ -1491,6 +1524,7 @@ export default {
closeCopyModal, closeCopyModal,
showStopModal, showStopModal,
closeStopModal, closeStopModal,
copyLearnPath,
stopLearnPath, stopLearnPath,
showDeleteModal, showDeleteModal,
closeDeleteModal, closeDeleteModal,

View File

@@ -1786,7 +1786,23 @@ export default {
}; };
//确认复制 //确认复制
const sureCopy = () => { const sureCopy = () => {
let obj = {
routerId: state.routerId,
type: 2,
};
api
.handleLearnPath(obj)
.then((res) => {
console.log("复制成功", res);
message.destroy();
message.success("复制成功");
state.dcopyModal = false; state.dcopyModal = false;
reget();
})
.catch((err) => {
console.log("复制失败", err);
});
}; };
const showStop = () => { const showStop = () => {
state.stopModal = true; state.stopModal = true;

View File

@@ -107,7 +107,6 @@
<div class="items2"> <div class="items2">
<div class="nname">{{ item.name }}</div> <div class="nname">{{ item.name }}</div>
</div> </div>
</div> --> </div> -->
</div> </div>
</div> </div>
@@ -206,12 +205,19 @@
</div> </div>
<div class="mid"> <div class="mid">
<div class="item"> <div class="item">
<div class="itcon"> <div class="itcon" @click="showDrawerAddOnline()">
<div class="img"> <div class="img">
<img src="../../assets/images/leveladd/zai.png" /> <img src="../../assets/images/leveladd/zai.png" />
</div> </div>
<div class="text">在线</div> <div class="text">在线</div>
</div> </div>
<!-- 添加在线侧弹窗 -->
<div>
<add-online v-model:addonlineVisible="addonlinevisible" @changeData="updateTableData" v-model:edit="edit"
v-model:projectId="projectId" v-model:chooseStageId="chooseStageId" v-model:projectTaskId="projectTaskId"
v-model:EditOnlineId="EditOnlineId" />
</div>
<!-- 添加在线侧弹窗 -->
<div class="lin"></div> <div class="lin"></div>
</div> </div>
<div class="item"> <div class="item">
@@ -224,12 +230,19 @@
<div class="lin"></div> <div class="lin"></div>
</div> </div>
<div class="item"> <div class="item">
<div class="itcon"> <div class="itcon" @click="showDrawerAddCase()">
<div class="img"> <div class="img">
<img src="../../assets/images/leveladd/an.png" /> <img src="../../assets/images/leveladd/an.png" />
</div> </div>
<div class="text">案例</div> <div class="text">案例</div>
</div> </div>
<!-- 添加案例侧弹窗 -->
<div>
<add-case v-model:addcaseVisible="addcasevisible" @changeData="updateTableData" v-model:edit="edit"
v-model:projectId="projectId" v-model:chooseStageId="chooseStageId" v-model:projectTaskId="projectTaskId"
v-model:EditCaseId="EditCaseId" />
</div>
<!-- 添加案例侧弹窗 -->
<div class="lin"></div> <div class="lin"></div>
</div> </div>
<div class="item"> <div class="item">
@@ -953,6 +966,8 @@
import { reactive, toRefs, onMounted, onUnmounted } from "vue"; import { reactive, toRefs, onMounted, onUnmounted } from "vue";
import AddStu from "../../components/drawers/AddLevelAddStu"; import AddStu from "../../components/drawers/AddLevelAddStu";
import ImpStu from "../../components/drawers/AddLevelImportStu"; import ImpStu from "../../components/drawers/AddLevelImportStu";
import AddOnline from "../../components/drawers/AddOnline.vue"
import AddCase from "../../components/drawers/AddCase.vue"
import AddHomework from "../../components/drawers/AddHomework.vue"; import AddHomework from "../../components/drawers/AddHomework.vue";
import AddTest from "../../components/drawers/AddTest.vue"; import AddTest from "../../components/drawers/AddTest.vue";
import AddDiscuss from "../../components/drawers/AddDiscuss.vue"; import AddDiscuss from "../../components/drawers/AddDiscuss.vue";
@@ -969,12 +984,17 @@ import { storage } from "../../api/storage";
import { deleteStudyTask } from "../../api/indexStudy"; import { deleteStudyTask } from "../../api/indexStudy";
import draggable from "vuedraggable"; import draggable from "vuedraggable";
import { editTask } from "../../api/indexTaskadd"; import { editTask } from "../../api/indexTaskadd";
import * as apiProj from "../../api/indexInvist.js";
import { RouterEditTask } from "@/api/indexTask";
import dayjs from "dayjs";
import { toDate } from "../../api/method"; import { toDate } from "../../api/method";
export default { export default {
name: "LevelAddDetail", name: "LevelAddDetail",
components: { components: {
AddStu, AddStu,
ImpStu, ImpStu,
AddOnline,
AddCase,
AddHomework, AddHomework,
AddDiscuss, AddDiscuss,
AddActive, AddActive,
@@ -1087,104 +1107,108 @@ export default {
time: "2022-07-15 14:00", time: "2022-07-15 14:00",
}, },
], ],
drawertableData: [ drawertableData: [],
{ // drawertableData: [
key: 1, // {
projectName: "管理者进阶", // key: 1,
manager: "黄华 刘俊", // projectName: "管理者进阶",
creater: "毛继禹", // manager: "黄华 刘俊",
time: "2022-07-20 14:00:03", // creater: "毛继禹",
children: [ // time: "2022-07-20 14:00:03",
{ // children: [
key: "1-1", // {
projectName: "管理者进阶-腾飞班", // key: "1-1",
manager: "黄华 刘俊", // projectName: "管理者进阶-腾飞班",
creater: "毛继禹", // manager: "黄华 刘俊",
time: "2022-07-20 14:00:03", // creater: "毛继禹",
children: [ // time: "2022-07-20 14:00:03",
{ // children: [
key: "1-1-1", // {
projectName: "管理者进阶-腾飞班K1", // key: "1-1-1",
manager: "黄华 刘俊", // projectName: "管理者进阶-腾飞班K1",
creater: "毛继禹", // manager: "黄华 刘俊",
time: "2022-07-20 14:00:03", // creater: "毛继禹",
}, // time: "2022-07-20 14:00:03",
], // },
}, // ],
], // },
}, // ],
{ // },
key: 2, // {
projectName: "管理者进阶", // key: 2,
manager: "黄华 刘俊", // projectName: "管理者进阶",
creater: "毛继禹", // manager: "黄华 刘俊",
time: "2022-07-20 14:00:03", // creater: "毛继禹",
children: [ // time: "2022-07-20 14:00:03",
{ // children: [
key: "2-1", // {
projectName: "管理者进阶-腾飞班", // key: "2-1",
manager: "黄华 刘俊", // projectName: "管理者进阶-腾飞班",
// manager: "黄华 刘俊",
creater: "毛继禹", // creater: "毛继禹",
time: "2022-07-20 14:00:03", // time: "2022-07-20 14:00:03",
children: [ // children: [
{ // {
key: "2-1-1", // key: "2-1-1",
projectName: "管理者进阶-腾飞班K1", // projectName: "管理者进阶-腾飞班K1",
manager: "黄华 刘俊", // manager: "黄华 刘俊",
creater: "毛继禹", // creater: "毛继禹",
time: "2022-07-20 14:00:03", // time: "2022-07-20 14:00:03",
}, // },
], // ],
}, // },
], // ],
}, // },
{ // {
key: 3, // key: 3,
projectName: "管理者进阶-腾飞班K1", // projectName: "管理者进阶-腾飞班K1",
manager: "黄华 刘俊", // manager: "黄华 刘俊",
creater: "毛继禹", // creater: "毛继禹",
time: "2022-07-20 14:00:03", // time: "2022-07-20 14:00:03",
}, // },
{ // {
key: 4, // key: 4,
projectName: "管理者进阶-腾飞班K1", // projectName: "管理者进阶-腾飞班K1",
manager: "黄华 刘俊", // manager: "黄华 刘俊",
creater: "毛继禹", // creater: "毛继禹",
time: "2022-07-20 14:00:03", // time: "2022-07-20 14:00:03",
}, // },
{ // {
key: 5, // key: 5,
projectName: "管理者进阶-腾飞班K1", // projectName: "管理者进阶-腾飞班K1",
manager: "黄华 刘俊", // manager: "黄华 刘俊",
creater: "毛继禹", // creater: "毛继禹",
time: "2022-07-20 14:00:03", // time: "2022-07-20 14:00:03",
}, // },
{ // {
key: 6, // key: 6,
projectName: "管理者进阶-腾飞班K1", // projectName: "管理者进阶-腾飞班K1",
manager: "黄华 刘俊", // manager: "黄华 刘俊",
creater: "毛继禹", // creater: "毛继禹",
time: "2022-07-20 14:00:03", // time: "2022-07-20 14:00:03",
}, // },
{ // {
key: 7, // key: 7,
projectName: "管理者进阶-腾飞班K1", // projectName: "管理者进阶-腾飞班K1",
manager: "黄华 刘俊", // manager: "黄华 刘俊",
creater: "毛继禹", // creater: "毛继禹",
time: "2022-07-20 14:00:03", // time: "2022-07-20 14:00:03",
}, // },
], // ],
currentPage: 1, currentPage: 1,
tableDataTotal: 100, tableDataTotal: 0,
pageSize: 10, pageSize: 10,
visible: false, visible: false,
//项目
editproj: false,
addprojvisible: false,
AddSvisible: false, //添加学员抽屉 AddSvisible: false, //添加学员抽屉
AddImpStuvisible: false, //导入学员抽屉 AddImpStuvisible: false, //导入学员抽屉
addlivevisible: false, //添加直播抽屉 addlivevisible: false, //添加直播抽屉
@@ -1197,7 +1221,9 @@ export default {
deleteModal: false, // 删除弹窗 deleteModal: false, // 删除弹窗
deleteID: "", // 要删除的任务的id deleteID: "", // 要删除的任务的id
editID: "", // 要编辑的任务id editID: "", // 要编辑的任务id
EditWorkId: "", // 要编辑的 workid EditOnlineId:"", // 要编辑的 workid
EditCaseId:"",
EditWorkId: "",
EditTestId: "", EditTestId: "",
EditRefId: "", EditRefId: "",
EditLiveId: "", EditLiveId: "",
@@ -1206,6 +1232,8 @@ export default {
EditEvalId: "", EditEvalId: "",
EditInvistId: "", EditInvistId: "",
EditVoteId: "", EditVoteId: "",
//项目
EditProjId: "",
routerTaskId: "", routerTaskId: "",
chapterId: "", chapterId: "",
stageId: "", stageId: "",
@@ -1221,6 +1249,8 @@ export default {
adddiscussvisible: false, //讨论抽屉 adddiscussvisible: false, //讨论抽屉
isStudiscuss: false, isStudiscuss: false,
addactivevisible: false, //活动抽屉 addactivevisible: false, //活动抽屉
addonlinevisible:false,
addcasevisible:false,
addhomeworkvisible: false, addhomeworkvisible: false,
addtestvisible: false, addtestvisible: false,
addevalvisible: false, addevalvisible: false,
@@ -1235,6 +1265,13 @@ export default {
styTitle: null, styTitle: null,
creTime: null, creTime: null,
picUrl: null, picUrl: null,
//项目抽屉参数
time: undefined,
assessmentId: null,
assessmentName: "",
projectId: null,
projectTaskId: null,
chooseStageId: null,
}); });
//新建关卡 //新建关卡
@@ -1285,6 +1322,23 @@ export default {
const showDrawer = () => { const showDrawer = () => {
state.visible = true; state.visible = true;
}; };
//关闭项目抽屉
const leaveProjDrawer = () => {
state.addprojvisible = false;
state.isLevel = false;
};
//在线抽屉
const showDrawerAddOnline = (id,eleId)=>{
state.addonlinevisible = true;
state.EditWorkId = id;
state.routerTaskId = eleId;
}
//案例抽屉
const showDrawerAddCase = (id,eleId)=>{
state.addcasevisible = true;
state.EditWorkId = id;
state.routerTaskId = eleId;
}
// 作业和考试的抽屉 // 作业和考试的抽屉
const showDrawerAddHomework = (id, eleId) => { const showDrawerAddHomework = (id, eleId) => {
console.log("homework==============", id, state.isactive); console.log("homework==============", id, state.isactive);
@@ -1337,6 +1391,12 @@ export default {
state.EditActiveId = id; state.EditActiveId = id;
state.routerTaskId = eleId; state.routerTaskId = eleId;
}; };
//打开项目抽屉
const showDrawerAddProj = (id, eleId) => {
state.addprojvisible = true;
state.EditActiveId = id;
state.routerTaskId = eleId;
};
// tableData数据赋值方法 // tableData数据赋值方法
const dataAssignment = (id) => { const dataAssignment = (id) => {
@@ -1525,23 +1585,11 @@ export default {
}; };
const drawertableColumns = () => { const drawertableColumns = () => {
// let arr = state.drawertableData;
// function traverse(arr) {
// for (var a in arr) {
// // console.log(arr[a]);
// if (arr[a].children) {
// traverse(arr[a].children); //递归遍历
// } else {
// console.log(arr[a].children); //如果是值就显示
// }
// }
// }
// traverse(arr);
const drawercolumns = [ const drawercolumns = [
{ {
title: "项目名称", title: "项目名称",
dataIndex: "projectName", dataIndex: "name",
// dataIndex: "projectName",
key: "projectName", key: "projectName",
width: 200, width: 200,
// align: "center", // align: "center",
@@ -1584,7 +1632,7 @@ export default {
{ {
title: "创建人", title: "创建人",
dataIndex: "creater", dataIndex: "creator",
// width: "30%", // width: "30%",
key: "creater", key: "creater",
width: 100, width: 100,
@@ -1614,6 +1662,7 @@ export default {
"rgb(245, 247, 250,1)"; "rgb(245, 247, 250,1)";
document.getElementsByTagName("main")[0].style.boxShadow = "none"; document.getElementsByTagName("main")[0].style.boxShadow = "none";
getDetail(); getDetail();
getAllProjText();
}); });
onUnmounted(() => { onUnmounted(() => {
document.getElementsByTagName("main")[0].style.background = "#ffffff"; document.getElementsByTagName("main")[0].style.background = "#ffffff";
@@ -1792,6 +1841,12 @@ export default {
showDrawerAddEval(id, eleId); showDrawerAddEval(id, eleId);
} else if (type == "投票") { } else if (type == "投票") {
showDrawerAddVote(id, eleId); showDrawerAddVote(id, eleId);
} else if (type == "项目") {
showDrawerAddProj(id, eleId);
} else if (type == "在线") {
showDrawerAddOnline(id, eleId);
} else if (type == "案例") {
showDrawerAddCase(id, eleId);
} }
}; };
//删除关卡 //删除关卡
@@ -1850,6 +1905,78 @@ export default {
console.log("阶段改变", value, option); console.log("阶段改变", value, option);
state.removeStageId = option.chapterId; state.removeStageId = option.chapterId;
}; };
//项目抽屉用的
const rowSelection = {
onSelect: (selectedRows, selected, selectedRowKeys) => {
console.log(
"selectedRowKeys", selectedRowKeys, "selectedRows", selectedRows, "selected", selected);
console.log(selectedRows.assessmentId);
state.assessmentId = selectedRows.assessmentId;
state.assessmentName = selectedRows.name;
},
};
const getTableDate = (drawertableData) => {
let data = drawertableData;
let array = [];
data.map((value, index) => {
let obj = {
key: index,
assessmentId: value.assessmentId,
num: value.essayQuestionVoList.length,
name: value.assessmentName ? value.assessmentName : "-",
creator: value.createUser ? value.createUser : "-",
time: dayjs(value.createTime).format("YYYY-MM-DD"),
};
array.push(obj);
});
state.drawertableData = array;
};
//获取全部项目信息接口
const getAllProjText = () => {
apiProj
.queryAssessmentDetailList({
assessmentName: "",
pageNo: state.currentPage,
pageSize: state.pageSize,
})
.then((res) => {
let arr = res.data.data.rows;
if (res.status === 200) {
getTableDate(arr);
console.log('---------------项目信息---------------------------');
}
})
.catch((err) => {
console.log("获取全部项目信息接口失败", err);
console.log('+++++++++++++++++++++++++++++++++++++++++++++++');
// state.createLoading = false;
});
};
const updateTask = () => {
RouterEditTask({
chapterId: state.isactive,
courseId: state.assessmentId,
name: state.assessmentName,
routerId: state.routerId,
routerTaskId: state.routerTaskId || 0,
type: 13,
})
.then((res) => {
console.log(res, 11111);
message.success(`${state.editproj ? '编辑' : '新增'}关卡任务成功`)
// ctx.emit("changeData", false);
closeDrawer();
state.addLoading = false;
})
.catch((err) => {
console.log(err, 1111);
});
}
onMounted(() => {
// createCase();
getAllProjText();
});
return { return {
...toRefs(state), ...toRefs(state),
// tableDataFunc, // tableDataFunc,
@@ -1871,6 +1998,8 @@ export default {
drawertableColumns, drawertableColumns,
editChapter, editChapter,
// updateChapter, // updateChapter,
showDrawerAddOnline,
showDrawerAddCase,
showDrawerAddHomework, showDrawerAddHomework,
showDrawerAddTest, showDrawerAddTest,
showDrawerAddEval, showDrawerAddEval,
@@ -1879,6 +2008,8 @@ export default {
deleteLevelTask, deleteLevelTask,
showDrawerAddLive, showDrawerAddLive,
showDrawerAddRef, showDrawerAddRef,
showDrawerAddProj,
leaveProjDrawer,
closeDeleteModel, closeDeleteModel,
clearEditData, clearEditData,
showDrawerAddDiscuss, showDrawerAddDiscuss,
@@ -1895,6 +2026,10 @@ export default {
showChangeModal, showChangeModal,
closeChangeModal, closeChangeModal,
handleChangeStage, handleChangeStage,
rowSelection,
getTableDate,
getAllProjText,
updateTask,
}; };
}, },
}; };

View File

@@ -3,7 +3,12 @@
<div class="projectAdd"> <div class="projectAdd">
<div class="header"> <div class="header">
<span class="title">创建/编辑班级</span> <span class="title">创建/编辑班级</span>
<div @click="backPage" style="cursor: pointer;" to="/projectmanage" class="goback"> <div
@click="backPage"
style="cursor: pointer"
to="/projectmanage"
class="goback"
>
<span class="return"></span><span class="returntext">返回</span> <span class="return"></span><span class="returntext">返回</span>
</div> </div>
</div> </div>
@@ -11,7 +16,10 @@
<div class="main"> <div class="main">
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">项目归属</div> <div class="inname">项目归属</div>
</div> </div>
<div class="in"> <div class="in">
@@ -22,34 +30,60 @@
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">班级名称</div> <div class="inname">班级名称</div>
</div> </div>
<div class="in"> <div class="in">
<a-input v-model:value="projectName" placeholder="请输入项目名称" show-count :maxlength="30" /> <a-input
v-model:value="projectName"
placeholder="请输入项目名称"
show-count
:maxlength="30"
:disabled="viewDetail ? true : false"
/>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">分类</div> <div class="inname">分类</div>
</div> </div>
<div class="in select"> <div class="in select">
<a-select :getPopupContainer=" <a-select
:getPopupContainer="
(triggerNode) => { (triggerNode) => {
return triggerNode.parentNode || document.body; return triggerNode.parentNode || document.body;
} }
" v-model:value="classifySelect" placeholder="四个养成" style="width: 100%" :options="classifyList" "
@change="classificationChange" allowClear showSearch> v-model:value="classifySelect"
placeholder="四个养成"
style="width: 100%"
:options="classifyList"
@change="classificationChange"
allowClear
showSearch
:disabled="viewDetail ? true : false"
>
</a-select> </a-select>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">封面图</div> <div class="inname">封面图</div>
</div> </div>
<div class="box" style=" <div
class="box"
style="
width: 100px; width: 100px;
height: 100px; height: 100px;
border: 1px solid rgba(78, 166, 255, 1); border: 1px solid rgba(78, 166, 255, 1);
@@ -57,15 +91,30 @@
cursor: pointer; cursor: pointer;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
"> "
<a-upload v-model:file-list="fileList" name="file" list-type="picture-card" class="avatar-uploader" >
:show-upload-list="false" action="/api/file/upload" :before-upload="beforeUpload" @change="handleChange"> <a-upload
<img style=" v-model:file-list="fileList"
name="file"
list-type="picture-card"
class="avatar-uploader"
:show-upload-list="false"
action="/api/file/upload"
:before-upload="beforeUpload"
@change="handleChange"
:disabled="viewDetail ? true : false"
>
<img
style="
width: 100px; width: 100px;
height: 100px; height: 100px;
margin-bottom: 4px; margin-bottom: 4px;
margin-right: 4px; margin-right: 4px;
" v-if="imageUrl" :src="imageUrl" alt="avatar" /> "
v-if="imageUrl"
:src="imageUrl"
alt="avatar"
/>
<div v-else> <div v-else>
<!-- <loading-outlined v-if="loading"></loading-outlined> --> <!-- <loading-outlined v-if="loading"></loading-outlined> -->
<!-- <plus-outlined v-else></plus-outlined> --> <!-- <plus-outlined v-else></plus-outlined> -->
@@ -78,43 +127,74 @@
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">子项目时间</div> <div class="inname">子项目时间</div>
</div> </div>
<div class="in"> <div class="in">
<a-range-picker separator="至" :placeholder="[' 开始时间', ' 结束时间']" v-model:value="rangevalue" <a-range-picker
style="width: 100%; height: 40px; border-radius: 5px" @change="onRangeChange" /> separator="至"
:placeholder="[' 开始时间', ' 结束时间']"
v-model:value="rangevalue"
style="width: 100%; height: 40px; border-radius: 5px"
@change="onRangeChange"
:disabled="viewDetail ? true : false"
/>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">子项目经理</div> <div class="inname">子项目经理</div>
</div> </div>
<div class="in"> <div class="in">
<a-select :getPopupContainer=" <a-select
:getPopupContainer="
(triggerNode) => { (triggerNode) => {
return triggerNode.parentNode || document.body; return triggerNode.parentNode || document.body;
} }
" :value="classifySelect1" mode="multiple" placeholder="请选择项目经理" style="width: 100%" :options="classifyList1" "
@change="classificationChange1" allowClear showSearch> :value="classifySelect1"
mode="multiple"
placeholder="请选择项目经理"
style="width: 100%"
:options="classifyList1"
@change="classificationChange1"
allowClear
showSearch
:disabled="viewDetail ? true : false"
>
</a-select> </a-select>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">资源归属</div> <div class="inname">资源归属</div>
</div> </div>
<div class="in select"> <div class="in select">
<a-select :getPopupContainer=" <a-select
:getPopupContainer="
(triggerNode) => { (triggerNode) => {
return triggerNode.parentNode || document.body; return triggerNode.parentNode || document.body;
} }
" v-model:value="classifySelect2" placeholder="自动带出 可修改" :options="classifyList2" "
@change="classificationChange2" /> v-model:value="classifySelect2"
placeholder="自动带出 可修改"
:options="classifyList2"
@change="classificationChange2"
:disabled="viewDetail ? true : false"
/>
</div> </div>
</div> </div>
<div class="name name2"> <div class="name name2">
@@ -122,7 +202,14 @@
<div class="inname" style="margin-top: 13px">项目说明</div> <div class="inname" style="margin-top: 13px">项目说明</div>
</div> </div>
<div class="in"> <div class="in">
<a-textarea v-model:value="remark" style="height: 80px" placeholder="请输入说明" show-count :maxlength="200" /> <a-textarea
v-model:value="remark"
style="height: 80px"
placeholder="请输入说明"
show-count
:maxlength="200"
:disabled="viewDetail ? true : false"
/>
</div> </div>
</div> </div>
<div class="name name2"> <div class="name name2">
@@ -130,52 +217,89 @@
<div class="inname">同步学习记录</div> <div class="inname">同步学习记录</div>
</div> </div>
<div class="in"> <div class="in">
<a-radio @click="changeChecked" v-model:checked="checked"><span style=" <a-radio
@click="changeChecked"
v-model:checked="checked"
:disabled="viewDetail ? true : false"
><span
style="
width: 100%; width: 100%;
color: rgba(109, 117, 132, 1); color: rgba(109, 117, 132, 1);
font-size: 14px; font-size: 14px;
">同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span></a-radio> "
>同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span
></a-radio
>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">项目级别</div> <div class="inname">项目级别</div>
</div> </div>
<div class="in select"> <div class="in select">
<a-select :getPopupContainer=" <a-select
:getPopupContainer="
(triggerNode) => { (triggerNode) => {
return triggerNode.parentNode || document.body; return triggerNode.parentNode || document.body;
} }
" v-model:value="classifySelect3" :options="classifyList3" @change="classificationChange3" "
placeholder="集团级/组织级/现地级/部门级" /> v-model:value="classifySelect3"
:options="classifyList3"
@change="classificationChange3"
placeholder="集团级/组织级/现地级/部门级"
:disabled="viewDetail ? true : false"
/>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">培训体系</div> <div class="inname">培训体系</div>
</div> </div>
<div class="in select"> <div class="in select">
<a-select :getPopupContainer=" <a-select
:getPopupContainer="
(triggerNode) => { (triggerNode) => {
return triggerNode.parentNode || document.body; return triggerNode.parentNode || document.body;
} }
" v-model:value="classifySelect4" :options="classifyList4" @change="classificationChange4" "
placeholder="集团级/组织级/现地级/部门级" /> v-model:value="classifySelect4"
:options="classifyList4"
@change="classificationChange4"
placeholder="集团级/组织级/现地级/部门级"
:disabled="viewDetail ? true : false"
/>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">是否BOEU实施</div> <div class="inname">是否BOEU实施</div>
</div> </div>
<div class="in"> <div class="in">
<a-radio @click="changeChecked1" v-model:checked="checked1"><span style=" <a-radio
@click="changeChecked1"
v-model:checked="checked1"
:disabled="viewDetail ? true : false"
><span
style="
width: 100%; width: 100%;
color: rgba(109, 117, 132, 1); color: rgba(109, 117, 132, 1);
font-size: 14px; font-size: 14px;
">BOEU实施</span></a-radio> "
>BOEU实施</span
></a-radio
>
</div> </div>
</div> </div>
<!-- <div class="name name2"> <!-- <div class="name name2">
@@ -202,19 +326,36 @@
<div class="name"> <div class="name">
<div class="inname" style="width: 50px">模版</div> <div class="inname" style="width: 50px">模版</div>
<div class="in select" style="margin-left: 2px"> <div class="in select" style="margin-left: 2px">
<a-select v-if="isEdit" disabled="true" :getPopupContainer=" <a-select
v-if="isEdit"
disabled="true"
:getPopupContainer="
(triggerNode) => { (triggerNode) => {
return triggerNode.parentNode || document.body; return triggerNode.parentNode || document.body;
} }
" v-model:value="classifySelect5" placeholder="请选择模版" :size="size" style="width: 100%" :options="classifyList5" "
@change="classificationChange5"> v-model:value="classifySelect5"
placeholder="请选择模版"
:size="size"
style="width: 100%"
:options="classifyList5"
@change="classificationChange5"
>
</a-select> </a-select>
<a-select v-else :getPopupContainer=" <a-select
v-else
:getPopupContainer="
(triggerNode) => { (triggerNode) => {
return triggerNode.parentNode || document.body; return triggerNode.parentNode || document.body;
} }
" v-model:value="classifySelect5" placeholder="请选择模版" :size="size" style="width: 100%" :options="classifyList5" "
@change="classificationChange5"> v-model:value="classifySelect5"
placeholder="请选择模版"
:size="size"
style="width: 100%"
:options="classifyList5"
@change="classificationChange5"
>
</a-select> </a-select>
</div> </div>
</div> </div>
@@ -222,7 +363,9 @@
</div> </div>
<div class="footer"> <div class="footer">
<div class="btn"> <div class="btn">
<a-button v-on:click="createProject" type="primary" class="btn1">确定</a-button> <a-button v-on:click="createProject" type="primary" class="btn1"
>确定</a-button
>
<a-button @click="backPage" class="btn2">取消</a-button> <a-button @click="backPage" class="btn2">取消</a-button>
</div> </div>
</div> </div>
@@ -232,9 +375,9 @@
import { reactive, toRefs, ref } from "vue"; import { reactive, toRefs, ref } from "vue";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import { useRouter, useRoute } from "vue-router"; import { useRouter, useRoute } from "vue-router";
import dayjs from 'dayjs'; import dayjs from "dayjs";
import * as api from "../../api/index"; import * as api from "../../api/index";
import { toDate } from '../../api/method' import { toDate } from "../../api/method";
export default { export default {
name: "projectAdd", name: "projectAdd",
@@ -260,11 +403,12 @@ export default {
classifySelect4: [], classifySelect4: [],
rangevalue: [], rangevalue: [],
projectAscription: "", projectAscription: "",
viewDetail: routers.query.viewDetail ? routers.query.viewDetail : null,
}); });
if (routers.query.name == undefined) { if (routers.query.name == undefined) {
router.push({ router.push({
path: "/projectmanage" path: "/projectmanage",
}); });
} }
@@ -274,35 +418,38 @@ export default {
if (routers.query.edit !== undefined) { if (routers.query.edit !== undefined) {
isEdit.value = true; isEdit.value = true;
// 需要编辑 // 需要编辑
api.getProjectDetail({ projectId: routers.query.projectId }).then(res => { api
.getProjectDetail({ projectId: routers.query.projectId })
.then((res) => {
if (res.status == 200 && res.data.code == 200) { if (res.status == 200 && res.data.code == 200) {
let info = res.data.data.projectInfo; let info = res.data.data.projectInfo;
console.log(info) console.log(info);
// projectName classifySelect imageUrl * classifySelect1 * remark checked classifySelect3 classifySelect4 changeChecked1 * // projectName classifySelect imageUrl * classifySelect1 * remark checked classifySelect3 classifySelect4 changeChecked1 *
projectName.value = info.name; projectName.value = info.name;
state.classifySelect = classifyList.value[1]; // info.category state.classifySelect = classifyList.value[1]; // info.category
imageUrl.value = info.picUrl; imageUrl.value = info.picUrl;
let start = toDate(info.beginTime/1000,'YYYY/MM/DD'); let start = toDate(info.beginTime / 1000, "YYYY/MM/DD");
let end = toDate(info.endTime/1000,'YYYY/MM/DD'); let end = toDate(info.endTime / 1000, "YYYY/MM/DD");
state.rangevalue = [ state.rangevalue = [
dayjs(start, 'YYYY/MM/DD'), dayjs(start, "YYYY/MM/DD"),
dayjs(end, 'YYYY/MM/DD'), dayjs(end, "YYYY/MM/DD"),
]; ];
let manageName = info.manager.split(","); let manageName = info.manager.split(",");
let manageValue = info.managerId.split(","); let manageValue = info.managerId.split(",");
let optionsManage = [] let optionsManage = [];
for (let i = 0; i < manageName.length; i++) { for (let i = 0; i < manageName.length; i++) {
let obj = { let obj = {
label: manageName[i], label: manageName[i],
value: manageValue[i] value: manageValue[i],
};
optionsManage.push(obj);
} }
optionsManage.push(obj) console.log(optionsManage);
}
console.log(optionsManage)
state.classifySelect1 = optionsManage; state.classifySelect1 = optionsManage;
state.classifySelect2 = classifyList2.value[info.sourceBelongId - 1]; state.classifySelect2 =
classifyList2.value[info.sourceBelongId - 1];
remark.value = info.remark; remark.value = info.remark;
state.checked = info.boeFlag ? info.boeFlag : false; state.checked = info.boeFlag ? info.boeFlag : false;
state.classifySelect3 = classifyList3.value[info.level]; state.classifySelect3 = classifyList3.value[info.level];
@@ -323,7 +470,10 @@ export default {
boeFlag = info.boeFlag; boeFlag = info.boeFlag;
paraentID = Number(info.parentId); paraentID = Number(info.parentId);
} }
}).catch(err => { console.log(err) }) })
.catch((err) => {
console.log(err);
});
} else { } else {
paraentID = Number(routers.query.projectId); paraentID = Number(routers.query.projectId);
} }
@@ -331,12 +481,10 @@ export default {
const backPage = () => { const backPage = () => {
setTimeout(() => { setTimeout(() => {
router.push({ router.push({
path: "/projectmanage" path: "/projectmanage",
}); });
}, 400); }, 400);
} };
const projectName = ref(""); const projectName = ref("");
@@ -451,7 +599,7 @@ export default {
let beginTime = ""; let beginTime = "";
let endTime = ""; let endTime = "";
const dateFormatList = ['YYYY/MM/DD']; const dateFormatList = ["YYYY/MM/DD"];
const onRangeChange = (value, dateString) => { const onRangeChange = (value, dateString) => {
console.log("Selected Time: ", value); console.log("Selected Time: ", value);
@@ -492,7 +640,7 @@ export default {
let newoptions = []; let newoptions = [];
for (let i = 0; i < state.classifySelect1.length; i++) { for (let i = 0; i < state.classifySelect1.length; i++) {
if (state.classifySelect1[i].value) { if (state.classifySelect1[i].value) {
newoptions.push(state.classifySelect1[i]) newoptions.push(state.classifySelect1[i]);
} }
} }
state.classifySelect1 = newoptions; state.classifySelect1 = newoptions;
@@ -507,7 +655,7 @@ export default {
{ value: 3, label: "项目三" }, { value: 3, label: "项目三" },
]); ]);
let sourceBelongIdC = ''; let sourceBelongIdC = "";
const classificationChange2 = (key) => { const classificationChange2 = (key) => {
console.log(`selected ${key}`, classifyList2); console.log(`selected ${key}`, classifyList2);
sourceBelongIdC = key; sourceBelongIdC = key;
@@ -601,13 +749,13 @@ export default {
sourceBelongId: "请选择资源归属", sourceBelongId: "请选择资源归属",
level: "请填写项目级别", level: "请填写项目级别",
systemId: "请填写项目培训体系", systemId: "请填写项目培训体系",
boeFlag: "请选择是否BOE实施" boeFlag: "请选择是否BOE实施",
}; };
const createProject = () => { const createProject = () => {
console.log('我是否要编辑项目', isEdit.value) console.log("我是否要编辑项目", isEdit.value);
if (isEdit.value) { if (isEdit.value) {
console.log('我要编辑项目', peojectID) console.log("我要编辑项目", peojectID);
let obj = { let obj = {
projectId: Number(peojectID), projectId: Number(peojectID),
name: projectName["value"], name: projectName["value"],
@@ -652,7 +800,7 @@ export default {
message.success("编辑成功"); message.success("编辑成功");
setTimeout(() => { setTimeout(() => {
router.push({ router.push({
path: "/projectmanage" path: "/projectmanage",
}); });
}, 1000); }, 1000);
} else { } else {
@@ -665,7 +813,6 @@ export default {
message.destroy(); message.destroy();
message.error("编辑失败,请检查当前网络状态。"); message.error("编辑失败,请检查当前网络状态。");
}); });
} else { } else {
let obj = { let obj = {
name: projectName["value"], name: projectName["value"],

View File

@@ -28,6 +28,7 @@
placeholder="请输入项目名称" placeholder="请输入项目名称"
show-count show-count
:maxlength="30" :maxlength="30"
:disabled="viewDetail ? true : false"
/> />
</div> </div>
</div> </div>
@@ -53,6 +54,7 @@
@change="classificationChange" @change="classificationChange"
allowClear allowClear
showSearch showSearch
:disabled="viewDetail ? true : false"
> >
</a-select> </a-select>
</div> </div>
@@ -86,6 +88,7 @@
action="/api/file/upload" action="/api/file/upload"
:before-upload="beforeUpload" :before-upload="beforeUpload"
@change="handleChange" @change="handleChange"
:disabled="viewDetail ? true : false"
> >
<img <img
style=" style="
@@ -124,6 +127,7 @@
v-model:value="rangevalue" v-model:value="rangevalue"
style="width: 100%; height: 40px; border-radius: 5px" style="width: 100%; height: 40px; border-radius: 5px"
@change="onRangeChange" @change="onRangeChange"
:disabled="viewDetail ? true : false"
/> />
</div> </div>
</div> </div>
@@ -150,6 +154,7 @@
@change="classificationChange1" @change="classificationChange1"
allowClear allowClear
showSearch showSearch
:disabled="viewDetail ? true : false"
> >
</a-select> </a-select>
</div> </div>
@@ -174,6 +179,7 @@
placeholder="自动带出 可修改" placeholder="自动带出 可修改"
:options="classifyList2" :options="classifyList2"
@change="classificationChange2" @change="classificationChange2"
:disabled="viewDetail ? true : false"
/> />
</div> </div>
</div> </div>
@@ -188,6 +194,7 @@
placeholder="请输入说明" placeholder="请输入说明"
show-count show-count
:maxlength="200" :maxlength="200"
:disabled="viewDetail ? true : false"
/> />
</div> </div>
</div> </div>
@@ -196,7 +203,10 @@
<div class="inname">同步学习记录</div> <div class="inname">同步学习记录</div>
</div> </div>
<div class="in"> <div class="in">
<a-radio @click="changeChecked" v-model:checked="checked" <a-radio
@click="changeChecked"
v-model:checked="checked"
:disabled="viewDetail ? true : false"
><span ><span
style=" style="
width: 100%; width: 100%;
@@ -227,6 +237,7 @@
:options="classifyList3" :options="classifyList3"
@change="classificationChange3" @change="classificationChange3"
placeholder="集团级/组织级/现地级/部门级" placeholder="集团级/组织级/现地级/部门级"
:disabled="viewDetail ? true : false"
/> />
</div> </div>
</div> </div>
@@ -249,6 +260,7 @@
:options="classifyList4" :options="classifyList4"
@change="classificationChange4" @change="classificationChange4"
placeholder="集团级/组织级/现地级/部门级" placeholder="集团级/组织级/现地级/部门级"
:disabled="viewDetail ? true : false"
/> />
</div> </div>
</div> </div>
@@ -261,7 +273,10 @@
<div class="inname">是否BOEU实施</div> <div class="inname">是否BOEU实施</div>
</div> </div>
<div class="in"> <div class="in">
<a-radio @click="changeChecked1" v-model:checked="checked1" <a-radio
@click="changeChecked1"
v-model:checked="checked1"
:disabled="viewDetail ? true : false"
><span ><span
style=" style="
width: 100%; width: 100%;
@@ -509,6 +524,7 @@ export default {
tableDataTotal: -1, //模版列表总数 tableDataTotal: -1, //模版列表总数
pageSize: 10, //每页10条数据 pageSize: 10, //每页10条数据
totalPages: 0, //总页数 totalPages: 0, //总页数
viewDetail: routers.query.viewDetail ? routers.query.viewDetail : null,
}); });
const projectName = ref(""); const projectName = ref("");

View File

@@ -816,10 +816,10 @@
<span>您确定要复制此路径吗</span> <span>您确定要复制此路径吗</span>
</div> </div>
<div class="del_btnbox"> <div class="del_btnbox">
<div class="del_btn btn1" @click="delete_exit"> <div class="del_btn btn1" @click="closeCopyModal">
<div class="btnText">取消</div> <div class="btnText">取消</div>
</div> </div>
<div class="del_btn btn2" @click="delete_exit"> <div class="del_btn btn2" @click="copyProject">
<div class="btnText">确定</div> <div class="btnText">确定</div>
</div> </div>
</div> </div>
@@ -1093,6 +1093,7 @@ export default {
finishProjectId: null, //结束的项目id finishProjectId: null, //结束的项目id
deleteProjectId: null, //删除的项目id deleteProjectId: null, //删除的项目id
templateProjectId: null, //存为模版的项目id templateProjectId: null, //存为模版的项目id
copyProjectId: null, //复制项目id
}); });
// 数据接入 - start - // 数据接入 - start -
const router = useRouter(); const router = useRouter();
@@ -1922,6 +1923,34 @@ export default {
const closeStartModal = () => { const closeStartModal = () => {
state.startModal = false; state.startModal = false;
}; };
//打开确认复制弹窗
const showCopyModal = (projectId) => {
state.copyModal = true;
state.copyProjectId = projectId;
};
//关闭确认复制弹窗
const closeCopyModal = () => {
state.copyModal = false;
};
//确认复制
const copyProject = () => {
let obj = {
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);
});
};
// 数据接入 - end - // 数据接入 - end -
@@ -2119,7 +2148,7 @@ export default {
<a-select-option value="复制" label="复制"> <a-select-option value="复制" label="复制">
<div <div
onClick={() => { onClick={() => {
showCopyModal(); showCopyModal(value.record.projectId);
}} }}
> >
复制 复制
@@ -2190,7 +2219,7 @@ export default {
<span <span
class="operation3" class="operation3"
// onClick={() => { // onClick={() => {
// showCopyModal(); // showCopyModal(value.record.projectId);
// }} // }}
></span> ></span>
@@ -2217,7 +2246,7 @@ export default {
<a-select-option value="复制" label="复制"> <a-select-option value="复制" label="复制">
<div <div
onClick={() => { onClick={() => {
showCopyModal(); showCopyModal(value.record.projectId);
}} }}
> >
复制 复制
@@ -2279,7 +2308,7 @@ export default {
<span <span
class="operation3" class="operation3"
// onClick={() => { // onClick={() => {
// showCopyModal(); // showCopyModal(value.record.projectId);
// }} // }}
></span> ></span>
<div class="tableSelect"> <div class="tableSelect">
@@ -2305,7 +2334,7 @@ export default {
<a-select-option value="复制" label="复制"> <a-select-option value="复制" label="复制">
<div <div
onClick={() => { onClick={() => {
showCopyModal(); showCopyModal(value.record.projectId);
}} }}
> >
复制 复制
@@ -2420,7 +2449,7 @@ export default {
<a-select-option value="复制" label="复制"> <a-select-option value="复制" label="复制">
<div <div
onClick={() => { onClick={() => {
showCopyModal(); showCopyModal(value.record.projectId);
}} }}
> >
复制 复制
@@ -2502,7 +2531,7 @@ export default {
<a-select-option value="复制" label="复制"> <a-select-option value="复制" label="复制">
<div <div
onClick={() => { onClick={() => {
showCopyModal(); showCopyModal(value.record.projectId);
}} }}
> >
复制 复制
@@ -2572,7 +2601,7 @@ export default {
<a-select-option value="复制" label="复制"> <a-select-option value="复制" label="复制">
<div <div
onClick={() => { onClick={() => {
showCopyModal(); showCopyModal(value.record.projectId);
}} }}
> >
复制 复制
@@ -2641,6 +2670,52 @@ export default {
</span> </span>
) : ( ) : (
<span class="operation1"></span> <span class="operation1"></span>
// <span
// onClick={() => {
// console.log("单层子项目的编辑");
// console.log(value);
// {
// /* 判断是班级\单层项目\单层子项目 */
// }
// if (value.record.parentId == "0") {
// router.push({
// path: "/projectadd",
// query: {
// projectId: value.record.projectId,
// name: value.record.name,
// viewDetail:1,
// },
// });
// } else {
// if (value.record.isbj) {
// router.push({
// path: "/classadd",
// query: {
// projectId: value.record.projectId,
// name: value.record.paraentName,
// edit: 0,
// viewDetail:1,
// },
// });
// } else {
// router.push({
// path: "/sonproject",
// query: {
// projectId: value.record.projectId,
// name: value.record.paraentName,
// edit: 0,
// viewDetail:1,
// },
// });
// }
// }
// }}
// style="cursor:pointer;"
// class="operation1"
// >
// 查看
// </span>
)} )}
<div class="tableSelect"> <div class="tableSelect">
<a-select <a-select
@@ -2727,7 +2802,7 @@ export default {
<a-select-option value="复制" label="复制"> <a-select-option value="复制" label="复制">
<div <div
onClick={() => { onClick={() => {
showCopyModal(); showCopyModal(value.record.projectId);
}} }}
> >
复制 复制
@@ -2774,16 +2849,16 @@ export default {
// options={state.projectNameList} // options={state.projectNameList}
dropdownClassName="tabledropdown" dropdownClassName="tabledropdown"
> >
<a-select-option value="存为模版" label="存为模版">
<a-select-option value="复制" label="复制"> <a-select-option value="复制" label="复制">
<div <div
onClick={() => { onClick={() => {
showCopyModal(); showCopyModal(value.record.projectId);
}} }}
> >
复制 复制
</div> </div>
</a-select-option> </a-select-option>
<a-select-option value="存为模版" label="存为模版">
<div <div
onClick={() => { onClick={() => {
showStartModal(value.record.projectId); showStartModal(value.record.projectId);
@@ -2842,7 +2917,7 @@ export default {
<a-select-option value="复制" label="复制"> <a-select-option value="复制" label="复制">
<div <div
onClick={() => { onClick={() => {
showCopyModal(); showCopyModal(value.record.projectId);
}} }}
> >
复制 复制
@@ -2978,12 +3053,6 @@ export default {
state.doublesonpro = true; state.doublesonpro = true;
state.sonproject = false; state.sonproject = false;
}; };
const showCopyModal = () => {
state.copyModal = true;
};
const closeCopyModal = () => {
state.copyModal = false;
};
const showProjOwner = () => { const showProjOwner = () => {
state.ProjOwnervisible = true; state.ProjOwnervisible = true;
@@ -3098,6 +3167,7 @@ export default {
finishProject, finishProject,
deleteProject, deleteProject,
templateProject, templateProject,
copyProject,
}; };
}, },
}; };

View File

@@ -26,7 +26,7 @@
<div class="inname">子项目名称</div> <div class="inname">子项目名称</div>
</div> </div>
<div class="in"> <div class="in">
<a-input v-model:value="projectName" placeholder="请输入项目名称" show-count :maxlength="30" /> <a-input v-model:value="projectName" placeholder="请输入项目名称" show-count :maxlength="30" :disabled="viewDetail ? true : false" />
</div> </div>
</div> </div>
<div class="name"> <div class="name">
@@ -40,7 +40,7 @@
return triggerNode.parentNode || document.body; return triggerNode.parentNode || document.body;
} }
" v-model:value="classifySelect" placeholder="四个养成" style="width: 100%" :options="classifyList" " v-model:value="classifySelect" placeholder="四个养成" style="width: 100%" :options="classifyList"
@change="classificationChange" allowClear showSearch> @change="classificationChange" allowClear showSearch :disabled="viewDetail ? true : false">
</a-select> </a-select>
</div> </div>
</div> </div>
@@ -59,7 +59,7 @@
overflow: hidden; overflow: hidden;
"> ">
<a-upload v-model:file-list="fileList" name="file" list-type="picture-card" class="avatar-uploader" <a-upload v-model:file-list="fileList" name="file" list-type="picture-card" class="avatar-uploader"
:show-upload-list="false" action="/api/file/upload" :before-upload="beforeUpload" @change="handleChange"> :show-upload-list="false" action="/api/file/upload" :before-upload="beforeUpload" @change="handleChange" :disabled="viewDetail ? true : false">
<img style=" <img style="
width: 100px; width: 100px;
height: 100px; height: 100px;
@@ -84,7 +84,7 @@
<div class="in"> <div class="in">
<a-range-picker separator="至" :placeholder="[' 开始时间', ' 结束时间']" v-model:value="rangevalue" <a-range-picker separator="至" :placeholder="[' 开始时间', ' 结束时间']" v-model:value="rangevalue"
style="width: 100%; height: 40px; border-radius: 5px" @change="onRangeChange" /> style="width: 100%; height: 40px; border-radius: 5px" @change="onRangeChange" :disabled="viewDetail ? true : false" />
</div> </div>
</div> </div>
<div class="name"> <div class="name">
@@ -98,7 +98,7 @@
return triggerNode.parentNode || document.body; return triggerNode.parentNode || document.body;
} }
" :value="classifySelect1" mode="multiple" placeholder="请选择项目经理" style="width: 100%" :options="classifyList1" " :value="classifySelect1" mode="multiple" placeholder="请选择项目经理" style="width: 100%" :options="classifyList1"
@change="classificationChange1" allowClear showSearch> @change="classificationChange1" allowClear showSearch :disabled="viewDetail ? true : false">
</a-select> </a-select>
</div> </div>
</div> </div>
@@ -114,7 +114,7 @@
return triggerNode.parentNode || document.body; return triggerNode.parentNode || document.body;
} }
" v-model:value="classifySelect2" placeholder="自动带出 可修改" :options="classifyList2" " v-model:value="classifySelect2" placeholder="自动带出 可修改" :options="classifyList2"
@change="classificationChange2" /> @change="classificationChange2" :disabled="viewDetail ? true : false" />
</div> </div>
</div> </div>
<div class="name name2"> <div class="name name2">
@@ -122,7 +122,7 @@
<div class="inname" style="margin-top: 13px">项目说明</div> <div class="inname" style="margin-top: 13px">项目说明</div>
</div> </div>
<div class="in"> <div class="in">
<a-textarea v-model:value="remark" style="height: 80px" placeholder="请输入说明" show-count :maxlength="200" /> <a-textarea v-model:value="remark" style="height: 80px" placeholder="请输入说明" show-count :maxlength="200" :disabled="viewDetail ? true : false"/>
</div> </div>
</div> </div>
<div class="name name2"> <div class="name name2">
@@ -130,7 +130,7 @@
<div class="inname">同步学习记录</div> <div class="inname">同步学习记录</div>
</div> </div>
<div class="in"> <div class="in">
<a-radio @click="changeChecked" v-model:checked="checked"><span style=" <a-radio @click="changeChecked" v-model:checked="checked" :disabled="viewDetail ? true : false"><span style="
width: 100%; width: 100%;
color: rgba(109, 117, 132, 1); color: rgba(109, 117, 132, 1);
font-size: 14px; font-size: 14px;
@@ -148,7 +148,7 @@
return triggerNode.parentNode || document.body; return triggerNode.parentNode || document.body;
} }
" v-model:value="classifySelect3" :options="classifyList3" @change="classificationChange3" " v-model:value="classifySelect3" :options="classifyList3" @change="classificationChange3"
placeholder="集团级/组织级/现地级/部门级" /> placeholder="集团级/组织级/现地级/部门级" :disabled="viewDetail ? true : false" />
</div> </div>
</div> </div>
<div class="name"> <div class="name">
@@ -162,7 +162,7 @@
return triggerNode.parentNode || document.body; return triggerNode.parentNode || document.body;
} }
" v-model:value="classifySelect4" :options="classifyList4" @change="classificationChange4" " v-model:value="classifySelect4" :options="classifyList4" @change="classificationChange4"
placeholder="集团级/组织级/现地级/部门级" /> placeholder="集团级/组织级/现地级/部门级" :disabled="viewDetail ? true : false" />
</div> </div>
</div> </div>
<div class="name"> <div class="name">
@@ -171,7 +171,7 @@
<div class="inname">是否BOEU实施</div> <div class="inname">是否BOEU实施</div>
</div> </div>
<div class="in"> <div class="in">
<a-radio @click="changeChecked1" v-model:checked="checked1"><span style=" <a-radio @click="changeChecked1" v-model:checked="checked1" :disabled="viewDetail ? true : false"><span style="
width: 100%; width: 100%;
color: rgba(109, 117, 132, 1); color: rgba(109, 117, 132, 1);
font-size: 14px; font-size: 14px;
@@ -260,6 +260,7 @@ export default {
classifySelect4: [], classifySelect4: [],
rangevalue: [], rangevalue: [],
projectAscription: "", projectAscription: "",
viewDetail:routers.query.viewDetail?routers.query.viewDetail:null
}); });
if (routers.query.name == undefined) { if (routers.query.name == undefined) {

View File

@@ -477,6 +477,7 @@
style="cursor: pointer" style="cursor: pointer"
@click="showCodeModal" @click="showCodeModal"
> >
<!-- 我的@click=" showCopyModal(item.type)" -->
二维码 二维码
</div> </div>
<div <div
@@ -487,17 +488,15 @@
item.type == '3' || item.type == '3' ||
item.type == '7' || item.type == '7' ||
item.type == '8' || item.type == '8' ||
item.type == '6' || item.type == '9' ||
item.type == '11' || item.type == '11'
item.type == '12' ||
item.type == '9'
? showTime(item.name, item.projectTaskId) ? showTime(item.name, item.projectTaskId)
: item.type == '5' || item.type == '10' : item.type == '5' || item.type == '10'
? showTest(item.name, item.projectTaskId) ? showTest(item.name, item.projectTaskId)
: item.type == '2' : item.type == '2' || item.type == '6'
? showFace(item.projectTaskId) ? showFace(item.name,item.projectTaskId)
: item.type == '4' : item.type == '4'
? showWork(item.projectTaskId) ? showWork(item.name,item.projectTaskId)
: null : null
" "
> >
@@ -1087,6 +1086,7 @@
v-model:Fvisible.sync="FaceVisivle" v-model:Fvisible.sync="FaceVisivle"
v-if="FaceVisivle" v-if="FaceVisivle"
:projectTaskId="projectTaskId" :projectTaskId="projectTaskId"
:title="showFaceText"
/> />
<!-- 学员小组管理创建小组抽屉 --> <!-- 学员小组管理创建小组抽屉 -->
<subset-manage v-model:Svisible="subsetVisivle" /> <subset-manage v-model:Svisible="subsetVisivle" />
@@ -1120,62 +1120,36 @@
v-model:Wvisible.sync="Wvisible" v-model:Wvisible.sync="Wvisible"
v-if="Wvisible" v-if="Wvisible"
:projectTaskId="projectTaskId" :projectTaskId="projectTaskId"
:title="showWorkText"
/> />
<!-- 考试管理抽屉 --> <!-- 考试管理抽屉 -->
<test-manage <test-manage v-model:TMvisible.sync="TMvisible" v-if="TMvisible" :title="showTestText" :projectTaskId="projectTaskId" />
v-model:TMvisible.sync="TMvisible"
v-if="Wvisible"
:title="showTestText"
:projectTaskId="projectTaskId"
/>
<!-- 批量面授报名 --> <!-- 批量面授报名 -->
<task-imp-stu v-model:TaskFaceImpStuvisible="TaskFaceImpStuvisible" /> <task-imp-stu v-model:TaskFaceImpStuvisible="TaskFaceImpStuvisible" />
<!-- 概览无数据-项目发布弹窗 --> <!-- 概览无数据-项目发布弹窗 -->
<div> <div>
<a-modal <a-modal v-model:visible="pubproject" :title="null" @ok="closeModal" :footer="null" :closable="false" :centered="true"
v-model:visible="pubproject" wrapClassName="pubproject" width="679px" height="437px">
:title="null" <div class="modalHeader" style="
@ok="closeModal"
:footer="null"
:closable="false"
:centered="true"
wrapClassName="pubproject"
width="679px"
height="437px"
>
<div
class="modalHeader"
style="
width: 100%; width: 100%;
height: 68px; height: 68px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
" ">
>
<div class="headerLeft" style="margin-left: 32px"> <div class="headerLeft" style="margin-left: 32px">
<span style="width: 15px; height: 15px" <span style="width: 15px; height: 15px"><img src="../../assets/images/taskpage/pub.png" /></span>
><img src="../../assets/images/taskpage/pub.png" <span class="headerLeftText" style="font-size: 16px; margin-left: 10px">项目发布</span>
/></span>
<span
class="headerLeftText"
style="font-size: 16px; margin-left: 10px"
>项目发布</span
>
</div> </div>
<div style="cursor: pointer; margin-right: 32px" @click="closeModal"> <div style="cursor: pointer; margin-right: 32px" @click="closeModal">
<img <img style="width: 22px; height: 22px" src="../../assets/images/basicinfo/close22.png" />
style="width: 22px; height: 22px"
src="../../assets/images/basicinfo/close22.png"
/>
</div> </div>
</div> </div>
<div class="modalMain"> <div class="modalMain">
<div class="projectname">管理者进阶-腾飞班1</div> <div class="projectname">管理者进阶-腾飞班1</div>
<div class="projecttime"> <div class="projecttime">
<span class="timeti">项目时间</span <span class="timeti">项目时间</span><span class="timeme">2022/08/01-2022/08/30</span>
><span class="timeme">2022/08/01-2022/08/30</span>
</div> </div>
<div class="projectbox"> <div class="projectbox">
<div class="promessage"> <div class="promessage">
@@ -1192,12 +1166,8 @@
<span class="sendtext">发送项目通知</span> <span class="sendtext">发送项目通知</span>
</div> </div>
<div class="ckb"> <div class="ckb">
<a-checkbox v-model:checked="checked1" <a-checkbox v-model:checked="checked1"><span class="sendpeo">发给老师</span></a-checkbox>
><span class="sendpeo">发给老师</span></a-checkbox <a-checkbox v-model:checked="checked2"><span class="sendpeo">发给学员</span></a-checkbox>
>
<a-checkbox v-model:checked="checked2"
><span class="sendpeo">发给学员</span></a-checkbox
>
</div> </div>
<div class="pubtn"> <div class="pubtn">
<a-button class="pubtn1" @click="closeModal">取消</a-button> <a-button class="pubtn1" @click="closeModal">取消</a-button>
@@ -1209,68 +1179,39 @@
<!-- 概览无数据-项目发布弹窗 --> <!-- 概览无数据-项目发布弹窗 -->
<!-- 学员-创建小组弹窗 --> <!-- 学员-创建小组弹窗 -->
<div> <div>
<a-modal <a-modal v-model:visible="stugroup" :title="null" @ok="closeModal2" :footer="null" :closable="false" :centered="true"
v-model:visible="stugroup" wrapClassName="doublepro" width="624px" height="332px">
:title="null" <div class="modalHeader" style="
@ok="closeModal2"
:footer="null"
:closable="false"
:centered="true"
wrapClassName="doublepro"
width="624px"
height="332px"
>
<div
class="modalHeader"
style="
width: 100%; width: 100%;
height: 68px; height: 68px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
" ">
>
<div class="headerLeft" style="margin-left: 32px"> <div class="headerLeft" style="margin-left: 32px">
<span class="headerLeftText" style="font-size: 16px">创建小组</span> <span class="headerLeftText" style="font-size: 16px">创建小组</span>
</div> </div>
<div style="cursor: pointer; margin-right: 32px" @click="closeModal2"> <div style="cursor: pointer; margin-right: 32px" @click="closeModal2">
<img <img style="width: 22px; height: 22px" src="../../assets/images/basicinfo/close22.png" />
style="width: 22px; height: 22px"
src="../../assets/images/basicinfo/close22.png"
/>
</div> </div>
</div> </div>
<div class="modalMain"> <div class="modalMain">
<div class="name"> <div class="name">
<div class="star" style="margin-top: -4px"> <div class="star" style="margin-top: -4px">
<img <img style="width: 10px; height: 10px" src="../../assets/images/basicinfo/asterisk.png" />
style="width: 10px; height: 10px"
src="../../assets/images/basicinfo/asterisk.png"
/>
</div> </div>
<div class="inname">小组名称:</div> <div class="inname">小组名称:</div>
<div class="in"> <div class="in">
<a-input <a-input v-model:value="valueaddg" placeholder="请输入小组名称" style="border-radius: 8px; height: 40px" />
v-model:value="valueaddg"
placeholder="请输入小组名称"
style="border-radius: 8px; height: 40px"
/>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
<div class="star" style="margin-top: -4px"> <div class="star" style="margin-top: -4px">
<img <img style="width: 10px; height: 10px; margin-left: 15px" src="../../assets/images/basicinfo/asterisk.png" />
style="width: 10px; height: 10px; margin-left: 15px"
src="../../assets/images/basicinfo/asterisk.png"
/>
</div> </div>
<div class="inname">小组长:</div> <div class="inname">小组长:</div>
<div class="in"> <div class="in">
<a-input <a-input v-model:value="valueaddm" placeholder="请输入小组长" style="border-radius: 8px; height: 40px" />
v-model:value="valueaddm"
placeholder="请输入小组长"
style="border-radius: 8px; height: 40px"
/>
</div> </div>
</div> </div>
<div class="pubtn"> <div class="pubtn">
@@ -1283,14 +1224,8 @@
<!-- 学员-创建小组弹窗 --> <!-- 学员-创建小组弹窗 -->
<!-- 取消学员弹窗 --> <!-- 取消学员弹窗 -->
<div> <div>
<a-modal <a-modal v-model:visible="canclestu" :footer="null" :closable="close" wrapClassName="canclestu" centered="true"
v-model:visible="canclestu" @cancel="closeModal1">
:footer="null"
:closable="close"
wrapClassName="canclestu"
centered="true"
@cancel="closeModal1"
>
<div class="delete"> <div class="delete">
<div class="del_header"></div> <div class="del_header"></div>
<div class="del_main"> <div class="del_main">
@@ -1316,13 +1251,7 @@
<!-- 取消学员弹窗 --> <!-- 取消学员弹窗 -->
<!-- 优秀学员弹窗 --> <!-- 优秀学员弹窗 -->
<div> <div>
<a-modal <a-modal v-model:visible="canclestu1" :footer="null" :closable="close" wrapClassName="canclestu1" centered="true">
v-model:visible="canclestu1"
:footer="null"
:closable="close"
wrapClassName="canclestu1"
centered="true"
>
<div class="delete"> <div class="delete">
<div class="del_header"></div> <div class="del_header"></div>
<div class="del_main"> <div class="del_main">
@@ -1348,13 +1277,7 @@
<!-- 取消学员弹窗 --> <!-- 取消学员弹窗 -->
<!-- 删除学员弹窗 --> <!-- 删除学员弹窗 -->
<div> <div>
<a-modal <a-modal v-model:visible="deleteOneStu" :footer="null" :closable="close" wrapClassName="canclestu1" centered="true">
v-model:visible="deleteOneStu"
:footer="null"
:closable="close"
wrapClassName="canclestu1"
centered="true"
>
<div class="delete"> <div class="delete">
<div class="del_header"></div> <div class="del_header"></div>
<div class="del_main"> <div class="del_main">
@@ -1381,14 +1304,8 @@
<!-- 删除弹窗 --> <!-- 删除弹窗 -->
<div> <div>
<a-modal <a-modal v-model:visible="delete_hs" :footer="null" :closable="closableQR" wrapClassName="DelModal"
v-model:visible="delete_hs" style="margin-top: 400px" @cancel="delete_exit">
:footer="null"
:closable="closableQR"
wrapClassName="DelModal"
style="margin-top: 400px"
@cancel="delete_exit"
>
<div class="delete" :style="{ display: delete_hs ? 'block' : 'none' }"> <div class="delete" :style="{ display: delete_hs ? 'block' : 'none' }">
<div class="del_header"></div> <div class="del_header"></div>
<div class="del_main"> <div class="del_main">
@@ -1413,21 +1330,26 @@
</a-modal> </a-modal>
</div> </div>
<!-- 删除弹窗 --> <!-- 删除弹窗 -->
<!-- 管理二维码 -->
<!-- 面授管理二维码 --> <a-modal v-model:visible="copyModal" :footer="null" :closable="closeCopy" wrapClassName="facemanageModal"
<a-modal centered="true">
v-model:visible="copyModal"
:footer="null"
:closable="closeCopy"
wrapClassName="facemanageModal"
centered="true"
>
<div class="delete"> <div class="delete">
<div class="del_header"></div> <div class="del_header"></div>
<div class="del_main"> <div class="del_main">
<div class="header"> <div class="header">
<div class="icon"></div> <div class="icon"></div>
<span>面授管理</span> <span v-if="QRtype == '1'">在线管理</span>
<span v-if="QRtype == '2'">面授管理</span>
<span v-if="QRtype == '3'">案例管理</span>
<span v-if="QRtype == '4'">作业管理</span>
<span v-if="QRtype == '5'">考试管理</span>
<span v-if="QRtype == '6'">直播管理</span>
<span v-if="QRtype == '7'">外链管理</span>
<span v-if="QRtype == '8'">讨论管理</span>
<span v-if="QRtype == '9'">活动管理</span>
<span v-if="QRtype == '10'">测评管理</span>
<span v-if="QRtype == '11'">评估管理</span>
<span v-if="QRtype == '12'">投票管理</span>
<div class="close_exit" @click="closeCopyModal"></div> <div class="close_exit" @click="closeCopyModal"></div>
</div> </div>
<div class="body"> <div class="body">
@@ -1442,62 +1364,6 @@
</div> </div>
</div> </div>
</a-modal> </a-modal>
<!-- 直播管理二维码 -->
<a-modal
v-model:visible="zhibModal"
:footer="null"
:closable="closeCopy"
wrapClassName="facemanageModal"
centered="true"
>
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="icon"></div>
<span>直播管理</span>
<div class="close_exit" @click="closezhibModal"></div>
</div>
<div class="body">
<div><img src="../../assets/images/taskpage/erweima.png" /></div>
</div>
<div class="footerr">
<div class="onload">下载二维码</div>
<div class="onloadpx">200*200</div>
<div class="onloadpx">400*400</div>
<div class="onloadpx">800*800</div>
</div>
</div>
</div>
</a-modal>
<!-- 活动管理二维码 -->
<a-modal
v-model:visible="huodModal"
:footer="null"
:closable="closeCopy"
wrapClassName="facemanageModal"
centered="true"
>
<div class="delete">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="icon"></div>
<span>活动管理</span>
<div class="close_exit" @click="closehuodModal"></div>
</div>
<div class="body">
<div><img src="../../assets/images/taskpage/erweima.png" /></div>
</div>
<div class="footerr">
<div class="onload">下载二维码</div>
<div class="onloadpx">200*200</div>
<div class="onloadpx">400*400</div>
<div class="onloadpx">800*800</div>
</div>
</div>
</div>
</a-modal>
<!-- 批量删除弹窗 --> <!-- 批量删除弹窗 -->
<div> <div>
<a-modal <a-modal
@@ -1886,7 +1752,7 @@ export default {
copyModal: false, //面授二维码弹窗 copyModal: false, //面授二维码弹窗
closeCopy: false, //面授二维码关闭图标 closeCopy: false, //面授二维码关闭图标
zhibModal: false, //直播二维码弹窗 zhibModal: false, //直播二维码弹窗
QRtype: "", //二维码标题
huodModal: false, //活动二维码弹窗 huodModal: false, //活动二维码弹窗
allDelete: false, //批量删除弹窗 allDelete: false, //批量删除弹窗
@@ -2385,13 +2251,18 @@ export default {
], ],
taskSyllabusActive: 0, taskSyllabusActive: 0,
//在线管理等页面传递参数 //在线管理等页面传递参数title
showTimeText: "", showTimeText: "",
//考试、测评页面传递参数 //考试、测评页面传递参数title
showTestText: "", showTestText: "",
//直播、面授传递title
showFaceText:"",
//直播、面授传递title
showWorkText:"",
//直播、活动页面传递参数 //直播、活动页面传递参数
showkaoqinText: "", showkaoqinText: "",
//排行榜时间 //排行榜时间
rankStartTime: null, rankStartTime: null,
rankEndTime: null, rankEndTime: null,
@@ -2647,8 +2518,33 @@ export default {
state.stugroup = false; state.stugroup = false;
} }
}; };
const showCopyModal = () => { const showCopyModal = (itemtype) => {
state.copyModal = true; state.copyModal = true;
if (itemtype == "1") {
state.QRtype = "1"
} else if (itemtype == "2") {
state.QRtype = "2"
} else if (itemtype == "3") {
state.QRtype = "3"
} else if (itemtype == "4") {
state.QRtype = "4"
} else if (itemtype == "5") {
state.QRtype = "5"
} else if (itemtype == "6") {
state.QRtype = "6"
} else if (itemtype == "7") {
state.QRtype = "7"
} else if (itemtype == "8") {
state.QRtype = "8"
} else if (itemtype == "9") {
state.QRtype = "9"
} else if (itemtype == "10") {
state.QRtype = "10"
} else if (itemtype == "11") {
state.QRtype = "11"
} else if (itemtype == "12") {
state.QRtype = "12"
}
}; };
const closeCopyModal = () => { const closeCopyModal = () => {
state.copyModal = false; state.copyModal = false;
@@ -2664,10 +2560,11 @@ export default {
state.projectTaskId = id; state.projectTaskId = id;
}; };
//新增 //新增
const showFace = (id) => { const showFace = (name, id) => {
//面授管理的抽屉 //面授管理的抽屉
// console.log("点击管理"); // console.log("点击管理");
state.FaceVisivle = true; state.FaceVisivle = true;
state.showFaceText = name;
state.projectTaskId = id; state.projectTaskId = id;
}; };
const showSubset = () => { const showSubset = () => {
@@ -2690,8 +2587,9 @@ export default {
state.showkaoqinText = "【" + course + "】" + "考勤"; state.showkaoqinText = "【" + course + "】" + "考勤";
}; };
//作业管理的抽屉 //作业管理的抽屉
const showWork = (id) => { const showWork = (name,id) => {
state.Wvisible = true; state.Wvisible = true;
state.showWorkText = name;
state.projectTaskId = id; state.projectTaskId = id;
}; };
//考试管理的抽屉 //考试管理的抽屉