diff --git a/src/components/drawers/AddOpenCourse.vue b/src/components/drawers/AddOpenCourse.vue
index 7f1243b4..07b9a7a3 100644
--- a/src/components/drawers/AddOpenCourse.vue
+++ b/src/components/drawers/AddOpenCourse.vue
@@ -464,7 +464,7 @@ const columns = ref([
width: "20%",
align: "center",
customRender: ({ record }) => {
- const teachers = record.offteachers;
+ const teachers = record.offteachers;
return teachers.map((teacher, index) => {
// 如果需要显示为列表形式
return (
@@ -473,7 +473,7 @@ const columns = ref([
{index !== teachers.length - 1 && ', '}
);
- });
+ });
},
},
@@ -562,33 +562,33 @@ const formDataRule = {
message: "请输入开课名称",
},
],
- beginTime: [
- {
- required: true,
- message: "请选择开始时间",
- },
- ],
- endTime: [
- {
- required: true,
- message: "请选择结束时间",
- },
- ],
+ // beginTime: [
+ // {
+ // required: true,
+ // message: "请选择开始时间",
+ // },
+ // ],
+ // endTime: [
+ // {
+ // required: true,
+ // message: "请选择结束时间",
+ // },
+ // ],
offteachers: [
{
validator: (rule, value, callback) => {
if (!value.every(item => item.teacherName)) {
- callback(new Error('请选择教师'));
+ callback(new Error('请填写教师名称和设置权重'));
} else {
callback();
}
},
- message: '请选择教师',
+ message: '请填写教师名称和设置权重',
fields: {
teacherName: [
{
required: true,
- message: "请选择教师",
+ message: "请填写教师名称和设置权重",
},
],
},
@@ -740,15 +740,18 @@ const del = (id,record) => {
};
async function coursePlanConfirm() {
- console.log({ ...formData.value },'{ ...formData.value }')
+ if(!dateTime.value[0]){
+ message.info('开始时间未填写')
+ return
+ }
+ if(!dateTime.value[1]){
+ message.info('结束时间未填写')
+ return
+ }
await validate().catch(({ errorFields }) => {
message.warning(errorFields[0].errors.join());
throw Error("数据校验不通过");
});
- if(dateTime.value.length<2){
- message.info('请选择开始时间和结束时间')
- return
- }
if(formData.value.offteachers.length==1&& totalWeightSum.value!=100){
message.error('单名教师您设置的权重应该是100%')
return
@@ -756,6 +759,10 @@ async function coursePlanConfirm() {
message.error('多名教师权重合计值为100%')
return
}
+ if(formData.value.offteachers.some(item => item.weight==0)){
+ message.error('权重值不能为0%')
+ return
+ }
if(editBeginClass.value){
message.info('讲师费已进入审批阶段,无法编辑')
return
@@ -1308,8 +1315,8 @@ defineExpose({ openDrawer });
margin-top: 5px;
span{
width: 100%;
- height: 100%;
- font-size: 33px;
+ height: 100%;
+ font-size: 33px;
}
}
.signbox {
diff --git a/src/components/drawers/router/RouterFaceStu.vue b/src/components/drawers/router/RouterFaceStu.vue
index 30ca2244..6c5b1d1a 100644
--- a/src/components/drawers/router/RouterFaceStu.vue
+++ b/src/components/drawers/router/RouterFaceStu.vue
@@ -188,7 +188,7 @@ const signOptions = ref([
},
{
id: 3,
- value: 0,
+ value: 2,
label: "未签到",
},
]);
diff --git a/src/views/courselibrary/CoursewareManage.vue b/src/views/courselibrary/CoursewareManage.vue
index b6d61c56..06f95d9b 100644
--- a/src/views/courselibrary/CoursewareManage.vue
+++ b/src/views/courselibrary/CoursewareManage.vue
@@ -904,9 +904,9 @@
新建开课
-
-
+
授课教师
-
@@ -1264,7 +1305,7 @@
授课教师:
- {{ currentPlanItem.teacher }}
+
{
- return text ? text : "-";
- },
+ customRender: ({ record }) => {
+ const teachers = record.offteachers;
+ return teachers.map((teacher, index) => {
+ // 如果需要显示为列表形式
+ return (
+
+ {teacher.teacherName}
+ {index !== teachers.length - 1 && ', '}
+
+ );
+ });
+ }
},
{
@@ -2402,11 +2452,16 @@ export default defineComponent({
addLoading: false,
currentPlanItem: {},
teacherId: null,
- teacher: null,
+ // teacher: null,
selectedRowKeys7: [],
auditDescription: "",
isEdit: 0,
member: { name: "", value: "" },
+ offteachers:[{
+ teacherId: "",
+ teacherName: "",
+ weight: '',
+ }],
//列表表格
tableData1: [
// {
@@ -2619,7 +2674,7 @@ export default defineComponent({
onceName: "",
xjkkinputV2: "",
duration: "",
- xjkkinputV3: "",
+ xjkkinputV3: [],
xjkkinputV4: null,
beforeValue: null, //考勤 开始前
afterStartValue: null, //考勤 开始后
@@ -2829,8 +2884,78 @@ export default defineComponent({
codeType: null, //二维码类型
});
- function timeChange(time, timeStr) {
- // state.duration || (state.duration = dayjs(timeStr[1]).diff(dayjs(timeStr[0]),'minute'))
+ // function timeChange(time, timeStr) {
+ // // state.duration || (state.duration = dayjs(timeStr[1]).diff(dayjs(timeStr[0]),'minute'))
+ // }
+// function timeChange(timeStr) {
+// console.log(timeStr,'timeStr')
+// formData.value.beginTime = timeStr;
+// }
+ function onDateSelect(date) {
+ const month = String(date.$M+1).padStart(2, '0')
+ const day = String(date.$D).padStart(2, '0')
+ state.xjkkinputV3[0]=date.$y+'-'+month+'-'+day+' '+date.$H+':'+date.$m
+ }
+function onBlurStart(){
+ onFocusStart()
+ console.log(state.xjkkinputV3[0],'dateTime')
+}
+function onFocusStart(){
+ if(!state.xjkkinputV3[0]){
+ let now=new Date()
+ let start=new Date(now.setFullYear(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0))
+ state.xjkkinputV3 = [
+ moment(start).format('YYYY-MM-DD HH:mm'),
+ state.xjkkinputV3[1]
+ ];
+ }
+}
+// function timeChangeEnd(timeStr){
+// formData.value.endTime = timeStr;
+// }
+function onDateEnd(date) {
+ const month = String(date.$M+1).padStart(2, '0')
+ const day = String(date.$D).padStart(2, '0')
+ state.xjkkinputV3[1]=date.$y+'-'+month+'-'+day+' '+date.$H+':'+date.$m
+ }
+function onFocusEnd(){
+ if(!state.xjkkinputV3[1]){
+ let now=new Date()
+ let start=new Date()
+ let end=new Date(now.setFullYear(now.getFullYear()))
+ state.xjkkinputV3 = [
+ state.xjkkinputV3[0],
+ moment(end).format('YYYY-MM-DD HH:mm')
+ ];
+ }
+}
+ const totalWeightSum = ref(0)
+ function inputWeightChange(index) {
+ let totalWeight = 0
+ state.offteachers.forEach(item => {
+ totalWeight += Number(item.weight);
+ });
+ if (totalWeight > 100) {
+ state.offteachers[index].weight -= totalWeight - 100;
+ totalWeight = 100;
+ }
+ totalWeightSum.value = totalWeight
+ }
+ function inputAdd() {
+ state.offteachers.push({
+ teacherId: "",
+ teacherName: "",
+ weight: '',
+ });
+ }
+ function inputRemove(index) {
+ dialog({
+ content: "确定删除此授课教师吗?",
+ ok: async () => {
+ state.offteachers.splice(index, 1);
+ message.success("删除成功");
+ },
+ });
}
function findClassFullName(list, classify, name = "") {
@@ -3239,7 +3364,7 @@ export default defineComponent({
const rest = () => {
options4CurName.value = "";
options4CurId.value = "";
- state.teacher = null;
+ // state.teacher = null;
state.teacherId = null;
};
const handleChangeTea1 = (val) => {
@@ -3409,7 +3534,7 @@ export default defineComponent({
pageNo: type?state.currentPage2:state.currentPage222,
pageSize: state.pageSize222,
createName: state.kk_inputV1,
- teacher: state.kk_inputV2,
+ // teacher: state.kk_inputV2,
beginTime: beginTime,
endTime: endTime,
offcourseId: state.offcourseId,
@@ -3582,7 +3707,7 @@ export default defineComponent({
CourseModalRef.value.visibleOpen(null, state.xzinputV1);
state.valueE1 = "";
- state.teacher = "";
+ // state.teacher = "";
state.teacherName = "";
state.qdms_inputV1 = state.xzinputV1;
@@ -3655,9 +3780,15 @@ export default defineComponent({
handleRestTable();
};
const createkk = () => {
+ state.xjkkinputV1 = state.newCourseName
state.offcoursePlanId = null;
state.itemType = 3;
state.member = {};
+ state.offteachers = [{
+ teacherId: "",
+ teacherName: "",
+ weight: '',
+ }]
state.cstm_hs = true;
};
const handleCancelStu = () => {
@@ -3672,7 +3803,7 @@ export default defineComponent({
state.onceName = "";
state.xjkkinputV2 = "";
state.duration = "";
- state.xjkkinputV3 = "";
+ state.xjkkinputV3 = [];
state.xjkkinputV4 = null;
state.checked1 = false;
state.checked4 = false;
@@ -3696,7 +3827,7 @@ export default defineComponent({
}
let startTime,
endTime = 0;
- if (state.xjkkinputV3) {
+ if (state.xjkkinputV3.length!=0) {
startTime = dayjs(state.xjkkinputV3[0]).format("YYYY-MM-DD HH:mm"); //parseInt(state.xjkkinputV3[0].$d.getTime() / 1000);
endTime = dayjs(state.xjkkinputV3[1]).format("YYYY-MM-DD HH:mm"); //parseInt(state.xjkkinputV3[1].$d.getTime() / 1000);
}
@@ -3734,8 +3865,9 @@ export default defineComponent({
name: state.xjkkinputV1,
signFlag: state.xjkkradioV1 ? 1 : 0, //是否允许未报名的签到:1是0否
// signWordFlag: state.xjkkradioV1 === 1 ? 1 : 0, //签到是否需要口令:1是0否
- teacherId: state.member.value,
- teacher: state.member.name,
+ // teacherId: state.member.value,
+ // teacher: state.member.name,
+ offteachers: state.offteachers,
workInfo: state.workInfo, //提交的作业信息
examInfo: state.examInfo, //提交的考试信息
beforeStart: state.beforeValue, //考勤 开始前
@@ -3745,15 +3877,27 @@ export default defineComponent({
if(!postData.name){
return message.error("请输入开课名称");
}
- if(!postData.beginTime){
- return message.error("请选择开课时间");
+ if(!state.xjkkinputV3[0]){
+ return message.error("开始时间未填写");
}
- if(!postData.endTime){
- return message.error("请选择结束时间");
+ if(!state.xjkkinputV3[1]){
+ return message.error("结束时间未填写");
}
- if(!postData.teacherId){
- return message.error("请选择授课老师");
+ if(state.offteachers.some(item => !item.teacherName)){
+ return message.error("请填写教师名称和设置权重");
}
+ if(state.offteachers.length==1&& totalWeightSum.value!=100){
+ message.error('单名教师您设置的权重应该是100%')
+ return
+ }else if(state.offteachers.length>1&& totalWeightSum.value!=100){
+ message.error('多名教师权重合计值为100%')
+ return
+ }
+ if(state.offteachers.some(item => item.weight==0)){
+ message.error('权重值不能为0%')
+ return
+ }
+ console.log(postData,'传输的数据')
// if(!postData.duration){
// return message.error("请输入持续时间");
// }
@@ -3827,7 +3971,8 @@ export default defineComponent({
//是否允许未报名的签到:1是0否
state.xjkkradioV1 = true;
}
- state.member = { value: item.teacherId, name: item.teacher };
+ // state.member = { value: item.teacherId, name: item.teacher };
+ state.offteachers = [...item.offteachers]
state.cstm_hs = true;
state.kk_eidt = true;
};
@@ -4417,10 +4562,11 @@ export default defineComponent({
state.chang_jin = String(item.sceneId);
state.tags_val = item.tips ? item.tips.split(",") : [];
//state.qdms_inputV5 = item.teacherId;
- state.teacher = item.teacher;
- state.teacherId = item.teacherId;
+ // state.teacher = item.teacher;
+ // state.teacherId = item.teacherId;
state.qdms_inputV6 = item.intro;
- state.member = { value: item.teacherId, name: item.teacher };
+ // state.member = { value: item.teacherId, name: item.teacher };
+ state.offteachers = [...item.offteachers]
if (item.attach == "") {
state.imgList = [];
} else {
@@ -4902,9 +5048,11 @@ export default defineComponent({
const qrcodeVisible = (record, type) => {
// `${location.protocol}//${location.host}${import.meta.env.VUE_APP_BASE_API}/stu/project/redirectDetail?courseId=${record.id}`
state.codevisible = true;
+ let teacherNames = record.offteachers?.filter(teacher => teacher.teacherName !== null).map(teacher => teacher.teacherName);
state.codeInfo = {
title: type == 1 ? "【课程】二维码" : "【签到】二维码",
name: record.name ? record.name : "",
+ teacherName: teacherNames.length > 0 ? teacherNames.join(' ') : "",
url:
type == 1
? process.env.VUE_APP_BASE_API +
@@ -5054,8 +5202,19 @@ export default defineComponent({
logW,
logT,
qrcodeVisible,
- timeChange,
- editBeginClass
+ // timeChange,
+ editBeginClass,
+
+ onDateSelect,
+ onBlurStart,
+ onFocusStart,
+ // timeChangeEnd,
+ onDateEnd,
+ onFocusEnd,
+ inputWeightChange,
+ totalWeightSum,
+ inputAdd,
+ inputRemove
};
},
});
@@ -5560,6 +5719,28 @@ export default defineComponent({
margin: auto;
align-items: center;
margin-bottom: 23px;
+ .teacher_input{
+ .ant-input-number{
+ width: 15%;
+ height: 40px !important;
+ border-radius: 8px !important;
+ border: 1px solid #C7CBD2 !important;
+ margin: 0 10px 0 10px;
+ }
+ .btn-add{
+ margin: 0 10px 0 10px;
+ }
+ .btn-circle{
+ text-align: center;
+ line-height: 100%;
+ margin-top: 5px;
+ span{
+ width: 100%;
+ height: 100%;
+ font-size: 33px;
+ }
+ }
+ }
.signbox {
display: flex;