mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-15 22:06:45 +08:00
feat: 发布公告,积分获取和修改
This commit is contained in:
@@ -333,51 +333,131 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-else class="btns">
|
<div v-else class="btns">
|
||||||
<div class="btn1" @click="edit = !edit">
|
<div class="btn1" @click="editRule">
|
||||||
<span class="btn1text">保存</span>
|
<span class="btn1text">保存</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div v-if="edit" class="pjcb_content">
|
<div v-if="edit" class="pjcb_content">
|
||||||
<div class="content content1">
|
<div class="content content1">
|
||||||
<span>当前设计下,学员可以获得 </span
|
<span>当前设计下,学员可以获得 </span
|
||||||
><span class="scoretext">{{ scoresum }}</span
|
><span class="scoretext">{{ scoresum }}</span
|
||||||
><span>积分</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>
|
</div>
|
||||||
<div v-else class="pjcb_content">
|
<div class="content content2">
|
||||||
<div class="content content1">
|
<span>完成【必修/选修】获得 </span
|
||||||
<span>当前设计下,学员可以获得 </span
|
><span class="scoretext">{{ score1 }} </span><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>
|
</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>
|
||||||
</div>
|
</div>
|
||||||
</a-tab-pane>
|
</a-tab-pane>
|
||||||
@@ -561,10 +641,11 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<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 { message } from "ant-design-vue";
|
||||||
import * as api from "@/api/indexTemplate"
|
import * as api from "@/api/indexTemplate"
|
||||||
import { useRouter } from "vue-router";
|
import { useRouter } from "vue-router";
|
||||||
|
import {scoreRule,setScoreRule} from "@/api/indexTaskadd"
|
||||||
import { useStore } from "vuex";
|
import { useStore } from "vuex";
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: "LibraryAdd",
|
name: "LibraryAdd",
|
||||||
@@ -688,8 +769,19 @@ export default defineComponent({
|
|||||||
value3: false,
|
value3: false,
|
||||||
value4: false,
|
value4: false,
|
||||||
hideshow: true,
|
hideshow: true,
|
||||||
score1: 5,
|
score1: null,
|
||||||
score2: 5,
|
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,
|
edit: true,
|
||||||
// 共享文档列表
|
// 共享文档列表
|
||||||
docList:[
|
docList:[
|
||||||
@@ -731,6 +823,23 @@ export default defineComponent({
|
|||||||
const changecheck2 = () => {
|
const changecheck2 = () => {
|
||||||
state.checked2 = !state.checked2;
|
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 = () => {
|
const changecheck3 = () => {
|
||||||
state.checked3 = !state.checked3;
|
state.checked3 = !state.checked3;
|
||||||
};
|
};
|
||||||
@@ -760,7 +869,10 @@ export default defineComponent({
|
|||||||
];
|
];
|
||||||
return typeRules[type];
|
return typeRules[type];
|
||||||
};
|
};
|
||||||
onMounted(() => {getDetail()});
|
onMounted(() => {
|
||||||
|
getDetail();
|
||||||
|
getScoreRule();
|
||||||
|
});
|
||||||
// 获取详情
|
// 获取详情
|
||||||
const getDetail = () => {
|
const getDetail = () => {
|
||||||
api.templateDetail(store.state.projectTemplateId).then(res => {
|
api.templateDetail(store.state.projectTemplateId).then(res => {
|
||||||
@@ -772,6 +884,7 @@ export default defineComponent({
|
|||||||
state.projectInfo.manager = res.data.data.projectTemplateInfo.manager
|
state.projectInfo.manager = res.data.data.projectTemplateInfo.manager
|
||||||
state.projectInfo.notice = res.data.data.projectTemplateInfo.notice
|
state.projectInfo.notice = res.data.data.projectTemplateInfo.notice
|
||||||
state.projectInfo.sourceBelongId = res.data.data.projectTemplateInfo.sourceBelongId
|
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.remark = res.data.data.stageList.remark
|
||||||
state.projectInfo.courseSyncFlag = res.data.data.projectTemplateInfo.courseSyncFlag
|
state.projectInfo.courseSyncFlag = res.data.data.projectTemplateInfo.courseSyncFlag
|
||||||
state.projectInfo.level = res.data.data.projectTemplateInfo.level
|
state.projectInfo.level = res.data.data.projectTemplateInfo.level
|
||||||
@@ -802,11 +915,25 @@ export default defineComponent({
|
|||||||
// 发布公告
|
// 发布公告
|
||||||
const addNotice = () => {
|
const addNotice = () => {
|
||||||
let obj = {
|
let obj = {
|
||||||
"notice": state.projectInfo.notice,
|
"name": state.projectInfo.name,
|
||||||
"projectId": store.state.projectTemplateId,
|
"category": state.projectInfo.category,
|
||||||
"title": ""
|
"picUrl": "x",
|
||||||
};
|
"beginTime": Number(state. projectInfo.beginTime) || 1,
|
||||||
api.templateEdit(obj).methods(obj).then(res => {
|
"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("公告发布成功")
|
message.success("公告发布成功")
|
||||||
console.log(res)
|
console.log(res)
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
@@ -881,6 +1008,94 @@ export default defineComponent({
|
|||||||
console.log(err)
|
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 {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
value,
|
value,
|
||||||
@@ -896,14 +1111,11 @@ export default defineComponent({
|
|||||||
stateEdit,
|
stateEdit,
|
||||||
taskEdit,
|
taskEdit,
|
||||||
toEdit,
|
toEdit,
|
||||||
|
getScoreRule,
|
||||||
|
editRule,
|
||||||
|
scoresum,
|
||||||
};
|
};
|
||||||
},
|
}
|
||||||
computed: {
|
|
||||||
// 计算属性的 getter
|
|
||||||
scoresum: function () {
|
|
||||||
return Number(this.score1) + Number(this.score2);
|
|
||||||
},
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
|||||||
@@ -346,7 +346,7 @@ export default {
|
|||||||
storage.remove("projectAddId");
|
storage.remove("projectAddId");
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
router.push({
|
router.push({
|
||||||
path: "/manage/libraryAdd",
|
path: "/libraryAdd",
|
||||||
});
|
});
|
||||||
}, 400);
|
}, 400);
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user