mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-17 23:06:47 +08:00
Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
@@ -70,7 +70,7 @@ export default {
|
||||
href: "/leveladd",
|
||||
},
|
||||
{
|
||||
name: "关卡",
|
||||
name: "管理",
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
@@ -203,6 +203,7 @@
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
<div class="main_item">
|
||||
<div class="signbox">
|
||||
<span style="margin-right: 3px">完成标准设置:</span>
|
||||
@@ -211,14 +212,15 @@
|
||||
<a-radio-group v-model:value="radioV1">
|
||||
<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
|
||||
> -->
|
||||
>
|
||||
</a-radio-group>
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
|
||||
<div class="main_item" style="height:40px;">
|
||||
<div class="signbox">
|
||||
<span style="margin-right: 3px"></span>
|
||||
@@ -383,6 +385,10 @@ export default {
|
||||
};
|
||||
const updateTask = async (res) => {
|
||||
if (props.isLevel == 1) {
|
||||
if(!props.isactive){
|
||||
message.destroy();
|
||||
return message.warning("请先选中关卡");
|
||||
}
|
||||
await RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: res.data.data.activityId,
|
||||
|
||||
@@ -275,6 +275,10 @@ export default {
|
||||
};
|
||||
const updateTask = () => {
|
||||
if (props.isLevel == 1) {
|
||||
if(!props.isactive){
|
||||
message.destroy();
|
||||
return message.warning("请先选中关卡");
|
||||
}
|
||||
for (let i = 0; i < state.apiTaskList.length; i++) {
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
|
||||
@@ -191,6 +191,10 @@ export default {
|
||||
}
|
||||
};
|
||||
const updateTask = async (res) => {
|
||||
if(!props.isactive){
|
||||
message.destroy();
|
||||
return message.warning("请先选中关卡");
|
||||
}
|
||||
if (props.isLevel == 1) {
|
||||
await RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
|
||||
@@ -177,6 +177,10 @@ export default {
|
||||
};
|
||||
//向关卡或阶段渲染
|
||||
const updateTask = async (value) => {
|
||||
if(!props.isactive){
|
||||
message.destroy();
|
||||
return message.warning("请先选中关卡");
|
||||
}
|
||||
if (props.isLevel == 1) {
|
||||
await RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
@@ -249,8 +253,8 @@ export default {
|
||||
state.description = res.data.data.evaluationExplain;
|
||||
})
|
||||
.catch((err) => {
|
||||
message.destroy()
|
||||
message.error("获取测量平信息失败");
|
||||
//message.destroy()
|
||||
// message.error("获取测量平信息失败");
|
||||
console.log(err, "erererrerererererer");
|
||||
});
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
<span style="margin-right: 3px">课程任务名称:</span>
|
||||
<span style="margin-right: 3px">任务名称:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<a-input
|
||||
@@ -100,8 +100,8 @@
|
||||
</div>
|
||||
<span style="margin-right: 3px">面授时间:</span>
|
||||
</div>
|
||||
<div class="select">
|
||||
<a-range-picker
|
||||
<div class="select" >
|
||||
<a-range-picker style="width: 400px;"
|
||||
show-time
|
||||
format="YYYY/MM/DD HH:mm"
|
||||
v-model:value="chooseTime"
|
||||
@@ -702,6 +702,10 @@ export default {
|
||||
// 新增编辑或新增项目任务
|
||||
const updateTask = async (res) => {
|
||||
console.log("props.isLevel=====", props.isLevel);
|
||||
if(!props.isactive){
|
||||
message.destroy();
|
||||
return message.warning("请先选中关卡");
|
||||
}
|
||||
if (props.isLevel == 1) {
|
||||
let editObj1 = {
|
||||
chapterId: props.isactive,
|
||||
|
||||
@@ -394,6 +394,10 @@ export default {
|
||||
state.EditWorkId = res.data.data.workId;
|
||||
} else {
|
||||
if (props.isLevel == 1) {
|
||||
if(!props.isactive){
|
||||
message.destroy();
|
||||
return message.warning("请先选中关卡");
|
||||
}
|
||||
let editObj1 = {
|
||||
chapterId: props.isactive,
|
||||
courseId: res.data.data.workId,
|
||||
|
||||
@@ -163,6 +163,10 @@ export default {
|
||||
l_data_id.push(Number(state.assessmentId))
|
||||
console.log("state.assessment",state.assessment,state.assessmentId);
|
||||
if (props.isLevel == 1) {
|
||||
if(!props.isactive){
|
||||
message.destroy();
|
||||
return message.warning("请先选中关卡");
|
||||
}
|
||||
IsExistence({
|
||||
chapterId: Number(props.isactive),
|
||||
courseTaskId:l_data_id,
|
||||
|
||||
@@ -38,21 +38,26 @@
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item2">
|
||||
<div class="main_item" style="margin-top: -10px">
|
||||
<div class="signbox">
|
||||
<span style="margin-right: 3px">直播说明:</span>
|
||||
<div class="asterisk_icon">
|
||||
<img
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
<span style="margin-right: 3px">直播链接:</span>
|
||||
</div>
|
||||
<div class="textarea">
|
||||
<a-textarea
|
||||
v-model:value="textV1"
|
||||
placeholder="请输入直播说明"
|
||||
allow-clear
|
||||
show-count
|
||||
:maxlength="200"
|
||||
:rows="6"
|
||||
<div class="btnbox">
|
||||
<a-input
|
||||
v-model:value="inputV4"
|
||||
style="width: 400px; height: 40px; border-radius: 8px;"
|
||||
placeholder="请输入直播链接"
|
||||
:maxlength="100"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="main_item">
|
||||
<div class="signbox">
|
||||
<div class="sign">
|
||||
@@ -148,19 +153,28 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item" style="margin-top: -10px">
|
||||
<div class="main_item2">
|
||||
<div class="signbox">
|
||||
<span style="margin-right: 3px">直播链接:</span>
|
||||
<div class="asterisk_icon">
|
||||
<img
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
<span style="margin-right: 3px">直播公告:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<a-input
|
||||
v-model:value="inputV4"
|
||||
style="width: 400px; height: 40px; border-radius: 8px;"
|
||||
placeholder="请输入直播链接"
|
||||
:maxlength="100"
|
||||
<div class="textarea">
|
||||
<a-textarea
|
||||
v-model:value="liveNotice"
|
||||
placeholder="请输入直播公告"
|
||||
allow-clear
|
||||
show-count
|
||||
:maxlength="200"
|
||||
:rows="6"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="main_item">
|
||||
<div class="signbox">
|
||||
<span style="margin-right: 3px">回放设置:</span>
|
||||
@@ -184,6 +198,8 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="main_item2">
|
||||
<div class="signbox">
|
||||
<span style="margin-right: 3px">直播说明:</span>
|
||||
@@ -191,7 +207,7 @@
|
||||
<div class="textarea">
|
||||
<a-textarea
|
||||
v-model:value="textV1"
|
||||
placeholder="请输入考试说明"
|
||||
placeholder="请输入直播说明"
|
||||
allow-clear
|
||||
show-count
|
||||
:maxlength="200"
|
||||
@@ -270,17 +286,18 @@
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
<div class="main_item">
|
||||
<div class="signbox">
|
||||
<span style="margin-right: 3px">完成标准设置:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<a-radio-group v-model:value="radioV1">
|
||||
<a-radio :value="1" @click="cloradio1">仅签到</a-radio>
|
||||
<a-radio :value="1" @click="cloradio1">仅签到</a-radio>-->
|
||||
<!-- <a-radio :value="2" @click="cloradio1"
|
||||
>签到、签退全部完成</a-radio
|
||||
> -->
|
||||
<!--
|
||||
</a-radio-group>
|
||||
</div>
|
||||
</div>
|
||||
@@ -297,6 +314,8 @@
|
||||
</a-checkbox>
|
||||
</div>
|
||||
</div>
|
||||
-->
|
||||
|
||||
<div class="main_item2">
|
||||
<div class="signbox">
|
||||
<span style="margin-right: 3px">评估:</span>
|
||||
@@ -454,6 +473,7 @@ export default {
|
||||
switchC1: "",
|
||||
checkedC1: false,
|
||||
checkedC2: false,
|
||||
liveNotice :null,
|
||||
assessmentId: null,
|
||||
obj: {}, //要传的obj数据
|
||||
assessment: [], //评估信息
|
||||
@@ -483,6 +503,9 @@ export default {
|
||||
state.needEval = false;
|
||||
state.switchC2 = false;
|
||||
state.assessmentId = null;
|
||||
state.liveNotice =null;
|
||||
state.liveTeacherId=null;
|
||||
state.memberValue={};
|
||||
ctx.emit("changeData", false);
|
||||
localStorage.setItem("stageId", props.chooseStageId);
|
||||
localStorage.setItem("chapterId", props.isactive);
|
||||
@@ -532,7 +555,7 @@ export default {
|
||||
state.inputV8 = res.data.data.signOutTime;
|
||||
state.textV1 = res.data.data.liveExplain;
|
||||
state.radioV1 = Number(res.data.data.standardSettings);
|
||||
//state.= res.data.data
|
||||
state.liveNotice = res.data.data.liveNotice;
|
||||
state.assessmentId = res.data.data.assessmentId;
|
||||
state.imageUrl = res.data.data.liveCover;
|
||||
state.switchC1 = res.data.data.livePlayback === "1" ? true : false;
|
||||
@@ -577,6 +600,10 @@ export default {
|
||||
};
|
||||
const updateTask = (res) => {
|
||||
if (props.isLevel == 1) {
|
||||
if(!props.isactive){
|
||||
message.destroy();
|
||||
return message.warning("请先选中关卡");
|
||||
}
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: res.data.data.liveId,
|
||||
@@ -641,6 +668,11 @@ export default {
|
||||
message.destroy();
|
||||
return message.warning("请输入直播名称");
|
||||
}
|
||||
if (!state.inputV4) {
|
||||
message.destroy();
|
||||
return message.warning("请输入直播链接");
|
||||
}
|
||||
|
||||
if (!state.time) {
|
||||
message.destroy();
|
||||
return message.warning("请输入直播时间");
|
||||
@@ -657,6 +689,10 @@ export default {
|
||||
message.destroy();
|
||||
return message.warning("请上传封面");
|
||||
}
|
||||
if (!state.liveNotice) {
|
||||
message.destroy();
|
||||
return message.warning("请输入直播公告");
|
||||
}
|
||||
const regular = /^[+]{0,1}(\d+)$/;
|
||||
if (!regular.test(state.inputV2)) {
|
||||
message.destroy();
|
||||
@@ -682,6 +718,7 @@ export default {
|
||||
liveEndTime: endTime,
|
||||
liveStartTime: startTime,
|
||||
liveExplain: state.textV1,
|
||||
liveNotice:state.liveNotice,
|
||||
liveFlag: "",
|
||||
liveId: props.edit ? Number(props.EditLiveId) : 0,
|
||||
liveLink: state.inputV4,
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
/>
|
||||
<div class="inp_num" style="position: absolute; right: 7px">
|
||||
<span style="color: #c7cbd2">
|
||||
{{ inputV1 ? inputV1.length : 0 }}/20
|
||||
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -464,6 +464,10 @@ export default {
|
||||
const updateTask = () => {
|
||||
|
||||
if (props.isLevel == 1) {
|
||||
if(!props.isactive){
|
||||
message.destroy();
|
||||
return message.warning("请先选中关卡");
|
||||
}
|
||||
console.log("我是要便利的数据2", state.addOnlineList);
|
||||
let l_data = state.addOnlineList;
|
||||
let l_data_id = [];
|
||||
|
||||
@@ -551,6 +551,10 @@ export default {
|
||||
|
||||
const updateTask = async (res) => {
|
||||
if (props.isLevel == 1) {
|
||||
if(!props.isactive){
|
||||
message.destroy();
|
||||
return message.warning("请先选中关卡");
|
||||
}
|
||||
await RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: res.key,
|
||||
|
||||
@@ -182,6 +182,10 @@ export default {
|
||||
};
|
||||
const updateTask = async (res) => {
|
||||
if (props.isLevel == 1) {
|
||||
if(!props.isactive){
|
||||
message.destroy();
|
||||
return message.warning("请先选中关卡");
|
||||
}
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: res.data.data.linkId,
|
||||
|
||||
@@ -570,6 +570,10 @@ export default {
|
||||
closeDrawer();
|
||||
} else {
|
||||
if (props.isLevel == 1) {
|
||||
if(!props.isactive){
|
||||
message.destroy();
|
||||
return message.warning("请先选中关卡");
|
||||
}
|
||||
let editObj1 = {
|
||||
chapterId: props.isactive,
|
||||
duration: res.data.data.examinationDuration,
|
||||
|
||||
@@ -58,6 +58,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--
|
||||
<div class="main_notice">
|
||||
<div class="mntc_left">
|
||||
<div class="notice_icon"></div>
|
||||
@@ -101,7 +102,8 @@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>-->
|
||||
|
||||
<div class="main_table">
|
||||
|
||||
<a-table
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
<iframe
|
||||
id="iframe"
|
||||
style="width: 100%; height: 100%"
|
||||
:src="iframeUrl + '/exam/tests'"
|
||||
:src="iframeUrl + '/exam/papers'"
|
||||
name="myframe"
|
||||
sandbox="allow-forms allow-scripts allow-same-origin allow-popups"
|
||||
></iframe>
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
<template>
|
||||
<a-input
|
||||
<a-input
|
||||
v-model:value="modelV"
|
||||
:placeholder="placeholder"
|
||||
:show-count="showCount"
|
||||
:maxlength="maxlength"
|
||||
:validate="validate"
|
||||
@blur="validateProName"
|
||||
@change="validateProName"
|
||||
|
||||
/>
|
||||
<div style="color:red;font-size: 10px" v-if="value && !validate">名称重复,请重新输入</div>
|
||||
</template>
|
||||
@@ -18,7 +21,7 @@ const props = defineProps({
|
||||
},
|
||||
validate: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
default:true
|
||||
},
|
||||
id: {
|
||||
type: String,
|
||||
@@ -55,9 +58,52 @@ watch(modelV, () => {
|
||||
})
|
||||
|
||||
function validateProName() {
|
||||
emit('update:finished', false);
|
||||
props.value && validateName({name: props.value, type: props.type, id: props.id}).then(res => {
|
||||
emit('update:validate', res.data.data !== 1)
|
||||
emit('update:finished', true);
|
||||
})
|
||||
}
|
||||
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.in{
|
||||
.ant-input-affix-wrapper {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
width: 99%;
|
||||
min-width: 0;
|
||||
padding: 0px 17px;
|
||||
color: rgba(0, 0, 0, 0.85);
|
||||
font-size: 14px;
|
||||
line-height: 1.5715;
|
||||
background-color: #fff;
|
||||
background-image: none;
|
||||
border: 1px solid #d9d9d9;
|
||||
border-radius: 8px;
|
||||
transition: all 0.3s;
|
||||
display: inline-flex;
|
||||
}
|
||||
}
|
||||
|
||||
.b_input,.i1_input{
|
||||
|
||||
.ant-input-affix-wrapper {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
width: 88%;
|
||||
min-width: 0;
|
||||
padding: 8px 17px;
|
||||
color: rgba(0, 0, 0, 0.85);
|
||||
font-size: 14px;
|
||||
line-height: 1.5715;
|
||||
background-color: #fff;
|
||||
background-image: none;
|
||||
border: 1px solid #d9d9d9;
|
||||
border-radius: 8px;
|
||||
transition: all 0.3s;
|
||||
display: inline-flex;
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
@@ -8,7 +8,7 @@
|
||||
v-model:value="id"
|
||||
style="width: 100%"
|
||||
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
|
||||
placeholder="自动带出 可修改"
|
||||
placeholder="请选择归属组织"
|
||||
allow-clear
|
||||
:tree-data="options"
|
||||
:fieldNames="{
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
<div class="btnbox">
|
||||
<a-input
|
||||
v-model:value="inputV1"
|
||||
style="width: 424px; height: 32px"
|
||||
style="width: 424px; height: 40px; border-radius: 8px;"
|
||||
placeholder="请输入投票任务名称"
|
||||
maxlength="20"
|
||||
/>
|
||||
@@ -102,7 +102,7 @@
|
||||
</div>
|
||||
<span style="margin-right: 3px">起止时间:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<div class="select" >
|
||||
<a-range-picker
|
||||
show-time
|
||||
format="YYYY-MM-DD HH:mm:ss"
|
||||
@@ -306,6 +306,10 @@ export default {
|
||||
const updateToTask = (res) => {
|
||||
console.log("props.isLevel=====", props.isLevel);
|
||||
if (props.isLevel == 1) {
|
||||
if(!props.isactive){
|
||||
message.destroy();
|
||||
return message.warning("请先选中关卡");
|
||||
}
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: res.data.data.voteId,
|
||||
@@ -661,7 +665,29 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
.in {
|
||||
|
||||
element.style {
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
.ant-input-affix-wrapper {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
width: 132%;
|
||||
/* min-width: 19px; */
|
||||
padding: 4px 11px;
|
||||
color: rgba(0, 0, 0, 0.85);
|
||||
font-size: 14px;
|
||||
line-height: 1.5715;
|
||||
background-color: #fff;
|
||||
background-image: none;
|
||||
border: 1px solid #d9d9d9;
|
||||
border-radius: 2px;
|
||||
transition: all 0.3s;
|
||||
display: inline-flex;
|
||||
}
|
||||
}
|
||||
.main_item2 {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
@@ -670,7 +696,7 @@ export default {
|
||||
width: 423px;
|
||||
|
||||
.ant-input {
|
||||
width: 100%;
|
||||
width:355px;
|
||||
}
|
||||
|
||||
.ant-input-textarea-show-count {
|
||||
|
||||
Reference in New Issue
Block a user