添加传参方法

This commit is contained in:
宋文超
2022-11-17 16:26:17 +08:00
parent 429e8339c9
commit 5bd067c4d0
13 changed files with 1724 additions and 1491 deletions

View File

@@ -9,8 +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"
@@ -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,13 +325,21 @@ 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;
@@ -337,20 +348,23 @@ export default {
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,60 +372,62 @@ export default {
}
};
const updateTask = (res) => {
if(props.isLevel == 1 ){
if (props.isLevel == 1) {
RouterEditTask({
chapterId:props.isactive,
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,
routerTaskId: props.routerTaskId || 0,
type: 9,
}).then(res => {
console.log("新增关卡任务成功",res);
}).catch(err => {
console.log("新增关卡任务失败",err);
})
}else if(props.isLevel==2){
apiTask.addTask({
.then((res) => {
console.log("新增关卡任务成功", res);
})
.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("请输入活动地址");
}
@@ -421,18 +437,17 @@ export default {
activityDuration: state.inputV2, //活动时长
activityExplain: state.textV2, //活动说明
activityEndTime: dayjs(state.time[1]).format("YYYY-MM-DD"), //活动结束时间
activityId: props.edit?props.EditActiveId:0, //活动ID
activityId: props.edit ? props.EditActiveId : 0, //活动ID
activityName: state.inputV1, //活动名称
activityNotice: state.textV1, //活动公告
activityStartTime:dayjs(state.time[0]).format("YYYY-MM-DD"),//活动开始时间
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)
@@ -442,9 +457,9 @@ export default {
ctx.emit("changeData", false);
})
.catch((err) => {
console.log("更新失败",err);
})
}else{
console.log("更新失败", err);
});
} else {
//新建活动信息
api
.createActivity(obj)
@@ -455,10 +470,9 @@ export default {
ctx.emit("changeData", false);
})
.catch((err) => {
console.log("创建失败",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;

View File

@@ -44,11 +44,20 @@
</div>
<div class="main_table">
<a-table class="ant-table-striped" :row-class-name="
<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
"
: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
@@ -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 = "";
@@ -298,9 +319,9 @@ export default {
<style lang="scss">
.ant-table-striped :deep(.table-striped) td {
background-color: #fafafa !important;
}
}
.addcaseDrawer {
.addcaseDrawer {
.drawerMain {
.header {
height: 73px;
@@ -319,7 +340,7 @@ export default {
}
.contentMain {
.main_items {
margin-top:32px;
margin-top: 32px;
display: flex;
justify-content: space-between;
margin-bottom: 12px;
@@ -416,7 +437,7 @@ export default {
}
.ant-table-selection-column {
padding: 0px !important;
padding-left:15px !important;
padding-left: 15px !important;
}
.ant-table-thead > tr > th {
background-color: rgba(239, 244, 252, 1);
@@ -473,5 +494,5 @@ export default {
}
}
}
}
}
</style>

View File

@@ -174,6 +174,7 @@ export default {
state.inputV1 = "";
state.textV1 = "";
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
// ctx.emit("changeData", false);
localStorage.setItem("stageId", props.chooseStageId);
localStorage.setItem("chapterId", props.isactive);
};

View File

@@ -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
<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,7 +108,7 @@ 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",
@@ -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,33 +178,38 @@ 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})
.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.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.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,
@@ -207,12 +221,11 @@ export default {
})
.then((res) => {
console.log("调用项目添加接口后", res.data);
})
.catch((err) => {
console.log(err);
});
}else if(props.isLevel ==2){
} else if (props.isLevel == 2) {
RouterEditTask({
chapterId: props.isactive,
courseId: res.data.data.evaluationId,
@@ -220,16 +233,17 @@ export default {
routerId: props.routerId,
routerTaskId: props.routerTaskId || 0,
type: 10,
}).then((res) => {
})
.then((res) => {
console.log("调用项目添加接口后", res.data);
}).catch((err) => {
})
.catch((err) => {
console.log(err);
});
}else if(props.isLevel ==3){
console.log("模板库任务")
}
} else if (props.isLevel == 3) {
console.log("模板库任务");
}
};
//创建或编辑测评信息
const createEvalText = () => {
if (!state.inputV1) {
@@ -248,13 +262,13 @@ 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) => {
@@ -266,7 +280,7 @@ export default {
.catch((err) => {
console.log(err);
});
}else{
} else {
api
.updateEvaluation(obj)
.then((res) => {
@@ -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;

View File

@@ -384,6 +384,8 @@ 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);

View File

@@ -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,19 +291,17 @@ 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);
@@ -309,7 +310,7 @@ export default {
.catch((err) => {
message.error(`添加失败${err}`);
});
}else{
} else {
createWorkTask(obj)
.then((res) => {
updateTask(res);
@@ -319,7 +320,6 @@ export default {
message.error(`添加失败${err}`);
});
}
};
// 查询任务
@@ -345,7 +345,7 @@ export default {
};
// 新增编辑或新增项目任务
const updateTask = (res) => {
if(props.isLevel==1 ){
if (props.isLevel == 1) {
let editObj1 = {
chapterId: props.isactive,
courseId: res.data.data.workId,
@@ -364,11 +364,11 @@ export default {
.catch(() => {
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
});
}else if(props.isLevel==2){
} else if (props.isLevel == 2) {
let editObj = {
courseId: res.data.data.workId,
name:res.data.data.workName,
projectId: props.edit?props.projectId:0,
name: res.data.data.workName,
projectId: props.edit ? props.projectId : 0,
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId,
type: 4,
@@ -382,13 +382,11 @@ export default {
.catch(() => {
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
});
}else if(props.isLevel==3){
} 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;

View File

@@ -23,33 +23,43 @@
<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 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>
<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"/>
@checkedAss="getCheckedAss"
/>
</div>
</div>
</div>
</div>
</div>
<div class="main_btns">
@@ -62,7 +72,7 @@
</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,49 +135,50 @@ 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;
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,
name: state.assessment.name,
routerId: props.routerId,
routerTaskId: props.routerTaskId || 0,
type: 11,
})
.then((res) => {
console.log(res, 11111);
message.success(`${props.edit ? '编辑' : '新增'}关卡任务成功`)
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
ctx.emit("changeData", false);
closeDrawer();
state.addLoading = false;
@@ -173,11 +186,11 @@ export default {
.catch((err) => {
console.log(err, 1111);
});
}else if(props.isLevel ==2){
} else if (props.isLevel == 2) {
apiTask
.addTask({
courseId: state.assessment.assessmentId,
name:state.assessment.name,
name: state.assessment.name,
projectId: props.projectId,
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId,
@@ -191,11 +204,10 @@ export default {
.catch((err) => {
console.log(err, 111111);
});
}else if(props.isLevel == 3){
} else if (props.isLevel == 3) {
console.log("模板库更新更新任务列表");
}
}
};
return {
...toRefs(state),
@@ -232,18 +244,17 @@ export default {
.contentMain {
display: flex;
justify-content: space-between;
.main{
width:100%;
.main {
width: 100%;
.main_left {
padding-right: 30px;
margin-top:32px;
margin-top: 32px;
.main_item {
display: flex;
align-items: center;
margin-bottom: 64px;
.fi_input {
margin-right: 20px;
}
.btns {
margin-right: 20px;
@@ -309,12 +320,12 @@ export default {
.mntc_left {
display: flex;
align-items: center;
.title{
.title {
color: rgba(0, 0, 0, 0.65);
margin-right: 17px
margin-right: 17px;
}
.data{
color: #388be1
.data {
color: #388be1;
}
.notice_icon {
width: 14px;
@@ -329,10 +340,8 @@ export default {
cursor: pointer;
}
}
}
}
}
.main_btns {
height: 72px;

View File

@@ -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);

View File

@@ -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">
@@ -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,8 +308,8 @@ export default {
// state.createLoading = false;
});
};
const updateTask =()=>{
if(props.isLevel ==1){
const updateTask = () => {
if (props.isLevel == 1) {
RouterEditTask({
chapterId: props.isactive,
courseId: state.assessmentId,
@@ -307,7 +320,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;
@@ -315,8 +328,8 @@ export default {
.catch((err) => {
console.log(err, 1111);
});
}else if(props.isLevel ==2){
console.log("=========projectTaskId",props.projectTaskId);
} else if (props.isLevel == 2) {
console.log("=========projectTaskId", props.projectTaskId);
apiTask
.addTask({
courseId: state.assessmentId,
@@ -334,10 +347,10 @@ export default {
.catch((err) => {
console.log(err, 111111);
});
}else if(props.isLevel ==3){
} else if (props.isLevel == 3) {
console.log("");
}
}
};
//重置在线信息
const resetOnline = () => {
state.inputV1 = "";

View File

@@ -8,15 +8,23 @@
>
<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">
<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">
@@ -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,27 +174,28 @@ 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,
@@ -195,7 +206,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;
@@ -203,10 +214,10 @@ export default {
.catch((err) => {
console.log(err, 1111);
});
}else if(props.isLevel ==2){
} else if (props.isLevel == 2) {
apiTask
.addTask({
courseId:res.data.data.linkId,
courseId: res.data.data.linkId,
name: res.data.data.linkName,
projectId: props.projectId,
projectTaskId: props.projectTaskId || 0,
@@ -221,58 +232,62 @@ export default {
.catch((err) => {
console.log(err, 111111);
});
}else if(props.isLevel ==3){
} 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{
})
.catch((err) => console.log(err));
} else {
api
.createExternalChain(obj)
.then((res) => {
message.success("提交成功");
updateTask(res);
}).catch((err) => console.log(err));
})
.catch((err) => console.log(err));
}
};
// 查询任务
const queryRef = () => {
let d =props.EditRefId ;
let d = props.EditRefId;
api
.getLink({linkId:d}).then((res) => {
.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(`查询失败`)
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;

View File

@@ -8,7 +8,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"
@@ -16,11 +16,20 @@
/>
</div>
<div style="display: flex; flex-direction: row">
<button style="width:100px;"
<button
style="width: 100px"
@click="changeOuter(1)"
:class="[isOuter == 1? 'outer' : 'notOuter' ]">系统考试</button>
<button style="width:100px;" @click="changeOuter(2)"
:class="[isOuter == 2? 'outer' : 'notOuter' ]" >外部考试</button>
:class="[isOuter == 1 ? 'outer' : 'notOuter']"
>
系统考试
</button>
<button
style="width: 100px"
@click="changeOuter(2)"
:class="[isOuter == 2 ? 'outer' : 'notOuter']"
>
外部考试
</button>
</div>
<a-form
ref="formRef"
@@ -36,23 +45,32 @@
<div class="main_left">
<div class="main_item">
<div class="btnbox">
<a-form-item has-feedback label="作业名称" name="examinationName">
<a-form-item
has-feedback
label="作业名称"
name="examinationName"
>
<a-input
v-model:value="formState.examinationName"
style="width: 424px; height: 32px;margin-left: 35px;"
style="width: 424px; height: 32px; margin-left: 35px"
autocomplete="off"
placeholder="请输入考试名称"
maxlength="20"/>
maxlength="20"
/>
</a-form-item>
</div>
</div>
<div class="main_item2">
<a-form-item has-feedback label="考试说明" name="examinationExplain">
<a-form-item
has-feedback
label="考试说明"
name="examinationExplain"
>
<a-textarea
v-model:value="formState.examinationExplain"
placeholder="请输入考试说明"
allow-clear
style="margin-left: 35px;"
style="margin-left: 35px"
maxlength="150"
/>
</a-form-item>
@@ -68,37 +86,49 @@
allowClear
showSearch
/> -->
<a-dropdown >
<a-button type="primary" style="width: 100px;margin-left: 35px;" class="outer" @click.prevent>
<a-dropdown>
<a-button
type="primary"
style="width: 100px; margin-left: 35px"
class="outer"
@click.prevent
>
选择试卷
<DownOutlined />
</a-button>
<template #overlay>
<a-menu>
<a-menu-item v-for="item in formState.choosedTest" :key="item.key">
<a @click="chooseTest(item.key-1)">{{item.value}}</a>
<a-menu-item
v-for="item in formState.choosedTest"
:key="item.key"
>
<a @click="chooseTest(item.key - 1)">{{
item.value
}}</a>
</a-menu-item>
</a-menu>
</template>
</a-dropdown>
<span style="margin-left: 10px">
<a-tag class="tag-style"
v-for="item in choosedTestList" :closable="true"
<a-tag
class="tag-style"
v-for="item in choosedTestList"
:closable="true"
@close="closeTag(item.key)"
:key="item.key">{{item.value}}</a-tag>
:key="item.key"
>{{ item.value }}</a-tag
>
</span>
</a-form-item>
</div>
</div>
<div class="main_item">
<div class="btnbox">
<a-form-item has-feedback label="考试时间" name="choosedTime">
<a-range-picker
v-model:value="formState.choosedTime"
format="YYYY-MM-DD"
style="width: 424px;margin-left: 35px;"
style="width: 424px; margin-left: 35px"
:placeholder="[' 开始时间', ' 结束时间']"
/>
</a-form-item>
@@ -106,15 +136,16 @@
</div>
<div class="main_item">
<div class="btnbox">
<a-form-item has-feedback label="考试时长" name="examinationDuration">
<a-form-item
has-feedback
label="考试时长"
name="examinationDuration"
>
<a-input
v-model:value="formState.examinationDuration"
type="number"
style="width: 388px; height: 32px;
margin-left: 35px;"
style="width: 388px; height: 32px; margin-left: 35px"
/>
</a-form-item>
<span style="transform: translateY(-50%)">分钟</span>
</div>
@@ -122,60 +153,93 @@
<div class="main_item">
<div class="btnbox">
<span style="margin-right: 43px">考试限制</span>
<a-form-item has-feedback label="允许重复考试" name="examinationLimit">
<a-form-item
has-feedback
label="允许重复考试"
name="examinationLimit"
>
<a-input-number
:min="-1" :precision="0"
:min="-1"
:precision="0"
type="number"
v-model:value="formState.examinationLimit"
style="width: 88px; height: 32px;
border-radius: 8px;overflow: hidden;"
style="
width: 88px;
height: 32px;
border-radius: 8px;
overflow: hidden;
"
/>
<span style="margin-left: 8px"></span>
<span style="margin-left: 24px; color: #999999"
>-1表示无限制</span>
>-1表示无限制</span
>
</a-form-item>
</div>
</div>
<div class="main_item">
<div class="btnbox">
<a-form-item has-feedback label="显示答案" name="showAnswers">
<a-radio-group style="margin-left: 35px;margin-right: 12px;" v-model:value="formState.showAnswers">
<a-radio v-model:checked="checked" :value="1" @click="cloradio1">允许查看</a-radio>
<a-radio v-model:checked="checked" :value="2" @click="cloradio1"
<a-radio-group
style="margin-left: 35px; margin-right: 12px"
v-model:value="formState.showAnswers"
>
<a-radio
v-model:checked="checked"
:value="1"
@click="cloradio1"
>允许查看</a-radio
>
<a-radio
v-model:checked="checked"
:value="2"
@click="cloradio1"
>不允许查看</a-radio
>
</a-radio-group>
</a-form-item>
</div>
</div>
<div class="main_item">
<div class="btnbox">
<a-form-item has-feedback label="显示解析" name="showAnalysis">
<a-radio-group style="margin-left: 35px;margin-right: 12px;" v-model:value="formState.showAnalysis">
<a-radio v-model:checked="checked" :value="1" @click="cloradio2">允许查看</a-radio>
<a-radio v-model:checked="checked" :value="2" @click="cloradio2"
<a-radio-group
style="margin-left: 35px; margin-right: 12px"
v-model:value="formState.showAnalysis"
>
<a-radio
v-model:checked="checked"
:value="1"
@click="cloradio2"
>允许查看</a-radio
>
<a-radio
v-model:checked="checked"
:value="2"
@click="cloradio2"
>不允许查看</a-radio
>
</a-radio-group>
</a-form-item>
</div>
</div>
<div class="main_item">
<div class="btnbox">
<a-form-item has-feedback label="评分模式" name="scoringModel">
<a-radio-group style="margin-left: 35px;margin-right: 12px;" v-model:value="formState.scoringModel">
<a-radio v-model:checked="checked" :value="1" @click="cloradio3"
<a-radio-group
style="margin-left: 35px; margin-right: 12px"
v-model:value="formState.scoringModel"
>
<a-radio
v-model:checked="checked"
:value="1"
@click="cloradio3"
>最高一次</a-radio
>
<a-radio v-model:checked="checked" :value="2" @click="cloradio3"
<a-radio
v-model:checked="checked"
:value="2"
@click="cloradio3"
>最后一次</a-radio
>
</a-radio-group>
@@ -185,11 +249,10 @@
<div class="main_item">
<div class="btnbox">
<a-form-item has-feedback label="及格线" name="passLine">
<a-input
v-model:value="formState.passLine"
type="number"
style="width: 88px; height: 32px;margin-left: 35px;"
style="width: 88px; height: 32px; margin-left: 35px"
/>
</a-form-item>
@@ -198,40 +261,62 @@
</div>
<div class="main_item">
<div class="btnbox">
<a-form-item has-feedback label="作业要求" name="questionArrangement">
<a-form-item
has-feedback
label="作业要求"
name="questionArrangement"
>
<a-radio-group
style="margin-right:12px;"
v-model:value="formState.questionArrangement">
<a-radio v-model:checked="checked" :value="1" @click="cloradio4">试题乱序</a-radio>
<a-radio v-model:checked="checked" :value="2" @click="cloradio4">试题排序</a-radio>
<a-radio v-model:checked="checked" :value="3" @click="cloradio4">全部乱序</a-radio>
style="margin-right: 12px"
v-model:value="formState.questionArrangement"
>
<a-radio
v-model:checked="checked"
:value="1"
@click="cloradio4"
>试题乱序</a-radio
>
<a-radio
v-model:checked="checked"
:value="2"
@click="cloradio4"
>试题排序</a-radio
>
<a-radio
v-model:checked="checked"
:value="3"
@click="cloradio4"
>全部乱序</a-radio
>
</a-radio-group>
</a-form-item>
</div>
</div>
</div>
</div>
<div class="main_btns">
<a-button class="btn1" @click="closeDrawer">取消</a-button>
<a-button class="btn2" html-type="submit" >确定</a-button>
<a-button class="btn2" html-type="submit">确定</a-button>
</div>
</a-form>
</div>
<!-- 加载动画 -->
<div class="aeLoading" :style="{display:addLoading?'flex':'none'}">
<div class="aeLoading" :style="{ display: addLoading ? 'flex' : 'none' }">
<a-spin :spinning="addLoading" tip="添加中..." />
</div>
</a-drawer>
</template>
<script>
import { reactive, ref, toRefs } from "vue";
import {message} from"ant-design-vue";
import {createExamination,queryExaminationDetailById,updateExamination} from "@/api/indexExam"
import { ProjectEditTask, RouterEditTask } from "@/api/indexTask"
import { message } from "ant-design-vue";
import {
createExamination,
queryExaminationDetailById,
updateExamination,
} from "@/api/indexExam";
import { ProjectEditTask, RouterEditTask } from "@/api/indexTask";
import dayjs from 'dayjs';
import dayjs from "dayjs";
export default {
name: "AddTest",
@@ -242,7 +327,8 @@ export default {
type: Boolean,
default: false,
},
EditTestId: { // 要编辑的考试id
EditTestId: {
// 要编辑的考试id
type: Number,
default: -1,
},
@@ -266,181 +352,207 @@ export default {
type: Number,
default: null,
},
isLevel: { // 是否是关卡页面触发
isLevel: {
// 是否是关卡页面触发
type: Number,
default: null,
},
projectTaskId: { // 要编辑的projectId
projectTaskId: {
// 要编辑的projectId
type: Number,
default: null,
},
edit: { //
edit: {
//
type: Boolean,
default: null,
},
},
setup(props, ctx) {
const formState = reactive({
examinationName:'',
examinationDuration:"",
examinationLimit:"",
passLine:60,
examinationEndTime:"",
examinationExplain:"",
questionArrangement:1,
scoringModel:2,
showAnalysis:2,
showAnswers:2,
choosedTime:'',
choosedTest:[
examinationName: "",
examinationDuration: "",
examinationLimit: "",
passLine: 60,
examinationEndTime: "",
examinationExplain: "",
questionArrangement: 1,
scoringModel: 2,
showAnalysis: 2,
showAnswers: 2,
choosedTime: "",
choosedTest: [
{
key:1,
value:'提高核心竞争力'
key: 1,
value: "提高核心竞争力",
},
{
key:2,
value:'增强创新意识感'
key: 2,
value: "增强创新意识感",
},
{
key:3,
value:'巩固基础求发展'
key: 3,
value: "巩固基础求发展",
},
],
});
const state = reactive({
addLoading: false,
isOuter:1, // 是否为外部考试
choosedTestList:[{
value:'提高核心竞争力',
key:1,
}],
})
isOuter: 1, // 是否为外部考试
choosedTestList: [
{
value: "提高核心竞争力",
key: 1,
},
],
});
const formRef = ref();
let checkExaminationName = async (_rule, value) => {
if (!value) {
return Promise.reject('请输入考试名称');
return Promise.reject("请输入考试名称");
}
};
let checkExaminationExplain = async (_rule, value) => {
if (!value) {
return Promise.reject('请输入考试说明');
return Promise.reject("请输入考试说明");
}
};
let checkChoosedTest = async (_rule, value) => {
if (!value) {
return Promise.reject('请选择考试');
return Promise.reject("请选择考试");
}
};
let checkChoosedTime = async (_rule, value) => {
if (!value.length) {
return Promise.reject('请选择时间');
return Promise.reject("请选择时间");
}
};
let checkExaminationDuration = async (_rule, value) => {
if (!value) {
return Promise.reject('请输入考试时长');
return Promise.reject("请输入考试时长");
}
};
let checkLimit = async (_rule, value) => {
if (!value) {
return Promise.reject('请输入考试限制');
return Promise.reject("请输入考试限制");
}
};
let checkShowAnswers = async (_rule, value) => {
if (!value) {
return Promise.reject('请输入作业名称');
return Promise.reject("请输入作业名称");
}
};
let checkShowAnalysis = async (_rule, value) => {
if (!value) {
return Promise.reject('请输入作业名称');
return Promise.reject("请输入作业名称");
}
};
let checkScoringModel = async (_rule, value) => {
if (!value) {
return Promise.reject('请输入作业名称');
return Promise.reject("请输入作业名称");
}
};
let checkPassLine = async (_rule, value) => {
if (!value) {
return Promise.reject('请输入及格线');
return Promise.reject("请输入及格线");
}
};
let checkQuestionArrangement = async (_rule, value) => {
if (!value) {
return Promise.reject('请输入作业名称');
return Promise.reject("请输入作业名称");
}
};
const rules = {
examinationName: [{
examinationName: [
{
required: true,
validator: checkExaminationName,
trigger: 'change',
}],
examinationExplain: [{
trigger: "change",
},
],
examinationExplain: [
{
validator: checkExaminationExplain,
trigger: 'change',
}],
choosedTest: [{
trigger: "change",
},
],
choosedTest: [
{
required: true,
validator: checkChoosedTest,
trigger: 'change',
}],
choosedTime: [{
trigger: "change",
},
],
choosedTime: [
{
required: true,
validator: checkChoosedTime,
trigger: 'change',
}],
examinationDuration: [{
trigger: "change",
},
],
examinationDuration: [
{
required: true,
validator: checkExaminationDuration,
trigger: 'change',
}],
limit: [{
trigger: "change",
},
],
limit: [
{
required: true,
validator: checkLimit,
trigger: 'change',
}],
showAnswers: [{
trigger: "change",
},
],
showAnswers: [
{
validator: checkShowAnswers,
trigger: 'change',
}],
showAnalysis: [{
trigger: "change",
},
],
showAnalysis: [
{
validator: checkShowAnalysis,
trigger: 'change',
}],
scoringModel: [{
trigger: "change",
},
],
scoringModel: [
{
validator: checkScoringModel,
trigger: 'change',
}],
passLine: [{
trigger: "change",
},
],
passLine: [
{
required: true,
validator: checkPassLine,
trigger: 'change',
}],
questionArrangement: [{
trigger: "change",
},
],
questionArrangement: [
{
validator: checkQuestionArrangement,
trigger: 'change',
}],
trigger: "change",
},
],
};
const options1 = ref([
{
label:'math',
value:'math',
label: "math",
value: "math",
},
{
label:'eng',
value:'eng',
label: "eng",
value: "eng",
},
])
const handleFinish = values => {
]);
const handleFinish = (values) => {
console.log(values);
updateTest();
};
const handleFinishFailed = errors => {
const handleFinishFailed = (errors) => {
console.log(errors);
// message.error("handleFinishFailed");
};
@@ -454,154 +566,186 @@ export default {
};
const closeDrawer = () => {
resetForm();
formState.choosedTime = '';
formState.choosedTime = "";
ctx.emit("update:addtestVisible", 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(props.edit);
if (props.addtestVisible && props.edit) { // 该页面显示同时 edit为true 时,发送查询请求,
queryTest()
if (props.addtestVisible && props.edit) {
// 该页面显示同时 edit为true 时,发送查询请求,
queryTest();
}
console.log("formState", bool);
};
const queryTest = () => {
state.addLoading = true;
console.log(props.EditTestId);
queryExaminationDetailById({examinationId:props.EditTestId}).then((res) => {
queryExaminationDetailById({ examinationId: props.EditTestId })
.then((res) => {
formState.examinationName = res.data.data.examinationName;
formState.workRequirement = res.data.data.workRequirement;
formState.examinationDuration = res.data.data.examinationDuration;
formState.examinationLimit = Number(res.data.data.examinationLimit) || -1;
formState.examinationLimit =
Number(res.data.data.examinationLimit) || -1;
formState.passLine = res.data.data.passLine;
formState.examinationExplain = res.data.data.examinationExplain;
formState.questionArrangement = Number(res.data.data.questionArrangement) || 1;
formState.questionArrangement =
Number(res.data.data.questionArrangement) || 1;
formState.scoringModel = Number(res.data.data.scoringModel) || 1;
formState.showAnalysis = Number(res.data.data.showAnalysis) || 1;
formState.showAnswers = Number(res.data.data.showAnswers )|| 1;
if(res.data.data.examinationEndTime && res.data.data.examinationStartTime){
formState.choosedTime= [dayjs(res.data.data.examinationStartTime,"YYYY-MM-DD"),dayjs(res.data.data.examinationEndTime,"YYYY-MM-DD")]
formState.showAnswers = Number(res.data.data.showAnswers) || 1;
if (
res.data.data.examinationEndTime &&
res.data.data.examinationStartTime
) {
formState.choosedTime = [
dayjs(res.data.data.examinationStartTime, "YYYY-MM-DD"),
dayjs(res.data.data.examinationEndTime, "YYYY-MM-DD"),
];
state.addLoading = false;
} else { formState.choosedTime=[] }
console.log(res);
}).catch(() => {
message.error(`查询失败`)
})
} else {
formState.choosedTime = [];
}
console.log(res);
})
.catch(() => {
message.error(`查询失败`);
});
};
const updateTest = () => {
state.addLoading = true;
let obj = {
"examinationDuration": formState.examinationDuration,
"examinationEndTime": dayjs(formState.choosedTime[1]).format("YYYY-MM-DD"),
"examinationExplain": formState.examinationExplain,
"examinationId": props.edit?props.EditTestId : 0,
"examinationLimit": formState.examinationLimit,
"examinationName": formState.examinationName,
"examinationPaperId": 0,
"examinationPaperName": formState.choosedTest,
"examinationStartTime": dayjs(formState.choosedTime[0]).format("YYYY-MM-DD"),
"passLine": formState.passLine,
"questionArrangement": formState.questionArrangement,
"scoringModel": formState.scoringModel,
"showAnalysis": formState.showAnalysis,
"showAnswers": formState.showAnswers,
}
if(props.edit) { // 编辑任务
examinationDuration: formState.examinationDuration,
examinationEndTime: dayjs(formState.choosedTime[1]).format(
"YYYY-MM-DD"
),
examinationExplain: formState.examinationExplain,
examinationId: props.edit ? props.EditTestId : 0,
examinationLimit: formState.examinationLimit,
examinationName: formState.examinationName,
examinationPaperId: 0,
examinationPaperName: formState.choosedTest,
examinationStartTime: dayjs(formState.choosedTime[0]).format(
"YYYY-MM-DD"
),
passLine: formState.passLine,
questionArrangement: formState.questionArrangement,
scoringModel: formState.scoringModel,
showAnalysis: formState.showAnalysis,
showAnswers: formState.showAnswers,
};
if (props.edit) {
// 编辑任务
updateExamination(obj)
.then((res)=>{
.then((res) => {
updateTask(res);
closeDrawer();
}).catch(()=>{
message.error(`编辑失败`)
})
.catch(() => {
message.error(`编辑失败`);
});
}else { // 创建任务
} else {
// 创建任务
createExamination(obj)
.then((res)=>{
.then((res) => {
updateTask(res);
closeDrawer();
}).catch(()=>{
message.error(`编辑失败`)
})
.catch(() => {
message.error(`编辑失败`);
});
}
}
};
const updateTask = (res) => {
if(props.isLevel == 1){
if (props.isLevel == 1) {
let editObj1 = {
"chapterId": props.isactive,
"courseId": res.data.data.examinationId,
"name": res.data.data.examinationName,
"routerId": props.routerId,
"routerTaskId": props.routerTaskId || 0,
"type": 5
}
RouterEditTask(editObj1).then(res => {
chapterId: props.isactive,
courseId: res.data.data.examinationId,
name: res.data.data.examinationName,
routerId: props.routerId,
routerTaskId: props.routerTaskId || 0,
type: 5,
};
RouterEditTask(editObj1)
.then((res) => {
console.log(` 编辑关卡成功的打印 ${res}`);
message.success(`${props.edit ? '编辑' : '新增'}关卡任务成功`)
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
ctx.emit("changeData", false);
state.addLoading = false;
closeDrawer();
}).catch(err => {
message.error(`${props.edit ? '编辑' : '新增'}关卡任务失败`)
})
.catch((err) => {
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
console.log(` 编辑关卡失败的打印 ${err}`);
});
}else if(props.isLevel ==2){
} else if (props.isLevel == 2) {
let editObj = {
"courseId": res.data.data.examinationId,
"duration": 0,
"name": res.data.data.examinationName,
"projectId": props.projectId,
"projectTaskId": props.projectTaskId || 0,
"stageId": props.chooseStageId,
"type": 5
}
courseId: res.data.data.examinationId,
duration: 0,
name: res.data.data.examinationName,
projectId: props.projectId,
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId,
type: 5,
};
// 新增编辑或新增项目
ProjectEditTask(editObj).then(() => {
message.success(`${props.EditTestId? '编辑' : '新增'}阶段任务成功`)
ProjectEditTask(editObj)
.then(() => {
message.success(
`${props.EditTestId ? "编辑" : "新增"}阶段任务成功`
);
ctx.emit("changeData", false);
}).catch(() => {
message.error(`${props.EditTestId? '编辑' : '新增'}阶段任务失败`)
})
.catch(() => {
message.error(`${props.EditTestId ? "编辑" : "新增"}阶段任务失败`);
});
}else if(props.isLevel ==3){
} else if (props.isLevel == 3) {
console.log("");
}
}
};
const cloradio1 = (value) => {
if (value != "") {
formState.showAnswers = "";
}
}
};
const cloradio2 = (value) => {
if (value != "") {
formState.showAnalysis = "";
}
}
};
const cloradio3 = (value) => {
if (value != "") {
formState.scoringModel = "";
}
}
};
const cloradio4 = (value) => {
if (value != "") {
formState.questionArrangement = "";
}
}
};
const changeOuter = (value) => {
console.log(value)
state.isOuter = value
}
console.log(value);
state.isOuter = value;
};
const chooseTest = (index) => {
for(let i in state.choosedTestList ) {
if(state.choosedTestList[i].key == formState.choosedTest[index].key) return;
}
state.choosedTestList.push(formState.choosedTest[index])
for (let i in state.choosedTestList) {
if (state.choosedTestList[i].key == formState.choosedTest[index].key)
return;
}
state.choosedTestList.push(formState.choosedTest[index]);
};
const closeTag = (removedTag) => {
const tags = state.choosedTestList.filter(item => item.key != removedTag);
const tags = state.choosedTestList.filter(
(item) => item.key != removedTag
);
state.choosedTestList = tags;
}
};
return {
formState,
afterVisibleChange,
@@ -623,7 +767,7 @@ export default {
changeOuter,
chooseTest,
closeTag,
...toRefs(state)
...toRefs(state),
};
},
};
@@ -636,21 +780,21 @@ export default {
background-color: #4ea6ff;
color: #fff;
border-radius: 5px;
border:1px solid #a09292;
border: 1px solid #a09292;
height: 36px;
margin-right: 10px;
}
.notOuter {
color: #000;
border-radius: 5px;
border:1px solid #a09292;
background:#fff;
border: 1px solid #a09292;
background: #fff;
margin-right: 10px;
padding:3px;
padding: 3px;
}
.tag-style {
color:rgb(113, 113, 237);
background-color:#d7d1f7;
color: rgb(113, 113, 237);
background-color: #d7d1f7;
}
.addtestDrawer {
.drawerMain {

View File

@@ -159,10 +159,13 @@ export default {
},
setup(props, ctx) {
const state = reactive({
voteDrawerShow:false,
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) => {
@@ -175,10 +178,8 @@ export default {
const showVoteDrawer = () => {
state.voteDrawerShow = true;
}
const afterVoteVisibleChange = () => {
};
const afterVoteVisibleChange = () => {};
return {
...toRefs(state),
afterVisibleChange,
@@ -186,7 +187,7 @@ export default {
closeDrawer,
// change,
showVoteDrawer,
afterVoteVisibleChange
afterVoteVisibleChange,
};
},
};

View File

@@ -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,25 +191,28 @@ export default {
textV1: "",
crevotevisible: false,
time: undefined,
startTime:"",
endTime:"",
startTime: "",
endTime: "",
basevote: "",
ascriptionId: "",
voteStemId: null,
voteId:"",
voteStemName:"",
voteId: "",
voteStemName: "",
ballotName: "",
editStem: false, //编辑状态
ballotId: 0, //题干id
optionId: "", //删除修改选项id
});
const closeDrawer = () => {
state.inputV1 = "",
state.textV1 = "",
state.time = undefined,
state.basevote = "",
(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);
@@ -221,8 +223,8 @@ export default {
};
const getStemId = (data) => {
state.ballotName = data.ballotName;
state.ballotId =data.ballotId;
}
state.ballotId = data.ballotId;
};
const delBox = () => {
state.creVote = false;
@@ -231,18 +233,17 @@ 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);
console.log("修改投票信息成功", res);
})
.catch((err) => {
console.log('修改投票信息失败', err);
})
}else{
console.log("修改投票信息失败", err);
});
} else {
api
.createVote(obj)
.then((res) => {
updateToTask(res);
closeDrawer();
console.log('创建投票信息成功', res);
console.log("创建投票信息成功", res);
})
.catch((err) => {
console.log('创建投票信息失败', err);
})
}
console.log("创建投票信息失败", err);
});
}
};
return {
...toRefs(state),
showDrawerCreVote,
@@ -363,7 +362,6 @@ export default {
dleVoteStem,
updateVoteInfo,
delBox,
};
},
};