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

# Conflicts:
#	src/components/student/TableStudent.vue
This commit is contained in:
yuping
2022-12-26 17:29:49 +08:00
3 changed files with 551 additions and 623 deletions

View File

@@ -540,8 +540,10 @@ export default {
//考试推送 //考试推送
state.test.targetId = 0; state.test.targetId = 0;
state.test.type = 0; state.test.type = 0;
if (props.isLevel == 1) { state.test.chapterId=0;
if(props.isLevel == 1){
state.test.targetId = props.routerId; state.test.targetId = props.routerId;
state.test.chapterId = props.isactive;
state.test.type = 2; state.test.type = 2;
} else if (props.isLevel == 2) { } else if (props.isLevel == 2) {

View File

@@ -459,7 +459,7 @@ const projectId = ref(null)
background: linear-gradient(rgba(78, 166, 255, 0.2) 0%, rgba(78, 166, 255, 0) 100%); background: linear-gradient(rgba(78, 166, 255, 0.2) 0%, rgba(78, 166, 255, 0) 100%);
} }
.delete { /*.delete {
z-index: 9999; z-index: 9999;
width: 424px; width: 424px;
background: #ffffff; background: #ffffff;
@@ -682,4 +682,5 @@ const projectId = ref(null)
width: 424px !important; width: 424px !important;
height: 258px !important; height: 258px !important;
} }
*/
</style> </style>

View File

@@ -3,12 +3,7 @@
<div class="sonproject"> <div class="sonproject">
<div class="header"> <div class="header">
<span class="title">创建/编辑单层子项目</span> <span class="title">创建/编辑单层子项目</span>
<div <div @click="backPage" style="cursor: pointer" to="/projectmanage" class="goback">
@click="backPage"
style="cursor: pointer"
to="/projectmanage"
class="goback"
>
<span class="return"></span><span class="returntext">返回</span> <span class="return"></span><span class="returntext">返回</span>
</div> </div>
</div> </div>
@@ -16,10 +11,7 @@
<div class="main"> <div class="main">
<div class="name" v-if="projectInfo.parentName"> <div class="name" v-if="projectInfo.parentName">
<div class="namebox"> <div class="namebox">
<img <img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" />
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">项目归属</div> <div class="inname">项目归属</div>
</div> </div>
<div class="in"> <div class="in">
@@ -30,116 +22,73 @@
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img <img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" />
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">项目名称</div> <div class="inname">项目名称</div>
</div> </div>
<div class="in"> <div class="in">
<NameInput placeholder="请输入项目名称" v-model:value="projectInfo.name" <NameInput placeholder="请输入项目名称" v-model:value="projectInfo.name" v-model:validate="projectInfo.validate"
v-model:validate="projectInfo.validate" :maxlength="30" show-count :maxlength="30" show-count :id="projectInfo.projectId"></NameInput>
:id="projectInfo.projectId"></NameInput>
</div> </div>
</div> </div>
<div class="name flex-top"> <div class="name flex-top">
<div class="namebox" style="margin-top: 10px"> <div class="namebox" style="margin-top: 10px">
<img <img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" />
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">封面图</div> <div class="inname">封面图</div>
</div> </div>
<div class="in select" style="flex: 1; display: flex"> <div class="in select" style="flex: 1; display: flex">
<div <div :class="`box ${projectInfo.picUrl === src.value ? 'active' : ''}`" style="
:class="`box ${projectInfo.picUrl === src.value ? 'active' : ''}`"
style="
width: 100px; width: 100px;
height: 100px; height: 100px;
border-radius: 5px; border-radius: 5px;
cursor: pointer; cursor: pointer;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
" " v-for="(src, index) in projectPic" :key="index" @click="() => (projectInfo.picUrl = src.value)">
v-for="(src, index) in projectPic" <img style="
:key="index"
@click="() => (projectInfo.picUrl = src.value)"
>
<img
style="
width: 100px; width: 100px;
height: 100px; height: 100px;
margin-bottom: 4px; margin-bottom: 4px;
margin-right: 4px; margin-right: 4px;
" " :src="src.value" alt="avatar" />
:src="src.value"
alt="avatar"
/>
</div> </div>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img <img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" />
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">项目时间</div> <div class="inname">项目时间</div>
</div> </div>
<div class="in"> <div class="in">
<a-range-picker <a-range-picker :show-time="{ format: 'HH:mm' }" :disabled-date="disabledDate"
:show-time="{ format: 'HH:mm' }" :disabled-time="disabledRangeTime" separator="至" :placeholder="[' 开始时间', ' 结束时间']"
:disabled-date="disabledDate" v-model:value="projectInfo.rangeTime" style="width: 100%; height: 40px; border-radius: 5px"
separator="至" valueFormat="YYYY-MM-DD HH:mm" @change="timeChange" :disabled="viewDetail ? true : false" />
:placeholder="[' 开始时间', ' 结束时间']"
v-model:value="projectInfo.rangeTime"
style="width: 100%; height: 40px; border-radius: 5px"
valueFormat="YYYY-MM-DD HH:mm"
@change="timeChange"
:disabled="viewDetail ? true : false"
/>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img <img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" />
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">项目经理</div> <div class="inname">项目经理</div>
</div> </div>
<div class="in"> <div class="in">
<ProjectManager <ProjectManager v-model:value="projectInfo.managerId" v-model:name="projectInfo.manager"
v-model:value="projectInfo.managerId" @onChange="managerChange" mode="multiple"></ProjectManager>
v-model:name="projectInfo.manager"
@onChange="managerChange"
mode="multiple"
></ProjectManager>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img <img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" />
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">资源归属</div> <div class="inname">资源归属</div>
</div> </div>
<div class="in select"> <div class="in select">
<OrgClass <OrgClass v-model:value="projectInfo.sourceBelongId" v-model:name="projectInfo.sourceBelongName"></OrgClass>
v-model:value="projectInfo.sourceBelongId"
v-model:name="projectInfo.sourceBelongName"
></OrgClass>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img <img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" />
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">项目级别</div> <div class="inname">项目级别</div>
</div> </div>
<div class="in select"> <div class="in select">
@@ -148,10 +97,7 @@
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img <img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" />
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">培训分类</div> <div class="inname">培训分类</div>
</div> </div>
<div class="in select"> <div class="in select">
@@ -160,17 +106,11 @@
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img <img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" />
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">是否BOEU实施</div> <div class="inname">是否BOEU实施</div>
</div> </div>
<div class="in"> <div class="in">
<a-radio-group <a-radio-group v-model:value="projectInfo.boeFlag" :disabled="viewDetail ? true : false">
v-model:value="projectInfo.boeFlag"
:disabled="viewDetail ? true : false"
>
<a-radio :style="radioStyle" :value="1"></a-radio> <a-radio :style="radioStyle" :value="1"></a-radio>
<a-radio :style="radioStyle" :value="0"></a-radio> <a-radio :style="radioStyle" :value="0"></a-radio>
</a-radio-group> </a-radio-group>
@@ -181,18 +121,11 @@
<div class="inname">同步学习记录</div> <div class="inname">同步学习记录</div>
</div> </div>
<div class="in"> <div class="in">
<a-checkbox <a-checkbox v-model:checked="courseSyncFlag" :disabled="viewDetail ? true : false"><span style="
v-model:checked="courseSyncFlag"
:disabled="viewDetail ? true : false"
><span
style="
width: 100%; width: 100%;
color: rgba(109, 117, 132, 1); color: rgba(109, 117, 132, 1);
font-size: 14px; font-size: 14px;
" ">同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span></a-checkbox>
>同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span
></a-checkbox
>
</div> </div>
</div> </div>
<div class="name name2" v-if="projectInfo.remark"> <div class="name name2" v-if="projectInfo.remark">
@@ -200,14 +133,8 @@
<div class="inname" style="margin-top: 13px">项目说明</div> <div class="inname" style="margin-top: 13px">项目说明</div>
</div> </div>
<div class="in"> <div class="in">
<a-textarea <a-textarea v-model:value="projectInfo.remark" style="height: 80px" placeholder="请输入说明" show-count
v-model:value="projectInfo.remark" :maxlength="200" :disabled="viewDetail ? true : false" />
style="height: 80px"
placeholder="请输入说明"
show-count
:maxlength="200"
:disabled="viewDetail ? true : false"
/>
</div> </div>
</div> </div>
@@ -223,27 +150,25 @@
</div> </div>
<div class="footer"> <div class="footer">
<div class="btn"> <div class="btn">
<a-button v-on:click="createProject" type="primary" class="btn1" <a-button v-on:click="createProject" type="primary" class="btn1">确定
>确定 </a-button>
</a-button
>
<a-button @click="backPage" class="btn2">取消</a-button> <a-button @click="backPage" class="btn2">取消</a-button>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import {reactive, toRefs, ref, computed, onMounted} from "vue"; import { reactive, toRefs, ref, computed, onMounted } from "vue";
import {message} from "ant-design-vue"; import { message } from "ant-design-vue";
import {useRouter, useRoute} from "vue-router"; import { useRouter, useRoute } from "vue-router";
import * as api from "../../api/index"; import * as api from "../../api/index";
import {useStore} from "vuex"; import { useStore } from "vuex";
import ProjectManager from "@/components/project/ProjectManagerNew"; import ProjectManager from "@/components/project/ProjectManagerNew";
import ProjectLevel from "@/components/project/ProjectLevel"; import ProjectLevel from "@/components/project/ProjectLevel";
import TrainClass from "@/components/project/TrainClass"; import TrainClass from "@/components/project/TrainClass";
import NameInput from "@/components/project/NameInput"; import NameInput from "@/components/project/NameInput";
import OrgClass from "@/components/project/OrgClass"; import OrgClass from "@/components/project/OrgClass";
import {validateName} from "../../api/index1"; import { validateName } from "../../api/index1";
import dayjs from "dayjs"; import dayjs from "dayjs";
export default { export default {