mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-13 04:46:46 +08:00
面授课bug
This commit is contained in:
31
src/App.vue
31
src/App.vue
@@ -1,27 +1,27 @@
|
||||
<template>
|
||||
<div id="container" v-if="!isLogin">
|
||||
<nav-top/>
|
||||
<nav-top />
|
||||
<div style="display: flex">
|
||||
<nav-left/>
|
||||
<nav-left />
|
||||
<div style="flex: 1; display: flex; flex-direction: column; width: 0">
|
||||
<open-pages/>
|
||||
<bread-crumb/>
|
||||
<open-pages />
|
||||
<bread-crumb />
|
||||
<main>
|
||||
<a-config-provider :locale="zhCN">
|
||||
<router-view/>
|
||||
<router-view />
|
||||
</a-config-provider>
|
||||
</main>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="container" v-if="isLogin">
|
||||
<router-view/>
|
||||
<router-view />
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import {computed, defineComponent, ref, watch} from "vue";
|
||||
import {useRouter, useRoute} from "vue-router";
|
||||
import {useStore} from "vuex";
|
||||
import { computed, defineComponent, ref, watch } from "vue";
|
||||
import { useRouter, useRoute } from "vue-router";
|
||||
import { useStore } from "vuex";
|
||||
import NavLeft from "@/components/NavLeft";
|
||||
import NavTop from "@/components/NavTop";
|
||||
import OpenPages from "@/components/OpenPages";
|
||||
@@ -44,7 +44,7 @@ export default defineComponent({
|
||||
const store = useStore();
|
||||
const isLogin = ref(false);
|
||||
// console.log("router", router.getRoutes(), route);
|
||||
console.log("版本0.9.6------------");
|
||||
console.log("版本0.9.7------------");
|
||||
const routes = computed(() => {
|
||||
return router.getRoutes().filter((e) => e.meta?.isLink);
|
||||
});
|
||||
@@ -78,7 +78,7 @@ export default defineComponent({
|
||||
return;
|
||||
}
|
||||
const memberInitInfo = await api1
|
||||
.getMemberInfo({keyWord: "", pageNo: 1, pageSize: 10})
|
||||
.getMemberInfo({ keyWord: "", pageNo: 1, pageSize: 10 })
|
||||
.then((res) => res.data.data.rows);
|
||||
store.commit("SET_MEMBER_INFO", memberInitInfo);
|
||||
localStorage.setItem("memberInitInfo", JSON.stringify(memberInitInfo));
|
||||
@@ -94,13 +94,13 @@ export default defineComponent({
|
||||
if (localStory) {
|
||||
list = localStorage.getItem(key);
|
||||
if (list) {
|
||||
store.commit("SET_DICT", {key, data: JSON.parse(list)});
|
||||
store.commit("SET_DICT", { key, data: JSON.parse(list) });
|
||||
return;
|
||||
}
|
||||
}
|
||||
list = await getDictList(key);
|
||||
localStory && localStorage.setItem(key, JSON.stringify(list));
|
||||
store.commit("SET_DICT", {key, data: list});
|
||||
store.commit("SET_DICT", { key, data: list });
|
||||
}
|
||||
|
||||
const getDictList = (param) =>
|
||||
@@ -118,7 +118,8 @@ export default defineComponent({
|
||||
store.commit("getOrgtreeList", JSON.parse(orgtreeList));
|
||||
return;
|
||||
}
|
||||
api.getOrgInfo({
|
||||
api
|
||||
.getOrgInfo({
|
||||
keyWord: "",
|
||||
id: -1,
|
||||
pageNo: 1,
|
||||
@@ -127,7 +128,7 @@ export default defineComponent({
|
||||
.then((res) => {
|
||||
localStorage.setItem("orgtreeList", JSON.stringify(res.data.data));
|
||||
store.commit("getOrgtreeList", res.data.data);
|
||||
})
|
||||
});
|
||||
};
|
||||
init();
|
||||
return {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @Author: lixg lixg@dongwu-inc.com
|
||||
* @Date: 2022-11-21 14:32:52
|
||||
* @LastEditors: lixg lixg@dongwu-inc.com
|
||||
* @LastEditTime: 2022-12-08 15:47:05
|
||||
* @LastEditTime: 2022-12-09 10:04:32
|
||||
* @FilePath: /fe-manage/src/api/config.js
|
||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||
*/
|
||||
@@ -56,7 +56,7 @@ http.interceptors.response.use(
|
||||
return response;
|
||||
} else {
|
||||
if (code === 1000) {
|
||||
window.open("https://u-pre.boe.com/web/", '_self');
|
||||
// window.open("https://u-pre.boe.com/web/", '_self');
|
||||
// window.open("http://111.231.196.214:12013/manage/login", '_self');
|
||||
}
|
||||
console.log("api %o", msg);
|
||||
|
||||
@@ -16,3 +16,6 @@ export const ProjectDeleteTask = (obj) => http.delete('/admin/project/deleteTask
|
||||
export const IsExistence = (obj) => http.post('/admin/router/queryTaskDoesItExist',obj);
|
||||
// 判断当前在线课是否已经添加到该项目下
|
||||
export const IsExistenceProject = (obj) => http.post('/admin/project/queryTaskDoesItExistForProject',obj);
|
||||
// 判断当前在线课是否已经添加到该模板库下
|
||||
export const IsExistenceProjectTemplate = (obj) => http.post('/admin/project/template/queryTaskDoesItExistForTemplate',obj);
|
||||
|
||||
|
||||
@@ -24,7 +24,9 @@
|
||||
<div class="file_img"></div>
|
||||
<div class="file_detail">
|
||||
<div class="file_name">
|
||||
<span style="color: #6f6f6f;width:200px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;">{{ item.name }}</span>
|
||||
<span style="color: #6f6f6f;width:200px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;">
|
||||
{{ item.name.indexOf('-')!==-1?item.name.slice(0,item.name.indexOf('-')) + item.name.slice(item.name.indexOf('.')) :item.name }}
|
||||
</span>
|
||||
</div>
|
||||
<!-- <div class="file_size">-->
|
||||
<!-- <span style="color: #999ba3">{{ item.size }}</span>-->
|
||||
@@ -35,6 +37,7 @@
|
||||
:class="`${{uploading: 'updatacolor3', done: 'updatacolor' ,error: 'updatacolor2'}[item.status] || 'updatacolor'}`"
|
||||
:style="{width:`${item.status==='uploading'?parseInt(item.percent):100}%`}"></div>
|
||||
<div v-if="item.status"
|
||||
style="right:-62px"
|
||||
:class="`${{uploading: 'updataxq1', done: 'updataxq' ,error: 'updataxq2'}[item.status] || 'updataxq'}`">
|
||||
{{ {uploading: '正在上传', done: '上传完成', error: '上传失败'}[item.status] || '' }}
|
||||
</div>
|
||||
|
||||
@@ -104,8 +104,10 @@
|
||||
import { reactive, toRefs } from "vue";
|
||||
import * as apiTask from "../../api/indexTaskadd";
|
||||
import { message } from "ant-design-vue";
|
||||
|
||||
import AssessmentList from "@/components/drawers/AssessmentList.vue";
|
||||
import { RouterEditTask } from "@/api/indexTask";
|
||||
|
||||
import * as api from "../../api/indexInvist";
|
||||
import { addTempTask } from "../../api/indexTaskadd";
|
||||
export default {
|
||||
@@ -222,6 +224,29 @@ export default {
|
||||
return message.warning("请选择评估");
|
||||
}
|
||||
if (props.isLevel == 1) {
|
||||
IsExistence({
|
||||
chapterId: Number(props.isactive),
|
||||
courseId: state.assessment.assessmentId,
|
||||
routerId: props.routerId,
|
||||
type: 11,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log('shifouchongfu',res)
|
||||
console.log("路径图中是否包含此评估了", res);
|
||||
if (res.data.data.length) {
|
||||
let strdata = res.data.data;
|
||||
let tipStr = "";
|
||||
for (let i = 0; i < strdata.length; i++) {
|
||||
if (i == strdata.length - 1) {
|
||||
tipStr += strdata[i].courseName;
|
||||
} else {
|
||||
tipStr += strdata[i].courseName + "/";
|
||||
}
|
||||
}
|
||||
message.destroy();
|
||||
message.warning("评估(" + tipStr + ")重复添加");
|
||||
return;
|
||||
} else {
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: state.assessment.assessmentId,
|
||||
@@ -241,7 +266,35 @@ export default {
|
||||
message.destroy();
|
||||
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
|
||||
});
|
||||
}
|
||||
}).catch(err=>{
|
||||
console.log(err)
|
||||
})
|
||||
|
||||
|
||||
} else if (props.isLevel == 2) {
|
||||
IsExistenceProject({
|
||||
courseId: state.assessment.assessmentId,
|
||||
projectId: props.projectId,
|
||||
stageId: props.chooseStageId || 0,
|
||||
type: 11,
|
||||
}).then(res=>{
|
||||
console.log(res)
|
||||
console.log("项目中是否包含此评估了", res);
|
||||
if (res.data.data.length) {
|
||||
let strdata = res.data.data;
|
||||
let tipStr = "";
|
||||
for (let i = 0; i < strdata.length; i++) {
|
||||
if (i == strdata.length - 1) {
|
||||
tipStr += strdata[i].courseName;
|
||||
} else {
|
||||
tipStr += strdata[i].courseName + "/";
|
||||
}
|
||||
}
|
||||
message.destroy();
|
||||
message.warning("评估(" + tipStr + ")重复添加");
|
||||
return;
|
||||
} else {
|
||||
apiTask
|
||||
.addTask({
|
||||
courseId: state.assessment.assessmentId,
|
||||
@@ -259,6 +312,11 @@ export default {
|
||||
.catch(() => {
|
||||
message.error(`${props.edit ? "编辑" : "新增"}任务失败`);
|
||||
});
|
||||
}
|
||||
}).catch(err=>{
|
||||
console.log(err)
|
||||
})
|
||||
|
||||
} else if (props.isLevel == 3) {
|
||||
addTempTask({
|
||||
courseId: state.assessment.assessmentId,
|
||||
|
||||
@@ -75,10 +75,10 @@
|
||||
<div class="btnText">重置</div>
|
||||
</div>
|
||||
<!-- 2022-11-30注释 后面放开 -->
|
||||
<!-- <div class="btn btn3" @click="openMessage">
|
||||
<div class="btn btn3" @click="openMessage">
|
||||
<div class="search"></div>
|
||||
<div class="btnText">导出</div>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="btn btn4" @click="of_hShow">
|
||||
<div class="search"></div>
|
||||
<div class="btnText">新建课程</div>
|
||||
@@ -629,6 +629,9 @@
|
||||
<!-- <div class="file_name">
|
||||
<span style="color: #6f6f6f">{{ item.name }}</span>
|
||||
</div> -->
|
||||
<div class="file_name">
|
||||
<span style="color: #6f6f6f;width:140px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;">{{ item.slice(item.lastIndexOf('/')+1) }}</span>
|
||||
</div>
|
||||
<!-- 条件渲染 s -->
|
||||
<!-- <div class="file_size">
|
||||
<span style="color: #999ba3">{{ item.size }}</span>
|
||||
@@ -1548,7 +1551,7 @@
|
||||
<div class="modalMain">
|
||||
<div class="schooltime" :style="{ display: stm_hs ? 'block' : 'none' }">
|
||||
<div class="st_main">
|
||||
<div class="stm_inputbtn">
|
||||
<div class="stm_inputbtn" style="width: 100%">
|
||||
<a-input
|
||||
v-model:value="kk_inputV1"
|
||||
style="
|
||||
@@ -1570,11 +1573,22 @@
|
||||
placeholder="请输入教师名称"
|
||||
/>
|
||||
<div class="select">
|
||||
<a-date-picker
|
||||
<!-- <a-date-picker
|
||||
v-model:value="selectTime"
|
||||
type="date"
|
||||
placeholder="创建时间"
|
||||
style="width: 270px; margin-right: 14px"
|
||||
/> -->
|
||||
<a-range-picker
|
||||
v-model:value="selectTime"
|
||||
type="date"
|
||||
style="width: 270px; margin-right: 14px"
|
||||
:show-time="{
|
||||
defaultValue: [
|
||||
moment('00:00:00', 'HH:mm:ss'),
|
||||
moment('23:59:59', 'HH:mm:ss'),
|
||||
],
|
||||
}"
|
||||
/>
|
||||
</div>
|
||||
<div class="stm_btn btn1" @click="handleSearchTable">
|
||||
@@ -1585,13 +1599,17 @@
|
||||
<div class="reset"></div>
|
||||
<div class="btnText">重置</div>
|
||||
</div>
|
||||
<div class="stm_btn3 btn3" @click="createkk">
|
||||
</div>
|
||||
<div
|
||||
class="stm_btn3 btn3"
|
||||
@click="createkk"
|
||||
style="margin-bottom: 10px"
|
||||
>
|
||||
<div class="add"></div>
|
||||
<div class="btnText">
|
||||
<span style="color: #ffffff">新建开课</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 无数据样式 -->
|
||||
<div class="notable" v-if="tableData6.length === 0">
|
||||
<div class="notablebox">
|
||||
@@ -1956,9 +1974,9 @@
|
||||
>
|
||||
<div class="file_img"></div>
|
||||
<div class="file_detail">
|
||||
<!-- <div class="file_name">
|
||||
<span style="color: #6f6f6f">{{ item.name }}</span>
|
||||
</div> -->
|
||||
<div class="file_name">
|
||||
<span style="color: #6f6f6f;width:140px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;">{{ item.slice(item.lastIndexOf('/')+1) }}</span>
|
||||
</div>
|
||||
<!-- 条件渲染 s -->
|
||||
<!-- <div class="file_size">
|
||||
<span style="color: #999ba3">{{ item.size }}</span>
|
||||
@@ -2713,7 +2731,7 @@ import SeeModal from "./components/seeModal.vue";
|
||||
import CourseModal from "./courseModal.vue";
|
||||
import * as moment from "moment";
|
||||
import TwoDimensionalCode from "../../components/TwoDimensionalCode.vue";
|
||||
import { codeUrl } from "../../api/method";
|
||||
import { codeUrl, toDate } from "../../api/method";
|
||||
//列表表格
|
||||
const columns1 = [
|
||||
{
|
||||
@@ -3013,9 +3031,6 @@ const columns6 = [
|
||||
},
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
{
|
||||
title: "开始时间",
|
||||
dataIndex: "starttime",
|
||||
@@ -4112,15 +4127,30 @@ export default defineComponent({
|
||||
// 渲染开课操作
|
||||
const getTableDate3 = async () => {
|
||||
// let datas = state.tableData6;
|
||||
let beginTime = "";
|
||||
let endTime = "";
|
||||
if (state.selectTime) {
|
||||
// beginTime = parseInt(new Date(state.selectTime[0].$d).getTime() / 1000);
|
||||
// endTime = parseInt(new Date(state.selectTime[1].$d).getTime() / 1000);
|
||||
beginTime = toDate(
|
||||
new Date(state.selectTime[0].$d).getTime() / 1000,
|
||||
"Y-M-D h:m:s"
|
||||
);
|
||||
endTime = toDate(
|
||||
new Date(state.selectTime[1].$d).getTime() / 1000,
|
||||
"Y-M-D h:m:s"
|
||||
);
|
||||
}
|
||||
let obj = {
|
||||
pageNo: state.currentPage222,
|
||||
pageSize: state.pageSize222,
|
||||
createName: state.kk_inputV1,
|
||||
teacher: state.kk_inputV2,
|
||||
beginTime: parseInt(new Date(state.selectTime).getTime() / 1000),
|
||||
beginTime: beginTime,
|
||||
endTime: endTime,
|
||||
offcourseId: state.offcourseId,
|
||||
};
|
||||
console.log("获取开课", obj);
|
||||
console.log("获取开obj", obj, state.selectTime);
|
||||
let res = await planList(obj);
|
||||
console.log("开课res", res);
|
||||
const { rows, total, pageNo } = res.data.data;
|
||||
@@ -4742,7 +4772,7 @@ export default defineComponent({
|
||||
completeType: item.completeType,
|
||||
endTime: new Date(item.endTime) / 1000,
|
||||
evalFlag: item.evalFlag,
|
||||
name: item.name+'1',
|
||||
name: item.name + "1",
|
||||
signFlag: item.signFlag, //是否允许未报名的签到:1是0否
|
||||
//signWordFlag: item.signWordFlag, //签到是否需要口令:1是0否
|
||||
teacherId: item.teacherId,
|
||||
@@ -4766,7 +4796,7 @@ export default defineComponent({
|
||||
});
|
||||
const postData = {
|
||||
offcourseId: null, //不传代表新增
|
||||
name: item.name+'1',
|
||||
name: item.name + "1",
|
||||
picUrl: item.picUrl,
|
||||
targetUser: item.targetUser,
|
||||
meaning: item.meaning,
|
||||
@@ -5126,6 +5156,7 @@ export default defineComponent({
|
||||
// size: file.size,
|
||||
// });
|
||||
// console.log(state.filesList);
|
||||
console.log(res.data.data)
|
||||
state.filesList = [res.data.data];
|
||||
// state.hasImgName = res.data.data;
|
||||
}
|
||||
|
||||
@@ -156,6 +156,7 @@
|
||||
<div class="mbl_items12">
|
||||
<div
|
||||
class="i12_box1"
|
||||
style="position:relative;"
|
||||
v-for="(item, index) in detail.attach"
|
||||
:key="index"
|
||||
>
|
||||
@@ -205,13 +206,16 @@
|
||||
</div>
|
||||
<div class="file_detail">
|
||||
<div class="file_name">
|
||||
<span style="color: #6f6f6f">{{ item.name }}</span>
|
||||
<!-- http://111.231.196.214:12016/7.231.196.214:12016/7-1670486854017.jpg -->
|
||||
<span style="color: #6f6f6f;width:200px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:absolute;top:4px;left:72px;">
|
||||
{{ item.indexOf('-')!==-1?item.slice(item.lastIndexOf('/')+1,item.indexOf('-')) + item.slice(item.lastIndexOf('.')) :item }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div class="file_updata">
|
||||
<div class="updatabox">
|
||||
<div class="updatacolor"></div>
|
||||
<div class="updataxq">上传完成</div>
|
||||
<div class="updataxq" style="right:-62px;">上传完成</div>
|
||||
</div>
|
||||
<div class="upjd">
|
||||
<span style="margin: auto 5px">100%</span>
|
||||
@@ -642,21 +646,21 @@ export default defineComponent({
|
||||
|
||||
.updataxq {
|
||||
position: absolute;
|
||||
right: 2px;
|
||||
right: -62px;
|
||||
top: -30px;
|
||||
color: #57c887;
|
||||
}
|
||||
|
||||
.updataxq2 {
|
||||
position: absolute;
|
||||
right: 2px;
|
||||
right: -62px;
|
||||
top: -30px;
|
||||
color: #ff7474;
|
||||
}
|
||||
|
||||
.updataxq3 {
|
||||
position: absolute;
|
||||
right: 2px;
|
||||
right: -62px;
|
||||
top: -30px;
|
||||
color: #388be1;
|
||||
}
|
||||
|
||||
@@ -632,7 +632,7 @@
|
||||
<div style="width: 5px; display: inline-block"></div>
|
||||
<span class="yi">项</span>
|
||||
<span class="zon">列表选项总数:</span>
|
||||
<span class="th">{{ tableDataTotal }}</span>
|
||||
<span class="th">{{ stuTotal }}</span>
|
||||
<span class="yi"> 条</span>
|
||||
</div>
|
||||
<div class="clear" @click="clearChooseStu">清空</div>
|
||||
@@ -854,6 +854,7 @@
|
||||
<div
|
||||
v-for="item in fileList"
|
||||
:key="item.uid"
|
||||
style="width:500px;display:flex;justify-content:space-between;align-items:center;"
|
||||
class="docListStyle"
|
||||
>
|
||||
<img
|
||||
@@ -866,11 +867,11 @@
|
||||
"
|
||||
alt=""
|
||||
/>
|
||||
<span style="font: oblique bold 16px Sans-serif">{{
|
||||
<span style="font: oblique bold 16px Sans-serif;width:300px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;">{{
|
||||
item.name
|
||||
}}</span>
|
||||
<span
|
||||
style="color: #4ea6ff; float: right; cursor: pointer"
|
||||
style="color: #4ea6ff; cursor: pointer"
|
||||
@click="deFile(item.uid)"
|
||||
>删除</span
|
||||
>
|
||||
@@ -1407,6 +1408,7 @@ export default {
|
||||
docChecked: true,
|
||||
currentPage: 1,
|
||||
tableDataTotal: -1,
|
||||
stuTotal: 0,
|
||||
pageSize: 10,
|
||||
visiblene: false,
|
||||
sh: false,
|
||||
@@ -1461,6 +1463,7 @@ export default {
|
||||
codevisible: false, //二维码是否显示
|
||||
codeInfo: null, //二维码内容
|
||||
|
||||
levelTotal: 0, //设置基本信息需判断的关卡总数
|
||||
previewSelect: 0,
|
||||
studySelect: 0,
|
||||
previewStartNum: 0,
|
||||
@@ -1741,6 +1744,7 @@ export default {
|
||||
console.log("获取学员列表", res);
|
||||
let data = res.data.data.rows || null;
|
||||
state.tableDataTotal = res.data.data.total;
|
||||
state.stuTotal = res.data.data.total;
|
||||
state.tableData = [];
|
||||
if (data.length) {
|
||||
for (let i in data) {
|
||||
@@ -2055,6 +2059,10 @@ export default {
|
||||
//获取设置信息
|
||||
if (res.data.code === 200) {
|
||||
//previewSetting studySetting
|
||||
if (res.data.data.chapterList) {
|
||||
state.levelTotal = res.data.data.chapterList.length;
|
||||
}
|
||||
|
||||
state.previewSelect = res.data.data.routerInfo.enablePreview;
|
||||
state.studySelect = res.data.data.routerInfo.enableStudy;
|
||||
if (res.data.data.routerInfo.previewSetting) {
|
||||
@@ -2229,7 +2237,7 @@ export default {
|
||||
message.warning("删除失败");
|
||||
});
|
||||
};
|
||||
// 设置------------------------------------------------------
|
||||
// 设置start------------------------------------------------------
|
||||
//编辑基本信息
|
||||
const editLearnInfo = () => {
|
||||
let obj = {
|
||||
@@ -2239,6 +2247,13 @@ export default {
|
||||
previewSetting: state.previewStartNum + "," + state.previewEndNum,
|
||||
studySetting: state.studyStartNum + "," + state.studyEndNum,
|
||||
};
|
||||
if (
|
||||
state.previewStartNum > state.levelTotal ||
|
||||
state.previewEndNum > state.levelTotal ||
|
||||
state.studyStartNum > state.levelTotal ||
|
||||
state.studyEndNum > state.levelTotal
|
||||
)
|
||||
return message.warning("关卡数超过范围");
|
||||
console.log("编辑设置基本信息obj", obj);
|
||||
api
|
||||
.editLearnInfo(obj)
|
||||
@@ -2246,13 +2261,14 @@ export default {
|
||||
console.log("编辑设置基本信息成功", res);
|
||||
if (res.data.code === 200) {
|
||||
message.success("修改成功");
|
||||
closebtn();
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("编辑设置基本信息失败", err);
|
||||
});
|
||||
};
|
||||
// 设置-----------------------------------------------------
|
||||
// 设置end-----------------------------------------------------
|
||||
//添加学员
|
||||
watch(
|
||||
() => state.addAuthList,
|
||||
@@ -2310,12 +2326,14 @@ export default {
|
||||
//清空所选的学员
|
||||
const clearChooseStu = () => {
|
||||
Modal.confirm({
|
||||
title: '确定清空所有学员吗?', onOk: async () => {
|
||||
state.addAuthList = []
|
||||
title: "确定清空所有学员吗?",
|
||||
onOk: async () => {
|
||||
state.addAuthList = [];
|
||||
// student.studentDelAll({id: state.routerId, type: 2})
|
||||
// state.tabledata = []
|
||||
// state.tableDataTotal = 0;
|
||||
}, bodyStyle: 'margin-top:70%'
|
||||
},
|
||||
bodyStyle: "margin-top:70%",
|
||||
});
|
||||
};
|
||||
|
||||
@@ -2643,8 +2661,9 @@ export default {
|
||||
|
||||
.docListStyle {
|
||||
display: flex;
|
||||
width: 300px !important;
|
||||
justify-content: space-around;
|
||||
width: 500px !important;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.del_btnbox {
|
||||
|
||||
@@ -56,7 +56,10 @@
|
||||
<div class="onerow">
|
||||
<div class="taskmain">任务大纲</div>
|
||||
<!-- <button class="btn" @click="showFaceIn">批量面授报名</button> -->
|
||||
<router-link class="edit" :to="{ path: `/temTask`, query: { projectId: projectId } }">
|
||||
<router-link
|
||||
class="edit"
|
||||
:to="{ path: `/temTask`, query: { projectId: projectId } }"
|
||||
>
|
||||
<img
|
||||
class="editimg"
|
||||
src="../../assets/images/projectadd/edit.png"
|
||||
@@ -147,7 +150,9 @@
|
||||
</div>
|
||||
<div>
|
||||
<div class="iconame">「{{ item.course }}」</div>
|
||||
<div class="icontext">{{ item.name }}</div>
|
||||
<div class="icontext" :title="item.name">
|
||||
{{ item.name }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="type">
|
||||
@@ -283,33 +288,28 @@
|
||||
v-model:checked="checked"
|
||||
@click="changeopclo"
|
||||
/>
|
||||
<div v-if="(checked==true)"
|
||||
class="opclo">
|
||||
<div v-if="checked == true" class="opclo">
|
||||
<span>关闭</span>
|
||||
</div>
|
||||
<div v-if="(checked==false)"
|
||||
class="opclo" >
|
||||
<div v-if="checked == false" class="opclo">
|
||||
<span>开启</span>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="(checked==true)"
|
||||
class="ntc_content">
|
||||
<div v-if="checked == true" class="ntc_content">
|
||||
<div class="ntcc_tit">当前公告内容:</div>
|
||||
<div class="textarea">
|
||||
{{noticeContent==""?"暂无公告":noticeContent}}
|
||||
<div v-if="(editFlag == false)" class="btnarea" >
|
||||
{{ noticeContent == "" ? "暂无公告" : noticeContent }}
|
||||
<div v-if="editFlag == false" class="btnarea">
|
||||
<div> </div>
|
||||
<div class="area_btn" @click="editNotice">
|
||||
|
||||
<div class="btnText">编辑</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<template v-if="(editFlag==true)">
|
||||
<template v-if="editFlag == true">
|
||||
<div> </div>
|
||||
<div class="ntcc_tit" >编辑公告:</div>
|
||||
<div class="ntcc_tit">编辑公告:</div>
|
||||
<div class="textarea">
|
||||
<a-textarea
|
||||
v-model:value="projectInfo.notice"
|
||||
@@ -592,7 +592,10 @@
|
||||
<div class="box"></div>
|
||||
<div class="onetitle">上传共享文档</div>
|
||||
<div class="oneedi">
|
||||
<a-switch v-model:checked="attachSwitch" @change="checkedClose"></a-switch>
|
||||
<a-switch
|
||||
v-model:checked="attachSwitch"
|
||||
@change="checkedClose"
|
||||
></a-switch>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btnbox" style="margin: 20px">
|
||||
@@ -638,11 +641,11 @@
|
||||
"
|
||||
alt=""
|
||||
/>
|
||||
<span style="font: oblique bold 16px Sans-serif">{{
|
||||
<span style="font: oblique bold 16px Sans-serif;width:300px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;">{{
|
||||
item.name
|
||||
}}</span>
|
||||
<span
|
||||
style="color: #4ea6ff; float: right; cursor: pointer"
|
||||
style="color: #4ea6ff; cursor: pointer"
|
||||
@click="deFile(item.uid)"
|
||||
>删除</span
|
||||
>
|
||||
@@ -844,8 +847,8 @@ export default defineComponent({
|
||||
seven1: null,
|
||||
seven2: null,
|
||||
edit: true,
|
||||
fileList:[],
|
||||
attachSwitch:true,
|
||||
fileList: [],
|
||||
attachSwitch: true,
|
||||
// 共享文档列表
|
||||
docList: [
|
||||
{
|
||||
@@ -863,17 +866,17 @@ export default defineComponent({
|
||||
],
|
||||
isEdit: false, // 是否处于编辑状态
|
||||
// 基本信息
|
||||
projectInfo: { },
|
||||
noticeContent:"",
|
||||
editFlag:false,
|
||||
projectInfo: {},
|
||||
noticeContent: "",
|
||||
editFlag: false,
|
||||
});
|
||||
const value = ref("");
|
||||
const textnum = "150";
|
||||
const routered = useRouter();
|
||||
const changeopclo = () => {
|
||||
state.projectInfo.noticeFlag = state.checked?1:0;
|
||||
state.projectInfo.noticeFlag = state.checked ? 1 : 0;
|
||||
api
|
||||
.templateEdit( state.projectInfo)
|
||||
.templateEdit(state.projectInfo)
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
})
|
||||
@@ -913,9 +916,9 @@ export default defineComponent({
|
||||
state.isEdit = false;
|
||||
getDetail();
|
||||
};
|
||||
const editNotice =()=>{
|
||||
state.editFlag = true ;
|
||||
}
|
||||
const editNotice = () => {
|
||||
state.editFlag = true;
|
||||
};
|
||||
|
||||
const checkType = (type) => {
|
||||
let typeRules = [
|
||||
@@ -951,21 +954,30 @@ export default defineComponent({
|
||||
state.projectInfo = res.data.data.projectTemplateInfo;
|
||||
|
||||
state.noticeContent = state.projectInfo.notice;
|
||||
state.checked = state.projectInfo.noticeFlag==1?true:false;
|
||||
console.log("res.data.data.projectTemplateInfo",res.data.data.projectTemplateInfo);
|
||||
state.checked = state.projectInfo.noticeFlag == 1 ? true : false;
|
||||
console.log(
|
||||
"res.data.data.projectTemplateInfo",
|
||||
res.data.data.projectTemplateInfo
|
||||
);
|
||||
|
||||
try{
|
||||
state.fileList = JSON.parse(res.data.data.projectTemplateInfo.attach);
|
||||
}catch{
|
||||
try {
|
||||
state.fileList = JSON.parse(
|
||||
res.data.data.projectTemplateInfo.attach
|
||||
);
|
||||
} catch {
|
||||
state.fileList = [];
|
||||
}
|
||||
state.attachSwitch = res.data.data.projectTemplateInfo.attachSwitch == 1 ? true : false
|
||||
state.attachSwitch =
|
||||
res.data.data.projectTemplateInfo.attachSwitch == 1 ? true : false;
|
||||
let data = res.data.data.stageList;
|
||||
console.log("data=====", data);
|
||||
for (let i in data) {
|
||||
console.log("what ------ > ", i, data);
|
||||
if(data[i].taskList.length!==0){
|
||||
state.taskSyllabus.push({ text: data[i].name?data[i].name:'无阶段任务', children: [] });
|
||||
if (data[i].taskList.length !== 0) {
|
||||
state.taskSyllabus.push({
|
||||
text: data[i].name ? data[i].name : "无阶段任务",
|
||||
children: [],
|
||||
});
|
||||
}
|
||||
|
||||
for (let j in data[i].taskList) {
|
||||
@@ -990,11 +1002,11 @@ export default defineComponent({
|
||||
// 发布公告
|
||||
const addNotice = () => {
|
||||
// state.projectInfo.notice=
|
||||
if(!state.projectInfo.notice){
|
||||
if (!state.projectInfo.notice) {
|
||||
return message.warning("请输入公告内容");
|
||||
}
|
||||
api
|
||||
.templateEdit( state.projectInfo)
|
||||
.templateEdit(state.projectInfo)
|
||||
.then((res) => {
|
||||
state.noticeContent = state.projectInfo.notice;
|
||||
message.success("公告发布成功");
|
||||
@@ -1004,7 +1016,7 @@ export default defineComponent({
|
||||
message.error("公告发布失败" + err);
|
||||
console.log(err);
|
||||
});
|
||||
state.editFlag =false;
|
||||
state.editFlag = false;
|
||||
};
|
||||
|
||||
// 删除阶段
|
||||
@@ -1043,7 +1055,6 @@ export default defineComponent({
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
// 新建或编辑阶段
|
||||
const stateEdit = () => {
|
||||
let obj = {
|
||||
@@ -1186,7 +1197,7 @@ export default defineComponent({
|
||||
.templateEdit({
|
||||
sourceBelongId: state.projectInfo.sourceBelongId,
|
||||
projectTemplateId: localStorage.getItem("projectTemplateId"),
|
||||
attachSwitch: state.attachSwitch?1:-1
|
||||
attachSwitch: state.attachSwitch ? 1 : -1,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log("开关更新成功", res);
|
||||
@@ -1277,7 +1288,7 @@ export default defineComponent({
|
||||
handleChange2,
|
||||
scoresum,
|
||||
checkedClose,
|
||||
editNotice
|
||||
editNotice,
|
||||
};
|
||||
},
|
||||
});
|
||||
@@ -1951,8 +1962,9 @@ export default defineComponent({
|
||||
}
|
||||
.docListStyle {
|
||||
display: flex;
|
||||
width: 300px !important;
|
||||
justify-content: space-around;
|
||||
width: 500px !important;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
.taskBox {
|
||||
.onerow {
|
||||
|
||||
@@ -5,11 +5,11 @@
|
||||
<div class="leftmain">
|
||||
<div class="tit">
|
||||
阶段
|
||||
<!-- <img-->
|
||||
<!-- src="../../assets/images/projectadd/right.png"-->
|
||||
<!-- style="margin-left: 10px; cursor: pointer"-->
|
||||
<!-- @click="showCancel"-->
|
||||
<!-- />-->
|
||||
<img
|
||||
src="../../assets/images/projectadd/right.png"
|
||||
style="margin-left: 10px; cursor: pointer"
|
||||
@click="showCancel"
|
||||
/>
|
||||
</div>
|
||||
<div class="btn btn3" @click="showModal()" style="margin-left: 19px">
|
||||
<div class="search"></div>
|
||||
@@ -593,7 +593,6 @@
|
||||
style="
|
||||
width: 120px;
|
||||
text-align: center;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
@@ -881,13 +880,13 @@
|
||||
<div class="close_exit" @click="closeCancel"></div>
|
||||
</div>
|
||||
<div class="body">
|
||||
<span>您确定要取消阶段吗</span>
|
||||
<span>您确定要删除所有阶段吗?</span>
|
||||
</div>
|
||||
<div class="del_btnbox">
|
||||
<div class="del_btn btn1" @click="closeCancel">
|
||||
<div class="btnText">取消</div>
|
||||
</div>
|
||||
<div class="del_btn btn2" @click="showModal">
|
||||
<div class="del_btn btn2" @click="removeAllLevel">
|
||||
<div class="btnText">确定</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1021,7 +1020,7 @@
|
||||
<div class="close_exit" @click="closeDeleteStage"></div>
|
||||
</div>
|
||||
<div class="body">
|
||||
<span>您确定要删除此阶段</span>
|
||||
<span style="width:320px;display:flex;justify-content:center;align-items:center;">{{level.length==1?"当前阶段为第一阶段,删除后任务将被移出,为无阶段模式,确认删除阶段吗?":"您确定要删除此阶段"}}</span>
|
||||
</div>
|
||||
<div class="del_btnbox">
|
||||
<div class="del_btn btn1" @click="closeDeleteStage">
|
||||
@@ -1681,6 +1680,7 @@ export default {
|
||||
const showDeleteStage = (id) => {
|
||||
state.deleteStageId = id;
|
||||
state.deleteStageModal = true;
|
||||
console.log(state.level)
|
||||
};
|
||||
//关闭删除阶段弹窗
|
||||
const closeDeleteStage = () => {
|
||||
@@ -1816,6 +1816,39 @@ export default {
|
||||
getTableData(final.taskList);
|
||||
};
|
||||
|
||||
// 删除所有阶段
|
||||
const removeAllLevel = () => {
|
||||
// state.cancelModal = false;
|
||||
console.log(state.level)
|
||||
let removeArr = state.level;
|
||||
for(let i=0;i<removeArr.length;i++){
|
||||
let obj = {
|
||||
stageId: removeArr[i].id
|
||||
}
|
||||
apistage
|
||||
.deleteStage(obj)
|
||||
.then((res) => {
|
||||
console.log("删除阶段成功", res);
|
||||
if(removeArr.length-1==i){
|
||||
message.destroy();
|
||||
message.success("删除全部阶段成功");
|
||||
closeDeleteStage();
|
||||
localStorage.setItem("stageId", "");
|
||||
getTask();
|
||||
state.cancelModal = false;
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
if(removeArr.length-1==i){
|
||||
console.log("删除阶段失败", err);
|
||||
message.destroy();
|
||||
message.success("删除全部阶段失败");
|
||||
state.cancelModal = false;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
//选择单个任务
|
||||
const changeRow = (e) => {
|
||||
//selectRow:已经选择的任务的id数组
|
||||
@@ -2020,6 +2053,7 @@ export default {
|
||||
temporaryStorage,
|
||||
submitStorage,
|
||||
cancelStorage,
|
||||
removeAllLevel
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
@@ -1236,6 +1236,7 @@
|
||||
<div
|
||||
v-for="item in fileList"
|
||||
:key="item.uid"
|
||||
style="width:500px;display:flex;justify-content:space-between;align-items:center;"
|
||||
class="docListStyle"
|
||||
>
|
||||
<img
|
||||
@@ -1248,7 +1249,7 @@
|
||||
"
|
||||
alt=""
|
||||
/>
|
||||
<span style="font: oblique bold 16px Sans-serif">{{
|
||||
<span style="font: oblique bold 16px Sans-serif;width:300px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;">{{
|
||||
item.name
|
||||
}}</span>
|
||||
<span
|
||||
|
||||
@@ -606,7 +606,16 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="width: 120px; text-align: center">
|
||||
<div
|
||||
style="
|
||||
width: 120px;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
"
|
||||
:title="element.creater"
|
||||
>
|
||||
{{ element.creater }}
|
||||
</div>
|
||||
<div style="width: 120px; text-align: center">
|
||||
@@ -1402,25 +1411,23 @@ export default {
|
||||
};
|
||||
array.push(obj);
|
||||
});
|
||||
console.log(array)
|
||||
if(array[0].id=='0'){
|
||||
console.log(array);
|
||||
if (array[0].id == "0") {
|
||||
state.level = [];
|
||||
// state.tableData = array[0]
|
||||
// 当无阶段任务出现时 显示当前数据
|
||||
if(array[0].taskList.length!==0){
|
||||
getTableData(array[0].taskList)
|
||||
if (array[0].taskList.length !== 0) {
|
||||
getTableData(array[0].taskList);
|
||||
}
|
||||
|
||||
}else{
|
||||
let datearr = []
|
||||
for(let i=0;i<array.length;i++){
|
||||
if(array[i].id!==0&&array[i].taskList.length!==0){
|
||||
datearr.push(array[i])
|
||||
} else {
|
||||
let datearr = [];
|
||||
for (let i = 0; i < array.length; i++) {
|
||||
if (array[i].id !== 0 && array[i].taskList.length !== 0) {
|
||||
datearr.push(array[i]);
|
||||
}
|
||||
}
|
||||
state.level = datearr;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
const tableDataFunc = () => {
|
||||
@@ -1557,12 +1564,15 @@ export default {
|
||||
api
|
||||
.templateDetail(localStorage.getItem("projectTemplateId"))
|
||||
.then((res) => {
|
||||
console.log('获取的任务列表信息',res)
|
||||
console.log("获取的任务列表信息", res);
|
||||
if (res.status == 200) {
|
||||
console.log("22222", res.data.data.stageList);
|
||||
state.projectTitle = res.data.data.projectTemplateInfo.name;
|
||||
state.picUrl = res.data.data.projectTemplateInfo.picUrl;
|
||||
let leng = res.data.data.stageList[0].name!==null ?res.data.data.stageList.length:0;
|
||||
let leng =
|
||||
res.data.data.stageList[0].name !== null
|
||||
? res.data.data.stageList.length
|
||||
: 0;
|
||||
if (leng > 0) {
|
||||
let stage = localStorage.getItem("templateStageId")
|
||||
? localStorage.getItem("templateStageId")
|
||||
@@ -1816,7 +1826,7 @@ export default {
|
||||
"0px 1px 35px 0px rgba(118, 136, 166, 0.07)";
|
||||
});
|
||||
const showDrawerOnline = (id, eleId) => {
|
||||
console.log(id, eleId)
|
||||
console.log(id, eleId);
|
||||
state.addonlinevisible = true;
|
||||
state.EditOnlineId = id;
|
||||
state.projectTaskId = eleId;
|
||||
|
||||
Reference in New Issue
Block a user