feat:修改bug

This commit is contained in:
lixg
2023-03-10 01:37:45 +08:00
parent e03440d12e
commit c43b4fd723
13 changed files with 232 additions and 204 deletions

2
.env
View File

@@ -1,5 +1,5 @@
VITE_BASE=/fe-student-h5
VITE_BASE_API=/
VITE_BASE_API=
VITE_OUTPUT_DIR=./dist
VITE_BASE_LOGIN_URL=//u-pre.boe.com/m/loginuser?returnUrl=
VITE_PROXY_URL=http://43.143.139.204/manageApi

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-06 21:08:50
* @LastEditTime: 2023-03-10 00:56:52
* @FilePath: /stu_h5/src/api/api.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
@@ -82,7 +82,7 @@ export const SubmitExternalExam = `/stu/externalExam/submitExternalExam post`
export const UPDATE_CURRENT_TASK = `/admin/student/updateCurrentTask post`
// 测评任务去学习
export const EvaluationToLearn = '/evaluation/evaluationToLearn post'
export const FILE_UPLOAD_IMG = import.meta.env.VITE_BASE_API + 'file/img'
export const FILE_UPLOAD_IMG = import.meta.env.VITE_BASE_API + '/file/img'
// 查询单个测评的状态
export const QueryEvaluationTaskStatusOne = `/evaluation/queryEvaluationTaskStatusOne`
// 投票浏览和参与数目

View File

