mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-13 04:46:46 +08:00
feat: 发布公告,积分获取和修改
This commit is contained in:
@@ -333,51 +333,131 @@
|
||||
</div>
|
||||
</div>
|
||||
<div v-else class="btns">
|
||||
<div class="btn1" @click="edit = !edit">
|
||||
<div class="btn1" @click="editRule">
|
||||
<span class="btn1text">保存</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="edit" class="pjcb_content">
|
||||
<div class="content content1">
|
||||
<span>当前设计下,学员可以获得 </span
|
||||
><span class="scoretext">{{ scoresum }}</span
|
||||
><span>积分</span>
|
||||
</div>
|
||||
<div class="content content2">
|
||||
<span>完成【必修/选修】获得 </span
|
||||
><span class="scoretext">{{ score1 }} </span><span>积分</span>
|
||||
</div>
|
||||
<div class="content content3">
|
||||
<span>优秀学员可获得 </span
|
||||
><span class="scoretext">{{ score2 }}</span
|
||||
><span>积分</span>
|
||||
</div>
|
||||
<div class="content content1">
|
||||
<span>当前设计下,学员可以获得 </span
|
||||
><span class="scoretext">{{ scoresum }}</span
|
||||
><span>积分</span>
|
||||
</div>
|
||||
<div v-else class="pjcb_content">
|
||||
<div class="content content1">
|
||||
<span>当前设计下,学员可以获得 </span
|
||||
><span class="scoretext">{{ scoresum }}</span
|
||||
><span>积分</span>
|
||||
</div>
|
||||
<div class="content content2">
|
||||
<span>完成【必修/选修】获得 </span
|
||||
><span
|
||||
><a-input
|
||||
v-model:value="score1"
|
||||
:bordered="false"
|
||||
@change="getScore"
|
||||
/> </span
|
||||
><span>积分</span>
|
||||
</div>
|
||||
<div class="content content3">
|
||||
<span>优秀学员可获得 </span
|
||||
><span
|
||||
><a-input v-model:value="score2" :bordered="false" /></span
|
||||
><span>积分</span>
|
||||
</div>
|
||||
<div class="content content2">
|
||||
<span>完成【必修/选修】获得 </span
|
||||
><span class="scoretext">{{ score1 }} </span><span>积分</span>
|
||||
</div>
|
||||
<div class="content">
|
||||
<span>完成作业成绩不低于 </span
|
||||
><span class="scoretext">{{ done2 }}</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">{{ four2 }}</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>
|
||||
</div>
|
||||
<div class="content">
|
||||
<span>考试成绩高于</span
|
||||
><span class="scoretext">{{ five1 }}</span
|
||||
><span>分获得</span> <span class="scoretext">{{ five2 }}</span
|
||||
><span>积分</span>
|
||||
</div>
|
||||
<div class="content">
|
||||
<span>考勤正常学员获得 </span
|
||||
><span class="scoretext">{{ six1 }}</span
|
||||
><span>积分</span>
|
||||
</div>
|
||||
<div class="content">
|
||||
<span>成为小组长获得</span
|
||||
><span class="scoretext">{{ seven1 }}</span
|
||||
><span style="margin-right: 50px">积分</span>
|
||||
<span>优秀学员可获得</span>
|
||||
<span class="scoretext">{{ seven2 }}</span
|
||||
><span>积分</span>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else class="pjcb_content">
|
||||
<div class="content content1">
|
||||
<span>当前设计下,学员可以获得 </span
|
||||
><span class="scoretext">{{ scoresum }}</span
|
||||
><span>积分</span>
|
||||
</div>
|
||||
<div class="content content2">
|
||||
<span>完成【必修/选修】获得 </span
|
||||
><span
|
||||
><a-input
|
||||
v-model:value="score1"
|
||||
:bordered="false"
|
||||
@change="getScore"
|
||||
/> </span
|
||||
><span>积分</span>
|
||||
</div>
|
||||
<div class="content">
|
||||
<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
|
||||
>
|
||||
<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
|
||||
>
|
||||
</div>
|
||||
<div class="content">
|
||||
<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
|
||||
>
|
||||
<span>优秀学员可获得</span>
|
||||
<a-input v-model:value="seven2" :bordered="false" /><span
|
||||
>积分</span
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-tab-pane>
|
||||
@@ -561,10 +641,11 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { ref, reactive, defineComponent, toRefs, onMounted} from "vue";
|
||||
import { ref, reactive, defineComponent, toRefs, onMounted,computed} from "vue";
|
||||
import { message } from "ant-design-vue";
|
||||
import * as api from "@/api/indexTemplate"
|
||||
import { useRouter } from "vue-router";
|
||||
import {scoreRule,setScoreRule} from "@/api/indexTaskadd"
|
||||
import { useStore } from "vuex";
|
||||
export default defineComponent({
|
||||
name: "LibraryAdd",
|
||||
@@ -688,8 +769,19 @@ export default defineComponent({
|
||||
value3: false,
|
||||
value4: false,
|
||||
hideshow: true,
|
||||
score1: 5,
|
||||
score2: 5,
|
||||
score1: null,
|
||||
done2: null,
|
||||
done3: null,
|
||||
four1: null,
|
||||
four2: null,
|
||||
four3: null,
|
||||
four4: null,
|
||||
four5: null,
|
||||
five1: null,
|
||||
five2: null,
|
||||
six1: null,
|
||||
seven1: null,
|
||||
seven2: null,
|
||||
edit: true,
|
||||
// 共享文档列表
|
||||
docList:[
|
||||
@@ -731,6 +823,23 @@ export default defineComponent({
|
||||
const changecheck2 = () => {
|
||||
state.checked2 = !state.checked2;
|
||||
};
|
||||
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)
|
||||
);
|
||||
});
|
||||
const changecheck3 = () => {
|
||||
state.checked3 = !state.checked3;
|
||||
};
|
||||
@@ -760,7 +869,10 @@ export default defineComponent({
|
||||
];
|
||||
return typeRules[type];
|
||||
};
|
||||
onMounted(() => {getDetail()});
|
||||
onMounted(() => {
|
||||
getDetail();
|
||||
getScoreRule();
|
||||
});
|
||||
// 获取详情
|
||||
const getDetail = () => {
|
||||
api.templateDetail(store.state.projectTemplateId).then(res => {
|
||||
@@ -772,6 +884,7 @@ export default defineComponent({
|
||||
state.projectInfo.manager = res.data.data.projectTemplateInfo.manager
|
||||
state.projectInfo.notice = res.data.data.projectTemplateInfo.notice
|
||||
state.projectInfo.sourceBelongId = res.data.data.projectTemplateInfo.sourceBelongId
|
||||
state.projectInfo.managerId = res.data.data.projectTemplateInfo.managerId
|
||||
state.projectInfo.remark = res.data.data.stageList.remark
|
||||
state.projectInfo.courseSyncFlag = res.data.data.projectTemplateInfo.courseSyncFlag
|
||||
state.projectInfo.level = res.data.data.projectTemplateInfo.level
|
||||
@@ -802,11 +915,25 @@ export default defineComponent({
|
||||
// 发布公告
|
||||
const addNotice = () => {
|
||||
let obj = {
|
||||
"notice": state.projectInfo.notice,
|
||||
"projectId": store.state.projectTemplateId,
|
||||
"title": ""
|
||||
};
|
||||
api.templateEdit(obj).methods(obj).then(res => {
|
||||
"name": state.projectInfo.name,
|
||||
"category": state.projectInfo.category,
|
||||
"picUrl": "x",
|
||||
"beginTime": Number(state. projectInfo.beginTime) || 1,
|
||||
"endTime": 1,
|
||||
"manager": state.projectInfo.manager,
|
||||
"managerId": state.projectInfo.managerId || 0,
|
||||
"sourceBelongId": state.projectInfo.sourceBelongId,
|
||||
"level": state.projectInfo.level,
|
||||
"systemId": state.projectInfo.systemId,
|
||||
"boeFlag": state.projectInfo.boeFlag ? 1:0,
|
||||
"courseSyncFlag": state.projectInfo.courseSyncFlag? 1:0,
|
||||
"notice": state.projectInfo.notice,
|
||||
"noticeFlag": 0,
|
||||
"projectTemplateId": store.state.projectTemplateId,
|
||||
"remark": "",
|
||||
"status": 0,
|
||||
};
|
||||
api.templateEdit(obj).then(res => {
|
||||
message.success("公告发布成功")
|
||||
console.log(res)
|
||||
}).catch(err => {
|
||||
@@ -881,6 +1008,94 @@ export default defineComponent({
|
||||
console.log(err)
|
||||
})
|
||||
}
|
||||
const getScoreRule = () => {
|
||||
scoreRule({
|
||||
projectId: store.state.projectTemplateId,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log("获取了项目积分规则", res.data.data);
|
||||
let result = res.data.data;
|
||||
scoresum.value = result.totalScore; //Write operation failed: computed value is readonly
|
||||
state.seven1 = result.leaderScore;
|
||||
state.score1 = result.courseScore;
|
||||
state.done2 = result.homeworkItem[1].scoreLimit;
|
||||
state.done3 = result.homeworkItem[1].score;
|
||||
state.four1 = result.topCompleteCourseItem[0].numLimit;
|
||||
state.four2 = result.topCompleteCourseItem[0].score;
|
||||
state.four3 = result.homeworkItem[0].numLimit;
|
||||
state.four4 = result.homeworkItem[0].scoreLimit;
|
||||
state.four5 = result.homeworkItem[0].score;
|
||||
state.five1 = result.examItem[0].scoreLimit;
|
||||
state.five2 = result.examItem[0].score;
|
||||
state.six1 = result.signScore;
|
||||
state.seven1 = result.leaderScore;
|
||||
state.seven2 = result.topStudentScore;
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("获取项目积分规则失败了", err);
|
||||
});
|
||||
};
|
||||
//设置积分规则
|
||||
const editRule = () => {
|
||||
let obj = {
|
||||
courseScore: state.score1,
|
||||
examItem: [
|
||||
{
|
||||
numLimit: 0,
|
||||
score: state.five2,
|
||||
scoreLimit: state.five1,
|
||||
type: 3,
|
||||
},
|
||||
],
|
||||
|
||||
homeworkItem: [
|
||||
//有名次要求的提交作业
|
||||
{
|
||||
numLimit: state.four3,
|
||||
score: state.four5,
|
||||
scoreLimit: state.four4,
|
||||
type: 2,
|
||||
},
|
||||
//无名次要求的提交作业
|
||||
{
|
||||
numLimit: 0,
|
||||
score: state.done3,
|
||||
scoreLimit: state.done2,
|
||||
type: 2,
|
||||
},
|
||||
],
|
||||
leaderScore: state.seven1,
|
||||
projectId: store.state.projectTemplateId,
|
||||
signScore: state.six1,
|
||||
topCompleteCourseItem: [
|
||||
{
|
||||
numLimit: state.four1,
|
||||
score: state.four2,
|
||||
scoreLimit: 0,
|
||||
type: 1,
|
||||
},
|
||||
],
|
||||
topStudentScore: state.seven2,
|
||||
totalScore: scoresum.value,
|
||||
};
|
||||
console.log(obj);
|
||||
setScoreRule(obj)
|
||||
.then((res) => {
|
||||
console.log(res.data, "修改成功");
|
||||
message.destroy();
|
||||
return message.success("修改积分规则成功");
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err.data);
|
||||
message.destroy();
|
||||
return message.warning("修改积分规则失败");
|
||||
});
|
||||
// scoreRule({
|
||||
// projectId: props.projectId,
|
||||
// });
|
||||
|
||||
state.edit = true;
|
||||
};
|
||||
return {
|
||||
...toRefs(state),
|
||||
value,
|
||||
@@ -896,14 +1111,11 @@ export default defineComponent({
|
||||
stateEdit,
|
||||
taskEdit,
|
||||
toEdit,
|
||||
getScoreRule,
|
||||
editRule,
|
||||
scoresum,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
// 计算属性的 getter
|
||||
scoresum: function () {
|
||||
return Number(this.score1) + Number(this.score2);
|
||||
},
|
||||
},
|
||||
}
|
||||
});
|
||||
</script>
|
||||
<style lang="scss">
|
||||
|
||||
Reference in New Issue
Block a user