feat:移动任务 选择面授

This commit is contained in:
宋文超
2022-11-16 09:43:21 +08:00
parent f21d7994dd
commit aa5ed4e7b6
7 changed files with 712 additions and 487 deletions

View File

@@ -23,3 +23,6 @@ export const updateLiveBroadcastMessage = (obj) => http.post('/liveBroadcast/upd
'token': '123'
}
})
//获取全部评估信息接口
export const queryAssessmentDetailList = (obj) => http.post('/assessment/queryAssessmentDetailList', obj)

View File

@@ -18,3 +18,15 @@ export const editProj = (obj) => http.post('/admin/project/edit', obj)
//路径图里的新建或编辑关卡任务
export const editTask = (obj) => http.post('/admin/router/editTask', obj)
//项目里获取项目积分规则
export const scoreRule = (obj) => http.get('/admin/project/scoreRule', { params: obj })
//项目里设置项目积分规则
export const setScoreRule = (obj) => http.post('/admin/project/setScoreRule', obj)
//面授课开课列表
export const planList = (obj) => http.post('/admin/offcourse/planList', obj)
//获取面授课列表
export const list = (obj) => http.post('/admin/offcourse/list', obj)

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"
@@ -56,7 +56,9 @@
<span style="margin-right: 3px">讨论设置</span>
</div>
<div class="btnbox">
<a-checkbox v-model:checked="checkedC1" @change = "checkRadio">允许评论</a-checkbox>
<a-checkbox v-model:checked="checkedC1" @change="checkRadio"
>允许评论</a-checkbox
>
</div>
</div>
</div>
@@ -66,14 +68,13 @@
<button class="btn2" @click="updateDiscussInfo">确定</button>
</div>
</div>
</a-drawer>
</template>
<script>
import { reactive, toRefs, ref } from "vue";
import * as api from "../../api/indexDiscuss";
import * as apiTask from "../../api/indexTaskadd";
import { RouterEditTask } from "@/api/indexTask"
import { RouterEditTask } from "@/api/indexTask";
import { message } from "ant-design-vue";
const rowSelection = ref({
checkStrictly: false,
@@ -104,7 +105,8 @@ export default {
type: Number,
default: null,
},
edit: { // 是否为编辑
edit: {
// 是否为编辑
type: Boolean,
default: null,
},
@@ -120,15 +122,18 @@ export default {
type: Number,
default: 0,
},
isLevel: { // 是否是关卡页面触发
isLevel: {
// 是否是关卡页面触发
type: Boolean,
default: null,
},
EditWorkId: { // 要编辑的workId
EditWorkId: {
// 要编辑的workId
type: Number,
default: null,
},
projectTaskId: { // 要编辑的projectId
projectTaskId: {
// 要编辑的projectId
type: Number,
default: null,
},
@@ -139,7 +144,7 @@ export default {
isactive: {
type: Number,
default: null,
}
},
},
setup(props, ctx) {
console.log("学习路径", props.isStudiscuss);
@@ -153,34 +158,47 @@ export default {
});
const checkRadio = () => {
if (state.checkedC1) {
state.discussSettings = "true"
state.discussSettings = "true";
} else {
state.discussSettings = "false";
}
console.log("state.checkedC1=====",state.discussSettings,state.discussSettings=="true");
}
console.log(
"state.checkedC1=====",
state.discussSettings,
state.discussSettings == "true"
);
};
const closeDrawer = () => {
ctx.emit("update:adddiscussVisible", false);
ctx.emit("update:edit", false);
state.inputV1 = "";
state.textV1 = "";
message.success(`${props.edit ? '编辑' : '新增'}关卡任务成功`)
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
localStorage.setItem("stageId", props.chooseStageId);
};
const queryDiscuss = () => {
if (props.edit) {
//编辑讨
api.getDiscussDetail({discussId:props.EditDiscussId}).then(res => {
console.log('获取讨论信息成功',res.data.data)
api
.getDiscussDetail({ discussId: props.EditDiscussId })
.then((res) => {
console.log("获取讨论信息成功", res.data.data);
//更新讨论信息
state.inputV1 = res.data.data.discussName;
state.textV1 = res.data.data.discussExplain;
state.checkedC1 = res.data.data.discussSettings=="true"?true:false;
console.log("props.EditDiscussId",res.data.data.discussSettings,"===",res.data.data.discussSettings=="true",state.checkedC1)
}).catch(err=>{
console.log('获取讨论信息失败',err)
state.checkedC1 =
res.data.data.discussSettings == "true" ? true : false;
console.log(
"props.EditDiscussId",
res.data.data.discussSettings,
"===",
res.data.data.discussSettings == "true",
state.checkedC1
);
})
.catch((err) => {
console.log("获取讨论信息失败", err);
});
}
};
const afterVisibleChange = (bool) => {
@@ -198,9 +216,13 @@ export default {
routerId: props.routerId,
routerTaskId: props.routerTaskId || 0,
type: 8,
}).then(res => {
})
.then((res) => {
console.log("新增关卡任务失败", res);
}).catch(err => {console.log("新增关卡任务失败",err);})
})
.catch((err) => {
console.log("新增关卡任务失败", err);
});
} else {
apiTask
.addTask({
@@ -210,13 +232,15 @@ export default {
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId,
type: 8,
}).then(r=>{
console.log("新增关卡任务成功",r);
}).catch(r=>{
console.log('更新阶段任务失败',r)
})
.then((r) => {
console.log("新增关卡任务成功", r);
})
.catch((r) => {
console.log("更新阶段任务失败", r);
});
}
}
};
const updateDiscussInfo = () => {
if (!state.inputV1) {
message.destroy();
@@ -238,11 +262,11 @@ export default {
closeDrawer();
ctx.emit("changeData", false);
console.log("更新成功", res);
console.log("项目任务ID",props.projectTaskId)
console.log("项目任务ID", props.projectTaskId);
})
.catch((err) => {
console.log("更新失败",err)
})
console.log("更新失败", err);
});
} else {
api
.createDiscuss(obj)
@@ -251,11 +275,11 @@ export default {
closeDrawer();
ctx.emit("changeData", false);
console.log("创建成功", res);
console.log("项目任务ID",props.projectTaskId)
console.log("项目任务ID", props.projectTaskId);
})
.catch((err) => {
console.log("创建失败",err)
})
console.log("创建失败", err);
});
}
};
return {
@@ -392,6 +416,5 @@ export default {
}
}
}
}
</style>