@@ -46,6 +46,7 @@ export function useRequest(_url, params = {}, callback) {
const state = reactive({
data: {},
loading: false,
})
watch(params, () => {
@@ -57,7 +58,7 @@ export function useRequest(_url, params = {}, callback) {
request(_url, params).then(r => {
state.data = r.data
state.loading = false
callback?.(r)
callback && callback(r)
})
}

View File

@@ -1,20 +1,13 @@
<!--
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2023-01-18 14:40:26
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2023-03-09 16:13:17
* @FilePath: /stu_h5/src/components/img/UploadImg.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<template>
<el-upload
:file-list="files"
:action="FILE_UPLOAD"
method="POST"
:show-file-list="false"
:on-change="handleChange"
:limit="1"
ref="imageRef"
:file-list="files"
:show-file-list="false"
:limit="max"
:action="FILE_UPLOAD"
:auto-upload="false"
:on-exceed="exceed"
:on-change="handleChange"
>
<template #trigger>
<div>
@@ -24,20 +17,24 @@
</el-upload>
</template>
<script setup>
import { FILE_UPLOAD } from "@/api/api";
import { defineProps, ref, watch } from "vue";
import { ElMessage, ElLoading } from "element-plus";
import { ElMessage } from "element-plus";
import { computed } from "vue";
import { useStore } from "vuex";
import { FILE_UPLOAD } from "@/api/api";
const store = useStore();
const userInfo = computed(() => store.state.userInfo);
const props = defineProps({
fileList: [],
value: [],
max: {
type: Number,
default: 1,
},
});
console.log("fileListfileList", props.fileList, props);
const emit = defineEmits();
const emit = defineEmits();
const files = ref([]);
const imageRef = ref();
@@ -48,50 +45,43 @@ watch(props.value, () => {
function exceed() {
ElMessage.error(`只能上传${props.max}个附件`);
}
// 使用
const loading = ref(false); // loading
const openLoading = () => {
loading.value = ElLoading.service({
lock: true,
text: "Loading",
background: "rgba(0, 0, 0, 0.7)",
});
};
const closeLoading = () => {
loading.value.close();
};
function handleChange(e) {
openLoading();
console.log("上传", e);
if (e.raw.name.includes(".mp4") || e.raw.name.includes(".MP4")) {
function handleChange(file) {
let fileName =
userInfo.value.realName + "-" + userInfo.value.userNo + "-" + file.name;
let f = new File([file.raw], fileName);
f.uid = file.uid;
file.raw = f;
console.log(file.raw);
if (file.raw.name.includes(".mp4") || file.raw.name.includes(".MP4")) {
files.value = [];
emit("update:value", files.value);
emit("update:fileList", files.value);
ElMessage.error(`暂不支持视频文件上传`);
closeLoading();
return;
} else if (e.raw.name.includes(".jpeg") || e.raw.name.includes(".JPEG")) {
} else if (
file.raw.name.includes(".jpeg") ||
file.raw.name.includes(".JPEG")
) {
files.value = [];
emit("update:value", files.value);
emit("update:fileList", files.value);
ElMessage.error(`暂不支持jpeg格式图片文件上传`);
closeLoading();
return;
} else {
imageRef.value.submit();
if (e.response && e.response.code === 200) {
e.url = e.response.data;
}
const index = files.value.findIndex((f) => f.uid === e.uid);
if (file.response && file.response.code === 200) {
file.url = file.response.data;
}
console.log("files.value", files.value);
const index = files.value.findIndex((f) => f.uid === file.uid);
if (index === -1) {
files.value.unshift(e);
files.value.unshift(file);
} else {
files.value[index] = e;
files.value[index] = file;
}
console.log("files.value22", files.value);
emit("update:fileList", files.value);
files.value = [];
}
closeLoading();
}
function remove(i) {

View File

@@ -203,47 +203,65 @@ const signClick = (tab, event) => {
let timer = null;
//判断能否签到
function isSignClick() {
timer = setInterval(() => {
let beginTime = new Date(data.value.activityStartTime).getTime();
let endTime = !data.value.afterSignIn
? new Date(data.value.activityEndTime).getTime()
: new Date(data.value.activityStartTime).getTime();
let nowTime = new Date().getTime();
if (data.value.beforeSignIn && data.value.afterSignIn) {
//有开始前有开始后
beginTime = beginTime - data.value.beforeSignIn * 60 * 1000;
endTime = endTime + data.value.afterSignIn * 60 * 1000;
console.log("1111");
} else if (data.value.beforeSignIn && !data.value.afterSignIn) {
//有开始前开始后
beginTime = beginTime - data.value.beforeSignIn * 60 * 1000;
console.log("11112222");
} else if (!data.value.beforeSignIn && data.value.afterSignIn) {
//无开始前有开始后
endTime = endTime + data.value.afterSignIn * 60 * 1000;
console.log("1111333");
}
// timer = setInterval(() => {
let beginTime = new Date(data.value.activityStartTime).getTime();
let endTime = !data.value.afterSignIn
? new Date(data.value.activityEndTime).getTime()
: new Date(data.value.activityStartTime).getTime();
let nowTime = new Date().getTime();
if (
data.value.beforeSignIn &&
data.value.afterSignIn &&
data.value.beforeSignIn !== "0" &&
data.value.afterSignIn !== "0"
) {
//有开始前开始后
beginTime = beginTime - data.value.beforeSignIn * 60 * 1000;
endTime = endTime + data.value.afterSignIn * 60 * 1000;
console.log("1111");
} else if (
data.value.beforeSignIn &&
!data.value.afterSignIn &&
data.value.beforeSignIn !== "0" &&
data.value.afterSignIn !== "0"
) {
//只有开始前无开始后
beginTime = beginTime - data.value.beforeSignIn * 60 * 1000;
console.log("11112222");
} else if (
!data.value.beforeSignIn &&
data.value.afterSignIn &&
data.value.beforeSignIn !== "0" &&
data.value.afterSignIn !== "0"
) {
//无开始前有开始后
endTime = endTime + data.value.afterSignIn * 60 * 1000;
console.log("1111333");
}
// console.log(nowTime, beginTime, endTime, data.value);
// console.log(nowTime < endTime, nowTime > beginTime);
// console.log(state.isAllowSign);
if (nowTime < endTime && nowTime > beginTime) {
state.isAllowSign = true;
} else {
state.isAllowSign = false;
}
// console.log(
// "isAllowSign",
// state.isAllowSign,
// nowTime,
// endTime,
// beginTime,
// nowTime < endTime,
// nowTime > beginTime
// );
}, 1000);
// console.log(nowTime, beginTime, endTime, data.value);
// console.log(nowTime < endTime, nowTime > beginTime);
// console.log(state.isAllowSign);
if (nowTime < endTime && nowTime > beginTime) {
state.isAllowSign = true;
} else {
state.isAllowSign = false;
}
// console.log(
// "isAllowSign",
// state.isAllowSign,
// nowTime,
// endTime,
// beginTime,
// nowTime < endTime,
// nowTime > beginTime
// );
// }, 1000);
}
isSignClick();
watch(data, () => {
isSignClick();
});
// isSignClick();
//是否显示头部公告
const isShowClose = () => {

View File

@@ -116,28 +116,30 @@ let hour = ref(0);
let minute = ref(0);
let seconds = ref(0);
let timer = setInterval(() => {
let endTime = parseInt(
new Date(data.value.evaluationEndTime).getTime() / 1000
);
let nowTime = parseInt(new Date().getTime() / 1000);
if (endTime > nowTime) {
hour.value = parseInt(
dayjs(data.value.evaluationEndTime).diff(dayjs(), "minute") / 60
if (data && data.value && data.value.evaluationEndTime) {
let endTime = parseInt(
new Date(data.value.evaluationEndTime).getTime() / 1000
);
minute.value = parseInt(
dayjs(data.value.evaluationEndTime).diff(dayjs(), "minute") % 60
);
seconds.value = parseInt(
dayjs(data.value.evaluationEndTime).diff(dayjs(), "seconds") -
(hour.value * 60 + minute.value) * 60
);
} else {
clearInterval(timer);
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
);
seconds.value = parseInt(
dayjs(data.value.evaluationEndTime).diff(dayjs(), "seconds") -
(hour.value * 60 + minute.value) * 60
);
} else {
clearInterval(timer);
}
}
}, 1000);
const goOuterChain = () => {
console.log("点击去查看");
console.log("点击去查看", quizTaskId);
if (quizTaskId == null) {
request(EvaluationToLearn, {
businessType: btype == 1 ? "project" : "learningpath",
@@ -153,7 +155,7 @@ const goOuterChain = () => {
if (res.code == 200) {
let jumpUrl = res.data.quizUrl;
// 此处写跳转url
window.open(jumpUrl, "_top");
// window.open(jumpUrl, "_top");
}
})
.catch((err) => {
@@ -182,7 +184,7 @@ const goOuterChain = () => {
studentName: userInfo.value.realName,
});
request(EvaluationToLearn, {
businessType: "learningpath",
businessType: btype == 1 ? "project" : "learningpath",
chapterId: chapterOrStageId,
courseId: evaluationId,
quizKid: data.value.evaluationTypeId,

View File

@@ -450,49 +450,51 @@ function formateArr(strs) {
let timer = null;
//判断能否签到
function isSignClick() {
timer = setInterval(() => {
let beginTime = new Date(data.value.planDto?.beginTime).getTime();
let endTime = !data.value.planDto?.afterStart
? new Date(data.value.planDto?.endTime).getTime()
: new Date(data.value.planDto?.beginTime).getTime();
let nowTime = new Date().getTime();
if (data.value.planDto?.beforeStart && data.value.planDto?.afterStart) {
//有开始前有开始后
beginTime = beginTime - data.value.planDto?.beforeStart * 60 * 1000;
endTime = endTime + data.value.planDto?.afterStart * 60 * 1000;
console.log("1111");
} else if (
data.value.planDto?.beforeStart &&
!data.value.planDto?.afterStart
) {
//只有开始前无开始后
beginTime = beginTime - data.value.planDto?.beforeStart * 60 * 1000;
console.log("11112222");
} else if (
!data.value.planDto?.beforeStart &&
data.value.planDto?.afterStart
) {
//无开始前有开始后
endTime = endTime + data.value.planDto?.afterStart * 60 * 1000;
console.log("1111333");
}
if (nowTime < endTime && nowTime > beginTime) {
state.isAllowSign = true;
} else {
state.isAllowSign = false;
}
// console.log(
// "isAllowSign",
// state.isAllowSign,
// nowTime,
// endTime,
// beginTime,
// nowTime < endTime,
// nowTime > beginTime
// );
}, 1000);
// timer = setInterval(() => {
let beginTime = new Date(data.value.planDto?.beginTime).getTime();
let endTime = !data.value.planDto?.afterStart
? new Date(data.value.planDto?.endTime).getTime()
: new Date(data.value.planDto?.beginTime).getTime();
let nowTime = new Date().getTime();
if (data.value.planDto?.beforeStart && data.value.planDto?.afterStart) {
//有开始前有开始后
beginTime = beginTime - data.value.planDto?.beforeStart * 60 * 1000;
endTime = endTime + data.value.planDto?.afterStart * 60 * 1000;
console.log("1111");
} else if (
data.value.planDto?.beforeStart &&
!data.value.planDto?.afterStart
) {
//只有开始前无开始后
beginTime = beginTime - data.value.planDto?.beforeStart * 60 * 1000;
console.log("11112222");
} else if (
!data.value.planDto?.beforeStart &&
data.value.planDto?.afterStart
) {
//无开始前有开始后
endTime = endTime + data.value.planDto?.afterStart * 60 * 1000;
console.log("1111333");
}
if (nowTime < endTime && nowTime > beginTime) {
state.isAllowSign = true;
} else {
state.isAllowSign = false;
}
// console.log(
// "isAllowSign",
// state.isAllowSign,
// nowTime,
// endTime,
// beginTime,
// nowTime < endTime,
// nowTime > beginTime
// );
// }, 1000);
}
isSignClick();
watch(data, () => {
isSignClick();
});
//签到
const signClick = () => {

View File

@@ -61,7 +61,9 @@
<div class="itemtitle" :title="item.workUploadContent">
{{ item.workUploadContent }}
{{
item.workUploadAddress ? "-" + item.workUploadAddress : ""
item.workUploadAddress?.slice(
item.workUploadAddress.lastIndexOf("/") + 1
)
}}
</div>
<img
@@ -106,6 +108,7 @@ import FileTypeImg from "@/components/FileTypeImg.vue";
import { useRoute } from "vue-router/dist/vue-router";
import { ElMessage, ElLoading } from "element-plus";
import ReturnHead from "@/components/ReturnHead.vue";
import { toDate } from "@/api/method";
const fileList = ref([]);
// const fielPath = ref(import.meta.env.VITE_FILE_PATH);
const uploadRef = ref();
@@ -174,21 +177,17 @@ const state = reactive({
});
const { hour, minute, seconds } = toRefs(state);
let timer = setInterval(() => {
// console.log("endTime", data.value.submitEndTime);
var timer = setInterval(function () {
if (data && data.value && data.value.submitEndTime) {
let endTime = parseInt(new Date(data.value.submitEndTime).getTime() / 1000);
let newEndTime = data.value.submitEndTime.replaceAll("-", "/");
let endTime = parseInt(new Date(newEndTime).getTime() / 1000);
let nowTime = parseInt(new Date().getTime() / 1000);
console.log("endTime222", endTime, nowTime);
console.log("endTime222", endTime, nowTime, newEndTime);
if (endTime > nowTime) {
state.hour = parseInt(
dayjs(data.value.submitEndTime).diff(dayjs(), "minute") / 60
);
state.minute = parseInt(
dayjs(data.value.submitEndTime).diff(dayjs(), "minute") % 60
);
state.hour = parseInt(dayjs(newEndTime).diff(dayjs(), "minute") / 60);
state.minute = parseInt(dayjs(newEndTime).diff(dayjs(), "minute") % 60);
state.seconds = parseInt(
dayjs(data.value.submitEndTime).diff(dayjs(), "seconds") -
dayjs(newEndTime).diff(dayjs(), "seconds") -
(state.hour * 60 + state.minute) * 60
);
} else {
@@ -199,6 +198,7 @@ let timer = setInterval(() => {
const { data: submitList } = useRequest(TASK_WORK_SUBMIT_LIST, {
workerId: workId,
type,
});
console.log("submitList==----->", submitList);
//交作业

View File

@@ -158,7 +158,7 @@ export default {
workUploadContent: textarea.value,
workUploadAddress:
fileList.value && fileList.value.length !== 0
? fileList.value[0].name
? fileList.value[0].url
: "",
workId,
type,

View File

@@ -260,43 +260,45 @@ const signClick = () => {
let timer = null;
//判断能否签到
function isSignClick() {
timer = setInterval(() => {
let beginTime = new Date(data.value.liveStartTime).getTime();
let endTime = !data.value.afterSignIn
? new Date(data.value.liveEndTime).getTime()
: new Date(data.value.liveStartTime).getTime();
let nowTime = new Date().getTime();
if (data.value.beforeSignIn && data.value.afterSignIn) {
//有开始前有开始后
beginTime = beginTime - data.value.beforeSignIn * 60 * 1000;
endTime = endTime + data.value.afterSignIn * 60 * 1000;
console.log("1111");
} else if (data.value.beforeSignIn && !data.value.afterSignIn) {
//只有开始前无开始后
beginTime = beginTime - data.value.beforeSignIn * 60 * 1000;
console.log("11112222");
} else if (!data.value.beforeSignIn && data.value.afterSignIn) {
//无开始前有开始后
endTime = endTime + data.value.afterSignIn * 60 * 1000;
console.log("1111333");
}
if (nowTime < endTime && nowTime > beginTime) {
state.isAllowSign = true;
} else {
state.isAllowSign = false;
}
// console.log(
// "isAllowSign",
// state.isAllowSign,
// nowTime,
// endTime,
// beginTime,
// nowTime < endTime,
// nowTime > beginTime
// );
}, 1000);
// timer = setInterval(() => {
let beginTime = new Date(data.value.liveStartTime).getTime();
let endTime = !data.value.afterSignIn
? new Date(data.value.liveEndTime).getTime()
: new Date(data.value.liveStartTime).getTime();
let nowTime = new Date().getTime();
if (data.value.beforeSignIn && data.value.afterSignIn) {
//有开始前有开始后
beginTime = beginTime - data.value.beforeSignIn * 60 * 1000;
endTime = endTime + data.value.afterSignIn * 60 * 1000;
console.log("1111");
} else if (data.value.beforeSignIn && !data.value.afterSignIn) {
//只有开始前无开始后
beginTime = beginTime - data.value.beforeSignIn * 60 * 1000;
console.log("11112222");
} else if (!data.value.beforeSignIn && data.value.afterSignIn) {
//无开始前有开始后
endTime = endTime + data.value.afterSignIn * 60 * 1000;
console.log("1111333");
}
if (nowTime < endTime && nowTime > beginTime) {
state.isAllowSign = true;
} else {
state.isAllowSign = false;
}
// console.log(
// "isAllowSign",
// state.isAllowSign,
// nowTime,
// endTime,
// beginTime,
// nowTime < endTime,
// nowTime > beginTime
// );
// }, 1000);
}
isSignClick();
watch(data, () => {
isSignClick();
});
const commitClick = () => {
if (data.value.liveStartTime) {
let date1 = new Date(data.value.liveStartTime).getTime();

View File

@@ -95,6 +95,8 @@ const goOuterChain = () => {
logo: type,
stageOrChapterId: chapterOrStageId,
taskId: taskId,
type: type,
taskType: 7,
});
window.open(data.value.linkAddress, "_top");

View File

@@ -526,7 +526,9 @@ function toFinish(d, sName, chapterOrStageId) {
pid: projectId,
name: d.name,
});
if (typeof TASK_TYPES.path[d.type] === "string") {
console.log("TASK_TYPES.path[d.type]", TASK_TYPES.path[d.type]);
TASK_TYPES.path[d.type] &&
TASK_TYPES.path[d.type].startsWith("http") &&
window.open(TASK_TYPES.path[d.type] + d.targetId, "_top");
@@ -547,10 +549,15 @@ function toFinish(d, sName, chapterOrStageId) {
targetId: d.targetId,
evaType: d.evaType,
btype: 1,
quizTaskId: d.quizTaskId,
},
});
} else if (typeof TASK_TYPES.path[d.type] === "function") {
TASK_TYPES.path[d.type](d);
if (d.type == 5) {
window.open(TASK_TYPES.path[d.type](d) + d.targetId, "_top");
} else {
TASK_TYPES.path[d.type](d);
}
}
// if (typeof types.value.path[d.type] === "string") {
// types.value.path[d.type] &&

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-02-22 14:53:41
* @LastEditTime: 2023-03-09 22:52:56
* @FilePath: /stu_h5/vite.config.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
@@ -117,6 +117,10 @@ export default defineConfig(({ command, mode }) =>
target: loadEnv(mode, process.cwd()).VITE_PROXY_URL,
changeOrigin: true,
},
'/evaluation/queryEvaluationTaskStatusOne': {
target: loadEnv(mode, process.cwd()).VITE_PROXY_URL,
changeOrigin: true,
},
'/statement/add': {
target: loadEnv(mode, process.cwd()).VITE_PROXY_URL,
changeOrigin: true,