From 3f83dd68a9d15a06176c34dc04643059386eecc3 Mon Sep 17 00:00:00 2001
From: huangzhe <3451701311@qq.com>
Date: Tue, 19 Aug 2025 10:05:19 +0800
Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=E5=87=BD=E6=95=B0=E6=8A=BD?=
=?UTF-8?q?=E7=A6=BB=EF=BC=8C=E4=BC=98=E5=8C=96=E7=95=8C=E9=9D=A2=E6=98=BE?=
=?UTF-8?q?=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
抽离出提示语内容
现在提示语可随着选择的时间自由变动
---
src/views/courselibrary/CoursewareManage.vue | 44 +++++++++-----------
1 file changed, 20 insertions(+), 24 deletions(-)
diff --git a/src/views/courselibrary/CoursewareManage.vue b/src/views/courselibrary/CoursewareManage.vue
index 4d630252..67c27054 100644
--- a/src/views/courselibrary/CoursewareManage.vue
+++ b/src/views/courselibrary/CoursewareManage.vue
@@ -803,7 +803,7 @@
@@ -1419,7 +1419,7 @@ import DropDown from "@/components/common/DropDown";
import { checkPer, checkOwner } from "@/utils/utils";
import dayjs from "dayjs";
import { duration } from "moment";
-import { DeleteOutlined, DownOutlined ,QuestionCircleOutlined } from "@ant-design/icons-vue";
+import { DeleteOutlined, DownOutlined, QuestionCircleOutlined } from "@ant-design/icons-vue";
//列表表格
const moreLine = (item) => {
@@ -5062,9 +5062,23 @@ export default defineComponent({
};
/**
- * 提示签到时间的范围
+ * 提示签到时间的范围提示语
*/
- const signDateTimeRange = ref("默认");
+ const signDateTimeRange = computed(() => {
+ const classStartTime = dayjs(state.xjkkinputV3[0])
+ const classEndTime = dayjs(state.xjkkinputV3[1])
+ const endSignTime = dayjs(classEndTime.add(1, "day").format("YYYY-MM-DD")).subtract(1, "second").format("YYYY-MM-DD HH:mm:ss")
+ const startSignTime = dayjs(classStartTime.format("YYYY-MM-DD")).format("YYYY-MM-DD HH:mm:ss")
+
+ if (signDateTimeType.value === signTimeSection.NoLimit) {
+ return `( 当前时间 至 ${endSignTime} )`
+ } else if (signDateTimeType.value === signTimeSection.OpenDay) {
+ return `( ${startSignTime} 至 ${endSignTime} )`
+ } else if (signDateTimeType.value === signTimeSection.Custom) {
+ return ""
+ }
+ return ""
+ })
function resetSignDateTime() {
signDateTimeType.value = 0;
@@ -5107,20 +5121,15 @@ export default defineComponent({
signDateTimeType.value = type;
if (type === signTimeSection.NoLimit) {
// 如果不限制,那么就是从当前时间开始,到课程结束时间结束
- signDateTimeRange.value = `( 当前时间 至 ${endSignTime} )`;
-
const diffStartTime = (dayjs(classStartTime).diff(dayjs(), "minute"))
state.beforeValue = diffStartTime <= 0 ? 0 : diffStartTime
state.afterValue = (dayjs(endSignTime).diff(classEndTime, "minute"))
console.log("before value, after value", state.beforeValue, state.afterValue)
} else if (type === signTimeSection.OpenDay) {
// 如果限制在开课时间,选项签到规则是课程创建的“面授时间”的起始时间至开课当日23时59分。
- signDateTimeRange.value = `( ${startSignTime} 至 ${endSignTime} )`;
state.afterStartValue = (dayjs(endSignTime).diff(classEndTime, "minute"))
state.beforeValue = (dayjs(classStartTime).diff(startSignTime, "minute"))
console.log("before value, after value", state.beforeValue, state.afterStartValue)
- } else if (type === signTimeSection.Custom) {
- signDateTimeRange.value = "";
}
/**
@@ -5135,8 +5144,8 @@ export default defineComponent({
/**
* 根据考勤开始前和考勤开始后的时间,切换签到时间类型
- * @param before
- * @param after
+ * @param before {number}
+ * @param after {number}
*/
function switchSignDateTimeType(before, after) {
signDateTimeType.value = 0
@@ -5150,28 +5159,15 @@ export default defineComponent({
const isLastSecond = dayjs(end).add(after, "minute").format("HH:mm:ss") === "23:59:00"
const isFirstSecond = dayjs(start).subtract(before, "minute").format("HH:mm:ss") === "00:00:00"
console.log("isLastSecond", isLastSecond, "isFirstSecond", isFirstSecond);
- console.log(dayjs(end).add(after, "minute").format("HH:mm:ss"));
- console.log(dayjs(start).subtract(before, "minute").format("HH:mm:ss"));
-
- // 面授开课时间
- const classStartTime = dayjs(state.xjkkinputV3[0])
- // 面授结束时间
- const classEndTime = dayjs(state.xjkkinputV3[1])
- const endSignTime = dayjs(dayjs(classEndTime).add(1, "day").format("YYYY-MM-DD")).subtract(1, "second").format("YYYY-MM-DD HH:mm:ss")
- const startSignTime = dayjs(dayjs(classStartTime).format("YYYY-MM-DD")).format("YYYY-MM-DD HH:mm:ss")
if (isLastSecond) {
if (isFirstSecond) {
signDateTimeType.value = signTimeSection.OpenDay
- signDateTimeRange.value = `( ${startSignTime} 至 ${endSignTime} )`;
} else {
signDateTimeType.value = signTimeSection.NoLimit
- signDateTimeRange.value = `( 当前时间 至 ${endSignTime} )`;
}
} else {
signDateTimeType.value = signTimeSection.Custom
- // state.beforeValue = before
- // state.afterValue = after
}
}
// window.dayjs = dayjs;
From 6d2d1164294226e5c7fe154341f96d79950b3703 Mon Sep 17 00:00:00 2001
From: huangzhe <3451701311@qq.com>
Date: Wed, 20 Aug 2025 08:41:22 +0800
Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E7=AD=BE?=
=?UTF-8?q?=E5=88=B0=E6=8F=90=E7=A4=BA=E8=AF=AD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/courselibrary/CoursewareManage.vue | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/views/courselibrary/CoursewareManage.vue b/src/views/courselibrary/CoursewareManage.vue
index 67c27054..9add9c13 100644
--- a/src/views/courselibrary/CoursewareManage.vue
+++ b/src/views/courselibrary/CoursewareManage.vue
@@ -766,7 +766,7 @@
-
From 7000e3aa8c3fa00cea50cbebc81e57e2efc99065 Mon Sep 17 00:00:00 2001
From: huangzhe <3451701311@qq.com>
Date: Tue, 26 Aug 2025 19:44:06 +0800
Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=E5=BD=93=E9=80=89=E6=8B=A9=E8=87=AA?=
=?UTF-8?q?=E5=AE=9A=E4=B9=89=E7=9A=84=E6=97=B6=E5=80=99=EF=BC=8C=20?=
=?UTF-8?q?=E6=97=A0=E6=B3=95=E6=8A=8A=E8=BE=93=E5=85=A5=E6=A1=86=E7=BD=AE?=
=?UTF-8?q?=E7=A9=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/views/courselibrary/CoursewareManage.vue | 32 ++++++++++++++++++--
1 file changed, 30 insertions(+), 2 deletions(-)
diff --git a/src/views/courselibrary/CoursewareManage.vue b/src/views/courselibrary/CoursewareManage.vue
index 9add9c13..ea5e1836 100644
--- a/src/views/courselibrary/CoursewareManage.vue
+++ b/src/views/courselibrary/CoursewareManage.vue
@@ -1373,6 +1373,7 @@ import ProjPowerList from "../../components/drawers/ProjPowerList";
import ProjCheckShip from "../../components/drawers/ProjCheckPower";
import AssessmentList from "../../components/drawers/AssessmentList.vue";
import dialog from "@/utils/dialog";
+import {nextTick} from "vue"
// import { queryAssessmentDetailList } from "@/api/indexResearch";
import {
list,
@@ -2610,6 +2611,23 @@ export default defineComponent({
codeType: null, //二维码类型
});
+ let RENDER_SINGLE = true
+
+ watch(()=>state.cstm_hs, (value)=> {
+ !value && (RENDER_SINGLE = true)
+ console.log(value, "cstm_hs");
+ })
+ watch(()=>[state.xjkkinputV3], (value)=>{
+ // 避免初次渲染造成数据异常, 因为上面不是 props 传递进来的
+ // 所以不得已作此处理
+ if (RENDER_SINGLE) {
+ RENDER_SINGLE = false
+ return
+ }
+ console.log(value, "---------------")
+ nextTick(handleSelectSignDateTime)
+ }, {deep: true})
+
const nums = ref(0);
watch(durationText, (val) => {
nums.value++;
@@ -3641,6 +3659,16 @@ export default defineComponent({
};
//保存开课
const handleSureStu = async () => {
+ // 检测开课前后的数值是否正确
+ if ( !(isNumber(state.afterStartValue) && isNumber(state.beforeValue))) {
+ if(!(state.afterStartValue === null && state.beforeValue === null)) {
+ message.warning("开始前或开始后数值有误,请重新填写")
+ return
+ }
+ }
+ function isNumber(value){
+ return typeof value === 'number' && !isNaN(value);
+ }
if (editBeginClass.value) {
message.info("讲师费已进入审批阶段,无法编辑");
return;
@@ -5123,8 +5151,8 @@ export default defineComponent({
// 如果不限制,那么就是从当前时间开始,到课程结束时间结束
const diffStartTime = (dayjs(classStartTime).diff(dayjs(), "minute"))
state.beforeValue = diffStartTime <= 0 ? 0 : diffStartTime
- state.afterValue = (dayjs(endSignTime).diff(classEndTime, "minute"))
- console.log("before value, after value", state.beforeValue, state.afterValue)
+ state.afterStartValue = (dayjs(endSignTime).diff(classEndTime, "minute"))
+ console.log("before value, after value", state.beforeValue, state.afterStartValue)
} else if (type === signTimeSection.OpenDay) {
// 如果限制在开课时间,选项签到规则是课程创建的“面授时间”的起始时间至开课当日23时59分。
state.afterStartValue = (dayjs(endSignTime).diff(classEndTime, "minute"))