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

# Conflicts:
#	src/views/faceteach/FaceTeach.vue
#	src/views/faceteach/FaceTeachSignUp.vue
This commit is contained in:
yuping
2023-03-17 03:06:47 +08:00
17 changed files with 220 additions and 131 deletions

View File

@@ -27,7 +27,7 @@ import { GET_USER_INFO } from "@/api/ThirdApi";
import { getCookie } from "@/api/utils";
import { USER_INFO } from "@/api/api";
console.log("版本2.1.0------------");
console.log("版本1.4.7------------");
const store = useStore();
const router = useRouter();

View File

@@ -2,7 +2,7 @@
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-12-19 11:35:37
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2023-03-04 17:42:01
* @LastEditTime: 2023-03-10 03:44:17
* @FilePath: /fe-stu/src/views/project/method.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
@@ -35,6 +35,18 @@ function toDate(number, format) {
return format;
}
// 修改时间格式---------end-----------------------------
export {
toDate
// 修改时间格式
function changeTime(time) {
// console.log('time', time)
if (time) {
let newtime = time.replaceAll("-", "/")
return newtime
}
}
export {
toDate,
changeTime
}

View File

@@ -76,7 +76,7 @@
style="position: relative"
>
<img
:src="v.url"
:src="fielPath + v.url"
style="width: 66px; height: 66px; margin-left: 5px"
/>
<div
@@ -100,7 +100,14 @@
<div class="rescon clearfix">
<div class="head">
<div>
<img class="headavator" :src="item.studentAvatar" />
<img
class="headavator"
:src="
item.studentAvatar.includes('upload')
? item.studentAvatar
: fielPath + item.studentAvatar
"
/>
</div>
<div class="namehead">
{{ item.createName }}
@@ -120,7 +127,7 @@
<img
class="image"
style="width: 55px; height: 55px; border-radius: 4px"
:src="rowimg"
:src="fielPath + rowimg"
/>
</div>
</div>
@@ -159,7 +166,14 @@
}"
>
<div class="ava">
<img class="avainner" :src="itemc.studentAvatar" />
<img
class="avainner"
:src="
itemc.studentAvatar.includes('upload')
? itemc.studentAvatar
: fielPath + itemc.studentAvatar
"
/>
<div class="rename">{{ itemc.studentName }}</div>
</div>
<div class="redetail">
@@ -176,7 +190,7 @@
<img
class="image"
style="width: 55px; height: 55px; border-radius: 4px"
:src="rowimg"
:src="fielPath + rowimg"
/>
</div>
</div>
@@ -275,6 +289,7 @@ const props = defineProps({
default: null,
},
});
const fielPath = ref(import.meta.env.VITE_FILE_PATH);
const userInfo = computed(() => store.state.userInfo);
const disDetail = ref({});

View File

