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

This commit is contained in:
yujicun
2023-01-12 18:03:10 +08:00
26 changed files with 973 additions and 817 deletions

9
.env
View File

@@ -3,7 +3,7 @@ VUE_APP_BASE=/manage
# api项目基础url # api项目基础url
VUE_APP_BASE_API=/manageApi VUE_APP_BASE_API=/manageApi
#文件路径 #文件路径
VUE_APP_FILE_PATH=/file/ VUE_APP_FILE_PATH=/upload/
# 代理url 本地调试,不可以用在其他地方 # 代理url 本地调试,不可以用在其他地方
VUE_APP_PROXY_URL=http://111.231.196.214/manageApi VUE_APP_PROXY_URL=http://111.231.196.214/manageApi
# 登录url # 登录url
@@ -16,10 +16,11 @@ VUE_APP_OUTPUT_DIR=./dist
# iframe嵌套url # iframe嵌套url
VUE_APP_IFRAME_URL=https://u-pre.boe.com/pc/iframe VUE_APP_IFRAME_URL=https://u-pre.boe.com/pc/iframe
# 学员端路由 # 学员端路由
VUE_APP_IFRAME_STUDENT_URL=https://u-pre.boe.com/pc/loading VUE_APP_IFRAME_STUDENT_URL=https://u-pre.boe.com/pc/loadingVUE_APP_BOE_API_URLVUE_APP_BOE_API_URL
# 课程二维码 # 课程二维码
VUE_APP_COURSE_STUDY=https://u-pre.boe.com/pc/course/studyindex?id= VUE_APP_COURSE_STUDY=https://u-pre.boe.com/pc/course/studyindex?id=
# 导入学员模板 # 导入学员模板
VUE_APP_UP_LOAD_HOMEWORK_TEMPLATE=导入作业成绩 模板-1673450632417.xlsx VUE_APP_UP_LOAD_HOMEWORK_TEMPLATE=导入作业成绩模板-1673511599785.xlsx
VUE_APP_UP_LOAD_STUDENT_TEMPLATE=导入学员模版-1673452888323.xlsx # 导入作业成绩学员模板
VUE_APP_UP_LOAD_STUDENT_TEMPLATE=导入学员模版-1673511636808.xlsx

View File

@@ -1,2 +1,3 @@
NODE_ENV=alpine NODE_ENV=alpine
VUE_APP_OUTPUT_DIR=./docker/dist VUE_APP_OUTPUT_DIR=./docker/dist
VUE_APP_FILE_PATH=/file/

View File

@@ -7,3 +7,7 @@ VUE_APP_LOGIN_URL=https://u-pre.boe.com/web
VUE_APP_BOE_API_URL=https://u-pre.boe.com VUE_APP_BOE_API_URL=https://u-pre.boe.com
# 导入学员模板
VUE_APP_UP_LOAD_HOMEWORK_TEMPLATE=导入作业成绩模板-1673516508029.xlsx
# 导入作业成绩学员模板
VUE_APP_UP_LOAD_STUDENT_TEMPLATE=导入学员模版-1673516483342.xlsx

View File

@@ -19,9 +19,9 @@
</div> </div>
</template> </template>
<script> <script>
import { computed, defineComponent, ref } from "vue"; import { computed, defineComponent, ref, onMounted } from "vue";
import { useRouter, useRoute } from "vue-router"; import { useRouter, useRoute } from "vue-router";
import { useStore } from "vuex"; import { useStore, createStore } from "vuex";
import NavLeft from "@/components/NavLeft"; import NavLeft from "@/components/NavLeft";
import NavTop from "@/components/NavTop"; import NavTop from "@/components/NavTop";
import OpenPages from "@/components/OpenPages"; import OpenPages from "@/components/OpenPages";
@@ -44,7 +44,7 @@ export default defineComponent({
const store = useStore(); const store = useStore();
const isLogin = ref(false); const isLogin = ref(false);
// console.log("router", router.getRoutes(), route); // console.log("router", router.getRoutes(), route);
console.log("版本2.0.5------------"); console.log("版本2.0.6------------");
const routes = computed(() => { const routes = computed(() => {
return router.getRoutes().filter((e) => e.meta?.isLink); return router.getRoutes().filter((e) => e.meta?.isLink);
}); });
@@ -71,6 +71,31 @@ export default defineComponent({
getOrgTree(); getOrgTree();
} }
// 监听关闭浏览器
let time1 = ref(0);
let time2 = ref(0);
//添加监听事件
function beforeunloadHandler() {
time1.value = new Date().getTime();
// e.returnValue = '关闭提示';
}
function unloadHandler() {
time2.value = new Date().getTime() - time1.value;
if(time2.value<=5){
store.replaceState(createStore({state: {openpages:null}}).state);
localStorage.removeItem("openpages");
}
}
onMounted(()=>{
window.addEventListener('beforeunload', e => beforeunloadHandler(e));
window.addEventListener('unload', e => unloadHandler(e));
})
async function getMemberInfo() { async function getMemberInfo() {
const list = localStorage.getItem("memberInitInfo"); const list = localStorage.getItem("memberInitInfo");
if (list) { if (list) {
@@ -124,7 +149,7 @@ export default defineComponent({
name: currentRouteName, name: currentRouteName,
zhCN, zhCN,
}; };
}, }
}); });
</script> </script>
<style lang="scss"> <style lang="scss">

Binary file not shown.

After

Width:  |  Height:  |  Size: 734 B

View File

