Merge remote-tracking branch 'origin/develop' into develop

This commit is contained in:
yuping
2023-02-26 01:01:50 +08:00
17 changed files with 413 additions and 279 deletions

View File

@@ -11,14 +11,14 @@
<div class="titl"> <div class="titl">
<div class="endtime"> <div class="endtime">
起止时间{{ 起止时间{{
datasource.info && datasource.info.liveStartTime ? datasource.info.liveStartTime : "-" datasource.startTime ? datasource.startTime : "-"
}} }}
{{ datasource.info && datasource.info.liveEndTime ? datasource.info.liveEndTime : "-" }} {{ datasource.endTime ? datasource.endTime : "-" }}
</div> </div>
<div class="endtime" style="margin-left: 64px">签到时间{{ beginTime }}</div> <div class="endtime" style="margin-left: 64px">签到时间{{ beginTime }} {{ endTime }}</div>
<div class="endtime" style="margin-left: 40px">签退时间{{ endTime }}</div> <!--<div class="endtime" style="margin-left: 40px">签退时间{{ endTime }}</div>-->
</div> </div>
<div class="search"> <div class="search">
@@ -71,7 +71,7 @@
</div> </div>
<div class="btn btn1" @click="exportTaskStu"> <div class="btn btn1" @click="exportTaskStu">
<div class="img2"></div> <div class="img2"></div>
<div class="wz">导出数据1</div> <div class="wz">导出数据</div>
</div> </div>
</div> </div>
<!-- <div class="line"> <!-- <div class="line">
@@ -354,25 +354,24 @@ export default {
// 计算签到时间 // 计算签到时间
const isSignClick = () => { const isSignClick = () => {
// debugger console.log("计算签到时间", props.datasource);
console.log("计算签到时间", props.datasource.info); let beginTime = new Date(props.datasource.startTime).getTime();
let beginTime = new Date(props.datasource.info.liveStartTime).getTime(); let endTime = !props.datasource.afterStart
let endTime = !props.datasource.info.afterSignIn ? new Date(props.datasource.endTime).getTime()
? new Date(props.datasource.info.liveEndTime).getTime() : new Date(props.datasource.startTime).getTime();
: new Date(props.datasource.info.liveStartTime).getTime();
if (props.datasource.info.beforeSignIn && props.datasource.info.afterSignIn) { if (props.datasource.beforeStart && props.datasource.afterStart) {
//有开始前有开始后 //有开始前有开始后
beginTime = beginTime - props.datasource.info.beforeSignIn * 60 * 1000; beginTime = beginTime - props.datasource.beforeStart * 60 * 1000;
endTime = endTime + props.datasource.info.afterSignIn * 60 * 1000; endTime = endTime + props.datasource.afterStart * 60 * 1000;
console.log("1111", beginTime, endTime); console.log("1111", beginTime, endTime);
} else if (props.datasource.info.beforeSignIn && !props.datasource.info.afterSignIn) { } else if (props.datasource.beforeStart && !props.datasource.afterStart) {
//只有开始前无开始后 //只有开始前无开始后
beginTime = beginTime - props.datasource.info.beforeSignIn * 60 * 1000; beginTime = beginTime - props.datasource.beforeStart * 60 * 1000;
console.log("11112222", beginTime); console.log("11112222", beginTime);
} else if (!props.datasource.info.beforeSignIn && props.datasource.info.afterSignIn) { } else if (!props.datasource.beforeStart && props.datasource.afterStart) {
//无开始前有开始后 //无开始前有开始后
endTime = endTime + props.datasource.info.afterSignIn * 60 * 1000; endTime = endTime + props.datasource.afterStart * 60 * 1000;
console.log("1111333", endTime); console.log("1111333", endTime);
} }
@@ -393,7 +392,6 @@ export default {
}; };
const getTableData = () => { const getTableData = () => {
debugger
// debugger // debugger
console.log('当前是项目还是路径图 1 项目 2 路径图', props) console.log('当前是项目还是路径图 1 项目 2 路径图', props)
console.log('当前是项目还是路径图 1 项目 2 路径图', props.types) console.log('当前是项目还是路径图 1 项目 2 路径图', props.types)
@@ -690,7 +688,6 @@ export default {
<div class="opa" style='display:flex;justify-content:center;align-items:center;'> <div class="opa" style='display:flex;justify-content:center;align-items:center;'>
<div <div
onClick={() => { onClick={() => {
debugger
{/* debugger */ } {/* debugger */ }
console.log("点击签到", value); console.log("点击签到", value);
// 获取当前时间 // 获取当前时间
@@ -858,7 +855,6 @@ export default {
// 导出数据 // 导出数据
function exportTaskStu() { function exportTaskStu() {
debugger
{/* debugger */ } {/* debugger */ }
console.log("props.datasource此处的taskId 应该是router_task 表中主键", props.datasource); console.log("props.datasource此处的taskId 应该是router_task 表中主键", props.datasource);
console.log("props.datasource", props.datasource); console.log("props.datasource", props.datasource);

View File

@@ -41,6 +41,12 @@
</div> </div>
<div class="main_item2"> <div class="main_item2">
<div class="signbox"> <div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">讨论说明</span> <span style="margin-right: 3px">讨论说明</span>
</div> </div>
<div class="textarea"> <div class="textarea">
@@ -91,6 +97,12 @@ const rulesRef = ref({
message: '请输入讨论名称', message: '请输入讨论名称',
}, },
], ],
discussExplain: [
{
required: true,
message: '请输入讨论说明',
},
],
}); });
const {resetFields, validate} = Form.useForm(formData, rulesRef); const {resetFields, validate} = Form.useForm(formData, rulesRef);

View File

@@ -129,10 +129,16 @@
如项目中有测评需求请您联系BOEU测评部 如项目中有测评需求请您联系BOEU测评部
</div> </div>
</div> </div>
<div class="limitsRow"> <div class="limitsRow" style="align-items: flex-start">
<div class="limitsRowDrop"></div> <div class="limitsRowDrop"></div>
<div class="limitsRowText"> <div style="margin-top: 10px">
联系人王逸10167304 联系电话010-60965646 <div class="limitsRowText">联系人:</div>
<div class="limitsRowText">
王逸10167304 联系电话010-60965646
</div>
<div class="limitsRowText">
宋哲10157955 联系电话010-60965435
</div>
</div> </div>
</div> </div>
</div> </div>
@@ -186,10 +192,6 @@ const toolList = ref([
text1: "PDP性格类型测验", text1: "PDP性格类型测验",
text2: "各层级人员", text2: "各层级人员",
}, },
{
text1: "RTC综合评估",
text2: "各层级人员",
},
{ {
text1: "大五职业性格测评", text1: "大五职业性格测评",
text2: "各层级人员", text2: "各层级人员",

View File

@@ -236,6 +236,12 @@ export default {
if (status === "done") { if (status === "done") {
state.fileName = info.file.name; state.fileName = info.file.name;
let i = 0; let i = 0;
let timeouts = setTimeout(() => {
clearInterval(timer)
state.addLoading = false;
message.destroy();
message.error(`文件导入超时`);
}, 30000);
let timer = setInterval(() => { let timer = setInterval(() => {
let uid = info.file.response.data; let uid = info.file.response.data;
api api
@@ -256,25 +262,21 @@ export default {
state.downloadErrUrl = res.data.data.url; state.downloadErrUrl = res.data.data.url;
console.log("props.getStudent", props.getStudent); console.log("props.getStudent", props.getStudent);
clearInterval(timer); clearInterval(timer);
clearTimeout(timeouts);
} }
} else { } else {
state.addLoading = false; state.addLoading = false;
message.destroy(); message.destroy();
message.error(`文件导入超时`); clearTimeout(timeouts);
} }
}) })
.catch((err) => { .catch((err) => {
state.addLoading = false; state.addLoading = false;
clearInterval(timer); clearInterval(timer);
clearTimeout(timeouts);
console.log("查询导入状态失败", err); console.log("查询导入状态失败", err);
}); });
}, 500); }, 500);
setTimeout(() => {
clearInterval(timer)
state.addLoading = false;
message.destroy();
message.error(`文件导入超时`);
}, 30000);
} else if (status === "error") { } else if (status === "error") {
state.uploadErr = true; state.uploadErr = true;
message.error(`${info.file.name}上传失败`); message.error(`${info.file.name}上传失败`);

View File

@@ -603,6 +603,7 @@ export default {
props.ACertificateEdit ? "证书修改成功" : "证书添加成功" props.ACertificateEdit ? "证书修改成功" : "证书添加成功"
); );
props.getCertificate && props.getCertificate(); props.getCertificate && props.getCertificate();
closeDrawer();
} }
}) })
.catch((err) => { .catch((err) => {

View File

@@ -296,7 +296,7 @@
customRender: (text) => { customRender: (text) => {
return ( return (
<div class="racona"> <div class="racona">
<span> {text.record.score?text.record.score:"-"}</span> <span> {text.record.score?text.record.score<0?"-":text.record.score:"-"} </span>
</div> </div>
); );
}, },

View File

@@ -300,7 +300,7 @@
customRender: (text) => { customRender: (text) => {
return ( return (
<div class="racona"> <div class="racona">
<span> {text.record.score?text.record.score:"-"}</span> <span> {text.record.score?text.record.score<0?"-":text.record.score:"-"}</span>
</div> </div>
); );
}, },

View File

@@ -85,7 +85,6 @@ const selectGroup = (e, v) => {
}; };
//确认换组 //确认换组
const changeGroup = (item) => { const changeGroup = (item) => {
debugger
console.log("换组", selectGroupId.value, item); console.log("换组", selectGroupId.value, item);
props.checkgroupStuId.forEach(stu => { props.checkgroupStuId.forEach(stu => {
let obj = { let obj = {

View File

@@ -395,6 +395,7 @@ const getStu = () => {
realName: value.studentName, realName: value.studentName,
userNo: value.studentId, userNo: value.studentId,
isLeader: value.isLeader, isLeader: value.isLeader,
groupId: value.groupId,
orgName: value.studentOrgName ? value.studentOrgName : "-", orgName: value.studentOrgName ? value.studentOrgName : "-",
departName: value.studentDepartName ? value.studentDepartName : "-", departName: value.studentDepartName ? value.studentDepartName : "-",
}; };
@@ -458,8 +459,8 @@ const searchOrgName = ref({
const stageIds = computed(() => props.stage); const stageIds = computed(() => props.stage);
const { const {
data: stuData, data: stuData,
fetch: searchStu,
page: stuPageNo, page: stuPageNo,
fetch: searchStu,
pageSize: stuPageSize, pageSize: stuPageSize,
loading: stuLoading, loading: stuLoading,
total: stuTotal, total: stuTotal,
@@ -742,6 +743,7 @@ const resetStu = () => {
const deleteDepSelect = () => { const deleteDepSelect = () => {
stuSelectKeys.value = []; stuSelectKeys.value = [];
selectedOrgKeys.value = []; selectedOrgKeys.value = [];
projectSelectKeys.value = [];
}; };
//重置组织 //重置组织
const resetOrg = () => { const resetOrg = () => {
@@ -775,7 +777,17 @@ const submitAuth = () => {
function handleStageOk() { function handleStageOk() {
// 判断添加人数是否已超过限制人数 限制 = 本次添加的人 + 原有的人 // 判断添加人数是否已超过限制人数 限制 = 本次添加的人 + 原有的人
if (props.type === 1) { if (props.type === 1) {
if (props.groupMemberCount < selectsData.value.projectMemberList.length + Number(props.groupMemberNumber)) { let selectMember = 0;
if (activeKey.value === 4) { // 项目内选人
selectMember = selectsData.value.projectMemberList.length
} else if (activeKey.value === 1) {
selectMember = selectsData.value.studentList.length
} else if (activeKey.value === 2) {
selectMember = selectsData.value.groupList.length
} else if (activeKey.value === 3) {
selectMember = selectsData.value.deptList.length
}
if (props.groupMemberCount < selectMember + Number(props.groupMemberNumber)) {
return message.warning("添加小组学员超过最大值"); return message.warning("添加小组学员超过最大值");
} }
// 判断是否是组长,组长不能添加 // 判断是否是组长,组长不能添加

View File

@@ -427,7 +427,6 @@ const stuRowSelection = computed(() => ({
//显示学员换组弹窗 //显示学员换组弹窗
function showChangeGroupModal() { function showChangeGroupModal() {
debugger
console.log("批量") console.log("批量")
const d = props.groupList const d = props.groupList
console.log("d" + d) console.log("d" + d)

View File

@@ -1211,7 +1211,14 @@
{{ currentPlanItem.name }}课程-第1期- {{ currentPlanItem.name }}课程-第1期-
{{ currentPlanItem.createTime }} {{ currentPlanItem.createTime }}
</span> </span>
<span style="color: #ffb751">已开课 4.5</span> <span style="color: #ffb751"
>已开课
{{
currentPlanItem.courseScore !== -1
? currentPlanItem.courseScore
: "-"
}}</span
>
</div> </div>
<div class="stmm_i2"> <div class="stmm_i2">
<span style="color: #999ba3">时间:</span> <span style="color: #999ba3">时间:</span>
@@ -2327,159 +2334,7 @@ export default defineComponent({
slots: { customRender: "operation" }, slots: { customRender: "operation" },
}, },
], ],
//新加
stuColumns: [
{
title: "岗位",
width: "8%",
dataIndex: "studentJobName",
key: "7",
align: "center",
customRender: (text) => {
return (
<div class="racona">
<span>
{text && text.record.studentJobName
? text.record.studentJobName
: "-"}
</span>
</div>
);
},
},
{
title: "Band",
width: "8%",
dataIndex: "studentBandDesc",
key: "7",
align: "center",
customRender: (record) => {
return (
<div class="racona">
<span>
{record.studentBandDesc ? record.studentBandDesc : "-"}
</span>
</div>
);
},
},
{
title: "报名状态",
width: "8%",
dataIndex: "status",
key: "5",
align: "center",
customRender: ({ record }) => {
switch (String(record.status)) {
case "0":
return "审核通过";
case "1":
return "待审核";
case "2":
return "审核拒绝";
}
},
},
{
title: "签到状态",
width: "8%",
dataIndex: "signstatus",
key: "7",
align: "center",
customRender: ({ record }) =>
record.signStatus ? "已签到" : "未签到",
},
{
title: "评估状态",
width: "8%",
dataIndex: "evastatus",
key: "8",
align: "center",
customRender: ({ record }) =>
record.assessmentStatus ? "已评估" : "未评估",
},
{
title: "作业成绩",
width: "8%",
dataIndex: "workScore",
key: "7",
align: "center",
customRender: ({ record }) => {
return (
<div class="racona">
{record.workScore === -2 ? (
"-"
) : record.workScore ? (
<span>{record.workScore}</span>
) : (
<span
style={{ color: "#4EA6FF", cursor: "pointer" }}
onClick={() => {
handlJoinStu(record);
}}
>
成绩录入
</span>
)}
</div>
);
// switch (String(record.status)) {
// case "0":
// return (
// <span
// style={{ color: "#4EA6FF", cursor: "pointer" }}
// onClick={() => {
// handlJoinStu(record);
// }}
// >
// 成绩录入
// </span>
// );
// case "1":
// return "-";
// case "2":
// return "-";
// }
},
},
{
title: "考试成绩",
width: "8%",
dataIndex: "examinationScore",
key: "8",
align: "center",
},
{
title: "结业状态",
width: "15%",
dataIndex: "completionStatus",
key: "8",
align: "center",
customRender: ({ record }) => {
return (
<div>
{record.finishStatus == 1 &&
record.workScore != -2 &&
record.signStatus == 1 ? (
<div
style={{ color: "#4EA6FF", cursor: "pointer" }}
onClick={() => {
handleOverStu(record);
}}
>
结业
</div>
) : record.completionStatus == 1 ? (
<div>已结业</div>
) : (
<div>-</div>
)}
</div>
);
},
},
],
shipType: 1, shipType: 1,
addLoading: false, addLoading: false,
currentPlanItem: {}, currentPlanItem: {},
@@ -2586,6 +2441,7 @@ export default defineComponent({
// overstatus: "-", // overstatus: "-",
// }, // },
], ],
stuColumns: [],
currentPage1: 1, currentPage1: 1,
tableDataTotal1: -1, tableDataTotal1: -1,
pageSize1: 10, pageSize1: 10,
@@ -3891,6 +3747,208 @@ export default defineComponent({
state.cstm_hs = true; state.cstm_hs = true;
state.kk_eidt = true; state.kk_eidt = true;
}; };
<<<<<<< HEAD
const columnFun = () => {
=======
const columnFun = (itm) => {
console.log("itm", itm);
>>>>>>> 2c0ee70d8d8b2d087356a3f9c9a352e1440cef1b
//新加
state.stuColumns = [
{
title: "岗位",
width: "8%",
dataIndex: "studentJobName",
key: "7",
align: "center",
customRender: (text) => {
return (
<div class="racona">
<span>
{text && text.record.studentJobName
? text.record.studentJobName
: "-"}
</span>
</div>
);
},
},
{
title: "Band",
width: "8%",
dataIndex: "studentBandDesc",
key: "7",
align: "center",
customRender: (record) => {
return (
<div class="racona">
<span>
{record.studentBandDesc ? record.studentBandDesc : "-"}
</span>
</div>
);
},
},
{
title: "报名状态",
width: "8%",
dataIndex: "status",
key: "5",
align: "center",
customRender: ({ record }) => {
switch (String(record.status)) {
case "0":
return "审核通过";
case "1":
return "待审核";
case "2":
return "审核拒绝";
}
},
},
{
title: "签到状态",
width: "8%",
dataIndex: "signstatus",
key: "7",
align: "center",
customRender: ({ record }) =>
record.signStatus ? "已签到" : "未签到",
},
{
title: "评估状态",
width: "8%",
dataIndex: "evastatus",
key: "8",
align: "center",
customRender: ({ record }) =>
record.assessmentStatus ? "已评估" : "未评估",
},
{
title: "评分",
width: "8%",
dataIndex: "studentScore",
key: "8",
align: "center",
customRender: ({ record }) => {
return (
<div class="racona">
{record.studentScore !== -1 ? record.studentScore : "-"}
</div>
);
// switch (String(record.status)) {
// case "0":
// return (
// <span
// style={{ color: "#4EA6FF", cursor: "pointer" }}
// onClick={() => {
// handlJoinStu(record);
// }}
// >
// 成绩录入
// </span>
// );
// case "1":
// return "-";
// case "2":
// return "-";
// }
},
},
{
title: "作业成绩",
width: "8%",
dataIndex: "workScore",
key: "7",
align: "center",
customRender: ({ record }) => {
return (
<div class="racona">
{record.workScore === -2 ? (
"-"
) : record.workScore ? (
<span>{record.workScore}</span>
) : (
<span
style={{ color: "#4EA6FF", cursor: "pointer" }}
onClick={() => {
handlJoinStu(record);
}}
>
成绩录入
</span>
)}
</div>
);
// switch (String(record.status)) {
// case "0":
// return (
// <span
// style={{ color: "#4EA6FF", cursor: "pointer" }}
// onClick={() => {
// handlJoinStu(record);
// }}
// >
// 成绩录入
// </span>
// );
// case "1":
// return "-";
// case "2":
// return "-";
// }
},
},
{
title: "考试成绩",
width: "8%",
dataIndex: "examinationScore",
key: "8",
align: "center",
},
{
title: "结业状态",
width: "15%",
dataIndex: "completionStatus",
key: "8",
align: "center",
customRender: ({ record }) => {
return (
<div>
{record.finishStatus == 1 &&
record.workScore != -2 &&
record.signStatus == 1 ? (
<div
style={{ color: "#4EA6FF", cursor: "pointer" }}
onClick={() => {
handleOverStu(record);
}}
>
结业
</div>
) : record.completionStatus == 1 ? (
<div>已结业</div>
) : (
<div>-</div>
)}
</div>
);
},
},
];
// if (itm.courseScore !== -1) {
// let obj = {
// title: "评分",
// width: "8%",
// dataIndex: "studentScore",
// key: "8",
// align: "center",
// };
// state.stuColumns.splice(6, 0, obj);
// }
};
const handelGuan = (itm) => { const handelGuan = (itm) => {
console.log("开课信息", itm); console.log("开课信息", itm);
state.offcourseId = itm.id; state.offcourseId = itm.id;
@@ -3906,6 +3964,7 @@ export default defineComponent({
state.sm_hs = true; state.sm_hs = true;
// getTableDate2(); // getTableDate2();
state.homeWorkId = itm.homeWorkId; state.homeWorkId = itm.homeWorkId;
columnFun(itm);
}; };
const sm_exit = () => { const sm_exit = () => {
state.sm_hs = false; state.sm_hs = false;
@@ -7166,6 +7225,12 @@ export default defineComponent({
} }
} }
} }
.tableShow2 {
display: inline-block;
}
.tableHiddle2 {
display: none;
}
} }
.tag-content { .tag-content {

View File

@@ -904,21 +904,16 @@ export default defineComponent({
]; ];
console.log("checkList", checkList); console.log("checkList", checkList);
if ( if (
!postData.organizationIds && (!postData.organizationIds &&
!postData.jobTypeIds && !postData.jobTypeIds &&
!postData.bandIds !postData.bandIds) ||
!checkVal(checkList)
) { ) {
message.destroy(); message.destroy();
return message.error("请输入必填项"); return message.error("请输入必填项");
} else { } else {
state.addLoading = true; state.addLoading = true;
} }
if (!checkVal(checkList)) {
message.destroy();
return message.error("请输入必填项");
} else {
state.addLoading = true;
}
edit(postData).then((res) => { edit(postData).then((res) => {
state.addLoading = false; state.addLoading = false;

View File

@@ -1114,7 +1114,7 @@ export default defineComponent({
routered.push({ routered.push({
path: "/templateAdd", path: "/templateAdd",
query: { query: {
projectTemplateId: state.projectInfo.projectTemplateId, projectTemplateId: projectTemplateId,
}, },
}); });
}; };
@@ -1163,29 +1163,34 @@ export default defineComponent({
}; };
const getScoreRule = () => { const getScoreRule = () => {
scoreRule({ scoreRule({
projectId: localStorage.getItem("projectTemplateId"), projectId: projectTemplateId,
}) })
.then((res) => { .then((res) => {
console.log("获取了项目积分规则", res.data.data);
let result = res.data.data; let result = res.data.data;
console.log("获取了项目积分规则:", result); //Write operation failed: computed value is readonly 总积分
if (result.size > 0) {
scoresum.value = result.totalScore == null ? 0 : result.totalScore; //Write operation failed: computed value is readonly state.scoresum = Number(result[0].pointsCount) + Number(result[1].pointsCount) + Number(result[2].pointsCount) + Number(result[3].pointsCount) + Number(result[4].pointsCount) + Number(result[5].pointsCount) + Number(result[6].pointsCount) + Number(result[7].pointsCount)
state.seven1 = result.leaderScore;
state.score1 = result.courseScore; state.score1 = result[0].pointsCount;
state.done2 = result.homeworkItem[1].scoreLimit;
state.done3 = result.homeworkItem[1].score; state.done2 = result[1].typeDescConfig;
state.four1 = result.topCompleteCourseItem[0].numLimit; state.done3 = result[1].pointsCount;
state.four2 = result.topCompleteCourseItem[0].score;
state.four3 = result.homeworkItem[0].numLimit; state.four1 = result[2].typeDescConfig;
state.four4 = result.homeworkItem[0].scoreLimit; state.four2 = result[2].pointsCount;
state.four5 = result.homeworkItem[0].score;
state.five1 = result.examItem[0].scoreLimit; state.four3 = result[3].typeDescConfig.slice(0,result[3].typeDescConfig.indexOf(';'));
state.five2 = result.examItem[0].score; state.four4 = result[3].typeDescConfig.slice(result[3].typeDescConfig.indexOf(';')+1);
state.six1 = result.signScore; state.four5 = result[3].pointsCount;
state.seven1 = result.leaderScore;
state.seven2 = result.topStudentScore; state.five1 = result[4].typeDescConfig;
} state.five2 = result[4].pointsCount;
state.six1 = result[5].pointsCount;
state.seven1 = result[6].pointsCount;
state.seven2 = result[7].pointsCount;
}) })
.catch((err) => { .catch((err) => {
@@ -1307,45 +1312,57 @@ export default defineComponent({
//设置积分规则 //设置积分规则
const editRule = () => { const editRule = () => {
let obj = { let obj = {
courseScore: state.score1, projectId: projectTemplateId,
examItem: [ datas:[
{ {
numLimit: 0, "type": 1,
score: state.five2, "pointsCount": Number(state.score1),
scoreLimit: state.five1, "typeDesc": "完成【必修/选修】获得%p积分",
type: 3, "typeDescConfig": ""
}, },
],
homeworkItem: [
//有名次要求的提交作业
{ {
numLimit: state.four3, "type": 2,
score: state.four5, "pointsCount": Number(state.done3),
scoreLimit: state.four4, "typeDesc": "完成作业成绩不低于%d分获得%p积分",
type: 2, "typeDescConfig": state.done2
}, },
//无名次要求的提交作业
{ {
numLimit: 0, "type": 3,
score: state.done3, "pointsCount": Number(state.four2),
scoreLimit: state.done2, "typeDesc": "前%d名学完在线课程获得%p积分",
type: 2, "typeDescConfig": state.four1
}, },
],
leaderScore: state.seven1,
projectId: localStorage.getItem("projectTemplateId"),
signScore: state.six1,
topCompleteCourseItem: [
{ {
numLimit: state.four1, "type": 4,
score: state.four2, "pointsCount": Number(state.four5),
scoreLimit: 0, "typeDesc": "前%d名提交作业且成绩不低于%d分获得%p积分",
type: 1, "typeDescConfig": state.four3 + ';' + state.four4
}, },
], {
topStudentScore: state.seven2, "type": 5,
totalScore: scoresum.value, "pointsCount": Number(state.five2),
"typeDesc": "考试成绩高于%d分获得%p积分",
"typeDescConfig": state.five1
},
{
"type": 6,
"pointsCount": Number(state.six1),
"typeDesc": "考勤正常学员获得%p积分",
"typeDescConfig": ""
},
{
"type": 7,
"pointsCount": Number(state.seven1),
"typeDesc": "成为小组长获得%p积分",
"typeDescConfig": ""
},
{
"type": 8,
"pointsCount": Number(state.seven2),
"typeDesc": "优秀学员可获得%p积分",
"typeDescConfig": ""
}
]
}; };
console.log(obj); console.log(obj);
setScoreRule(obj) setScoreRule(obj)

View File

@@ -769,7 +769,7 @@
<a-button @click="settingTopFlag(record)" type="link" <a-button @click="settingTopFlag(record)" type="link"
>{{ record.topFlag ? "取消优秀" : "优秀学员" }} >{{ record.topFlag ? "取消优秀" : "优秀学员" }}
</a-button> </a-button>
<a-button type="link" @click="showChangeGroupModal(record)" <a-button type="link" :disabled="record.isLeader === '1'" @click="showChangeGroupModal(record)"
>换组 >换组
</a-button> </a-button>
</template> </template>

View File

@@ -4,10 +4,10 @@
<div class="header"> <div class="header">
<span class="title">创建/编辑单层模板</span> <span class="title">创建/编辑单层模板</span>
<div <div
@click="backPage" @click="backPage"
style="cursor: pointer" style="cursor: pointer"
to="/libraryAdd" to="/libraryAdd"
class="goback" class="goback"
> >
<span class="return"></span><span class="returntext">返回</span> <span class="return"></span><span class="returntext">返回</span>
</div> </div>
@@ -31,18 +31,18 @@
/> />
</div> </div>
</div> </div>
<div class="name" style="align-items: flex-start"> <div class="name flex-top">
<div class="namebox" style="margin-top: 10px"> <div class="namebox" style="margin-top: 10px">
<img <img
class="nameimg" class="nameimg"
src="../../assets/images/basicinfo/asterisk.png" src="../../assets/images/basicinfo/asterisk.png"
/> />
<div class="inname">封面图</div> <div class="inname">封面图</div>
</div> </div>
<div class="in select" style="display: flex"> <div class="in select" style="flex: 1; display: flex">
<div <div
:class="`box ${projectInfo.picUrl === src.value ? 'active' : ''}`" :class="`box ${projectInfo.picUrl === src.value ? 'active' : ''}`"
style=" style="
width: 100px; width: 100px;
height: 100px; height: 100px;
border-radius: 5px; border-radius: 5px;
@@ -50,23 +50,52 @@
position: relative; position: relative;
overflow: hidden; overflow: hidden;
" "
v-for="(src, index) in projectPic" v-for="(src, index) in projectPic"
:key="index" :key="index"
@click="() => (projectInfo.picUrl = src.value)" :style="{
display: index >= 3 ? 'none' : 'flex',
}"
@click="() => (projectInfo.picUrl = src.value)"
> >
<img <img
style=" style="
width: 100px; width: 100px;
height: 100px; height: 100px;
margin-bottom: 4px; margin-bottom: 4px;
margin-right: 4px; margin-right: 4px;
" "
:src="src.value" :src="src.value"
alt="avatar" alt="avatar"
/> />
</div> </div>
<div
@click="showLearnBgMore"
v-if="projectPic.length > 3"
style="
width: 100px;
height: 100px;
padding-left: 15px;
border-radius: 5px;
cursor: pointer;
position: relative;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
border: 1px solid #c7cbd2;
font-size: 14px;
font-weight: 400;
color: #4ea6ff;
line-height: 36px;
"
>
查看更多
<img src="../../assets/images/projectadd/go.png" alt="" />
</div>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img <img
@@ -242,7 +271,7 @@ const projectPic = ref([]);
const courseSyncFlag = ref(true) const courseSyncFlag = ref(true)
onMounted(() => { onMounted(() => {
getDetail(); getDetail();
projectPic.value = store.state.projectPic.map((e) => ({ projectPic.value = store.state.project_pic.map((e) => ({
value: e.dictValue, value: e.dictValue,
label: e.dictName, label: e.dictName,
})); }));
@@ -262,11 +291,15 @@ const getDetail = () =>
projectInfo.value.rangeTime = [dayjs(projectInfo.value.beginTime).format("YYYY-MM-DD HH:mm"), projectInfo.value.rangeTime = [dayjs(projectInfo.value.beginTime).format("YYYY-MM-DD HH:mm"),
dayjs(projectInfo.value.endTime).format("YYYY-MM-DD HH:mm"), dayjs(projectInfo.value.endTime).format("YYYY-MM-DD HH:mm"),
]; ];
projectInfo.value.courseSyncFlag = !!projectInfo.value.courseSyncFlag projectInfo.value.courseSyncFlag = !!projectInfo.value.courseSyncFlag;
console.log("查询到的模板库数据:" + JSON.stringify(projectInfo.value));
}); });
const backPage = () => { const backPage = () => {
router.back(); router.push({
path: "/libraryAdd",
query: { projectTemplateId : route.query.projectTemplateId}
});
}; };
function timeChange(e) { function timeChange(e) {

View File

@@ -44,7 +44,6 @@
/> />
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
@@ -64,6 +63,8 @@ export default {
}, },
setup(props, { emit }) { setup(props, { emit }) {
const curItem = ref(props.item); const curItem = ref(props.item);
console.log("选项信息", curItem.value, process.env.VUE_APP_FILE_PATH);
curItem.value.imgVal = process.env.VUE_APP_FILE_PATH + curItem.value.imgVal;
const state = reactive({ const state = reactive({
hasImgName: "", hasImgName: "",
}); });

View File

@@ -15,8 +15,8 @@ module.exports = defineConfig({
port: 8070, port: 8070,
proxy: { proxy: {
"/manageApi": { "/manageApi": {
target: 'http:' + process.env.VUE_APP_PROXY_URL, // target: 'http:' + process.env.VUE_APP_PROXY_URL,
//target: 'http://localhost:30001', target: 'http://localhost:30001',
changeOrigin: true, //表示是否改变原域名 changeOrigin: true, //表示是否改变原域名
pathRewrite: { pathRewrite: {
"^/manageApi": "", "^/manageApi": "",