feat:合并

This commit is contained in:
lixg
2022-12-01 01:57:10 +08:00
7 changed files with 171 additions and 162 deletions

View File

@@ -5,26 +5,26 @@
<div class="header">
<div class="headerTitle">添加面授</div>
<img style="width: 29px; height: 29px; cursor: pointer" src="../../assets/images/basicinfo/close.png"
@click="closeDrawer" />
@click="closeDrawer"/>
</div>
<div class="contentMain">
<div class="main_left">
<div class="main_item">
<div class="signbox">
<div class="sign">
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
<img src="@/assets/images/coursewareManage/asterisk.png" alt=""/>
</div>
<span style="margin-right: 3px">课程名称</span>
</div>
<div class="btnbox">
<a-input v-model:value="courseName" style="width: 384px; height: 32px" placeholder="请输入名称"
maxlength="20" />
maxlength="20"/>
</div>
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
<img src="@/assets/images/coursewareManage/asterisk.png" alt=""/>
</div>
<span style="margin-right: 3px">选择课程</span>
</div>
@@ -41,7 +41,7 @@
</div>
<!-- 选择面授侧弹窗 -->
<div>
<sel-facet v-model:selfacetVisible="selfacetvisible" v-model:chooseCourse="chooseCourse" />
<sel-facet v-model:selfacetVisible="selfacetvisible" v-model:chooseCourse="chooseCourse"/>
</div>
<!-- 选择面授侧弹窗 -->
</div>
@@ -50,36 +50,36 @@
<span style="margin-right: 3px">面授说明</span>
</div>
<div class="textarea">
<a-textarea v-model:value="description" placeholder="请输入说明" allow-clear maxlength="100" />
<a-textarea v-model:value="description" placeholder="请输入说明" allow-clear maxlength="100"/>
</div>
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
<img src="@/assets/images/coursewareManage/asterisk.png" alt=""/>
</div>
<span style="margin-right: 3px">授课教师</span>
</div>
<div class="btnbox">
<a-auto-complete v-model:value="memberValue.label" placeholder="选择老师" style="width: 364px"
:options="options" @search="handleSearch"></a-auto-complete>
<a-auto-complete placeholder="选择老师" :value="memberValue.label" style="width: 364px"
:options="options" @change="handleChange2" @search="handleSearch"></a-auto-complete>
</div>
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
<img src="@/assets/images/coursewareManage/asterisk.png" alt=""/>
</div>
<span style="margin-right: 3px">面授时间</span>
</div>
<div class="btnbox">
<a-range-picker v-model:value="chooseTime" :placeholder="[' 开始时间', ' 结束时间']" />
<a-range-picker v-model:value="chooseTime" :placeholder="[' 开始时间', ' 结束时间']"/>
</div>
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
<img src="@/assets/images/coursewareManage/asterisk.png" alt=""/>
</div>
<span style="margin-right: 3px">面授时长</span>
</div>
@@ -96,13 +96,13 @@
<div class="main_item">
<div class="signbox">
<div class="sign">
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
<img src="@/assets/images/coursewareManage/asterisk.png" alt=""/>
</div>
<span style="margin-right: 3px">上课地址</span>
</div>
<div class="btnbox">
<a-input v-model:value="address" style="width: 384px; height: 32px" placeholder="请输入上课地址"
maxlength="100" />
maxlength="100"/>
</div>
</div>
<div class="main_item2">
@@ -157,7 +157,8 @@
</div>
<div class="btnbox">
<a-checkbox v-model:checked="completeLeave"
@click="completeLeave = !completeLeave">学员请假后记为任务完成</a-checkbox>
@click="completeLeave = !completeLeave">学员请假后记为任务完成
</a-checkbox>
</div>
</div>
<div class="main_item">
@@ -166,8 +167,10 @@
</div>
<div class="btnbox">
<a-checkbox v-model:checked="innerPersion"
@click="innerPersion = !innerPersion">允许项目内人员临时到场参加</a-checkbox>
<a-checkbox v-model:checked="outPersion" @click="outPersion = !outPersion">允许项目外人员临时到场参加</a-checkbox>
@click="innerPersion = !innerPersion">允许项目内人员临时到场参加
</a-checkbox>
<a-checkbox v-model:checked="outPersion" @click="outPersion = !outPersion">允许项目外人员临时到场参加
</a-checkbox>
</div>
</div>
<div class="main_item2">
@@ -189,7 +192,7 @@
</a-tag>
</div>
<AssessmentList v-model:assessmentVisible="assessmentVisible" v-model:titleTag="titleTag"
v-model:assessmentId="assessmentId" />
v-model:assessmentId="assessmentId"/>
</div>
</div>
@@ -214,7 +217,7 @@
<!-- 添加作业侧弹窗 -->
<div>
<add-homework v-model:addhomeworkVisible="addhomeworkvisible" @getWork="getWork" :faceLevel="true"
v-model:EditWorkId="EditWorkId" />
v-model:EditWorkId="EditWorkId"/>
</div>
<!-- 添加作业侧弹窗 -->
</div>
@@ -236,7 +239,7 @@
</div>
<!-- 添加考试侧弹窗 -->
<div>
<add-test v-model:addtestVisible="addtestvisible" v-model:EditTestId="EditTestId" :faceLevel="true" />
<add-test v-model:addtestVisible="addtestvisible" v-model:EditTestId="EditTestId" :faceLevel="true"/>
</div>
<!-- 添加考试侧弹窗 -->
</div>
@@ -246,7 +249,8 @@
</div>
<div class="btnbox">
<a-upload @change="handleChange" action="/manageApi/file/upload" v-model:file-list="fileList">
<button class="xkbtn">上传附件</button></a-upload>
<button class="xkbtn">上传附件</button>
</a-upload>
</div>
</div>
</div>
@@ -260,20 +264,21 @@
</a-drawer>
</template>
<script>
import { reactive, toRefs, ref } from "vue";
import {reactive, toRefs, ref} from "vue";
import SelFacet from "../../components/drawers/SelFacet.vue";
import AddHomework from "../../components/drawers/AddHomework.vue";
import AddTest from "../../components/drawers/AddTest.vue";
import { ProjectEditTask, RouterEditTask } from "@/api/indexTask";
import {ProjectEditTask, RouterEditTask} from "@/api/indexTask";
// import * as method from "../../api/method"
import { message } from "ant-design-vue";
import { getMemberInfo } from "@/api/index1";
import { debounce } from "lodash-es";
import { queryFaceDetailById, editPlan } from "../../api/indexFace";
import {message} from "ant-design-vue";
import {getMemberInfo} from "@/api/index1";
import {debounce} from "lodash-es";
import {queryFaceDetailById, editPlan} from "../../api/indexFace";
import dayjs from "dayjs";
import AssessmentList from "../drawers/ AssessmentList.vue";
// import { toDate } from "../../api/method";、
import { addTempTask } from "../../api/indexTaskadd";
import {addTempTask} from "../../api/indexTaskadd";
export default {
name: "AddFaceteach",
components: {
@@ -442,7 +447,7 @@ export default {
let result = res.data.data;
state.courseName = result.name;
state.description = result.description;
state.memberValue = { value: result.teacherId, label: result.teacher }
state.memberValue = {value: result.teacherId, label: result.teacher}
state.duration = result.duration;
if (result.beginTime && result.endTime) {
state.chooseTime = [
@@ -515,18 +520,20 @@ export default {
projectMember: p.concat(p1),
offcourseId: state.chooseCourse,
offcoursePlanId: props.EditFaceId > 0 ? props.EditFaceId : 0,
testId: state.EditTestId
testId: state.EditTestId,
duration:state.duration,
};
console.log("obj============", obj, "6" + "9");
console.log("222222222");
editPlan(obj)
.then((res) => {
editPlan(obj).then(async (res) => {
message.destroy();
message.sucsess(`添加成功`);
updateTask(res);
message.success(`添加成功`);
await updateTask(res);
ctx.emit("changeData", false);
closeDrawer();
}).catch(() => {
}).catch((e) => {
console.log(e)
message.destroy();
message.error(`添加失败`);
});
@@ -537,7 +544,7 @@ export default {
//更新任务列表
// 新增编辑或新增项目任务
const updateTask = (res) => {
const updateTask = async (res) => {
console.log("props.isLevel=====", props.isLevel);
if (props.isLevel == 1) {
let editObj1 = {
@@ -548,7 +555,7 @@ export default {
routerTaskId: props.routerTaskId || 0,
type: 2,
};
RouterEditTask(editObj1)
await RouterEditTask(editObj1)
.then(() => {
//message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
@@ -569,7 +576,7 @@ export default {
type: 2,
};
// 新增编辑或新增项目
ProjectEditTask(editObj)
await ProjectEditTask(editObj)
.then(() => {
message.success(`${props.EditFaceId ? "编辑" : "新增"}阶段任务成功`);
@@ -579,7 +586,7 @@ export default {
});
} else if (props.isLevel == 3) {
console.log("dddddddddddd33333333");
addTempTask({
await addTempTask({
courseId: res.data.data.offcoursePlanId,
name: res.data.data.name,
duration: res.data.data.duration,
@@ -598,7 +605,7 @@ export default {
}
};
const handleChange = ({ file, fileList }) => {
const handleChange = ({file, fileList}) => {
if (file.status !== "uploading") {
console.log(file, fileList);
}
@@ -615,7 +622,7 @@ export default {
// 员工滚动
const templateScroll = (e) => {
console.log("滚动", e);
const { target } = e;
const {target} = e;
const scrllHeight = target.scrollHeight - target.scrollTop;
const clientHeight = target.clientHeight;
// console.log("scrllHeight", scrllHeight, clientHeight);
@@ -668,6 +675,7 @@ export default {
const handleChange2 = (value, label) => {
console.log(`selected ${value}`);
state.memberId = value;
// console.log(label)
state.memberValue = label;
};
const handleFocus = () => {

View File

@@ -107,7 +107,7 @@
</div>
<div class="btnbox">
<a-auto-complete
v-model:value="memberValue.label"
:value="memberValue.label"
show-search
:not-found-content="fetching ? undefined : null"
placeholder="Select a teacher"
@@ -747,9 +747,10 @@ export default {
queryMember();
state.fetching = false;
}, 300);
const handleChange2 = (value) => {
const handleChange2 = (value,label) => {
console.log(`selected ${value}`);
state.inputV3 = value;
state.memberValue = label;
};
const handleFocus = () => {
queryMember();

View File

@@ -187,37 +187,37 @@ export default {
showDown: true,
showDown1: false,
stageList: [
{
stageName: "阶段1腾飞班阶段1",
stageId: 1,
taskProcessList: [
{
course: "在线",
name: "如何成为一个产品经理",
complete: "已完成",
},
{
course: "直播",
name: "管理直播课",
complete: "已完成",
},
{
course: "面授",
name: "管理面授课",
complete: "未完成",
},
{
course: "活动",
name: "管理活动",
complete: "未完成",
},
{
course: "作业",
name: "管理者作业",
complete: "未完成",
},
],
},
// {
// stageName: "阶段1腾飞班阶段1",
// stageId: 1,
// taskProcessList: [
// {
// course: "在线",
// name: "如何成为一个产品经理",
// complete: "已完成",
// },
// {
// course: "直播",
// name: "管理直播课",
// complete: "已完成",
// },
// {
// course: "面授",
// name: "管理面授课",
// complete: "未完成",
// },
// {
// course: "活动",
// name: "管理活动",
// complete: "未完成",
// },
// {
// course: "作业",
// name: "管理者作业",
// complete: "未完成",
// },
// ],
// },
],
stageListActive: 0,
});

View File

@@ -116,14 +116,14 @@ export default {
key: "name",
align: "center",
},
{
title: "所属项目",
dataIndex: "sourceBelongName",
key: "sourceBelongName",
align: "center",
width: "11%",
},
// todo 根项目保存
// {
// title: "所属项目",
// dataIndex: "sourceBelongName",
// key: "sourceBelongName",
// align: "center",
// width: "11%",
// },
{
title: "项目经理",
dataIndex: "manager",

View File

@@ -700,83 +700,83 @@ export default defineComponent({
const state = reactive({
//任务大纲列表
taskSyllabus: [
{
text: "阶段1腾飞班阶段1",
children: [
{
course: "在线",
name: "时间管理",
classify: "选修",
beginTime: "2022-09-10 14:03",
total: 50, //总人数
complete: 20, //完成人数
percent: 40,
},
{
course: "直播",
name: "管理直播间",
classify: "必修",
beginTime: "2022-09-12 14:03",
total: 50, //总人数
complete: 10, //完成人数
percent: 20,
},
{
course: "面授",
name: "管理面授课",
classify: "必修",
beginTime: "2022-09-16 14:03",
total: 80, //总人数
complete: 0, //完成人数
percent: 0,
},
{
course: "活动",
name: "管理活动",
classify: "必修",
beginTime: "2022-09-16 14:03",
total: 50, //总人数
complete: 40, //完成人数
percent: 80,
},
{
course: "作业",
name: "管理者作业",
classify: "选修",
beginTime: "2022-09-16 14:03",
total: 50, //总人数
complete: 30, //完成人数
percent: 60,
},
{
course: "考试",
name: "管理者考试",
classify: "必修",
beginTime: "2022-09-16 14:03",
total: 50, //总人数
complete: 50, //完成人数
percent: 100,
},
{
course: "案例",
name: "管理直播间",
classify: "必修",
beginTime: "2022-09-16 14:03",
total: 50, //总人数
complete: 10, //完成人数
percent: 20,
},
{
course: "外链",
name: "管理直播间",
classify: "必修",
beginTime: "2022-09-16 14:03",
total: 50, //总人数
complete: 10, //完成人数
percent: 20,
},
],
},
// {
// text: "阶段1腾飞班阶段1",
// children: [
// {
// course: "在线",
// name: "时间管理",
// classify: "选修",
// beginTime: "2022-09-10 14:03",
// total: 50, //总人数
// complete: 20, //完成人数
// percent: 40,
// },
// {
// course: "直播",
// name: "管理直播间",
// classify: "必修",
// beginTime: "2022-09-12 14:03",
// total: 50, //总人数
// complete: 10, //完成人数
// percent: 20,
// },
// {
// course: "面授",
// name: "管理面授课",
// classify: "必修",
// beginTime: "2022-09-16 14:03",
// total: 80, //总人数
// complete: 0, //完成人数
// percent: 0,
// },
// {
// course: "活动",
// name: "管理活动",
// classify: "必修",
// beginTime: "2022-09-16 14:03",
// total: 50, //总人数
// complete: 40, //完成人数
// percent: 80,
// },
// {
// course: "作业",
// name: "管理者作业",
// classify: "选修",
// beginTime: "2022-09-16 14:03",
// total: 50, //总人数
// complete: 30, //完成人数
// percent: 60,
// },
// {
// course: "考试",
// name: "管理者考试",
// classify: "必修",
// beginTime: "2022-09-16 14:03",
// total: 50, //总人数
// complete: 50, //完成人数
// percent: 100,
// },
// {
// course: "案例",
// name: "管理直播间",
// classify: "必修",
// beginTime: "2022-09-16 14:03",
// total: 50, //总人数
// complete: 10, //完成人数
// percent: 20,
// },
// {
// course: "外链",
// name: "管理直播间",
// classify: "必修",
// beginTime: "2022-09-16 14:03",
// total: 50, //总人数
// complete: 10, //完成人数
// percent: 20,
// },
// ],
// },
],
// 模板编辑列表
managerOptions: [

View File

@@ -59,7 +59,7 @@
<div class="items2">
<a-popover
placement="topLeft"
v-if="element.tit.length > 10"
v-if="element.tit?.length > 10"
>
<template #content>
<div style="width: 130px">
@@ -73,7 +73,7 @@
{{ element.tit }}
</div>
</a-popover>
<div class="nname" v-if="element.tit.length <= 10">
<div class="nname" v-if="element.tit?.length <= 10">
{{ element.tit }}
</div>
</div>

View File

@@ -2392,7 +2392,7 @@ export default {
//任务大纲渲染
const getTaskList = () => {
let objtl = {
projectId: 27,
projectId: storage.get("projectId"),
};
apitl
.getProjectDetail(objtl)