@@ -63,12 +63,16 @@ import DownLoad from "../components/drawers/DownLoad";
import * as api from "../api/index1"; import * as api from "../api/index1";
import { studentUrl } from "../api/method"; import { studentUrl } from "../api/method";
import router from "@/router"; import router from "@/router";
import { useStore, createStore } from "vuex";
export default { export default {
name: "NavTop", name: "NavTop",
components: { components: {
DownLoad, DownLoad,
}, },
setup() { setup() {
const store = useStore();
const state = reactive({ const state = reactive({
selectRole: "管理员", selectRole: "管理员",
username: "", username: "",
@@ -120,6 +124,9 @@ export default {
getUser(); getUser();
const logOut = () => { const logOut = () => {
store.replaceState(createStore({state: {openpages:null}}).state);
localStorage.removeItem("faceclassPic"); localStorage.removeItem("faceclassPic");
localStorage.removeItem("faceclassClass"); localStorage.removeItem("faceclassClass");
localStorage.removeItem("faceclassScene"); localStorage.removeItem("faceclassScene");
@@ -138,7 +145,12 @@ export default {
localStorage.removeItem("projectId"); localStorage.removeItem("projectId");
localStorage.removeItem("projectTemplateId"); localStorage.removeItem("projectTemplateId");
localStorage.removeItem("orgtreeList"); localStorage.removeItem("orgtreeList");
process.env.NODE_ENV === 'development' ? router.push({path: 'login'}) : (window.location.href = process.env.VUE_APP_LOGIN_URL) process.env.NODE_ENV === 'development' ? router.push({path: '/learningpath'}) : (window.location.href = process.env.VUE_APP_LOGIN_URL)
if(process.env.NODE_ENV === 'development'){
setTimeout(() => {
window.location.reload();
}, 3000);
}
}; };
return { return {
...toRefs(state), ...toRefs(state),

View File

@@ -51,23 +51,22 @@ export default {
const store = useStore(); const store = useStore();
const $router = useRouter(); const $router = useRouter();
const state = reactive({ const state = reactive({
//openList: store.state.openpages, openList: store.state.openpages,
}); });
const closePage = (value) => { const closePage = (value) => {
console.log("点击关闭页面", value, state.openList); console.log("点击关闭页面", value, state.openList);
state.openList.map((item, key) => { state.openList.map((item, key) => {
if (item.href === value.href) { if (item.href === value.href) {
if (state.openList.length === 1) { if (state.openList.length === 1) {
if (state.openList[0].href !== "/learningpath") { if (state.openList[0].href !== "/learningpath") {
state.openList.splice(key, 1); state.openList.splice(key, 1);
$router.push({ path: "/learningpath" }); $router.push({ path: "/learningpath" });
}else{ } else {
message.destroy(); message.destroy();
return message.warning("至少保留一个页面"); return message.warning("至少保留一个页面");
} }
} else { } else {
if (value.active) { if (value.active) {
if (key === state.openList.length - 1) { if (key === state.openList.length - 1) {
@@ -92,7 +91,7 @@ export default {
<style lang="scss"> <style lang="scss">
.openPages { .openPages {
width: 100%; width: 100%;
// height: 50px; height: 50px;
display: flex; display: flex;
background-color: rgba(255, 255, 255, 1); background-color: rgba(255, 255, 255, 1);
box-shadow: 0px 8px 8px 0px rgba(118, 136, 166, 0.1); box-shadow: 0px 8px 8px 0px rgba(118, 136, 166, 0.1);
@@ -117,7 +116,6 @@ export default {
.close { .close {
width: 50px; width: 50px;
height: 50px; height: 50px;
position: absolute; position: absolute;
display: flex; display: flex;

View File

@@ -25,7 +25,7 @@
{{ codeInfo.name ? codeInfo.name : "" }} {{ codeInfo.name ? codeInfo.name : "" }}
</div> </div>
<qrcode-vue <qrcode-vue
:value="codeInfo.url ? codeInfo.url : ''" :value="codeInfo.url.startsWith('/')?(domain+codeInfo.url):codeInfo.url"
:size="qrcodeSize" :size="qrcodeSize"
style="width: 200px; height: 200px" style="width: 200px; height: 200px"
></qrcode-vue> ></qrcode-vue>
@@ -34,12 +34,12 @@
<div class="codeUrl" :style="{ display: showUrl ? 'flex' : 'none' }"> <div class="codeUrl" :style="{ display: showUrl ? 'flex' : 'none' }">
<div class="codeUrlLink">链接</div> <div class="codeUrlLink">链接</div>
<a-input <a-input
:value="codeInfo.url ? codeInfo.url : ''" :value="codeInfo.url.startsWith('/')?(domain+codeInfo.url):codeInfo.url"
disabled disabled
class="codeUrlInp" class="codeUrlInp"
/> />
<a-input <a-input
:value="codeInfo.url ? codeInfo.url : ''" :value="codeInfo.url.startsWith('/')?(domain+codeInfo.url):codeInfo.url"
id="courseUrl" id="courseUrl"
class="codeUrlInp" class="codeUrlInp"
style="position: absolute; opacity: 0; z-index: -1" style="position: absolute; opacity: 0; z-index: -1"
@@ -104,6 +104,7 @@ export default {
codeInfo: {}, codeInfo: {},
courseUrl: "https://www.baidu.com/", courseUrl: "https://www.baidu.com/",
showUrl: false, showUrl: false,
domain: location.protocol+'//'+location.host
}); });
//下载二维码图片 //下载二维码图片
@@ -147,7 +148,7 @@ export default {
// selection.removeRange(range); // 移除选中的元素 // selection.removeRange(range); // 移除选中的元素
var input = document.createElement("input"); // 创建input对象 var input = document.createElement("input"); // 创建input对象
input.value = state.codeInfo.url ? state.codeInfo.url : ""; // 设置复制内容 input.value = state.codeInfo.url.startsWith('/')?(state.domain+state.codeInfo.url):state.codeInfo.url; // 设置复制内容
document.body.appendChild(input); // 添加临时实例 document.body.appendChild(input); // 添加临时实例
input.select(); // 选择实例内容 input.select(); // 选择实例内容
document.execCommand("Copy"); // 执行复制 document.execCommand("Copy"); // 执行复制

View File

@@ -20,7 +20,11 @@
<div class="file_detail"> <div class="file_detail">
<div class="file_name"> <div class="file_name">
<span style="color: #6f6f6f;width:200px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;"> <span style="color: #6f6f6f;width:200px;display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;">
{{ item.name.indexOf('-')!==-1?item.name.slice(0,item.name.indexOf('-')) + item.name.slice(item.name.indexOf('.')) :item.name }} {{
item.name.indexOf('http')!==-1?
item.name.slice(item.name.lastIndexOf('/') + 1)
:item.name.indexOf('-')!==-1?item.name.slice(0,item.name.indexOf('-')) + item.name.slice(item.name.indexOf('.')) :item.name
}}
</span> </span>
</div> </div>
<!-- <div class="file_size">--> <!-- <div class="file_size">-->

View File

@@ -31,14 +31,13 @@
<div class="btnbox"> <div class="btnbox">
<a-input <a-input
v-model:value="inputV1" v-model:value="inputV1"
style="width: 400px; height: 40px; border-radius: 8px;" style="width: 400px; height: 40px; border-radius: 8px"
placeholder="请输入活动名称" placeholder="请输入活动名称"
maxlength="20" maxlength="20"
/> />
</div> </div>
</div> </div>
<div class="main_item"> <div class="main_item">
<div class="signbox"> <div class="signbox">
<div class="sign"> <div class="sign">
@@ -51,10 +50,11 @@
</div> </div>
<div class="btnbox"> <div class="btnbox">
<a-range-picker <a-range-picker
:disabled-date="disabledDate" :disabled-time="disabledRangeTime" :disabled-date="disabledDate"
:show-time="{ format: 'HH:mm' }" :disabled-time="disabledRangeTime"
:show-time="{ format: 'HH:mm' }"
format="YYYY-MM-DD HH:mm" format="YYYY-MM-DD HH:mm"
style="width: 400px; height: 40px; border-radius: 8px;" style="width: 400px; height: 40px; border-radius: 8px"
v-model:value="time" v-model:value="time"
:placeholder="[' 开始时间', ' 结束时间']" :placeholder="[' 开始时间', ' 结束时间']"
/> />
@@ -74,7 +74,7 @@
<a-input-number <a-input-number
:min="0" :min="0"
:precision="0" :precision="0"
style="width: 400px; height: 40px; border-radius: 8px;" style="width: 400px; height: 40px; border-radius: 8px"
v-model:value="inputV2" v-model:value="inputV2"
/> />
<span style="color: #999999; margin-left: 8px">分钟</span> <span style="color: #999999; margin-left: 8px">分钟</span>
@@ -93,7 +93,7 @@
<div class="btnbox"> <div class="btnbox">
<a-input <a-input
v-model:value="inputV3" v-model:value="inputV3"
style="width: 400px; height: 40px; border-radius: 8px;" style="width: 400px; height: 40px; border-radius: 8px"
placeholder="请输入活动地点" placeholder="请输入活动地点"
maxlength="100" maxlength="100"
/> />
@@ -109,13 +109,14 @@
</div> </div>
<span style="margin-right: 3px">活动公告</span> <span style="margin-right: 3px">活动公告</span>
</div> </div>
<div class="textarea" > <div class="textarea">
<a-textarea <a-textarea
v-model:value="textV1" v-model:value="textV1"
placeholder="请输入活动公告" placeholder="请输入活动公告"
allow-clear allow-clear
:rows="6" :rows="6"
show-count :maxlength="200" show-count
:maxlength="200"
/> />
</div> </div>
</div> </div>
@@ -129,7 +130,8 @@
placeholder="请输入活动说明" placeholder="请输入活动说明"
allow-clear allow-clear
:rows="6" :rows="6"
show-count :maxlength="200" show-count
:maxlength="200"
/> />
</div> </div>
</div> </div>
@@ -158,7 +160,9 @@
" "
v-model:value="inputV4" v-model:value="inputV4"
/> />
<span style="color: #999999; margin-left: 8px">分钟允许签到</span> <span style="color: #999999; margin-left: 8px"
>分钟允许签到</span
>
</div> </div>
<div class="timerbox"> <div class="timerbox">
<span>活动开始后</span> <span>活动开始后</span>
@@ -174,7 +178,9 @@
" "
v-model:value="inputV5" v-model:value="inputV5"
/> />
<span style="color: #999999; margin-left: 8px">分钟允许签到</span> <span style="color: #999999; margin-left: 8px"
>分钟允许签到</span
>
</div> </div>
</div> </div>
<!-- <div class="qdqtbox"> <!-- <div class="qdqtbox">
@@ -214,7 +220,7 @@
<a-radio v-model:checked="checked" :value="1" @click="cloradio1" <a-radio v-model:checked="checked" :value="1" @click="cloradio1"
>仅签到 >仅签到
</a-radio>--> </a-radio>-->
<!-- <a-radio v-model:checked="checked" :value="2" @click="cloradio1" <!-- <a-radio v-model:checked="checked" :value="2" @click="cloradio1"
>签到签退全部完成 >签到签退全部完成
</a-radio </a-radio
> >
@@ -222,15 +228,12 @@
</div> </div>
</div>--> </div>-->
<div class="main_item" style="height:40px;"> <div class="main_item" style="height: 40px">
<div class="signbox"> <div class="signbox">
<span style="margin-right: 3px"></span> <span style="margin-right: 3px"></span>
</div> </div>
<div class="btnbox"> <div class="btnbox"></div>
</div>
</div> </div>
</div> </div>
</div> </div>
<div class="main_btns"> <div class="main_btns">
@@ -318,7 +321,7 @@ export default {
textV2: "", textV2: "",
radioV1: "", radioV1: "",
time: "", time: "",
isClick: false isClick: false,
}); });
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:addactiveVisible", false); ctx.emit("update:addactiveVisible", false);
@@ -357,7 +360,8 @@ export default {
api api
.getActivity(props.EditActiveId) .getActivity(props.EditActiveId)
.then((res) => { .then((res) => {
//更新讨论信息 console.log("获取活动信息", res);
//获取活动信息
state.inputV1 = res.data.data.activityName; state.inputV1 = res.data.data.activityName;
state.textV1 = res.data.data.activityNotice; state.textV1 = res.data.data.activityNotice;
state.textV2 = res.data.data.activityExplain; state.textV2 = res.data.data.activityExplain;
@@ -387,7 +391,7 @@ export default {
}; };
const updateTask = async (res) => { const updateTask = async (res) => {
if (props.isLevel == 1) { if (props.isLevel == 1) {
if(!props.isactive){ if (!props.isactive) {
message.destroy(); message.destroy();
return message.warning("请先选中关卡"); return message.warning("请先选中关卡");
} }
@@ -466,11 +470,11 @@ export default {
return message.warning("请输入活动地址"); return message.warning("请输入活动地址");
} }
if(state.isClick){ if (state.isClick) {
message.destroy(); message.destroy();
message.error('请勿频繁点击') message.error("请勿频繁点击");
return return;
} }
state.isClick = true; state.isClick = true;
let obj = { let obj = {
@@ -483,11 +487,12 @@ export default {
activityNotice: state.textV1, //活动公告 activityNotice: state.textV1, //活动公告
activityStartTime: dayjs(state.time[0]).format("YYYY-MM-DD HH:mm"), //活动开始时间 activityStartTime: dayjs(state.time[0]).format("YYYY-MM-DD HH:mm"), //活动开始时间
activityTag: "", //活动逻辑删除标识 activityTag: "", //活动逻辑删除标识
afterSignIn: state.inputV5, //活动开始后多少分钟签到 afterSignIn: state.inputV5 ? state.inputV5 : 0, //活动开始后多少分钟签到
beforeSignIn: state.inputV4, //活动开始前多少分钟签到 beforeSignIn: state.inputV4 ? state.inputV4 : 0, //活动开始前多少分钟签到
signOutTime: state.inputV6, //签退开始时间 signOutTime: state.inputV6, //签退开始时间
standardSettings: state.radioV1, //标准设置 standardSettings: state.radioV1, //标准设置
}; };
console.log("obj", obj);
if (props.edit) { if (props.edit) {
//更新编辑活动信息 //更新编辑活动信息
api api
@@ -526,28 +531,28 @@ export default {
}; };
const range = (start, end) => { const range = (start, end) => {
const result = []; const result = [];
for (let i = start; i < end; i++) { for (let i = start; i < end; i++) {
result.push(i); result.push(i);
} }
return result; return result;
}; };
const disabledDate = (current) => { const disabledDate = (current) => {
// Can not select days before today and today // Can not select days before today and today
console.log('1111', dayjs().endOf('day')) console.log("1111", dayjs().endOf("day"));
return current && current < dayjs().startOf('day'); return current && current < dayjs().startOf("day");
}; };
const disabledDateTime = () => {
return {
disabledHours: () => range(0, 24).splice(4, 20),
disabledMinutes: () => range(30, 60),
disabledSeconds: () => [55, 56],
};
};
const disabledDateTime = () => {
return {
disabledHours: () => range(0, 24).splice(4, 20),
disabledMinutes: () => range(30, 60),
disabledSeconds: () => [55, 56],
};
};
return { return {
...toRefs(state), ...toRefs(state),
afterVisibleChange, afterVisibleChange,
@@ -556,9 +561,7 @@ export default {
cloradio1, cloradio1,
updateActivityInfo, updateActivityInfo,
disabledDateTime, disabledDateTime,
disabledDate disabledDate,
}; };
}, },
}; };
@@ -701,7 +704,6 @@ export default {
} }
.setbox { .setbox {
flex-wrap: wrap; flex-wrap: wrap;
margin-top: 10px; margin-top: 10px;
margin-bottom: 24px; margin-bottom: 24px;

View File

@@ -18,7 +18,7 @@
<div class="main"> <div class="main">
<div class="minatitl"> <div class="minatitl">
<div class="up1">请下载</div> <div class="up1">请下载</div>
<a class="up2" :href="template" target="_blank" style="cursor: pointer">模板</a> <a class="up2" :href="locationHref + template" target="_blank" style="cursor: pointer">模板</a>
<div class="up1">按要求填写数据并导入</div> <div class="up1">按要求填写数据并导入</div>
</div> </div>
<div class="upload"> <div class="upload">
@@ -221,7 +221,11 @@ export default {
setup(props, ctx) { setup(props, ctx) {
const store = useStore(); const store = useStore();
const state = reactive({ const state = reactive({
template: process.env.VUE_APP_FILE_PATH + process.env.VUE_APP_UP_LOAD_STUDENT_TEMPLATE, locationHref:
location.href.indexOf("http://") !== -1
? "http://111.231.196.214:12016/"
: location.href.slice(0, location.href.indexOf("/m")) + "/upload/",
template: process.env.VUE_APP_UP_LOAD_STUDENT_TEMPLATE,
importStudent: importStudent:
process.env.VUE_APP_BASE_API + "/admin/student/importStudent", process.env.VUE_APP_BASE_API + "/admin/student/importStudent",
timers: "", // 定时器,用于清空定时器使用 timers: "", // 定时器,用于清空定时器使用

View File

@@ -71,7 +71,8 @@
<div class="btnbox"> <div class="btnbox">
<a-range-picker <a-range-picker
:show-time="{ format: 'HH:mm' }" :show-time="{ format: 'HH:mm' }"
:disabled-date="disabledDate" :disabled-time="disabledRangeTime" :disabled-date="disabledDate"
:disabled-time="disabledRangeTime"
style="width: 400px; height: 40px; border-radius: 8px" style="width: 400px; height: 40px; border-radius: 8px"
v-model:value="time" v-model:value="time"
format="YYYY/MM/DD HH:mm" format="YYYY/MM/DD HH:mm"
@@ -486,7 +487,7 @@ export default {
switchC2: false, switchC2: false,
assessmentVisible: false, assessmentVisible: false,
assessmentName: "", assessmentName: "",
isClick: false isClick: false,
}); });
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:addliveVisible", false); ctx.emit("update:addliveVisible", false);
@@ -701,11 +702,11 @@ export default {
message.destroy(); message.destroy();
return message.warning("请输入直播公告"); return message.warning("请输入直播公告");
} }
if(state.isClick){ if (state.isClick) {
message.destroy(); message.destroy();
message.error('请勿频繁点击') message.error("请勿频繁点击");
return return;
} }
state.isClick = true; state.isClick = true;
const regular = /^[+]{0,1}(\d+)$/; const regular = /^[+]{0,1}(\d+)$/;
@@ -722,8 +723,8 @@ export default {
"Y-M-D h:m" "Y-M-D h:m"
); );
state.obj = { state.obj = {
afterSignIn: state.inputV6, afterSignIn: state.inputV6 ? state.inputV6 : 0,
beforeSignIn: state.inputV7, beforeSignIn: state.inputV7 ? state.inputV7 : 0,
assessmentId: assessmentId:
state.assessmentId == null || state.assessmentId == "" state.assessmentId == null || state.assessmentId == ""
? 0 ? 0
@@ -888,27 +889,27 @@ export default {
state.isEvaluate = "0"; state.isEvaluate = "0";
}; };
const range = (start, end) => { const range = (start, end) => {
const result = []; const result = [];
for (let i = start; i < end; i++) { for (let i = start; i < end; i++) {
result.push(i); result.push(i);
} }
return result; return result;
}; };
const disabledDate = (current) => { const disabledDate = (current) => {
// Can not select days before today and today // Can not select days before today and today
console.log('1111', dayjs().endOf('day')) console.log("1111", dayjs().endOf("day"));
return current && current < dayjs().startOf('day'); return current && current < dayjs().startOf("day");
}; };
const disabledDateTime = () => { const disabledDateTime = () => {
return { return {
disabledHours: () => range(0, 24).splice(4, 20), disabledHours: () => range(0, 24).splice(4, 20),
disabledMinutes: () => range(30, 60), disabledMinutes: () => range(30, 60),
disabledSeconds: () => [55, 56], disabledSeconds: () => [55, 56],
}; };
}; };
return { return {
...toRefs(state), ...toRefs(state),
afterVisibleChange, afterVisibleChange,
@@ -927,7 +928,7 @@ export default {
showAssessment, showAssessment,
removePG, removePG,
disabledDateTime, disabledDateTime,
disabledDate disabledDate,
}; };
}, },
}; };

View File

@@ -6,7 +6,6 @@
placement="right" placement="right"
width="700px" width="700px"
@after-visible-change="afterVisibleChange" @after-visible-change="afterVisibleChange"
:zIndex="1000"
> >
<div class="drawerMain"> <div class="drawerMain">
<div class="header"> <div class="header">
@@ -20,7 +19,9 @@
<div class="main"> <div class="main">
<div class="minatitl"> <div class="minatitl">
<div class="up1">请下载</div> <div class="up1">请下载</div>
<div class="up2" @click="downTemplate" style="cursor:pointer">模板</div> <div class="up2" @click="downTemplate" style="cursor: pointer">
模板
</div>
<div class="up1">按要求填写数据并导入</div> <div class="up1">按要求填写数据并导入</div>
</div> </div>
<div class="upload"> <div class="upload">
@@ -218,7 +219,7 @@ export default {
const state = reactive({ const state = reactive({
fileType: ["xls", "xlsx"], fileType: ["xls", "xlsx"],
importHomeWork: importHomeWork:
process.env.VUE_APP_BASE_API + "admin/student/importHomeWork", process.env.VUE_APP_BASE_API + "/admin/student/importHomeWork",
uploadpercent: -1, uploadpercent: -1,
uploadErr: false, //上传失败 uploadErr: false, //上传失败
addLoading: false, addLoading: false,
@@ -226,10 +227,6 @@ export default {
succNum: 0, //成功数据数 succNum: 0, //成功数据数
errNum: 0, //失败数据数 errNum: 0, //失败数据数
downloadErrUrl: null, //下载失败数据 downloadErrUrl: null, //下载失败数据
locationHref:
location.href.indexOf("http://") !== -1
? "http://111.231.196.214:12016/"
: location.href.slice(0, location.href.indexOf("/m")) + "/upload/",
userId: store.state.userInfo.id, userId: store.state.userInfo.id,
userName: store.state.userInfo.realName, userName: store.state.userInfo.realName,
fileName: "", fileName: "",
@@ -350,13 +347,15 @@ export default {
}; };
// 下载失败数据 // 下载失败数据
const downloadEeeorData = () => { const downloadEeeorData = () => {
console.log(state.locationHref + state.downloadErrUrl);
if (state.downloadErrUrl !== "") { if (state.downloadErrUrl !== "") {
window.open(process.env.VUE_APP_FILE_PATH + state.downloadErrUrl); window.open(process.env.VUE_APP_FILE_PATH + state.downloadErrUrl);
} }
}; };
function downTemplate(){ function downTemplate() {
window.open(process.env.VUE_APP_FILE_PATH + process.env.VUE_APP_UP_LOAD_HOMEWORK_TEMPLATE) window.open(
process.env.VUE_APP_FILE_PATH +
process.env.VUE_APP_UP_LOAD_HOMEWORK_TEMPLATE
);
} }
return { return {

View File

@@ -109,7 +109,7 @@
<div class="wz">导出数据</div> <div class="wz">导出数据</div>
</div> </div>
</div> </div>
<!-- <div class="line"> <!-- <div class="line">
<div class="inline"> <div class="inline">
<div class="left"> <div class="left">
<div class="img"></div> <div class="img"></div>
@@ -173,7 +173,7 @@
/> />
</div> --> </div> -->
</div> </div>
<!-- <!--
<div class="btnn"> <div class="btnn">
<button class="btn1" @click="closeDrawer">取消</button> <button class="btn1" @click="closeDrawer">取消</button>
<button class="btn2" @click="closeDrawer">确定</button> <button class="btn2" @click="closeDrawer">确定</button>
@@ -431,10 +431,10 @@ export default {
title: "【签到】二维码", title: "【签到】二维码",
name: props.projectTaskInfo?.name, name: props.projectTaskInfo?.name,
url: url:
process.env.VUE_APP_BOE_API_URL + process.env.VUE_APP_BASE_API +
`/admin/student/studentSign?taskId=${ `/admin/student/studentSign?taskId=${
props.projectTaskInfo.projectTaskId props.projectTaskInfo.projectTaskId
}&type=${1}`, }&taskType=${props.projectTaskInfo.type}&type=${1}`,
}; };
console.log("codeInfo", state.codeInfo); console.log("codeInfo", state.codeInfo);
state.codeIndex = 0; state.codeIndex = 0;
@@ -869,7 +869,9 @@ export default {
process.env.VUE_APP_BASE_API process.env.VUE_APP_BASE_API
}/admin/student/exportTaskStudent?currentStageId=${ }/admin/student/exportTaskStudent?currentStageId=${
props.projectTaskInfo.stageId props.projectTaskInfo.stageId
}&type=${1}&pid=${props.projectTaskInfo.projectId}&taskType=2&thirdType=2` }&type=${1}&pid=${
props.projectTaskInfo.projectId
}&taskType=2&thirdType=2`
); );
// api // api
// .exportTaskStudent({ // .exportTaskStudent({

View File

@@ -167,7 +167,7 @@
/> />
</div> --> </div> -->
</div> </div>
<!-- <!--
<div class="btnn"> <div class="btnn">
<button class="btn1" @click="closeDrawer">取消</button> <button class="btn1" @click="closeDrawer">取消</button>
<button class="btn2" @click="closeDrawer">确定</button> <button class="btn2" @click="closeDrawer">确定</button>
@@ -846,10 +846,10 @@ export default {
title: "【签到】二维码", title: "【签到】二维码",
name: props.datasource?.name, name: props.datasource?.name,
url: url:
process.env.VUE_APP_BOE_API_URL + process.env.VUE_APP_BASE_API +
`/admin/student/studentSign?taskId=${ `/admin/student/studentSign?taskId=${
props.datasource.routerTaskId props.datasource.routerTaskId
}&type=${2}`, }&taskType=${props.datasource.type}&type=${2}`,
}; };
console.log("codeInfo", state.codeInfo); console.log("codeInfo", state.codeInfo);
state.codeIndex = 0; state.codeIndex = 0;

View File

@@ -624,7 +624,7 @@ export default {
`${ `${
process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${ process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${
props.datasource.chapterId props.datasource.chapterId
}&type=${2}&pid=${props.datasource.routerId}&taskType=${1}` }&type=${2}&pid=${props.datasource.routerId}&taskType=${2}`
); );
// api // api
// .exportTaskStudent({ // .exportTaskStudent({

View File

@@ -341,7 +341,7 @@
</a-modal> </a-modal>
--> -->
<a-modal <a-modal
style="padding: 0" :style="{padding: 0,position: relative,right: - (screenWidth/2 - 660) + 'px',}"
:closable="true" :closable="true"
:visible="stageVisible" :visible="stageVisible"
:footer="null" :footer="null"
@@ -560,6 +560,7 @@ const stuSelectKeys = ref([]);
const orgSelectKeys = ref([]); const orgSelectKeys = ref([]);
const auditSelectKeys = ref([]); const auditSelectKeys = ref([]);
const screenHeight = ref(document.body.clientHeight); const screenHeight = ref(document.body.clientHeight);
const screenWidth = ref(document.body.clientWidth);
const stuRowSelection = computed(() => ({ const stuRowSelection = computed(() => ({
columnWidth: 20, columnWidth: 20,
selectedRowKeys: stuSelectKeys.value, selectedRowKeys: stuSelectKeys.value,

View File

@@ -14,7 +14,7 @@
/> />
</a-form-item> </a-form-item>
</a-col> </a-col>
<!-- <a-col v-if="type === 1"> <!-- <a-col v-if="type === 1">
<a-form-item title="小组名称:"> <a-form-item title="小组名称:">
<a-input <a-input
class="cus-input" class="cus-input"
@@ -50,7 +50,11 @@
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col> <a-col>
<a-button class="cus-btn" style="width: 100px" @click="getStuList"> <a-button
class="cus-btn"
style="background: #4ea6ff; color: #fff; width: 100px"
@click="getStuList"
>
<template #icon> <template #icon>
<img <img
style="margin-right: 10px" style="margin-right: 10px"
@@ -60,8 +64,13 @@
</a-button> </a-button>
</a-col> </a-col>
<a-col :span="2"> <a-col :span="2">
<a-button class="cus-btn white" style="width: 100px" @click="reset" <a-button class="cus-btn white" style="width: 100px" @click="reset">
>重置 <template #icon>
<img
style="margin-right: 10px"
src="../../assets/images/leveladd/reset.png"
/></template>
重置
</a-button> </a-button>
</a-col> </a-col>
</a-row> </a-row>
@@ -78,7 +87,7 @@
@finash="submitCall" @finash="submitCall"
:stage="stage" :stage="stage"
> >
<a-button class="cus-btn"> <a-button class="cus-btn" style="background: #4ea6ff; color: #fff">
<template #icon <template #icon
><img ><img
style="margin-right: 10px" style="margin-right: 10px"
@@ -146,9 +155,10 @@
<div class="btn4_tit" @click="showEScoreModal"> <div class="btn4_tit" @click="showEScoreModal">
<span>批量录入成绩</span> <span>批量录入成绩</span>
</div> </div>
<div class="btn4_op1" @click="updateStatus(1)"> <!--2023-1-12 隐藏 后面放开 -->
<!-- <div class="btn4_op1" @click="updateStatus(1)">
<span>批量结业</span> <span>批量结业</span>
</div> </div> -->
<div class="btn4_op2" @click="updateStatus(0)"> <div class="btn4_op2" @click="updateStatus(0)">
<span>批量通过</span> <span>批量通过</span>
</div> </div>
@@ -506,7 +516,8 @@ function exportTaskStu() {
console.log("props.datasource", props.datasource); console.log("props.datasource", props.datasource);
window.open( window.open(
`${ `${
process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?type=${1}&pid=${props.id}&taskType=0` process.env.VUE_APP_BASE_API
}/admin/student/exportTaskStudent?type=${1}&pid=${props.id}&taskType=0`
); );
} }
@@ -682,15 +693,13 @@ const exportHomeWorkShow = () => {
taskType: 0, taskType: 0,
type: 3, type: 3,
}; };
api api.exportHomeWork(obj).then((res) => {
.exportHomeWork(obj) console.log("导出作业", res.data.data);
.then((res) => { //message.destroy();
console.log("导出作业", res.data.data); // message.success("导出作业成功");
//message.destroy(); exportHomeWorkV.value = true;
// message.success("导出作业成功"); downloadUrl.value = res.data.data;
exportHomeWorkV.value = true; });
downloadUrl.value = res.data.data;
})
}; };
// //导出作业 // //导出作业
// const exportHomeWork = () => { // const exportHomeWork = () => {
@@ -704,7 +713,8 @@ const exportHomeWorkShow = () => {
const exportStu = () => { const exportStu = () => {
window.open( window.open(
`${ `${
process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?type=${3}&pid=${props.id}&thirdType=2` process.env.VUE_APP_BASE_API
}/admin/student/exportTaskStudent?type=${3}&pid=${props.id}&thirdType=2`
); );
}; };

View File

@@ -124,7 +124,6 @@ export default {
total: 0, total: 0,
capacity: 0, capacity: 0,
countCMB: 0, countCMB: 0,
locationHref: location.href.indexOf('http://') !== -1 ? 'http://111.231.196.214:12016/' : location.href.slice(0, location.href.indexOf('/m')) + '/upload/'
}); });
function getData() { function getData() {
@@ -180,7 +179,7 @@ export default {
// 下载文件 // 下载文件
function downLoadFile(data) { function downLoadFile(data) {
console.log(data) console.log(data)
window.open(state.locationHref + data.url) window.open(process.env.VUE_APP_FILE_PATH + data.url)
} }
// 删除文件 // 删除文件
function removeFile(data) { function removeFile(data) {

View File

@@ -1659,7 +1659,7 @@
:footer="null" :footer="null"
:closable="false" :closable="false"
wrapClassName="modalStyle stusmanageModal" wrapClassName="modalStyle stusmanageModal"
width="80%" width="90%"
@cancel="sm_exit" @cancel="sm_exit"
> >
<div class="modalHeader"> <div class="modalHeader">
@@ -2030,7 +2030,11 @@
<div class="qrm_btn btn1" @click="rg_exit"> <div class="qrm_btn btn1" @click="rg_exit">
<div class="btnText">取消</div> <div class="btnText">取消</div>
</div> </div>
<div class="qrm_btn btn2" @click="handleJoin"> <div
class="qrm_btn btn2"
style="background-color: #4ea6ff; color: #ffffff"
@click="handleJoin"
>
<div class="btnText">确定</div> <div class="btnText">确定</div>
</div> </div>
</div> </div>
@@ -3067,7 +3071,8 @@ export default defineComponent({
dataIndex: "evastatus", dataIndex: "evastatus",
key: "8", key: "8",
align: "center", align: "center",
customRender: ({record}) => record.assessmentStatus ? '已评估' : '未评估' customRender: ({ record }) =>
record.assessmentStatus ? "已评估" : "未评估",
}, },
{ {
title: "作业成绩", title: "作业成绩",
@@ -3118,14 +3123,15 @@ export default defineComponent({
key: "8", key: "8",
align: "center", align: "center",
}, },
{ // 2023-1-12 隐藏 后面放开
title: "结业状态", // {
width: "15%", // title: "结业状态",
dataIndex: "completionStatus", // width: "15%",
key: "8", // dataIndex: "completionStatus",
align: "center", // key: "8",
customRender: ({ record }) => <div>{{1:'结业'}[record.completionStatus] || '-'}</div>, // align: "center",
}, // customRender: ({ record }) => <div>{{1:'结业'}[record.completionStatus] || '-'}</div>,
// },
], ],
shipType: 1, shipType: 1,
addLoading: false, addLoading: false,
@@ -4755,7 +4761,7 @@ export default defineComponent({
}; };
const handleJoin = async () => { const handleJoin = async () => {
state.lrcj_inputV1 || message.error("请输入成绩") state.lrcj_inputV1 || message.error("请输入成绩");
if (state.rg_hs) { if (state.rg_hs) {
if (state.piliang) { if (state.piliang) {
api1.updateStudent({ api1.updateStudent({
@@ -5548,7 +5554,7 @@ export default defineComponent({
url: url:
type == 1 type == 1
? process.env.VUE_APP_COURSE_STUDY + record.offcourseId ? process.env.VUE_APP_COURSE_STUDY + record.offcourseId
: process.env.VUE_APP_BOE_API_URL + : process.env.VUE_APP_BASE_API +
`/admin/student/studentSign?taskId=${ `/admin/student/studentSign?taskId=${
record.offcoursePlanId record.offcoursePlanId
}&type=${3}`, }&type=${3}`,
@@ -5840,8 +5846,6 @@ export default defineComponent({
} }
.btn1 { .btn1 {
.search { .search {
background-image: url("../../assets/images/courseManage/search0.png"); background-image: url("../../assets/images/courseManage/search0.png");
} }
@@ -5850,7 +5854,7 @@ export default defineComponent({
color: #ffffff; color: #ffffff;
} }
} }
/** /**
.btn1:active { .btn1:active {
background: #0982ff; background: #0982ff;
} }
@@ -5894,11 +5898,7 @@ export default defineComponent({
} }
} }
.btn3 { .btn3 {
.search { .search {
width: 17px; width: 17px;
height: 18px; height: 18px;
@@ -5909,7 +5909,6 @@ export default defineComponent({
color: #ffffff; color: #ffffff;
} }
} }
} }
} }
@@ -6951,7 +6950,7 @@ export default defineComponent({
} }
} }
.btn2{ .btn2 {
background: rgba(64, 158, 255, 1); background: rgba(64, 158, 255, 1);
.search { .search {
@@ -7571,9 +7570,7 @@ export default defineComponent({
} }
} }
.btn1{ .btn1 {
.search { .search {
background-image: url("../../assets/images/courseManage/search0.png"); background-image: url("../../assets/images/courseManage/search0.png");
} }
@@ -7582,7 +7579,7 @@ export default defineComponent({
color: #ffffff; color: #ffffff;
} }
} }
/** /**
.btn1:active { .btn1:active {
background: #0982ff; background: #0982ff;
} }
@@ -7624,19 +7621,15 @@ export default defineComponent({
margin-left: 5px; margin-left: 5px;
} }
.btn2 { .btn2 {
margin-right: 0px; margin-right: 0px;
.img2 { .img2 {
width: 17px; width: 17px;
height: 18px; height: 18px;
background-image: url(../../assets/images/coursewareManage/export1.png); background-image: url(../../assets/images/coursewareManage/export1.png);
}
} }
} }
}
} }
} }
@@ -7793,7 +7786,7 @@ export default defineComponent({
.stusmanageModal { .stusmanageModal {
.ant-modal { .ant-modal {
max-width: 1700px; max-width: 1800px;
.ant-modal-content { .ant-modal-content {
// width:1358px !important; // width:1358px !important;
.ant-modal-body { .ant-modal-body {

View File

@@ -51,7 +51,7 @@
<!-- 概览无数据 --> <!-- 概览无数据 -->
<div :style="{ display: 'block' }"> <div :style="{ display: 'block' }">
<div class="onerow"> <div class="onerow">
<div class="taskmain">快速创建项目详情</div> <div class="taskmain">快速创建路径图详情</div>
</div> </div>
<div class="second"> <div class="second">
<div @click="totask"> <div @click="totask">
@@ -536,9 +536,8 @@
<div class="split"></div> <div class="split"></div>
<a-tabs> <a-tabs>
<!-- 2023-1-12 隐藏 后面放开 -->
<!-- <a-tab-pane key="1" tab="基本信息">
<a-tab-pane key="1" tab="基本信息">
<div class="sametab"> <div class="sametab">
<div class="Gcon"> <div class="Gcon">
<div class="pad"></div> <div class="pad"></div>
@@ -634,8 +633,7 @@
</div> </div>
</div> </div>
</div> </div>
</a-tab-pane> </a-tab-pane> -->
<a-tab-pane key="2" tab="共享文档"> <a-tab-pane key="2" tab="共享文档">
<div class="sametab"> <div class="sametab">
@@ -668,7 +666,13 @@
> >
<img <img
src="@/assets/images/basicinfo/cloud.png" src="@/assets/images/basicinfo/cloud.png"
style="cursor: pointer; width: 24px; height: 24px; margin-left: 8px;margin-bottom: 3px;" style="
cursor: pointer;
width: 24px;
height: 24px;
margin-left: 8px;
margin-bottom: 3px;
"
alt="" alt=""
/> />
</a-upload> </a-upload>
@@ -694,7 +698,6 @@
" "
class="docListStyle" class="docListStyle"
> >
<!-- <img <!-- <img
src="@/assets/images/basicinfo/download.png" src="@/assets/images/basicinfo/download.png"
style=" style="
@@ -705,26 +708,74 @@
" "
alt="" alt=""
/> --> /> -->
<img v-if=" <img
item.name.indexOf('jpg') !== -1 || v-if="
item.name.indexOf('jpeg') !== -1 || item.name.indexOf('jpg') !== -1 ||
item.name.indexOf('png') !== -1 item.name.indexOf('jpeg') !== -1 ||
" item.name.indexOf('png') !== -1
style="width: 27px;height: 32px;margin-right: 40px;" "
src="@/assets/images/coursewareManage/pngpic.png" /> style="width: 27px; height: 32px; margin-right: 40px"
src="@/assets/images/coursewareManage/pngpic.png"
/>
<div v-else> <div v-else>
<img v-if="item.name.indexOf('doc') !== -1" style="width: 27px;height: 32px;margin-right: 40px;" src="@/assets/images/coursewareManage/docpic.png" /> <img
v-if="item.name.indexOf('doc') !== -1"
style="
width: 27px;
height: 32px;
margin-right: 40px;
"
src="@/assets/images/coursewareManage/docpic.png"
/>
<div v-else> <div v-else>
<img v-if="item.name.indexOf('xls') !== -1" style="width: 27px;height: 32px;margin-right: 40px;" src="@/assets/images/coursewareManage/xlspic.png" /> <img
v-if="item.name.indexOf('xls') !== -1"
style="
width: 27px;
height: 32px;
margin-right: 40px;
"
src="@/assets/images/coursewareManage/xlspic.png"
/>
<div v-else> <div v-else>
<img v-if="item.name.indexOf('ppt') !== -1" style="width: 27px;height: 32px;margin-right: 40px;" src="@/assets/images/coursewareManage/pptpic.png" /> <img
v-if="item.name.indexOf('ppt') !== -1"
style="
width: 27px;
height: 32px;
margin-right: 40px;
"
src="@/assets/images/coursewareManage/pptpic.png"
/>
<div v-else> <div v-else>
<img v-if="item.name.indexOf('pdf') !== -1" style="width: 27px;height: 32px;margin-right: 40px;" src="@/assets/images/coursewareManage/pdfpic.png" /> <img
v-if="item.name.indexOf('pdf') !== -1"
style="
width: 27px;
height: 32px;
margin-right: 40px;
"
src="@/assets/images/coursewareManage/pdfpic.png"
/>
<div v-else> <div v-else>
<img v-if="item.name.indexOf('zip') !== -1" <img
style="width: 27px;height: 32px;margin-right: 40px;" v-if="item.name.indexOf('zip') !== -1"
src="@/assets/images/coursewareManage/zippic.png" /> style="
<img v-else style="width: 27px;height: 32px;margin-right: 40px;" src="@/assets/images/coursewareManage/docpic.png" /> width: 27px;
height: 32px;
margin-right: 40px;
"
src="@/assets/images/coursewareManage/zippic.png"
/>
<img
v-else
style="
width: 27px;
height: 32px;
margin-right: 40px;
"
src="@/assets/images/coursewareManage/docpic.png"
/>
</div> </div>
</div> </div>
</div> </div>
@@ -742,7 +793,11 @@
:title="item.name" :title="item.name"
>{{ item.name }}</span >{{ item.name }}</span
> >
<a :href="item.response?item.response.data:''" style="margin-left: 5px">下载</a> <a
:href="item.response ? item.response.data : ''"
style="margin-left: 5px"
>下载</a
>
<span <span
style="color: #4ea6ff; cursor: pointer" style="color: #4ea6ff; cursor: pointer"
@click="deFile(item.uid)" @click="deFile(item.uid)"
@@ -756,7 +811,6 @@
</a-tab-pane> </a-tab-pane>
</a-tabs> </a-tabs>
</a-tab-pane> </a-tab-pane>
</a-tabs> </a-tabs>
<a-modal <a-modal
@@ -1428,7 +1482,10 @@ export default {
evaluationLevelName: "", evaluationLevelName: "",
facestudent: "", facestudent: "",
locationHref: location.href.indexOf('http://') !== -1 ? 'http://111.231.196.214:12016/' : location.href.slice(0, location.href.indexOf('/m')) + '/upload/' locationHref:
location.href.indexOf("http://") !== -1
? "http://111.231.196.214:12016/"
: location.href.slice(0, location.href.indexOf("/m")) + "/upload/",
}); });
const levelList = reactive({ const levelList = reactive({
@@ -2048,7 +2105,7 @@ export default {
.then((res) => { .then((res) => {
console.log("router-list", res); console.log("router-list", res);
state.fileList = JSON.parse(res.data.data.routerInfo.attach); state.fileList = JSON.parse(res.data.data.routerInfo.attach);
console.log('asdasdasd-------->',state.fileList) console.log("asdasdasd-------->", state.fileList);
state.docChecked = state.docChecked =
res.data.data.routerInfo.attachSwitch == 1 ? true : false; res.data.data.routerInfo.attachSwitch == 1 ? true : false;
if (res.data.data.routerInfo.status == 1) { if (res.data.data.routerInfo.status == 1) {

View File

@@ -689,7 +689,13 @@
</div> </div>
</div> </div>
<div style="width: 87px; text-align: center"> <div style="width: 87px; text-align: center">
{{ element.cretime ? element.cretime + "分钟" : "-" }} <!-- {{ element.cretime ? element.cretime + "分钟" : "-" }} -->
{{
element.cretime
?
element.type==1? Math.ceil(Number(element.cretime)/60) + "分钟" : element.cretime + "分钟"
: "-"
}}
</div> </div>
<div <div
style=" style="

File diff suppressed because it is too large Load Diff

View File

@@ -495,7 +495,8 @@
<div style="width: 87px; text-align: center"> <div style="width: 87px; text-align: center">
{{ {{
element.cretime element.cretime
? element.cretime + "分钟" ?
element.type==1? Math.ceil(Number(element.cretime)/60) + "分钟" : element.cretime + "分钟"
: "-" : "-"
}} }}
</div> </div>

View File

@@ -2498,8 +2498,7 @@ export default {
commonLevelName: "", commonLevelName: "",
evaltype: "", evaltype: "",
evalData: "", evalData: "",
facestudent: "", facestudent: ""
locationHref: location.href.indexOf('http://') !== -1 ? 'http://111.231.196.214:12016/' : location.href.slice(0, location.href.indexOf('/m')) + '/upload/'
}); });
const levelList = reactive({ const levelList = reactive({

View File

@@ -599,6 +599,7 @@ export default {
const handleNext = async() => { const handleNext = async() => {
if (!state.assessmentId) { if (!state.assessmentId) {
if (!state.assessmentName) { if (!state.assessmentName) {
message.destroy();
message.error("请输入评估名称"); message.error("请输入评估名称");
return false; return false;
} }
@@ -620,6 +621,11 @@ export default {
router.push("/researchadd"); router.push("/researchadd");
handleCancel(); handleCancel();
} else { } else {
if (!state.assessmentName) {
message.destroy();
message.error("请输入评估名称");
return false;
}
editAssessmentName({ editAssessmentName({
assessmentId: state.assessmentId, assessmentId: state.assessmentId,
assessmentName: state.assessmentName, assessmentName: state.assessmentName,