View File

@@ -10,7 +10,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"
@@ -84,7 +84,12 @@
:min="0"
:max="300"
:precision="0"
style=" width: 364px; height: 32px; border-radius: 8px;overflow: hidden; "
style="
width: 364px;
height: 32px;
border-radius: 8px;
overflow: hidden;
"
v-model:value="inputV2"
></a-input-number>
@@ -102,7 +107,6 @@
<span style="margin-right: 3px">授课老师</span>
</div>
<div class="btnbox">
<a-select
v-model:value="value"
show-search
@@ -114,7 +118,6 @@
@blur="handleBlur"
@change="handleChange2"
></a-select>
</div>
</div>
<div class="main_item2">
@@ -122,9 +125,6 @@
<span style="margin-right: 3px">直播封面</span>
</div>
<div class="textarea" style="overflow: hidden">
<a-upload
v-model:file-list="fileList"
name="avatar"
@@ -135,7 +135,12 @@
:before-upload="beforeUpload"
@change="handleChange"
>
<img v-if="imageUrl" :src="imageUrl" alt="avatar" style=width100pxheight:100px;/>
<img
v-if="imageUrl"
:src="imageUrl"
alt="avatar"
style="“width100pxheight:100px;”"
/>
<div v-else>
<loading-outlined v-if="loading"></loading-outlined>
<plus-outlined v-else></plus-outlined>
@@ -185,22 +190,25 @@
<span style="margin-right: 3px">评价</span>
</div>
<div class="btnbox">
<a-checkbox v-model:checked="checkedC1" @change = "checkRadio">需要评估</a-checkbox>
<a-checkbox v-model:checked="checkedC1" @change="checkRadio"
>需要评估</a-checkbox
>
</div>
</div>
<div class="main_item" style="margin-top: -25px," :style="{ display: checkedC1 ? 'block' : 'none' }">
<div
class="main_item"
style="margin-top: -25px"
:style="{ display: checkedC1 ? 'block' : 'none' }"
>
<div class="signbox"></div>
<div class="btnbox">
<a-select
v-model:value="value"
v-model:value="assessmentvalue"
show-search
placeholder="选择评估"
style="width: 364px"
:options="options"
:filter-option="filterOption"
@focus="handleFocus"
@blur="handleBlur"
@change="handleChange2"
:options="assessment"
@change="handleChangeAssessment"
></a-select>
</div>
</div>
@@ -219,7 +227,12 @@
:min="0"
:max="30"
:precision="0"
style="width: 88px; height: 32px; border-radius: 8px;overflow: hidden; "
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>
@@ -230,7 +243,12 @@
:min="0"
:max="30"
:precision="0"
style="width: 88px;height: 32px;border-radius: 8px; overflow: hidden;"
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>
@@ -246,7 +264,12 @@
:min="0"
:max="30"
:precision="0"
style=" width: 88px;height: 32px;border-radius: 8px; overflow: hidden; "
style="
width: 88px;
height: 32px;
border-radius: 8px;
overflow: hidden;
"
v-model:value="inputV8"
></a-input-number>
<span style="color: #999999; margin-left: 8px"
@@ -274,7 +297,9 @@
<span style="margin-right: 3px">其他设置</span>
</div>
<div class="btnbox">
<a-checkbox v-model:checked="checkedC2" @onclick = "checkedC2 = !checkedC2"
<a-checkbox
v-model:checked="checkedC2"
@onclick="checkedC2 = !checkedC2"
>学员请假后记为任务完成</a-checkbox
>
</div>
@@ -295,7 +320,7 @@ import * as api from "../../api/indexLiveBroadcast";
import * as apiTask from "../../api/indexTaskadd";
import { toDate } from "@/api/method";
import { RouterEditTask } from "@/api/indexTask";
import dayjs from 'dayjs';
import dayjs from "dayjs";
// import { useRouter } from "vue-router";
function getBase64(img, callback) {
const reader = new FileReader();
@@ -309,7 +334,6 @@ const options1 = ref([
},
]);
const rowSelection = ref({
checkStrictly: false,
onChange: (selectedRowKeys, selectedRows) => {
@@ -338,7 +362,8 @@ export default {
type: Number,
default: null,
},
edit: { // 是否为编辑
edit: {
// 是否为编辑
type: Boolean,
default: null,
},
@@ -354,11 +379,13 @@ export default {
type: Number,
default: 0,
},
isLevel: { // 是否是关卡页面触发
isLevel: {
// 是否是关卡页面触发
type: Boolean,
default: null,
},
projectTaskId: { // 要编辑的projectId
projectTaskId: {
// 要编辑的projectId
type: Number,
default: null,
},
@@ -369,8 +396,7 @@ export default {
isactive: {
type: Number,
default: null,
}
},
},
setup(props, ctx) {
// const router = useRouter();
@@ -396,8 +422,10 @@ export default {
checkedC1: false,
checkedC2: false,
playback: false,
assessmentId:"0",
assessmentId: null,
obj: {}, //要传的obj数据
assessment: [], //评估信息
assessmentvalue: null,
});
const closeDrawer = () => {
ctx.emit("update:addliveVisible", false);
@@ -422,17 +450,39 @@ export default {
console.log("props.edit===================", props.edit, bool);
if (props.edit) {
queryLive();
}
api
.queryAssessmentDetailList({
assessmentName: "",
pageNo: 1,
pageSize: 200,
releaseStatus: "",
searchEndTime: "",
searchStartTime: "",
})
.then((res) => {
console.log(res.data.data.rows, "获取全部评估信息");
res.data.data.rows.forEach((item) => {
let obj = item;
obj.value = item.assessmentId;
obj.label = item.assessmentName;
state.assessment.push(obj);
});
console.log("eeee", state.assessment);
});
};
const queryLive = () => {
let d = props.EditLiveId;
console.log("直播查询=======", d);
api
.getLiveBroadcastInfor({liveId:d}).then((res) => {
.getLiveBroadcastInfor({ liveId: d })
.then((res) => {
// console.log(dayjs(res.data.data.submitStartTime).format("YYYY-MM-DD"));
state.inputV1 = res.data.data.liveName;
state.time = [dayjs(res.data.data.liveStartTime, "YYYY-MM-DD"), dayjs(res.data.data.liveEndTime, "YYYY-MM-DD")]
state.time = [
dayjs(res.data.data.liveStartTime, "YYYY-MM-DD"),
dayjs(res.data.data.liveEndTime, "YYYY-MM-DD"),
];
state.inputV2 = res.data.data.liveDuration;
state.inputV3 = res.data.data.liveTeacherId;
//state.fileList= res.data.data
@@ -442,14 +492,14 @@ export default {
state.inputV7 = res.data.data.afterSignIn;
state.inputV8 = res.data.data.signOutTime;
state.textV1 = res.data.data.liveExplain;
state.radioV1= res.data.data.standardSettings
state.radioV1 = res.data.data.standardSettings;
//state.= res.data.data
state.assessmentId = res.data.data.assessmentId;
console.log("查询成功=====inputv1", state.inputV1);
}).catch(() => {
message.error(`查询失败`)
})
.catch(() => {
message.error(`查询失败`);
});
};
const cloradio1 = (value) => {
@@ -509,7 +559,7 @@ export default {
})
.then((res) => {
console.log(res, 11111);
message.success(`${props.edit ? '编辑' : '新增'}关卡任务成功`)
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
ctx.emit("changeData", false);
})
.catch((err) => {
@@ -528,16 +578,14 @@ export default {
})
.then((res) => {
console.log("调用项目添加接口后", res.data);
message.success(`${props.edit ? '编辑' : '新增'}关卡任务成功`)
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
ctx.emit("changeData", false);
})
.catch((err) => {
console.log(err);
});
}
}
};
//创建直播
const updateLiveBroadcast = () => {
if (!state.inputV1) {
@@ -567,11 +615,10 @@ export default {
"Y-M-D"
);
state.obj = {
afterSignIn: state.inputV6,
beforeSignIn: state.inputV7,
assessmentId: 0,
assessmentId: state.assessmentId == null ? 0 : state.assessmentId,
// liveCover: state.fileList,//直播封面
liveDuration: state.inputV2,
liveEndTime: endTime,
@@ -587,7 +634,6 @@ export default {
otherSettings: 0, //1或0
signOutTime: state.inputV8,
standardSettings: state.radioV1, //1或2
};
console.log("zhibo-==========", props.EditLiveId);
if (props.edit) {
@@ -616,39 +662,37 @@ export default {
console.log(err, 2222);
});
}
};
const options = ref([{
value: 'jack',
label: 'Jack',
}, {
value: 'lucy',
label: 'Lucy',
}, {
value: 'tom',
label: 'Tom',
}]);
const handleChange2 = value => {
const options = ref([]);
const handleChange2 = (value) => {
console.log(`selected ${value}`);
};
const handleBlur = () => {
console.log('blur');
console.log("blur");
};
const handleFocus = () => {
console.log('focus');
console.log("focus");
};
const checkRadio = () => {
if (state.checkedC1) {
state.discussSettings = "true"
state.discussSettings = "true";
} else {
state.discussSettings = "false";
}
console.log("state.checkedC1=====",state.discussSettings,state.discussSettings=="true");
}
console.log(
"state.checkedC1=====",
state.discussSettings,
state.discussSettings == "true"
);
};
const filterOption = (input, option) => {
return option.value.toLowerCase().indexOf(input.toLowerCase()) >= 0;
};
const handleChangeAssessment = (value, option) => {
console.log("选择了", value, option);
state.assessmentId = option.assessmentId;
};
return {
...toRefs(state),
afterVisibleChange,
@@ -666,6 +710,7 @@ export default {
handleChange2,
options,
checkRadio,
handleChangeAssessment,
};
},
};

View File

@@ -141,13 +141,13 @@
<div class="groupright">
<div class="spandiv"><span class="spantext">规则</span></div>
<div v-if="edit" class="btns">
<div class="btn1" @click="edit = !edit">
<div class="btn1" @click="edit = false">
<img src="../../assets/images/projectadd/edit1.png" />
<span class="btn1text">编辑</span>
</div>
</div>
<div v-else class="btns">
<div class="btn1" @click="edit = !edit">
<div class="btn1" @click="editRule">
<span class="btn1text">保存</span>
</div>
</div>
@@ -164,37 +164,26 @@
><span class="scoretext">{{ score1 }} </span><span>积分</span>
</div>
<div class="content">
<span>完成在线课程获得 </span
><span class="scoretext">{{ done }}</span
><span style="margin-right:50px">积分</span>
<span>完成面授课程获得 </span
><span class="scoretext">{{ done1 }}</span
><span style="margin-right:50px">积分</span>
<span>完成作业成绩不低于 </span
><span class="scoretext">{{ done2 }}</span
><span>分获得</span>
<span class="scoretext">{{ done3 }}</span
><span>分获得</span> <span class="scoretext">{{ done3 }}</span
><span>积分</span>
</div>
<div class="content">
<span></span
><span class="scoretext">{{ four1}}</span
<span></span><span class="scoretext">{{ four1 }}</span
><span>名学完在线课程获得</span>
<span class="scoretext">{{ four2 }}</span
><span style="margin-right:50px">积分</span>
<span></span
><span style="margin-right: 50px">积分</span> <span></span
><span class="scoretext">{{ four3 }}</span
><span>名提交作业且成绩不低于</span>
<span class="scoretext">{{ four4 }}</span
><span >分获得</span>
<span class="scoretext">{{ four5}}</span
><span>分获得</span> <span class="scoretext">{{ four5 }}</span
><span>积分</span>
</div>
<div class="content">
<span>考试成绩高于</span
><span class="scoretext">{{ five1 }}</span
><span>分获得</span>
<span class="scoretext">{{ five2 }}</span
><span>分获得</span> <span class="scoretext">{{ five2 }}</span
><span>积分</span>
</div>
<div class="content">
@@ -228,82 +217,60 @@
><span>积分</span>
</div>
<div class="content">
<span>完成在线课程获得 </span
><span
><a-input v-model:value="done" :bordered="false" /></span
><span style="margin-right:50px">积分</span>
<span>完成面授课程获得 </span
><a-input
v-model:value="done1"
:bordered="false"
/>
<span style="margin-right:50px">积分</span>
<span>完成作业成绩不低于 </span
><a-input
v-model:value="done2"
:bordered="false"
/><span>分获得</span>
<a-input
v-model:value="done3"
:bordered="false"
/><span>积分</span>
><a-input v-model:value="done2" :bordered="false" /><span
>分获得</span
>
<a-input v-model:value="done3" :bordered="false" /><span
>积分</span
>
</div>
<div class="content">
<span></span
><a-input
v-model:value="four1"
:bordered="false"
/><span>名学完在线课程获得</span>
<a-input
v-model:value="four2"
:bordered="false"
/><span style="margin-right:50px">积分</span>
><a-input v-model:value="four1" :bordered="false" /><span
>名学完在线课程获得</span
>
<a-input v-model:value="four2" :bordered="false" /><span
style="margin-right: 50px"
>积分</span
>
<span></span
><a-input
v-model:value="four3"
:bordered="false"
/><span>名提交作业且成绩不低于</span>
<a-input
v-model:value="four4"
:bordered="false"
/><span >分获得</span>
<a-input
v-model:value="four5"
:bordered="false"
/><span>积分</span>
><a-input v-model:value="four3" :bordered="false" /><span
>名提交作业且成绩不低于</span
>
<a-input v-model:value="four4" :bordered="false" /><span
>分获得</span
>
<a-input v-model:value="four5" :bordered="false" /><span
>积分</span
>
</div>
<div class="content">
<span>考试成绩高于</span
><a-input
v-model:value="five1"
:bordered="false"
/><span>分获得</span>
<a-input
v-model:value="five2"
:bordered="false"
/><span>积分</span>
><a-input v-model:value="five1" :bordered="false" /><span
>分获得</span
>
<a-input v-model:value="five2" :bordered="false" /><span
>积分</span
>
</div>
<div class="content">
<span>考勤正常学员获得 </span
><a-input
v-model:value="six1"
:bordered="false"
/><span>积分</span>
><a-input v-model:value="six1" :bordered="false" /><span
>积分</span
>
</div>
<div class="content">
<span>成为小组长获得</span
><a-input
v-model:value="seven1"
:bordered="false"
/><span style="margin-right:50px">积分</span>
><a-input v-model:value="seven1" :bordered="false" /><span
style="margin-right: 50px"
>积分</span
>
<span>优秀学员可获得</span>
<a-input
v-model:value="seven2"
:bordered="false"
/><span>积分</span>
<a-input v-model:value="seven2" :bordered="false" /><span
>积分</span
>
</div>
</div>
</div>
</div></a-tab-pane
@@ -315,8 +282,11 @@
<script>
import StuScoreDetail from "../../components/drawers/StuScoreDetail";
import { reactive, toRefs } from "vue";
import { reactive, toRefs, computed } from "vue";
import * as api from "../../api/index1";
// import { message } from "ant-design-vue";
// import { scoreRule } from "../../api/indexTaskadd"; //获取项目积分规则
import { setScoreRule } from "../../api/indexTaskadd"; //设置项目积分规则
export default {
name: "ProjectScore",
components: {
@@ -483,10 +453,7 @@ export default {
tableDataTotal: 30,
stuValue: false,
Svisible: false,
score1: 5,
score2: 5,
done:null,
done1:null,
score1: null,
done2: null,
done3: null,
four1: null,
@@ -523,6 +490,23 @@ export default {
});
state.tabledataStu = datas;
};
const scoresum = computed(() => {
// console.log(Object.prototype.toString.call(Number(state.score1)));
// if (Object.prototype.toString.call(state.score1) !== "[object Number]") {
// message.destroy();
// return message.warning("请输入合法数字");
// }
return (
Number(state.score1) +
Number(state.done3) +
Number(state.four2) +
Number(state.four5) +
Number(state.five2) +
Number(state.six1) +
Number(state.seven1) +
Number(state.seven2)
);
});
getTableData();
const tabsChange = (e) => {
@@ -530,16 +514,15 @@ export default {
// console.log('获取项目积分-榜单')
scoreRank(1, 1);
}
rankReset()
state.todayvalue='1'
state.stuValue=1
rankReset();
state.todayvalue = "1";
state.stuValue = 1;
};
//重置
const rankReset = () => {
state.searchRankName=null
}
state.searchRankName = null;
};
// start -------榜单---------------榜单------------榜单------------------榜单---------
//学员积分还是小组积分
const typeChange = (num) => {
@@ -553,7 +536,7 @@ export default {
};
//搜索
const searchRank = () => {
scoreRank(state.stuValue , state.todayvalue)
scoreRank(state.stuValue, state.todayvalue);
};
//项目积分榜单
const scoreRank = (period, type) => {
@@ -576,6 +559,46 @@ export default {
});
};
// end -----榜单----------------榜单----------------------榜单-----------榜单----------
const editRule = () => {
console.log(props.projectId);
let obj = {
courseScore: state.score1,
examItem: {
numLimit: 0,
score: state.five2,
scoreLimit: state.five1,
},
//有名次要求的提交作业
homeworkItem: {
numLimit: state.four3,
score: state.four5,
scoreLimit: state.four4,
},
leaderScore: state.seven1,
projectId: props.projectId,
signScore: state.six1,
topCompleteCourseItem: {
numLimit: state.four1,
score: state.four2,
scoreLimit: 0,
},
topStudentScore: state.seven2,
totalScore: scoresum.value,
};
console.log(obj);
setScoreRule(obj)
.then((res) => {
console.log(res.data, "修改成功");
})
.catch((err) => {
console.log(err.data);
});
// scoreRule({
// projectId: props.projectId,
// });
state.edit = true;
};
return {
...toRefs(state),
typeChange,
@@ -584,14 +607,25 @@ export default {
rankReset,
tabsChange,
scoreRank,
editRule,
scoresum,
};
},
computed: {
// 计算属性的 getter
scoresum: function () {
return Number(this.score1) + Number(this.score2);
},
},
// computed: {
// // 计算属性的 getter
// scoresum: function () {
// return (
// Number(this.score1) +
// Number(this.done3) +
// Number(this.four2) +
// Number(this.four5) +
// Number(this.five2) +
// Number(this.six1) +
// Number(this.seven1) +
// Number(this.seven2)
// );
// },
// },
};
</script>
<style lang="scss">

View File

@@ -23,7 +23,7 @@
<div class="ipt_name">课程编号</div>
<div class="fi_input">
<a-input
v-model:value="value"
v-model:value="valueClass"
style="width: 240px; height: 40px; border-radius: 8px"
placeholder="请输入项目名称"
/>
@@ -37,6 +37,8 @@
style="width: 240px"
placeholder="请选择"
:options="options1"
@change="handleChange"
v-model:value="valueContent"
allowClear
showSearch
/>
@@ -44,11 +46,11 @@
</div>
</div>
<div class="mi_btns">
<div class="btn btn1">
<div class="btn btn1" @click="search">
<div class="search"></div>
<div class="btnText">搜索</div>
</div>
<div class="btn btn2">
<div class="btn btn2" @click="reset">
<div class="search"></div>
<div class="btnText">重置</div>
</div>
@@ -63,28 +65,23 @@
"
:row-selection="rowSelection"
:columns="columns1"
:data-source="tableData1"
:data-source="classTableData"
:loading="tableDataTotal === -1 ? true : false"
:pagination="{
showSizeChanger: true,
showQuickJumper: true,
hideOnSinglePage: true,
pageSizeOptions: [],
pageSize: pageSize,
current: currentPage,
total: tableDataTotal,
onChange: (page, pageSize) => {
currentPage = page;
// console.log('page', page)
// 加翻页查找代码
// this.setState({
// currentPage: page,
// }, () => {
// this.getMilitaryDeployment()
// })
},
}"
:pagination="false"
/>
<div class="pa">
<a-pagination
v-if="total > 10"
showSizeChanger="true"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
:current="currentPage"
:total="tableDataTotal"
class="pagination"
@change="changePaginationStu"
/>
</div>
</div>
</div>
<div class="main_btns">
@@ -96,10 +93,17 @@
</template>
<script>
import { reactive, toRefs, ref } from "vue";
// import { planList } from "../../api/indexTaskadd";
import { list } from "../../api/indexTaskadd";
import { toDate } from "../../api/method";
const options1 = ref([
{
value: "value1",
label: "请选择状态",
label: "通用",
},
{
value: "value2",
label: "领导",
},
]);
const columns1 = [
@@ -172,7 +176,7 @@ export default {
},
setup(props, ctx) {
const state = reactive({
tableData1: [
classTableData: [
{
key: "1",
num: "JDF2022071100001",
@@ -185,8 +189,8 @@ export default {
{
key: "2",
num: "JDF2022071100001",
name: "管理能力课程",
content: "领导",
name: "时间管理课程",
content: "通用",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
@@ -194,7 +198,7 @@ export default {
{
key: "3",
num: "JDF2022071100001",
name: "快速换模SMED",
name: "时间管理课程",
content: "通用力",
teacher: "BOE教师",
creator: "管理员",
@@ -203,80 +207,119 @@ export default {
{
key: "4",
num: "JDF2022071100001",
name: "巧妙对话人见人夸",
content: "领导力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "5",
num: "JDF2022071100001",
name: "管理能力课程",
content: "领导力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "6",
num: "JDF2022071100001",
name: "时间管理课程",
content: "领导",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "7",
num: "JDF2022071100001",
name: "时间管理课程",
content: "领导力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "8",
num: "JDF2022071100001",
name: "时间管理课程",
content: "领导力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "9",
num: "JDF2022071100001",
name: "时间管理课程",
content: "领导力",
content: "通用",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
],
currentPage: 1,
tableDataTotal: 100,
tableDataTotal: null,
pageSize: 10,
value:'',
valueClass: null, //课程编号
valueContent: null, //内容分类
});
const closeDrawer = () => {
ctx.emit("update:selfacetVisible", false);
};
const afterVisibleChange = (bool) => {
console.log("state", bool);
getClassList();
};
const showDrawerSelFacet = () => {
state.selfacetvisible = true;
// const showDrawerSelFacet = () => {
// state.selfacetvisible = true;
// };
//获取面授课列表
const getClassList = (obj) => {
let objn = obj || {
auditStatus: 0,
beginTime: 0,
categoryId: 0,
createName: "",
endTime: 0,
name: "",
pageNo: state.currentPage,
pageSize: 10,
projectName: "",
};
list(objn)
.then((res) => {
console.log(res.data.data.rows);
let result = res.data.data;
state.tableDataTotal = result.total;
if (result.total > 0) {
getClassData(result.rows);
}
})
.catch((err) => {
console.log("获取列表失败", err.data);
});
};
const getClassData = (tabledata) => {
let data = tabledata;
let array = [];
data.map((value) => {
let obj = {
key: value.offcourseId,
num: value.offcourseId,
name: value.name,
teacher: value.teacher,
creator: value.teacher,
time: toDate(value.publishTime / 1000, "Y-M-D"),
categoryId: value.categoryId,
//需要判断content
};
array.push(obj);
});
state.classTableData = array;
};
const handleChange = (value, option) => {
console.log("改变了", value, option);
console.log(state.valueContent);
};
//重置
const reset = () => {
state.valueClass = null;
state.valueContent = null;
//重新获取列表
getClassList();
};
//搜索
const search = () => {
let obj = {
auditStatus: 0,
beginTime: 0,
categoryId: 0, //分类
createName: "",
endTime: 0,
name: "",
pageNo: state.currentPage,
pageSize: 10,
projectName: "",
};
getClassList(obj);
};
const changePaginationStu = (page) => {
state.currentPage = page;
getClassList();
};
return {
...toRefs(state),
showDrawerSelFacet,
// showDrawerSelFacet,
afterVisibleChange,
closeDrawer,
options1,
columns1,
rowSelection,
getClassData,
handleChange,
reset,
getClassList,
search,
changePaginationStu,
// change,
};
},

View File

@@ -841,16 +841,28 @@
<a-select
v-model:value="curLevel"
style="width: 100%"
placeholder="请选择关卡"
:options="projectNameList4"
@change="selectProjectName4"
placeholder="请选择阶段"
:options="level"
@change="handleChangeStage"
allowClear
showSearch
></a-select>
</div>
<div class="btn">
<button class="sameb btn1" @click="closeChangeModal">取消</button>
<button class="sameb btn2" @click="moveTask">确定</button>
<button
style="cursor: pointer"
class="sameb btn1"
@click="closeChangeModal"
>
取消
</button>
<button
style="cursor: pointer"
class="sameb btn2"
@click="moveTask"
>
确定
</button>
</div>
</div>
</div>
@@ -943,6 +955,7 @@ export default {
? JSON.parse(storage.get("projectId"))
: null,
chooseStageId: null,
removeStageId: null,
edit: false,
// isRefEdit: 1, //外链编辑
// isLiveEdit: 1, //直播编辑
@@ -1211,6 +1224,8 @@ export default {
tit: value.name,
name: value.remark,
taskList: value.taskList,
value: value.name,
label: value.name,
};
array.push(obj);
});
@@ -1360,8 +1375,27 @@ export default {
// console.log("22222", res.data.data.stageList);
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("任务列表", arr);
console.log("任务列表", stage, arr);
getTableData(arr);
}
@@ -1376,9 +1410,16 @@ export default {
});
}
//给阶段id赋初始值
let stage = localStorage.getItem("stageId")
? localStorage.getItem("stageId")
: null;
if (stage !== null) {
state.chooseStageId = stage;
} else {
state.chooseStageId = leng > 0 ? stagearr[0].stageId : null;
console.log(state.chooseStageId, 1111);
}
}
})
.catch((err) => {
console.log("获取任务列表失败", err);
@@ -1412,15 +1453,29 @@ export default {
};
const showChangeModal = () => {
if (state.selectRow.length == 0) {
message.destroy();
return message.warning("请选择要移动的任务");
} else {
state.visiblene = true;
}
};
const closeChangeModal = () => {
state.visiblene = false;
};
//移动任务到阶段
const moveTask = () => {
if (state.chooseStageId == state.removeStageId) {
console.log("buneng");
message.destroy();
message.warning("选择的任务已在当前阶段");
} else if (state.removeStageId == null) {
message.destroy();
message.warning("请选择阶段");
} else {
{
let obj = {
stageId: state.chooseStageId,
stageId: state.removeStageId,
projectTaskId: state.selectRow,
};
apimove
@@ -1429,11 +1484,16 @@ export default {
console.log("移动成功", res);
message.destroy();
message.success("移动成功");
console.log(state.removeStageId);
getTask();
localStorage.setItem("stageId", state.chooseStageId);
})
.catch((err) => {
console.log("移动失败", err);
});
state.visiblene = false;
}
}
};
//批量删除
const deleteTaskAll = () => {
@@ -1715,6 +1775,10 @@ export default {
const closeDeAll = () => {
state.deAll = false;
};
const handleChangeStage = (value, option) => {
console.log("阶段改变", value, option);
state.removeStageId = option.id;
};
return {
...toRefs(state),
selectProjectName,
@@ -1764,6 +1828,7 @@ export default {
decideType,
showdeAll,
closeDeAll,
handleChangeStage,
};
},
};