From 8f835e3fc7d32426c4af5ee7c5eac24b09e617e7 Mon Sep 17 00:00:00 2001 From: "@jyuhsin" <729757837@qq.com> Date: Mon, 29 Sep 2025 08:59:18 +0800 Subject: [PATCH] commit --- .../manage/LiteracyCourseController.java | 84 ++++++- .../literacy/models/LiteracyActivity.java | 6 +- .../models/LiteracyActivityCourse.java | 6 +- .../literacy/models/LiteracyBlackList.java | 7 +- .../literacy/models/LiteracyCourse.java | 132 +--------- .../models/LiteracyMobileSignColumn.java | 8 +- .../literacy/models/LiteracySourceCourse.java | 145 +++++++++++ .../literacy/models/LiteracyTeacher.java | 8 +- .../literacy/models/LiteracyType.java | 8 +- .../literacy/models/LiteracyTypeLimit.java | 8 +- .../literacy/models/LiteracyUser.java | 6 +- .../literacy/models/LiteracyUserCourse.java | 6 +- .../activity/trainSignUp/manage/index.html | 13 +- .../literacy/course/basicForm.js | 231 ++++++++++++++++++ .../literacy/course/courseTime.js | 189 ++++++++++++++ .../dayofficework/literacy/course/index.html | 57 ++++- .../dayofficework/literacy/course/info.js | 80 ++++++ .../literacy/manage/basicForm.js | 10 +- .../dayofficework/literacy/manage/index.html | 13 +- 19 files changed, 853 insertions(+), 164 deletions(-) create mode 100644 src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracySourceCourse.java create mode 100644 src/main/resources/views/platform/zhgh/dayofficework/literacy/course/basicForm.js create mode 100644 src/main/resources/views/platform/zhgh/dayofficework/literacy/course/courseTime.js create mode 100644 src/main/resources/views/platform/zhgh/dayofficework/literacy/course/info.js diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/controller/manage/LiteracyCourseController.java b/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/controller/manage/LiteracyCourseController.java index 07b6a0a7..533353c9 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/controller/manage/LiteracyCourseController.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/controller/manage/LiteracyCourseController.java @@ -1,18 +1,32 @@ package com.budwk.app.zhgh.dayofficework.literacy.controller.manage; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.hutool.core.util.StrUtil; +import com.budwk.app.base.annotation.SLog; +import com.budwk.app.base.page.Pagination; import com.budwk.app.base.param.PageForm; import com.budwk.app.base.result.Result; import com.budwk.app.base.service.BaseService; +import com.budwk.app.base.utils.PageUtil; +import com.budwk.app.zhgh.dayofficework.literacy.models.LiteracySourceCourse; +import com.budwk.app.zhgh.dayofficework.literacy.models.LiteracyTeacher; import io.swagger.annotations.Api; import lombok.extern.slf4j.Slf4j; +import org.nutz.aop.interceptor.ioc.TransAop; +import org.nutz.dao.Cnd; import org.nutz.dao.Dao; +import org.nutz.dao.Sqls; +import org.nutz.dao.sql.Sql; +import org.nutz.ioc.aop.Aop; import org.nutz.ioc.loader.annotation.Inject; import org.nutz.ioc.loader.annotation.IocBean; +import org.nutz.lang.util.NutMap; import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; +import java.util.List; + /** * @ClassName LiteracyCourseController * @Author JyuHsin @@ -40,8 +54,76 @@ public class LiteracyCourseController { @At @SaCheckPermission("literacy.course") - public Result pageData(PageForm pageForm) { + public Result pageData(PageForm pageForm, + @Param("courseType") String courseType, + @Param("teacherId") String teacherId) { + Sql sql = Sqls.create(""" + SELECT + sc.*, + t.typeName, + te.NAME AS teacherName + FROM + `literacy_source_course` sc + LEFT JOIN literacy_type t ON sc.courseType = t.id + LEFT JOIN literacy_teacher te ON sc.courseInstructor = te.id + $condition + """); + Cnd cnd = Cnd.NEW(); + cnd.and(Cnd.likeEX("sc.courseName", pageForm.getSearchKeyword())); + cnd.andEX("sc.courseType", "=", courseType); + cnd.andEX("sc.courseInstructor", "=", teacherId); + + if (StrUtil.isAllBlank(pageForm.getPageOrderName(), pageForm.getPageOrderBy())) { + cnd.desc("sc.createdAt"); + } else { + cnd.orderBy(pageForm.getPageOrderName(), PageUtil.getOrder(pageForm.getPageOrderBy())); + } + + sql.setCondition(cnd); + Pagination pagination = baseService.listPageMap(pageForm.getPageNumber(), pageForm.getPageSize(), sql); + return Result.success(pagination); + } + + @At + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("literacy.course") + @SLog(type = "职工素养-课程管理", tag = "新增/编辑", msg = "新增/编辑教师") + public Result submit(LiteracySourceCourse sourceCourse) { + if(StrUtil.isNotBlank(sourceCourse.getId())) { + dao.updateIgnoreNull(sourceCourse); + } else { + sourceCourse.setOpenOtherUnion(false); + dao.insert(sourceCourse); + } return Result.success(); } + + @At + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("literacy.course") + @SLog(type = "职工素养-课程管理", tag = "删除", msg = "删除教师") + public Object delete(@Param(value = "id") String id) { + dao.clear(LiteracySourceCourse.class, Cnd.where("id", "=", id)); + return Result.success(); + } + + @At + @Aop(TransAop.READ_COMMITTED) + @SaCheckPermission("literacy") + public Object querySourceCourses() { + Sql sql = Sqls.create(""" + SELECT + sc.*, + t.typeName, + te.NAME AS teacherName, + te.NAME AS courseInstructor + FROM + `literacy_source_course` sc + LEFT JOIN literacy_type t ON sc.courseType = t.id + LEFT JOIN literacy_teacher te ON sc.courseInstructor = te.id + """); + List list = baseService.listMap(sql); + return Result.success(list); + } } diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyActivity.java b/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyActivity.java index 43a2f4d1..28a40e19 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyActivity.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyActivity.java @@ -21,8 +21,10 @@ import java.util.List; @EqualsAndHashCode(callSuper = false) public class LiteracyActivity extends BaseModel implements Serializable, SysHomeConvert { - @Name - @PrevInsert(uu32 = true) + @Name + @Comment("ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) private String id; @Column diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyActivityCourse.java b/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyActivityCourse.java index bd8cde93..7a8b0e89 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyActivityCourse.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyActivityCourse.java @@ -15,8 +15,10 @@ import java.util.Date; @EqualsAndHashCode(callSuper = false) public class LiteracyActivityCourse { - @Name - @PrevInsert(uu32 = true) + @Name + @Comment("ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) private String id; @Column diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyBlackList.java b/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyBlackList.java index 40145e6a..87d398bb 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyBlackList.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyBlackList.java @@ -13,9 +13,10 @@ import org.nutz.dao.interceptor.annotation.PrevInsert; @EqualsAndHashCode(callSuper = false) public class LiteracyBlackList { - @Name - @ColDefine(type = ColType.VARCHAR, width = 32) - @PrevInsert(uu32 = true) + @Name + @Comment("ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) private String id; @Column diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyCourse.java b/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyCourse.java index a9d692fc..9c6ef458 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyCourse.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyCourse.java @@ -16,10 +16,12 @@ import java.util.List; @Comment("职工素养的子活动") @Table @EqualsAndHashCode(callSuper = false) -public class LiteracyCourse extends BaseModel implements Serializable { +public class LiteracyCourse extends LiteracySourceCourse implements Serializable { - @Name - @PrevInsert(uu32 = true) + @Name + @Comment("ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) private String id; @Column @@ -27,137 +29,23 @@ public class LiteracyCourse extends BaseModel implements Serializable { @Comment("活动ID") private String activityId; - @Column - @ColDefine(type = ColType.VARCHAR, width = 50) - @Comment("课程名称") - private String courseName; - - @Column - @ColDefine(type = ColType.INT) - @Comment("课程人数") - private int coursePeopleNumber; - - @Column - @ColDefine(type = ColType.INT) - @Default(value = "0") - @Comment("预留名额") - private int courseReservedNumber; - - @Column - @ColDefine(type = ColType.VARCHAR, width = 50) - @Comment("课程地点") - private String courseLocation; - - @Column - @ColDefine(type = ColType.VARCHAR, width = 32) - @Comment("课程类型") - private String courseType; - - @Column - @ColDefine(type = ColType.MYSQL_JSON) - @Comment("课程地点坐标") - private List courseLocationCoordinates; - - @Column - @ColDefine(type = ColType.VARCHAR, width = 20) - @Comment("课程讲师") - private String courseInstructor; - - @Column - @ColDefine(type = ColType.VARCHAR, width = 32) - @Comment("校区") - private String campus; - - @Column - @ColDefine(type = ColType.BOOLEAN) - @Comment("报名人数是否限制") - private Boolean courseIsLimitApply; - - @Column - @ColDefine(type = ColType.INT) - @Comment("序号") - private int orderNum; - - @Column - @ColDefine(customType = "longtext") - @Comment("详细信息") - private String introduce; - @Many(field = "courseId") private List courseTimeList; + @Column + @Comment("分工会人数限制") + @ColDefine(type = ColType.MYSQL_JSON) + private List unionLimit; + //已报人数 private Integer hasRegisterNum; - private Boolean isBringFamily; - private Boolean isAddFamily; - //是否报过该课程 private Boolean isSign; - //还能报该类型的课程吗 private Boolean canSignThisCourseType; - - @Column - @Comment("分工会人数限制") - @ColDefine(type = ColType.MYSQL_JSON) - private List unionLimit; - - @Column - @ColDefine(type = ColType.BOOLEAN) - @Comment("移动端是否签到") - private boolean isMobileSign; - - @Column - @ColDefine(type = ColType.INT) - @Comment("签到方式 1.扫描二维码签到 2.被扫 3.gps签到") - private Integer signType; - - @Column - @ColDefine(type = ColType.BOOLEAN) - @Comment("移动端是否签收礼品") - private boolean isReceiveGift; - - @Column - @ColDefine(type = ColType.INT) - @Comment("领取礼品方式 1.扫描二维码 2.线下") - private Integer giftType; - - @Column - @ColDefine(type = ColType.INT) - @Comment("预留名额方式 1.报名人员减少模式 2.报名人数不变模式") - private Integer reserveMode; - - @Column - @Comment("承办工会") - @ColDefine(type = ColType.VARCHAR, width = 32) - private String hostUnionId; - - @Column - @Comment("对内报名时间") - @ColDefine(type = ColType.VARCHAR, width = 32) - private String interTime; - - @Column - @Comment("是否开放给其他工会") - @ColDefine(type = ColType.BOOLEAN, width = 4) - private Boolean openOtherUnion; - - @Column - @Comment("分类标识") - @ColDefine(type = ColType.VARCHAR, width = 30) - private String assort; - - @Column - @ColDefine(type = ColType.INT) - @Default(value = "0") - @Comment("候补名额数") - private Integer waitingNum; - //候补已报人数 private Integer hasWaitingNum; - private String courseTimeName; - } diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyMobileSignColumn.java b/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyMobileSignColumn.java index 8e4f23e1..252c3ebc 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyMobileSignColumn.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyMobileSignColumn.java @@ -17,10 +17,10 @@ public class LiteracyMobileSignColumn { private static final long serialVersionUID = 1L; - @Name - @Comment("id") - @ColDefine(type = ColType.VARCHAR, width = 32) - @PrevInsert(uu32 = true) + @Name + @Comment("ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) private String id; @Column diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracySourceCourse.java b/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracySourceCourse.java new file mode 100644 index 00000000..0cd85442 --- /dev/null +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracySourceCourse.java @@ -0,0 +1,145 @@ +package com.budwk.app.zhgh.dayofficework.literacy.models; + +import cn.hutool.json.JSONObject; +import com.budwk.app.base.model.BaseModel; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.nutz.dao.entity.annotation.*; +import org.nutz.dao.interceptor.annotation.PrevInsert; +import org.nutz.lang.util.NutMap; + +import java.util.List; + +/** + * @ClassName LiteracySourceCourse + * @Author JyuHsin + * @Date 2025/9/28 14:46 + * @Version 1.0 + * @Description TODO + */ +@Data +@Accessors(chain = true) +@Comment("职工素养-课程管理") +@Table +@EqualsAndHashCode(callSuper = false) +public class LiteracySourceCourse extends BaseModel { + + @Name + @Comment("ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) + private String id; + + @Column + @ColDefine(type = ColType.VARCHAR, width = 50) + @Comment("课程名称") + private String courseName; + + @Column + @ColDefine(type = ColType.INT) + @Comment("课程人数") + private int coursePeopleNumber; + + @Column + @ColDefine(type = ColType.INT) + @Default(value = "0") + @Comment("预留名额") + private int courseReservedNumber; + + @Column + @ColDefine(type = ColType.VARCHAR, width = 50) + @Comment("课程地点") + private String courseLocation; + + @Column + @ColDefine(type = ColType.VARCHAR, width = 32) + @Comment("课程类型") + private String courseType; + + @Column + @ColDefine(type = ColType.MYSQL_JSON) + @Comment("课程地点坐标") + private List courseLocationCoordinates; + + @Column + @ColDefine(type = ColType.VARCHAR, width = 50) + @Comment("课程讲师") + private String courseInstructor; + + @Column + @ColDefine(type = ColType.VARCHAR, width = 32) + @Comment("校区") + private String campus; + + @Column + @ColDefine(type = ColType.BOOLEAN) + @Comment("报名人数是否限制") + private Boolean courseIsLimitApply; + + @Column + @ColDefine(type = ColType.INT) + @Comment("序号") + private int orderNum; + + @Column + @ColDefine(customType = "longtext") + @Comment("详细信息") + private String introduce; + + @Column + @ColDefine(type = ColType.BOOLEAN) + @Comment("移动端是否签到") + private boolean isMobileSign; + + @Column + @ColDefine(type = ColType.INT) + @Comment("签到方式 1.扫描二维码签到 2.被扫 3.gps签到") + private Integer signType; + + @Column + @ColDefine(type = ColType.BOOLEAN) + @Comment("移动端是否签收礼品") + private boolean isReceiveGift; + + @Column + @ColDefine(type = ColType.INT) + @Comment("领取礼品方式 1.扫描二维码 2.线下") + private Integer giftType; + + @Column + @ColDefine(type = ColType.INT) + @Comment("预留名额方式 1.报名人员减少模式 2.报名人数不变模式") + private Integer reserveMode; + + @Column + @Comment("承办工会") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String hostUnionId; + + @Column + @Comment("对内报名时间") + @ColDefine(type = ColType.VARCHAR, width = 32) + private String interTime; + + @Column + @Comment("是否开放给其他工会") + @ColDefine(type = ColType.BOOLEAN, width = 4) + private Boolean openOtherUnion; + + @Column + @Comment("分类标识") + @ColDefine(type = ColType.VARCHAR, width = 30) + private String assort; + + @Column + @ColDefine(type = ColType.INT) + @Default(value = "0") + @Comment("候补名额数") + private Integer waitingNum; + + @Column + @ColDefine(type = ColType.MYSQL_JSON) + @Comment("时间段") + private List timeList; +} diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyTeacher.java b/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyTeacher.java index e9cd345a..d5605adc 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyTeacher.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyTeacher.java @@ -20,10 +20,10 @@ public class LiteracyTeacher extends BaseModel implements Serializable { @Serial private static final long serialVersionUID = 1L; - @Name - @Comment("id") - @ColDefine(type = ColType.VARCHAR, width = 32) - @PrevInsert(uu32 = true) + @Name + @Comment("ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) private String id; @Column diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyType.java b/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyType.java index 94787cc6..1cc0edbb 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyType.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyType.java @@ -21,10 +21,10 @@ public class LiteracyType extends BaseModel implements Serializable { @Serial private static final long serialVersionUID = 1L; - @Name - @Comment("id") - @ColDefine(type = ColType.VARCHAR, width = 32) - @PrevInsert(uu32 = true) + @Name + @Comment("ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) private String id; @Column diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyTypeLimit.java b/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyTypeLimit.java index f6bbbde6..59624c35 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyTypeLimit.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyTypeLimit.java @@ -17,10 +17,10 @@ public class LiteracyTypeLimit implements Serializable { private static final long serialVersionUID = 1L; - @Name - @Comment("id") - @ColDefine(type = ColType.VARCHAR, width = 32) - @PrevInsert(uu32 = true) + @Name + @Comment("ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) private String id; @Column diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyUser.java b/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyUser.java index d581fad0..f7dcd15c 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyUser.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyUser.java @@ -19,8 +19,10 @@ import java.util.List; @TableIndexes({@Index(name = "INDEX_TRAIN_SIGN_UP_USER_COURSEID", fields = {"courseId"}, unique = false)}) public class LiteracyUser implements Serializable { - @Name - @PrevInsert(uu32 = true) + @Name + @Comment("ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) private String id; @Column diff --git a/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyUserCourse.java b/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyUserCourse.java index dbef4c26..3fc26190 100644 --- a/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyUserCourse.java +++ b/src/main/java/com/budwk/app/zhgh/dayofficework/literacy/models/LiteracyUserCourse.java @@ -20,8 +20,10 @@ import java.util.Date; }) public class LiteracyUserCourse implements Serializable { - @Name - @PrevInsert(uu32 = true) + @Name + @Comment("ID") + @ColDefine(type = ColType.VARCHAR, width = 32) + @PrevInsert(uu32 = true) private String id; @Column diff --git a/src/main/resources/views/platform/zhgh/activity/trainSignUp/manage/index.html b/src/main/resources/views/platform/zhgh/activity/trainSignUp/manage/index.html index 0366ed3f..5aa7908e 100644 --- a/src/main/resources/views/platform/zhgh/activity/trainSignUp/manage/index.html +++ b/src/main/resources/views/platform/zhgh/activity/trainSignUp/manage/index.html @@ -3,7 +3,18 @@ layout("/layouts/platform.html"){ #-->
diff --git a/src/main/resources/views/platform/zhgh/dayofficework/literacy/course/basicForm.js b/src/main/resources/views/platform/zhgh/dayofficework/literacy/course/basicForm.js new file mode 100644 index 00000000..fc6e4623 --- /dev/null +++ b/src/main/resources/views/platform/zhgh/dayofficework/literacy/course/basicForm.js @@ -0,0 +1,231 @@ + +const basicForm = { + template: /*language=HTML*/ ` +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 点击设置课程时间 + 您已设置{{ formData.timeList.length || 0 }}个课程时间 + + + + + + 签到 + 不签到 + + + + + + + 扫描二维码 + 被扫 + GPS定位签到 + + + + + + 点击设置地点坐标 + + + + + + 领取 + 不领取 + + + + + + + 扫描二维码 + 面对面确认 + + + + + + + 报名人员减少模式 + 候补模式 + + + + + + + + + + + + + + +
+ 取 消 + 确 定 +
+ + +
+ `, + dicts: ["USER_CAMPUS"], + data() { + return { + formData: { + courseReservedNumber: 0, + timeList: [], + unionLimit: [], + isMobileSign: false, + signType: 1, + isReceiveGift: false, + giftType: 1, + reserveMode: 1, + }, + rules: { + courseName: [{ required: true, message: "必填", trigger: ["change", "blur"] }], + courseType: [{ required: true, message: "必填", trigger: ["change", "blur"] }], + coursePeopleNumber: [{ required: true, message: "必填", trigger: ["change", "blur"] }], + courseReservedNumber: [{ required: true, message: "必填", trigger: ["change", "blur"] }], + campus: [{ required: true, message: "必填", trigger: ["change", "blur"] }], + courseLocation: [{ required: true, message: "必填", trigger: ["change", "blur"] }], + courseInstructor: [{ required: true, message: "必填", trigger: ["change", "blur"] }], + timeList: [{ required: true, message: "必填", trigger: ["change", "blur"] }], + isMobileSign: [{ required: true, message: "必填", trigger: ["change", "blur"] }], + signType: [{ required: true, message: "必填", trigger: ["change", "blur"] }], + isReceiveGift: [{ required: true, message: "必填", trigger: ["change", "blur"] }], + giftType: [{ required: true, message: "必填", trigger: ["change", "blur"] }], + reserveMode: [{ required: true, message: "必填", trigger: ["change", "blur"] }], + waitingNum: [{ required: true, message: "必填", trigger: ["change", "blur"] }], + courseLocationCoordinates: [{ required: true, message: "必填", trigger: ["change", "blur"] }], + }, + typeOptions: [], + teacherOptions: [], + unionList: [], + } + }, + components: { + "course-time": courseTime, + }, + methods: { + onOpen(row) { + if(row && row.timeList) { + row.timeList = JSON.parse(row.timeList) + } + this.formData = clone(row) + }, + async submit() { + const valid = await this.$refs["form"].validate() + if (valid) { + this.$confirm("您确定要提交吗?", "提示", { + confirmButtonText: "确定", + cancelButtonText: "取消", + type: "warning" + }).then(() => { + const formData = clone(this.formData) + formData.timeList = JSON.stringify(formData.timeList) + this.$axios.post('/platform/literacy/course/submit', formData).then(res => { + if (res.code === 0) { + this.$message.success(res.msg) + this.$emit('refresh') + } + }) + }) + } + }, + openSetUpCourseTime() { + this.$refs.courseTimeRef.onOpen(this.formData) + }, + async getTypeOptions() { + const resp = await this.$axios.post("/platform/literacy/type/getAllType") + this.typeOptions = resp.data + }, + async getTeacherOptions() { + const resp = await this.$axios.post("/platform/literacy/teacher/queryTeachers") + this.teacherOptions = resp.data + }, + }, + async created() { + await this.getTypeOptions() + await this.getTeacherOptions() + this.unionList = await this.$businessTool.listUnion() + + }, + style: /*language=CSS*/ ` + + ` +} diff --git a/src/main/resources/views/platform/zhgh/dayofficework/literacy/course/courseTime.js b/src/main/resources/views/platform/zhgh/dayofficework/literacy/course/courseTime.js new file mode 100644 index 00000000..2c4d309c --- /dev/null +++ b/src/main/resources/views/platform/zhgh/dayofficework/literacy/course/courseTime.js @@ -0,0 +1,189 @@ +const courseTime = { + template: /*language=HTML*/ ` +
+ +
温馨提示:有人员报名后,禁止修改下列时间,如有修改,请联系管理员
+
选择日期
+ +
设置时间
+ + + + 一键设置开始/结束时间 + 报名人数是否限制: + + + + + + + + + + + + + + + + + + + + + + + 确定 + +
+
+ `, + data() { + return { + setUpCourseDialog: false, + formData: {}, + courseTimeOneKeySet: { + startTime: "", + endTime: "" + }, + } + }, + methods: { + removeSetUpTableCourseRow(row, index) { + this.formData.timeList.splice(index, 1) + //培训时间列表日期数组 + const courseDateArray = this.formData.timeList.map((v) => + this.$moment(v.courseDate).format("YYYY-MM-DD") + ) + //选择课程日期数组 + const scdList = this.formData.setUpCourseData + this.formData.setUpCourseData = scdList.filter((v) => { + return courseDateArray.includes(this.$moment(v).format("YYYY-MM-DD")) + }) + }, + oneKeySetStartEndTime() { + const { startTime, endTime } = this.courseTimeOneKeySet + this.formData.timeList.forEach((v) => { + this.$set(v, "courseStartTime", startTime) + this.$set(v, "courseEndTime", endTime) + }) + this.$forceUpdate() + }, + setUpCourseDataChange(val) { + if (!val) { + this.formData.timeList = [] + return + } + //培训时间日期Set + if (this.formData.timeList === undefined) { + this.$set(this.formData, "timeList", []) + } + const ctList = new Set( + this.formData.timeList.map((v) => this.$moment(v.courseDate).format("YYYY-MM-DD")) + ) + val.forEach((v) => { + if (!ctList.has(v)) { + this.formData.timeList.push({ + courseDate: v, + courseTime: null + }) + } + }) + this.formData.timeList = this.formData.timeList.filter((v) => { + return val.includes(this.$moment(v.courseDate).format("YYYY-MM-DD")) + }) + this.formData.timeList.sort((a, b) => { + return Date.parse(a["courseDate"]) - Date.parse(b["courseDate"]) + }) + }, + //设置课程时间确定 + doConfirmSetUpCourse() { + const courseTableData = this.formData.timeList + if (courseTableData.length === 0) { + this.$message.warning("请填写时间!") + return + } + if (courseTableData && courseTableData.length > 0) { + const valid = courseTableData.every((v) => v.courseStartTime && v.courseEndTime && v.courseStartTime < v.courseEndTime) + if (!valid) { + this.$message.warning("时间填写不完整或者有误!") + return + } + this.setUpCourseDialog = false + } + }, + onOpen(formData) { + this.formData = formData + this.setUpCourseDialog = true + }, + }, + style: /*language=CSS*/ ` + + ` +} diff --git a/src/main/resources/views/platform/zhgh/dayofficework/literacy/course/index.html b/src/main/resources/views/platform/zhgh/dayofficework/literacy/course/index.html index 46f2b9c9..e69ab1a5 100644 --- a/src/main/resources/views/platform/zhgh/dayofficework/literacy/course/index.html +++ b/src/main/resources/views/platform/zhgh/dayofficework/literacy/course/index.html @@ -12,7 +12,7 @@ layout("/layouts/platform.html"){ - + - - + + @@ -67,15 +67,17 @@ layout("/layouts/platform.html"){
diff --git a/src/main/resources/views/platform/zhgh/dayofficework/literacy/course/info.js b/src/main/resources/views/platform/zhgh/dayofficework/literacy/course/info.js new file mode 100644 index 00000000..334f9411 --- /dev/null +++ b/src/main/resources/views/platform/zhgh/dayofficework/literacy/course/info.js @@ -0,0 +1,80 @@ +const info = { + template: ` +
+ + + {{viewData.courseName}} + + + {{viewData.typeName}} + + + {{viewData.coursePeopleNumber}} + + + {{viewData.courseReservedNumber}} + + + {{viewData.campus}} + + + {{viewData.courseLocation}} + + + {{viewData.teacherName}} + + + {{viewData.assort}} + + + + + + + + + {{viewData.isMobileSign ? '签到' : '不签到'}} + + + 扫描二维码 + 被扫 + GPS签到 + + + {{viewData.isReceiveGift ? '领取' : '不领取'}} + + + 扫描二维码 + 面对面确认 + + + {{viewData.reserveMode ? '报名人员减少模式' : '候补模式'}} + + + {{viewData.waitingNum}} + + + + + + + + + + +
+ `, + data() { + return { + viewData: {}, + } + }, + methods: { + onOpen(row) { + if(row && row.timeList) { + row.timeList = JSON.parse(row.timeList) + } + this.viewData = clone(row) + } + } +} diff --git a/src/main/resources/views/platform/zhgh/dayofficework/literacy/manage/basicForm.js b/src/main/resources/views/platform/zhgh/dayofficework/literacy/manage/basicForm.js index 461cdc24..cc502807 100644 --- a/src/main/resources/views/platform/zhgh/dayofficework/literacy/manage/basicForm.js +++ b/src/main/resources/views/platform/zhgh/dayofficework/literacy/manage/basicForm.js @@ -158,7 +158,9 @@ const basicForm = { @@ -331,6 +333,7 @@ const basicForm = { }, campusList: [], courseTypeList: [], + sourceCourseList: [], } }, components: { @@ -566,10 +569,15 @@ const basicForm = { } } }, + async querySourceCourses() { + const resp = await this.$axios.post("/platform/literacy/course/querySourceCourses", {}) + return resp.data + }, async initData(row) { this.activityGroupList = await this.getActivityGroup() this.historicalActList = await this.getHistoricalActList() this.courseTypeList = await this.getAllType() + this.sourceCourseList = await this.querySourceCourses() await this.init(row) }, }, diff --git a/src/main/resources/views/platform/zhgh/dayofficework/literacy/manage/index.html b/src/main/resources/views/platform/zhgh/dayofficework/literacy/manage/index.html index 4523c77a..096e347a 100644 --- a/src/main/resources/views/platform/zhgh/dayofficework/literacy/manage/index.html +++ b/src/main/resources/views/platform/zhgh/dayofficework/literacy/manage/index.html @@ -3,7 +3,18 @@ layout("/layouts/platform.html"){ #-->