-- fix 评估

This commit is contained in:
yuping
2023-02-28 20:46:55 +08:00
parent e56ae852fb
commit 960e294352
5 changed files with 105 additions and 98 deletions

View File

@@ -135,10 +135,11 @@
<NameInput <NameInput
placeholder="请输入课程名称" placeholder="请输入课程名称"
v-model:value="xzinputV1" v-model:value="xzinputV1"
v-model:validate="validate" v-model:validated="validated"
:id="offcourseId"
:maxlength="20" :maxlength="20"
show-count show-count
:type="3" :type="2"
></NameInput> ></NameInput>
<!-- <a-input--> <!-- <a-input-->
<!-- v-model:value="xzinputV1"--> <!-- v-model:value="xzinputV1"-->
@@ -286,9 +287,9 @@
<div class="btn btn5" @click="of_exit1"> <div class="btn btn5" @click="of_exit1">
<div class="btnText">取消</div> <div class="btnText">取消</div>
</div> </div>
<div class="btn btn6" @click="createft"> <a-button class="btn btn6" @click="createft" :loading="validated===1">
<div class="btnText">确定</div> 确定
</div> </a-button>
</div> </div>
</div> </div>
</div> </div>
@@ -918,10 +919,10 @@
<NameInput <NameInput
maxlength="30" maxlength="30"
v-model:value="xjkkinputV1" v-model:value="xjkkinputV1"
v-model:validate="validate" v-model:validated="validated"
show-count show-count
:id="offcourseId" :id="offcoursePlanId"
:type="2" :type="5"
style="width: 440px; height: 40px; border-radius: 8px" style="width: 440px; height: 40px; border-radius: 8px"
placeholder="请输入开课名称" placeholder="请输入开课名称"
></NameInput> ></NameInput>
@@ -1168,9 +1169,9 @@
<div class="cstm_btn btn5" @click="handleCancelStu"> <div class="cstm_btn btn5" @click="handleCancelStu">
<div class="btnText">取消</div> <div class="btnText">取消</div>
</div> </div>
<div class="cstm_btn btn6" @click="handleSureStu"> <a-button class="cstm_btn btn6" @click="handleSureStu" :loading="validated===1">
<div class="btnText">确定</div> 确定
</div> </a-button>
</div> </div>
</div> </div>
</div> </div>
@@ -2575,7 +2576,7 @@ export default defineComponent({
imageUrl: "", imageUrl: "",
imgList: [], imgList: [],
validate: true, validated: 0,
attach: "", attach: "",
pageSize2: 10, pageSize2: 10,
currentPage2: 0, currentPage2: 0,
@@ -3501,9 +3502,7 @@ export default defineComponent({
return message.warning("请输入必填项"); return message.warning("请输入必填项");
} }
console.log("state.validate", state.validate); if (!state.validated == 2) {
if (!state.validate) {
message.destroy(); message.destroy();
return message.warning("该课程名称已存在"); return message.warning("该课程名称已存在");
} }

View File

@@ -54,7 +54,7 @@
ref="inputRef" ref="inputRef"
placeholder="请输入课程名称" placeholder="请输入课程名称"
v-model:value="qdms_inputV1" v-model:value="qdms_inputV1"
v-model:validate="validate" v-model:validated="validated"
:maxlength="20" :maxlength="20"
show-count show-count
:type="2" :type="2"
@@ -457,9 +457,9 @@
<div class="btn btn5" @click="noEditClose"> <div class="btn btn5" @click="noEditClose">
<div class="btnText">取消</div> <div class="btnText">取消</div>
</div> </div>
<div class="btn btn6" @click="handlePush"> <a-button class="btn btn6" @click="handlePush" :loading="validated===1">
<div class="btnText">保存</div> <div class="btnText">保存</div>
</div> </a-button>
</div> </div>
</div> </div>
</div> </div>
@@ -507,7 +507,7 @@
</div> </div>
<div class="btn"> <div class="btn">
<button class="samtn btn1" @click="closeLearnBgMore">取消</button> <button class="samtn btn1" @click="closeLearnBgMore">取消</button>
<button class="samtn btn2" @click="closeLearnBgMore">确定</button> <a-button class="samtn btn2" @click="closeLearnBgMore">确定</a-button>
</div> </div>
</div> </div>
</a-modal> </a-modal>
@@ -556,7 +556,7 @@ export default defineComponent({
hideshow: true, hideshow: true,
ft_eidt: false, ft_eidt: false,
attach: "", attach: "",
validate: true, validated: 0,
ft_hs: false, ft_hs: false,
addLoading: false, addLoading: false,
statusJuJue: 0, statusJuJue: 0,

View File

@@ -210,7 +210,7 @@
<NameInput <NameInput
placeholder="请输入路径名称" placeholder="请输入路径名称"
v-model:value="pathName" v-model:value="pathName"
v-model:validate="validate" v-model:validated="validated"
:maxlength="20" :maxlength="20"
show-count show-count
:type="3" :type="3"
@@ -285,7 +285,7 @@
<a-button <a-button
class="samtn btn2" class="samtn btn2"
@click="createLearnPath" @click="createLearnPath"
:loading="confirmLoading" :loading="confirmLoading || validated === 1"
>确定</a-button >确定</a-button
> >
</div> </div>
@@ -780,6 +780,7 @@ export default {
selectTime: null, selectTime: null,
sh: false, sh: false,
validate: true, validate: true,
validated: 0,
tableData: [ tableData: [
// { // {
// key: 1, // key: 1,

View File

@@ -2,8 +2,9 @@
<template xmlns:display="http://www.w3.org/1999/xhtml"> <template xmlns:display="http://www.w3.org/1999/xhtml">
<div class="projectAdd"> <div class="projectAdd">
<div class="header"> <div class="header">
<span class="title">{{ projectInfo.id ? "编辑" : "创建" <span class="title">{{
}}{{ ptojectType == "3" ? "班级" : "项目" }}</span> projectInfo.id ? "编辑" : "创建"
}}{{ ptojectType == "3" ? "班级" : "项目" }}</span>
<div @click="backPage" style="cursor: pointer" to="/projectmanage" class="goback"> <div @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>
@@ -12,7 +13,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 class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img class="nameimg" src="../../assets/images/basicinfo/asterisk.png"/>
<div class="inname">项目归属</div> <div class="inname">项目归属</div>
</div> </div>
<div class="in"> <div class="in">
@@ -23,19 +24,20 @@
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img class="nameimg" src="../../assets/images/basicinfo/asterisk.png"/>
<div class="inname"> <div class="inname">
{{ ptojectType == 3 ? "班级名称" : "项目名称" }} {{ ptojectType == 3 ? "班级名称" : "项目名称" }}
</div> </div>
</div> </div>
<div class="in"> <div class="in">
<NameInput placeholder="请输入项目名称" v-model:value="projectInfo.name" v-model:validate="projectInfo.validate" <NameInput placeholder="请输入项目名称" v-model:value="projectInfo.name"
:maxlength="30" show-count :id="projectInfo.id"></NameInput> v-model:validated="projectInfo.validated" :type="1"
:maxlength="30" show-count :id="projectInfo.id"></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 class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img 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">
@@ -54,7 +56,7 @@
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 @click="showLearnBgMore" v-if="projectPic.length > 3" style=" <div @click="showLearnBgMore" v-if="projectPic.length > 3" style="
width: 100px; width: 100px;
@@ -74,47 +76,49 @@
line-height: 36px; line-height: 36px;
"> ">
查看更多 查看更多
<img src="../../assets/images/projectadd/go.png" alt="" /> <img src="../../assets/images/projectadd/go.png" alt=""/>
</div> </div>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img 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 separator="至" :show-time="{ format: 'HH:mm' }" :placeholder="[' 开始时间', ' 结束时间']" <a-range-picker separator="至" :show-time="{ format: 'HH:mm' }"
:disabledDate="disabledDate" v-model:value="timeRange" @calendarChange="calendarChange" :placeholder="[' 开始时间', ' 结束时间']"
style="width: 100%; height: 40px; border-radius: 5px" :allowClear="false" format="YYYY-MM-DD HH:mm" :disabledDate="disabledDate" v-model:value="timeRange" @calendarChange="calendarChange"
valueFormat="YYYY-MM-DD HH:mm" @change="timeChange" :disabled="!!viewDetail" /> style="width: 100%; height: 40px; border-radius: 5px" :allowClear="false"
format="YYYY-MM-DD HH:mm"
valueFormat="YYYY-MM-DD HH:mm" @change="timeChange" :disabled="!!viewDetail"/>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img 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 v-model:value="projectInfo.managerId" v-model:name="projectInfo.manager" <ProjectManager v-model:value="projectInfo.managerId" v-model:name="projectInfo.manager"
@onChange="managerChange" mode="multiple"></ProjectManager> @onChange="managerChange" mode="multiple"></ProjectManager>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img 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 v-model:value="projectInfo.sourceBelongId" v-model:name="projectInfo.sourceBelongName" <OrgClass v-model:value="projectInfo.sourceBelongId" v-model:name="projectInfo.sourceBelongName"
v-model:fullName="projectInfo.sourceBelongFullName"></OrgClass> v-model:fullName="projectInfo.sourceBelongFullName"></OrgClass>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img 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">
@@ -123,7 +127,7 @@
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img 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">
@@ -132,7 +136,7 @@
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img 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">
@@ -177,7 +181,7 @@
</div> </div>
<div class="in"> <div class="in">
<a-textarea v-model:value="projectInfo.remark" style="height: 80px" placeholder="请输入说明" show-count <a-textarea v-model:value="projectInfo.remark" style="height: 80px" placeholder="请输入说明" show-count
:maxlength="200" :disabled="viewDetail ? true : false" /> :maxlength="200" :disabled="viewDetail ? true : false"/>
</div> </div>
</div> </div>
@@ -197,7 +201,7 @@
<a-select :getPopupContainer=" <a-select :getPopupContainer="
(triggerNode) => triggerNode.parentNode || document.body (triggerNode) => triggerNode.parentNode || document.body
" placeholder="请选择模版" style="width: 100%" :options="classifyList5" @change="classificationChange5" " placeholder="请选择模版" style="width: 100%" :options="classifyList5" @change="classificationChange5"
@popupScroll="templateScroll" :fieldNames="{ @popupScroll="templateScroll" :fieldNames="{
label: 'name', label: 'name',
value: 'id', value: 'id',
}"> }">
@@ -215,18 +219,18 @@
</div> </div>
<!-- 更多背景图 v-model:visible="learnBgMore" --> <!-- 更多背景图 v-model:visible="learnBgMore" -->
<a-modal :closable="sh" centered="true" v-model:visible="learnBgMore" :footer="null" :width="650" <a-modal :closable="sh" centered="true" v-model:visible="learnBgMore" :footer="null" :width="650"
wrapClassName="learnBgMoreModal" :z-index="9999"> wrapClassName="learnBgMoreModal" :z-index="9999">
<div class="main"> <div class="main">
<div class="top"> <div class="top">
<div class="topc">封面图</div> <div class="topc">封面图</div>
</div> </div>
<div class="imagesBox"> <div class="imagesBox">
<!-- <div <!-- <div
@click="() => (projectInfo.picUrl = src.value)" @click="() => (projectInfo.picUrl = src.value)"
v-for="item in projectPic" v-for="item in projectPic"
:key="item.code" :key="item.code"
class="learnBgItem" class="learnBgItem"
> --> > -->
<div @click="chooseImg2(item)" v-for="item in projectPic" :key="item.code" class="learnBgItem" :style="{ <div @click="chooseImg2(item)" v-for="item in projectPic" :key="item.code" class="learnBgItem" :style="{
border: border:
projectInfo.picUrl === item.value projectInfo.picUrl === item.value
@@ -239,27 +243,27 @@
</div> </div>
<div class="btn"> <div class="btn">
<button class="samtn btn1" @click="closeLearnBgMore">取消</button> <button class="samtn btn1" @click="closeLearnBgMore">取消</button>
<button class="samtn btn2" @click="closeLearnBgMore">确定</button> <a-button class="samtn btn2" @click="closeLearnBgMore" :loading="projectInfo.validated===1">确定</a-button>
</div> </div>
</div> </div>
</a-modal> </a-modal>
</div> </div>
</template> </template>
<script> <script>
import { onMounted, reactive, toRefs, watch } from "vue"; import {onMounted, reactive, toRefs, watch} from "vue";
import { message } from "ant-design-vue"; import {message} from "ant-design-vue";
import { useRoute, useRouter } from "vue-router"; import {useRoute, useRouter} from "vue-router";
import * as api from "../../api/index"; import * as api from "../../api/index";
import { useStore } from "vuex"; import {useStore} from "vuex";
import TrainClass from "@/components/project/TrainClass"; import TrainClass from "@/components/project/TrainClass";
import OrgClass from "@/components/project/OrgClass"; import OrgClass from "@/components/project/OrgClass";
import ProjectManager from "@/components/project/ProjectManagerNew"; import ProjectManager from "@/components/project/ProjectManagerNew";
import NameInput from "@/components/project/NameInput"; import NameInput from "@/components/project/NameInput";
import ProjectLevel from "@/components/project/ProjectLevel"; import ProjectLevel from "@/components/project/ProjectLevel";
import * as api2 from "../../api/indexAudit"; import * as api2 from "../../api/indexAudit";
import { validateName } from "@/api/index1"; import {validateName} from "@/api/index1";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { scrollLoad } from "@/api/method"; import {scrollLoad} from "@/api/method";
export default { export default {
name: "projectAdd", name: "projectAdd",
@@ -283,7 +287,7 @@ export default {
pageSize: 10, //每页10条数据 pageSize: 10, //每页10条数据
totalPages: 0, //总页数 totalPages: 0, //总页数
viewDetail: null, viewDetail: null,
projectInfo: { id: "" }, projectInfo: { id: "", validated: 0 },
projectPic: [], projectPic: [],
memberParam: { memberParam: {
pageNo: 1, pageNo: 1,
@@ -330,43 +334,43 @@ export default {
state.projectInfo.parentId = routers.query.parentId; state.projectInfo.parentId = routers.query.parentId;
state.projectInfo.id = routers.query.projectId; state.projectInfo.id = routers.query.projectId;
(state.projectInfo.id || state.projectInfo.parentId) && (state.projectInfo.id || state.projectInfo.parentId) &&
api api
.getProjectDetail({ .getProjectDetail({
projectId: state.projectInfo.id || state.projectInfo.parentId, projectId: state.projectInfo.id || state.projectInfo.parentId,
}) })
.then((res) => { .then((res) => {
state.projectInfo = { state.projectInfo = {
...res.data.data.projectInfo, ...res.data.data.projectInfo,
...state.projectInfo, ...state.projectInfo,
};
!routers.query.projectId &&
!!routers.query.parentId &&
(state.projectInfo.name = "");
state.timeRange = [
state.projectInfo.beginTime,
state.projectInfo.endTime,
];
state.courseSyncFlag = !!state.projectInfo.courseSyncFlag;
if (Number(state.projectInfo.status) === -5) {
let obj = {
project_id: state.projectInfo.id,
type: 1,
pageNo: 1,
pageSize: 1,
}; };
!routers.query.projectId && api2.auditList(obj).then((d) => {
!!routers.query.parentId && if (d.data.code === 200) {
(state.projectInfo.name = ""); let res = d.data.data;
state.timeRange = [ if (res.rows && res.rows.length > 0) {
state.projectInfo.beginTime, let i = res.rows.length;
state.projectInfo.endTime, state.auditDescription = res.rows[i - 1].description
]; ? res.rows[i - 1].description
state.courseSyncFlag = !!state.projectInfo.courseSyncFlag; : "-";
if (Number(state.projectInfo.status) === -5) {
let obj = {
project_id: state.projectInfo.id,
type: 1,
pageNo: 1,
pageSize: 1,
};
api2.auditList(obj).then((d) => {
if (d.data.code === 200) {
let res = d.data.data;
if (res.rows && res.rows.length > 0) {
let i = res.rows.length;
state.auditDescription = res.rows[i - 1].description
? res.rows[i - 1].description
: "-";
}
} }
}); }
} });
}); }
});
} }
const backPage = () => { const backPage = () => {
@@ -453,7 +457,7 @@ export default {
/** /**
if (!state.projectInfo.validate) { if (!state.projectInfo.validate) {
message.destroy(); message.destroy();
message.warning('项目名称重复,请修改名称!'); message.warning("项目名称重复,请修改名称!");
return; return;
}*/ }*/
const offName = await validateName({ const offName = await validateName({
@@ -508,9 +512,11 @@ export default {
const closeLearnBgMore = () => { const closeLearnBgMore = () => {
state.learnBgMore = false; state.learnBgMore = false;
}; };
function calendarChange(date, dateStr, partial) { function calendarChange(date, dateStr, partial) {
state.datePartial = partial; state.datePartial = partial;
} }
const chooseImg2 = (item) => { const chooseImg2 = (item) => {
// console.log(item); // console.log(item);
state.projectInfo.picUrl = item.value; state.projectInfo.picUrl = item.value;

View File

@@ -304,7 +304,8 @@
<NameInput <NameInput
placeholder="请输入项目名称" placeholder="请输入项目名称"
v-model:value="projectInfo.name" v-model:value="projectInfo.name"
v-model:validate="projectInfo.validate" v-model:validated="projectInfo.validated"
:type="1"
:maxlength="30" :maxlength="30"
show-count show-count
:id="projectInfo.projectId" :id="projectInfo.projectId"
@@ -358,7 +359,7 @@
</div> </div>
<div class="pubtn"> <div class="pubtn">
<a-button class="pubtn1" @click="closeModal2">取消</a-button> <a-button class="pubtn1" @click="closeModal2">取消</a-button>
<a-button class="pubtn2" @click="createStoreyProject" <a-button class="pubtn2" @click="createStoreyProject" :loading="projectInfo.validated===1"
>确定 >确定
</a-button> </a-button>
</div> </div>