mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-15 13:56:45 +08:00
合并
This commit is contained in:
@@ -1,17 +1,14 @@
|
||||
import http from "./config";
|
||||
// 创建考试信息接口
|
||||
export const createExamination = (obj) => http.post('/examination/createExamination',obj,{
|
||||
headers: {
|
||||
'token': '123'
|
||||
}
|
||||
});
|
||||
export const createExamination = (obj) => http.post('/examination/createExamination', obj);
|
||||
// 根据Id删除考试信息
|
||||
export const deleteExaminationById = (obj) => http.post('/examination/deleteExaminationById',obj);
|
||||
export const deleteExaminationById = (obj) => http.post('/examination/deleteExaminationById', obj);
|
||||
// 根据ID获取考试信息详情
|
||||
export const queryExaminationDetailById = (obj) => http.post('/examination/queryExaminationDetailById',obj,{headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
|
||||
}
|
||||
export const queryExaminationDetailById = (obj) => http.post('/examination/queryExaminationDetailById', obj, {
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
|
||||
}
|
||||
});
|
||||
// 创建考试信息接口
|
||||
export const updateExamination = (obj) => http.post('/examination/updateExamination',obj);
|
||||
export const updateExamination = (obj) => http.post('/examination/updateExamination', obj);
|
||||
|
||||
|
||||
@@ -4,25 +4,13 @@ import http from "./config";
|
||||
export const getLiveBroadcastInfor = (obj) => http.get('/liveBroadcast', { params: obj })
|
||||
|
||||
//创建直播接口
|
||||
export const createLiveBroadcast = (obj) => http.post('/liveBroadcast/createLiveBroadcast', obj, {
|
||||
headers: {
|
||||
'token': '123'
|
||||
}
|
||||
})
|
||||
export const createLiveBroadcast = (obj) => http.post('/liveBroadcast/createLiveBroadcast', obj)
|
||||
|
||||
//直播信息删除接口
|
||||
export const deleteLiveBroadcast = (obj) => http.post('/liveBroadcast/deleteLiveBroadcast', obj, {
|
||||
headers: {
|
||||
'token': '123'
|
||||
}
|
||||
})
|
||||
export const deleteLiveBroadcast = (obj) => http.post('/liveBroadcast/deleteLiveBroadcast', obj)
|
||||
|
||||
//直播信息修改接口
|
||||
export const updateLiveBroadcastMessage = (obj) => http.post('/liveBroadcast/updateLiveBroadcastMessage', obj, {
|
||||
headers: {
|
||||
'token': '123'
|
||||
}
|
||||
})
|
||||
export const updateLiveBroadcastMessage = (obj) => http.post('/liveBroadcast/updateLiveBroadcastMessage', obj)
|
||||
|
||||
//获取全部评估信息接口
|
||||
export const queryAssessmentDetailList = (obj) => http.post('/assessment/queryAssessmentDetailList', obj)
|
||||
@@ -26,3 +26,6 @@ export const overview = (obj) => http.get('/admin/project/overview', { params: o
|
||||
|
||||
//设置项目积分规则
|
||||
export const setScoreRule = (obj) => http.post('/admin/project/setScoreRule', obj)
|
||||
|
||||
//获取学员积分明细列表
|
||||
export const studentScoreList = (obj) => http.post('/admin/project/studentScoreList', obj)
|
||||
@@ -1,10 +1,6 @@
|
||||
import http from "./config";
|
||||
//获取任务列表
|
||||
export const getTask = (obj) => http.get('/admin/project/detail', { params: obj }, {
|
||||
headers: {
|
||||
'token': '123'
|
||||
}
|
||||
})
|
||||
export const getTask = (obj) => http.get('/admin/project/detail', { params: obj })
|
||||
|
||||
//项目里的新建或编辑阶段任务
|
||||
export const addTask = (obj) => http.post('/admin/project/editTask', obj)
|
||||
|
||||
@@ -1,18 +1,14 @@
|
||||
import http from "./config";
|
||||
// 创建作业信息接口
|
||||
export const createWorkTask = (obj) =>
|
||||
http.post("/work/createWorkTask", obj, {
|
||||
headers: {
|
||||
token: "123",
|
||||
},
|
||||
});
|
||||
http.post("/work/createWorkTask", obj);
|
||||
// 删除作业信息接口
|
||||
export const deleteWorkTask = (obj) => http.post("/work/deleteWorkTask", obj);
|
||||
// 根据ID获取作业信息详情
|
||||
export const queryWorkDetailById = (obj) => http.post('/work/queryWorkDetailById',obj,{
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
|
||||
}
|
||||
export const queryWorkDetailById = (obj) => http.post('/work/queryWorkDetailById', obj, {
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
|
||||
}
|
||||
});
|
||||
// 修改作业信息接口
|
||||
export const updateWorkTaskUsing = (obj) =>
|
||||
|
||||
@@ -97,7 +97,6 @@ export default {
|
||||
});
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:assessmentVisible", false);
|
||||
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
console.log("state getAllInvistText", bool);
|
||||
|
||||
@@ -9,15 +9,14 @@
|
||||
>
|
||||
<div class="drawerMain">
|
||||
<div class="header">
|
||||
|
||||
<div class="headerTitle">{{edit?'编辑':'添加'}}活动</div>
|
||||
<div class="headerTitle">{{ edit ? "编辑" : "添加" }}活动</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="../../assets/images/basicinfo/close.png"
|
||||
@click="closeDrawer"
|
||||
/>
|
||||
</div>
|
||||
<div class="contentMain">
|
||||
<div class="contentMain">
|
||||
<div class="main_left">
|
||||
<div class="main_item">
|
||||
<div class="signbox">
|
||||
@@ -72,7 +71,7 @@
|
||||
</div>
|
||||
<div class="main_item">
|
||||
<div class="signbox">
|
||||
<div class="sign">
|
||||
<div class="sign">
|
||||
<img
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
@@ -214,11 +213,11 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_btns">
|
||||
<button class="btn1" @click="closeDrawer">取消</button>
|
||||
<button class="btn2" @click="updateActivityInfo">确定</button>
|
||||
</div>
|
||||
<button class="btn1" @click="closeDrawer">取消</button>
|
||||
<button class="btn2" @click="updateActivityInfo">确定</button>
|
||||
</div>
|
||||
</div>
|
||||
</a-drawer>
|
||||
</template>
|
||||
@@ -226,9 +225,9 @@
|
||||
import { reactive, toRefs, ref } from "vue";
|
||||
import * as api from "../../api/indexActivity";
|
||||
import * as apiTask from "../../api/indexTaskadd";
|
||||
import { RouterEditTask } from "@/api/indexTask"
|
||||
import { RouterEditTask } from "@/api/indexTask";
|
||||
import { message } from "ant-design-vue";
|
||||
import dayjs from 'dayjs';
|
||||
import dayjs from "dayjs";
|
||||
const rowSelection = ref({
|
||||
checkStrictly: false,
|
||||
onChange: (selectedRowKeys, selectedRows) => {
|
||||
@@ -258,7 +257,8 @@ export default {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
edit: { // 是否为编辑
|
||||
edit: {
|
||||
// 是否为编辑
|
||||
type: Boolean,
|
||||
default: null,
|
||||
},
|
||||
@@ -274,15 +274,18 @@ export default {
|
||||
type: Number,
|
||||
default: 0,
|
||||
},
|
||||
isLevel: { // 是否是关卡页面触发
|
||||
isLevel: {
|
||||
// 是否是关卡页面触发
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
EditWorkId: { // 要编辑的workId
|
||||
EditWorkId: {
|
||||
// 要编辑的workId
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
projectTaskId: { // 要编辑的projectId
|
||||
projectTaskId: {
|
||||
// 要编辑的projectId
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
@@ -293,7 +296,7 @@ export default {
|
||||
isactive: {
|
||||
type: Number,
|
||||
default: null,
|
||||
}
|
||||
},
|
||||
},
|
||||
setup(props, ctx) {
|
||||
//console.log("学习路径",props.isStudiscuss);
|
||||
@@ -322,35 +325,46 @@ export default {
|
||||
state.textV1 = "";
|
||||
state.textV2 = "";
|
||||
state.time = "";
|
||||
message.success(`${props.edit ? '编辑' : '新增'}关卡任务成功`)
|
||||
|
||||
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
|
||||
localStorage.setItem("stageId", props.chooseStageId);
|
||||
localStorage.setItem("chapterId", props.isactive);
|
||||
};
|
||||
const queryActive = () => {
|
||||
console.log("props.EditActiveId======",props.EditActiveId,props.chooseStageId,props.routerTaskId);
|
||||
api.getActivity(props.EditActiveId).then(res => {
|
||||
console.log('获取讨论信息成功',res.data.data.standardSettings)
|
||||
console.log(
|
||||
"props.EditActiveId======",
|
||||
props.EditActiveId,
|
||||
props.chooseStageId,
|
||||
props.routerTaskId
|
||||
);
|
||||
api
|
||||
.getActivity(props.EditActiveId)
|
||||
.then((res) => {
|
||||
console.log("获取讨论信息成功", res.data.data.standardSettings);
|
||||
|
||||
//更新讨论信息
|
||||
state.inputV1 = res.data.data.activityName;
|
||||
state.inputV1 = res.data.data.activityName;
|
||||
state.textV1 = res.data.data.activityNotice;
|
||||
state.textV2 = res.data.data.activityExplain;
|
||||
state.inputV2 = res.data.data.activityDuration;
|
||||
state.inputV3 = res.data.data.activityAddress;
|
||||
state.inputV5 = res.data.data.afterSignIn;
|
||||
state.inputV6 =res.data.data.signOutTime;
|
||||
state.inputV6 = res.data.data.signOutTime;
|
||||
state.inputV4 = res.data.data.beforeSignIn;
|
||||
state.radioV1 = Number(res.data.data.standardSettings);
|
||||
|
||||
state.time = [dayjs(res.data.data.activityStartTime, "YYYY-MM-DD"), dayjs(res.data.data.activityEndTime, "YYYY-MM-DD")]
|
||||
}).catch(err=>{
|
||||
console.log('获取讨论信息失败',err)
|
||||
state.time = [
|
||||
dayjs(res.data.data.activityStartTime, "YYYY-MM-DD"),
|
||||
dayjs(res.data.data.activityEndTime, "YYYY-MM-DD"),
|
||||
];
|
||||
})
|
||||
}
|
||||
.catch((err) => {
|
||||
console.log("获取讨论信息失败", err);
|
||||
});
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
if(bool && props.edit){
|
||||
if (bool && props.edit) {
|
||||
queryActive();
|
||||
}
|
||||
|
||||
};
|
||||
const cloradio1 = (value) => {
|
||||
if (value != "") {
|
||||
@@ -358,107 +372,107 @@ export default {
|
||||
}
|
||||
};
|
||||
const updateTask = (res) => {
|
||||
if(props.isLevel == 1 ){
|
||||
if (props.isLevel == 1) {
|
||||
RouterEditTask({
|
||||
chapterId:props.isactive,
|
||||
courseId: res.data.data.activityId,
|
||||
duration: res.data.data.activityDuration,
|
||||
name: res.data.data.activityName,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId ||0,
|
||||
type: 9,
|
||||
}).then(res => {
|
||||
console.log("新增关卡任务成功",res);
|
||||
|
||||
}).catch(err => {
|
||||
console.log("新增关卡任务失败",err);
|
||||
chapterId: props.isactive,
|
||||
courseId: res.data.data.activityId,
|
||||
duration: res.data.data.activityDuration,
|
||||
name: res.data.data.activityName,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
type: 9,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log("新增关卡任务成功", res);
|
||||
})
|
||||
}else if(props.isLevel==2){
|
||||
apiTask.addTask({
|
||||
.catch((err) => {
|
||||
console.log("新增关卡任务失败", err);
|
||||
});
|
||||
} else if (props.isLevel == 2) {
|
||||
apiTask
|
||||
.addTask({
|
||||
courseId: res.data.data.activityId,
|
||||
duration: res.data.data.activityDuration,
|
||||
name: res.data.data.activityName,
|
||||
projectId: props.projectId,
|
||||
projectTaskId: props.projectTaskId ||0,
|
||||
stageId:props.chooseStageId,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId,
|
||||
type: 9,
|
||||
}).then((res)=> {
|
||||
console.log("更新任务列表成功",res);
|
||||
|
||||
})
|
||||
.catch((err)=> {
|
||||
console.log("更新任务列表失败",err);
|
||||
.then((res) => {
|
||||
console.log("更新任务列表成功", res);
|
||||
})
|
||||
}else if(props.isLevel == 3){
|
||||
.catch((err) => {
|
||||
console.log("更新任务列表失败", err);
|
||||
});
|
||||
} else if (props.isLevel == 3) {
|
||||
console.log("模板库更新更新任务列表");
|
||||
}
|
||||
}
|
||||
};
|
||||
//创建活动
|
||||
const updateActivityInfo = () => {
|
||||
if(!state.inputV1){
|
||||
if (!state.inputV1) {
|
||||
message.destroy();
|
||||
return message.warning("请输入活动名称");
|
||||
}
|
||||
if(!state.textV1){
|
||||
if (!state.textV1) {
|
||||
message.destroy();
|
||||
return message.warning("请输入活动公告");
|
||||
}
|
||||
if(!state.time){
|
||||
if (!state.time) {
|
||||
message.destroy();
|
||||
return message.warning("请输入活动时间");
|
||||
}
|
||||
if(!state.inputV2){
|
||||
if (!state.inputV2) {
|
||||
message.destroy();
|
||||
return message.warning("请输入活动时长");
|
||||
}
|
||||
if(!state.inputV3){
|
||||
if (!state.inputV3) {
|
||||
message.destroy();
|
||||
return message.warning("请输入活动地址");
|
||||
}
|
||||
|
||||
let obj = {
|
||||
activityAddress: state.inputV3, //活动地址
|
||||
activityDuration: state.inputV2, //活动时长
|
||||
activityExplain: state.textV2, //活动说明
|
||||
activityEndTime: dayjs(state.time[1]).format("YYYY-MM-DD"), //活动结束时间
|
||||
activityId: props.edit?props.EditActiveId:0, //活动ID
|
||||
activityName: state.inputV1, //活动名称
|
||||
activityNotice: state.textV1, //活动公告
|
||||
activityStartTime:dayjs(state.time[0]).format("YYYY-MM-DD"),//活动开始时间
|
||||
activityTag: "", //活动逻辑删除标识
|
||||
afterSignIn: state.inputV5, //活动开始后多少分钟签到
|
||||
beforeSignIn: state.inputV4, //活动开始前多少分钟签到
|
||||
signOutTime: state.inputV6, //签退开始时间
|
||||
standardSettings: state.radioV1, //标准设置
|
||||
|
||||
activityAddress: state.inputV3, //活动地址
|
||||
activityDuration: state.inputV2, //活动时长
|
||||
activityExplain: state.textV2, //活动说明
|
||||
activityEndTime: dayjs(state.time[1]).format("YYYY-MM-DD"), //活动结束时间
|
||||
activityId: props.edit ? props.EditActiveId : 0, //活动ID
|
||||
activityName: state.inputV1, //活动名称
|
||||
activityNotice: state.textV1, //活动公告
|
||||
activityStartTime: dayjs(state.time[0]).format("YYYY-MM-DD"), //活动开始时间
|
||||
activityTag: "", //活动逻辑删除标识
|
||||
afterSignIn: state.inputV5, //活动开始后多少分钟签到
|
||||
beforeSignIn: state.inputV4, //活动开始前多少分钟签到
|
||||
signOutTime: state.inputV6, //签退开始时间
|
||||
standardSettings: state.radioV1, //标准设置
|
||||
};
|
||||
if(props.edit){
|
||||
if (props.edit) {
|
||||
//更新编辑活动信息
|
||||
api
|
||||
.updateActivity(obj)
|
||||
.then((res) => {
|
||||
closeDrawer();
|
||||
updateTask(res);
|
||||
ctx.emit("changeData", false);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("更新失败",err);
|
||||
})
|
||||
}else{
|
||||
.updateActivity(obj)
|
||||
.then((res) => {
|
||||
closeDrawer();
|
||||
updateTask(res);
|
||||
ctx.emit("changeData", false);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("更新失败", err);
|
||||
});
|
||||
} else {
|
||||
//新建活动信息
|
||||
api
|
||||
.createActivity(obj)
|
||||
.then((res) => {
|
||||
.createActivity(obj)
|
||||
.then((res) => {
|
||||
message.success("创建成功");
|
||||
closeDrawer();
|
||||
updateTask(res);
|
||||
ctx.emit("changeData", false);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("创建失败",err);
|
||||
})
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("创建失败", err);
|
||||
});
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
return {
|
||||
@@ -505,7 +519,7 @@ export default {
|
||||
border-radius: 8px;
|
||||
}
|
||||
.main_left {
|
||||
margin-top:32px;
|
||||
margin-top: 32px;
|
||||
padding-right: 30px;
|
||||
flex: 1;
|
||||
border-right: 1px solid #e8e8e8;
|
||||
|
||||
@@ -40,28 +40,37 @@
|
||||
<div class="search"></div>
|
||||
<div class="btnText">重置</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="main_table">
|
||||
<a-table class="ant-table-striped" :row-class-name="
|
||||
(_record, index) => (index % 2 === 1 ? 'table-striped' : null)
|
||||
" :row-selection="rowSelection" :columns="tableDataFunc()" :data-source="tableData"
|
||||
:loading="tableDataTotal === -1 ? true : false" expandRowByClick="true" this.getMilitaryDeployment()
|
||||
@expand="expandTable" :pagination="false" filterMultiple:false
|
||||
<div class="main_table">
|
||||
<a-table
|
||||
class="ant-table-striped"
|
||||
:row-class-name="
|
||||
(_record, index) => (index % 2 === 1 ? 'table-striped' : null)
|
||||
"
|
||||
:row-selection="rowSelection"
|
||||
:columns="tableDataFunc()"
|
||||
:data-source="tableData"
|
||||
:loading="tableDataTotal === -1 ? true : false"
|
||||
expandRowByClick="true"
|
||||
this.getMilitaryDeployment()
|
||||
@expand="expandTable"
|
||||
:pagination="false"
|
||||
filterMultiple:false
|
||||
/>
|
||||
<div class="pa">
|
||||
<a-pagination
|
||||
showSizeChanger="true"
|
||||
showQuickJumper="true"
|
||||
hideOnSinglePage="true"
|
||||
:pageSize="pageSize"
|
||||
:current="currentPage"
|
||||
:total="tableDataTotal"
|
||||
class="pagination"
|
||||
@change="handelChangePage"
|
||||
/>
|
||||
</div>
|
||||
<a-pagination
|
||||
showSizeChanger="true"
|
||||
showQuickJumper="true"
|
||||
hideOnSinglePage="true"
|
||||
:pageSize="pageSize"
|
||||
:current="currentPage"
|
||||
:total="tableDataTotal"
|
||||
class="pagination"
|
||||
@change="handelChangePage"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_btns">
|
||||
@@ -90,7 +99,8 @@ export default {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
edit: { // 是否为编辑
|
||||
edit: {
|
||||
// 是否为编辑
|
||||
type: Boolean,
|
||||
default: null,
|
||||
},
|
||||
@@ -106,11 +116,13 @@ export default {
|
||||
type: Number,
|
||||
default: 0,
|
||||
},
|
||||
isLevel: { // 是否是关卡页面触发
|
||||
isLevel: {
|
||||
// 是否是关卡页面触发
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
projectTaskId: { // 要编辑的projectId
|
||||
projectTaskId: {
|
||||
// 要编辑的projectId
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
@@ -121,14 +133,15 @@ export default {
|
||||
isactive: {
|
||||
type: Number,
|
||||
default: null,
|
||||
}
|
||||
},
|
||||
},
|
||||
setup(props, ctx) {
|
||||
const state = reactive({
|
||||
tableData: [
|
||||
{
|
||||
key: "1",
|
||||
title: "基于BOE显示PNL工厂的工序平1111112222222221111111111111122222333335555",
|
||||
title:
|
||||
"基于BOE显示PNL工厂的工序平1111112222222221111111111111122222333335555",
|
||||
name: "李玉冰",
|
||||
time: "2022-10-31 23:12:00",
|
||||
},
|
||||
@@ -136,7 +149,7 @@ export default {
|
||||
currentPage: 1,
|
||||
tableDataTotal: 0,
|
||||
pageSize: 10,
|
||||
inputV1: '',
|
||||
inputV1: "",
|
||||
time: undefined,
|
||||
assessmentId: null,
|
||||
assessmentName: "",
|
||||
@@ -144,6 +157,8 @@ export default {
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:addcaseVisible", false);
|
||||
ctx.emit("update:edit", false);
|
||||
localStorage.setItem("stageId", props.chooseStageId);
|
||||
localStorage.setItem("chapterId", props.isactive);
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
console.log("state", bool);
|
||||
@@ -179,7 +194,13 @@ export default {
|
||||
const rowSelection = {
|
||||
onSelect: (selectedRows, selected, selectedRowKeys) => {
|
||||
console.log(
|
||||
"selectedRowKeys", selectedRowKeys, "selectedRows", selectedRows, "selected", selected);
|
||||
"selectedRowKeys",
|
||||
selectedRowKeys,
|
||||
"selectedRows",
|
||||
selectedRows,
|
||||
"selected",
|
||||
selected
|
||||
);
|
||||
console.log(selectedRows.assessmentId);
|
||||
state.assessmentId = selectedRows.assessmentId;
|
||||
state.assessmentName = selectedRows.name;
|
||||
@@ -228,8 +249,8 @@ export default {
|
||||
});
|
||||
};
|
||||
const updateTask = () => {
|
||||
console.log("jinlaile=================", state.assessmentName)
|
||||
if (props.isLevel==1) {
|
||||
console.log("jinlaile=================", state.assessmentName);
|
||||
if (props.isLevel == 1) {
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: state.assessmentId,
|
||||
@@ -240,7 +261,7 @@ export default {
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res, 11111);
|
||||
message.success(`${props.edit ? '编辑' : '新增'}关卡任务成功`)
|
||||
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
|
||||
ctx.emit("changeData", false);
|
||||
closeDrawer();
|
||||
state.addLoading = false;
|
||||
@@ -248,7 +269,7 @@ export default {
|
||||
.catch((err) => {
|
||||
console.log(err, 1111);
|
||||
});
|
||||
} else if(props.isLevel==2){
|
||||
} else if (props.isLevel == 2) {
|
||||
console.log("=========projectTaskId", props.projectTaskId);
|
||||
apiTask
|
||||
.addTask({
|
||||
@@ -267,10 +288,10 @@ export default {
|
||||
.catch((err) => {
|
||||
console.log(err, 111111);
|
||||
});
|
||||
}else if(props.isLevel==3){
|
||||
} else if (props.isLevel == 3) {
|
||||
console.log("模板库");
|
||||
}
|
||||
}
|
||||
};
|
||||
//重置案例信息
|
||||
const resetCase = () => {
|
||||
state.inputV1 = "";
|
||||
@@ -297,181 +318,181 @@ export default {
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.ant-table-striped :deep(.table-striped) td {
|
||||
background-color: #fafafa !important;
|
||||
}
|
||||
background-color: #fafafa !important;
|
||||
}
|
||||
|
||||
.addcaseDrawer {
|
||||
.drawerMain {
|
||||
.header {
|
||||
height: 73px;
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
.addcaseDrawer {
|
||||
.drawerMain {
|
||||
.header {
|
||||
height: 73px;
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
flex-shrink: 0;
|
||||
.headerTitle {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: #333333;
|
||||
line-height: 25px;
|
||||
margin-left: 24px;
|
||||
}
|
||||
}
|
||||
.contentMain {
|
||||
.main_items {
|
||||
margin-top: 32px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
flex-shrink: 0;
|
||||
.headerTitle {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: #333333;
|
||||
line-height: 25px;
|
||||
margin-left: 24px;
|
||||
}
|
||||
}
|
||||
.contentMain {
|
||||
.main_items {
|
||||
margin-top:32px;
|
||||
margin-bottom: 12px;
|
||||
flex-wrap: wrap;
|
||||
.mi_ipts {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 12px;
|
||||
flex-wrap: wrap;
|
||||
.mi_ipts {
|
||||
margin-bottom: 20px;
|
||||
.mii_ipt {
|
||||
display: flex;
|
||||
margin-bottom: 20px;
|
||||
.mii_ipt {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-right: 24px;
|
||||
.ipt_name {
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
}
|
||||
.mi_btns {
|
||||
display: flex;
|
||||
margin-left: 38px;
|
||||
margin-bottom: 20px;
|
||||
cursor: pointer;
|
||||
.btn {
|
||||
padding: 0px 26px 0px 26px;
|
||||
height: 38px;
|
||||
border-radius: 8px;
|
||||
border: 1px solid rgba(64, 158, 255, 1);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-left: 14px;
|
||||
flex-shrink: 0;
|
||||
.search {
|
||||
background-size: 100%;
|
||||
}
|
||||
.btnText {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
line-height: 36px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
.btn1 {
|
||||
background: rgb(64, 158, 255);
|
||||
.search {
|
||||
width: 15px;
|
||||
height: 17px;
|
||||
background-image: url("@/assets/images/coursewareManage/search0.png");
|
||||
}
|
||||
.btnText {
|
||||
color: rgb(255, 255, 255);
|
||||
}
|
||||
}
|
||||
.btn2 {
|
||||
background: rgb(255, 255, 255);
|
||||
.search {
|
||||
width: 15px;
|
||||
height: 17px;
|
||||
background-image: url("@/assets/images/coursewareManage/reset1.png");
|
||||
}
|
||||
.btnText {
|
||||
color: rgb(64, 158, 255);
|
||||
}
|
||||
}
|
||||
.btn1:hover {
|
||||
background: rgb(255, 255, 255);
|
||||
.search {
|
||||
background-image: url("@/assets/images/courseManage/search1.png");
|
||||
}
|
||||
.btnText {
|
||||
color: #388be1;
|
||||
}
|
||||
}
|
||||
.btn2:hover {
|
||||
background: rgba(64, 158, 255, 1);
|
||||
.search {
|
||||
background-image: url("@/assets/images/courseManage/reset0.png");
|
||||
}
|
||||
.btnText {
|
||||
color: #ffffff;
|
||||
}
|
||||
align-items: center;
|
||||
margin-right: 24px;
|
||||
.ipt_name {
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
}
|
||||
.main_table {
|
||||
position: relative;
|
||||
padding-bottom: 80px;
|
||||
.classify {
|
||||
margin-left: 10px !important;
|
||||
padding-left: 9px !important;
|
||||
.mi_btns {
|
||||
display: flex;
|
||||
margin-left: 38px;
|
||||
margin-bottom: 20px;
|
||||
cursor: pointer;
|
||||
.btn {
|
||||
padding: 0px 26px 0px 26px;
|
||||
height: 38px;
|
||||
border-radius: 8px;
|
||||
border: 1px solid rgba(64, 158, 255, 1);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-left: 14px;
|
||||
flex-shrink: 0;
|
||||
.search {
|
||||
background-size: 100%;
|
||||
}
|
||||
.ant-checkbox-wrapper {
|
||||
align-items: center;
|
||||
margin-top: -2px;
|
||||
}
|
||||
.ant-table-selection-column {
|
||||
padding: 0px !important;
|
||||
padding-left:15px !important;
|
||||
}
|
||||
.ant-table-thead > tr > th {
|
||||
background-color: rgba(239, 244, 252, 1);
|
||||
}
|
||||
th.h {
|
||||
background-color: #eff4fc !important;
|
||||
}
|
||||
|
||||
.ant-table-tbody
|
||||
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
|
||||
> td {
|
||||
background: #f6f9fd;
|
||||
}
|
||||
.pa {
|
||||
left: 0;
|
||||
width: 100%;
|
||||
// height: 20px;
|
||||
// background-color: red;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
position: absolute;
|
||||
bottom: 20px;
|
||||
.btnText {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
line-height: 36px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
.btn1 {
|
||||
background: rgb(64, 158, 255);
|
||||
.search {
|
||||
width: 15px;
|
||||
height: 17px;
|
||||
background-image: url("@/assets/images/coursewareManage/search0.png");
|
||||
}
|
||||
.btnText {
|
||||
color: rgb(255, 255, 255);
|
||||
}
|
||||
}
|
||||
.btn2 {
|
||||
background: rgb(255, 255, 255);
|
||||
.search {
|
||||
width: 15px;
|
||||
height: 17px;
|
||||
background-image: url("@/assets/images/coursewareManage/reset1.png");
|
||||
}
|
||||
.btnText {
|
||||
color: rgb(64, 158, 255);
|
||||
}
|
||||
}
|
||||
.btn1:hover {
|
||||
background: rgb(255, 255, 255);
|
||||
.search {
|
||||
background-image: url("@/assets/images/courseManage/search1.png");
|
||||
}
|
||||
.btnText {
|
||||
color: #388be1;
|
||||
}
|
||||
}
|
||||
.btn2:hover {
|
||||
background: rgba(64, 158, 255, 1);
|
||||
.search {
|
||||
background-image: url("@/assets/images/courseManage/reset0.png");
|
||||
}
|
||||
.btnText {
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.main_btns {
|
||||
height: 72px;
|
||||
width: 100%;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
|
||||
.btn1 {
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
border: 1px solid #4ea6ff;
|
||||
border-radius: 8px;
|
||||
color: #4ea6ff;
|
||||
background-color: #fff;
|
||||
cursor: pointer;
|
||||
.main_table {
|
||||
position: relative;
|
||||
padding-bottom: 80px;
|
||||
.classify {
|
||||
margin-left: 10px !important;
|
||||
padding-left: 9px !important;
|
||||
}
|
||||
.btn2 {
|
||||
cursor: pointer;
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
background: #4ea6ff;
|
||||
border-radius: 8px;
|
||||
border: 0;
|
||||
margin-left: 15px;
|
||||
color: #fff;
|
||||
.ant-checkbox-wrapper {
|
||||
align-items: center;
|
||||
margin-top: -2px;
|
||||
}
|
||||
.ant-table-selection-column {
|
||||
padding: 0px !important;
|
||||
padding-left: 15px !important;
|
||||
}
|
||||
.ant-table-thead > tr > th {
|
||||
background-color: rgba(239, 244, 252, 1);
|
||||
}
|
||||
th.h {
|
||||
background-color: #eff4fc !important;
|
||||
}
|
||||
|
||||
.ant-table-tbody
|
||||
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
|
||||
> td {
|
||||
background: #f6f9fd;
|
||||
}
|
||||
.pa {
|
||||
left: 0;
|
||||
width: 100%;
|
||||
// height: 20px;
|
||||
// background-color: red;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
position: absolute;
|
||||
bottom: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.main_btns {
|
||||
height: 72px;
|
||||
width: 100%;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
|
||||
.btn1 {
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
border: 1px solid #4ea6ff;
|
||||
border-radius: 8px;
|
||||
color: #4ea6ff;
|
||||
background-color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
.btn2 {
|
||||
cursor: pointer;
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
background: #4ea6ff;
|
||||
border-radius: 8px;
|
||||
border: 0;
|
||||
margin-left: 15px;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -174,7 +174,9 @@ export default {
|
||||
state.inputV1 = "";
|
||||
state.textV1 = "";
|
||||
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
|
||||
// ctx.emit("changeData", false);
|
||||
localStorage.setItem("stageId", props.chooseStageId);
|
||||
localStorage.setItem("chapterId", props.isactive);
|
||||
};
|
||||
const queryDiscuss = () => {
|
||||
if (props.edit) {
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
>
|
||||
<div class="drawerMain">
|
||||
<div class="header">
|
||||
<div class="headerTitle">{{edit?'编辑':'添加'}}测评</div>
|
||||
<div class="headerTitle">{{ edit ? "编辑" : "添加" }}测评</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="../../assets/images/basicinfo/close.png"
|
||||
@@ -48,16 +48,18 @@
|
||||
<span style="margin-right: 3px">选择测评:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<button class="checkEval" @click="showEvalDrawer">选择测评</button>
|
||||
<button class="checkEval" @click="showEvalDrawer">
|
||||
选择测评
|
||||
</button>
|
||||
</div>
|
||||
<div>
|
||||
<div><EvList
|
||||
v-model:EvalListVisible="EvalListVisible"
|
||||
v-model:evaluationTypeId="evaluationTypeId"
|
||||
v-model:evaluationTypeName="evaluationTypeName"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<EvList
|
||||
v-model:EvalListVisible="EvalListVisible"
|
||||
v-model:evaluationTypeId="evaluationTypeId"
|
||||
v-model:evaluationTypeName="evaluationTypeName"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item">
|
||||
@@ -78,8 +80,12 @@
|
||||
<span style="margin-right: 3px">测评说明:</span>
|
||||
</div>
|
||||
<div class="textarea">
|
||||
<a-textarea v-model:value="description" placeholder="请输入测评说明" style="width:424px; height: 120px;" allowClear/>
|
||||
|
||||
<a-textarea
|
||||
v-model:value="description"
|
||||
placeholder="请输入测评说明"
|
||||
style="width: 424px; height: 120px"
|
||||
allowClear
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -102,11 +108,11 @@ import * as api from "../../api/indexEval";
|
||||
import * as apitaskadd from "../../api/indexTaskadd";
|
||||
import { message } from "ant-design-vue";
|
||||
import { RouterEditTask } from "@/api/indexTask";
|
||||
import dayjs from 'dayjs';
|
||||
import dayjs from "dayjs";
|
||||
// const router = useRouter();
|
||||
export default {
|
||||
name: "AddEval",
|
||||
components: {
|
||||
components: {
|
||||
EvList,
|
||||
},
|
||||
props: {
|
||||
@@ -118,7 +124,8 @@ export default {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
edit: { // 是否为编辑
|
||||
edit: {
|
||||
// 是否为编辑
|
||||
type: Boolean,
|
||||
default: null,
|
||||
},
|
||||
@@ -134,11 +141,13 @@ export default {
|
||||
type: Number,
|
||||
default: 0,
|
||||
},
|
||||
isLevel: { // 是否是关卡页面触发
|
||||
isLevel: {
|
||||
// 是否是关卡页面触发
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
projectTaskId: { // 要编辑的projectId
|
||||
projectTaskId: {
|
||||
// 要编辑的projectId
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
@@ -157,10 +166,10 @@ export default {
|
||||
inputV2: "",
|
||||
time: undefined,
|
||||
EvalId: null,
|
||||
evaluationTypeId:null,
|
||||
evaluationTypeName:"",
|
||||
description:"",
|
||||
EvalListVisible:false,
|
||||
evaluationTypeId: null,
|
||||
evaluationTypeName: "",
|
||||
description: "",
|
||||
EvalListVisible: false,
|
||||
// addLoading:false,
|
||||
});
|
||||
|
||||
@@ -169,67 +178,72 @@ export default {
|
||||
ctx.emit("update:edit", false);
|
||||
state.inputV1 = "";
|
||||
state.inputV2 = "";
|
||||
localStorage.setItem("stageId", props.chooseStageId);
|
||||
localStorage.setItem("chapterId", props.isactive);
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
if(props.edit && bool){
|
||||
if (props.edit && bool) {
|
||||
queryEval();
|
||||
}
|
||||
};
|
||||
const showEvalDrawer = () =>{
|
||||
const showEvalDrawer = () => {
|
||||
state.EvalListVisible = true;
|
||||
console.log("进来了吗");
|
||||
};
|
||||
const queryEval = () =>{
|
||||
const queryEval = () => {
|
||||
api
|
||||
.queryEvaluationDetailById({evaluationId:props.evaluationId})
|
||||
.then((res) => {
|
||||
console.log("调用项目添加接口后", res.data.data);
|
||||
state.inputV1 = res.data.data.evaluationName;
|
||||
state.time = [dayjs(res.data.data.evaluationStartTime, "YYYY-MM-DD"), dayjs(res.data.data.evaluationEndTime, "YYYY-MM-DD")];
|
||||
state.evaluationTypeId = res.data.data.evaluationTypeId;
|
||||
state.evaluationTypeName =res.data.data.evaluationTypeName;
|
||||
//state.description =
|
||||
.queryEvaluationDetailById({ evaluationId: props.evaluationId })
|
||||
.then((res) => {
|
||||
console.log("调用项目添加接口后", res.data.data);
|
||||
state.inputV1 = res.data.data.evaluationName;
|
||||
state.time = [
|
||||
dayjs(res.data.data.evaluationStartTime, "YYYY-MM-DD"),
|
||||
dayjs(res.data.data.evaluationEndTime, "YYYY-MM-DD"),
|
||||
];
|
||||
state.evaluationTypeId = res.data.data.evaluationTypeId;
|
||||
state.evaluationTypeName = res.data.data.evaluationTypeName;
|
||||
//state.description =
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
const updateTask = (res)=>{
|
||||
if(props.isLevel ==1){
|
||||
};
|
||||
const updateTask = (res) => {
|
||||
if (props.isLevel == 1) {
|
||||
apitaskadd
|
||||
.addTask({
|
||||
courseId: res.data.data.evaluationId,
|
||||
name: res.data.data.evaluationName,
|
||||
projectId: props.projectId,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId,
|
||||
type: 10,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log("调用项目添加接口后", res.data);
|
||||
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
}else if(props.isLevel ==2){
|
||||
.addTask({
|
||||
courseId: res.data.data.evaluationId,
|
||||
name: res.data.data.evaluationName,
|
||||
projectId: props.projectId,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId,
|
||||
type: 10,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log("调用项目添加接口后", res.data);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
} else if (props.isLevel == 2) {
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: res.data.data.evaluationId,
|
||||
name: res.data.data.evaluationName,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
type: 10,
|
||||
}).then((res) => {
|
||||
console.log("调用项目添加接口后", res.data);
|
||||
|
||||
}).catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
}else if(props.isLevel ==3){
|
||||
console.log("模板库任务")
|
||||
chapterId: props.isactive,
|
||||
courseId: res.data.data.evaluationId,
|
||||
name: res.data.data.evaluationName,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
type: 10,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log("调用项目添加接口后", res.data);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
} else if (props.isLevel == 3) {
|
||||
console.log("模板库任务");
|
||||
}
|
||||
}
|
||||
};
|
||||
//创建或编辑测评信息
|
||||
const createEvalText = () => {
|
||||
if (!state.inputV1) {
|
||||
@@ -248,36 +262,36 @@ export default {
|
||||
let obj = {
|
||||
evaluationName: state.inputV1,
|
||||
evaluationEndTime: dayjs(state.time[1]).format("YYYY-MM-DD"),
|
||||
evaluationId: props.edit?props.evaluationId:0,
|
||||
evaluationId: props.edit ? props.evaluationId : 0,
|
||||
evaluationStartTime: dayjs(state.time[0]).format("YYYY-MM-DD"),
|
||||
evaluationTypeId:state.evaluationTypeId,
|
||||
evaluationTypeName:state.evaluationTypeName,
|
||||
evaluationTypeId: state.evaluationTypeId,
|
||||
evaluationTypeName: state.evaluationTypeName,
|
||||
//state.description
|
||||
};
|
||||
if(props.edit){
|
||||
if (props.edit) {
|
||||
api
|
||||
.createEvaluation(obj)
|
||||
.then((res) => {
|
||||
updateTask(res);
|
||||
message.success("创建成功");
|
||||
closeDrawer();
|
||||
ctx.emit("changeData", false);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
}else{
|
||||
.createEvaluation(obj)
|
||||
.then((res) => {
|
||||
updateTask(res);
|
||||
message.success("创建成功");
|
||||
closeDrawer();
|
||||
ctx.emit("changeData", false);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
} else {
|
||||
api
|
||||
.updateEvaluation(obj)
|
||||
.then((res) => {
|
||||
updateTask(res);
|
||||
message.success("创建成功");
|
||||
closeDrawer();
|
||||
ctx.emit("changeData", false);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
.updateEvaluation(obj)
|
||||
.then((res) => {
|
||||
updateTask(res);
|
||||
message.success("创建成功");
|
||||
closeDrawer();
|
||||
ctx.emit("changeData", false);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
@@ -318,7 +332,7 @@ export default {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
.main_left {
|
||||
margin-top:32px;
|
||||
margin-top: 32px;
|
||||
padding-right: 30px;
|
||||
flex: 1;
|
||||
border-right: 1px solid #e8e8e8;
|
||||
|
||||
@@ -48,11 +48,14 @@
|
||||
<span style="margin-right: 3px">选择课程:</span>
|
||||
</div>
|
||||
<div class="btnbox" @click="showDrawerSelFacet">
|
||||
<button class="xkbtn">选择课程</button>
|
||||
<button class="xkbtn">授课课程</button>
|
||||
</div>
|
||||
<!-- 选择面授侧弹窗 -->
|
||||
<div>
|
||||
<sel-facet v-model:selfacetVisible="selfacetvisible" />
|
||||
<sel-facet
|
||||
v-model:selfacetVisible="selfacetvisible"
|
||||
@getData="upDateTable"
|
||||
/>
|
||||
</div>
|
||||
<!-- 选择面授侧弹窗 -->
|
||||
</div>
|
||||
@@ -152,8 +155,15 @@
|
||||
<div class="timerbox">
|
||||
<span>开始前:</span>
|
||||
<a-input-number
|
||||
:min="0" :max="30" :precision="0"
|
||||
style="width: 88px; height: 32px;border-radius: 8px;overflow: hidden;"
|
||||
:min="0"
|
||||
:max="30"
|
||||
:precision="0"
|
||||
style="
|
||||
width: 88px;
|
||||
height: 32px;
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
"
|
||||
:v-model:value="inputV5"
|
||||
></a-input-number>
|
||||
<span style="color: #999999; margin-left: 8px">分钟</span>
|
||||
@@ -161,29 +171,43 @@
|
||||
<div class="timerbox">
|
||||
<span>开始后:</span>
|
||||
<a-input-number
|
||||
:min="0" :max="30" :precision="0"
|
||||
style="width: 88px; height: 32px;border-radius: 8px;overflow: hidden;"
|
||||
:min="0"
|
||||
:max="30"
|
||||
:precision="0"
|
||||
style="
|
||||
width: 88px;
|
||||
height: 32px;
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
"
|
||||
:v-model:value="inputV6"
|
||||
></a-input-number>
|
||||
<span style="color: #999999; margin-left: 8px">分钟</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="qdqtbox">
|
||||
<!-- <div class="qdqtbox">
|
||||
<div class="qtbtn"><div class="btntext">签退</div></div>
|
||||
</div>
|
||||
<div class="setbox">
|
||||
</div> -->
|
||||
<!-- <div class="setbox">
|
||||
<div class="timerbox">
|
||||
<span>结束前:</span>
|
||||
<a-input-number
|
||||
:min="0" :max="30" :precision="0"
|
||||
style="width: 88px; height: 32px;border-radius: 8px;overflow: hidden;"
|
||||
:min="0"
|
||||
:max="30"
|
||||
:precision="0"
|
||||
style="
|
||||
width: 88px;
|
||||
height: 32px;
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
"
|
||||
:v-model:value="inputV7"
|
||||
></a-input-number>
|
||||
<span style="color: #999999; margin-left: 8px"
|
||||
>分钟(提前签退则记为早退)</span
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item">
|
||||
@@ -192,7 +216,9 @@
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<a-radio-group v-model:value="radioV1">
|
||||
<a-radio v-model:checked="checked" :value="1" @click="cloradio1">仅签到</a-radio>
|
||||
<a-radio v-model:checked="checked" :value="1" @click="cloradio1"
|
||||
>仅签到</a-radio
|
||||
>
|
||||
<a-radio v-model:checked="checked" :value="2" @click="cloradio1"
|
||||
>签到、签退全部完成</a-radio
|
||||
>
|
||||
@@ -215,7 +241,9 @@
|
||||
</div>
|
||||
<div class="btnbox2">
|
||||
<a-radio-group v-model:value="radioV2">
|
||||
<a-radio v-model:checked="checked" :value="1" @click="cloradio2">允许项目内人员临时到场参加</a-radio>
|
||||
<a-radio v-model:checked="checked" :value="1" @click="cloradio2"
|
||||
>允许项目内人员临时到场参加</a-radio
|
||||
>
|
||||
<a-radio v-model:checked="checked" :value="2" @click="cloradio2"
|
||||
>允许项目外人员临时到场参加</a-radio
|
||||
>
|
||||
@@ -228,7 +256,7 @@
|
||||
</div>
|
||||
<div class="btnbox2">
|
||||
<a-checkbox v-model:checked="checked">需要评估</a-checkbox>
|
||||
<button class="xkbtn">选择课程</button>
|
||||
<button class="xkbtn">选择评估</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -271,13 +299,13 @@
|
||||
</div>
|
||||
<div class="main_btns">
|
||||
<button class="btn1">取消</button>
|
||||
<button class="btn2" @click ="updateFaceTeach">确定</button>
|
||||
<button class="btn2" @click="updateFaceTeach">确定</button>
|
||||
</div>
|
||||
</div>
|
||||
</a-drawer>
|
||||
</template>
|
||||
<script>
|
||||
import { reactive, toRefs} from "vue";
|
||||
import { reactive, toRefs } from "vue";
|
||||
import SelFacet from "../../components/drawers/SelFacet.vue";
|
||||
import AddHomework from "../../components/drawers/AddHomework.vue";
|
||||
import AddTest from "../../components/drawers/AddTest.vue";
|
||||
@@ -356,10 +384,12 @@ export default {
|
||||
ctx.emit("update:addfaceteachVisible", false);
|
||||
state.radioV1 = "";
|
||||
state.radioV2 = "";
|
||||
localStorage.setItem("stageId", props.chooseStageId);
|
||||
localStorage.setItem("chapterId", props.isactive);
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
console.log("state", bool);
|
||||
if(bool){
|
||||
if (bool) {
|
||||
queryFaceTeach();
|
||||
}
|
||||
};
|
||||
@@ -381,19 +411,16 @@ export default {
|
||||
if (value != "") {
|
||||
state.radioV2 = "";
|
||||
}
|
||||
}
|
||||
};
|
||||
//查询面授
|
||||
const queryFaceTeach=()=>{
|
||||
|
||||
}
|
||||
//更新任务列表
|
||||
const updateTask=()=>{
|
||||
|
||||
}
|
||||
//新建或编辑面授
|
||||
const updateFaceTeach=()=>{
|
||||
|
||||
}
|
||||
const queryFaceTeach = () => {};
|
||||
//更新任务列表
|
||||
const updateTask = () => {};
|
||||
//新建或编辑面授
|
||||
const updateFaceTeach = () => {};
|
||||
const upDateTable = (data) => {
|
||||
console.log("选择了课程", data);
|
||||
};
|
||||
return {
|
||||
...toRefs(state),
|
||||
showDrawerSelFacet,
|
||||
@@ -405,6 +432,7 @@ export default {
|
||||
cloradio2,
|
||||
updateFaceTeach,
|
||||
updateTask,
|
||||
upDateTable,
|
||||
// change,
|
||||
};
|
||||
},
|
||||
@@ -443,115 +471,115 @@ export default {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 32px;
|
||||
margin-bottom: 32px;
|
||||
margin-bottom: 32px;
|
||||
|
||||
.signbox {
|
||||
width: 120px;
|
||||
display: flex;
|
||||
justify-content: end;
|
||||
align-items: center;
|
||||
.signbox {
|
||||
width: 120px;
|
||||
display: flex;
|
||||
justify-content: end;
|
||||
align-items: center;
|
||||
|
||||
.sign {
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.btnbox {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
align-items: center;
|
||||
|
||||
.xkbtn {
|
||||
cursor: pointer;
|
||||
width: 130px;
|
||||
height: 40px;
|
||||
background: #388be1;
|
||||
border-radius: 8px;
|
||||
border: 0;
|
||||
margin-right: 8px;
|
||||
color: #fff;
|
||||
}
|
||||
.sign {
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.main_item2 {
|
||||
.btnbox {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
margin-bottom: 32px;
|
||||
flex: 1;
|
||||
align-items: center;
|
||||
|
||||
.signbox {
|
||||
width: 120px;
|
||||
display: flex;
|
||||
justify-content: end;
|
||||
align-items: center;
|
||||
.xkbtn {
|
||||
cursor: pointer;
|
||||
width: 130px;
|
||||
height: 40px;
|
||||
background: #388be1;
|
||||
border-radius: 8px;
|
||||
border: 0;
|
||||
margin-right: 8px;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.main_item2 {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
// margin-bottom: 32px;
|
||||
|
||||
.signbox {
|
||||
width: 120px;
|
||||
display: flex;
|
||||
justify-content: end;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.kqszbox {
|
||||
.qdqtbox {
|
||||
margin-left: 5px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.kqszbox {
|
||||
.qdqtbox {
|
||||
margin-left: 5px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.qdbtn,
|
||||
.qtbtn {
|
||||
width: 75px;
|
||||
height: 24px;
|
||||
background: rgba(56, 139, 225, 0.16);
|
||||
border-radius: 2px;
|
||||
border: 1px solid #387df7;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
.qdbtn,
|
||||
.qtbtn {
|
||||
width: 75px;
|
||||
height: 24px;
|
||||
background: rgba(56, 139, 225, 0.16);
|
||||
border-radius: 2px;
|
||||
border: 1px solid #387df7;
|
||||
.btntext {
|
||||
color: #387df7;
|
||||
}
|
||||
}
|
||||
|
||||
.setbox {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 10px;
|
||||
// margin-bottom: 24px;
|
||||
|
||||
.timerbox {
|
||||
margin-top: 6px;
|
||||
margin-right: 32px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
.btntext {
|
||||
color: #387df7;
|
||||
}
|
||||
}
|
||||
|
||||
.setbox {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 24px;
|
||||
|
||||
.timerbox {
|
||||
margin-top: 6px;
|
||||
margin-right: 32px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btnbox2 {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-start;
|
||||
|
||||
.xkbtn {
|
||||
cursor: pointer;
|
||||
width: 130px;
|
||||
height: 40px;
|
||||
background: #388be1;
|
||||
border-radius: 8px;
|
||||
border: 0;
|
||||
margin-right: 16px 8px 32px 0;
|
||||
color: #fff;
|
||||
margin-top: 16px;
|
||||
margin-bottom: 60px;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btnbox2 {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-start;
|
||||
|
||||
.xkbtn {
|
||||
cursor: pointer;
|
||||
width: 130px;
|
||||
height: 40px;
|
||||
background: #388be1;
|
||||
border-radius: 8px;
|
||||
border: 0;
|
||||
margin-right: 16px 8px 32px 0;
|
||||
color: #fff;
|
||||
margin-top: 16px;
|
||||
margin-bottom: 60px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.main_right {
|
||||
width: 337px;
|
||||
.main_right {
|
||||
width: 337px;
|
||||
|
||||
.main_item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 32px;
|
||||
.main_item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 32px;
|
||||
margin-bottom: 32px;
|
||||
.signbox {
|
||||
width: 120px;
|
||||
|
||||
@@ -279,6 +279,9 @@ export default {
|
||||
formState.choosedTime = "";
|
||||
ctx.emit("update:addhomeworkVisible", false);
|
||||
ctx.emit("update:edit", false);
|
||||
ctx.emit("changeData", false);
|
||||
localStorage.setItem("stageId", props.chooseStageId);
|
||||
localStorage.setItem("chapterId", props.isactive);
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
if (props.addhomeworkVisible && props.edit) {
|
||||
@@ -288,38 +291,35 @@ export default {
|
||||
console.log("state", bool);
|
||||
};
|
||||
|
||||
|
||||
|
||||
// 新增任务
|
||||
const updteHomeWork = () => {
|
||||
let obj = {
|
||||
submitEndTime: dayjs(formState.choosedTime[1]).format("YYYY-MM-DD"),
|
||||
submitStartTime: dayjs(formState.choosedTime[0]).format("YYYY-MM-DD"),
|
||||
workEnclosureAddress: "",
|
||||
workId: props.edit?props.EditWorkId:0,
|
||||
workId: props.edit ? props.EditWorkId : 0,
|
||||
workName: formState.workName,
|
||||
workRequirement: formState.workRequirement,
|
||||
};
|
||||
if(props.edit){
|
||||
if (props.edit) {
|
||||
updateWorkTaskUsing(obj)
|
||||
.then((res) => {
|
||||
updateTask(res);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch((err) => {
|
||||
message.error(`添加失败${err}`);
|
||||
});
|
||||
}else{
|
||||
.then((res) => {
|
||||
updateTask(res);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch((err) => {
|
||||
message.error(`添加失败${err}`);
|
||||
});
|
||||
} else {
|
||||
createWorkTask(obj)
|
||||
.then((res) => {
|
||||
updateTask(res);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch((err) => {
|
||||
message.error(`添加失败${err}`);
|
||||
});
|
||||
.then((res) => {
|
||||
updateTask(res);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch((err) => {
|
||||
message.error(`添加失败${err}`);
|
||||
});
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
// 查询任务
|
||||
@@ -345,50 +345,48 @@ export default {
|
||||
};
|
||||
// 新增编辑或新增项目任务
|
||||
const updateTask = (res) => {
|
||||
if(props.isLevel==1 ){
|
||||
if (props.isLevel == 1) {
|
||||
let editObj1 = {
|
||||
chapterId: props.isactive,
|
||||
courseId: res.data.data.workId,
|
||||
name: res.data.data.workName,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
type: 4,
|
||||
};
|
||||
chapterId: props.isactive,
|
||||
courseId: res.data.data.workId,
|
||||
name: res.data.data.workName,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
type: 4,
|
||||
};
|
||||
|
||||
RouterEditTask(editObj1)
|
||||
.then(() => {
|
||||
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
|
||||
ctx.emit("changeData", false);
|
||||
state.addLoading = false;
|
||||
})
|
||||
.catch(() => {
|
||||
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
|
||||
});
|
||||
}else if(props.isLevel==2){
|
||||
RouterEditTask(editObj1)
|
||||
.then(() => {
|
||||
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
|
||||
ctx.emit("changeData", false);
|
||||
state.addLoading = false;
|
||||
})
|
||||
.catch(() => {
|
||||
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
|
||||
});
|
||||
} else if (props.isLevel == 2) {
|
||||
let editObj = {
|
||||
courseId: res.data.data.workId,
|
||||
name:res.data.data.workName,
|
||||
projectId: props.edit?props.projectId:0,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId,
|
||||
type: 4,
|
||||
};
|
||||
ProjectEditTask(editObj)
|
||||
.then(() => {
|
||||
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
|
||||
ctx.emit("changeData", false);
|
||||
state.addLoading = false;
|
||||
})
|
||||
.catch(() => {
|
||||
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
|
||||
});
|
||||
}else if(props.isLevel==3){
|
||||
courseId: res.data.data.workId,
|
||||
name: res.data.data.workName,
|
||||
projectId: props.edit ? props.projectId : 0,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId,
|
||||
type: 4,
|
||||
};
|
||||
ProjectEditTask(editObj)
|
||||
.then(() => {
|
||||
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
|
||||
ctx.emit("changeData", false);
|
||||
state.addLoading = false;
|
||||
})
|
||||
.catch(() => {
|
||||
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
|
||||
});
|
||||
} else if (props.isLevel == 3) {
|
||||
console.log("模板库更新更新任务列表");
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
return {
|
||||
afterVisibleChange,
|
||||
closeDrawer,
|
||||
@@ -440,7 +438,7 @@ export default {
|
||||
padding-right: 30px;
|
||||
flex: 1;
|
||||
border-right: 1px solid #e8e8e8;
|
||||
margin-top:32px;
|
||||
margin-top: 32px;
|
||||
|
||||
.main_item {
|
||||
display: flex;
|
||||
|
||||
@@ -18,51 +18,61 @@
|
||||
/>
|
||||
</div>
|
||||
<div class="contentMain">
|
||||
<div class="main">
|
||||
<div class="main_left">
|
||||
<div class="main_notice">
|
||||
<div class="mntc_left">
|
||||
<div class="notice_icon"></div>
|
||||
<div v-if="assessment==null">
|
||||
<span class="title">已选择 <span class ="data">0</span> 条</span>
|
||||
</div>
|
||||
<div v-else>
|
||||
<span class="title">已选择 <span class ="data">1</span> 条;</span>
|
||||
<span class="title">名称: <span class ="data">{{assessment.name}}</span> </span>
|
||||
<span class="title">题数: <span class ="data">{{assessment.num}}</span> </span>
|
||||
<span class="title">创建人: <span class ="data">{{assessment.creator}}</span> </span>
|
||||
<span class="title">创建时间: <span class ="data">{{assessment.time}}</span> </span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="main_item">
|
||||
<div class="fi_input">
|
||||
|
||||
<div class="btns" @click="checkAssDrawer">
|
||||
<div class="search"></div>
|
||||
<div class="btnText">选择评估</div>
|
||||
<div class="main_item2">
|
||||
<AssessmentList
|
||||
v-model:assessmentVisible="assessmentVisible"
|
||||
@checkedAss="getCheckedAss"/>
|
||||
<div class="main">
|
||||
<div class="main_left">
|
||||
<div class="main_notice">
|
||||
<div class="mntc_left">
|
||||
<div class="notice_icon"></div>
|
||||
<div v-if="assessment == null">
|
||||
<span class="title"
|
||||
>已选择 <span class="data">0</span> 条</span
|
||||
>
|
||||
</div>
|
||||
<div v-else>
|
||||
<span class="title"
|
||||
>已选择 <span class="data">1</span> 条;</span
|
||||
>
|
||||
<span class="title"
|
||||
>名称: <span class="data">{{ assessment.name }}</span>
|
||||
</span>
|
||||
<span class="title"
|
||||
>题数: <span class="data">{{ assessment.num }}</span>
|
||||
</span>
|
||||
<span class="title"
|
||||
>创建人: <span class="data">{{ assessment.creator }}</span>
|
||||
</span>
|
||||
<span class="title"
|
||||
>创建时间: <span class="data">{{ assessment.time }}</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item">
|
||||
<div class="fi_input">
|
||||
<div class="btns" @click="checkAssDrawer">
|
||||
<div class="search"></div>
|
||||
<div class="btnText">选择评估</div>
|
||||
<div class="main_item2">
|
||||
<AssessmentList
|
||||
v-model:assessmentVisible="assessmentVisible"
|
||||
@checkedAss="getCheckedAss"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="main_btns">
|
||||
<button class="btn1" @click="closeDrawer">取消</button>
|
||||
<button class="btn2" @click="updateTask">确定</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_btns">
|
||||
<button class="btn1" @click="closeDrawer">取消</button>
|
||||
<button class="btn2" @click="updateTask">确定</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-drawer>
|
||||
</template>
|
||||
<script>
|
||||
import { reactive, toRefs} from "vue";
|
||||
import { reactive, toRefs } from "vue";
|
||||
import * as apiTask from "../../api/indexTaskadd";
|
||||
import { message } from "ant-design-vue";
|
||||
import AssessmentList from "./ AssessmentList.vue";
|
||||
@@ -81,7 +91,8 @@ export default {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
edit: { // 是否为编辑
|
||||
edit: {
|
||||
// 是否为编辑
|
||||
type: Boolean,
|
||||
default: null,
|
||||
},
|
||||
@@ -97,12 +108,14 @@ export default {
|
||||
type: Number,
|
||||
default: 0,
|
||||
},
|
||||
isLevel: { // 是否是关卡页面触发
|
||||
isLevel: {
|
||||
// 是否是关卡页面触发
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
|
||||
projectTaskId: { // 要编辑的projectId
|
||||
projectTaskId: {
|
||||
// 要编辑的projectId
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
@@ -114,7 +127,6 @@ export default {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
|
||||
},
|
||||
setup(props, ctx) {
|
||||
const state = reactive({
|
||||
@@ -123,76 +135,79 @@ export default {
|
||||
currentPage: 1,
|
||||
pageSize: 10,
|
||||
tableDataTotal: 0,
|
||||
tableData: [
|
||||
],
|
||||
assessmentId:null,
|
||||
assessmentName:"",
|
||||
assessment:null,
|
||||
assessmentVisible:false,
|
||||
|
||||
tableData: [],
|
||||
assessmentId: null,
|
||||
assessmentName: "",
|
||||
assessment: null,
|
||||
assessmentVisible: false,
|
||||
});
|
||||
const getCheckedAss = (ass) =>{
|
||||
state.assessment = ass
|
||||
console.log("checed===",state.assessment);
|
||||
}
|
||||
const getCheckedAss = (ass) => {
|
||||
state.assessment = ass;
|
||||
console.log("checed===", state.assessment);
|
||||
};
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:addinvistVisible", false);
|
||||
ctx.emit("update:edit", false);
|
||||
state.inputV1 = "";
|
||||
// ctx.emit("changeData", false);
|
||||
localStorage.setItem("stageId", props.chooseStageId);
|
||||
localStorage.setItem("chapterId", props.isactive);
|
||||
};
|
||||
const checkAssDrawer =() =>{
|
||||
const checkAssDrawer = () => {
|
||||
state.assessmentVisible = true;
|
||||
}
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
console.log("state", bool);
|
||||
state.assessmentId = null;
|
||||
state.assessmentName = "";
|
||||
state.assessment = null;
|
||||
};
|
||||
|
||||
const updateTask =()=>{
|
||||
if(state.assessment==null){
|
||||
const updateTask = () => {
|
||||
if (state.assessment == null) {
|
||||
return message.warning("请选择评估");
|
||||
}
|
||||
if(props.isLevel ==1){
|
||||
if (props.isLevel == 1) {
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: state.assessment.assessmentId,
|
||||
name:state.assessment.name,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
type: 11,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res, 11111);
|
||||
message.success(`${props.edit ? '编辑' : '新增'}关卡任务成功`)
|
||||
ctx.emit("changeData", false);
|
||||
closeDrawer();
|
||||
state.addLoading = false;
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err, 1111);
|
||||
});
|
||||
}else if(props.isLevel ==2){
|
||||
chapterId: props.isactive,
|
||||
courseId: state.assessment.assessmentId,
|
||||
name: state.assessment.name,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
type: 11,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res, 11111);
|
||||
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
|
||||
ctx.emit("changeData", false);
|
||||
closeDrawer();
|
||||
state.addLoading = false;
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err, 1111);
|
||||
});
|
||||
} else if (props.isLevel == 2) {
|
||||
apiTask
|
||||
.addTask({
|
||||
courseId: state.assessment.assessmentId,
|
||||
name:state.assessment.name,
|
||||
projectId: props.projectId,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId,
|
||||
type: 11,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log("调用项目添加接口后111", res.data, 11111);
|
||||
ctx.emit("changeData", false);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err, 111111);
|
||||
});
|
||||
}else if(props.isLevel == 3){
|
||||
.addTask({
|
||||
courseId: state.assessment.assessmentId,
|
||||
name: state.assessment.name,
|
||||
projectId: props.projectId,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId,
|
||||
type: 11,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log("调用项目添加接口后111", res.data, 11111);
|
||||
ctx.emit("changeData", false);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err, 111111);
|
||||
});
|
||||
} else if (props.isLevel == 3) {
|
||||
console.log("模板库更新更新任务列表");
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
return {
|
||||
...toRefs(state),
|
||||
@@ -229,107 +244,104 @@ export default {
|
||||
.contentMain {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
.main{
|
||||
width:100%;
|
||||
.main_left {
|
||||
padding-right: 30px;
|
||||
margin-top:32px;
|
||||
.main_item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 64px;
|
||||
.fi_input {
|
||||
margin-right: 20px;
|
||||
|
||||
}
|
||||
.btns {
|
||||
margin-right: 20px;
|
||||
padding: 0px 26px 0px 26px;
|
||||
height: 38px;
|
||||
background: #409eff;
|
||||
border-radius: 8px;
|
||||
//border: 1px solid rgba(64, 158, 255, 1);
|
||||
.main {
|
||||
width: 100%;
|
||||
.main_left {
|
||||
padding-right: 30px;
|
||||
margin-top: 32px;
|
||||
.main_item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-right: 14px;
|
||||
flex-shrink: 0;
|
||||
cursor: pointer;
|
||||
.search {
|
||||
width: 15px;
|
||||
height: 17px;
|
||||
background-image: url("../../assets/images/courseManage/search0.png");
|
||||
background-size: 100% 100%;
|
||||
margin-bottom: 64px;
|
||||
.fi_input {
|
||||
margin-right: 20px;
|
||||
}
|
||||
.btnText {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
line-height: 36px;
|
||||
margin-left: 5px;
|
||||
.btns {
|
||||
margin-right: 20px;
|
||||
padding: 0px 26px 0px 26px;
|
||||
height: 38px;
|
||||
background: #409eff;
|
||||
border-radius: 8px;
|
||||
//border: 1px solid rgba(64, 158, 255, 1);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-right: 14px;
|
||||
flex-shrink: 0;
|
||||
cursor: pointer;
|
||||
.search {
|
||||
width: 15px;
|
||||
height: 17px;
|
||||
background-image: url("../../assets/images/courseManage/search0.png");
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.btnText {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
line-height: 36px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
.btnsn {
|
||||
padding: 0px 26px 0px 26px;
|
||||
height: 38px;
|
||||
background: #ffffff;
|
||||
border-radius: 8px;
|
||||
border: 1px solid rgba(64, 158, 255, 1);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-right: 14px;
|
||||
flex-shrink: 0;
|
||||
cursor: pointer;
|
||||
.search {
|
||||
width: 16px;
|
||||
height: 18px;
|
||||
background-image: url("../../assets/images/courseManage/reset1.png");
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.btnText {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #409eff;
|
||||
line-height: 36px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.btnsn {
|
||||
padding: 0px 26px 0px 26px;
|
||||
height: 38px;
|
||||
background: #ffffff;
|
||||
border-radius: 8px;
|
||||
border: 1px solid rgba(64, 158, 255, 1);
|
||||
.main_notice {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-right: 14px;
|
||||
flex-shrink: 0;
|
||||
cursor: pointer;
|
||||
.search {
|
||||
width: 16px;
|
||||
height: 18px;
|
||||
background-image: url("../../assets/images/courseManage/reset1.png");
|
||||
background-size: 100% 100%;
|
||||
margin-bottom: 32px;
|
||||
height: 40px;
|
||||
background-color: #e9f6fe;
|
||||
.mntc_left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.title {
|
||||
color: rgba(0, 0, 0, 0.65);
|
||||
margin-right: 17px;
|
||||
}
|
||||
.data {
|
||||
color: #388be1;
|
||||
}
|
||||
.notice_icon {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
margin-right: 9px;
|
||||
margin-left: 9px;
|
||||
background-image: url(@/assets/images/coursewareManage/gan.png);
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
}
|
||||
.btnText {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #409eff;
|
||||
line-height: 36px;
|
||||
margin-left: 5px;
|
||||
.mntc_right {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
.main_notice {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 32px;
|
||||
height: 40px;
|
||||
background-color: #e9f6fe;
|
||||
.mntc_left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.title{
|
||||
color: rgba(0, 0, 0, 0.65);
|
||||
margin-right: 17px
|
||||
}
|
||||
.data{
|
||||
color: #388be1
|
||||
}
|
||||
.notice_icon {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
margin-right: 9px;
|
||||
margin-left: 9px;
|
||||
background-image: url(@/assets/images/coursewareManage/gan.png);
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
}
|
||||
.mntc_right {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
.main_btns {
|
||||
height: 72px;
|
||||
|
||||
@@ -445,6 +445,9 @@ export default {
|
||||
state.textV1 = "";
|
||||
state.switchC1 = "";
|
||||
state.imageUrl = "";
|
||||
ctx.emit("changeData", false);
|
||||
localStorage.setItem("stageId", props.chooseStageId);
|
||||
localStorage.setItem("chapterId", props.isactive);
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
console.log("props.edit===================", props.edit, bool);
|
||||
|
||||
@@ -59,10 +59,10 @@
|
||||
<div class="mntc_left">
|
||||
<div class="notice_icon"></div>
|
||||
<span style="color: rgba(0, 0, 0, 0.65); margin-right: 17px"
|
||||
>已选择 <span style="color: #388be1">{{RowsNum}}</span> 项</span
|
||||
>已选择 <span style="color: #388be1">{{ RowsNum }}</span> 项</span
|
||||
>
|
||||
<span style="color: rgba(0, 0, 0, 0.65)"
|
||||
>列表选项总计:<span>{{tableDataTotal}}</span> 条</span
|
||||
>列表选项总计:<span>{{ tableDataTotal }}</span> 条</span
|
||||
>
|
||||
</div>
|
||||
<div class="mntc_right">
|
||||
@@ -79,24 +79,24 @@
|
||||
:columns="tableDataFunc()"
|
||||
:data-source="tableData"
|
||||
:loading="tableDataTotal === -1 ? true : false"
|
||||
expandRowByClick="true"
|
||||
this.getMilitaryDeployment()
|
||||
@expand="expandTable"
|
||||
expandRowByClick="true"
|
||||
this.getMilitaryDeployment()
|
||||
@expand="expandTable"
|
||||
:pagination="false"
|
||||
filterMultiple:false
|
||||
filterMultiple:false
|
||||
/>
|
||||
<div class="pa">
|
||||
<a-pagination
|
||||
showSizeChanger="true"
|
||||
showQuickJumper="true"
|
||||
hideOnSinglePage="true"
|
||||
:pageSize="pageSize"
|
||||
:current="currentPage"
|
||||
:total="tableDataTotal"
|
||||
class="pagination"
|
||||
@change="handelChangePage"
|
||||
/>
|
||||
</div>
|
||||
<a-pagination
|
||||
showSizeChanger="true"
|
||||
showQuickJumper="true"
|
||||
hideOnSinglePage="true"
|
||||
:pageSize="pageSize"
|
||||
:current="currentPage"
|
||||
:total="tableDataTotal"
|
||||
class="pagination"
|
||||
@change="handelChangePage"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_btns">
|
||||
@@ -124,7 +124,8 @@ export default {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
edit: { // 是否为编辑
|
||||
edit: {
|
||||
// 是否为编辑
|
||||
type: Boolean,
|
||||
default: null,
|
||||
},
|
||||
@@ -140,11 +141,13 @@ export default {
|
||||
type: Number,
|
||||
default: 0,
|
||||
},
|
||||
isLevel: { // 是否是关卡页面触发
|
||||
isLevel: {
|
||||
// 是否是关卡页面触发
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
projectTaskId: { // 要编辑的projectId
|
||||
projectTaskId: {
|
||||
// 要编辑的projectId
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
@@ -155,20 +158,20 @@ export default {
|
||||
isactive: {
|
||||
type: Number,
|
||||
default: null,
|
||||
}
|
||||
},
|
||||
},
|
||||
setup(props, ctx) {
|
||||
const state = reactive({
|
||||
inputV1:"",
|
||||
options1 : [
|
||||
inputV1: "",
|
||||
options1: [
|
||||
{
|
||||
value: "value1",
|
||||
label: "未完成",
|
||||
},
|
||||
],
|
||||
time: undefined,
|
||||
assessmentId:null,
|
||||
assessmentName:"",
|
||||
assessmentId: null,
|
||||
assessmentName: "",
|
||||
RowsNum: 0,
|
||||
tableData: [],
|
||||
currentPage: 1,
|
||||
@@ -178,6 +181,9 @@ export default {
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:addonlineVisible", false);
|
||||
ctx.emit("update:edit", false);
|
||||
// ctx.emit("changeData", false);
|
||||
localStorage.setItem("stageId", props.chooseStageId);
|
||||
localStorage.setItem("chapterId", props.isactive);
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
console.log("state", bool);
|
||||
@@ -199,7 +205,8 @@ export default {
|
||||
width: "100px",
|
||||
align: "left",
|
||||
className: "classify",
|
||||
}, {
|
||||
},
|
||||
{
|
||||
title: "内容分类",
|
||||
dataIndex: "content",
|
||||
key: "content",
|
||||
@@ -235,19 +242,25 @@ export default {
|
||||
onSelectAll: (selected) => {
|
||||
console.log(selected);
|
||||
if (selected == true) {
|
||||
state.RowsNum = state.tableDataTotal
|
||||
state.RowsNum = state.tableDataTotal;
|
||||
} else {
|
||||
state.RowsNum = 0
|
||||
state.RowsNum = 0;
|
||||
}
|
||||
},
|
||||
onSelect: (selectedRows, selected, selectedRowKeys) => {
|
||||
console.log(
|
||||
"selectedRowKeys", selectedRowKeys, "selectedRows", selectedRows, "selected", selected);
|
||||
"selectedRowKeys",
|
||||
selectedRowKeys,
|
||||
"selectedRows",
|
||||
selectedRows,
|
||||
"selected",
|
||||
selected
|
||||
);
|
||||
console.log(selectedRows.assessmentId);
|
||||
if (selected == true) {
|
||||
state.RowsNum++
|
||||
state.RowsNum++;
|
||||
} else {
|
||||
state.RowsNum--
|
||||
state.RowsNum--;
|
||||
}
|
||||
state.assessmentId = selectedRows.assessmentId;
|
||||
state.assessmentName = selectedRows.name;
|
||||
@@ -295,49 +308,49 @@ export default {
|
||||
// state.createLoading = false;
|
||||
});
|
||||
};
|
||||
const updateTask =()=>{
|
||||
if(props.isLevel ==1){
|
||||
const updateTask = () => {
|
||||
if (props.isLevel == 1) {
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: state.assessmentId,
|
||||
name: state.assessmentName,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
type: 1,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res, 11111);
|
||||
message.success(`${props.edit ? '编辑' : '新增'}关卡任务成功`)
|
||||
ctx.emit("changeData", false);
|
||||
closeDrawer();
|
||||
state.addLoading = false;
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err, 1111);
|
||||
});
|
||||
}else if(props.isLevel ==2){
|
||||
console.log("=========projectTaskId",props.projectTaskId);
|
||||
chapterId: props.isactive,
|
||||
courseId: state.assessmentId,
|
||||
name: state.assessmentName,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
type: 1,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res, 11111);
|
||||
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
|
||||
ctx.emit("changeData", false);
|
||||
closeDrawer();
|
||||
state.addLoading = false;
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err, 1111);
|
||||
});
|
||||
} else if (props.isLevel == 2) {
|
||||
console.log("=========projectTaskId", props.projectTaskId);
|
||||
apiTask
|
||||
.addTask({
|
||||
courseId: state.assessmentId,
|
||||
name: state.assessmentName,
|
||||
projectId: props.projectId,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId,
|
||||
type: 1,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log("调用项目添加接口后111", res.data, 11111);
|
||||
ctx.emit("changeData", false);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err, 111111);
|
||||
});
|
||||
}else if(props.isLevel ==3){
|
||||
.addTask({
|
||||
courseId: state.assessmentId,
|
||||
name: state.assessmentName,
|
||||
projectId: props.projectId,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId,
|
||||
type: 1,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log("调用项目添加接口后111", res.data, 11111);
|
||||
ctx.emit("changeData", false);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err, 111111);
|
||||
});
|
||||
} else if (props.isLevel == 3) {
|
||||
console.log("");
|
||||
}
|
||||
}
|
||||
};
|
||||
//重置在线信息
|
||||
const resetOnline = () => {
|
||||
state.inputV1 = "";
|
||||
@@ -367,201 +380,201 @@ export default {
|
||||
background-color: #fafafa !important;
|
||||
}
|
||||
.addonlineDrawer {
|
||||
.drawerMain {
|
||||
.header {
|
||||
height: 73px;
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
.drawerMain {
|
||||
.header {
|
||||
height: 73px;
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
flex-shrink: 0;
|
||||
.headerTitle {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: #333333;
|
||||
line-height: 25px;
|
||||
margin-left: 24px;
|
||||
}
|
||||
}
|
||||
.contentMain {
|
||||
padding-right: 12px;
|
||||
.main_items {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 32px;
|
||||
margin-bottom: 12px;
|
||||
flex-wrap: wrap;
|
||||
.mi_ipts {
|
||||
display: flex;
|
||||
margin-bottom: 20px;
|
||||
.mii_ipt {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-right: 24px;
|
||||
.ipt_name {
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
}
|
||||
.mi_btns {
|
||||
display: flex;
|
||||
margin-left: 38px;
|
||||
margin-bottom: 20px;
|
||||
cursor: pointer;
|
||||
.btn {
|
||||
padding: 0px 26px 0px 26px;
|
||||
height: 38px;
|
||||
border-radius: 8px;
|
||||
border: 1px solid rgba(64, 158, 255, 1);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-left: 14px;
|
||||
flex-shrink: 0;
|
||||
.search {
|
||||
background-size: 100%;
|
||||
}
|
||||
.btnText {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
line-height: 36px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
.btn1 {
|
||||
background: rgb(64, 158, 255);
|
||||
.search {
|
||||
width: 15px;
|
||||
height: 17px;
|
||||
background-image: url("@/assets/images/coursewareManage/search0.png");
|
||||
}
|
||||
.btnText {
|
||||
color: rgb(255, 255, 255);
|
||||
}
|
||||
}
|
||||
.btn2 {
|
||||
background: rgb(255, 255, 255);
|
||||
.search {
|
||||
width: 15px;
|
||||
height: 17px;
|
||||
background-image: url("@/assets/images/coursewareManage/reset1.png");
|
||||
}
|
||||
.btnText {
|
||||
color: rgb(64, 158, 255);
|
||||
}
|
||||
}
|
||||
.btn1:hover {
|
||||
background: rgb(255, 255, 255);
|
||||
.search {
|
||||
background-image: url("@/assets/images/courseManage/search1.png");
|
||||
}
|
||||
.btnText {
|
||||
color: #388be1;
|
||||
}
|
||||
}
|
||||
.btn2:hover {
|
||||
background: rgba(64, 158, 255, 1);
|
||||
.search {
|
||||
background-image: url("@/assets/images/courseManage/reset0.png");
|
||||
}
|
||||
.btnText {
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.main_notice {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
flex-shrink: 0;
|
||||
.headerTitle {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: #333333;
|
||||
line-height: 25px;
|
||||
margin-left: 24px;
|
||||
}
|
||||
}
|
||||
.contentMain {
|
||||
padding-right: 12px;
|
||||
.main_items {
|
||||
margin-bottom: 32px;
|
||||
height: 40px;
|
||||
background-color: #e9f6fe;
|
||||
.mntc_left {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 32px;
|
||||
margin-bottom: 12px;
|
||||
flex-wrap: wrap;
|
||||
.mi_ipts {
|
||||
display: flex;
|
||||
margin-bottom: 20px;
|
||||
.mii_ipt {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-right: 24px;
|
||||
.ipt_name {
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
}
|
||||
.mi_btns {
|
||||
display: flex;
|
||||
margin-left: 38px;
|
||||
margin-bottom: 20px;
|
||||
cursor: pointer;
|
||||
.btn {
|
||||
padding: 0px 26px 0px 26px;
|
||||
height: 38px;
|
||||
border-radius: 8px;
|
||||
border: 1px solid rgba(64, 158, 255, 1);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-left: 14px;
|
||||
flex-shrink: 0;
|
||||
.search {
|
||||
background-size: 100%;
|
||||
}
|
||||
.btnText {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
line-height: 36px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
.btn1 {
|
||||
background: rgb(64, 158, 255);
|
||||
.search {
|
||||
width: 15px;
|
||||
height: 17px;
|
||||
background-image: url("@/assets/images/coursewareManage/search0.png");
|
||||
}
|
||||
.btnText {
|
||||
color: rgb(255, 255, 255);
|
||||
}
|
||||
}
|
||||
.btn2 {
|
||||
background: rgb(255, 255, 255);
|
||||
.search {
|
||||
width: 15px;
|
||||
height: 17px;
|
||||
background-image: url("@/assets/images/coursewareManage/reset1.png");
|
||||
}
|
||||
.btnText {
|
||||
color: rgb(64, 158, 255);
|
||||
}
|
||||
}
|
||||
.btn1:hover {
|
||||
background: rgb(255, 255, 255);
|
||||
.search {
|
||||
background-image: url("@/assets/images/courseManage/search1.png");
|
||||
}
|
||||
.btnText {
|
||||
color: #388be1;
|
||||
}
|
||||
}
|
||||
.btn2:hover {
|
||||
background: rgba(64, 158, 255, 1);
|
||||
.search {
|
||||
background-image: url("@/assets/images/courseManage/reset0.png");
|
||||
}
|
||||
.btnText {
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.main_notice {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 32px;
|
||||
height: 40px;
|
||||
background-color: #e9f6fe;
|
||||
.mntc_left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
.notice_icon {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
margin-right: 9px;
|
||||
margin-left: 9px;
|
||||
background-image: url(@/assets/images/coursewareManage/gan.png);
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
}
|
||||
.mntc_right {
|
||||
cursor: pointer;
|
||||
.notice_icon {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
margin-right: 9px;
|
||||
margin-left: 9px;
|
||||
background-image: url(@/assets/images/coursewareManage/gan.png);
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
}
|
||||
.main_table {
|
||||
position: relative;
|
||||
padding-bottom: 80px;
|
||||
.classify {
|
||||
margin-left: 10px !important;
|
||||
padding-left: 9px !important;
|
||||
}
|
||||
.ant-checkbox-wrapper {
|
||||
align-items: center;
|
||||
margin-top: -2px;
|
||||
}
|
||||
.ant-table-selection-column {
|
||||
padding: 0px !important;
|
||||
padding-left: 60px !important;
|
||||
}
|
||||
.ant-table-thead > tr > th {
|
||||
background-color: rgba(239, 244, 252, 1);
|
||||
}
|
||||
th.h {
|
||||
background-color: #eff4fc !important;
|
||||
}
|
||||
|
||||
.ant-table-tbody
|
||||
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
|
||||
> td {
|
||||
background: #f6f9fd;
|
||||
}
|
||||
.pa {
|
||||
left: 0;
|
||||
width: 100%;
|
||||
// height: 20px;
|
||||
// background-color: red;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
position: absolute;
|
||||
bottom: 20px;
|
||||
}
|
||||
}
|
||||
.mntc_right {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
.main_btns {
|
||||
height: 72px;
|
||||
width: 100%;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
|
||||
.btn1 {
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
border: 1px solid #4ea6ff;
|
||||
border-radius: 8px;
|
||||
color: #4ea6ff;
|
||||
background-color: #fff;
|
||||
cursor: pointer;
|
||||
.main_table {
|
||||
position: relative;
|
||||
padding-bottom: 80px;
|
||||
.classify {
|
||||
margin-left: 10px !important;
|
||||
padding-left: 9px !important;
|
||||
}
|
||||
.btn2 {
|
||||
cursor: pointer;
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
background: #4ea6ff;
|
||||
border-radius: 8px;
|
||||
border: 0;
|
||||
margin-left: 15px;
|
||||
color: #fff;
|
||||
.ant-checkbox-wrapper {
|
||||
align-items: center;
|
||||
margin-top: -2px;
|
||||
}
|
||||
.ant-table-selection-column {
|
||||
padding: 0px !important;
|
||||
padding-left: 60px !important;
|
||||
}
|
||||
.ant-table-thead > tr > th {
|
||||
background-color: rgba(239, 244, 252, 1);
|
||||
}
|
||||
th.h {
|
||||
background-color: #eff4fc !important;
|
||||
}
|
||||
|
||||
.ant-table-tbody
|
||||
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
|
||||
> td {
|
||||
background: #f6f9fd;
|
||||
}
|
||||
.pa {
|
||||
left: 0;
|
||||
width: 100%;
|
||||
// height: 20px;
|
||||
// background-color: red;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
position: absolute;
|
||||
bottom: 20px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.main_btns {
|
||||
height: 72px;
|
||||
width: 100%;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
|
||||
.btn1 {
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
border: 1px solid #4ea6ff;
|
||||
border-radius: 8px;
|
||||
color: #4ea6ff;
|
||||
background-color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
.btn2 {
|
||||
cursor: pointer;
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
background: #4ea6ff;
|
||||
border-radius: 8px;
|
||||
border: 0;
|
||||
margin-left: 15px;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -8,68 +8,76 @@
|
||||
>
|
||||
<div class="drawerMain">
|
||||
<div class="header">
|
||||
<div class="headerTitle">{{edit ? '编辑' : '添加' }}外链</div>
|
||||
<div class="headerTitle">{{ edit ? "编辑" : "添加" }}外链</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="../../assets/images/basicinfo/close.png"
|
||||
@click="closeDrawer"
|
||||
/>
|
||||
</div>
|
||||
<a-form ref="formRef" name="custom-validation" :model="state" :rules="rules" v-bind="layout"
|
||||
@finish="handleFinish" @validate="handleValidate" @finishFailed="handleFinishFailed">
|
||||
<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=""
|
||||
<a-form
|
||||
ref="formRef"
|
||||
name="custom-validation"
|
||||
:model="state"
|
||||
:rules="rules"
|
||||
v-bind="layout"
|
||||
@finish="handleFinish"
|
||||
@validate="handleValidate"
|
||||
@finishFailed="handleFinishFailed"
|
||||
>
|
||||
<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=""
|
||||
/>
|
||||
</div>
|
||||
<span style="margin-right: 3px">外链名称:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<a-input
|
||||
v-model:value="inputV1"
|
||||
style="width: 424px; height: 32px"
|
||||
placeholder="请输入外链名称"
|
||||
maxlength="20"
|
||||
/>
|
||||
</div>
|
||||
<span style="margin-right: 3px">外链名称:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<a-input
|
||||
v-model:value="inputV1"
|
||||
style="width: 424px; height: 32px"
|
||||
placeholder="请输入外链名称"
|
||||
maxlength="20"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item">
|
||||
<div class="signbox">
|
||||
<div class="sign">
|
||||
<img
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
<div class="main_item">
|
||||
<div class="signbox">
|
||||
<div class="sign">
|
||||
<img
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
<span style="margin-right: 3px">链接:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<a-input
|
||||
v-model:value="inputV2"
|
||||
style="width: 424px; height: 32px"
|
||||
placeholder="请输入链接"
|
||||
/>
|
||||
</div>
|
||||
<span style="margin-right: 3px">链接:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<a-input
|
||||
v-model:value="inputV2"
|
||||
style="width: 424px; height: 32px"
|
||||
placeholder="请输入链接"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item2">
|
||||
<div class="signbox">
|
||||
<span style="margin-right: 3px">外链说明:</span>
|
||||
</div>
|
||||
<div class="textarea">
|
||||
<a-textarea
|
||||
v-model:value="textV1"
|
||||
placeholder="请输入外链说明"
|
||||
allow-clear
|
||||
/>
|
||||
<div class="main_item2">
|
||||
<div class="signbox">
|
||||
<span style="margin-right: 3px">外链说明:</span>
|
||||
</div>
|
||||
<div class="textarea">
|
||||
<a-textarea
|
||||
v-model:value="textV1"
|
||||
placeholder="请输入外链说明"
|
||||
allow-clear
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-form>
|
||||
<div class="main_btns">
|
||||
<button class="btn1" @click="closeDrawer">取消</button>
|
||||
@@ -114,7 +122,8 @@ export default {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
edit: { // 是否为编辑
|
||||
edit: {
|
||||
// 是否为编辑
|
||||
type: Boolean,
|
||||
default: null,
|
||||
},
|
||||
@@ -130,12 +139,14 @@ export default {
|
||||
type: Number,
|
||||
default: 0,
|
||||
},
|
||||
isLevel: { // 是否是关卡页面触发
|
||||
isLevel: {
|
||||
// 是否是关卡页面触发
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
|
||||
projectTaskId: { // 要编辑的projectId
|
||||
projectTaskId: {
|
||||
// 要编辑的projectId
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
@@ -146,8 +157,7 @@ export default {
|
||||
isactive: {
|
||||
type: Number,
|
||||
default: null,
|
||||
}
|
||||
|
||||
},
|
||||
},
|
||||
setup(props, ctx) {
|
||||
const state = reactive({
|
||||
@@ -164,115 +174,120 @@ export default {
|
||||
state.inputV2 = "";
|
||||
state.inputV1 = "";
|
||||
state.textV1 = "";
|
||||
// ctx.emit("changeData", false);
|
||||
localStorage.setItem("stageId", props.chooseStageId);
|
||||
localStorage.setItem("chapterId", props.isactive);
|
||||
};
|
||||
|
||||
const afterVisibleChange = (bool) => {
|
||||
console.log("state", bool);
|
||||
|
||||
if(props.edit){
|
||||
if (props.edit) {
|
||||
queryRef();
|
||||
}
|
||||
|
||||
};
|
||||
const handleFinish = values => {
|
||||
const handleFinish = (values) => {
|
||||
console.log(values);
|
||||
//updateRef(props.EditRefId)
|
||||
};
|
||||
const handleFinishFailed = errors => {
|
||||
const handleFinishFailed = (errors) => {
|
||||
console.log(errors);
|
||||
// message.error("handleFinishFailed");
|
||||
};
|
||||
const updateTask =(res)=>{
|
||||
|
||||
if(props.isLevel ==1){
|
||||
const updateTask = (res) => {
|
||||
if (props.isLevel == 1) {
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: res.data.data.linkId,
|
||||
name: res.data.data.linkName,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
type: 7,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res, 11111);
|
||||
message.success(`${props.edit ? '编辑' : '新增'}关卡任务成功`)
|
||||
ctx.emit("changeData", false);
|
||||
closeDrawer();
|
||||
state.addLoading = false;
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err, 1111);
|
||||
});
|
||||
}else if(props.isLevel ==2){
|
||||
chapterId: props.isactive,
|
||||
courseId: res.data.data.linkId,
|
||||
name: res.data.data.linkName,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
type: 7,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res, 11111);
|
||||
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
|
||||
ctx.emit("changeData", false);
|
||||
closeDrawer();
|
||||
state.addLoading = false;
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err, 1111);
|
||||
});
|
||||
} else if (props.isLevel == 2) {
|
||||
apiTask
|
||||
.addTask({
|
||||
courseId:res.data.data.linkId,
|
||||
name: res.data.data.linkName,
|
||||
projectId: props.projectId,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId,
|
||||
type: 7,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log("调用项目添加接口后111", res.data, 11111);
|
||||
ctx.emit("changeData", false);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err, 111111);
|
||||
});
|
||||
}else if(props.isLevel ==3){
|
||||
.addTask({
|
||||
courseId: res.data.data.linkId,
|
||||
name: res.data.data.linkName,
|
||||
projectId: props.projectId,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId,
|
||||
type: 7,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log("调用项目添加接口后111", res.data, 11111);
|
||||
ctx.emit("changeData", false);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err, 111111);
|
||||
});
|
||||
} else if (props.isLevel == 3) {
|
||||
console.log("");
|
||||
}
|
||||
}
|
||||
};
|
||||
//创建外链
|
||||
const updateRef = () => {
|
||||
if (!state.inputV1) return message.warning("请输入外链名称");
|
||||
if (!state.inputV2){
|
||||
if (!state.inputV2) {
|
||||
return message.warning("请输入链接");
|
||||
}else{
|
||||
const reg = /(https?|ftp|file):\/\/[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]/;
|
||||
if ((!reg.test(state.inputV2)) && state.inputV2 != '') {
|
||||
} else {
|
||||
const reg =
|
||||
/(https?|ftp|file):\/\/[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]/;
|
||||
if (!reg.test(state.inputV2) && state.inputV2 != "") {
|
||||
return message.warning("请输入合法的链接地址");
|
||||
}
|
||||
}
|
||||
let obj = {
|
||||
linkAddress: state.inputV2,
|
||||
linkDescription: state.textV1,
|
||||
linkId:props.edit?props.EditRefId:0,
|
||||
linkId: props.edit ? props.EditRefId : 0,
|
||||
linkName: state.inputV1,
|
||||
};
|
||||
console.log("编辑的id========",props.EditRefId)
|
||||
if(props.edit){
|
||||
console.log("编辑的id========", props.EditRefId);
|
||||
if (props.edit) {
|
||||
api
|
||||
.updateLinks(obj)
|
||||
.then((res) => {
|
||||
message.success("编辑成功");
|
||||
updateTask(res);
|
||||
}).catch((err) => console.log(err));
|
||||
}else{
|
||||
.updateLinks(obj)
|
||||
.then((res) => {
|
||||
message.success("编辑成功");
|
||||
updateTask(res);
|
||||
})
|
||||
.catch((err) => console.log(err));
|
||||
} else {
|
||||
api
|
||||
.createExternalChain(obj)
|
||||
.then((res) => {
|
||||
message.success("提交成功");
|
||||
updateTask(res);
|
||||
}).catch((err) => console.log(err));
|
||||
.createExternalChain(obj)
|
||||
.then((res) => {
|
||||
message.success("提交成功");
|
||||
updateTask(res);
|
||||
})
|
||||
.catch((err) => console.log(err));
|
||||
}
|
||||
|
||||
};
|
||||
// 查询任务
|
||||
// 查询任务
|
||||
const queryRef = () => {
|
||||
let d =props.EditRefId ;
|
||||
let d = props.EditRefId;
|
||||
api
|
||||
.getLink({linkId:d}).then((res) => {
|
||||
// console.log(dayjs(res.data.data.submitStartTime).format("YYYY-MM-DD"));
|
||||
state.inputV1 = res.data.data.linkName;
|
||||
state.inputV2 =res.data.data.linkAddress;
|
||||
state.textV1 =res.data.data.linkDescription;
|
||||
console.log("查询成功=====inputv1",state.inputV1);
|
||||
}).catch(() => {
|
||||
message.error(`查询失败`)
|
||||
})
|
||||
.getLink({ linkId: d })
|
||||
.then((res) => {
|
||||
// console.log(dayjs(res.data.data.submitStartTime).format("YYYY-MM-DD"));
|
||||
state.inputV1 = res.data.data.linkName;
|
||||
state.inputV2 = res.data.data.linkAddress;
|
||||
state.textV1 = res.data.data.linkDescription;
|
||||
console.log("查询成功=====inputv1", state.inputV1);
|
||||
})
|
||||
.catch(() => {
|
||||
message.error(`查询失败`);
|
||||
});
|
||||
};
|
||||
return {
|
||||
...toRefs(state),
|
||||
@@ -314,7 +329,7 @@ export default {
|
||||
padding-right: 30px;
|
||||
flex: 1;
|
||||
border-right: 1px solid #e8e8e8;
|
||||
margin-top:32px;
|
||||
margin-top: 32px;
|
||||
.main_item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -40,7 +40,7 @@
|
||||
/>
|
||||
<div class="votename">创建投票:</div>
|
||||
</div>
|
||||
<div class="votebtn">创建投票</div>
|
||||
<div class="votebtn" @click="showVoteDrawer">创建投票</div>
|
||||
</div>
|
||||
<!-- 创建投票 -->
|
||||
<!-- 起止时间 -->
|
||||
@@ -135,6 +135,17 @@
|
||||
</div>
|
||||
</div>
|
||||
</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>
|
||||
<script>
|
||||
import { reactive, toRefs } from "vue";
|
||||
@@ -147,9 +158,14 @@ export default {
|
||||
},
|
||||
},
|
||||
setup(props, ctx) {
|
||||
const state = reactive({});
|
||||
const state = reactive({
|
||||
voteDrawerShow: false,
|
||||
});
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:addvoteVisible", false);
|
||||
ctx.emit("changeData", false);
|
||||
localStorage.setItem("stageId", props.chooseStageId);
|
||||
localStorage.setItem("chapterId", props.isactive);
|
||||
};
|
||||
|
||||
const afterVisibleChange = (bool) => {
|
||||
@@ -160,12 +176,18 @@ export default {
|
||||
state.visible = true;
|
||||
};
|
||||
|
||||
const showVoteDrawer = () => {
|
||||
state.voteDrawerShow = true;
|
||||
};
|
||||
const afterVoteVisibleChange = () => {};
|
||||
return {
|
||||
...toRefs(state),
|
||||
afterVisibleChange,
|
||||
showDrawer,
|
||||
closeDrawer,
|
||||
// change,
|
||||
showVoteDrawer,
|
||||
afterVoteVisibleChange,
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
</button>
|
||||
<div :style="{ display: creVote ? 'block' : 'none' }">
|
||||
<div class="fileTigan">
|
||||
<span style="color: #388be1">{{ballotName}}</span>
|
||||
<span style="color: #388be1">{{ ballotName }}</span>
|
||||
<div class="delBox" @click="dleVoteStem()"></div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -128,7 +128,7 @@
|
||||
</a-drawer>
|
||||
</template>
|
||||
<script>
|
||||
import { reactive, toRefs} from "vue";
|
||||
import { reactive, toRefs } from "vue";
|
||||
import CreVote from "./CreVote.vue";
|
||||
import * as api from "../../api/indexVote";
|
||||
import { message } from "ant-design-vue";
|
||||
@@ -136,7 +136,6 @@ import { RouterEditTask } from "@/api/indexTask";
|
||||
import dayjs from "dayjs";
|
||||
import * as apiTask from "../../api/indexTaskadd";
|
||||
|
||||
|
||||
export default {
|
||||
name: "AddVote",
|
||||
components: {
|
||||
@@ -167,11 +166,13 @@ export default {
|
||||
type: Number,
|
||||
default: 0,
|
||||
},
|
||||
isLevel: { // 是否是关卡页面触发
|
||||
isLevel: {
|
||||
// 是否是关卡页面触发
|
||||
type: Boolean,
|
||||
default: null,
|
||||
},
|
||||
projectTaskId: { // 要编辑的projectId
|
||||
projectTaskId: {
|
||||
// 要编辑的projectId
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
@@ -182,9 +183,7 @@ export default {
|
||||
isactive: {
|
||||
type: Number,
|
||||
default: null,
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
},
|
||||
setup(props, ctx) {
|
||||
const state = reactive({
|
||||
@@ -192,37 +191,40 @@ export default {
|
||||
textV1: "",
|
||||
crevotevisible: false,
|
||||
time: undefined,
|
||||
startTime:"",
|
||||
endTime:"",
|
||||
startTime: "",
|
||||
endTime: "",
|
||||
basevote: "",
|
||||
ascriptionId: "",
|
||||
voteStemId: null,
|
||||
voteId:"",
|
||||
voteStemName:"",
|
||||
voteId: "",
|
||||
voteStemName: "",
|
||||
ballotName: "",
|
||||
editStem: false, //编辑状态
|
||||
editStem: false, //编辑状态
|
||||
ballotId: 0, //题干id
|
||||
optionId: "", //删除,修改选项id
|
||||
});
|
||||
const closeDrawer = () => {
|
||||
state.inputV1 = "",
|
||||
state.textV1 = "",
|
||||
state.time = undefined,
|
||||
state.basevote = "",
|
||||
ctx.emit("update:addvoteVisible", false);
|
||||
(state.inputV1 = ""),
|
||||
(state.textV1 = ""),
|
||||
(state.time = undefined),
|
||||
(state.basevote = ""),
|
||||
ctx.emit("update:addvoteVisible", false);
|
||||
ctx.emit("update:edit", false);
|
||||
ctx.emit("changeData", false);
|
||||
localStorage.setItem("stageId", props.chooseStageId);
|
||||
localStorage.setItem("chapterId", props.isactive);
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
console.log("state", bool);
|
||||
queryVoteInfo();
|
||||
queryVoteInfo();
|
||||
};
|
||||
const showDrawerCreVote = () => {
|
||||
state.crevotevisible = true;
|
||||
};
|
||||
const getStemId = (data) => {
|
||||
state.ballotName = data.ballotName;
|
||||
state.ballotId =data.ballotId;
|
||||
}
|
||||
state.ballotId = data.ballotId;
|
||||
};
|
||||
|
||||
const delBox = () => {
|
||||
state.creVote = false;
|
||||
@@ -231,19 +233,18 @@ export default {
|
||||
//删除题干信息接口
|
||||
const dleVoteStem = () => {
|
||||
let objdelstem = {
|
||||
voteStemId:state.voteStemId
|
||||
}
|
||||
api.deleteVoteStem(objdelstem)
|
||||
.then((res) => {
|
||||
console.log('删除题干信息成功', res)
|
||||
message.success('删除题干信息成功')
|
||||
delBox()
|
||||
})
|
||||
}
|
||||
voteStemId: state.voteStemId,
|
||||
};
|
||||
api.deleteVoteStem(objdelstem).then((res) => {
|
||||
console.log("删除题干信息成功", res);
|
||||
message.success("删除题干信息成功");
|
||||
delBox();
|
||||
});
|
||||
};
|
||||
|
||||
//根据投票id获取投票信息
|
||||
const queryVoteInfo = ()=>{
|
||||
/**
|
||||
const queryVoteInfo = () => {
|
||||
/**
|
||||
let obj = {
|
||||
voteId:props.voteId
|
||||
}
|
||||
@@ -261,10 +262,9 @@ export default {
|
||||
console.log('获取投票信息失败',err);
|
||||
})
|
||||
**/
|
||||
|
||||
}
|
||||
const updateToTask =(res)=>{
|
||||
if(props.isLevel){
|
||||
};
|
||||
const updateToTask = (res) => {
|
||||
if (props.isLevel) {
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: res.data.data.voteId,
|
||||
@@ -275,17 +275,17 @@ export default {
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res, 11111);
|
||||
message.success(`${props.edit ? '编辑' : '新增'}关卡任务成功`)
|
||||
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
|
||||
ctx.emit("changeData", false);
|
||||
state.addLoading = false;
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err, 1111);
|
||||
});
|
||||
}else{
|
||||
} else {
|
||||
apiTask
|
||||
.addTask({
|
||||
courseId:res.data.data.voteId,
|
||||
courseId: res.data.data.voteId,
|
||||
name: res.data.data.voteName,
|
||||
projectId: props.projectId,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
@@ -300,7 +300,7 @@ export default {
|
||||
console.log(err, 111111);
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
//修改投票信息接口
|
||||
const updateVoteInfo = () => {
|
||||
if (!state.inputV1) {
|
||||
@@ -311,48 +311,47 @@ export default {
|
||||
if (state.basevote == "") {
|
||||
state.basevote = 1;
|
||||
}
|
||||
if(state.time != undefined){
|
||||
if (state.time != undefined) {
|
||||
state.startTime = dayjs(state.time[0]).format("YYYY-MM-DD");
|
||||
state.endTime = dayjs(state.time[1]).format("YYYY-MM-DD");
|
||||
}
|
||||
|
||||
let obj = {
|
||||
voteId: props.edit?state.voteId : 0,
|
||||
voteId: props.edit ? state.voteId : 0,
|
||||
voteName: state.inputV1,
|
||||
voteStartTime: state.startTime,
|
||||
voteEndTime: state.endTime,
|
||||
ballotId: state.ballotId,
|
||||
baseVote: state.basevote,
|
||||
voteExplain: state.textV1,
|
||||
createUser:0,
|
||||
updateUser:0,
|
||||
voteTag:"",
|
||||
}
|
||||
if(props.edit){
|
||||
createUser: 0,
|
||||
updateUser: 0,
|
||||
voteTag: "",
|
||||
};
|
||||
if (props.edit) {
|
||||
api
|
||||
.editVote(obj)
|
||||
.then((res) => {
|
||||
updateToTask(res);
|
||||
closeDrawer();
|
||||
console.log('修改投票信息成功', res);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log('修改投票信息失败', err);
|
||||
})
|
||||
}else{
|
||||
.editVote(obj)
|
||||
.then((res) => {
|
||||
updateToTask(res);
|
||||
closeDrawer();
|
||||
console.log("修改投票信息成功", res);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("修改投票信息失败", err);
|
||||
});
|
||||
} else {
|
||||
api
|
||||
.createVote(obj)
|
||||
.then((res) => {
|
||||
updateToTask(res);
|
||||
closeDrawer();
|
||||
console.log('创建投票信息成功', res);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log('创建投票信息失败', err);
|
||||
})
|
||||
.createVote(obj)
|
||||
.then((res) => {
|
||||
updateToTask(res);
|
||||
closeDrawer();
|
||||
console.log("创建投票信息成功", res);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("创建投票信息失败", err);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
return {
|
||||
...toRefs(state),
|
||||
showDrawerCreVote,
|
||||
@@ -363,7 +362,6 @@ export default {
|
||||
dleVoteStem,
|
||||
updateVoteInfo,
|
||||
delBox,
|
||||
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
@@ -9,16 +9,16 @@
|
||||
<div class="groupname" style="width: 42px">姓名:</div>
|
||||
<a-input
|
||||
class="ant-input"
|
||||
v-model:value="value"
|
||||
v-model:value="searchNameValue"
|
||||
placeholder="请输入姓名"
|
||||
/>
|
||||
</div>
|
||||
<div class="groupright">
|
||||
<div class="btn1">
|
||||
<div class="btn1" @click="searchStu">
|
||||
<img src="../../assets/images/courseManage/search0.png" />
|
||||
<span class="btn1text">搜索</span>
|
||||
</div>
|
||||
<div class="btn2">
|
||||
<div class="btn2" @click="resetStud">
|
||||
<img src="../../assets/images/courseManage/reset1.png" />
|
||||
<span class="btn2text">重置</span>
|
||||
</div>
|
||||
@@ -36,6 +36,7 @@
|
||||
/>
|
||||
<div class="pa">
|
||||
<a-pagination
|
||||
v-if="tableDataTotal > 10"
|
||||
showSizeChanger="true"
|
||||
showQuickJumper="true"
|
||||
hideOnSinglePage="true"
|
||||
@@ -43,6 +44,7 @@
|
||||
:current="currentPage"
|
||||
:total="tableDataTotal"
|
||||
class="pagination"
|
||||
@change="changePagination"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -277,16 +279,21 @@
|
||||
>
|
||||
</a-tabs>
|
||||
</div>
|
||||
<stu-score-detail v-model:Svisible="Svisible" />
|
||||
<stu-score-detail
|
||||
v-model:Svisible="Svisible"
|
||||
v-model:studentId="checkStuId"
|
||||
v-model:projectId="proId"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import StuScoreDetail from "../../components/drawers/StuScoreDetail";
|
||||
import { reactive, toRefs, computed } from "vue";
|
||||
import { reactive, toRefs, computed, onMounted } from "vue";
|
||||
import * as api from "../../api/index1";
|
||||
// import { message } from "ant-design-vue";
|
||||
// import { scoreRule } from "../../api/indexTaskadd"; //获取项目积分规则
|
||||
import { setScoreRule } from "../../api/indexTaskadd"; //设置项目积分规则
|
||||
import { getProjStu } from "../../api/indexProjStu";
|
||||
export default {
|
||||
name: "ProjectScore",
|
||||
components: {
|
||||
@@ -301,42 +308,15 @@ export default {
|
||||
setup(props) {
|
||||
const state = reactive({
|
||||
tabledataStu: [
|
||||
{
|
||||
key: 1,
|
||||
name: "小李",
|
||||
bum: "产研部",
|
||||
gangw: "产品经理",
|
||||
group: "好好学习",
|
||||
diploma: "0",
|
||||
operation: "查看",
|
||||
},
|
||||
{
|
||||
key: 2,
|
||||
name: "小刘",
|
||||
bum: "产研部",
|
||||
gangw: "产品经理",
|
||||
group: "天天向上",
|
||||
diploma: "0",
|
||||
operation: "查看",
|
||||
},
|
||||
{
|
||||
key: 3,
|
||||
name: "小王",
|
||||
bum: "产研部",
|
||||
gangw: "后端",
|
||||
group: "好好学习",
|
||||
diploma: "0",
|
||||
operation: "查看",
|
||||
},
|
||||
{
|
||||
key: 4,
|
||||
name: "小赵",
|
||||
bum: "产研部",
|
||||
gangw: "前端",
|
||||
group: "天天向上",
|
||||
diploma: "0",
|
||||
operation: "查看",
|
||||
},
|
||||
// {
|
||||
// key: 1,
|
||||
// name: "小李",
|
||||
// bum: "产研部",
|
||||
// gangw: "产品经理",
|
||||
// group: "好好学习",
|
||||
// diploma: "0",
|
||||
// operation: "查看",
|
||||
// },
|
||||
],
|
||||
|
||||
tablecolumnStu: [
|
||||
@@ -387,6 +367,20 @@ export default {
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "operation",
|
||||
customRender: (value) => {
|
||||
return (
|
||||
<div
|
||||
style="color:#387df7;cursor:pointer"
|
||||
onClick={() => {
|
||||
state.Svisible = true;
|
||||
console.log(value.record.key);
|
||||
state.checkStuId = value.record.key;
|
||||
}}
|
||||
>
|
||||
查看
|
||||
</div>
|
||||
);
|
||||
},
|
||||
},
|
||||
],
|
||||
datascore: [
|
||||
@@ -450,7 +444,6 @@ export default {
|
||||
activeKeyScore: "2",
|
||||
stuName: "请输入姓名",
|
||||
todayvalue: "1",
|
||||
tableDataTotal: 30,
|
||||
stuValue: false,
|
||||
Svisible: false,
|
||||
score1: null,
|
||||
@@ -468,6 +461,12 @@ export default {
|
||||
seven2: null,
|
||||
edit: true,
|
||||
searchRankName: null, //榜单搜索名称
|
||||
pageSize: 10,
|
||||
currentPage: 1,
|
||||
tableDataTotal: null,
|
||||
searchNameValue: null, //学员获取的姓名
|
||||
checkStuId: null,
|
||||
proId: null,
|
||||
});
|
||||
const getTableData = () => {
|
||||
let datas = state.tabledataStu;
|
||||
@@ -599,6 +598,66 @@ export default {
|
||||
|
||||
state.edit = true;
|
||||
};
|
||||
const getStu = (obj) => {
|
||||
state.proId = props.projectId;
|
||||
let objn = obj || {
|
||||
deptIds: [],
|
||||
groupId: "",
|
||||
groupName: "",
|
||||
name: "",
|
||||
pageNo: state.currentPage,
|
||||
pageSize: 10,
|
||||
projectId: props.projectId,
|
||||
topFlag: "",
|
||||
};
|
||||
getProjStu(objn).then((res) => {
|
||||
console.log("dedaole", res.data.data.rows);
|
||||
let result = res.data.data.rows;
|
||||
state.tableDataTotal = res.data.data.total;
|
||||
setStuData(result);
|
||||
});
|
||||
};
|
||||
const setStuData = (tabledata) => {
|
||||
let data = tabledata;
|
||||
let array = [];
|
||||
data.map((item) => {
|
||||
let obj = {
|
||||
key: item.studentId,
|
||||
name: item.name,
|
||||
bum: item.userInfoBo.deptName,
|
||||
gangw: item.userInfoBo.jobName,
|
||||
group: item.groupName,
|
||||
diploma: "0",
|
||||
// operation: "查看",
|
||||
};
|
||||
array.push(obj);
|
||||
});
|
||||
state.tabledataStu = array;
|
||||
};
|
||||
const changePagination = (current) => {
|
||||
state.currentPage = current;
|
||||
getStu();
|
||||
};
|
||||
const searchStu = () => {
|
||||
let obj = {
|
||||
deptIds: [],
|
||||
groupId: "",
|
||||
groupName: "",
|
||||
name: state.searchNameValue,
|
||||
pageNo: state.currentPage,
|
||||
pageSize: 10,
|
||||
projectId: props.projectId,
|
||||
topFlag: "",
|
||||
};
|
||||
getStu(obj);
|
||||
};
|
||||
const resetStud = () => {
|
||||
state.searchNameValue = null;
|
||||
getStu();
|
||||
};
|
||||
onMounted(() => {
|
||||
getStu();
|
||||
});
|
||||
return {
|
||||
...toRefs(state),
|
||||
typeChange,
|
||||
@@ -609,6 +668,11 @@ export default {
|
||||
scoreRank,
|
||||
editRule,
|
||||
scoresum,
|
||||
getStu,
|
||||
setStuData,
|
||||
changePagination,
|
||||
searchStu,
|
||||
resetStud,
|
||||
};
|
||||
},
|
||||
// computed: {
|
||||
|
||||
@@ -63,7 +63,11 @@
|
||||
:row-class-name="
|
||||
(_record, index) => (index % 2 === 1 ? 'table-striped' : null)
|
||||
"
|
||||
:row-selection="rowSelection"
|
||||
:row-selection="{
|
||||
selectedRowKeys: selectedRowKeys,
|
||||
onChange: onSelectChange,
|
||||
type: 'radio',
|
||||
}"
|
||||
:columns="columns1"
|
||||
:data-source="classTableData"
|
||||
:loading="tableDataTotal === -1 ? true : false"
|
||||
@@ -86,7 +90,7 @@
|
||||
</div>
|
||||
<div class="main_btns">
|
||||
<button class="btn1">取消</button>
|
||||
<button class="btn2">确定</button>
|
||||
<button class="btn2" @click="closeDrawer">确定</button>
|
||||
</div>
|
||||
</div>
|
||||
</a-drawer>
|
||||
@@ -150,22 +154,7 @@ const columns1 = [
|
||||
align: "center",
|
||||
},
|
||||
];
|
||||
const rowSelection = ref({
|
||||
checkStrictly: false,
|
||||
onChange: (selectedRowKeys, selectedRows) => {
|
||||
console.log(
|
||||
`selectedRowKeys: ${selectedRowKeys}`,
|
||||
"selectedRows: ",
|
||||
selectedRows
|
||||
);
|
||||
},
|
||||
onSelect: (record, selected, selectedRows) => {
|
||||
console.log(record, selected, selectedRows);
|
||||
},
|
||||
onSelectAll: (selected, selectedRows, changeRows) => {
|
||||
console.log(selected, selectedRows, changeRows);
|
||||
},
|
||||
});
|
||||
|
||||
export default {
|
||||
name: "SelFacet",
|
||||
props: {
|
||||
@@ -219,9 +208,19 @@ export default {
|
||||
pageSize: 10,
|
||||
valueClass: null, //课程编号
|
||||
valueContent: null, //内容分类
|
||||
selectedRows: [], //选择的数据
|
||||
selectedRowKeys: [],
|
||||
});
|
||||
const onSelectChange = (selectedRowKeys, selectedRows) => {
|
||||
console.log("selectedRowKeys changed: ", selectedRowKeys);
|
||||
|
||||
state.selectedRowKeys = selectedRowKeys;
|
||||
state.selectedRows = selectedRows;
|
||||
console.log(selectedRows);
|
||||
};
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:selfacetVisible", false);
|
||||
ctx.emit("getData", state.selectedRows);
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
console.log("state", bool);
|
||||
@@ -313,13 +312,13 @@ export default {
|
||||
closeDrawer,
|
||||
options1,
|
||||
columns1,
|
||||
rowSelection,
|
||||
getClassData,
|
||||
handleChange,
|
||||
reset,
|
||||
getClassList,
|
||||
search,
|
||||
changePaginationStu,
|
||||
onSelectChange,
|
||||
// change,
|
||||
};
|
||||
},
|
||||
|
||||
@@ -1,35 +1,34 @@
|
||||
<template>
|
||||
<a-drawer
|
||||
:visible="Svisible"
|
||||
class="drawerStyle StuScore"
|
||||
placement="right"
|
||||
width="70%"
|
||||
@after-visible-change="afterVisibleChange"
|
||||
>
|
||||
<div class="drawerMain">
|
||||
<div class="header">
|
||||
<div class="headerTitle">学员获取详情</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="../../assets/images/basicinfo/close.png"
|
||||
@click="closeDrawer"
|
||||
/>
|
||||
</div>
|
||||
<div class="contentMain">
|
||||
<a-drawer
|
||||
:visible="Svisible"
|
||||
class="drawerStyle StuScore"
|
||||
placement="right"
|
||||
width="70%"
|
||||
@after-visible-change="afterVisibleChange"
|
||||
>
|
||||
<div class="drawerMain">
|
||||
<div class="header">
|
||||
<div class="headerTitle">学员获取详情</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="../../assets/images/basicinfo/close.png"
|
||||
@click="closeDrawer"
|
||||
/>
|
||||
</div>
|
||||
<div class="contentMain">
|
||||
<div class="main">
|
||||
|
||||
<div class="tableBox" style="margin-top: 20px; margin-bottom: 100px">
|
||||
<a-table
|
||||
style="border: 1px solid #f2f6fe"
|
||||
:columns="tablecolumns"
|
||||
:data-source="tabledata"
|
||||
:loading="tableDataTotal === -1 ? true : false"
|
||||
@expand="expandTable"
|
||||
:pagination="false"
|
||||
|
||||
:columns="tablecolumns"
|
||||
:data-source="tabledata"
|
||||
:loading="tableDataTotal === -1 ? true : false"
|
||||
@expand="expandTable"
|
||||
:pagination="false"
|
||||
/>
|
||||
<div class="pa">
|
||||
<a-pagination
|
||||
v-if="tableDataTotal > 10"
|
||||
showSizeChanger="true"
|
||||
showQuickJumper="true"
|
||||
hideOnSinglePage="true"
|
||||
@@ -37,291 +36,258 @@
|
||||
:current="currentPage"
|
||||
:total="tableDataTotal"
|
||||
class="pagination"
|
||||
@change="changePagination"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btnn">
|
||||
<button class="btn1" @click="closeDrawer">取消</button>
|
||||
<button class="btn2" @click="closeDrawer">确定</button>
|
||||
</div>
|
||||
<div class="btnn">
|
||||
<button class="btn1" @click="closeDrawer">取消</button>
|
||||
<button class="btn2" @click="closeDrawer">确定</button>
|
||||
</div>
|
||||
</a-drawer>
|
||||
</div>
|
||||
</a-drawer>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { toRefs, reactive } from "vue";
|
||||
export default {
|
||||
name: "StuScoreDetail",
|
||||
props: {
|
||||
Svisible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
import { toRefs, reactive } from "vue";
|
||||
import { studentScoreList } from "../../api/indexProjStu";
|
||||
import { toDate } from "@/api/method";
|
||||
export default {
|
||||
name: "StuScoreDetail",
|
||||
props: {
|
||||
Svisible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
studentId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
projectId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
},
|
||||
|
||||
setup(props, ctx) {
|
||||
const state = reactive({
|
||||
name: null,
|
||||
setup(props, ctx) {
|
||||
const state = reactive({
|
||||
name: null,
|
||||
|
||||
pageSize: 10,
|
||||
currentPage: 1,
|
||||
tableDataTotal: null,
|
||||
// selectedRowKeys: [],
|
||||
|
||||
tabledata: [
|
||||
// {
|
||||
// key: 1,
|
||||
// time: "2019-12-12 12:12",
|
||||
// score: "12",
|
||||
// type: "完成任务",
|
||||
// from: "【在线】如何成为产品经理",
|
||||
// },
|
||||
],
|
||||
tablecolumns: [
|
||||
{
|
||||
title: "获取时间",
|
||||
dataIndex: "time",
|
||||
key: "time",
|
||||
width: 40,
|
||||
align: "left",
|
||||
className: "h head",
|
||||
},
|
||||
{
|
||||
title: "积分",
|
||||
dataIndex: "score",
|
||||
key: "score",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "类型",
|
||||
dataIndex: "type",
|
||||
key: "type",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "来源",
|
||||
dataIndex: "from",
|
||||
key: "from",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
],
|
||||
});
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:Svisible", false);
|
||||
};
|
||||
const getData = () => {
|
||||
let obj = {
|
||||
pageNo: state.currentPage,
|
||||
pageSize: 10,
|
||||
currentPage: 1,
|
||||
tableDataTotal: 100,
|
||||
selectedRowKeys: [],
|
||||
|
||||
tabledata: [
|
||||
{
|
||||
key: 1,
|
||||
time: "2019-12-12 12:12",
|
||||
score: "12",
|
||||
type: "完成任务",
|
||||
from: "【在线】如何成为产品经理",
|
||||
|
||||
},
|
||||
{
|
||||
key: 1,
|
||||
time: "2019-12-12 12:12",
|
||||
score: "12",
|
||||
type: "完成任务",
|
||||
from: "【在线】如何成为产品经理",
|
||||
|
||||
},
|
||||
{
|
||||
key: 1,
|
||||
time: "2019-12-12 12:12",
|
||||
score: "12",
|
||||
type: "完成任务",
|
||||
from: "【在线】如何成为产品经理",
|
||||
|
||||
},
|
||||
{
|
||||
key: 1,
|
||||
time: "2019-12-12 12:12",
|
||||
score: "12",
|
||||
type: "完成任务",
|
||||
from: "【在线】如何成为产品经理",
|
||||
|
||||
},
|
||||
{
|
||||
key: 1,
|
||||
time: "2019-12-12 12:12",
|
||||
score: "12",
|
||||
type: "完成任务",
|
||||
from: "【在线】如何成为产品经理",
|
||||
|
||||
},
|
||||
{
|
||||
key: 1,
|
||||
time: "2019-12-12 12:12",
|
||||
score: "12",
|
||||
type: "完成任务",
|
||||
from: "【在线】如何成为产品经理",
|
||||
|
||||
},
|
||||
{
|
||||
key: 1,
|
||||
time: "2019-12-12 12:12",
|
||||
score: "12",
|
||||
type: "完成任务",
|
||||
from: "【在线】如何成为产品经理",
|
||||
|
||||
},
|
||||
{
|
||||
key: 1,
|
||||
time: "2019-12-12 12:12",
|
||||
score: "12",
|
||||
type: "完成任务",
|
||||
from: "【在线】如何成为产品经理",
|
||||
|
||||
},
|
||||
{
|
||||
key: 1,
|
||||
time: "2019-12-12 12:12",
|
||||
score: "12",
|
||||
type: "完成任务",
|
||||
from: "【在线】如何成为产品经理",
|
||||
|
||||
},
|
||||
{
|
||||
key: 1,
|
||||
time: "2019-12-12 12:12",
|
||||
score: "12",
|
||||
type: "完成任务",
|
||||
from: "【在线】如何成为产品经理",
|
||||
|
||||
},
|
||||
{
|
||||
key: 1,
|
||||
time: "2019-12-12 12:12",
|
||||
score: "12",
|
||||
type: "完成任务",
|
||||
from: "【在线】如何成为产品经理",
|
||||
|
||||
},
|
||||
],
|
||||
tablecolumns: [
|
||||
{
|
||||
title: "获取时间",
|
||||
dataIndex: "time",
|
||||
key: "time",
|
||||
width: 40,
|
||||
align: "left",
|
||||
className: "h head",
|
||||
},
|
||||
{
|
||||
title: "积分",
|
||||
dataIndex: "score",
|
||||
key: "score",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "类型",
|
||||
dataIndex: "type",
|
||||
key: "type",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
{
|
||||
title: "来源",
|
||||
dataIndex: "from",
|
||||
key: "from",
|
||||
width: 60,
|
||||
align: "center",
|
||||
className: "h",
|
||||
},
|
||||
|
||||
],
|
||||
projectId: props.projectId,
|
||||
studentId: props.studentId,
|
||||
};
|
||||
studentScoreList(obj).then((res) => {
|
||||
console.log("dede", res.data.data);
|
||||
let result = res.data.data;
|
||||
state.tableDataTotal = result.pageSize;
|
||||
if (result.pageSize > 0) {
|
||||
setTable(result.rows);
|
||||
}
|
||||
});
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:Svisible", false);
|
||||
};
|
||||
};
|
||||
const afterVisibleChange = () => {
|
||||
getData();
|
||||
};
|
||||
const setTable = (tabledata) => {
|
||||
let data = tabledata;
|
||||
let array = [];
|
||||
data.map((item) => {
|
||||
let obj = {
|
||||
time: toDate(item.createTime / 1000, "Y-M-D h-m"),
|
||||
score: item.score,
|
||||
type: "完成任务",
|
||||
from: item.source,
|
||||
};
|
||||
array.push(obj);
|
||||
});
|
||||
state.tabledata = array;
|
||||
};
|
||||
const changePagination = (current) => {
|
||||
state.currentPage = current;
|
||||
getData();
|
||||
};
|
||||
|
||||
return {
|
||||
...toRefs(state),
|
||||
closeDrawer,
|
||||
|
||||
};
|
||||
},
|
||||
};
|
||||
return {
|
||||
...toRefs(state),
|
||||
closeDrawer,
|
||||
afterVisibleChange,
|
||||
getData,
|
||||
setTable,
|
||||
changePagination,
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" >
|
||||
.StuScore{
|
||||
.drawerMain {
|
||||
min-width: 600px;
|
||||
margin: 0px 32px 0px 32px;
|
||||
.StuScore {
|
||||
.drawerMain {
|
||||
min-width: 600px;
|
||||
margin: 0px 32px 0px 32px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.header {
|
||||
height: 73px;
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.header {
|
||||
height: 73px;
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 20px;
|
||||
flex-shrink: 0;
|
||||
.headerTitle {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: #333333;
|
||||
line-height: 25px;
|
||||
// margin-left: 24px;
|
||||
}
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 20px;
|
||||
flex-shrink: 0;
|
||||
.headerTitle {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: #333333;
|
||||
line-height: 25px;
|
||||
// margin-left: 24px;
|
||||
}
|
||||
}
|
||||
|
||||
.main {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
.endtime {
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
}
|
||||
.tableBox {
|
||||
padding-bottom: 100px;
|
||||
.ant-table-selection-column {
|
||||
padding: 0px !important;
|
||||
// padding-left: 45px !important;
|
||||
}
|
||||
|
||||
.ant-table-thead > tr > th {
|
||||
background-color: rgba(239, 244, 252, 1) !important;
|
||||
color: rgba(0, 0, 0, 0.8500);
|
||||
}
|
||||
|
||||
.ant-table-cell {
|
||||
color: rgba(0, 0, 0, 0.6500);
|
||||
}
|
||||
|
||||
.ant-table-selection-column {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
th.h {
|
||||
background-color: #eff4fc !important;
|
||||
}
|
||||
|
||||
|
||||
.ant-table-tbody
|
||||
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
|
||||
> td {
|
||||
|
||||
background: #f6f9fd;
|
||||
}
|
||||
.ant-table-tbody > tr > td {
|
||||
border-bottom: 1px solid rgba(240, 244, 254, 1);
|
||||
padding: 16px 16px;
|
||||
.operation {
|
||||
color: rgba(56, 125, 247, 1);
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
.pa {
|
||||
margin-top: 20px;
|
||||
width: 100%;
|
||||
flex:1;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
.main {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
.endtime {
|
||||
font-size: 16px;
|
||||
font-weight: 500;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.btnn {
|
||||
height: 72px;
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
|
||||
background-color: #ffffff;
|
||||
.btn1 {
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
border: 1px solid #4ea6ff;
|
||||
border-radius: 8px;
|
||||
color: #4ea6ff;
|
||||
background-color: #fff;
|
||||
cursor: pointer;
|
||||
.tableBox {
|
||||
padding-bottom: 100px;
|
||||
.ant-table-selection-column {
|
||||
padding: 0px !important;
|
||||
// padding-left: 45px !important;
|
||||
}
|
||||
|
||||
.btn2 {
|
||||
cursor: pointer;
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
background: #4ea6ff;
|
||||
border-radius: 8px;
|
||||
border: 0;
|
||||
margin-left: 15px;
|
||||
color: #fff;
|
||||
.ant-table-thead > tr > th {
|
||||
background-color: rgba(239, 244, 252, 1) !important;
|
||||
color: rgba(0, 0, 0, 0.85);
|
||||
}
|
||||
|
||||
.ant-table-cell {
|
||||
color: rgba(0, 0, 0, 0.65);
|
||||
}
|
||||
|
||||
.ant-table-selection-column {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
th.h {
|
||||
background-color: #eff4fc !important;
|
||||
}
|
||||
|
||||
.ant-table-tbody
|
||||
> tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
|
||||
> td {
|
||||
background: #f6f9fd;
|
||||
}
|
||||
.ant-table-tbody > tr > td {
|
||||
border-bottom: 1px solid rgba(240, 244, 254, 1);
|
||||
padding: 16px 16px;
|
||||
.operation {
|
||||
color: rgba(56, 125, 247, 1);
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
.pa {
|
||||
margin-top: 20px;
|
||||
width: 100%;
|
||||
flex: 1;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btnn {
|
||||
height: 72px;
|
||||
width: 100%;
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
|
||||
background-color: #ffffff;
|
||||
.btn1 {
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
border: 1px solid #4ea6ff;
|
||||
border-radius: 8px;
|
||||
color: #4ea6ff;
|
||||
background-color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.btn2 {
|
||||
cursor: pointer;
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
background: #4ea6ff;
|
||||
border-radius: 8px;
|
||||
border: 0;
|
||||
margin-left: 15px;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -79,7 +79,7 @@
|
||||
</div>
|
||||
<!-- 创建投票侧弹窗 -->
|
||||
<div>
|
||||
<cre-vote
|
||||
<create-vote
|
||||
v-model:crevoteVisible="crevotevisible"
|
||||
@getData="getStemId"
|
||||
v-model:ballotId="ballotId"
|
||||
@@ -136,7 +136,7 @@
|
||||
</template>
|
||||
<script>
|
||||
import { reactive, toRefs} from "vue";
|
||||
import CreVote from "./CreateVote.vue";
|
||||
import CreateVote from "./CreateVote.vue";
|
||||
import * as api from "../../api/indexVote";
|
||||
import { message } from "ant-design-vue";
|
||||
import { RouterEditTask } from "@/api/indexTask";
|
||||
@@ -147,7 +147,7 @@ import * as apiTask from "../../api/indexTaskadd";
|
||||
export default {
|
||||
name: "AddVote",
|
||||
components: {
|
||||
CreVote,
|
||||
CreateVote,
|
||||
},
|
||||
props: {
|
||||
addvoteVisible: {
|
||||
|
||||
@@ -1,209 +1,168 @@
|
||||
<!-- 评估管理-创建评估页面 -->
|
||||
<template>
|
||||
<a-drawer
|
||||
:visible="createVoteVisible"
|
||||
class="drawerStyle createvoteDrawer"
|
||||
width="80%"
|
||||
placement="right"
|
||||
@after-visible-change="afterVisibleChange"
|
||||
>
|
||||
<div class="researchadd">
|
||||
<div class="header">
|
||||
<div class="headerTitle">创建投票</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="../../assets/images/basicinfo/close.png"
|
||||
@click="closeDrawer"
|
||||
/>
|
||||
</div>
|
||||
<div class="main_left">
|
||||
<div class="main_item">
|
||||
<a-drawer :visible="createVoteVisible" class="drawerStyle createvoteDrawer" width="100%" placement="right"
|
||||
@after-visible-change="afterVisibleChange">
|
||||
<div class="researchadd">
|
||||
<div class="header">
|
||||
<div class="headerTitle">创建投票</div>
|
||||
<img style="width: 29px; height: 29px; cursor: pointer" src="../../assets/images/basicinfo/close.png"
|
||||
@click="closeDrawer" />
|
||||
</div>
|
||||
<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="voteName"
|
||||
style="width: 424px; height: 32px"
|
||||
placeholder="请输入任务名称"
|
||||
maxlength="20"
|
||||
/>
|
||||
<a-input v-model:value="voteName" style="width: 424px; height: 32px" placeholder="请输入任务名称" maxlength="20" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item">
|
||||
<div class="signbox">
|
||||
<div class="sign">
|
||||
<img
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
<span>创建题干:</span>
|
||||
<div class="main_item">
|
||||
<div class="signbox">
|
||||
<div class="sign">
|
||||
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
|
||||
</div>
|
||||
<span>创建题干:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<button class="xkbtn" @click="handleTypes">
|
||||
添加题干
|
||||
</button>
|
||||
</div>
|
||||
</div> <!-- 创建投票侧弹窗 -->
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<button
|
||||
class="xkbtn"
|
||||
@click="handleTypes"
|
||||
>
|
||||
创建题干
|
||||
</button>
|
||||
<div v-for="(item, index) in allFormsData" :key="index">
|
||||
<VoteQuestion :item="item" :ballotId="ballotId" @del="handleDel" />
|
||||
|
||||
</div>
|
||||
</div> <!-- 创建投票侧弹窗 -->
|
||||
</div>
|
||||
<div v-for="(item, index) in allFormsData" :key="index">
|
||||
<VoteQuestion
|
||||
:item="item"
|
||||
:ballotId="ballotId"
|
||||
@del="handleDel"
|
||||
|
||||
/>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="footer">
|
||||
<div class="btn">
|
||||
<a-button
|
||||
type="primary"
|
||||
style="width: 100px;height: 40px;border-radius: 8px; background-color: #409eff;"
|
||||
@click="handleSave"
|
||||
>
|
||||
保存
|
||||
</a-button>
|
||||
<a-button
|
||||
type="primary"
|
||||
ghost
|
||||
style="width: 100px;height: 40px;margin-left: 14px;border-radius: 8px;"
|
||||
@click="handleAllCancel"
|
||||
>
|
||||
取消
|
||||
</a-button>
|
||||
<div class="footer">
|
||||
<div class="btn">
|
||||
<a-button type="primary" style="width: 100px;height: 40px;border-radius: 8px; background-color: #409eff;"
|
||||
@click="handleSave">
|
||||
保存
|
||||
</a-button>
|
||||
<a-button type="primary" ghost style="width: 100px;height: 40px;margin-left: 14px;border-radius: 8px;"
|
||||
@click="handleAllCancel">
|
||||
取消
|
||||
</a-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-drawer>
|
||||
</a-drawer>
|
||||
</template>
|
||||
<script>
|
||||
import { reactive,toRefs} from "vue";
|
||||
import { reactive, toRefs } from "vue";
|
||||
// import { message } from "ant-design-vue";
|
||||
// import { createResearch } from "../../api/indexResearch";
|
||||
import VoteQuestion from "./VoteQuestion.vue";
|
||||
|
||||
import {
|
||||
// sortBy,
|
||||
traverseArr,
|
||||
// filterCommon,
|
||||
// deepCloneFilterString,
|
||||
// sortBy,
|
||||
traverseArr,
|
||||
// filterCommon,
|
||||
// deepCloneFilterString,
|
||||
} from "../../utils/utils";
|
||||
|
||||
|
||||
//import store from "@/store";
|
||||
import {
|
||||
//createOptionMessage,
|
||||
queryStemByStemId
|
||||
}from "@/api/indexVote";
|
||||
import {
|
||||
|
||||
|
||||
|
||||
|
||||
} from "@/api/indexResearch";
|
||||
import * as api from "@/api/indexVote";
|
||||
import {} from "@/api/indexResearch";
|
||||
//import { message } from "ant-design-vue";
|
||||
|
||||
|
||||
export default {
|
||||
name: "CreateVote",
|
||||
components: {
|
||||
VoteQuestion,
|
||||
name: "CreateVote",
|
||||
components: {
|
||||
VoteQuestion,
|
||||
|
||||
},
|
||||
props: {
|
||||
createVoteVisible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
ballotId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
editChild: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
props: {
|
||||
createVoteVisible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
ballotId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
editChild: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
|
||||
},
|
||||
setup(props, ctx) {
|
||||
const state = reactive({
|
||||
ballotId: "",
|
||||
ballotName: "",
|
||||
allFormsData: [],
|
||||
|
||||
},
|
||||
setup(props,ctx) {
|
||||
const state = reactive({
|
||||
ballotId: "",
|
||||
ballotName: "",
|
||||
allFormsData: [],
|
||||
});
|
||||
const afterVisibleChange = (bool) => {
|
||||
console.log("state======进来creates", bool);
|
||||
handleTypes();
|
||||
};
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:createVoteVisible", false);
|
||||
|
||||
});
|
||||
const afterVisibleChange = (bool) => {
|
||||
console.log("state======进来creates", bool);
|
||||
handleTypes();
|
||||
};
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:createVoteVisible", false);
|
||||
|
||||
console.log("======关闭");
|
||||
}
|
||||
// 详情
|
||||
const getInfoDate = async () => {
|
||||
if (props.editChild) {
|
||||
//stemId 多余字段
|
||||
let res = await queryStemByStemId({stemId:0,
|
||||
ballotId: state.ballotId,
|
||||
}).then((res) => {
|
||||
if (res.data.code === 200) {
|
||||
return res.data.data;
|
||||
}
|
||||
});
|
||||
state.ballotName = res[0].ballotId;
|
||||
let renderArr = [
|
||||
...res,
|
||||
];
|
||||
// sortBy(renderArr, "orderNumber"); //序号
|
||||
state.allFormsData = parseData(renderArr); //类型
|
||||
// console.log("state.allFormsData");
|
||||
// console.log(state.allFormsData);
|
||||
console.log("======关闭");
|
||||
}
|
||||
};
|
||||
getInfoDate();
|
||||
// 详情
|
||||
const getInfoDate = async () => {
|
||||
if (props.editChild) {
|
||||
//stemId 多余字段
|
||||
let res = await api.queryStemByStemId({
|
||||
stemId: 0,
|
||||
ballotId: state.ballotId,
|
||||
}).then((res) => {
|
||||
if (res.data.code === 200) {
|
||||
return res.data.data;
|
||||
}
|
||||
});
|
||||
state.ballotName = res[0].ballotId;
|
||||
let renderArr = [
|
||||
...res,
|
||||
];
|
||||
// sortBy(renderArr, "orderNumber"); //序号
|
||||
state.allFormsData = parseData(renderArr); //类型
|
||||
// console.log("state.allFormsData");
|
||||
// console.log(state.allFormsData);
|
||||
}
|
||||
};
|
||||
getInfoDate();
|
||||
|
||||
// 转换成前端格式
|
||||
const parseData = (arr) => {
|
||||
const resultArr = [];
|
||||
arr.forEach((item) => {
|
||||
let obj = {};
|
||||
let restList = traverseArr(item.optionDetailList, {
|
||||
inputVal: "singleOptionName",
|
||||
imgVal: "singleOptionPictureAddress",
|
||||
optionId: "singleOptionId",
|
||||
}).map((itm, idx) => {
|
||||
// 转换成前端格式
|
||||
const parseData = (arr) => {
|
||||
const resultArr = [];
|
||||
arr.forEach((item) => {
|
||||
let obj = {};
|
||||
let restList = traverseArr(item.optionDetailList, {
|
||||
inputVal: "singleOptionName",
|
||||
imgVal: "singleOptionPictureAddress",
|
||||
optionId: "singleOptionId",
|
||||
}).map((itm, idx) => {
|
||||
itm.id = idx + 1;
|
||||
return itm;
|
||||
});
|
||||
|
||||
obj = {
|
||||
voteStemName: item.singleStemName,
|
||||
singleList: restList,
|
||||
};
|
||||
resultArr.push(obj);
|
||||
|
||||
|
||||
});
|
||||
resultArr.map((itm, idx) => {
|
||||
itm.id = idx + 1;
|
||||
return itm;
|
||||
});
|
||||
|
||||
obj = {
|
||||
voteStemName: item.singleStemName,
|
||||
singleList: restList,
|
||||
};
|
||||
resultArr.push(obj);
|
||||
|
||||
|
||||
});
|
||||
resultArr.map((itm, idx) => {
|
||||
itm.id = idx + 1;
|
||||
return itm;
|
||||
});
|
||||
return resultArr;
|
||||
};
|
||||
return resultArr;
|
||||
};
|
||||
/**
|
||||
// 转换成后端格式
|
||||
const restData = (arr, typeKey) => {
|
||||
@@ -334,168 +293,166 @@ setup(props,ctx) {
|
||||
};
|
||||
|
||||
*/
|
||||
const handleTypes = () => {
|
||||
let obj = {
|
||||
id: state.allFormsData.length,
|
||||
valueSingle: "",
|
||||
singleList: [
|
||||
{
|
||||
id: 1,
|
||||
inputVal: "",
|
||||
imgVal: "",
|
||||
},
|
||||
],
|
||||
};
|
||||
state.allFormsData.push(obj);
|
||||
console.log("state.allFormsData=====",state.allFormsData,state.allFormsData.length);
|
||||
};
|
||||
const handleTypes = () => {
|
||||
let obj = {
|
||||
id: state.allFormsData.length,
|
||||
valueSingle: "",
|
||||
singleList: [
|
||||
{
|
||||
id: 1,
|
||||
inputVal: "",
|
||||
imgVal: "",
|
||||
},
|
||||
],
|
||||
};
|
||||
state.allFormsData.push(obj);
|
||||
console.log("state.allFormsData=====", state.allFormsData, state.allFormsData.length);
|
||||
};
|
||||
|
||||
const handleDel = ({ id ,curItem}) => {
|
||||
state.allFormsData.forEach((item, index) => {
|
||||
if (item.id === id) {
|
||||
state.allFormsData.splice(index, 1);
|
||||
}
|
||||
});
|
||||
state.allFormsData.map((item, index) => {
|
||||
item.id = index + 1;
|
||||
return item;
|
||||
});
|
||||
console.log("curItem.orderNumber",curItem.orderNumber);
|
||||
const handleDel = ({ id, curItem }) => {
|
||||
state.allFormsData.forEach((item, index) => {
|
||||
if (item.id === id) {
|
||||
state.allFormsData.splice(index, 1);
|
||||
}
|
||||
});
|
||||
state.allFormsData.map((item, index) => {
|
||||
item.id = index + 1;
|
||||
return item;
|
||||
});
|
||||
console.log("curItem.orderNumber", curItem.orderNumber);
|
||||
|
||||
// orderNumber: curItem.orderNumber,
|
||||
};
|
||||
|
||||
const handleSave = () => {
|
||||
/**
|
||||
let resultPost = {};
|
||||
|
||||
};
|
||||
|
||||
const handleSave = () => {
|
||||
/**
|
||||
let resultPost = {};
|
||||
|
||||
let filterData = parseItem(restData(state.allFormsData, "type"));
|
||||
// 校验
|
||||
if (!checkVal(filterData)) {
|
||||
return false;
|
||||
}
|
||||
console.log(12121212);
|
||||
console.log(filterData);
|
||||
|
||||
if (state.ballotId) {
|
||||
resultPost = {
|
||||
ballotId: state.ballotId,
|
||||
ballotName: state.ballotName,
|
||||
...filterData,
|
||||
};
|
||||
resultPost = deepCloneFilterString(resultPost, [
|
||||
"assessmentMaxScore",
|
||||
"assessmentMinScore",
|
||||
]);
|
||||
console.log(1212334);
|
||||
console.log(resultPost);
|
||||
editResearchMessage(resultPost).then((res) => {
|
||||
if (res.data.code === 200) {
|
||||
message.success("编辑成功");
|
||||
router.push({
|
||||
path: "/researchmanage",
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
resultPost = {
|
||||
ballotName: state.ballotNameNew,
|
||||
assessmentMark: state.valueMore,
|
||||
...filterData,
|
||||
};
|
||||
resultPost = deepCloneFilterString(resultPost, [
|
||||
"assessmentMaxScore",
|
||||
"assessmentMinScore",
|
||||
]);
|
||||
createOptionMessage(resultPost).then((res) => {
|
||||
if (res.data.code === 200) {
|
||||
message.success("创建成功");
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
*/
|
||||
};
|
||||
const handleAllCancel = () => {
|
||||
state.allFormsData = [];
|
||||
|
||||
};
|
||||
/**
|
||||
const checkVal = (filterData) => {
|
||||
// 问答
|
||||
if (
|
||||
filterData.assessmentEssayQuestionDtoList &&
|
||||
filterData.assessmentEssayQuestionDtoList.length
|
||||
) {
|
||||
let arr = filterData.assessmentEssayQuestionDtoList;
|
||||
for (let item of arr) {
|
||||
if (!item.assessmentQaTitle) {
|
||||
message.error("问答题干为必填 请确认");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
// 多选
|
||||
if (
|
||||
filterData.assessmentMultipleChoiceDtoList &&
|
||||
filterData.assessmentMultipleChoiceDtoList.length
|
||||
) {
|
||||
let arr = filterData.assessmentMultipleChoiceDtoList;
|
||||
for (let item of arr) {
|
||||
if (!item.multipleStemName) {
|
||||
message.error("多选题干为必填 请确认");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
// 评分
|
||||
if (
|
||||
filterData.assessmentScoringQuestionDtoList &&
|
||||
filterData.assessmentScoringQuestionDtoList.length
|
||||
) {
|
||||
let CountNum = 0;
|
||||
let CountArr = filterData.assessmentScoringQuestionDtoList;
|
||||
for (let item of CountArr) {
|
||||
if (!item.assessmentScTitle) {
|
||||
message.error("评分题干为必填 请确认");
|
||||
return false;
|
||||
}
|
||||
CountNum += Number(item["weightScale"]);
|
||||
}
|
||||
if (CountNum !== 100) {
|
||||
message.error("当前权重设置是百分制 请重新配置");
|
||||
let filterData = parseItem(restData(state.allFormsData, "type"));
|
||||
// 校验
|
||||
if (!checkVal(filterData)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
// 单选
|
||||
if (
|
||||
filterData.assessmentSingleChoiceDtoList &&
|
||||
filterData.assessmentSingleChoiceDtoList.length
|
||||
) {
|
||||
let arr = filterData.assessmentSingleChoiceDtoList;
|
||||
for (let item of arr) {
|
||||
if (!item.singleStemName) {
|
||||
message.error("单选题干为必填 请确认");
|
||||
console.log(12121212);
|
||||
console.log(filterData);
|
||||
|
||||
if (state.ballotId) {
|
||||
resultPost = {
|
||||
ballotId: state.ballotId,
|
||||
ballotName: state.ballotName,
|
||||
...filterData,
|
||||
};
|
||||
resultPost = deepCloneFilterString(resultPost, [
|
||||
"assessmentMaxScore",
|
||||
"assessmentMinScore",
|
||||
]);
|
||||
console.log(1212334);
|
||||
console.log(resultPost);
|
||||
editResearchMessage(resultPost).then((res) => {
|
||||
if (res.data.code === 200) {
|
||||
message.success("编辑成功");
|
||||
router.push({
|
||||
path: "/researchmanage",
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
resultPost = {
|
||||
ballotName: state.ballotNameNew,
|
||||
assessmentMark: state.valueMore,
|
||||
...filterData,
|
||||
};
|
||||
resultPost = deepCloneFilterString(resultPost, [
|
||||
"assessmentMaxScore",
|
||||
"assessmentMinScore",
|
||||
]);
|
||||
createOptionMessage(resultPost).then((res) => {
|
||||
if (res.data.code === 200) {
|
||||
message.success("创建成功");
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
*/
|
||||
};
|
||||
const handleAllCancel = () => {
|
||||
state.allFormsData = [];
|
||||
|
||||
};
|
||||
/**
|
||||
const checkVal = (filterData) => {
|
||||
// 问答
|
||||
if (
|
||||
filterData.assessmentEssayQuestionDtoList &&
|
||||
filterData.assessmentEssayQuestionDtoList.length
|
||||
) {
|
||||
let arr = filterData.assessmentEssayQuestionDtoList;
|
||||
for (let item of arr) {
|
||||
if (!item.assessmentQaTitle) {
|
||||
message.error("问答题干为必填 请确认");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
// 多选
|
||||
if (
|
||||
filterData.assessmentMultipleChoiceDtoList &&
|
||||
filterData.assessmentMultipleChoiceDtoList.length
|
||||
) {
|
||||
let arr = filterData.assessmentMultipleChoiceDtoList;
|
||||
for (let item of arr) {
|
||||
if (!item.multipleStemName) {
|
||||
message.error("多选题干为必填 请确认");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
// 评分
|
||||
if (
|
||||
filterData.assessmentScoringQuestionDtoList &&
|
||||
filterData.assessmentScoringQuestionDtoList.length
|
||||
) {
|
||||
let CountNum = 0;
|
||||
let CountArr = filterData.assessmentScoringQuestionDtoList;
|
||||
for (let item of CountArr) {
|
||||
if (!item.assessmentScTitle) {
|
||||
message.error("评分题干为必填 请确认");
|
||||
return false;
|
||||
}
|
||||
CountNum += Number(item["weightScale"]);
|
||||
}
|
||||
if (CountNum !== 100) {
|
||||
message.error("当前权重设置是百分制 请重新配置");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
};
|
||||
*/
|
||||
// 单选
|
||||
if (
|
||||
filterData.assessmentSingleChoiceDtoList &&
|
||||
filterData.assessmentSingleChoiceDtoList.length
|
||||
) {
|
||||
let arr = filterData.assessmentSingleChoiceDtoList;
|
||||
for (let item of arr) {
|
||||
if (!item.singleStemName) {
|
||||
message.error("单选题干为必填 请确认");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
};
|
||||
*/
|
||||
|
||||
return {
|
||||
...toRefs(state),
|
||||
handleTypes,
|
||||
handleSave,
|
||||
handleAllCancel,
|
||||
handleDel,
|
||||
afterVisibleChange,
|
||||
closeDrawer,
|
||||
};
|
||||
},
|
||||
return {
|
||||
...toRefs(state),
|
||||
handleTypes,
|
||||
handleSave,
|
||||
handleAllCancel,
|
||||
handleDel,
|
||||
afterVisibleChange,
|
||||
closeDrawer,
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
@@ -508,6 +465,7 @@ setup(props,ctx) {
|
||||
align-items: center;
|
||||
flex-shrink: 0;
|
||||
margin-bottom: 25px;
|
||||
|
||||
.headerTitle {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
@@ -516,105 +474,123 @@ setup(props,ctx) {
|
||||
margin-left: 24px;
|
||||
}
|
||||
}
|
||||
|
||||
.main_left {
|
||||
padding-right: 30px;
|
||||
flex: 1;
|
||||
border-right: 1px solid #e8e8e8;
|
||||
.main_item {
|
||||
margin-left: 50px;
|
||||
padding-right: 30px;
|
||||
flex: 1;
|
||||
border-right: 1px solid #e8e8e8;
|
||||
|
||||
.main_item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 32px;
|
||||
|
||||
.signbox {
|
||||
width: 120px;
|
||||
display: flex;
|
||||
justify-content: end;
|
||||
align-items: center;
|
||||
margin-bottom: 32px;
|
||||
.signbox {
|
||||
width: 120px;
|
||||
|
||||
.sign {
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.btnbox {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
align-items: center;
|
||||
|
||||
.xkbtn {
|
||||
cursor: pointer;
|
||||
width: 130px;
|
||||
height: 40px;
|
||||
background: #388be1;
|
||||
border-radius: 8px;
|
||||
border: 0;
|
||||
margin-right: 8px;
|
||||
color: #fff;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.fileTigan {
|
||||
display: flex;
|
||||
justify-content: end;
|
||||
align-items: center;
|
||||
.sign {
|
||||
padding: 3px 5px;
|
||||
background-color: rgba(42, 103, 209, 0.4);
|
||||
|
||||
span {
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
.btnbox {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
align-items: center;
|
||||
.xkbtn {
|
||||
cursor: pointer;
|
||||
width: 130px;
|
||||
height: 40px;
|
||||
background: #388be1;
|
||||
border-radius: 8px;
|
||||
border: 0;
|
||||
margin-right: 8px;
|
||||
color: #fff;
|
||||
margin-right: 10px;
|
||||
|
||||
.delBox {
|
||||
width: 13px;
|
||||
height: 13px;
|
||||
background-image: url(@/assets/images/basicinfo/ch.png);
|
||||
background-size: 100% 100%;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.fileTigan {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.main_item2 {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
margin-bottom: 32px;
|
||||
|
||||
.signbox {
|
||||
width: 120px;
|
||||
display: flex;
|
||||
justify-content: end;
|
||||
align-items: center;
|
||||
|
||||
.sign {
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.kqszbox {
|
||||
.qdqtbox {
|
||||
margin-left: 56px;
|
||||
}
|
||||
|
||||
.setbox {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 24px;
|
||||
|
||||
.timerbox {
|
||||
margin-top: 6px;
|
||||
margin-right: 32px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 3px 5px;
|
||||
background-color: rgba(42, 103, 209, 0.4);
|
||||
span {
|
||||
margin-right: 5px;
|
||||
}
|
||||
.delBox {
|
||||
width: 13px;
|
||||
height: 13px;
|
||||
background-image: url(@/assets/images/basicinfo/ch.png);
|
||||
background-size: 100% 100%;
|
||||
border-radius: 50%;
|
||||
}
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
}
|
||||
}
|
||||
.main_item2 {
|
||||
|
||||
.btnbox2 {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
margin-bottom: 32px;
|
||||
.signbox {
|
||||
width: 120px;
|
||||
display: flex;
|
||||
justify-content: end;
|
||||
align-items: center;
|
||||
.sign {
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
.kqszbox {
|
||||
.qdqtbox {
|
||||
margin-left: 56px;
|
||||
}
|
||||
.setbox {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 24px;
|
||||
.timerbox {
|
||||
margin-top: 6px;
|
||||
margin-right: 32px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
}
|
||||
}
|
||||
.btnbox2 {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: flex-start;
|
||||
.xkbtn {
|
||||
cursor: pointer;
|
||||
width: 130px;
|
||||
height: 40px;
|
||||
background: #388be1;
|
||||
border-radius: 8px;
|
||||
border: 0;
|
||||
margin-right: 16px 8px 32px 0;
|
||||
color: #fff;
|
||||
margin-top: 16px;
|
||||
margin-bottom: 60px;
|
||||
}
|
||||
flex-direction: column;
|
||||
justify-content: flex-start;
|
||||
|
||||
.xkbtn {
|
||||
cursor: pointer;
|
||||
width: 130px;
|
||||
height: 40px;
|
||||
background: #388be1;
|
||||
border-radius: 8px;
|
||||
border: 0;
|
||||
margin-right: 16px 8px 32px 0;
|
||||
color: #fff;
|
||||
margin-top: 16px;
|
||||
margin-bottom: 60px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -325,8 +325,9 @@
|
||||
</div>
|
||||
<div
|
||||
@click="showImgMore"
|
||||
v-if="imgData.length>=5"
|
||||
class="learnBgItem">
|
||||
v-if="imgData.length >= 5"
|
||||
class="learnBgItem"
|
||||
>
|
||||
<!-- <img class="im" :src="item.source" /> -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
<div class="addwrapper">
|
||||
<div class="addhead">
|
||||
<div class="leftimg">
|
||||
<img class="img" :src="picUrl" />
|
||||
<!-- <img class="img" :src="picUrl" /> -->
|
||||
<img class="img" src="../../assets/images/leveladd/1.png" />
|
||||
</div>
|
||||
<div class="imgfor">
|
||||
<div class="forz">{{ styTitle }}</div>
|
||||
@@ -10,21 +11,65 @@
|
||||
</div>
|
||||
<div class="right">
|
||||
<img class="img1" src="../../assets/images/leveladd/ma.png" />
|
||||
<div class="line"></div>
|
||||
<img class="img2" src="../../assets/images/leveladd/pub.png" />
|
||||
<div class="pub">发布</div>
|
||||
<div v-if="action == 1 || action == 0" class="line"></div>
|
||||
<img
|
||||
v-if="action == 1 || action == 0"
|
||||
class="img2"
|
||||
src="../../assets/images/leveladd/pub.png"
|
||||
/>
|
||||
<!-- 已发布的显示 -->
|
||||
<div
|
||||
class="pub"
|
||||
style="width: 28px"
|
||||
v-if="action == 1"
|
||||
@click="showBackModal"
|
||||
>
|
||||
{{ act }}
|
||||
</div>
|
||||
<!-- 未发布/草稿的显示 -->
|
||||
<div
|
||||
class="pub"
|
||||
style="width: 28px"
|
||||
v-if="action == 0"
|
||||
@click="showPub"
|
||||
>
|
||||
{{ act }}
|
||||
</div>
|
||||
<!-- 已结束的显示 -->
|
||||
<!-- <div class="pub" style="width: 28px" v-if="action == -1">
|
||||
{{ act }}
|
||||
</div> -->
|
||||
<div class="line"></div>
|
||||
<img
|
||||
style="margin-right: 15px"
|
||||
class="img2"
|
||||
src="../../assets/images/leveladd/more.png"
|
||||
/>
|
||||
<div class="more">
|
||||
<!-- 草稿/未发布的显示 -->
|
||||
<div class="more" v-if="action == 0">
|
||||
<span style="color: #7096e3; cursor: pointer">更多</span>
|
||||
<div class="moreArrow"></div>
|
||||
<div class="moreItems">
|
||||
<div class="sammo">撤回</div>
|
||||
<div class="sammo">复制</div>
|
||||
<!-- <div class="sammo">撤回</div> -->
|
||||
<div class="sammo" @click="showCopy">复制</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 已发布的显示 -->
|
||||
<div class="more" v-if="action == 1">
|
||||
<span style="color: #7096e3; cursor: pointer">更多</span>
|
||||
<div class="moreArrow"></div>
|
||||
<div class="moreItems">
|
||||
<div class="sammo" @click="showStop">结束</div>
|
||||
<div class="sammo" @click="showCopy">复制</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 已结束的显示 -->
|
||||
<div class="more" v-if="action == -1">
|
||||
<span style="color: #7096e3; cursor: pointer">更多</span>
|
||||
<div class="moreArrow"></div>
|
||||
<div class="moreItems">
|
||||
<!-- <div class="sammo">结束</div> -->
|
||||
<div class="sammo" @click="showCopy">复制</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="line"></div>
|
||||
@@ -515,14 +560,14 @@
|
||||
style="width: 270px; height: 40px; border-radius: 8px"
|
||||
placeholder="关卡名称"
|
||||
/>
|
||||
<div class="btns">
|
||||
<div class="btns" @click="searchLevel" >
|
||||
<div class="btn btn1">
|
||||
<div class="search"></div>
|
||||
<div class="btnText">搜索</div>
|
||||
<a-button class="btnText" style="border:none;background:none;transform: translateY(-20%);" >搜索</a-button>
|
||||
</div>
|
||||
<div class="btn btn2">
|
||||
<div class="btn btn2" @click="resetLevel">
|
||||
<div class="search"></div>
|
||||
<div class="btnText">重置</div>
|
||||
<a-button style="border:none;background:none; transform: translateY(-20%);width:100%;" class="btnText" >重置</a-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -777,6 +822,13 @@
|
||||
</div></a-modal
|
||||
>
|
||||
|
||||
<!-- 查看学员 传入查看学员的id-->
|
||||
<see-stu
|
||||
v-model:Seevisible="Seevisible"
|
||||
v-model:checkStuId="checkStuId"
|
||||
v-model:projectId="projectId"
|
||||
/>
|
||||
|
||||
<!-- 批量删除学员弹窗 -->
|
||||
<a-modal
|
||||
v-model:visible="deleteAll"
|
||||
@@ -920,6 +972,172 @@
|
||||
<div class="aeLoading" :style="{ display: addLoading ? 'flex' : 'none' }">
|
||||
<a-spin :spinning="addLoading" tip="添加中..." />
|
||||
</div>
|
||||
<!-- 发布弹窗 -->
|
||||
<a-modal
|
||||
v-model:visible="pub"
|
||||
:title="null"
|
||||
:footer="null"
|
||||
:closable="false"
|
||||
wrapClassName="pub"
|
||||
width="679px"
|
||||
height="437px"
|
||||
>
|
||||
<div
|
||||
class="modalHeader"
|
||||
style="
|
||||
width: 100%;
|
||||
height: 68px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
"
|
||||
>
|
||||
<div class="headerLeft" style="margin-left: 32px">
|
||||
<span style="width: 15px; height: 15px"
|
||||
><img src="../../assets/images/taskpage/pub.png"
|
||||
/></span>
|
||||
<span
|
||||
class="headerLeftText"
|
||||
style="font-size: 16px; margin-left: 10px"
|
||||
>路径发布</span
|
||||
>
|
||||
</div>
|
||||
<div style="cursor: pointer; margin-right: 32px" @click="closePub">
|
||||
<img
|
||||
style="width: 22px; height: 22px"
|
||||
src="../../assets/images/basicinfo/close22.png"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modalMain">
|
||||
<div class="projectname">产品经理上升路径</div>
|
||||
<!-- <div class="projecttime">
|
||||
<span class="timeti">路径时间:</span
|
||||
><span class="timeme">2022/08/01-2022/08/30</span>
|
||||
</div> -->
|
||||
<div class="projectbox">
|
||||
<div class="promessage">
|
||||
<div class="messageme">路径信息</div>
|
||||
<div class="messagege">当前路径共0个关卡,0个任务</div>
|
||||
</div>
|
||||
<div class="stumessage">
|
||||
<div class="messageme1">学员信息</div>
|
||||
<div class="messagege1">路径共{{ routeStudentsNum }}名学员</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="send">
|
||||
<a-switch v-model:checked="checked" size="small" />
|
||||
<span class="sendtext">发送路径通知</span>
|
||||
</div>
|
||||
<div class="ckb">
|
||||
<a-checkbox v-model:checked="checkedTeacher"
|
||||
><span class="sendpeo">发给老师</span></a-checkbox
|
||||
>
|
||||
<a-checkbox v-model:checked="checkStu"
|
||||
><span class="sendpeo">发给学员</span></a-checkbox
|
||||
>
|
||||
</div> -->
|
||||
<div class="pubtn">
|
||||
<a-button class="pubtn1" @click="closePub">取消</a-button>
|
||||
<a-button class="pubtn2" @click="releaseLearnPath">发布</a-button>
|
||||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
<!-- 撤回路径弹窗 -->
|
||||
<a-modal
|
||||
v-model:visible="backModal"
|
||||
:footer="null"
|
||||
:closable="closeBack"
|
||||
wrapClassName="CopyModal"
|
||||
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="closeBackModal"></div>
|
||||
</div>
|
||||
<div class="body">
|
||||
<span>是否撤回路径</span>
|
||||
<div class="back">(路径撤回后学员进度保留,发布后可继续学习)</div>
|
||||
</div>
|
||||
<div class="del_btnbox">
|
||||
<div class="del_btn btn1" @click="closeBackModal">
|
||||
<div class="btnText">取消</div>
|
||||
</div>
|
||||
<div class="del_btn btn2" @click="recallPath">
|
||||
<div class="btnText">确定</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
<!-- 复制路径弹窗 -->
|
||||
<a-modal
|
||||
v-model:visible="dcopyModal"
|
||||
:footer="null"
|
||||
:closable="dcloseCopy"
|
||||
wrapClassName="CopyModal"
|
||||
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="closeCopy"></div>
|
||||
</div>
|
||||
<div class="body">
|
||||
<span>您确定要复制此路径吗</span>
|
||||
</div>
|
||||
<div class="del_btnbox">
|
||||
<div class="del_btn btn1" @click="closeCopy">
|
||||
<div class="btnText">取消</div>
|
||||
</div>
|
||||
<div class="del_btn btn2" @click="sureCopy">
|
||||
<div class="btnText">确定</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
<!-- 结束路径弹窗 -->
|
||||
<a-modal
|
||||
v-model:visible="stopModal"
|
||||
:footer="null"
|
||||
:closable="dicloseStop"
|
||||
wrapClassName="CopyModal"
|
||||
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="closeStopModal"></div>
|
||||
</div>
|
||||
<div class="body">
|
||||
<!-- <span>您确定要停用此路径吗</span> -->
|
||||
<span>是否结束项目</span>
|
||||
<div class="back">
|
||||
(项目结束后学员将无法继续学习,此操作不可逆)
|
||||
</div>
|
||||
</div>
|
||||
<div class="del_btnbox">
|
||||
<div class="del_btn btn1" @click="closeStopModal">
|
||||
<div class="btnText">取消</div>
|
||||
</div>
|
||||
<div class="del_btn btn2" @click="stopLearnPath">
|
||||
<div class="btnText">确定</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
@@ -935,10 +1153,12 @@ import TimeManage from "../../components/drawers/TimeManage";
|
||||
import TestManage from "../../components/drawers/TestManage";
|
||||
import FaceManage from "../../components/drawers/FaceManage";
|
||||
import WorkManage from "../../components/drawers/WorkManage";
|
||||
import SeeStu from "../../components/drawers/SeeStu";
|
||||
// import { useRoute } from "vue-router";
|
||||
// import { useStore } from "vuex";
|
||||
import { storage } from "../../api/storage";
|
||||
import { getRouterOverview } from "@/api/indexLearningPath";
|
||||
import { handleLearnPath } from "../../api/index1";
|
||||
import { GetRouterDetail } from "@/api/indexTask";
|
||||
import * as api from "../../api/index1";
|
||||
import { toDate } from "../../api/method";
|
||||
@@ -955,6 +1175,7 @@ export default {
|
||||
TestManage,
|
||||
FaceManage,
|
||||
WorkManage,
|
||||
SeeStu
|
||||
},
|
||||
methods: {},
|
||||
setup() {
|
||||
@@ -966,6 +1187,16 @@ export default {
|
||||
: null, //学习路径页面传的学习路径id
|
||||
gatename: null, //关卡名称
|
||||
gatenamee: null, //学员管理关卡名称
|
||||
action: null,
|
||||
act: null,
|
||||
pub: false, //发布弹窗
|
||||
backModal: false, //撤回弹窗
|
||||
dcopyModal: false, //复制弹窗
|
||||
closeBack: false,
|
||||
routeStudentsNum: null,
|
||||
dcloseCopy: false,
|
||||
dicloseCopy: false,
|
||||
stopModal: false, //结束弹窗
|
||||
deleteAll: false, //批量删除学员弹窗
|
||||
Stuvisible: false, //添加学员抽屉
|
||||
AddImpStuvisible: false, //导入学员抽屉
|
||||
@@ -975,6 +1206,8 @@ export default {
|
||||
twobtn: true,
|
||||
number: true,
|
||||
twobtnn: false,
|
||||
Seevisible:false,
|
||||
checkStuId:null,
|
||||
inputbox: false,
|
||||
Wvisible: false, //作业管理
|
||||
studentId: null,
|
||||
@@ -1190,6 +1423,7 @@ export default {
|
||||
<span
|
||||
onClick={() => {
|
||||
showCheckStu(text.record.studentId);
|
||||
state.Seevisible = true;
|
||||
}}
|
||||
style="color:#4EA6FF;margin-right:25px;cursor:pointer"
|
||||
>
|
||||
@@ -1386,6 +1620,147 @@ export default {
|
||||
onMounted(() => {
|
||||
state.addLoading = true;
|
||||
getOverview();
|
||||
reget();
|
||||
});
|
||||
const closePub = () => {
|
||||
state.pub = false;
|
||||
};
|
||||
|
||||
//确定发布
|
||||
const releaseLearnPath = () => {
|
||||
// console.log("state.releasePathId", state.releasePathId);
|
||||
let obj = {
|
||||
routerId: state.routerId,
|
||||
type: 1,
|
||||
};
|
||||
handleLearnPath(obj)
|
||||
.then((res) => {
|
||||
console.log("发布成功", res);
|
||||
message.destroy();
|
||||
message.success("发布成功");
|
||||
state.pub = false;
|
||||
// getLearnPath();
|
||||
reget();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("发布失败", err);
|
||||
});
|
||||
};
|
||||
//显示发布弹窗
|
||||
const showPub = () => {
|
||||
state.pub = true;
|
||||
// state.releasePathId = routerId;
|
||||
//获取学员总数
|
||||
let obj = {
|
||||
pageNo: 0,
|
||||
pageSize: 0,
|
||||
routerId: state.routerId,
|
||||
};
|
||||
api
|
||||
.getStudent(obj)
|
||||
.then((res) => {
|
||||
if (res.status === 200) {
|
||||
// console.log("res", res.data.data);
|
||||
state.routeStudentsNum = res.data.data.total;
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("err", err);
|
||||
});
|
||||
|
||||
//获取学习路径详细信息
|
||||
// api
|
||||
// .getRouterDetail(routerId)
|
||||
// .then((res) => {
|
||||
// console.log("学习路径详情", res);
|
||||
// })
|
||||
// .catch((err) => {
|
||||
// console.log("学习路径详情获取错误", err);
|
||||
// });
|
||||
};
|
||||
//显示撤回弹窗
|
||||
const showBackModal = () => {
|
||||
state.backModal = true;
|
||||
};
|
||||
//关闭撤回弹窗
|
||||
const closeBackModal = () => {
|
||||
state.backModal = false;
|
||||
};
|
||||
//确定撤回
|
||||
const recallPath = () => {
|
||||
let obj = {
|
||||
routerId: state.routerId,
|
||||
type: 0,
|
||||
};
|
||||
api
|
||||
.handleLearnPath(obj)
|
||||
.then((res) => {
|
||||
console.log("撤回成功", res);
|
||||
message.destroy();
|
||||
message.success("撤回成功");
|
||||
state.backModal = false;
|
||||
reget();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("撤回失败", err);
|
||||
});
|
||||
};
|
||||
//显示复制弹窗
|
||||
const showCopy = () => {
|
||||
state.dcopyModal = true;
|
||||
};
|
||||
//关闭复制弹窗
|
||||
const closeCopy = () => {
|
||||
state.dcopyModal = false;
|
||||
};
|
||||
//确认复制
|
||||
const sureCopy = () => {
|
||||
let obj = {
|
||||
routerId: state.routerId,
|
||||
type: 2,
|
||||
};
|
||||
api
|
||||
.handleLearnPath(obj)
|
||||
.then((res) => {
|
||||
console.log("复制成功", res);
|
||||
message.destroy();
|
||||
message.success("复制成功");
|
||||
state.dcopyModal = false;
|
||||
reget();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("复制失败", err);
|
||||
});
|
||||
|
||||
};
|
||||
const showStop = () => {
|
||||
state.stopModal = true;
|
||||
};
|
||||
//关闭结束窗口
|
||||
const closeStopModal = () => {
|
||||
state.stopModal = false;
|
||||
};
|
||||
//确认结束
|
||||
const stopLearnPath = () => {
|
||||
let obj = {
|
||||
routerId: state.routerId,
|
||||
type: -1,
|
||||
};
|
||||
api
|
||||
.handleLearnPath(obj)
|
||||
.then((res) => {
|
||||
console.log("停用成功", res);
|
||||
message.destroy();
|
||||
message.success("停用成功");
|
||||
state.stopModal = false;
|
||||
reget();
|
||||
// getLearnPath();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("停用失败", err);
|
||||
});
|
||||
};
|
||||
const reget = () => {
|
||||
GetRouterDetail(state.routerId).then((res) => {
|
||||
state.styTitle = res.data.data.routerInfo.name;
|
||||
state.cretime = toDate(
|
||||
@@ -1393,9 +1768,17 @@ export default {
|
||||
"Y-M-D h:m"
|
||||
);
|
||||
state.picUrl = res.data.data.routerInfo.picUrl;
|
||||
state.action = res.data.data.routerInfo.status;
|
||||
state.act =
|
||||
state.action == 0
|
||||
? "发布"
|
||||
: state.action == 1
|
||||
? "撤回"
|
||||
: state.action == -1
|
||||
? ""
|
||||
: "-";
|
||||
});
|
||||
});
|
||||
|
||||
};
|
||||
// 获取项目概览
|
||||
const getOverview = () => {
|
||||
getRouterOverview(state.routerId)
|
||||
@@ -1478,7 +1861,14 @@ export default {
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
const searchLevel = () => {
|
||||
const result = state.tableData.filter(item => item.cur == state.gatenamee)
|
||||
state.tableData = result;
|
||||
};
|
||||
const resetLevel = () => {
|
||||
state.gatenamee = '';
|
||||
getStudent();
|
||||
};
|
||||
return {
|
||||
...toRefs(state),
|
||||
...toRefs(levelList),
|
||||
@@ -1509,11 +1899,162 @@ export default {
|
||||
checkType,
|
||||
handleChange,
|
||||
delConfirm,
|
||||
searchLevel,
|
||||
resetLevel,
|
||||
closePub,
|
||||
releaseLearnPath,
|
||||
showPub,
|
||||
showBackModal,
|
||||
closeBackModal,
|
||||
recallPath,
|
||||
showCopy,
|
||||
closeCopy,
|
||||
sureCopy,
|
||||
closeStopModal,
|
||||
stopLearnPath,
|
||||
showStop,
|
||||
reget,
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.pub {
|
||||
.ant-modal {
|
||||
.ant-modal-body {
|
||||
padding: 0;
|
||||
.modalHeader {
|
||||
background: linear-gradient(
|
||||
rgba(78, 166, 255, 0.2) 0%,
|
||||
rgba(78, 166, 255, 0) 100%
|
||||
);
|
||||
}
|
||||
.modalMain {
|
||||
.projectname {
|
||||
color: rgba(79, 81, 86, 1);
|
||||
font-size: 14px;
|
||||
line-height: 36px;
|
||||
margin-left: 62px;
|
||||
font-weight: 500;
|
||||
}
|
||||
.projecttime {
|
||||
margin-left: 221px;
|
||||
.timeti {
|
||||
color: rgba(153, 155, 163, 1);
|
||||
font-size: 14px;
|
||||
line-height: 36px;
|
||||
}
|
||||
.timeme {
|
||||
color: rgba(79, 81, 86, 1);
|
||||
font-size: 14px;
|
||||
line-height: 36px;
|
||||
}
|
||||
}
|
||||
.projectbox {
|
||||
margin-top: 26px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
.promessage {
|
||||
width: 280px;
|
||||
height: 110px;
|
||||
background: linear-gradient(
|
||||
180deg,
|
||||
rgba(254, 243, 221, 1),
|
||||
rgba(255, 250, 240, 1)
|
||||
);
|
||||
border-radius: 10px;
|
||||
margin-right: 7px;
|
||||
.messageme {
|
||||
color: rgba(255, 182, 78, 1);
|
||||
font-size: 14px;
|
||||
line-height: 36px;
|
||||
margin-top: 17px;
|
||||
margin-left: 30px;
|
||||
}
|
||||
.messagege {
|
||||
color: rgba(153, 155, 163, 1);
|
||||
font-size: 14px;
|
||||
margin-left: 30px;
|
||||
}
|
||||
}
|
||||
.stumessage {
|
||||
width: 280px;
|
||||
height: 110px;
|
||||
background: linear-gradient(
|
||||
180deg,
|
||||
rgba(221, 234, 255, 1),
|
||||
rgba(240, 248, 254, 1)
|
||||
);
|
||||
border-radius: 10px;
|
||||
.messageme1 {
|
||||
color: rgba(78, 166, 255, 1);
|
||||
font-size: 14px;
|
||||
line-height: 36px;
|
||||
margin-top: 17px;
|
||||
margin-left: 30px;
|
||||
}
|
||||
.messagege1 {
|
||||
color: rgba(153, 155, 163, 1);
|
||||
font-size: 14px;
|
||||
margin-left: 30px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.send {
|
||||
margin-top: 30px;
|
||||
margin-left: 61px;
|
||||
.sendtext {
|
||||
margin-left: 11px;
|
||||
color: rgba(109, 117, 132, 1);
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
.ckb {
|
||||
margin-top: 20px;
|
||||
margin-left: 62px;
|
||||
.sendpeo {
|
||||
color: rgba(109, 117, 132, 1);
|
||||
font-size: 14px;
|
||||
}
|
||||
.ant-checkbox-inner {
|
||||
border-radius: 4px;
|
||||
}
|
||||
}
|
||||
.pubtn {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
margin-top: 25px;
|
||||
//margin-bottom: 29px;
|
||||
.pubtn1 {
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
margin-right: 16px;
|
||||
margin-bottom: 29px;
|
||||
border: 1px solid #409eff;
|
||||
border-radius: 4px;
|
||||
color: rgba(78, 166, 255, 1);
|
||||
font-size: 14px;
|
||||
//line-height: 36px;
|
||||
align-items: center;
|
||||
background: rgba(255, 255, 255, 1);
|
||||
}
|
||||
.pubtn2 {
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
margin-bottom: 29px;
|
||||
border: 1px solid #409eff;
|
||||
border-radius: 4px;
|
||||
color: #ffffff;
|
||||
font-size: 14px;
|
||||
align-items: center;
|
||||
//line-height: 36px;
|
||||
background: #409eff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.clearfix:before,
|
||||
.clearfix:after {
|
||||
content: " ";
|
||||
@@ -1931,7 +2472,8 @@ export default {
|
||||
}
|
||||
.moreItems {
|
||||
width: 110px;
|
||||
height: 80px;
|
||||
// height: 80px;
|
||||
padding-bottom: 12px;
|
||||
display: none;
|
||||
background: #ffffff;
|
||||
box-shadow: 2px 3px 9px 3px rgba(0, 0, 0, 0.05);
|
||||
|
||||
@@ -210,9 +210,15 @@
|
||||
</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" />
|
||||
<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>
|
||||
@@ -235,11 +241,17 @@
|
||||
</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>
|
||||
<!-- 添加案例侧弹窗 -->
|
||||
<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>
|
||||
<div class="item">
|
||||
@@ -963,8 +975,8 @@
|
||||
import { reactive, toRefs, onMounted, onUnmounted } from "vue";
|
||||
import AddStu from "../../components/drawers/AddLevelAddStu";
|
||||
import ImpStu from "../../components/drawers/AddLevelImportStu";
|
||||
import AddOnline from "../../components/drawers/AddOnline.vue"
|
||||
import AddCase from "../../components/drawers/AddCase.vue"
|
||||
import AddOnline from "../../components/drawers/AddOnline.vue";
|
||||
import AddCase from "../../components/drawers/AddCase.vue";
|
||||
import AddHomework from "../../components/drawers/AddHomework.vue";
|
||||
import AddTest from "../../components/drawers/AddTest.vue";
|
||||
import AddDiscuss from "../../components/drawers/AddDiscuss.vue";
|
||||
@@ -1218,8 +1230,8 @@ export default {
|
||||
deleteModal: false, // 删除弹窗
|
||||
deleteID: "", // 要删除的任务的id
|
||||
editID: "", // 要编辑的任务id
|
||||
EditOnlineId:"", // 要编辑的 workid
|
||||
EditCaseId:"",
|
||||
EditOnlineId: "", // 要编辑的 workid
|
||||
EditCaseId: "",
|
||||
EditWorkId: "",
|
||||
EditTestId: "",
|
||||
EditRefId: "",
|
||||
@@ -1246,8 +1258,8 @@ export default {
|
||||
adddiscussvisible: false, //讨论抽屉
|
||||
isStudiscuss: false,
|
||||
addactivevisible: false, //活动抽屉
|
||||
addonlinevisible:false,
|
||||
addcasevisible:false,
|
||||
addonlinevisible: false,
|
||||
addcasevisible: false,
|
||||
addhomeworkvisible: false,
|
||||
addtestvisible: false,
|
||||
addevalvisible: false,
|
||||
@@ -1269,6 +1281,7 @@ export default {
|
||||
projectId: null,
|
||||
projectTaskId: null,
|
||||
chooseStageId: null,
|
||||
chooseChapterId: null,
|
||||
});
|
||||
|
||||
//新建关卡
|
||||
@@ -1324,17 +1337,17 @@ export default {
|
||||
state.addprojvisible = false;
|
||||
};
|
||||
//在线抽屉
|
||||
const showDrawerAddOnline = (id,eleId)=>{
|
||||
const showDrawerAddOnline = (id, eleId) => {
|
||||
state.addonlinevisible = true;
|
||||
state.EditWorkId = id;
|
||||
state.routerTaskId = eleId;
|
||||
}
|
||||
};
|
||||
//案例抽屉
|
||||
const showDrawerAddCase = (id,eleId)=>{
|
||||
const showDrawerAddCase = (id, eleId) => {
|
||||
state.addcasevisible = true;
|
||||
state.EditWorkId = id;
|
||||
state.routerTaskId = eleId;
|
||||
}
|
||||
};
|
||||
// 作业和考试的抽屉
|
||||
const showDrawerAddHomework = (id, eleId) => {
|
||||
console.log("homework==============", id, state.isactive);
|
||||
@@ -1430,6 +1443,7 @@ export default {
|
||||
GetRouterDetail(state.routerId)
|
||||
.then((res) => {
|
||||
console.log("res.data.data.chapterList", res.data.data.chapterList);
|
||||
//给level赋初始值
|
||||
state.level = res.data.data.chapterList;
|
||||
state.styTitle = res.data.data.routerInfo.name;
|
||||
state.creTime = toDate(
|
||||
@@ -1444,8 +1458,14 @@ export default {
|
||||
item["label"] = item.name;
|
||||
});
|
||||
if (state.level.length > 0) {
|
||||
dataAssignment(state.level[0].chapterId);
|
||||
state.isactive = state.level[0].chapterId;
|
||||
let chapter = localStorage.getItem("chapterId");
|
||||
if (chapter !== null) {
|
||||
dataAssignment(chapter);//用哪个的任务表
|
||||
state.isactive = chapter;//哪个亮
|
||||
} else {
|
||||
dataAssignment(state.level[0].chapterId);
|
||||
state.isactive = state.level[0].chapterId;
|
||||
}
|
||||
}
|
||||
state.deleteModal = false;
|
||||
})
|
||||
@@ -1670,6 +1690,7 @@ export default {
|
||||
state.selectRow = []; //选择行
|
||||
state.selectAll = 0; //0:未选择,1:全选,2:部分选择
|
||||
dataAssignment(chapterId);
|
||||
state.chooseChapterId = chapterId;
|
||||
};
|
||||
const gqxy_hShow = () => {
|
||||
state.gqxy_hs = !state.gqxy_hs;
|
||||
@@ -1807,6 +1828,8 @@ export default {
|
||||
console.log("移动成功", res);
|
||||
message.destroy();
|
||||
message.success("移动成功");
|
||||
localStorage.setItem("chapterId", state.chooseChapterId);
|
||||
getDetail();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("移动失败", err);
|
||||
@@ -1906,7 +1929,13 @@ export default {
|
||||
const rowSelection = {
|
||||
onSelect: (selectedRows, selected, selectedRowKeys) => {
|
||||
console.log(
|
||||
"selectedRowKeys", selectedRowKeys, "selectedRows", selectedRows, "selected", selected);
|
||||
"selectedRowKeys",
|
||||
selectedRowKeys,
|
||||
"selectedRows",
|
||||
selectedRows,
|
||||
"selected",
|
||||
selected
|
||||
);
|
||||
console.log(selectedRows.assessmentId);
|
||||
state.assessmentId = selectedRows.assessmentId;
|
||||
state.assessmentName = selectedRows.name;
|
||||
@@ -1942,36 +1971,38 @@ export default {
|
||||
"status": 0
|
||||
})
|
||||
.then((res) => {
|
||||
let arr = res.data.data.rows;
|
||||
if (res.status === 200) {
|
||||
let arr = res.data.data.rows;
|
||||
console.log(arr,'-------------------------------');
|
||||
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,
|
||||
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;
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res, 11111);
|
||||
message.success(`${state.editproj ? '编辑' : '新增'}关卡任务成功`)
|
||||
// ctx.emit("changeData", false);
|
||||
closeDrawer();
|
||||
state.addLoading = false;
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err, 1111);
|
||||
});
|
||||
}
|
||||
.catch((err) => {
|
||||
console.log(err, 1111);
|
||||
});
|
||||
};
|
||||
onMounted(() => {
|
||||
// createCase();
|
||||
getAllProjText();
|
||||
|
||||
@@ -1395,6 +1395,7 @@ export default {
|
||||
|
||||
//获取任务列表
|
||||
const getTask = () => {
|
||||
// console.log("state.projectId", state.projectId);
|
||||
let obj = {
|
||||
projectId: state.projectId,
|
||||
// projectId: 28,
|
||||
@@ -1409,28 +1410,30 @@ export default {
|
||||
state.picUrl = res.data.data.projectInfo.picUrl;
|
||||
let leng = res.data.data.stageList.length;
|
||||
if (leng > 0) {
|
||||
// let stage = localStorage.getItem("stageId")
|
||||
// ? localStorage.getItem("stageId")
|
||||
// : null;
|
||||
// if (stage !== null) {
|
||||
// // console.log("找到了origin", originStageList);
|
||||
// let originStageList = res.data.data.stageList.find((item) => {
|
||||
// item.stageId == stage;
|
||||
// });
|
||||
// getTableData(originStageList.taskList);
|
||||
// console.log("找到了origin", originStageList);
|
||||
// } else {
|
||||
// let arr = res.data.data.stageList[0].taskList;
|
||||
// console.log("任务列表", arr);
|
||||
// getTableData(arr);
|
||||
// }
|
||||
|
||||
let stage = localStorage.getItem("stageId")
|
||||
? localStorage.getItem("stageId")
|
||||
: null;
|
||||
let arr = res.data.data.stageList[0].taskList;
|
||||
console.log("任务列表", stage, arr);
|
||||
getTableData(arr);
|
||||
console.log("zhaodaole", stage);
|
||||
|
||||
if (stage !== null) {
|
||||
let stageList = res.data.data.stageList; //阶段数组
|
||||
let result = stageList.find((item) => item.stageId == stage);
|
||||
console.log("又找到了", result);
|
||||
getTableData(result.taskList);
|
||||
} else {
|
||||
let arr = res.data.data.stageList[0].taskList;
|
||||
console.log("任务列表", arr);
|
||||
getTableData(arr);
|
||||
}
|
||||
// let stageList = res.data.data.stageList; //阶段数组
|
||||
// let result = stageList.find((item) => item.stageId == stage);
|
||||
// console.log("又找到了", result);
|
||||
// getTableData(result.taskList);
|
||||
|
||||
// 每次都获取了第一条taskList
|
||||
// let arr = res.data.data.stageList[0].taskList;
|
||||
// console.log("任务列表", stage, arr);
|
||||
// getTableData(arr);
|
||||
}
|
||||
|
||||
let stagearr = res.data.data.stageList;
|
||||
|
||||
@@ -12,22 +12,78 @@
|
||||
</div>
|
||||
<div class="right">
|
||||
<img class="img1" src="../../assets/images/leveladd/ma.png" />
|
||||
<div class="line"></div>
|
||||
<img class="img2" src="../../assets/images/leveladd/pub.png" />
|
||||
<div class="pub">发布</div>
|
||||
<div class="line" v-if="action == 1 || action == 0"></div>
|
||||
<img
|
||||
v-if="action == 1 || action == 0"
|
||||
class="img2"
|
||||
src="../../assets/images/leveladd/pub.png"
|
||||
/>
|
||||
<!-- <div class="pub">发布</div> -->
|
||||
<!-- 已发布的显示 -->
|
||||
<div
|
||||
class="pub"
|
||||
style="width: 28px"
|
||||
v-if="action == 1"
|
||||
@click="showBackModal"
|
||||
>
|
||||
{{ act }}
|
||||
</div>
|
||||
<!-- 未发布/草稿的显示 -->
|
||||
<div
|
||||
class="pub"
|
||||
style="width: 28px"
|
||||
v-if="action == 0"
|
||||
@click="showProjectPub"
|
||||
>
|
||||
{{ act }}
|
||||
</div>
|
||||
<!-- 已结束的显示 -->
|
||||
<!-- <div class="pub" style="width: 28px" v-if="action == -1">
|
||||
{{ act }}
|
||||
</div> -->
|
||||
<div class="line"></div>
|
||||
<img
|
||||
style="margin-right: 15px"
|
||||
class="img2"
|
||||
src="../../assets/images/leveladd/more.png"
|
||||
/>
|
||||
<div class="more">
|
||||
<!-- <div class="more">
|
||||
<span style="color: #7096e3; cursor: pointer">更多</span>
|
||||
<div class="moreArrow"></div>
|
||||
<div class="moreItems">
|
||||
<div class="sammo">撤回</div>
|
||||
<div class="sammo">复制</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<!-- 草稿/未发布的显示 -->
|
||||
<div class="more" v-if="action == 0">
|
||||
<span style="color: #7096e3; cursor: pointer">更多</span>
|
||||
<div class="moreArrow"></div>
|
||||
<div class="moreItems">
|
||||
<!-- <div class="sammo">撤回</div> -->
|
||||
<div class="sammo">复制</div>
|
||||
<div class="sammo" @click="showStartModal">存为模板</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 已发布的显示 -->
|
||||
<div class="more" v-if="action == 1">
|
||||
<span style="color: #7096e3; cursor: pointer">更多</span>
|
||||
<div class="moreArrow"></div>
|
||||
<div class="moreItems">
|
||||
<div class="sammo" @click="showStopModal">结束</div>
|
||||
<div class="sammo">复制</div>
|
||||
<div class="sammo" @click="showStartModal">存为模板</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 已结束的显示 -->
|
||||
<div class="more" v-if="action == -1">
|
||||
<span style="color: #7096e3; cursor: pointer">更多</span>
|
||||
<div class="moreArrow"></div>
|
||||
<div class="moreItems">
|
||||
<!-- <div class="sammo">结束</div> -->
|
||||
<div class="sammo">复制</div>
|
||||
<div class="sammo" @click="showStartModal">存为模板</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="line"></div>
|
||||
<router-link to="/projectmanage">
|
||||
@@ -1352,6 +1408,178 @@
|
||||
type="课程二维码"
|
||||
/>
|
||||
<!-- 二维码弹窗 -->
|
||||
|
||||
<!-- 发布弹窗 -->
|
||||
<a-modal
|
||||
v-model:visible="projectPub"
|
||||
:title="null"
|
||||
:footer="null"
|
||||
:closable="false"
|
||||
wrapClassName="projectPub"
|
||||
width="679px"
|
||||
height="437px"
|
||||
>
|
||||
<div
|
||||
class="modalHeader"
|
||||
style="
|
||||
width: 100%;
|
||||
height: 68px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
"
|
||||
>
|
||||
<div class="headerLeft" style="margin-left: 32px">
|
||||
<span style="width: 15px; height: 15px"
|
||||
><img src="../../assets/images/taskpage/pub.png"
|
||||
/></span>
|
||||
<span
|
||||
class="headerLeftText"
|
||||
style="font-size: 16px; margin-left: 10px"
|
||||
>项目发布</span
|
||||
>
|
||||
</div>
|
||||
<div
|
||||
style="cursor: pointer; margin-right: 32px"
|
||||
@click="closeProjectPub"
|
||||
>
|
||||
<img
|
||||
style="width: 22px; height: 22px"
|
||||
src="../../assets/images/basicinfo/close22.png"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modalMain">
|
||||
<div class="projectname">{{ releaseProjectName }}</div>
|
||||
<div class="projecttime" v-if="startTime">
|
||||
<span class="timeti">项目时间:</span
|
||||
><span class="timeme">{{ startTime }}~{{ endTime }}</span>
|
||||
</div>
|
||||
<div class="projectbox">
|
||||
<div class="promessage">
|
||||
<div class="messageme">项目信息</div>
|
||||
<div class="messagege">当前项目共0个阶段,0个任务</div>
|
||||
</div>
|
||||
<div class="stumessage">
|
||||
<div class="messageme1">学员信息</div>
|
||||
<div class="messagege1">项目共{{ projectStudentsNum }}名学员</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="send">
|
||||
<a-switch v-model:checked="checked" size="small" />
|
||||
<span class="sendtext">发送路径通知</span>
|
||||
</div>
|
||||
<div class="ckb">
|
||||
<a-checkbox v-model:checked="checkedTeacher"
|
||||
><span class="sendpeo">发给老师</span></a-checkbox
|
||||
>
|
||||
<a-checkbox v-model:checked="checkStu"
|
||||
><span class="sendpeo">发给学员</span></a-checkbox
|
||||
>
|
||||
</div> -->
|
||||
<div class="pubtn">
|
||||
<a-button class="pubtn1" @click="closeProjectPub">取消</a-button>
|
||||
<a-button class="pubtn2" @click="releaseProject">发布</a-button>
|
||||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
|
||||
<!-- 撤回弹窗 -->
|
||||
<a-modal
|
||||
v-model:visible="backModal"
|
||||
:footer="null"
|
||||
:closable="closeBack"
|
||||
wrapClassName="CopyModal"
|
||||
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="closeBackModal"></div>
|
||||
</div>
|
||||
<div class="body">
|
||||
<span>是否撤回项目</span>
|
||||
<div class="back">(项目撤回后学员进度保留,发布后可继续学习)</div>
|
||||
</div>
|
||||
<div class="del_btnbox">
|
||||
<div class="del_btn btn1" @click="closeBackModal">
|
||||
<div class="btnText">取消</div>
|
||||
</div>
|
||||
<div class="del_btn btn2" @click="recallProject">
|
||||
<div class="btnText">确定</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
|
||||
<!-- 结束项目弹窗 -->
|
||||
<a-modal
|
||||
v-model:visible="stopModal"
|
||||
:footer="null"
|
||||
:closable="closeStop"
|
||||
wrapClassName="CopyModal"
|
||||
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="closeStopModal"></div>
|
||||
</div>
|
||||
<div class="body">
|
||||
<span>是否结束项目</span>
|
||||
<div class="back">
|
||||
(项目结束后学员将无法继续学习,此操作不可逆)
|
||||
</div>
|
||||
</div>
|
||||
<div class="del_btnbox">
|
||||
<div class="del_btn btn1" @click="closeStopModal">
|
||||
<div class="btnText">取消</div>
|
||||
</div>
|
||||
<div class="del_btn btn2" @click="finishProject">
|
||||
<div class="btnText">确定</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
|
||||
<!-- 存为模版弹窗 -->
|
||||
<a-modal
|
||||
v-model:visible="startModal"
|
||||
:footer="null"
|
||||
:closable="closeStart"
|
||||
wrapClassName="CopyModal"
|
||||
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="closeStartModal"></div>
|
||||
</div>
|
||||
<div class="body">
|
||||
<span>您确定要存为模版吗</span>
|
||||
</div>
|
||||
<div class="del_btnbox">
|
||||
<div class="del_btn btn1" @click="closeStartModal">
|
||||
<div class="btnText">取消</div>
|
||||
</div>
|
||||
<div class="del_btn btn2" @click="templateProject">
|
||||
<div class="btnText">确定</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
@@ -1377,6 +1605,7 @@ import ProjectScore from "../../components/drawers/ProjectScore";
|
||||
import TaskImpStu from "../../components/drawers/TaskFaceIn";
|
||||
import { storage } from "../../api/storage";
|
||||
import * as api from "../../api/index1";
|
||||
import * as apiproj from "../../api/index";
|
||||
import {
|
||||
getProjStu,
|
||||
deleteStu,
|
||||
@@ -1566,6 +1795,19 @@ export default {
|
||||
chooseGroupId: null,
|
||||
morFaceT: false, //批量面授报名按钮
|
||||
faceArr: [], //任务大纲列表所有name
|
||||
action: null,
|
||||
act: null,
|
||||
projectPub: false, //发布弹窗
|
||||
projectStudentsNum: 0, //发布弹窗-学员人数
|
||||
releaseProjectId: null, //发布的项目id
|
||||
releaseProjectName: null, //发布的项目名称
|
||||
releaseProjectTime: null, //发布的项目时间
|
||||
backModal: false, //撤回弹窗
|
||||
closeBack: false,
|
||||
stopModal: false,
|
||||
closeStop: false,
|
||||
startModal: false,
|
||||
closeStart: false,
|
||||
//进度排行表
|
||||
jindutabledata: [
|
||||
{
|
||||
@@ -3062,12 +3304,160 @@ export default {
|
||||
}
|
||||
}
|
||||
};
|
||||
const reget = () => {
|
||||
getTask({
|
||||
projectId: state.projectId,
|
||||
}).then((res) => {
|
||||
state.action = res.data.data.projectInfo.status;
|
||||
state.act =
|
||||
state.action == 0
|
||||
? "发布"
|
||||
: state.action == 1
|
||||
? "撤回"
|
||||
: state.action == -1
|
||||
? ""
|
||||
: "-";
|
||||
});
|
||||
};
|
||||
//打开发布弹窗
|
||||
const showProjectPub = () => {
|
||||
state.projectPub = true;
|
||||
state.releaseProjectId = state.projectId;
|
||||
state.releaseProjectName = state.name;
|
||||
// state.releaseProjectTime = state.startTime;
|
||||
// console.log("object", object);
|
||||
//获取学员总数
|
||||
let obj = {
|
||||
pageNo: 0,
|
||||
pageSize: 0,
|
||||
projectId: state.projectId,
|
||||
};
|
||||
apiproj
|
||||
.projectStudent(obj)
|
||||
.then((res) => {
|
||||
if (res.status === 200) {
|
||||
// console.log("res", res.data);
|
||||
state.projectStudentsNum = res.data.data.total
|
||||
? res.data.data.total
|
||||
: 0;
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("获取学员人数失败", err);
|
||||
});
|
||||
//获取阶段及任务总数
|
||||
};
|
||||
//关闭发布弹窗
|
||||
const closeProjectPub = () => {
|
||||
state.projectPub = false;
|
||||
};
|
||||
//确认发布项目
|
||||
const releaseProject = () => {
|
||||
console.log("点击发布");
|
||||
let obj = {
|
||||
projectId: state.releaseProjectId,
|
||||
};
|
||||
apiproj
|
||||
.releaseProject(obj)
|
||||
.then((res) => {
|
||||
console.log("发布成功", res);
|
||||
message.destroy();
|
||||
message.success("发布成功");
|
||||
state.projectPub = false;
|
||||
reget();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("发布失败", err);
|
||||
});
|
||||
};
|
||||
|
||||
//打开撤回弹窗
|
||||
const showBackModal = () => {
|
||||
state.backModal = true;
|
||||
};
|
||||
//关闭撤回弹窗
|
||||
const closeBackModal = () => {
|
||||
state.backModal = false;
|
||||
};
|
||||
const recallProject = () => {
|
||||
let obj = {
|
||||
projectId: state.projectId,
|
||||
type: 0,
|
||||
};
|
||||
apiproj
|
||||
.handleProject(obj)
|
||||
.then((res) => {
|
||||
console.log("撤回成功", res);
|
||||
message.destroy();
|
||||
message.success("撤回成功");
|
||||
state.backModal = false;
|
||||
reget();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("撤回失败", err);
|
||||
});
|
||||
};
|
||||
//关闭结束弹窗
|
||||
const closeStopModal = () => {
|
||||
state.stopModal = false;
|
||||
};
|
||||
//确认结束
|
||||
const finishProject = () => {
|
||||
let obj = {
|
||||
projectId: state.projectId,
|
||||
type: -1,
|
||||
};
|
||||
apiproj
|
||||
.handleProject(obj)
|
||||
.then((res) => {
|
||||
console.log("结束成功", res);
|
||||
message.destroy();
|
||||
message.success("已结束");
|
||||
state.stopModal = false;
|
||||
reget();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("结束失败", err);
|
||||
});
|
||||
};
|
||||
//打开结束弹窗
|
||||
const showStopModal = () => {
|
||||
state.stopModal = true;
|
||||
};
|
||||
//打开存为模版弹窗
|
||||
const showStartModal = () => {
|
||||
state.startModal = true;
|
||||
};
|
||||
//关闭存为模版弹窗
|
||||
const closeStartModal = () => {
|
||||
state.startModal = false;
|
||||
};
|
||||
//确认存为模版
|
||||
const templateProject = () => {
|
||||
let obj = {
|
||||
projectId: state.projectId,
|
||||
type: 1,
|
||||
};
|
||||
apiproj
|
||||
.handleProject(obj)
|
||||
.then((res) => {
|
||||
console.log("模版保存成功", res);
|
||||
message.destroy();
|
||||
message.success("模版保存成功");
|
||||
state.startModal = false;
|
||||
reget();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("模版保存失败", err);
|
||||
});
|
||||
};
|
||||
onMounted(() => {
|
||||
getStu();
|
||||
getTaskList();
|
||||
getTaskInfo();
|
||||
getGroup();
|
||||
getOverview();
|
||||
reget();
|
||||
});
|
||||
return {
|
||||
...toRefs(state),
|
||||
@@ -3147,6 +3537,19 @@ export default {
|
||||
changePaginationStu,
|
||||
handleChange,
|
||||
toEdit,
|
||||
reget,
|
||||
showProjectPub,
|
||||
closeProjectPub,
|
||||
releaseProject,
|
||||
showBackModal,
|
||||
closeBackModal,
|
||||
recallProject,
|
||||
closeStopModal,
|
||||
finishProject,
|
||||
showStopModal,
|
||||
showStartModal,
|
||||
closeStartModal,
|
||||
templateProject,
|
||||
};
|
||||
},
|
||||
};
|
||||
@@ -3456,6 +3859,133 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
.CopyModal {
|
||||
.ant-modal {
|
||||
width: 424px !important;
|
||||
height: 258px !important;
|
||||
|
||||
.ant-modal-content {
|
||||
width: 424px !important;
|
||||
height: 258px !important;
|
||||
|
||||
.ant-modal-body {
|
||||
width: 424px !important;
|
||||
height: 258px !important;
|
||||
padding: 0 !important;
|
||||
|
||||
.delete {
|
||||
z-index: 999;
|
||||
width: 424px;
|
||||
height: 258px;
|
||||
background: #ffffff;
|
||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
|
||||
border-radius: 4px;
|
||||
|
||||
// position: absolute;
|
||||
// left: 50%;
|
||||
// top: 10%;
|
||||
// transform: translate(-50%, -50%);
|
||||
.del_header {
|
||||
position: absolute;
|
||||
width: calc(100%);
|
||||
height: 68px;
|
||||
background: linear-gradient(
|
||||
rgba(78, 166, 255, 0.2) 0%,
|
||||
rgba(78, 166, 255, 0) 100%
|
||||
);
|
||||
}
|
||||
|
||||
.del_main {
|
||||
width: 100%;
|
||||
position: relative;
|
||||
|
||||
.header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding-top: 20px;
|
||||
padding-left: 26px;
|
||||
font-size: 16px;
|
||||
|
||||
.icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin-right: 10px;
|
||||
background-image: url(@/assets/images/coursewareManage/QR.png);
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
|
||||
.close_exit {
|
||||
position: absolute;
|
||||
right: 42px;
|
||||
cursor: pointer;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background-image: url(@/assets/images/coursewareManage/close.png);
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.body {
|
||||
width: 100%;
|
||||
margin: 34px auto 56px auto;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
// background-color: red;
|
||||
position: relative;
|
||||
|
||||
.back {
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
font-size: 12px;
|
||||
font-weight: 400;
|
||||
color: #666666;
|
||||
}
|
||||
}
|
||||
|
||||
.del_btnbox {
|
||||
display: flex;
|
||||
margin: 30px auto;
|
||||
justify-content: center;
|
||||
|
||||
.del_btn {
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
background: rgba(64, 158, 255, 0);
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
flex-shrink: 0;
|
||||
cursor: pointer;
|
||||
|
||||
.btnText {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
line-height: 40px;
|
||||
}
|
||||
}
|
||||
|
||||
.btn1 {
|
||||
border: 1px solid rgba(64, 158, 255, 1);
|
||||
color: #4ea6ff;
|
||||
margin-right: 14px;
|
||||
}
|
||||
|
||||
.btn2 {
|
||||
background-color: #4ea6ff;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.canclestu1 {
|
||||
.ant-modal {
|
||||
width: 424px !important;
|
||||
@@ -3687,6 +4217,144 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
.projectPub {
|
||||
.ant-modal {
|
||||
.ant-modal-body {
|
||||
padding: 0;
|
||||
.modalHeader {
|
||||
background: linear-gradient(
|
||||
rgba(78, 166, 255, 0.2) 0%,
|
||||
rgba(78, 166, 255, 0) 100%
|
||||
);
|
||||
}
|
||||
.modalMain {
|
||||
.projectname {
|
||||
color: rgba(79, 81, 86, 1);
|
||||
font-size: 14px;
|
||||
line-height: 36px;
|
||||
// margin-left: 62px;
|
||||
font-weight: 500;
|
||||
text-align: center;
|
||||
}
|
||||
.projecttime {
|
||||
margin-left: 221px;
|
||||
.timeti {
|
||||
color: rgba(153, 155, 163, 1);
|
||||
font-size: 14px;
|
||||
line-height: 36px;
|
||||
}
|
||||
.timeme {
|
||||
color: rgba(79, 81, 86, 1);
|
||||
font-size: 14px;
|
||||
line-height: 36px;
|
||||
}
|
||||
}
|
||||
.projectbox {
|
||||
margin-top: 26px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
.promessage {
|
||||
width: 280px;
|
||||
height: 110px;
|
||||
background: linear-gradient(
|
||||
180deg,
|
||||
rgba(254, 243, 221, 1),
|
||||
rgba(255, 250, 240, 1)
|
||||
);
|
||||
border-radius: 10px;
|
||||
margin-right: 7px;
|
||||
.messageme {
|
||||
color: rgba(255, 182, 78, 1);
|
||||
font-size: 14px;
|
||||
line-height: 36px;
|
||||
margin-top: 17px;
|
||||
margin-left: 30px;
|
||||
}
|
||||
.messagege {
|
||||
color: rgba(153, 155, 163, 1);
|
||||
font-size: 14px;
|
||||
margin-left: 30px;
|
||||
}
|
||||
}
|
||||
.stumessage {
|
||||
width: 280px;
|
||||
height: 110px;
|
||||
background: linear-gradient(
|
||||
180deg,
|
||||
rgba(221, 234, 255, 1),
|
||||
rgba(240, 248, 254, 1)
|
||||
);
|
||||
border-radius: 10px;
|
||||
.messageme1 {
|
||||
color: rgba(78, 166, 255, 1);
|
||||
font-size: 14px;
|
||||
line-height: 36px;
|
||||
margin-top: 17px;
|
||||
margin-left: 30px;
|
||||
}
|
||||
.messagege1 {
|
||||
color: rgba(153, 155, 163, 1);
|
||||
font-size: 14px;
|
||||
margin-left: 30px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.send {
|
||||
margin-top: 30px;
|
||||
margin-left: 61px;
|
||||
.sendtext {
|
||||
margin-left: 11px;
|
||||
color: rgba(109, 117, 132, 1);
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
.ckb {
|
||||
margin-top: 20px;
|
||||
margin-left: 62px;
|
||||
.sendpeo {
|
||||
color: rgba(109, 117, 132, 1);
|
||||
font-size: 14px;
|
||||
}
|
||||
.ant-checkbox-inner {
|
||||
border-radius: 4px;
|
||||
}
|
||||
}
|
||||
.pubtn {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
margin-top: 25px;
|
||||
//margin-bottom: 29px;
|
||||
.pubtn1 {
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
margin-right: 16px;
|
||||
margin-bottom: 29px;
|
||||
border: 1px solid #409eff;
|
||||
border-radius: 4px;
|
||||
color: rgba(78, 166, 255, 1);
|
||||
font-size: 14px;
|
||||
//line-height: 36px;
|
||||
align-items: center;
|
||||
background: rgba(255, 255, 255, 1);
|
||||
}
|
||||
.pubtn2 {
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
margin-bottom: 29px;
|
||||
border: 1px solid #409eff;
|
||||
border-radius: 4px;
|
||||
color: #ffffff;
|
||||
font-size: 14px;
|
||||
align-items: center;
|
||||
//line-height: 36px;
|
||||
background: #409eff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.facemanageModal {
|
||||
.ant-modal {
|
||||
width: 532px !important;
|
||||
@@ -3919,7 +4587,8 @@ export default {
|
||||
|
||||
.moreItems {
|
||||
width: 110px;
|
||||
height: 80px;
|
||||
// height: 80px;
|
||||
padding-bottom: 12px;
|
||||
display: none;
|
||||
background: #ffffff;
|
||||
box-shadow: 2px 3px 9px 3px rgba(0, 0, 0, 0.05);
|
||||
|
||||
@@ -34,11 +34,11 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="tmplh_btn">
|
||||
<div class="btn btn1">
|
||||
<div class="btn btn1" @click="searchLevel">
|
||||
<div class="search"></div>
|
||||
<div class="btnText btnText1">搜索</div>
|
||||
</div>
|
||||
<div class="btn btn2">
|
||||
<div class="btn btn2" @click="resetLevel">
|
||||
<div class="search"></div>
|
||||
<div class="btnText btnText2">重置</div>
|
||||
</div>
|
||||
@@ -106,6 +106,7 @@ export default defineComponent({
|
||||
name: "TemplateLibrary",
|
||||
setup() {
|
||||
const state = reactive({
|
||||
value1:null,
|
||||
tableData1: [
|
||||
{
|
||||
key: "1",
|
||||
@@ -232,12 +233,39 @@ export default defineComponent({
|
||||
message.error(`模板操作失败`+error)
|
||||
})
|
||||
}
|
||||
|
||||
const searchLevel = () => {
|
||||
const result = state.tableData1.filter(item => item.name == state.value1)
|
||||
state.tableData1 = result;
|
||||
};
|
||||
const resetLevel = () => {
|
||||
state.value1 = '';
|
||||
// getLibraryList();
|
||||
state.tableData1 = [
|
||||
{
|
||||
key: "1",
|
||||
name: "测试模板1",
|
||||
status: "已发布",
|
||||
creator: "李部长",
|
||||
stutime: "2022-10-31 23:12:00",
|
||||
operation: "operation",
|
||||
},
|
||||
{
|
||||
key: "2",
|
||||
name: "测试模板2",
|
||||
status: "未发布",
|
||||
creator: "李部长",
|
||||
stutime: "2022-10-31 23:12:00",
|
||||
operation: "operation",
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
return {
|
||||
...toRefs(state),
|
||||
columns1,
|
||||
templateHadler,
|
||||
searchLevel,
|
||||
resetLevel,
|
||||
};
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user