@@ -2,7 +2,7 @@
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2023-01-16 17:26:39
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2023-03-09 18:35:30
* @LastEditTime: 2023-03-10 15:20:30
* @FilePath: /stu_h5/src/components/ReturnHead.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
@@ -98,9 +98,13 @@ export default {
window.location.protocol + import.meta.env.VITE_BOE_STUDY,
"_top"
);
} else {
if (window.history.length <= 1) {
window.open(import.meta.env.VITE_BOE_STUDY, "_top");
} else {
router.back(-1);
}
}
};
const publishClick = () => {
if (props.postAdd) {

View File

@@ -44,7 +44,8 @@
<div
v-if="
projectStatus !== '3' &&
new Date(projectEndTime).getTime() > new Date().getTime()
new Date(changeTime(projectEndTime)).getTime() >
new Date().getTime()
"
class="sign"
>
@@ -153,6 +154,7 @@ import { useRoute } from "vue-router/dist/vue-router";
import { ElMessage } from "element-plus";
import { reactive, onUnmounted, toRefs, watch } from "vue";
import ReturnHead from "@/components/ReturnHead.vue";
import { changeTime } from "@/api/method";
const router = useRouter();
const returnclick = () => {
router.back();
@@ -204,10 +206,19 @@ let timer = null;
//判断能否签到
function isSignClick() {
// timer = setInterval(() => {
let beginTime = new Date(data.value.activityStartTime).getTime();
if (
data &&
data.value &&
data.value.activityStartTime &&
data.value.activityEndTime
) {
let newStartTime = changeTime(data.value.activityStartTime);
let newEndTime = changeTime(data.value.activityEndTime);
console.log("newStartTime", newStartTime, newEndTime);
let beginTime = new Date(newStartTime).getTime();
let endTime = !data.value.afterSignIn
? new Date(data.value.activityEndTime).getTime()
: new Date(data.value.activityStartTime).getTime();
? new Date(newEndTime).getTime()
: new Date(newStartTime).getTime();
let nowTime = new Date().getTime();
if (
data.value.beforeSignIn &&
@@ -247,6 +258,8 @@ function isSignClick() {
} else {
state.isAllowSign = false;
}
}
// console.log(
// "isAllowSign",
// state.isAllowSign,

View File

@@ -150,9 +150,9 @@
:style="{
background:
new Date().getTime() >
new Date(data.voteEndTime).getTime() ||
new Date(changeTime(data?.voteEndTime)).getTime() ||
new Date().getTime() <
new Date(data.voteStartTime).getTime()
new Date(changeTime(data?.voteStartTime)).getTime()
? '#ccc'
: data.isSubmit
? '#ccc'
@@ -186,6 +186,7 @@ import dayjs from "dayjs";
import store from "@/store";
import { ElMessage } from "element-plus";
import { useRoute, useRouter } from "vue-router/dist/vue-router";
import { changeTime } from "@/api/method";
const router = useRouter();
const {
query: { courseId, chapterOrStageId, infoId, id, btype, type },
@@ -217,19 +218,16 @@ console.log("投票基本信息", data);
let hour = ref(0);
let minute = ref(0);
let seconds = ref(0);
let timer = setInterval(() => {
let timer = setInterval(function () {
if (data && data.value && data.value.voteEndTime) {
let endTime = parseInt(new Date(data.value.voteEndTime).getTime() / 1000);
let newEndTime = changeTime(data.value.voteEndTime);
let endTime = parseInt(new Date(newEndTime).getTime() / 1000);
let nowTime = parseInt(new Date().getTime() / 1000);
if (endTime > nowTime) {
hour.value = parseInt(
dayjs(data.value.voteEndTime).diff(dayjs(), "minute") / 60
);
minute.value = parseInt(
dayjs(data.value.voteEndTime).diff(dayjs(), "minute") % 60
);
hour.value = parseInt(dayjs(newEndTime).diff(dayjs(), "minute") / 60);
minute.value = parseInt(dayjs(newEndTime).diff(dayjs(), "minute") % 60);
seconds.value = parseInt(
dayjs(data.value.voteEndTime).diff(dayjs(), "seconds") -
dayjs(newEndTime).diff(dayjs(), "seconds") -
(hour.value * 60 + minute.value) * 60
);
} else {
@@ -254,8 +252,8 @@ const choiceQuestion = (item, value) => {
const submitVote = () => {
console.log("投票详情", data.value);
let nowTime = new Date().getTime();
let maxTime = new Date(data.value.voteEndTime).getTime();
let minTime = new Date(data.value.voteStartTime).getTime();
let maxTime = new Date(changeTime(data.value.voteEndTime)).getTime();
let minTime = new Date(changeTime(data.value.voteStartTime)).getTime();
console.log(nowTime, maxTime, minTime);
// 当未到开始时间
if (nowTime < minTime || nowTime > maxTime) {

View File

@@ -117,7 +117,7 @@
style="position: relative"
>
<img
:src="v.url"
:src="fielPath + v.url"
style="width: 66px; height: 66px; margin-left: 5px"
/>
<div
@@ -141,7 +141,14 @@
<div class="rescon clearfix">
<div class="head">
<div>
<img class="headavator" :src="item.studentAvatar" />
<img
class="headavator"
:src="
item.studentAvatar.includes('upload')
? item.studentAvatar
: fielPath + item.studentAvatar
"
/>
</div>
<div class="namehead">
{{ item.createName }}
@@ -161,7 +168,7 @@
<img
class="image"
style="width: 55px; height: 55px; border-radius: 4px"
:src="rowimg"
:src="fielPath + rowimg"
/>
</div>
</div>
@@ -203,7 +210,14 @@
}"
>
<div class="ava">
<img class="avainner" :src="itemc.studentAvatar" />
<img
class="avainner"
:src="
itemc.studentAvatar.includes('upload')
? itemc.studentAvatar
: fielPath + itemc.studentAvatar
"
/>
<div class="rename">{{ itemc.studentName }}</div>
</div>
<div class="redetail">
@@ -220,7 +234,7 @@
<img
class="image"
style="width: 55px; height: 55px; border-radius: 4px"
:src="rowimg"
:src="fielPath + rowimg"
/>
</div>
</div>
@@ -354,6 +368,7 @@ const newrestore = ref([
head: px,
},
]);
const fielPath = ref(import.meta.env.VITE_FILE_PATH);
const disDetail = ref({});
const commontList = ref([]);
const spreadReply = ref(-1);

View File

@@ -168,6 +168,9 @@ onBeforeUnmount(() => {
// 发表帖子发布操作
const postAdd = () => {
console.log("用户信息", userInfo.value);
if (titleName.value == "") {
return ElMessage.warning("评论标题为空");
}
let obj = {
collectionNum: 0,
commentNum: 0,

View File

@@ -83,6 +83,7 @@ import { useUserInfo } from "@/api/utils";
import { ElMessage } from "element-plus";
import dayjs from "dayjs";
import store from "@/store";
import { changeTime } from "@/api/method";
const {
query: {
courseId: evaluationId,
@@ -115,21 +116,16 @@ const userInfo = computed(() => store.state.userInfo);
let hour = ref(0);
let minute = ref(0);
let seconds = ref(0);
let timer = setInterval(() => {
let timer = setInterval(function () {
if (data && data.value && data.value.evaluationEndTime) {
let endTime = parseInt(
new Date(data.value.evaluationEndTime).getTime() / 1000
);
let newEndTime = changeTime(data.value.evaluationEndTime);
let endTime = parseInt(new Date(newEndTime).getTime() / 1000);
let nowTime = parseInt(new Date().getTime() / 1000);
if (endTime > nowTime) {
hour.value = parseInt(
dayjs(data.value.evaluationEndTime).diff(dayjs(), "minute") / 60
);
minute.value = parseInt(
dayjs(data.value.evaluationEndTime).diff(dayjs(), "minute") % 60
);
hour.value = parseInt(dayjs(newEndTime).diff(dayjs(), "minute") / 60);
minute.value = parseInt(dayjs(newEndTime).diff(dayjs(), "minute") % 60);
seconds.value = parseInt(
dayjs(data.value.evaluationEndTime).diff(dayjs(), "seconds") -
dayjs(newEndTime).diff(dayjs(), "seconds") -
(hour.value * 60 + minute.value) * 60
);
} else {

View File

@@ -109,7 +109,7 @@
<div class="box" style="width: 80px; right: 0px"></div>
</div>
<div class="teachermain">
<img class="teacherAvatar" :src="teacherInfo.avatar"/>
<img class="teacherAvatar" :src="teacherInfo?.avatar"/>
<div style="flex: 1; margin-left: 11px; margin-right: 13px">
<div class="teacherName">{{ data.planDto?.teacher }}</div>
<div class="teacherIntro">
@@ -460,7 +460,7 @@ function toExamItem(obj) {
type: 3,
},
});
} else window.open(window.location.protocol + import.meta.env.VITE_BOE_EXAM_DETAIL_URL + obj.id, "_top");
} else window.open(window.location.protocol + import.meta.env.VITE_BOE_EXAM_DETAIL_URL + obj.examinationTestId, "_top");
}
</script>

View File

@@ -50,7 +50,7 @@
<div class="box" style="width: 80px; right: 0px"></div>
</div>
<div class="teachermain">
<img class="teacherAvatar" :src="teacherInfo.avatar" />
<img class="teacherAvatar" :src="teacherInfo?.avatar" />
<div style="flex: 1; margin-left: 11px; margin-right: 13px">
<div class="teacherName">{{ data.planDto?.teacher }}</div>
<div class="teacherIntro">

View File

@@ -55,7 +55,7 @@
<div class="box" style="width: 80px; right: 0px"></div>
</div>
<div class="teachermain">
<img class="teacherAvatar" :src="teacherInfo.avatar" />
<img class="teacherAvatar" :src="teacherInfo?.avatar" />
<div style="flex: 1; margin-left: 11px; margin-right: 13px">
<div class="teacherName">{{ data.planDto?.teacher }}</div>
<div class="teacherIntro">

View File

@@ -188,7 +188,8 @@
<div
v-if="
projectStatus !== '3' &&
new Date(projectEndTime).getTime() > new Date().getTime()
new Date(changeTime(projectEndTime)).getTime() >
new Date().getTime()
"
class="submit"
@click="submit"
@@ -226,6 +227,7 @@ import { ASSESSMENT_QUERY, ASSESSMENT_SUBMIT } from "@/api/api";
import { ElMessage } from "element-plus";
import ReturnHead from "@/components/ReturnHead.vue";
import dayjs from "dayjs";
import { changeTime } from "@/api/method";
const fielPath = ref(import.meta.env.VITE_FILE_PATH);
const {
query: {

View File

@@ -34,7 +34,8 @@
<div
v-if="
projectStatus !== '3' &&
new Date(projectEndTime).getTime() > new Date().getTime()
new Date(changeTime(projectEndTime)).getTime() >
new Date().getTime()
"
class="allbtn"
>
@@ -42,7 +43,7 @@
class="samebtn btno"
:style="{
background: `${
new Date(data.liveStartTime).getTime() >
new Date(changeTime(data.liveStartTime)).getTime() >
new Date().getTime()
? '#999'
: 'rgb(59, 191, 252)'
@@ -70,7 +71,7 @@
<botton
:style="{
background: `${
new Date(data.liveStartTime).getTime() >
new Date(changeTime(data.liveStartTime)).getTime() >
new Date().getTime()
? '#999'
: data.isSurvery
@@ -88,7 +89,7 @@
<botton
:style="{
background: `${
new Date(data.liveStartTime).getTime() >
new Date(changeTime(data.liveStartTime)).getTime() >
new Date().getTime()
? '#999'
: data.isSurvery
@@ -109,7 +110,7 @@
class="samebtn btno"
:style="{
background: `${
new Date(data.liveStartTime).getTime() >
new Date(changeTime(data.liveStartTime)).getTime() >
new Date().getTime()
? '#999'
: 'rgb(59, 191, 252)'
@@ -137,7 +138,7 @@
<botton
:style="{
background: `${
new Date(data.liveStartTime).getTime() >
new Date(changeTime(data.liveStartTime)).getTime() >
new Date().getTime()
? '#999'
: data.isSurvery
@@ -155,7 +156,15 @@
</div>
</div>
</div>
<!-- <div class="notice">
<div class="noticebox">
<div class="mani">
<div class="joininfo">教师</div>
<img class="avaimg" :src="teacherInfo?.avatar" />
<div class="avaname">{{ data.userInfoBo?.userName }}</div>
</div>
</div>
</div> -->
<div class="notice">
<div class="noticebox">
<div class="mani">
@@ -205,7 +214,7 @@ import { useRouter } from "vue-router";
import { useUserInfo } from "@/api/utils";
import { ElMessage } from "element-plus";
import dayjs from "dayjs";
import { changeTime } from "@/api/method";
const {
query: {
courseId: liveId,
@@ -215,6 +224,7 @@ const {
sName,
projectStatus,
projectEndTime,
targetId,
},
} = useRoute();
const router = useRouter();
@@ -261,10 +271,18 @@ let timer = null;
//判断能否签到
function isSignClick() {
// timer = setInterval(() => {
let beginTime = new Date(data.value.liveStartTime).getTime();
if (
data &&
data.value &&
data.value.liveStartTime &&
data.value.liveEndTime
) {
let newStartTime = data.value.liveStartTime.replaceAll("-", "/");
let newEndTime = data.value.liveEndTime.replaceAll("-", "/");
let beginTime = new Date(newStartTime).getTime();
let endTime = !data.value.afterSignIn
? new Date(data.value.liveEndTime).getTime()
: new Date(data.value.liveStartTime).getTime();
? new Date(newEndTime).getTime()
: new Date(newStartTime).getTime();
let nowTime = new Date().getTime();
if (data.value.beforeSignIn && data.value.afterSignIn) {
//有开始前有开始后
@@ -280,11 +298,14 @@ function isSignClick() {
endTime = endTime + data.value.afterSignIn * 60 * 1000;
console.log("1111333");
}
console.log("nowTime", nowTime, endTime);
if (nowTime < endTime && nowTime > beginTime) {
state.isAllowSign = true;
} else {
state.isAllowSign = false;
}
}
// console.log(
// "isAllowSign",
// state.isAllowSign,
@@ -301,7 +322,8 @@ watch(data, () => {
});
const commitClick = () => {
if (data.value.liveStartTime) {
let date1 = new Date(data.value.liveStartTime).getTime();
let newStartTime = data.value.liveStartTime.replaceAll("-", "/");
let date1 = new Date(newStartTime).getTime();
let date2 = new Date().getTime();
if (date1 > date2) {
ElMessage.warning("未到时间,请耐心等待!");
@@ -323,13 +345,14 @@ const commitClick = () => {
pName: "直播",
sName: data.value.liveName,
type: 4,
targetId: targetId,
});
router.push({
path: "/investigatpage",
query: {
courseId: data.value.assessmentId,
infoId: data.value.liveId,
infoId: liveId,
chapterOrStageId: 0,
pName: "直播",
sName: data.value.liveName,
@@ -340,7 +363,8 @@ const commitClick = () => {
function showClick() {
if (data.value.liveStartTime) {
let date1 = new Date(data.value.liveStartTime).getTime();
let newStartTime = data.value.liveStartTime.replaceAll("-", "/");
let date1 = new Date(newStartTime).getTime();
let date2 = new Date().getTime();
if (date1 > date2) {
ElMessage.warning("未到开始时间,请耐心等待!");

View File

@@ -182,6 +182,7 @@ import store from "@/store";
import { ROUTER, TASK_TYPES } from "@/api/CONST";
import ReturnHead from "@/components/ReturnHead.vue";
import { useStore } from "vuex";
import { changeTime } from "@/api/method";
const {
query: { routerId, routerName, chapterId, isStudy },
} = useRoute();
@@ -275,10 +276,10 @@ const types = ref({
// 判断当前任务已结束及时间意义上的结束 提示用户
function judgeTaskIsEnd(type, endTimes, status) {
// type 任务类型 endTime 结束时间 status 任务状态 (状态 0 未完成 1 已完成 2 未开始 -1 已结束)
console.log(type, endTimes, status);
console.log("judgeTaskIsEnd", type, endTimes, status);
let isEnd = false;
let nowTime = new Date().getTime();
let endTime = new Date().getTime(endTimes);
let endTime = new Date().getTime(changeTime(endTimes));
switch (type) {
case 1:
status == -1
@@ -344,7 +345,7 @@ function toFinish(d) {
ElMessage.warning("该任务无法学习,请联系管理员进行替换!");
return;
}
let date1 = new Date(d.endTime).getTime();
let date1 = new Date(changeTime(d.endTime)).getTime();
let date2 = new Date().getTime();
if (date1 < date2) {
ElMessage.warning("当前面授课已结束");
@@ -357,7 +358,7 @@ function toFinish(d) {
}
if (d.type == 4) {
let date1 = new Date(d.endTime).getTime();
let date1 = new Date(changeTime(d.endTime)).getTime();
let date2 = new Date().getTime();
if (date1 < date2) {
ElMessage.warning("当前作业已结束");
@@ -398,7 +399,7 @@ function toFinish(d) {
}
// 直播结束时间
if (d.type == 6) {
let date1 = new Date(d.endTime).getTime();
let date1 = new Date(changeTime(d.endTime)).getTime();
let date2 = new Date().getTime();
if (date1 < date2) {
ElMessage.warning("当前直播已结束");
@@ -407,7 +408,7 @@ function toFinish(d) {
}
// 其他活动 结束时间
if (d.type == 9) {
let date1 = new Date(d.endTime).getTime();
let date1 = new Date(changeTime(d.endTime)).getTime();
let date2 = new Date().getTime();
if (date1 < date2) {
ElMessage.warning("当前活动已结束");

View File

@@ -221,6 +221,7 @@ import ReturnHead from "@/components/ReturnHead.vue";
import { PROJECT, TASK_TYPES } from "@/api/CONST";
import dayjs from "dayjs";
import { useStore } from "vuex";
import { changeTime } from "@/api/method";
const {
query: { courseId, projectId, type },
} = useRoute();
@@ -368,10 +369,11 @@ const dialogVisibleTip = ref("该任务无法学习,请联系管理员进行
// 判断当前任务已结束及时间意义上的结束 提示用户
function judgeTaskIsEnd(type, endTimes, status) {
// type 任务类型 endTime 结束时间 status 任务状态 (状态 0 未完成 1 已完成 2 未开始 3 已结束)
console.log(type, endTimes, status);
console.log("judgeTaskIsEnd", type, endTimes, status);
let isEnd = false;
let nowTime = new Date().getTime();
let endTime = new Date().getTime(endTimes);
let endTime = new Date().getTime(changeTime(endTimes));
console.log("endTime---------", endTime);
switch (type) {
case 1:
status == -1
@@ -424,7 +426,7 @@ function toFinish(d, sName, chapterOrStageId) {
return;
}
if (d.type == 2) {
let date1 = new Date(d.endTime).getTime();
let date1 = new Date(changeTime(d.endTime)).getTime();
let date2 = new Date().getTime();
if (date1 < date2) {
ElMessage.warning("当前面授课已结束");
@@ -434,7 +436,7 @@ function toFinish(d, sName, chapterOrStageId) {
}
// 作业过期判断
if (d.type == 4) {
let date1 = new Date(d.endTime).getTime();
let date1 = new Date(changeTime(d.endTime)).getTime();
let date2 = new Date().getTime();
if (date1 < date2) {
ElMessage.warning("当前作业已结束");
@@ -443,7 +445,7 @@ function toFinish(d, sName, chapterOrStageId) {
}
// 直播结束时间
if (d.type == 6) {
let date1 = new Date(d.endTime).getTime();
let date1 = new Date(changeTime(d.endTime)).getTime();
let date2 = new Date().getTime();
if (date1 < date2) {
ElMessage.warning("当前直播已结束");
@@ -492,7 +494,7 @@ function toFinish(d, sName, chapterOrStageId) {
}
// 其他活动 结束时间
if (d.type == 9) {
let date1 = new Date(d.endTime).getTime();
let date1 = new Date(changeTime(d.endTime)).getTime();
let date2 = new Date().getTime();
if (date1 < date2) {
ElMessage.warning("当前活动已结束");

View File

@@ -2,7 +2,7 @@
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2023-01-13 11:42:48
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2023-03-09 22:52:56
* @LastEditTime: 2023-03-10 11:42:51
* @FilePath: /stu_h5/vite.config.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
@@ -164,6 +164,10 @@ export default defineConfig(({ command, mode }) =>
target: loadEnv(mode, process.cwd()).VITE_PROXY_URL,
changeOrigin: true,
},
'/voteSubmit': {
target: loadEnv(mode, process.cwd()).VITE_PROXY_URL,
changeOrigin: true,
},
}